gcal-4.1/0000775000000000000000000000000013041164076007237 500000000000000gcal-4.1/data/0000775000000000000000000000000013041164075010147 500000000000000gcal-4.1/data/sun-moon.rc0000664000000000000000000000764512353314150012200 00000000000000; Sun and Moon rise/set/twilights for a GENERIC location, for Gcal-2.20 or newer ; ; $Id: sun-moon.rc 0.03 2000/06/30 00:00:03 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; Try `--precise' to display data and times more precise! ; Try `--response-file=FILENAME' to save your command line settings to ; create a pool of response files of your preferred locations successively. ; ; ; This file should either be used ; ; A) with a Gcal location response file as it is created by the ; `[gcal-]ddiffdrv' script/batch file (see `misc/README', for ; further details) like: ; ; gcal -f./sun-moon.rc @LOCATION-RESPONSE-FILE ; ; or ; ; B) by directly passing the name and the co-ordinate with or without ; the altitude part of the location with the `--text-variable=ARG' ; option via the command line like: ; ; gcal -f./sun-moon.rc --text-var='$l=DE-Münster:$c=+5158+00738' ; ; ; The data and times are always calculated for GMT unless you specify ; the timezone of the location explicitly by passing it via the Gcal ; text variable $Z, e.g.: ; ; --text-variable='$z=60' ; ; or ; ; --text-variable='$z=+1\:' ; ; if the location's timezone is GMT-1 (CET respectively CEWT). ; ; ; The data and times are always calculated for the sea-level altitude +0 ; unless you specify the altitude of the location either as part of the ; co-ordinate of the location or explicitly by passing it via the Gcal ; text variable $H, e.g.: ; ; --text-variable='$h=+61' ; ; if the location's altitude is +61 meters above the sea-level (you have ; to give the sign explicitly). ; ; ; So the complete call for the (A) case would be: ; ; gcal -f./sun-moon.rc @LOCATION-RESPONSE-FILE --text-var='$z=60:$h=+61' ; ; And the complete call for the (B) case would either be: ; ; gcal -f./sun-moon.rc --text-var='$l=DE-Münster:$c=+5158+00738+61:$z=60' ; ; or ; ; gcal -f./sun-moon.rc --text-var='$l=DE-Münster:$c=+5158+00738:$z=60:$h=+61' ; ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; ; ; Line templates ; $p=0*d1#999 ; ; Name of location, geographical co-ordinate, altitude and timezone ; (have to be set to an ``EMPTY'' value here!) ; $l= $c= $h= $z= $c=$c$h ; $t=Sun: $c,$z/$l/%:02*.$z :%:02*/$z %"$z $m=Moon: $c,$z/$l/%:02*.$z :%:02*/$z %"$z ; $x=$t ~\ 9 > %o9$c,$z %u9$c,$z ~\ 8 > %o8$c,$z %u8$c,$z ~\ 7 > %o7$c,$z %u7$c,$z ~\ 6 > %o6$c,$z %u6$c,$z ~\ 5 * %o5$c,$z %u5$c,$z %oL$c,$z ~\ 4 > %o4$c,$z %u4$c,$z ~\ x2> %oQ$c,$z %uQ$c,$z ~\ x1> %oR$c,$z %uR$c,$z ~\ 1 = %o1$c,$z %oJ$c,$z ~\ x1< %sR$c,$z %zR$c,$z ~\ x2< %sQ$c,$z %zQ$c,$z ~\ 4 < %s4$c,$z %z4$c,$z ~\ 5 * %s5$c,$z %z5$c,$z %sL$c,$z ~\ 6 < %s6$c,$z %z6$c,$z ~\ 7 < %s7$c,$z %z7$c,$z ~\ 8 < %s8$c,$z %z8$c,$z ~\ 9 < %s9$c,$z %z9$c,$z ~\ 0 = %s0$c,$z %sI$c,$z ~\ $m ~\ 5 * %(5$c,$z %[5$c,$z %(Q$c,$z %(*R$c,$z % ~\ 4 > %(4$c,$z %[4$c,$z ~\ 1 = %)1$c,$z %)N$c,$z %)*O$c,$z % ~\ 4 < %)4$c,$z %]4$c,$z ~\ 5 * %)5$c,$z %]5$c,$z %)Q$c,$z %)*R$c,$z % ~\ 0 = %(0$c,$z %(L$c,$z %(*M$c,$z % ; ; And shoot! ; $p $x gcal-4.1/data/ms.rc0000664000000000000000000000634612353314150011041 00000000000000; Sun and Moon rise/set/twilights for Münster, GERMANY, for Gcal-2.20 or newer ; ; $Id: ms.rc 0.03 2000/06/30 00:00:03 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; Try `--precise' to display data and times more precise! ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; ; ; Line templates ; $p=0*d1#999 ; ; The Germans use Daylight Saving times, ; so it is necessary to define them explicitly ; ; Definitions for summer time ; $t=Sun: $c,$s/$l/%:02*.$s :%:02*/$s %"$s $m=Moon: $c,$s/$l/%:02*.$s :%:02*/$s %"$s a=03sun9 $s=+120 $a=%i0@a#0@b-1 ; $x=$t ~\ 9 > %o9$c,$s %u9$c,$s ~\ 8 > %o8$c,$s %u8$c,$s ~\ 7 > %o7$c,$s %u7$c,$s ~\ 6 > %o6$c,$s %u6$c,$s ~\ 5 * %o5$c,$s %u5$c,$s %oL$c,$s ~\ 4 > %o4$c,$s %u4$c,$s ~\ x2> %oQ$c,$s %uQ$c,$s ~\ x1> %oR$c,$s %uR$c,$s ~\ 1 = %o1$c,$s %oJ$c,$s ~\ x1< %sR$c,$s %zR$c,$s ~\ x2< %sQ$c,$s %zQ$c,$s ~\ 4 < %s4$c,$s %z4$c,$s ~\ 5 * %s5$c,$s %z5$c,$s %sL$c,$s ~\ 6 < %s6$c,$s %z6$c,$s ~\ 7 < %s7$c,$s %z7$c,$s ~\ 8 < %s8$c,$s %z8$c,$s ~\ 9 < %s9$c,$s %z9$c,$s ~\ 0 = %s0$c,$s %sI$c,$s ~\ $m ~\ 5 * %(5$c,$s %[5$c,$s %(Q$c,$s %(*R$c,$s % ~\ 4 > %(4$c,$s %[4$c,$s ~\ 1 = %)1$c,$s %)N$c,$s %)*O$c,$s % ~\ 4 < %)4$c,$s %]4$c,$s ~\ 5 * %)5$c,$s %]5$c,$s %)Q$c,$s %)*R$c,$s % ~\ 0 = %(0$c,$s %(L$c,$s %(*M$c,$s % ; ; Definitions for winter time ; $t=Sun: $c,$w/$l/%:02*.$w :%:02*/$w %"$w $m=Moon: $c,$w/$l/%:02*.$w :%:02*/$w %"$w b=10sun9 $w=+60 $b=%e0@a#0@b-1 ; $y=$t ~\ 9 > %o9$c,$w %u9$c,$w ~\ 8 > %o8$c,$w %u8$c,$w ~\ 7 > %o7$c,$w %u7$c,$w ~\ 6 > %o6$c,$w %u6$c,$w ~\ 5 * %o5$c,$w %u5$c,$w %oL$c,$w ~\ 4 > %o4$c,$w %u4$c,$w ~\ x2> %oQ$c,$w %uQ$c,$w ~\ x1> %oR$c,$w %uR$c,$w ~\ 1 = %o1$c,$w %oJ$c,$w ~\ x1< %sR$c,$w %zR$c,$w ~\ x2< %sQ$c,$w %zQ$c,$w ~\ 4 < %s4$c,$w %z4$c,$w ~\ 5 * %s5$c,$w %z5$c,$w %sL$c,$w ~\ 6 < %s6$c,$w %z6$c,$w ~\ 7 < %s7$c,$w %z7$c,$w ~\ 8 < %s8$c,$w %z8$c,$w ~\ 9 < %s9$c,$w %z9$c,$w ~\ 0 = %s0$c,$w %sI$c,$w ~\ $m ~\ 5 * %(5$c,$w %[5$c,$w %(Q$c,$w %(*R$c,$w % ~\ 4 > %(4$c,$w %[4$c,$w ~\ 1 = %)1$c,$w %)N$c,$w %)*O$c,$w % ~\ 4 < %)4$c,$w %]4$c,$w ~\ 5 * %)5$c,$w %]5$c,$w %)Q$c,$w %)*R$c,$w % ~\ 0 = %(0$c,$w %(L$c,$w %(*M$c,$w % ; ; Name of location and geographical co-ordinate ; $l=%3%1Münster%2 $c=+5158+00738+61 ; ; And shoot! ; $p $a $x $p $b $y gcal-4.1/data/mdata.rc0000664000000000000000000001672512353314150011512 00000000000000; Some Moon based astronomical times and data for Gcal-2.20 or newer ; ; $Id: mdata.rc 0.07 2000/06/30 00:00:07 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; Try this resource file by using the `-QUx' option of Gcal. ; Try `--time-offset=ARG' to calculate some data for a definite time! ; Try `--precise' to display data and times more precise! ; ; Either set your preferred geographical base location here ; or comment the proper next lines and run Gcal with the `--text-variable=ARG' ; option for passing the geographical base location in a flexible manner like: ; ; gcal -f./mdata.rc -QUx --text-var='$l=Münster:$c=+5158+00738+61:$z=60' --time-offset=t ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; ; ; Name of location ; $l=%3%1Münster%2 ; Geographical co-ordinate of location ; $c=+5158+00738+61 ; Timezone of location ; $z=60 ; ; Line templates $p=0*d1#999 ; $l= $c= $z= ; ; Data. $p A00 calculations for geographic co-ordinate $c,$z/$l $p A01 gmt time and date %@ $p A02 local time and date %t /%n $p A03 given time-offset %(x$c $p A04 local julian date at %<9*(x$c %(y$c,$z $p A05 local julian ephemeris date at %<9*(x$c %(z$c,$z $p A06 local sidereal time at %<9*(x$c %(w$c,$z $p A07 delta-t in ss.fract at %<9*(x$c %(v$c,$z ; $p B00 T moon/earth dist in radii at %<9*(x$c %(g$c,$z $p B01 T moon/earth dist in km at %<9*(x$c %(*g$c,$z $p B02 T moon's ecliptic longitude at %<9*(x$c %(d$c,$z $p B03 T moon's ecliptic latitude at %<9*(x$c %(e$c,$z $p B04 T moon's right ascension at %<9*(x$c %(f$c,$z $p B05 T moon's declination angle at %<9*(x$c %(c$c,$z $p B06 T moon's azimuth angle at %<9*(x$c %(b$c,$z $p B07 T moon's elevation angle at %<9*(x$c %(a$c,$z $p B08 T moon's horizontal parallax at %<9*(x$c %(*6$c,$z $p B09 T moon's semidiameter at %<9*(x$c %(*7$c,$z $p B10 T moon's magnitude at %<9*(x$c %(8$c,$z $p B11 T moon's phase angle at %<9*(x$c %(9$c,$z $p B12 T moon/sun elongation at %<9*(x$c %(h$c,$z $p B13 T moon/sun azimuth delta at %<9*(x$c %(B$c,$z $p B14 T moon/sun elevation delta at %<9*(x$c %(A$c,$z $p B15 T atmospheric refraction at %<9*(x$c %(*i$c,$z ; $p C00 G moon/earth dist in radii at %<9*(x$c %(t$c,$z $p C01 G moon/earth dist in km at %<9*(x$c %(*t$c,$z $p C02 G moon's ecliptic longitude at %<9*(x$c %(q$c,$z $p C03 G moon's ecliptic latitude at %<9*(x$c %(r$c,$z $p C04 G moon's right ascension at %<9*(x$c %(s$c,$z $p C05 G moon's declination angle at %<9*(x$c %(p$c,$z $p C06 G moon's azimuth angle at %<9*(x$c %(o$c,$z $p C07 G moon's elevation angle at %<9*(x$c %(n$c,$z $p C08 G moon's horizontal parallax at %<9*(x$c %(*j$c,$z $p C09 G moon's semidiameter at %<9*(x$c %(*k$c,$z $p C10 G moon's magnitude at %<9*(x$c %(l$c,$z $p C11 G moon's phase angle at %<9*(x$c %(m$c,$z $p C12 G moon/sun elongation at %<9*(x$c %(u$c,$z $p C13 G moon/sun azimuth delta at %<9*(x$c %(D$c,$z $p C14 G moon/sun elevation delta at %<9*(x$c %(C$c,$z ; $p DM0 moon's midnight (near lowest culmination) at %(0$c,$z $p DM2 T moon's elevation angle at moon's midnight %(L$c,$z $p DM3 T moon's phase angle at moon's midnight %(M$c,$z $p DM4 G moon's elevation angle at moon's midnight %(S$c,$z $p DM5 G moon's phase angle at moon's midnight %(T$c,$z $p DM6 moon/sun midnight delta %(I$c,$z $p DN1 moon's noon (near highest culmination) at %)1$c,$z $p DN2 T moon's elevation angle at moon's noon %)N$c,$z $p DN3 T moon's phase angle at moon's noon %)O$c,$z $p DN4 G moon's elevation angle at moon's noon %)U$c,$z $p DN5 G moon's phase angle at moon's noon %)V$c,$z $p DN6 moon/sun noon delta %)J$c,$z ; $p ER0 moon's upper limb (standard rise) rises at %(5$c,$z $p ER3 T moon's azimuth angle at moon's rise %(Q$c,$z $p ER4 T moon's elevation angle at moon's rise %(P$c,$z $p ER5 T moon's phase angle at moon's rise %(R$c,$z $p ER6 G moon's azimuth angle at moon's rise %(X$c,$z $p ER7 G moon's elevation angle at moon's rise %(W$c,$z $p ER8 G moon's phase angle at moon's rise %(Y$c,$z $p ER9 T moon/sun azimuth delta at moon's rise %(F$c,$z $p ERA T moon/sun elevation delta at moon's rise %(E$c,$z $p ERB G moon/sun azimuth delta at moon's rise %(H$c,$z $p ERC G moon/sun elevation delta at moon's rise %(G$c,$z $p ERD moon/sun standard rise delta %(K$c,$z $p FR0 moon's center rises at %(4$c,$z $p GR0 moon's upper limb at math-horizon rises at %(3$c,$z $p HR0 moon's center at math-horizon rises at %(2$c,$z ; $p HS1 moon's center at math-horizon sets at %)2$c,$z $p GS1 moon's upper limb at math-horizon sets at %)3$c,$z $p FS1 moon's center sets at %)4$c,$z $p ES1 moon's upper limb (standard set) sets at %)5$c,$z $p ES3 T moon's azimuth angle at moon's set %)Q$c,$z $p ES4 T moon's elevation angle at moon's set %)P$c,$z $p ES5 T moon's phase angle at moon's set %)R$c,$z $p ES6 G moon's azimuth angle at moon's set %)X$c,$z $p ES7 G moon's elevation angle at moon's set %)W$c,$z $p ES8 G moon's phase angle at moon's set %)Y$c,$z $p ES9 T moon/sun azimuth delta at moon's set %)F$c,$z $p ESA T moon/sun elevation delta at moon's set %)E$c,$z $p ESB G moon/sun azimuth delta at moon's set %)H$c,$z $p ESC G moon/sun elevation delta at moon's set %)G$c,$z $p ESD moon/sun standard set delta %)K$c,$z ; $p QE6 moon's upper limb (standard r/s) visible %[5$c,$z $p QE7 moon's upper limb (standard r/s) non-visible %]5$c,$z $p QF6 moon's center visible %[4$c,$z $p QF7 moon's center non-visible %]4$c,$z $p QG6 math-horizon moon's upper limb visible %[3$c,$z $p QG7 math-horizon moon's upper limb non-visible %]3$c,$z $p QH6 math-horizon moon's center visible %[2$c,$z $p QH7 math-horizon moon's center non-visible %]2$c,$z gcal-4.1/data/bkk.rc0000664000000000000000000000444212353314150011164 00000000000000; Sun and Moon rise/set/twilights for Bangkok, THAILAND, for Gcal-2.20 or newer ; ; $Id: bkk.rc 0.03 2000/06/30 00:00:03 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; Try `--precise' to display data and times more precise! ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; ; ; Line templates ; $p=0*d1#999 ; ; The Thais do not use Daylight Saving times, ; so a simple timezone definition is necessary only ; $t=Sun: $c,$z/$l/%:02*.$z :%:02*/$z %"$z $m=Moon: $c,$z/$l/%:02*.$z :%:02*/$z %"$z ; $x=$t ~\ 9 > %o9$c,$z %u9$c,$z ~\ 8 > %o8$c,$z %u8$c,$z ~\ 7 > %o7$c,$z %u7$c,$z ~\ 6 > %o6$c,$z %u6$c,$z ~\ 5 * %o5$c,$z %u5$c,$z %oL$c,$z ~\ 4 > %o4$c,$z %u4$c,$z ~\ x2> %oQ$c,$z %uQ$c,$z ~\ x1> %oR$c,$z %uR$c,$z ~\ 1 = %o1$c,$z %oJ$c,$z ~\ x1< %sR$c,$z %zR$c,$z ~\ x2< %sQ$c,$z %zQ$c,$z ~\ 4 < %s4$c,$z %z4$c,$z ~\ 5 * %s5$c,$z %z5$c,$z %sL$c,$z ~\ 6 < %s6$c,$z %z6$c,$z ~\ 7 < %s7$c,$z %z7$c,$z ~\ 8 < %s8$c,$z %z8$c,$z ~\ 9 < %s9$c,$z %z9$c,$z ~\ 0 = %s0$c,$z %sI$c,$z ~\ $m ~\ 5 * %(5$c,$z %[5$c,$z %(Q$c,$z %(*R$c,$z % ~\ 4 > %(4$c,$z %[4$c,$z ~\ 1 = %)1$c,$z %)N$c,$z %)*O$c,$z % ~\ 4 < %)4$c,$z %]4$c,$z ~\ 5 * %)5$c,$z %]5$c,$z %)Q$c,$z %)*R$c,$z % ~\ 0 = %(0$c,$z %(L$c,$z %(*M$c,$z % ; ; Name of location, geographical co-ordinate and timezone ; $l=%3%1Bangkok%2 $c=+1345+10031+10 $z=+420 ; ; And shoot! ; $p $x gcal-4.1/data/de-mdata.rc0000664000000000000000000002230312353314150012065 00000000000000; Some Moon based astronomical times and data for locations in Germany for Gcal-2.20 or newer ; ; $Id: de-mdata.rc 0.06 2000/06/30 00:00:06 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; Try this resource file by using the `-QUx' option of Gcal. ; Try `--time-offset=ARG' to calculate some data for a definite time! ; Try `--precise' to display data and times more precise! ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; ; ; Name of location and geographical co-ordinate $l=%3%1Münster%2 $c=+5158+00738+61 ; ; Line templates $p=0*d1#999 ; ; Definitions for winter time $a=%e0@a#0@b-1 ; ; Winter time in Germany == CEWT/GMT-1 (+60 minutes) $w=+60 ; ; Start of winter time in Germany b=10sun9 ; ; Definitions for summer time $b=%i0@a#0@b-1 ; ; Summer time in Germany == CEST/GMT-2 (+120 minutes) $s=+120 ; ; Start of summer time in Germany a=03sun9 ; ; Data $t=A00 calculations for geographic co-ordinate $c $p $a $t,$w/$l $p $b $t,$s/$l $p A01 gmt time and date %@ $p A02 local time and date %t /%n $p A03 given time-offset %(x$c $t=A04 local julian date at %<9*(x$c %(y$c $p $a $t,$w $p $b $t,$s $t=A05 local julian ephemeris date at %<9*(x$c %(z$c $p $a $t,$w $p $b $t,$s $t=A06 local sidereal time at %<9*(x$c %(w$c $p $a $t,$w $p $b $t,$s $t=A07 delta-t in ss.fract at %<9*(x$c %(v$c $p $a $t,$w $p $b $t,$s ; $t=B00 T moon/earth dist in radii at %<9*(x$c %(g$c $p $a $t,$w $p $b $t,$s $t=B01 T moon/earth dist in km at %<9*(x$c %(*g$c $p $a $t,$w $p $b $t,$s $t=B02 T moon's ecliptic longitude at %<9*(x$c %(d$c $p $a $t,$w $p $b $t,$s $t=B03 T moon's ecliptic latitude at %<9*(x$c %(e$c $p $a $t,$w $p $b $t,$s $t=B04 T moon's right ascension at %<9*(x$c %(f$c $p $a $t,$w $p $b $t,$s $t=B05 T moon's declination angle at %<9*(x$c %(c$c $p $a $t,$w $p $b $t,$s $t=B06 T moon's azimuth angle at %<9*(x$c %(b$c $p $a $t,$w $p $b $t,$s $t=B07 T moon's elevation angle at %<9*(x$c %(a$c $p $a $t,$w $p $b $t,$s $t=B08 T moon's horizontal parallax at %<9*(x$c %(*6$c $p $a $t,$w $p $b $t,$s $t=B09 T moon's semidiameter at %<9*(x$c %(*7$c $p $a $t,$w $p $b $t,$s $t=B10 T moon's magnitude at %<9*(x$c %(8$c $p $a $t,$w $p $b $t,$s $t=B11 T moon's phase angle at %<9*(x$c %(9$c $p $a $t,$w $p $b $t,$s $t=B12 T moon/sun elongation at %<9*(x$c %(h$c $p $a $t,$w $p $b $t,$s $t=B13 T moon/sun azimuth delta at %<9*(x$c %(B$c $p $a $t,$w $p $b $t,$s $t=B14 T moon/sun elevation delta at %<9*(x$c %(A$c $p $a $t,$w $p $b $t,$s $t=B15 T atmospheric refraction at %<9*(x$c %(*i$c $p $a $t,$w $p $b $t,$s ; $t=C00 G moon/earth dist in radii at %<9*(x$c %(t$c $p $a $t,$w $p $b $t,$s $t=C01 G moon/earth dist in km at %<9*(x$c %(*t$c $p $a $t,$w $p $b $t,$s $t=C02 G moon's ecliptic longitude at %<9*(x$c %(q$c $p $a $t,$w $p $b $t,$s $t=C03 G moon's ecliptic latitude at %<9*(x$c %(r$c $p $a $t,$w $p $b $t,$s $t=C04 G moon's right ascension at %<9*(x$c %(s$c $p $a $t,$w $p $b $t,$s $t=C05 G moon's declination angle at %<9*(x$c %(p$c $p $a $t,$w $p $b $t,$s $t=C06 G moon's azimuth angle at %<9*(x$c %(o$c $p $a $t,$w $p $b $t,$s $t=C07 G moon's elevation angle at %<9*(x$c %(n$c $p $a $t,$w $p $b $t,$s $t=C08 G moon's horizontal parallax at %<9*(x$c %(*j$c $p $a $t,$w $p $b $t,$s $t=C09 G moon's semidiameter at %<9*(x$c %(*k$c $p $a $t,$w $p $b $t,$s $t=C10 G moon's magnitude at %<9*(x$c %(l$c $p $a $t,$w $p $b $t,$s $t=C11 G moon's phase angle at %<9*(x$c %(m$c $p $a $t,$w $p $b $t,$s $t=C12 G moon/sun elongation at %<9*(x$c %(u$c $p $a $t,$w $p $b $t,$s $t=C13 G moon/sun azimuth delta at %<9*(x$c %(D$c $p $a $t,$w $p $b $t,$s $t=C14 G moon/sun elevation delta at %<9*(x$c %(C$c $p $a $t,$w $p $b $t,$s ; $t=DM0 moon's midnight (near lowest culmination) at %(0$c $p $a $t,$w $p $b $t,$s $t=DM2 T moon's elevation angle at moon's midnight %(L$c $p $a $t,$w $p $b $t,$s $t=DM3 T moon's phase angle at moon's midnight %(M$c $p $a $t,$w $p $b $t,$s $t=DM4 G moon's elevation angle at moon's midnight %(S$c $p $a $t,$w $p $b $t,$s $t=DM5 G moon's phase angle at moon's midnight %(T$c $p $a $t,$w $p $b $t,$s $t=DM6 moon/sun midnight delta %(I$c $p $a $t,$w $p $b $t,$s $t=DN1 moon's noon (near highest culmination) at %)1$c $p $a $t,$w $p $b $t,$s $t=DN2 T moon's elevation angle at moon's noon %)N$c $p $a $t,$w $p $b $t,$s $t=DN3 T moon's phase angle at moon's noon %)O$c $p $a $t,$w $p $b $t,$s $t=DN4 G moon's elevation angle at moon's noon %)U$c $p $a $t,$w $p $b $t,$s $t=DN5 G moon's phase angle at moon's noon %)V$c $p $a $t,$w $p $b $t,$s $t=DN6 moon/sun noon delta %)J$c $p $a $t,$w $p $b $t,$s ; $t=ER0 moon's upper limb (standard rise) rises at %(5$c $p $a $t,$w $p $b $t,$s $t=ER3 T moon's azimuth angle at moon's rise %(Q$c $p $a $t,$w $p $b $t,$s $t=ER4 T moon's elevation angle at moon's rise %(P$c $p $a $t,$w $p $b $t,$s $t=ER5 T moon's phase angle at moon's rise %(R$c $p $a $t,$w $p $b $t,$s $t=ER6 G moon's azimuth angle at moon's rise %(X$c $p $a $t,$w $p $b $t,$s $t=ER7 G moon's elevation angle at moon's rise %(W$c $p $a $t,$w $p $b $t,$s $t=ER8 G moon's phase angle at moon's rise %(Y$c $p $a $t,$w $p $b $t,$s $t=ER9 T moon/sun azimuth delta at moon's rise %(F$c $p $a $t,$w $p $b $t,$s $t=ERA T moon/sun elevation delta at moon's rise %(E$c $p $a $t,$w $p $b $t,$s $t=ERB G moon/sun azimuth delta at moon's rise %(H$c $p $a $t,$w $p $b $t,$s $t=ERC G moon/sun elevation delta at moon's rise %(G$c $p $a $t,$w $p $b $t,$s $t=ERD moon/sun standard rise delta %(K$c $p $a $t,$w $p $b $t,$s $t=FR0 moon's center rises at %(4$c $p $a $t,$w $p $b $t,$s $t=GR0 moon's upper limb at math-horizon rises at %(3$c $p $a $t,$w $p $b $t,$s $t=HR0 moon's center at math-horizon rises at %(2$c $p $a $t,$w $p $b $t,$s ; $t=HS1 moon's center at math-horizon sets at %)2$c $p $a $t,$w $p $b $t,$s $t=GS1 moon's upper limb at math-horizon sets at %)3$c $p $a $t,$w $p $b $t,$s $t=FS1 moon's center sets at %)4$c $p $a $t,$w $p $b $t,$s $t=ES1 moon's upper limb (standard set) sets at %)5$c $p $a $t,$w $p $b $t,$s $t=ES3 T moon's azimuth angle at moon's set %)Q$c $p $a $t,$w $p $b $t,$s $t=ES4 T moon's elevation angle at moon's set %)P$c $p $a $t,$w $p $b $t,$s $t=ES5 T moon's phase angle at moon's set %)R$c $p $a $t,$w $p $b $t,$s $t=ES6 G moon's azimuth angle at moon's set %)X$c $p $a $t,$w $p $b $t,$s $t=ES7 G moon's elevation angle at moon's set %)W$c $p $a $t,$w $p $b $t,$s $t=ES8 G moon's phase angle at moon's set %)Y$c $p $a $t,$w $p $b $t,$s $t=ES9 T moon/sun azimuth delta at moon's set %)F$c $p $a $t,$w $p $b $t,$s $t=ESA T moon/sun elevation delta at moon's set %)E$c $p $a $t,$w $p $b $t,$s $t=ESB G moon/sun azimuth delta at moon's set %)H$c $p $a $t,$w $p $b $t,$s $t=ESC G moon/sun elevation delta at moon's set %)G$c $p $a $t,$w $p $b $t,$s $t=ESD moon/sun standard set delta %)K$c $p $a $t,$w $p $b $t,$s ; $t=QE6 moon's upper limb (standard r/s) visible %[5$c $p $a $t,$w $p $b $t,$s $t=QE7 moon's upper limb (standard r/s) non-visible %]5$c $p $a $t,$w $p $b $t,$s $t=QF6 moon's center visible %[4$c $p $a $t,$w $p $b $t,$s $t=QF7 moon's center non-visible %]4$c $p $a $t,$w $p $b $t,$s $t=QG6 math-horizon moon's upper limb visible %[3$c $p $a $t,$w $p $b $t,$s $t=QG7 math-horizon moon's upper limb non-visible %]3$c $p $a $t,$w $p $b $t,$s $t=QH6 math-horizon moon's center visible %[2$c $p $a $t,$w $p $b $t,$s $t=QH7 math-horizon moon's center non-visible %]2$c $p $a $t,$w $p $b $t,$s gcal-4.1/data/gcalrc0000664000000000000000000001721412244130561011247 00000000000000; Default resource file for Gcal-2.20 or newer ; 00000101 Ayatollah Khomeini returns to Iran (1979)%i19790101 00000103 Battle of Princeton (1777)%i17770103 00000124 Spacecraft Voyager 2 reaches Uranus (1986)%i19860124 00000127 Auschwitz is liberated (1945)%i19450127 00000127 Paris Accord on ceasefire in Vietnam (1973)%i19730127 00000127 Three astronauts die in flash fire (1967)%i19670127 00000128 Explosion of Space Shuttle Challenger (1986)%i19860128 00000130 Beginning of the Tet Offensive in Vietnam (1968)%i19680130 00000130 Hitler becomes Chancellor of Germany (1933)%i19330130 00000211 Beatles invade America (1964)%i19640211 00000219 Battle of Iwo Jima (1945)%i19450219 00000227 Berlin Reichstag fire (1933)%i19330227 00000305 Joseph Stalin dies of stroke at 10 P.M. (1953)%i19530305 00000306 Fall of The Alamo, remember it (1836)%i18360306 00000313 Chernenko dies; Gorbachev chosen to lead (1985)%i19850313 00000314 Nazis take Austria (1938)%i19380314 00000316 Facing revolt,Russian Czar abdicates at 3pm (1917)%i19170316 00000321 Beginning of Spring 00000324 Exxon Valdez desaster at Alaska (1989)%i19890324 00000329 Coca-Cola is created (1886)%i18860329 00000330 J.Hinckley Jr. shoots Pres. Reagan in chest (1981)%i19810330 00000401 April's Fool's Day 00000402 Argentine troops seize Falkland Islands (1982)%i19820402 00000404 NATO established (1949)%i19490404 00000404 Rev. M.L. King, Jr. assassinated in Memphis (1968)%i19680404 00000405 Generalissimo Chang Kai-Shek dies in Taiwan (1975)%i19750405 00000405 World Trade Center opens in New York City (1974)%i19740405 00000406 Battle of Shiloh (1862)%i18620406 00000406 First modern Olympics held (1896)%i18960406 00000406 Peary,Henson and 4 Eskimos reach the N.Pole (1909)%i19090406 00000407 Prohibition in USA ends (1933)%i19330407 00000412 Juri Gagarin - first man in space (1961)%i19610412 00000414 U.S. President Lincoln Assassinated (1865)%i18650414 00000415 Stadium stampede at Sheffield,G.B.,94 dies (1989)%i19890415 00000415 Titanic sunk at 2:20 A.M., 1595 perish (1912)%i19120415 00000421 Plans to build Disneyland announced (1954)%i19540421 00000425 Chernobyl nuclear plant disaster (1986)%i19860425 00000425 Iran hostage rescue ends in fiasco (1980)%i19800425 00000430 Hitler commits suicide in his bunker (1945)%i19450430 00000430 Saigon surrenders to the Communists (1975)%i19750430 00000501 Lindbergh baby kidnapped (1932)%i19320501 00000501 North Korea established (1948)%i19480501 00000501 Russia shoots down U-2 plane (1960)%i19600501 00000506 The Hindenburg explodes in N.J. (1937)%i19370506 00000507 Lusitania sunk by Germans (1915)%i19150507 00000508 VE Day, Germany surrenders (1945)%i19450508 00000513 Assassin wounds Pope J. Paul II (1981)%i19810513 00000514 Warsaw Pact signed (1955)%i19550514 00000518 Massive protest in Beijing, China (1989)%i19890518 00000518 Mt. St. Helen blows its top (1980)%i19800518 00000520 Beijing: Martial law declared (1989)%i19890520 00000521 C. Lindbergh lands in Paris (1927)%i19270521 00000529 Edmund Hillary climbs Mt.Everest (1953)%i19530529 00000531 Adolf Eichmann hangs in Israel (1962)%i19620531 00000603 American victory at Midway (1942)%i19420603 00000603 Ayatollah Khomeini dies (1989)%i19890603 00000605 Six Day War, annexation of Jerusalem (1967)%i19670605 00000606 D-Day (1944)%i19440606 00000614 Falklands: Argentina surrenders (1982)%i19820614 00000615 Battle of Waterloo (1815)%i18150615 00000621 Beginning of Summer 00000625 Battle of the Little Bighorn (1876)%i18760625 00000625 North Korean Reds invade South (1950)%i19500625 00000628 Signature of Treaty of Versailles (1919)%i19190628 00000701 Battle of Gettysburg starts (50,000 dies) (1863)%i18630701 00000702 Ernest Hemingway kills self in Ketchum (1961)%i19610702 00000703 Raid on Entebbe, 105 rescued (1976)%i19760703 00000709 Spacecraft Voyager 2 reaches Jupiter (1979)%i19790709 00000714 Taiwan ends 37 years of martial law (1987)%i19870714 00000716 1st major battle of U.S. Civil War-Bull Run (1861)%i18610716 00000716 Bolsheviks murderd Czar and family (1918)%i19180716 00000717 Disneyland opens its doors in Anaheim, CA (1955)%i19550717 00000721 Neil Armstrong steps on moon (1969)%i19690721 00000727 Korean War ends (1953)%i19530727 00000801 Olympics opening ceremony in Berlin (1936)%i19360801 00000805 Marilyn Monroe dies at age 36 (1962)%i19620805 00000805 Nuclear Test Ban Treaty signed (1963)%i19630805 00000806 First atomic bomb dropped on Hiroshima (1945)%i19450806 00000807 U.S. landing at Guadalcanal (1942)%i19420807 00000808 Nixon quits, first president to do so (1974)%i19740808 00000809 Second atomic bomb dropped on Nagasaki (1945)%i19450809 00000812 Beginning of building of the Berlin Wall (1961)%i19610812 00000815 Japanese delegation surrenders to MacArthur (1945)%i19450815 00000816 Elvis Presley dies at age 42 (1977)%i19770816 00000820 Spacecraft Voyager 2 launched (1977)%i19770820 00000821 Soviet tanks invade Czechoslovakia (1968)%i19680821 00000823 Sacco and Vanzetti die on electric chair (1927)%i19270823 00000825 Spacecraft Voyager 2 reaches Neptune (1989)%i19890825 00000825 Spacecraft Voyager 2 reaches Saturn (1981)%i19810825 00000828 Martin Luther King: "I have a dream" (1963)%i19630828 00000831 Soviet shoots down South Korean Boeing 747 (1983)%i19830831 00000901 Hitler's troops invades Poland,Begin of WW2 (1939)%i19390901 00000902 End of WW2 (1945)%i19450902 00000903 U.S. Viking II lands on Mars (1976)%i19760903 00000904 Mark Spitz wins 7 golds (1972)%i19720904 00000905 Munich Olympic Massacre (1972)%i19720905 00000906 President McKinley assassinated (1901)%i19010906 00000909 Mao Tse-Tung dies at age 82 (1976)%i19760909 00000923 Beginning of Autumn 00000923 Beginning of Vienna Congress (1814)%i18140923 00001001 Germany annexes Sudetentland (1938)%i19381001 00001001 Mao proclaims People's Republic of China (1949)%i19491001 00001001 The 6.1 Whittier Earthquake in California (1987)%i19871001 00001004 Soviet launches Sputnik (1957)%i19571004 00001006 Anwar Sadat assassinated (1981)%i19811006 00001007 Arabs hijack Italian liner Achille Lauro (1985)%i19851007 00001010 Sun Yat-Sen overthrows in China (1911)%i19111010 00001014 Field Marshal Erwin Rommel commits suicide (1944)%i19441014 00001015 Nazi Hermann Goering dies in prison (1946)%i19461015 00001016 China becomes world's 5th nuclear power (1964)%i19641016 00001017 Albert Einstein flees Germany (1933)%i19331017 00001018 Beginning of Cuban Missile Crisis (1962)%i19621018 00001018 Thomas A. Edison dies in West Orange, N.J. (1931)%i19311018 00001019 Black Monday on Wall Street,down 508.32pts (1987)%i19871019 00001019 T.A. Edison demonstrates the electric light (1879)%i18791019 00001024 "Black Thursday" on Wall Street (1929)%i19291024 00001028 Jacquel. Kennedy marries Aristotle Onassis (1968)%i19681028 00001029 John DeLorean indicted for drug trafficking (1982)%i19821029 00001031 1900 U.S. Marines invade Grenada (1983)%i19831031 00001031 Halloween 00001107 Russia: Bolsheviks seize power (1917)%i19171107 00001108 Hitler's Beer-Hall Putsch (1923)%i19231108 00001109 "Crystal Night" in Berlin (1938)%i19381109 00001111 Germany signs armistice (1918)%i19181111 00001122 JFK assassinated in Dallas (1963)%i19631122 00001202 1st controlled nuclear reaction (1942)%i19421202 00001203 1st human heart transplant performed (1967)%i19671203 00001203 Union Carbide disaster in Bhopal, India (1984)%i19841203 00001207 Pearl Harbor attacked on this day (1941)%i19411207 00001213 Wright Brother's 1st flight at Kittyhawk (1903)%i19031213 00001214 Ronald Amundsen reaches the South Pole (1911)%i19111214 00001220 "Operation Just Cause": U.S. invades Panama (1989)%i19891220 00001222 Beginning of Winter 00001223 Hideki Tojo hangs for war crimes (1948)%i19481223 00001227 Soviet troops invade Afghanistan (1979)%i19791227 gcal-4.1/data/Makefile.am0000664000000000000000000000730712353315047012134 00000000000000# GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . dataREADMEFILE = \ $(srcdir)/README dataGCALRCFILE = \ $(srcdir)/gcalrc dataEXAMPLEFILES = \ $(srcdir)/ansipic.rc \ $(srcdir)/birthday.rc \ $(srcdir)/bkk.rc \ $(srcdir)/de-mdata.rc \ $(srcdir)/de-sdata.rc \ $(srcdir)/mdata.rc \ $(srcdir)/meteoric.rc \ $(srcdir)/ms.rc \ $(srcdir)/sdata.rc \ $(srcdir)/sun-moon.rc \ $(srcdir)/textpic.rc \ $(srcdir)/wloc.rc \ $(srcdir)/wtt1.rc \ $(srcdir)/wtt2.rc \ $(srcdir)/wtt3.rc dataMISCFILES = \ $(srcdir)/Makefile.in \ $(dataREADMEFILE) \ $(dataGCALRCFILE) \ $(dataEXAMPLEFILES) datacalendarsDIR = calendars# datacalendarsFILES = \ $(srcdir)/$(datacalendarsDIR)/calendar.birth \ $(srcdir)/$(datacalendarsDIR)/calendar.chris \ $(srcdir)/$(datacalendarsDIR)/calendar.compu \ $(srcdir)/$(datacalendarsDIR)/calendar.histo \ $(srcdir)/$(datacalendarsDIR)/calendar.holid \ $(srcdir)/$(datacalendarsDIR)/calendar.judai \ $(srcdir)/$(datacalendarsDIR)/calendar.music \ $(srcdir)/$(datacalendarsDIR)/calendar.ushol datadatesDIR = dates# datadatesFILES = \ $(srcdir)/$(datadatesDIR)/ancient \ $(srcdir)/$(datadatesDIR)/can_holiday \ $(srcdir)/$(datadatesDIR)/celtic \ $(srcdir)/$(datadatesDIR)/computing \ $(srcdir)/$(datadatesDIR)/events \ $(srcdir)/$(datadatesDIR)/events1 \ $(srcdir)/$(datadatesDIR)/events2 \ $(srcdir)/$(datadatesDIR)/events3 \ $(srcdir)/$(datadatesDIR)/events4 \ $(srcdir)/$(datadatesDIR)/events5 \ $(srcdir)/$(datadatesDIR)/events6 \ $(srcdir)/$(datadatesDIR)/gdead \ $(srcdir)/$(datadatesDIR)/hawaii \ $(srcdir)/$(datadatesDIR)/literature \ $(srcdir)/$(datadatesDIR)/lives \ $(srcdir)/$(datadatesDIR)/lives1 \ $(srcdir)/$(datadatesDIR)/lives2 \ $(srcdir)/$(datadatesDIR)/lives3 \ $(srcdir)/$(datadatesDIR)/lives4 \ $(srcdir)/$(datadatesDIR)/lives5 \ $(srcdir)/$(datadatesDIR)/lives6 \ $(srcdir)/$(datadatesDIR)/lotr \ $(srcdir)/$(datadatesDIR)/movies \ $(srcdir)/$(datadatesDIR)/music \ $(srcdir)/$(datadatesDIR)/radio \ $(srcdir)/$(datadatesDIR)/sfo \ $(srcdir)/$(datadatesDIR)/space \ $(srcdir)/$(datadatesDIR)/sports \ $(srcdir)/$(datadatesDIR)/television \ $(srcdir)/$(datadatesDIR)/usa_holiday \ $(srcdir)/$(datadatesDIR)/usa_other \ $(srcdir)/$(datadatesDIR)/usa_states \ $(srcdir)/$(datadatesDIR)/witchcraft \ $(srcdir)/$(datadatesDIR)/world datadatesMISCFILES = \ $(srcdir)/$(datadatesDIR)/CREDITS \ $(srcdir)/$(datadatesDIR)/README datascriptsDIR = scripts# datascriptsFILES = \ $(srcdir)/$(datascriptsDIR)/cal2gcal.awk \ $(srcdir)/$(datascriptsDIR)/cal2gcal.pl \ $(srcdir)/$(datascriptsDIR)/ct2gcal.awk \ $(srcdir)/$(datascriptsDIR)/ct2gcal.pl \ $(srcdir)/$(datascriptsDIR)/old2v220.awk \ $(srcdir)/$(datascriptsDIR)/old2v220.pl \ $(srcdir)/$(datascriptsDIR)/v2x2v300.awk \ $(srcdir)/$(datascriptsDIR)/v2x2v300.pl dist_pkgdata_DATA = \ $(dataMISCFILES) \ $(datacalendarsFILES) \ $(datadatesFILES) \ $(datadatesMISCFILES) \ $(datascriptsFILES) gcal-4.1/data/Makefile.in0000664000000000000000000017012613041163550012140 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acos.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asin.m4 \ $(top_srcdir)/m4/assert.m4 $(top_srcdir)/m4/atan.m4 \ $(top_srcdir)/m4/atan2.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/cond.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/cos.m4 $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/fatal-signal.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fflush.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/floor.m4 \ $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpurge.m4 \ $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fseek.m4 $(top_srcdir)/m4/fseeko.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftell.m4 \ $(top_srcdir)/m4/ftello.m4 $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/limits-h.m4 \ $(top_srcdir)/m4/link.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/log.m4 $(top_srcdir)/m4/log10.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mkostemp.m4 \ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \ $(top_srcdir)/m4/pipe2.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/posix_spawn.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/raise.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/realloc.m4 \ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/sched_h.m4 \ $(top_srcdir)/m4/secure_getenv.m4 \ $(top_srcdir)/m4/sig_atomic_t.m4 $(top_srcdir)/m4/sigaction.m4 \ $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sin.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/spawn-pipe.m4 \ $(top_srcdir)/m4/spawn_h.m4 $(top_srcdir)/m4/sqrt.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strcspn.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strstr.m4 \ $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tan.m4 \ $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/tmpdir.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/wait-process.m4 \ $(top_srcdir)/m4/waitpid.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(dist_pkgdata_DATA) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pkgdatadir)" DATA = $(dist_pkgdata_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ACOS_LIBM = @ACOS_LIBM@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASIN_LIBM = @ASIN_LIBM@ ATAN2_LIBM = @ATAN2_LIBM@ ATAN_LIBM = @ATAN_LIBM@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CEIL_LIBM = @CEIL_LIBM@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ COS_LIBM = @COS_LIBM@ CP = @CP@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FLOAT_H = @FLOAT_H@ FLOOR_LIBM = @FLOOR_LIBM@ GCAL_HD_OBJS = @GCAL_HD_OBJS@ GCAL_RC_OBJS = @GCAL_RC_OBJS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ACOSF = @GNULIB_ACOSF@ GNULIB_ACOSL = @GNULIB_ACOSL@ GNULIB_ASINF = @GNULIB_ASINF@ GNULIB_ASINL = @GNULIB_ASINL@ GNULIB_ATAN2F = @GNULIB_ATAN2F@ GNULIB_ATANF = @GNULIB_ATANF@ GNULIB_ATANL = @GNULIB_ATANL@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CBRT = @GNULIB_CBRT@ GNULIB_CBRTF = @GNULIB_CBRTF@ GNULIB_CBRTL = @GNULIB_CBRTL@ GNULIB_CEIL = @GNULIB_CEIL@ GNULIB_CEILF = @GNULIB_CEILF@ GNULIB_CEILL = @GNULIB_CEILL@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ GNULIB_COSF = @GNULIB_COSF@ GNULIB_COSHF = @GNULIB_COSHF@ GNULIB_COSL = @GNULIB_COSL@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXP2 = @GNULIB_EXP2@ GNULIB_EXP2F = @GNULIB_EXP2F@ GNULIB_EXP2L = @GNULIB_EXP2L@ GNULIB_EXPF = @GNULIB_EXPF@ GNULIB_EXPL = @GNULIB_EXPL@ GNULIB_EXPM1 = @GNULIB_EXPM1@ GNULIB_EXPM1F = @GNULIB_EXPM1F@ GNULIB_EXPM1L = @GNULIB_EXPM1L@ GNULIB_FABSF = @GNULIB_FABSF@ GNULIB_FABSL = @GNULIB_FABSL@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ GNULIB_FMA = @GNULIB_FMA@ GNULIB_FMAF = @GNULIB_FMAF@ GNULIB_FMAL = @GNULIB_FMAL@ GNULIB_FMOD = @GNULIB_FMOD@ GNULIB_FMODF = @GNULIB_FMODF@ GNULIB_FMODL = @GNULIB_FMODL@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPF = @GNULIB_FREXPF@ GNULIB_FREXPL = @GNULIB_FREXPL@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_HYPOT = @GNULIB_HYPOT@ GNULIB_HYPOTF = @GNULIB_HYPOTF@ GNULIB_HYPOTL = @GNULIB_HYPOTL@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_ILOGB = @GNULIB_ILOGB@ GNULIB_ILOGBF = @GNULIB_ILOGBF@ GNULIB_ILOGBL = @GNULIB_ILOGBL@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPF = @GNULIB_LDEXPF@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOG = @GNULIB_LOG@ GNULIB_LOG10 = @GNULIB_LOG10@ GNULIB_LOG10F = @GNULIB_LOG10F@ GNULIB_LOG10L = @GNULIB_LOG10L@ GNULIB_LOG1P = @GNULIB_LOG1P@ GNULIB_LOG1PF = @GNULIB_LOG1PF@ GNULIB_LOG1PL = @GNULIB_LOG1PL@ GNULIB_LOG2 = @GNULIB_LOG2@ GNULIB_LOG2F = @GNULIB_LOG2F@ GNULIB_LOG2L = @GNULIB_LOG2L@ GNULIB_LOGB = @GNULIB_LOGB@ GNULIB_LOGBF = @GNULIB_LOGBF@ GNULIB_LOGBL = @GNULIB_LOGBL@ GNULIB_LOGF = @GNULIB_LOGF@ GNULIB_LOGL = @GNULIB_LOGL@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_MODF = @GNULIB_MODF@ GNULIB_MODFF = @GNULIB_MODFF@ GNULIB_MODFL = @GNULIB_MODFL@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@ GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@ GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@ GNULIB_POSIX_SPAWNATTR_GETPGROUP = @GNULIB_POSIX_SPAWNATTR_GETPGROUP@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_GETSIGMASK = @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@ GNULIB_POSIX_SPAWNATTR_INIT = @GNULIB_POSIX_SPAWNATTR_INIT@ GNULIB_POSIX_SPAWNATTR_SETFLAGS = @GNULIB_POSIX_SPAWNATTR_SETFLAGS@ GNULIB_POSIX_SPAWNATTR_SETPGROUP = @GNULIB_POSIX_SPAWNATTR_SETPGROUP@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_SETSIGMASK = @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@ GNULIB_POSIX_SPAWNP = @GNULIB_POSIX_SPAWNP@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT@ GNULIB_POWF = @GNULIB_POWF@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMAINDER = @GNULIB_REMAINDER@ GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RINT = @GNULIB_RINT@ GNULIB_RINTF = @GNULIB_RINTF@ GNULIB_RINTL = @GNULIB_RINTL@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_ROUND = @GNULIB_ROUND@ GNULIB_ROUNDF = @GNULIB_ROUNDF@ GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SINF = @GNULIB_SINF@ GNULIB_SINHF = @GNULIB_SINHF@ GNULIB_SINL = @GNULIB_SINL@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTF = @GNULIB_SQRTF@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TANF = @GNULIB_TANF@ GNULIB_TANHF = @GNULIB_TANHF@ GNULIB_TANL = @GNULIB_TANL@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ HAVE_ATAN2F = @HAVE_ATAN2F@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@ HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@ HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@ HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@ HAVE_DECL_LOGB = @HAVE_DECL_LOGB@ HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_REMAINDER = @HAVE_DECL_REMAINDER@ HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@ HAVE_DECL_RINTF = @HAVE_DECL_RINTF@ HAVE_DECL_ROUND = @HAVE_DECL_ROUND@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FMA = @HAVE_FMA@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LOG10F = @HAVE_LOG10F@ HAVE_LOG10L = @HAVE_LOG10L@ HAVE_LOG1P = @HAVE_LOG1P@ HAVE_LOG1PF = @HAVE_LOG1PF@ HAVE_LOG1PL = @HAVE_LOG1PL@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MODFF = @HAVE_MODFF@ HAVE_MODFL = @HAVE_MODFL@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@ HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@ HAVE_POSIX_SPAWN_FILE_ACTIONS_T = @HAVE_POSIX_SPAWN_FILE_ACTIONS_T@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RINT = @HAVE_RINT@ HAVE_RINTL = @HAVE_RINTL@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCHED_H = @HAVE_SCHED_H@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SINF = @HAVE_SINF@ HAVE_SINHF = @HAVE_SINHF@ HAVE_SINL = @HAVE_SINL@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_SPAWN_H = @HAVE_SPAWN_H@ HAVE_SQRTF = @HAVE_SQRTF@ HAVE_SQRTL = @HAVE_SQRTL@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SCHED_PARAM = @HAVE_STRUCT_SCHED_PARAM@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LIB_POSIX_SPAWN = @LIB_POSIX_SPAWN@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOG10_LIBM = @LOG10_LIBM@ LOG_LIBM = @LOG_LIBM@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_SCHED_H = @NEXT_SCHED_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_SPAWN_H = @NEXT_SPAWN_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PAGER1 = @PAGER1@ PAGER2 = @PAGER2@ PAGER3 = @PAGER3@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ POW_LIBM = @POW_LIBM@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACOSF = @REPLACE_ACOSF@ REPLACE_ASINF = @REPLACE_ASINF@ REPLACE_ATAN2F = @REPLACE_ATAN2F@ REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_COSF = @REPLACE_COSF@ REPLACE_COSHF = @REPLACE_COSHF@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ REPLACE_EXPF = @REPLACE_EXPF@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ REPLACE_FABSL = @REPLACE_FABSL@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ REPLACE_FMA = @REPLACE_FMA@ REPLACE_FMAF = @REPLACE_FMAF@ REPLACE_FMAL = @REPLACE_FMAL@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ REPLACE_LOG10F = @REPLACE_LOG10F@ REPLACE_LOG10L = @REPLACE_LOG10L@ REPLACE_LOG1P = @REPLACE_LOG1P@ REPLACE_LOG1PF = @REPLACE_LOG1PF@ REPLACE_LOG1PL = @REPLACE_LOG1PL@ REPLACE_LOG2 = @REPLACE_LOG2@ REPLACE_LOG2F = @REPLACE_LOG2F@ REPLACE_LOG2L = @REPLACE_LOG2L@ REPLACE_LOGB = @REPLACE_LOGB@ REPLACE_LOGBF = @REPLACE_LOGBF@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_SPAWN = @REPLACE_POSIX_SPAWN@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SINF = @REPLACE_SINF@ REPLACE_SINHF = @REPLACE_SINHF@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TANF = @REPLACE_TANF@ REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SCHED_H = @SCHED_H@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIN_LIBM = @SIN_LIBM@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ SQRT_LIBM = @SQRT_LIBM@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TAN_LIBM = @TAN_LIBM@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ZDUMP = @ZDUMP@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dataREADMEFILE = \ $(srcdir)/README dataGCALRCFILE = \ $(srcdir)/gcalrc dataEXAMPLEFILES = \ $(srcdir)/ansipic.rc \ $(srcdir)/birthday.rc \ $(srcdir)/bkk.rc \ $(srcdir)/de-mdata.rc \ $(srcdir)/de-sdata.rc \ $(srcdir)/mdata.rc \ $(srcdir)/meteoric.rc \ $(srcdir)/ms.rc \ $(srcdir)/sdata.rc \ $(srcdir)/sun-moon.rc \ $(srcdir)/textpic.rc \ $(srcdir)/wloc.rc \ $(srcdir)/wtt1.rc \ $(srcdir)/wtt2.rc \ $(srcdir)/wtt3.rc dataMISCFILES = \ $(srcdir)/Makefile.in \ $(dataREADMEFILE) \ $(dataGCALRCFILE) \ $(dataEXAMPLEFILES) datacalendarsDIR = calendars# datacalendarsFILES = \ $(srcdir)/$(datacalendarsDIR)/calendar.birth \ $(srcdir)/$(datacalendarsDIR)/calendar.chris \ $(srcdir)/$(datacalendarsDIR)/calendar.compu \ $(srcdir)/$(datacalendarsDIR)/calendar.histo \ $(srcdir)/$(datacalendarsDIR)/calendar.holid \ $(srcdir)/$(datacalendarsDIR)/calendar.judai \ $(srcdir)/$(datacalendarsDIR)/calendar.music \ $(srcdir)/$(datacalendarsDIR)/calendar.ushol datadatesDIR = dates# datadatesFILES = \ $(srcdir)/$(datadatesDIR)/ancient \ $(srcdir)/$(datadatesDIR)/can_holiday \ $(srcdir)/$(datadatesDIR)/celtic \ $(srcdir)/$(datadatesDIR)/computing \ $(srcdir)/$(datadatesDIR)/events \ $(srcdir)/$(datadatesDIR)/events1 \ $(srcdir)/$(datadatesDIR)/events2 \ $(srcdir)/$(datadatesDIR)/events3 \ $(srcdir)/$(datadatesDIR)/events4 \ $(srcdir)/$(datadatesDIR)/events5 \ $(srcdir)/$(datadatesDIR)/events6 \ $(srcdir)/$(datadatesDIR)/gdead \ $(srcdir)/$(datadatesDIR)/hawaii \ $(srcdir)/$(datadatesDIR)/literature \ $(srcdir)/$(datadatesDIR)/lives \ $(srcdir)/$(datadatesDIR)/lives1 \ $(srcdir)/$(datadatesDIR)/lives2 \ $(srcdir)/$(datadatesDIR)/lives3 \ $(srcdir)/$(datadatesDIR)/lives4 \ $(srcdir)/$(datadatesDIR)/lives5 \ $(srcdir)/$(datadatesDIR)/lives6 \ $(srcdir)/$(datadatesDIR)/lotr \ $(srcdir)/$(datadatesDIR)/movies \ $(srcdir)/$(datadatesDIR)/music \ $(srcdir)/$(datadatesDIR)/radio \ $(srcdir)/$(datadatesDIR)/sfo \ $(srcdir)/$(datadatesDIR)/space \ $(srcdir)/$(datadatesDIR)/sports \ $(srcdir)/$(datadatesDIR)/television \ $(srcdir)/$(datadatesDIR)/usa_holiday \ $(srcdir)/$(datadatesDIR)/usa_other \ $(srcdir)/$(datadatesDIR)/usa_states \ $(srcdir)/$(datadatesDIR)/witchcraft \ $(srcdir)/$(datadatesDIR)/world datadatesMISCFILES = \ $(srcdir)/$(datadatesDIR)/CREDITS \ $(srcdir)/$(datadatesDIR)/README datascriptsDIR = scripts# datascriptsFILES = \ $(srcdir)/$(datascriptsDIR)/cal2gcal.awk \ $(srcdir)/$(datascriptsDIR)/cal2gcal.pl \ $(srcdir)/$(datascriptsDIR)/ct2gcal.awk \ $(srcdir)/$(datascriptsDIR)/ct2gcal.pl \ $(srcdir)/$(datascriptsDIR)/old2v220.awk \ $(srcdir)/$(datascriptsDIR)/old2v220.pl \ $(srcdir)/$(datascriptsDIR)/v2x2v300.awk \ $(srcdir)/$(datascriptsDIR)/v2x2v300.pl dist_pkgdata_DATA = \ $(dataMISCFILES) \ $(datacalendarsFILES) \ $(datadatesFILES) \ $(datadatesMISCFILES) \ $(datascriptsFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu data/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-dist_pkgdataDATA: $(dist_pkgdata_DATA) @$(NORMAL_INSTALL) @list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \ done uninstall-dist_pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(pkgdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_pkgdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_pkgdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dist_pkgdataDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-dist_pkgdataDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gcal-4.1/data/wtt3.rc0000664000000000000000000000765112353314150011323 00000000000000; One column world time table with sunset/sunrise etc. for Gcal-2.20 or newer ; ; $Id: wtt3.rc 0.01 2000/03/05 00:00:01 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; Try this resource file by using the `-QUx' option of Gcal. ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; ; Either set `$f' to `%@' or to `%@*' ; for displaying using the 12-hours time format. ; $f=%@ ;$f=%@* ; ; The line templates. ; $p=0*d1#999 $a=$f$t %o$c,$t rise,%s$c,$t set %u$c,$t day,%z$c,$t night $l ; ; The locations. ; $l=Samoa $c=-1350-17144 $t=-660 $p $a ; $l=Honolulu $c=+211825-1575130 $t=-600 $p $a ; $l=Anchorage $c=+611305-1495401 $t=-540 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=San Francisco $c=+3747-12230 $t=-480 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Denver $c=+394421-1045903 $t=-420 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Managua $c=+1206-08620 $t=-300 $p $a ; $l=Chicago $c=+415100-0873900 $t=-360 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Montreal $c=+4531-07334 $t=-300 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=New York $c=+404251-0740023 $t=-300 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Bermuda $c=+3217-06446 $t=-240 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Rio de Janeiro $c=-2300-04312 $t=-180 a=02sat2 b=10sun1 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a ; $l=Azores $c=+3744-02540 $t=-60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Dakar $c=+1440-01726 $t=0 $p $a ; $l=London $c=+512830-0001845 $t=0 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Lisbon $c=+3843-00908 $t=0 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=%3%1Münster%2 $c=+5158+00738 $t=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Madrid $c=+4024-00341 $t=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Stockholm $c=+5920+01803 $t=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Johannesburg $c=-2615+02800 $t=120 $p $a ; $l=Istanbul $c=+4101+02858 $t=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Helsinki $c=+6010+02458 $t=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Athens $c=+3758+02343 $t=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Nairobi $c=-0117+03649 $t=180 $p $a ; $l=Moscow $c=+5545+03735 $t=180 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Tehran $c=+3540+05126 $t=210 a=0321 b=0922 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Bombay $c=+1855+07250 $t=330 $p $a ; $l=Bangkok $c=+1345+10035 $t=420 $p $a ; $l=Beijing $c=+3955+11620 $t=480 $p $a ; $l=Hongkong $c=+2217+11409 $t=480 $p $a ; $l=Tokyo $c=+3542+13946 $t=540 $p $a ; $l=Seoul $c=+3733+12658 $t=540 $p $a ; $l=Sydney $c=-3352+15113 $t=600 a=03sun9 b=10sun9 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a ; $l=Wellington $c=-4119+17446 $t=720 a=03sun3 b=10sun1 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a gcal-4.1/data/sdata.rc0000664000000000000000000002003512353314150011505 00000000000000; Some Sun based astronomical times and data for Gcal-2.20 or newer ; ; $Id: sdata.rc 0.07 2000/06/30 00:00:07 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; Try this resource file by using the `-QUx' option of Gcal. ; Try `--time-offset=ARG' to calculate some data for a definite time! ; Try `--precise' to display data and times more precise! ; ; Either set your preferred geographical base location here ; or comment the proper next lines and run Gcal with the `--text-variable=ARG' ; option for passing the geographical base location in a flexible manner like: ; ; gcal -f./sdata.rc -QUx --text-var='$l=Münster:$c=+5158+00738+61:$z=60' --time-offset=t ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; ; ; Name of location ; $l=%3%1Münster%2 ; Geographical co-ordinate of location ; $c=+5158+00738+61 ; Timezone of location ; $z=60 ; ; Line templates $p=0*d1#999 ; $l= $c= $z= ; ; Data. $p A00 calculations for geographic co-ordinate $c,$z/$l $p A01 gmt time and date %@ $p A02 local time and date %t /%n $p A03 given time-offset %ot$c $p A04 local julian date at %<9*ot$c %ou$c,$z $p A05 local julian ephemeris date at %<9*ot$c %ov$c,$z $p A06 local sidereal time at %<9*ot$c %os$c,$z $p A07 equation-of-time at %<9*ot$c %ow$c,$z $p A08 delta-t in ss.fract at %<9*ot$c %or$c,$z ; $p B00 T sun/earth distance in au at %<9*ot$c %of$c,$z $p B01 T sun/earth distance in km at %<9*ot$c %o*f$c,$z $p B02 T sun's ecliptic longitude at %<9*ot$c %od$c,$z $p B03 T sun's right ascension at %<9*ot$c %oe$c,$z $p B04 T sun's declination angle at %<9*ot$c %oc$c,$z $p B05 T sun's azimuth angle at %<9*ot$c %ob$c,$z $p B06 T sun's elevation angle at %<9*ot$c %oa$c,$z $p B07 T sun's horizontal parallax at %<9*ot$c %o*g$c,$z $p B08 T sun's semidiameter at %<9*ot$c %o*h$c,$z $p B09 T sun/moon azimuth delta at %<9*ot$c %oy$c,$z $p B10 T sun/moon elevation delta at %<9*ot$c %ox$c,$z $p B11 T atmospheric refraction at %<9*ot$c %o*i$c,$z ; $p C00 G sun/earth distance in au at %<9*ot$c %oo$c,$z $p C01 G sun/earth distance in km at %<9*ot$c %o*o$c,$z $p C02 G sun's ecliptic longitude at %<9*ot$c %om$c,$z $p C03 G sun's right ascension at %<9*ot$c %on$c,$z $p C04 G sun's declination angle at %<9*ot$c %ol$c,$z $p C05 G sun's azimuth angle at %<9*ot$c %ok$c,$z $p C06 G sun's elevation angle at %<9*ot$c %oj$c,$z $p C07 G sun's horizontal parallax at %<9*ot$c %o*p$c,$z $p C08 G sun's semidiameter at %<9*ot$c %o*q$c,$z $p C09 G sun/moon azimuth delta at %<9*ot$c %oA$c,$z $p C10 G sun/moon elevation delta at %<9*ot$c %oz$c,$z ; $p DM0 sun's midnight (near lowest culmination) at %o0$c,$z $p DM2 T sun's elevation angle at sun's midnight %oI$c,$z $p DM3 G sun's elevation angle at sun's midnight %oM$c,$z $p DM4 sun/moon midnight delta %oF$c,$z $p DN1 sun's noon (near highest culmination) at %s1$c,$z $p DN2 T sun's elevation angle at sun's noon %sJ$c,$z $p DN3 G sun's elevation angle at sun's noon %sN$c,$z $p DN4 sun/moon noon delta %sG$c,$z ; $p ER0 astronomical twilight starts at %o9$c,$z $p FR0 amateur-astronomers twilight starts at %o8$c,$z $p GR0 nautical twilight starts at %o7$c,$z $p HR0 civil twilight starts at %o6$c,$z $p IR0 sun's upper limb (standard rise) rises at %o5$c,$z $p IR3 T sun's azimuth angle at sun's rise %oL$c,$z $p IR4 T sun's elevation angle at sun's rise %oK$c,$z $p IR5 G sun's azimuth angle at sun's rise %oP$c,$z $p IR6 G sun's elevation angle at sun's rise %oO$c,$z $p IR7 T sun/moon azimuth delta at sun's rise %oC$c,$z $p IR8 T sun/moon elevation delta at sun's rise %oB$c,$z $p IR9 G sun/moon azimuth delta at sun's rise %oE$c,$z $p IRA G sun/moon elevation delta at sun's rise %oD$c,$z $p IRB sun/moon standard rise delta %oH$c,$z $p JR0 sun's center rises at %o4$c,$z $p KR0 sun's upper limb at math-horizon rises at %o3$c,$z $p LR0 sun's center at math-horizon rises at %o2$c,$z $p MR0 shadow length equal 2x object height at %oQ$c,$z $p NR0 shadow length equal 1x object height at %oR$c,$z ; $p NS1 shadow length equal 1x object height at %sR$c,$z $p MS1 shadow length equal 2x object height at %sQ$c,$z $p LS1 sun's center at math-horizon sets at %s2$c,$z $p KS1 sun's upper limb at math-horizon sets at %s3$c,$z $p JS1 sun's center sets at %s4$c,$z $p IS1 sun's upper limb (standard set) sets at %s5$c,$z $p IS3 T sun's azimuth angle at sun's set %sL$c,$z $p IS4 T sun's elevation angle at sun's set %sK$c,$z $p IS5 G sun's azimuth angle at sun's set %sP$c,$z $p IS6 G sun's elevation angle at sun's set %sO$c,$z $p IS7 T sun/moon azimuth delta at sun's set %sC$c,$z $p IS8 T sun/moon elevation delta at sun's set %sB$c,$z $p IS9 G sun/moon azimuth delta at sun's set %sE$c,$z $p ISA G sun/moon elevation delta at sun's set %sD$c,$z $p ISB sun/moon standard set delta %sH$c,$z $p HS1 civil twilight ends at %s6$c,$z $p GS1 nautical twilight ends at %s7$c,$z $p FS1 amateur-astronomers twilight ends at %s8$c,$z $p ES1 astronomical twilight ends at %s9$c,$z ; $p QE5 astronomical twilight visible %u9$c,$z $p QE6 astronomical twilight non-visible %z9$c,$z $p QF5 amateur-astronomers twilight visible %u8$c,$z $p QF6 amateur-astronomers twilight non-visible %z8$c,$z $p QG5 nautical twilight visible %u7$c,$z $p QG6 nautical twilight non-visible %z7$c,$z $p QH5 civil twilight visible %u6$c,$z $p QH6 civil twilight non-visible %z6$c,$z $p QI5 sun's upper limb (standard r/s) visible %u5$c,$z $p QI6 sun's upper limb (standard r/s) non-visible %z5$c,$z $p QJ5 sun's center visible %u4$c,$z $p QJ6 sun's center non-visible %z4$c,$z $p QK5 math-horizon sun's upper limb visible %u3$c,$z $p QK6 math-horizon sun's upper limb non-visible %z3$c,$z $p QL5 math-horizon sun's center visible %u2$c,$z $p QL6 math-horizon sun's center non-visible %z2$c,$z $p QM5 shadow length 2x object height visible %uQ$c,$z $p QM6 shadow length 2x object height non-visible %zQ$c,$z $p QN5 shadow length 1x object height visible %uR$c,$z $p QN6 shadow length 1x object height non-visible %zR$c,$z gcal-4.1/data/calendars/0000775000000000000000000000000013041164075012103 500000000000000gcal-4.1/data/calendars/calendar.music0000664000000000000000000002301112244130561014630 0000000000000001/01 Country Joe McDonald is born in El Monte, California, 1942 01/03 Steven Stills is born in Dallas, 1945 01/04 Jazz great Charlie Mingus dies at 57 in Cuernavaca, Mexico, 1979 01/08 David Bowie (then David Robert Jones) is born in London, 1947 01/09 James Patrick Page (Led Zeppelin) is born in Middlesex, England, 1945 01/10 Blues guitarist Howlin' Wolf dies in Chicago, 1976 01/10 Jim Croce is born in Phildelphia, 1943 01/10 Pat Benatar is born in Long Island, 1952 01/10 Rod Stewart is born in Glasgow, Scotland, 1945 01/13 Eric Clapton plays the "Rainbow Concert" in London, 1973 01/17 Led Zeppelin's first album is released, 1969 01/19 Janis Joplin is born in Port Arthur, Texas, 1943 01/22 Sam Cooke is born in Chicago, 1935 01/24 Warren Zevon is born, 1947 01/25 Bob Dylan plays the second "Hurricane" benefit, in the Astrodome, 1978 01/27 Bobby "Blue" Bland (Robert Calvin Bland) is born in Tennessee, 1930 01/27 Wolfgang Amadeus Mozart born in Salzburg, 1756 01/28 Jimi Hendrix headlines Madison Square Garden, 1970 01/30 Lightnin' Hopkins, the most-recorded blues artist ever, dies, 1982 01/31 The Grateful Dead are busted in New Orleans, 1970 02/01 RCA Victor unveils the 45 rpm record playing system, 1949 02/02 Graham Nash is born in Lancashire, England, 1942 02/03 The Day The Music Died; Buddy Holly, Richie Valens, and the Big Bopper are killed in a plane crash outside Mason City, Iowa, 1959 02/07 Beatles land at JFK airport to begin first U.S. tour, 1964 02/07 Steven Stills makes the first digitally recorded rock album, 1979 02/09 Carole King (Carole Klein) is born in Brooklyn, 1941 02/12 The Beatles play Carnegie Hall in New York City, 1964 02/17 Jazz great Thelonius Monk dies in Englewood, New Jersey, 1982 02/18 Yoko Ono Lennon is born in Tokyo, 1933 02/19 Paul McCartney's "Give Ireland Back to the Irish" is banned in Britain, 1972 02/19 William "Smokey" Robinson is born in Detroit, 1940 02/20 J. Geils (J. Geils Band) is born, 1946 02/20 Yes sells out Madison Square Garden...without advertising, 1974 02/23 Handel born, 1685 02/23 Johnny Winter is born in Leland, Mississippi, 1944 02/29 Jimmy Dorsey born, 1904 03/01 Jim Morrison is busted for obscenity in Miami, 1969 03/02 Blues guitarist Rory Gallagher is born in Ballyshannon, Ireland, 1949 03/03 Buffalo Springfield is formed in Los Angeles, 1966 03/04 Antonio Vivaldi born in Venice, Italy, 1678 03/07 Last Gilbert & Sullivan opera produced, 1896 03/08 Ron "Pigpen" McKernan (Grateful Dead) dies in California, 1973 03/09 Robin Trower is born in London, 1945 03/13 The Allman Brothers record their live album at the Fillmore East, 1971 03/15 Sly Stone born, 1944 03/17 Paul Kantner (Jefferson Airplane) is born in San Francisco, 1942 03/21 J.S. Bach born, 1685 03/22 Ten Years After plays their last concert, 1974 03/25 Aretha Franklin is born in Detroit, 1943 03/26 Emerson, Lake, and Palmer record "Pictures at an Exhibition" live, 1971 03/29 Dr. Hook gets a group picture on the cover of "Rolling Stone", 1973 03/30 Eric Clapton is born in Surrey, England, 1945 04/02 Marvin Gaye is born in Washington, D.C., 1939 04/04 Muddy Waters (McKinley Morganfield) is born in Rolling Fork, Mississippi, 1915 04/09 Paul Robeson born, 1898 04/10 Paul McCartney announces that he's quitting the Beatles, 1970 04/14 Ritchie Blackmore (Deep Purple, Rainbow) is born, 1945 04/18 Yes breaks up after 13 years, 1981 04/25 Blues guitarist Albert King is born, 1925 04/25 Ella Fitzgerald born, 1918 04/26 Carol Burnett born in San Antonio, Texas, 1933 04/29 "Hair" premiers on Broadway, 1968 05/01 Kate Smith born, 1909 05/03 Bob Seger is born in Ann Arbor, Michigan, 1945 05/07 Johannes Brahms born in Hamburg, 1833 05/07 Tchaikowsky born, 1840 05/10 Dave Mason is born in Worcester, England, 1945 05/11 Bob Marley dies in his sleep in Miami, 1981 05/12 Pink Floyd performs the first quadrophonic concert, 1977 05/18 Rick Wakeman is born in West London, England, 1949 05/19 Pete Townshend is born in London, 1945 05/20 The Jimi Hendrix Experience is signed by Reprise Records, 1967 05/22 Johann Sebastian Bach born in Eisenach, Germany, 1665 05/23 Blues great Elmore James dies, 1963 05/24 Bob Dylan (Robert Zimmerman) is born in Duluth, 1941 05/26 Al Jolson born, 1886 05/31 The Who perform the loudest concert ever -- 76,000 watts of PA, 1976 06/01 The Beatles release "Sgt. Pepper", 1967 06/06 "Rock Around The Clock" makes Billboard's #1 slot, 1955 06/07 Blind Faith debuts in concert at London's Hyde Park, 1969 06/09 Les Paul (Lester Polfus) is born in Waukesha, Wisconsin, 1923 06/10 Howlin' Wolf (Chester Burnett) is born in West Point, Mississippi, 1910 06/10 Judy Garlnad born, 1922 06/15 Harry Nilsson is born in Brooklyn, 1941 06/16 The Monterey Pop festival opens, 1967 06/18 Paul McCartney born in Liverpool, England, 1942 06/21 Columbia records announces the first mass production of LP's, 1948 06/22 Todd Rundgren is born in Upper Darby, Pennsylvania, 1948 06/24 Jeff Beck is born in Surrey, England, 1944 07/02 Felix Pappalardi and Leslie West form Mountain, 1969 07/03 Jim Morrison dies in Paris, 1971 07/06 The Jefferson Airplane is formed in San Francisco, 1965 07/07 Ringo Starr (Richard Starkey) born in Liverpool, England, 1940 07/12 Chicago DJ Steve Dahl holds "Disco Demolition" at Kamisky Park, 1979 07/14 Woodie Guthrie born, 1912 07/16 Cream forms in the U.K., 1966 07/16 Harry Chapin dies on Long Island Expressway, 1981 07/17 "Yellow Submarine" premieres at the London Pavilon, 1968 07/20 Carlos Santana is born in Autlan, Mexico, 1947 07/25 Bob Dylan goes electric at the Newport Folk Festival, 1965 07/25 Crosby, Stills, Nash & Young debut at the Fillmore East, 1969 07/26 Mick Jagger is born in Kent, England, 1943 07/28 Bach dies, 1750 07/28 The Watkins Glen "Summer Jam" opens, 1973 08/01 The Concert for Bangla Desh takes place at Madison Square Garden, 1971 08/04 John Lennon points out that "the Beatles are more popular than Jesus", 1966 08/10 Ian Anderson (Jethro Tull) is born in Edinburgh, Scotland, 1947 08/13 Dan Fogelberg is born in Peoria, Illinois, 1951 08/15 Beatles replace drummer Pete Best with Richard Starkey 08/15 The Beatles play Shea Stadium in New York, 1965 08/15 Woodstock Festival, Max Yasgur's farm, 1969 08/26 Jimi Hendrix gives his last performance at the Isle of Wight, 1970 08/26 Jimi Hendrix's Electric Ladyland Studios opens in New York, 1970 09/07 Keith Moon (The Who) dies in London of a drug overdose, 1978 09/08 Anton Dvorak born in Nelahozeves, Czechoslovakia, 1841 09/08 Ron "Pigpen" McKernan (Grateful Dead) is born in San Bruno, California, 1945 09/14 Francis Scott Key writes words to "Star Spangled Banner", 1814 09/16 B.B. King is born in Itta Bena, Mississippi, 1925 09/19 Simon & Garfunkel reunite to play New York's Central Park, 1981 09/20 Jim Croce dies in a plane crash, 1973 09/23 "Paul is dead" rumors sweep the country, 1969 09/23 Bruce "The Boss" Springsteen is born in Freehold, New Jersey, 1949 09/25 John Bonham (Led Zeppelin) dies of alcohol poisoning, 1980 09/26 George Gershwin born in Brooklyn, NY 10/04 Janis Joplin O.D.s, 1970 10/04 Janis Joplin dies of a heroin overdose in Hollywood, 1970 10/05 Steve Miller is born in Dallas, 1943 10/07 First Bandstand (later, American Bandstand) broadcast, 1957 10/09 John Lennon born in Liverpool, England, 1940 10/10 John Prine is born in Maywood, Illinois, 1946 10/12 The Jimi Hendrix Experience is formed in London, 1966 10/16 Bob Weir (Grateful Dead) is born in San Francisco, 1947 10/17 "Hair" opens at New York's Public Theater, 1967 10/18 Chuck Berry is born in San Jose, California, 1926 10/20 Three members of Lynyrd Skynyrd die in a plane crash, 1977 10/22 Franz Liszt born, 1811 10/25 Jon Anderson (Yes) is born in Lancashire, England, 1944 10/25 The Rolling Stones appear on The Ed Sullivan Show, 1964 10/29 Duane Allman dies in motorcycle crash near Macon, Georgia, 1971 10/30 Grace Slick is born in Chicago, 1939 11/02 Jimi Hendrix's "Electric Ladyland" enters US charts at #1, 1968 11/02 Keith Emerson is born, 1944 11/03 James Taylor and Carly Simon are married in Manhattan, 1972 11/07 Joni Mitchell (Roberta Joan Anderson) is born in Alberta, Canada, 1943 11/08 Patti Page born, 1927 11/09 The first issue of "Rolling Stone" is published, 1967 11/10 Greg Lake is born in Bournemouth, England, 1948 11/12 Neil Young is born in Toronto, 1945 11/13 Paul Simon born, 1942 11/16 Bill Ham first demonstrates his psychedelic "Light Show", 1965 11/20 Duane Allman is born in Nashville, Tennessee, 1946 11/20 Joe Walsh is born in Cleveland, 1947 11/24 Scott Joplin born, 1868 11/25 "The Last Waltz" concert is played by The Band at Winterland, 1976 11/25 Johann Strauss, Jr., writes `On the Beautiful Blue Danube', 1867 11/26 Cream performs their farewell concert at Royal Albert Hall, 1968 11/27 Jimi Hendrix (Johnny Allen Hendrix) is born in Seattle, 1942 12/05 Mozart dies, 1791 12/06 First sound recording made by Thomas Edison, 1877 12/06 The Rolling Stones play Altamont Speedway near San Francisco, 1969 12/07 Harry Chapin is born in New York City, 1942 12/08 Jim Morrison is born in Melbourne, Florida, 1943 12/08 John Lennon is shot and killed in New York City, 1980 12/09 The Who's "Tommy" premieres in London, 1973 12/13 Ted Nugent, the motor city madman, born in Detroit, 1949 12/15 Thomas Edison receives patent on the phonograph, 1877 12/16 Beethoven born, 1770 12/16 Don McLean's "American Pie" is released, 1971 12/16 Ludwig von Beethoven christened in Bonn, Germany, 1770 12/21 Frank Zappa is born in Baltimore, 1940 12/23 First G&S collaboration, Thespis, 1871 12/28 Edgar Winter is born in Beaumont, Texas, 1946 12/31 Jimi Hendrix introduces the Band of Gypsies at the Fillmore East, 1969 gcal-4.1/data/calendars/calendar.histo0000664000000000000000000006101512244130561014644 0000000000000001/01 Anniversary of the Triumph of the Revolution in Cuba 01/01 Castro expells Cuban President Batista, 1959 01/01 Churchill delivers his "Iron Curtain" speech, 1947 01/01 First Rose Bowl; Michigan 49 - Stanford 0, 1902 01/04 Quadrantid meteor shower (look north) 01/05 -50 degrees F, Strawberry UT, 1913 01/05 Fellowship enters Moria (LOTR) 01/05 The FCC hears the first demonstration of FM radio, 1940 01/05 Twelfth night 01/06 Millard Fillmore's birthday (let's party!) 01/08 Battle of New Orleans 01/09 Fellowship reaches Lorien (LOTR) 01/09 Plough Monday 01/10 First meeting of United Nations General Assembly in London, 1946 01/10 Thomas Paine's Common Sense published, 1776 01/11 Anniversary of the Peoples Republic of Albania 01/11 De Hostos' Birthday in Puerto Rico 01/11 Milk delivered in bottles for first time, 1878 01/11 Prithvi Jayanti in Nepal 01/11 Surgeon General condemned cigarettes, 1964 01/11 The Whiskey-A-Go-Go opens on Sunset Boulevard in Los Angeles, 1963 01/14 The first "Be-In" is held in Golden Gate Park, 1967 01/16 Prohibition begins, 1920 01/17 Passing of Gandalf (LOTR) 01/18 Grey whale migration, California 01/20 St. Agnes Eve (Ah, bitter chill it was...) 01/24 Eskimo Pie patented by Christian Nelson, 1922 01/24 Gold discovered in California at Sutter's Mill, 1848 01/26 Sydney Aust. settled, 1778 01/27 Grissom, White and Chaffe burned to death in Apollo 1, 1967 01/27 Vietnam War cease-fire signed, 1973 01/28 First ski tow, Woodstock VT, 1914 01/28 Space Shuttle Challenger (51-L) explodes 74 seconds after liftoff killing Scobee, Smith, McNair, Resnick, Jarvis, Onizuka and McAuliffe, 1986 01/30 Mohandas Gandhi assassinated in New Delhi by Hindu fanatic, 1948 01/30 Tet Offensive, 1968 01/31 "Ham" the chimpanzee soars into space aboard Mercury-Redstone 2, 1961 01/31 Explorer I launched, 1958. Van Allen Belt discovered 01/31 Irving Langmuir, 1881, invented tungsten filament lamp 02/01 First TV soap: Secret Storm, 1954 02/01 Forces lead by Khomeini take over Iran, 1979 02/04 Cybernet inaugurated, 1969 02/04 Patricia Hearst kidnapped by Symbionese Liberation Army, 1974 02/07 Fellowship leaves Lorien (LOTR) 02/08 1963 Revolution Anniversary in Iraq 02/09 -51 degrees F, Vanderbilt MI, 1934 02/12 Lincoln's real birthday 02/12 Santa Barbara oil leak, 1969 02/14 Bombing of Dresden, 1945 02/15 Chicago Seven convicted, 1970 02/16 Nylon patented, 1937 02/16 Stephen Decatur burns US frigate in Tripoli, 1804 02/17 Death of Boromir (LOTR) 02/18 Pluto discovered by Clyde Tombaugh, Lowell Observatory, AZ, 1930 02/19 US Marines land on Iwo Jima, 1945 02/20 John Glenn orbits the Earth 3 times, 1962 02/20 Meriadoc & Pippin meet Treebeard (LOTR) 02/21 Battle of Verdun begins, 1916 1M casualties 02/21 First telephone directory, New Haven, Connecticut, 1878 02/21 Malcom X shot to death in Harlem, 1965 02/22 Passing of King Ellesar (LOTR) 02/23 Lt. Calley confesses, implicates Cpt. Medina, 1971 02/24 Ents destroy Isengard (LOTR) 02/24 Impeachment proceedings against Andrew Johnson begin, 1868 02/26 Aragorn takes the Paths of the Dead (LOTR) 02/27 The Lionheart crowned, 1189 02/28 The "French Connection" drug bust occurs in Marseilles, 1972 02/29 French and Indian raid on Deerfield MA, 1704 03/01 Sarah Goode, Sarah Osborne, and Tituba arrested for witchcraft in Salem, Massachusetts, 1692 03/02 Blackthorn winds (New England) (Does anyone know what this is?) 03/04 First meeting of Congress, 1789, in N.Y.C. 03/05 Frodo & Samwise encounter Shelob (LOTR) 03/06 Hindenburg explodes and burns upon landing at Lakehurst, NJ, 1939 03/08 Deaths of Denethor & Theoden (LOTR) 03/13 "Striptease" introduced, Paris, 1894 03/14 Teddy Roosevelt excludes Japanese laborers from continental US, 1907 03/15 Buzzards return to Hinckley OH 03/15 France assumes protectorate over Vietnam, 1874 03/15 Watts, Los Angeles, riots kill two, injure 25, 1966 03/16 First liquid-fuel-powered rocket flight, 1926 03/16 MyLai Massacre; 300 non-combatant villagers killed by U.S. infantrymen 03/16 Robert Goddard launches first liquid-fueled rocket, Auburn MA, 1926 03/17 Vanguard I launched, 1958. Earth proved pear-shaped 03/18 Aleksei Leonov performs first spacewalk, 1965 03/18 Destruction of the Ring (LOTR) 03/19 Swallows return to Capistrano 03/20 Radio Caroline, the original British pirate radio station, sinks, 1980 03/24 Construction of New York subway system begins, 1900 03/25 Triangle Shirt Waist Fire, 1911 03/26 Popeye statue unveiled, Crystal City TX Spinach Festival, 1937 03/27 Khrushchev becomes Premier of Soviet Union, 1958 03/28 Three Mile Island releases radioactive gas, 1979 03/29 Flowering of the Mallorn (LOTR) 03/29 Swedish settled Christiana (Wilmington) DE, 1638 03/30 Alaska purchased from Russia for $7.2 million, 1867 03/30 Five rings around Uranus discovered, 1977 03/30 Pencil with eraser patented, 1858 04/01 People of superb intelligence, savoir-faire, etc. born this day. 04/04 Gandalf visits Bilbo (LOTR) 04/04 Martin Luther King assassinated in Memphis, Tennessee, 1968 04/04 NATO Established, 1949 04/06 Joseph Smith founds Mormon Church, 1830 04/07 Albert Hofmann synthesizes LSD in Switzerland, 1943 04/07 Alewives run, Cape Cod 04/09 Lee surrenders to Grant at Appomattox Courthouse, 1865 04/12 Columbia launched, 1981 04/12 Confederate troops fire first shots of Civil War at Ft Sumter, 1861 04/12 Space Shuttle Columbia launched, 1981 04/12 Yuri Gagarin becomes the first man in space, 1961 04/13 Laotian New Year (3 days) in Laos 04/14 Lincoln shot, 1865 04/14 Titanic hits iceberg and sinks, 1912 04/15 Ray Kroc opens first McDonalds in Des Plaines, IL, 1955 04/16 Lincoln shot in Ford's Theatre by John Wilkes Booth, 1865 04/17 An unexpected party (LOTR) 04/17 Bay of Pigs invasion crushed by Castro forces, 1961 04/18 Einstein's Death, 1955 04/18 First Laundromat opens, Fort Worth Texas, 1934 04/18 San Francisco earthquake, 1906 04/19 Landing of the "33" in Uruguay 04/19 Warsaw Ghetto uprising, 1943 04/20 Supreme Court unanimously rules in favor of busing, 1971 04/21 Lyrid meteor shower 04/23 Crowning of King Ellesar (LOTR) 04/23 Hank Aaron hits his first home run, 1954 04/26 William Shakespeare baptised in Stratford-on-Avon, England, 1564, birthdate unknown 04/27 Magellan killed in Phillippines, 1521 04/29 Zipper patented by Gideon Sindback, 1913 05/01 Beltaine; Feast of the god Bel, sun god 05/03 Anti-war protest disrupts business in Washington, 1971 05/04 Four Kent State students are shot down by the National Guard, 1970 05/05 John Scopes arrested for teaching evolution, Dayton, TN, 1925 05/07 Germany surrenders after WWII, 1945 05/08 Beginning of ostrich mating season 05/08 US institutes mining of Haiphong Harbor, 1972 05/09 94 degrees, New York, 1979 05/10 Germany invades Low Countries, 1940 05/10 Nazi bookburning, 1933 05/14 Beginning of Lewis and Clark Expedition, 1804 05/14 Nation of Israel proclaimed, 1948 05/15 Asylum for Inebriates founded, Binghamton NY, 1854 05/17 24" rain in 11 hours, Pearl River, S. China, 1982 05/17 Six SLA members killed in televised gun fight, 1974 05/18 Battle of Las Piedras in Uruguay 05/18 Napoleon crowned Emperor, 1804 05/19 Arwen leaves Lorian to wed King Ellesar (LOTR) 05/21 Battle of Iquique in Chile 05/21 US explodes first hydrogen bomb, 1956 05/22 US Civil War ends, 1865 05/23 Israeli raid into Argentina to capture Adolf Eichmann, 1960 05/23 Two Yetis sighted, Mt. Everest, 1953 05/24 Battle of Pinchincha in Ecuador 05/25 Oral Roberts sees 900 foot tall Jesus Christ, Tulsa OK, 1980 05/25 Successful test of the limelight in Purfleet, England, 1830 05/26 Congress sets first immigration quotas, 1924 05/27 Golden Gate Bridge opens, 1937 05/29 Edmund Hillary and Tenzing Norkay climb Mt. Everest, 1953 05/29 First food stamps issued, 1961 05/30 US Marines sent to Nicaragua, 1912 06/02 Native Americans "granted" citizenship, 1924 06/04 Roquefort cheese developed, 1070 06/05 Robert Kennedy assasinated, 1968 06/05 US leaves the Gold Standard, 1933 06/06 First drive-in movie, 1933 06/06 Normandy landing, 1944 06/10 Death of Alexander the Great, 323 B.C. 06/10 Denver police tear gas Jethro Tull and 2000 fans at Red Rocks, 1971 06/11 Greeks seize Troy, 1184BC 06/11 Sauron attacks Osgilliath (LOTR) 06/13 Bilbo returns to Bag End (LOTR) 06/13 Pioneer flies past Neptune, and therefore out of the Solar System 06/14 Sandpaper invented by I. Fischer, Jr., 1834 06/15 Ben Franklin's kite experiment, 1752 06/15 Magna Carta signed, 1215 06/15 Series of photographs by Edward Muggeridge prove to Leland Stanford that all the hooves of a horse are off the ground during the gallop, 1878 06/16 "The Blues Brothers" premieres in Chicago, 1980 06/17 China explodes its first Hydrogen bomb, 1967 06/17 Watergate Democratic National Committee break-in, 1972 06/19 Julius and Ethel Rosenberg are executed in Sing-Sing prison, 1953 06/19 Lizzie Bordon acquitted, 1893 06/20 Victoria crowned, 1837 06/21 Berlin airlift begins, 1948 06/21 Sun rises over Heelstone at Stonehenge 06/22 Civil rights workers disappear in Mississippi, 1964 06/23 Slavery abolished in England, 1772 06/23 Wedding of Ellesar & Arwen (LOTR) 06/24 Senate repeals Gulf of Tonkin resolution, 1970 06/25 Custer's Last Stand at Little Big Horn, 1876 06/25 North Korea invades South Korea, 1950 06/26 Battle of Gettysburg, 1863 06/26 St. Lawrence Seaway dedicated by Eisenhower & Queen Elizabeth II, 1959 06/26 Toothbrush invented, 1498 06/27 100 degrees, Fort Yukon, 1915 06/27 Bill Graham closes the Fillmore East, 1971 06/28 Supreme Court decides in favor of Alan Bakke, 1978 06/30 "That" explosion in Siberia, 1908 06/30 China and Soviet Union announce split over ideology, 1960 07/01 Battle of Gettysburg begins, 1863 07/03 Dog days begin 07/04 Battles of Vicksburg and Gettysburg won by Union forces, 1863 07/04 Cloudy, 76 degrees, Philadelphia PA, 1776 07/04 Gandalf imprisoned by Saruman (LOTR) 07/04 New York abstains on Declaration of Independence vote, 1776 07/04 Thoreau enters woods, 1845 07/06 First `talkie' (talking motion picture) premiere in New York, 1928 07/06 Lawrence of Arabia captures Aqaba, 1917 07/07 First radio broadcast of "Dragnet", 1949 07/08 First public reading of the Declaration of Independence, 1776 07/08 Liberty Bell cracks while being rung at funeral of John Marshall, 1835 07/09 10-hour working day set by law, NH, 1847 07/10 134 degrees in Death Valley, 1913 07/12 Minimum wages established: 40 cents/hour, 1933 07/13 Women first compete in Olympic games, 1908 07/16 Detonation of the first atomic bomb at Alamagordo, NM, 1945 07/17 Disneyland opens, 1955 07/18 Ty Cobb gets 4000th base hit, 1927 07/19 Five Massachusetts women executed for witchcraft, 1692 07/20 Armstrong and Aldrin land on moon, 1969 07/21 First Train Robbery, Jesse James gets $3000 near Adair, Iowa, 1873 07/21 Vietnam divided at 17th parallel, 1954 07/23 Ice cream cone introduced, St. Louis MO, 1904 07/24 Scopes Monkey Trial, 1925 07/24 The ring comes to Bilbo (LOTR) 07/26 Bilbo rescued from Wargs by Eagles (LOTR) 07/30 "In God We Trust" made U.S. motto, 1956 07/31 Harry S. Truman dedicates N.Y. Int'l Airport @ Idlewild Field, 1948, later JFK 08/01 Lughnasa; Feast of the god Lugh, a 30 day Celtic feast centers on this day 08/03 Columbus sets sail for Cathay, 1492 08/03 Funeral of King Theoden (LOTR) 08/03 USS Nautilus crosses under north polar ice cap, 1958 08/04 Axe murder of Andrew and Abbey Borden, 1892 08/04 Bombing of N. Vietnam begins, 1964 08/04 Britain declares war on Germany starting World War I, 1914 08/06 Atomic bomb dropped on Hiroshima, 1945 08/06 Caricom in Barbados 08/06 Cy Young pitches first game, 1890 08/08 Atomic bomb dropped on Nagasaki, 1945 08/08 Montenegro declares war on Germany, 1914 08/08 Richard Nixon resigns the US presidency, 1974 08/08 The Great Train Robbery -- $7,368,000, 1963 08/09 Helter Skelter... the Charles Manson murders take place, 1969 08/09 Persia defeats Spartan King Leonidas at Thermopylae, 480 BC 08/09 US/Canada border defined in the Webster-Ashburton Treaty, 1842 08/10 Chicago incorporated as a village of 300 people, 1833 08/10 US and Panama agree to transfer the canal in the year 2000, 1977 08/11 Dog days end 08/11 France Ends War in Indochina, 1954 08/11 Perseid meteor shower (look north; three days) 08/12 First test flight of Space Shuttle "Enterprise" from 747, 1977 08/12 Last U.S. ground troops out of Vietnam, 1972 08/13 Berlin wall erected, 1961 08/13 Li'l Abner debut, 1934 08/14 Social Security begins in U.S., 1935 08/15 Gandhi's movement obtains independence for Pakistan and India, 1947 08/15 Hurricane hits Plimoth Plantation, 1635 08/16 Roller Coaster patented, 1898 08/17 First public bath opened in N.Y., 1891 08/18 Anti-Cigarette League of America formed 08/19 Air Force cargo plane snares payload from Discoverer 14 spy satellite, marking start of practical military reconnaissance from space, 1960 08/19 Gail Borden patents condensed milk, 1856 08/22 Death of King Richard III, 1485, Last of the Plantagenets 08/22 Joe Walker sets X-15 all time altitude mark (67 miles), 1963 08/22 St. Columbia reports seeing monster in Loch Ness, 565 08/23 Sacco and Vanzetti executed, 1927 08/24 "Alice's Restaurant" premieres in New York and Los Angeles, 1969 08/24 -126.9 F at Vostok, Antarctica, 1960 08/24 British troops burn Washington, 1814 08/25 Gen. DeGaulle leads French forces into Paris, 1944 08/26 Women get the vote, 1920 08/27 "Tarzan of the Apes" published, 1912 08/27 Krakatoa, Java explodes with a force of 1,300 megatons, 1883 08/28 King leads over 200K in civil rights rally in Washington, DC, 1963 08/29 Star in Cygnus goes nova and becomes 4th brightest in sky, 1975; Nova Cygni 1975. 08/29 Saruman enters the Shire (LOTR) 08/30 75 cents a pound tariff set on opium, 1842 08/30 Japan Stationery Co. sells first felt-tipped pen, 1960 08/30 St. Rose of Lima in Peru 08/30 Washington-to-Moscow hot line connected, 1963 08/31 269 people killed after Korean Airlines 747 shot down by USSR, 1983 08/31 Mary Anne Nichols becomes Jack the Ripper's first victim, 1888 08/31 Non-aggression pact signed by USSR and Afghanistan, 1926 09/01 Bobby Fischer defeats Boris Spassky in World Chess Match, 1972 09/01 Joshua A. Norton proclaims himself 'Emperor Norton I', 1859 09/02 Great Britain adopts Gregorian Calendar, 1752 09/02 Japan signs unconditional surrender on US battleship `Missouri', 1945 09/03 Anniversary of the Founding of the Republic in San Marino 09/05 Kennedy orders resumption of underground nuclear tests, 1961 09/05 The first Continental Congress was convened in Philadelphia, 1774 09/06 149 Pilgrims set forth from England aboard the Mayflower, 1620 09/06 First Star Trek episode (The Man Trap) aired 1966 09/06 Pres. McKinley shot, 1901 09/06 Somhlolo in Swaziland 09/08 "Star Trek" debuts on NBC (1966) 09/08 Jack the Ripper kills again, Annie Chapman is second victim, 1888 09/08 President Ford pardons Richard M. Nixon, 1974 09/09 California becomes the 31st state, 1850 09/09 United Colonies is renamed the United States, 1776 09/10 Gandalf escapes from Orthanc (LOTR) 09/10 Mountain Meadows Massacre. Mormons kill Gentile wagon train, 1857 09/12 German paratroopers rescue Mussolini from captivity in Rome, 1943 09/12 Germany annexes Sudentenland, 1938 09/13 136.4 F at el Azizia, Libya, 1922 09/13 British defeat the French at Abraham near Quebec City, 1788 09/13 Building of Hadrian's Wall begun, 122 09/13 Chiang Kai-Shek becomes president of China, 1943 09/14 Benjamin Franklin is sent to France as an American minister, 1778 09/14 Frodo & Bilbo's birthday (LOTR) 09/14 Salem, Massachusetts, is founded, 1629 09/14 The Selective Service Act establishes the first peacetime draft, 1940 09/15 Black riders enter the Shire (LOTR) 09/15 Soviet Premier Nikita Khrushchev begins his 13 day tour of the US, 1959 09/15 The U.S. Foreign Affairs Dept. becomes the U.S. State Department, 1789 09/16 The village of Shawmut, Massachusetts, becomes the city of Boston, 1630 09/17 Battle of Antietam, 1862 09/18 Frodo and company rescued by Bombadil (LOTR) 09/18 Victory of Uprona in Burundi 09/20 Equal Rights Party nominates Belva Lockwood for President, 1884 09/20 First meeting of the American Association for the Advancement of Science, 1848 09/20 First meeting of the National Research Council, 1916 09/20 Magellan leaves Spain on the first Round the World passage, 1519 09/20 The Roxy Theater opens in Hollywood, 1973 09/22 Allied forces form the independent nation West Germany, 1953 09/22 President Lincoln issues the Emancipation Proclamation, 1862 09/22 Special prosecutor Leon Jeworski subpoenaes President Nixon, 1974 09/22 The first Soviet atomic bomb explodes, 1949 09/23 Phillippine President Ferdinand Marcos declares martial law, 1972 09/23 The New York Knickerbockers becomes the first U.S. Baseball club, 1845 09/23 V.P. Nixon denies campaign fund fraud with his "Checkers" speech, 1952 09/25 Sandra Day O'Connor becomes first woman on US Supreme Court, 1981 09/27 The first passenger was hauled in a locomotive in England, 1825 09/28 "Pilgrim's Progress" published, 1678 09/28 A Greek soldier runs 26+ miles after the Persian defeat at Marathon, 490BC 09/28 Frodo wounded at Weathertop (LOTR) 09/30 Red Jack kills 2, Elizabeth Stride (#3) and Catherine Eddowes (#4), 1888 09/30 The first tooth is extracted under anesthesia in Charleston, Mass, 1846 09/30 The verdicts of the Nuremberg trials are announced, 1946 10/01 NASA officially begins operations, 1958 10/02 Thurgood Marshall sworn as the first black Supreme Court Justice, 1967 10/04 Crimean war begins, 1853 10/04 First space vehicle, Sputnik I, launched, 1957 10/04 Sputnik 1, world's first orbiting satellite launched, 1957 10/05 Frodo crosses bridge of Mitheithel 10/06 Antioch College is the first public school to admit men and women, 1853 10/06 Egyptian President Anwar Sadat is assassinated in Cairo, 1981 10/06 Israel is attacked by the alliance of Egypt and Syria, 1973 10/07 Foundation of the GDR in 1949 in German Democratic Republic 10/07 Georgia Tech. beats Cumberland Univ. 222-0, 1916 10/07 Maryland Governor Marvin Mandel sent to prison on fraud charges, 1977 10/07 Mother Teresa of Calcutta awarded the Nobel Peace Prize, 1979 10/07 Police stop Wilbur Mills car, Fanne Fox jumps into water, 1974 10/08 Great Chicago Fire, 1871 10/09 First two-way telephone conversation, 1876 10/10 Beginning of the Wars for Independence in Cuba 10/10 Foundation of the Workers Party in North Korea 10/10 Mercury at Superior Conjunction with Sun. Moves into night sky. (1984) 10/10 Spiro T. Agnew resigns as Vice-President due to income tax fraud, 1973 10/11 "Saturday Night Live" premiers on NBC-TV, 1975 10/11 The Gang of Four are arrested in Peking, 1976 10/11 The first steam powered ferry ran between New York and Hoboken, 1811 10/11 The second Vatican Ecumenical Council opens in Rome, 1962 10/11 First broadcast of Saturday Night Live, 1975 10/12 Bahama Natives discover Columbus of Europe lost on their shores, 1492 10/12 Khrushchev pounds his desk with shoe during a speech to the UN, 1960 10/12 Man O'War's last race, 1920 10/12 Native Americans discover Columbus of Europe lost on their shores, 1492 10/13 Italy declares war on Germany, 1943 10/13 U.S. Navy born, 1775, authorized by the Second Continental Congress 10/14 Battle of Hastings won by William the Conqueror and the Normans, 1066 10/14 Chuck Yeager breaks sound barrier, 1947 10/15 First draft card burned, 1965 10/16 Boromir reaches Rivendell (LOTR) 10/17 Council of Elrond (LOTR) 10/18 Boston Shoemakers form first U.S. labor org., 1648 10/18 Soviets anounce their probe took photos of the Moon's far side, 1959 10/19 Mao Tse-tung establishes the People's Republic of China, 1949 10/19 Napoleon's beaten army begins the long retreat from Moscow, 1812 10/20 "Saturday Night Massacre", 1973 10/20 OPEC embargo, 1973 10/21 Edison makes the first practical incandescent lamp, 1879 10/21 Guggenheim Museum opens, 1959 10/23 Battle of Leyte Gulf begins, 1944 10/23 Earth created at 6:30 AM, 4004BC. 10/23 Swallows leave Capistrano 10/25 End of War of the Ring (LOTR) 10/25 The UN removes Taiwan and admits the People's Republic of China, 1971 10/26 UN's World Health Organization declares smallpox eradicated, 1978 10/27 New York's Boss Tweed is arrested on fraud charges, 1871 10/27 The first New York Subway is opened, 1904 10/28 Columbus discovers Cuba, 1492 10/28 Constantine's army defeats forces of Maxentius at Mulvian Bridge, 312 10/28 Harvard was founded in Massachusetts, 1636 10/28 Statue of Liberty was dedicated on Bedloe's Island, 1886 10/29 Stock Market Crash, 1929 10/30 Orson Welles' "War of the Worlds" broadcast, 1938 10/31 Luther nails 95 Theses to door of Castle Church, Wittenberg, 1517 11/01 Austria-Hungary become two seperate nations, 1918 11/01 Puerto Rican nationalists try to kill Truman at the Blair House, 1950 11/02 Luftwaffe completes 57 consecutive nights of bombing of London, 1940 11/02 Two Frenchmen make the first free hot air balloon flight, 1783 11/03 Beef rises to 3 cents a pound, IL, 1837 11/03 Linus Pauling wins Nobel Chemistry Prize, 1954 11/03 Sputnik II launched, 1957, bearing spacedog Laika 11/04 Iranian militants seize US embassy personnel in Teheran, 1979 11/04 Soviet forces crush the anti-communist revolt in Hungary, 1956 11/05 Guy Fawkes' Plot, 1605 11/06 Anniversary of the October Socialist Revolution (2 days) in U.S.S.R. 11/07 Abolitionist newspaperman Elijah P. Lovejoy murdered by mob, 1837 11/07 Lewis and Clark Expedition in sight of the Pacific Ocean, 1805 11/09 Blackout of New York, New England, and Eastern Canada, 1965 11/09 Giant panda discovered (?!), China, 1927 11/09 Jack the Ripper kills fifth and final victim, Jane Kelly, 1888 11/09 Margaret Sanger forms American Birth Control League, 1921 11/09 Roosevelt establishes the Civil Works Administration, 1933 11/10 41 Women arrested in suffragette demonstartions near White House, 1917 11/10 Cpt. Wirz, commandant of Andersonville Prison hanged, 1865 11/10 Henry Stanley asks David Livingston, "Dr. Livingston, I presume?", 1871 11/11 Washington becomes the 42nd state, 1889 11/12 Dr. Sun Yat-sen's Birthday in Taiwan 11/12 U.S. first exports oil to Europe, 1861 11/14 Quarter Pounder price raised from $0.53 to $0.55 in violation of Nixon price controls (but okayed by Price Commission after formal request from McDonald's), 1971 11/15 Niagara Falls power plant startup, 1896 11/16 Bilbo reaches the Lonely Mountain (LOTR) 11/16 Opening of the Suez Canal, 1869 11/17 46,000 meteoroids fall over AZ in 20 minutes, 1966 11/17 Richard Nixon says "I am not a crook.", 1973 11/18 First hydrogen bomb blasts Enewetok, 1952 11/18 Local standard time zones established for US, 1883 11/19 Gettysburg Address delivered, 1863 11/21 Announcement of 18 1/2 minute gap on Watergate tape, 1973 11/22 Kennedy shot in Dallas, Texas by Lee Harvey Oswald, 1963 11/23 First broadcast of Dr. Who (longest running TV series), 1963 11/24 Lee Harvey Oswald killed by Jack Ruby, 1963 11/25 Alfred Nobel invents dynamite, 1867 11/27 Alfred Nobel establishes Nobel Prize, 1895 11/27 Friction match invented, England, 1826 11/27 Hoosac Railroad Tunnel completed, 1873, in NW Massachusetts 11/29 King Tut's tomb opened, 1922 12/01 First national corn-husking championship, Alleman IA, 1924 12/01 Martin Luther King Jr., leads black boycott of Montgomery buses, 1955 12/01 Rosa Parks refuses to move to back of the bus (Montgomery, AL), 1953 12/03 First neon light display, Paris, 1910 12/03 First successful human heart transplant lead by Dr. Barnard, 1967 12/03 The Montreux Casino burns down during a Frank Zappa concert, 1971 12/04 Washington takes leave of his officers at Fraunce's Tavern, NYC, 1783 12/05 Death of Smaug (LOTR) 12/05 End of Prohibition, 1933 (at least the alcohol part) 12/05 Phi Beta Kappa founded, 1776 12/05 The Eighteenth Amendment repealed, ending Prohibition, 1933 12/07 Japan bombs Pearl Harbor, 1941 12/09 Ball-bearing roller skates patented, 1884 12/10 Metric system established in France, 1799 12/10 Nobel Peace Prize awarded each year 12/12 First wireless message sent across Atlantic by Marconi, 1901 12/13 Apollo 17 leaves the moon, with "last" men to walk on moon aboard, 1972 12/13 Dartmouth College chartered, 1769 12/13 Geminid meteor shower (look south) 12/15 Argo Merchant oil spill, 1976 12/15 Bill of Rights adopted, 1791 12/15 James Naismith invents basketball, Canada, 1891 12/15 Sitting Bull shot in head while submitting to arrest, 1890 12/16 Fellowship begins Quest (LOTR) 12/20 U.S. buys ~1,000,000 sq. miles of Louisiana for ~$20/sq.mi. 12/21 Phileas Fogg completes his trip around the world in less than 80 days 12/24 KKK formed in Pulaski, Tenn, 1865 12/26 DPMA founded, 1951 12/27 APT report published, 1956 12/27 Ether first used as anesthetic in childbirth, 1845 12/28 Comet Kohoutek at perihelion, 1973 12/29 Battle of Wounded knee, 1890 12/30 First Los Angeles freeway dedicated, 1940 12/31 St. Sylvester in Switzerland 12/31 Winterland closes its doors, 1978 gcal-4.1/data/calendars/calendar.chris0000664000000000000000000000112412244130561014621 0000000000000001/06* Epiphany 02/11* Shrove Tuesday / Mardi Gras (day before Ash Wednesday) 02/08* Ash Wednesday (First day of Lent) 03/19* Palm Sunday (7 days before Easter) 03/23* Maundy Thursday (3 days before Easter) 03/24* Good Friday (2 days before Easter) 03/26* Easter Sunday 05/04* Ascension Day (10 days before Pentecost) 05/14* Pentecost (Whitsunday) 05/15* Whitmonday 05/21* Trinity Sunday (7 days after Pentecost) 05/25* Corpus Christi (11 days after Pentecost) 05/28* Rogation Sunday 10/18 Feast Day of St. Luke 12/03* First Sunday of Advent (4th Sunday before Christmas) 12/06 St. Nicholas' Day gcal-4.1/data/calendars/calendar.judai0000664000000000000000000000267012244130561014614 0000000000000003/08* Fast of Esther (Battle of Purim; 1 day before Purim; fast day) 03/11* Purim (Feast of Lots; 30 days before Pesach) 03/12* Purim (Feast of Lots) 04/10* Pesach (First Day of Passover; sabbatical) 04/11* Pesach (sabbatical) 04/16* Pesach (sabbatical) 04/17* Pesach (Last Day of Passover; 8th day of Pesach; sabbatical) 04/30* Yom HaAtzmaut (Israel Independence Day) 05/13* Lag Ba`omer (Commemoration of the Great Rebellion) 05/22* Yom Yerushalayim (Reunification of Jerusalem) 05/30* Shavuos (Festival of Weeks; 50 days after Pesach; sabbatical) 05/31* Shavuos (Festival of Weeks; sabbatical) 07/10* Fast of Shiv'a Asar B'Tammuz (Romans breach Wall of Jerusalem; fast day) 07/31* Fast of Tish'a B'Av (Babylon/Rome destroys Holy Temple; fast day) 09/20* First Day of Rosh Hashanah (Jewish Lunar New Year; 5741 == 1980; sabbatical) 09/21* Rosh Hashanah (sabbatical) 09/23* Fast of Gedalya (Murder of Gedalya and subsequent Exile; 1 day after Rosh Hashanah; fast day) 09/29* Yom Kippur (Day of Atonement; 9 days after Rosh Hashanah; sabbatical, fast day) 10/04* Succos (Festival of Tabernacles; 14 days after Rosh Hashanah; sabbatical) 10/05* Succos (sabbatical) 10/10* Hoshanah Rabba (7th day of Succos) 10/11* Shmini Atzeres (8th Day of Gathering; 1 day after Succos; sabbatical) 10/12* Shmini Atzeres/Simchas Torah (Rejoicing of the Law; sabbatical) 12/12* First Day of Chanukah 12/27* Fast of Asara B'Tevet (Babylonians put siege on Jerusalem; fast day) gcal-4.1/data/calendars/calendar.compu0000664000000000000000000000553112244130561014642 0000000000000001/01 AT&T officially divests its local Bell companies, 1984 01/01 The Epoch (Time 0 for UNIX systems, Midnight GMT, 1970) 01/03 Apple Computer founded, 1977 01/08 American Telephone and Telegraph loses antitrust case, 1982 01/08 Herman Hollerith patents first data processing computer, 1889 01/08 Justice Dept. drops IBM suit, 1982 01/10 First CDC 1604 delivered to Navy, 1960 01/16 Set uid bit patent issued, to Dennis Ritchie, 1979 01/17 Justice Dept. begins IBM anti-trust suit, 1969 (drops it, 01/08/82) 01/24 DG Nova introduced, 1969 01/25 First U.S. meeting of ALGOL definition committee, 1958 01/26 EDVAC demonstrated, 1952 01/31 Hewlett-Packard founded, 1939 02/11 Last day of JOSS service at RAND Corp., 1966 02/14 First micro-on-a-chip patented (TI), 1978 02/15 ENIAC demonstrated, 1946 03/01 First NPL (later PL/I) report published, 1964 03/04 First Cray-1 shipped to Los Alamos 03/09 "GOTO considered harmful" (E.J. Dikstra) published in CACM, 1968 03/14 LISP introduced, 1960 03/28 DEC announces PDP-11, 1970 03/31 Eckert-Mauchly Computer Corp. founded, Phila, 1946 04/01 Yourdon, Inc. founded, 1974 (It figures.) 04/03 IBM 701 introduced, 1953 04/04 Tandy Corp. acquires Radio Shack, 1963 (9 stores) 04/07 IBM announces System/360, 1964 04/09 ENIAC Project begun, 1943 04/28 Zilog Z-80 introduced 05/06 EDSAC demonstrated, 1949 05/01 First BASIC program run at Dartmouth, 1964 05/16 First report on SNOBOL distributed (within BTL), 1963 05/21 DEC announces PDP-8 05/22 Ethernet first described, 1973 05/27 First joint meeting of U.S. and European ALGOL definition cte., 1958 05/28 First meeting of COBOL definition cte. (eventually CODASYL), 1959 05/30 Colossus Mark II, 1944 06/02 First issue of Computerworld, 1967 06/10 First Apple II shipped, 1977 06/15 UNIVAC I delivered to the Census Bureau, 1951 06/16 First programming error at Census Bureau, 1951 (apocryphal) 06/23 IBM unbundles software, 1969 06/23 Turing's Birthday, 1912 06/30 First advanced degree on computer related topic: to H. Karamanian, Temple Univ., Phila, 1948, for symbolic diffentiation on the ENIAC 07/08 Bell Telephone Co. formed (predecessor of AT&T), 1877 07/08 CDC incorporated, 1957 08/14 First Unix-based mallet created, 1954 08/14 IBM PC announced, 1981 08/22 CDC 6600 introduced, 1963 08/23 DEC founded, 1957 09/15 ACM founded, 1947 09/20 Harlan Herrick runs first FORTRAN program, 1954 10/02 First robotics-based CAM, 1939 10/06 First GPSS manual published, 1961 10/08 First VisiCalc prototype, 1978 10/12 Univac gives contract for SIMULA compiler to Nygaard and Dahl, 1962 10/14 British Computer Society founded, 1957 10/15 First FORTRAN Programmer's Reference Manual published 10/20 Zurich ALGOL report published, 1958 10/25 DEC announces VAX-11/780 11/04 UNIVAC I program predicts Eisenhower victory based on 7% of votes, 1952 12/08 First Ph.D. awarded by Computer Science Dept, Univ. of Penna, 1965 gcal-4.1/data/calendars/calendar.birth0000664000000000000000000002570312353520603014633 0000000000000001/01 J.D. Salinger born, 1919 01/01 Paul Revere born in Boston, 1735 01/02 Isaac Asimov born in Petrovichi, Russian SFSR (now part of USSR), 1920 01/04 George Washington Carver born in Missouri, 1864 01/04 Jakob Grimm born, 1785 01/04 Wilhelm Beer born, 1797, first astronomer to map Mars 01/05 DeWitt B. Brace born, 1859, inventor of spectrophotometer 01/10 Ethan Allen born, 1738 01/11 Alexander Hamilton born in Nevis, British West Indies, 1757? 01/12 "Long" John Baldry is born in London, 1941 01/13 Horatio Alger born, 1834 01/13 Sophie Tucker born, 1884 01/13 Wilhelm Wien born, 1864, Nobel prize for blackbody radiation laws 01/14 Albert Schweitzer born, 1875 01/15 Martin Luther King, Jr. born 01/17 Benjamin Franklin born in Boston, 1706 01/19 Edgar Allan Poe born in Boston, 1809 01/19 Robert Edward Lee born in Stratford Estate, Virginia, 1807 01/20 George Burns born, 1898 01/21 Lenin died, 1924 01/21 Thomas Jonathan "Stonewall" Jackson born in Clarksburg, VA, 1824 01/22 Sir Francis Bacon born, 1561 01/23 Ernst Abbe born, 1840, formulated diffraction theory 01/23 Humphrey Bogart born in New York City, 1899 01/23 John Hancock born, 1737 01/23 Joseph Hewes born, 1730 01/23 Samuel Barber died, 1981 01/24 John Belushi is born in Chicago, 1949 01/25 Robert Burns born, 1759 01/25 Virginia Woolf born, 1882 01/25 W. Somerset Maugham born, 1874 01/27 Samuel Gompers born, 1850 01/30 Franklin Delano Roosevelt born in Hyde Park, New York, 1882 01/31 Jackie Robinson born, 1919 02/03 Gertrude Stein born, 1874 02/05 Alex Harvey (SAHB) is born in Glasgow, Scotland, 1935 02/06 King George VI of UK dies; his daughter becomes Elizabeth II, 1952 02/07 Sinclair Lewis born, 1885 02/08 Friedleib F. Runge born, 1795, father of paper chromatography 02/08 Jules Verne born in Nantes, France, 1828 02/09 George Hartmann born, 1489, designed astrolabes, timepieces, etc. 02/10 Charles Lamb born, 1775 02/10 William Allen White born, 1868 02/11 Thos. Edison born, 1847 02/11 William Henry Fox Talbot born, 1489, photographic pioneer 02/12 Abraham Lincoln born, 1809 02/12 Charles Darwin born in Shrewsbury, England, 1809 02/15 Galileo Galilei born in Pisa, Italy, 1564 02/15 Susan B. Anthony born, 1820 02/16 Pierre Bouguer born, 1698, founder of photometry 02/17 Federick Eugene Ives born, 1856, pioneer of halftone 02/17 Marion Anderson born, 1902 02/17 T. J. Watson, Sr. born, 1874 02/18 Ernst Mach born, 1838, philosopher & optics pioneer 02/19 Nicolas Copernicus born in Thorn, Poland, 1473 02/20 Ludwig Boltzmann born, 1838, atomic physics pioneer 02/21 Alexis De Rochon born, 1838, developed the spyglass 02/22 George Washington born, 1732 02/22 Pierre Jules Cesar Janssen born, 1838, found hydrogen in the sun 02/23 W.E.B. DuBois born, 1868 02/24 Winslow Homer born, 1836 02/25 George Harrison born in Liverpool, England, 1943 02/25 Renoir born, 1841 02/26 Dominique Francois Jean Arago born, 1786; observed "Poisson's spot" cf June 21 02/28 Michel de Mantaigne born, 1533 02/29 Herman Hollerith born, 1860 03/01 David Niven born, 1910 03/02 Dr. Seuss born, 1904 03/04 Casimir Pulaski born, 1747 03/05 John Belushi dies in Los Angeles, 1982 03/07 Aristotle died, 322BC 03/07 Sir John Frederick William Herschel born, 1792, astronomer 03/08 Alvan Clark born, 1804, astronomer & lens manufacturer 03/08 Howard Aiken born, 1900 03/11 Robert Treat Paine born, 1737 03/11 Vannevar Bush born, 1890 03/12 Gustav Robert Kirchhoff born, 1824, physicist 03/14 Albert Einstein born, 1879 03/14 Casey Jones born, 1864 03/14 Giovanni Virginia Schiaparelli born, 1835, astronomer; named Mars "canals" 03/14 Jean Baptiste Joseph Fourier born, 1768, mathematician & physicist 03/16 George Clymer born, 1739 03/16 James Madison born, 1751 03/24 Harry Houdini born, 1874 03/26 Benjamin Thompson born, 1753, Count Rumford; physicist 03/27 Wilhelm Conrad Roentgen born, 1845, discoverer of X-rays 03/28 Pierre Simon de Laplace born, 1749, mathematician & astronomer 03/30 Francisco Jose de Goya born, 1746 03/30 Sean O'Casey born, 1880 03/30 Vincent Van Gogh born, 1853 03/31 Descartes born, 1596 03/31 Rene Descartes born, 1596, mathematician & philosopher 04/03 Washington Irving born, 1783 04/05 Thomas Hobbes born, 1588, philosopher 04/08 Buddha born, 563 BC 04/08 David Rittenhouse born, 1732, astronomer & mathematician 04/09 Edward Muybridge born, 1830, motion-picture pioneer 04/09 J. Presper Eckert born, 1919 04/10 Commodore Matthew Calbraith Perry born, 1854 04/10 William Booth born, 1829, founder of the Salvation Army 04/13 Thomas Jefferson born, 1743 04/14 Christian Huygen born, 1629, physicist & astronomer; discovered Saturn's rings 04/15 Leonardo da Vinci born, 1452 04/16 Charles (Charlie) Chaplin (Sir) born in London, 1889 04/22 Kant born, 1724 04/27 Louis Victor de Broglie born, 1774, physicist 04/28 James Monroe born, 1758 04/29 Jules Henri Poincare born, 1854, founder of topology 04/29 William Randolph Hearst born in San Francisco, 1863 04/30 Karl Friedrich Gauss born, 1777, mathematician & astronomer 05/01 Little Walter (Marion Walter Jacobs) is born in Alexandria, Louisiana, 1930 05/02 Dr. Benjamin Spock born, 1903 05/09 Pinza died, 1957 05/10 Fred Astaire (Frederick Austerlitz) born in Omaha, Nebraska, 1899 05/11 Johnny Appleseed born, 1768 05/12 Florence Nightingale born in Florence, Italy, 1820 05/13 Arthur S. Sullivan born, 1842 05/15 Mike Oldfield is born in Essex, England, 1953 05/19 Ho Chi Minh born, 1890 05/21 Plato (Aristocles) born in Athens(?), 427BC 05/27 Hubert H. Humphrey born, 1911 05/28 Dionne quintuplets born, 1934 05/29 Gilbert Keith Chesterton born, 1874 05/29 John Fitzgerald Kennedy born, 1917 05/29 Patrick Henry born, 1736 05/30 Mel (Melvin Jerome) Blanc born in San Francisco, 1908 06/01 Brigham Young born, 1801 06/01 Marilyn Monroe born, 1928 06/02 Edward Elgar (Sir) born in Worcester, England, 1857 06/03 Henry James born, 1811 06/07 (Eugene Henri) Paul Gaugin born, 1848 06/07 George Bryan "Beau" Brummel born, 1778 06/08 Frank Lloyd Wright born in Richland Center, Wisconsin, 1869 06/13 Alexander the Great dies (323BC) 06/15 Edward (Edvard Hagerup) Grieg born in Bergen, Norway, 1843 06/16 Hammurabi the Great dies, Babylon, 1686 bc 06/18 M.C. Escher born, 1898 06/22 Carl Hubbell born, 1903 06/22 Meryl Streep born in Summit, New Jersey, 1949 06/25 Eric Arthur Blair (a.k.a. George Orwell) born, 1903 06/27 Helen Keller born, 1880 07/03 Franz Kafka born, 1883 07/04 Nathaniel Hawthorne born in Salem, Massachusetts, 1804 07/06 (Helen) Beatrix Potter born, 1866 07/06 John Paul Jones born, 1747 07/07 P.T. Barnum dies, 1891 07/08 Count Ferdinand von Zeppelin born, 1838 07/10 John Calvin born, 1509 07/11 John Quincy Adams born, 1767 07/12 Henry David Thoreau born, 1817 07/15 Clement Clarke Moore born, 1779, author of "A Visit from Saint Nicholas" 07/18 Brian Auger is born in London, 1939 07/25 Steve Goodman is born in Chicago, 1948 07/29 Mussolini born, 1883 07/30 Emily Bronte born, 1818 07/30 Henry Ford born, 1863 08/01 Herman Melville born, 1819 08/03 Lenny Bruce dies of a morphine overdose, 1966 08/08 Dustin Hoffman born in Los Angeles, 1937 08/13 Annie Oakley born, 1860 08/13 Fidel Castro born, 1927 08/17 Mae West born, 1892 08/18 Meriwether Lewis born, 1927 08/23 Gene Kelly born, 1912 08/27 Lyndon B. Johnson born, 1908 08/29 Oliver Wendell Holmes born, 1809, physician & father of the jurist 08/30 John W. Mauchly born, 1907 09/05 King Louis XIV of France born, 1638 09/05 Raquel Welch born, 1942 09/06 Word is received that Perry has reached the North Pole and died, 1909 09/07 James Fenimore Cooper born in Burlington, NJ, 1789 09/07 Queen Elizabeth I of England born, 1533 09/08 King Richard I of England born, 1157 09/08 Peter Sellers born in Southsea, England, 1925 09/09 Chinese Communist Party Chairman Mao Tse-Tung dies at age 82, 1976 09/12 Jesse Owens born, 1913 09/13 Walter Reed born, 1851 09/15 Agatha Christie born in Torquay, England, 1890 09/16 Allen Funt born in Brooklyn, NY, 1914 09/18 Greta Garbo born, 1905 09/18 Jimi Hendrix dies from an overdose, 1970 09/20 Upton (Beall) Sinclair born, 1878 09/21 H.G. (Herbert George) Wells born in Bromley, England, 1866 09/21 Louis Joliet born, 1645 09/22 President Garfield dies of wounds in Baltimore, 1881 09/23 Augustus (Gaius Octavius) Caesar born in Rome, 63 BC 09/23 Euripides born in Salamis, Greece, 480 BC 09/24 F. Scott Fitzgerald born, 1896 09/26 Johnny Appleseed born, 1774 09/26 T.S. (Thomas Stearns) Eliot born in St. Louis, 1888 09/27 Thomas Nast born, 1840 09/28 Michelangelo Buanarroti born in Caprese, Italy, 1573 09/28 Pompey (Gnaeus Pompeius Magnus) born in Rome, 106BC 09/28 Seymour Cray born, 1925 09/29 Gene Autry born, 1907 10/01 Jimmy Carter born, 1924 10/02 Aristotle dies of indigestion, 322 BC 10/02 Mohandas K. Gandhi born at Porbandar, Kathiawad, India, 1869 10/04 John V. Atanasoff born, 1903 10/05 Pablo Picasso born in Malaga, Spain, 1881 10/05 Ray Kroc (founder of McDonald's) born, 1902 10/13 Lenny Bruce is born in New York City, 1925 10/13 Virgil (Publius Vergilius Maro) born near Mantua, Italy, 70 BC 10/14 Dwight David Eisenhower born, 1890 10/14 William Penn born in London, 1644 10/15 Pelham Grenville Wodehouse born, 1881 10/16 Noah Webster born, 1758 10/16 Oscar (Fingal O'Flahertie Wills) Wilde born in Dublin, 1854 10/17 Richard Mentor Johnson born, 1780, 9th V.P. of U.S. 10/21 Alfred Nobel born in Stockholm, 1833 10/27 Gerald M. Weinberg born, 1933 10/27 James Cook is born, 1466 10/31 Chiang Kai-Shek born, 1887 10/31 Dale Evans born, 1912 11/02 Daniel Boone born near Reading, PA, 1734 11/04 King William III of Orange born, 1650 11/05 Roy Rogers born, 1912 11/09 Carl Sagan born, 1934 11/10 Martin Luther born in Eisleben, Germany, 1483 11/10 Soviet President Leonid Brezhnev dies at age 75, 1982 11/11 Kurt Vonnegut, Jr, born in Indianapolis, 1922 11/13 Robert Louis Stevenson born, 1850 11/13 St. Augustine of Hippo born in Numidia, Algeria, 354 11/18 Imogene Coca born, 1908 11/18 William S. Gilbert born, 1836 11/20 RFK born, 1925 11/26 Charles Schulz born in Minneapolis, 1922 11/26 Norbert Weiner born, 1894 11/29 John Mayall is born in Cheshire, England, 1933 11/30 Cleopatra died, 30 BC 11/30 Mark Twain (Samuel Clemmens) born in Florida, Missouri, 1835 12/01 Woody Allen (Allen Stuart Konigsberg) born in Brooklyn, NY, 1935 12/04 Tommy Bolin dies of a heroin overdose in Miami, 1976 12/05 Walt (Walter Elias) Disney born in Chicago, 1901 12/08 Horace (Quintus Horatius Flaccus) born in Venosa (Italy), 65BC 12/08 James (Grover) Thurber born in Columbus, Ohio, 1894 12/10 Emily Dickenson born, 1830 12/12 E.G. Robinson born, 1893 12/14 George Washington dies, 1799 12/17 William Safire (Safir) born, 1929 12/21 Benjamin Disraeli born, 1804 12/22 Giacomo Puccini born, 1858 12/23 Joseph Smith born, 1805 12/25 Isaac Newton (Sir) born in Grantham, England, 1642 12/26 Chas. Babbage born, 1791 12/28 John von Neumann born, 1903 03/15 J.J. Robert's Birthday in Liberia 03/15 Julius Caesar assassinated by Brutus; Ides of March, 44BC 07/04 John Adams and Thomas Jefferson die on same day, 1826 07/12 Thoreau's Birthday, 1817 08/12 Thomas Mann's Death, 1955 08/20 Leon Trotsky assassinated, 1940 gcal-4.1/data/calendars/calendar.ushol0000664000000000000000000000214412244130561014646 0000000000000001/01 New Year's Day 01/14 Julian Calendar New Year's Day 02/02 Groundhog Day 02/14 St. Valentine's Day 02/20* President's Day (3rd Monday of February) 03/05 Mother-in-Law Day 03/17 St. Patrick's Day 03/20* Vernal Equinox 04/01 April Fool's Day 04/15 Income Tax Day 04/03* Daylight Savings Time begins; clocks move forward (1st Sunday of April) 04/28* Arbor Day (varies from state to state) 05/14* Mother's Day (2nd Sunday of May) 05/20* Armed Forces Day (3rd Saturday of May) 05/29* Memorial Day (Last Monday of May) 06/18* Father's Day (3rd Sunday of June) 06/21* Summer Solstice 07/04 Independence Day 09/04* Labor Day (1st Monday of September) 09/09* Grandparent's Day (2nd Sunday of September; varies from state to state) 09/22* Autumnal Equinox 10/09* Columbus Day (2nd Monday of October) 10/29* Daylight Savings Time ends; clocks move back (Last Sunday in October) 10/31 All Hallows Eve (Halloween) 11/06* Election Day (1st Tuesday after 1st Monday for even years) 11/11 Veterans' Day 11/29 Thanksgiving Day (Last Thursday in November) 12/21* Winter Solstice 12/24 Christmas Eve 12/25 Christmas 12/31 New Year's Eve gcal-4.1/data/calendars/calendar.holid0000664000000000000000000005211212353520603014614 0000000000000001/01 Independence Day in Haiti, Sudan 01/01 Universal Fraternity Day in Mozambique 01/02 Ancestry Day in Haiti 01/02 St. Berchtold's Day in Switzerland 01/03 New Year's Holiday in Scotland 01/03 Revolution Day in Upper Volta 01/04 Independence Day in Burma 01/04 Martyrs Day in Zaire 01/06 Children's Day in Uruguay 01/06 Three Kings' Day in Puerto Rico 01/07 Christmas in Ethiopia 01/07 Pioneer's Day in Liberia 01/09 Day of the Martyrs in Panama 01/11 Armed Forces Day in Liberia 01/12 Zanzibar Revolution Day in Tanzania 01/13 National Liberation Day in Togo 01/15 Adults Day in Japan 01/15 Arbor Day in Jordan 01/16 Martyrs Day in Benin 01/18 Revolution Day in Tunisia 01/19 Confederate Heroes Day in Texas 01/19 Ethopian Epiphany in Ethiopia 01/19 Nameday of Archbishop Makarios in Cyprus 01/20 Army Day in Mali 01/20 National Heroes Day in Guinea-Bissau 01/20* Lee-Jackson Day in Virginia (3rd Monday) 01/20* Martin Luther King Day in New York (3rd Sunday) 01/20* Robert E. Lee's Birthday in Alabama & Mississippi (3rd Monday) 01/21 Our Lady of Altagracia in Dominican Republic 01/21* Lee-Jackson Day in Virginia (3rd Monday) 01/23 Feast of St. Ildefonsus 01/23 National Handwriting Day 01/24 Economic Liberation Day in Togo 01/26 Republic Day in India 01/30 Australia Day in Australia 02/01 Chinese New Year Holiday (3 days) in Taiwan 02/02 Candlemas 02/04 Independence Commemoration Day in Sri Lanka 02/05 Constitution Day in Mexico 02/06 New Zealand Day 02/07 Independence Day in Grenada 02/09 St. Maron's Day in Lebanon 02/10 Feast of St. Paul's Shipwreck, AD 60 02/11 National Foundation Day in Japan 02/12 Pyidaungsa Day in Burma 02/16 Makha Bucha Day in Thailand 02/18 Democracy Day in Nepal 02/18 Independence Day in The Gambia 02/23 Republic Day in Guyana 02/24 Gregorian Calendar Day 02/25 National Day in Kuwait 02/27 Independence Day in Dominican Republic 03/01 Samil Independence Movement Day in South Korea 03/01 St. David's Day, Cardiff 03/02 Peasants Day in Burma 03/02 Texas Independence day 03/02 Victory of Adowa in Ethiopia 03/03 Girl's Day in Japan 03/03 Throne Day in Morocco 03/04 Vermont Admission Day (admitted as 14th state in 1791) 03/05 Independence Day in Equatorial Guinea 03/06 Lantern Day, Bejing 03/07* Purim - Feast of Lots 03/08 First Annual International Women's Day, 1909 03/08 International Women's Day in U.S.S.R. 03/08 Syrian National Day in Libyan Arab Republic 03/08 Women's Day in Guinea-Bissau, Taiwan, Yemen Democratic Republic 03/08 Youth Day in Zambia 03/09 Decoration Day in Liberia 03/09 Falgun Purnima Day in Nepal 03/10 Labor Day in South Korea 03/11 Johnny Appleseed Day; anniversary of the death of John Chapman 03/12 Commonwealth Day in Swaziland 03/12 Independence Day in Mauritius 03/12 Moshoeshoe's Birthday in Lesotho 03/12 Renovation Day in Gabon 03/13 National Day in Grenada 03/16 Black Press Day; first Black newspaper founded in 1827 03/17 Evacuation Day in Suffolk County, Massachusetts 03/17 St. Patrick's Day 03/19 St. Joseph's Day in Colombia, Costa Rica, Holy See, Liechtenstein, San Marino, Spain, Venezuela 03/19 Tree Planting Day in Lestho 03/20 Independence Day in Tunsia 03/20 Youth Day in Oklahoma 03/21 Afghan New Year in Afghanistan 03/21 Juarez' Birthday in Mexico 03/22 Abolition Day in Puerto Rico 03/23 Pakistan Day in Pakistan 03/25 Greek Independence Day in Cyprus 03/25 Lady Day (a.k.a. the Feast of the Annunciation) 03/25 Maryland Day in Maryland 03/25 National Holiday in Greece 03/25* Seward's Day in Alaska (last Monday) 03/26 Independence Day in Bangladesh 03/26 Prince Jonah Kuhio Kalanianaole Day in Hawaii 03/27 Armed Forces Day in Burma 03/29 Death of President Barthelemy Boganda in Central African Republic 03/29 Memorial Day in Madagascar 03/31 National Day in Malta 04/01 Youth Day in Benin 04/02 Malvinas Day in Argentina 04/02 Pascua Florida Day in Florida 04/04 Ching Ming Festival in Hong Kong 04/04 Liberation Day in Hungary 04/04 National Day in Senegal 04/05 Arbor Day in South Korea 04/05 Tomb Sweeping Day in Taiwan 04/06 Chakri Memorial Day in Thailand 04/06 Victory Day in Ethiopia 04/08 Fast and Prayer Day in Liberia 04/09 Martyrs Day in Tunisia 04/11 National Heroes Day in Costa Rica 04/13 National Day in Chad 04/13 Songkron Day in Thailand 04/14 Day of the Americas in Honduras 04/15 Bengali New Year in Bangladesh 04/15* Patriot's Day in Maine & Massachusetts (3rd Monday) 04/16 De Diego's Birthday (celebrated in Puerto Rico) 04/16 Holy Week (5 days) in Venezuela 04/16 Tourist Week (5 days) in Uruguay 04/17 Burmese New Year in Burma 04/18 Independence Day in Chile, Zimbabwe 04/19 Declaration of Independence in Venezuela 04/19 Republic Day in Sierra Leone 04/21 San Jacinto Day in Texas 04/22 Arbor Day in Nebraska & Delaware 04/22 Oklahoma Day in Oklahoma 04/24 Victory Day in Togo 04/24* Pesach - First Day of Passover - Festival of Freedom 04/25 Anzac Day in Australia, New Zealand, Tonga, Western Samoa 04/25 Liberation Day in Italy 04/25 National Flag Day in Swaziland 04/26 Confederate Memorial Day in Florida & Georgia 04/26 Union Day in Tanzania 04/27 Independence Day in Togo 04/28* Arbor Day in Wyoming (last Monday) 04/28* Confederate Memorial Day in Alabama & Mississippi (last Monday) 04/30 The Workers Day in Uruguay 05/01 Labor Day in many places 05/01 Law Day (decl. by Eisenhower) 05/01 May Day in many places 05/02 Constitution Day in Japan 05/04 Rhode Island Independence Day 05/05 Children's Day in Japan, South Korea 05/05 Coronation Day in Thailand 05/05 Liberation Day in Netherlands 05/06 Bataan Day in Philippines 05/06* Bank Holiday in UK 05/07 May Day in United Kingdom 05/08 Truman Day in Missouri 05/09 Liberation Day in Czechoslovakia 05/09 Victory Day in Poland, U.S.S.R. 05/10 Confederate Memorial Day in South Carolina 05/10 Mothers Day in Guatamala 05/11 Minnesota Day in Minnesota 05/14 Buddhist Holiday (Waisak 2528) in Indonesia 05/14 Independence Day (2 days) in Paraguay 05/14 Unification Day in Liberia 05/15 Kamuzu Day in Malawi 05/15 Vesak Day in Singapore, Malaysia 05/15 Visakha Bucha Day in Thailand 05/16 Discovery Day in Cayman Islands 05/17 Constitution Day in Nauru, Norway 05/18 Flag Day in Haiti 05/18 Prayer Day in Denmark 05/19 Youth and Sports Day in Turkey 05/19* Memorial Day in Michigan (3rd Monday) 05/20 Mecklenburg Independence Day in North Carolina 05/20 National Day in Cameroon 05/20 Victoria Day in Canada 05/20* Memorial Day in Michigan (3rd Monday) 05/22 National Heroes Day in Sri Lanka 05/23 Commonwealth Day in Jamaica, Belize 05/23 National Labor Day in Jamaica 05/24 Bermuda Day in Bermuda 05/24 Day of Slav Letters in Bulgaria 05/25 African Freedom Day in Zimbabwe 05/25 African Liberation Day in Chad, Mauritania, Zambia 05/25 Independence Day in Jordan 05/25 Memorial Day in New Mexico & Puerto Rico 05/26* First Day of Shavuot 05/27* Bank Holiday in UK 05/28 Mothers Day in Central African Republic 05/31 Pya Martyrs Day in Togo 05/31 Republic Day in South Africa 06/01 Independence Days (3 days) in Western Samoa 06/01 Madaraka Day in Kenya 06/01 Victory Day in Tunisia 06/03 Confederate Memorial Day in Kentucky & Louisiana 06/03 Labor Day in Bahamas 06/03* Bank Holiday in Rep. of Ireland 06/04 Emancipation Day in Tonga 06/05 Constitution Day in Denmark 06/05 Liberation Day in Seychelles 06/06 Memorial Day in South Korea 06/09 Senior Citizen's Day in Oklahoma 06/10 Camoes Day in Portugal 06/11 King Kamehameha I Day in Hawaii 06/12 Independence Day in Philippines 06/14 Flag Day 06/17 Bunker Hill Day in Suffolk County, Massachusetts 06/17 Independence Day in Iceland 06/17 National Day in Federal Republic of Germany 06/18 Evacuation Day in Egypt 06/19 Emancipation Day in Texas 06/19 Labor Day in Trinidad, Tobago 06/19 Revolution Day in Algeria 06/20 Flag Day in Argentina 06/20 West Virginia Day in West Virginia 06/22 National Sovereignty Day in Haiti 06/23 National Holiday in Luxembourg 06/24 Fisherman's Day in Madagascar, Mozambique, Somalia 06/24 Kings Day in Spain 06/24 Peasants Day in Peru 06/24 St. Jean-Baptiste Day in Quebec 06/28 Mothers Day in Central African Republic 06/29 Independence Day in Seychelles 06/29 Last Day of Ramadan* in Algeria, Oman 06/30 Day of the Army in Guatemala 07/01 Dominion Day in Canada 07/01 Freedom Day in Suriname 07/01 Independence Day in Burundi 07/01 National Day in Rwamda 07/01 Republic Day in Ghana 07/02 National Day in Kiribati 07/04 Caribbean Day in Guyana 07/04 Constitution Day in Cayman Islands 07/04 Family Day in Lesotho 07/04 Heroes Day in Zambia 07/04 Kadooment Day in Barbados 07/04 Philippine-American Friendship Day in the Philippines 07/04 Warriors Day (2 days) in Yugoslavia 07/05 Day of Peace and Unity in Rwanda 07/05 Independence Day in Algeria, Venezuela 07/07 National Day in Malawi 07/07 Saba Saba Day in Tanzania 07/09 Independence Day in Argentina 07/10 Independence Day in Bahamas 07/11 National Holiday in the Mongolian People's Republic 07/14 Bastille Day 07/14 National Holiday in Monaco 07/15 St. Swithin's Day 07/16 Presidents Day in Botswanna 07/17 Constitution Day in South Korea 07/17 Public Holiday in Botswanna 07/18 Constitution Day in Uruguay 07/18 Liberation Day in Nicaragua 07/19 Martyrs Day in Burma 07/20 Independence Day in Colombia 07/21 National Holiday in Belgium 07/22 National Day in Poland 07/23 Eqyptian National Day in Syrian Arab Republic 07/23 Remembrance Day in Papua, New Guinea 07/24 Pioneer Day in Utah 07/24 Simon Bolivar's Day in Ecuador, Venezuela 07/25 Constitution Day in Puerto Rico 07/25 National Rebellion Day (3 days) in Cuba 07/25 Republic Day in Tunisia 07/26 Independence Day in Liberia 07/26 National Day in Maldives 07/28 Independence Days (2 days) in Peru 07/29 Rain Day in Waynesburg, PA 07/31 Revolution Day in Congo 08/01 Discovery Day in Trinidad, Tobogo 08/01 Emancipation Day in Granada 08/01 Freedom Day in Guyana 08/01 National Day in Switzerland 08/01 National Holidays (5 days) in El Salvador 08/01 Parent's Day in Zaire 08/03 Independence Day in Jamaica, Niger 08/03 Memorial Day of Archbishop Makarios in Cyprus 08/04 Freedom Day in Guyana 08/05* Bank Holiday in Scotland and Northern Ireland 08/06 Bank Holiday in Australia, British Columbia, Fiji, Iceland, Ireland, Ontario 08/06 Emancipation Day in Bahamas 08/06 Independence Day in Bolivia 08/09 National Day in Singapore 08/10 Independence Day in Ecuador 08/11 Heroes Day (2 days) in Zimbabwe 08/11 Independence Day in Chad 08/13 Women's Day in Tunisia 08/14 Independence Day in Pakistan 08/14 VJ Day, 1945 08/15 Independence Day in India 08/15 Liberation Day in South Korea 08/15 National Day in Congo 08/15* Admission Day in Hawaii, 1984 (3rd Friday) 08/16 Bennington Battle Day in Vermont 08/16 Independence Days (3 days) in Gabon 08/16 Restoration Day in Dominican Republic 08/17 Independence Day in Indonesia 08/19 Independence Day in Afghanistan 08/20 Constitution Day in Hungary 08/23 Liberation Days (2 days) in Romania 08/24 National Flag Day in Liberia 08/25 Constitution Day in Paragual 08/25 Independence Day in Uruguay 08/26 Susan B. Anthony Day in Massachussetts 08/26* Bank Holiday in England and Wales 08/27 Liberation Day in Hong Kong 08/28 Heroes Day in Philippines 08/30 Huey P. Long Day in Louisiana 08/30 Victory Day in Turkey 08/31 Independence Day in Trinidad, Tobago 08/31 National Day in Malaysia 08/31 Pashtoonian Day in Afghanistan 09/01 Army Day in Chile 09/03 Independence Day in Qatar 09/03 Memorial Day in Tunisia 09/06 Defense of Pakistan Day in Pakistan 09/06 Settlers Day in South Africa 09/07 Independence Day in Brazil 09/09 Admission Day in California 09/09 National Day in North Korea 09/10 Korean Thanksgiving Day (Chusuk) in South Korea 09/10 National Day in Belize 09/11 National Holiday in Chile 09/12 Defender's Day in Maryland 09/12 Revolution Day in Ethiopia 09/13 Barry Day commemorates the death of Commodore John Barry 09/15 Respect for the Aged Day in Japan 09/16 Cherokee Strip Day in Oklahoma 09/16 Independence Day in Mexico, Papua, New Guinea 09/17 National Heroes Day in Angola 09/18 Independence Day in Chile, Zimbabwe 09/19 Army Day in Chile 09/21 Independence Day in Belize 09/22 Independence Day in Mali 09/22 National Sovereignty Day in Haiti 09/24 Independence Day in Guinea-Bissau 09/24 National Day in Saudi Arabia 09/24 Republic Day in Trinidad, Tobago 09/25 Army Day in Mozambique 09/25 Referendum Day in Rwanda 09/26 National Day in Maldives, Yemem Deomcratic Republic 09/26 Revoluation Anniversary Day in Yemen Arab 09/28 Confucious' Day in Taiwan 09/30 Botswanna Day in Botswanna 09/30 First Day of Sukkot 10/01 Armed Forces Day in South Korea 10/01 Independence Day in Nigeria 10/01 Labor Day in Australia 10/01 National Liberation Day (2 days) in China 10/01 Public Holiday in Botswanna 10/03 National Foundation Day in South Korea 10/03 U.N. Day in Varbados 10/04 Independence Day in Lesotho 10/06 National Sports Day in Lesotho 10/07 National Heroes Day in Jamaica 10/08 Constitution Day in U.S.S.R 10/08 Fiji Day in Fiji 10/08 Thanksgiving Day in Canada 10/09 Independence Day in Uganda 10/09 Korean Alphabet Day in South Korea 10/09 Leif Erikson Day commemorates the discovery of North America in AD 1000 10/09 Republic Day in Khmer Republic 10/10 Fiji Day in Fiji 10/10 Health-Sports Day in Japan 10/10 National Day in Taiwan 10/10 Oklahoma Historical Day in Oklahoma 10/11 Day of the Revolution in Panama 10/11 Druger Day in South Africa 10/12 Day of the Race in Argentina 10/12 Discovery Day in Gahamas 10/12 National Day in Equatorial Guinea, Spain 10/12 Our Lady Aparecida Day in Brazil 10/12 Pan American Day in Belize 10/13 St. Edward's Day - Patron saint of England 10/14 National Day in Yemen Arab Repyblic 10/14 Young People's Day in Zaire 10/14* Thanksgiving Day in Canada 10/15 Evacuation Day in Tunisia 10/16 National Boss Day 10/17 Heroes Day in Jamaica 10/17 Mother's Day in Malawi 10/20 Kenyatta Day in Kenya 10/21 Armed Forces Day in Honduras 10/21 Revolution Days (2 days) in Somalia 10/23 Chulalongkron's Day in Thsailand 10/24 Independence Day in Zambia 10/24 United Nations Day 10/25 Labor Day in New Zealand 10/25 Taiwan Restoration Day in Taiwan 10/26 Agam Day in Nauru 10/26 Armed Forces Day in Benin, Rwanda 10/26 National Day in Austria 10/28 National Holiday in Greece 10/28 OHI Day in Cyprus 10/28* Bank Holiday in Rep. of Ireland 10/29 Republic Day in Turkey 10/31 Nevada Day in Nevada 11/01 All Saints Day 11/02 All Souls Day in Bolivia, Brazil, El Salvador, Uruguay 11/02 Memorial Day in Ecuador 11/03 Culture Day in Japan 11/03 Thanksgiving Day in Liberia 11/04 Flag Day in Panama 11/04 Will Rogers Day 11/06 Green March Day in Morocco 11/07 National Revolution Day 11/07 October Revolution Day in Hungary 11/11 Independence Day in Angola 11/11 Rememberance Day in Canada 11/11 Republic Day in Maldives 11/15 Dynasty Day in Belgium 11/17 Army Day in Zaire 11/18 Independence Day in Morocco 11/18 National Days (4 days) in Oman 11/19 Discovery Day in Puerto Rico 11/19 Feast Day of S.A.S. Prince Rainier in Monaco 11/20 Revolution Day in Mexico 11/21 Day of Prayer and Repentance in Federal Republic of Germany 11/22 Independence Day in Lebanon 11/23 Labor Thanksgiving Day in Japan 11/25 Independence Day in Suriname 11/28 Independence Day in Albania, Mauritania 11/29 Day of the Republic (2 days) in Yugoslavia 11/29 Goodwill Day in Liberia 11/29 Liberation Day in Albania 11/29 National Day in Burma 11/30 Independence Day in Barbados, Yemen Deomcratic Republic 11/30 National Day in Benin 11/30 National Heroes Day in Philippines 11/30 St. Andrew's Day 12/01 Independence Day in Central African Republic 12/02 National Holiday in United Arab Emirates 12/03 National Holiday in Laos 12/06 Independence Day in Finland 12/07 Delaware Day in Delaware 12/07 Independence Day in Ivory Coast, Panama 12/08 Mother's Day in Panama 12/09 Independence Day in Tanzania 12/10 Human Rights Day 12/10 Thai Constitution Day in Thailand 12/10 Wyoming Day in Wyoming 12/11 Independence Day in Upper Volta 12/12 Independence Day in Kenya 12/13 Republic Day in Malta 12/15 Statue Day in Netherlands Antilles 12/16 Constitution Day in Nepal 12/16 Day of the Covenant in South Africa 12/16 National Day in Bahrain 12/16 Victry Day in Bangladesh 12/17 National Day in Bhutan 12/18 Republic Day in Niger 12/23 Victory Day in Egypt 12/25 Children's Day in Congo 12/26 Bank Holiday in Canada, Rep. of Ireland, and UK 12/26 Boxing Day 12/26 Family Day in South Africa 12/26 St. Stephen's Day 12/26 Bank Holiday in Canada, Rep. of Ireland, and UK 12/27 Bank Holiday in Cayman Islands 12/27 Constitution Day in North Korea 12/27 Public Holiday in Lesotho, Zimbabwe 12/29 Civic Holidays (3 days) in Costa Rica 12/31 Bank Holiday in El Salvador, Honduras, Pakistan 12/31 Feed Yourself Day in Benin 04/21 Tiradentes in Brazil 04/25 Anniversary of the Revolution in Portugal 04/29 Emperor's Birthday in Japan 04/30 Queen's Birthday in Netherlands, Netherlands Antilles 05/01 Boy's day in Japan 05/02 King's Birthday in Lesotho 05/05 Battle of Puebla in Mexico 05/08 Buddha's Birthday in South Korea 05/08 Elections for the National Assembly in Philippines 05/14 Anniversary of the Founding of Guinean Deomcratic Party in Guinea 05/25 Anniversary of the Revolution of 1810 in Argentina 05/25 Revolution in the Sudan in Libyan Arab Republic 05/27 Afghanistan attains sovereignty, 1921 06/02 Corpus Christi in Paraguay 06/03 Jefferson Davis's Birthday in Alabama & Mississippi (1st Monday) 06/03 Jefferson Davis's Birthday in Florida, Georgia, & S. Carolina 06/04 Queen's Birthday in New Zealand 06/06 His Majesty, Yang Di-Pertuan Agong's Birthday in Malaysia 06/11 Queen's Birthday 06/12 Peace with Bolivia in Paraguay 06/13 Corrective Movement in Yemen Arab Republic 06/16 Bloomsday - Anniversary of Dublin events, 1904, in "Ulysses" 06/18 Queen's Birthday in Fiji 06/19 Artigas Birthday in Uruguay 06/22 Corrective Movement in Yermen Democratic Republic 06/22 Midsummer Eve in Finland, Sweden 06/24 Battle of Carabobob in Venezuela 07/01 Eid-Ul-Fitr* (2 days) in Pakistan 07/01 Union of the Somalia Republic in Somalia 07/07 Anniversary of the P.U.N. in Equatorial Guinea 07/12 Battle of Boyne celebrated in Northern Ireland 07/12 The Twelfth in Northern Ireland 07/13 Buddhist Lent in Thailand 07/14 Anniversary of the Revolution in Iraq 07/17 July Revolution in Iraq 07/17 Munoz Rivera's Birthday (celebrated in Puerto Rico) 07/22 King's Birthday in Swaziland 07/23 Anniversary of the Revolution in Egypt 07/25 St. James, Patron Saint in Spain 07/27 Barbosa's Birthday (celebrated in Puerto Rico) 07/29 Olsok Eve in Norway to commemorate Norway's Viking King St. Olav 08/01 Founding of Asuncion in Paraguay 08/02 Our Lady of Los Angeles in Costa Rica 08/03 Massacre du Pidjiguiti in Buinea-bissau 08/07 Battle of Boyaca in Colombia 08/11 King Hussein's Accession to the Throne in Jordan 08/12 Queen's Birthday in Thailand 08/13 Proclamation of Independence in Central African Republic 08/14 Waddi Dhahab in Morocco 08/15 Founding of Ascuncion in Paraguay 08/15 Santa Maria in Malta 08/17 Anniversary of the Death of General San Martin in Argentina 09/09 Anniversary of the Socialist Revolution (2 days) in Bulgaria 09/10 Moon Festival in Taiwan 09/11 Aniversary of military coup in Chile 09/11 Ethiopian New Year in Ethiopia 09/12 Amilcar Cabral's Birthday in Guinea-Bissau 09/14 Battle of San Jacinto in Nicaragua 09/15 Foundation of Panama in Panama 09/23 Grito de Lares in Puerto Rico 09/24 Anniversary of the Third Republic in Ghana 09/24 Our Lady of Mercedes in Dominican Republic 09/27 Feast of Finding the True Cross in Ethiopia 09/29 Battle of Boqueron in Paraquay 10/02 Anniversary of Guinean Independence in Guinea 10/03 Chung Yeung Festival in Hong Kong 10/03 Francisco Morazan's Birthday in Honduras 10/05 Anniversary of Proclamation of the Republic in Portugal 10/08 Battle of Agamos in Peru 10/09 Independence of Guayaquil in Ecuador 10/17 Dessaline's Death Anniversary in Haiti 10/20 Anniversary of the 1944 Revolution in Guatemala 11/01 Feast of All Saints in Portugal 11/01 Samhain; Beginning of the Celtic year and most important holiday. 11/03 Independence from Columbia in Panama 11/03 Independence of Cuenca in Ecuador 11/06 Prophet Mohammed's Birthday in Malaysia 11/07 Anniversary of Great October Revolution in Bulgaria 11/08 Her Majesty, the Queen's Birthday in Nepal 11/10 King's Birthday in Bhutan 11/11 Angola gains independence from Portugal, 1975 11/11 Independence of Cartagena in Colombia 11/12 Prince Charles' Birthday in Fiji 11/14 King Hussein's Birthday in Jordan 11/15 Proclamation of the Republic in Brazil 11/15 Thatlouang Festival in Laos 11/16 Oklahoma Heritage Week in Oklahoma 11/17 Corrective Movement in Syrian Arab Republic 11/18 Battle of Viertieres in Haiti 11/19 Anniversary of the 1968 Coup by the Army in Mali 11/19 Garifuna Settlement in Belize 11/19 Prince of Wales Birthday in Fiji 11/22 Anniversary of Portuguese Aggression in Guinea 11/24 Anniversary of the New Regime in Zaire 11/28 Independence from Spain in Panama 11/28 Proclamation of the Republic in Chad 12/01 Anniversary of the Restoration of Independence in Portugal 12/07 Prophet Mohammed's Birthday in Fiji 12/08 Blessing of the Water in Uruguay 12/08 Our Lady of the Cacupe in Paraguay 12/10 Foundation of Worker's Party in Angola 12/25 Birthday of Quaid-i-Azam in Pakistan 12/26 Feast of Our Theotokos in Greece 12/29 His Majesty, the King's Birthday in Nepal 12/30 Anniversary of the Democratic Republic of Madagascar in Madagascar 12/31 Proclamation of the Republic in Congo gcal-4.1/data/birthday.rc0000664000000000000000000000257412244130561012230 00000000000000; Nonsense birthday dates --just for example-- for Gcal-2.20 or newer ; ; Here, the birthday dates are reminded 2 days in advance. ; ; Try this resource file by using these Gcal example options ; for a better understanding what's going on: ; ; * gcal -f./birthday.rc -QUxy ; * gcal -f./birthday.rc -QUxy -Hyes | sort ; * gcal -f./birthday.rc -Qx -u 1960 ; * gcal -f./birthday.rc -Qx -u %00010101 9999 ; * gcal -f./birthday.rc -Qxy -u %9999 ; * gcal -f./birthday.rc -c-Qxy -u .+ ; $b=%1%>7&*B $t=%2%3 birthday %1[in %>8*d day(s)]%2 of %1 $d=on %1%3%>02*D0@a -%<3#U0@a %2%4-> $e=on %1%3%>02*D0@b -%<3#U0@b %2%4-> ; a=0101 0@a %i1972 $d$b1971 $tIndy b=a a=1230 0@a:2 %i1971 $e$b1970 $tIndy a=0111 0@a-2:3 %i1972 $d$b1971 $tOttokar a=0228 0@a-2:3 %i1973 $d$b1972 $tCasper a=0302 0@a-2:3 %i1974 $d$b1973 $tnot me! a=0501 0@a-2:3 %i1949 $d$b1948 $tAlfred a=0601 0@a-2:3 %i1939 $d$b1938 $tElvira a=0612 0@a-2:3 %i1973 $d$b1972 $tSnoopy a=0713 0@a-2:3 %i1968 $d$b1967 $tAlf a=0721 0@a-2:3 %i1953 $d$b1952 $tFurby a=0722 0@a-2:3 %i1953 $d$b1952 $tKermit a=0804 0@a-2:3 %i1999 $d$b1998 $tLeia a=0806 0@a-2:3 %i1939 $d$b1938 $tGroby a=0811 0@a-2:3 %i1962 $d$b1961 $tObi Wan a=0813 0@a-2:3 %i1975 $d$b1974 $tWorf a=0921 0@a-2:3 %i1963 $d$b1962 $tme? a=1105 0@a-2:3 %i1967 $d$b1966 $tGoofy a=1111 0@a-2:3 %i1969 $d$b1968 $tDenis a=1224 0@a-2:3 %i1977 $d$b1976 $tTweety a=1224 0@a-2:3 %i1974 $d$b1973 $tJoshi gcal-4.1/data/scripts/0000775000000000000000000000000013041164075011636 500000000000000gcal-4.1/data/scripts/ct2gcal.pl0000664000000000000000000002305312353314150013431 00000000000000# $Id: ct2gcal.pl 0.21 2000/06/14 00:02:01 tom Exp $ # # ct2gcal.pl: Very simple, slow and silly Perl script for converting # "[X]Calentool-2.3" appointments into the `gcal' format. # # # Copyright (c) 1994, 95, 1996, 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # $[ = 1; # set array base to 1 $, = ' '; # set output field separator $\ = "\n"; # set output record separator # # Define the field separator used (blank actually). # $FS = ' '; # # Define the length of the text displayed on a line. # This is a minimum value suggesting where the first position of a # break can take place. If this happens within a word, the break # is done at its end. # Set `$linebreak' to 0 if you don't want to break the text explicitly # (this is the same mode which was done by former versions of this script). # $linebreak = 0; # # Print some leading comment text # print '; ct2gcal.pl output for Gcal-2.20 or newer'; print ';'; print '; Absolutely NO warrenty!'; print ';'; print ';'; # # Maximum length of a gcal year yyyy (actually 4 places), month `mm', # day `dd' and `n' field. # $ylen = 4; $mlen = 2; $dlen = 2; $nlen = 1; # # Maximum lenght of a repeated text # means a maximum number of repetitions of 999. # $rlen = 3; # # The newline character of a text part of a gcal resource file line. # $gcalnl = '~'; # # The quote character of a text part of a gcal resource file line. # $gcalqt = "\\"; # # The remark character of a text part of a gcal resource file line. # $gcalremark = ';'; # # The `text' of a typical calentool appointment starts in column 19. # $ctcolumn = 19; # # The remark character sequence of a calentool appointment line. # $ctremark = '# '; # # The character sequence which indicates an eternal date field # of a calentool appointment line # $cteternal = '**'; # # Main block. # while (<>) { chop; # strip record separator @Fld = split(/[$FS\n]/, $_, 9999); # # Test if line is a comment. # if (substr($_, 1, 1) eq substr($ctremark, 1, 1)) { # # First comment char found, check whether line contains a "#include" statement. # $len = length($_); if ($len > 1) { $ch = substr($_, 2, 1); } else { $ch = ''; } if ($ch eq substr($ctremark, 2, 1) || $ch eq '') { print $gcalremark . $_; } else { print $_; } } else { # # On conversion we must calculate with some displacement. # $displ = 0; # # No comment, so try to convert... # if ($_ ne '') { # # Test whether line contains an explictit gcal newline character ~ # if it is found, quote it by the gcal quote character \ # i.e. generate character sequence \~ . # $tmpstr = ''; $len = length($_); for ($i = 1; $i <= $len; $i++) { $ch = substr($_, $i, 1); if ($ch eq $gcalnl) { $tmpstr = $tmpstr . $gcalqt; } $tmpstr = $tmpstr . $ch; } $_ = $tmpstr; # # Add "inclusive_date" special text %iyyyy[mm[dd[n]]] (variable "idatetxt") # in case a "... yyyy)" text fragment is found in line. # $idatetxt = ''; # if ($_ =~ /[0-9]+\)/) { # # Pattern found, so search all fields for information. # for ($i = 1; $i <= $#Fld; $i++) { # # Extract the year number. # if ($Fld[$i] =~ /[0-9]+\)/) { $len = length($Fld[$i]); for ($j = 1; $j <= $len; $j++) { if (substr($Fld[$i], $j, 1) =~ /[0-9]/) { $len = $j; } } $tmpstr = substr($Fld[$i], $len, length($Fld[$i])); # # Ok, lets go on... # $len = length($tmpstr); for ($j = 1; $j <= $len; $j++) { $ch = substr($tmpstr, $j, 1); if ($ch =~ /[0-9]/) { $idatetxt = $idatetxt . $ch; } } # # Add leading zeroes to the year until length(year)==ylen. # $len = length($idatetxt); if ($len < $ylen) { $tmpstr = ''; $len = $ylen - $len; for ($j = 1; $j <= $len; $j++) { $tmpstr = '0' . $tmpstr; } $idatetxt = $tmpstr . $idatetxt; } # # Add month and day to "idatetxt". # if ($Fld[2] ne $cteternal) { $idatetxt = $idatetxt . $Fld[2]; if ($Fld[3] ne $cteternal) { $idatetxt = $idatetxt . $Fld[3]; } } # # Cut "idatetxt" so it contains ylen+mlen+dlen characters maximum. # $len = length($idatetxt); if ($len > $ylen + $mlen + $dlen) { $idatetxt = substr($idatetxt, $len - ($ylen + $mlen + $dlen - 1), $ylen + $mlen + $dlen); } } } } # # Test if line contains a textual "[number]" field which # indicates a date, that occurs at [number]'th weekday of month. # $ntxt = ''; $loopto = $#Fld; # if ($Fld[3] !~ /[0-9]/) { if ($_ =~ /\[+[012345lL]+\]/) { for ($i = 1; $i <= $loopto; $i++) { if ($Fld[$i] =~ /\[+[012345lL]+\]/) { # # Pattern found, so terminate loop. # $loopto = $i; # # Extract the information. # $len = length($Fld[$i]); for ($j = 1; $j <= $len; $j++) { if (substr($Fld[$i], $j, 1) =~ /[012345lL]/) { $len = $j; } } $tmpstr = substr($Fld[$i], $len, length($Fld[$i])); # # Ok, lets go on... # $len = length($tmpstr); for ($j = 1; $j <= $len; $j++) { $ch = substr($tmpstr, $j, 1); if ($ch =~ /[012345lL]/) { $ntxt = $ntxt . $ch; } } # # Cut "ntxt" so it contains "nlen" characters maximum. # if (length($ntxt) > $nlen) { $ntxt = substr($ntxt, 1, $nlen); } # # Replace l|L(==last weekday in month) entry by a `9'. # if ($ntxt =~ /[lL]/) { $ntxt = '9'; } # # Append found number text to starting date special text. # if ($idatetxt ne '') { $idatetxt = $idatetxt . $ntxt; } # # Eliminate the found "[number]" field. # $displ += (length($Fld[$i]) + 1); } } } } # # Test if line contains a textual "" field and eliminate it. # $rtxt = ''; $loopto = $#Fld; # if ($_ =~ /<+[0-9]+>/) { for ($i = 1; $i <= $loopto; $i++) { if ($Fld[$i] =~ /<+[0-9]+>/) { # # Pattern found, so terminate loop. # $loopto = $i; # # Extract the information. # $len = length($Fld[$i]); for ($j = 1; $j <= $len; $j++) { if (substr($Fld[$i], $j, 1) =~ /[0-9]/) { $len = $j; } } $tmpstr = substr($Fld[$i], $len, length($Fld[$i])); # # Ok, lets go on... # $len = length($tmpstr); for ($j = 1; $j <= $len; $j++) { $ch = substr($tmpstr, $j, 1); if ($ch =~ /[0-9]/) { $rtxt = $rtxt . $ch; } } # # Cut "rtxt" so it contains "rlen" characters maximum. # if (length($rtxt) > $rlen) { $rtxt = substr($rtxt, 1, $rlen); } # # Eliminate the information. # $displ += (length($Fld[$i]) + 1); } } } # # Append "idatetxt" to line. # if ($idatetxt eq '') { $line = $_; } else { $line = $_ . '%i' . $idatetxt; } if ($Fld[2] eq $cteternal) { $Fld[2] = '00'; } if ($Fld[3] eq $cteternal) { $Fld[3] = '00'; } # # Manage possible breaks in the text part of appointment. # if ($linebreak < 1) { $textpart = substr($line, $ctcolumn + $displ, 999999); } else { $tpart = substr($line, $ctcolumn + $displ, 999999); $len_tpart = length($tpart); if ($len_tpart > $linebreak) { $k = 0; $textpart = ''; for ($i = 1; $i <= $len_tpart; $i += ($linebreak + $k)) { $textpart = $textpart . substr($tpart, $i, $linebreak - 1); $j = 0; $k = 0; while (substr($tpart, $linebreak + $i + $j - 1, 1) !~ /[ \t]/) { $textpart = $textpart . substr($tpart, $linebreak + $i + $j - 1, 1); $j++; if ($linebreak + $i + $j - 1 > $len_tpart) { last; } } $k += $j; $textpart = $textpart . $gcalnl; } } else { $textpart = $tpart; } $i = length($textpart); if (substr($textpart, $i, 1) eq $gcalnl) { $textpart = substr($textpart, 1, $i - 1); } } if ($rtxt ne '') { # # If "rtxt" is given, produce the line "rtxt" times using a date variable. # print 'a=' . $Fld[2] . $Fld[3] . $ntxt; $j = int($rtxt); # # Print line(s) only if repetition factor is 1 or more. # if ($j > 0) { for ($i = 1; $i <= $j; $i++) { if ($Fld[1] ne $cteternal) { print '19' . $Fld[1] . '@a' . ($i - 1) . ' ' . $textpart; } else { print '0@a' . ($i - 1) . ' ' . $textpart; } } } } else { # # Print the constructed line. # if ($Fld[1] ne $cteternal) { print '19' . $Fld[1] . $Fld[2] . $Fld[3] . $ntxt . ' ' . $textpart; } else { print '0000' . $Fld[2] . $Fld[3] . $ntxt . ' ' . $textpart; } } } } } gcal-4.1/data/scripts/old2v220.pl0000664000000000000000000001075012353314150013364 00000000000000# $Id: old2v220.pl 0.05 2000/01/12 00:00:05 tom Exp $ # # old2v220.pl: Very simple, slow and silly Perl script for converting # resource files of former Gcal versions into the style # which is used by Gcal-2.20 or newer. # This means, all former `%s[DATE]' and `%e[DATE]' # special texts are converted into their according # `%i[STARTING_DATE][#[ENDING_DATE]]' equivalents. # # *** WARNING *** # This script is unable to manage `%s[DATE]' and `%e[DATE]' special texts # correctly, if all or parts of the DATE component is/are assembled # by using Gcal's text variable mechanism! # *** WARNING *** # # # Copyright (c) 1996, 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # $[ = 1; # set array base to 1 $, = ' '; # set output field separator $\ = "\n"; # set output record separator while (<>) { chop; # strip record separator if ($. == 1) { # # Check the informational text at the beginning of a resource file. # A typical text in resource files of former Gcal versions looks # like "; SCRIPTNAME.SUFFIX output" for resource files already # converted and installed by means of `data/Makefile' after processing # of the `install' target. Only in cases we work on such a resource # file or resource files which are created manually by a user, let's # convert the file, otherwise let's print it untouched (AS IS)! # $mode = 0; # # Avoid to convert resource files which are already in the Gcal-2.20 style. # if ($_ !~ / for Gcal-2.20 or newer/) { $mode = 1; # # No Gcal-2.20 resource file, let's update the informational text. # if (substr($_, 1, 2) eq '; ') { $mode = 2; print $_ . ' for Gcal-2.20 or newer'; } } } # # Main block. # if ($mode == 1) { $is_s = 0; if ($_ =~ /[^\\]+%+[sS]/) { $is_s = 1; } $is_e = 0; if ($_ =~ /[^\\]+%+[eE]/) { $is_e = 1; } if ($is_s == 1 || $is_e == 1) { # # Build the line. # $is_both = 0; if (($is_s == 1) && ($is_e == 1)) { $is_both = 1; } $line = ''; $s_old = ''; $s_filled = 0; $e_old = ''; $e_filled = 0; $len = length($_); for ($i = 1; $i <= $len; $i++) { $ch = substr($_, $i, 1); if ($ch eq "\\") { $line = $line . $ch; if ($i < $len) { $i++; $line = $line . substr($_, $i, 1); } } else { if ($ch eq '%') { if ($is_both == 1) { if (substr($_, $i + 1, 1) =~ /[sS]/) { $i++; for ($j = 1; $j + $i <= $len; $j++) { $ch2 = substr($_, $j + $i, 1); if ($ch2 =~ /[ \t]/) { last; } else { if ($s_filled == 0) { $s_old = $s_old . $ch2; } } } $s_filled = 1; $i += $j; } else { if (substr($_, $i + 1, 1) =~ /[eE]/) { $i++; for ($j = 1; $j + $i <= $len; $j++) { $ch2 = substr($_, $j + $i, 1); if ($ch2 =~ /[ \t]/) { last; } else { if ($e_filled == 0) { $e_old = $e_old . $ch2; } } } $e_filled = 1; $i += $j; } else { $line = $line . $ch; } } } else { $line = $line . $ch; if ($i < $len) { $i++; $ch = substr($_, $i, 1); if ($ch =~ /[sS]/) { $ch = 'i'; } else { if ($ch =~ /[eE]/) { $ch = 'i#'; } } $line = $line . $ch; } } } else { $line = $line . $ch; } } } if ($is_both == 1) { $line = $line . '%i' . $s_old . '#' . $e_old; } print $line; } else { print $_; } } else { if ($mode == 2) { $mode = 1; } else { print $_; } } } gcal-4.1/data/scripts/cal2gcal.awk0000664000000000000000000001163112353314150013730 00000000000000# $Id: cal2gcal.awk 0.12 2000/06/14 00:01:02 tom Exp $ # # cal2gcal.awk: Very simple, slow and silly AWK script for converting # "BSD-calendar" appointments into the `gcal' format. # # # Copyright (c) 1995, 1996, 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # BEGIN { # # Define the field separator used (blank actually). # FS = " " # # Define the length of the text displayed on a line. # This is a minimum value suggesting where the first position of a # break can take place. If this happens within a word, the break # is done at its end. # Set `linebreak' to 0 if you don't want to break the text explicitly # (this is the same mode which was done by former versions of this script). # linebreak = 0 # # The length of an ordinary date part of a gcal resource file line. # dpartlen = 8 # # The newline character of a gcal text line. # gcalnl = "~" # # Print some leading comment text. # print "; cal2gcal.awk output for Gcal-2.20 or newer" print ";" print "; Absolutely NO warrenty!" print ";" print ";" # # Pre-initialize the constructed line. # line = "" textpart = "" } # # Main block. # { # # Construct the line. # if (substr($1, 3, 1) == "/") { # # If line is completed just print it. # if (line != "") { if (linebreak < 1) print line else { # # Manage possible breaks in the text part of appointment. # tpart = substr(line, dpartlen+2) len_tpart = length(tpart) if (len_tpart > linebreak) { k = 0 textpart = "" for (i=1 ; i <= len_tpart ; i += (linebreak+k)) { textpart = textpart substr(tpart, i, linebreak-1) j = 0 k = 0 while (substr(tpart, linebreak+i+j-1, 1) !~ /[ \t]/) { textpart = textpart substr(tpart, linebreak+i+j-1, 1) j++ if (linebreak + i + j - 1 > len_tpart) break } k += j textpart = textpart gcalnl } } else textpart = tpart i = length(textpart) if (substr(textpart, i, 1) == gcalnl) print substr(line, 1, dpartlen+1) substr(textpart, 1, i-1) else print substr(line, 1, dpartlen+1) textpart } line = "" textpart = "" } # # Strip leading whitespace characters in text part of appointment. # i = length($1) + 1 while (substr($0, i, 1) ~ /[ \t]/) i++ line = "0000" substr($1, 1, 2) substr($1, 4, 2) " " substr($0, i) } else { # # Strip leading whitespace characters of continued # text part of appointment. # i = 1 while (substr($0, i, 1) ~ /[ \t]/) i++ line = line " " substr($0, i) } } END { # # Manage last line of file. # if (linebreak < 1) print line else { # # Manage possible breaks in the text part of appointment. # tpart = substr(line, dpartlen+2) len_tpart = length(tpart) if (len_tpart > linebreak) { k = 0 textpart = "" for (i=1 ; i <= len_tpart ; i += (linebreak+k)) { textpart = textpart substr(tpart, i, linebreak-1) j = 0 k = 0 while (substr(tpart, linebreak+i+j-1, 1) !~ /[ \t]/) { textpart = textpart substr(tpart, linebreak+i+j-1, 1) j++ if (linebreak + i + j - 1 > len_tpart) break } k += j textpart = textpart gcalnl } } else textpart = tpart i = length(textpart) if (substr(textpart, i, 1) == gcalnl) print substr(line, 1, dpartlen+1) substr(textpart, 1, i-1) else print substr(line, 1, dpartlen+1) textpart } } gcal-4.1/data/scripts/v2x2v300.awk0000664000000000000000000002303512353314150013473 00000000000000# $Id: v2x2v300.awk 0.02 2000/05/30 00:00:02 tom Exp $ # # v2x2v300.awk: Very simple, slow and silly AWK script for converting # resource files of former Gcal versions, i.e. v2.20 and # v2.40, into the style which is used by Gcal-3.00 or newer. # This means, all `%?...' special texts which are obsolete # now by reason Gcal offers the ability of defining an # optional format statement, are converted into their # according equivalents. # # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Main block. # { if ($0 ~ /%/) { # # Build the line. # line = "" len = length($0) for (i=1; i <= len; i++) { ch = substr($0, i, 1) if (ch == "\\") { line = line ch if (i < len) { i++ line = line substr($0, i, 1) } } else { if (ch == "%") { line = line ch if (i < len) { action = 0 i++ ch = substr($0, i, 1) # # Name Old -> New # ---- --- -- --- # %complete weekday name %o -> %K # %3-letter weekday name %O -> %>3#K # %2-letter weekday name %K -> %>2#K # %weekday number (Mon=1...Sun=7) %S -> %W # %weekday number ONS (Mon=1...Sun=7) %I -> %>1&*W # %weekday number ONS (Mon=0...Sun=6) %J -> %>1&*E # %weekday number (Sun=1...Sat=7) %( -> %I # %weekday number ONS (Sun=1...Sat=7) %< -> %>1&*I # %weekday number (Sun=0...Sat=6) %) -> %J # %weekday number ONS (Sun=0...Sat=6) %> -> %>1&*J # %weekday number FLX (Mon=1...Sun=7) %[ -> %S # %weekday number FLX ONS (Mon=1...Sun=7) %{ -> %>1&*S # %weekday number FLX (Mon=0...Sun=6) %] -> %T # %weekday number FLX ONS (Mon=0...Sun=6) %} -> %>1&*T # %day of year number %+ -> %N # %day of year number +LZ %* -> %>03*N # %day of year number ONS %& -> %>1&*N # %day of year number +LZ ONS %# -> %>03&*N # %day number +LZ %N -> %>02*D # %day number ONS %s -> %>1&*D # %day number +LZ ONS %u -> %>02&*D # %complete month name %M -> %U # %3-letter month name %T -> %>3#U # %month number %U -> %M # %month number +LZ %W -> %>02*M # %month number ONS %z -> %>1&*M # %month number +LZ ONS %Z -> %>02&*M # %complete year number +LZ %= -> %>04*Y # %birth age number %b -> %B # %birth age number ONS %B -> %>1&*B # %moonphase %- -> %O # %moonphase +LZ %_ -> %>03*O # %moonphase text graphics image %: -> %Z # ---- --- -- --- # Legend: +LZ == with leading zero{es}, # FLX == flexible starting day of week (`-sN' option), # ONS == Ordinal Number Suffix. # if (ch == "o") { line = line "K" action = 1 } if (ch == "O") { line = line ">3#K" action = 1 } if (ch == "K") { line = line ">2#K" action = 1 } if (ch == "S") { line = line "W" action = 1 } if (ch == "I") { line = line ">1&*W" action = 1 } if (ch == "J") { line = line ">1&*E" action = 1 } if (ch == "(") { line = line "I" action = 1 } if (ch == "<") { line = line ">1&*I" action = 1 } if (ch == ")") { line = line "J" action = 1 } if (ch == ">") { line = line ">1&*J" action = 1 } if (ch == "[") { line = line "S" action = 1 } if (ch == "{") { line = line ">1&*S" action = 1 } if (ch == "]") { line = line "T" action = 1 } if (ch == "}") { line = line ">1&*T" action = 1 } if (ch == "+") { line = line "N" action = 1 } if (ch == "*") { line = line ">03*N" action = 1 } if (ch == "&") { line = line ">1&*N" action = 1 } if (ch == "#") { line = line ">03&*N" action = 1 } if (ch == "N") { line = line ">02*D" action = 1 } if (ch == "s") { line = line ">1&*D" action = 1 } if (ch == "u") { line = line ">02&*D" action = 1 } if (ch == "M") { line = line "U" action = 1 } if (ch == "T") { line = line ">3#U" action = 1 } if (ch == "U") { line = line "M" action = 1 } if (ch == "W") { line = line ">02*M" action = 1 } if (ch == "z") { line = line ">1&*M" action = 1 } if (ch == "Z") { line = line ">02&*M" action = 1 } if (ch == "=") { line = line ">04*Y" action = 1 } if (ch == "b") { line = line "B" action = 1 } if (ch == "B") { line = line ">1&*B" action = 1 } if (ch == "-") { line = line "O" action = 1 } if (ch == "_") { line = line ">03*O" action = 1 } if (ch == ":") { line = line "Z" action = 1 } if (action == 0) line = line ch } } else line = line ch } } print line } else print $0 } gcal-4.1/data/scripts/ct2gcal.awk0000664000000000000000000003014512353314150013600 00000000000000# $Id: ct2gcal.awk 0.20 2000/06/14 00:02:00 tom Exp $ # # ct2gcal.awk: Very simple, slow and silly AWK script for converting # "[X]Calentool-2.3" appointments into the `gcal' format. # # # Copyright (c) 1994, 95, 1996, 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # BEGIN { # # Define the field separator used (blank actually). # FS = " " # # Define the length of the text displayed on a line. # This is a minimum value suggesting where the first position of a # break can take place. If this happens within a word, the break # is done at its end. # Set `linebreak' to 0 if you don't want to break the text explicitly # (this is the same mode which was done by former versions of this script). # linebreak = 0 # # Print some leading comment text # print "; ct2gcal.awk output for Gcal-2.20 or newer" print ";" print "; Absolutely NO warrenty!" print ";" print ";" # # Maximum length of a gcal year yyyy (actually 4 places), month `mm', # day `dd' and `n' field. # ylen = 4 mlen = 2 dlen = 2 nlen = 1 # # Maximum lenght of a repeated text # means a maximum number of repetitions of 999. # rlen = 3 # # The newline character of a text part of a gcal resource file line. # gcalnl = "~" # # The quote character of a text part of a gcal resource file line. # gcalqt = "\\" # # The remark character of a text part of a gcal resource file line. # gcalremark = ";" # # The `text' of a typical calentool appointment starts in column 19. # ctcolumn = 19 # # The remark character sequence of a calentool appointment line. # ctremark = "# " # # The character sequence which indicates an eternal date field # of a calentool appointment line # cteternal = "**" } # # Main block. # { # # Test if line is a comment. # if (substr($0, 1, 1) == substr(ctremark, 1, 1)) { # # First comment char found, check whether line contains a "#include" statement. # len = length($0) if (len > 1) ch = substr($0, 2, 1) else ch = "" if (ch == substr(ctremark, 2, 1) || ch == "") print gcalremark $0 else print $0 } else { # # We better work with buffer of first three fields of the line # (gawk-2.15.6 fails if we don't work in such way). # f1 = $1 f2 = $2 f3 = $3 # # On conversion we must calculate with some displacement. # displ = 0 # # No comment, so try to convert... # if ($0 != "") { # # Test whether line contains an explictit gcal newline character ~ # if it is found, quote it by the gcal quote character \ # i.e. generate character sequence \~ . # tmpstr = "" len = length($0) for (i=1; i <= len; i++) { ch = substr($0, i, 1) if (ch == gcalnl) tmpstr = tmpstr gcalqt tmpstr = tmpstr ch } $0 = tmpstr # # Add "inclusive_date" special text %iyyyy[mm[dd[n]]] (variable "idatetxt") # in case a "... yyyy)" text fragment is found in line. # idatetxt = "" # if ($0 ~ /[0-9]+\)/) { # # Pattern found, so search all fields for information. # for (i=1; i <= NF; i++) { # # Extract the year number. # if ($i ~ /[0-9]+\)/) { # # "tmpstr = substr($i, /[0-9]+\)/)" fails on some AWK implementations, # so we must emulate that function by a loop ;(( # len = length($i) for (j=1; j <= len; j++) { if (substr($i, j, 1) ~ /[0-9]/) len = j } tmpstr = substr($i, len, length($i)) # # Ok, lets go on... # len = length(tmpstr) for (j=1; j <= len; j++) { ch = substr(tmpstr, j, 1) if (ch ~ /[0-9]/) idatetxt = idatetxt ch } # # Add leading zeroes to the year until length(year)==ylen. # len = length(idatetxt) if (len < ylen) { tmpstr = "" len = ylen - len for (j=1; j <= len; j++) tmpstr = "0" tmpstr idatetxt = tmpstr idatetxt } # # Add month and day to "idatetxt". # if (f2 != cteternal) { idatetxt = idatetxt f2 if (f3 != cteternal) idatetxt = idatetxt f3 } # # Cut "idatetxt" so it contains ylen+mlen+dlen characters maximum. # len = length(idatetxt) if (len > ylen+mlen+dlen) idatetxt = substr(idatetxt, len-(ylen+mlen+dlen-1), ylen+mlen+dlen) } } } # # Test if line contains a textual "[number]" field which # indicates a date, that occurs at [number]'th weekday of month. # ntxt = "" loopto = NF # if (f3 !~ /[0-9]/) { if ($0 ~ /\[+[012345lL]+\]/) { for (i=1; i <= loopto; i++) { if ($i ~ /\[+[012345lL]+\]/) { # # Pattern found, so terminate loop. # loopto = i # # Extract the information. # # "tmpstr = substr($i, /\[+[012345lL]+\]/)" fails on some AWK implementations, # so we must emulate that function by a loop ;(( # len = length($i) for (j=1; j <= len; j++) { if (substr($i, j, 1) ~ /[012345lL]/) len = j } tmpstr = substr($i, len, length($i)) # # Ok, lets go on... # len = length(tmpstr) for (j=1; j <= len; j++) { ch = substr(tmpstr, j, 1) if (ch ~ /[012345lL]/) ntxt = ntxt ch } # # Cut "ntxt" so it contains "nlen" characters maximum. # if (length(ntxt) > nlen) ntxt = substr(ntxt, 1, nlen) # # Replace l|L(==last weekday in month) entry by a `9'. # if (ntxt ~ /[lL]/) ntxt = "9" # # Append found number text to starting date special text. # if (idatetxt != "") idatetxt = idatetxt ntxt # # Eliminate the found "[number]" field. # displ += (length($i) + 1) } } } } # # Test if line contains a textual "" field and eliminate it. # rtxt = "" loopto = NF # if ($0 ~ /<+[0-9]+>/) { for (i=1; i <= loopto; i++) { if ($i ~ /<+[0-9]+>/) { # # Pattern found, so terminate loop. # loopto = i # # Extract the information. # # "tmpstr = substr($i, /<+[0-9]+>/)" fails on some AWK implementations, # so we must emulate that function by a loop ;(( # len = length($i) for (j=1; j <= len; j++) { if (substr($i, j, 1) ~ /[0-9]/) len = j } tmpstr = substr($i, len, length($i)) # # Ok, lets go on... # len = length(tmpstr) for (j=1; j <= len; j++) { ch = substr(tmpstr, j, 1) if (ch ~ /[0-9]/) rtxt = rtxt ch } # # Cut "rtxt" so it contains "rlen" characters maximum. # if (length(rtxt) > rlen) rtxt = substr(rtxt, 1, rlen) # # Eliminate the information. # displ += (length($i) + 1) } } } # # Append "idatetxt" to line. # if (idatetxt == "") line = $0 else line = $0 "%i" idatetxt if (f2 == cteternal) f2 = "00" if (f3 == cteternal) f3 = "00" # # Manage possible breaks in the text part of appointment. # if (linebreak < 1) textpart = substr(line, ctcolumn+displ) else { tpart = substr(line, ctcolumn+displ) len_tpart = length(tpart) if (len_tpart > linebreak) { k = 0 textpart = "" for (i=1 ; i <= len_tpart ; i += (linebreak+k)) { textpart = textpart substr(tpart, i, linebreak-1) j = 0 k = 0 while (substr(tpart, linebreak+i+j-1, 1) !~ /[ \t]/) { textpart = textpart substr(tpart, linebreak+i+j-1, 1) j++ if (linebreak + i + j - 1 > len_tpart) break } k += j textpart = textpart gcalnl } } else textpart = tpart i = length(textpart) if (substr(textpart, i, 1) == gcalnl) textpart = substr(textpart, 1, i-1) } if (rtxt != "") { # # If "rtxt" is given, produce the line "rtxt" times using a date variable. # print "a=" f2 f3 ntxt j = int(rtxt) # # Print line(s) only if repetition factor is 1 or more. # if (j > 0) { for (i=1; i <= j; i++) { if (f1 != cteternal) print "19" f1 "@a" i-1 " " textpart else print "0@a" i-1 " " textpart } } } else { # # Print the constructed line. # if (f1 != cteternal) print "19" f1 f2 f3 ntxt " " textpart else print "0000" f2 f3 ntxt " " textpart } } } } gcal-4.1/data/scripts/v2x2v300.pl0000664000000000000000000001551612353314150013331 00000000000000# $Id: v2x2v300.pl 0.03 2000/06/17 00:00:03 tom Exp $ # # v2x2v300.pl: Very simple, slow and silly Perl script for converting # resource files of former Gcal versions, i.e. v2.20 and # v2.40, into the style which is used by Gcal-3.00 or newer. # This means, all `%?...' special texts which are obsolete # now by reason Gcal offers the ability of defining an # optional format statement, are converted into their # according equivalents. # # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # $[ = 1; # set array base to 1 $, = ' '; # set output field separator $\ = "\n"; # set output record separator # # Main block. # while (<>) { chop; # strip record separator if ($_ =~ /%/) { # # Build the line. # $line = ''; $len = length($_); for ($i = 1; $i <= $len; $i++) { $ch = substr($_, $i, 1); if ($ch eq "\\") { $line = $line . $ch; if ($i < $len) { $i++; $line = $line . substr($_, $i, 1); } } else { if ($ch eq '%') { $line = $line . $ch; if ($i < $len) { $action = 0; $i++; $ch = substr($_, $i, 1); # # Name Old -> New # ---- --- -- --- # %complete weekday name %o -> %K # %3-letter weekday name %O -> %>3#K # %2-letter weekday name %K -> %>2#K # %weekday number (Mon=1...Sun=7) %S -> %W # %weekday number ONS (Mon=1...Sun=7) %I -> %>1&*W # %weekday number ONS (Mon=0...Sun=6) %J -> %>1&*E # %weekday number (Sun=1...Sat=7) %( -> %I # %weekday number ONS (Sun=1...Sat=7) %< -> %>1&*I # %weekday number (Sun=0...Sat=6) %) -> %J # %weekday number ONS (Sun=0...Sat=6) %> -> %>1&*J # %weekday number FLX (Mon=1...Sun=7) %[ -> %S # %weekday number FLX ONS (Mon=1...Sun=7) %{ -> %>1&*S # %weekday number FLX (Mon=0...Sun=6) %] -> %T # %weekday number FLX ONS (Mon=0...Sun=6) %} -> %>1&*T # %day of year number %+ -> %N # %day of year number +LZ %* -> %>03*N # %day of year number ONS %& -> %>1&*N # %day of year number +LZ ONS %# -> %>03&*N # %day number +LZ %N -> %>02*D # %day number ONS %s -> %>1&*D # %day number +LZ ONS %u -> %>02&*D # %complete month name %M -> %U # %3-letter month name %T -> %>3#U # %month number %U -> %M # %month number +LZ %W -> %>02*M # %month number ONS %z -> %>1&*M # %month number +LZ ONS %Z -> %>02&*M # %complete year number +LZ %= -> %>04*Y # %birth age number %b -> %B # %birth age number ONS %B -> %>1&*B # %moonphase %- -> %O # %moonphase +LZ %_ -> %>03*O # %moonphase text graphics image %: -> %Z # ---- --- -- --- # Legend: +LZ == with leading zero{es}, # FLX == flexible starting day of week (`-sN' option), # ONS == Ordinal Number Suffix. # if ($ch eq 'o') { $line = $line . 'K'; $action = 1; } if ($ch eq 'O') { $line = $line . '>3#K'; $action = 1; } if ($ch eq 'K') { $line = $line . '>2#K'; $action = 1; } if ($ch eq 'S') { $line = $line . 'W'; $action = 1; } if ($ch eq 'I') { $line = $line . '>1&*W'; $action = 1; } if ($ch eq 'J') { $line = $line . '>1&*E'; $action = 1; } if ($ch eq '(') { $line = $line . 'I'; $action = 1; } if ($ch eq '<') { $line = $line . '>1&*I'; $action = 1; } if ($ch eq ')') { $line = $line . 'J'; $action = 1; } if ($ch eq '>') { $line = $line . '>1&*J'; $action = 1; } if ($ch eq '[') { $line = $line . 'S'; $action = 1; } if ($ch eq '{') { $line = $line . '>1&*S'; $action = 1; } if ($ch eq ']') { $line = $line . 'T'; $action = 1; } if ($ch eq '}') { $line = $line . '>1&*T'; $action = 1; } if ($ch eq '+') { $line = $line . 'N'; $action = 1; } if ($ch eq '*') { $line = $line . '>03*N'; $action = 1; } if ($ch eq '&') { $line = $line . '>1&*N'; $action = 1; } if ($ch eq '#') { $line = $line . '>03&*N'; $action = 1; } if ($ch eq 'N') { $line = $line . '>02*D'; $action = 1; } if ($ch eq 's') { $line = $line . '>1&*D'; $action = 1; } if ($ch eq 'u') { $line = $line . '>02&*D'; $action = 1; } if ($ch eq 'M') { $line = $line . 'U'; $action = 1; } if ($ch eq 'T') { $line = $line . '>3#U'; $action = 1; } if ($ch eq 'U') { $line = $line . 'M'; $action = 1; } if ($ch eq 'W') { $line = $line . '>02*M'; $action = 1; } if ($ch eq 'z') { $line = $line . '>1&*M'; $action = 1; } if ($ch eq 'Z') { $line = $line . '>02&*M'; $action = 1; } if ($ch eq '=') { $line = $line . '>04*Y'; $action = 1; } if ($ch eq 'b') { $line = $line . 'B'; $action = 1; } if ($ch eq 'B') { $line = $line . '>1&*B'; $action = 1; } if ($ch eq '-') { $line = $line . 'O'; $action = 1; } if ($ch eq '_') { $line = $line . '>03*O'; $action = 1; } if ($ch eq ':') { $line = $line . 'Z'; $action = 1; } if ($action == 0) { $line = $line . $ch; } } } else { $line = $line . $ch; } } } print $line; } else { print $_; } } gcal-4.1/data/scripts/old2v220.awk0000664000000000000000000001273312353314150013536 00000000000000# $Id: old2v220.awk 0.05 2000/01/12 00:00:05 tom Exp $ # # old2v220.awk: Very simple, slow and silly AWK script for converting # resource files of former Gcal versions into the style # which is used by Gcal-2.20 or newer. # This means, all former `%s[DATE]' and `%e[DATE]' # special texts are converted into their according # `%i[STARTING_DATE][#[ENDING_DATE]]' equivalents. # # *** WARNING *** # This script is unable to manage `%s[DATE]' and `%e[DATE]' special texts # correctly, if all or parts of the DATE component is/are assembled # by using Gcal's text variable mechanism! # *** WARNING *** # # # Copyright (c) 1996, 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # NR == 1 { # # Check the informational text at the beginning of a resource file. # A typical text in resource files of former Gcal versions looks # like "; SCRIPTNAME.SUFFIX output" for resource files already # converted and installed by means of `data/Makefile' after processing # of the `install' target. Only in cases we work on such a resource # file or resource files which are created manually by a user, let's # convert the file, otherwise let's print it untouched (AS IS)! # mode = 0 # # Avoid to convert resource files which are already in the Gcal-2.20 style. # if ($0 !~ / for Gcal-2.20 or newer/) { mode = 1 # # No Gcal-2.20 resource file, let's update the informational text. # if (substr($0, 1, 2) == "; ") { mode = 2 print $0 " for Gcal-2.20 or newer" } } } # # Main block. # { if (mode == 1) { is_s = 0 if ($0 ~ /[^\\]+%+[sS]/) is_s = 1 is_e = 0 if ($0 ~ /[^\\]+%+[eE]/) is_e = 1 if (is_s == 1 || is_e == 1) { # # Build the line. # is_both = 0 if ((is_s == 1) && (is_e == 1)) is_both = 1 line = "" s_old = "" s_filled = 0 e_old = "" e_filled = 0 len = length($0) for (i=1; i <= len; i++) { ch = substr($0, i, 1) if (ch == "\\") { line = line ch if (i < len) { i++ line = line substr($0, i, 1) } } else { if (ch == "%") { if (is_both == 1) { if (substr($0, i+1, 1) ~ /[sS]/) { i++ for (j=1 ; j+i <= len ; j++) { ch2 = substr($0, j+i, 1) if (ch2 ~ /[ \t]/) break else { if (s_filled == 0) s_old = s_old ch2 } } s_filled = 1 i += j } else { if (substr($0, i+1, 1) ~ /[eE]/) { i++ for (j=1 ; j+i <= len ; j++) { ch2 = substr($0, j+i, 1) if (ch2 ~ /[ \t]/) break else { if (e_filled == 0) e_old = e_old ch2 } } e_filled = 1 i += j } else line = line ch } } else { line = line ch if (i < len) { i++ ch = substr($0, i, 1) if (ch ~ /[sS]/) ch = "i" else { if (ch ~ /[eE]/) ch = "i#" } line = line ch } } } else line = line ch } } if (is_both == 1) line = line "%i" s_old "#" e_old print line } else print $0 } else { if (mode == 2) mode = 1 else print $0 } } gcal-4.1/data/scripts/cal2gcal.pl0000664000000000000000000001131212353314150013555 00000000000000# $Id: cal2gcal.pl 0.12 2000/06/14 00:01:02 tom Exp $ # # cal2gcal.pl: Very simple, slow and silly Perl script for converting # "BSD-calendar" appointments into the `gcal' format. # # # Copyright (c) 1995, 1996, 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # $[ = 1; # set array base to 1 $, = ' '; # set output field separator $\ = "\n"; # set output record separator # # Define the field separator used (blank actually). # $FS = ' \t'; # # Define the length of the text displayed on a line. # This is a minimum value suggesting where the first position of a # break can take place. If this happens within a word, the break # is done at its end. # Set `$linebreak' to 0 if you don't want to break the text explicitly # (this is the same mode which was done by former versions of this script). # $linebreak = 0; # # The length of an ordinary date part of a gcal resource file line. # $dpartlen = 8; # # The newline character of a gcal text line. # $gcalnl = '~'; # # Print some leading comment text. # print '; cal2gcal.pl output for Gcal-2.20 or newer'; print ';'; print '; Absolutely NO warrenty!'; print ';'; print ';'; # # Pre-initialize the constructed line. # $line = ''; $textpart = ''; # # Main block. # while (<>) { chop; # strip record separator @Fld = split(/[$FS]/, $_, 9999); # # Construct the line. # if (substr($Fld[1], 3, 1) eq '/') { # # If line is completed just print it. # if ($line ne '') { if ($linebreak < 1) { print $line; } else { # # Manage possible breaks in the text part of appointment. # $tpart = substr($line, $dpartlen + 2, 999999); $len_tpart = length($tpart); if ($len_tpart > $linebreak) { $k = 0; $textpart = ''; for ($i = 1; $i <= $len_tpart; $i += ($linebreak + $k)) { $textpart = $textpart . substr($tpart, $i, $linebreak - 1); $j = 0; $k = 0; while (substr($tpart, $linebreak + $i + $j - 1, 1) !~ /[ \t]/) { $textpart = $textpart . substr($tpart, $linebreak + $i + $j - 1, 1); $j++; if ($linebreak + $i + $j - 1 > $len_tpart) { last; } } $k += $j; $textpart = $textpart . $gcalnl; } } else { $textpart = $tpart; } $i = length($textpart); if (substr($textpart, $i, 1) eq $gcalnl) { print substr($line, 1, $dpartlen + 1) . substr($textpart, 1, $i - 1); } else { print substr($line, 1, $dpartlen + 1) . $textpart; } } $line = ''; $textpart = ''; } # # Strip leading whitespace characters in text part of appointment. # $i = length($Fld[1]) + 1; while (substr($_, $i, 1) =~ /[ \t]/) { $i++; } $line = '0000' . substr($Fld[1], 1, 2) . substr($Fld[1], 4, 2) . ' ' . substr($_, $i, 999999); } else { # # Strip leading whitespace characters of continued # text part of appointment. # $i = 1; while (substr($_, $i, 1) =~ /[ \t]/) { $i++; } $line = $line . ' ' . substr($_, $i, 999999); } } # # Manage last line of file. # if ($linebreak < 1) { print $line; } else { # # Manage possible breaks in the text part of appointment. # $tpart = substr($line, $dpartlen + 2, 999999); $len_tpart = length($tpart); if ($len_tpart > $linebreak) { $k = 0; $textpart = ''; for ($i = 1; $i <= $len_tpart; $i += ($linebreak + $k)) { $textpart = $textpart . substr($tpart, $i, $linebreak - 1); $j = 0; $k = 0; while (substr($tpart, $linebreak + $i + $j - 1, 1) !~ /[ \t]/) { $textpart = $textpart . substr($tpart, $linebreak + $i + $j - 1, 1); $j++; if ($linebreak + $i + $j - 1 > $len_tpart) { last; } } $k += $j; $textpart = $textpart . $gcalnl; } } else { $textpart = $tpart; } $i = length($textpart); if (substr($textpart, $i, 1) eq $gcalnl) { print substr($line, 1, $dpartlen + 1) . substr($textpart, 1, $i - 1); } else { print substr($line, 1, $dpartlen + 1) . $textpart; } } gcal-4.1/data/de-sdata.rc0000664000000000000000000002371012353314150012076 00000000000000; Some Sun based astronomical times and data for locations in Germany for Gcal-2.20 or newer ; ; $Id: de-sdata.rc 0.06 2000/06/30 00:00:06 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; Try this resource file by using the `-QUx' option of Gcal. ; Try `--time-offset=ARG' to calculate some data for a definite time! ; Try `--precise' to display data and times more precise! ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; ; ; Name of location and geographical co-ordinate $l=%3%1Münster%2 $c=+5158+00738+61 ; ; Line templates $p=0*d1#999 ; ; Definitions for winter time $a=%e0@a#0@b-1 ; ; Winter time in Germany == CEWT/GMT-1 (+60 minutes) $w=+60 ; ; Start of winter time in Germany b=10sun9 ; ; Definitions for summer time $b=%i0@a#0@b-1 ; ; Summer time in Germany == CEST/GMT-2 (+120 minutes) $s=+120 ; ; Start of summer time in Germany a=03sun9 ; ; Data $t=A00 calculations for geographic co-ordinate $c $p $a $t,$w/$l $p $b $t,$s/$l $p A01 gmt time and date %@ $p A02 local time and date %t /%n $p A03 given time-offset %ot$c $t=A04 local julian date at %<9*ot$c %ou$c $p $a $t,$w $p $b $t,$s $t=A05 local julian ephemeris date at %<9*ot$c %ov$c $p $a $t,$w $p $b $t,$s $t=A06 local sidereal time at %<9*ot$c %os$c $p $a $t,$w $p $b $t,$s $t=A07 equation-of-time at %<9*ot$c %ow$c $p $a $t,$w $p $b $t,$s $t=A08 delta-t in ss.fract at %<9*ot$c %or$c $p $a $t,$w $p $b $t,$s ; $t=B00 T sun/earth distance in au at %<9*ot$c %of$c $p $a $t,$w $p $b $t,$s $t=B01 T sun/earth distance in km at %<9*ot$c %o*f$c $p $a $t,$w $p $b $t,$s $t=B02 T sun's ecliptic longitude at %<9*ot$c %od$c $p $a $t,$w $p $b $t,$s $t=B03 T sun's right ascension at %<9*ot$c %oe$c $p $a $t,$w $p $b $t,$s $t=B04 T sun's declination angle at %<9*ot$c %oc$c $p $a $t,$w $p $b $t,$s $t=B05 T sun's azimuth angle at %<9*ot$c %ob$c $p $a $t,$w $p $b $t,$s $t=B06 T sun's elevation angle at %<9*ot$c %oa$c $p $a $t,$w $p $b $t,$s $t=B07 T sun's horizontal parallax at %<9*ot$c %o*g$c $p $a $t,$w $p $b $t,$s $t=B08 T sun's semidiameter at %<9*ot$c %o*h$c $p $a $t,$w $p $b $t,$s $t=B09 T sun/moon azimuth delta at %<9*ot$c %oy$c $p $a $t,$w $p $b $t,$s $t=B10 T sun/moon elevation delta at %<9*ot$c %ox$c $p $a $t,$w $p $b $t,$s $t=B11 T atmospheric refraction at %<9*ot$c %o*i$c $p $a $t,$w $p $b $t,$s ; $t=C00 G sun/earth distance in au at %<9*ot$c %oo$c $p $a $t,$w $p $b $t,$s $t=C01 G sun/earth distance in km at %<9*ot$c %o*o$c $p $a $t,$w $p $b $t,$s $t=C02 G sun's ecliptic longitude at %<9*ot$c %om$c $p $a $t,$w $p $b $t,$s $t=C03 G sun's right ascension at %<9*ot$c %on$c $p $a $t,$w $p $b $t,$s $t=C04 G sun's declination angle at %<9*ot$c %ol$c $p $a $t,$w $p $b $t,$s $t=C05 G sun's azimuth angle at %<9*ot$c %ok$c $p $a $t,$w $p $b $t,$s $t=C06 G sun's elevation angle at %<9*ot$c %oj$c $p $a $t,$w $p $b $t,$s $t=C07 G sun's horizontal parallax at %<9*ot$c %o*p$c $p $a $t,$w $p $b $t,$s $t=C08 G sun's semidiameter at %<9*ot$c %o*q$c $p $a $t,$w $p $b $t,$s $t=C09 G sun/moon azimuth delta at %<9*ot$c %oA$c $p $a $t,$w $p $b $t,$s $t=C10 G sun/moon elevation delta at %<9*ot$c %oz$c $p $a $t,$w $p $b $t,$s ; $t=DM0 sun's midnight (near lowest culmination) at %o0$c $p $a $t,$w $p $b $t,$s $t=DM2 T sun's elevation angle at sun's midnight %oI$c $p $a $t,$w $p $b $t,$s $t=DM3 G sun's elevation angle at sun's midnight %oM$c $p $a $t,$w $p $b $t,$s $t=DM4 sun/moon midnight delta %oF$c $p $a $t,$w $p $b $t,$s $t=DN1 sun's noon (near highest culmination) at %s1$c $p $a $t,$w $p $b $t,$s $t=DN2 T sun's elevation angle at sun's noon %sJ$c $p $a $t,$w $p $b $t,$s $t=DN3 G sun's elevation angle at sun's noon %sN$c $p $a $t,$w $p $b $t,$s $t=DN4 sun/moon noon delta %sG$c $p $a $t,$w $p $b $t,$s ; $t=ER0 astronomical twilight starts at %o9$c $p $a $t,$w $p $b $t,$s $t=FR0 amateur-astronomers twilight starts at %o8$c $p $a $t,$w $p $b $t,$s $t=GR0 nautical twilight starts at %o7$c $p $a $t,$w $p $b $t,$s $t=HR0 civil twilight starts at %o6$c $p $a $t,$w $p $b $t,$s $t=IR0 sun's upper limb (standard rise) rises at %o5$c $p $a $t,$w $p $b $t,$s $t=IR3 T sun's azimuth angle at sun's rise %oL$c $p $a $t,$w $p $b $t,$s $t=IR4 T sun's elevation angle at sun's rise %oK$c $p $a $t,$w $p $b $t,$s $t=IR5 G sun's azimuth angle at sun's rise %oP$c $p $a $t,$w $p $b $t,$s $t=IR6 G sun's elevation angle at sun's rise %oO$c $p $a $t,$w $p $b $t,$s $t=IR7 T sun/moon azimuth delta at sun's rise %oC$c $p $a $t,$w $p $b $t,$s $t=IR8 T sun/moon elevation delta at sun's rise %oB$c $p $a $t,$w $p $b $t,$s $t=IR9 G sun/moon azimuth delta at sun's rise %oE$c $p $a $t,$w $p $b $t,$s $t=IRA G sun/moon elevation delta at sun's rise %oD$c $p $a $t,$w $p $b $t,$s $t=IRB sun/moon standard rise delta %oH$c $p $a $t,$w $p $b $t,$s $t=JR0 sun's center rises at %o4$c $p $a $t,$w $p $b $t,$s $t=KR0 sun's upper limb at math-horizon rises at %o3$c $p $a $t,$w $p $b $t,$s $t=LR0 sun's center at math-horizon rises at %o2$c $p $a $t,$w $p $b $t,$s $t=MR0 shadow length equal 2x object height at %oQ$c $p $a $t,$w $p $b $t,$s $t=NR0 shadow length equal 1x object height at %oR$c $p $a $t,$w $p $b $t,$s ; $t=NS1 shadow length equal 1x object height at %sR$c $p $a $t,$w $p $b $t,$s $t=MS1 shadow length equal 2x object height at %sQ$c $p $a $t,$w $p $b $t,$s $t=LS1 sun's center at math-horizon sets at %s2$c $p $a $t,$w $p $b $t,$s $t=KS1 sun's upper limb at math-horizon sets at %s3$c $p $a $t,$w $p $b $t,$s $t=JS1 sun's center sets at %s4$c $p $a $t,$w $p $b $t,$s $t=IS1 sun's upper limb (standard set) sets at %s5$c $p $a $t,$w $p $b $t,$s $t=IS3 T sun's azimuth angle at sun's set %sL$c $p $a $t,$w $p $b $t,$s $t=IS4 T sun's elevation angle at sun's set %sK$c $p $a $t,$w $p $b $t,$s $t=IS5 G sun's azimuth angle at sun's set %sP$c $p $a $t,$w $p $b $t,$s $t=IS6 G sun's elevation angle at sun's set %sO$c $p $a $t,$w $p $b $t,$s $t=IS7 T sun/moon azimuth delta at sun's set %sC$c $p $a $t,$w $p $b $t,$s $t=IS8 T sun/moon elevation delta at sun's set %sB$c $p $a $t,$w $p $b $t,$s $t=IS9 G sun/moon azimuth delta at sun's set %sE$c $p $a $t,$w $p $b $t,$s $t=ISA G sun/moon elevation delta at sun's set %sD$c $p $a $t,$w $p $b $t,$s $t=ISB sun/moon standard set delta %sH$c $p $a $t,$w $p $b $t,$s $t=HS1 civil twilight ends at %s6$c $p $a $t,$w $p $b $t,$s $t=GS1 nautical twilight ends at %s7$c $p $a $t,$w $p $b $t,$s $t=FS1 amateur-astronomers twilight ends at %s8$c $p $a $t,$w $p $b $t,$s $t=ES1 astronomical twilight ends at %s9$c $p $a $t,$w $p $b $t,$s ; $t=QE5 astronomical twilight visible %u9$c $p $a $t,$w $p $b $t,$s $t=QE6 astronomical twilight non-visible %z9$c $p $a $t,$w $p $b $t,$s $t=QF5 amateur-astronomers twilight visible %u8$c $p $a $t,$w $p $b $t,$s $t=QF6 amateur-astronomers twilight non-visible %z8$c $p $a $t,$w $p $b $t,$s $t=QG5 nautical twilight visible %u7$c $p $a $t,$w $p $b $t,$s $t=QG6 nautical twilight non-visible %z7$c $p $a $t,$w $p $b $t,$s $t=QH5 civil twilight visible %u6$c $p $a $t,$w $p $b $t,$s $t=QH6 civil twilight non-visible %z6$c $p $a $t,$w $p $b $t,$s $t=QI5 sun's upper limb (standard r/s) visible %u5$c $p $a $t,$w $p $b $t,$s $t=QI6 sun's upper limb (standard r/s) non-visible %z5$c $p $a $t,$w $p $b $t,$s $t=QJ5 sun's center visible %u4$c $p $a $t,$w $p $b $t,$s $t=QJ6 sun's center non-visible %z4$c $p $a $t,$w $p $b $t,$s $t=QK5 math-horizon sun's upper limb visible %u3$c $p $a $t,$w $p $b $t,$s $t=QK6 math-horizon sun's upper limb non-visible %z3$c $p $a $t,$w $p $b $t,$s $t=QL5 math-horizon sun's center visible %u2$c $p $a $t,$w $p $b $t,$s $t=QL6 math-horizon sun's center non-visible %z2$c $p $a $t,$w $p $b $t,$s $t=QM5 shadow length 2x object height visible %uQ$c $p $a $t,$w $p $b $t,$s $t=QM6 shadow length 2x object height non-visible %zQ$c $p $a $t,$w $p $b $t,$s $t=QN5 shadow length 1x object height visible %uR$c $p $a $t,$w $p $b $t,$s $t=QN6 shadow length 1x object height non-visible %zR$c $p $a $t,$w $p $b $t,$s gcal-4.1/data/textpic.rc0000664000000000000000000011540412244130561012077 00000000000000; textpic.rc, examples how text graphics can be implemented ; 00001031 ^\ ........^\ ;::;;::;,^\ ;::;;::;;,^\ ;;:::;;::;;,^\ .vnmmnv\%vnmnv\%,.;;;:::;;::;;, .,vnmnv\%vnmnv,^\ vnmmmnv\%vnmmmnv\%vnmmnv\%;;;;;;;\%nmmmnv\%vnmmnv\%vnmmnv^\ vnmmnv\%vnmmmmmnv\%vnmmmmmnv\%;:;\%nmmmmmmnv\%vnmmmnv\%vnmmmnv^\ vnmmnv\%vnmmmmmnv\%vnmmmmmmmmnv\%vnmmmmmmmmnv\%vnmmmnv\%vnmmmnv^\ vnmmnv\%vnmmmmmnv\%vnmmmmmmmmnv\%vnmmmmmmmmmmnv\%vnmmmnv\%vnmmmnv^\ vnmmnv\%vnmmmmmnv\%vnmm;mmmmmmnv\%vnmmmmmmmm;mmnv\%vnmmmnv\%vnmmmnv,^\ vnmmnv\%vnmmmmmnv\%vnmm;' mmmmmnv\%vnmmmmmmm;' mmnv\%vnmmmnv\%vnmmmnv^\ vnmmnv\%vnmmmmmnv\%vn;; mmmmnv\%vnmmmmmm;; nv\%vnmmmmnv\%vnmmmnv^\ vnmmnv\%vnmmmmmmnv\%v;; mmmnv\%vnmmmmm;; v\%vnmmmmmnv\%vnmmmnv^\ vnmmnv\%vnmmmmmmnv\%vnmmmmmmmmm;; mmmmmmmmmnv\%vnmmmmmmnv\%vnmmmnv^\ vnmmnv\%vnmmmmmmnv\%vnmmmmmmmmmm;; mmmmmmmmmmnv\%vnmmmmmmnv\%vnmmmnv^\ vnmmnv\%vnmmmmm nv\%vnmmmmmmmmmmnv;, mmmmmmmmmmmmnv\%vn;mmmmmnv\%vnmmmnv^\ vnmmnv\%vnmmmmm nv\%vnmmmmmmmmmnv\%;nmmmmmmmmmmmnv\%vn; mmmmmnv\%vnmmmnv^\ `vnmmnv\%vnmmmm, v\%vnmmmmmmmmmmnv\%vnmmmmmmmmmmnv\%v; mmmmnv\%vnnmmnv'^\ vnmmnv\%vnmmmm;, \%vnmmmmmmmmmnv\%vnmmmmmmmmmnv\%;' mmmnv\%vnmmmmnv^\ vnmmnv\%vnmmmm;;, nmmm;' mmmm;;' mmmnv\%vnmmmmnv'^\ `vnmmnv\%vnmmmmm;;,. mmnv\%v;, mmmmnv\%vnmmmmnv'^\ `vnmmnv\%vnmmmmmmnv\%vnmmmmmmmmnv\%vnmmmmmmnv\%vnmmmmmnv\%vnmmmmnv'^\ `vnmvn\%vnmmmmmmnv\%vnmmmmmmmnv\%vnmmmmmnv\%vnmmmmmnv\%vnmmmnv'^\ `vn\%vnmmmmmmn%:vnmnmmmmnv\%vnmmmnv%:vnmmnv\%vnmnv' 00000723 Start of "dog-days" ("dog" star Sirius)^\ ..,,,,,,,,,..^\ .,;%%%%%%%%%%%%%%%%%%%\%;,.^\ %%%%%%%%%%%%%%%%%%%\%////%%%%%\%, .,;%\%;,^\ .,;\%/,%%%%\%/////%%%%%%%%%%%%%\%////%%%\%,%\%//%%\%,^\ .,;%%%\%/,%%\%///%%%%%%%%%%%%%%%%%%%%%%%%%%%\%,////%%%\%;,^\ .,%%%%%\%//,%%%%%%%%%%%%%%%\%@@\%a%%%%%%%%%%%%%%%\%,%\%/%%%%%%\%;,^\ .,\%//%%%\%//,%%%\%///////%%%%%%\%@@@%%%%%\%///////%%%\%,%\%//%%%%%%%\%,^\ ,%%%%\%///%\%//,%\%//%%%%\%///%%%%\%@@@%%%%\%////%%%%%%%%\%,/%%%%%%%%%%%%%^\ .%%%%%%%%\%////,%%%%%%\%//\%///%%%\%@@@@%%\%////%\%/////%%\%,/;%%%%%%%\%/%%%^\ \%/%%%%%%\%/////,%%%\%///%\%////%%\%@@@@@%%\%///%\%/%%%%\%//\%,////%%%\%//%%\%'^\ \%//%%%%\%//////,\%/\%a` 'a\%///%%\%@@@@@@%\%////a` 'a%%%\%,//\%///\%/%%%%%^\ \%///%%%%%\%///,%%%\%@@aa@@\%//%%\%@@@@S@@@%\%///@@aa@@%%%%\%,/\%////%%%%%^\ %\%//%%%%%%\%//,%%%%\%///////%%\%@S@@@@SS@@@%\%/////%%%%%%\%,\%////%%%%\%'^\ %\%//%%%%%%\%//,%%%\%/////%\%@\%@SS@@@@@@@S@@@@%%%\%/////%%\%,////%%%%\%'^\ `\%/%%%\%//%\%//,%%\%///%%%\%@@@S@@@@@@@@@@@@@@@S%%%\%////%\%,///%%%%\%'^\ %%%\%//%%%\%/,%%%%%%%\%@@@@@@@@@@@@@@@@@@@@@SS@%%%%%%%\%,//%%%%\%'^\ `%%\%//%%%\%/,%%%\%@\%@@@@@@@@@@@@@@@@@@@@@@@@@S@@%%%%\%,/////%\%'^\ `%%\%//%%\%/,%%\%@@@SS@@SSs@@@@@@@@@@@@@sSS@@@@@@%%\%,//%\%//\%'^\ `%%%%%\%/ %\%S@@SS@@@@@Ss` .,,. 'sS@@@S@@@@\%' ///\%/\%'^\ `%%\%/ \%SS@@@@SSS@@S. .S@@SSS@@@@' //%\%'^\ /`S@@@@@@SSSSSs, ,sSSSSS@@@@@'^\ %\%//`@@@@@@@@@@@@@Ss,sS@@@@@@@@@@@'/^\ %%%\%@@00`@@@@@@@@@@@@@'@@@@@@@@@@@'//%%^\ %%%%%\%a\%@@@@000aaaaaaaaa00a00aaaaaaa00\%@%%%%%^\ %%%%%\%a%\%@@@@@@@@@@000000000000000000@@@\%@@%%\%@%%%^\ %%%%%\%a%\%@@@\%@@@@@@@@@@@00000000000000@@@@@@@@@\%@@%\%@%%^\ %%\%aa\%@@@@@@@@@@@@@@0000000000000000000000@@@@@@@@\%@@@%%%%^\ %\%@@@@@@@@@@@@@@@00000000000000000000000000000@@@@@@@@@%%%%%^\ "How much is that doggie in the window?" 00001231 Sylvester^\ .#############.^\ .###################.^\ .####%####################.,::;;;;;;;;;;,^\ .####%###############%######:::;;;;;;;;;;;;;,^\ ####%%################%######:::;;;;;;;;@;;;;;;,^\ ####%%################%%#####:::;;;;;;;;;@;;;;;;,^\ ####%%################%%#####:::;;;;;;;;;@@;;;;;;^\ `####%################%#####:::;;;;;;;;;;@@;;;;;;^\ `###%##############%####:::;;;;;;;;;;;;@@;;;;;;^\ `#################'::%%%%%%%%%%%\%;;;@;;;;;;'^\ `#############'.%%%%%%%%%%%%%%%%%\%;;;;;'^\ `#########'%%%%#%%%%%%%%%%%%%%%%%%\%,^\ `#####'.%%%%#%%%%%%%%%%%%%%#%%%%%\%,^\ `##' %%%%##%%%%%%%%%%%%%%%##%%%%%^\ ### %%%%##%%%%%%%%%%%%%%%##%%%%%^\ ' %%%%##%%%%%%%%%%%%%%%##%%%%%^\ ' `%%%%#%%%%%%%%%%%%%%%#%%%%\%'^\ ' `%%%#%%%%%%%%%%%%%#%%%\%'^\ ` `%%%%%%%%%%%%%%%%%\%'^\ ` `%%%%%%%%%%%%%\%'^\ ` `%%%%%%%%%\%' '^\ ' `%%%%%\%' '^\ ' `%%\%' '^\ ' .%% `^\ ` %%% '^\ ` ' '^\ ` ' '^\ ' ' '^\ ' ' `^\ ' ' '^\ ` '^\ '^\ '^\ '^\ ^\ ^\ a@@@@@@@@a a@@@@@@a a@@@@@@@a a@@@@@@@@a a@@a. .a@@a a@@a^\ @@@@ @@@@ @@@@ @@@@ @@@@ @@@ @@@@@@@@@@ @@@@a a@@@@ @@@@^\ @@@@ @@@@ @@@@ @@@@ @@@@ @@@ @@@@ `@@@@ @@@@' @@@@^\ @@@@@@@@@@ @@@@@@@@@@ @@@@@@@@' @@@@ `@@@@@@' @@@@^\ @@@@@@@@@' @@@@@@@@@@ @@@@@@@@a @@@@ @@@@ `@@'^\ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@^\ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@ 00001224 ^\ .,sSS&&&&&&&&&s,.^\ .sSS&&&&&&&&&&&&&&&&s.^\ :::;;;''''''''''':::;;\%.^\ `S&&' S&&&##^\ S&&&##^\ , , .::;%\%;^\ ;;, ,;; .SS&##&'^\ ;;`;';; ,;;..;,;;,.;,;;, ;, ,; .SS&&##&'^\ ;; ;; ;,,' ;; ' ;; ' ;; ;; .::;;%\%;' .;,.,;,.,^\ ';;' `;;'`;;' ;' ;' `;.;; .SS&&##&' ,;;;;;;;;;;;,.^\ , ;; .SS&&##&' ; ` ';''';'';` '^\ ';;;' .::;;%\%;' .;;,^\ .SS&&##&' .;;;;;;.^\ .SS&&##&' `;;;;'^\ .::;;%\%;' .;;;;.^\ .SS&&##&' `;;'^\ ,;;;;, ;, . `&&##&' ;' ,;^\ ;; ' ;; ;' ,; ' ;;^\ ;; ;;,;;. .;,;;, ,; .'', ,;;;;' .;,;,;;, .;;,. .'', ;;^\ ;; ;; ;; ;; ' ;; ';;. ;; ;; ; ;; ; ;; ';;. ;;^\ `;;;;' ;' ;' ;' ;' ',,' `;;' ;' ' ;' `;;';, ',,' .^\ ;' 0000@e Easter^\ .;;;;. .;;;, ;; ;; .;;;,^\ ;; ;; ' `;;' ;; '^\ ;; ;; . .;'`;. ;; .^\ `;;;;' `;;;' .... %%%%%%%%%%%%\%.... ;; ;; `;;;'^\ ...........`%%%%%%%%\%'..........^\ ................`%%%%%%\%'...............^\ ................... %%%%%%% ..................^\ ...................... %%%%%%% .....................^\ ....................... %%%%%%% .......................^\ ................. ..,,;;;;;;`\%';;;;;;,,.. .................^\ ............. .,;;;;,;,;,;,;,; ;,;,;,;,;,;;;;,. .............^\ .......... ,;;;;,;;,;;,;;;,;;;; ;;;;,;;;,;;,;;,;;;;, ..........^\ ......... ,;;;,;;;,;;;,;;,;;,;;; ;;;,;;,;;,;;;,;;;,;;;. .........^\ ........ ,;;,;;;,;;;,;;;,;;,;;vvvvvvv;;,;;,;;;,;;;,;;;,;;, ........^\ ...... .;;,;;;,;;;,;;;,;;;vvvnnnnnnnnnvvv;;;,;;;,;;;,;;;,;;. ......^\ ..... .;;,;;;,;;;,;;,;vvvnnnnnnnnnnnnnnnnnvvv;,;;,;;;,;;;,;;. .....^\ ..... ;;,;;;,;;;,;;vvvnnnnnnnnnnnnnnnnnnnnnnnvvv;;,;;;,;;;,;; .....^\ ..... ;;,;;;,;;,;;vvvnnmmmmmmmnnnnnnnmmmmmmmmnvvv;;,;;,;;;,;; .....^\ ..... ;;,;;;,;;,;vvv\%;\%;\%;\%;\%;vnnnnmm;\%;\%;\%;\%;\%vvv;,;;,;;;,;; .....^\ ..... ;;,;;;,;;;vvv;;vvvvvvvv\%;vnnmm;\%vvvvvvvv;;vvv;;;,;;;,;; .....^\ ..... ;;,;;;,;;;vv;a@@' `@@avv\%vnmm%\%vva@@' `@@a;vv;;;,;;;,;; .....^\ \%,... ;;,;;,;vn;vvv@@@aaa@@@vv\%vnmm%\%vv@@@aaa@@@vvv;nv;,;;,;; ...,%^\ %%%%% ;;,;;,;vn;vvvnnnnnnnvvv\%vnnmm%\%vvvnnnnnnnnvvv;nv;,;;,;; %%%%%^\ %%%%%% ;;,;;,vnn;vvvnnnnnnvvv\%vnnnmm%\%vvvnnnnnnvvv;nnv,;;,;; %%%%%%^\ %%%%%%% ;;,;;,vn;vvvnnnnnvvv\%vnnnnmm%\%vvvnnnnnnvvv;nv,;;,;; %%%%%%%^\ \%'..... ;;,;;,;vn;vvvnnnnvvv\%vnnnnmmm%\%vvvnnnnvvv;nv;,;;,;; .....`%^\ ........`;;,;;,vv;vvvnnnvvv\%vnnnnmmmmm%\%vvvnnnvvv;vv,;;,;;'........^\ ........ ;;,;;;,;v;vvvnnnnnvv;;;v\%v;;;vvvnnnnvvv;v;,;;;,;; ........^\ .........`;;,;;;,;v;vvvnnnn;;;vvn\%nvv;;;nnnnvvv;v;,;;;,;;'.........^\ ......... ;;,;;;,;;v;vvvnn;;;v%%%%%%\%v;;;nnvvv;v;;,;;;,;; .........^\ ..........`;;,;;;,;v;vvvn;;vm%%%%%%%%\%mv;;nvvv;v;,;;;,;;'..........^\ ...........`;;,;;;,;v;vv;;vvvvvvvvvvvvvvv;;vv;v;,;;;,;;'...........^\ ............ ;;,;;;,;v;v;;vvn;\%;\%;\%;\%;nvv;;v;v;,;;;,;;'............^\ ..............`;;,;;,;v;v;;v;vnnnnnnnv;v;;v;v;,;;,;;'..............^\ ................`;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'................^\ ..................`;;;;;;;;;;;;;;;;;;;;;;;;;'..................^\ ................... `;;;;;;;;;;;;;;;;;;;'....................^\ .....................`;;;;;;;;;;;;;;;'.....................^\ ......................`;;;;;;;;;;;'......................^\ ......................``'' ``''......................^\ ...............................................^\ .........................................^\ ................................. 00000321 ^\ .^\ .@. .^\ @m@,. .@^\ .@m\%nm@,. .@m@^\ .@nvv\%vnmm@,. .@mn\%n@^\ .@mnvvv\%vvnnmm@,. .@mmnv\%vn@,^\ @mmnnvvv\%vvvvvnnmm@,. .@mmnnvvv\%vvnm@^\ @mmnnvvvvv\%vvvvvvnnmm@, ;;;@mmnnvvvvv\%vvvnm@,^\ `@mmnnvvvvvv\%vvvvvnnmmm;;@mmnnvvvvvv\%vvvvnmm@^\ `@mmmnnvvvvvv\%vvvnnmmm;\%mmnnvvvvvv\%vvvvnnmm@^\ `@m\%v\%v\%v\%v\%v;\%;\%;\%;\%;\%;\%;%%\%vv\%vvvvnnnmm@^\ .,mm@@@@@mm\%;;@@m@m@@m@@m@mm;;%\%vvvnnnmm@;@,.^\ .,@mmmmmmvv%\%;;@@vmvvvvvvvvvmvm@@;;%\%vvnnm@;\%mmm@,^\ .,@mmnnvvvvv%\%;;@@vvvvv%%%%%%\%vvvvmm@@;;%\%mm@;%\%nnnnm@,^\ .,@mnnvv\%v\%v\%v%\%;;@mmvvvv%\%;*;*;%\%vvvvmmm@;;\%m;%\%v\%v\%v\%vmm@,.^\ ,@mnnvv\%v\%v\%v\%v\%v\%v\%;;@@vvvv%\%;*;*;*;%\%vvvvm@@;;m%%\%v\%v\%v\%v\%v\%vnnm@,^\ `@mnnvv\%v\%v\%v%\%;;@mvvvvv%\%;;*;;%\%vvvmmmm@;;\%m;%\%v\%v\%v\%vmm@'^\ `@mmnnvvvvv%\%;;@@mvvvv%%%%%%\%vvvvmm@@;;%\%mm@;%\%nnnnm@'^\ `@mmmmmmvv%\%;;@@mvvvvvvvvvvmmm@@;;%\%mmnmm@;\%mmm@'^\ `mm@@@@@mm\%;;@m@@m@m@m@@m@@;;%\%vvvvvnmm@;@'^\ ,@m\%v\%v\%v\%v\%v;\%;\%;\%;\%;\%;\%;\%;\%vv\%vvvvvnnmm@^\ .@mmnnvvvvvvv\%vvvvnnmm\%mmnnvvvvvvv\%vvvvnnmm@^\ .@mmnnvvvvvv\%vvvvvvnnmm'`@mmnnvvvvvv\%vvvnnmm@^\ @mmnnvvvvv\%vvvvvvnnmm@':%:@mmnnvvvv\%vvvnm@'^\ @mmnnvvv\%vvvvvnnmm@'`:::%%:'`@mmnnvv\%vvmm@^\ `@mnvvv\%vvnnmm@' `:;%\%;:' `@mvv\%vm@'^\ `@mnv\%vnnm@' `;\%;' `@n\%n@^\ `@m\%mm@' ;\%;. `@m@^\ @m@' `;\%; `@^\ `@' ;\%;. '^\ , ` `;\%;^\ \%, ;\%;.^\ `;%%%%%%\%, `;\%;^\ `%%%%%%%%\%, ;\%;.^\ ::, `;\%;^\ ::\%, ;\%;^\ ::%\%, ;\%;^\ ::;%% .;\%;^\ ::;;%% ;\%;'^\ `::;%% .;\%;^\ ::;;%% ;\%;'^\ `::;%% .;\%;^\ ::;;%% ;\%;'^\ `::;%% .;\%;^\ ::;;%% ;\%;'^\ `::;%% .;\%;^\ ::;;%% ;\%;'^\ `::;%% .;\%;^\ ::;%\%, ;\%;'^\ `::;%% .;\%;^\ ::;%% ;\%;'^\ `::%% .;\%;^\ ::%% ;\%;'^\ `:;% .;\%;^\ :;% .;\%;'^\ :;% .;%\%;^\ `:% .;%\%;'^\ `::%\%;'^\ ^\ "The first Daffodil of Spring." 000005Sun2 A rose for Mothers' Day...^\ .,,.^\ .,v\%;mmmmmmmm;%\%vv,.^\ ,vvv\%;mmmvv;vvvmmm;\%vvvv, .,,.^\ ,, ,vvvnnv\%;mmmvv;%\%;vvmmm;\%vvvv\%;mmmmmmm,^\ ,mmmmmm;%\%vv\%;mmmvv;%\%;vvmmm;\%v\%;mmmmmmmmmmm^\ mmmmmmmmmmm;%\%;mmmvv\%;vvmmm;\%mmmmmmmmmmmmmm'^\ `mmmmmmmmmmmmmm\%;mmv;vmmm;mmmmmmm;\%vvvvvv'^\ `%%%%\%;mmmmmmmm;v\%v;mmmmmm;\%vvvnnvv'^\ vvvvvv%%%\%;mmmm\%;mmmmmm;\%vvvnnnnvv^\ `vvnnnnvvv%%\%;m;mmmmm;\%vvnnmmnnvv'^\ vvnmmnnnnvvv%\%mmmm;\%vvnnmmmnnnvv^\ `vvnmmmnnvvv\%mmm;\%vvnnmmmmnnnvv'^\ `vvnmmmmvv\%mmm;\%vvnnmmmmnnnvv'^\ `vvnmmmvv\%mm;\%vvvnnmmmnnvvv'^\ `vvnmmvv\%m;\%vvvvnmnvvvv'^\ .;;vvvvvm;\%vvvvvvvv'^\ .;;;;;;;;;;;;;;;;;;;;,^\ ;;;;;;';;;;;;;;;;;'`;;;;;,^\ .;;;' `;;;;;;;;' `;;;;;.^\ .;;' `;;;;;' `;;;;^\ ;' :`;;' ;;'^\ ; : ;' , ,' .^\ ` :'.: .;;,. .,;;;;;;'^\ :::: ;;,;;;, ;;;,;;;;'^\ ;;;; `;;;,;; .,';;;;'^\ ;;;; `';; ,;;'^\ ,;;;;; .;',.^\ `;;;; .;' ';,.^\ `;;;. .;' ,;;,;;,.^\ ;;;; .;' `;;;;,;;;^\ ;;;; .;' `;;,;;'^\ `;;;,;;' `;'^\ ;;;;^\ ;;;;.^\ `;;;;;,.^\ ;;;;'^\ ;;;;^\ ;;;; w=1225 w=w-4sun 0@w 1st Advent^\ .^\ . *^\ | *^\ . * . *^\ /^\ * . , * . *^\ `;.^\ * - ;:, - * - .^\ . - ,:;:,^\ . ,:;\%;;:, *^\ / ::;%#\%;:: * .^\ * ::;%#\%;:'^\ `:%#\%' . .,,.^\ * . # .,sSSSSs^\ # .,sSSSSSSSS^\ .,sSSSSSSSSSSSS'^\ .,sSSSSSSSSSSSSSSSSSs,^\ .sSSSSSSSSSSSSSSSSSSSSSSSS^\ sSSSSSSSSSSSSSSSSSSSSSSSS'^\ `SSSSSSSSSSSSSSSSSSSSSSS'^\ sSSSS;nww;SSS;mwwwn;SSSSs^\ `SSS;nnw;sSSSs;wwwnnn;SSSs^\ .sSS;nnnw;SSSSS;wwwnnn\%;SSS^\ .SSSS;nnnww;SSS;mwwwnnn\%;SS'^\ SSSSS;nnnwwwmmmmmwwwnnn%\%;^\ `SSS'\%nnnwwwmmmmmwwwnnn%\%;^\ ;%\%nnnwwwmmmmmwwwnnn%\%;^\ ;%\%nnnwwwmmmmmwwwnnn%\%;^\ ;%\%nnnwwwmmmmmwwwnnn%\%;^\ ;%\%nnnwwwmmmmmwwwnnn%\%;^\ ;%\%nnnwwwmmmmmwwwnnn%\%;^\ ;%\%nnnwwwmmmmmwwwnnn%\%;^\ ;%\%nnnwwwmmmmmwwwnnn%\%;^\ ;%\%nnnwwwmmmmmwwwnnn%\%;^\ ;%\%nnnwwwmmmmmwwwnnn%\%;^\ , ;%\%nnnwwwmmmmmwwwnnn%\%;^\ .,;;;,.,; ;%\%nnnwwwmmmmmwwwnnn%\%; ; ;^\ `;;;;,;;;,.,; ;%\%nnnwwwmmmmmnnnnnn%\%; , .;;,.,;;;.^\ ;;;;;;;;,;;;;;,., ;%\%nnnnnnnnn;,ooo,;n%\%; ;;;;;,;;,;;,;;;,.^\ ;' `;;;;;;,;;;;.;%\%nnn;,ooo,;OOOOO;n%\%; .;;,;;;;;;;;;;,;;'',^\ ;' ';;;;,;;,... OOOOO;`OOO'..,,;,;;,;;;''';;;''';;'^\ ';;' '''''`OOO'OOooo' ''' ;' ' ' '^\ ' ;,.,;, `OOO'^\ ;,.;;';;;';,;.^\ ;,.;;';;;;;;;;;;;'^\ .,;;;;;;;;;;;;;;;'^\ ';' ';' ';;^\ `^\ ^\ "Christmas Candle" 00001206 ^\ ..,,,,,,,,,,,,,,,,..^\ ..,,;;;;;;;;;;;;;;;;;;;;;;;;;;,,.^\ .,::::;;;;aaaaaaaaaaaaaaaaaaaaaaaaaaa;;,,.^\ .,;;,:::a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a,^\ ,;;;;.,a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a^\ ,;;;;\%;.,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a,^\ ,;\%;;;;%\%;,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^\ ,;;%\%;;;;;%\%;;@@@@@@@@@@@@@@'\%v\%v\%v\%v\%v\%v\%v\%v\%v\%v\%v\%v`@@@@@@@@@^\ ,;;%\%;;;;:;;;\%;;@@@@@@@@@'\%vvvvvvvvvnnnnnnnnnnnnnnnnvvvvvv\%`@@@@'^\ ,;%\%;;;;;:;;;;;;;;@@@@@'\%vvva@@@@@@@@avvnnnnnnnnnnvva@@@@@@@OOov,^\ ,;\%;;;;;;:::;;;;;;;@@'OO\%vva@@@@@@@@@@@@vvnnnnnnnnvv@@@@@@@@@@@Oov^\ ;\%;;;;;;;:::;;;;;;;;'oO\%vvn@@\%nvvvvvvvv\%nnnnnnnnnnnnn\%vvvvvvnn\%@Ov^\ ;;;;;;;;;:::;;;;;;::;oO\%vvnnnn>>nn. `nnnnnnnnnnnn>>nn. `nnnvv'^\ ;;;;;;;;;:::;;;;;;::;oO\%vvnnvvmmmmmmmmmmvvvnnnnnn;\%mmmmmmmmmmmmvv,^\ ;;;;;;;;;:::;;;;;;::;oO\%vvmmmmmmmmmmmmmmmmmvvnnnv;\%mmmmmmmmmmmmmmmv,^\ ;;;;;;;;;;:;;;;;;::;;oO\%vmmmmnnnnnnnnnnnnmmvvnnnvmm;\%vvnnnnnnnnnmmmv^\ `;\%;;;;;;;:;;;;::;;o@@\%vvmmnnnnnnnnnnnvnnnnnnnnnnmmm;\%vvvnnnnnnmmmv^\ `;;%\%;;;;;:;;;::;.oO@@\%vmmnnnnnnnnnvv\%;nnnnnnnnnmmm;\%vvvnnnnnnmmv'^\ `;;;%\%;;;:;;;::;.o@@\%vvnnnnnnnnnnnvv\%;nnnnnnnmm;\%vvvnnnnnnnv\%'@a.^\ a`;;;%\%;;:;;;::;.o@@\%vvvvvvvvvvvvvaa@@@@@@@@@@@@aa%\%vvvvv%\%@@@@o.^\ .@@o`;;;\%;;;;;;::;,o@@@\%vvvvvvva@@@@@@@@@@@@@@@@@@@@@avvvva@@@@@\%O,^\ .@@@@@Oo`;;;;;;;;::;o@@@@@@@@@@@@@@@@@@@@"""""""@@@@@@@@@@@@@@@@@OO@a^\ .@@@@@@@@@OOo`;;;;;;:;o@@@@@@@@@@@@@@@@" "@@@@@@@@@@@@@@oOO@@@,^\ .@@@@o@@@@@@@OOo`;;;;:;o,@@@@@@@@@@\%vvvvvvvvvvvvvvvvvv%\%@@@@@@@@@oOOO@@@@@,^\ @@@@o@@@@@@@@@OOo;::;'oOOooooooooOOOo\%vvvvvvvvvvvvvv\%oOOooooooooOOO@@@O@@@,^\ @@@oO@@@@@@@@@OOa@@@@@a,oOOOOOOOOOOOOOOoooooooooooooOOOOOOOOOOOOOO@@@@Oo@@@^\ @@@oO@@@@@@@OOa@@@@@@@@Oo,oO@@@@@@@@@@OOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@Oo@@@^\ @@@oO@@@@@@OO@@@@@@@@@@@OO,oO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@^\ @@@@o@@@@@@OO@@@@@@@@@@OOO,oO@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@o@@@@@@@@@O@@@@^\ @@@@@o@@@@@OOo@@@@@@@OOOO'oOO@@@@@@@@Oo@@@@@@@@@@@@O@@@@@@@@Oo@@@@@@@@@@@@a^\ `@@@@@@@O@@@OOOo`OOOOOOO'oOO@@@@@@@@@O@@@@@@@@@@@@@@@O@@@@@@@@Oo@@@@@@@@@@@@^\ `@@@@@OO@@@@@OOOooooooooOO@@@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@@@@@Oo@@@@@@oO@@@@^\ `@@@OO@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@@@@@O@@@@@@@oO@@@'^\ `@@`O@@@@@@@@@@@@@@@@@@@Oo@@@@@@@@@@@@@@@@@@@@@@Oo@@@@@@@@@@@@@@@O@@@'^\ `@ @@@@@@@@@@@@@@@@@@@OOo@@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@'@@'^\ `@@@@@@@@@@@@@@@@@@OOo@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@ a'^\ `@@@@@@@@@@@@@@OOo@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@@@@@@'^\ `@@@@@@@@@@@Oo@@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@@'^\ `@@@@@@Oo@@@@O@@@@@@@@@@@@@@@@@@@'o@@'^\ `@@@@@@@@oO@@@@@@@@@@@@@@@@@ a'^\ `@@@@@oO@@@@@@@@@@@@@@' '^\ '@@@o'`@@@@@@@@'^\ @' .@@@@'^\ @@'^\ @'^\ "Jolly old St. Nicholas." 00000101 ^\ .;;, .;;,^\ ` ;; ;; '^\ ;; ;; , .;;;. .;;,;;;, .;;,;;;, .;;. .;;.^\ ,;;;;;;;;;' ` ;; ` ;; ;; ` ;; ;; ` ;; ;; '^\ ` ;; ;; .;;.;; ;; ;; ;; ;; ;; ;;^\ ;; ;; ;; ;; , ;; ;; ;; ;; ;; ;;^\ . ;; ';;' `;;;';;' ;;';;' ;;';;' `;;';^\ ';;' ;; ;; ;;^\ . ;; . ;; . ;;^\ ';;' ';;' ';;'^\ ^\ .;;, ,;;;,^\ ` ;; ;;^\ ;; ;; ,;;, .;;. .;;,^\ ;; ;; ;; ;; ` ;; ;; '^\ ;; ;; ;;;;;' ;; ;; ;;^\ ;; ;; ;; . ;; ;; ;;^\ . ;; ';;' `;;;' `;;'`;;'^\ ';;'^\ ^\ .;;. .;;.^\ ` ;; ;; '^\ ;; ;; .;;, .;;;. .;;.;;;,^\ ;; ;; ;; ;; ' ;; ` ;; '^\ ;; ;; ;;;;;' .;;,;; ;;^\ `;;;'; ;; . ;; ;; , ;;^\ ;; `;;;' `;;';;' ;'^\ ;;^\ .' ;;^\ ';;;'^\ ,;.^\ ..,,,...;;.^\ ,;;;;;;;;;;;;;;;.^\ .;;;;;;;;;;;;;;;;;; /\~\~\~\ ^\ ;;;;;;;;;;;;;;;;;;' .;;;; \ ^\ .,. ;; ;;;;;;;;;;;;;;;;;;, .;;'\ |^\ ;;;;;;;, `;;;;;;;;;;;;;;;;; .;;;;' \__ / .:::.^\ `;;;;;;;;, `;;;;;;;;;;;;;' .;;;;;' \ :::::^\ `;;;;;, `;;;;;;' .,;;;;;;' \:::^\ `;;;;;,.,,.;;;;;;.;;;;;;;'' ,a@@@@@@@@@a,^\ `;;;;;;;;;;;;;;;;;;;' .a@@@@@@@ XII @@@@@@@a,^\ `;;;;;;;;;;;;;;;; .a@@.@@@@aaaa/|\aaaa@@@@.@@a,^\ `;;;;;;;;;;;;;;; .@@@@@@@aaa@@@@@|@@@@@aaa@@@@@@@,^\ ;;;;;;;;;;;;;;;. .@@@@@@@aa@@@@@@@/|\@@@@@@@aa@@@@@@@.^\ ;;;;;;;;;;;;;;;;; .@@@.@@@aa@@@@@@@@@|@@@@@@@@@aa@@@.@@@.^\ .################### @@@@@@@aa@@@@@@@@@@|@@@@@@@@@@aa@@@@@@@^\ ###################; @@@@@@@aa@@@@@@@@@@|@@@@@@@@@@aa@@@@@@@^\ #;;;;;;;#######;;;;; @ IX @@aa@@@@@@@@@@|@@@@@@@@@@aa@ III @^\ ;;;;;;;;;###;;;;;;;; @aaaa@@aa@@@@@@@@@@@@@@@@@@@@@aa@aaaaa@^\ ;;;;;;;;' `;;;;;;;' @@@@@@@aa@@@@@@@@@@@@@@@@@@@@@aa@@@@@@@^\ ,;;;;;;' ;;;;;;' `@@@.@@@aa@@@@@@@@@@@@@@@@@@@aa@@@.@@@'^\ ,;;;;;' ;;;;;' `@@@@@@@aa@@@@@@@@@@@@@@@@aa@@@@@@@@'^\ ,;;;;' ,;;;;' `@@@@.@@@aaa@@@@@@@@@@aaa@@.@@@@@@'^\ ;;;;' .;;;;' `@@@@@@@@aaaaaaaaaa@@@@@@@@@'^\ .;;;;; ;;;;;;;, `@@@@@@@@@ VI @@@@@@@@'^\ `;;;;;' ''''''' `@@@@aaaa@@@' 00000921 My birthday ^\ *^\ *^\ * *^\ *^\ *^\ *^\ *^\ *^\ *^\ *^\ * *^\ *^\ * *^\ *^\ ( )^\ ) (*) (*) (^\ * (*) | | (*)^\ | |\~| |\~| | *^\ |\~| | | | | |\~|^\ | | | | | | | |^\ ,| |a@@@@| |@@@@@@@@@@@| |@@@@a| |.^\ .,a@@@| |@@@@@| |@@@@@@@@@@@| |@@@@@| |@@@@a,.^\ ,a@@@@@@| |@@@@@@@@@@@@.@@@@@@@@@@@@@@| |@@@@@@@a,^\ a@@@@@@@@@@@@@@@@@@@@@' . `@@@@@@@@@@@@@@@@@@@@@@@@a^\ ;`@@@@@@@@@@@@@@@@@@' . `@@@@@@@@@@@@@@@@@@@@@';^\ ;@@@`@@@@@@@@@@@@@' . `@@@@@@@@@@@@@@@@'@@@;^\ ;@@@;,.aaaaaaaaaa . aaaaa,,aaaaaaa,;@@@;^\ ;;@;;;;@@@@@@@@;@ @.@ ;@@@;;;@@@@@@;;;;@@;^\ ;;;;;;;@@@@;@@;;@ @@ . @@ ;;@;;;;@@;@@@;;;;;;;^\ ;;;;;;;;@@;;;;;;; @@ . @@ ;;;;;;;;;;;@@;;;;@;;^\ ;;;;;;;;;;;;;;;;;@@ . @@;;;;;;;;;;;;;;;;@@a;^\ ,%%\%;;;;;;;;@;;;;;;;; . ;;;;;;;;;;;;;;;;@@;;%%\%,^\ .%%%%%\%;;;;;;;a@;;;;;;;; ,%%\%, ;;;;;;;;;;;;;;;;;;;;%%%%%\%,^\ .%%%%%%\%;;;;;;;@@;;;;;;;; ,%%%%%%\%, ;;;;;;;;;;;;;;;;;;;;%%%%%%\%,^\ %%%%%%%\%`;;;;;;;;;;;;;;;; %%%%%%%%%%% ;;;;;;;;;;;;;;;;;;;'%%%%%%%%^\ %%%%%%%%%%%\%`;;;;;;;;;;;;,%%%%%%%%%%%%\%,;;;;;;;;;;;;;;;'%%%%%%%%%%%%^\ `%%%%%%%%%%%%%%%%\%,,,,,,,%%%%%%%%%%%%%%\%,,,,,,,%%%%%%%%%%%%%%%%%%%\%'^\ `%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\%'^\ `%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\%'^\ """"""""""""""`,,,,,,,,,'"""""""""""""""""^\ `%%%%%%\%'^\ `%%%%\%'^\ %%%^\ %%%%%^\ .,%%%%%%\%,.^\ ,%%%%%%%%%%%%%%%%%%\%,^\ ---------------------------------------------^\ ^\ "Of course it's Chocolate. :)" 00001222 northern Winter^\ , ,^\ $, $, ,^\ "ss.\$ss. .s'^\ , .ss$$$$$$$$$\$s,^\ $. s$$$$$$$$$$$$$$`$\$Ss^\ "$$$$$$$$$$$$$$$$$\$o$$$ ,^\ s$$$$$$$$$$$$$$$$$$$$$$$\$s, ,s^\ s$$$$$$$$$"$$$$$$""""$$$$$$"$$$$$,^\ s$$$$$$$$$\$s""$$$\$ssssss"$$$$$$$$"^\ s$$$$$$$$$$' `"""ss"$"\$s""^\ s$$$$$$$$$$, `"""""$ .s$\$s^\ s$$$$$$$$$$$\$s,... `s$$' `^\ `ssss$$$$$$$$$$$$$$$$$$$$####s. .$$"$. , s-^\ `""""$$$$$$$$$$$$$$$$$$$$#####$$$$$$" $.$'^\ "$$$$$$$$$$$$$$$$$$$$$####s"" .$$$|^\ "$$$$$$$$$$$$$$$$$$$$$$$$##s .$$" $^\ $$""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" `^\ $$" "$"$$$$$$$$$$$$$$$$$$$\$S""""'^\ , ," ' $$$$$$$$$$$$$$$$####s^\ $. .s$$$$$$$$$$$$$$$$$####"^\ , "\$s. ..ssS$$$$$$$$$$$$$$$$$$$####"^\ $ .$$\$S$$$$$$$$$$$$$$$$$$$$$$$$#####"^\ Ss ..sS$$$$$$$$$$$$$$$$$$$$$$$$$$$######""^\ "$\$sS$$$$$$$$$$$$$$$$$$$$$$$$$$$########"^\ , s$$$$$$$$$$$$$$$$$$$$$$$$#########""'^\ $ s$$$$$$$$$$$$$$$$$$$$$#######""' s' ,^\ $$..$$$$$$$$$$$$$$$$$$######"' ....,$$.... ,$^\ "$$$$$$$$$$$$$$$######"' , .sS$$$$$$$$$$$$$$$\$s$$^\ $$$$$$$$$$$$#####" $, .s$$$$$$$$$$$$$$$$$$$$$$$\$s.^\ ) $$$$$$$$$$$#####' `$$$$$$$$$###########$$$$$$$$$$$.^\ (( $$$$$$$$$$$##### $$$$$$$$###" "####$$$$$$$$$$^\ ) \ $$$$$$$$$$$$####. $$$$$$###" "###$$$$$$$$$ s'^\ ( ) $$$$$$$$$$$$$####. $$$$$###" ####$$$$$$$\$s$$'^\ ) ( ( $$"$$$$$$$$$$$#####.$$$$$###' -Tua Xiong .###$$$$$$$$$$"^\ ( ) ) _,$" $$$$$$$$$$$$######.$$##' .###$$$$$$$$$$^\ ) ( ( \. "$$$$$$$$$$$$$#######,,,. ..####$$$$$$$$$$$"^\ ( )$ ) ) ,$$$$$$$$$$$$$$$$$$####################$$$$$$$$$$$"^\ ( ($$ ( \ _sS" `"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\$S$$,^\ ) )$$\$s ) ) . . `$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"' `$$^\ ( $$\$Ss/ .$, .$,,s$$$$$$##S$$$$$$$$$$$$$$$$$$$$$$$\$S"" '^\ \)_$$$$$$$$$$$$$$$$$$$$$$$##" $$ `$$. `$$.^\ `"S$$$$$$$$$$$$$$$$$#" $ `$ `$^\ `"""""""""""""' ' ' ' 00000621 Sun rises over Heelstone at Stonehenge^\ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^\ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @@@@ @ @ @ @@@@ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @@@ @ @ @ @@ @ @ @ @ @ @^\ @ @ @ @ @ @@@@ @ @@@ @ @ @ @ @^\ @ @ @ @ @ @@ @ @ @ @ @ @ @^\ @ @ @ @ @@ @ @@@ @ @ @^\ @ @ @ @@ @ @ @ @ @ @^\ @ @ @@@ @@ @ @ @@^\ @ @ @@ @@ @ @ @@ @^\ @@@ @ @ @@@@ @@@@ @ @ @ @ @^\ @ @ @@ @ @ @ @@ @ @ @@ @ @ @ @^\ @ @@ @ @@@@ @ @@@@ @@@ @^\ @ @ @ @ @@ @ @ @@ @@ @ @^\ @@@ @@ @@@@ @ @ @@@@@ @ @@ @^\ @ @@ @ @ @@@@@@ @ @ @@@@@@ @@ @^\ @ @@ @ @ @@@^\ @@@ @ @ @ @@@@@ @ @@@@@@ @ @@ @^\ @ @@@ @ @ @ @ @@ @^\ @ @@ @ @ @ @ @@^\ @ @ @ @ @ @ @ @ @ @ @@ @^\ @@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @@@@ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @@ @ @ @ @ @ @@@@^\ @ @ @@ @ @ @ @@ @@ @ @^\ @@@@ @@@@ @@@@ @@ @@ @ @^\ @ @ @ @ @ @@ @@@ @@@@@@@^\ @ @ @@@ @@ @@@@ @ @@^\ @ @ @@@@@@ @@@@ @@@@ @@ @ @ @ @^\ @ @@@@@ @ @@@@ @@@@@@@@@@@@@ @@ @ @ @ @@^\ @@ @ @ @@@ @ @@@@ @@ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @@@ @@ @@@ @ @ @@^\ @@ @ @ @ @ @ @ @ @ @@ @@@ @@ @ @ @ @@@ @^\ @ @ @@@ @ @ @ @ @ @ @@@ @@@@@ @@ @ @ @ @ @ @@^\ @@ @ @ @ @ @ @ @ @@@ @ @ @@ @ @ @ @ @@@ @^\ @ @ @ @ @ @ @ @@@ @ @ @ @@ @@ @ @ @ @ @ @ @@^\ @@ @ @ @ @ @ @ @ @ @ @ @ @@@ @@ @ @ @ @ @ @ @ @^\ @ @@@ @ @ @ @ @@@ @ @ @ @ @ @ @@ @ @ @ @ @ @@@ @@^\ @@ @ @ @ @@@ @@@@@ @ @ @ @ @ @ @@ @ @ @ @@@ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@ @ @@@ @ @ @ @ @ @@^\ @@ @ @@@ @ @ @ @ @ @@@ @ @ @ @ @ @@@ @ @ @ @ @@@ @ @ @ @^\ @ @ @ @@@ @ @ @ @ @ @ @ @@@ @ @ @@@ @@@@ @ @@@ @ @@@@@ @ @ @@^\ @@ @ @@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @@@@@ @ @ @@@ @ @ @ @@@ @ @ @ @@@ @ @ @ @ @ @ @ @ @ @ @ @ @@^\ @@ @ @@@@@ @ @ @ @ @ @ @ @ @ @@@ @ @ @@@ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @@@@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@ @ @ @ @ @ @@@ @ @ @@^\ @@ @@@@@@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@ @ @ @ @ @ @ @@@ @^\ @ @ @ @ @ @ @ @ @ @ @@@ @ @ @@@ @ @@@ @ @ @@@ @@@ @ @ @ @ @ @ @@^\ @@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@ @@@ @ @ @ @@@ @^\ @ @ @ @ @ @ @ @ @ @ @@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@^\ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 00000910 Moon Festival in Taiwan^\ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^\ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^\ @@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@^\ @@@@@@@@ @@@@@@@ @@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@^\ @@@@@@@@@ @@@@@@@@ @@@@@ @@@@@@@@@@@@@@@@@ @@@@@^\ @@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@^\ @@@@@@@@@@@@@@@@@@@@ @@@@@@@ @@@@@@@@@@@^\ @@@@ @@@@@@@@@@@@@@ @@@@@@ @@@@@@@@@@@^\ @@@ @@@@ @@@@@ @@@@@@@@@@@@@@@@^\ @@@@ @@@@@@@@@@@ @@@@@@@@@@@ @@@^\ @@@@@@@@@@@@@@@ @@@@@@@@@ @@^\ @@@@@@@@@@@@@@ @@@@@@@@@ @@@^\ @@@@@@@@@@@@@ @@@@@@@@@@@@^\ @@@@@@@@@@@@@ @@@@@@@@@@@@^\ @@@@@@@@@@@@ @@@@@@@@@@@^\ @@ @@@@@@@@ @@@@@@@@@@^\ @@ @@@@@@@@ @ @ @@@@@@@@@@^\ @@@@@@@@@@ @ @ @@@@@@@@@^\ @@@@@@@@@@ @ @ @ @ @@@@@@@@@^\ @@@@@@@@@ @ @ @ @ @ @ @@@@@@@@^\ @@@@@@@@@ @ @ @ @ @ @ @ @ @ @@@@@@@@^\ @@@@@@@@@ @ @ @ @ @ @ @ @ @@@@@@@@^\ @@@@@@@@@ @ @ @ @ @ @ @ @@@ @@@^\ @@@@@@@@ @ @ @ @ @ @ @@@@@@@^\ @@@@@@@@ @ @ @ @ @ @ @@ @@@@@@@^\ @@@ @@@@ @@@@ @ @ @ @ @ @@@ @@@@@@@^\ @@ @@@ @@@ @ @ @ @ @ @@@@ @@@@@@@^\ @@@ @@@@ @@ @ @ @ @ @ @ @@@@@@@^\ @@@@@@@@ @ @ @ @ @ @ @@ @@@@@@@^\ @@@@@@@@ @ @ @ @ @ @@ @@@@@@@^\ @@@@@@@@ @ @ @ @ @ @@@@@@@^\ @@@@@@@@ @ @ @ @ @@@@@@@^\ @@@@@@@@@ @ @ @ @ @ @@@@@@@@^\ @@@@@@@@@ @ @ @ @ @ @ @@@@@@@@^\ @@@@@@@@@ @ @ @ @ @ @@@@@@@@^\ @@@@@@@@@ @ @ @ @ @ @ @@ @@@@@^\ @@@@@@@@@@ @ @ @ @ @ @ @ @@ @@@@^\ @@@@@ @@@@ @ @ @ @ @ @ @ @ @@@ @@@@@^\ @@@@@@@@@@@ @ @ @ @ @ @ @ @@@@@@@@@@^\ @@@@@@@@@@@ @ @ @ @ @ @ @ @ @@@@@@@@@@^\ @@@@@@@@@@@@ @ @ @ @ @ @ @ @ @ @@@@@@@ @@@^\ @@@@@@@@@@@@@ @ @ @ @ @ @ @ @ @@@@@@@@@@@@^\ @@@@@@@@@@@@@ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@^\ @@@@@@ @@@@@@@ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@^\ @@@@@@@@@ @@@@@ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@^\ @@@@@@@@ @@@@@ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@^\ @@@@@@@@@ @@@@@@@ @ @ @ @ @ @ @ @ @ @ @@@@@ @@@@@@@@@@^\ @@@ @@@@@@@@@@@@@@@ @ @ @ @ @ @ @ @ @@ @@@@@@@@@@@@@@@^\ @@@ @@@@@@@@@@@@@@@@ @ @ @ @ @ @ @ @ @ @@ @@@@@@@@@@ @@@@^\ @@@@@@@@@@@@@@@@@@@@@@ @ @ @ @ @ @ @ @ @@@ @ @@@@@@@@@@@@@@@^\ @@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ @ @ @ @ @@@@@@ @@@@@@@@@@@@@@@@^\ @@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ @ @ @ @@@@@@@ @ @@@@@@@@@@@@@@@^\ @@@ @ @ @ @ @ @@@@@@@@@@@@@@@ @ @ @ @@@@@@@ @ @ @ @ @@@@@@@@@@@@^\ @@@@ @ @ @ @ @@@@@ @ @ @ @ @ @ @ @ @@@@@@@@@ @ @ @ @ @@@@@@@@@@@^\ @@@ @ @ @ @ @ @@@@@ @ @ @ @ @@@@@ @ @ @@@@@ @ @ @ @ @@@@@ @ @ @@^\ @@@@ @ @ @ @ @@@@@ @ @ @ @ @ @@@ @ @ @@@@@ @ @ @ @ @ @@@ @ @ @@@^\ @@@ @ @ @ @ @ @@@@@ @ @ @ @ @@@@@ @ @ @ @ @ @ @ @ @ @@@@@ @ @ @@^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @^\ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ^\ @@@@ @ @ @ @ @@@@@ @ @ @ @ @ @@@ @ @ @@@@@@@ @ @ @ @ @@@ @ @ @@@^\ @@@ @ @ @ @ @ @@@@@ @ @ @ @ @@@@@ @ @ @@@@@ @ @ @ @ @@@@@ @ @ @@^\ @@@@ @ @ @ @ @@@@@ @ @ @ @ @ @@@ @ @ @@@@@@@ @ @ @ @ @@@ @ @ @@@gcal-4.1/data/meteoric.rc0000664000000000000000000001600712353520617012233 00000000000000; ; meteoric.rc -- gcal sample resource file ; ; Meteorstr"ome -- Code/Zeitraum/Maximum/Anzahl/Radiant/Geschwindigkeit/Komet ; meteoric showers -- code/interval/maximum/number/radiant/velocity/comet ; ; [Configuration following below] ; ; (C)opyright Claus-Peter R"uckemann, 1996, 1999 ; ; You may use the data provided here on your own risk. ; If you do use the data in any publication, program or product other than ; gcal under GPL, you have to cite where most of the sample data hacked in ; here comes from: ; ; @BOOK{Rueckemann:1999:Astronomie, ; author = {R{\"u}ckemann, C.-P.}, ; title = {Datensammlung zur Astronomie}, ; publisher = {in Vorbereitung, M{\"u}nster}, ; year = {1999}, ; } % =:-) end of commercial for the unpublished ; ; In most cases meteoric showers do not last for long astronomical time ; intervals. Most of the material that we see 'glowing' when watching such ; showers results from the Oort's Cloud. Earlier in the history of the universe ; larger bodies impacted into the Oort's Cloud and set a huge number of ; smaller broken particles and other material free. These smaller bodies do ; carry big amounts of dust in their trail when traveling with through space at ; high speeds. If some of these smaller bodies get near the outer atmosphere ; of the earth the dust particles begin to glow while burning due to the ; heat they produce from the contact with the gases of the atmosphere. ; This way you might get some impression why meteoric showers do tend to ; be not as stable in their occurance when earth is passing their way ; on it's orbit around the sun over the years as one might suggest. ; It is known that the occourance of specific showers will vary in different ; years. It is known that some showers only happen to last for less than an ; hour each year while others do continue for several days. And we know that ; in general meteoric showers did have been much more numerous in earlier times ; of earth's history long ago ... ; ; ; The samples given do include some minor showers and there are a lot other ; minor showers and some other data missing and that most showers are only ; constant in date and brightness every year for about several decades and that ; the weather on earth might make them invisible from earth in some years, ; not to mention that in a specific year your location might not have ; dark night when the maximum occurs ... [many more] ; ; If you have any further corrections, improvements, more detailed or ; more correct data or even donations please contact: ; ruckema@uni-muenster.de ; ; 19991121 CPR Added international 3-letter-codes. ; ;------------------------ Konfiguration / configuration ---------------------- ; Please notice that there are tabstops following some $?=~... entries! ; So use an editor that does not delete the tabs when configuring this file. ; This file is 8 bit -- modify for your codepage if needed. ;....................................german................................... $c=~erzeugender Komet: $d=~internationaler Code: $m=~%1Maximum der Fallhäufigkeit%2 $n=~maximale Anzahl von Objekten: $r=~Lage des Radianten: $s=-Meteorstrom $v=~mittl. Geschw. rel. Erde: $x=den $y=variabel $j=Nördliche $k=Südliche ;................................anglo-american............................... ;$c=~producing comet: ;$d=~international 3-letter-code: ;$m=~%1maximum of falling%2 ;$n=~maximal number of objects: ;$r=~position of radiant: ;$s=-meteoric shower ;$v=~mean velocity rel. to earth: ;$x=ds ;$y=variable ;$j=Northern ;$k=Southern ;----------------------------------------------------------------------------- $t=%3Zeta Aurigi$x%4$s, $m 00000101 $t 00001231 $t 00000101#0104 %e00000103#00000103 %3Quadranti$x%4$s, $d QUA, $r Bootes/Bootids, $n 45/h, $v 42.7 km/s 00000103 %3Quadranti$x%4$s, $d QUA, $r Bootes/Bootids, $m, $n 45/h, $v 42.7 km/s 00000113#0117 %3Jan. Draconi$x%4$s, $d GIA, $r Drache/Dragon, $m 00000113#0213 %3Alpha Leoni$x%4$s, $d LEO, $m 00000205#0210 %3Aurigi$x%4$s, $d AUR, $m 00000208#0209 %3Beta Centauri$x%4$s, $m 00000222#0223 %3Delta Leoni$x%4$s, $d DLE, $m 00000225#0226 %3Sigma Leoni$x%4$s, $d LEO, $m 00000401#0499 %3Virgini$x%4$s, $r Jungfrau/Virgin 00000418#0424 %e00000422#00000422 %3Lyri$x%4$s, $d LYR, $r Leier/Lyra 00000422 %3Lyri$x%4$s, $d LYR, $r Leier/Lyra, $m 00000420#0730 %e00000614#00000614 %3Scorpius-Sagittarii$x%4$s, $r Skorpion-Schütze/Scorpio-Sagittarius, $n 6/h 00000614 %3Scorpius-Sagittarii$x%4$s, $r Skorpion-Schütze/Scorpio-Sagittarius, $m, $n 6/h 00000429#0521 %e00000505#00000505 %3Eta Aquari$x%4$s, $d ETA, $r Wassermann/Aquarius, $n 40/h, $v 64 km/s, $c Halley 00000505 %3Eta Aquari$x%4$s, $d ETA, $r Wassermann/Aquarius, $m, $n 40/h, $v 64 km/s, $c Halley 00000627#0705 %e00000628#00000628 %3Jun. Booti$x%4$s, $r Bootes/Bootids 00000628 %3Jun. Booti$x%4$s, $r Bootes/Bootids, $m 00000725#0810 %e00000803#00000803 %3Delta Aquari$x%4$s, $d NDA/SDA, $r Wassermann/Aquarius, $n 12/h, $v 30 km/s 00000803 %3Delta Aquari$x%4$s, $d NDA/SDA, $r Wassermann/Aquarius, $m, $n 12/h, $v 30 km/s 00000720#0819 %e00000811#00000812 %3Persei$x%4$s, $d PER, $r Perseus/Perseides, $n 100/h, $v 60.4 km/s, $c 1862 III 00000811#0812 %3Persei$x%4$s, $d PER, $r Perseus/Perseides, $m, $n 100/h, $v 60.4 km/s, $c 1862 III 00000725#0908 %e00000816#00000816 %3Cygni$x%4$s, $r Schwan/Swan, $n 5/h, $v 26.6 km/s 00000816 %3Cygni$x%4$s, $r Schwan/Swan, $m, $n 5/h, $v 26.6 km/s 00000801#0802 %3Alpha Capricorni$x%4$s, $d CAP, $m 00000806#0807 %3$k Iota Aquari$x%4$s, $d NIA/SIA, $r Wassermann/Aquarius, $m 00000818 %3Cephei$x%4$s, $r Cepheus/Cepheides, $m, $n 3/h 00000816#1008 %e00000912#00000912 %3Pisci$x%4$s, $d SPI, $r Fische/Pisces, $n 5/h 00000912 %3Pisci$x%4$s, $d SPI, $r Fische/Pisces, $m, $n 5/h 00000825#0826 %3$j Iota Aquari$x%4$s, $d NIA/SIA, $r Wassermann/Aquarius, $m 00000911#0920 %3$k Pisci$x%4$s, $d SPI, $m 00000912#0913 %3Eta Draconi$x%4$s, $d GIA, $m 00000923#0924 %3Gamma Pisci$x%4$s, $d SPI, $m 00001008#1010 %e00001009#00001009 %3Oct. Draconi$x%4$s, $d GIA, $r Drache/Dragon, $n $y, $v 23.1 km/s, $c Giacobini-Zinner 00001009 %3Oct. Draconi$x%4$s, $d GIA, $r Drache/Dragon, $m, $n $y, $v 23.1 km/s, $c Giacobini-Zinner 00001011#1030 %e00001019#00001022 %3Orioni$x%4$s, $d ORI, $r Orion/Orion, $n 15/h, $v 66.5 km/s, $c Halley 00001019#1022 %3Orioni$x%4$s, $d ORI, $r Orion/Orion, $m, $n 15/h, $v 66.5 km/s, $c Halley 00001101#1110 %3Tauri$x%4$s, $d NTA/STA, $r Widder-Stier/Aries-Taurus 00001114#1120 %e00001117#00001118 %3Leoni$x%4$s, $d LEO, $r Löwe/Lion, $n $y, $v 72.0 km/s, $c 1866 I 00001117#1118 %3Leoni$x%4$s, $d LEO, $r Löwe/Lion, $m, $n $y, $v 72.0 km/s, $c 1866 I 00001205#1219 %e00001212#00001214 %3Gemini$x%4$s, $d GEM, $r Zwillinge/Gemini, $n 15/h, $v 36.5 km/h 00001212#1214 %3Gemini$x%4$s, $d GEM, $r Zwillinge/Gemini, $m, $n 15/h, $v 36.5 km/h $t=%e00000113#00000117 %3Delta Cancri$x%4$s, $d DCA, $r Krebs/Cancer 00001214#9999 $t 00000101#0214 $t 00000113#0117 %3Delta Cancri$x%4$s, $d DCA, $r Krebs/Cancer, $m 00001217#1224 %e00001222#00001223 %3Ursi$x%4$s, $d URS 00001222#1223 %3Ursi$x%4$s, $d URS, $m ;;EOF: gcal-4.1/data/wloc.rc0000664000000000000000000000557612353314150011372 00000000000000; Air line distances between geographical locations for Gcal-2.20 or newer ; ; $Id: wloc.rc 0.02 2000/03/23 00:00:02 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; Try this resource file by using the `-QUx' option of Gcal. ; Try `--precise' to display data and times more precise! ; ; Either set your preferred geographical base location here, ; or comment the next two lines and run Gcal with the `--text-variable=ARG' ; option for passing the geographical base location in a flexible manner like: ; ; gcal -f./wloc.rc -QUx --text-var='$a=%3%1New York%2:$b=+404151-0740023' ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; $a=%3%1Münster%2 $b=+5158+00738 ; ; Either set `$f' to `%>9*b0$b/$c km / %b1$b/$c' or to ; `%>9*b*0$b/$c mi / %b1$b/$c' for displaying using statute miles. ; $f=%>9*b0$b/$c km / %b1$b/$c ;$f=%>9*b*0$b/$c mi / %b1$b/$c ; ; The line template. ; $x=0 $f air line distance $a-$l ; ; The locations. ; $l=Anchorage $c=+611305-1495401 $x ; $l=Athens $c=+3758+02343 $x ; $l=Azores $c=+3744-02540 $x ; $l=Bangkok $c=+1345+10035 $x ; $l=Beijing $c=+3955+11620 $x ; $l=Bermuda $c=+3217-06446 $x ; $l=Bombay $c=+1855+07250 $x ; $l=Chicago $c=+415100-0873900 $x ; $l=Dakar $c=+1440-01726 $x ; $l=Denver $c=+394421-1045903 $x ; $l=Helsinki $c=+6010+02458 $x ; $l=Hongkong $c=+2217+11409 $x ; $l=Honolulu $c=+211825-1575130 $x ; $l=Istanbul $c=+4101+02858 $x ; $l=Johannesburg $c=-2615+02800 $x ; $l=Lisbon $c=+3843-00908 $x ; $l=London $c=+512830-0001845 $x ; $l=Madrid $c=+4024-00341 $x ; $l=Managua $c=+1209-08620 $x ; $l=Montreal $c=+4531-07334 $x ; $l=Moscow $c=+5545+03735 $x ; $l=Münster $c=+5158+00738 $x ; $l=Nairobi $c=-0117+03649 $x ; $l=New York $c=+404251-0740023 $x ; $l=Rio de Janeiro $c=-2300-04312 $x ; $l=Samoa $c=-1350-17144 $x ; $l=San Francisco $c=+3747-12230 $x ; $l=Seoul $c=+3733+12658 $x ; $l=Stockholm $c=+5920+01803 $x ; $l=Sydney $c=-3352+15113 $x ; $l=Tehran $c=+3540+05126 $x ; $l=Tokyo $c=+3542+13946 $x ; $l=Wellington $c=-4119+17446 $x gcal-4.1/data/ansipic.rc0000664000000000000000000000570612353520602012050 00000000000000; ansipic.rc, examples how texts provided with ANSI-colors can be implemented ; 0 bat~ \^ \ / \^~ / \ ĝ ĝ / \ ~ / " \ 0 bug~ !!!!!! É~}ÍÍͰ°°°°°Û)~ ­­­­­­ È 0 dog~ O O~ ì ~ ~  0 taj~ _(\^)_ ~ş °ïÚ-żï° ş~ş °ï³²³ï° ş 0 upc~ş³³şŜ³ş³~computer 0 bldg~ÉÑÑÑğ~şŝŝŝş~şŝŝŝş~şŝïŝş 0 eyes~( o) ( o) 0 fish~ à à .:~ş³  à 0 golf~ ³ ĝ~ÛÛħ³~²ħÛġÛ~ ħÛÛß 0 hypo~³ÍÍͳ°.\~úĝ÷>-- 0 jazz~ ~ûĝ~óó 0 ship~ Ċ Ċ Ċ ~ Ċ Ċ Ċ __~ \/  0 tach~ 5 7Ü~3 oÄŬ9~ 1 0  0 tree~ ĝ ĝ~ĝ ĝ ĝ~ \³³/ĝ~ ³³ ~ ïïïïïï  0 cross~ÍÎÍ~ ş  0 devil~\ /~ĝ ĝ~ '` 0 disco~ \ ~ Û /~ >>[0 0 field~ÚÒÒÒÒÒż~ÀÙ 0 flame~ú.ù:|ħ²²ÛÛÛŬ³ 0 italy~ÛÛÛ 0 money~$ œ Fr~  ›  0 movie~ °°°°°°~§§§Ĥ §Ĥ §§ 0 music~ 0 oasis~) .ú ú~ú çççúç~ħħ ) ħħ 0 plane~ ÄÂíÂÄ  0 skier~ ô~ ³ ~ ³ / Û \/~ ³ \\/~ //  0 specs~-o-o-~ ò 0 stars~ù: ù í ú~. ú ú . ĝ.~_ê_______ 0 text2~\\\~ \\\ \ 0 text3~ôôôôôô ~ġġġġġġ  0 tribe~˘\  /  ~ ² / ² \³~ ó ò ó ò ³ 0 vball~ÚêÄÄÄÄÄÄż~³ ê ĝ ê³~şÜÜÜÜÜÜÜş~³ê ê ³~ÀÄÄÄêÄÄÄÙ 0 butler~“ “~ > ~ -- ~ÍÍ 0 cactus~ Ö~ ÔÎ~ħħ½ħħ 0 canada~ŜŬŜŬ 0 castle~  ¸ ~ şßïßïßïßş~Üş°ŝ°²°ŝ°şÜ 0 color1~°ħ²ÛÛ²ħ°~Û²ħ°°ħ²Û 0 color2~°ħ²ÛÛ²ħ°~Û²ħ°°ħ²Û 0 france~ÛÛÛ 0 godzil~  ~  ĝ{~   Íî~  / )_ 0 museum~____ÉËÍÍÍÍËğ____~şŝşŝşş ħħ şşŝşŝş~ßßßßßßßßßßßß 0 panels~ ħÛÛÛÛ~°²²²ÛÛÛÛ~°²²²²  0 puppet~ ~_/Û\_~ ó ò 0 spider~ (o\^o)~óó " òò 0 tennis~ÚêÂÄż~ĈÍĜ͵~ÀÄÁêÙ 0 window~ÉÍËÍğ~ÌÍÎÍı~ÈÍÊÍĵgcal-4.1/data/dates/0000775000000000000000000000000013041164075011247 500000000000000gcal-4.1/data/dates/lives50000664000000000000000000011203312244130561012316 00000000000000# CalenTool V2.2 - nflag=1 range=9,10 - DO NOT REMOVE THIS LINE # $Header: lives5,v 1.1 91/03/07 16:18:59 billr Exp $ # (Sept-Oct) # Famous people's births, deaths and marriages file for calentool # extracted from ProLine's today file and Today in History provided # by Robert Heckendorn at Hewlett-Packard in Fort Collins, Colorado. # converted to calentool format by lwv27%cas.BITNET@CUNYVM.CUNY.Edu. # # There may be duplicates where I don't have a definitive correct # date. billr@saab.cna.tek.com # ** 09 01 99 99 00 Barry Gibb, singer (1946) ** 09 01 99 99 00 Conway Twitty, country singer (1933) ** 09 01 99 99 00 Edgar Rice Burroughs is born (1875) ** 09 01 99 99 00 Gloria Estefan, Miami singer (1957) ** 09 01 99 99 00 James Corbett (Gentleman Jim), pugilist and prize fighter, is born in San Francisco (1866) ** 09 01 99 99 00 Lily Tomlin, comedian-actress (1939) ** 09 01 99 99 00 Louis XIV, king of France, dies (1715) ** 09 01 99 99 00 Molly Pesce Scott, actress; former Miss FL. from Altamonte Sprs. (1957) ** 09 01 99 99 00 Rocky Marciano, boxer, is born (1924) ** 09 01 99 99 00 Seiji Ozawa, conductor (1935) ** 09 01 99 99 00 Yvonne De Carlo, actress (1924) ** 09 02 99 99 00 Hiram Johnson, Calif governor, Progressive. (1866) ** 09 02 99 99 00 Jimmy Connors, tennis brat (1952) ** 09 02 99 99 00 Linda Purl, actress (1955) ** 09 02 99 99 00 Mark Harmon, actor (1951) ** 09 02 99 99 00 Queen Liliuokalani (last queen of Hawaii) (1838) ** 09 02 99 99 00 Thomas Gainsborough, artist, portrait painter, dies (1788) ** 09 03 99 99 00 Ho Chi Minh, North Vietnamese president, dies (1969) ** 09 03 99 99 00 Louis Sullivan, father of modern US architecture. (1856) ** 09 03 99 99 00 Mort Walker, cartoonist and originator of Beetle Bailey, is born (1923) ** 09 03 99 99 00 Oliver Cromwell, the British "politician" and destroyer of English heritage dies (1658) ** 09 03 99 99 00 Valerie Perrine, the actress, is born in Galveston, Texas (1943) ** 09 03 99 99 00 Vince Lombardi, football coach, dies in Washington D.C. (1970) ** 09 04 99 99 00 Anton Bruckner, Wagner disciple (1824) ** 09 04 99 99 00 Craig Claiborne, cooking expert (1920) ** 09 04 99 99 00 Dick York, actor (1928) ** 09 04 99 99 00 Edvard Grieg, the composer, dies (1907) ** 09 04 99 99 00 Mitzi Gaynor, actress (1931) ** 09 04 99 99 00 Paul Harvey, ABC Radio commentator (1918) ** 09 04 99 99 00 Pindar the Greek Poet is born (518 BC) ** 09 04 99 99 00 Tom Watson, golfer (1949) ** 09 05 99 99 00 Bob Newhart, comedian and actor, is born (1929) ** 09 05 99 99 00 Cathy Guisewite, "Cathy" cartoonist (1950) ** 09 05 99 99 00 Crazy Horse, the Sioux Indian chief, died (1877) ** 09 05 99 99 00 Darryl F. Zanuck, Hollywood producer & motion picture executive (1902) ** 09 05 99 99 00 Jesse James, credited with inventing the train robbery, is born (1847) ** 09 05 99 99 00 John Cage, composer (1912) ** 09 05 99 99 00 King Louis XIV of France born (1638) ** 09 05 99 99 00 Raquel Welch, actress and beauty, is born (1940) ** 09 05 99 99 00 William Devane, actor (1939) ** 09 06 99 99 00 Ernest Tubb, country music star, dies (1984) ** 09 06 99 99 00 James Melville Gilliss, founded Naval Observatory in Washington (1811) ** 09 06 99 99 00 Jane Curtin, comedian-actress (1947) ** 09 06 99 99 00 John Dalton, developed the atomic theory of matter (1766) ** 09 06 99 99 00 Lafayette, French hero of the American revolution, is born (1757) ** 09 06 99 99 00 President William McKinley shot. He dies 9 days later. (1901) ** 09 06 99 99 00 Roger Waters born (Surrey, England, 1944) ** 09 06 99 99 00 Swoosie Kurtz, actress (1944) ** 09 07 99 99 00 Buddy Holly, rock singer, is born Charles Hardin Holley in Lubbock, Texas (1936) ** 09 07 99 99 00 Catherine Parr, widow of Henry VIII, dies (1548) ** 09 07 99 99 00 Dr. Michael DeBakey, heart surgeon (1908) ** 09 07 99 99 00 Elia Kazan, producer-director (1909) ** 09 07 99 99 00 Elizabeth I born of Anne Boleyn and Henry VIII at Greenwich (1533) ** 09 07 99 99 00 Grandma Moses, American Primitive painter, is born (1860) ** 09 07 99 99 00 James Fenimore Cooper born in Burlington, NJ (1789) ** 09 07 99 99 00 James Van Allen, discovered Van Allen radiation belts. (1914) ** 09 07 99 99 00 John Philip Law, actor (1937) ** 09 07 99 99 00 Julie Kavner, actress (1951) ** 09 07 99 99 00 Keith Moon (The Who) dies of drug overdose (London, 1978) ** 09 07 99 99 00 Leonard Euler, the mathematician, dies (1799) ** 09 07 99 99 00 Queen Elizabeth I of England born (1533) ** 09 07 99 99 00 Susan Blakely, actress (1948) ** 09 08 99 99 00 Ann Beattie, author (1947) ** 09 08 99 99 00 Anton Dvorak born in Nelahozeves, Czechoslovakia (1841) ** 09 08 99 99 00 Hillary Brooke, actress (1914) ** 09 08 99 99 00 King Richard I of England born (1157) ** 09 08 99 99 00 Peter Sellers, actor, born in Southsea, England (1925) ** 09 08 99 99 00 Ron "Pigpen" McKernan (GD) born (San Bruno, CA, 1945) ** 09 08 99 99 00 Samuel Pierce Jr., former sec. of housing and urban development (1922) ** 09 08 99 99 00 Sid Caesar, comedian (1922) ** 09 09 99 99 00 Angela Cartwright, actress (1952) ** 09 09 99 99 00 Billy Preston, singer (1946) ** 09 09 99 99 00 Chinese Communist Party Chairman Mao Tse-Tung dies at age of 82 (1976) ** 09 09 99 99 00 Cliff Robertson, actor (1925) ** 09 09 99 99 00 Colonel Harlan (Kentucky Fried) Sanders is born (1890) ** 09 09 99 99 00 Harris Rosen, hotelier (1951) ** 09 09 99 99 00 Henri de Toulouse-Lautrec, artist, dies (1901) ** 09 09 99 99 00 Jane Greer, actress (1924) ** 09 09 99 99 00 Joe Theismann, football commentator (1949) ** 09 09 99 99 00 Kristy McNichol, actress (1962) ** 09 09 99 99 00 Mary Hunter Austin, American author and feminist, is born (1868) ** 09 09 99 99 00 Michael Keaton, actor-comedian (1951) ** 09 09 99 99 00 Tom Wopat, actor (1951) ** 09 10 99 99 00 Amy Irving, actress (1953) ** 09 10 99 99 00 Arnold Palmer, golfer and Bay Hill resident (1929) ** 09 10 99 99 00 Charles Kuralt, "On the road..." for CBS. (1934) ** 09 10 99 99 00 Greg Mullavey, actor (1939) ** 09 10 99 99 00 Hilda (H.D.) Doolittle, American poet, is born (1886) ** 09 10 99 99 00 Jose Feliciano, singer (1945) ** 09 10 99 99 00 Judy Geeson, actress (1948) ** 09 10 99 99 00 Robert Wise, movie director (1914) ** 09 10 99 99 00 William the Conqueror dies at 61 from an earlier fall from his horse. He was too obese to fit in his coffin and in forcing him to fit the monks accidentally ruptured him giving off a terrible smell that drove mourners away. (1087) ** 09 11 99 99 00 Bear Bryant, Crimson Tide football coach, (1913) ** 09 11 99 99 00 Brian De Palma, movie director (1940) ** 09 11 99 99 00 D.H. Lawrence, Taos pioneer (1885) ** 09 11 99 99 00 Earl Holliman, actor (1928) ** 09 11 99 99 00 James Jeans born (1877) ** 09 11 99 99 00 Ken Kesey, American author, is born (1935) ** 09 11 99 99 00 O. Henry (William Sidney Porter), the writer, is born (1862) ** 09 11 99 99 00 Robert Service, Canadian Poet, dies (1958) ** 09 11 99 99 00 The assassination of President Allende of Chile during a military coup (1973) ** 09 11 99 99 00 Tom Landry, former Dallas Cowboys football coach (1924) ** 09 12 99 99 00 Alfred Abraham Knopf, American publisher, is born (1892) ** 09 12 99 99 00 Barry White, singer (1944) ** 09 12 99 99 00 Elizabeth Barrett secretly weds Robert Browning at St. Marylebone Parish Church (1846) ** 09 12 99 99 00 H.L. (Henry Louis) Mencken, American editor and critic, is born (1880) ** 09 12 99 99 00 Jesse Owens, Gold medal winner at 1936 Olympic games in Berlin, born (1913) ** 09 12 99 99 00 Linda Gray, actress (1940) ** 09 12 99 99 00 Maria Muldaur, singer (1943) ** 09 12 99 99 00 Maurice Chevalier, thanked heaven for little girls. (1888) ** 09 12 99 99 00 Richard Jordan Gatling, US inventor of hand-cranked machine gun (1818) ** 09 13 99 99 00 Jaqueline Bisset, actress, is born in Weybridge England (1946) ** 09 13 99 99 00 Mel Torme, singer (1925) ** 09 13 99 99 00 Oliver Evans, pioneered the high-pressure steam engine. (1755) ** 09 13 99 99 00 Walter Reed, American physician and army surgeon, is born (1851) ** 09 14 99 99 00 A.P. Giannini marries Clorinda Cuneo. (1892) ** 09 14 99 99 00 Charles Dana Gibson, illustrator, drew the "Gibson Girl" (1867) ** 09 14 99 99 00 Clayton Moore, who played the Lone Ranger, is born (1914) ** 09 14 99 99 00 Hughes Rudd, TV newscaster (1921) ** 09 14 99 99 00 Isadora Duncan, pioneer of modern dance, dies when her scarf becomes entangled in a wheel of her sports car (1927) ** 09 14 99 99 00 Joey Heatherton, actress and singer, is born (1944) ** 09 14 99 99 00 Lao Tzu, Chinese philosopher, is born (604 BC) ** 09 14 99 99 00 Leonard Bernstein, conductor and composer, dies (1990) ** 09 14 99 99 00 Margaret Sanger, feminist. (1883) ** 09 14 99 99 00 Nicol Williamson, actor, is born (1938) ** 09 14 99 99 00 President William McKinley dies (1901) ** 09 14 99 99 00 Zoe Caldwell, actress (1933) ** 09 15 99 99 00 Dame Agatha Christie, author, born in Torquay, England (1890) ** 09 15 99 99 00 Dan Marino, Miami Dolphins quarterback (1961) ** 09 15 99 99 00 Ettore Arco Isidoro Bugatti, car builder (1881) ** 09 15 99 99 00 Hank Williams, country-western music singer, is born (1923) ** 09 15 99 99 00 Jackie Cooper, actor (1922) ** 09 15 99 99 00 James Fenimore Cooper, 1st major American novelist. (1789) ** 09 15 99 99 00 Jean Renoir, son of August Renoir and film director, is born (1894) ** 09 15 99 99 00 Prince Harry is born to Prince Charles and Lady Diana (1984) ** 09 15 99 99 00 William Howard Taft, 27th President (1909-1913) (1857) ** 09 16 99 99 00 Allen Funt born in Brooklyn, NY (1914) ** 09 16 99 99 00 B. B. King, blues singer, born (Itta Bena, MS, 1925) ** 09 16 99 99 00 Charles S. Crocker, of Southern Pacific fame. (1822) ** 09 16 99 99 00 James Jeans die (1946) ** 09 16 99 99 00 Lauren Bacall, actress, is born in New York City (1924) ** 09 16 99 99 00 Peter Falk, actor (1927) ** 09 16 99 99 00 Tomas de Torquemada, Dominican monk largely responsible for the Spanish Inquisition, is born (1498) ** 09 17 99 99 00 Anne Bancroft, actress (1931) ** 09 17 99 99 00 Baron Frederick von Steuben, made the Continental Army winners. (1730) ** 09 17 99 99 00 Dorothy Loudon, actress (1933) ** 09 17 99 99 00 Jeff NacNelly, cartoonist (1947) ** 09 17 99 99 00 John Ritter, actor (1948) ** 09 17 99 99 00 Ken Kesey, author (1935) ** 09 17 99 99 00 Paul Benedict, actor (1938) ** 09 17 99 99 00 Roddy McDowall, actor (1928) ** 09 17 99 99 00 Warren Burger, former U.S. Chief Justice (1907) ** 09 17 99 99 00 William Carlos Williams, American physician and poet, is born (1883) ** 09 18 99 99 00 Elmer Maytag born (1883) ** 09 18 99 99 00 Frankie Avalon, singer (1940) ** 09 18 99 99 00 Greta Garbo, renowned World War II pinup, born (1905) ** 09 18 99 99 00 Jack Warden, actor (1920) ** 09 18 99 99 00 Jimi Hendrix, rock guitarist, dies of drug overdose (1970) ** 09 18 99 99 00 Peter Sellers, the actor, is born (1925) ** 09 18 99 99 00 Rock star Jimi Hendrix died in London at age 27. (1970) ** 09 18 99 99 00 Rossano Brazzi, actor (1916) ** 09 18 99 99 00 Ryne Sandberg, baseball player (1959) ** 09 18 99 99 00 Samuel Johnson, the writer, is born (1709) ** 09 19 99 99 00 Elizabeth Barrett Browning and Robert Browning run off to Paris together (1846) ** 09 19 99 99 00 James Garfield, 20th president, finally dies of wounds from an assassination attempt (Baltimore, 1881) ** 09 19 99 99 00 Joan Lunden, TV personality (1950) ** 09 19 99 99 00 Twiggy, actress (1949) ** 09 19 99 99 00 William Golding, author (1911) ** 09 20 99 99 00 Anne Meara, actress-comedian (1929) ** 09 20 99 99 00 Dr. Joyce Brothers, Psychologist (1928) ** 09 20 99 99 00 Ferdinand Joseph La Menthe (Jelly Roll) Morton, American jazz musician and composer, is born (1885) ** 09 20 99 99 00 Gogi Grant, singer (1924) ** 09 20 99 99 00 Guy LaFleur, former hockey player (1951) ** 09 20 99 99 00 Jim Croce, singer, dies in plane crash (1973) ** 09 20 99 99 00 Sophia Loren, actress, is born in Rome, Italy (1934) ** 09 20 99 99 00 Upton (Beall) Sinclair born (1878) ** 09 21 99 99 00 Chief Joseph of the Nez Perce dies in exile (1904) ** 09 21 99 99 00 Gustav Holst, composer of 'The Planets' (1874) ** 09 21 99 99 00 H. G. (Herbert George) Wells born in Bromley, England (1866) ** 09 21 99 99 00 John Loudon McAdam, created macadam road surface (asphalt) (1756) ** 09 21 99 99 00 Larry Hagman, actor (1959) ** 09 21 99 99 00 Leonard Cohen born (Montreal, 1934) ** 09 21 99 99 00 Louis Joliet, explorer and discoverer of the Mississippi River, is born (1645) ** 09 21 99 99 00 Stephen King, author (1947) ** 09 22 99 99 00 Captain Nathan Hale is captured by the British on Long Island. He is denied a clergyman and hung. His last words were, "I only regret that I have but one life to give for my country." (1776) ** 09 22 99 99 00 Erich von Stroheim, early film director (1885) ** 09 22 99 99 00 Irving Berlin, songwriter, dies at the age of 101 (1989) ** 09 22 99 99 00 Joan Jett, singer-musician (1960) ** 09 22 99 99 00 Martha Scott, actress (1914) ** 09 22 99 99 00 Michael Faraday, discovered principle of the electric motor. (1791) ** 09 22 99 99 00 Tommy Lasorda, baseball manager (1927) ** 09 23 99 99 00 Augustus (Gaius Octavius) Caesar born (Rome, 63 BC) ** 09 23 99 99 00 Bruce "The Boss" Springsteen, singer, born (Freehold, NJ, 1949) ** 09 23 99 99 00 Euripides born in Salamis, Greece (480 BC) ** 09 23 99 99 00 John Coltrane, saxophonist (1926) ** 09 23 99 99 00 John Wesley Powell, the explorer, dies (1902) ** 09 23 99 99 00 Julio Iglesias, singer (1943) ** 09 23 99 99 00 Mary Kay Place, actress-singer (1947) ** 09 23 99 99 00 Mickey Rooney, actor (1920) ** 09 23 99 99 00 Ray Charles (1930) ** 09 23 99 99 00 William Stewart Halsted, established 1st surgical school in US (1852) ** 09 24 99 99 00 Anthony Newley, actor-singer (1931) ** 09 24 99 99 00 F. Scott Fitzgerald, author, is born (1896) ** 09 24 99 99 00 Georges Claude, inventor of the neon light. (1870) ** 09 24 99 99 00 Horace Walpole, the English novelist, is born (1717) ** 09 24 99 99 00 Jim Henson, creator of the Muppets, is born in Greenville, Mississippi (1936) ** 09 24 99 99 00 Jim McKay, sportscaster, is born (1921) ** 09 24 99 99 00 Paracelsus, the alchemist and physician, dies in Salzburg, Austria (1541) ** 09 24 99 99 00 Shelia MacRae, actress (1924) ** 09 25 99 99 00 Barbara Walters, ABC news correspondent (1931) ** 09 25 99 99 00 Christopher Reeve, actor (1952) ** 09 25 99 99 00 Emily Dickinson born (1830) ** 09 25 99 99 00 Heather Locklear, actress (1961) ** 09 25 99 99 00 John Bonham (Led Zeppelin) dies of alcohol poisoning (1980) ** 09 25 99 99 00 Mark Rothko, the American Painter, is born in Dvinsk, Russia (1903) ** 09 25 99 99 00 Michael Douglas, actor-producer (1944) ** 09 25 99 99 00 Nicolas-Joseph Cugnot, designed & built 1st automobile. (1725) ** 09 25 99 99 00 Samuel Butler, poet and author, dies (1680) ** 09 25 99 99 00 William Faulkner, the author, is born (1897) ** 09 26 99 99 00 Edgar Degas, French artist, dies (1917) ** 09 26 99 99 00 George Gershwin, composer, born in Brooklyn, NY (1898) ** 09 26 99 99 00 J.J. Parrish III, citrus baron (1953) ** 09 26 99 99 00 John Chapman (Johnny Appleseed) born (1774) ** 09 26 99 99 00 Julie London, actress (1926) ** 09 26 99 99 00 Kent McCord, actor (1942) ** 09 26 99 99 00 Lynn Anderson, singer (1947) ** 09 26 99 99 00 Melissa Sue Anderson, actress (1962) ** 09 26 99 99 00 Olivia Newton-John, singer, is born in Cambridge England (1948) ** 09 26 99 99 00 Patrick O'Neal, actor (1927) ** 09 26 99 99 00 T.S. (Thomas Stearns) Eliot born in St. Louis (1888) ** 09 27 99 99 00 Arthur Penn, movie director (1922) ** 09 27 99 99 00 Barbara Howar, author (1934) ** 09 27 99 99 00 Clara Bow, silent-film actress, dies (1965) ** 09 27 99 99 00 Dick Schaap, sportscaster (1934) ** 09 27 99 99 00 Edward II is assassinated (1327) ** 09 27 99 99 00 Greg Morris, actor (1934) ** 09 27 99 99 00 Kathleen Nolan, actress (1933) ** 09 27 99 99 00 Meat Loaf, singer (1947) ** 09 27 99 99 00 Mike Schmidt, former baseball player (1949) ** 09 27 99 99 00 Sada Thompson, actress (1929) ** 09 27 99 99 00 Samuel Adams, American patriot, is born (1722) ** 09 27 99 99 00 Shaun Cassidy, singer (1958) ** 09 27 99 99 00 Thomas Nast, cartoonist, born (1840) ** 09 27 99 99 00 William Conrad, actor (1920) ** 09 28 99 99 00 Al Capp, cartoonist, (1909) ** 09 28 99 99 00 Brigitte Bardot, French beauty and actress, is born (1934) ** 09 28 99 99 00 Ed Sullivan (the great stone face), TV personality, is born (1902) ** 09 28 99 99 00 Edwin Hubble dies (1953) ** 09 28 99 99 00 Ferdinand Marcos, Phillippine hero and dictator, dies (1989) ** 09 28 99 99 00 Louis Pasteur, French scientist, dies (1895) ** 09 28 99 99 00 Marcello Mastroianni, actor (1924) ** 09 28 99 99 00 Michelangelo Buanarroti born (Caprese, Italy, 1573) ** 09 28 99 99 00 Pompey (Gnaeus Pompeius Magnus) born in Rome (106 BC) ** 09 28 99 99 00 Seymour Cray, computer genius, born (1925) ** 09 28 99 99 00 William S. Paley, CBS founder (1901) ** 09 28 99 99 00 William Windom, actor, is born (1923) ** 09 29 99 99 00 Bryant Gumbel, "Today" show host (1948) ** 09 29 99 99 00 Casey Stengel, baseball manager, dies (1975) ** 09 29 99 99 00 Enrico Fermi, physicist, is born in Rome (1901) ** 09 29 99 99 00 Gene Autry, cowboy and actor,is born (1911) ** 09 29 99 99 00 Greer Garson, actress, is born (1908) ** 09 29 99 99 00 Horatio Nelson, British naval commander, is born in Burnham Thorpe (1758) ** 09 29 99 99 00 Lech Walesa, founder of the Polish Solidarity movement, is born (1943) ** 09 29 99 99 00 Madeline Kahn, actress (1942) ** 09 29 99 99 00 Pompey (Gnaeus Pompeius Magnus), the Great, died in Egypt (48 BC) ** 09 29 99 99 00 Pope John Paul I was found dead in his Vatican apartment. (1978) ** 09 29 99 99 00 Winslow Homer, American painter, dies in Maine (1910) ** 09 30 99 99 00 Angie Dickinson, actress, was born (1931) ** 09 30 99 99 00 Deborah Kerr, actress (1921) ** 09 30 99 99 00 James Dean, film actor, dies in two car crash in California (1955) ** 09 30 99 99 00 Lester Maddox, former Georgia Gov. (1915) ** 09 30 99 99 00 Marilyn McCoo, singer (1943) ** 09 30 99 99 00 Truman Capote, a short short story writer. (1924) ** 10 01 99 99 00 Bob Opsahl, WFTV-Channel 9 news anchor, Orlando, FL. (1947) ** 10 01 99 99 00 Jimmy Carter, 39th President (1976-1980) (1924) ** 10 01 99 99 00 Julie Andrews, singer and actress, is born (1935) ** 10 01 99 99 00 Vladimir Horowitz, pianist, is born (1904) ** 10 01 99 99 00 William Edward Boeing, founded aircraft company. (1881) ** 10 02 99 99 00 Aristotle dies of indigestion (322 BC) ** 10 02 99 99 00 Don McLean, singer-songwriter (1945) ** 10 02 99 99 00 Ferdinand Foch, believed to be the leader responsible for Allies winning World War I (1851) ** 10 02 99 99 00 Groucho Marx, comedian, is born (1895) ** 10 02 99 99 00 Mohandas K. (Mahatma) Gandhi born at Porbandar, Kathiawad, India (1869) ** 10 02 99 99 00 Richard III is born in Fotheringhay Castle in Northamptonshire (1452) ** 10 02 99 99 00 Rock Hudson, actor, dies of complications of AIDS (1985) ** 10 02 99 99 00 Samuel Adams, American patriot, dies (1803) ** 10 02 99 99 00 Sting, singer-actor (1951) ** 10 03 99 99 00 Chubby Checker, rock 'n' roller (1941) ** 10 03 99 99 00 Dave Winfield, All-Star outfielder (1951) ** 10 03 99 99 00 Gore Vidal, writer. (1925) ** 10 03 99 99 00 John Gorrie, invented cold-air process of refrigeration (1803) ** 10 03 99 99 00 Lindsey Buckingham, singer (1947) ** 10 03 99 99 00 Madlyn Rhue, actress (1934) ** 10 03 99 99 00 St. Francis of Assisi, founder of the Franciscan order, dies in a small chapel at Portiuncula (1226) ** 10 03 99 99 00 Thomas Clayton Wolfe, American novelist and playwright, was born (1900) ** 10 03 99 99 00 Townsend Harris, 1st Western consul to reside in Japan (1804) ** 10 03 99 99 00 Woody Guthrie, folk singer, dies (1967) ** 10 04 99 99 00 Armand Assante, actor (1949) ** 10 04 99 99 00 Buster Keaton, film comedian, is born (1895) ** 10 04 99 99 00 Charlton Heston, actor (1923) ** 10 04 99 99 00 Clifton Davis, actor (1945) ** 10 04 99 99 00 Frederic Remington, American Western painter, sculptor and author, is born (1861) ** 10 04 99 99 00 Graham Chapman, of Monty Python's Flying Circus, dies of cancer (1989) ** 10 04 99 99 00 Jan Murray, comedian (1917) ** 10 04 99 99 00 Janis Joplin dies of heroin overdose (Hollywood, 1970) ** 10 04 99 99 00 John V. Atanasoff born (1903) ** 10 04 99 99 00 Max Planck, German physicist and creator of Quantum Physics, dies (1947) ** 10 04 99 99 00 Rembrandt Van Rijn, the Dutch painter, dies (1669) ** 10 04 99 99 00 Rutherford B. Hayes, 19th President (1877-1881) (1822) ** 10 04 99 99 00 St. Francis of Assisi (even though he died the day before) (1182-1226) ** 10 04 99 99 00 Susan Sarandon, actress (1946) ** 10 05 99 99 00 Bill Dana, comedian (1924) ** 10 05 99 99 00 Bob Geldof, rock singer and famine-relief organizer (1954) ** 10 05 99 99 00 Chester A. Arthur, 21st President (1881-1884) (1829) ** 10 05 99 99 00 Donald Pleasence, actor (1919) ** 10 05 99 99 00 Glynis Johns, actress (1923) ** 10 05 99 99 00 Karen Allen, actress (1951) ** 10 05 99 99 00 Pablo Picasso born (Malaga, Spain, 1881) ** 10 05 99 99 00 Ray Kroc, founder of McDonald's fast food restaurants, is born (1902) ** 10 05 99 99 00 Robert Hutchings Goddard, father of modern rocketry (1882) ** 10 05 99 99 00 Steve Miller, singer-musician, is born in Dallas (1943) ** 10 05 99 99 00 Tecumseh, Shawnee Indian chief, is killed (1813) ** 10 06 99 99 00 Alfred Lord Tennyson, poet, dies (1892) ** 10 06 99 99 00 Britt Ekland, actress (1942) ** 10 06 99 99 00 Egyptian President Anwar Sadat was assassinated in Cairo (1981) ** 10 06 99 99 00 George Westinghouse, responsible for alternating current in US. (1846) ** 10 06 99 99 00 Hafez Assad, president of Syria (1930) ** 10 06 99 99 00 Jenny Lind, nightengale (1820) ** 10 06 99 99 00 John W. Griffiths, the developer of the Clipper ship, is born (1809) ** 10 06 99 99 00 Reginald Aubrey Fessenden, broadcast 1st program of voice & music (1866) ** 10 06 99 99 00 Shana Alexander, author-journalist (1925) ** 10 06 99 99 00 St. Faith, who was a virgin, and several of her companions were martyred (4C) ** 10 06 99 99 00 William Tyndale, a Protestant theologian, is burned at the stake (1536) ** 10 07 99 99 00 Al Martino, singer (1927) ** 10 07 99 99 00 Desmond Tutu, South African Archbishop (1931) ** 10 07 99 99 00 Edgar Allen Poe, mystery and horror writer, dies (1849) ** 10 07 99 99 00 John Cougar Mellencamp, singer (1951) ** 10 07 99 99 00 June Allyson, actress (1917) ** 10 07 99 99 00 Niels Bohr, physicist & Nobel laureate, expanded quantum physics. (1885) ** 10 07 99 99 00 Yo-Yo Ma, cellist (1955) ** 10 07 99 99 00 the German painter Hans Holbein is born (1543) ** 10 08 99 99 00 Chevy Chase, comedian-actor (1940) ** 10 08 99 99 00 David Carradine, actor (1940) ** 10 08 99 99 00 Ejnar Hertzsprung born (1873) ** 10 08 99 99 00 J. Frank Duryea, with his brother, invented 1st auto built & operated in the US (1869) ** 10 08 99 99 00 Johnny Ramone, rock singer (1951) ** 10 08 99 99 00 Reverend Jesse Jackson (1941) ** 10 08 99 99 00 Rona Barrett, Entertainment reporter (1936) ** 10 08 99 99 00 Stephanie Zimbalist, actress (1956) ** 10 09 99 99 00 Charles Millican, founding Univ. of Central Fl. President (1916) ** 10 09 99 99 00 Dr. Ernesto (Che) Guevara is executed (1967) ** 10 09 99 99 00 Jackson Browne, singer (1949) ** 10 09 99 99 00 John Alec Entwistle born (London, England, 1944) ** 10 09 99 99 00 John Lennon, singer songwriter and member of the rock band "The Beatles", born in Liverpool, England (1940) ** 10 09 99 99 00 Peter Tosh born Winston Hubert MacIntosh (West Morland, Jamaica, 1944) ** 10 09 99 99 00 Steven Lew, Universal Studios Hollywood president and resident of Winter Park, Fl. (1940) ** 10 10 99 99 00 Ben Vereen, entertainer (1946) ** 10 10 99 99 00 Benjamin West, painter. (1738) ** 10 10 99 99 00 David Lee Roth, singer (1955) ** 10 10 99 99 00 Giuseppe Verdi, composer of operas. (1813) ** 10 10 99 99 00 Glen Rinker, WCPX-Channel 6 news anchor, Orlando, FL. (1933) ** 10 10 99 99 00 Harold Pinter, playwright (1930) ** 10 10 99 99 00 Helen Hayes, actress, is born in Washington D.C. (1900) ** 10 10 99 99 00 James Clavell, author (1924) ** 10 10 99 99 00 John Prine born (Maywood, IL, 1946) ** 10 10 99 99 00 Miguel de Cervantes Saavedra, Spanish author of Don Quixote, is born (1547) ** 10 10 99 99 00 Orson Welles, radio and movie star, dies (1985) ** 10 10 99 99 00 Yul Brynner, the King in "The King and I" on stage and screen, dies of lung cancer (1985) ** 10 11 99 99 00 Daryl Hill, singer-musician (1948) ** 10 11 99 99 00 Eleanor Roosevelt, former First Lady, is born (1884) ** 10 11 99 99 00 Henry John Heinz, founded a prepared-foods company (1844) ** 10 11 99 99 00 Jerome Robbins, choreographer (1918) ** 10 12 99 99 00 Chris Wallace, reporter (1948) ** 10 12 99 99 00 Dick Gregory, activist-comedian (1932) ** 10 12 99 99 00 Edith Cavell, English nurse, is executed by Germans in occupied Belgium during World War I (1915) ** 10 12 99 99 00 Kirk Cameron, actor (1970) ** 10 12 99 99 00 Luciano Pavarotti, opera singer, is born (1935) ** 10 12 99 99 00 Sid Fernandez, baseball player (1962) ** 10 12 99 99 00 Susan Anton, actress and singer, is born (1950) ** 10 12 99 99 00 Tony Kubek, sportscaster (1935) ** 10 13 99 99 00 Frank D. Gilroy, playwright (1925) ** 10 13 99 99 00 Horace H. Hayden, cofounder of 1st dental college (1769) ** 10 13 99 99 00 Lenny Bruce born (New York City, 1925) ** 10 13 99 99 00 Margaret Thatcher, Former Britsh Prime Minister, is born (1925) ** 10 13 99 99 00 Marie Osmond, singer, is born (1959) ** 10 13 99 99 00 Paul Simon, singer, songwriter, musician, is born (1941) ** 10 13 99 99 00 Publius Vergilius Maro (Virgil) born (near Mantua, Italy, 70 BC) ** 10 13 99 99 00 Roman Emperor Claudius dies (54) ** 10 13 99 99 00 Tycho Brahe dies (1601) ** 10 13 99 99 00 Yves Montand, actor-singer (1921) ** 10 14 99 99 00 C. Everett Koop, former Surgeon General (1916) ** 10 14 99 99 00 Dwight D. Eisenhower, 34th President (1953-1961) (1890) ** 10 14 99 99 00 Elwood Haynes, auto pioneer, built one of the first US autos (1857) ** 10 14 99 99 00 King Harold, the last Saxon king of England is killed at the Battle of Hastings (1066) ** 10 14 99 99 00 Lillian Gish, actress, is born (1896) ** 10 14 99 99 00 Ralph Lauren, fashion designer (1939) ** 10 14 99 99 00 Roger Moore, actor (1927) ** 10 14 99 99 00 Singer Bing Crosby died of a heart attack after a round of golf at a club outside Madrid, Spain (1977) ** 10 14 99 99 00 William Penn born in London (1644) ** 10 14 99 99 00 e.e. cummings, poet, is born (1894) ** 10 15 99 99 00 Asaph Hall, astronomer, discovered the moons of Mars, Phobos & Deimos (1829) ** 10 15 99 99 00 Britain's Duchess of York (formerly Sarah Ferguson) (1959) ** 10 15 99 99 00 C. P. Snow, British novelist and scientist. (1905) ** 10 15 99 99 00 Friedrich Wilhelm Nietzsche, German philologist and philosopher, is born (1844) ** 10 15 99 99 00 Herman Goering commits suicide (1946) ** 10 15 99 99 00 Jacqueline Picasso, wife of the painter, found dead of gunshot wound. Suicide is the cause (1986) ** 10 15 99 99 00 John L. Sullivan, famed pugelist. (1858) ** 10 15 99 99 00 Lee Iacocca, Chrysler chairman (1924) ** 10 15 99 99 00 Mario Puzo, author (1920) ** 10 15 99 99 00 Mata Hari dies by firing squad outside Paris (1917) ** 10 15 99 99 00 Pelham Grenville Wodehouse, playwright, is born (1881) ** 10 15 99 99 00 Richard Carpenter, singer and songwriter, is born in New Haven Conn. (1946) ** 10 16 99 99 00 Albrecht von Haller, the father of experimental physiology (1708) ** 10 16 99 99 00 Angela Lansbury, actress (1925) ** 10 16 99 99 00 Bob Weir born Robert Hall (San Francisco, 1947) ** 10 16 99 99 00 Charles W. Colson, former presidential adviser (1931) ** 10 16 99 99 00 Eugene O'Neill, playwright, is born (1888) ** 10 16 99 99 00 Margaret Sanger opened the first birth control clinic in N.Y. (1916) ** 10 16 99 99 00 Marie Antoinette is guillotined almost nine months after Louis XVI (1793) ** 10 16 99 99 00 Noah Webster, author of dictionary, is born (1758) ** 10 16 99 99 00 Oscar Wilde (Fingal O'Flahertie Wills), author, born in Dublin (1854) ** 10 16 99 99 00 Paul Strand, photographer (1890) ** 10 16 99 99 00 Suzanne Somers, actress (1946) ** 10 16 99 99 00 William Orville Douglas, Supreme Court Justice, is born (1898) ** 10 17 99 99 00 Akbar the Great, Muslim ruler of Northern India, dies (1605) ** 10 17 99 99 00 Arthur Miller, American playwright, is born (1915) ** 10 17 99 99 00 Evel Knievel, daredevil (1938) ** 10 17 99 99 00 Frederic Francois Chopin, Polish master of short piano composition, dies of tuberculosis (1849) ** 10 17 99 99 00 George Wendt, actor (1948) ** 10 17 99 99 00 Jean Arthur, actress (1908) ** 10 17 99 99 00 Jimmy Breslin, columnist (1930) ** 10 17 99 99 00 Richard Mentor Johnson born, 9th V.P. of U.S. (1780) ** 10 17 99 99 00 Rita Hayworth, actress and beauty, is born (1918) ** 10 17 99 99 00 Tom Poston, actor, is born (1927) ** 10 18 99 99 00 Charles Babbage, inventor, dies (1871) ** 10 18 99 99 00 Chuck Berry, rock 'n' roll star, born in San Jose, CA (1926) ** 10 18 99 99 00 George C. Scott, actor (1927) ** 10 18 99 99 00 Mike Ditka, football coach (1939) ** 10 18 99 99 00 Pam Dawber, actress (1951) ** 10 18 99 99 00 Pierre Choderlos de Laclos, artillery officer and writer of "Les Liaisons dangereuses", is born (1741) ** 10 18 99 99 00 Pierre Trudeau, Canadien (1919) ** 10 18 99 99 00 St Luke is crucified on an olive tree (63) ** 10 18 99 99 00 Thomas Alva Edison, inventor, dies (1931) ** 10 18 99 99 00 Walt Kelly (Walter Crawford Kelly), American cartoonist and illustrator (Pogo author), dies (1973) ** 10 18 99 99 00 Wynton Marsalis, jazz trumpeter (1961) ** 10 19 99 99 00 Edna St. Vincent Millay, poet, dies (1950) ** 10 19 99 99 00 Ernest, Lord Rutherford, physicist, dies (1937) ** 10 19 99 99 00 Jack Anderson, columnist (1922) ** 10 19 99 99 00 Jeannie C. Riley, singer (1945) ** 10 19 99 99 00 John Le Carre, author (1931) ** 10 19 99 99 00 John Lithgow, actor (1945) ** 10 19 99 99 00 King John of England dies (1216) ** 10 19 99 99 00 LaWanda Page, actress (1920) ** 10 19 99 99 00 Robert Reed, actor (1932) ** 10 19 99 99 00 Thomas Browne, philosopher, is born (1605) ** 10 19 99 99 00 Thomas Browne, philosopher, dies (1682) ** 10 20 99 99 00 Arlene Francis, radio-television personality (1908) ** 10 20 99 99 00 Art Buchwald, columnist (1925) ** 10 20 99 99 00 Austin Flint, 19th century pioneer in US heart research (1812) ** 10 20 99 99 00 Charles Ives, composer (1874) ** 10 20 99 99 00 Christopher Wren, the English architect, is born (1632) ** 10 20 99 99 00 Former first lady Jacqueline Kennedy married Aristotle Onassis. (1968) ** 10 20 99 99 00 Jean Nicholas Arthur Rimbaud, French poet, is born (1854) ** 10 20 99 99 00 Jerry Orbach, actor (1935) ** 10 20 99 99 00 Keith Hernandez, All-star first baseman (1953) ** 10 20 99 99 00 Mickey Mantle, baseball Hall-of Famer (1931) ** 10 20 99 99 00 Sir Christopher Wren, astronomer, greatest English architect of his time, built many of the cathedrals in London (1632) ** 10 20 99 99 00 Sir Richard Burton, English explorer, writer, discoverer of Lake Tanganyika, dies (1890) ** 10 20 99 99 00 Three members of Lynyrd Skynyrd die in plane crash (1977) ** 10 20 99 99 00 William Christopher, actor (1932) ** 10 21 99 99 00 Alfred Bernhard Nobel, created dynamite and Peace Prizes, born in Stockholm (1833) ** 10 21 99 99 00 Carrie Fisher, actress (1956) ** 10 21 99 99 00 Dizzy Gillespie, jazz trumpeter, is born (1917) ** 10 21 99 99 00 Horatio Nelson dies (1805) ** 10 21 99 99 00 Jack Kerouac, American "beat" poet, dies (1969) ** 10 21 99 99 00 Manfred Mann, rock singer (1940) ** 10 21 99 99 00 Samuel Taylor Coleridge, English poet, critic and theologian, is born (1772) ** 10 21 99 99 00 Sir Georg Solti, conductor (1912) ** 10 22 99 99 00 Annette Funicello, actress and Mouseketeer, is born in Utica NY (1942) ** 10 22 99 99 00 Catherine Deneuve, actress (1943) ** 10 22 99 99 00 Christopher Lloyd, actor (1938) ** 10 22 99 99 00 Derek Jacobi, actor (1938) ** 10 22 99 99 00 Franz Liszt, composer and pianist, born (1811) ** 10 22 99 99 00 Jeff Goldblum, actor (1952) ** 10 22 99 99 00 Joan Fontaine, actress (1917) ** 10 22 99 99 00 Pablo Casals, cellist, dies (1973) ** 10 22 99 99 00 Sarah Bernhardt, "the Divine Sarah" French actress, is born Rosine Bernard, in Paris (1844) ** 10 22 99 99 00 Tony Roberts, actor (1939) ** 10 23 99 99 00 "Weird Al" Yankovic, parodist (1959) ** 10 23 99 99 00 Adlai Stevenson, Vice President (1835) ** 10 23 99 99 00 Al Jolson, American singer and entertainer, dies (1950) ** 10 23 99 99 00 Gore Vidal, the writer, was born (1925) ** 10 23 99 99 00 John Dunlop, the inventor of the pneumatic tire, dies (1921) ** 10 23 99 99 00 Johnny Carson, TV personality, was born (1925) ** 10 23 99 99 00 Michael Crichton, author-movie director (1942) ** 10 23 99 99 00 Pele, the Brazilian soccer player, is born (1940) ** 10 23 99 99 00 Zane Grey, writer of westerns, dies (1939) ** 10 24 99 99 00 David Nelson, actor-producer (1936) ** 10 24 99 99 00 Kevin Kline, actor (1947) ** 10 24 99 99 00 Steven Altman, University of Central Florida President (1945) ** 10 24 99 99 00 Y.A. Tittle, football Hall-of-Famer (1926) ** 10 25 99 99 00 Helen Reddy, singer (1941) ** 10 25 99 99 00 Henry Norris Russell born (1877) ** 10 25 99 99 00 Jon Anderson (Yes) born (Lancashire, England, 1944) ** 10 25 99 99 00 Kenneth Jean, Florida Symphony Orchestra conductor (1952) ** 10 25 99 99 00 Pablo Picasso, artist, born in Malaga, Spain (1881) ** 10 26 99 99 00 Bob Hoskins, actor (1942) ** 10 26 99 99 00 Charles Post, who had a way with breakfast cereals. (1855) ** 10 26 99 99 00 Domenico Scarlatti, virtuoso harpsichordist and composer, is born in Naples (1685) ** 10 26 99 99 00 Igor Sikorsky, inventor of the helicopter, dies (1972) ** 10 26 99 99 00 Jaclyn Smith, actress (1947) ** 10 26 99 99 00 Pat Sajak, TV host (1946) ** 10 26 99 99 00 William Hogarth, artist and engraver, dies in London (1764) ** 10 27 99 99 00 Captain James Cook, explorer, is born in Yorkshire, England (1466) ** 10 27 99 99 00 Carrie Snodgress, actress (1946) ** 10 27 99 99 00 Dylan Marlais Thomas, Welsh romantic poet, is born (1914) ** 10 27 99 99 00 Gerald M. Weinberg, computer scientist-author, born (1933) ** 10 27 99 99 00 H.R. Halderman, former White House chief of staff (1926) ** 10 27 99 99 00 Issac Merrit Singer, invented 1st practical home sewing machine (1811) ** 10 27 99 99 00 Jayne Kennedy-Overton, actress and beauty, is born (1951) ** 10 27 99 99 00 John Cleese, actor and comedian of Monty Python, is born (1939) ** 10 27 99 99 00 Nanette Fabray, actress (1920) ** 10 27 99 99 00 Ralph Kiner, sportscaster and Hall-of-Famer (1922) ** 10 27 99 99 00 Ruby Dee, actress (1924) ** 10 27 99 99 00 Simon Le Bon, singer (1958) ** 10 27 99 99 00 Teresa Wright, actress (1918) ** 10 27 99 99 00 Theodore Roosevelt, 26th President (1901-1909) (1858) ** 10 28 99 99 00 Auguste Escoffier, "the king of chefs & the chef of kings" (1846) ** 10 28 99 99 00 Charlie Daniels, musician-songwriter (1936) ** 10 28 99 99 00 Desiderius Erasmus, Dutch Renaissance scholar and theologian, is born (1469) ** 10 28 99 99 00 Dr. Jonas Salk, who made polio a fear of the past. (1914) ** 10 28 99 99 00 Erasmus, scholar, author of "In Praise of Folly" (1466) ** 10 28 99 99 00 Jane Alexander, actress (1939) ** 10 28 99 99 00 John Locke, writer and thinker on the philosophy of government, dies (1704) ** 10 29 99 99 00 Bill Mauldin, cartoonist, best known for "Willie and Joe", is born (1922) ** 10 29 99 99 00 Duane Allman dies in motorcycle crash (near Macon, GA, 1971) ** 10 29 99 99 00 Edmund Halley born (1656) ** 10 29 99 99 00 Fanny Brice, actress, dancer, singer, is born (1891) ** 10 29 99 99 00 James Boswell, Samuel Johnson's biographer. (1740) ** 10 29 99 99 00 Joseph Pulitzer, journalist, dies (1911) ** 10 29 99 99 00 Kate Jackson, actress (1948) ** 10 29 99 99 00 Leon Czolgosz is electrocuted for assassination of President McKinley (1901) ** 10 29 99 99 00 Melba Moore, singer (1945) ** 10 29 99 99 00 Richard Dreyfuss, actor (1947) ** 10 29 99 99 00 Sir Walter Raleigh, explorer, writer and courtier, dies (1618) ** 10 29 99 99 00 Woody Herman, jazz musician, dies (1987) ** 10 30 99 99 00 Charles Atlas, Italian-born American physical culturist, is born (1893) ** 10 30 99 99 00 Christopher Columbus, Italian navigator, is born (1451) ** 10 30 99 99 00 Claude Lelouch, movie director (1937) ** 10 30 99 99 00 Dostoyevsky, author, is born (1821) ** 10 30 99 99 00 Ezra Loomis Pound, American poet and critic, is born (1885) ** 10 30 99 99 00 Grace Slick, rock singer, born (Chicago, 1939) ** 10 30 99 99 00 Harry Hamlin, actor (1951) ** 10 30 99 99 00 Henry Winkler, actor (1945) ** 10 30 99 99 00 John Adams, 2nd President (1797-1801) (1735) ** 10 30 99 99 00 Louis Malle, movie director (1932) ** 10 30 99 99 00 Prime Minister Indira Gandhi assassinated by Sikhs who had infiltrated her personal guard (1984) ** 10 31 99 99 00 Barbara Bel Geddes, actress (1922) ** 10 31 99 99 00 Chiang Kai-Shek born (1887) ** 10 31 99 99 00 Dale Evans, actress-singer (1912) ** 10 31 99 99 00 David Ogden Stiers, actor (1942) ** 10 31 99 99 00 Deidre Hall, actress (1948) ** 10 31 99 99 00 Harry Houdini, magician and escape artist, dies in Detroit (1926) ** 10 31 99 99 00 Jan Vermeer, Dutch painter, is born in Delft Netherlands (1632) ** 10 31 99 99 00 Jane Pauley, NBC newsoman (1950) ** 10 31 99 99 00 John Keats, the poet, is born (1795) ** 10 31 99 99 00 Max Reinhardt, stage and film director, dies (1943) ** 10 31 99 99 00 Michael Landon, actor-director (1937) gcal-4.1/data/dates/radio0000664000000000000000000000576012244130561012215 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: radio,v 1.2 91/03/07 16:21:23 billr Exp $ # Special dates in the history of radio # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # ** 01 05 99 99 00 FCC hears first demonstration of FM radio (1940) ** 01 19 99 99 00 1st regular transatlantic radio broadcast between US & England. (1903) ** 01 21 99 99 00 First BBC broadcast from London (1930) ** 01 30 99 99 00 First radio broadcast of "The Lone Ranger" (1933) ** 02 08 99 99 00 Radio arrives in the White House. (1922) ** 02 17 99 99 00 The Voice of America started broadcasting to the USSR (1947) ** 02 24 99 99 00 Voice of America begins broadcasting (in German). (1942) ** 03 07 99 99 00 The first successful transatlantic radio telephone call took place between London and New York (1926) ** 03 19 99 99 00 'Amos and Andy' debut on radio. (1928) ** 04 16 99 99 00 first Fibber McGee and Molly radio show is aired (1935) ** 05 03 99 99 00 National Public Radio begins (1971) ** 06 03 99 99 00 "Dragnet" is first broadcast on radio (KFI in Los Angeles). (1949) ** 07 01 99 99 00 "Wolfman Jack", a howling success in radio ** 07 05 99 99 00 1st 'Hawaii Calls' radio program is broadcast. (1935) ** 08 20 99 99 00 WWJ becomes the first radio station (1920) ** 08 28 99 99 00 The first radio commercial aired on station WEAF in New York City. (1922) ** 09 09 99 99 00 NBC created by the Radio Corporation of America. (1926) ** 09 18 99 99 00 the Columbia Broadcasting System goes on the air. (1927) ** 09 30 99 99 00 Lowell Thomas' first broadcast (1930) ** 10 05 99 99 00 1st radio broadcast of the World Series. (1921) ** 10 08 99 99 00 "The Adventures of Ozzie and Harriet" made its debut on CBS radio. (1944) ** 10 27 99 99 00 the radio show "You Bet your Life" starring Groucho Marx premiered on ABC (1947) ** 10 30 99 99 00 Orson Welles panics a nation with his broadcast of 'War of the Worlds' (1938) ** 11 02 99 99 00 KDKA (Pittsburgh) on the air as 1st commercial radio station. (1920) ** 11 11 99 99 00 Kate Smith first sang Irving Berlin's "God Bless America" on network radio (1939) ** 11 15 99 99 00 National Broadcasting Company goes on-the-air, with 24 stations (1926) ** 11 22 99 99 00 the International Radio Telegraphic Convention adopts "SOS" as the new call for help (1906) ** 11 25 99 99 00 Radio station WTAW of college station, Texas, broadcast the first play-by-play description of a football game (1920) ** 11 28 99 99 00 The Grand Ole Opry made its radio debut on station WSM, Nashville. (1925) ** 12 12 99 99 00 FCC reprimands NBC for allowing Mae West to "sex-up" a skit based on Adam and Eve (1937) ** 12 24 99 99 00 1st known radio program in US is broadcast. (1906) gcal-4.1/data/dates/television0000664000000000000000000001511012244130561013266 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: television,v 1.2 91/03/07 16:21:34 billr Exp $ # Special days file for calentool (rel 2.1) # Events from TV shows or concerning TV # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # Twin Peaks dates provided by Larry Virden. # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # ** 01 01 99 99 00 "Hopalong Cassidy" show first aired on television (1950) ** 01 06 99 99 00 "Upstairs Downstairs" premiers, a serial TV program taking the Belamy household from 1903-1930 in four seasons (1974) ** 01 19 99 99 00 Lucy Ricardo (played by Lucille Ball) has Little Ricky on the "I Love Lucy" episode show this day. Four hours before the showing Lucille Ball gave birth to Desi Arnaz, Jr. (1953) ** 01 25 99 99 00 1st Emmy Awards are given out. (1949) ** 01 26 99 99 00 First television show (1926) ** 01 27 99 99 00 1st public demonstration of television. (1926) ** 02 01 99 99 00 First TV soap, "Secret Storm", is aired (1954) ** 02 11 99 99 00 Jack Paar walks off his show after NBC censors excised one of his risque stories (1960) ** 02 12 99 99 00 Laura and James go on a picnic (TP) ** 02 19 99 99 00 "Mister Roger's Neighborhood" premiers on PBS (1968) ** 02 23 99 99 00 Laura's last day (TP) ** 02 24 99 99 00 Cooper comes to town to track down Laura's killer (TP) ** 02 25 99 99 00 Sarah sees Killer Bob in vision (TP) ** 02 26 99 99 00 Albert arrives in Twin Peaks and Cooper dreams (TP) ** 02 27 99 99 00 Maddie arrives and everyone goes to Laura's funeral (TP) ** 02 28 99 99 00 Hawk tracks down Phillip Gerard and Bernard is killed by Leo (TP) ** 02 28 99 99 00 The last original episode of M*A*S*H is aired as a 2 1/2 hour special (1983) ** 03 01 99 99 00 Cooper finds Jacques cabin (TP) ** 03 02 99 99 00 The cataclysm - Waldo is killed, Cooper and Leo are shot, Catherine and Shelley are in the fire and we wait till next season (TP) ** 03 03 99 99 00 "Mr. Wizard", educational science program for kids, first comes to TV (1951) ** 03 03 99 99 00 Cooper meets a giant, Leo, Cooper and Nadine are fine (TP) ** 03 18 99 99 00 Birthday of Number 6 from "The Prisoner" 'Arrival' (1928) ** 03 25 99 99 00 RCA manufactures the first COLOR television set. (1954) ** 04 02 99 99 00 "As the World Turns" and "Edge of Night" premier on CBS (1956) ** 04 03 99 99 00 "The Smother's Brothers" TV show is canceled by CBS for their controversial political comedy (1969) ** 04 09 99 99 00 TV Guide publishes their first issue. (1953) ** 04 30 99 99 00 NBC makes 1st US demo of TV at opening of NY World's Fair. (1939) ** 04 30 99 99 00 Valerie Perrine becomes the first woman to bare her breasts in an American dramatic TV show, PBS's Steambath (1973) ** 05 11 99 99 00 1st regularly scheduled TV broadcasts (3 nights per week). (1929) ** 06 01 99 99 00 The Cable News Network, CNN, makes its debut (1980) ** 06 20 99 99 00 Ed Sullivan has his first really big 'shoe' on Sunday night TV. (1948) ** 07 23 99 99 00 San Jose's KNTV airs the first condom commercial (1975) ** 07 29 99 99 00 Jack Paar made his debut on the Tonight Show (1957) ** 07 31 99 99 00 Chet Huntley retires from NBC, ending 'Huntley-Brinkley Report' (No more "Goodnight, David" "Goodnight, Chet") (1970) ** 08 01 99 99 00 The cable network MTV (Music Television) goes on the air (1981) ** 09 02 99 99 00 The last "Star Trek" episode is telecast (1969) ** 09 04 99 99 00 NBC begins first network coast to coast programming (1951) ** 09 04 99 99 00 cartoon characters, the Flintstones, created (1960) ** 09 07 99 99 00 ESPN, the sports cable network, makes its debut (1979) ** 09 08 99 99 00 "Star Trek" debuts on NBC (1966) ** 09 09 99 99 00 NBC created by the Radio Corporation of America. (1926) ** 09 10 99 99 00 "Gunsmoke" premieres on CBS television. (1955) ** 09 15 99 99 00 "The Lone Ranger", based on the radio show of the same name, made its television debut on ABC (1949) ** 09 21 99 99 00 The television series Perry Mason, made its debut on CBS. (1957) ** 09 23 99 99 00 1st closed circuit pay-TV telecast of a sports event. (1952) ** 09 24 99 99 00 "The Tonight Show" premieres. (1954) ** 09 24 99 99 00 Howdy Doody's Clarabell the clown, silent for 13 years ended Howdy's last show by saying "Goodbye, kids." (1960) ** 09 24 99 99 00 The CBS television magazine "60 minutes" debuted. (1968) ** 10 01 99 99 00 Johnny Carson hosts his 1st Tonight Show. (1962) ** 10 03 99 99 00 Captain Kangaroo is shown for the first time (1955) ** 10 04 99 99 00 "Leave It to Beaver" premiered. (1957) ** 10 05 99 99 00 PBS becomes a network. (1970) ** 10 07 99 99 00 First Bandstand (later, American Bandstand) broadcast (1957) ** 10 11 99 99 00 "Saturday Night Live" premiers (NBC-TV, 1975) ** 10 11 99 99 00 The first political telecast in the United States took place. (1932) ** 10 15 99 99 00 The TV comedy "I Love Lucy" premiered on CBS. (1951) ** 10 23 99 99 00 "The Jonathan Winter's Show" airs the first video taped short clip (1956) ** 10 25 99 99 00 Rolling Stones appear on Ed Sullivan Show (1964) ** 10 26 99 99 00 Charles Kuralt heads off "on the road". He will wear out seven mobile homes and log over one million miles (1969) ** 10 27 99 99 00 Walt Disney's first television program, "Disneyland" premieres (1954) ** 10 29 99 99 00 "Goodnight, David" "Goodnight, Chet" heard on NBC for 1st time. (Chet Huntley & David Brinkley, NBC News, team up) (1956) ** 11 01 99 99 00 National Coalition against violence on TV says the average U.S. child will see 50000 attempted murders on TV by age 16. (1985) ** 11 06 99 99 00 WGY-TV (Schenectady NY), 1st commercial-license station begins service (1939) ** 11 07 99 99 00 NBC becomes the first network to go all color (1966) ** 11 08 99 99 00 Cable programming begins with HBO (1972) ** 11 10 99 99 00 "Sesame Street" made its debut on PBS TV. (1969) ** 11 15 99 99 00 KRON (Channel 4, San Francisco) signs on, from 7 to 10 PM. (1949) ** 11 25 99 99 00 Edward R. Murrow's "Harvest of Shame", a documentary about migrant workers, is the first documentary shown on TV (1960) ** 12 03 99 99 00 1st television broadcast in Hawaii. (1952) ** 12 09 99 99 00 "A Charlie Brown Christmas" is shown for the first time (1965) ** 12 17 99 99 00 "The Nat King Cole Show" is canceled after a year for lack of a sponsor (1957) ** 12 27 99 99 00 First "Howdy Doody" show (1947) ** 12 29 99 99 00 The first showing of the Star Trek episode "The Trouble with Tribbles" (1967) gcal-4.1/data/dates/literature0000664000000000000000000001616412244130561013277 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: literature,v 1.2 91/03/07 16:21:13 billr Exp $ # Special dates in the history of literature, newspapers and comics. # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # ** 01 07 99 99 00 "Tarzan", one of the first adventure comic strips appears. (1929) ** 01 07 99 99 00 Buck Rogers and Tarzan first appear in comic strips (1929) ** 01 09 99 99 00 First issue of the "Progressive" magazine (1909) ** 01 10 99 99 00 Thomas Paine publishes "Common Sense" (1776) ** 01 22 99 99 00 The Alta California becomes a daily paper, 1st such in Calif. (1850) ** 02 13 99 99 00 "Prince Valiant" comic strip appears; known for historical detail and fine detail drawing. Thanks Hal (1937) ** 02 13 99 99 00 Blondie and Dagwood get married (1933) ** 02 16 99 99 00 Ladies Home Journal begins publication. (1883) ** 02 18 99 99 00 Mark Twain's "Adventures of Huckleberry Finn" is published (1885) ** 03 02 99 99 00 Time magazine is first published (1923) ** 03 06 99 99 00 "The Philosophical Transactions of the Royal Society" was 1st published, and is still published today (1665) ** 03 16 99 99 00 First Black newspaper founded (1827) ** 04 09 99 99 00 TV Guide publishes their first issue. (1953) ** 04 10 99 99 00 First issue of the New York Tribune. The publisher was Horace Greeley (1841) ** 04 14 99 99 00 The first edition of Noah Webster's "American Dictionary of the English Language" was published (1828) ** 04 16 99 99 00 The Book of the Month Club begins in the US (1926) ** 04 18 99 99 00 the first crossword puzzle book is published (1924) ** 04 24 99 99 00 First publication of U.S. newspaper printed on regular basis (1704) ** 04 27 99 99 00 John Milton sells his rights to "Paradise Lost" for a total of 10 pounds (1667) ** 05 05 99 99 00 The first issue of Soviet Communist Party paper Pravda was published (1912) ** 05 09 99 99 00 The first newspaper cartoon appeared in America. (1754) ** 05 17 99 99 00 the first regular comic, "Comic Cuts", is published in London (1890) ** 05 29 99 99 00 Popeye rubs the Wiffle Hen becoming practically indestructible (1929) ** 06 03 99 99 00 "Casey at the Bat" is 1st published (by the SF Examiner) (1888) ** 06 05 99 99 00 "U.S. Today" (a newspaper) ran for 1st time (1981) ** 06 06 99 99 00 George Orwell's novel "1984" is published (1949) ** 06 09 99 99 00 The first dime novel was published -- "Malaeska: The Indian Wife of the White Hunter" (1860) ** 06 13 99 99 00 "Pentagon Papers" (re: Vietnam); first published in New York Times. (1971) ** 06 19 99 99 00 Garfield the cat. "Big fat hairy deal". (1978) ** 06 20 99 99 00 Krazy Kat cartoon strip first appears (1910) ** 06 29 99 99 00 The London Telegraph is published for the first time (1855) ** 06 30 99 99 00 "Gone with the Wind" is published (1936) ** 07 04 99 99 00 Thoreau moves into his shack on Walden Pond. (1845) ** 07 06 99 99 00 Newton publishes Principia Mathematica (1687) ** 07 08 99 99 00 Vol 1, No 1, of "The Wall Street Journal" published. (1889) ** 07 25 99 99 00 Das Kapital by Karl Marx is published (1867) ** 07 27 99 99 00 Billboard magazine starts publishing best-seller's charts. (1940) ** 07 30 99 99 00 1st English newspaper published in Hawaii. (1836) ** 08 07 99 99 00 the Alley Oop cartoon strip first appears (1933) ** 08 13 99 99 00 Li'l Abner debut (1934) ** 08 14 99 99 00 Henry David Thoreau jailed for tax resistance. (1846) ** 08 14 99 99 00 The first book ever published was printed, The Book of Psalms, published by Faust (1457) ** 08 17 99 99 00 Animal Farm, written by George Orwell, first published (1945) ** 08 22 99 99 00 Ann Franklin becomes the first woman editor of an American newspaper, "The Mercry" in Newport, R.I. (1762) ** 08 27 99 99 00 "Tarzan of the Apes" published (1912) ** 08 30 99 99 00 Mary Shelley, wrote Frankenstein (1797) ** 09 04 99 99 00 1st daily newspaper in Hawaii published. (1866) ** 09 04 99 99 00 Barney Flaherty, a ten year old, was hired as the first known paper boy (1833) ** 09 05 99 99 00 On The Road, by author Jack Kerouac, was first published. (1957) ** 09 06 99 99 00 Thoreau leaves Walden Pond (1847) ** 09 19 99 99 00 President George Washington's farewell address was published. (1796) ** 09 21 99 99 00 1st daily newspaper in US begins publication in Pennsylvania. (1784) ** 09 21 99 99 00 Eleanor John publishes the first Weekly Reader (1928) ** 09 25 99 99 00 One of the earliest American newspapers "Publick Occurrences", published its first and last edition in Boston (1690) ** 09 27 99 99 00 James Franklin, Benjamin's half brother, publishes the first issue of "The Rhode Island Gazette" (1727) ** 09 28 99 99 00 "Pilgrim's Progress" published (1678) ** 09 30 99 99 00 Bill the Cat loses control of his sports car on route 66 outside of Bloom County. He was returning from a party at Mary Worth's LA home. (1983) ** 10 02 99 99 00 First publication of the Peanuts comic strip (1950) ** 10 04 99 99 00 Dick Tracy, created by Chester Gould, debuts (1931) ** 10 10 99 99 00 Catch-22 is published (1961) ** 10 16 99 99 00 Gordo (by Gus Arriola) 1st appeared in newspapers. (1941) ** 10 16 99 99 00 audience in Boston walks out on Poe during his reading of the "The Raven" (1845) ** 10 20 99 99 00 The New York Times is first published simultaneously in Paris and New York (1960) ** 10 26 99 99 00 the "Doonesbury" comic strip debuts in 28 newspapers (1970) ** 10 27 99 99 00 The 'Federalist' letters started appearing in NY newspapers. (1787) ** 11 03 99 99 00 Treasure Island, by Robert Louis Stevenson, published (1883) ** 11 05 99 99 00 Lemuel Gulliver arrives in Lilliput (1699) ** 11 14 99 99 00 "Moby Dick", by Herman Melville, is published. (1851) ** 11 15 99 99 00 The cartoon strip Mutt and Jeff first appeared (1907) ** 11 18 99 99 00 Mark Twain (Samuel Clemens) publishes his first work, "Jim Smiley and His Jumping Frog" (1865) ** 11 23 99 99 00 The first issue of "Life" magazine is published (1936) ** 11 26 99 99 00 Alice Liddel receives an early Christmas present of "Alice in Wonderland" from Charles Dodgson (1864) ** 11 29 99 99 00 The London times is first newspaper published with a steam powered press (1814) ** 12 09 99 99 00 Noah Webster establishes New York's 1st daily newspaper. (1793) ** 12 16 99 99 00 "Variety", covering all phases of show business, 1st published. (1905) ** 12 19 99 99 00 "A Christmas Carol" by Charles Dickens is first published (1843) ** 12 19 99 99 00 Benjamin Franklin begins publication of "Poor Richard's Almanack" (1732) ** 12 19 99 99 00 Thomas Paine publishes his first "American Crisis" essay in which he wrote, "These are the times that try men's souls." (1776) ** 12 21 99 99 00 Phineas Fogg completes trip around world in under 80 days ** 12 23 99 99 00 "Twas the night before Christmas ..." was first published (1823) ** 12 23 99 99 00 Tom Paine publishes "Crisis" (1776) ** 12 25 99 99 00 Dick Tracy marries Tess Truehart (1949) gcal-4.1/data/dates/usa_other0000664000000000000000000001234712353520605013112 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: usa_other,v 2.4 91/05/13 09:36:57 billr Exp $ # Special days file for calentool (rel 2.1); modified from network posting by # RPC Rodgers, UCSF, Nov. 1988 # Misc US and Canadian holidays fixed by exact date or as nth mday of month # (This file includes holidays that are not common national dates and # are not known to be specific to a single state or states.) # (including some international holidays) # ** 01 01 99 99 00 Feast of the Circumcision of Christ ** 01 04 99 99 00 National Trivia Day ** 01 06 99 99 00 Millard Fillmore's birthday ** 01 16 99 99 00 National Nothing Day ** 01 17 99 99 00 Benediction of animals ** 01 20 99 99 00 Presidential Inauguration Day ** 01 20 99 99 00 Reindeer Day ** 01 23 99 99 00 National Handwriting Day ** 02 01 99 99 00 National Freedom Day ** 02 02 99 99 00 Candlemas ** 02 02 99 99 00 Ground Hog Day ** 02 10 99 99 00 Feast of St. Paul's Shipwreck ** 02 11 99 99 00 National Inventor's Day ** 02 12 99 99 00 Lincoln's Birthday ** 02 14 99 99 00 St. Valentine's day ** 02 15 99 99 00 Susan B. Anthony Day ** 02 24 99 99 00 Gregorian Calendar Day ** 03 11 99 99 00 Johnny Appleseed Day ** 03 16 99 99 00 Black Press Day ** 03 17 99 99 00 St. Patrick's Day ** 03 17 99 99 00 World Maritime Day ** 03 25 99 99 00 Feast of the Annunciation of the Blessed Virgin Mary ** 03 29 99 99 00 Flowering of the Mallorn ** 04 01 99 99 00 April Fool's Day ** 04 02 99 99 00 International Children's Book Day ** 04 11 99 99 00 Barber Shop Quartet Day ** 04 14 99 99 00 Pan American Day ** 04 15 99 99 00 Federal Income Tax is Due ** 04 19 99 99 00 Patriot's Day ** 04 22 99 99 00 Earth Day ** 04 We 99 99 00 [4] National Secretary Day ** 04 Fr 99 99 00 [L] Arbor Day ** 04 Su 99 99 00 [1] <4> Daylight Savings Time Begins (set clocks forward 1 h) ** 05 01 99 99 00 Law Day (declared by Eisenhower) ** 05 01 99 99 00 Loyalty Day ** 05 01 99 99 00 May Day ** 05 08 99 99 00 V-E Day (Victory in Europe day) ** 05 10 99 99 00 Native American Day ** 05 13 99 99 00 Leprechaun Day ** 05 22 99 99 00 National Maritime Day ** 05 27 99 99 00 Feast of Saint Bede the Venerable ** 05 30 99 99 00 Decoration Day ** 05 Sa 99 99 00 [3] Armed Force's Day ** 06 03 99 99 00 Egg Day ** 06 04 99 99 00 Old Maid's Day ** 06 13 99 99 00 Kitchen Klutzs of America Day ** 06 13 99 99 00 The National Asparagus Festival ** 06 14 99 99 00 Flag Day ** 06 20 99 99 00 National Bald Eagle Day ** 06 27 99 99 00 National Fink Day ** 06 29 99 99 00 St. Peter's Day ** 06 30 99 99 00 St. Paul's Day ** 06 Su 99 99 00 [2] Children's Day ** 07 01 99 99 00 Canada Day ** 07 03 99 99 00 Dog days begin ** 07 15 99 99 00 National Ice Cream Day ** 07 16 99 99 00 National Blueberry Festival ** 07 16 99 99 00 Start of Spaceweek ** 07 25 99 99 00 Feast of St. Christopher ** 08 06 99 99 00 Feast of the Transfiguration ** 08 11 99 99 00 Dog days end ** 08 13 99 99 00 Festival of Diana ** 08 13 99 99 00 International Left-handers Day ** 08 15 99 99 00 Feast of the Assumption of the Blessed Virgin Mary ** 08 19 99 99 00 National Aviation day ** 08 24 99 99 00 St. Bartholomew's Day ** 09 04 99 99 00 Kid's Day ** 09 08 99 99 00 Feast of the Nativity of the Blessed Virgin ** 09 08 99 99 00 International Literacy Day ** 09 13 99 99 00 Barry Day (commemorates death of Commodore John Barry) ** 09 14 99 99 00 Constitution Day ** 09 14 99 99 00 Feast of the Exhaltation of the Cross ** 09 17 99 99 00 Citizenship Day ** 09 28 99 99 00 Michaelmas Eve ** 09 29 99 99 00 Feast of St. Michael (Michaelmas Day) ** 09 Su 99 99 00 [2] Grandparent's Day (1st Sun after Laboe Day) ** 10 04 99 99 00 St. Francis of Assisi (even though he died the day before) ** 10 06 99 99 00 Universal Children's Day ** 10 09 99 99 00 Leif Erikson Day (commemorates discovery of North America in AD 1000) ** 10 11 99 99 00 General Pulaski Memorial Day ** 10 12 99 99 00 Columbus Day (actual day; celebration is 2nd Mon) ** 10 15 99 99 00 Mushroom Day ** 10 15 99 99 00 National Grouch Day ** 10 15 99 99 00 World Poetry Day ** 10 16 99 99 00 National Boss Day ** 10 18 99 99 00 Feast Day of St. Luke ** 10 22 99 99 00 Mothers-in-Law Day ** 10 23 99 99 00 United States Day ** 10 24 99 99 00 United Nations Day ** 10 25 99 99 00 Saint Crispin's Day ** 10 31 99 99 00 Halloween ** 10 31 99 99 00 National Magic Day, commemorating Houdini's death ** 10 31 99 99 00 Reformation Day ** 10 Mo 99 99 00 [1] Child Health Day ** 10 Mo 99 99 00 [2] Thanksgiving Day (Canada) ** 10 Su 99 99 00 [L] <4> Daylight Savings Time Ends (set clocks back 1 h) ** 11 01 99 99 00 All Saints Day ** 11 04 99 99 00 Will Rogers Day ** 11 11 99 99 00 Armistice Day ** 11 11 99 99 00 St. Martin's day or Martinmas ** 11 12 99 99 00 Elizabeth Cady Stanton Day ** 11 17 99 99 00 Great American Smoke Out Day ** 11 30 99 99 00 St. Andrew's Day ** 11 Sa 99 99 00 [3] Sadie Hawkin's Day (1st Sat after Nov 11) ** 12 05 99 99 00 St. Nicholas' Day ** 12 10 99 99 00 Human Rights Day ** 12 12 99 99 00 National Ding-a-ling Day ** 12 15 99 99 00 Bill of Rights Day ** 12 17 99 99 00 Feast of Saint Lazarus ** 12 17 99 99 00 Wright Brothers Day ** 12 19 99 99 00 Underdog Day ** 12 21 99 99 00 Forefathers' Day ** 12 24 99 99 00 Christmas Eve ** 12 26 99 99 00 St. Stephen's Day ** 12 28 99 99 00 Feast of Fools ** 12 31 99 99 00 New Year's Eve gcal-4.1/data/dates/can_holiday0000664000000000000000000000170312244130561013362 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: can_holiday,v 1.3 91/03/07 16:21:03 billr Exp $ # Canadian holidays fixed by exact date or as nth mday of month # Modified from usa_holiday. # (This is a subset of the most common nationally observed dates) # ** 01 01 99 99 00 New Year's Day ** 05 Su 99 99 00 [2] Mother's Day ** 05 Mo 99 99 00 [3] Victoria Day ** 06 Su 99 99 00 [3] Father's Day ** 06 24 99 99 00 St. Jean Baptiste Day # The Can. holiday is the following Monday if on a wknd. ** 07 01 99 99 00 Canada Day # USA holiday; Canada is open but U.S. is closed. ** 07 04 99 99 00 Independence Day - U.S.A. closed today. ** 09 Mo 99 99 00 [1] Labor Day ** 10 Mo 99 99 00 [2] Thanksgiving Day (Canada) ** 11 11 99 99 00 Remembrance Day # USA holiday; Canada is open but U.S. is closed. ** 11 Th 99 99 00 [4] Thanksgiving Day (United States) ** 12 25 99 99 00 Christmas ** 12 26 99 99 00 Bank Holiday ** 12 26 99 99 00 Boxing Day gcal-4.1/data/dates/witchcraft0000664000000000000000000000102312244130561013241 00000000000000# CalenTool V2.2 - nflag=1 range=2,10 - DO NOT REMOVE THIS LINE # $Header: witchcraft,v 1.2 91/03/07 16:21:41 billr Exp $ # Special days file for calentool (rel 2.1) # Four major holidays of the "Old Religion" # Submitted by Michael R. Wayne # ** 02 01 99 99 00 Oimelc (Winter purification & approach of spring) ** 05 01 99 99 00 Beltane (Great fertility festival) ** 08 01 99 99 00 Lughnasadh (Festival of fruits; death of sacred king) ** 10 31 99 99 00 Samhain (Celtic religious new year) gcal-4.1/data/dates/usa_states0000664000000000000000000000671512244130561013273 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: usa_states,v 2.3 91/03/07 16:21:39 billr Exp $ # Special days file for calentool (rel 2.1); modified from network posting by # RPC Rodgers, UCSF, Nov. 1988 # US state holidays fixed by exact date or as nth mday of month # ** 01 06 99 99 00 Three Kings' Day (PR) ** 01 11 99 99 00 De Hostos' Birthday (PR) ** 01 18 99 99 00 Southward Grey whale migration (CA) ** 01 19 99 99 00 Confederate Heroes Day (TX) ** 01 Mo 99 99 00 [3] Lee-Jackson Day (VA) ** 01 Mo 99 99 00 [3] Robert E. Lee's Birthday (AL & MS) ** 02 12 99 99 00 Georgia Day (GA) ** 03 02 99 99 00 Texas Independence day (TX) ** 03 04 99 99 00 Vermont Admission Day (14th state, 1791) ** 03 15 99 99 00 Buzzards return to Hinckley, Ohio (OH) ** 03 17 99 99 00 Evacuation Day (Suffolk County, MA) ** 03 19 99 99 00 The day the swallows return to San Juan Capistrano (CA) ** 03 20 99 99 00 Youth Day (OK) ** 03 22 99 99 00 Abolition Day (PR) ** 03 25 99 99 00 Maryland Day (MD) ** 03 26 99 99 00 Prince Jonah Kuhio Kalanianaole Day (HI) ** 03 Mo 99 99 00 [L] Seward's Day (AK) ** 04 02 99 99 00 Pascua Florida Day (FL) ** 04 07 99 99 00 Alewives run (Cape Cod, MA) ** 04 07 99 99 00 Verrazano Day (NY) ** 04 12 99 99 00 Thomas Jefferson's Birthday (AL) ** 04 16 99 99 00 Jose de Diego's Birthday (PR) ** 04 21 99 99 00 San Jacinto Day (TX) ** 04 22 99 99 00 Arbor Day (NE & DE) ** 04 22 99 99 00 Oklahoma Day (OK) ** 04 26 99 99 00 Confederate Memorial Day (FL & GA) ** 04 Mo 99 99 00 [3] Patriot's Day (ME & MA) ** 04 Mo 99 99 00 [L] Arbor Day (WY) ** 04 Mo 99 99 00 [L] Confederate Memorial Day (AL & MS) ** 05 04 99 99 00 Rhode Island Independence Day ** 05 08 99 99 00 Harry S. Truman's Birthday (MO) ** 05 10 99 99 00 Confederate Memorial Day (SC) ** 05 11 99 99 00 Minnesota Day (MN) ** 05 20 99 99 00 Mecklenburg Independence Day (NC) ** 05 25 99 99 00 Memorial Day (NM & PR) ** 05 29 99 99 00 Jefferson Davis's Birthday (MS) ** 05 Mo 99 99 00 [3] Memorial Day (MI) ** 06 03 99 99 00 Confederate Memorial Day (KY & LA) ** 06 03 99 99 00 Jefferson Davis's Birthday (FL, GA, KY, & SC) ** 06 09 99 99 00 Senior Citizen's Day (OK) ** 06 11 99 99 00 King Kamehameha I Day (HI) ** 06 17 99 99 00 Bunker Hill Day (Suffolk County, MA) ** 06 19 99 99 00 Emancipation Day (TX) ** 06 20 99 99 00 West Virginia Day (WV) ** 06 Mo 99 99 00 [1] Jefferson Davis's Birthday (AL & MS) ** 07 16 99 99 00 Bennington Battle Day (VT) ** 07 17 99 99 00 Munoz Rivera's Birthday (PR) ** 07 24 99 99 00 Pioneer Day (UT) ** 07 25 99 99 00 Constitution Day (PR) ** 07 27 99 99 00 Barbosa's Birthday (PR) ** 07 29 99 99 00 Rain Day (Waynesburg, PA) ** 08 03 99 99 00 Ernie Pyle Day (NM) ** 08 14 99 99 00 Victory Day (RI) ** 08 21 99 99 00 Admission Day (HI) ** 08 26 99 99 00 Susan B. Anthony Day (MA) ** 08 30 99 99 00 Huey P. Long Day (LA) ** 08 Fr 99 99 00 [3] Admission Day (HI, 1984) ** 09 04 99 99 00 Los Angeles Day ** 09 09 99 99 00 Admission Day (CA) ** 09 12 99 99 00 Defender's Day (MD) ** 09 16 99 99 00 Cherokee Strip Day (OK) ** 09 22 99 99 00 Autumn Harvest Festival (Wheaton, IL) ** 09 23 99 99 00 Grito de Lares (PR) ** 10 08 99 99 00 Discoverer's Day (HI) ** 10 10 99 99 00 Oklahoma Historical Day (OK) ** 10 18 99 99 00 Alaska Day (AK) ** 10 30 99 99 00 Devil's Night (MI) ** 10 31 99 99 00 Nevada Day (NV) ** 11 02 99 99 00 Admission Day (ND, SD) ** 11 16 99 99 00 Oklahoma Heritage Week (OK) ** 11 19 99 99 00 Discovery Day (PR) ** 12 07 99 99 00 Delaware Day (DE) ** 12 10 99 99 00 Wyoming Day (WY) gcal-4.1/data/dates/sports0000664000000000000000000002046212244130561012445 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: sports,v 1.2 91/03/07 16:21:32 billr Exp $ # Special dates in sports history # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # ** 01 01 99 99 00 1st Rose Bowl game held in Pasadena, California. (1902) ** 01 01 99 99 00 1st running of SF's famed "Bay to Breakers" race (7.63 miles) (1912) ** 01 01 99 99 00 All registered thoroughbred and quarter horses are "born" on this day ** 01 16 99 99 00 First college basketball game, Iowa vs Chicago (1896) ** 01 29 99 99 00 1st athletic letters given: to Univ of Chicago football team. (1904) ** 02 02 99 99 00 National Baseball League formed with 8 teams. (1876) ** 02 04 99 99 00 1st Winter Olympics held (At Lake Placid, NY). (1932) ** 02 12 99 99 00 The six cars entered in the New York to Paris road race set off on their 12116 mile race through Alaska and Russia. America won. (1908) ** 03 11 99 99 00 1st public game of basketball. (1892) ** 03 28 99 99 00 A New York judge rules that the contest between the American catamaran and the Australian monohull was not fair competition and the America's Cup was returned to the Australians (1989) ** 04 04 99 99 00 President William Howard Taft throws out the first ball of the season to a game between Washington and Philadelphia. Thus starting a tradition (1910) ** 04 04 99 99 00 Hank Aaron of Atlanta Braves ties Babe Ruth's home run record at 714 (1974) ** 04 08 99 99 00 Hammerin' Hank Aaron hits 715th home run, beats Babe Ruth's record. (1974) ** 04 11 99 99 00 Jackie Robinson breaks the color barrier in baseball when he plays for the Brooklyn Dodgers (1947) ** 04 12 99 99 00 The catcher's mask was first used in a baseball game. (1877) ** 04 14 99 99 00 President Taft starts the tradition of throwing out the 1st baseball (1910) ** 04 16 99 99 00 Bob Feller of the Cleveland Indians pitched a no-hitter on opening day of the American League season (1940) ** 04 23 99 99 00 Hank Aaron hits his first home run (1954) ** 04 28 99 99 00 Muhammad Ali (Heavyweight Champ) refused to be inducted into Army (1967) ** 05 02 99 99 00 Lou Gehrig sets record for being in most consecutive games (2130). (1939) ** 05 17 99 99 00 First Kentucky Derby held (1875) ** 05 17 99 99 00 The first Kentucky Derby was run at Churchill Downs. (1875) ** 05 25 99 99 00 Babe Ruth hits his 714th and final home run of his career (1935) ** 05 30 99 99 00 Indianapolis 500 car race run for 1st time. (1911) ** 06 01 99 99 00 Lou Gehrig starts in 1st of 2130 consecutive games, a record. (1925) ** 06 11 99 99 00 1st auto race. (1895) ** 06 12 99 99 00 The National Baseball Hall of Fame and Museum was dedicated. (1939) ** 06 12 99 99 00 the 1st baseball game is played in America (1839) ** 06 12 99 99 00 the 3rd baseball strike starts. (1981) ** 07 05 99 99 00 New York Mets defeated Atlanta Braves, 16-13, in 19 inning game that lasted 6 hours and 10 min. ending just before 4 a.m. (1985) ** 07 06 99 99 00 1st All-Star baseball game. American League won 5-2. (1933) ** 07 11 99 99 00 Houston Astros pitcher, Nolan Ryan struck out 4000 batters. (1985) ** 07 13 99 99 00 Women first compete in Olympic games (1908) ** 07 18 99 99 00 Ty Cobb gets 4000th base hit (1927) ** 07 20 99 99 00 admission fee 1st charged to see a baseball game (50 cents). (1859) ** 07 21 99 99 00 Eddy Merckx won his first of five Tour de France victories (1969) ** 07 23 99 99 00 Greg LeMond wins his second Tour de France, beating Laurent Fignon in the final 15 mile time trial by turning a 50 second deficit into a win by 8 seconds! (1989) ** 07 29 99 99 00 King George VI opened the Olympic games in London (1948) ** 08 01 99 99 00 Adolph Hitler opened the Olympic Games in Berlin. (1936) ** 08 02 99 99 00 Several former members of the Chicago White Sox and two others were acquitted in the "Black Sox" scandal (1921) ** 08 06 99 99 00 Cy Young pitches first major league game (1890) ** 08 06 99 99 00 Gertrude Ederle of New York is the first American woman to swim the English Channel (1926) ** 08 08 99 99 00 the first America's Cup race (1870) ** 08 10 99 99 00 Pete Rose tops Stan Musial's record of 3630 hits. (1981) ** 08 20 99 99 00 Diana Nyad becomes the first woman to swim the 89 miles from the Bahamas to Florida (time: 27h 38m) (1979) ** 08 21 99 99 00 Babe Ruth hit his 600th career home run. (1931) ** 08 22 99 99 00 Althea Gibson becomes the first black tennis plaer to be accepted in competition for the national chapionship (1950) ** 08 22 99 99 00 the yacht America wins in race against 14 yachts of England in the first America Cup sailing race (1851) ** 08 25 99 99 00 Captain Matthew Webb becomes the first person to swim the English Channel, travelling from Dover to Calais in 22 hours (1875) ** 08 26 99 99 00 The summer Olympics opened in Munich, West Germany. (1972) ** 08 29 99 99 00 Lou Brock eclipsed the stolen-bases record as he stole two bases against the San Diego Padres, bring his total to 893 (1977) ** 08 31 99 99 00 The 1st U.S. tennis championships were played in Newport, R.I. (1882) ** 09 01 99 99 00 Bobby Fischer defeats Boris Spassky in World Chess Match (1972) ** 09 04 99 99 00 Mark Spitz becomes first man to win 7 gold medals in the Olympics (1972) ** 09 06 99 99 00 Czechoslovakian tennis star, Martina Navratilova, requested political asylum while in New York for the U.S. open (1975) ** 09 07 99 99 00 ESPN, the sports cable network, makes its debut (1979) ** 09 13 99 99 00 Fay Vincent was named commissioner of Major League Baseball. (1989) ** 09 13 99 99 00 The ladies Professional Golf Association of America was formed. (1949) ** 09 17 99 99 00 The American Professional Football Association was formed. (1920) ** 09 23 99 99 00 1st closed circuit pay-TV telecast of a sports event. (1952) ** 09 23 99 99 00 New York Knickerbockers becomes first U.S. Baseball club (1845) ** 09 24 99 99 00 Babe Ruth makes his farewell regular baseball player for the New York Yankees (1934) ** 09 26 99 99 00 Australia II won the America's Cup yacht race. (1983) ** 09 28 99 99 00 eight members of the Chicago White Sox were indicted for allegedly throwing the 1919 World Series against the Cincinnati Reds in the "Black Sox" scandal (1920) ** 09 29 99 99 00 The 1st night football game was played in Mansfield, Pennsylvania. (1892) ** 10 01 99 99 00 1st World Series starts between the National & American Leagues (1903) ** 10 07 99 99 00 Georgia Tech beat Cumberland University 222-0 in a football game. (1916) ** 10 07 99 99 00 Lynnette Woodward becomes the first female Harlem Globetrotter (1985) ** 10 12 99 99 00 The race horse Man O'War's last race (1920) ** 10 13 99 99 00 The International Olympic committee announced it would restore the two gold medals it had taken from Jim Thorpe (1982) ** 10 13 99 99 00 The first world series game is played (1903) ** 10 18 99 99 00 Connie Mack, the "Grand Old Man" of major league baseball, announced he would retire as manager of the Philadelphia Athletics (1950) ** 10 18 99 99 00 the Ivy League establishes rules for college football. (1873) ** 10 19 99 99 00 Jim Ochowicz, manager of the Seven-Eleven cycling team announced that the team will be sponsored by Motorola (1990) ** 11 01 99 99 00 Notre Dame's football team upsets Army 35-13 in a game that help popularize the forward pass (1913) ** 11 06 99 99 00 the first formal intercollegiate football game played (Rutgers 6 - Princeton 4) (1869) ** 11 25 99 99 00 Radio station WTAW of college station, Texas, broadcast the first play-by-play description of a football game (1920) ** 11 28 99 99 00 The first automobile race was held from Chicago to Waukegan through the snow; 6 cars, 55 miles, winner averaged 7 MPH (1895) ** 11 29 99 99 00 1st Army-Navy football game. Score: Navy 25, Army 0. (1890) ** 12 04 99 99 00 Numbers first appear on football uniforms (1908) ** 12 15 99 99 00 James Naismith, a Canadian, invents basketball, while working at the Y.M.C.A. College at Springfield, Massachusetts (1891) ** 12 17 99 99 00 1st professional football game: Chicago Bears vs. NY Giants. (1933) ** 12 26 99 99 00 1st East-West football game at Ewing Park before 25,000 fans. (1925) gcal-4.1/data/dates/events60000664000000000000000000011025212353366162012513 00000000000000# CalenTool V2.2 - nflag=1 range=11,12 - DO NOT REMOVE THIS LINE # $Header: events6,v 1.1 91/03/07 16:19:11 billr Exp $ # Notable events in history (Nov-Dec) # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # All dates in this file are New Style unless otherwise noted. # Some duplicates may exist where I haven't been able to verify which # one is correct. # ** 11 01 99 99 00 Algeria began its rebellion against French rule (1954) ** 11 01 99 99 00 An earthquake hits Spain, Portugal and Morocco killing 60000 in Lisbon alone (1755) ** 11 01 99 99 00 Austria-Hungary become two seperate nations (1918) ** 11 01 99 99 00 Barbed wire is first made allowing the ranges to be fenced (1873) ** 11 01 99 99 00 Benito Mussolini described the alliance between Italy and Nazi Germany as an "axis" running between Rome and Berlin (1936) ** 11 01 99 99 00 First Class Mail raised from 18 to 20 cents. (1981) ** 11 01 99 99 00 General George B. McClellan was made general in chief of the Union armies (1861) ** 11 01 99 99 00 Michelangelo's paintings on the Sistine Chapel ceiling were first exhibited to the public (1512) ** 11 01 99 99 00 Puerto Rican nationalists try to kill Truman at Blair House (1950) ** 11 01 99 99 00 The first hydrogen bomb is exploded at Eniwetak Island in the Pacific (1952) ** 11 01 99 99 00 The stamp act goes into effect in the British colonies. Colonists reacted strongly with flags at half mast and burning of stamps (1765) ** 11 01 99 99 00 US Government loans Chrysler Corporation $1.5 billion after it had lost $460M in 3rd Quarter (1979) ** 11 01 99 99 00 US Weather Bureau begins operations. (1870) ** 11 01 99 99 00 first women report for sea duty on US Navy non-combat ships (1978) ** 11 02 99 99 00 All church land is nationalized in France and later used as collateral for paper money (1789) ** 11 02 99 99 00 Jimmy Carter defeated incumbent Gerald Ford; the first Deep South presidential candidate to be elected since the Civil War (1976) ** 11 02 99 99 00 Lansing-Ishii Agreement (1917) ** 11 02 99 99 00 Luftwaffe completes 57 consecutive nights of bombing of London (1940) ** 11 02 99 99 00 North Dakota becomes the 39th state (1889) ** 11 02 99 99 00 South Dakota becomes the 40th state (1889) ** 11 02 99 99 00 Truman beats Dewey, confounding pollsters and newspapers. (1948) ** 11 03 99 99 00 Bank of Italy becomes Bank of America. (1930) ** 11 03 99 99 00 Beef rises to 3 cents a pound in Illinois (1837) ** 11 03 99 99 00 Charles Birdseye markets frozen peas. (1952) ** 11 03 99 99 00 First Class Mail now costs 3 cents. (1917) ** 11 03 99 99 00 Linus Pauling wins Nobel Chemistry Prize (1954) ** 11 03 99 99 00 Panama gains it's independence from Columbia. (1903) ** 11 03 99 99 00 Rev. Jesse Jackson began his first campaign for the Democratic nomination for president (1983) ** 11 03 99 99 00 The Automobile Club of America sponsored the first automobile show in the United States at Madison Square Garden (1900) ** 11 03 99 99 00 first automatic switchboard (1892) ** 11 04 99 99 00 90 people taken hostage when Iranians overrun US embassy in Teheran (1979) ** 11 04 99 99 00 Death to America day in Iran (1987) ** 11 04 99 99 00 First wagon train reaches California (1841) ** 11 04 99 99 00 Howard Carter discovers the tomb of Tutankhamen. (1922) ** 11 04 99 99 00 Nellie T. Ross becomes governor of Wyoming and the first woman governor ever (1924) ** 11 04 99 99 00 Ronald Reagan elected president, a sad day for environmentalists everywhere (1980) ** 11 04 99 99 00 Soviet forces crush the anti-communist revolt in Hungary (1956) ** 11 04 99 99 00 The first cash register was patented. (1880) ** 11 05 99 99 00 Guy Fawkes caught preparing to blow up the parliament and king James I (1605) ** 11 05 99 99 00 John Hanson elected 1st 'President of the United States in Congress assembled' (8 years before Washington was elected) (1781) ** 11 05 99 99 00 Last Seth Thomas tower clock installed (1942) ** 11 05 99 99 00 Susan B. Anthony was fined $100 for trying to vote in the presidential election (1872) ** 11 06 99 99 00 Abraham Lincoln elected president (1860) ** 11 06 99 99 00 Bolsheviks overthrow moderate provisional government making Lenin dictator (1917) ** 11 06 99 99 00 Col. Jacob Schick was issued a patent for the electric razor (1923) ** 11 06 99 99 00 Direct Telegraphic link between New York and San Francisco established (1862) ** 11 06 99 99 00 The stock market hits 1400 on its way up (1985) ** 11 07 99 99 00 Battle of Tippecanoe, gave Harrison a presidential slogan. (1811) ** 11 07 99 99 00 Canada completes its own transcontinental railway. (1885) ** 11 07 99 99 00 Congress overrides Nixon's veto of bill to curb president's ability to commit armed forces to hostile action (1973) ** 11 07 99 99 00 First state penitentiary for women is opened (1877) ** 11 07 99 99 00 Franklin Roosevelt wins a fourth term against Thomas E. Dewey (1944) ** 11 07 99 99 00 Lewis and Clark first sighted the Pacific Ocean. (1805) ** 11 07 99 99 00 October revolution takes place in Russia, Lenin overthrows Kerensky (1917) ** 11 07 99 99 00 The Mary Celeste sets sail for Genoa. She will be found 4 weeks later abandoned at sea, the whereabouts of her crew unknown. (1872) ** 11 07 99 99 00 Verney Cameron is 1st European to cross equitorial Africa from sea to sea (1875) ** 11 07 99 99 00 an elephant is first used to represent the Republican party in a cartoon by Thomas Nast (1874) ** 11 07 99 99 00 an erroneous United Press report of armistice sets off celebrations (1918) ** 11 08 99 99 00 Adolph Hitler and General Ludendorff seize the Munich government (1923) ** 11 08 99 99 00 During the Korean War, the first jet to jet combat occurs as Lieutenant Russell J. Brown shoots down a North Korean MIG-15 (1950) ** 11 08 99 99 00 Edwrd W. Brooke of Massachusetts becomes the first U.S. senator elected by popular vote (1966) ** 11 08 99 99 00 George Bush elected as 41st President (1988) ** 11 08 99 99 00 John Kennedy narrowly beat Richard Nixon for the Presidency (1960) ** 11 08 99 99 00 Montana becomes the 41st state (1889) ** 11 08 99 99 00 Operation Torch begins as U.S. and British forces invade North Africa (1942) ** 11 08 99 99 00 the Louvre, in Paris, was opened to the public. (1793) ** 11 09 99 99 00 Blackout of New York, New England, & Eastern Canada (1965) ** 11 09 99 99 00 Fire destroyed nearly 1,000 buildings in Boston. (1872) ** 11 09 99 99 00 Giant panda discovered (?!), China (1927) ** 11 09 99 99 00 Kristallnacht, a night of antisemitic rioting in Germany (1938) ** 11 09 99 99 00 Margaret Sanger forms American Birth Control League (1921) ** 11 09 99 99 00 Roosevelt establishes the Civil Works Administration (1933) ** 11 09 99 99 00 The German Democratic Republic (East Germany) starts freely issuing visas for travel to West Germany for its citizens (1989) ** 11 09 99 99 00 The U.N. General Assembly passed 10 resolutions condemning apartheid in South Africa (1976) ** 11 09 99 99 00 last victim of Jack the Ripper dies (1888) ** 11 10 99 99 00 1st Long Distance telephone call without operator assistance. (1951) ** 11 10 99 99 00 1st Woman's Christian Temperance Union meeting held (in Boston) (1891) ** 11 10 99 99 00 41 Women arrested in suffragette demonstrations near White House (1917) ** 11 10 99 99 00 Badlands National Park approved by Congress (1978) ** 11 10 99 99 00 Captain Wirz, commandant of Andersonville Prison hanged (1865) ** 11 10 99 99 00 Henry Stanley finds David Livingstone at Ujiji, Zanzibar and says "Dr. Livingstone, I presume?" To which Livingstone replies, "Yes, and I feel thankful that I am here to welcome you." (1871) ** 11 10 99 99 00 Hirohito takes the throne as Emperor of Japan (1928) ** 11 10 99 99 00 The Iwo Jima Memorial is dedicated in Arlington, Va. (1954) ** 11 10 99 99 00 The Mayflower compact is signed (1620) ** 11 10 99 99 00 The U.S. Marines organized to protect ships (1775) ** 11 10 99 99 00 The ore ship Edmund Fitzgerald and its crew of 29 vanish during a storm on Lake Superior (1975) ** 11 11 99 99 00 Angola gains independence from Portugal (1975) ** 11 11 99 99 00 Haymarket rioters hanged (1887) ** 11 11 99 99 00 Indians led by William Butler massacre the inhabitants of Cherry Valley in New York (1778) ** 11 11 99 99 00 Israel and Egypt sign a cease-fire (1972) ** 11 11 99 99 00 Palace of Legion of Honor dedicated. (1924) ** 11 11 99 99 00 The Allies and the Germans sign Armistice ending World War I (1918) ** 11 11 99 99 00 Washington admitted as the 42nd state. (1889) ** 11 12 99 99 00 1st known photo of Loch Ness monster is taken. (1933) ** 11 12 99 99 00 Arches National Park approved by Congress (1971) ** 11 12 99 99 00 Ellis Island closes after more than 20M immigrants were processed since 1892 (1954) ** 11 12 99 99 00 Josef Stalin became the undisputed ruler of the Soviet Union as Leon Trotsky was expelled from the Communist Party (1927) ** 11 12 99 99 00 The bodies of Captain Scott and his companions are found after their tragic attempt to return from the South Pole (1912) ** 11 12 99 99 00 The first salmon is caught in the Thames river since the 1840's (1974) ** 11 12 99 99 00 U.S. first exports oil to Europe (1861) ** 11 12 99 99 00 the 1st "autobank" (banking by car) was established, in Chicago (1946) ** 11 13 99 99 00 Benjamin Franklin wrote to a friend, "In this world nothing can be said to be certain, except death and taxes." (1789) ** 11 13 99 99 00 Bloody Sunday occurs in Trafalgar Square, London as Socialist and Irish demonstrators fought (1887) ** 11 13 99 99 00 Brothers and Sisters of Red Death attempt mass suicide before world ends (1900) ** 11 13 99 99 00 London-Paris Telegraph is opened (1851) ** 11 13 99 99 00 Peter Burnett is elected 1st governor of California. (1849) ** 11 13 99 99 00 The volcano, Nevado del Ruiz in Colombia, erupts sending a huge mud slide down to kill 25000 people (1985) ** 11 14 99 99 00 A new island, later called Surtsey boiled up through the ocean surface off the coast of Iceland (1963) ** 11 14 99 99 00 Capt. George Vancouver is 1st Englishman to enter San Francisco Bay. (1792) ** 11 14 99 99 00 Charles J. Guiteau went on trial for the assassination of President Garfield; he was convicted and hanged the next year (1881) ** 11 14 99 99 00 Coventry, England is heavily bombed by the Germans. Coventry Cathedral is destroyed (1940) ** 11 14 99 99 00 Nellie Bly beats Phineas Fogg's time for a trip around the world by 8 days (72 days) (1889) ** 11 14 99 99 00 President Carter freezes all Iranian assets in US Banks in response to Iranian hostage crisis (1979) ** 11 14 99 99 00 Quarter Pounder price raised from $0.53 to $0.55 in violation of Nixon price controls (but okayed by Price Commission after formal request from McDonald's) (1971) ** 11 14 99 99 00 The world's first street car runs in New York (1832) ** 11 15 99 99 00 Charles Mason and Jeremiah Dixon began running the Mason-Dixon line (1763) ** 11 15 99 99 00 Columbus makes first reference to the use of tobacco by New World Indians (1492) ** 11 15 99 99 00 Free Postal Delivery formally inaugurated. (1869) ** 11 15 99 99 00 Infant Baby Fae, who had received a baboon's heart, died almost three weeks after the transplant (1984) ** 11 15 99 99 00 Niagara Falls power plant startup (1896) ** 11 15 99 99 00 Pres. F.D.Roosevelt laid the cornerstone of the Jefferson Memorial. (1939) ** 11 15 99 99 00 Social Security Administration approves 1st unemployment check. (1939) ** 11 15 99 99 00 The last voyage of the Queen Elizabeth ends (1968) ** 11 16 99 99 00 Oklahoma becomes the 46th state (1907) ** 11 16 99 99 00 Opening of the Suez Canal (1869) ** 11 16 99 99 00 Roosevelt establishes diplomatic relations with the Soviet Union. (1933) ** 11 17 99 99 00 0h on this day is the epoch for the Modified Julian Date (MJD) (1858) ** 11 17 99 99 00 Accession of Queen Elizabeth I of England (1558) ** 11 17 99 99 00 Ayatollah Khomeini orders release of thirteen female and black hostages from the U.S. embassy in Tehran (1979) ** 11 17 99 99 00 Church of England is reestablished (1558) ** 11 17 99 99 00 Colonel Nasser becomes Egyptian Premier (1954) ** 11 17 99 99 00 Congress convened for its 1st Washington, DC session. (1800) ** 11 17 99 99 00 Panama Canal opens for use. (1913) ** 11 18 99 99 00 Antarctica discovered by US Navy Captain Nathaniel B. Palmer. (1820) ** 11 18 99 99 00 Cortez leaves Cuba for Mexico with 10 armed vessels (1518) ** 11 18 99 99 00 Hay-Bunau-Varilla Treaty, gave US exclusive canal rights thru Panama. (1903) ** 11 18 99 99 00 Local standard time zones established for US and Canada (1883) ** 11 18 99 99 00 St. Peter's Basilica is consecrated (1626) ** 11 18 99 99 00 The Jonestown, Guyana mass murder and suicide (1978) ** 11 18 99 99 00 U.S. Navy Captain Nathanial Palmer discovered Antartica (1820) ** 11 18 99 99 00 U.S. Roman Catholic bishops did away with the rule against eating meat on Fridays (1966) ** 11 18 99 99 00 William Tell is said to have shot the apple off of his son's head (1307) ** 11 18 99 99 00 the last boatload of British convicts land in Australia (1840) ** 11 18 99 99 00 ticker tape used for the first time in a parade as Prince of Wales visits the U.S. (1919) ** 11 19 99 99 00 Christopher Columbus discovers Puerto Rico. (1493) ** 11 19 99 99 00 Ford Motor Co. announced it was halting production of the Edsel. (1959) ** 11 19 99 99 00 Lincoln delivers his address in Gettysburg. (1863) ** 11 19 99 99 00 Liquified gas tanks explode in Mexico City killing 452 with 1000 missing (1984) ** 11 19 99 99 00 Zion National Park approved by Congress (1919) ** 11 19 99 99 00 more than 50000 gallons of radioactive waste water is accidentally released into the Mississippi River when waste storage overflows at Monticello, Minn. reactor (1971) ** 11 19 99 99 00 the pencil is invented. (1895) ** 11 20 99 99 00 Egypt and China announce their recognition of a Palestinian state (1988) ** 11 20 99 99 00 Egyptian President Anwar Sadat becomes the first Arab leader to address Israel's Parliament (1977) ** 11 20 99 99 00 New Jersey became the first state to ratify the Bill of Rights. (1789) ** 11 20 99 99 00 Photograph is first required on US passports (1914) ** 11 20 99 99 00 Simon Bolivar declares Venezuela independent of Spain (1818) ** 11 20 99 99 00 The Nixon administration announced a halt to residential use of DDT to be followed by a total ban in 1971 (1969) ** 11 20 99 99 00 The population clock at the Department of Commerce turns over to 200M people at a few minutes past 11 am. (1967) ** 11 20 99 99 00 William Bundy invents the first timecard clock. (1888) ** 11 21 99 99 00 83 million people tune into "Dallas" to see who shot J.R. (1980) ** 11 21 99 99 00 Announcement of 18 1/2 minute gap on Watergate tape (1973) ** 11 21 99 99 00 Honolulu Harbor discovered. (1794) ** 11 21 99 99 00 J. de Rozier makes first balloon flight (1783) ** 11 21 99 99 00 North Carolina becomes the 12th state (1789) ** 11 21 99 99 00 Opening of the Alcan Highway (1942) ** 11 21 99 99 00 The Verrazano Narrows opened to traffic, linking the New York City boroughs of Brooklyn and Staten Island (1964) ** 11 21 99 99 00 Thomas Edison announced the invention of a phonograph, which he dubbed a "talking machine." (1877) ** 11 22 99 99 00 Lebanon gains it's independence (1943) ** 11 22 99 99 00 the International Radio Telegraphic Convention adopts "SOS" as the new call for help (1906) ** 11 23 99 99 00 Fredrick County, Maryland repudiated the British Stamp Act (1765) ** 11 23 99 99 00 Joseph F. Smith, president of The Church of Jesus Christ of Latter-day Saints (The Mormons) was convicted of polygamy (1906) ** 11 23 99 99 00 Just past midnight, a sharp jolt causes Lake Merced to drop 30 feet. (1852) ** 11 23 99 99 00 Most rationing of food in the United States ended. (1945) ** 11 23 99 99 00 President Johnson proclaimed Nov. 25 a day of national mourning after the assassination of President Kennedy (1963) ** 11 23 99 99 00 US forces take Tarawa and Makin in the Gilbert Islands from Japanese hands (1943) ** 11 23 99 99 00 US helicopter force lands in Vietnam POW camp and trying to rescue US soldiers there, but the place was empty (1973) ** 11 23 99 99 00 patent granted for a process of making color photographs. (1863) ** 11 23 99 99 00 the People's Rebublic of China is seated in the UN security council (1971) ** 11 24 99 99 00 Abel Jansen Tasman discovers Van Deiman's Land (known as Tasmania since 1853) (1642) ** 11 24 99 99 00 Clyde Coleman received the patent for the electric self-starter for the automobile (1903) ** 11 24 99 99 00 Dallas nightclub owner Jack Ruby shot and mortally wounded Lee Harvey Oswald, accused assassin of President Kennedy (1963) ** 11 24 99 99 00 Hijacker Dan Cooper parachuted from a 727 over washington state with $200,000 in ransom and has not been heard from since (1971) ** 11 24 99 99 00 The River Thames freezes over (1434) ** 11 24 99 99 00 a fair is held on the Thames which had frozen over (1751) ** 11 24 99 99 00 patent granted to Joseph Glidden for barbed wire. (1874) ** 11 25 99 99 00 Alfred Nobel invents dynamite (1867) ** 11 25 99 99 00 Evaporated milk is patented (1884) ** 11 25 99 99 00 Fort Funston's 16-inch coastal guns removed. (1948) ** 11 25 99 99 00 George Papadopoulos, Greek President, was ousted (1973) ** 11 25 99 99 00 The body of President Kennedy, assassinated three days earlier, was laid to rest at Arlington National Cemetery (1963) ** 11 26 99 99 00 500,000 Jews were forced by the Nazis to live in a walled ghetto in Warsaw, Poland (1940) ** 11 26 99 99 00 A day of thanksgiving was set aside by President Washington to observe the adoption of the Constitution of the United States (1789) ** 11 26 99 99 00 A federal jury found Lynette Fromme guilty of trying to assassinate President Ford (1975) ** 11 26 99 99 00 Captain Cook discovers Maui (in the Sandwich Islands). (1778) ** 11 26 99 99 00 China enters the Korean conflict sending troops across the Yalu River (1950) ** 11 26 99 99 00 India adopts a constitution as a republic in the British Commonwealth (1949) ** 11 26 99 99 00 Public streetcar service began in New York City; fare 12 1/2 cents. (1832) ** 11 26 99 99 00 Willis Haviland Carrier, developed air-conditioning equipment. (1876) ** 11 27 99 99 00 Alfred Nobel establishes Nobel Prize (1895) ** 11 27 99 99 00 Friction match invented, England (1826) ** 11 27 99 99 00 Hoosac Railroad Tunnel completed in NW Massachusetts (1873) ** 11 27 99 99 00 New York's Pennsylvania Station opened; at that time, the world's largest railway terminal (1910) ** 11 27 99 99 00 Pope Paul VI was attacked at the Manila airport by a Bolivian painter disguised as a priest (1970) ** 11 27 99 99 00 The Senate voted to confirm Gerald Ford as vice president, succeeding Spiro Agnew who had resigned (1973) ** 11 27 99 99 00 The first tidal power station in the world, opens near St. Malo, France (1966) ** 11 28 99 99 00 Magellan begins crossing the Pacific Ocean. (1520) ** 11 28 99 99 00 Stalin, Roosevelt and Churchill meet in Tehran during WWII (1943) ** 11 28 99 99 00 nearly 500 people die in the Cocoanut Grove nightclub fire in Boston (1942) ** 11 29 99 99 00 Armenia was proclaimed a Soviet Socialist Republic (1920) ** 11 29 99 99 00 Colorado militia kill 150 peaceful Cheyenne Indians in Sand Creek massacre (1864) ** 11 29 99 99 00 Doctors Jackson and Martin of Boston publish a paper extolling the use of ether in surgery (1846) ** 11 29 99 99 00 King Tut's tomb opened (1922) ** 11 29 99 99 00 President Johnson named the Warren commission to investigate Kennedy's assassination (1963) ** 11 29 99 99 00 President elect Dwight Eisenhower visits Korea for inspection of the war (1952) ** 11 29 99 99 00 The Roman Catholic Church in the U.S. instituted sweeping changes in the liturgy, including the use of English instead of Latin (1964) ** 11 29 99 99 00 US receives rights to Pearl Harbor, on Oahu, Hawaii. (1887) ** 11 29 99 99 00 first underground A-bomb exploded in Nevada (1951) ** 11 30 99 99 00 Chinese communists capture Chungking (1949) ** 11 30 99 99 00 Samuel Chase, the first US supreme court justice to be impeached begins his trial. He is not convicted. (1804) ** 11 30 99 99 00 The United States and Britain sign preliminary peace treaty to end the Revolutionary War (1782) ** 12 01 99 99 00 56 million acres of land made into 17 national monuments by President Carter (1978) ** 12 01 99 99 00 Father Edward Flanagan founded boys town outside of Omaha with less than $100 (1917) ** 12 01 99 99 00 First national corn-husking championship, Alleman IA (1924) ** 12 01 99 99 00 First telephone installed in the White House (1878) ** 12 01 99 99 00 Lady Astor is the first woman to be sworn into the British Parliament (1919) ** 12 01 99 99 00 Martin Luther King Jr. leads black boycott of Montgomery buses (1955) ** 12 01 99 99 00 Ms. Rosa Parks is arrested for refusing to give up her front section bus seat to a white man in Montgomery, Alabama (1955) ** 12 01 99 99 00 The first Christmas club payment was made to Carlisle Trust Co. of Carlisle, PA (1909) ** 12 01 99 99 00 The first drive in gas station is open for business in Pittsburgh (1913) ** 12 01 99 99 00 the presidential election is turned over to the House of Representatives among John Q. Adams, Andrew Jackson, William Crawford and Henry Clay (1824) ** 12 02 99 99 00 1st controlled nuclear reaction at University of Chicago. (1942) ** 12 02 99 99 00 1st permanent artificial heart successfully implanted. (1982) ** 12 02 99 99 00 1st savings bank in US opens as the Philadelphia Savings Fund Society (1816) ** 12 02 99 99 00 A squash court at the University of Chicago is the site of the first sustained nuclear reaction (1942) ** 12 02 99 99 00 Barney Clark receives the first permanent artificial heart at the University of Utah Medical Center. He will die 112 days later. (1982) ** 12 02 99 99 00 Ford Motor Company unveiled its Model A automobile (1927) ** 12 02 99 99 00 Napoleon was crowned emperor of France by Pope Pius VII in a glittering ceremony at Notre Dame (1804) ** 12 02 99 99 00 Napoleon wins the battle of Austerlitz, defeating the Russo-Austrian army (1805) ** 12 02 99 99 00 President Jame Monroe lays down the philosophy later to be known as the Monroe Doctrine in a message to Congress (1823) ** 12 02 99 99 00 The Second Empire proclaimed in France with Napoleon III as emperor (1852) ** 12 02 99 99 00 an employee error releases 1 million gallons of radioactive water into an experimental nuclear reactor (1952) ** 12 03 99 99 00 A cloud of deadly methyl isocyanate vapor leaks from Union Carbide plant in Bhopal, India killing over 2000 people (1984) ** 12 03 99 99 00 Andrew Jackson elected president (1828) ** 12 03 99 99 00 First neon light display, Paris (1910) ** 12 03 99 99 00 First successful human heart transplant by Dr. Christian Barnard (South Africa, 1967) ** 12 03 99 99 00 Galileo invents the telescope. (1621) ** 12 03 99 99 00 Illinois becomes the 21st state (1818) ** 12 03 99 99 00 Joseph McCarthy goes too far in his attacks and is condemned by the U.S. Senate (1954) ** 12 03 99 99 00 Oberlin College, the first coeducational college in America, opens (1833) ** 12 03 99 99 00 The first showing of a Technicolor film (1922) ** 12 03 99 99 00 The game of BINGO is invented (1929) ** 12 04 99 99 00 Gen. Washington bids his officers farewell at Fraunce's Tavern, NYC (1783) ** 12 04 99 99 00 Panama Pacific International Exposition opens. (1915) ** 12 04 99 99 00 Woodrow Wilson leaves for Brest, France to become the first American president to visit a foreign country (1918) ** 12 05 99 99 00 A bicycle riding school opens in New York (1868) ** 12 05 99 99 00 Eighteenth Amendment repealed, ending Prohibition (1933) ** 12 05 99 99 00 Glenn Curtiss issued patent for the aileron after legal battle with the Wright brothers (1911) ** 12 05 99 99 00 Jim Bakker, TV evangelist for the PTL organization, indicted on 24 counts of fraud and conspiracy including diverting $4 million dollars of their followers money to support their own "lavish and extravagant" lifestyles (1988) ** 12 05 99 99 00 Phi Beta Kappa founded at William and Mary becoming the first US scholastic fraternity (1776) ** 12 05 99 99 00 The merger of the AF of L (American Federation of Labor) and CIO (Congress of Industrial Labor) becomes effective (1955) ** 12 06 99 99 00 Bangladesh (formerly East Pakistan) is recognized by India (1971) ** 12 06 99 99 00 City of Anaheim incorporated for a second time. (1876) ** 12 06 99 99 00 Columbus discovers the Dominican Republic (1492) ** 12 06 99 99 00 England and Ireland sign a peace treaty (1921) ** 12 06 99 99 00 Finland gains it's independence. (1917) ** 12 06 99 99 00 First sound recording made by Thomas Edison (1877) ** 12 06 99 99 00 French ammunition ship and a Belgian steamer collide and sink in Halifax harbor killing 1600 (1917) ** 12 07 99 99 00 Delaware is the first state to ratify the Constitution. (1787) ** 12 07 99 99 00 Formal declaration of war on Austria-Hungary by U.S. (1917) ** 12 07 99 99 00 Henry VI is crowned king of France (1431) ** 12 07 99 99 00 Japan attacks Pearl Harbor (1941) ** 12 07 99 99 00 Pigtails are abolished and calendar reformed by edict in China (1911) ** 12 07 99 99 00 at 11:41AM local time an earthquake measuring 6.9 on the Richter scale shook Soviet Armenia killing over 55000 people and leaving half a million homeless (1988) ** 12 08 99 99 00 Henry Laurens becomes the first person to be cremated after death in America (1792) ** 12 08 99 99 00 The Royal Gorge Bridge, the highest bridge above water, was first opened. It is 1053 feet above the Arkansas River in Colorado (1929) ** 12 09 99 99 00 1st Christmas Seals sold, in the Wilmington Post Office. (1907) ** 12 09 99 99 00 A charter was drafted whereby the French government would operate pawn shops (1777) ** 12 09 99 99 00 Ball-bearing roller skates patented (1884) ** 12 09 99 99 00 The Rocking F ranch of Nevada formally laid claim to all water in any clouds passing over it (1947) ** 12 09 99 99 00 The Virgin Mary first appears to the farmer Juan Diego and tells him that a church should be built on the spot where he stands. (1531) ** 12 09 99 99 00 The earliest date found (as of 1989) in the New World. It was reconstructed from a Mayan stone fragment found in Chiapa de Corzo in Mexico. (36 BC) ** 12 09 99 99 00 the John Birch Society was founded (1958) ** 12 10 99 99 00 Alfred Nobel's will establishes the Nobel prize in the five areas of chemistry, physics, medicine, literature and peace (1896) ** 12 10 99 99 00 Danuta Walesa accepts the Nobel Peace Prize on behalf of her husband Lech Walesa, the Polish labor leader (1983) ** 12 10 99 99 00 Martin Luther publicly burned the papal edict demanding he recant, or face excommunication (1520) ** 12 10 99 99 00 Metric system established in France (1799) ** 12 10 99 99 00 Mississippi becomes the 20th state (1817) ** 12 10 99 99 00 President Reagan and Mikhail Gorbachev sign intermediate-range nuclear missile treaty (1987) ** 12 10 99 99 00 The first distribution of the Nobel prize (1901) ** 12 10 99 99 00 Women allowed to vote in Wyoming Territory (1869) ** 12 10 99 99 00 a treaty is signed in Paris ending the Spanish-American War (1898) ** 12 11 99 99 00 First Class Mail now costs 13 cents (had been 10 cents). (1975) ** 12 11 99 99 00 Indiana becomes the 19th state (1816) ** 12 11 99 99 00 King Edward VIII abdicates the throne of Britain for the woman he loves (Mrs Wallace Simpson) (1936) ** 12 11 99 99 00 UNICEF is created (1946) ** 12 12 99 99 00 Atlantic first bridged by radio when Marconi in Newfoundland receives 's' in Morse code from the British Isles (1901) ** 12 12 99 99 00 Chiang Kai Shek declares war on Japan (1936) ** 12 12 99 99 00 Kenya gains it's independence. (1963) ** 12 12 99 99 00 Ludwig van Beethoven, age 22, pays the equivalent of 19 cents for his first music lesson from Franz Josheph Haydn in Vienna (1792) ** 12 12 99 99 00 Pennsylvania becomes the 2nd state (1787) ** 12 12 99 99 00 The Virgin Mary appears again to the farmer Juan Diego and instructs him to take the roses from a nearby bush to the Church as proof that she has visited him. (1531) ** 12 12 99 99 00 last Labrador Duck killed (1878) ** 12 13 99 99 00 Authorities in Poland impose martial law in a crackdown on the Solidarity Labor movement (1981) ** 12 13 99 99 00 Dartmouth College chartered (1769) ** 12 13 99 99 00 Madrid falls to Napoleon (1808) ** 12 13 99 99 00 New Zealand is discovered by Abel Tasman (1642) ** 12 13 99 99 00 Susan B. Anthony dollar, 1st US coin to honor a woman, issued. (1978) ** 12 13 99 99 00 The battle of Fredricksburg is won by the Confederacy (1862) ** 12 13 99 99 00 Woodrow Wilson becomes the first president to visit Europe while in office (1918) ** 12 14 99 99 00 Alabama becomes the 22nd state (1819) ** 12 14 99 99 00 Israel annexes Golan Heights (1982) ** 12 14 99 99 00 Roald Amundson is the first to reach the South Pole just 35 days ahead of Captain Scott of England (1911) ** 12 14 99 99 00 Soviet Union was dropped from the League of Nations (1939) ** 12 14 99 99 00 The United Nations general assembly voted to establish UN headquarters in New York (1946) ** 12 14 99 99 00 U.S. agrees to talk with the PLO after Yassir Arafat meets U.S. requirements for talks (1988) ** 12 14 99 99 00 US suspends government food shipments to Poland in reaction to declaration of martial law. (1982) ** 12 15 99 99 00 Argo Merchant oil spill (1976) ** 12 15 99 99 00 Bill of Rights ratified when Virginia gave its approval. (1791) ** 12 15 99 99 00 Patent granted to Mr. Edison for the phonograph. (1877) ** 12 16 99 99 00 Beginning of the big German offensive that resulted in the Battle of the Bulge (1944) ** 12 16 99 99 00 Boston Tea Party took place as colonists boarded a British ship in Boston Harbor and dumped more than 300 chests of tea overboard (1773) ** 12 16 99 99 00 By act of Senate, Napoleon is divorced from Josephine (1809) ** 12 16 99 99 00 Great White Fleet sails from Hampton Downs on it's World Cruise (1907) ** 12 16 99 99 00 Santa Anna is declared dictator of Mexico (1853) ** 12 16 99 99 00 The federal government halts swine flu vaccinations following reports of paralysis apparently linked to the vaccine (1976) ** 12 16 99 99 00 Thousands of people are massacred while protesting the Romanian government in the town of Timisoara, Romania. The country's borders are closed off. (1989) ** 12 17 99 99 00 Anaheim Township created in Los Angeles County. (1860) ** 12 17 99 99 00 New York City traffic regulation creates the 1st one-way street (1791) ** 12 17 99 99 00 Simon Bolivar becomes president of the Republic of Columbia (1819) ** 12 18 99 99 00 Death penalty for murder is abolished in Britain (1969) ** 12 18 99 99 00 Japan admitted to the United Nations (1956) ** 12 18 99 99 00 Napoleon arrives in Paris after abandoning his troops in Russia (1812) ** 12 18 99 99 00 New Jersey becomes the 3rd state by ratifying the Constitution (1787) ** 12 18 99 99 00 Prohibition Amendment passes (1917) ** 12 18 99 99 00 Scots are defeated at Clifton Moor (1745) ** 12 18 99 99 00 The British take Fort Niagara in the War of 1812 (1813) ** 12 18 99 99 00 the 13th Amendment to the Constitution abolishing slavery was declared in effect (1865) ** 12 19 99 99 00 Corrugated paper patented (1871) ** 12 19 99 99 00 War breaks out in Indochina as Ho Chi Minh's troops launch widespread attacks against the French. (1946) ** 12 19 99 99 00 Washington settles his troops at Valley Forge for the winter. (1777) ** 12 20 99 99 00 Savannah Georgia is evacuated as Sherman's army approaches (1864) ** 12 20 99 99 00 South Carolina becomes the first state to secede from the Union (1860) ** 12 20 99 99 00 The Gregorian Calendar was introduced in France (1582) ** 12 20 99 99 00 The Union of Soviet Socialist Republics is formed (1922) ** 12 20 99 99 00 U.S. takes possession ~1,000,000 sq. miles of Louisiana for ~$20/sq.mi. The purchase more than doubles the area of the Country. (1803) ** 12 20 99 99 00 the Berlin wall is opened for the first time as people from the West are given a day leave to go to the East (1963) ** 12 21 99 99 00 1st crossword puzzle (with 32 clues), printed in New York World (1913) ** 12 21 99 99 00 A bomb explodes on Pan Am flight 103 which then crashes into Lockerbie, Scotland destroying 40 houses and their occupants as well as all 258 aboard the plane. (1988) ** 12 21 99 99 00 Charles de Gaulle was elected to a seven year term as first president of the Fifth Republic of France (1958) ** 12 21 99 99 00 Pierre and Marie Curie discovered radium (1898) ** 12 21 99 99 00 The pilgrims go ashore for the first time at Plymouth Mass. (1620) ** 12 22 99 99 00 Bernhard Goetz shoots four black youths on a Manhattan subway, claiming they were about to rob him (1984) ** 12 22 99 99 00 Brandenburg Gate is opened for the first time since the Berlin Wall was erected. (1989) ** 12 22 99 99 00 Ceausescu, Romanian dictator, overthrown by popular movement (1989) ** 12 22 99 99 00 Dostoyevsky, Russian author, sentenced to die at age 27 but lives until 1881 (1849) ** 12 22 99 99 00 General Sherman takes Savannah, Georgia (1864) ** 12 22 99 99 00 German's demand surrender of Americans holding Bastogne, Belgium during the Battle of the Bulge. Brigadier General Anthony C. McAuliffe answers with the historic message "Nuts!" and holds out for 4 more days (1944) ** 12 22 99 99 00 The American colonies organize a Continental naval fleet under the command of Ezek Hopkins (1775) ** 12 23 99 99 00 George Washington resigns as commander-in-chief of the army and retires to his home at Mount Vernon, Va. (1783) ** 12 23 99 99 00 The transistor was invented by Walter Bratain, John Bardeen and William Shockley (1947) ** 12 24 99 99 00 First solar-heated house (first house specifically engineered in Western building construction for solar heat, to be specific) (1948) ** 12 24 99 99 00 KKK formed in Pulaski, Tenn (1865) ** 12 24 99 99 00 Part of the capitol building and the whole Library of Congress destroyed by fire (1851) ** 12 24 99 99 00 The war of 1812 officially ended as Britain and the US signed the treatey of Ghent in Belgium. Slowness of communications allowed the battle of New Orleans to be fought the following month. (1814) ** 12 24 99 99 00 the back-pedal brake for bicycles is patented (1889) ** 12 25 99 99 00 Charlemagne is crowned emperor of the West by Pope Leo III (800) ** 12 25 99 99 00 Denny's fast food restaurants closed for the first time in 35 years. Because of their "Always Open" policy there are some Denny's that don't even have locks. (1988) ** 12 25 99 99 00 First recorded celibration of Christmas on this day takes place in Rome (336) ** 12 25 99 99 00 Hirohito becomes emperor of Japan (1926) ** 12 25 99 99 00 Washington crosses the Delaware and surprises the Hessians. (1776) ** 12 26 99 99 00 George Washington defeats the Hessians at Trenton (1776) ** 12 26 99 99 00 James Mason invents the 1st American coffee percolator. (1865) ** 12 27 99 99 00 Carrie Nation's first raid (1900) ** 12 27 99 99 00 Darwin begins his voyage onboard the HMS Beagle. (1831) ** 12 27 99 99 00 Ether first used as anesthetic in childbirth (1845) ** 12 27 99 99 00 Radio City Music Hall in New York City opens. (1932) ** 12 27 99 99 00 Stalin ousts Trotsky (1937) ** 12 28 99 99 00 58th parallel is crossed by advancing Chinese forces in Korea (1950) ** 12 28 99 99 00 City Hall dedicated by Mayor James Rolph. (1915) ** 12 28 99 99 00 Independence of Mexico recognized by Spain (1836) ** 12 28 99 99 00 Iowa becomes the 29th state (1846) ** 12 28 99 99 00 Trans-Pacific cable links Hawaii to US. (1902) ** 12 28 99 99 00 a patent for chewing gum is granted to William Semple. (1669) ** 12 29 99 99 00 Discovery of heavy water (deuterium) (1931) ** 12 29 99 99 00 Glacier National Park ranger fatally shoots snowmobile (1974) ** 12 29 99 99 00 Massacre at Wounded knee (1890) ** 12 29 99 99 00 Texas becomes the 28th state (1845) ** 12 30 99 99 00 First Los Angeles freeway dedicated (1940) ** 12 30 99 99 00 Gadsden Purchase signed. (1853) ** 12 31 99 99 00 At noon the Panama Canal will be given over to the Panamanians (1999) ** 12 31 99 99 00 Benedict Arnold's attack on Quebec fails (1775) ** 12 31 99 99 00 Canadian prohibition (1917) ** 12 31 99 99 00 Cornerstone laid for Iolani Palace (only royal palace in US). (1879) ** 12 31 99 99 00 Edison gives public demonstration of his incandescent lamp. (1879) ** 12 31 99 99 00 Standard US letter postage goes to $.13 (1975) ** 12 31 99 99 00 Winterland closes its doors (1978) gcal-4.1/data/dates/events50000664000000000000000000010667412353520611012516 00000000000000# CalenTool V2.2 - nflag=1 range=9,10 - DO NOT REMOVE THIS LINE # $Header: events5,v 1.1 91/03/07 16:19:09 billr Exp $ # Notable events in history (Sept-Oct) # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # All dates in this file are New Style unless otherwise noted. # Some duplicates may exist where I haven't been able to verify which # one is correct. # ** 09 01 99 99 00 A coup in Libya brought Moammar Gadhafi to power. (1969) ** 09 01 99 99 00 Aaron Burr aquitted of charges of plotting to set up an empire. (1807) ** 09 01 99 99 00 California Constitutional Convention held in Monterey. (1849) ** 09 01 99 99 00 Germany invades Poland, beginning World War II (1939) ** 09 01 99 99 00 Joshua A. Norton proclaims himself Emperor Norton I (1859) ** 09 01 99 99 00 Miss Emma Nutt becomes the first women telephone operator in America. Until now, all operators were men. (1878) ** 09 01 99 99 00 Montrose defeats the Covenanters at Tippermuir in Scotland (1644) ** 09 01 99 99 00 Peace treaty signed with the Zulus by Britain (1879) ** 09 02 99 99 00 Alabama Gov. George Wallace prevented the integration of Tuskegee High School by surrounding it with state troopers (1963) ** 09 02 99 99 00 Great Britain adopts the Gregorian Calendar (1752) ** 09 02 99 99 00 Japan signs unconditional surrender aboard US battleship "Missouri" (1945) ** 09 02 99 99 00 The great London fire destroyed around two thirds of London (1666) ** 09 02 99 99 00 US Treasury Department established by Congress. (1789) ** 09 02 99 99 00 V.P. Theodore Roosevelt offered the advice, "Speak softly and carry a big stick," in a speech at the Minnesota State Fair (1901) ** 09 03 99 99 00 Allied forces invade Italy in World War II (1943) ** 09 03 99 99 00 England and the United States sign the treaty of Paris declaring US independence and ending the Revolutionary War (1783) ** 09 03 99 99 00 England declares war on Germany. (1939) ** 09 03 99 99 00 Motorists in Sweden began driving on the right rather than the left (1967) ** 09 03 99 99 00 Pope John Paul I was officially installed as the 264th supreme pontiff of the Roman Catholic Church (1978) ** 09 03 99 99 00 Richard the Lionhearted was crowned king of England (1189) ** 09 04 99 99 00 Apache leader Geronomino surrenders (1896) ** 09 04 99 99 00 Ford Motor Co. began selling its ill-fated Edsel. (1957) ** 09 04 99 99 00 George Eastman patents 1st rollfilm camera & registers "Kodak". (1888) ** 09 04 99 99 00 Los Angeles founded in the Valley of Smokes (Indian Name) (1781) ** 09 04 99 99 00 Nine blacks denied entry into Central High School in Arkansas. (1957) ** 09 05 99 99 00 11 Israeli athletes and 5 Arab guerrillas who had taken them hostage were killed in a shoot-out at the summer Olympics in Munich (1972) ** 09 05 99 99 00 1st gasoline pump is delivered to a gasoline dealer. (1885) ** 09 05 99 99 00 Battle of Virginia Capes, where the French Fleet defeats the British rescue fleet, trapping Cornwallis at Yorktown (1781) ** 09 05 99 99 00 First Continental Congress convened (Philadelphia, 1774) ** 09 05 99 99 00 Iva Toguri D'Aquino, Japanese-American suspected of being Tokyo Rose, was arrested in Yokohama (1945) ** 09 05 99 99 00 Kennedy orders resumption of underground nuclear tests (1961) ** 09 05 99 99 00 President Gerald Ford escaped an attempt on his life by Lynette "Squeaky" Fromme in Sacramento, California (1975) ** 09 05 99 99 00 Russia's Peter the Great imposed a tax on beards. (1698) ** 09 05 99 99 00 Sam Houston was elected president of the Republic of Texas (1836) ** 09 05 99 99 00 The first battle of the Marne began in World War I (1914) ** 09 05 99 99 00 The nation's first Labor day parade was held in New York (1882) ** 09 06 99 99 00 Word is received that Perry has reached the North Pole and died (1909) ** 09 07 99 99 00 Desmond Tutu was installed as the first black to lead the Anglican Church in South Africa (1986) ** 09 07 99 99 00 Fire storms surround the Old Faithful Lodge complex in Yellowstone National Park as massive fires continue to burn out of control in Western forest lands. The Lodge survives. (1988) ** 09 07 99 99 00 German begins its blitz on London and will continue bombing every night for two more months (1940) ** 09 07 99 99 00 The Boxer Rebellion in China ends (1901) ** 09 08 99 99 00 1st US Air Mail service begins. (1920) ** 09 08 99 99 00 1st permanent settlement in US founded at St Augustine, Florida (1565) ** 09 08 99 99 00 Feast of the Nativity of the Virgin Mary, instituted (695) ** 09 08 99 99 00 Gerald R. Ford pardons former President Richard M. Nixon (1974) ** 09 08 99 99 00 Harvard College is established with the help of 800 pounds from Rev. John Harvard (1636) ** 09 08 99 99 00 Lincoln makes a speech about when you can fool people. (1858) ** 09 08 99 99 00 a small English fleet takes New Amsterdam and names it New York (1664) ** 09 09 99 99 00 27 year old Abe Lincoln received license to practice law (1836) ** 09 09 99 99 00 Alfred Dreyfus went on trial a second time for disclosing French secrets (1899) ** 09 09 99 99 00 California becomes the 31st state (1850) ** 09 09 99 99 00 Continental Congress decrees that United Colonies be called United States (1776) ** 09 09 99 99 00 Ed Greer, a Hughes Aircraft electronics engineer, goes to lunch and never returns. A party is held in his honor every year celebrating his escape from the corporate world. (1981) ** 09 10 99 99 00 Elias Howe receives patent for his sewing machine. (1846) ** 09 10 99 99 00 Ellis Island opens as a park honoring the immigrants (1990) ** 09 10 99 99 00 John Smith elected president of the Jamestown colony council. (1608) ** 09 10 99 99 00 Lincoln Highway opens as 1st paved coast-to-coast highway. (1913) ** 09 10 99 99 00 Mormons, embittered by religious persecution, attack and kill Gentile wagon train in what was to become known as the Mountain Meadows Massacre. (1857) ** 09 10 99 99 00 Swanson sells it's first "TV Dinner". (1953) ** 09 11 99 99 00 1st commercially successful electric bus line opens, in Hollywood. (1910) ** 09 11 99 99 00 Alexander Hamilton was appointed the 1st U.S. sec. of the Treasury. (1789) ** 09 11 99 99 00 Aloha Tower dedicated (in Honolulu). (1926) ** 09 11 99 99 00 Americans defeated at Brandywine, Pennsylvania by General Howe (1777) ** 09 11 99 99 00 Chinese and Indian forces engage in heavy fighting on the border of Sikkim in the Himalayas (1967) ** 09 11 99 99 00 Hungary, under pressure from refugees, suspends treaty with East Germany and lets thousands of "vacationing" East Germans across the border into West Germany (1989) ** 09 11 99 99 00 Sebastopol is taken by Allies after capitulation of the Russian forces. (1855) ** 09 11 99 99 00 U.S. captures British flotilla on Lake Champlain (1814) ** 09 12 99 99 00 Canyonlands National Park is established (1964) ** 09 12 99 99 00 Emperor Haile Selassie of Ethiopia is deposed by military coup (1974) ** 09 12 99 99 00 English explorer Henry Hudson sailed into the river that now bears his name (1609) ** 09 12 99 99 00 German paratroopers rescue Mussolini from captivity in Rome (1943) ** 09 12 99 99 00 Germany annexes Sudentenland (1938) ** 09 12 99 99 00 Joseph Cicippio, acting comptroller at the American University in Beirut, is kidnapped in Lebanon (1986) ** 09 12 99 99 00 Steven Biko, black student leader, dies whilst in the custody of the South African security services (1977) ** 09 13 99 99 00 136.4 degrees F (el Azizia, Libya, 1922) ** 09 13 99 99 00 British defeat the French at Abraham near Quebec City (1788) ** 09 13 99 99 00 Building of Hadrian's Wall began (122) ** 09 13 99 99 00 Chiang Kai-Shek becomes president of China (1943) ** 09 13 99 99 00 In the Caribbean hurricane Gilbert grows to a category 5 hurricane with 175 mph sustained winds and the lowest recorded barometric pressure ever recorded in the Western Hemisphere, 26.22 inches of mercury. (1988) ** 09 13 99 99 00 New York City becomes the capitol of the United States. (1788) ** 09 13 99 99 00 first lobotomy performed (1848) ** 09 14 99 99 00 1st lighthouse in US is lit (in Boston Harbor). (1716) ** 09 14 99 99 00 Benjamin Franklin sent to France as American minister (1778) ** 09 14 99 99 00 Francis Scott Key writes words to "Star Spangled Banner" (1814) ** 09 14 99 99 00 General Winfield Scott and his U.S. forces take control of Mexico City (1847) ** 09 14 99 99 00 Salem, Massachusetts, founded (1629) ** 09 14 99 99 00 Selective Service Act establishes first peacetime draft (1940) ** 09 14 99 99 00 While in New York, Henry Bliss becomes 1st automobile fatality (1899) ** 09 14 99 99 00 the typewriter ribbon is patented. (1886) ** 09 15 99 99 00 1789, The U.S. Government adopts the "Great Seal of the United States", taking it from Congress and placing it in the custody of the Secretary of State ** 09 15 99 99 00 Costa Rica, El Salvador, Guatamala, Honduras & Nicaragua all gain their independence (1821) ** 09 15 99 99 00 Four children were killed when a bomb went off during services at a black Baptist church in Alabama (1963) ** 09 15 99 99 00 New York is taken by General Howe (1776) ** 09 15 99 99 00 Soviet Premier Nikita Khrushchev begins 13 day tour of U.S. (1959) ** 09 15 99 99 00 The Nuremberg Laws deprived German Jews of their citizenship and made the swastika the official symbol of Nazi Germany (1935) ** 09 15 99 99 00 The U.S. Foreign Affairs Department becomes the U.S. State Department (1789) ** 09 15 99 99 00 The bank rate in Germany exceeds 90% (1923) ** 09 15 99 99 00 tanks were used in battle for the first time, at Flers in the Somme Offensive, by the British Machine Gun Corps (1916) ** 09 16 99 99 00 After two false starts, 149 Pilgrims set forth from England aboard the Mayflower (1620) ** 09 16 99 99 00 Great Seal of the United States is used for 1st time. (1782) ** 09 16 99 99 00 Patent is issued for the typesetting machine. (1857) ** 09 16 99 99 00 The Massachusetts village of Shawmut changed its name to Boston. (1630) ** 09 16 99 99 00 the American Legion is incorporated. (1919) ** 09 17 99 99 00 Battle of Antietam (1862) ** 09 17 99 99 00 Jay Cooke & Co. fails, causing a securities panic (1873) ** 09 17 99 99 00 The American Kennel club was founded (1884) ** 09 17 99 99 00 US Constitution is adopted. (1787) ** 09 17 99 99 00 Vanessa Williams became the first black to be crowned Miss America. (1983) ** 09 18 99 99 00 "The New York Times" goes on sale, at 2 cents a copy. (1851) ** 09 18 99 99 00 Chile gains it's independence. (1810) ** 09 18 99 99 00 Newspaper heiress Patricia Hearst was captured in San Francisco by the FBI, nineteen months after she was kidnapped (1975) ** 09 18 99 99 00 Nikita Khrushchev says, "Those who wait for that (Russia rejecting communism) must wait until a shrimp learns to whistle." (1955) ** 09 18 99 99 00 Pres. George Washington laid the cornerstone of the U.S. Capitol. (1793) ** 09 18 99 99 00 The French formally surrendered Quebec to the British. (1759) ** 09 19 99 99 00 1st commercial laundry established, in Oakland, California. (1849) ** 09 19 99 99 00 A 7.8 magnitude earthquake off the west coast of Mexico does extensive damage to Mexico City (1985) ** 09 19 99 99 00 Bruno Hauptmann was arrested in New York and charged with the kidnap-murder of the Lindbergh infant (1934) ** 09 19 99 99 00 President Lincoln's body was removed to go to its permanent resting place in Springfield, Illinois (1871) ** 09 20 99 99 00 Black student, James Meredith, was blocked from enrolling at the University of Mississippi; he was later admitted (1962) ** 09 20 99 99 00 Equal Rights Party nominates Belva Lockwood for President (1884) ** 09 20 99 99 00 First meeting of American Association for the Advancement of Science (1848) ** 09 20 99 99 00 First meeting of National Research Council (1916) ** 09 20 99 99 00 Magellan leaves Spain on first circumnavigation (1519) ** 09 20 99 99 00 Patent granted on the electric range. (1859) ** 09 20 99 99 00 US frigate "Constitution" (Old Ironsides) launched in Boston. (1797) ** 09 21 99 99 00 1st auto manufacturer opens -- Duryea Motor Wagon Company. (1895) ** 09 21 99 99 00 Johann Ostermeyer patents his invention, the flashbulb. (1930) ** 09 21 99 99 00 Stonehenge was auctioned off to C. H. E. Chubb, of Salisbury for 6,600 pounds. (1915) ** 09 21 99 99 00 US Helicopters attack Iranian ship laying mines in the Persian Gulf (1987) ** 09 21 99 99 00 the nuclear submarine "Nautilus" is commissioned. (1954) ** 09 22 99 99 00 Allied Forces form independent nation West Germany (1953) ** 09 22 99 99 00 First Soviet atomic bomb explodes (1949) ** 09 22 99 99 00 General Idi Amin gives Uganda's 8000 Asians 48 hours to leave the country (1972) ** 09 22 99 99 00 Joseph Smith, founder of The Church of Jesus Christ of Latter-day Saints (the Mormons), receives the plates from which the Book of Mormon was translated (1827) ** 09 22 99 99 00 Patent is granted for the Ice Cream Cone. (1903) ** 09 22 99 99 00 President Lincoln issues the Emancipation Proclamation (1863) ** 09 22 99 99 00 Special prosecutor Leon Jeworski subpoenas President Nixon (1974) ** 09 22 99 99 00 The Mustang Ranch, a famous Nevada brothel, is shutdown by the IRS for past due taxes. A motion to have the government run the lucrative business fails for some reason. :-) (1990) ** 09 22 99 99 00 Two men and seven women were executed for witchcraft in Salem, Massachusetts. One was pressed to death for standing mute while the others were hung. (1692) ** 09 23 99 99 00 Harvard College held its first commencement. (1642) ** 09 23 99 99 00 John Andre reveals Benedict Arnold's plot to betray West Point. (1780) ** 09 23 99 99 00 Naval engagement between 'Bonhomme Richard' and 'HMS Serepis'. (1779) ** 09 23 99 99 00 Phillippine President Ferdinand Marcos declares martial law (1972) ** 09 23 99 99 00 Truman announces that the Soviets have set off their first atomic bomb within the last few weeks (1949) ** 09 23 99 99 00 V.P. Nixon denies campaign fund fraud with his "Checkers" speech. (1952) ** 09 24 99 99 00 1st atomic powered aircraft carrier, the "Enterprise", is launched. (1960) ** 09 24 99 99 00 1st round-the-world trip by a woman on a bicycle (took 15 months). (1895) ** 09 24 99 99 00 1st round-the-world trip by yacht (Cornelius Vanderbilt). (1853) ** 09 24 99 99 00 Barbara Harris, is elected the first woman bishop in the Episcopal Church (1988) ** 09 24 99 99 00 Black Friday: Thousands of business are ruined after Jay Gould and James Fisk try to corner the Gold market (1869) ** 09 24 99 99 00 Congress creates the Post Office. (1789) ** 09 24 99 99 00 Congress passes the First Judiciary Act which provides for an Attorney General and a Supreme Court (1789) ** 09 24 99 99 00 Patricia Hearst is sentenced to seven years in prison (she will serve only 22 months before being released under presidential order from President Carter) (1976) ** 09 24 99 99 00 President Eisenhower suffers a heart attack after during a vacation in Denver (1955) ** 09 24 99 99 00 The USS Enterprise, the first nuclear powered aircraft carrier, is launched in Newport News, Va. (1960) ** 09 24 99 99 00 The trail of the Chicago Eight (later seven) begins (1969) ** 09 24 99 99 00 Wilford Woodruff, president of The Church of Jesus Christ of Latter-day Saints issues a declaration affirming that the Church no longer teaches nor performs plural marriage. (1890) ** 09 25 99 99 00 Columbus sailed on his second voyage to America. (1493) ** 09 25 99 99 00 King Harold defeats Tostig at Stamford Bridge (1066) ** 09 25 99 99 00 Pres. Harrison signed a measure establishing Sequoia National Park. (1890) ** 09 25 99 99 00 Sandra Day O'Connor becomes first woman on U.S. Supreme Court (1981) ** 09 25 99 99 00 The first session of the first Congress of the United States met in New York and voted 10 amendments to the constitution (the Bill of Rights) (1789) ** 09 25 99 99 00 Transatlantic telephone service begins (1956) ** 09 25 99 99 00 Twelfth amendment (Presidential elections) is passed (1804) ** 09 25 99 99 00 Vasco Nunez de Balboa is the 1st European to sail the Pacific Ocean. (1513) ** 09 26 99 99 00 Sir Francis Drake arrives with ships full of plunder from Spain (1580) ** 09 26 99 99 00 Thomas Jefferson was appointed America's first secretary of State. (1789) ** 09 26 99 99 00 United Nations troops in the Korean War recaptured the South Korean capitol of Seoul from the North Koreans (1950) ** 09 26 99 99 00 two dragons are said to have fought at "Sharpfight Meadow" at Little Conrad in Suffolk (1449) ** 09 27 99 99 00 Democratic National Committee voted to admit women. (1919) ** 09 27 99 99 00 First passenger conveyed by locomotive (England, 1825) ** 09 27 99 99 00 King Constantine I of Greece abdicates (1922) ** 09 27 99 99 00 Royal Albert Docks lighted by twenty-six electric lamps (1880) ** 09 27 99 99 00 The Royal navy sinks the Bismarck off the Brest Coast (1941) ** 09 27 99 99 00 The ocean liner Queen Elizabeth was launched at Glasgow. (1938) ** 09 27 99 99 00 William Howe occupies Philadelphia (1777) ** 09 28 99 99 00 "God save the King" sung for the first time following the defeat of English forces by Jacobites (1745) ** 09 28 99 99 00 American forces backed by a French fleet begin their siege of Yorktown Heights, Virgina (1781) ** 09 28 99 99 00 Betty Ford, First Lady, undergoes a mastectomy at Bethesda Naval Hospital (1974) ** 09 28 99 99 00 Germany and the Soviet Union agree on how to partition Poland (1939) ** 09 28 99 99 00 Greek soldier runs over 26 miles to report Persian defeat at Marathon, then dies (490 BC) ** 09 28 99 99 00 Portuguese navigator Juan Rodriguez Cabrilo sails into the bay on which San diego is now located (1542) ** 09 28 99 99 00 The U.N. Security Council unanimously adopts a resolution the Iraq and Iran should cease hostilities (1980) ** 09 28 99 99 00 William the Conqueror invades England (1066) ** 09 28 99 99 00 flogging is abolished as a form of punishment in the U.S. Navy (1850) ** 09 29 99 99 00 Cyanide laced Tylenol capsules killed seven in Chicago. (1982) ** 09 29 99 99 00 David Belasco, impressario, opens his first theater (1902) ** 09 29 99 99 00 Parliament of one day, King Richard II is deposed (1399) ** 09 29 99 99 00 The London Police, remodeled by Sir Robert Peel, begin duty (1829) ** 09 29 99 99 00 The U.S. War Department establishes a regular army of several hundred soldiers (1789) ** 09 29 99 99 00 U.S. and Itay sign armistice treaty on a ship off the coast of Malta (1943) ** 09 30 99 99 00 Franklin D. Roosevelt dedicates Boulder Dam (1935) ** 09 30 99 99 00 Mikhail Gorbachev retires President Andrei Gromyko from the Politburo and fires other old guard leaders in a Kremlin shakeup (1989) ** 09 30 99 99 00 New York City fluoridates its water to the protest of many (1965) ** 09 30 99 99 00 The Berlin Airlift ends (1949) ** 09 30 99 99 00 The Siege of Yorktown, Virginia, begins (1781) ** 09 30 99 99 00 The first U. S. hydroelectric power plant was opened in Appleton Wisconson. A single dynamo of 180 lights each of ten candle power was erected. (1882) ** 09 30 99 99 00 The first execution in the English American Colonies takes place as John Billington is hanged (1630) ** 09 30 99 99 00 The first tooth is extracted under anesthesia in Charleston, Mass (1846) ** 09 30 99 99 00 The verdicts of the Nuremberg trials are announced, finding 22 top Nazi leaders guilty of war crimes (1946) ** 10 01 99 99 00 1st postcards are issued in Vienna. (1869) ** 10 01 99 99 00 General Franco is appointed Spain's chief of state by Spanish rebels (1936) ** 10 01 99 99 00 Henry Ford introduces the Model T car. (1908) ** 10 01 99 99 00 Henry Huntington buys the Los Angeles Railway. (1898) ** 10 01 99 99 00 Nigeria gains it's independence. (1960) ** 10 01 99 99 00 Spain sells Louisiana to France in a secret treaty (1800) ** 10 01 99 99 00 Special delivery mail service began in the United States. (1885) ** 10 01 99 99 00 The Nuclear Test Ban Treaty, signed by the U. S., Britain and U. S. S. R. comes into effect (1963) ** 10 01 99 99 00 Troops dispatched to arrest Brigham Young for lewdly cohabitating with 16 young women (1871) ** 10 01 99 99 00 Walt Disney World in Orlando, Florida opens. (1971) ** 10 01 99 99 00 Yosemite becomes a National Park. (1896) ** 10 02 99 99 00 Darwin returns to England aboard the HMS Beagle. (1836) ** 10 02 99 99 00 Ferdinand Foch, believed to be the leader responsible for Allies winning World War I (1851) ** 10 02 99 99 00 German army began Operation Typhoon (all-out drive against Moscow). (1941) ** 10 02 99 99 00 Guinea gains it's independence. (1958) ** 10 02 99 99 00 Hans Lippershey offers the Dutch government a new invention -- the telescope (1608) ** 10 02 99 99 00 Rome and its provinces are formally made part of Italy and Rome is declared the capital (1870) ** 10 02 99 99 00 This is the first day for the new united Germany (reunification day) (1990) ** 10 02 99 99 00 Thurgood Marshall sworn as first black Supreme Court Justice (1967) ** 10 03 99 99 00 A national flag day was held for the Belgian Relief Fund in England (this was probably the world's first flag day) (1914) ** 10 03 99 99 00 Federal Income Tax is signed into law (at 1%). (1913) ** 10 03 99 99 00 Lincoln designates the last Thursday in November as Thanksgiving Day (1863) ** 10 03 99 99 00 Serbo-Croat-Slovene Kingdom becomes the country of Yugoslavia (1929) ** 10 03 99 99 00 The first British atomic bomb test (1952) ** 10 03 99 99 00 Washington proclaims the 1st national Thanksgiving Day on Nov 26 (1789) ** 10 04 99 99 00 Crimean war begins (1853) ** 10 04 99 99 00 George Washington is defeated at Germantown, Pennsylvania (1777) ** 10 04 99 99 00 The bill establishing Dinosaur National Monument is signed (1915) ** 10 05 99 99 00 Former PTL evangelist Jim Bakker was convicted of using his television show to defraud followers of $3.7 million (1989) ** 10 05 99 99 00 The ABM early warning system, Thule Greenland, detects the moonrise as a large Russian missile contingent headed for the US (1960) ** 10 05 99 99 00 The Revolutionary Calendar is adopted in France. This day becomes 14 Vendemiaire (grape harvest) Year II. Months were named for seasonal characteristics and years from the beginning of the revolution. (1793) ** 10 05 99 99 00 part of a fuel core of an experimental breeder reactor near Detroit melts down (1966) ** 10 06 99 99 00 Antioch College is the first public school to admit both men and women (1853) ** 10 06 99 99 00 Israel is attacked by the forces of Egypt and Syria, 4th Israeli war begins (1973) ** 10 06 99 99 00 LSD is made an illegal drug (1966) ** 10 06 99 99 00 Pope John Paul II became the 1st pontiff to visit the White House. (1979) ** 10 06 99 99 00 the Mormons abolish polygamy by general conference declaration that the president of the church's declaration of Sep 24 is "authoritative and binding" (1890) ** 10 07 99 99 00 Foundation of German Democratic Republic (1949) ** 10 07 99 99 00 Granite Railway (1st chartered railway in US) begins operations (1826) ** 10 07 99 99 00 Maryland Governor Marvin Mandel sent to prison on fraud charges (1977) ** 10 07 99 99 00 Mother Teresa of Calcutta awarded the Nobel Peace Prize (1979) ** 10 07 99 99 00 Police stop the car of Senator Wilbur Mills, stripper Fanne Fox jumps into fountain (1974) ** 10 07 99 99 00 The Windscale nuclear pile north of Liverpool, England catches fire and burns for several days releasing radiation. 39 cancer deaths attributed to the leak. (1957) ** 10 08 99 99 00 Dow Jones starts reporting an average of industrial stocks. (1896) ** 10 08 99 99 00 First VisiCalc prototype (1978) ** 10 08 99 99 00 Great Chicago Fire (1871) ** 10 08 99 99 00 Mohammed, the prophet of Islam makes public entrance to Medina marking the beginning of the Moslem era (622) ** 10 08 99 99 00 The Equal Rights Amendment ratification deadline is extended (1978) ** 10 08 99 99 00 The Great Fire destroys over 4 square miles of Chicago. (1871) ** 10 09 99 99 00 First two-way telephone conversation (1876) ** 10 09 99 99 00 James Watt forced to resign as Secretary of the Interior (1983) ** 10 09 99 99 00 Leif Ericson discovers "Vinland" (possibly New England) (1000) ** 10 09 99 99 00 Mission Delores founded. (1776) ** 10 09 99 99 00 The Collegiate School of Connecticut (later Yale Univ.) was chartered in New Haven (1701) ** 10 09 99 99 00 The Washington Monument opened. (1888) ** 10 09 99 99 00 The first generator at Boulder (later Hoover) Dam began transmitting electricity to Los Angeles (1936) ** 10 10 99 99 00 Spiro T. Agnew resigns as Vice-President due to income tax fraud (1973) ** 10 10 99 99 00 the Manchu Dynasty is overthrown in China. (1911) ** 10 11 99 99 00 Daughters of the American Revolution founded. (1890) ** 10 11 99 99 00 The Gang of Four are arrested in Peking (1976) ** 10 11 99 99 00 The first steam-powered ferry was put into operation between New York City and Hoboken, New Jersey (1811) ** 10 11 99 99 00 The second Vatican Eccumenical Council opens in Rome (1962) ** 10 12 99 99 00 American naval forces defeat the Japanese at the Battle of Cape Esperance (1942) ** 10 12 99 99 00 Columbus lands in Bahamas (1492) ** 10 12 99 99 00 John Dillinger, bank robber, escapes Allen County, Ohio jail with the help of his gang and killed the Sheriff (1933) ** 10 12 99 99 00 Khrushchev pounds his desk with shoe during a speech to the UN (1960) ** 10 12 99 99 00 President Nixon nominated Gerald Ford of Michigan to succeed Spiro Agnew as vice-president (1973) ** 10 13 99 99 00 Dolly Parton's band uniform number 39 was retired by the Sevier County High School. She played the snare drum. (1977) ** 10 13 99 99 00 George Washington lays the cornerstone for the Executive Mansion, later to be called the White House (1792) ** 10 13 99 99 00 Italy declares war on Germany (1943) ** 10 13 99 99 00 The Jewish organization B'nai B'rith was founded in New York. (1843) ** 10 13 99 99 00 The stockmarket falls 190 points in a minor crash (1989) ** 10 14 99 99 00 1st declaration of colonial rights in America. (1774) ** 10 14 99 99 00 Battle of Hastings, in which William the Conqueror wins England (1066) ** 10 14 99 99 00 British Computer Society founded (1957) ** 10 14 99 99 00 Martin Luther King Jr. was named winner of the Nobel Peace Prize. (1964) ** 10 14 99 99 00 President Ford escaped injury when his limousine was hit broadside by a car in Hartford, Conn (1975) ** 10 15 99 99 00 First draft card burned (1965) ** 10 15 99 99 00 Florence Nightingale is solicited to organize nurses in Crimea (1854) ** 10 15 99 99 00 Grace Bedell writes to Lincoln, tells him to grow a beard. (1860) ** 10 15 99 99 00 The first swarm of killer bees to be found in the U. S. is destroyed in Texas. (1990) ** 10 16 99 99 00 China's first atomic bomb is exploded (1964) ** 10 16 99 99 00 Polish Cardinal Karol Wojtyla elected Pope and takes the name John Paul II (1978) ** 10 16 99 99 00 a hotel in Boston becomes the 1st to have indoor plumbing. (1869) ** 10 16 99 99 00 body washed ashore in Syria is identified as Leon Klinghoffer, slain in hijacking of Achille Lauro (1985) ** 10 17 99 99 00 A earthquake measured at 6.9-7.1 on the Richter scale hits San Francisco at 5:04 pm killing nearly 300 people and doing billions of dollars in damage. (1989) ** 10 17 99 99 00 Al Capone, mobster, convicted of income tax evasion (1931) ** 10 17 99 99 00 Albert Einstein, physicist, arrives in the United States as a refugee from Nazi Germany (1933) ** 10 17 99 99 00 Columbus sights the isle of San Salvador. (1492) ** 10 17 99 99 00 Juan Peron, dictator, stages coup and gains control of Argentina (1945) ** 10 17 99 99 00 Knickerbocker Engine Co. Number 5 organized. (1850) ** 10 17 99 99 00 Mother Teresa of India was awarded the Nobel peace prize (1979) ** 10 17 99 99 00 President Carter signed a bill restoring citizenship to Confederate President Jefferson Davis (1978) ** 10 17 99 99 00 a fuel loading error at the Saint-Laurent reactor in France leads to a partial meltdown (1969) ** 10 17 99 99 00 first Ann Landers column is printed (1955) ** 10 18 99 99 00 1st commercial long-distance phone line opens (Chicago - New York) (1892) ** 10 18 99 99 00 Boston Shoemakers form first American labor organization (1648) ** 10 18 99 99 00 British Broadcasting Corporation established. (1922) ** 10 18 99 99 00 The American flag was raised in Puerto Rico shortly before Spain formally gave control to the U.S. (1898) ** 10 18 99 99 00 The Burma Road is reopened by the Britsh (1940) ** 10 18 99 99 00 The Mason-Dixon line was established. (1767) ** 10 18 99 99 00 The last lottery is held in England (1826) ** 10 18 99 99 00 The raid on Harper's Ferry is led by John Brown (1859) ** 10 18 99 99 00 U.S. Olympic Committee suspended two black athletes for giving a "black power" salute during a victory ceremony in Mexico City (1968) ** 10 18 99 99 00 the United States take possession of Alaska. (1869) ** 10 19 99 99 00 American ships attack two off-shore platforms used by the Iranians to attack shipping in the Persian Gulf (1987) ** 10 19 99 99 00 General Cornwallis and 7000 of his men surrender at Yorktown (1781) ** 10 19 99 99 00 Mao Tse-tung establishes the People's Republic of China (1949) ** 10 19 99 99 00 Napoleon's defeated army begins long retreat from Moscow (1812) ** 10 19 99 99 00 The League of Nations imposes sanctions against Italy for its invasion of Abyssinia (1935) ** 10 19 99 99 00 The stock market crashed as the Dow Jones Industrial Average plunged 508 points, its worst one-day decline (1987) ** 10 20 99 99 00 "Saturday Night Massacre", Watergate Special Prosecutor, Archibald Cox, dismissed by president Nixon. Attorney General Elliot Richardson and Assistant Attorney General Ruckelshaus resign. (1973) ** 10 20 99 99 00 Battle of Sekigahara, which established the Tokugawa clan as rulers of Japan (SHOGUN) until 1865 (1600) ** 10 20 99 99 00 Dr Lee DeForest gives a demonstration of his radio tube. (1906) ** 10 20 99 99 00 OPEC oil embargo begins (1973) ** 10 20 99 99 00 Spain gives Florida to the United States. (1820) ** 10 20 99 99 00 The Senate voted to convict U.S. District Judge Alcee Hastings of eight articles of impeachment and remove him from office (1989) ** 10 20 99 99 00 The reading room of the British Museum was first lighted with electricity (1879) ** 10 21 99 99 00 Battle of Trefalgar, where Nelson established British naval supremacy for the next century (1805) ** 10 21 99 99 00 Edison makes the first practical incandescent lamp (1879) ** 10 21 99 99 00 Edward Austin Tracy, an American living in Beirut, was kidnapped in Lebanon (1986) ** 10 21 99 99 00 Guggenheim Museum opens (1959) ** 10 22 99 99 00 Chester Carlson invents xerography (1938) ** 10 22 99 99 00 John F Kennedy announces USSR has missile bases in Cuba (1962) ** 10 22 99 99 00 Princeton is chartered (1746) ** 10 22 99 99 00 The Great Disappointment. The Millerites, a popular religous sect of the era, predict the second coming will happen on this day and are very disappointed (1844) ** 10 22 99 99 00 The Surgeon General releases his first report on AIDS (1986) ** 10 22 99 99 00 US National debt topped $1 TRILLION (nothing to celebrate). (1981) ** 10 22 99 99 00 the Israeli destroyer Eilat is sunk by Egyptian missiles (1967) ** 10 23 99 99 00 A suicide truck-bomber crashed into the U.S. compound in Beirut, killing 241 U.S. marines and sailors (1983) ** 10 23 99 99 00 Battle of Leyte Gulf begins (1944) ** 10 23 99 99 00 Confederate Sterling Price is defeated in the last Civil War action west of the Mississippi (1864) ** 10 23 99 99 00 First Parliament of Great Britain meets (1707) ** 10 23 99 99 00 The battle of Edgehill was fought in English Civil War (1642) ** 10 23 99 99 00 The first meeting of the United Nations General Assembly (1946) ** 10 23 99 99 00 the ill-fated revolt in Communist Hungary starts, later crushed by Soviet tanks (1956) ** 10 24 99 99 00 Cuban blockade of Russian shipping begins (1962) ** 10 24 99 99 00 The 40-hour workweek went into effect under the Fair Labor Standards Act of 1938 (1940) ** 10 24 99 99 00 To repay a loan on her Texas Ranch, Mrs Anna Taylor goes over Niagara Falls in a barrel and is the first person to survive the attempt (1901) ** 10 24 99 99 00 end of Thirty Years War (1648) ** 10 24 99 99 00 fictitious person John Doe officially put to death to end the use of the name to hide the names of real or imagined witnesses in English courts (1852) ** 10 25 99 99 00 Adlai Stevenson presents photographic evidence of Russian missile bases in Cuba (1962) ** 10 25 99 99 00 Battle of Agincourt, where the Welsh longbow defeats the armored knight (1415) ** 10 25 99 99 00 Charge of the Light Brigade took place in the Battle of Balaklava in the Crimean War (1854) ** 10 25 99 99 00 Erie Canal opens for business in New York. (1825) ** 10 25 99 99 00 The UN removes Taiwan and admits the People's Republic of China (1971) ** 10 25 99 99 00 U.S. Marines and Rangers invaded Grenada. (1983) ** 10 26 99 99 00 An investor who suffered heavy stock market losses shot and killed a Miami brokerage manager, wounded another then committed suicide (1987) ** 10 26 99 99 00 Erie Canal opens (1825) ** 10 26 99 99 00 International Atomic Energy Agency established. (1956) ** 10 26 99 99 00 Shootout at the OK corral, in Tombstone, Arizona. (1881) ** 10 26 99 99 00 Telegraph service inaugurated in US (end of Pony Express). (1861) ** 10 26 99 99 00 The first appearance of Asiatic Cholera in England, at Sutherland (1831) ** 10 26 99 99 00 UN's World Health Organization declares smallpox eradicated (1978) ** 10 26 99 99 00 United Nations Charter goes into effect. (1945) ** 10 27 99 99 00 Captain James Cook, discovered the Sandwich Islands. (1728) ** 10 27 99 99 00 Du Pont announces that it has coined the term Nylon (1938) ** 10 27 99 99 00 Egyptian President Anwar Sadat and Israeli Prime Minsiter Menachem Begin were awarded the Nobel Peace Prize. (1978) ** 10 27 99 99 00 New York City's Boss Tweed arrested on fraud charges (1871) ** 10 27 99 99 00 New York opens 1st section of it's subway system. (1904) ** 10 27 99 99 00 RH Macy & Co. opens 1st store, on 6th Avenue, New York City. (1858) ** 10 28 99 99 00 Columbus discovers Cuba (1492) ** 10 28 99 99 00 Constantine's army defeats forces of Maxentius at Mulvian Bridge (312) ** 10 28 99 99 00 Eli Whitney gets a patent for the Cotton Gin. ** 10 28 99 99 00 German rocket engineers begin work in USSR (1946) ** 10 28 99 99 00 Harvard University was founded in Massachusetts (1636) ** 10 28 99 99 00 St. Louis Police try a new investigation method - fingerprints. (1904) ** 10 28 99 99 00 Statue of Liberty was dedicated on Bedloe's Island (1886) ** 10 28 99 99 00 Volstead Act passed by Congress, starting Prohibition. (1919) ** 10 28 99 99 00 the Gateway Arch (630 feet high) completed in St. Louis, Missouri. (1965) ** 10 29 99 99 00 "Black Tuesday", the Stock Market crash. (1929) ** 10 29 99 99 00 1st College Fraternity founded. (1833) ** 10 29 99 99 00 International Committee of the Red Cross founded. (1863) ** 10 29 99 99 00 Reform riots in Bristol (1831) ** 10 29 99 99 00 Turkey is proclaimed to have a republican government. (1923) ** 10 30 99 99 00 Helena, capital of Montana, founded. (1864) ** 10 30 99 99 00 The U.S. government announced the end of shoe rationing. (1945) ** 10 30 99 99 00 U.S. Navy born, authorized by the Second Continental Congress (1775) ** 10 31 99 99 00 Brooklyn, NY ends streetcar service. (1956) ** 10 31 99 99 00 Luther nails 95 Theses to door of Castle Church, Wittenberg (1517) ** 10 31 99 99 00 Nevada becomes the 36th state (1864) ** 10 31 99 99 00 President Lyndon B. Johnson ordered a halt to U.S. bombing of North Vietnam, hoping his action would lead to peace talks (1968) ** 10 31 99 99 00 The French and English channel tunnel teams meet by using a 2 inch probe. The tunnels are off by only 20 inches. (1990) gcal-4.1/data/dates/hawaii0000664000000000000000000001317712353520605012365 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: hawaii,v 1.2 91/03/07 16:21:11 billr Exp $ # Special dates in the history of Hawaii # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # All dates in this file are New Style unless otherwise noted. # Some duplicates may exist where I haven't been able to verify which # one is correct. # ** 01 03 99 99 00 first Chinese arrive in Hawaii. (1852) ** 01 07 99 99 00 first printing in Hawaii. (1822) ** 01 11 99 99 00 Hawaii Historical Society founded. (1892) ** 01 11 99 99 00 first pineapples planted in Hawaii. (1813) ** 01 17 99 99 00 the Kingdom of Hawaii becomes a republic. (1893) ** 01 18 99 99 00 Captain Cook sights Hawaii which he dubs the Sandwich Islands (1778) ** 01 20 99 99 00 The U.S. Senate approved the leasing of Pearl Harbor in Hawaii as a naval base (1887) ** 01 21 99 99 00 the pineapple is introduced to Hawaii. (1813) ** 02 04 99 99 00 the Hawaiian Board of Education is formed. (1865) ** 02 09 99 99 00 first Japanese arrive in Hawaii. (1885) ** 02 20 99 99 00 1st territorial legislature of Hawaii convenes. (1901) ** 02 22 99 99 00 Hawaii becomes a US Territory. (1900) ** 03 01 99 99 00 Library of Hawaii founded. (1879) ** 03 02 99 99 00 first telegraph company in Hawaii opens. (1901) ** 03 04 99 99 00 Oranges introduced to Hawaii. (1792) ** 03 07 99 99 00 in Hawaii, the Great Mahele (division of lands) is signed. (1848) ** 03 10 99 99 00 First money minted in Hawaii. (1847) ** 03 11 99 99 00 Great Mauna Loa eruption (volcano in Hawaii). (1867) ** 03 25 99 99 00 a summit eruption on Mauna Loa was spotted at 1:25 AM. The Northeast rift zone was fountaining by 4:30 PM. During the next 21 days lava would flow almost to the city of Hilo. (1984) ** 03 26 99 99 00 Kuhio Day in Hawaii, honoring beloved Prince Kuhio of Kauai, the last member of Hawaiian royalty to wield political power ** 04 10 99 99 00 1st hotel in Hawaii opens. (1825) ** 04 26 99 99 00 1st motion pictures shown in Hawaii. (1906) ** 04 30 99 99 00 the Hawaiian YMCA organized. (1869) ** 05 01 99 99 00 Lei Day begun (a Hawaiian celebration) (1928) ** 05 13 99 99 00 1st foreign embassy in Hawaii is established. (1835) ** 05 20 99 99 00 1st legislative assembly convenes in Hawaii. (1845) ** 05 21 99 99 00 1st steamship arrives in Hawaii. (1846) ** 06 01 99 99 00 Mauna Loa erupts from the Southwest rift 600M cubic yards of lava over 23 days (1950) ** 06 07 99 99 00 the Hawaiian Declaration of Rights is signed. (1839) ** 06 14 99 99 00 Hawaiian Territorial Government begins. (1900) ** 06 18 99 99 00 Macademia nuts 1st planted in Hawaii. (1892) ** 06 21 99 99 00 Hawaiian Red Cross founded. (1917) ** 06 24 99 99 00 1st coffee planted in Hawaii, on the Kona coast. (1817) ** 07 01 99 99 00 Haleakala National Park established in Hawaii. (1961) ** 07 04 99 99 00 Pacific Cable (San Francisco, Hawaii, Guam, Phillipines) opens. President Roosevelt sends a message to the Phillipines,then a message around the world in 12 minutes (1903) ** 07 07 99 99 00 Hawaii annexed to the US. (1898) ** 07 17 99 99 00 1st railroad opens in Hawaii. (1879) ** 07 20 99 99 00 1st telephone introduced in Hawaii. (1878) ** 07 20 99 99 00 Kilauea begins a long eruption that as of May 1990 had not stopped. In the process over 650M cubic yards of lava will be released. (1986) ** 07 23 99 99 00 first telephone and telegraph line in Hawaii is completed. (1877) ** 07 26 99 99 00 1st sugar cane plantation started in Hawaii. (1835) ** 07 29 99 99 00 first sugar plantation in Hawaii begun. (1835) ** 08 01 99 99 00 Hawaii National Park established. (1916) ** 08 07 99 99 00 Potatoes first planted in Hawaii. (1820) ** 08 09 99 99 00 1st horses arrive in Hawaii. (1803) ** 08 13 99 99 00 Reciprocity Treaty between US and Hawaii ratified. (1876) ** 08 17 99 99 00 1st bank in Hawaii opens. (1858) ** 08 21 99 99 00 Hawaii became the 50th state. (1959) ** 08 30 99 99 00 Honolulu, Hawaii becomes a city. (1850) ** 09 02 99 99 00 gas lighting introduced to Hawaii. (1859) ** 09 10 99 99 00 1st theater opens in Hawaii. (1847) ** 09 17 99 99 00 1st whaling ship arrives in Hawaii. (1819) ** 10 01 99 99 00 1st Hawaiian stamps issued. (1851) ** 10 08 99 99 00 1st Hawaiian constitution proclaimed. (1840) ** 10 19 99 99 00 1st flour mill in Hawaii begins operations. (1853) ** 10 27 99 99 00 1st Pali Road completed in Hawaii (the Pali is a cliff where the winds are so strong streams flow UP) (1896) ** 10 29 99 99 00 first election of the Hawaiian Republic. (1894) ** 11 01 99 99 00 1st Aloha Week Parade held in Hawaii. (1947) ** 11 06 99 99 00 1st fire engine arrives in Hawaii. (1850) ** 11 13 99 99 00 first shipment of canned pineapple from Hawaii. (1895) ** 11 14 99 99 00 Kilauea's most spectacular eruption (in Hawaii). (1959) ** 11 18 99 99 00 Oahu Railway begins public service in Hawaii. (1889) ** 11 26 99 99 00 Hawaiian Sugar Planters Association formed. (1895) ** 11 29 99 99 00 US receives rights to Pearl Harbor, on Oahu, Hawaii. (1887) ** 12 17 99 99 00 first Hawaiian cavalry organized. (1852) ** 12 19 99 99 00 Bishop Museum founded in Hawaii. (1889) ** 12 20 99 99 00 Hawaiian post office established. (1850) ** 12 22 99 99 00 Hawaiian Post Office established. (1850) ** 12 27 99 99 00 Hawaiian Fire Department established. (1850) ** 12 28 99 99 00 Trans-Pacific cable links Hawaii to US. (1902) ** 12 30 99 99 00 first coffee planted in Hawaii. (1817) gcal-4.1/data/dates/computing0000664000000000000000000002415312353520612013122 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: computing,v 2.3 91/03/07 16:21:05 billr Exp $ # Events in the history of computing # Special days file for calentool (rel 2.1); modified from network posting by # RPC Rodgers, UCSF, Nov. 1988 and # special events of history, provided by # Clarke Thacher ** 01 01 99 99 00 AT&T officially divests its local Bell companies (1984) ** 01 01 99 99 00 The Epoch (Time 0 for UNIX systems) (Midnight GMT, 1970) ** 01 01 99 99 00 The contract to develop EDVAC began. (1945) ** 01 03 99 99 00 Apple Computer was incorporated. (1977) ** 01 03 99 99 00 BSD UNIX 3.0 released (1980) ** 01 05 99 99 00 First written reference to SIMULA. (1962) ** 01 08 99 99 00 American Telephone & Telegraph loses antitrust case (1982) ** 01 08 99 99 00 Herman Hollerith patents first data processing computer (1889) ** 01 08 99 99 00 Joseph Weizenbaum, Pioneer AI researcher (1923) ** 01 08 99 99 00 Justice Dept. drops IBM suit (1982) ** 01 10 99 99 00 Donald Knuth, Author of the Art Of Computer Programming (????) ** 01 10 99 99 00 First CDC 1604 delivered to Navy (1960) ** 01 11 99 99 00 Committee convened to develop Algol 60. (1960) ** 01 12 99 99 00 First CDC 1604 delivered. (1960) ** 01 15 99 99 00 Apple announces the Macintosh. (1984) ** 01 16 99 99 00 Set uid bit patent issued (1979) ** 01 17 99 99 00 Justice Dept. begins IBM antitrust suit (1969) ** 01 21 99 99 00 IFIP (International Federation of Information Processing) was founded. (1960) ** 01 24 99 99 00 Data General Nova computer introduced (1969) ** 01 25 99 99 00 First U.S. meeting of ALGOL definition committee (1958) ** 01 26 99 99 00 EDVAC demonstrated (1952) ** 01 28 99 99 00 William Burroughs, Founder of Burroughs Computer Corp. (1855) ** 01 31 99 99 00 Hewlett-Packard Company founded (1939) ** 02 01 99 99 00 Remington Rand bought Eckert-Mauchly Corporation. (1950) ** 02 02 99 99 00 An Wang, Founder of Wang Laboratories. (1920) ** 02 04 99 99 00 Cybernet inaugurated (1969) ** 02 11 99 99 00 Last day of JOSS service at RAND Corp. (1966) ** 02 11 99 99 00 Richard Hamming, Inventor of the Hamming Code. (1915) ** 02 14 99 99 00 Texas Instruments patents first micro-on-a-chip (1978) ** 02 15 99 99 00 ENIAC demonstrated (1946) ** 02 17 99 99 00 Thomas J. Watson Sr., Papa IBM (THINK) (1874) ** 02 20 99 99 00 Kenneth Olsen, Founder and president of DEC. (1930) ** 02 24 99 99 00 Steven Jobs, Cofounder of Apple. (1955) ** 02 25 99 99 00 HP stock splits 2 for 1 at $103.28 a share (1970) ** 02 29 99 99 00 Herman Hollerith, Invented the keypunch. (1860) ** 03 01 99 99 00 First NPL (later PL/I) report published (1964) ** 03 01 99 99 00 Seymour Papert, AI researcher, and inventor of LOGO. (1928) ** 03 04 99 99 00 The first CRAY-I was shipped to Los Alamos Labs. (1976) ** 03 06 99 99 00 Adam Osborne, Father of the Osborne I. (1939) ** 03 08 99 99 00 Howard Aiken, The creator of MARK I; hated T. J. Watson. (1900) ** 03 09 99 99 00 Edsgar Dijkstra published "Go To Statement Considered Harmful". (1968) ** 03 13 99 99 00 Digital Equipment Corp introduces the PDP-11 minicomputer. (1970) ** 03 14 99 99 00 LISP introduced (1960) ** 03 16 99 99 00 Amdahl was incorporated. (1972) ** 03 20 99 99 00 BSD UNIX 4.2 released (1983) ** 03 27 99 99 00 LINC demonstrated. (1962) ** 03 28 99 99 00 DEC announces PDP-11 (1970) ** 03 30 99 99 00 UNIVAC I turned over to the Bureau of the Census. (1962) ** 03 31 99 99 00 Eckert-Mauchly Computer Corp. founded, Phila (1946) ** 04 03 99 99 00 IBM 701 introduced (1953) ** 04 04 99 99 00 Tandy Corp. acquires Radio Shack, 1963 (9 stores) ** 04 06 99 99 00 Cray Research was founded. (1972) ** 04 07 99 99 00 IBM announces System/360 (1964) ** 04 09 99 99 00 ENIAC Project begun (1943) ** 04 09 99 99 00 J. Presper Eckert, Co-inventer of ENIAC. (1919) ** 04 15 99 99 00 Data General was founded. (1968) ** 04 17 99 99 00 System 360 was introduced. (1966) ** 04 28 99 99 00 Zilog Z-80 introduced ** 04 30 99 99 00 Edward Yourdon, Structured Zealot. (1944) ** 04 30 99 99 00 George Stibitz, Computer pioneer at Bell Labs. (1904) ** 05 01 99 99 00 First BASIC program run at Dartmouth (1964) ** 05 06 99 99 00 EDSAC demonstrated (1949) ** 05 10 99 99 00 BSD UNIX 2.0 released (1979) ** 05 11 99 99 00 Jay Forrester patents computer core memory. (1951) ** 05 16 99 99 00 First report on SNOBOL distributed (within BTL) (1963) ** 05 20 99 99 00 William Hewlett, Co-founder of Hewlett Packard. (1913) ** 05 21 99 99 00 DEC announces PDP-8 (1968) ** 05 27 99 99 00 First joint meeting of U.S. & European ALGOL definition committee (1958) ** 05 28 99 99 00 First meeting of COBOL definition committee (eventually CODASYL) (1959) ** 05 30 99 99 00 Colossus Mark II (1944) ** 05 30 99 99 00 PDP 8 was announced. (1968) ** 06 02 99 99 00 First issue of Computerworld (1967) ** 06 05 99 99 00 Ada Lovelace (future 1st computer programmer) meets Charles Babbage. (1833) ** 06 07 99 99 00 BSD UNIX 4.3 released (1986) ** 06 09 99 99 00 Prime Computer, Inc. was founded. (1972) ** 06 10 99 99 00 Apple Computer ships its first Apple II. (1977) ** 06 15 99 99 00 UNIVAC I delivered to the Census Bureau (1951) ** 06 16 99 99 00 First programming error at Census Bureau (apocryphal) (1951) ** 06 17 99 99 00 HP stock splits 2 for 1 at $94.13 a share (1981) ** 06 19 99 99 00 Blaise Pascal (1623) ** 06 22 99 99 00 Alan Turing, British computing pioneer. (1912) ** 06 22 99 99 00 Konrad Zuse, Computing pioneer, built the Z1 in Germany during WWII (1910) ** 06 23 99 99 00 Alan Turing, mathematician, pioneer in computer theory. (1912) ** 06 23 99 99 00 IBM unbundles software (1969) ** 06 26 99 99 00 Maurice Wilkes, First described the stored program concept. (1913) ** 06 27 99 99 00 HP stock splits 2 for 1 at $89.28 a share (1979) ** 06 30 99 99 00 First advanced degree on computer related topic to H. Karamanian, for symbolic differentiation on ENIAC (Temple University, Philadelphia, 1948) ** 07 01 99 99 00 Gottfried Leibniz, Invented a calcuator which could multiply & (1646) ** 07 07 99 99 00 Joseph-Marie Jacquard, Invented a loom controlled by punched cards. (1752) ** 07 08 99 99 00 Bell Telephone Co. formed (predecessor of AT&T) (1877) ** 07 08 99 99 00 CDC was founded by former employees of Sperry-Rand. (1957) ** 07 10 99 99 00 BSD UNIX 4.1 released (1981) ** 07 13 99 99 00 Cleve Sinclair, British hardware hustler. (1940) ** 07 14 99 99 00 Jay Forrester, Inventor of core memory, who later modelled the world. (1918) ** 08 01 99 99 00 HP stock splits 2 for 1 at $89.88 a share (1983) ** 08 06 99 99 00 A team of computer scientists from Amdahl break the record for largest prime number with 391581 * 2^216193 - 1 after a year and a half of background computing (1989) ** 08 06 99 99 00 BSD UNIX 4.2 released (1983) ** 08 09 99 99 00 Marvin Minsky, AI pioneer. (1932) ** 08 11 99 99 00 Stephen Wozniac, Cofounder of Apple. (1954) ** 08 14 99 99 00 First Unix-based mallet created (1954) ** 08 14 99 99 00 IBM PC announced (1981) ** 08 22 99 99 00 CDC 6600 introduced (1963) ** 08 23 99 99 00 DEC founded (1957) ** 08 30 99 99 00 John Mauchly, Co-inventor of ENIAC (1907) ** 09 03 99 99 00 Kathleen Jensen, Co-author of Pascal User Manual and Report. (1949) ** 09 07 99 99 00 David Packard, Cofounded Hewlett Packard (1912) ** 09 15 99 99 00 ACM (Association for Computing Machinery) founded (1947) ** 09 15 99 99 00 HP stock splits 3 for 1 at a price of $77 (1960) ** 09 18 99 99 00 The 30th Mersenne Prime, 2^216091-1, is announced. It was discovered at Chevron Reaseach on their Cray X-MP. (1985) ** 09 19 99 99 00 David Slowinski uses two Cray-1 supercomputers to discover the 29th Mersenne Prime, 2^132049-1 (1983) ** 09 20 99 99 00 Harlan Herrick runs first FORTRAN program (1954) ** 09 25 99 99 00 The chess program Hitech is the first computer program to beat an International Grand Master in tournament play winning 3 and drawing 1 (1988) ** 09 28 99 99 00 Seymour Cray, Super computer builder. (1925) ** 10 02 99 99 00 First robotics-based CAM (1939) ** 10 04 99 99 00 John Atanasoff, Built one of the first electronic computers (1903) ** 10 06 99 99 00 First GPSS manual published (1961) ** 10 08 99 99 00 First VisiCalc prototype (1978) ** 10 11 99 99 00 Doug McIlroy invents the pipe (or "hose," 1964) ** 10 11 99 99 00 factoring of the first "hard" 100 digit number (11^104 + 1)/(11^8 + 1) achieved at 2AM PDT (1988) ** 10 12 99 99 00 James Martin, Computer Guru. (1936) ** 10 12 99 99 00 Steven Jobs, one of the founders of Apple, unveils the first computer by his new company NeXT (1988) ** 10 12 99 99 00 Univac gives contract for SIMULA compiler to Nygaard and Dahl (1962) ** 10 14 99 99 00 British Computer Society founded (1957) ** 10 15 99 99 00 First FORTRAN Programmer's Reference Manual published ** 10 17 99 99 00 Ritchie and Thompson's UNIX paper (1973) ** 10 19 99 99 00 BSD UNIX 4.0 released (1980) ** 10 20 99 99 00 Zurich ALGOL report published (1958) ** 10 23 99 99 00 The Open Software Foundation announced the release of the industry's first open computer operating system -- OSF/1 (1990) ** 10 25 99 99 00 DEC announces VAX-11/780 ** 11 01 99 99 00 fiscal new year for Hewlett Packard Company ** 11 02 99 99 00 George Boole (1815) ** 11 02 99 99 00 Robert T. Morris, Jr. , releases his worm program onto the UNIX network at about 8pm from Cornell University, Ithaca, NY. It uses Berkeley Unix mail flaws to spread itself across the country. (1988) ** 11 04 99 99 00 UNIVAC I program predicts Eisenhower victory based on 7% of votes (1952) ** 11 16 99 99 00 Gene Amdahl, Designer of IBM 360, Amdahl 470, and founder of TRILOGY. (1922) ** 11 26 99 99 00 Norbert Weiner, Author of Cybernetics (1894) ** 12 03 99 99 00 John Backus, Father of FORTRAN (1924) ** 12 08 99 99 00 First Ph.D. awarded by Computer Science Dept, University of Pennsylvania (1965) ** 12 09 99 99 00 Grace Hopper, Mother of COBOL (1909) ** 12 10 99 99 00 Ada Augusta Lovelace, First programmer. (1815) ** 12 26 99 99 00 Charles Babbage, Victorian computer architect. (1791) ** 12 26 99 99 00 DPMA founded (1951) ** 12 27 99 99 00 APT report published (1956) ** 12 28 99 99 00 John Von Neumann, First suggested stored program model. (1903) 85 11 05 99 99 00 At 0:53:20 GMT UNIX time reached the 500000000 (half billion) second mark (1985) gcal-4.1/data/dates/lives40000664000000000000000000011170712244130561012324 00000000000000# CalenTool V2.2 - nflag=1 range=7,8 - DO NOT REMOVE THIS LINE # $Header: lives4,v 1.1 91/03/07 16:18:57 billr Exp $ # (July-Aug) # Famous people's births, deaths and marriages file for calentool # extracted from ProLine's today file and Today in History provided # by Robert Heckendorn at Hewlett-Packard in Fort Collins, Colorado. # converted to calentool format by lwv27%cas.BITNET@CUNYVM.CUNY.Edu. # # There may be duplicates where I don't have a definitive correct # date. billr@saab.cna.tek.com # ** 07 01 99 99 00 Dan Aykroyd, Actor (1952) ** 07 01 99 99 00 Diana, the Princess of Wales (Princess Di) is born (1961) ** 07 01 99 99 00 Evelyn "Champagne" King, Singer (1960) ** 07 01 99 99 00 Genevieve Bujold, Actress (1942) ** 07 01 99 99 00 George Sand, Amadine Aurore Lucie Dupin, Baroness Dudevant, French author, is born (1804) ** 07 01 99 99 00 Jamie Farr, Actor (1934) ** 07 01 99 99 00 Karen Black, Actress (1942) ** 07 01 99 99 00 Lerna Patterson, Actress (1963) ** 07 01 99 99 00 Olivia de Haviland, Actress (1916) ** 07 01 99 99 00 Sydney Pollack, Movie driector (1934) ** 07 01 99 99 00 Twyla Tharp, Dancer-choreographer (1941) ** 07 02 99 99 00 Cheryl Ladd, Actress (1951) ** 07 02 99 99 00 Ernest Hemingway, the writer, commits suicide at his home in Ketchum, Idaho (1961) ** 07 02 99 99 00 Imelda Marcos, Former Philippine first lady (1929) ** 07 02 99 99 00 Jimmy McNichol, Actor (1961) ** 07 02 99 99 00 Luci Baines Johnson Turpin, Former Pres. L. B. Johnson's daughter (1947) ** 07 02 99 99 00 Polly Holliday, Actress (1937) ** 07 02 99 99 00 Michel de Nostradamus (the "prophet") dies in Salon (1566) ** 07 02 99 99 00 Thurgood Marshall, Supreme Court Justice (1918) ** 07 03 99 99 00 Betty Buckley, Actress (1947) ** 07 03 99 99 00 Dave Barry, Humor columnist (1947) ** 07 03 99 99 00 Franz Kafka born (1883) ** 07 03 99 99 00 Jim Morrison, rock singer with the Doors, dies of drug overdose in Paris (1971) ** 07 03 99 99 00 Ken Russell, movie director (1927) ** 07 03 99 99 00 Louis XI of France is born (1423) ** 07 03 99 99 00 Mary Johnson, Orlando City Council Member (1933) ** 07 03 99 99 00 St. Phocas beheaded by Roman executioners in his own home (303) ** 07 03 99 99 00 Tom Cruise, Actor (1962) ** 07 04 99 99 00 Calvin Coolidge, 30th President (1923-1929) (1872) ** 07 04 99 99 00 Eva Marie Saint, Actress (1924) ** 07 04 99 99 00 Gene McDowell, UCF football coach (1940) ** 07 04 99 99 00 George M. Cohan (1878) ** 07 04 99 99 00 James Monroe, 5th President, dies. (1831) ** 07 04 99 99 00 Jean-Pierre-Francois Blanchard, 1st balloon flights in England, US (1753) ** 07 04 99 99 00 John Adams and Thomas Jefferson die on same day (1826) ** 07 04 99 99 00 Louis Armstrong is born (1900) ** 07 04 99 99 00 Nathaniel Hawthorne, author, born in Salem, MA (1804) ** 07 04 99 99 00 Neil Simon, Playwight (1927) ** 07 04 99 99 00 Rube Goldberg, made the easy outrageously difficult. (1883) ** 07 04 99 99 00 Stephen Foster, American composer, "Oh, Susanna" (1826) ** 07 05 99 99 00 Henry Rhodes, statesman, born (1853) ** 07 05 99 99 00 Huey Lewis, Pop musician (1951) ** 07 05 99 99 00 Julie Nixon Eisenhower (1948) ** 07 05 99 99 00 Magdalen tragically dies soon after becoming the Scottish queen of James V (1536) ** 07 05 99 99 00 P.T. Barnum, circus promoter (1810) ** 07 05 99 99 00 Rich "Goose" Gossage, Baseball pitcher (1951) ** 07 05 99 99 00 Shirley Knight, Actress (1937) ** 07 05 99 99 00 Sylvester Graham, inventor of the Graham cracker (1794) ** 07 06 99 99 00 (Helen) Beatrix Potter, creator of Peter Rabbit, born (1866) ** 07 06 99 99 00 Bill Frederick, City of Orlando's Mayor (1934) ** 07 06 99 99 00 English chancellor Thomas More beheaded for refusal to sanction Henry VIII's marriage to Anne Boleyn (1535) ** 07 06 99 99 00 Janet Leigh, Actress (1927) ** 07 06 99 99 00 John Paul Jones is born (1747) ** 07 06 99 99 00 King George V of England and Victoria Mary of Teck are wed (1893) ** 07 06 99 99 00 Mexican Emperor Maximilian is born (1832) ** 07 06 99 99 00 Nancy Reagan, wife of former President Reagan, is born (1926) ** 07 06 99 99 00 Sylvester Stallone, Actor (1946) ** 07 07 99 99 00 Gustave Mahler, the composer, is born in Bohemia (1860) ** 07 07 99 99 00 Joseph-Marie Jacquard, inventor of the punch card weaving machine, is born in Lyons, France (1752) ** 07 07 99 99 00 Marc Chagall, the painter, is born in Russia (1887) ** 07 07 99 99 00 Ringo Starr (Richard Starkey), of the Rock Group The Beatles, born in Liverpool, England (1940) ** 07 07 99 99 00 Robert A. Heinlein, author who helped develop Science Fiction as a sophisticated mode of literary expression (1907) ** 07 07 99 99 00 Sir Arthur Conan Doyle, creator of Sherlock Holmes, dies (1930) ** 07 08 99 99 00 Admiral Parry, the Arctic explorer, dies (1855) ** 07 08 99 99 00 Count Ferdinand von Zeppelin born (1838) ** 07 08 99 99 00 John D. Rockefeller (1839) ** 07 08 99 99 00 Percy Bysshe Shelley, the poet, dies off the coast of Italy (1822) ** 07 09 99 99 00 Edward Heath, Former British Prime Minister (1916) ** 07 09 99 99 00 Henry VIII divorces Anne of Cleves (1540) ** 07 09 99 99 00 James Hampton, Actor (1936) ** 07 09 99 99 00 King Camp Gillette, inventor of the safety razor, dies (1932) ** 07 09 99 99 00 O.J. Simpson, Football great (1947) ** 07 09 99 99 00 Ottorino Respighi, composer of "Pines of Rome", is born (1879) ** 07 09 99 99 00 Thomas Davenport, invented 1st commercially successful electric motor (1802) ** 07 09 99 99 00 Tom Hanks, Actor (1956) ** 07 09 99 99 00 Zachary Taylor, U.S. president and general in Indian and Mexican Wars, dies (1850) ** 07 10 99 99 00 Chief Justice Earl Warren dies (1974) ** 07 10 99 99 00 Davis Phinney, American cyclist, was born (1959) ** 07 10 99 99 00 Finley Peter Dunne, journalist/humorist who created Mr. Dooley. (1867) ** 07 10 99 99 00 James Whistler, mama's boy (1834) ** 07 10 99 99 00 John Calvin, Protestant theologian, born (1509) ** 07 10 99 99 00 Joseph Shuster, co-creator of Superman, is born (1914) ** 07 10 99 99 00 Marcel Proust, French author, is born (1871) ** 07 10 99 99 00 Mel (Melvin Jerome) Blanc, voice of Bugs Bunny and many others, dies (1989) ** 07 10 99 99 00 Robert Goddard dies (1945) ** 07 11 99 99 00 Yul Brynner, actor, is born (1920) ** 07 11 99 99 00 Alfred Dreyfus, the wrongly imprisoned French army officer, dies (1935) ** 07 11 99 99 00 Bonnie Pointer, Singer (1951) ** 07 11 99 99 00 George Gershwin, the composer, dies (1937) ** 07 11 99 99 00 John Quincy Adams, 6th President (1825-1829), is born (1767) ** 07 11 99 99 00 Leon Spinks, Boxer (1953) ** 07 11 99 99 00 Robert the Bruce, King of Scotland, is born (1274) ** 07 11 99 99 00 Sir Laurence Olivier, actor, dies (1989) ** 07 11 99 99 00 Tab Hunter, Actor (1931) ** 07 12 99 99 00 Andrew Wyeth, artist and illustrator, is born (1917) ** 07 12 99 99 00 Bill Cosby, comedian, is born (1937) ** 07 12 99 99 00 Dolly Madison, wife of James Madison, dies. She was known for her social skills as hostess of the white house (1849) ** 07 12 99 99 00 George Eastman, inventor, is born in Waterville, New York (1854) ** 07 12 99 99 00 Henry David Thoreau, author, is born (1817) ** 07 12 99 99 00 Henry VIII marries Catharine Parr (his 6th & last wife) (1543) ** 07 12 99 99 00 Julius Caeser is born (100 BC) ** 07 12 99 99 00 Milton Berle, entertainer, is born (1908) ** 07 12 99 99 00 Oscar Hammerstein II, lyricist, is born (1895) ** 07 12 99 99 00 R. Buckminster Fuller, inventor of the geodesic dome (1895) ** 07 12 99 99 00 Sen. Mark Hatfield, R-Ore. (1922) ** 07 12 99 99 00 U.S. Rep. Bill McCollum, Altamonte Springs, FL (1944) ** 07 12 99 99 00 Van Cliburn, Pianist (1934) ** 07 13 99 99 00 Harrison Ford, Actor (1942) ** 07 13 99 99 00 Jean-Paul Marat stabbed to death in his bathtub by Charlotte Corday (1793) ** 07 13 99 99 00 John Charles Fremont, American soldier, explorer and politician, dies (1890) ** 07 13 99 99 00 Louise Mandrell, Singer (1954) ** 07 14 99 99 00 Adlai Stevenson, US statesman, dies (1965) ** 07 14 99 99 00 Gerald R. Ford, 38th President (1974-1976), is born (1913) ** 07 14 99 99 00 James Cagney, movie actor and notorious screen gangster, is born (1899) ** 07 14 99 99 00 Jay Wright Forrester, invented random-access magnetic core memory. (1918) ** 07 14 99 99 00 Woodrow Wilson (Woody) Guthrie, folk singer, is born (1912) ** 07 15 99 99 00 Clement Clarke Moore, author of "A Visit from Saint Nicholas", is born (1779) ** 07 15 99 99 00 Inigo Jones, architect, lancscape designer and antiquary, is born (1573) ** 07 15 99 99 00 James, Duke of Monmouth, executed for treason at Tower Hill, London (1685) ** 07 15 99 99 00 Linda Ronstadt, singer, born in Tucson, AZ (1946) ** 07 15 99 99 00 Rembrandt van Rijn, painter, born in Leiden Netherlands (1606) ** 07 15 99 99 00 Rose Kennedy, Grand Dame of the Kennedy family is born (1890) ** 07 16 99 99 00 Barbara Stanwyck, actress, is born (1907) ** 07 16 99 99 00 Barnard Hughes, actor (1915) ** 07 16 99 99 00 Czar Nicholas II, family and servants are killed by Bolsheviks (1918) ** 07 16 99 99 00 Dick Thornburgh, Attorney General (1932) ** 07 16 99 99 00 Ginger Rogers, actress-dancer (1911) ** 07 16 99 99 00 Harry Chapin dies (Long Island Expressway, 1981) ** 07 16 99 99 00 Margaret Court, tennis player (1942) ** 07 16 99 99 00 Mary Baker Eddy, founder of the Church of Christ, Scientist, born (1821) ** 07 16 99 99 00 Pinchas Zukerman, violinist (1948) ** 07 16 99 99 00 Stewart Copeland, rock composer-musician (1952) ** 07 17 99 99 00 Art Linkletter, TV personality (1912) ** 07 17 99 99 00 Charles, Earl Grey, Whig statesman and Prime Minister, dies (1845) ** 07 17 99 99 00 David Hasselhoff, actor (1952) ** 07 17 99 99 00 Diahann Carroll, actress-singer (1935) ** 07 17 99 99 00 Donald Sutherland, actor (1934) ** 07 17 99 99 00 Elbridge Gerry, father of the "gerrymander" (1744) ** 07 17 99 99 00 Erle Stanley Gardner, author and creator of Perry Mason, was born (1889) ** 07 17 99 99 00 James Cagney, hold that grapefruit (1900) ** 07 17 99 99 00 James Whistler, painter, lithographer, dies (1903) ** 07 17 99 99 00 John Jacob Astor, millionaire in North American trapping industry, is born in Germany (1763) ** 07 17 99 99 00 Lucie Arnaz, actress (1951) ** 07 17 99 99 00 Nicolette Larson, singer (1952) ** 07 17 99 99 00 Pat McCormick, comedy writer (1934) ** 07 17 99 99 00 Phoebe Snow, singer (1952) ** 07 17 99 99 00 Phyllis Diller, comedian, is born in Lima, OH (1917) ** 07 18 99 99 00 Brian Auger born (London, 1939) ** 07 18 99 99 00 Horatio Alger, whose lads always had enough pluck to succeed, dies (1899) ** 07 18 99 99 00 Hume Cronyn, actor (1911) ** 07 18 99 99 00 Jean-Antoine Watteau, painter, dies (1721) ** 07 18 99 99 00 John Glenn Jr., astronaut, is born in Ohio (1921) ** 07 18 99 99 00 Michelangelo Merisi da Caravaggio, Italian painter, dies (1610) ** 07 18 99 99 00 Red Skelton. comedian (1913) ** 07 18 99 99 00 S. I. Hayakawa (1906) ** 07 18 99 99 00 William Gilbert Grace, Victorian England's greatest cricketer (1848) ** 07 18 99 99 00 William Makepeach Thackeray, author of Vanity Fair, is born (1811) ** 07 19 99 99 00 Caroline Kennedy, daughter of President Kennedy, married Edwin A. (1986)Schlossberg in Centerville, Mass. ** 07 19 99 99 00 Dennis Cole, actor (1943) ** 07 19 99 99 00 Edgar Degas, Impressionist painter, is born (1843) ** 07 19 99 99 00 Lizzie Borden, reputed but acquitted ax murderess, is born (1860) ** 07 19 99 99 00 Peter Barton, actor (1959) ** 07 19 99 99 00 Petrarch (Francesco Petrarca), poet and scholar, dies near Padua, Italy (1374) ** 07 19 99 99 00 Samuel Colt, American gunsmith and inventor, is born (1814) ** 07 19 99 99 00 Vikki Carr, singer (1941) ** 07 20 99 99 00 Butch Cassidy, outlaw, dies in Spokane, Washington (1937) ** 07 20 99 99 00 Carlos Santana born (Autlan, Mexico, 1947) ** 07 20 99 99 00 Diana Rigg, actress (1938) ** 07 20 99 99 00 Kim Carnes, singer (1946) ** 07 20 99 99 00 Larry Rinker, golfer and Winter Park resident (1957) ** 07 20 99 99 00 Natalie Wood, actress, is born in San Francisco (1938) ** 07 20 99 99 00 Robert II, King of France, dies (1031) ** 07 20 99 99 00 Sir Edmund Hillary, mountaineer and explorer, is born (1919) ** 07 20 99 99 00 Theda Bara, American actress and vamp, is born (1890) ** 07 21 99 99 00 Don Knotts, actor-comedian (1924) ** 07 21 99 99 00 Edward Herrmann, actor (1943) ** 07 21 99 99 00 Ernest Hemingway, author, is born (1899) ** 07 21 99 99 00 Isaac Stern, violinist, is born (1920) ** 07 21 99 99 00 Norman Jewison, movie director (1926) ** 07 21 99 99 00 Poet Robert Burns dies in Scotland of a lingering illness brought on by excessive drinking (1796) ** 07 21 99 99 00 Robin Williams, comedian-actor (1952) ** 07 22 99 99 00 Albert Brooks, actor-comedian-director (1947) ** 07 22 99 99 00 Alex Trebek, game show host (1940) ** 07 22 99 99 00 Alexander Calder, sculptor, is born (1898) ** 07 22 99 99 00 Carl Sandburg, poet, dies at Flat Rock, North Carolina (1967) ** 07 22 99 99 00 Emma Lazarus, whose poem was inscribed on the Statue of Liberty (1849) ** 07 22 99 99 00 John Dillinger, bank robber, was shot to death by federal agents outside Chicago's Biograph Theater (1934) ** 07 22 99 99 00 Mary Magdalen dies at St. Beaume. (1st c. BC) ** 07 22 99 99 00 Orson Bean, actor-comedian (1928) ** 07 22 99 99 00 Oscar de la Renta, fashion designer (1932) ** 07 22 99 99 00 Rev. William Archibald Spooner, invented 'spoonerisms' (1844) ** 07 22 99 99 00 Rose Kennedy (1890) ** 07 22 99 99 00 Stephen Vincent Benet, American poet, is born (1898) ** 07 22 99 99 00 Terence Stamp, actor (1940) ** 07 23 99 99 00 Belinda Montgomery, actress (1950) ** 07 23 99 99 00 Britain's Prince Andrew married Sarah Ferguson at Westminster Abbey in London (1986) ** 07 23 99 99 00 C.R. Smith, Frontline Outreach founder (1929) ** 07 23 99 99 00 Coral Browne, actress (1913) ** 07 23 99 99 00 Don Drysdale, baseball hall-of-famer (1936) ** 07 23 99 99 00 Gloria DeHaven, actress (1925) ** 07 23 99 99 00 Isaac Singer, inventor of the sewing machine, dies (1875) ** 07 23 99 99 00 Raymond Chandler, American author, is born (1888) ** 07 24 99 99 00 Alexandre Dumas, novelist and dramatist, author of "The Three Musketeers", is born (1802) ** 07 24 99 99 00 Amelia Earhart, pioneer aviator, is born in Kansas (1898) ** 07 24 99 99 00 Joe Oliver, Cincinnati Reds catcher and Orlando native (1965) ** 07 24 99 99 00 John Dyer, poet, dies (1758) ** 07 24 99 99 00 Lynda Carter, actress, is born in Pheonix, AZ (1951) ** 07 24 99 99 00 Pat Oliphant, political cartoonist (1935) ** 07 24 99 99 00 Simon Bolivar, freed 6 Latin American republics from Spanish rule. (1783) ** 07 25 99 99 00 Janet Margolin, actress (1943) ** 07 25 99 99 00 Louise Brown, first baby conceived by in vitro fertilization, is born (1978) ** 07 25 99 99 00 Maxfield Parrish, American artist, is born (1879) ** 07 25 99 99 00 Queen Mary of England marries King Philip of Spain (1554) ** 07 25 99 99 00 St James beheaded by Herod in Jerusalem (44) ** 07 25 99 99 00 Steve Goodman born (Chicago, 1948) ** 07 25 99 99 00 Thomas Eakins, American realist painter, is born (1844) ** 07 25 99 99 00 Walter Payton, former football player (1954) ** 07 26 99 99 00 Aldous Huxley, English author of Brave New World, is born (1894) ** 07 26 99 99 00 Blake Edwards, movie director (1922) ** 07 26 99 99 00 Carl Jung, the psychologist, is born (1875) ** 07 26 99 99 00 George Bernard Shaw born (1856) ** 07 26 99 99 00 Mick Jagger born (Kent, England, 1943) ** 07 26 99 99 00 Robert Graves, English-born American author and critic, is born (1895) ** 07 26 99 99 00 Stanley Kubrick, movie director (1928) ** 07 26 99 99 00 Susan George, actress (1950) ** 07 26 99 99 00 Vitas Gerulaitis, tennis player (1954) ** 07 27 99 99 00 Bugs Bunny (1940) ** 07 27 99 99 00 Gertrude Stein, poet, novelist, dies (1946) ** 07 27 99 99 00 James Mason, actor, dies in Lausanne, Switzerland (1984) ** 07 27 99 99 00 Johann Bernoulli, mathematician, is born (1667) ** 07 27 99 99 00 John Dalton, English chemist and physicist, dies (1844) ** 07 27 99 99 00 Peggy Fleming, ice skater, is born (1948) ** 07 27 99 99 00 The deposed Shah of Iran dies in Cairo, Egypt (1980) ** 07 27 99 99 00 Walt Gallagher, Orange County Sheriff (1940) ** 07 28 99 99 00 Jacqueline Kennedy Onassis, former wife of President Kennedy, is born (1929) ** 07 28 99 99 00 Jim Davis, "Garfield" creator (1945) ** 07 28 99 99 00 Johann Sebastian Bach, organist and composer, dies in Leipzig Germany (1750) ** 07 28 99 99 00 Richard Wright born (London, 1945) ** 07 28 99 99 00 Robespierre dies on the guillotine like those he sent before him (1794) ** 07 28 99 99 00 Sally Struthers, actress (1948) ** 07 29 99 99 00 Booth Tarkington, novelist (1869) ** 07 29 99 99 00 David Niven, actor, dies (1983) ** 07 29 99 99 00 King Olaf II of Norway was killed in battle (1030) ** 07 29 99 99 00 Marilyn Quayle (1949) ** 07 29 99 99 00 Melvin Belli, San Francisco's 'King of Torts' (1907) ** 07 29 99 99 00 Mussolini, Italian dictator, is born (1883) ** 07 29 99 99 00 Peter Jennings, national news anchorman, is born (1938) ** 07 29 99 99 00 Prince Charles marries Lady Diana Spencer in St. Paul's Cathedral (1981) ** 07 29 99 99 00 Raymond Massey, actor, dies (1983) ** 07 29 99 99 00 Robert Fuller, actor (1934) ** 07 29 99 99 00 Siberian peasant, Grigori Rasputin, powerful influence on Nicolas II, is born (1871) ** 07 29 99 99 00 Sigmund Romberg, operetta composer, was born in Hungary (1887) ** 07 29 99 99 00 Vincent Van Gogh, artist, dies in Auvers, France (1890) ** 07 30 99 99 00 Arnold Schwarzenegger, actor (1947) ** 07 30 99 99 00 Casey (Charles Dillon) Stengel, baseball great, is born (1891) ** 07 30 99 99 00 Delta Burke, actress (1956) ** 07 30 99 99 00 Eleanor Smeal, feminist activist (1939) ** 07 30 99 99 00 Emily Bronte, author of "Wuthering Heights", is born (1818) ** 07 30 99 99 00 Henry Ford, auto manufacturer, is born (1863) ** 07 30 99 99 00 Kate Bush, singer (1958) ** 07 30 99 99 00 Paul Anka, singer (1941) ** 07 30 99 99 00 Peter Bogdanovich, director (1939) ** 07 31 99 99 00 Curt Gowdy, national sportscaster, is born (1919) ** 07 31 99 99 00 Geraldine Chaplin, actress (1944) ** 07 31 99 99 00 Ignatius Loyola, Jesuit founder, dies (1556) ** 07 31 99 99 00 Milton Friedman, economist, is born (1912) ** 08 01 99 99 00 Arthur Hill, actor (1922) ** 08 01 99 99 00 Dom DeLuise, actor and comedian, is born (1933) ** 08 01 99 99 00 Francis Gary Powers, the once captured U-2 pilot, was killed while flying a helicopter for a Los Angeles television station (1977) ** 08 01 99 99 00 Francis Scott Key, wrote the 'Star-Spangled Banner', is born (1779) ** 08 01 99 99 00 Herman Melville, author, born (1819) ** 08 01 99 99 00 Jean Baptiste de Lamarck is born in France (1744) ** 08 01 99 99 00 Jerry Garcia, rock musician, is born (1942) ** 08 01 99 99 00 Richard Henry Dana, spent 2 years before the mast. (1815) ** 08 01 99 99 00 St. Peter is executed (67) ** 08 01 99 99 00 William Clark, explored Pacific Northwest with Lewis. (1770) ** 08 01 99 99 00 Yves St. Laurent, fashion designer, is born (1936) ** 08 02 99 99 00 "Wild Bill" Hickok was shot and killed in Deadwood, S.D. (1876) ** 08 02 99 99 00 Alexander Graham Bell, inventor of the telephone, dies (1922) ** 08 02 99 99 00 Beatrice Straight, actress (1918) ** 08 02 99 99 00 Carroll O'Connor, actor (1924) ** 08 02 99 99 00 Enrico Caruso dies of pleurisy (1921) ** 08 02 99 99 00 Fritz Lang, film director, dies (1976) ** 08 02 99 99 00 Jacques Etienne Montgolfier, balloonist and paper manufacturer, dies (1799) ** 08 02 99 99 00 Joanna Cassidy, actress (1945) ** 08 02 99 99 00 Myrna Loy, actress (1905) ** 08 02 99 99 00 Peter O'Toole, actor (1932) ** 08 02 99 99 00 President Harding dies at the Palace Hotel. (1923) ** 08 02 99 99 00 William II of England was killed in a hunting accident (1100) ** 08 03 99 99 00 Elisha Graves Otis, inventor of the safe elevator. (1811) ** 08 03 99 99 00 John Landis, movie director (1940) ** 08 03 99 99 00 John Stennis, Former Sen.(D-Miss.) (1901) ** 08 03 99 99 00 Lenny Bruce dies of morphine overdose (1966) ** 08 03 99 99 00 Leon Uris, author (1924) ** 08 03 99 99 00 Martin Sheen, actor (1940) ** 08 03 99 99 00 Tony Bennett, singer (1926) ** 08 04 99 99 00 Hans Christian Andersen dies (1875) ** 08 04 99 99 00 Mary Decker Slaney, track star (1958) ** 08 04 99 99 00 Nicolas-Jacque Conte, invented the modern pencil. (1755) ** 08 04 99 99 00 Percy Bysshe Shelley, the poet, was born (1792) ** 08 04 99 99 00 The Queen Mother Elizabeth is born (1900) ** 08 05 99 99 00 Guy de Maupassant is born (1850) ** 08 05 99 99 00 John Houston, film maker, born (1906) ** 08 05 99 99 00 John Saxon, actor (1935) ** 08 05 99 99 00 Loni Anderson, the actress and beauty, is born in St. Paul, Minn. (1945) ** 08 05 99 99 00 Marilyn Monroe was found dead in Los Angeles. (1962) ** 08 05 99 99 00 Neil Armstrong, 1st Moonwalker (1930) ** 08 05 99 99 00 Samantha Sang, singer (1953) ** 08 05 99 99 00 Xerxes I of Persia dies (465 BC) ** 08 06 99 99 00 Anne Hathaway, Shakespeare's wife, dies at age of 67 (1623) ** 08 06 99 99 00 Ben Jonson, English playwright and poet, dies (1637) ** 08 06 99 99 00 Dave Marsh, WESH-Channel 2 meteorologist (1942) ** 08 06 99 99 00 Lord Alfred Tennyson, poet laureate of England. (1809) ** 08 06 99 99 00 Lucille (Lucy) Ball, actress and comedienne, is born (1911) ** 08 06 99 99 00 Peter Bonerz, actor (1938) ** 08 06 99 99 00 Richard Burton, the actor, dies (1984) ** 08 06 99 99 00 Robert Mitchum, actor (1917) ** 08 06 99 99 00 Sir Alexander Fleming, cashed in on penicillin (1881) ** 08 06 99 99 00 Soleil Moon Frye, actress (1976) ** 08 07 99 99 00 Alberto Salazar, marathon runner (1958) ** 08 07 99 99 00 B.J. Thomas, singer (1942) ** 08 07 99 99 00 Garrison Keillor, humorist (1942) ** 08 07 99 99 00 John Heathcoat, invented lace-making machinery (1783) ** 08 07 99 99 00 King Herod, persecutor of the Apostles, dies (44) ** 08 07 99 99 00 Lana Cantrell, singer (1943) ** 08 07 99 99 00 Leonidas of Sparta, Greek hero, dies (480 BC) ** 08 07 99 99 00 Louis Alan Hazeltine, invented the neutrodyne circuit, making commercial radio possible, is born (1886) ** 08 07 99 99 00 Mata Hari, the spy, is born (1876) ** 08 07 99 99 00 Stan Freberg, writer-producer (1926) ** 08 08 99 99 00 Beatrice, Britain's Princess (1988) ** 08 08 99 99 00 Charles Bullfinch, 1st US professional architect (1763) ** 08 08 99 99 00 Connie Stevens, actress (1938) ** 08 08 99 99 00 Donny Most, actor (1953) ** 08 08 99 99 00 Dustin Hoffman, actor, is born in Los Angeles (1937) ** 08 08 99 99 00 Emiliano Zapata, Mexican revolutionary, is born (1880) ** 08 08 99 99 00 Esther Williams, actress (1923) ** 08 08 99 99 00 Keith Carradine, actor (1950) ** 08 08 99 99 00 Mel Tillis, singer (1932) ** 08 08 99 99 00 Peter Weir, movie director (1944) ** 08 08 99 99 00 Rudi Gernreich, designed 1st women's topless swimsuit & the miniskirt (1922) ** 08 08 99 99 00 Sara Teasdale, American poet, is born (1884) ** 08 08 99 99 00 Sylvia Sidney, actress (1910) ** 08 09 99 99 00 Betty Boop (1930) ** 08 09 99 99 00 David Steinberg, comedian-director (1942) ** 08 09 99 99 00 Doug Williams, quarterback (1955) ** 08 09 99 99 00 Herman Talmadge, former Georgia Senator (1913) ** 08 09 99 99 00 Ken Norton, boxer (1945) ** 08 09 99 99 00 Melanie Griffith, actor (1957) ** 08 09 99 99 00 Ralph Houk, former baseball manager (1919) ** 08 09 99 99 00 Sam Elliott, actor (1944) ** 08 09 99 99 00 Sammy Duvall, water-skier and Windermere, FL resident (1962) ** 08 09 99 99 00 Whitney Houston, singer (1963) ** 08 10 99 99 00 Eddie Fisher, singer (1928) ** 08 10 99 99 00 Herbert Hoover, 31st President (1929-1933) (1874) ** 08 10 99 99 00 Ian Anderson (Jethro Tull) born (Edinburgh, Scotland, 1947) ** 08 10 99 99 00 Jimmy Dean, singer (1928) ** 08 10 99 99 00 Patti Austin, singer (1948) ** 08 10 99 99 00 Rhonda Fleming, actress (1923) ** 08 10 99 99 00 Rosanna Arquette, actress (1959) ** 08 10 99 99 00 The original Rin Tin Tin dies (1932) ** 08 11 99 99 00 Alex Haley, author (1921) ** 08 11 99 99 00 Eric Carmen, singer (1949) ** 08 11 99 99 00 Mike Douglas, former TV talk show host (1925) ** 08 11 99 99 00 Rev. Jerry Falwell (1933) ** 08 11 99 99 00 Steve Rondinaro, WESH-Channel 2 news anchor (1954) ** 08 12 99 99 00 B. Kliban, cartoonist best known for his "CAT" character, dies (1990) ** 08 12 99 99 00 Cecil B. deMille, directed God. (1881) ** 08 12 99 99 00 Dale Bumpers, politician (1925) ** 08 12 99 99 00 George Hamilton, actor (1939) ** 08 12 99 99 00 Issac Singer granted a patent for his sewing machine. (1851) ** 08 12 99 99 00 John Derek, director (1926) ** 08 12 99 99 00 Larry Ziegler, golfer (1939) ** 08 12 99 99 00 Mario Moreno, alias Cantinflas. (1911) ** 08 12 99 99 00 Thomas Mann, American author, dies (1955) ** 08 12 99 99 00 William Blake, English poet, dies (1827) ** 08 13 99 99 00 Alfred Hitchcock, film producer, born (1899) ** 08 13 99 99 00 Anders Jonas Angstrom born (1814) ** 08 13 99 99 00 Annie Oakley born (1860) ** 08 13 99 99 00 Dan Fogelberg, singer, is born (Peoria, IL, 1951) ** 08 13 99 99 00 Don Ho, singer (1930) ** 08 13 99 99 00 Fidel Castro, Cuban leader, born (1926) ** 08 13 99 99 00 Johann Christoph Denner, invented the clarinet. (1655) ** 08 13 99 99 00 Kenneth Ernst, "Mary Worth" artist since 1942, dies at age 67 (1985) ** 08 13 99 99 00 Lucy Stone, pioneer in Woman's Rights. (1818) ** 08 13 99 99 00 Pat Harrington, actor (1929) ** 08 14 99 99 00 Alice Ghostley, actress, is born (1926) ** 08 14 99 99 00 Bertolt Brecht, dramatist and theatrical director dies (1956) ** 08 14 99 99 00 Buddy Greco, singer (1926) ** 08 14 99 99 00 David Crosby, singer, is born in Los Angeles (1941) ** 08 14 99 99 00 Earl Weaver, baseball manager (1930) ** 08 14 99 99 00 Robyn Smith, jockey (1944) ** 08 14 99 99 00 Russell Baker, newspaper columnist (1925) ** 08 14 99 99 00 Susan Saint James, actress, is born (1946) ** 08 14 99 99 00 William Randolph Hearst, newspaper publisher, dies in Beverly Hills (1951) ** 08 15 99 99 00 Janice Rule, actress (1931) ** 08 15 99 99 00 Jim Dale, actor (1935) ** 08 15 99 99 00 Julia Child, chef. (1912) ** 08 15 99 99 00 Linda Ellerbee, author-journalist (1944) ** 08 15 99 99 00 Macbeth, King of Scotland, was slain by the son of King Duncan. (1057) ** 08 15 99 99 00 Mary Queen of Scots was married to the Dauphin. She was 6 years old (1548) ** 08 15 99 99 00 Mike Connors, actor (1925) ** 08 15 99 99 00 Napoleon Bonaparte was born (1769) ** 08 15 99 99 00 Phyllis Schlafly, Eagle Forum president (1924) ** 08 15 99 99 00 Princess Anne of England was born (1950) ** 08 15 99 99 00 Robert Bolt, playwright (1924) ** 08 15 99 99 00 Rose Marie, actress (1925) ** 08 15 99 99 00 Sir James Douglas, father of British Columbia. (1803) ** 08 15 99 99 00 Sir Walter Scott is born (1771) ** 08 15 99 99 00 Thomas Edward Lawrence (Lawrence of Arabia), soldier, archaeologist, adventurer, and author, is born in Wales (1877) ** 08 15 99 99 00 Vernon Jordan, civil rights activist (1935) ** 08 15 99 99 00 Will Rogers and Wiley Post die in airplane crash near Point Barrow, Alaska (1935) ** 08 16 99 99 00 Alfred Lord Tennyson, Poet Laureate, is born (1809) ** 08 16 99 99 00 Anita Gillette, actress (1936) ** 08 16 99 99 00 Ann Blyth, actress (1928) ** 08 16 99 99 00 Arthur Cayley, mathematician, dies (1821) ** 08 16 99 99 00 Babe Ruth, baseball player, dies (1948) ** 08 16 99 99 00 Elvis Presley died at Graceland Mansion in Memphis at age 42. (1977) ** 08 16 99 99 00 Eydie Gorme, singer (1932) ** 08 16 99 99 00 Fess Parker, actor (1925) ** 08 16 99 99 00 Frank Gifford, sportscaster (1930) ** 08 16 99 99 00 Harold Foster, cartoonist, created "Prince Valiant", known for it's fine drawing and historical detail, is born (1892) ** 08 16 99 99 00 Hugo Gernsback, responsible for science fiction becoming an independent literary form, is born (1884) ** 08 16 99 99 00 Julie Newmar, tall and beautiful Scandinavian actress, is born (1935) ** 08 16 99 99 00 Lesley Ann Warren, actress (1946) ** 08 16 99 99 00 Madonna, singer (1958) ** 08 16 99 99 00 Menachem Begin, former Israeli Prime Minister (1913) ** 08 16 99 99 00 Robert Culp, actor (1930) ** 08 16 99 99 00 Timothy Hutton, actor (1960) ** 08 17 99 99 00 Belinda Carlisle, singer (1958) ** 08 17 99 99 00 Davy Crockett, American folk hero, is born (1786) ** 08 17 99 99 00 Donnie Wahlberg, singer (1969) ** 08 17 99 99 00 Ira Gershwin, lyricist and brother of George Gershwin, dies (1983) ** 08 17 99 99 00 Mae West, actress, is born (1892) ** 08 17 99 99 00 Pearl Bailey, Singer with the sexy, throaty drawl, died at age 72. (1990) ** 08 17 99 99 00 Robert DeNiro, actor (1943) ** 08 18 99 99 00 Gail Fisher, actress (1935) ** 08 18 99 99 00 Genghis Khan, Mongol emperor, dies (1227) ** 08 18 99 99 00 Malcolm-Jamal Warner, actor (1970) ** 08 18 99 99 00 Marshall Field, founded a Chicago-based store chain. (1834) ** 08 18 99 99 00 Martin Mull, actor-comedian (1943) ** 08 18 99 99 00 Meriwether Lewis, of Lewis and Clark, is born (1774) ** 08 18 99 99 00 Pearl Baily, spiritual singer, dies (1990) ** 08 18 99 99 00 Robert Redford, the actor, is born (1937) ** 08 18 99 99 00 Roman Polanski, filmmaker (1933) ** 08 18 99 99 00 Rosalynn Carter, former first lady, born (1927) ** 08 18 99 99 00 Shelley Winters, actress (1922) ** 08 18 99 99 00 Virginia Dare, the first woman to be born in America of English parents, is born in North Carolina (1587) ** 08 19 99 99 00 B. F. Skinner, psychologist, dies (1990) ** 08 19 99 99 00 Blaise Pascal, the mathematician and philosopher, died (1662) ** 08 19 99 99 00 Count Rumford, aka Benjamin Thompson, Physicist, inventor and adventurer, dies (1814) ** 08 19 99 99 00 Debra Paget, actress (1933) ** 08 19 99 99 00 Gene Roddenberry, Star Trek producer (1921) ** 08 19 99 99 00 Gerald McRaney, actor (1948) ** 08 19 99 99 00 John Flamsteed, 1st astronomer royal of England. (1646) ** 08 19 99 99 00 Ogden Nash, humorist, born (1902) ** 08 19 99 99 00 Orville Wright, pioneer aviator, born (1871) ** 08 19 99 99 00 Ring Lardner Junior, author (1915) ** 08 19 99 99 00 Seth Thomas, pioneer in mass production of clocks. (1785) ** 08 19 99 99 00 Willie Shoemaker, jockey (1931) ** 08 20 99 99 00 Benjamin Harrison, 23rd President (1889-1893) (1833) ** 08 20 99 99 00 Connie Chung, network newscaster, is born (1946) ** 08 20 99 99 00 Isaac Hayes, singer (1942) ** 08 20 99 99 00 Leon Trotsky assassinated (1940) ** 08 20 99 99 00 Rajiv Gandhi, former prime minister of India (1944) ** 08 20 99 99 00 Robert Plant (Led Zeppelin) born (Worcestershire, England, 1948) ** 08 21 99 99 00 Count Basie, jazz pianist and bandleader, is born (1906) ** 08 21 99 99 00 Hubert Gautier, engineer, wrote 1st book on bridge building. (1660) ** 08 21 99 99 00 Jim McMahon, football quarterback (1959) ** 08 21 99 99 00 Kenny Rogers, singer (1938) ** 08 21 99 99 00 Princess Margaret Rose, sister of Queen Elizabeth II, is born but the birth is not registered till three days later to avoid the registration number 13 (1930) ** 08 22 99 99 00 Carl Yastrzemski, baseball great (1939) ** 08 22 99 99 00 Cindy Williams, actress (1948) ** 08 22 99 99 00 Claude Debussy, composer, born (1862) ** 08 22 99 99 00 Huey Newton, was found shot to death in Oakland, California (1989) ** 08 22 99 99 00 King Richard III of England, last of the Plantagenets, dies in the Battle of Bosworh Field ending the War of the Roses. (1485) ** 08 22 99 99 00 Mats Wilander, tennis star (1964) ** 08 22 99 99 00 Morton Dean, newsman (1935) ** 08 22 99 99 00 Ray Bradbury, science fiction author, is born (1920) ** 08 22 99 99 00 Valerie Harper, actress, is born (1940) ** 08 23 99 99 00 Barbara Eden, actress, is born (1934) ** 08 23 99 99 00 Gene Kelly, dancer and actor, born (1912) ** 08 23 99 99 00 James "Sunny Jim" Rolph, Mayor (1912-1931), Muni backer. (1869) ** 08 23 99 99 00 Keith Moon born (London, 1947) ** 08 23 99 99 00 Louis XVI, future French king, is born at Versailes (1754) ** 08 23 99 99 00 Mark Russell, political satirist, is born (1932) ** 08 23 99 99 00 Mike Elliott, deejay WOMX-FM (105.1) Orlando, FL. (1959) ** 08 23 99 99 00 Oliver Hazard Perry, U.S. Naval hero, was born in Rhode Island (1785) ** 08 23 99 99 00 Oscar Hammerstein II, librettist, dies (1960) ** 08 23 99 99 00 Patricia McBride, ballet dancer, is born (1942) ** 08 23 99 99 00 Queen Noor, Queen of Jordan, is born (1952) ** 08 23 99 99 00 Rudolph Valentino, silent film actor, dies at the age of 31 (1926) ** 08 23 99 99 00 Shelley (sic) Long, actess, is born (1949) ** 08 23 99 99 00 Terry Catledge, Orlando Magic forward (1963) ** 08 23 99 99 00 Vera Miles, actress, is born (1930) ** 08 24 99 99 00 Cal Ripken Jr., All-Star shortstop (1960) ** 08 24 99 99 00 Dennis James, TV host (1917) ** 08 24 99 99 00 Durward Kirby, TV personality (1912) ** 08 24 99 99 00 Gerry Cooney, boxer (1956) ** 08 24 99 99 00 Il Parmigianino, aka Francesco Mazzola, painter, dies Cremona, Italy (1540) ** 08 24 99 99 00 Jorge Luis Borges, Argentinian author, is born (1899) ** 08 24 99 99 00 Marlee Matlin, actress (1965) ** 08 24 99 99 00 Pliny the Elder, naturalist and author, dies during the Vesuvius eruption (79) ** 08 24 99 99 00 Sir Daniel Gooch, laid 1st successful trans-Atlantic cables (1816) ** 08 24 99 99 00 William Francis Gibbs, naval architect, designed the Liberty ships (1886) ** 08 25 99 99 00 Althea Gibson, 1st black tennis champion (in a major event) (1927) ** 08 25 99 99 00 Anne Archer, actress (1947) ** 08 25 99 99 00 David Hume, philosopher, dies (1776) ** 08 25 99 99 00 Francis Bret Harte, American author, is born (1836) ** 08 25 99 99 00 Friedrich Wilhelm Nietzsche, German philosopher, dies (1900) ** 08 25 99 99 00 Gene Simmons, rock singer-actor (1949) ** 08 25 99 99 00 Ivan the Terrible, czar of Russia, is born (1530) ** 08 25 99 99 00 Leonard Bernstein, conductor and composer, is born (1918) ** 08 25 99 99 00 Pat Clarke, WFTV-Channel 9 sports anchor, Orlando, Fl. (1959) ** 08 25 99 99 00 Sean Connery, actor most famous for his roles as James Bond, is born in Edinburgh, Scotland (1930) ** 08 25 99 99 00 Tom Skerritt, actor (1933) ** 08 25 99 99 00 Walt Kelly, creator of Pogo comic strip, is born (1913) ** 08 25 99 99 00 William Herschel dies (1822) ** 08 26 99 99 00 Anton van Leeuwenhoek, the inventor of the microscope, dies (1723) ** 08 26 99 99 00 Ben J. Wattenberg, author (1933) ** 08 26 99 99 00 Benjamin C. Bradlee, Washington Post Executive Editor (1921) ** 08 26 99 99 00 Charlie Parker, jazz guitarist, is born (1920) ** 08 26 99 99 00 Geraldine Ferraro, former Democratic vice-presidential nominee (1935) ** 08 26 99 99 00 Lee De Forest, invented the Audion vacuum tube (radio tube) (1873) ** 08 26 99 99 00 Prince Albert (Queen Victoria's husband) born (not in a can) in Bavaria (1819) ** 08 26 99 99 00 Sir Robert Walpole, Whig statesman and British Prime Minister, is born (1676) ** 08 26 99 99 00 Valerie Simpson, singer (1948) ** 08 27 99 99 00 C.S. Forester, historical novelist, created Horatio Hornblower (1899) ** 08 27 99 99 00 Daryl Dragon, the "captain" of Captain and Tenille (1942) ** 08 27 99 99 00 Linda Chapin, Orange County Commissioner, Orlando, FL. (1941) ** 08 27 99 99 00 Lyndon B. Johnson, 36th President (1963-1969) (1908) ** 08 27 99 99 00 Martha Raye, actress-comedian (1916) ** 08 27 99 99 00 Mother Teresa, Nobel peace laureate (1910) ** 08 27 99 99 00 Samuel Goldwyn, pioneer filmmaker (1882) ** 08 27 99 99 00 Stevie Ray Vaughn dies in helicopter crash (East Troy, WI, 1990) ** 08 27 99 99 00 Titian, the Venetian painter, dies (1576) ** 08 27 99 99 00 Tommy Sands, actor (1937) ** 08 27 99 99 00 Tuesday Weld, actress (1943) ** 08 28 99 99 00 Ben Gazzara, actor (1930) ** 08 28 99 99 00 David Soul, actor (1943) ** 08 28 99 99 00 Donald O'Connor, actor-dancer (1925) ** 08 28 99 99 00 Johann Wolfgang von Goethe, poet, novelist, is born (1749) ** 08 28 99 99 00 Leo Tolstoy was born (1828) ** 08 28 99 99 00 Nancy Kulp, actress (1921) ** 08 28 99 99 00 Richard Sanders, actor (1940) ** 08 28 99 99 00 Roger Tory Peterson, bird lover and naturalist author, was born (1908) ** 08 28 99 99 00 Scott Hamilton, skating champion (1958) ** 08 28 99 99 00 The poet Shelley elopes with Harriet Westbrook (1811) ** 08 29 99 99 00 Barry Sullivan, actor (1912) ** 08 29 99 99 00 Brigham Young, 2nd president of the Morman Church, died in Utah. (1877) ** 08 29 99 99 00 Edmond Hoyle, the games master, dies at 97 (1769) ** 08 29 99 99 00 Elliott Gould, actor (1938) ** 08 29 99 99 00 George Montgomery, actor (1916) ** 08 29 99 99 00 Jean Ingres, the artist, is born (1780) ** 08 29 99 99 00 John Locke, writer and thinker on the philosophy of government, is born (1632) ** 08 29 99 99 00 Lee Marvin, actor, dies (1987) ** 08 29 99 99 00 Michael Jackson, singer and dancer, born in Gary, Indiana (1958) ** 08 29 99 99 00 Oliver Wendell Holmes born, physician and father of the jurist (1809) ** 08 29 99 99 00 Sir Richard Attenborough, actor-director (1923) ** 08 29 99 99 00 St. John the Baptist beheaded by Herod rewarding Salome for dance (30) ** 08 29 99 99 00 William Friedkin, director (1939) ** 08 30 99 99 00 Cleopatra commits suicide with a snake (30 BC) ** 08 30 99 99 00 Fred MacMurray, actor (1908) ** 08 30 99 99 00 John W. Mauchly born (1907) ** 08 30 99 99 00 Mary Godwin Wollstonecraft Shelley, English author ("Frankenstein") is born (1797) ** 08 30 99 99 00 Regina Resnik, opera singer (1922) ** 08 30 99 99 00 Shirley Booth, actress (1907) ** 08 30 99 99 00 Ted Williams, Hall-of-Famer (1918) ** 08 31 99 99 00 Buddy Hackett, comedian (1924) ** 08 31 99 99 00 Debbie Gibson, singer (1970) ** 08 31 99 99 00 Frank Robinson, baseball great (1935) ** 08 31 99 99 00 Itzhak Perlman, violinist (1945) gcal-4.1/data/dates/events30000664000000000000000000010375112353366122012512 00000000000000# CalenTool V2.2 - nflag=1 range=5,6 - DO NOT REMOVE THIS LINE # Notable events in history (May-June) # $Header: events3,v 1.1 91/03/07 16:19:06 billr Exp $ # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # All dates in this file are New Style unless otherwise noted. # Some duplicates may exist where I haven't been able to verify which # one is correct. # ** 05 01 99 99 00 1st adhesive postage stamps ("Penny Blacks" from England) issued. (1840) ** 05 01 99 99 00 1st school for the deaf founded. (1860) ** 05 01 99 99 00 Congress changes the flag to have 15 stars and 15 stripes for the new states of Vermont and Kentucky. It was this flag that inspired the "Star Spangled Banner" (1795) ** 05 01 99 99 00 Folies-Bergere opens in Paris. (1869) ** 05 01 99 99 00 US Quarantine Station opens on Angel Island. (1892) ** 05 01 99 99 00 construction begins in Chicago on the 1st skyscraper. (1884) ** 05 03 99 99 00 1st regular steam train passenger service starts. (1830) ** 05 03 99 99 00 Anti-war protest disrupts business in Washington (1971) ** 05 03 99 99 00 Columbus discovers Jamaica on his second voyage (1494) ** 05 04 99 99 00 "Waltzing Matilda" is officially adopted as Australia's National Anthem (1976) ** 05 04 99 99 00 Four Kent State students protesting invasion of Cambodia are shot by Ohio National Guard (1970) ** 05 04 99 99 00 Governor Peter Minuit buys Manhattan Island for $24 of scarlet cloth and brass buttons (1626) ** 05 04 99 99 00 House of York defeats the House of Lancaster at Tewkesbury (1471) ** 05 04 99 99 00 Phonograph shown for 1st time at the Grand Opera House. (1878) ** 05 04 99 99 00 The Haymarket riots (1886) ** 05 04 99 99 00 Woodward's Gardens opens to public. (1866) ** 05 04 99 99 00 four students killed by national guardsmen during student demonstration against Cambodia incursion at Kent State University (1970) ** 05 05 99 99 00 Carnegie Hall, originally named just "Music Hall", opens (1891) ** 05 05 99 99 00 Council of Europe established. (1949) ** 05 05 99 99 00 John Scopes was arrested in Tennessee for teaching Darwin's theory of Evolution (1925) ** 05 05 99 99 00 The congressional Iran-Contra hearings opened. (1987) ** 05 06 99 99 00 Chinese immigrants banned from the US for ten years (1882) ** 05 06 99 99 00 Patent granted to Dr. John Farrie for a "refrigeration machine" (1851) ** 05 06 99 99 00 The Hindenburg, a hydrogen filled zeppelin over 800 feet long, explodes during mooring in Lakehurst, NJ. Only 36 of the 98 aboard were killed. (1937) ** 05 06 99 99 00 The Paris Exposition formally opened featuring the Eiffel Tower (1889) ** 05 06 99 99 00 the Olympic Club, 1st athletic club in US, founded. (1860) ** 05 07 99 99 00 Communists take Dien Bien Phu in Vietnam (1954) ** 05 07 99 99 00 General Eisenhower accepts German surrender in WWII from General Jodl (1945) ** 05 07 99 99 00 General Sherman begins his "march to the sea" (1864) ** 05 07 99 99 00 Lusitania is sunk by German torpedo, 1198 dead (1915) ** 05 07 99 99 00 The Columbia River is discovered by Capt. Robert Gray (1792) ** 05 08 99 99 00 England and China sign an agreement that opium should be used as their main trading commodity (1911) ** 05 08 99 99 00 First major battle of the Mexican War fought at Palo Alto, Texas resulting in victory for the U. S. forces of General Zachary Taylor (1846) ** 05 08 99 99 00 Helmeted construction workers broke up an anti-war protest (1970) ** 05 08 99 99 00 Hernando de Soto discovers the Mississippi River near Memphis (1541) ** 05 08 99 99 00 John Styth Pemberton invented the syrup for a beverage that came to be known as Coca-Cola (1886) ** 05 08 99 99 00 President Truman announces in a Radio address that World War II has ended in Europe (1945) ** 05 08 99 99 00 Senator Gary Hart withdraws from the presidential race over allegations that he was seeing model Donna Rice (1987) ** 05 08 99 99 00 U.S. institutes mining of Haiphong Harbor (1972) ** 05 09 99 99 00 94 degrees F (New York City, 1979) ** 05 09 99 99 00 Hitler burned books in Berlin (1933) ** 05 09 99 99 00 Impeachment hearings against Richard Nixon were opened by the House Judiciary Committee (1974) ** 05 09 99 99 00 President Wilson declares the second Sunday of May as Mother's Day (1914) ** 05 10 99 99 00 Continental Congress issues paper currency for 1st time. (1775) ** 05 10 99 99 00 Germany invades Low Countries (1940) ** 05 10 99 99 00 The Driving of the Golden Spike, Promontory Point, Utah. The Transcontinential railroad is completed (1869) ** 05 10 99 99 00 The first Mother's Day is celebrated in Philadelphia (1908) ** 05 10 99 99 00 The first planetarium in the US opens in Chicago (1930) ** 05 11 99 99 00 100 pounds of plutonium catches fire at Rocky Flats, Colorado (1969) ** 05 11 99 99 00 1st US fire insurance policy is issued, in Philadelphia. (1752) ** 05 11 99 99 00 B. F. Goodrich announced the development of a tubeless tire (1947) ** 05 11 99 99 00 British forces capture Rangoon (1824) ** 05 11 99 99 00 Einstein's Theory of General Relativity presented (1916) ** 05 11 99 99 00 Glacier National Park in Montana was established (1910) ** 05 11 99 99 00 Jay Forrester patents computer core memory. (1951) ** 05 11 99 99 00 Minnesota became the 32nd state of the Union (1858) ** 05 11 99 99 00 Thailand is adopted as the new name for Siam (1949) ** 05 11 99 99 00 U.N. admits Israel (1949) ** 05 11 99 99 00 U.S. Forces land on the Japanese held island of Attu in the Aleutians (1943) ** 05 12 99 99 00 George VI takes the throne of England after abdication by Edward VIII (1937) ** 05 12 99 99 00 Manitoba becomes a Canadian Province (1870) ** 05 12 99 99 00 Russians occupy Samarkand (1868) ** 05 12 99 99 00 The Commerce Department announced that hurricanes would no longer be named exclusively after women (1978) ** 05 13 99 99 00 "Black Friday" signals the total collapse of the German economic system (1927) ** 05 13 99 99 00 11 members of a high school class lost in snowstorm on Mount Hood. 2 walk to safety. Of the 9 found in a snow cave 2 days later only 2 were alive. (1986) ** 05 13 99 99 00 Churchill gives speech, "I have nothing to offer but blood, toil, tears and sweat." (1940) ** 05 13 99 99 00 English land to found Jamestown (1st permanent settlement) (1607) ** 05 13 99 99 00 Institute for Electrical & Electronics Engineers (IEEE) founded (1884) ** 05 13 99 99 00 Mary of Scotland is defeated at the battle of Langside (1568) ** 05 13 99 99 00 Pope John Paul II was seriously wounded in St. Peter's Square by Turkish assailant Mehmet Ali Agca (1981) ** 05 13 99 99 00 The Philadelphia police drop a bomb on a row house to flush out radicals and burn down 4 blocks of houses (1985) ** 05 13 99 99 00 The U.S. declares war on Mexico (1846) ** 05 13 99 99 00 The first U.S. airmail stamps were introduced (1918) ** 05 13 99 99 00 The merchant ship Mayaguez was seized by the Cambodian Navy (1975) ** 05 13 99 99 00 Three peasant children near Fatima, Portugal, saw a vision of the Virgin Mary (1917) ** 05 13 99 99 00 V-E (Victory in Europe) day (1945) ** 05 13 99 99 00 colonists arrive at Jamestown, Virginia (1607) ** 05 14 99 99 00 Accession of Louis XIV, age 4, Anne of Austria was the regent (1643) ** 05 14 99 99 00 Beginning of Lewis & Clark Expedition (1804) ** 05 14 99 99 00 Edward Jenner shows that humans could be safely inoculated against smallpox with the use of cowpox (1796) ** 05 14 99 99 00 Gail Borden applies for patent for making condensed milk. (1853) ** 05 14 99 99 00 Nation of Israel proclaimed (1948) ** 05 14 99 99 00 Paraguay gains it's independence. (1811) ** 05 14 99 99 00 Representatives from eight Communist bloc countries signed the Warsaw Pact in Poland (1955) ** 05 14 99 99 00 The Dutch army surrenders to the Germans (1940) ** 05 14 99 99 00 The day commonly accepted as the day of Christ's ascension (33) ** 05 14 99 99 00 Victory of English barons at the battle of Lewes (1264) ** 05 15 99 99 00 Asylum for Inebriates founded, Binghamton NY (1854) ** 05 15 99 99 00 Las Vegas, Nevada is founded (1905) ** 05 15 99 99 00 Panama Canal opened (1914) ** 05 15 99 99 00 Presidential candidate George Wallace and three bystanders were shot by Arthur H. Bremer (1972) ** 05 15 99 99 00 The Royal Opera house, Covent Garden, opened in London (1858) ** 05 15 99 99 00 Two women were named generals, the first ever in U.S. History (1970) ** 05 15 99 99 00 the first nylon stockings are sold (1940) ** 05 15 99 99 00 the last broadcast of Lowell Thomas (1976) ** 05 16 99 99 00 Congress authorizes nickel 5-cent piece (the silver half-dime was used up to this point) (1866) ** 05 16 99 99 00 First Class Mail now costs 8 cents (was 6 cents). (1971) ** 05 16 99 99 00 Japanese climber Junko Tabei became the first woman to reach the (1975)summit of Mount Everest. ** 05 16 99 99 00 Supreme court rules that bootleggers must file income-tax forms even though bootlegging is illegal (1927) ** 05 16 99 99 00 Surgeon General released a report declaring nicotine is addictive. (1988) ** 05 16 99 99 00 William H. Seward, bought Alaska at $0.02/acre. (1801) ** 05 17 99 99 00 24" rain in 11 hours, Pearl River, S. China (1982) ** 05 17 99 99 00 An Iraqi warplane attacked the U.S. Navy frigate Stark in the Persian Gulf killing thirty-seven American sailors (1987) ** 05 17 99 99 00 President Harding opens (via telephone) 1st Valencia Orange Show in Anaheim (1921) ** 05 17 99 99 00 Six Symbionese Liberation Army (SLA) members killed in televised gun fight (1974) ** 05 17 99 99 00 Supreme Court rules on Brown v. Topeka Board of Education, overthrowing the principle of 'separate but equal' (1954) ** 05 17 99 99 00 The New York Stock Exchange is founded under a tree located on what is now Wall Street (1792) ** 05 17 99 99 00 the Watergate hearings begin (1973) ** 05 18 99 99 00 Congress passes the Lindbergh Act (1934) ** 05 18 99 99 00 Mount St. Helens in Washington explodes blowing off the top 1300 feet, killing 57 people and leveling 150 square miles of forest (1980) ** 05 18 99 99 00 Napoleon crowned Emperor (1804) ** 05 18 99 99 00 TVA Act signed by President Roosevelt. (1933) ** 05 18 99 99 00 The Canadian city of Montreal was founded (1642) ** 05 18 99 99 00 The Graf Zeppelin makes its maiden voyage (1930) ** 05 18 99 99 00 The Republican Party nominated Abraham Lincoln for President (1860) ** 05 18 99 99 00 The city of Acre is taken by Moslem forces killing or enslaving 60000 Christians (1291) ** 05 19 99 99 00 Attempted assassination of Queen Victoria by William Hamilton (1849) ** 05 19 99 99 00 Napoleon creates the Order of the Legion of Honor (1802) ** 05 19 99 99 00 The British put a tax on dogs (1796) ** 05 19 99 99 00 The Emergency Quota Immigration Act passed (1921) ** 05 19 99 99 00 The Federated Boys' Clubs, forerunner of the Boys' Clubs of America were organized (1906) ** 05 19 99 99 00 The Spanish Armada sets sail from Lisbon (1588) ** 05 19 99 99 00 the Homestead Act becomes law. (1862) ** 05 20 99 99 00 Ascension Island discovered by the Portuguese (1501) ** 05 20 99 99 00 Charles Lindbergh starts flight from New York to Paris winning $25000 (1929) ** 05 20 99 99 00 first speeding arrest, to Jacob German of New York City (1899) ** 05 20 99 99 00 the digging is finished for the Panama Canal (1913) ** 05 21 99 99 00 Charles Lindberg arrives in Paris from New York (1927) ** 05 21 99 99 00 Last communication from the U.S. Scorpion with 99 men aboard. (1968) ** 05 21 99 99 00 The U.S. exploded the first airborne hydrogen bomb in the Pacific. (1956) ** 05 21 99 99 00 the American Red Cross is founded. (1881) ** 05 22 99 99 00 Alexander the Great defeats Darius at Granicus (334 0) ** 05 22 99 99 00 Ceylon is declared a republic and the name changes to Sri Lanka (1972) ** 05 22 99 99 00 Hitler and Mussolini signed a "Pact Of Steel" committing Germany and Italy to a military alliance (1939) ** 05 22 99 99 00 Mungo Park sets sail on his first voyage to Africa (1795) ** 05 22 99 99 00 The "Great Train Robbery" took place in Indiana. (1868) ** 05 22 99 99 00 The first steam-propelled vessel to attempt a trans-Atlantic crossing, departed from Savannah, GA (1819) ** 05 22 99 99 00 The village of Brigadoon first disappears, only to reappear every 100 years (1753) ** 05 22 99 99 00 U.S. Civil War ends (1865) ** 05 22 99 99 00 the Isle of Lundy is acquired by the British National Trust (1969) ** 05 22 99 99 00 the official opening of the Blackwall tunnel under the Thames (1897) ** 05 23 99 99 00 Israeli raid into Argentina and successfully capture Adolf Eichmann (1960) ** 05 23 99 99 00 South Carolina becomes the 8th state (1788) ** 05 23 99 99 00 Two Yetis sighted, Mt. Everest (1953) ** 05 24 99 99 00 Berkeley named (for George Berkeley, Bishop of Cloyne). (1866) ** 05 24 99 99 00 First telegraph message (1824) ** 05 24 99 99 00 John Hancock elected president of the Continental Congress (1775) ** 05 24 99 99 00 Samual F.B. Morse taps out "What Hath God Wrought" (1844) ** 05 24 99 99 00 The Brooklyn Bridge opened by Pres. Arthur & Gov. Cleveland. (1883) ** 05 24 99 99 00 The last US Cavalry horse dies. His name was Chief. (1968) ** 05 24 99 99 00 in Boston, the 1st auto repair shop opens. (1899) ** 05 25 99 99 00 Argentina begins its revolt against Spain (1810) ** 05 25 99 99 00 Captain Cook sets off on his first voyage of discovery (1768) ** 05 25 99 99 00 Constitutional Convention convenes in Philadelphia. (1787) ** 05 25 99 99 00 Henry Ford stops producing the Model T car (begins Model A). (1927) ** 05 25 99 99 00 Oral Roberts sees 900 foot tall Jesus Christ, Tulsa OK (1980) ** 05 25 99 99 00 Pres. John Kennedy declares landing a man on the Moon to be national objective (1961) ** 05 25 99 99 00 Representative Wayne Hays admits to a "personal relationship" with Elizabeth Ray a committee staff member, who claims she'd got received her job in order to be his mistress (1976) ** 05 25 99 99 00 Successful test of the limelight in Purfleet, England (1830) ** 05 25 99 99 00 Transjordan, now called just Jordan, becomes a kingdom (1946) ** 05 25 99 99 00 rebuilt Coventry Cathedral is consecrated (1962) ** 05 26 99 99 00 Congress sets first immigration quotas (1924) ** 05 26 99 99 00 General Kirby Smith surrenders in Texas ending the Civil War (1865) ** 05 26 99 99 00 George Willig scaled the South Tower of New York's World Trade Center, and was arrested at the top of the 110 story building (1977) ** 05 26 99 99 00 John Von Neumann files patent for hydrogen bomb (1946) ** 05 26 99 99 00 Napoleon Bonaparte was crowned king of Italy. (1805) ** 05 26 99 99 00 President Johnson avoids impeachment by 1 vote. (1868) ** 05 26 99 99 00 The cornerstone is laid for the factory used to produce KDF vehicles which were later to be known as Volkswagen Beetles. The company town also built on this site was later to be known as Wolfsburg. (1938) ** 05 26 99 99 00 US troops arrive in France (1917) ** 05 27 99 99 00 Afghanistan attains sovereignty (1921) ** 05 27 99 99 00 the Queen Mary makes her maiden voyage (1936) ** 05 28 99 99 00 Belgium falls to Germany (1940) ** 05 28 99 99 00 The Sierra Club founded (1892) ** 05 28 99 99 00 United States Customs Court created by Congress. (1926) ** 05 28 99 99 00 the Irish senate is abolished (1936) ** 05 28 99 99 00 the Nazi's win election in Danzig (1933) ** 05 29 99 99 00 Constantinople falls to the Turks (some believe this signalled the end of the Middle Ages) (1453) ** 05 29 99 99 00 Edmund Hillary & Tenzing Norkay climb Mt. Everest (1953) ** 05 29 99 99 00 Einstein's Theory of General Relativity tested during solar eclipse (1919) ** 05 29 99 99 00 First Class postage now 15 cents (was 13 cents for 3 years). (1978) ** 05 29 99 99 00 Patrick Henry denounced the Stamp Act before Virginia's House of Burgesses (1765) ** 05 29 99 99 00 Rhode Island becomes the 13rd state (1790) ** 05 29 99 99 00 Wisconsin becomes the 30th state (1848) ** 05 29 99 99 00 first food stamps are issued (1961) ** 05 30 99 99 00 U.S. Marines sent to Nicaragua (1912) ** 05 30 99 99 00 first US auto accident (1896) ** 05 31 99 99 00 1st electric railway opens at Berlin Trades Exposition. (1879) ** 05 31 99 99 00 1st recorded bicycle race, 2 kilometers in Paris. (1868) ** 05 31 99 99 00 26,000 buried chicken carcasses explode in Sheridan, OR sending chicken pieces 40 feet or more after gases build up from decay (1986) ** 05 31 99 99 00 Johnstown Flood (1889) ** 05 31 99 99 00 Tens of thousands of people in Peru died in an earthquake. (1970) ** 05 31 99 99 00 The last concrete is poured on the locks at the Panama Canal (1913) ** 05 31 99 99 00 the 17th amendment, senatorial elections, proclaimed (1913) ** 05 31 99 99 00 the battle of Jutland is fought (1916) ** 05 31 99 99 00 the first Lady Godiva procession held in Coventry celebrating her 12th century ride (1678) ** 06 01 99 99 00 Kentucky became the 15th state. (1792) ** 06 01 99 99 00 Maine became the first state to enact a law prohibiting alcohol. (1851) ** 06 01 99 99 00 Mauna Loa erupts from the Southwest rift 600M cubic yards of lava over 23 days (1950) ** 06 01 99 99 00 Tennessee became the 16th state. (1796) ** 06 01 99 99 00 The first seismographs to be installed in California are installed in the Lick Observatory (1888) ** 06 01 99 99 00 The mortally wounded commander of the U.S. Frigate Chesapeake is heard to say "Don't give up the ship" in his losing battle with the British. This later becomes the motto of the U.S. Navy. (1813) ** 06 02 99 99 00 Native Americans "granted" citizenship (1924) ** 06 02 99 99 00 Queen Elizabeth II is crowned in Westminster Abbey (1953) ** 06 03 99 99 00 First diplomatic missions exchanged between Cuba and the U.S. since 1961 (1977) ** 06 03 99 99 00 Pope John Paul II left the hospital after an attempt on his life. (1981) ** 06 03 99 99 00 The Duke of York defeats the Dutch fleet off the coast of Harwich (1665) ** 06 04 99 99 00 First minimum wage law (1912) ** 06 04 99 99 00 Henry Ford takes a test drive of his car through the streets of Detroit (1896) ** 06 04 99 99 00 Kublai becomes Khan (1250) ** 06 04 99 99 00 Roquefort cheese developed (1070) ** 06 04 99 99 00 The English army seizes King Charles I as a hostage (1647) ** 06 04 99 99 00 The Louisiana Territory was renamed the Missouri Territory (1812) ** 06 04 99 99 00 The SS St. Louis with more than 930 Jewish refugees, was turned away from the Florida coast. ("Voyage of the Damned") (1939) ** 06 04 99 99 00 The last Great Auk, a flightless sea bird of the North, is tragically clubbed to death (1844) ** 06 04 99 99 00 Thousands feared killed as Chinese Army swept into the heart of Beijing and into Tiananmen Square to break up student demonstrations (1989) ** 06 04 99 99 00 Turkey turns Cyprus over to the British (1878) ** 06 05 99 99 00 Danish women get the vote (1915) ** 06 05 99 99 00 Denmark becomes a constitutional monarchy. (1849) ** 06 05 99 99 00 Egypt reopens the Suez Canal to international shipping, 8 years after the Six Day War (1975) ** 06 05 99 99 00 General William T. Sherman refuses the Republican presidential nomination with the words, "I will not accept if nominated and will not serve if elected." (1884) ** 06 05 99 99 00 The LA Zoot Suit riots (1943) ** 06 05 99 99 00 The U.S. goes off of the gold standard (1933) ** 06 05 99 99 00 US Marines arrive in Cuba (1912) ** 06 05 99 99 00 beginning of "The Six Day War" in the Middle East (1967) ** 06 05 99 99 00 formal opening of the Pacific Stock Exchange. (1875) ** 06 05 99 99 00 the earthen Teton Dam North of Idaho Falls collapses flooding a large valley and killing over 100 people (1976) ** 06 06 99 99 00 1st drive-in theatre opens, in Camden, New Jersey. (1933) ** 06 06 99 99 00 Allied forces invade Europe in World War II, the D-Day invasion (1944) ** 06 06 99 99 00 Californians pass proposition 13, the tax control law (1978) ** 06 06 99 99 00 Finland declares war on the USSR (1919) ** 06 06 99 99 00 Half of Limon Colorado is destroyed by a force three Tornado (1990) ** 06 06 99 99 00 The Longleat hedge maze was opened. It is currently the largest maze having 1.61 miles of paths bordered by over 16000 yew trees (1978) ** 06 06 99 99 00 The Young Men's Christian Association was founded in London. (1844) ** 06 07 99 99 00 French forces occupy Mexico City (1863) ** 06 07 99 99 00 Gay Liberation Movement starts with the Stonewall Bar riots in New York. The riots lasted three days and were precipitated by a police raid. (1969) ** 06 07 99 99 00 Richard Henry Lee of Virginia proposed to the Continental Congress a resolution calling for a Declaration of Independence (1776) ** 06 07 99 99 00 Sony introduces the first home VCR for $995. By 1988 62% of U.S. homes have a VCR. (1965) ** 06 07 99 99 00 The first sitting of the Northern Ireland Parliament (1921) ** 06 07 99 99 00 U.S. refuses to recognize the Mexican government (1921) ** 06 08 99 99 00 1st commercially-made ice cream sold in New York. (1786) ** 06 08 99 99 00 Cable Cars begin service in Los Angeles. (1889) ** 06 08 99 99 00 Inventor Ives W. McGaffey received a patent for a vacuum cleaner. (1869) ** 06 08 99 99 00 The Church of Jesus Christ of Latter-day Saints (The Mormons) announces that it will now accept all eligible males into the priesthood regardless of race. Previously Black males were excluded. (1978) ** 06 08 99 99 00 bill establishing Bryce Canyon National Park signed by President Calvin Coolidge (1923) ** 06 08 99 99 00 first ad for ice cream (1786) ** 06 09 99 99 00 1st meeting of the Board of Regents, University of California. (1868) ** 06 09 99 99 00 American educator Thomas Sutherland was kidnapped in Lebanon. (1985) ** 06 09 99 99 00 Norway surrenders to the Germans in World War II (1940) ** 06 09 99 99 00 Oak Harbor nuclear power plant in Ohio loses its coolant (1985) ** 06 09 99 99 00 The Senate confirmed Warren Burger to be chief justice of the United States, succeeding Earl Warren (1969) ** 06 09 99 99 00 Thomas Sutherland, acting dean of agriculture at American University of Beirut, is kidnapped in Lebanon (1985) ** 06 10 99 99 00 Alcoholics Anonymous was founded in Akron, Ohio, by William G. (1935)Wilson and Dr. Robert Smith ** 06 10 99 99 00 Burning of the Gaspee, British revenue cutter by Rhode Islanders (1772) ** 06 10 99 99 00 Embargo on exporting goods to China is lifted by President Nixon (1971) ** 06 10 99 99 00 Great flooding of South Dakota kills hundreds (1972) ** 06 10 99 99 00 Joan of Arc defeats the Earl of Suffolk (1429) ** 06 10 99 99 00 The 'Agnes' arrives in New Orleans with the 1st ever shipment of frozen beef (1869) ** 06 10 99 99 00 US Marines land at Cuba in Spanish-American War. (1898) ** 06 10 99 99 00 US Senate votes for cloture after 75 day filibuster by Southern States on the Civil Rights Bill (1964) ** 06 10 99 99 00 first tornado recorded in America hits New Haven Connecticut (1682) ** 06 11 99 99 00 Capt. James Cook ran onto the Great Barrier Reef off Australia. (1770) ** 06 11 99 99 00 Greeks seize Troy (1184 BC) ** 06 11 99 99 00 The Continental Congress formed a committee to draft a Declaration of Independence from Britain (1776) ** 06 11 99 99 00 The Supreme Court strikes down the federal flag protection law in a 5-4 decision (1990) ** 06 12 99 99 00 26 year old cyclist Bryan Allen flew the human powered aircraft the "Gossamer Albatross" across the English Channel (1979) ** 06 12 99 99 00 An estimated 750,000 anti-nuclear demonstrators filled New York's Central Park (1982) ** 06 12 99 99 00 England installs municipal government in New York which had been under Dutch rule as New Amsterdam (1665) ** 06 12 99 99 00 Harry Houdini astounds New Yorkers by freeing himself of a straitjacket while upside down 40 feet in the air (1923) ** 06 12 99 99 00 Nelson Mandela, South African antiapartheid leader, is sentenced to life imprisonment (1964) ** 06 12 99 99 00 Phillipines gains its independence from Spain (1898) ** 06 12 99 99 00 South Africa declares a state of emergency and severely restricts news coverage (1986) ** 06 12 99 99 00 The Senate passes bill that renews draft registration (1980) ** 06 12 99 99 00 The Soviet Union executes 8 army leaders in its purge under Stalin (1937) ** 06 12 99 99 00 Victor Hugo fined and imprisoned for writing an article condemning capital punishment (1851) ** 06 12 99 99 00 Virginia's Colonial legislature; first to adopt a Bill of Rights. (1776) ** 06 12 99 99 00 the first railroad opens in Japan (1872) ** 06 13 99 99 00 A ticker-tape parade welcomed aviation hero Charles Lindbergh to NY (1927) ** 06 13 99 99 00 Queen Victoria gets her first train ride (1842) ** 06 13 99 99 00 US Supreme Court issued landmark decision: Miranda vs Arizona, granting constitutional rights to suspects (1966) ** 06 13 99 99 00 beginning of the Boxer rebellion in China (1900) ** 06 14 99 99 00 Bunson invents a gas burner. (1847) ** 06 14 99 99 00 California (Bear Flag) Republic proclaimed in Sonoma. (1846) ** 06 14 99 99 00 Germans enter Paris (1940) ** 06 14 99 99 00 Keel laid for 1st nuclear powered submarine, the Nautilus. (1952) ** 06 14 99 99 00 President Eisenhower signed an order adding the words "under God" to the Pledge of Allegiance (1954) ** 06 14 99 99 00 Sandpaper invented by I. Fischer, Jr. (1834) ** 06 14 99 99 00 Stars and Stripes adopted as US flag, replacing Grand Union flag. (1777) ** 06 14 99 99 00 The Supreme Court upholds the sobriety checkpoint as a necessary infringement of rights (1990) ** 06 14 99 99 00 The Vatican announces that the Index of Prohibited Books is abolished (1966) ** 06 15 99 99 00 Arkansas becomes the 25th state (1836) ** 06 15 99 99 00 Ben Franklin performs his famous kite experiment (1752) ** 06 15 99 99 00 France surrendered to Hitler. (1940) ** 06 15 99 99 00 J. Edgar Hoover is appointed as head of the FBI (1924) ** 06 15 99 99 00 King John signs the Magna Carta at Runnymede. (1215) ** 06 15 99 99 00 Native Americans made US citizens (1915) ** 06 15 99 99 00 Washington appointed commander-in-chief of the American Army. (1775) ** 06 15 99 99 00 the ninth Fermat number is factored by Mannasse and Lenstra using British mathematician John Pollard's number field sieve. It two months using hundreds of computers. (1990) ** 06 16 99 99 00 First Congress of Soviets (1917) ** 06 16 99 99 00 Ford Motor CO. was incorporated. (1903) ** 06 16 99 99 00 ITT (International Telephone and Telegraph) is incorporated (1920) ** 06 16 99 99 00 Soviet ballet dancer Rudolf Nureyev defected to the West. (1961) ** 06 16 99 99 00 The Soweto uprising in South Africa results in the death of over 500 Blacks (1976) ** 06 16 99 99 00 the Battle of Bunker Hill (actually it was Breed's Hill). (1775) ** 06 17 99 99 00 British peace offer rejected by Congress (1778) ** 06 17 99 99 00 China explodes its first Hydrogen bomb (1967) ** 06 17 99 99 00 Crazy Horse defeats General Crook (1876) ** 06 17 99 99 00 King Edward III renounces all claims of sovereignty over Scotland (1328) ** 06 17 99 99 00 Last German air raid on Britain in World War I (1918) ** 06 17 99 99 00 Republic of Iceland proclaimed at Thingvallir, Iceland. (1944) ** 06 17 99 99 00 Revolts in East Germany against the communist state (1953) ** 06 17 99 99 00 Russia occupies the Baltic states (1940) ** 06 17 99 99 00 Seven men are arrested in Watergate Democratic National Committee break-in (1972) ** 06 17 99 99 00 The Maori uprisings in New Zealand against the British (1843) ** 06 17 99 99 00 The Supreme Court struck down rules requiring the Lord's Prayer or Bible verses in public schools (1963) ** 06 17 99 99 00 Watergate Democratic National Committee Break-In (1972) ** 06 18 99 99 00 Napoleon Bonaparte was defeated by French forces in Belgium (Battle of Waterloo) (1815) ** 06 18 99 99 00 Susan B. Anthony, was fined $100 for trying to vote in 1872 presidental election (1873) ** 06 18 99 99 00 War of 1812 begins. (1812) ** 06 18 99 99 00 Woman's Sufferage Convention held at Merchantile Liberty Hall. (1872) ** 06 19 99 99 00 Anaheim Post Office established. (1861) ** 06 19 99 99 00 Civil Rights Acts survived an 83 day filibuster in US Senate and was approved by a vote of 73-27 (1964) ** 06 19 99 99 00 John F. Kennedy addresses Congress on civil rights (1963) ** 06 19 99 99 00 Lizzie Borden acquitted of killing her parents with an ax (1893) ** 06 19 99 99 00 Washington's troops finally leave Valley Forge. (1778) ** 06 20 99 99 00 Calcutta is captured and the English are put in the "Black Hole" (1756) ** 06 20 99 99 00 Congress adopts the "Great Seal of the United States" (1782) ** 06 20 99 99 00 Queen Victoria crowned (1837) ** 06 20 99 99 00 The New York Times announced its intention to use the honorific Ms. in both news articles and editorials (1986) ** 06 20 99 99 00 The United States chooses the Eagle as it's symbol. (1782) ** 06 20 99 99 00 US forces complete the taking of Okinawa (1945) ** 06 20 99 99 00 West Virginia becomes the 35th state (1863) ** 06 21 99 99 00 An earthquake hits Iran killing over 50000 people (1990) ** 06 21 99 99 00 Berlin airlift begins (1948) ** 06 21 99 99 00 In a 57 to 46 vote the U.S. Constitution comes into force as New Hampshire votes to ratify the Constitution (1788) ** 06 21 99 99 00 New Hampshire becomes the 9th state (1788) ** 06 21 99 99 00 The German Afrika corps under Rommel, take Tobruk (1942) ** 06 21 99 99 00 The Golden Jubilee of Queen Victoria (1887) ** 06 21 99 99 00 The Irish Rebellion ends with the rebel defeat at Vinegar Hill (1798) ** 06 21 99 99 00 The Scuttling of the German Fleet at Scapa Flow (1919) ** 06 21 99 99 00 The annexation of Zululand by the British (1887) ** 06 21 99 99 00 The foundation stone for the Capitoline Temple is laid in Rome (70) ** 06 21 99 99 00 The laying of the first stone for Christopher Wren's rebuilding of St. Paul's Cathedral (1675) ** 06 22 99 99 00 Abolhassan Bani-Sadr, president of Iran, impeached and he flees to Paris where he sets up the National Resistance Council to try to overthrow Khomeini (1981) ** 06 22 99 99 00 Antiochus III, the Great, is defeated by Ptolemy the IV, King of Egypt (217 0) ** 06 22 99 99 00 Checkpoint Charles, between East and West Berlin is dismantled (1990) ** 06 22 99 99 00 Civil rights workers disappear in Mississippi (1964) ** 06 22 99 99 00 Congress created the Department of Justice. (1870) ** 06 22 99 99 00 Coronation of George V in England (1911) ** 06 22 99 99 00 France falls to Nazi Germany. (1940) ** 06 22 99 99 00 Kansas City stops using streetcars in it's transit system. (1957) ** 06 22 99 99 00 Monmouth defeats The Covenanters at Bothwell Brig in Scotland (1679) ** 06 22 99 99 00 Royal Greenwich Observatory founded (1675) ** 06 22 99 99 00 US and Soviet Union signed an agreement to establish hot line. (1963) ** 06 22 99 99 00 Zebulon Pike reaches his peak. (1808) ** 06 22 99 99 00 accession of Richard II of England (1377) ** 06 22 99 99 00 the Germans invade Russia (1941) ** 06 22 99 99 00 the doughnut is invented. (1847) ** 06 23 99 99 00 Franklin Delano Roosevelt's last fireside chat (1944) ** 06 23 99 99 00 Slavery abolished in England (1772) ** 06 23 99 99 00 Typewriter patented (1868) ** 06 23 99 99 00 U.S. Secret Service is formed (1860) ** 06 23 99 99 00 a subpoena is served on Richard Nixon asking for the White House tapes (1973) ** 06 24 99 99 00 John Cabot, explorer, discovers Canada (1497) ** 06 24 99 99 00 Mutiny at Sebastopol by the Russian Black Sea Fleet (1917) ** 06 24 99 99 00 Senate repeals Gulf of Tonkin resolution (1970) ** 06 24 99 99 00 The Berlin Airlift begins (1948) ** 06 25 99 99 00 Custer's Last Stand at the Little Big Horn (1876) ** 06 25 99 99 00 North Korea invades South Korea (1950) ** 06 25 99 99 00 The Fork is introduced to American dining by Gov. Winthrop. (1630) ** 06 25 99 99 00 Virginia becomes the 10th state (1788) ** 06 26 99 99 00 FDR signs Federal Credit Union Act, establishing Credit Unions. (1934) ** 06 26 99 99 00 Richard the III becomes King of England (1483) ** 06 26 99 99 00 St. Lawrence Seaway dedicated by Eisenhower & Queen Elizabeth II (1959) ** 06 26 99 99 00 Toothbrush invented (1498) ** 06 26 99 99 00 William IV becomes King of England (1830) ** 06 27 99 99 00 100 degrees F (Fort Yukon, 1915) ** 06 27 99 99 00 British soldiers and others massacred at Cawnpore, India (1857) ** 06 27 99 99 00 Cairo falls to British forces (1801) ** 06 27 99 99 00 Central London Electric Tube Railroad is opened between bank and Shepard's Bush (1900) ** 06 27 99 99 00 Jack Cade defeats Stafford at Sevenoaks (1450) ** 06 28 99 99 00 Battle of Monmouth during the Revolutionary War (1778) ** 06 28 99 99 00 Queen Victoria of Great Britain is crowned (1838) ** 06 28 99 99 00 Seoul, Korea is taken by North Korean Forces (1950) ** 06 28 99 99 00 Spillways first used at Glen Canyon Dam (1983) ** 06 28 99 99 00 Supreme Court decides in favor of Alan Bakke (1978) ** 06 28 99 99 00 Treaty of Versailles (1919) ** 06 28 99 99 00 machines that dispense a hard boiled egg for a nickel are installed throughout Pennsylvania to dispose of egg surplus (1938) ** 06 28 99 99 00 mutiny on the battleship Potemkin (1905) ** 06 28 99 99 00 the Treaty of Versailles, ending World War I, was signed. (1919) ** 06 28 99 99 00 the tomato is proved to be nonpoisonous. (1820) ** 06 29 99 99 00 Congress ratifies Gadsden Purchase, adds parts of New Mexico, Arizona (1854) ** 06 29 99 99 00 President Theodore Roosevelt signs bill establishing Mesa Verde National Park (1906) ** 06 29 99 99 00 Tahiti is annexed by France (1880) ** 06 29 99 99 00 The Globe Theatre burns down during a performance of Henry VIII (1613) ** 06 29 99 99 00 Trade unions legalized in England by an act of Parliament (1871) ** 06 29 99 99 00 US forces withdraw from Cambodia (1970) ** 06 29 99 99 00 US troops enter New Guinea (1943) ** 06 29 99 99 00 the very first 1st National Bank opens in Davenport, Iowa. (1863) ** 06 30 99 99 00 China & Soviet Union announce split over ideology (1960) ** 06 30 99 99 00 Mahatma Gandhi's 1st arrest, in campaign for Indian equal rights in South Africa (1914) ** 06 30 99 99 00 The pillory is no longer a means of punishment in the United Kingdom (1837) ** 06 30 99 99 00 Yosemite becomes a California State Park (1864) ** 06 30 99 99 00 Zaire gains it's independence. (1960) ** 06 30 99 99 00 a giant fireball impacts in Central Siberia (the Tunguska Event). (1908) ** 06 30 99 99 00 the Excelsior diamond (blue-white, 995 carats) discovered. (1893) gcal-4.1/data/dates/lives30000664000000000000000000011213112353366176012331 00000000000000# CalenTool V2.2 - nflag=1 range=5,6 - DO NOT REMOVE THIS LINE # $Header: lives3,v 1.1 91/03/07 16:18:55 billr Exp $ # (May-June) # Famous people's births, deaths and marriages file for calentool # extracted from ProLine's today file and Today in History provided # by Robert Heckendorn at Hewlett-Packard in Fort Collins, Colorado. # converted to calentool format by lwv27%cas.BITNET@CUNYVM.CUNY.Edu. # # There may be duplicates where I don't have a definitive correct # date. billr@saab.cna.tek.com # ** 05 01 99 99 00 Anton Dvorak, the composer, dies (1904) ** 05 01 99 99 00 Dante Alighieri, Italian poet, is born (1265) ** 05 01 99 99 00 David Livingstone, the explorer, dies (1873) ** 05 01 99 99 00 Duke of Wellington, who made Napoleon very unhappy. (1769) ** 05 01 99 99 00 John Dryden, the poet, dies (1700) ** 05 01 99 99 00 Joseph Heller, American author, is born (1923) ** 05 01 99 99 00 Kate Smith, the singer,is born (1909) ** 05 01 99 99 00 Little Walter (Marion Walter Jacobs) born (Alexandria, LA, 1930) ** 05 01 99 99 00 Mary Harris Jones (Mother Jones), American labor leader, is born (1830) ** 05 01 99 99 00 Smokey the Bear retires (1975) ** 05 01 99 99 00 Spike Jones, American band leader, dies (1965) ** 05 02 99 99 00 Bing Crosby, the singer and actor, is born (1904) ** 05 02 99 99 00 Catherine the Great of Russia is born (1729) ** 05 02 99 99 00 Dr. Benjamin Spock born (1903) ** 05 02 99 99 00 Henry Martyn Robert, author of "Robert's Rules of Order" (1837) ** 05 02 99 99 00 J. Edgar Hoover, eternal FBI director, dies (1972) ** 05 02 99 99 00 Leonardo Da Vinci, artist and inventor, dies (Julian Calendar) (1520) ** 05 02 99 99 00 Lou Gehrig sets record for being in most consecutive games (2130) (1939) ** 05 02 99 99 00 Thomas Hardy, English author, is born (1840) ** 05 03 99 99 00 Bob Seger born (Ann Arbor, MI, 1945) ** 05 03 99 99 00 Francois Coty, perfumemaker. (1874) ** 05 03 99 99 00 Golda Meir, the Israeli leader, is born (1898) ** 05 03 99 99 00 Lord Byron swims the Dardanelles, a trip of about 4 miles (1810) ** 05 03 99 99 00 Niccolo Machiavalli, philosopher, is born (1469) ** 05 03 99 99 00 Pete Seeger, American folk singer, is born (1919) ** 05 04 99 99 00 Al Capone was jailed in Atlanta for tax evasion (1932) ** 05 04 99 99 00 Audrey Hepburn, the actress, is born in Brussels (1929) ** 05 04 99 99 00 Bartolommeo Cristofori, inventor of pianoforte, is born (1655) ** 05 04 99 99 00 Henry Huxley, biologist, is born (1825) ** 05 05 99 99 00 Alice Faye, actress (1915) ** 05 05 99 99 00 Craig James, U.S. Rep. R-Deland, Florida (1941) ** 05 05 99 99 00 Karl Marx, German political philosopher and economist, is born (1818) ** 05 05 99 99 00 Michael Palin, comedian-actor (1943) ** 05 05 99 99 00 Napoleon Bonaparte, conqueror, dies on the island of St. Helena (1821) ** 05 05 99 99 00 Nellie Bly, name became a synonym for female star reporter. (1867) ** 05 05 99 99 00 Tammy Wynette, country singer (1942) ** 05 06 99 99 00 A.P. Giannini, founder of Bank of America. (1870) ** 05 06 99 99 00 Bob Seger, rock singer (1945) ** 05 06 99 99 00 Daniel Gerber, beloved by babies at mealtime ** 05 06 99 99 00 Fred Newan, Mickey Mouse Club host (1952) ** 05 06 99 99 00 Henry David Thoreau, writer and naturalist, dies (1862) ** 05 06 99 99 00 Lyman Frank Baum (aka Frank L. Baum), author of "The Wizard of Oz", dies (1919) ** 05 06 99 99 00 Orson Welles, American actor, is born (1915) ** 05 06 99 99 00 Rudolph Valentino, the silent screen actor, is born (1895) ** 05 06 99 99 00 Sigmund Freud, Austrian psychologist, is born (1856) ** 05 06 99 99 00 Stewart Granger, actor (1913) ** 05 06 99 99 00 Willie Mays, baseball great (1931) ** 05 07 99 99 00 Antonio Salieri, Italian composer, dies (1825) ** 05 07 99 99 00 Darren McGavin, actor (1922) ** 05 07 99 99 00 Edwin Land, founded instant photography (Polaroid), is born (1909) ** 05 07 99 99 00 Gabby Hayes, Western character actor, is born (1885) ** 05 07 99 99 00 Gary Cooper, American actor, is born (1901) ** 05 07 99 99 00 Johannes Brahms, the composer, born in Hamburg (1833) ** 05 07 99 99 00 Johnny Unitas, former quarterback (1933) ** 05 07 99 99 00 Peter Ilyich Tchaikovsky, the composer, is born (1840) ** 05 07 99 99 00 Robert Browning, the poet is born (1812) ** 05 07 99 99 00 Teresa Brewer, singer (1931) ** 05 08 99 99 00 Angel Cordero, jockey (1942) ** 05 08 99 99 00 Don Rickles, comedian, is born (1926) ** 05 08 99 99 00 Edward Gibbon, historian, "The History of the Decline & Fall (1737)of the Roman Empire" ** 05 08 99 99 00 Gustave Flaubert, French novelist and author of "Madame Bovary", dies (1880) ** 05 08 99 99 00 Harry S Truman, the 33rd U.S. president, is born (1884) ** 05 08 99 99 00 Henri Dunant, founded Red Cross, YMCA. (1828) ** 05 08 99 99 00 Louis Moreau Gottschalk, 1st internationally recognized US pianist (1829) ** 05 08 99 99 00 Melissa Gilbert, actress (1964) ** 05 08 99 99 00 Peter Benchley, author (1940) ** 05 08 99 99 00 Sir David Attenborough, environmentalist, is born (1926) ** 05 08 99 99 00 Thomas Hancock, founded British rubber industry (1786) ** 05 08 99 99 00 Toni Tennille, singer, is born (1943) ** 05 09 99 99 00 Billy Joel, singer (1949) ** 05 09 99 99 00 Candice Bergen, actress, is born (1946) ** 05 09 99 99 00 Henry J. Kaiser, built Liberty Ships, Jeeps (1882) ** 05 09 99 99 00 Howard Carter, Egyptologist who found King Tutankhamen (1873) ** 05 09 99 99 00 Johann Christoph Friedrich von Schiller, German poet and playwright, dies (1805) ** 05 09 99 99 00 John Brown, the abolitionist, is born (1800) ** 05 09 99 99 00 Joseph Louis Gay-Lussac, the chemist, dies (1850) ** 05 09 99 99 00 Pinza dies (1957) ** 05 10 99 99 00 Augustin-Jean Fresnel, pioneered in optics. (1788) ** 05 10 99 99 00 Dave Mason born (Worcester, England, 1945) ** 05 10 99 99 00 David O. Selznick, the film producer, is born (1902) ** 05 10 99 99 00 Donovan, singer (1946) ** 05 10 99 99 00 Fred Astaire (Frederick Austerlitz) born in Omaha, Nebraska (1899) ** 05 10 99 99 00 Gary Owens, television and radio personality (1936) ** 05 10 99 99 00 Henry Stanley, the explorer, dies (1904) ** 05 10 99 99 00 Mother Maybelle Carter, American country singer, is born (1909) ** 05 10 99 99 00 Nancy Walker, actress (1921) ** 05 10 99 99 00 Paul Revere, American silversmith and patriot, dies (1818) ** 05 10 99 99 00 Phil Mahre, Olympic medalist skier (1957) ** 05 10 99 99 00 Steve Mahre, Olympic medalist skier (1957) ** 05 11 99 99 00 Bob Marley, Reggae singer, dies in hospital in Miami (1981) ** 05 11 99 99 00 British Prime Minister Spencer Percival, is assassinated by Bellingham (1812) ** 05 11 99 99 00 Denver Pyle, actor, is born (1920) ** 05 11 99 99 00 Foster Brooks, comedian (1912) ** 05 11 99 99 00 Gerard Christopher, television's Superboy (1959) ** 05 11 99 99 00 Irving Berlin, the composer, was born (1888) ** 05 11 99 99 00 Margaret Rutherford, the actress, was born (1892) ** 05 11 99 99 00 Martha Graham, dancer and choreographer, born in Pittsburgh (1893) ** 05 11 99 99 00 Mort Sahl, satirist and actor, is born in Montreal, Canada (1927) ** 05 11 99 99 00 Salvador Dali, the artist, was born (1904) ** 05 11 99 99 00 Sir John Herschel, astronomer, dies in London (1871) ** 05 12 99 99 00 Burt Bacharach, composer (1929) ** 05 12 99 99 00 Dolly Madison, First Lady, was born (1768) ** 05 12 99 99 00 Edward Winslow and Susanna White become the first couple to marry in the colony of Plymouth (1621) ** 05 12 99 99 00 Emilio Estevez, actor (1962) ** 05 12 99 99 00 Farley Mowat, Never Cry Wolf author, is born (1921) ** 05 12 99 99 00 Florence Nightingale born in Florence, Italy (1820) ** 05 12 99 99 00 Gabriel Faure, composer (1845) ** 05 12 99 99 00 George Carlin, comedian (1937) ** 05 12 99 99 00 Howard K. Smith, television newscaster (1914) ** 05 12 99 99 00 John Simon, critic (1925) ** 05 12 99 99 00 Lawrence Peter (Yogi) Berra, baseball great, is born (1925) ** 05 12 99 99 00 Socrates is born (465 BC) ** 05 12 99 99 00 Wilfred Hyde-White, actor (1903) ** 05 12 99 99 00 Yogi Barra, catcher (1925) ** 05 13 99 99 00 Arthur S. Sullivan, of Gilbert and Sullivan, is born (1842) ** 05 13 99 99 00 Beatrice Authur, actress, is born (1926) ** 05 13 99 99 00 Clive Barnes, critic (1927) ** 05 13 99 99 00 Cyrus McCormick, perfecter of the mechanical harvester, dies (1884) ** 05 13 99 99 00 Daphne du Maurier, English novelist, is born (1907) ** 05 13 99 99 00 Gary Cooper, movie actor, dies (1961) ** 05 13 99 99 00 Joe Louis, heavyweight boxer, is born in Lexington Alabama (1914) ** 05 13 99 99 00 Patrice Munsel, opera singer (1925) ** 05 13 99 99 00 Peter Gabriel born England (1950) ** 05 13 99 99 00 Peter Henry Emerson, first photographer to promote photography as an independent art (1856) ** 05 13 99 99 00 Stevie Wonder, singer, is born (1950) ** 05 14 99 99 00 Billy Martin, local boy who made good in baseball. (1928) ** 05 14 99 99 00 David Byrne, rock artist (1952) ** 05 14 99 99 00 Francesca Annis, actress (1944) ** 05 14 99 99 00 Gabriel Daniel Fahrenheit, inventor of the thermometer, is born (1696) ** 05 14 99 99 00 George Lucas, movie producer (1944) ** 05 14 99 99 00 Henry Heinz, US food manufacturer, dies (1919) ** 05 14 99 99 00 Louis XIII, the French king, dies (1643) ** 05 14 99 99 00 Rita Hayworth, actress, dies of Alzheimer's disease (1987) ** 05 14 99 99 00 Season Hubley, actress (1951) ** 05 14 99 99 00 Thomas Gainsborough, artist and portrait painter, is born (1727) ** 05 14 99 99 00 assassination of Henry IV, king of England, by Ravaillac (1610) ** 05 15 99 99 00 Anthony Shaffer, playwright (1926) ** 05 15 99 99 00 Brian Peter George St. John de Baptiste de la Salle Eno born (Woodbridge, England, 1948) ** 05 15 99 99 00 Donald F. Duncan, inventor of the yo-yo, dies (1971) ** 05 15 99 99 00 Emmit Smith, University of Florida football running back (1969) ** 05 15 99 99 00 George Brett, Kansas City Royals baseball player (1953) ** 05 15 99 99 00 James Mason, the actor, is born (1909) ** 05 15 99 99 00 Joseph Cotten, actor (1905) ** 05 15 99 99 00 Lee Horsley, actor (1955) ** 05 15 99 99 00 Lyman Frank Baum, creator of the Wizard of Oz, is born (1856) ** 05 15 99 99 00 Mike Oldfield born (Essex, England, 1953) ** 05 15 99 99 00 Peter Shaffer, playwright (1926) ** 05 15 99 99 00 Pierre Curie, physicist and chemist, is born (1859) ** 05 16 99 99 00 Debra Winger, actress (1955) ** 05 16 99 99 00 Emily Dickinson, the poet, dies (1886) ** 05 16 99 99 00 Gabriela Sabatini, tennis player (1970) ** 05 16 99 99 00 Henry Fonda, the actor, is born (1905) ** 05 16 99 99 00 Jack Eckerd, Clearwater, Florida's drugstore magnate (1913) ** 05 16 99 99 00 Jim Henson, creator of the Muppets, dies of complications of the flu (1990) ** 05 16 99 99 00 Liberace, pianist and entertainer, is born (1919) ** 05 16 99 99 00 Louis XVI and Marie Antoinette the archduchess of Vienna are wed (1770) ** 05 16 99 99 00 Margaret Hamilton, maker of 75 movies and known for her role as Wicked Witch of the West in the Wizard of Oz dies (1985) ** 05 16 99 99 00 Sammie Smith, Miami Dolphins running back (from Apopka Florida) (1967) ** 05 16 99 99 00 Sammy Davis Jr., entertainer, dies of throat cancer (1990) ** 05 16 99 99 00 Studs Terkel, author, is born (1912) ** 05 16 99 99 00 Woody Herman, jazz clarinetist and band-leader, is born (1913) ** 05 17 99 99 00 Ayatollah Ruhollah Khomeini, religious leader of Iran, is born (1900) ** 05 17 99 99 00 Birgit Nilsson, opera singer (1918) ** 05 17 99 99 00 Catherine I, Russian Empress and favorite consort of Peter the Great, dies in St. Petersburg (1727) ** 05 17 99 99 00 Dennis Hopper, actor-director (1936) ** 05 17 99 99 00 Erik Satie, composer (1866) ** 05 17 99 99 00 Joseph Norman Lockyer born (1836), discoverer of Helium in Sun ** 05 17 99 99 00 Maureen O'Sullivan, actress (1911) ** 05 17 99 99 00 Paul Dukas, composer of "The Sorcerer's Apprentice", dies (1936) ** 05 17 99 99 00 Sandro Botticelli, the painter, is born (1510) ** 05 17 99 99 00 Sugar Ray Leonard, boxer (1956) ** 05 17 99 99 00 Toni Jennings, State Senator, R-Orlando, Florida (1949) ** 05 18 99 99 00 Bertrand Russell the philosopher was born (1872) ** 05 18 99 99 00 Charles Perrault, the original Mother Goose, dies (1703) ** 05 18 99 99 00 Margot Fonteyn, the ballerina, was born (1919) ** 05 18 99 99 00 Nathaniel Hawthorne, the author, dies (1864) ** 05 18 99 99 00 Oliver Heaviside, physicist, is born (1850) ** 05 18 99 99 00 Pernell Roberts, actor (1930) ** 05 18 99 99 00 Perry Como, singer, is born (1912) ** 05 18 99 99 00 Pope John Paul II is born (1920) ** 05 18 99 99 00 Reggie Jackson, baseball player, is born (1946) ** 05 18 99 99 00 Rick Wakeman, composer/musician, born (West London, England, 1949) ** 05 18 99 99 00 Robert Morse, actor (1931) ** 05 18 99 99 00 Sam Vincent, Orlando Magic guard (1933) ** 05 18 99 99 00 Vladimir Nabokov, Russian author of "Lolita", learned to fox-trot (1919) ** 05 19 99 99 00 Anne Boleyn the queen of Henry VIII is beheaded for treason and adultery because of a stillborn son (1536) ** 05 19 99 99 00 Curly Neal, Orlando Magic Special Projects Director (1944) ** 05 19 99 99 00 David Hartman, TV personality (1935) ** 05 19 99 99 00 Ho Chi Minh, revolutionary, is born (1890) ** 05 19 99 99 00 Jim Lehrer, PBS newscaster (1934) ** 05 19 99 99 00 Mike Wallace (1918) ** 05 19 99 99 00 Nora Ephron, author (1941) ** 05 19 99 99 00 Ogden Nash, humorist, dies (1971) ** 05 19 99 99 00 Oscar Wilde released from Pentonville Prison (1895) ** 05 19 99 99 00 Pete Townshend born (London, 1945) ** 05 19 99 99 00 Thomas Edward Lawrence, "Lawrence of Arabia", dies in a motorcycle accident in Dorset England (1935) ** 05 20 99 99 00 Albrecht Durer, the artist, is born (1471) ** 05 20 99 99 00 Amelia Earhart Putnam takes off to become the first woman to fly the Atlantic alone (1930) ** 05 20 99 99 00 Cher, actress and singer, is born (1946) ** 05 20 99 99 00 Christopher Columbus, the explorer, dies (1506) ** 05 20 99 99 00 Constance Towers, actress (1933) ** 05 20 99 99 00 George Gobel (Lonesome George) is born (1919) ** 05 20 99 99 00 Honore de Balzac, French author, is born (1799) ** 05 20 99 99 00 Joe Crocker, singer (1944) ** 05 20 99 99 00 John Stuart Mill, English philosopher and economist, is born (1806) ** 05 20 99 99 00 Marquis de Lafayette, revolutionary war hero, dies (1834) ** 05 20 99 99 00 Moshe Dayan, Israeli general & politician (1915) ** 05 20 99 99 00 Sir Henry Percy, knight and supporter of Henry IV, aka Harry Hotspur, dies (1364) ** 05 20 99 99 00 Stephen Girard, bailed out US bonds during the War of 1812 (1750) ** 05 20 99 99 00 William George Fargo, helped to found Wells, Fargo & Co. (1818) ** 05 20 99 99 00 William Hewlett, co-founder of Hewlett-Packard Co. (1913) ** 05 21 99 99 00 Albrecht Durer, painter & printmaker, greatest German (1471)Renaissance artist. ** 05 21 99 99 00 Alexander Pope, poet and satirist, is born (1688) ** 05 21 99 99 00 Glenn Hammond Curtiss, aircraft builder (e.g. Curtiss Jennie) and inventor of the aileron, was born (1878) ** 05 21 99 99 00 Harold Robbins, novelist (1916) ** 05 21 99 99 00 Henry VI of England is murdered (1471) ** 05 21 99 99 00 Plato (Aristocles) born (Athens(?), 427 BC) ** 05 21 99 99 00 Raymond Burr, actor (1917) ** 05 21 99 99 00 Willam Einthoven, invented the electrocardiograph (1860) ** 05 22 99 99 00 Albrecht Grafe, pioneer eye surgeon, founded modern ophthalmology (1828) ** 05 22 99 99 00 Constantine the Great, Roman emperor, dies (337) ** 05 22 99 99 00 Paul Winfield, actor (1941) ** 05 22 99 99 00 Peter Nero, conductor (1934) ** 05 22 99 99 00 Richard Wagner, composer, is born (1813) ** 05 22 99 99 00 Sir Arthur Conan Doyle, author and creator of Sherlock Holmes, is born (1859) ** 05 22 99 99 00 Sir Laurence Olivier, actor, is born in Dorking, London (1907) ** 05 22 99 99 00 Susan Strasberg, actress (1938) ** 05 22 99 99 00 Thomas Gold, astronomer, established the steady-state theory (1920)of the universe. ** 05 22 99 99 00 Victor Hugo, the novelist, dies (1885) ** 05 23 99 99 00 Artie Shaw, band leader (1910) ** 05 23 99 99 00 Bonnie and Clyde were shot to death in Louisiana. (1934) ** 05 23 99 99 00 Captain Kidd, naval officer and pirate, is hanged in London (1701) ** 05 23 99 99 00 Douglas Fairbanks, actor and producer, is born in Colorado (1883) ** 05 23 99 99 00 Elmore James, blues great, dies (1963) ** 05 23 99 99 00 Heinrich Himmler, Nazi Minister of the Interior, kills himself (1945) ** 05 23 99 99 00 Joan Collins, actress and sex symbol, is born in London (1936) ** 05 23 99 99 00 Kit Carson, frontiersman, dies (1868) ** 05 23 99 99 00 Marvin Hagler, boxer (1952) ** 05 23 99 99 00 Rosemary Clooney, singer, is born (1928) ** 05 24 99 99 00 Bob Dylan (Robert Zimmerman), folk singer, born (Duluth, 1941) ** 05 24 99 99 00 Duke Ellington, jazz composer and pianist, dies (1974) ** 05 24 99 99 00 Gabriel Fahrenheit, physicist, is born (1686) ** 05 24 99 99 00 Jean Paul Marat, revolutionary leader in France, is born (1743) ** 05 24 99 99 00 Nicolas Copernicus, the astronomer, dies (1543) ** 05 24 99 99 00 Walt Zembriski, professional golfer and Orlando resident (1935) ** 05 24 99 99 00 the future Queen Victoria is born (1819) ** 05 25 99 99 00 Beverly "Bubbles" Sills, opera singer, is born (1929) ** 05 25 99 99 00 Bob Morris, Orlando Sentinel columnist (1950) ** 05 25 99 99 00 Igor Sikorsky, inventor of the helicopter, is born (1889) ** 05 25 99 99 00 Jessi Colter, country singer (1943) ** 05 25 99 99 00 Miles Davis, jazz musician, is born (1926) ** 05 25 99 99 00 Ralph Waldo Emerson, American poet and essayist, is born (1803) ** 05 25 99 99 00 Robert Ludlum, author, is born (1927) ** 05 25 99 99 00 Tom T. Hall, country singer, is born (1936) ** 05 26 99 99 00 Al Jolson, the entertainer, born (1886) ** 05 26 99 99 00 Augustine, the first Archbishop of Canterbury, dies (604) ** 05 26 99 99 00 Hank Williams Jr., singer (1949) ** 05 26 99 99 00 Isadora Duncan (1877) ** 05 26 99 99 00 James Arness, actor (1923) ** 05 26 99 99 00 John Wayne, actor, is born (1907) ** 05 26 99 99 00 Peggy Lee, singer (1920) ** 05 26 99 99 00 Peter Cushing, actor (1913) ** 05 26 99 99 00 Robert Morley, actor (1908) ** 05 26 99 99 00 Sally Ride, astronaut (1951) ** 05 26 99 99 00 Stevie Nicks, singer (1948) ** 05 26 99 99 00 Teresa Stratas, opera singer (1939) ** 05 27 99 99 00 Amelia Bloomer, suffragist known for her pantaloons (1818) ** 05 27 99 99 00 Bruce Weitz, actor (1943) ** 05 27 99 99 00 Christopher Lee, actor (1922) ** 05 27 99 99 00 Dashiell Hammett, American author, is born (1894) ** 05 27 99 99 00 Henry Kissinger, former Secretary of State (1923) ** 05 27 99 99 00 Herman Wouk, novelist (1915) ** 05 27 99 99 00 Hubert H. Humphrey, politician, is born (1911) ** 05 27 99 99 00 Lee Meriwether, actress (1935) ** 05 27 99 99 00 Louis Gossett Jr., actor (1936) ** 05 27 99 99 00 Rachel Carson, environmental author, is born (1907) ** 05 27 99 99 00 Vincent Price, actor (1911) ** 05 27 99 99 00 Wild Bill Hickok (1837) ** 05 28 99 99 00 Dionne quintuplets born (1934) ** 05 28 99 99 00 Gaston Lenotre, Epcot restaurateur (1920) ** 05 28 99 99 00 Gladys Knight, singer (1944) ** 05 28 99 99 00 Ian Fleming, author of the James Bond books, is born (1908) ** 05 28 99 99 00 Jerry West, Los Angeles Lakers General Manager (1938) ** 05 28 99 99 00 Jim Thorpe (1886) ** 05 28 99 99 00 Noah Webster, lexicographer and teacher, dies (1843) ** 05 28 99 99 00 Sondra Locke, actress (1947) ** 05 29 99 99 00 Al Unser Sr., race car driver (1939) ** 05 29 99 99 00 Anthony Geary, actor (1948) ** 05 29 99 99 00 Gilbert Keith Chesterton, journalist and writer, is born (1874) ** 05 29 99 99 00 John F. Kennedy, 35th President (1960-1963) (1917) ** 05 29 99 99 00 Leslie Townes (Bob) Hope, comedian, is born (1903) ** 05 29 99 99 00 Lisa Whelchel, actress and gospel singer (1963) ** 05 29 99 99 00 Patrick Henry, American patriot, born (1736) ** 05 30 99 99 00 Art Grindle, State Representative, Altamonte Springs, Fl. (1923) ** 05 30 99 99 00 Benny Goodman, band leader, born (1909) ** 05 30 99 99 00 Joan of Arc is burned at the stake (1431) ** 05 30 99 99 00 Keir Dullea, actor (1936) ** 05 30 99 99 00 Mel (Melvin Jerome) Blanc, voice of Bugs Bunny and many others, is born in San Francisco (1908) ** 05 30 99 99 00 Michael J. Pollard, actor (1939) ** 05 30 99 99 00 Richard A. "Dick" Nunis, Disney Attractions president (1932) ** 05 30 99 99 00 Ruta Lee, actress (1936) ** 05 30 99 99 00 Wynonna Judd, country singer (1964) ** 05 31 99 99 00 Adolph Eichmann was hanged for his role in the Holocaust. (1962) ** 05 31 99 99 00 Brooke Shields, actress-model (1965) ** 05 31 99 99 00 Clint Eastwood, actor (1930) ** 05 31 99 99 00 Don Ameche, actor (1908) ** 05 31 99 99 00 Franz Joseph Haydn, composer, dies (1809) ** 05 31 99 99 00 Gregory Harrison, actor (1950) ** 05 31 99 99 00 Joan of Arc has a hot time at the stake... (1433) ** 05 31 99 99 00 Joe Namath, former football quarterback (1943) ** 05 31 99 99 00 Johnny Paycheck, singer (1949) ** 05 31 99 99 00 Norman Vincent Peale, author-minister (1902) ** 05 31 99 99 00 Tom Berenger, actor (1950) ** 05 31 99 99 00 Walt Whitman, American poet, is born (1819) ** 06 01 99 99 00 Andy Grifith, actor, is born (1926) ** 06 01 99 99 00 Brigham Young, founder of Salt Lake City, is born (1801) ** 06 01 99 99 00 Frederica von Stade, opera singer (1945) ** 06 01 99 99 00 Helen Keller, writer and spokeswoman for the deaf and blind, dies (1968) ** 06 01 99 99 00 Marilyn Monroe, actress and beauty, is born (1926) ** 06 01 99 99 00 Pat boone, singer (1934) ** 06 02 99 99 00 Charlie Watts, rock drummer (1941) ** 06 02 99 99 00 Chuck Barris, TV producer (1929) ** 06 02 99 99 00 Giusepppe Garibaldi, Italian patriot, dies (1882) ** 06 02 99 99 00 Jerry Mathers, "... and Jerry Mathers as the Beaver", is born (1948) ** 06 02 99 99 00 Lou Gehrig died in New York of a degenerative disease. (1941) ** 06 02 99 99 00 Marquis de Sade, writer and all around fun guy, is born (1740) ** 06 02 99 99 00 Marvin Hamlisch, composer (1944) ** 06 02 99 99 00 Pope Pius X (1835) ** 06 02 99 99 00 Rex Harrison, Professor Henry Higgins from "My Fair Lady", dies (1990) ** 06 02 99 99 00 Sally Kellerman, actress (1937) ** 06 02 99 99 00 Sir Edward Elgar, English composer, born in Worcester, England (1857) ** 06 02 99 99 00 Stacy Keach, actor (1941) ** 06 02 99 99 00 Thomas Hardy, English author, is born in Dorset (1840) ** 06 03 99 99 00 Allen Ginsberg, the Beatnik poet, is born (1926) ** 06 03 99 99 00 Colleen Dewhurst, actress (1926) ** 06 03 99 99 00 Curtis Mayfield, musician (1942) ** 06 03 99 99 00 Deniece Williams, singer (1951) ** 06 03 99 99 00 Franz Kafka, Austrian novelist, dies (1924) ** 06 03 99 99 00 Georges Bizet, composer of Carmen and The Pearl Fishers, dies (1875) ** 06 03 99 99 00 Henry James, American philosopher and author, born (1811) ** 06 03 99 99 00 Jefferson Davis, Confederate President (1861-1865), is born (1808) ** 06 03 99 99 00 Pope John XXIII dies (1963) ** 06 03 99 99 00 Ransom Eli Olds, auto manufacturer. (1864) ** 06 03 99 99 00 Tony Curtis, actor, born in New York (1925) ** 06 03 99 99 00 William Harvey, discoverer of blood circulation, dies (1657) ** 06 04 99 99 00 Andrea Jaeger, tennis player (1965) ** 06 04 99 99 00 Ayatollah Ruhollah Khomeini, political and spiritual leader of Iran, dies (1989) ** 06 04 99 99 00 Bruce Dern, actor (1936) ** 06 04 99 99 00 Bud Bronson, State Representative; D-Kissimmee, Florida (1936) ** 06 04 99 99 00 Dennis Weaver, actor (1924) ** 06 04 99 99 00 El DeBarge, singer-musician (1961) ** 06 04 99 99 00 Freddie Fender, singer (1937) ** 06 04 99 99 00 Gene Barry, actor (1922) ** 06 04 99 99 00 Robert Merrill, opera singer (1919) ** 06 05 99 99 00 Adam Smith, economist, was born in Kirkcaldy, Scotland (1723) ** 06 05 99 99 00 Bill Moyers, broadcast journalist, is born (1934) ** 06 05 99 99 00 Dennis Gabor, inventor of holography (3D laser photography) (1900) ** 06 05 99 99 00 John Maynard Keynes, economist, was born in Cambridge, England (1883) ** 06 05 99 99 00 Pancho Villa, robber and revolutionary, is born (1878) ** 06 05 99 99 00 Robert Lansing, actor (1929) ** 06 05 99 99 00 Sen. Robert F. Kennedy was shot and mortally wounded. (1968) ** 06 06 99 99 00 Bjorn Borg, tennis player, (1956) ** 06 06 99 99 00 Carl Gustav Jung, psychologist, dies (1961) ** 06 06 99 99 00 Gary 'U.S.' Bonds, singer-songwriter (1939) ** 06 06 99 99 00 Harvey Fierstein, playwright-actor (1954) ** 06 06 99 99 00 James Meredith, Black activist, was shot as he walked along a Mississippi highway to encourage black voter registration (1966) ** 06 06 99 99 00 John Trumbull, painter. (1756) ** 06 06 99 99 00 Nathan Hale, American Revolutionary war officer, is born (1755) ** 06 06 99 99 00 Thomas Mann, American author, is born (1875) ** 06 07 99 99 00 (Eugene Henri) Paul Gauguin, French painter who lived in Tahiti, born (1848) ** 06 07 99 99 00 Beau Brummel, English Dandy. (1778) ** 06 07 99 99 00 Chief Seattle dies (1866) ** 06 07 99 99 00 George Bryan "Beau" Brummel, English dandy, gambler, friend of royalty, born (1778) ** 06 07 99 99 00 Henry Miller, American playwright, dies (1980) ** 06 07 99 99 00 Henry VIII marries for the first time (to Catherine) (1509) ** 06 07 99 99 00 Jean Harlow, actress, dies (1937) ** 06 07 99 99 00 Jeff Clark, City Council member, Orlando, Florida (1940) ** 06 07 99 99 00 Jessica Tandy, actress (1909) ** 06 07 99 99 00 Robert the Bruce, king of Scotland, dies (1329) ** 06 08 99 99 00 Alexis Smith, actress (1921) ** 06 08 99 99 00 Barbara Bush, first lady, is born (1925) ** 06 08 99 99 00 Bonnie Tyler, singer (1953) ** 06 08 99 99 00 Boz Scraggs, musician (1944) ** 06 08 99 99 00 Cochise, Apache chief, dies (1874) ** 06 08 99 99 00 Dana Wynter, actress (1930) ** 06 08 99 99 00 Francis Crick, Nobel prize winner for work on DNA, is born (1916) ** 06 08 99 99 00 Frank Lloyd Wright, architect, is born in Richland Center, Wisconsin (1869) ** 06 08 99 99 00 George Sand (Amantine Dupin), novelist, dies in France (1876) ** 06 08 99 99 00 Giovanni Domenico Cassini, astronomer (1625) ** 06 08 99 99 00 Griffin Dunne, actor (1955) ** 06 08 99 99 00 James Darren, actor (1936) ** 06 08 99 99 00 Mohammed, prophet (570) ** 06 08 99 99 00 Nancy Sinatra, singer (1940) ** 06 08 99 99 00 Nikolai Rimsky-Korsakov, Russian composer and teacher, dies (1908) ** 06 08 99 99 00 Sara Siddons, actress, dies in London (1831) ** 06 08 99 99 00 Thomas Paine, political writer, dies (1809) ** 06 09 99 99 00 Charles Dickens, author, dies near Rochester, Kent (1870) ** 06 09 99 99 00 Dame Sybil Thorndike, the actress dies (1976) ** 06 09 99 99 00 Dave Parker, baseball player (1951) ** 06 09 99 99 00 Donald Duck, famous fowl (1934) ** 06 09 99 99 00 George Stephenson, principal inventor of the railroad locomotive. (1781) ** 06 09 99 99 00 Les Paul (Lester Polfus), guitarist, born (Waukesha, WI, 1923) ** 06 09 99 99 00 Lord Beaverbrook, politician and newspaper man, dies (1964) ** 06 09 99 99 00 Michael J. Fox, actor, is born (1961) ** 06 09 99 99 00 Nero commits suicide (68) ** 06 09 99 99 00 Robert S. McNamara, former Defense Secretary (1916) ** 06 10 99 99 00 F. Lee Bailey, attorney (1933) ** 06 10 99 99 00 Frederick Loewe, composer (1904) ** 06 10 99 99 00 Howlin' Wolf (Chester Burnett) born (West Point, MS, 1910) ** 06 10 99 99 00 Judy Garland, actress and singer, is born (1922) ** 06 10 99 99 00 Maurice Sendak, American author of children's books, is born (1928) ** 06 10 99 99 00 Nat Hentoff, columnist (1925) ** 06 10 99 99 00 Prince Philip, British royalty (1921) ** 06 11 99 99 00 Adrienne Barbeau, actress (1945) ** 06 11 99 99 00 Ben Johson, playwright (1572) ** 06 11 99 99 00 Chad Everett, actor (1937) ** 06 11 99 99 00 Charles Fabry, discovered the ozone layer in the upper atmosphere (1867) ** 06 11 99 99 00 Dame Millicent Garrett Fawcett, leader of English women's movement (1847) ** 06 11 99 99 00 Gene Wilder, the actor, is born (1935) ** 06 11 99 99 00 Jackie Stewart, former auto racer (1939) ** 06 11 99 99 00 Jacques Cousteau, oceanographer, is born (1910) ** 06 11 99 99 00 Joe Montana, San Francisco 49ers quarterback (1956) ** 06 11 99 99 00 John Constable, landscape painter, is born (1776) ** 06 11 99 99 00 Karen Ann Quinlan, finally dies in her mother's arms of pneumonia after 10 years in a coma (1985) ** 06 11 99 99 00 Lawrence Spivak, broadcast journalist (1900) ** 06 11 99 99 00 Rise Stevens, opera singer (1913) ** 06 11 99 99 00 William Styron, author (1925) ** 06 12 99 99 00 Anne Frank, whose World War II diary was so famous, is born (1929) ** 06 12 99 99 00 Chick Corea, jazz musician (1941) ** 06 12 99 99 00 David Rockefeller, the banker, is born (1915) ** 06 12 99 99 00 George Herbert Walker Bush, the 41st President (1989- ) was born in Milton, Massachusetts (1924) ** 06 12 99 99 00 Irwin Allen, movie producer (1916) ** 06 12 99 99 00 Jim Nabors, actor-singer (1932) ** 06 12 99 99 00 Mark Calcavecchia, professional golfer from Ocala Florida (1960) ** 06 12 99 99 00 Maximus, the Roman emperor, is born (445) ** 06 12 99 99 00 Vic Damone, singer (1928) ** 06 13 99 99 00 Alexander the Great dies (323 BC) ** 06 13 99 99 00 Alley Sheedy, actress (1962) ** 06 13 99 99 00 Basil Rathbone, the actor renowned for his Sherlock Holmes, is born (1892) ** 06 13 99 99 00 Bettina Bunge, Tennis player (1963) ** 06 13 99 99 00 Don Dizney, United Med. Corp Chairman (1942) ** 06 13 99 99 00 Harold "Red" Grange, the "Galloping Ghost" of football. (1903) ** 06 13 99 99 00 Richard Thomas, Actor (1951) ** 06 13 99 99 00 Sir Charles Parsons, engineer and inventor of the steam turbine, is born (1854) ** 06 14 99 99 00 Benedict Arnold, soldier and spy, dies (1801) ** 06 14 99 99 00 Boy George, singer (1961) ** 06 14 99 99 00 Burl Ives, American folk singer, is born (1909) ** 06 14 99 99 00 Donald Trump, developer (1946) ** 06 14 99 99 00 Ernesto 'Che' Guevara, guerrilla leader and revolutionary, is born in Argentina (1928) ** 06 14 99 99 00 Harriet Beecher Stowe, novelist and reformer, is born (1811) ** 06 14 99 99 00 John McCormack, Irish tenor, is born (1884) ** 06 14 99 99 00 Maksim Gorky, Russian novelist, dies (1936) ** 06 15 99 99 00 Edward (Edvard Hagerup) Grieg born in Bergen, Norway (1843) ** 06 15 99 99 00 Harry Nilsson, singer-songwriter, born (Brooklyn, 1941) ** 06 15 99 99 00 Jim Belushi, comedian-actor (1954) ** 06 15 99 99 00 Wade Boggs, baseball player (1958) ** 06 15 99 99 00 Waylon Jennings, American country singer, is born (1937) ** 06 16 99 99 00 Erich Segal author (1937) ** 06 16 99 99 00 Hammurabi the Great dies (Babylon, 1686 BC) ** 06 16 99 99 00 Joan Van Ark, actress (1943) ** 06 16 99 99 00 John Churchill, 1st duke of Marlborough and military commander, dies (1722) ** 06 16 99 99 00 Joyce Carol Oates author (1938) ** 06 16 99 99 00 Roberto Duran, boxer (1951) ** 06 16 99 99 00 Stan Laurel, film comedian, is born in Lancashire (1890) ** 06 17 99 99 00 Barry Manilow, singer (1946) ** 06 17 99 99 00 George Cormack, the inventor of "Wheaties" cereal. (1870) ** 06 17 99 99 00 Joe Piscopo, comedian (1951) ** 06 17 99 99 00 Ralph Bellamy, actor (1904) ** 06 18 99 99 00 Carol Kane, Actress (1932) ** 06 18 99 99 00 E.G. Marshall, Actor (1910) ** 06 18 99 99 00 Ethel Barrymore, American actress, dies (1959) ** 06 18 99 99 00 Igor Stravinsky, Russian composer, is born (1882) ** 06 18 99 99 00 Isabella Rossellini, Actress (1932) ** 06 18 99 99 00 James Montgomery Flagg, illustrator, best known for his (1877)"I want you" Uncle Sam recruiting poster. ** 06 18 99 99 00 John Sutter, German-born American pioneer in California on whose land gold was found, dies penniless in Pennsylvania. (1880) ** 06 18 99 99 00 M C Escher born (1898) ** 06 18 99 99 00 Paul McCartney born in Liverpool, England (1942) ** 06 18 99 99 00 Phillip B. Crosby, Winter Park, FL management consultant (1936) ** 06 18 99 99 00 Prince Museid was publicly beheaded for the assassination of King Faisal of Saudi Arabia (1975) ** 06 18 99 99 00 Roger Ebert, Movie reviewer (1942) ** 06 18 99 99 00 Sammy Cahn, Lyricist (1913) ** 06 18 99 99 00 Sylvia Porter, Financial writer (1913) ** 06 18 99 99 00 Tom Wicker, Columnist (1936) ** 06 19 99 99 00 Ann Wilson, Rock singer (1951) ** 06 19 99 99 00 Blaise Pascal, mathematician. (1623) ** 06 19 99 99 00 Confucius, Chinese philosopher and author, is born (551 BC) ** 06 19 99 99 00 Duchess of Windsor (1886) ** 06 19 99 99 00 Emperor Maximilian of Mexico is executed (1867) ** 06 19 99 99 00 Gena Rowlands (1936) ** 06 19 99 99 00 Guy Lombardo, band leader, is born (1902) ** 06 19 99 99 00 Henry Louis Gehrig, the "Iron Horse" of the Yankees. (1903) ** 06 19 99 99 00 Julius and Ethel Rosenberg are executed in Sing-Sing prison for spying (1953) ** 06 19 99 99 00 Kathleen Turner, Actress (1954) ** 06 19 99 99 00 Louis Jourdan, Actor (1921) ** 06 19 99 99 00 Nancy Marchand, Actress (1928) ** 06 19 99 99 00 Paula Abdul, Singer-dance-choreographer (1963) ** 06 19 99 99 00 Pauline Kael, Movie critic (1919) ** 06 19 99 99 00 Sen. Alan Cranston, D-Calif (1914) ** 06 19 99 99 00 Sen. Howell Heflin, D-Ala (1921) ** 06 19 99 99 00 Thomas J. Watson, founder of IBM, dies (1956) ** 06 20 99 99 00 Anne Murray, Singer (1945) ** 06 20 99 99 00 Brian Wilson, Singer-songwriter (1942) ** 06 20 99 99 00 Candy Clark, Actress (1947) ** 06 20 99 99 00 Chet Atkins, Guitarist (1924) ** 06 20 99 99 00 Cyndi Lauper, Singer (1933) ** 06 20 99 99 00 Gangster Buggsy Siegel was killed at a Beverly Hills, Ca. mansion (1947) ** 06 20 99 99 00 John Taylor, Rock musician (1960) ** 06 20 99 99 00 Lillian Hellman, American author and playwright, is born (1905) ** 06 20 99 99 00 Lillian Hellman, American author and playwright, dies (1984) ** 06 20 99 99 00 Pancho Villa, robber and revolutionary, is murdered (1923) ** 06 21 99 99 00 Edouard Vuillard, painter, dies (1940) ** 06 21 99 99 00 Friedrich Froebel, educator and developer of the idea of the kindergarten, dies (1852) ** 06 21 99 99 00 Inigo Jones, architect, landscape designer and antiquary, dies in Somerset House, London (1652) ** 06 21 99 99 00 Jane Russell, actress, full-figured gal (1921) ** 06 21 99 99 00 John Paul Sartre, philosopher, novelist, dramatist, is born in Paris (1905) ** 06 21 99 99 00 Martha Custis Washington (1732) ** 06 21 99 99 00 Nicolo Machiavelli, diplomat and writer, dies (1527) ** 06 21 99 99 00 Rockwell Kent, illustrator, is born (1882) ** 06 22 99 99 00 Anne Morrow Lindbergh, Author (1916) ** 06 22 99 99 00 Bill Blass, Fashion designer (1922) ** 06 22 99 99 00 Billy Wilder, Movie director (1916) ** 06 22 99 99 00 Carl Hubbell, baseball pitcher who mastered the screwball, elected to baseball hall of fame 1947, is born (1903) ** 06 22 99 99 00 Dianne Feinstein, Former San Francisco Mayor (1933) ** 06 22 99 99 00 Ed Bradley, CBS News correspondent (1941) ** 06 22 99 99 00 Erich Maria Remarque, German-born American novelist, is born (1897) ** 06 22 99 99 00 Fred Astaire, dancer and actor, dies (1987) ** 06 22 99 99 00 H. Rider Haggard, English novelist, author of "King Solomon's Mines", is born (1856) ** 06 22 99 99 00 Joseph Papp, Broadway producer (1921) ** 06 22 99 99 00 Judy Garland, actress and singer, dies in London (1969) ** 06 22 99 99 00 Kris Kristofferson, Singer-actor (1937) ** 06 22 99 99 00 Lindsay Wagner, Actress (1949) ** 06 22 99 99 00 Meryl Streep, the actress, is born in Summit, New Jersey (1949) ** 06 22 99 99 00 Raphl Waite, Actor (1928) ** 06 22 99 99 00 Todd Rundgren born (Upper Darby, PA, 1948) ** 06 23 99 99 00 Alan Turing, early computer scientist, is born (1912) ** 06 23 99 99 00 George Sax, inventor of the saxophone. (1846) ** 06 24 99 99 00 Ambrose Bierce, American satirist, is born (1842) ** 06 24 99 99 00 Gustavus Franklin Swift, founder of Swift & Co. (1839) ** 06 24 99 99 00 Jackie Gleason, comedian and actor, dies at 87 (1987) ** 06 24 99 99 00 Jeff Beck born (Surrey, England, 1944) ** 06 25 99 99 00 Carly Simon, singer, is born in New York, NY (1945) ** 06 25 99 99 00 Eric Arthur Blair (a.k.a. George Orwell) is born (1903) ** 06 25 99 99 00 Hermann Oberth, founder of modern astronautics, is born (1894) ** 06 26 99 99 00 Abner Doubleday, credited with inventing American Baseball (1819) ** 06 26 99 99 00 Charles Messier born (1730) ** 06 26 99 99 00 Francisco Pizarro, the Spanish conqueror, dies in Lima Peru (1541) ** 06 26 99 99 00 Maurice Wilkes, invented the stored program concept for computers. (1913) ** 06 26 99 99 00 Pearl Buck, author of "The Good Earth" and "This House Divided", is born (1892) ** 06 26 99 99 00 Willi Messerschmitt, German aircraft designer, is born in Frankfort (1898) ** 06 27 99 99 00 Bob Keeshan, (Captain Kangaroo) (1927) ** 06 27 99 99 00 Helen Keller born in Alabama (1880) ** 06 27 99 99 00 Joseph Smith, founder of The Church of Jesus Christ of Latter-day Saints (The Mormons), and his brother Hyrum, are killed by a mob (1844) ** 06 28 99 99 00 Alexander the Great is born (356 BC) ** 06 28 99 99 00 Archduke Francis Ferdinand of Austria-Hungary and his wife were killed in Sarajevo, Bosnia. (1914) ** 06 28 99 99 00 Henry VIII of England is born in Greenwich (1491) ** 06 28 99 99 00 Jean-Jacques Rousseau, philosopher, is born (1712) ** 06 28 99 99 00 Patrick Kincaid, send him a card. (1947) ** 06 28 99 99 00 Peter Paul Rubens, the Flemish painter, is born (1577) ** 06 29 99 99 00 Antoine St.-Exupery, French aviator and author, is born (1900) ** 06 29 99 99 00 Elizabeth Barrett Browning, the poet, dies (1861) ** 06 29 99 99 00 George Washington Goethals, engineer who built the Panama Canal (1858) ** 06 29 99 99 00 Peter Paul Rubens, the artist, is born (1577) ** 06 30 99 99 00 Lena Horne, the entertainer, was born (1917) ** 06 30 99 99 00 Lola Montez, the actress, dies (1861) ** 06 30 99 99 00 Paul Klee, the artist, dies (1940) ** 06 30 99 99 00 Susan Hayward, the actress, was born (1919) gcal-4.1/data/dates/lives60000664000000000000000000007721612353366207012345 00000000000000# CalenTool V2.2 - nflag=1 range=11,12 - DO NOT REMOVE THIS LINE # $Header: lives6,v 1.1 91/03/07 16:19:01 billr Exp $ # (Nov-Dec) # Famous people's births, deaths and marriages file for calentool # extracted from ProLine's today file and Today in History provided # by Robert Heckendorn at Hewlett-Packard in Fort Collins, Colorado. # converted to calentool format by lwv27%cas.BITNET@CUNYVM.CUNY.Edu. # # There may be duplicates where I don't have a definitive correct # date. billr@saab.cna.tek.com # ** 11 01 99 99 00 Fernando Valenzuela, baseball pitcher (1960) ** 11 01 99 99 00 Gary Player, golfer and Longwood Florida resident (1935) ** 11 01 99 99 00 James J. Kilpatrick, newspaper columnist (1920) ** 11 01 99 99 00 Jeannie Berlin, actress (1949) ** 11 01 99 99 00 Larry Flynt, magazine publisher (1942) ** 11 01 99 99 00 Rick Allen, rock musician (1963) ** 11 01 99 99 00 Robert Foxworth, actor (1941) ** 11 02 99 99 00 Alfre Woodard, actress (1953) ** 11 02 99 99 00 Burt Lancaster, actor (1913) ** 11 02 99 99 00 Daniel Boone born near Reading, PA (1734) ** 11 02 99 99 00 Harlow Shapley, US astronomer (1885) ** 11 02 99 99 00 James K. Polk, 11th President (1845-1849) (1795) ** 11 02 99 99 00 Keith Emerson born (1944) ** 11 02 99 99 00 Patrick J. Buchanan, political commentator (1938) ** 11 02 99 99 00 Ray Walston, actor (1914) ** 11 02 99 99 00 Shere Hite, author (1942) ** 11 02 99 99 00 Warren G. Harding, 29th President (1921-1923) (1865) ** 11 03 99 99 00 James Reston, journalist (1909) ** 11 03 99 99 00 James Taylor & Carly Simon married (Manhattan, 1972) ** 11 03 99 99 00 John Montague, 4th Earl of Sandwich, inventor of same. (1718) ** 11 03 99 99 00 Mary Martin, stage actress of Peter Pan and South Pacific, dies (1990) ** 11 03 99 99 00 Michael Dukakis (1933) ** 11 04 99 99 00 Art Carney, actor, is born (1918) ** 11 04 99 99 00 Cameron Mitchell, actor (1918) ** 11 04 99 99 00 Jakob Ludwig Felix Mendelssohn-Bartholdy (Felix Mendelssohn), the composer, dies in Leipzig (1847) ** 11 04 99 99 00 King William III of Orange born (1650) ** 11 04 99 99 00 Loretta Swit, actress, is born (1937) ** 11 04 99 99 00 Markie Post, actress (1950) ** 11 04 99 99 00 Walter Cronkite, CBS newsman, is born (1916) ** 11 04 99 99 00 Will Rogers, humorist, born (1879) ** 11 05 99 99 00 Andrea McArdle, actress (1963) ** 11 05 99 99 00 Art Garfunkel, singer (1941) ** 11 05 99 99 00 Bryan Adams, singer (1959) ** 11 05 99 99 00 Eugene Victor Debs, American labor organizer and socialist, is born (1855) ** 11 05 99 99 00 Ida Tarbell, muckraker (Standard Oil was VERY unhappy) (1857) ** 11 05 99 99 00 Ike Turner, singer-songwriter (1931) ** 11 05 99 99 00 Paul Simon, singer and songwriter, is born (1942) ** 11 05 99 99 00 Roy Rogers, actor and singer, is born in Cincinnati, OH (1912) ** 11 05 99 99 00 Sam Shepard, actor-playwright (1943) ** 11 05 99 99 00 Tatum O'Neal, actress (1963) ** 11 05 99 99 00 Vladimir Horowitz, pianist, dies (1989) ** 11 06 99 99 00 Aloys Senefelder, inventor of lithography. (1771) ** 11 06 99 99 00 Charles Henry Dow, founded Dow Jones & Co. (1851) ** 11 06 99 99 00 Dr. James Naismith, Canadian inventor of Basketball, is born (1861) ** 11 06 99 99 00 Edsel Ford is born (1893) ** 11 06 99 99 00 Glenn Frey, rock singer (1948) ** 11 06 99 99 00 John Philip Sousa, band leader and composer, is born in Washington D.C. (1854) ** 11 06 99 99 00 Lance Kerwin, actor (1960) ** 11 06 99 99 00 Maria Shriver, TV newscaster (1955) ** 11 06 99 99 00 Mike Nichols, movie and stage director (1931) ** 11 06 99 99 00 Peter Ilich Tchaikovsky, Russian composer, dies of Cholera after knowingly drinking unboiled water (1893) ** 11 06 99 99 00 Sally Field, actress, is born (1946) ** 11 06 99 99 00 Sir John Falstaff, English knight, dies (1406) ** 11 07 99 99 00 Al Hirt, jazz musician (1922) ** 11 07 99 99 00 Albert Camus born in Mondavi, Algeria (1913) ** 11 07 99 99 00 Billy Graham, evangelist, is born (1913) ** 11 07 99 99 00 Eleanor Roosevelt dies (1962) ** 11 07 99 99 00 Elijah P Lovejoy, Abolitionist newspaperman, murdered by mob (1837) ** 11 07 99 99 00 Joni Mitchell (Roberta Joan Anderson) born in Alberta, Canada (1943) ** 11 07 99 99 00 Madame Marie Curie, discovered radium. (1867) ** 11 07 99 99 00 Mary Travers, singer (1937) ** 11 08 99 99 00 Bobby Bowden, Florida State University football coach (1929) ** 11 08 99 99 00 Doc Holliday, notorious dentist of the Old West, dies (1887) ** 11 08 99 99 00 Edmond Halley, astronomer, 1st to calculate a comet's orbit. (1656) ** 11 08 99 99 00 Katherine Hepburn, actress, born (1909) ** 11 08 99 99 00 Mary Hart, television personality, is born (1951) ** 11 08 99 99 00 Morley Safer, newsman of TV program 60 Minutes, is born (1931) ** 11 08 99 99 00 Patti Page, singer, born (1927) ** 11 09 99 99 00 Bob Graham, former governor of Florida (1936) ** 11 09 99 99 00 Carl Sagan, astronomer, author and popularist of the sciences, is born (1934) ** 11 09 99 99 00 Charles de Gaulle, French military and political leader, dies (1970) ** 11 09 99 99 00 Charlie Jones, sportscaster (1930) ** 11 09 99 99 00 Dylan Thomas, Welsh romantic poet, dies in New York (1953) ** 11 09 99 99 00 Ed Wynn, actor, is born (1886) ** 11 09 99 99 00 Lou Ferrigno, actor (1952) ** 11 09 99 99 00 Spiro T. Agnew, former Vice President (1918) ** 11 09 99 99 00 Whitey Herzog, former baseball manager (1931) ** 11 10 99 99 00 Ann Reinking, actress-dancer (1949) ** 11 10 99 99 00 Bob Marshall, Alaskan explorer, dies (1939) ** 11 10 99 99 00 Captain Wirz, commandant of Andersonville Prison hanged (1865) ** 11 10 99 99 00 Cyrus West Field, financier known for the success of the 1st transatlantic cable (1819) ** 11 10 99 99 00 Francois Couperin, composer (1668) ** 11 10 99 99 00 Greg Lake born (Bournemouth, England, 1948) ** 11 10 99 99 00 John Knudsen Northrop, aircraft designer. (1895) ** 11 10 99 99 00 Martin Luther, church reformer, born in Eisleben, Germany (1483) ** 11 10 99 99 00 Richard Burton, the actor, is born (1925) ** 11 10 99 99 00 Roy Scheider, actor (1935) ** 11 10 99 99 00 Soviet President Leonid Brezhnev dies at age 75 (1982) ** 11 10 99 99 00 William Hogarth, artist, is born (1697) ** 11 11 99 99 00 Alger Hiss, former State Department official (1904) ** 11 11 99 99 00 Daniel Ortega, former president of Nicaragua (1945) ** 11 11 99 99 00 Demi Moore, actress (1962) ** 11 11 99 99 00 Fyodor Dostoyevsky, author, "Crime and Punishment" (1821) ** 11 11 99 99 00 General George Patton, World War II tank strategist, is born in San Gabriel, California (1885) ** 11 11 99 99 00 Jonathan Winters, comedian (1925) ** 11 11 99 99 00 Kurt Vonnegut, Jr, author, born in Indianapolis (1922) ** 11 11 99 99 00 Nat Turner, slave who lead a slave revolt, hanged (1831) ** 11 11 99 99 00 Typhoid Mary dies. She was under permanent detention for refusing to give up serving food and would even use false names to continue to do so. (1938) ** 11 11 99 99 00 William Proxmire, former Senator (1915) ** 11 12 99 99 00 Auguste Rodin, French sculptor, is born (1840) ** 11 12 99 99 00 Charles Manson, crazed murderer, born (1934) ** 11 12 99 99 00 Elizabeth Stanton, early leader of women's rights movement. (1815) ** 11 12 99 99 00 Grace Kelly, actress and monagesque princess, is born (1929) ** 11 12 99 99 00 Harry Blackmun, Supreme Court Justice (1908) ** 11 12 99 99 00 Kim Hunter, actress (1922) ** 11 12 99 99 00 Nadia Comaneci, former Romanian gymnast (1961) ** 11 12 99 99 00 Neil Young, musician-songwriter, born in Toronto (1945) ** 11 12 99 99 00 Percival Lowell, astronomer, dies at Flagstaff Arizona (1916) ** 11 12 99 99 00 Sun Yat-sen, father of modern China (ROC and PRC) (1866) ** 11 13 99 99 00 Dack Rambo, actor (1941) ** 11 13 99 99 00 Garry Marshall, producer-director (1934) ** 11 13 99 99 00 Gioacchino Rossini, opera composer, dies (1868) ** 11 13 99 99 00 Justice Louis Brandeis (1856) ** 11 13 99 99 00 Karen Silkwood dies under unusual circumstances (1974) ** 11 13 99 99 00 Madeleine Sherwood, actress (1922) ** 11 13 99 99 00 Richard Mulligan, actor (1932) ** 11 13 99 99 00 Robert Louis Stevenson, author of Treasure Island and Dr Jekyll and Mr. Hyde, born in Edinburgh (1850) ** 11 13 99 99 00 St. Augustine of Hippo born in Numidia, Algeria (354) ** 11 13 99 99 00 Whoopi Goldberg, actress-comedian (1949) ** 11 14 99 99 00 Aaron Copland, American composer (Billy the Kid, Appalachian Spring) (1900) ** 11 14 99 99 00 Brian Keith, actor (1921) ** 11 14 99 99 00 Claude Monet, impressionist (1840) ** 11 14 99 99 00 Don Stewart, actor (1935) ** 11 14 99 99 00 Gottfried Wilhelm Leibnitz, German mathematician and philosopher, died (1716) ** 11 14 99 99 00 HRH Charles, Prince of Wales, first son of Queen Elizabeth II, is born (1948) ** 11 14 99 99 00 Henri Dutrochet, discovered & named process of osmosis (1776) ** 11 14 99 99 00 Jordan's King Hussein (1935) ** 11 14 99 99 00 McLean Stevenson, actor (1929) ** 11 14 99 99 00 Robert Fulton, built 1st commercial steamboat (1765) ** 11 15 99 99 00 Edward Asner, actor (1929) ** 11 15 99 99 00 Erwin Rommel, German tactician, general known as "The Desert Fox", is born (1891) ** 11 15 99 99 00 Georgia O'Keeffe, Southwestern artist, was born (1887) ** 11 15 99 99 00 Howard H. Baker, former White House chief of staff (1925) ** 11 15 99 99 00 Joanna Barnes, actress (1934) ** 11 15 99 99 00 Johannes Kepler, the astronomer, dies (1630) ** 11 15 99 99 00 Mark Acres, Orlando Magic forward-center (1962) ** 11 15 99 99 00 Petula Clark, singer (1932) ** 11 15 99 99 00 William Cowper, poet, is born (1731) ** 11 15 99 99 00 Willim Herschel born (1738) ** 11 16 99 99 00 Burgess Meredith, actor (1908) ** 11 16 99 99 00 Clark Gable, film actor, dies (1960) ** 11 16 99 99 00 Dwight Gooden, baseball player (1964) ** 11 16 99 99 00 Elizabeth Drew, journalist (1935) ** 11 16 99 99 00 Emperor of Rome, Tiberius born (42 BC) ** 11 16 99 99 00 George Gallop, pollster (1901) ** 11 16 99 99 00 Joanna Pettet, actress (1944) ** 11 16 99 99 00 Lisa Bonet, actress (1967) ** 11 16 99 99 00 Lucas von Hildebrandt, architect, dies (1745) ** 11 16 99 99 00 William Handy, established the popularity of the blues in band music (1873) ** 11 17 99 99 00 "Bloody" Mary Tudor, Queen of England dies (1558) ** 11 17 99 99 00 August Mobius, the mathematician, was born (1790) ** 11 17 99 99 00 Bob Mathias, Olympian-turned-politician (1930) ** 11 17 99 99 00 Danny DeVito, actor (1944) ** 11 17 99 99 00 Gordon Lightfoot, singer, is born (1938) ** 11 17 99 99 00 Lauren Hutton, actress, is born (1944) ** 11 17 99 99 00 Lyndon Baines Johnson married Claudia Alta Taylor, better known as "Lady Bird" (1934) ** 11 17 99 99 00 Rock Hudson, the actor, is born (1925) ** 11 18 99 99 00 Alan Sheppard, 1st American into space. (1923) ** 11 18 99 99 00 Boatswain (Lord Byron's dog) dies (1808) ** 11 18 99 99 00 Eugene Ormandy, conductor, was born (1889) ** 11 18 99 99 00 Imogene Coca, actress-comedian (1908) ** 11 18 99 99 00 Linda Evans, actress (1942) ** 11 18 99 99 00 Louis-Jacques-Mande Daguerre, developed a method of photography (1789) ** 11 18 99 99 00 Sir William S. Gilbert, playwright (of Gilbert & Sullivan fame) (1836) ** 11 19 99 99 00 Alan Young, actor (1919) ** 11 19 99 99 00 Dick Cavett, talk show host (1936) ** 11 19 99 99 00 Franz Schubert, composer, dies (1828) ** 11 19 99 99 00 Garrick Utley, NBC newsman (1939) ** 11 19 99 99 00 George Rogers Clark, frontier military leader in Revolutionary War (1752) ** 11 19 99 99 00 James A. Garfield, 20th President (March 4-September 19, 1881) (1831) ** 11 19 99 99 00 Jeane Kirkpatrick, former United Nations Ambassador (1926) ** 11 19 99 99 00 Jodie Foster, actress (1962) ** 11 19 99 99 00 Joe Hill (labor organizer) executed in Salt Lake City (1915) ** 11 19 99 99 00 Larry King, talk show host (1933) ** 11 19 99 99 00 Roy Campanella, baseball hall-of-famer (1921) ** 11 19 99 99 00 Ted Turner, broadcasting and sports executive (1938) ** 11 19 99 99 00 Tommy Dorsey, band leader, is born (1905) ** 11 20 99 99 00 Alistair Cooke, author, is born (1908) ** 11 20 99 99 00 Bo Derek, actress, is born (1956) ** 11 20 99 99 00 Britain's future queen, Princess Elizabeth, married Philip Mountbatten, Duke of Edinburgh (1947) ** 11 20 99 99 00 Chester Gould, author of Dick Tracy, is born in Pawnee, Oklahoma (1900) ** 11 20 99 99 00 Dick Smothers, comedian, is born (1939) ** 11 20 99 99 00 Duane Allman born (Nashville, TN, 1946) ** 11 20 99 99 00 Edwin Hubble, astronomer, is born (1889) ** 11 20 99 99 00 Estelle Parsons, actress (1927) ** 11 20 99 99 00 Francisco Franco, dictator of Spain, dies in Madrid (1975) ** 11 20 99 99 00 Joe Walsh born (Cleveland, 1947) ** 11 20 99 99 00 Judy Woodruff, broadcast journalist (1946) ** 11 20 99 99 00 Otto von Guericke, invented the air pump (1602) ** 11 20 99 99 00 Peregrine White is born aboard the Mayflower in Massachusetts Bay becoming the first child born of English parents in the New England (1620) ** 11 20 99 99 00 Robert F. Kennedy, Attorney General and Senator, is born (1925) ** 11 21 99 99 00 Coleman Hawkins, virtually created the tenor saxophone for jazz, born (1904) ** 11 21 99 99 00 Francois Marie Arouet Voltaire is born (1694) ** 11 21 99 99 00 Goldie Hawn, actress, is born (1945) ** 11 21 99 99 00 Juliet Mills, actress (1941) ** 11 21 99 99 00 Laurence Luckinbill, actor (1934) ** 11 21 99 99 00 Lorna Luft, actress-singer (1952) ** 11 21 99 99 00 Marlo Thomas, actress (1937) ** 11 21 99 99 00 Natalia Makarova, ballet dancer (1940) ** 11 21 99 99 00 Rene Magritte, artist, is born (1898) ** 11 21 99 99 00 Sir Samuel Cunard, founded 1st regular Atlantic steamship line (1787) ** 11 21 99 99 00 Stan Musial, baseball Hall-of-Famer (1920) ** 11 21 99 99 00 Vivian Blaine, actress-singer (1921) ** 11 21 99 99 00 Voltaire, thinker (1694) ** 11 22 99 99 00 Aldous Huxley, English author, dies (1963) ** 11 22 99 99 00 Arthur S. Eddington dies (1944) ** 11 22 99 99 00 Billie Jean King, tennis player (1943) ** 11 22 99 99 00 Boris Becker, tennis player (1967) ** 11 22 99 99 00 Charles de Gaulle (1890) ** 11 22 99 99 00 Greg Luzinski, baseball player (1950) ** 11 22 99 99 00 Guion S. Bluford, astronaut (1942) ** 11 22 99 99 00 Hoagy Carmichael, composed 'Star Dust'. (1899) ** 11 22 99 99 00 Jack London, author, dies (1916) ** 11 22 99 99 00 Jamie Lee Curtis, actress (1958) ** 11 22 99 99 00 Mae West, actress and sex idol, dies in LA at 87 (1980) ** 11 22 99 99 00 Mariel Hemingway, actress (1961) ** 11 22 99 99 00 President John Kennedy assasinated in Dallas. (1963) ** 11 22 99 99 00 Robert Vaughn, actor (1932) ** 11 22 99 99 00 Robin Hood dies according to "A Lytell Geste of Robyn Hood" printed in 1495 (1247) ** 11 22 99 99 00 Terry Gilliam, comedy writer-animator (1940) ** 11 22 99 99 00 The English pirate Blackbeard was killed off the coast of Virginia (1718) ** 11 22 99 99 00 Tom Conti, actor (1941) ** 11 23 99 99 00 Boris Karloff, the actor, is born in Dulwich, England. (1887) ** 11 23 99 99 00 Franklin Pierce, 14th President (1853-1857) (1804) ** 11 23 99 99 00 Harpo Marx of the Marx brothers is born (1893) ** 11 23 99 99 00 Jerry Bock, broadway composer (1928) ** 11 23 99 99 00 Maurice Zolotow, author (1913) ** 11 23 99 99 00 William E. Brock, former Labor Secretary (1930) ** 11 23 99 99 00 William H. Bonney (Billy the Kid) is born (1859) ** 11 24 99 99 00 Baruch Spinoza, Dutch philosopher and theologian, is born (1632) ** 11 24 99 99 00 Erskine Childers, Irish nationalist writer, is executed by the Irish in Dublin (1922) ** 11 24 99 99 00 Father Junipero Serra, who had a mission in California (1713) ** 11 24 99 99 00 Henri de Toulouse-Lautrec, painter and graphic artist, is born in Albi, France (1864) ** 11 24 99 99 00 John Knox, Scottish religious and political reformer, dies (1572) ** 11 24 99 99 00 Lee Harvey Oswald killed by Jack Ruby (Dallas, 1963) ** 11 24 99 99 00 Marlin Fitzwater, White House spokesman (1942) ** 11 24 99 99 00 Scott Joplin, entertainer (1868) ** 11 24 99 99 00 William F. Buckley, columnist (1925) ** 11 24 99 99 00 Zachary Taylor, 12th President (1849-1850) (1784) ** 11 25 99 99 00 Amy Grant, singer (1960) ** 11 25 99 99 00 Andrew Carnegie, steelman and librarian (1835) ** 11 25 99 99 00 Bernie Kosar, football player (1963) ** 11 25 99 99 00 Carry Nation, scrouge of barkeepers and drinkers. (1846) ** 11 25 99 99 00 Christina Applegate, actress (1971) ** 11 25 99 99 00 Joe DiMaggio, baseball Hall-of-Famer (1914) ** 11 25 99 99 00 John F. Kennedy Jr. (1960) ** 11 25 99 99 00 John Larroquette, actor (1947) ** 11 25 99 99 00 Kathryn Crosby, actress (1933) ** 11 25 99 99 00 Ms. Elaine Esposito dies at age 43 after having been in a coma since her appendectomy when she was 6. (1978) ** 11 25 99 99 00 Pope John XXIII was born Angelo Roncalli in a village near Bergamo, Italy (1881) ** 11 25 99 99 00 Richardo Montalban, actor, is born (1920) ** 11 26 99 99 00 Charles M. Schultz, creator of Peanuts cartoon strip, is born in Minneapolis (1922) ** 11 26 99 99 00 Charles W. Goddard, the author of "The Perils of Pauline", is born (1879) ** 11 26 99 99 00 Eugene Ionesco, playwright (1912) ** 11 26 99 99 00 John Harvard, minister, philanthropist, and founder of Harvard University, is born (1607) ** 11 26 99 99 00 Louisa May Alcott, little woman (1832) ** 11 26 99 99 00 Norbert Weiner born (1894) ** 11 26 99 99 00 Rich Little, impressionist (1938) ** 11 26 99 99 00 Robert Goulet, singer (1933) ** 11 26 99 99 00 St Peter, martyr and bishop of Alexandria, dies (311) ** 11 26 99 99 00 Tina Turner, rock singer, is born (1938) ** 11 26 99 99 00 Willis Haviland Carrier, developed air-conditioning equipment (1876) ** 11 27 99 99 00 Ada Byron (Countess of Lovelace) only child of Lord and Lady Byron dies (1852) ** 11 27 99 99 00 Alexander M. Haig, former Secretary of State (1924) ** 11 27 99 99 00 Anders Celsius (1701) ** 11 27 99 99 00 Eugene O'Neill, dramatist, dies in Boston (1953) ** 11 27 99 99 00 Jimi Hendrix (Johnny Allen Hendrix), rock guitarist, is born in Seattle (1942) ** 11 27 99 99 00 Tracy Austin, tennis player (1962) ** 11 28 99 99 00 "Buffalo" Bob Smith, children's entertainer, is born (1917) ** 11 28 99 99 00 Berry Gordy Jr., recording executive (1929) ** 11 28 99 99 00 Hope Lange, actress, is born (1933) ** 11 28 99 99 00 Judd Nelson, actor (1959) ** 11 28 99 99 00 Paul Shaffer, musician, is born (1949) ** 11 28 99 99 00 Randy Newman, singer (1943) ** 11 28 99 99 00 Rosalind Russell, actress, dies of cancer at 63 (1976) ** 11 28 99 99 00 Washington Irving, American writer and diplomat dies (1859) ** 11 28 99 99 00 William Blake, the English poet and painter, is born (1757) ** 11 29 99 99 00 C.S. Lewis, author, is born (1898) ** 11 29 99 99 00 Cardinal Thomas Wolsey, one time advisor to Henry VIII, dies (1530) ** 11 29 99 99 00 Cathy Moriarty, actress (1960) ** 11 29 99 99 00 Christian Doppler, discovered Doppler Effect (frequency shift) (1803) ** 11 29 99 99 00 Chuck Mangione, musician (1940) ** 11 29 99 99 00 Garry Shandling (1949) ** 11 29 99 99 00 Howie Mandel, actor-comedian (1955) ** 11 29 99 99 00 John Mayall born (Cheshire, England, 1933) ** 11 29 99 99 00 Louisa May Alcott, author of "Little Women", is born (1832) ** 11 29 99 99 00 Natalie Wood, actress, drowned in a boating accident off Santa Catalina Island, California, at age 43 (1981) ** 11 29 99 99 00 Nellie Taylor Ross, the first woman governor (Wyoming) and first woman director of the US Mint is born (1876) ** 11 29 99 99 00 Sir Ambrose Fleming, inventor of the diode. (1849) ** 11 29 99 99 00 Suzy Chaffee, skier (1946) ** 11 29 99 99 00 Vin Scully, sportscaster (1927) ** 11 30 99 99 00 Billy Idol, singer (1955) ** 11 30 99 99 00 Bo Jackson, football and baseball player (1962) ** 11 30 99 99 00 Cleopatra, queen of Egypt, commits suicide by snake (30 BC) ** 11 30 99 99 00 Dick Clark, host of "American Bandstand", is born (1929) ** 11 30 99 99 00 Jonathan Swift, satirist, wrote "Gulliver's Travels" (1667) ** 11 30 99 99 00 Mark Twain (Samuel Langhorne Clemens) born in Florida, Missouri (1835) ** 11 30 99 99 00 Oliver Fisher Winchester, rifle maker. (1810) ** 11 30 99 99 00 Oscar Wilde, Irish author, dies (1900) ** 11 30 99 99 00 Shirley Chisholm, former U.S. Representative, D-N.Y. (1924) ** 11 30 99 99 00 St. Andrew is crucified (70) ** 11 30 99 99 00 Winston Churchill, statesman, born in Blenheim Palace (1874) ** 12 01 99 99 00 Bette Midler, singer, is born in Paterson, NJ (1945) ** 12 01 99 99 00 Bill Scott who did the voice of Bullwinkle, Doright and Mr. Peabody dies (1985) ** 12 01 99 99 00 Mary Martin the actress was born (1914) ** 12 01 99 99 00 Rex Stout, American detective story writer, creator of Nero Wolfe, born in Noblesville, Indiana (1886) ** 12 01 99 99 00 Woody Allen (Allen Stuart Konigsberg) born in Brooklyn, NY (1935) ** 12 02 99 99 00 Aaron Copland, Americian composer, dies (1990) ** 12 02 99 99 00 Edmond Rostand, dramatist, and author of "Cyrano de Bergerac", dies in Paris (1914) ** 12 02 99 99 00 Hernando Cortez, the conqueror of Mexico, dies (1547) ** 12 02 99 99 00 John Brown, militant abolitionist, hung for treason, murder and conspiracy in Charlestown, Virginia (1859) ** 12 02 99 99 00 Peter Carl Goldmark, developed color TV & LP records. (1906) ** 12 02 99 99 00 St. Francis Xavier, founder of the Jesuits, dies (1552) ** 12 03 99 99 00 Antonio Soler, famed late 18th century Spanish composer. (1729) ** 12 03 99 99 00 John Bartlett, author of Bartlett's Familiar Quotations, dies (1905) ** 12 03 99 99 00 Joseph Conrad, author of "Lord Jim", is born (1857) ** 12 03 99 99 00 Mary Baker Eddy, founder of the "Church of Christ, Scientist", dies (1910) ** 12 03 99 99 00 Robert Louis Stevenson, author, dies in Samoa (1895) ** 12 04 99 99 00 Samuel Butler, English novelist, born (1835) ** 12 04 99 99 00 Tommy Bolin dies of heroin overdose (Miami, 1976) ** 12 05 99 99 00 Claude Monet the French impressionist painter dies (1926) ** 12 05 99 99 00 Director Fritz Lang (Metropolis?) born in Vienna (1890) ** 12 05 99 99 00 General George A. Custer (1839) ** 12 05 99 99 00 Martin Van Buren, 8th President (1837-1841) (1782) ** 12 05 99 99 00 Scottish King MacBeth dies (1057) ** 12 05 99 99 00 Walt (Walter Elias) Disney born in Chicago (1901) ** 12 05 99 99 00 Wolfgang Amadeus Mozart dies (1791) ** 12 06 99 99 00 John Eberhard, built 1st large scale pencil factory in US. (1822) ** 12 06 99 99 00 St. Nicholas, archbishop of Myrna and confessor, patron saint of Russia, mariners, youth and virgins, dies (342) ** 12 06 99 99 00 William S. Hart, star of silent Western movies (1870) ** 12 07 99 99 00 Harry Chapin born (New York City, 1942) ** 12 07 99 99 00 Madame du Barry, mistress of French King Louis XV, is guillotined (1793) ** 12 07 99 99 00 Mary Queen of Scots is born (1532) ** 12 07 99 99 00 Noam Chomsky, linguist, is born (1928) ** 12 07 99 99 00 Theodore Schwann, physiologist, is born (1810) ** 12 07 99 99 00 Thornton Wilder, novelist, author of "The Bridge of San Luis Rey", dies (1975) ** 12 07 99 99 00 Willa Cather, a novelist, is born in Virginia (1873) ** 12 07 99 99 00 William Bligh, captain of the Bounty, dies (1817) ** 12 08 99 99 00 Eli Whitney, the inventor of the cotton gin, is born (1765) ** 12 08 99 99 00 Horace (Quintus Horatius Flaccus) born in Venosa, Italy (65 BC) ** 12 08 99 99 00 James (Grover) Thurber born in Columbus, Ohio (1894) ** 12 08 99 99 00 Jean Sibelius, major Scandinavian composer. (1865) ** 12 08 99 99 00 Jim Morrison born (Melbourne, FL, 1943) ** 12 08 99 99 00 John Lennon, musician and composer, assassinated in New York City (1980) ** 12 08 99 99 00 Sammy Davis Jr., entertainer, is born in New York, New York (1925) ** 12 08 99 99 00 Scaramouche dies (1694) ** 12 08 99 99 00 Vitus Bering the discoverer of the Bering strait dies (1741) ** 12 08 99 99 00 William Durant, founded General Motors Corp. (1861) ** 12 09 99 99 00 Clarence Birdseye, became the frozen vegetable king (1886) ** 12 09 99 99 00 Hermione Gingold, actress who played the mayor's wife in "The Music Man", was born (1887) ** 12 09 99 99 00 Joel Chandler Harris, author of "Uncle Remus", is born (1848) ** 12 09 99 99 00 John Milton, epic poet, is born (1608) ** 12 09 99 99 00 Joseph Stalin, Soviet dictator, is born (1879) ** 12 09 99 99 00 Natsume Soseki, Japanese novelist and critic, dies (1916) ** 12 10 99 99 00 Alfred Nobel, the inventor of dynamite, dies (1896) ** 12 10 99 99 00 Emily Dickinson, the poet, is born (1830) ** 12 10 99 99 00 Melvil Dewey, created the Dewey Decimal System for libraries (1851) ** 12 11 99 99 00 Aleksandr Solzhenitsyn (1918) ** 12 11 99 99 00 Hector Berlioz, the composer, is born (1803) ** 12 11 99 99 00 Llewellyn, last native prince of Wales, is ambushed and killed at the orders of Edward I (1282) ** 12 11 99 99 00 Teri Garr, actress, is born in Lakewood, Ohio (1949) ** 12 12 99 99 00 Douglas Fairbanks Sr., actor, dies (1939) ** 12 12 99 99 00 Edward G. Robinson, actor, born in Bucharest, Romania (1893) ** 12 12 99 99 00 Frank Sinatra, singer, is born (1915) ** 12 12 99 99 00 Gustave Flaubert, novelist, 'Madame Bovary'. (1821) ** 12 12 99 99 00 Henry Wells, founded American Express Co. and Wells Fargo & Co. (1805) ** 12 12 99 99 00 Robert Browning, the poet, dies (1889) ** 12 13 99 99 00 Anna Mary "Grandma" Moses, American primitive painter, dies (1961) ** 12 13 99 99 00 Dick Van Dyke, entertainer, is born (1925) ** 12 13 99 99 00 Heinrich Heine, poet, journalist, satirist, is born (1797) ** 12 13 99 99 00 Nero, Roman emperor, is born (37) ** 12 13 99 99 00 Nostradamus, French physician and astrologer, is born (1503) ** 12 13 99 99 00 Russell Porter born (1871) ** 12 13 99 99 00 Ted Nugent, the motor city madman, born (Detroit, 1949) ** 12 14 99 99 00 Andrei Sakharov, physicist, Nobel Prize winner and dissident, dies (1989) ** 12 14 99 99 00 George Washington, president, general, surveyor, dies at Mount Vernon (1799) ** 12 14 99 99 00 Michael de Nostradamus, supposed seer into the future, is born (1503) ** 12 14 99 99 00 Prince Albert, husband of Queen Victoria, dies of Typhoid (1861) ** 12 14 99 99 00 Sir John Oldcastle, prototype for Shakespeare's Falstaff, is burned as a Lollard (1417) ** 12 14 99 99 00 Tycho Brahe, the astronomer, is born (1553) ** 12 15 99 99 00 Alexandre-Gustave Eiffel, built a tower in Paris. (1832) ** 12 15 99 99 00 Charles Edgar Duryea, with his brother, invented 1st auto to be built and operated in US (1861) ** 12 15 99 99 00 Sitting Bull shot in head while submitting to arrest (1890) ** 12 15 99 99 00 Walt Disney, animator and film producer, dies (1966) ** 12 16 99 99 00 Arthur C. Clarke, science fiction author, is born in Somerset (1917) ** 12 16 99 99 00 George Santayana, philosopher, poet, humanist. (1863) ** 12 16 99 99 00 Jane Austen, author, is born (1775) ** 12 16 99 99 00 Liv Ullmann, the actress, is born (1939) ** 12 16 99 99 00 Ludwig van Beethoven christened in Bonn, Germany (often treated as his birthday since the real date is not known) (1770) ** 12 16 99 99 00 Sir Noel Coward, playwright (1899) ** 12 16 99 99 00 Somerset Maugham, novelist and dramatist, dies (1965) ** 12 17 99 99 00 Arthur Fiedler (1894-1979) ** 12 17 99 99 00 Grigori Efimovich Rasputin, Russian monk, assassinated (1916) ** 12 17 99 99 00 Lord Kelvin, the physicist, dies (1907) ** 12 17 99 99 00 Simon Bolivar, revolutionary leader in South America, dies (1830) ** 12 17 99 99 00 Sir Humphrey Davy, discovered several chemical elements (1778) ** 12 17 99 99 00 Willard Libby, chemist, discoverer of carbon dating is born in Grand Valley, Colorado (1908) ** 12 17 99 99 00 William Safire (Safir) born (1929) ** 12 18 99 99 00 Antonio Stradivari, renowned violin maker, dies in Cremona, Italy (1737) ** 12 18 99 99 00 Edwin Armstrong, radio pioneer (invented FM) (1890) ** 12 18 99 99 00 Keith Richards, rock star, is born (1943) ** 12 18 99 99 00 Saki, the British short-story writer is born in Burma (1870) ** 12 18 99 99 00 Soviet Premier, Alexei Kosygin suffers a fatal heart attack (1980) ** 12 18 99 99 00 Stephen Spielberg, the movie director, is born in Cincinnati, OH (1947) ** 12 18 99 99 00 Ty Cobb, baseball player, (1886) ** 12 19 99 99 00 Henry Clay Frick, industrialist; worked for Carnegie. (1849) ** 12 19 99 99 00 William Turner, the artist known for is brilliant impressionistic skies, dies (1851) ** 12 20 99 99 00 Arthur Rubinstein, pianist, dies in Geneva, Switzerland (1982) ** 12 20 99 99 00 Bridie Murphy is born (1798) ** 12 20 99 99 00 Harvey Firestone, rubber manufacturer, is born (1868) ** 12 20 99 99 00 John Geary, 1st Postmaster, 1st Mayor (May 1, 1850) of San Francisco (?) is born (1819) ** 12 20 99 99 00 John Steinbeck, author, dies (1968) ** 12 20 99 99 00 Richard Daley, mayor of Chicago, dies (1976) ** 12 20 99 99 00 Thomas Graham, the father of colloid chemistry (1805) ** 12 21 99 99 00 Benjamin Disraeli, statesman and novelist, is born (1804) ** 12 21 99 99 00 F. Scott Fitzgerald, author, dies in Hollywood (1940) ** 12 21 99 99 00 Frank Zappa, musician and song writer, born in Baltimore (1940) ** 12 21 99 99 00 General George S. Patton dies of injuries received in a car accident (1945) ** 12 21 99 99 00 Josh Gibson, in professional baseball, the "Negro Babe Ruth" (1911) ** 12 22 99 99 00 Giacomo Puccini, composer of "La Boheme", and "Madame Butterfly", is born (1858) ** 12 22 99 99 00 Glenn Miller disappears crossing the English Channel (1944) ** 12 22 99 99 00 Lady Bird Johnson, wife of president and Texas environmental proponent, is born (1913) ** 12 22 99 99 00 Srinivasa Ramanujan, one of the most brilliant mathematicians to ever live, was born (1887) ** 12 23 99 99 00 Jean-Francois Champollion, deciphered Egyptian hieroglyphics (1790) ** 12 23 99 99 00 Joseph Smith, founder of The Church of Jesus Christ of Latter-day Saints (The Mormons), is born in Sharon, Vermont (1805) ** 12 24 99 99 00 Howard Hughes, aircraft manufacturer, was born (1905) ** 12 24 99 99 00 John Muir, naturalist, dies (1914) ** 12 24 99 99 00 Kit Carson, explorer, is born (1809) ** 12 25 99 99 00 Anwar Sadat, president of Egypt, is born (1918) ** 12 25 99 99 00 Cab Calloway, bandleader, is born (1907) ** 12 25 99 99 00 Humphrey Bogart, actor, is born (1899) ** 12 25 99 99 00 Jesus of Nazareth, Christian messiah, is born. Actually it is suspected that he was born in the summer. (4 BC) ** 12 25 99 99 00 Sir Isaac Newton born in Grantham, England (1642) ** 12 25 99 99 00 Sissy Spacek, actress, is born (1949) ** 12 25 99 99 00 W.C. Fields dies (1946) ** 12 26 99 99 00 Charles Babbage, credited with designing the first computer, is born (1791) ** 12 26 99 99 00 Henry Miller, the author, is born (1891) ** 12 26 99 99 00 Mao Tse-tung, revolutionary, is born in Hunan Province (1893) ** 12 27 99 99 00 Hoagy Carmichael, songwriter, dies (1981) ** 12 27 99 99 00 Johannes Kepler, astronomer, is born (1571) ** 12 27 99 99 00 Marlene Dietrich, singer and actor, is born (1904) ** 12 27 99 99 00 Philippus Paracelsus, Alchemist and physician, opposed humoral theory, stressed observation, is born (1493) ** 12 28 99 99 00 Arthur S. Eddington born (1882) ** 12 28 99 99 00 Edgar Winter born (Beaumont, TX, 1946) ** 12 28 99 99 00 John von Neumann, mathematician and computer scientist, born (1903) ** 12 28 99 99 00 Stan Lee (Stanley Martin Lieber), editor and publisher for Marvel Comics, was born (1922) ** 12 28 99 99 00 Woodrow Wilson, 28th President (1912-1921) (1856) ** 12 29 99 99 00 Andrew Johnson, 17th President (1865-1869) (1808) ** 12 29 99 99 00 Charles Goodyear, invented vulcanization process for rubber (1800) ** 12 29 99 99 00 Pablo Casals, Spanish Cellist, is born (1876) ** 12 29 99 99 00 William Ewart Gladstone, British statesman (1809) ** 12 30 99 99 00 Alfred Whitehead, mathematician and philosopher, dies (1947) ** 12 30 99 99 00 Amelia Bloomer, women's rights activist, popularized the term bloomers, dies (1894) ** 12 30 99 99 00 Robert Boyle, chemist and physicist, dies (1691) ** 12 30 99 99 00 Rudyard Kipling, author and poet, is born (1865) ** 12 30 99 99 00 Stephen Leacock, economist and humourist, is born (1869) ** 12 31 99 99 00 Henri Matisse, painter, is born (1869) ** 12 31 99 99 00 John Denver, song writer and singer, born in Roswell, NM (1943) ** 12 31 99 99 00 Ricky Nelson, singer, his band and girlfriend all killed in a light plane crash in Texas (1985) gcal-4.1/data/dates/ancient0000664000000000000000000000222312353520606012533 00000000000000# CalenTool V2.2 - nflag=1 range=3,12 - DO NOT REMOVE THIS LINE # $Header: ancient,v 1.2 91/03/07 16:21:01 billr Exp $ # Special celebrated in ancient times # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # ** 03 25 99 99 00 New Year's Day in England from the 12c. until 1752 ** 04 13 99 99 00 Roman feast of the Goddess Liberty ** 04 29 99 99 00 Beginning of the festival of the goddess Flora in ancient Rome which is thought to be the origin of May Day ** 04 30 99 99 00 Walpurgisnacht, Witch's sabbath is held in the Harz mountains of Germany, a time of great evil ** 05 04 99 99 00 Last day of the Roman Floralia festival ** 06 09 99 99 00 Vestalia, ancient Roman feast to the goddess Vesta, the virgin goddess of hearth and home ** 06 10 99 99 00 Egyptian Day, considered unlucky in the Middle Ages ** 12 17 99 99 00 Saturnalia revel gcal-4.1/data/dates/lives0000664000000000000000000000043012244130561012226 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: lives,v 1.1 91/03/07 16:18:52 billr Exp $ # Common include file just includes individual parts # #include #include #include #include #include #include gcal-4.1/data/dates/sfo0000664000000000000000000006353512244130561011712 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: sfo,v 1.3 91/08/12 09:36:30 billr Exp $ # Dates relating to events in and around San Francisco, CA # dates provided from ProLine's today file # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # ** 01 01 99 99 00 Lightship replaces whistling buoy at mouth of San Francisco Bay. (1898) ** 01 02 99 99 00 DeYoung Museum in Golden Gate Park opens. (1921) ** 01 02 99 99 00 the San Francisco and Los Angeles stock exchanges merge. (1957) ** 01 04 99 99 00 Golden Gate Bridge closed for the 3rd time by fierce storm. (1982) ** 01 05 99 99 00 San Francisco has it's 1st air meet. (1911) ** 01 05 99 99 00 Work on Golden Gate Bridge begins, on Marin County side. (1933) ** 01 05 99 99 00 the California Exchange opens. (1850) ** 01 08 99 99 00 Ratification of present San Francisco City Charter. (1932) ** 01 09 99 99 00 1st San Francisco paper, 'California Star', published. (1847) ** 01 09 99 99 00 1st commercial bank in San Francisco established. (1848) ** 01 09 99 99 00 Exposition (now Civic) Auditorium dedicated. (1915) ** 01 14 99 99 00 All commercial ferry service to the East Bay ends. (1939) ** 01 15 99 99 00 Dunbarton Bridge, 1st bridge in Bay Area, opens. (1927) ** 01 15 99 99 00 Municipal Railway and Market Street Railroad begin service to the Transbay Transit (East Bay) Terminal (1939) ** 01 16 99 99 00 Cliff House badly damaged when a cargo of powder on the schooner "Parallel" explodes nearby (1887) ** 01 16 99 99 00 San Francisco Dramatic Chronicle started (now San Francisco Chronicle) (1865) ** 01 17 99 99 00 9-county commission recommends creation of BART. (1957) ** 01 18 99 99 00 The elegant California Theatre opens in San Francisco. (1869) ** 01 20 99 99 00 California Stock Exchange Board organized. (1872) ** 01 22 99 99 00 Aquatic Park dedicated. (1939) ** 01 22 99 99 00 Chinatown telephone exchange closed. (1949) ** 01 24 99 99 00 San Francisco 49'ers win their 1st Super Bowl, 26-21. (1982) ** 01 27 99 99 00 Groundbreaking for the 'Dragon Gateway' at Grant Avenue. (1965) ** 01 27 99 99 00 Midwinter Fair opens in Golden Gate Park. (1894) ** 01 27 99 99 00 Montgomery St. Station, last link in BART, 'holed thru'. (1971) ** 01 30 99 99 00 Yerba Buena renamed San Francisco. (1847) ** 01 31 99 99 00 Birds fly over the western part of San Francisco in such large numbers that they actually darken the sky (1871) ** 01 31 99 99 00 Congress passes resolution naming San Francisco as the site of the celebration of the opening of the Panama Canal (1911) ** 01 31 99 99 00 San Francisco Orphan's Asylum, 1st in California, founded. (1851) ** 02 02 99 99 00 1st shipload of Chinese arrive in San Francisco. (1848) ** 02 05 99 99 00 Snow falls on San Francisco. (1887) ** 02 07 99 99 00 Steel work completed on Exposition (Civic) Auditorium. (1914) ** 02 08 99 99 00 Earthquake, at 5.0, strongest since 1966. (1977) ** 02 08 99 99 00 Public Library's bookmobile initiated in front of City Hall. (1957) ** 02 09 99 99 00 1st shipment of asparagus arrives from Sacramento. (1891) ** 02 11 99 99 00 Major streets lit by coal gas for 1st time. (1854) ** 02 11 99 99 00 Pumping begins to build Treasure Island. (1936) ** 02 12 99 99 00 San Francisco selected for site of United Nations Conference. (1945) ** 02 15 99 99 00 Fort Point completed & garrisoned (but has never fired it's cannon in anger) (1861) ** 02 15 99 99 00 San Francisco Public Library (Main Branch at Civic Center) dedicated. (1917) ** 02 16 99 99 00 1st airplane flight to Los Angeles from San Francisco. (1914) ** 02 16 99 99 00 City Hall dome fire. (1951) ** 02 17 99 99 00 1st telephone exchange in San Francisco opens with 18 phones. (1878) ** 02 18 99 99 00 Golden Gate International Exposition opens on Treasure Island (built for the occasion) in San Francisco Bay (1939) ** 02 18 99 99 00 Legislature creates the 9 Bay Area counties. (1850) ** 02 18 99 99 00 San Francisco named as a port of dispatch for Army transports. (1899) ** 02 20 99 99 00 Congress allows California to build the Oakland-Bay Bridge. (1931) ** 02 20 99 99 00 Heavy surf breaks over Seal Rocks and damages Sutro Baths. (1902) ** 02 20 99 99 00 Panama-Pacific International Exposition opens in San Francisco. (1915) ** 02 20 99 99 00 University of California gets its 1st Med School (UC/SF). (1873) ** 02 21 99 99 00 Oakland Daily Tribune begins publication. (1874) ** 02 22 99 99 00 Lowell High School opens (on it's 1st campus). (1913) ** 02 23 99 99 00 Congress grants Seal Rocks to San Francisco. (1887) ** 02 23 99 99 00 Last Municipal arc light, over intersection of Mission & 25th Street, removed (it had been installed in 1913) (1958) ** 02 23 99 99 00 Steamer "Rio de Janiero" sinks in San Francisco Bay. (1900) ** 02 26 99 99 00 1st buffalo purchased for Golden Gate Park. (1891) ** 02 26 99 99 00 Golden Gate Bridge ground-breaking ceremony held at Crissy Field. (1933) ** 02 28 99 99 00 1st steamship enters San Francisco Bay. (1849) ** 02 28 99 99 00 1st vaudeville theater opens. (1883) ** 02 28 99 99 00 Bicycles now permitted to cross Golden Gate Bridge. (1970) ** 02 28 99 99 00 Construction begins on the Tower of Jewels for the Exposition. (1914) ** 03 01 99 99 00 Present seal of San Francisco adopted (2nd seal for city). (1859) ** 03 04 99 99 00 Easter Cross on Mt. Davidson dedicated. (1934) ** 03 05 99 99 00 Covent Garden Theater is destroyed by fire (1856) ** 03 12 99 99 00 Pioneer Plaza dedicated. (1966) ** 03 13 99 99 00 4-day strike by SF city employees starts. (1970) ** 03 14 99 99 00 Freedom Train arrives in San Francisco. (1948) ** 03 14 99 99 00 Legislature approves act making Golden Gate Park possible. (1870) ** 03 14 99 99 00 Sutro Baths opens by Cliff House (closed Sept 1, 1952). (1896) ** 03 14 99 99 00 the 36-Folsom becomes 1st line to use 1-man streetcars. (1935) ** 03 17 99 99 00 Japanese Embassy arrives aboard the "Candinmarruh" . (1860) ** 03 22 99 99 00 Earthquake gives San Francisco the shakes. (1957) ** 03 22 99 99 00 President Johnson's daughter, Lynda, ordered off Cable Car because she was eating an ice cream cone (no food on cars) (1968) ** 03 22 99 99 00 Robert Frost Plaza, at California, Drumm & Market, dedicated. (1978) ** 03 23 99 99 00 President John F. Kennedy visits San Francisco. (1962) ** 03 24 99 99 00 Clipper "Andrew Jackson" arrives in 89 days from New York. (1860) ** 03 26 99 99 00 Golden Gate Park Conservatory made a City Landmark. (1970) ** 03 27 99 99 00 Japanese Trade & Cultural Center (Japan Center) dedicated. (1968) ** 03 28 99 99 00 San Francisco Art Association holds opening reception at 430 Pine. (1871) ** 03 31 99 99 00 Chinese Embassy arrives aboard the steamship "China". (1868) ** 03 31 99 99 00 Col. John W. Geary arrives as 1st postmaster of San Francisco. (1849) ** 03 31 99 99 00 Ground broken for Union Square Garage. (1941) ** 04 01 99 99 00 Navy takes over Treasure Island. (1941) ** 04 01 99 99 00 Saint Stupid's Day (a San Francisco tradition since 1980). ** 04 01 99 99 00 San Francisco County Government established. (1850) ** 04 03 99 99 00 Thomas Douglas becomes 1st San Francisco public teacher. (1848) ** 04 04 99 99 00 Golden Gate Park established by City Order ** 04 05 99 99 00 Castro and Fillmore streetcars replaced by buses. (1941) ** 04 07 99 99 00 Seals Stadium opens. (1931) ** 04 10 99 99 00 California Street Cable Car Railroad Company starts service. (1878) ** 04 10 99 99 00 William Hammond Hall's maps & surveys of Golden Gate Park officially accepted (1871) ** 04 11 99 99 00 Brooks Hall in Civic Center dedicated. (1958) ** 04 12 99 99 00 Army transfers Yerba Buena Island to Navy. (1898) ** 04 12 99 99 00 Hibernia Savings & Loan Society of San Francisco incorporated. (1859) ** 04 12 99 99 00 Moffatt Field is commissioned. (1933) ** 04 12 99 99 00 San Mateo County withdraws from BART district. (1962) ** 04 14 99 99 00 1st Pony Express rider arrives in SF from St. Joseph, Missouri. (1860) ** 04 14 99 99 00 Fort Point dedicated as 1st National Park in Bay Area. (1971) ** 04 14 99 99 00 regular air passenger flights between San Francisco and Los Angeles started, by Maddux Air Lines (1928) ** 04 15 99 99 00 Alioto's on Fisherman's Wharf is founded. (1928) ** 04 15 99 99 00 City of San Francisco incorporated. (1850) ** 04 16 99 99 00 Nitroglycerine at the Wells Fargo & Co. office explodes. (1866) ** 04 17 99 99 00 US Marine Hospital at the Presidio established. (1853) ** 04 18 99 99 00 1st International Cricket Match, held in SF, won by Californian (1869) ** 04 18 99 99 00 Fairmont Hotel opens. (1907) ** 04 18 99 99 00 San Francisco Earthquake and Fire (1906) ** 04 18 99 99 00 San Francisco Society for Prevention of Cruelty to Animals formed. (1868) ** 04 18 99 99 00 San Francisco's Old Hall of Justice demolished. (1968) ** 04 19 99 99 00 Barracks on Alcatraz Island destroyed in fire. (1874) ** 04 20 99 99 00 Bar Association of San Francisco organized. (1872) ** 04 20 99 99 00 Buses replace Key System trains at 3AM. (1958) ** 04 23 99 99 00 Blossom Rock in San Francisco Bay blown up. (1871) ** 04 23 99 99 00 Courtesy Mail Boxes for motorists started in San Francisco. (1949) ** 04 24 99 99 00 Fire Alarm & Police Telegraph system put into operation. (1865) ** 04 25 99 99 00 President Benjamin Harrison visits San Francisco. (1891) ** 04 26 99 99 00 San Francisco Lightship replaced by automatic buoy. (1971) ** 04 29 99 99 00 Headquarters for the US Army, Division of the Pacific, permanently established at the Presidio (1857) ** 04 30 99 99 00 founding of what would be San Jose State University. (1857) ** 05 02 99 99 00 Kezar Stadium in Golden Gate Park opens. (1925) ** 05 02 99 99 00 Prisoners revolt at Alcatraz, 5 die. (1946) ** 05 03 99 99 00 Camp Merriman established at the Presidio. (1898) ** 05 03 99 99 00 San Francisco is almost entirely destroyed by fire for the 7th time in its 4 years of existence (1851) ** 05 04 99 99 00 1st of the major San Francisco fires. (1851) ** 05 05 99 99 00 The Great White Fleet arrives in San Francisco. (1908) ** 05 06 99 99 00 "Temporary" permit to erect overhead wires on Market Street allows United Railroads to run electric streetcars (1906) ** 05 06 99 99 00 Chamber of Commerce of San Francisco starts. (1851) ** 05 07 99 99 00 Cornerstone of BofA building at 300 Montgomery laid. (1941) ** 05 07 99 99 00 San Francisco Municipal Airport (Mills Field) dedicated. (1927) ** 05 09 99 99 00 Telegraph Hill Railroad Company organized. (1882) ** 05 11 99 99 00 Bank of San Francisco incorporated. (1907) ** 05 11 99 99 00 Work starts on 1st brick building in San Francisco. (1850) ** 05 12 99 99 00 President William McKinley visits San Francisco. (1901) ** 05 14 99 99 00 President Theodore Roosevelt visits San Francisco. (1903) ** 05 15 99 99 00 2nd San Francisco Vigilance Committee organized. (1856) ** 05 16 99 99 00 Ewing Field, near Masonic Street, opens. (1914) ** 05 16 99 99 00 Metropolitan Gas Company lamps lit for 1st time. (1872) ** 05 17 99 99 00 Bohemian Club incorporated. (1872) ** 05 17 99 99 00 Camp Merritt established in the Presidio. (1898) ** 05 17 99 99 00 Marin County withdraws from BART district. (1962) ** 05 21 99 99 00 Mount Davidson Cross lit by President Roosevelt in Washington via Telegraph (1933) ** 05 22 99 99 00 1st San Francisco fireboat, the "David Scannell", launched. (1909) ** 05 23 99 99 00 1st Phillipine Expeditionary Troops sail from San Francisco. (1898) ** 05 23 99 99 00 Dirigible explodes over SF Bay, 16 passengers fall, none die. (1908) ** 05 23 99 99 00 Dirigible explodes over SF Bay, 16 passengers fall, none die. (1908) ** 05 23 99 99 00 Postal Cards sold in San Francisco for 1st time. (1873) ** 05 23 99 99 00 World Trade Center dedicated in Ferry Building. (1956) ** 05 25 99 99 00 Golden Gate International Exposition reopens. (1940) ** 05 25 99 99 00 San Francisco receives its 1st telecast. (1948) ** 05 26 99 99 00 Golden Gate Bridge opens. (1937) ** 05 26 99 99 00 San Francisco approves new City Charter, allowing Municipal (1898)ownership of utiliies (charter effective Jan 1, 1900). ** 05 26 99 99 00 Union Square becomes State Historical Landmark. (1958) ** 05 27 99 99 00 Bay District Race Track closes. (1896) ** 05 27 99 99 00 Bubonic Plague breaks out in San Francisco (1907) ** 05 27 99 99 00 Golden Gate Bridge opens (1937) ** 05 27 99 99 00 Marine Telegraph from Fort Point to San Francisco completed. (1854) ** 05 27 99 99 00 Maritime Museum at Aquatic Park opens. (1951) ** 06 02 99 99 00 Ground broken on Clay Street for world's 1st cable railroad. (1873) ** 06 04 99 99 00 Empire Engine Company No. 1 organized. (1850) ** 06 05 99 99 00 1st rivet driven on Bank of Italy headquarters at 1 Powell. (1920) ** 06 07 99 99 00 workmen start laying track for Market Street Railroad. (1860) ** 06 09 99 99 00 the San Francisco Committee of Vigilence forms. (1851) ** 06 10 99 99 00 PBS reaches San Francisco: KQED (Channel 9) starts broadcasting. (1954) ** 06 11 99 99 00 300 feet of Meigg's Wharf washed away in storm. (1864) ** 06 11 99 99 00 K-Ingleside streetcar converts to METRO service. (1980) ** 06 14 99 99 00 California Street Cable Car Railroad Co. gets it's franchise. (1876) ** 06 14 99 99 00 Fire destroys part of San Francisco. (1850) ** 06 15 99 99 00 San Francisco Water Works organized. (1857) ** 06 19 99 99 00 1st concert given in San Francisco's Stern Grove. (1932) ** 06 19 99 99 00 formal opening of US Marine Hospital at the Presidio. (1875) ** 06 20 99 99 00 Commissioners appointed to lay out streets west of Larkin. (1855) ** 06 22 99 99 00 Fire destroys part of San Francisco. (1851) ** 06 22 99 99 00 Stephen C. Massett opens at courthouse as 1st professional entertainer, using the (allegedly) only piano in California (1849) ** 06 25 99 99 00 Pueblo founded with construction of 1st building (start of Yerba Buena, later to be called San Francisco) (1835) ** 06 25 99 99 00 San Francisco holds its 1st County Fair. (1982) ** 06 26 99 99 00 UN Charter written in San Francisco. (1945) ** 06 27 99 99 00 Bank of California opens its doors. (1867) ** 06 27 99 99 00 Bill Graham closes Fillmore East (1971) ** 06 29 99 99 00 Mission Dolores founded by San Francisco Bay. (1776) ** 07 01 99 99 00 Construction crews begin tearing up Market St. to build BART. (1966) ** 07 01 99 99 00 Golden Gate Bridge paid for (so why is there still a toll?). (1971) ** 07 01 99 99 00 SF City Hall turned over to city, after 29 years of building. (1899) ** 07 01 99 99 00 at least 626 ships lying at anchor around San Francisco Bay. (1850) ** 07 03 99 99 00 Pony Express arrives in SF with overland letters from New York. (1861) ** 07 04 99 99 00 1st public exhibition of electric light in San Francisco. (1876) ** 07 04 99 99 00 Telegraph Hill Observatory opens. (1882) ** 07 04 99 99 00 work begins on the Oakland Bay Bridge. (1933) ** 07 05 99 99 00 Herb Caen gets his 1st column in the S.F. Chronicle. (1938) ** 07 07 99 99 00 the Great White Fleet leaves San Francisco Bay. (1908) ** 07 13 99 99 00 SF Ferry Building at the foot of Market Street opens. (1898) ** 07 15 99 99 00 SF Merchant's Exchange opens. (1867) ** 07 16 99 99 00 Attempt made to recall Mayor Lapham (1st time in SF history). (1946) ** 07 19 99 99 00 SF Public Library allows patrons to start borrowing books. (1880) ** 07 19 99 99 00 the "Balclutha" ties up at Pier 43 & becomes a floating museum. (1955) ** 07 21 99 99 00 City Gardens on Folsom opens. (1867) ** 07 25 99 99 00 Castle on top of Telegraph Hill closes. (1903) ** 07 25 99 99 00 Construction begins on SF MUNI METRO (Market Street subway). (1967) ** 07 28 99 99 00 "Memmon" is 1st clipper to reach San Francisco, 120 days out of NY (1849) ** 07 29 99 99 00 Southern Pacific Bay Ferries stop running. (1958) ** 08 01 99 99 00 Bank of Italy opens 1st branch at 3433 Mission Street. (1907) ** 08 01 99 99 00 Black Methodists in SF establish 1st black church, Zion Methodist. (1852) ** 08 01 99 99 00 Burial within San Francisco City limits prohibited. (1901) ** 08 01 99 99 00 First successful test of a cable car. It was designed by Andrew S. Hallidie for San Francisco (1873) ** 08 01 99 99 00 New San Francisco Hall of Justice opens. (1961) ** 08 02 99 99 00 1st trial run of an SF cable car, on Clay Street between Kearny and Jones, downhill all the way, at 4AM (1873) ** 08 02 99 99 00 San Francisco Public Library opens with 5000 volumes. (1877) ** 08 05 99 99 00 the 1st Spanish ship, 'San Carlos', enters San Francisco bay. (1775) ** 08 10 99 99 00 1st BART train travels thru transbay tube to Montgomery St Station. (1973) ** 08 11 99 99 00 The California Theatre closed (now a Pac Tel Phone Store). (1888) ** 08 15 99 99 00 Arch Rock, danger to Bay shipping, blasted with 30 tons of nitrogelatin (and that ain't jello) (1901) ** 08 15 99 99 00 Riot in San Francisco celebrating end of World War II. (1945) ** 08 17 99 99 00 Bank of Italy opens it's new headquarters at Clay & Montgomery. (1908) ** 08 20 99 99 00 Dimout regulations implemented in San Francisco. (1942) ** 08 20 99 99 00 Republicans start convention at the Cow Palace. (1956) ** 08 23 99 99 00 1st Japanese commercial ship visits San Francisco with a cargo of tea. (1872) ** 08 23 99 99 00 1st carload of freight (boots & shoes) arrives in San Francisco, from Boston, after a 16-day rail trip (1869) ** 08 23 99 99 00 1st ship-to-shore wireless message received in US: US lightship to Cliff House (1889) ** 08 25 99 99 00 Combination rail & ferry service available from SF to Alameda. (1864) ** 08 25 99 99 00 Graf Zeppelin passes over San Francisco, headed for Los Angeles after trans-Pacific voyage from Tokyo (1929) ** 08 26 99 99 00 Fluoridation of San Francisco water begins. (1952) ** 08 26 99 99 00 Houdini escapes from chains underwater at Aquatic Park in 57 seconds (1907) ** 08 26 99 99 00 Pumping to build Treasure Island finished. (1937) ** 08 26 99 99 00 W. A. Bartlett appointed 1st US mayor of Yerba Buena (SF). (1846) ** 08 29 99 99 00 'Arizonan' is the 1st vessel to arrive in SF via the Panama Canal. (1914) ** 08 29 99 99 00 San Francisco International Airport (SFO) opens. (1954) ** 08 29 99 99 00 The Beatles gave their last public concert at Candlestick Park. (1966) ** 08 31 99 99 00 Crocker-Woolworth National Bank organized. (1886) ** 08 31 99 99 00 The California Pioneers organized at Montgomery & Clay Streets. (1850) ** 09 01 99 99 00 Railroad & Ferry connection with Oakland inaugurated. (1863) ** 09 02 99 99 00 Washington-Jackson cable line replaced by bus service. (1956) ** 09 04 99 99 00 North Beach & Mission Railway Company organized. (1862) ** 09 06 99 99 00 Regular Cable Car service begins on Clay Street. (1873) ** 09 06 99 99 00 Southern Pacific line from Los Angeles to San Francisco completed. (1876) ** 09 06 99 99 00 the 1st westbound train arrives in San Francisco. (1869) ** 09 07 99 99 00 Sutro's ornate Cliff House destroyed by fire. (1907) ** 09 09 99 99 00 Lotta's Fountain (Kearny & Market) dedicated. (1875) ** 09 09 99 99 00 President Hayes visits San Francisco. (1880) ** 09 11 99 99 00 1st electric telegraph in use, Merchant's Exchange to Pt Lobos. (1853) ** 09 11 99 99 00 BART begins service with a 26 mile line from Oakland to Fremont (1972) ** 09 11 99 99 00 Mayor Rolph inaugurates new pedestrian traffic light system. (1929) ** 09 15 99 99 00 San Francisco Seals (Pacific Coast League) play their last game. (1957) ** 09 15 99 99 00 WPA extends the L-Taraval streetcar to the Zoo (at Sloat Blvd). (1937) ** 09 16 99 99 00 BART begins regular transbay service. (1974) ** 09 16 99 99 00 Independence Day, celebrated in Mexico. ** 09 17 99 99 00 BART begins passenger service. (1972) ** 09 17 99 99 00 Charles Lindbergh in San Francisco. (1927) ** 09 17 99 99 00 the Presidio of San Francisco was founded as Spanish fort. (1776) ** 09 18 99 99 00 Pacific Stock Exchange opens (as the Local Security Board). (1882) ** 09 19 99 99 00 Streetcars stop running on Market St after 122 years of service (1982) ** 09 20 99 99 00 the U.S. Grants come to San Francisco for an elaborate extended visit. (1879) ** 09 21 99 99 00 Cable Cars cease operations for 2 years of repairs. (1982) ** 09 24 99 99 00 James Cooke walks tightrope from Cliff House to Seal Rocks. (1865) ** 10 01 99 99 00 Cable Cars declared a National Landmark. (1964) ** 10 02 99 99 00 Birdbaths installed in Union Square. (1939) ** 10 03 99 99 00 San Francisco's White House department store is first to accept the BankAmericard in lieu of cash (1960) ** 10 04 99 99 00 Market Street's "Path of Gold" lit for 1st time. (1916) ** 10 04 99 99 00 Pier 39 opens. (1977) ** 10 04 99 99 00 The dahlia is officially designated as the City Flower. (1926) ** 10 05 99 99 00 Fire Department Museum dedicated. (1964) ** 10 05 99 99 00 Hyde St. Pier re-opens as State Historical Park. (1963) ** 10 05 99 99 00 Palace Hotel on Market Street opens. (1875) ** 10 06 99 99 00 Market Street Railway starts using trackless trolley coaches. (1935) ** 10 06 99 99 00 Zoological Gardens opens (on Sloat and Skyline). (1940) ** 10 08 99 99 00 Coit Tower dedicated. (1933) ** 10 08 99 99 00 Earthquake. (1865) ** 10 08 99 99 00 Telegraph line between Los Angeles and San Francisco opens. (1860) ** 10 09 99 99 00 Emperor Hirohito of Japan visits San Francisco. (1975) ** 10 12 99 99 00 Alcatraz becomes a federal prison (unofficially). (1933) ** 10 12 99 99 00 at 4AM, traffic on Bay Bridge is 1-way on each deck. (1963) ** 10 15 99 99 00 Bank of America World Headquarters (555 California) dedicated. (1969) ** 10 15 99 99 00 Cliff House opens (1st of many on the site). (1863) ** 10 16 99 99 00 Amphitheater in McLaren Park dedicated. (1971) ** 10 16 99 99 00 John Brown attacks the armory at Harper's Ferry. (1859) ** 10 16 99 99 00 Woolworth's at Powell & Market opens. (1952) ** 10 17 99 99 00 A earthquake measured at 6.9-7.1 on the Richter scale hits San Francisco at 5:04 pm killing nearly 300 people and doing billions of dollars in damage. (1989) ** 10 17 99 99 00 Bank of Italy (Bank of America) opens its doors. (1904) ** 10 17 99 99 00 Sutro RR sold to Robert F. Morrow for $215,000. (1899) ** 10 19 99 99 00 Golden Gate Bridge charges tolls only for southbound cars. (1968) ** 10 20 99 99 00 Bayshore Highway opens. (1929) ** 10 21 99 99 00 1st shipment of fresh oysters comes overland from Baltimore. (1869) ** 10 21 99 99 00 Severe earthquake at 7:53AM. (1868) ** 10 26 99 99 00 Guided tours of Alcatraz (by Park Service) begin. (1972) ** 10 26 99 99 00 the "Yerba Buena" is 1st Key System ferry to cross San Francisco Bay. (1903) ** 10 27 99 99 00 Golden Gate National Recreation Area created. (1972) ** 10 29 99 99 00 Golden Gate International Exposition closes (1st closure). (1939) ** 11 01 99 99 00 Dimout ban lifted in San Francisco Bay area. (1943) ** 11 01 99 99 00 Fortifications built on Angel Island by troops. (1863) ** 11 02 99 99 00 Cobblestone paving of Washington St between Dupont & Kearny starts. (1854) ** 11 04 99 99 00 90 kegs of powder used to get rock from Telegraph Hill for seawall. (1867) ** 11 04 99 99 00 Lighthouse established on Alcatraz Island. (1854) ** 11 05 99 99 00 BART starts San Francisco-Daly City train shuttle service. (1973) ** 11 06 99 99 00 BART bond issue just gets by with a 66.9% favorable vote. (1962) ** 11 06 99 99 00 Yerba Buena & Angel Islands reserved for military use. (1850) ** 11 09 99 99 00 Post Office at Clay & Pike opens. (1848) ** 11 11 99 99 00 Cornerstones laid for Opera House and Veteran's Building. (1931) ** 11 11 99 99 00 Demolition begins on cable car barn at California & Hyde. (1957) ** 11 11 99 99 00 Seals Stadium demolished. (1959) ** 11 12 99 99 00 Bay District Race Track opens. (1873) ** 11 12 99 99 00 Oakland Bay Bridge opened. (1936) ** 11 14 99 99 00 The old Dutch Windmill in Golden Gate Park repaired & working again. (1981) ** 11 15 99 99 00 Cow Palace opens. (1941) ** 11 15 99 99 00 KRON (Channel 4, San Francisco) signs on, from 7 to 10 PM. (1949) ** 11 17 99 99 00 Street signs authorized at San Francisco intersections. (1853) ** 11 18 99 99 00 Main span of Golden Gate Bridge joined. (1936) ** 11 19 99 99 00 Golden Gate Park Conservatory becomes a California State Historical Landmark (1970) ** 11 23 99 99 00 Post Hospital at Presidio renamed Letterman General Hospital. (1911) ** 11 23 99 99 00 The first jukebox made its debut in San Francisco. (1889) ** 11 26 99 99 00 1st baseball game played in enclosed field at 25th & Folsom. (1868) ** 11 27 99 99 00 1st signal box for SF Police Department goes into operation. (1890) ** 12 01 99 99 00 Golden Gate Bridge closed because of high winds. (1951) ** 12 02 99 99 00 Moscone Convention Center opens at 11:30 AM. (1981) ** 12 03 99 99 00 Paid Fire Department takes over from volunteer companies. (1866) ** 12 03 99 99 00 Wetherill discovers Cliff Palace on Mesa Verde (1888) ** 12 08 99 99 00 Construction starts on Palace of Fine Arts. (1913) ** 12 08 99 99 00 San Francisco has 1st blackout, at 6:15PM. (1941) ** 12 09 99 99 00 300 Montgomery opens as new Bank of America headquarters. (1941) ** 12 10 99 99 00 Hunters Point jitney ends service after 50 years. (1962) ** 12 11 99 99 00 Snow falls in San Francisco. (1932) ** 12 11 99 99 00 Stockton Street Tunnel completed. (1914) ** 12 13 99 99 00 Golden Gate Bridge District starts ferry service to Larkspur. (1976) ** 12 13 99 99 00 Playland at the Beach reopens. (1968) ** 12 14 99 99 00 Golden Gate Bridge lights out all night from power failure. (1971) ** 12 15 99 99 00 SF Fire Dept. replaces leather helmets with plastic ones. (1969) ** 12 17 99 99 00 M-OceanView streetcar resumes service & is extended to Market St. (1944) ** 12 18 99 99 00 San Francisco Visitors Center at City Hall opens. (1974) ** 12 19 99 99 00 Grading started for Market Street Railroad. (1859) ** 12 19 99 99 00 Street signs in Golden Gate Park approved by Park Commission. (1962) ** 12 20 99 99 00 Mt. Davidson dedicated as city park. (1929) ** 12 21 99 99 00 Broadway Tunnel opens. (1952) ** 12 28 99 99 00 San Francisco Municipal Railway starts operation at Geary St. (MUNI was the 1st municipally-owned transit system) (1912) ** 12 29 99 99 00 Fire Dept celebrates 1st annual ball. (1864) ** 12 29 99 99 00 San Francisco Symphony formed. (1911) ** 12 31 99 99 00 Last San Francisco firehorses retired. (1921) gcal-4.1/data/dates/events0000664000000000000000000000044012244130561012411 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: events,v 1.1 91/03/07 16:19:02 billr Exp $ # Common include file just includes individual parts # #include #include #include #include #include #include gcal-4.1/data/dates/CREDITS0000664000000000000000000000655012353520607012217 00000000000000# $Header: CREDITS,v 1.2 91/03/04 11:35:44 billr Exp $ The dates in these files cam from many sources. Amoung them are: "Today in History" - a online file of special events in world history, maintained by Robert Heckendorn at Hewlett-Packard in Fort Collins, Colorado (robert@fc.hp.com); ProLine's "Today" file, submitted by Larry Virden; and net postings by Rich Kulawiec (see below). Most of the original derivation and formatting was done by R.P.C. Rodgers (at UCSF). Others were formatted by Larry W. Virden and edited by me. I merged the various sources to produce the final result. There were many cases where the different sources showed different dates for the same event. Where I could, I used my "World Almanac and Book of Facts" (1988 ed.) to resolve the conflict. In a few cases, both dates are shown. If you spot an error or have a definitive reference for the correct date where multiple listings are shown, please notify me. Bill Randle Tektronix, Inc. billr@saab.CNA.TEK.COM March 4, 1991 ---------- Date: Wed, 19 Jul 89 15:30:45 MDT From: Rich Kulawiec Message-Id: <8907192130.AA00260@pichon> To: billr@saab.CNA.TEK.COM, rodgers@maxwell.mmwb.ucsf.edu Subject: More dates for "calentool" Status: OR I don't know about other people who submitted calendar entries, but I know that a lot of the items in "popcult" [now split in "lives" and "music"], among others, are from a long typing session that I put in a few years ago with a couple of my favorite rock-n-roll references. I'd be happier, and I imagine that the other people who typed in other dates at some length would be happier, if credit was given where due. The enclosed news article lists people who contributed to the 1985 calendar (which was posted to Usenet); I started with that and added 300-400 dates, mostly involving pop culture, before re-posting the whole mess later. Cheers, Rich Kulawiec > Path: stat-l!Pucc-I:Pucc-H:CS-Mordred!pur-ee!inuxc!ihnp4!mhuxn!mhuxj!mhuxr!ulysses!allegra!bellcore!decvax!ittvax!wxlvax!rlw > From: rlw@wxlvax.UUCP (Richard L. Wexelblat) > Newsgroups: net.sources > Subject: 1985.calendar.events > Message-ID: <374@wxlvax.UUCP> > Date: Tue, 15-Jan-85 08:41:50 EST > Date-Received: Wed, 16-Jan-85 19:43:00 EST > Lines: 1354 > > Here are a few items to initialize your 1985 calendar. > > They are not all in the same format due to the various sources from > which they came and my own limited time for editing. I've tried to > mark items whose annual dates vary (Easter, e.g.) so that updating for > next year will be easier but I know I missed many such. Some of these > are a bit off the wall and may well be put-ons from last year's > correspondents. Such are to be taken as exercises for the reader. > > These items are taken from: > History of Programming Languages > Old Farmer's (1984) Almanac > The 1984 Great computer calendar > The History of Music to the Death of Schubert > My own misc. store of useful or useless facts > > Additions and corrections were sent last year by: > decvax!seismo!rochester!ritcv!ccieng5!ccieng6!wla > decvax!sii!mem > ittvax!bunker!dick > ittvax!decvax!bellcore!yquem!psl > ittvax!decvax!harpo!eagle!mhuxl!ihnp4!ihuxw!pector > seismo!rochester!rocksvax!sunybcs!colonel > > (and others whose identifications I lost (Sorry!)) > > Please send corrections, additions, etc to: > > -- Dick Wexelblat (...decvax!ittvax!wxlvax!rlw) gcal-4.1/data/dates/lives10000664000000000000000000007211612353520610012320 00000000000000# CalenTool V2.2 - nflag=1 range=1,2 - DO NOT REMOVE THIS LINE # $Header: /home/cna/billr/src/xcalentool/dates/RCS/lives1,v 1.1 1991/03/07 16:18:52 billr Exp billr $ # (Jan-Feb) # Famous people's births, deaths and marriages file for calentool # extracted from ProLine's today file and Today in History provided # by Robert Heckendorn at Hewlett-Packard in Fort Collins, Colorado. # converted to calentool format by lwv27%cas.BITNET@CUNYVM.CUNY.Edu. # # There may be duplicates where I don't have a definitive correct # date. billr@saab.cna.tek.com # ** 01 01 99 99 00 Hank Williams, country singer, dies (1953) ** 01 01 99 99 00 J. Edgar Hoover, first director of the FBI, is born (1895) ** 01 01 99 99 00 J.D. Salinger is born (1919) ** 01 01 99 99 00 Lorenzo de Medici, Florentine ruler was born (1449) ** 01 02 99 99 00 Robert Marshall, for whom the Bob Marshall Wilderness in Alaska was named, is born (1901) ** 01 03 99 99 00 Father Damien, helped the lepers in Hawaii. (1840) ** 01 03 99 99 00 J.R.R. Tolkien, the REAL Lord of the Rings. (1892) ** 01 03 99 99 00 Mel Gibson, actor and hunk, is born (1951) ** 01 04 99 99 00 Charles Stratton (alias General Tom Thumb, famous short person) (1838) ** 01 04 99 99 00 Dyan Cannon, the actress, is born in Tacoma, Washington (1937) ** 01 04 99 99 00 Elizabeth Ann Seton, the first American born Catholic saint, dies in Emmitsburg, Maryland (1921) ** 01 04 99 99 00 Louis Braille, blind educator, inventor of Braille alphabet, is born in Coupvray, France (1809) ** 01 04 99 99 00 T. S. (Thomas Stearns) Eliot, the poet dies at 76 (1965) ** 01 04 99 99 00 Tiny Tim, the dwarf made famous by P. T. Barnum, is born (1838) ** 01 05 99 99 00 Calvin Coolidge dies (1933) ** 01 05 99 99 00 Grace Kelly announces engagement to Prince Ranier (1956) ** 01 05 99 99 00 King Camp Gillette, inventor of the safety razor (1855) ** 01 05 99 99 00 Stephen Decatur, early American Naval hero (1779) ** 01 05 99 99 00 Zebulon Pike, the explorer, is born (1779) ** 01 06 99 99 00 Carl Sandburg, poet and biographer, is born in Illinois (1878) ** 01 06 99 99 00 Charles Sumner, leading Reconstruction Senator (1811) ** 01 06 99 99 00 Danny Thomas, actor and comedian, is born (1914) ** 01 06 99 99 00 Earl Scruggs, bluegrass musical performer, is born (1924) ** 01 06 99 99 00 George Washington and Martha Custis were married (1759) ** 01 06 99 99 00 Jedediah Strong Smith, American fur trader and explorer, is born (1799) ** 01 06 99 99 00 John DeLorean, automaker and entrepreneur, is born (1925) ** 01 06 99 99 00 Khalil Gibran, metaphysical author, is born in Lebanon (1883) ** 01 06 99 99 00 King Henry VIII marries his fourth wife, Anne of Cleves. The marriage will last about six months. (1540) ** 01 06 99 99 00 Loretta Young, actress, is born (1913) ** 01 06 99 99 00 Samuel Rayburn, Speaker of the House (1940 - 1957) (1882) ** 01 06 99 99 00 Sherlock Holmes is born (1854) ** 01 06 99 99 00 Syd Barrett, born Roger Keith Barrett (Cambridge, 1946) ** 01 06 99 99 00 Theodore Roosevelt died at his home in Oyster Bay, NY (1919) ** 01 06 99 99 00 Tradition says that Joan of Arc was born on this day (1412) ** 01 07 99 99 00 Emperor Hirohito of Japan dies of cancer. He is succeeded by his son Akihito, a fish biologist. (1989) ** 01 07 99 99 00 George Burns and Gracie Allen marry (1926) ** 01 07 99 99 00 Millard Fillmore, 13th President (1850-1853) (1800) ** 01 08 99 99 00 Chou En-lai, Chinese premier, dies (1976) ** 01 08 99 99 00 David Bowie born David Robert Jones (London, 1947) ** 01 08 99 99 00 Elvis Presley, early rock performer and truck driver, is born (1935) ** 01 08 99 99 00 Frank Nelson Doubleday, publisher & founder of Doubleday & Co. (1862) ** 01 08 99 99 00 Lord Baden-Powell, philanthopist and founder of the Boy Scouts, dies (1941) ** 01 08 99 99 00 Nicholas Biddle, made 2nd Bank of US 1st effective central bank. (1786) ** 01 08 99 99 00 Sir Frank Dyson, proved Einstein right about light bent by gravity (1868) ** 01 08 99 99 00 Tod Brannan (1946) ** 01 08 99 99 00 the passing of Norton I, Emperor of the US, Protector of Mexico (1880) ** 01 09 99 99 00 Astronomer Caroline Herschel, publisher of "Herschel's Catalog of Stars" and sister of William, dies at 97 (1848) ** 01 09 99 99 00 Bob Denver, actor played Gilligan on "Gilligan's Island", is born (1935) ** 01 09 99 99 00 Chic Young, creator of the "Blondie" comic strip. (1901) ** 01 09 99 99 00 Gypsy Rose Lee, entertainer and author, is born (1914) ** 01 09 99 99 00 James Patrick Page (Led Zeppelin) born (Middlesex, England, 1945) ** 01 09 99 99 00 Joan Baez, folk singer, is born on Staten Island, New York (1941) ** 01 09 99 99 00 Joseph B. Strauss, civil engineer & builder of Golden Gate Bridge. (1870) ** 01 09 99 99 00 Karel Capek, Czech author and originator of the term robot, is born (1890) ** 01 09 99 99 00 Richard M. Nixon, 37th President (1968-1974) (1913) ** 01 09 99 99 00 Simone de Beauvoir, feminist, born (1908) ** 01 10 99 99 00 Blues guitarist Howlin' Wolf dies (Chicago, 1976) ** 01 10 99 99 00 Buffalo Bill Cody dies in Denver, Colorado (1917) ** 01 10 99 99 00 Coco Chanel, the fashion designer, dies (1971) ** 01 10 99 99 00 Dashiell Hammett, the author, dies (1961) ** 01 10 99 99 00 Ethan Allen, Revolutionary War fighter (lead the Green Mtn Boys) (1738) ** 01 10 99 99 00 Frederick Gardner Cottrell, invented the elecrostatic precipitator, used for polution control and air ionizers. (1877) ** 01 10 99 99 00 Jim Croce born (Phildelphia, 1943) ** 01 10 99 99 00 Pat Benatar born (Long Island, 1952) ** 01 10 99 99 00 Ray Bolger, the Scarecrow from the Wizard of Oz, is born (1904) ** 01 10 99 99 00 Rod Stewart born (Glasgow, Scotland, 1945) ** 01 11 99 99 00 Aldo Leopold, ecological writer, is born (1897) ** 01 11 99 99 00 Ezra Cornell, founded Western Union Telegraph & Cornell University. (1807) ** 01 11 99 99 00 Feodor Mikhailovich Dostoyevsky, Russian author, is born (1821) ** 01 11 99 99 00 Francis Scott Key, the author of "Star Spangled Banner", dies (1843) ** 01 11 99 99 00 Thomas Hardy, the English author, dies (1928) ** 01 12 99 99 00 "Long" John Baldry born (London, 1941) ** 01 12 99 99 00 Agatha Christie, mystery writer, dies (1976) ** 01 12 99 99 00 Herman Goering, Nazi field marshal, is born (1893) ** 01 12 99 99 00 Isaac Pitman, the inventor of shorthand, dies (1897) ** 01 12 99 99 00 Jack London, author and adventurer, born (1876) ** 01 12 99 99 00 John Hancock (1737) ** 01 12 99 99 00 John Winthrop, 1st governor of the Massachusetts Bay Colony. (1588) ** 01 12 99 99 00 Tex Ritter, western folk singer, is born (1907) ** 01 13 99 99 00 Horatio Alger, Jr. (1832) ** 01 13 99 99 00 James Joyce dies (1941) ** 01 14 99 99 00 Benedict Arnold, fink (1741) ** 01 14 99 99 00 Charles Lutwidge Dodgson, aka Lewis Carroll, dies (1898) ** 01 14 99 99 00 Donna Reed, actress, dies of cancer (1986) ** 01 14 99 99 00 Edmond Halley dies (1742) ** 01 14 99 99 00 Hal Roach, early film director and producer. (1892) ** 01 14 99 99 00 Humphrey Bogart dies (1957) ** 01 14 99 99 00 Ray Kroc, founder of the McDonald's empire, dies (1984) ** 01 15 99 99 00 Charo, entertainer, is born (1951) ** 01 15 99 99 00 Edward Teller, fathered the H-bomb. (1908) ** 01 15 99 99 00 Fanny Farmer, cook and writer, dies (1915) ** 01 15 99 99 00 Martin Luther King, Jr., dreamer (1929) ** 01 15 99 99 00 Ray Bolger, the Scarecrow in the Wizard of Oz, dies (1987) ** 01 16 99 99 00 Carole Lombard, actress, her mother and about 20 others are killed in a plane crash near Las Vegas, during a tour to promote War Bonds (1942) ** 01 16 99 99 00 Edmund Spenser, the poet, dies (1599) ** 01 16 99 99 00 Ernie Kovacs, comedian, dies in automobile crash (1962) ** 01 16 99 99 00 Ethel Merman, actress and singer, is born (1908) ** 01 16 99 99 00 Robert Service, Canadian author, is born (1874) ** 01 17 99 99 00 Al Capone, mobster, is born (1899) ** 01 17 99 99 00 Anton Chekhov, the writer, is born (1860) ** 01 17 99 99 00 Charles Brockden Brown, father of the American novel. (1771) ** 01 17 99 99 00 Juliette Low, founder of the Girl Scouts, dies (1927) ** 01 17 99 99 00 Mack Sennett, created Keystone Kops (1880) ** 01 17 99 99 00 Muhammed Ali, who floats like a butterfly, stings like a bee. (1942) ** 01 18 99 99 00 A. A. Milne, author of "Winnie the Pooh", is born (1882) ** 01 18 99 99 00 Cary Grant, actor, is born (1904) ** 01 18 99 99 00 Daniel Webster, early American orator and politician. (1782) ** 01 18 99 99 00 Henry Morgan, the pirate, captured Panama on behalf of England and was knighted regardless of his ruthless techniques (1671) ** 01 18 99 99 00 Joseph Farwell Glidden, invented 1st commercially useable barbed wire (1813) ** 01 18 99 99 00 Oliver Hardy, of the comedy team Laurel and Hardy. (1892) ** 01 18 99 99 00 Peter Roget, of Thesaurus fame, invented Slide Rule, pocket chessboard (1779) ** 01 18 99 99 00 Rudyard Kipling, author, dies (1936) ** 01 18 99 99 00 Sir Thomas Octave Sopwith, aviator, airplane builder, Sopwith Pup, Sopwith Camel, Hurricane, and the Harrier VTOL, born (1888) ** 01 18 99 99 00 Thomas A. Watson, needed by Bell. (1854) ** 01 19 99 99 00 Dolly Parton, buxom singer, composer, is born in Sevierville, Tenn. (1946) ** 01 19 99 99 00 James Watt, inventor of the practical steam engine, is born (1736) ** 01 19 99 99 00 Paul Cezanne, the artist, was born (1839) ** 01 19 99 99 00 Phil Everly (of the Everly Brothers) is born (1939) ** 01 20 99 99 00 Andre-Marie Ampere, French physicist and mathematician, is born in Lyon (1775) ** 01 20 99 99 00 Barbara Stanwyck, actress, dies (1990) ** 01 20 99 99 00 DeForest Kelley, Dr. McCoy in Star Trek, is born in Atlanta, Georgia (1920) ** 01 20 99 99 00 Dmitri Mendeleyev, chemist, formulated the periodic table of the elements, dies in St. Petersburg, Russia (1907) ** 01 20 99 99 00 Edwin "Buzz" Aldrin, American astronaut, is born in New Jersey (1930) ** 01 20 99 99 00 Federico Fellini, film director, is born in Italy (1920) ** 01 20 99 99 00 George Burns (Nathan Birnbaum), comedian, born in New York, NY (1896) ** 01 20 99 99 00 John Ruskin, philosopher, dies (1900) ** 01 20 99 99 00 Johnny Weismuller, Tarzan, actor and swimmer, dies at 79 in Acapulco (1984) ** 01 21 99 99 00 Benny Hill, comedian, is born (1925) ** 01 21 99 99 00 Cecil B. De Mille, film producer, dies (1959) ** 01 21 99 99 00 Eric Arthur Blair (a.k.a. George Orwell) dies in London (1950) ** 01 21 99 99 00 Horace Wells, dentist, pioneer in use of medical anethesia. (1815) ** 01 21 99 99 00 John C Fremont, mapmaker & explorer of Western US (1813) ** 01 21 99 99 00 John Fitch, had a working steamboat years before Fulton. (1743) ** 01 21 99 99 00 Joseph Scaliger, the chronologist and inventor of the Julian date, dies (1609) ** 01 21 99 99 00 Louis XVI is beheaded by the guillotine of the French revolution (1793) ** 01 21 99 99 00 Telly Savalas, actor, is born (1924) ** 01 21 99 99 00 Vladimir Lenin, the revolutionary, dies of a stroke (1924) ** 01 21 99 99 00 Wolfman Jack, radio personality, is born (1949) ** 01 22 99 99 00 Lord Byron, poet, lover, revolutionary, is born (1788) ** 01 22 99 99 00 Molly Pitcher, distinguished herself in the battle of Monmouth during the Revolutionary War, dies (1832) ** 01 22 99 99 00 Queen Victoria, long time queen of England, dies at her winter home on the Isle of Wight (1901) ** 01 22 99 99 00 Sam Cooke born (Chicago, 1935) ** 01 23 99 99 00 Ernie Kovacs, American comedian, is born (1919) ** 01 23 99 99 00 Ernst Abbe, formulated diffraction theory, is born (1840) ** 01 23 99 99 00 John Hancock, first signer of the Declaration of Independence and first governor of Massachusetts, is born (1737) ** 01 23 99 99 00 Joseph Hewes, American revolutionary leader, born (1730) ** 01 23 99 99 00 Salvador Dali, Spanish surrealist painter and founder of the movement, dies (1989) ** 01 23 99 99 00 Samuel Barber, the American composer, dies (1981) ** 01 23 99 99 00 Wolfgang A. Mozart, musical prodigy (1756) ** 01 24 99 99 00 Edith Wharton, American author, is born (1862) ** 01 24 99 99 00 Ernst Heinrich Heinkel, built 1st rocket-powered aircraft. (1888) ** 01 24 99 99 00 John Belushi born (Chicago, 1949) ** 01 24 99 99 00 Lord Randolph Churchill, English statesman, dies (1895) ** 01 24 99 99 00 Ted Bundy, confessed serial murderer of over 21 (possibly as many as 100) women during a period of 15 years, is executed (1989) ** 01 25 99 99 00 Ava Gardner, actress, dies (1990) ** 01 25 99 99 00 J. L. Lagrange born (1736) ** 01 25 99 99 00 Nellie Bly (Elizabeth Cochran Seaman), American journalist, went around the world in 72 days (1890) ** 01 25 99 99 00 Robert Burns, poet, born (1759) ** 01 25 99 99 00 Somerset Maugham, poet (1874) ** 01 25 99 99 00 Virginia Woolf, novelist and critic, born (1882) ** 01 25 99 99 00 W. Somerset Maugham, author, born (1874) ** 01 26 99 99 00 Angela Davis, is born (1944) ** 01 26 99 99 00 Douglas MacArthur, he did return (1880) ** 01 26 99 99 00 Jules Feiffer, satiric cartoonist, is born (1929) ** 01 26 99 99 00 Paul Newman, actor, is born in Cleveland, Ohio (1925) ** 01 27 99 99 00 Bobby "Blue" Bland (Robert Calvin Bland) born (TN, 1930) ** 01 27 99 99 00 Charles Lutwidge Dodgson (you know him as Lewis Carroll) (1832) ** 01 27 99 99 00 Charles Lutwidge Dodgson, aka Lewis Carroll, writer and mathematician, is born in Cheshire (1832) ** 01 27 99 99 00 Dmitri Mendeleyev, chemist, formulated the periodic table of elements, is born in Tobolsk, Russia (1834) ** 01 27 99 99 00 Giuseppe Verdi, composer of "La Traviata and Rigoletto", dies in Milan (1901) ** 01 27 99 99 00 John James Audubon, naturalist and painter, dies (1851) ** 01 27 99 99 00 Samuel Gompers, 1st president of the American Federation of Labor (1850) ** 01 27 99 99 00 Sir Thomas Octave Sopwith, aviator, airplane builder, Sopwith Pup , Sopwith Camel, Hurricane, and the Harrier VTOL, dies (1988) ** 01 27 99 99 00 Wolfgang Amadeus Mozart born (Salzburg, 1756) ** 01 28 99 99 00 Colette (Sidonie Gabrielle Claudine), French novelist, is born (1873) ** 01 28 99 99 00 Johannes Hevelius dies (1687) ** 01 28 99 99 00 Seth Thomas, American clock maker, dies (1859) ** 01 28 99 99 00 William Seward Burroughs, invented recording adding machine. (1855) ** 01 29 99 99 00 Allen B DuMont, perfected 1st commercially practical cathode ray tube (1901) ** 01 29 99 99 00 Anton Chekhov, writer (The Cherry Orchard) (1860) ** 01 29 99 99 00 Claude William Dukenfield (better known as W.C. Fields) (1880) ** 01 29 99 99 00 John Davison Rockefeller, industrialist and philanthropist, is born (1838) ** 01 29 99 99 00 Lawrence Hargrave, invented the box kite (1850) ** 01 29 99 99 00 Thomas Paine, American author and Revolutionary leader, is born (1737) ** 01 29 99 99 00 Tom Selleck who plays Magnum PI was born in Detroit (1945) ** 01 29 99 99 00 W.C. Fields, American entertainer, is born (1880) ** 01 29 99 99 00 William McKinley, 25th President (1897-1901) (1843) ** 01 30 99 99 00 Carol Channing, actress, born (1923) ** 01 30 99 99 00 Chief Osceola, Seminole leader, dies in prison. (1835) ** 01 30 99 99 00 Franklin D. Roosevelt, 32nd President (1933-1945) (Hyde Park, NY 1882) ** 01 30 99 99 00 Lightnin' Hopkins, most-recorded blues artist, dies (1982) ** 01 30 99 99 00 Mohandas Gandhi assassinated by Hindu fanatic (New Delhi, 1948) ** 01 30 99 99 00 Vanessa Redgrave, actress and activist, is born (1937) ** 01 31 99 99 00 Anna Pavlova, the Russian ballerina, is born (1885) ** 01 31 99 99 00 Eddie Slovik is executed (1945) ** 01 31 99 99 00 Franz Schubert, composer, born in Vienna (1797) ** 01 31 99 99 00 Irving Langmuir invented the tungsten filament lamp (1881) ** 01 31 99 99 00 Jackie Robinson, 1st black major league baseball player (1919) ** 01 31 99 99 00 James G. Blaine, the 'Plumed Knight'. (1830) ** 01 31 99 99 00 James Watt, highly criticized Secretary of Interior and professional tool of big industry, is born (1938) ** 01 31 99 99 00 Tallulah Bankhead, actress, is born in Huntsville, Alabama (1903) ** 01 31 99 99 00 Zane Gray, American West novelist (1872) ** 02 01 99 99 00 Clark Gable, the actor, is born (1901) ** 02 01 99 99 00 Don Everly, of the Everly Brothers, is born (1937) ** 02 01 99 99 00 John Ford, the film maker, is born (1895) ** 02 01 99 99 00 Sidney Joseph Perelman, American author, is born (1904) ** 02 02 99 99 00 Buddy Holly, the singer, dies (1959) ** 02 02 99 99 00 Fred Flintstone's birthday ** 02 02 99 99 00 Graham Nash born (Lancashire, England, 1942) ** 02 02 99 99 00 James Joyce, novelist, is born in Dublin (1882) ** 02 02 99 99 00 Nell Gwynn, actress and mistress of King Charles II, is born (1650) ** 02 02 99 99 00 Talleyrand, French statesman & diplomat. (1754) ** 02 03 99 99 00 Buddy Holly, Richie Valens and the Big Bopper die in plane crash (1959) ** 02 03 99 99 00 Elizabeth Blackwell, 1st woman to get MD from a US Medical school. (1821) ** 02 03 99 99 00 Gertrude Stein, poet, novelist, is born (1874) ** 02 03 99 99 00 Horace Greeley, journalist, born in Amherst New Hampshire (1811) ** 02 03 99 99 00 Jakob Ludwig Felix Mendelssohn-Bartholdy (Felix Mendelssohn), the composer, is born in Hamburg (1809) ** 02 04 99 99 00 Charles Lindbergh, aviator, is born in Detroit (1902) ** 02 04 99 99 00 Clyde Tombaugh born (1906) ** 02 04 99 99 00 Francois Rabelais, French author and humanist, is born (1494) ** 02 04 99 99 00 Liberace (Wladzio Valentino), pianist and entertainer, dies of AIDS related disease (1987) ** 02 04 99 99 00 William Dudley ("Big Bill") Haywood, American labor leader who founded I.W.W., is born (1869) ** 02 05 99 99 00 Alex Harvey (SAHB) born (Glasgow, Scotland, 1935) ** 02 05 99 99 00 Andre-Gustave Citroen, French automaker (1878) ** 02 05 99 99 00 John Boyd Dunlop, developed the pneumatic rubber tire. (1840) ** 02 05 99 99 00 Sir Robert Peel, Prime Minister, founder of London Police force, is born (1788) ** 02 05 99 99 00 William Seward Burroughs, inventor of the adding machine, is born (1914) ** 02 06 99 99 00 Aaron Burr (1756) ** 02 06 99 99 00 Barbara Tuchman, historian and author "A Distant Mirror", dies (1989) ** 02 06 99 99 00 Bob Marley, reggae singer, is born (1945) ** 02 06 99 99 00 George Herman Ruth ('Babe Ruth'), baseball legend, (1885) ** 02 06 99 99 00 King George VI of UK dies; his daughter becomes Elizabeth II (1952) ** 02 06 99 99 00 Patrick Macnee, actor, is born (1922) ** 02 06 99 99 00 Ronald Reagan, 40th President (1981-1988) (1911) ** 02 06 99 99 00 Tom Brokaw, television newsman, is born (1940) ** 02 07 99 99 00 Charles Dickens, author, "David Copperfield", is born (1812) ** 02 07 99 99 00 Eubie Blake, composer (1883) ** 02 07 99 99 00 Frederick Douglas, 1st black to hold high rank in US government (1817) ** 02 07 99 99 00 John Deere, pioneer manufacturer of agricultural implements. (1804) ** 02 07 99 99 00 Laura Ingalls Wilder, author of "Little House on the Prairie" series, is born (1867) ** 02 07 99 99 00 Philippe Buache, geographer, devised contour lines for maps (1700) ** 02 07 99 99 00 Sinclair Lewis, novelist, author of "Babbitt", is born (1885) ** 02 07 99 99 00 Sir Thomas More, humanist, philosopher, statesman, is born in London (1478) ** 02 08 99 99 00 Chester F. Carlson, invented xerography (xeroxing) (1906) ** 02 08 99 99 00 Friedleib F. Runge, father of paper chromatography (1795) ** 02 08 99 99 00 Jack Lemmon, actor, (1925) ** 02 08 99 99 00 James Dean, American actor, is born (1931) ** 02 08 99 99 00 Jules Verne, author, born (Nantes, France, 1828) ** 02 08 99 99 00 Lana Turner the actress is born (1920) ** 02 08 99 99 00 Mary Queen of Scots is beheaded (1587) ** 02 08 99 99 00 The Viceroy of India is murdered (1872) ** 02 08 99 99 00 William Tecumseh Sherman, Civil War general. (1820) ** 02 09 99 99 00 Agnes Sorel, mistress of Charles VII of France, dies (1450) ** 02 09 99 99 00 Carole King, American singer, is born (Brooklyn, 1941) ** 02 09 99 99 00 Ernest Tubb, American country music star, is born (1914) ** 02 09 99 99 00 George Hartmann born, designed astrolabes, timepieces, etc. (1489) ** 02 09 99 99 00 Gypsy Rose Lee, stripper and author, was born naked (1914) ** 02 09 99 99 00 Lord Darnley, consort of Mary, Queen of Scots, is murdered (1567) ** 02 09 99 99 00 William Henry Harrison, 9th President (March 4-April 4, 1841) (1773) ** 02 10 99 99 00 Bertolt Brecht, German poet and playwright, is born (1898) ** 02 10 99 99 00 Boris Pasternak, author of "Dr. Zhivago", is born (1890) ** 02 10 99 99 00 Charles Lamb, English critic and essayist, born (1775) ** 02 10 99 99 00 Leontyne Price, opera singer, is born (1927) ** 02 10 99 99 00 Queen Victoria marries Prince Albert (Francis-Albert-Augustus-Charles-Emmanuel, Duke of Saxe, Prince of Saxe-Colburg and Gotha) (1840) ** 02 10 99 99 00 Robert Wagner, actor, is born (1930) ** 02 10 99 99 00 Roberta Flack, singer, is born (1940) ** 02 10 99 99 00 Tom Thumb and Mercy Lavinia Warren, famous midget couple, wed (1863) ** 02 10 99 99 00 William Allen White born (1868) ** 02 11 99 99 00 Rene Descartes the French philosopher dies (1650) ** 02 11 99 99 00 Thomas Edison, the inventor and holder of over 1000 patents, is born (1847) ** 02 11 99 99 00 William Henry Fox Talbot, photographic pioneer, is born (1489) ** 02 12 99 99 00 Abraham Lincoln, 16th President (1861-1865) (1809) ** 02 12 99 99 00 Catherine Howard the fifth wife of Henry VIII is beheaded (1542) ** 02 12 99 99 00 Charles Darwin born in Shrewsbury, England (1809) ** 02 12 99 99 00 General of the Army Omar Bradley, 'The GI General' (1893) ** 02 12 99 99 00 Lady Jane Grey was Queen of England for nine days. She and her husband were executed on this day. (1554) ** 02 13 99 99 00 Bess Truman, married to President Harry Truman (1885) ** 02 13 99 99 00 David Dudley Field, lawyer whose advocacy of law codification (1805)had international effects. ** 02 13 99 99 00 Randolph Churchill, English politician and father of Winston Churchill, was born (1849) ** 02 13 99 99 00 Richard Wagner, composer, dies (1883) ** 02 14 99 99 00 Benny Kubelski, aka Jack Benny. Oh, Rochester (1894) ** 02 14 99 99 00 Florence Henderson, actress and singer, is born (1934) ** 02 14 99 99 00 Gregory Hines, actor and dancer, is born (1946) ** 02 14 99 99 00 Hugh Downs, TV personality, is born (1921) ** 02 14 99 99 00 St. Valentine beheaded (278) ** 02 14 99 99 00 Thomas Malthus, English economist, is born. (1766) ** 02 15 99 99 00 Galileo Galilei born (Pisa, Italy, 1564) ** 02 15 99 99 00 Henry Engelhard Steinway, piano maker (1797) ** 02 15 99 99 00 John Augustus Sutter (1803) ** 02 15 99 99 00 Richard Feynman, winner of Nobel prize in physics, educator, philosopher, bongo player, dies (1988) ** 02 15 99 99 00 Susan B. Anthony, American women's suffrage advocate, born (1820) ** 02 16 99 99 00 Giordano Bruno burned at stake (1600) ** 02 16 99 99 00 Henry Walter Bates, naturalist and explorer of South America, is born (1892) ** 02 16 99 99 00 John Schlesinger, movie director, is born (1926) ** 02 16 99 99 00 LeVar Burton, actor, Lt. LeForge on "Star Trek, the Next Generation", is born (1957) ** 02 16 99 99 00 Pierre Bouguer, founder of photometry, is born (1698) ** 02 16 99 99 00 Robert Flaherty, father of the documentary film. (1884) ** 02 17 99 99 00 "Red" Barber, pioneering sportscaster born (1908) ** 02 17 99 99 00 A. Montgomery Ward, found mail-order a nice business. (1844) ** 02 17 99 99 00 Frederick Eugene Ives, inventor, pioneer of halftone photoengraving process and color photography, is born (1856) ** 02 17 99 99 00 Hal Holbrook, actor, is born (1925) ** 02 17 99 99 00 Jazz great Thelonius Monk dies (Englewood, NJ, 1982) ** 02 17 99 99 00 Jean Baptiste Poquelin Moliere, playwright, author, actor, died on stage while playing the part of a sick man in his "Le Malade Imaginaire" (1673) ** 02 17 99 99 00 Marion Anderson, American contralto, is born (1902) ** 02 17 99 99 00 Thomas J. Watson, Sr. born (1874), founder of IBM ** 02 18 99 99 00 Andre Breton, French author and critic, is born (1896) ** 02 18 99 99 00 Count Alessandro Giuseppe Antonio Anastasio Volta, invented the electric battery, (1745) ** 02 18 99 99 00 Cybill Shepherd, actress, is born (1950) ** 02 18 99 99 00 Ernst Mach, philosopher and optics pioneer, is born (1838) ** 02 18 99 99 00 Helen Gurley Brown, Cosmo editor, is born (1922) ** 02 18 99 99 00 Jack Palance, actor, is born (1919) ** 02 18 99 99 00 John Travolta, actor and dancer, is born (1954) ** 02 18 99 99 00 Louis Comfort Tiffany, glassmaker (1848) ** 02 18 99 99 00 Martin Luther, leader of the Protestant Reformation in Germany, dies (1546) ** 02 18 99 99 00 Matt Dillon, actor, is born (1964) ** 02 18 99 99 00 Michelangelo Buonarroti, sculptor, architect and painter, born in Caprese, Italy (1564) ** 02 18 99 99 00 Molly Ringwald, actress, is born (1968) ** 02 18 99 99 00 Queen Mary (Bloody Mary) is born (1516) ** 02 18 99 99 00 Vanna White, game show hostess, is born (1957) ** 02 18 99 99 00 Wallace Stegner, ecological author, is born (1909) ** 02 18 99 99 00 Yoko Ono, John Lennon's wife, is born (Tokyo, 1933) ** 02 19 99 99 00 Ernst Mach, physicist, philosopher, dies (1916) ** 02 19 99 99 00 HRH Prince Andrew, second son of Elizabeth II is born (1960) ** 02 19 99 99 00 Karen Silkwood, plutonium plant worker, is born (1946) ** 02 19 99 99 00 Nicolas Copernicus born (Thorn, Poland, 1473) ** 02 19 99 99 00 Nicolaus Copernicus (1473) ** 02 19 99 99 00 William "Smokey" Robinson born (Detroit, 1940) ** 02 20 99 99 00 Ansel Adams, photographer, was born (1902) ** 02 20 99 99 00 Buffy Sainte-Marie, singer, songwriter, is born (1941) ** 02 20 99 99 00 Gloria Vanderbilt, fashion designer, is born (1924) ** 02 20 99 99 00 J. Geils (J. Geils Band) born (1946) ** 02 20 99 99 00 Ludwig Boltzmann, atomic physics pioneer, is born (1838) ** 02 20 99 99 00 Robert Altman, movie director, is born (1925) ** 02 20 99 99 00 Sandy Duncan, actress, is born (1946) ** 02 20 99 99 00 Sidney Poitier, actor, is born (1924) ** 02 20 99 99 00 Voltaire, the French philosopher is born (1694) ** 02 21 99 99 00 Alexis De Rochon, developed spyglass, born (1838) ** 02 21 99 99 00 Anais Nin, French-born American author and diarist, is born (1903) ** 02 21 99 99 00 George Ellery Hale dies (1938) ** 02 21 99 99 00 Malcolm X shot to death as he was about to speak to a rally of followers in Harlem (1965) ** 02 21 99 99 00 W.H. Auden, English-born American author, is born (1907) ** 02 22 99 99 00 Andy Warhol, creator of the Pop art movement, dies (1987) ** 02 22 99 99 00 David Susskind, talk show producer and host, dies (1987) ** 02 22 99 99 00 Edna St. Vincent Millay, the American poet, is born in Rockland Maine (1892) ** 02 22 99 99 00 Edward Gorey, slightly morbid cartoonist, is born (1925) ** 02 22 99 99 00 Frederic Chopin, the Polish composer, is born near Warsaw (1810) ** 02 22 99 99 00 George Washington, Father figure for US, President (1789-1796) (1732) ** 02 22 99 99 00 Johann Nikolaus Forkel, musicologist & 1st biographer of Bach (1749) ** 02 22 99 99 00 John Jacob Astor, the millionaire, dies (1890) ** 02 22 99 99 00 Luis Bunuel, film director, born in Spain (1900) ** 02 22 99 99 00 Pierre Jules Cesar Janssen, who found hydrogen in the sun, is born (1838) ** 02 22 99 99 00 Russell Porter dies (1949) ** 02 23 99 99 00 George Frederick Handel, German born English composer, is born (1685) ** 02 23 99 99 00 Johnny Winter born (Leland, MS, 1944) ** 02 23 99 99 00 Samuel Pepys, English author and diarist, is born (1633) ** 02 23 99 99 00 W. E. B. DuBois, the Black educator, is born (1868) ** 02 24 99 99 00 Admiral Chester Nimitz, in charge of Pacific Fleet in WWII. (1885) ** 02 24 99 99 00 Bluebeard executed for burning ten of his wives (1822) ** 02 24 99 99 00 Charles Le Brun, painter, is born in Paris (1619) ** 02 24 99 99 00 Henery Cavendish, physicist, dies (1810) ** 02 24 99 99 00 Steven Jobs, Apple co-founder. (1955) ** 02 24 99 99 00 Thomas Bowdler, censor and prude, dies (1825) ** 02 24 99 99 00 Winslow Homer, artist, is born in Boston (1836) ** 02 25 99 99 00 August Renoir, the French impressionist painter, is born (1841) ** 02 25 99 99 00 Enrico Caruso, singer (1873) ** 02 25 99 99 00 George Harrison of the Beatles is born in Liverpool, England (1943) ** 02 25 99 99 00 John Foster Dulles, Secretary of State for President Eisenhower (1888) ** 02 25 99 99 00 Zeppo Marx, actor, is born (1901) ** 02 26 99 99 00 Buffalo Bill Cody, frontiersman and impresario, is born (1846) ** 02 26 99 99 00 Dominique Francois Jean Arago born, first observer of "Poisson's spot". cf. June 21 (1786) ** 02 26 99 99 00 Herbert Henry Dow, pioneer in US chemical industry (1866) ** 02 26 99 99 00 John Harvey Kellogg, physician, inspired the flaked cereal industry. (1852) ** 02 26 99 99 00 Victor Hugo, French author, is born. (1802) ** 02 26 99 99 00 William "Buffalo Bill" Cody. (1846) ** 02 27 99 99 00 Elizabeth Taylor, the actress, is born (1929) ** 02 27 99 99 00 Henry Wadsworth Longfellow, the Poet, is born in Portland, Maine (1807) ** 02 27 99 99 00 Ivan Pavlov, the physiologist and psychologist, dies in Leningrad (1936) ** 02 27 99 99 00 John Steinbeck, the author, is born. (1902) ** 02 27 99 99 00 Lawrence Durrell, English author, is born (1912) ** 02 27 99 99 00 Ralph Nader, ex-Corvair fan (1934) ** 02 28 99 99 00 Bernadette Peters, actress, is born (1948) ** 02 28 99 99 00 Linus Pauling, Nobel prize winning chemist, is born (1901) ** 02 28 99 99 00 Michel de Montaigne, French essayist, is born (1533) ** 02 28 99 99 00 Swedish Prime Minister Olaf Palme, 59 was shot to death while walking from a movie theater in central Stockholm (1986) ** 02 29 99 99 00 Herman Hollerith, invented 1st electric tabulating machine. (1860) ** 02 29 99 99 00 Jimmy Dorsey, musician, born (1904) gcal-4.1/data/dates/music0000664000000000000000000002041712244130561012233 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: /home/cna/billr/src/xcalentool/dates/RCS/music,v 1.2 1991/03/07 16:21:19 billr Exp billr $ # Dates for events in the traditional and popular music world # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and RPC Rodgers, UCSF, Nov. 1988 # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # ** 01 17 99 99 00 Led Zeppelin's first album released (1969) ** 01 19 99 99 00 Premiere of Verdi's opera Il Trovatore in Rome (1853) ** 01 25 99 99 00 Bob Dylan plays second "Hurricane" benefit (Astrodome, 1978) ** 01 26 99 99 00 The song "We are the World" is recorded as a benefit to starving Africans (1985) ** 01 28 99 99 00 Jimi Hendrix headlines Madison Square Garden (1970) ** 01 29 99 99 00 John Gay's "The Beggar's Opera" is first performed (1728) ** 01 30 99 99 00 1st jazz record in United States is cut. (1917) ** 01 30 99 99 00 The first jazz record was cut by "The Original Dixieland Jazz Band" (1917) ** 01 31 99 99 00 Grateful Dead busted (New Orleans, 1970) ** 02 03 99 99 00 Buddy Holly, Richie Valens, & Big Bopper killed in plane crash ("The Day The Music Died"), outside Mason City, IA (1959) ** 02 05 99 99 00 Glenn Miller records Tuxedo Junction (1940) ** 02 07 99 99 00 Beatles arrive in America for first time (1964) ** 02 07 99 99 00 Steven Stills makes first digitally recorded rock album (1979) ** 02 07 99 99 00 The Beatles first visit the United States (1964) ** 02 09 99 99 00 Beatles appear on the Ed Sullivan show (and American TV) for the first time. (1964) ** 02 12 99 99 00 Beatles play Carnegie Hall (New York City, 1964) ** 02 19 99 99 00 Paul McCartney's "Give Ireland Back to the Irish" banned in Britain (1972) ** 02 20 99 99 00 Yes sells out Madison Square Garden without advertising (1974) ** 02 25 99 99 00 Vladimir Horowitz, pianist, first performs at Carnegie Hall (1953) ** 03 03 99 99 00 Buffalo Springfield formed (Los Angeles, 1966) ** 03 04 99 99 00 Antonio Vivaldi, late Baroque violin virtuoso and composer. (1678) ** 03 07 99 99 00 Last Gilbert and Sullivan opera produced (1896) ** 03 12 99 99 00 Randy Stonehill's birthday ** 03 13 99 99 00 Allman Brothers record live album (Fillmore East, 1971) ** 03 21 99 99 00 The Beatles first appeared at the Cavern Club (1961) ** 03 22 99 99 00 Ten Years After plays their last concert (1974) ** 03 26 99 99 00 Emerson, Lake, & Palmer record "Pictures at an Exhibition" live (1971) ** 03 27 99 99 00 David Mullen's birthday ** 03 29 99 99 00 Dr. Hook gets group picture on cover of "Rolling Stone" (1973) ** 03 29 99 99 00 Phil Keaggy's birthday ** 04 10 99 99 00 Paul McCartney announces departure from Beatles (1970) ** 04 13 99 99 00 The twenty-three year old Van Cliburn of Kilgore, Texas wins the Tchaikovsky competition (1958) ** 04 18 99 99 00 Gene Autry records "Back in the Saddle Again" (1936) ** 04 18 99 99 00 Yes breaks up after 13 years (1981) ** 04 19 99 99 00 The musical "Carousel" opens (1945) ** 04 20 99 99 00 Vladimir Horowitz performs in Moscow for the first time since leaving 60 years earlier (1986) ** 04 29 99 99 00 "Hair" premiers on Broadway (1968) ** 05 07 99 99 00 Beethoven's Ninth Symphony presented for first time. (1824) ** 05 12 99 99 00 Pink Floyd performs first quadrophonic concert (1977) ** 05 20 99 99 00 The Jimi Hendrix Experience signed by Reprise Records (1967) ** 05 31 99 99 00 The Who perform loudest concert ever--76,000 watts (1976) ** 06 01 99 99 00 Beatles release "Sgt. Pepper" (1967) ** 06 01 99 99 00 The Beatles release their album "Sargent Pepper's Lonely Hearts Club Band" (1967) ** 06 06 99 99 00 "Rock Around The Clock" makes Billboard's ** 06 07 99 99 00 Blind Faith debuts in concert (London's Hyde Park, 1969) ** 06 10 99 99 00 Denver police tear gas Jethro Tull & 2000 fans (Red Rocks, 1971) ** 06 11 99 99 00 Jelly Roll Morton records "Kansas City Stomp" (1928) ** 06 16 99 99 00 Monterey Pop festival opens (1967) ** 06 20 99 99 00 The Tallehatchie Bridge, mentioned in the song "Ode to Billy Joe", is torn down (1972) ** 06 21 99 99 00 Columbia Records announces first mass production of LPs (1948) ** 07 02 99 99 00 Felix Pappalardi & Leslie West form Mountain (1969) ** 07 06 99 99 00 Jefferson Airplane formed (San Francisco, 1965) ** 07 12 99 99 00 Chicago DJ Steve Dahl holds "Disco Demolition" (Kamisky Park, 1979) ** 07 17 99 99 00 "Yellow Submarine" premieres (London Pavilion, 1968) ** 07 25 99 99 00 Bob Dylan goes electric (Newport Folk Festival, 1965) ** 07 25 99 99 00 Crosby, Stills, Nash & Young debut (Fillmore East, 1969) ** 07 28 99 99 00 Watkins Glen "Summer Jam" opens (1973) ** 08 01 99 99 00 Concert for Bangla Desh (Madison Square Garden, 1971) ** 08 04 99 99 00 John Lennon states "the Beatles are more popular than Jesus" (1966) ** 08 13 99 99 00 Rock group Jefferson Airplane is formed (1965) ** 08 15 99 99 00 Beatles play Shea Stadium (New York City, 1965) ** 08 15 99 99 00 Woodstock, 3 day rock concert, begins. 400,000 people show up! (1969) ** 08 17 99 99 00 The Woodstock Music and Art Fair concluded near Bethel, N.Y. (1969) ** 08 26 99 99 00 Jimi Hendrix gives last performance (Isle of Wight, 1970) ** 08 26 99 99 00 Jimi Hendrix's Electric Ladyland Studios opens (New York City, 1970) ** 08 29 99 99 00 The Beatles gave their last public concert at Candlestick Park. (1966) ** 09 09 99 99 00 Ludwig van Beethoven's last public performance. (1825) ** 09 19 99 99 00 Simon & Garfunkel reunite (Central Park, New York City, 1981) ** 09 19 99 99 00 The song "Dixie" is first sung by its composer, a blackfaced minstrel singer, Daniel Decatur Emmett (1859) ** 09 23 99 99 00 "Paul is dead" rumors sweep country (1969) ** 09 26 99 99 00 John Philip Sousa gives his first public concert, playing for the first time "The Liberty Bell March" (1892) ** 10 07 99 99 00 Marian Anderson became the first black singer hired by the Metropolitan Opera Company of New York (1954) ** 10 12 99 99 00 The Jimi Hendrix Experience formed (London, 1966) ** 10 19 99 99 00 Wagner's opera 'Tannhauser' is performed for first time. (1845) ** 10 22 99 99 00 The original Metropolitan Opera House in New York held its grand opening (1883) ** 10 25 99 99 00 Rolling Stones appear on Ed Sullivan Show (1964) ** 10 27 99 99 00 Opera star Beverly Sills gave her last performance. (1980) ** 10 28 99 99 00 Peter Ilich Tchaikovsky debuts his 6th Symphony, the "Pathetique" in St. Petersburg (1893) ** 11 02 99 99 00 Jimi Hendrix's "Electric Ladyland" enters U.S. charts at ** 11 09 99 99 00 First issue of "Rolling Stone" published (1967) ** 11 15 99 99 00 Al Jolson puts on blackface for the first time (1909) ** 11 16 99 99 00 Bill Ham first demonstrates psychedelic "Light Show" (1965) ** 11 21 99 99 00 Jack Benny (Violin) & Richard Nixon (Piano) play their famed duet. (1959) ** 11 23 99 99 00 Enrico Caruso made his American debut in New York appearing in Rigoletto (1903) ** 11 25 99 99 00 "The Last Waltz" concert played by The Band at Winterland (1976) ** 11 25 99 99 00 Johann Strauss, Jr., writes "On the Beautiful Blue Danube" (1867) ** 11 26 99 99 00 Cream performs their farewell concert at Royal Albert Hall (1968) ** 11 27 99 99 00 Premier of the Ravel's "Concerto for the Left Hand" (1931) ** 12 03 99 99 00 Montreux Casino burns down during Frank Zappa concert (1971) ** 12 06 99 99 00 Rolling Stones play Altamont Speedway (near San Francisco, 1969) ** 12 09 99 99 00 The Who's "Tommy" premieres (London, 1973) ** 12 13 99 99 00 George Gershwin's composition "An American in Paris" makes its debut in Carnegie hall (1928) ** 12 16 99 99 00 Don McLean's "American Pie" released (1971) ** 12 23 99 99 00 First Gilbert & Sullivan collaboration, Thespis (1871) ** 12 24 99 99 00 Luisa Tetrazzini sings to 250,000 people at Lotta's Fountain. (1910) ** 12 25 99 99 00 John Philip Sousa composes "Stars and Stripes Forever" (1896) ** 12 25 99 99 00 The Christmas Carol "Silent Night" was song for the first time at the Church of St. Nikolaus in Oberndorff, Austria (1818) ** 12 27 99 99 00 "Sweet Adaline", a barbershop quartet favorite, is 1st sung. (1903) ** 12 31 99 99 00 Jimi Hendrix introduces Band of Gypsies at Fillmore East (1969) gcal-4.1/data/dates/usa_holiday0000664000000000000000000000143412244130561013412 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: usa_holiday,v 2.3 91/03/07 16:21:36 billr Exp $ # Special days file for calentool (rel 2.1); modified from network posting by # RPC Rodgers, UCSF, Nov. 1988 # US holidays fixed by exact date or as nth mday of month # (This is a subset of the most common nationally observed dates) # ** 01 01 99 99 00 New Year's Day ** 01 Mo 99 99 00 [3] Martin Luther King Jr. Day ** 02 Mo 99 99 00 [3] Presidents Day ** 05 Su 99 99 00 [2] Mother's Day ** 05 Mo 99 99 00 [L] Memorial Day ** 06 Su 99 99 00 [3] Father's Day ** 07 04 99 99 00 Independence Day ** 09 Mo 99 99 00 [1] Labor Day ** 10 Mo 99 99 00 [2] Columbus Day observed ** 11 11 99 99 00 Veterans' Day ** 11 Th 99 99 00 [4] Thanksgiving Day ** 12 25 99 99 00 Christmas Day gcal-4.1/data/dates/movies0000664000000000000000000001267112353520607012425 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: movies,v 1.2 91/03/07 16:21:17 billr Exp $ # Special dates in the history of movies. # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # ** 01 16 99 99 00 The musical "Hello Dolly" starring Carol Channing, opened on Broadway (1964) ** 01 17 99 99 00 E. C. Segar's Popeye first appears in Thimble Theatre (1929) ** 01 20 99 99 00 The first "talkie" movie that was filmed outdoors (90% outdoors) was released by Fox. The name was "In Old Arizona". (1929) ** 01 29 99 99 00 The movie Dr. Strangelove is released (1964) ** 02 14 99 99 00 The movie "Tarzan of the Apes" was first released (1918) ** 02 15 99 99 00 The first Dracula movie is released (1931) ** 02 18 99 99 00 The movie "Bwana Devil" introduces the 3-D movie fad of the 50's by opening in New York (1953) ** 03 02 99 99 00 Bugs Bunny and Elmer Fudd first meet in "Elmer's Candid Camera" (1940) ** 03 02 99 99 00 The movie King Kong premiers at New York City's Radio Music Hall and the RKO Roxy (1933) ** 03 13 99 99 00 Dr. Lee de Forest demonstrates a sound motion picture system in New York (1923) ** 03 16 99 99 00 principal photography complete on "The Wizard of Oz" (1939) ** 04 02 99 99 00 first movie house opened in Los Angeles. Called "The Electric Theater". (1902) ** 04 06 99 99 00 first animated cartoon is copyrighted. (1906) ** 04 10 99 99 00 House of Wax, first 3-D movie, released in New York. (1953) ** 04 17 99 99 00 Daffy Duck debuts in the Looney Tune "Porky's Duck Hunt" (1937) ** 04 20 99 99 00 Shirley Temple's debut movie "Stand up and Cheer", was previewed in New York (1934) ** 04 26 99 99 00 1st motion pictures shown in Hawaii. (1906) ** 04 26 99 99 00 Godzilla makes his American debut (1956) ** 05 15 99 99 00 Mickey Mouse first appears in "Plane Crazy", the 1st MM cartoon (1928) ** 05 16 99 99 00 1st Oscars announced (best film was 'Wings'). (1929) ** 05 25 99 99 00 "Return of the Jedi" (Star Wars 3) is released. (1983) ** 05 25 99 99 00 "Star Wars" is released. (1978) ** 06 12 99 99 00 The first documentary film, "Nanook of the North", is first shown (1932) ** 06 12 99 99 00 the movie Cleopatra, with Liz Taylor and Richard Burton, premieres. It is 4h 3m long! (1963) ** 06 15 99 99 00 1st attempt at motion pictures (using 12 cameras, each taking one picture (done to see if all 4 of a horse's hooves leave the groundduring a gallop. Leland Stanford bet they didn't. He lost) (1878) ** 06 16 99 99 00 "The Blues Brothers" premieres (Chicago, 1980) ** 07 01 99 99 00 Porky Pig premieres in the Merrie Melodie "I Haven't Got a Hat" (1935) ** 07 04 99 99 00 Prof. Harold Hill, The Music Man, arrives in River City, Iowa (1912) ** 07 06 99 99 00 Premiere of first talking motion picture (New York City, 1928) ** 07 17 99 99 00 "Yellow Submarine" premieres (London Pavilion, 1968) ** 07 29 99 99 00 Mickey Mouse appears in "Steamboat Willie", the 3rd MM cartoon actually shown before the 2nd cartoon (1928) ** 07 30 99 99 00 George Eastman gives first demonstration of color movies (1928) ** 08 03 99 99 00 The first Batman movie, "Batman: The Movie", is released (1966) ** 08 07 99 99 00 Mickey Mouse appears in "Gallopin' Gaucho", the 2nd MM cartoon (1928) ** 08 15 99 99 00 The MGM musical movie, "The Wizard of Oz" debuts at Grauman's Chinese Theater (1939) ** 08 24 99 99 00 "Alice's Restaurant" premieres (New York City, Los Angeles, 1969) ** 09 08 99 99 00 Howard The Duck is blasted into a universe he never made (according to the Lucas movie) ** 09 20 99 99 00 Roxy Theater opens (Hollywood, 1973) ** 09 23 99 99 00 1st Mack Sennett "Keystone Comedy" movie is released. (1912) ** 09 23 99 99 00 The flower Audrey II is first placed on display by Seymour in Muschnik's Flower Shop (from the film, "Little Shop of Horrors") ** 10 06 99 99 00 "The Jazz Singer", 1st movie with a sound track, premieres. (1927) ** 10 06 99 99 00 Thomas Edison shows his first motion picture. (1889) ** 10 13 99 99 00 opening in New York of the play "Who's Afraid of Virginia Woolf?" (1962) ** 10 17 99 99 00 "Hair" opens at New York City's Public Theater (1967) ** 10 17 99 99 00 The movie "Mr. Smith Goes to Washington" debuts in Washington D.C. (1939) ** 10 28 99 99 00 Marty goes back in time in the Movie "Back to the Future" (1985) ** 11 01 99 99 00 Shakespeare's comedy "The Tempest" was first presented at Whitehall Palace in London (1611) ** 11 01 99 99 00 Shakespeare's tragedy "Othello" was first presented at Whitehall Palace in London (1604) ** 11 06 99 99 00 The day when professor Emmet L Brown strikes his head and he suddenly understands how to do time travel. Marty arrives back in time. All from the movie "Back to the Future" (1955) ** 11 13 99 99 00 The Sheik, starring Rudolph Valentino, was released. (1921) ** 11 15 99 99 00 Ethel Barrymore first says the line that will become her trademark "That's all there is; there isn't any more." (1904) ** 11 16 99 99 00 "The Sound of Music" opens (1959) ** 11 22 99 99 00 The Humphrey Bogart movie, "Casablanca", premiers (1942) ** 11 22 99 99 00 The musical "Man of la Mancha" opens (1965) ** 12 21 99 99 00 1st feature-length cartoon with color and sound premieres: "Snow White and the Seven Dwarfs" (1937) gcal-4.1/data/dates/lives20000664000000000000000000007553412244130561012331 00000000000000# CalenTool V2.2 - nflag=1 range=3,4 - DO NOT REMOVE THIS LINE # $Header: lives2,v 1.1 91/03/07 16:18:54 billr Exp $ # (Mar-Apr) # Famous people's births, deaths and marriages file for calentool # extracted from ProLine's today file and Today in History provided # by Robert Heckendorn at Hewlett-Packard in Fort Collins, Colorado. # converted to calentool format by lwv27%cas.BITNET@CUNYVM.CUNY.Edu. # # There may be duplicates where I don't have a definitive correct # date. billr@saab.cna.tek.com # ** 03 01 99 99 00 Augustus Saint-Gaudens, US sculptor, designed 1907 $20 gold piece. (1848) ** 03 01 99 99 00 David Niven, the actor, born (1910) ** 03 01 99 99 00 Edwin H. Land, inventor, his 500 patents was exceeded only by Edison, dies (1991) ** 03 01 99 99 00 Frederic Chopin (1810) ** 03 01 99 99 00 Jim Morrison busted for obscenity (Miami, 1969) ** 03 01 99 99 00 Ron Howard, actor and director, is born in Duncan, Oklahoma (1954) ** 03 02 99 99 00 Blues guitarist Rory Gallagher born (Ballyshannon, Ireland, 1949) ** 03 02 99 99 00 D. H. Lawrence, author, died (1930) ** 03 02 99 99 00 Karen Carpenter, the drummer and singer of "The Carpenters", is born in New Haven, Conn. (1950) ** 03 02 99 99 00 Neil Erbe (1944) ** 03 02 99 99 00 Theodor Seuss Geisel, also known as the writer and illustrator of children's books, Dr. Seuss, is born (1904) ** 03 03 99 99 00 Arthur Murray, dance instructor, dies (1991) ** 03 03 99 99 00 Danny Kaye, actor and comedian, dies (1987) ** 03 03 99 99 00 David Atchison, president pro tempore of the senate, is president for one day since Taylor won't take office on a Sunday (1849) ** 03 03 99 99 00 Jean Harlow, "the blonde bombshell," American actress, is born (1911) ** 03 04 99 99 00 Antonio Vivaldi, late Baroque violin virtuoso and composer born in Venice, Italy. (1678) ** 03 04 99 99 00 Casimir Pulaski, Polish nobleman who served in the American Revolution, is born (1747) ** 03 04 99 99 00 Prince Henry the Navigator, sponsored Portuguese voyages of discovery (1394) ** 03 05 99 99 00 Antoine de la Mothe Cadillac, soldier, founder of Detroit and governor of Louisiana, is born in France (1658) ** 03 05 99 99 00 Berick Traven Torsvan, American author, is born (1890) ** 03 05 99 99 00 Gerardus Mercator born (1512) ** 03 05 99 99 00 James Merritt Ives, lithographer (of Currier & Ives fame) (1824) ** 03 05 99 99 00 John Belushi, actor, dies (Los Angeles, 1982) ** 03 05 99 99 00 Joseph Stalin, the dictator, dies in Moscow (1953) ** 03 05 99 99 00 Rex Harrison, Professor Henry Higgins from "My Fair Lady", was born (1908) ** 03 05 99 99 00 Rosa Luxembourg, "Red Rosa", German socialist leader, is born (1871) ** 03 05 99 99 00 Sergei Prokofiev, the composer, dies in Moscow (1953) ** 03 06 99 99 00 Aaron Burr, dualist (1756) ** 03 06 99 99 00 Aaron Lufkin Dennison, father of American watchmaking. (1812) ** 03 06 99 99 00 Cyrano de Bergerac, dramatist, is born (1619) ** 03 06 99 99 00 David Gilmour born (Cambridge, England, 1944) ** 03 06 99 99 00 Davy Crockett dies in the Alamo (1836) ** 03 06 99 99 00 Elizabeth Barrett Browning, poet, is born (1806) ** 03 06 99 99 00 Hongi Hika, Ngapuhi War Chief of New Zealand, dies (1828) ** 03 06 99 99 00 John Philip Sousa, American composer and band leader, dies (1932) ** 03 06 99 99 00 Josephvon Fraunhaufer born (1787) ** 03 06 99 99 00 Louisa May Alcott, American novelist, dies (1888) ** 03 06 99 99 00 Michelangelo Buonarroti, Italian sculptor, painter, architect and poet, is born (1475) ** 03 06 99 99 00 Nikolai Andreyevich Rimsky-Korsakov, the composer, is born in Russia (1844) ** 03 06 99 99 00 Pearl Buck, American novelist, dies (1973) ** 03 06 99 99 00 Valentina Tereshkova, 1st woman cosmonaut (1937) ** 03 07 99 99 00 Aristotle, philosopher, died (322 BC) ** 03 07 99 99 00 Luther Burbank, plant breeder (1849) ** 03 07 99 99 00 Maurice Ravel, the composer, is born in France (1875) ** 03 07 99 99 00 Sir John Frederick William Herschel, the astronomer and brother of Caroline Herschel, is born (1792) ** 03 08 99 99 00 Alvan Clark, astronomer and lens manufacturer, is born (1804) ** 03 08 99 99 00 Graf (count) Ferdinand von Zeppelin, airship pioneer, dies in Berlin (1917) ** 03 08 99 99 00 Howard Aiken, computer pioneer, born (1900) ** 03 08 99 99 00 John Ericsson, inventor of the screw propeller, dies (1889) ** 03 08 99 99 00 Karl Ferdinand von Grafe, helped create modern plastic surgery (1787) ** 03 08 99 99 00 Kenneth Grahame, author of "Wind in the Willows", is born in Edinburgh (1859) ** 03 08 99 99 00 Ned Gordon, last American pirate, is hanged (1862) ** 03 08 99 99 00 Otto Hahn, co-discoverer of nuclear fission (1879) ** 03 08 99 99 00 Ron "Pigpen" McKernan (Grateful Dead) dies (CA, 1973) ** 03 09 99 99 00 Leland Stanford, Governor, Senator, founded Stanford Univ. (1824) ** 03 09 99 99 00 Mickey Spillane, novelist, is born in Brooklyn (1918) ** 03 09 99 99 00 Napoleon Bonaparte marries Josephine de Beauharnais (1796) ** 03 09 99 99 00 Robin Trower born (London, 1945) ** 03 09 99 99 00 Yuri Gagarin, first man in space, is born (1934) ** 03 10 99 99 00 HRH Prince Edward Anthony Richard Louis, third son of Elizabeth II of England is born (1964) ** 03 10 99 99 00 Heywood Hale Broun, American journalist, is born (1918) ** 03 11 99 99 00 Erle Stanley Gardner, writer and creator of Perry Mason, dies (1970) ** 03 11 99 99 00 John Chapman ("Johnny Appleseed") dies (1845) ** 03 11 99 99 00 Lawrence Welk, bandleader, is born in North Dakota (where else?) (1903) ** 03 11 99 99 00 Robert Treat Paine born (1737) ** 03 11 99 99 00 Sir Alexander Fleming, Scottish bacteriologist, dies (1955) ** 03 11 99 99 00 Vannevar Bush born (1890) ** 03 12 99 99 00 Ann Zwinger, American ecological author, is born (1925) ** 03 12 99 99 00 Charles Boycott, estate manager in Ireland, caused boycotts. (1832) ** 03 12 99 99 00 Clement Studebaker, automobile pioneer. (1831) ** 03 12 99 99 00 Gustav Robert Kirchhoff, the physicist, is born (1824) ** 03 12 99 99 00 Jack (Jean-Louis) Kerouac, Canadian-born American author, is born (1922) ** 03 12 99 99 00 James Taylor, singer songwriter, is born (1948) ** 03 13 99 99 00 Charles, Earl Grey, Whig statesmen and Prime Minister is born (1764) ** 03 13 99 99 00 Clarence Darrow, lawyer, dies (1938) ** 03 13 99 99 00 Czar Alexander II of Russia is assassinated with a bomb (1881) ** 03 13 99 99 00 Stephen Vincent Benet, poet, dies (1943) ** 03 14 99 99 00 Albert Einstein, physicist, born (1879) ** 03 14 99 99 00 Casey Jones, railroad engineer (1864) ** 03 14 99 99 00 Colin Fletcher, "The Man Who Walked Through Time," is born (1922) ** 03 14 99 99 00 Edward Abbey, environmentalist author, author of "The Monkey Wrench Gang", dies in Tucson, AZ (1989) ** 03 14 99 99 00 Georg Philipp Telemann, leading German late baroque composer. (1681) ** 03 14 99 99 00 Giovanni Virginio Schiaparelli, astronomer who named Mars "canals", is born (1835) ** 03 14 99 99 00 Hank Ketcham, cartoonist who penned Dennis the Menace, is born (1920) ** 03 14 99 99 00 Jean Baptiste Joseph Fourier, mathematician and physicist, is born (1768) ** 03 14 99 99 00 John Holmes, porn star, dies (1987) ** 03 14 99 99 00 John Luther "Casey" Jones, railroad engineer, born (1864) ** 03 14 99 99 00 Karl Marx dies (1883) ** 03 14 99 99 00 Les Brown, band leader, is born (1912) ** 03 14 99 99 00 Michael Caine, actor, is born (1933) ** 03 15 99 99 00 Andrew Jackson, 7th President (1828-1836) (1767) ** 03 15 99 99 00 Ides of March; Julius Caesar assassinated by Brutus (44 BC) ** 03 15 99 99 00 Nicolas Louis de Lacaille born (1713) ** 03 15 99 99 00 Phil Lesh born Philip Chapman (Berkeley, 1940) ** 03 15 99 99 00 Sly Stone, of the rock band Sly and the Family Stone, born (1944) ** 03 16 99 99 00 Andrew S. Hallidie, inventor of the Cable Car. (1836) ** 03 16 99 99 00 Caroline Herschel born (1750) ** 03 16 99 99 00 George Clymer, American politician and signer of the Declaration of Independence, is born (1739) ** 03 16 99 99 00 James Madison, 4th President (1809-1817) (1751) ** 03 16 99 99 00 Jerry Jeff Walker, American country singer, is born (1942) ** 03 16 99 99 00 Maksim Gorky, Russian novelist, is born (1868) ** 03 17 99 99 00 Gottlieb Daimler, automobile pioneer (1834) ** 03 17 99 99 00 James Bridger, scout, fur trader, mountain man par excellance. (1804) ** 03 17 99 99 00 Nat King Cole (1919) ** 03 17 99 99 00 Paul Kantner (Jefferson Airplane) born (San Francisco, 1942) ** 03 18 99 99 00 Grover Cleveland, President (1885-1889, 1893-1897) (1837) ** 03 18 99 99 00 Ivan the Terrible, czar of Russia, dies (1584) ** 03 18 99 99 00 John C. Calhoun, statesman (1782) ** 03 18 99 99 00 John Updike, poet and novelist. (1932) ** 03 18 99 99 00 Rudolf Diesel, invented an engine. (1858) ** 03 19 99 99 00 Charles Russell, American Western artist, is born (1864) ** 03 19 99 99 00 Edgar Rice Burroughs, the writer and creator of Tarzan, dies (1950) ** 03 19 99 99 00 Georges de La Tour, French painter, is born (1593) ** 03 19 99 99 00 Glenn Close, actress, is born in Greenwich, Connecticut (1947) ** 03 19 99 99 00 Sir Richard Burton, explorer, writer, discoverer of Lake Tanganyika is born in Devon (1821) ** 03 19 99 99 00 William Jennings Bryan, 'The Great Commoner' (1860) ** 03 20 99 99 00 B. F. Skinner, psychologist, pioneer in Behaviorism. (1904) ** 03 20 99 99 00 Frederick Winslow Taylor, father of scientific management. (1856) ** 03 20 99 99 00 Henrik Ibsen, Norwegian dramatist and poet, is born (1828) ** 03 20 99 99 00 Marshall Ferdinand Foch, French military leader, dies (1929) ** 03 20 99 99 00 Ozzie Nelson, American TV star, is born (1907) ** 03 20 99 99 00 Sir Isaac Newton, mathematician, physicist and astronomer, dies in London (1727) ** 03 20 99 99 00 William Hurt, actor, born (1950) ** 03 21 99 99 00 Benito Juarez, Mexican revolutionary and president, is born (1806) ** 03 21 99 99 00 Florenz Ziegfeld, theatrical producer and impresario, is born in Chicago (1869) ** 03 21 99 99 00 James Usher, Archbishop of Armagh, scholar, dies at Reigate, Surrey (1656) ** 03 21 99 99 00 Jean-Baptiste-Joseph Fourier, mathematician & Egyptologist (1768) ** 03 21 99 99 00 Johann Sebastian Bach, baroque composer, born in Eisenach, Germany (1685) ** 03 21 99 99 00 Robert Preston, actor, known for his role as the Music Man, dies at 68 (1987) ** 03 22 99 99 00 Johann Wolfgang Goethe, poet, novelist, dies (1832) ** 03 22 99 99 00 Leonard Marx, Chico of the Marx Brothers, is born (1891) ** 03 22 99 99 00 Marcel Marceau, mime and actor, born in Strasbourg (1923) ** 03 22 99 99 00 The Great Wallenda (of the Flying Wallendas) dies (1978) ** 03 22 99 99 00 William Shatner, Captain Kirk of Star Trek, is born in Montreal,Quebec (1931) ** 03 23 99 99 00 Elizabeth I of England dies (1603) ** 03 23 99 99 00 Joan Crawford is born (1908) ** 03 23 99 99 00 Werner von Braun, rocketeer (1912) ** 03 24 99 99 00 Clyde Barrow (Bonnie and Clyde) is born (1909) ** 03 24 99 99 00 Harry Houdini, magician and escape artist, is born (1874) ** 03 24 99 99 00 John Wesley Powell, explorer of the Colorado River, is born (1834) ** 03 25 99 99 00 Aretha Franklin born (Detroit, 1943) ** 03 25 99 99 00 Assassination of King Fisal of Saudi Arabia in Riyadh, by his nephew, Prince Museid (1975) ** 03 26 99 99 00 Benjamin Thompson born, Count Rumford; American physicist (1753) ** 03 26 99 99 00 Leonard Nimoy, Mr. Spock from Star Trek, is born in Boston, Mass. (1931) ** 03 26 99 99 00 Pierre Boulez, French composer. (1925) ** 03 26 99 99 00 Robert Frost, American poet, is born (1874) ** 03 26 99 99 00 Tennessee Williams, American playwright, is born (1912) ** 03 26 99 99 00 Walt Whitman, poet, dies (1892) ** 03 27 99 99 00 Nathaniel Currier, lithographer (of Currier & Ives) (1813) ** 03 27 99 99 00 Sarah Vaughn, American singer, is born (1924) ** 03 27 99 99 00 Sir Henry Royce, one of the founders of Rolls-Royce. (1863) ** 03 27 99 99 00 Tony Banks born (England, 1950) ** 03 27 99 99 00 Wilhelm Conrad Roentgen born, discoverer of X-rays (1845) ** 03 27 99 99 00 Yuri Gagarin and Seryogin die in aircraft accident (1968) ** 03 28 99 99 00 Dwight Eisenhower, American statesman and soldier, dies (1969) ** 03 28 99 99 00 Maria Augusta von Trapp, member of the Austrian family portrayed in the film "Sound of Music", dies at 82 (1987) ** 03 28 99 99 00 Pierre Simon de Laplace born, mathematician and astronomer (1749) ** 03 28 99 99 00 Sergei Rachmaninov, composer and pianist, dies in Beverly Hills, California (1943) ** 03 28 99 99 00 Virginia Woolf, novelist and critic, dies; suicide by drowning (1941) ** 03 29 99 99 00 Cy Young, winningest baseball pitcher ever (509 wins, 1890-1911). (1867) ** 03 29 99 99 00 Edwin Drake, drilled 1st productive oil well in US. (1819) ** 03 29 99 99 00 Eugene McCarthy born (1916) ** 03 29 99 99 00 John Tyler, 10th President (1841-1845) (1790) ** 03 29 99 99 00 President Barthelemy Boganda dies (Central African Republic) ** 03 30 99 99 00 Beau Brummel, man of fashion, dies (1840) ** 03 30 99 99 00 Eric Clapton, rock musician, born (Surrey, England, 1945) ** 03 30 99 99 00 Francisco Jose de Goya, painter, born in Spain (1746) ** 03 30 99 99 00 James Cagney, the actor, dies (1986) ** 03 30 99 99 00 Sean O'Casey, Irish playwright, is born (1880) ** 03 30 99 99 00 Sir John Hawkins, wrote 1st history of music in English (1719) ** 03 30 99 99 00 Vincent Van Gogh, painter, born in the Netherlands (1853) ** 03 30 99 99 00 Warren Beatty, actor, is born (1937) ** 03 31 99 99 00 Cesar Chavez, farm labor organizer, is born (1927) ** 03 31 99 99 00 Charlotte Bronte, eldest of the Bronte sisters, author of Jane Eyre, dies (1855) ** 03 31 99 99 00 Edward FitzGerald, writer, "Rubaiyat of Omar Khayyam" (1809) ** 03 31 99 99 00 Franz Joseph Haydn, composer, is born in Austria (1732) ** 03 31 99 99 00 John Constable, English Landscape painter, dies (1837) ** 03 31 99 99 00 John Donne, dean of Saint Paul's, poet and author, dies (1631) ** 03 31 99 99 00 John Pierpont (J. P.) Morgan, American banker and financier, dies (1913) ** 03 31 99 99 00 Rene Descartes, mathematician and philosopher, is born (1596) ** 03 31 99 99 00 Robert Bunsen, chemist and inventor of the Bunsen Burner, is born (1811) ** 03 31 99 99 00 Sir Dugald Clerk, inventor of the 2-stroke motorcycle engine. (1854) ** 04 01 99 99 00 P. D. Q. Bach was born, 12:01 AM (1742) ** 04 01 99 99 00 Eleanor of Aquitaine, Queen of France, dies (1204) ** 04 01 99 99 00 Lon Chaney, actor, is born (1883) ** 04 01 99 99 00 Wallace Beery, film actor, is born (1881) ** 04 01 99 99 00 William Harvey, discoverer of blood circulation, is born (1578) ** 04 02 99 99 00 Buddy Ebsen, dancer and vaudeville actor, is born (1908) ** 04 02 99 99 00 Casanova, lover, is born (1752) ** 04 02 99 99 00 Charlemagne, King of the Franks, is born (742) ** 04 02 99 99 00 Doris Day, girl next door (1924) ** 04 02 99 99 00 Emmy Lou Harris, country music star, is born (1947) ** 04 02 99 99 00 Emperor Charlemagne ( 742) ** 04 02 99 99 00 Hans Christian Andersen, is born in Odense Denmark (1805) ** 04 02 99 99 00 Jack Webb, television producer/actor(1920) ** 04 02 99 99 00 Marvin Gaye born (Washington, DC, 1939) ** 04 02 99 99 00 Samuel F. B. Morse, inventor of morse code, dies (1872) ** 04 02 99 99 00 Sir Alec Guiness, actor, is born (1914) ** 04 02 99 99 00 Walter Chrysler, founded a car company. (1875) ** 04 03 99 99 00 Doris Day, actress, is born (Ohio, 1924) ** 04 03 99 99 00 Jesse James, outlaw, is killed (1862) ** 04 03 99 99 00 Marlon Brando, actor (1924) ** 04 03 99 99 00 Washington Irving born (1783) ** 04 04 99 99 00 Dorothea Dix, social reformer (1802) ** 04 04 99 99 00 John Cameron Swayze, newscaster (1906) ** 04 04 99 99 00 Martin Luther King. Jr. assassinated in Memphis, Tennessee (1968) ** 04 04 99 99 00 Muddy Waters (McKinley Morganfield) born (Rolling Fork, MS, 1915) ** 04 04 99 99 00 President Harrison dies one month after inaugural. (1841) ** 04 04 99 99 00 Thaddeus Stevens (1792) ** 04 05 99 99 00 Bette Davis, the actress, is born (1908) ** 04 05 99 99 00 Booker T. Washington (1856) ** 04 05 99 99 00 Howard Hughes, industrialist, dies (1976) ** 04 05 99 99 00 Michael W. Butler, creator of this TODAY program. (1954) ** 04 05 99 99 00 Pocahontas marries John Smith (1614) ** 04 05 99 99 00 Spencer Tracy, the actor, is born (1900) ** 04 05 99 99 00 Thomas Hobbes, philosopher, is born (1588) ** 04 06 99 99 00 Albrecht Durer, painter and engraver, dies in Nuremberg, Germany (1528) ** 04 06 99 99 00 Anthony Herman Gerard Fokker, pioneer aircraft manufacturer (1890) ** 04 06 99 99 00 Bob Marley born Rhoden Hall (Jamaica, 1945) ** 04 06 99 99 00 Brigham Young marries number 27, his final wife. (1868) ** 04 06 99 99 00 Donald Wills Douglas, founded an aircraft company. (1892) ** 04 06 99 99 00 Harry Houdini, escape artist, magician, exposer of fakes of supernatural phenomena, is born (1874) ** 04 06 99 99 00 Igor Stravinsky, composer of "The Firebird" and "The Rite of Spring", dies in New York City (1971) ** 04 06 99 99 00 James Watson, collaborator in the discovery of the form of DNA, is born in Chicago (1920) ** 04 06 99 99 00 Lincoln Steffens, muckraker. (1866) ** 04 06 99 99 00 Lowell Thomas, journalist (1892) ** 04 06 99 99 00 Maximilien de Robespierre, lawyer and leader in the French Revolution, is born in Arras France (1758) ** 04 06 99 99 00 Neils Abel, Norwegian mathematician, dies (1829) ** 04 06 99 99 00 Philip Henry Gosse, invented the institutional aquarium (1810) ** 04 07 99 99 00 Bill Kreutzmann born (Palo Alto, 1946) ** 04 07 99 99 00 Billie Holiday, blues singer (1915) ** 04 07 99 99 00 Francis Ford Coppola, movie director (1939) ** 04 07 99 99 00 Henry Ford, industrialist and car manufacturer, dies (1947) ** 04 07 99 99 00 James Garner, actor, is born in Norman, Oklahoma (1928) ** 04 07 99 99 00 John Oates, singer (1949) ** 04 07 99 99 00 Mark Russell, satirist (1932) ** 04 07 99 99 00 Phineas T. (P.T.) Barnum, entrepreneur of Barnum and Bailey, dies (1891) ** 04 07 99 99 00 Richard (Dick) Turpin, highwayman, is executed at York (1739) ** 04 07 99 99 00 Richard I Coeur de Lion, King of England, dies (1199) ** 04 07 99 99 00 The Crucifixion of Christ. This seems most likely of many dates proposed. (see "The Calendar" by Philips, Cambridge 1921) (30) ** 04 07 99 99 00 Theda Bara, silent film actress, dies (1955) ** 04 07 99 99 00 W.K. Kellogg, founded the cereal company. (1860) ** 04 07 99 99 00 William Wordsworth, poet, is born (1770) ** 04 08 99 99 00 Betty Ford, former first lady (1918) ** 04 08 99 99 00 David Rittenhouse born, astronomer and mathematician (1732) ** 04 08 99 99 00 El Greco, the Spanish painter, dies (1614) ** 04 08 99 99 00 Frank Woolworth, the US Merchant, dies (1919) ** 04 08 99 99 00 Gen. Omar N. Bradley, America's last five star general, died in New York at age 88 (1981) ** 04 08 99 99 00 Lorenzo de Medici, Florentine ruler, dies (1492) ** 04 08 99 99 00 Mary Pickford is born (1893) ** 04 08 99 99 00 Sir Adrian Boult, conductor (BBC Symphony Orchestra) (1889) ** 04 08 99 99 00 Sonja Henie, the ice skater is born (1913) ** 04 09 99 99 00 Charles Baudelaire, French author, is born (1821) ** 04 09 99 99 00 Charles Proteus Steinmetz (1865) ** 04 09 99 99 00 Dennis Quaid, actor (1954) ** 04 09 99 99 00 Eadweard Muybridge, pioneered study of motion in photography. (1830) ** 04 09 99 99 00 Efram Zimbalist, the violinist, is born (1889) ** 04 09 99 99 00 Frank Lloyd Wright, architect, dies (1959) ** 04 09 99 99 00 Hugh Hefner, founder of Playboy, is born (1926) ** 04 09 99 99 00 John Presper Eckert, co-inventor of 1st electronic computer (ENIAC) (1919) ** 04 09 99 99 00 Paul Robeson, the actor, is born (1898) ** 04 09 99 99 00 Paulina Porizkova, actress-model (1965) ** 04 09 99 99 00 W.C. Fields, actor (1879) ** 04 10 99 99 00 Bunny Wailer born Neville O'Reilly Livingston (Kingston, 1947) ** 04 10 99 99 00 Commodore Matthew Calbraith Perry born (1854) ** 04 10 99 99 00 Emiliano Zapata, Mexican revolutionary, dies (1919) ** 04 10 99 99 00 Harry Morgan, actor (1915) ** 04 10 99 99 00 John Madden, sportscaster (1936) ** 04 10 99 99 00 Joseph Pulitzer, the journalist and philanthropist, is born (1847) ** 04 10 99 99 00 King James V of England is born (1512) ** 04 10 99 99 00 Louis the II of France dies (879) ** 04 10 99 99 00 Omar Sharif is born (1932) ** 04 10 99 99 00 William Booth born, founder of the Salvation Army (1829) ** 04 11 99 99 00 Louise Lasser, actress (1939) ** 04 11 99 99 00 Oleg Cassini, fashion designer (1913) ** 04 11 99 99 00 Pocahontas dies (1617) ** 04 12 99 99 00 David Letterman, talk-show host (1947) ** 04 12 99 99 00 Francis P. Blair, helped found the Republican Party. (1791) ** 04 12 99 99 00 Henry Clay, 'The Great Compromiser' (1777) ** 04 12 99 99 00 Herbie Hancock, musician (1940) ** 04 12 99 99 00 Lily Pons, the opera singer, was born (1904) ** 04 12 99 99 00 Lionel Hampton, orchestra leader & vibraphone improvisor (1913) ** 04 12 99 99 00 President Franklin Roosevelt dies (1945) ** 04 12 99 99 00 Seneca, the Roman Philosopher was killed by order of Nero (65) ** 04 13 99 99 00 Butch Cassidy, American outlaw, is born (1866) ** 04 13 99 99 00 F.W. Woolworth, the "five-and-ten" king. (1852) ** 04 13 99 99 00 George Frederick Handel, the German composer, dies (1759) ** 04 13 99 99 00 John Hanson, 1st US President under the Articles of Confederation (1721) ** 04 13 99 99 00 Ricky Schroder,actor (1970) ** 04 13 99 99 00 Ron Pearlman, actor (1950) ** 04 13 99 99 00 Samuel Beckett born (outside Dublin, 1906) ** 04 13 99 99 00 Thomas Jefferson, 3rd President (1801-1809) (1743) ** 04 14 99 99 00 Abraham Lincoln assasinated in Ford's Theater. (1865) ** 04 14 99 99 00 Anthony Perkins, actor (1932) ** 04 14 99 99 00 Arnold Toynbee, historian (1889) ** 04 14 99 99 00 Christian Huyghens, Dutch physicist and astronomer, discoverer of Saturn's rings, is born (1629) ** 04 14 99 99 00 Frederick March, actor, dies (1975) ** 04 14 99 99 00 Julie Christie, actress, is born in Chukur, India (1942) ** 04 14 99 99 00 Loretta Lynn, country singer, is born (1935) ** 04 14 99 99 00 President Abraham Lincoln was shot and mortally wounded at 11 pm by John Wilkes Booth while attending the comedy "Our American Cousin" at Ford's Theater in Washington. The president died the following morning. (1865) ** 04 14 99 99 00 Rachel Carson, American author of "Silent Spring", dies (1964) ** 04 14 99 99 00 Ritchie Blackmore (Deep Purple, Rainbow) born (1945) ** 04 14 99 99 00 Sir John Gielgud, the British actor, is born (1904) ** 04 15 99 99 00 Charles Darwin, dies (1882) ** 04 15 99 99 00 Elizabeth Montgomery, actress (1933) ** 04 15 99 99 00 John Singer Sargent, portrait painter, dies (1925) ** 04 15 99 99 00 Leonardo da Vinci, Florentine artist, engineer, musician and scientist, is born (Julian Calendar) (1452) ** 04 15 99 99 00 Leonhard Euler, mathematician (1707) ** 04 15 99 99 00 Marquise de Pompadour, mistress of Louis XV of France, dies in Versailles (1764) ** 04 15 99 99 00 President Lincoln dies of gun shot wound at 7:30 this morning (1865) ** 04 15 99 99 00 Roy Clark, country singer (1933) ** 04 16 99 99 00 Anatole France, French author, is born (1844) ** 04 16 99 99 00 Charles (Charlie) Chaplin, actor, born (London, 1889) ** 04 16 99 99 00 Henry Mancini, popular song writer, is born (1924) ** 04 16 99 99 00 Kareem Abdul-Jabbar, basketball great (1947) ** 04 16 99 99 00 Wilbur Wright, inventor of the airplane, is born (1867) ** 04 17 99 99 00 Don Kirshner, Rock promoter (1934) ** 04 17 99 99 00 Harry Reasoner, CBS News correspondent (1923) ** 04 17 99 99 00 J.P. Morgan, financed the US. (1837) ** 04 17 99 99 00 Jan Hammer, Composer-musician (1948) ** 04 17 99 99 00 Jim Eisenreich, Kansas City Royals outfielder (1959) ** 04 17 99 99 00 Lindsay Anderson, movie and theatrical director (1923) ** 04 17 99 99 00 Nikita Khrushchev, Russian political leader, is born (1894) ** 04 17 99 99 00 Olivia Hussey, actress, was born in Buenos Aires, Argentina (1951) ** 04 17 99 99 00 Thornton Wilder, American novelist (1897) ** 04 18 99 99 00 Albert Einstein, physicist and mathematician, dies (1955) ** 04 18 99 99 00 Clarence Darrow, lawyer (1857) ** 04 18 99 99 00 Grace Kelly, actress, marries Prince Rainier of Monaco in a civil service. A church wedding was the next day. (1956) ** 04 18 99 99 00 Hayley Mills, actress (1946) ** 04 18 99 99 00 James Woods, actor (1947) ** 04 19 99 99 00 Actress Grace Kelly marries Prince Rainier III of Monaco in the Cathedral of St. Nicholas in Monte Carlo (1956) ** 04 19 99 99 00 Charles Darwin, biologist and one of the creators of the theory of evolution, dies (1882) ** 04 19 99 99 00 Dudley Moore, actor-comedian (1935) ** 04 19 99 99 00 Elinor Donahue,actress (1937) ** 04 19 99 99 00 Frank Viola, N.Y. Mets pitcher and Longwood resident (1960) ** 04 19 99 99 00 Jayne Mansfield, American actress, born (1932) ** 04 19 99 99 00 Lord Byron, poet, dies in Missolonghi, Greece (1824) ** 04 19 99 99 00 Ole Evinrude, invented the outboard marine engine. (1877) ** 04 19 99 99 00 Pierre Curie, physicist, dies (1906) ** 04 19 99 99 00 Sue Barker, tennis player (1956) ** 04 20 99 99 00 Adolph Hitler, dictator, is born in Braunau, Austria (1889) ** 04 20 99 99 00 Chief Pontiac of the Ottawa tribe is killed (1769) ** 04 20 99 99 00 Comedienne Gilda Radner died at age 42. (1989) ** 04 20 99 99 00 Edouard Manet, the French artist, dies (1883) ** 04 20 99 99 00 George Clintion died - the first vice pres. to die while in office (1812) ** 04 20 99 99 00 Harold Lloyd, comedian, is born (1894) ** 04 20 99 99 00 Jessica Lange, actress, is born (1950) ** 04 20 99 99 00 Joan Miro, artist, is born (1893) ** 04 20 99 99 00 Lionel Hampton, musician, is born (1913) ** 04 20 99 99 00 Nina Foch, actress (1924) ** 04 20 99 99 00 Ryan O'Neal, actor (1941) ** 04 20 99 99 00 Steve Spurrier, University of Florida football coach (1945) ** 04 21 99 99 00 Anthony Quinn, actor (1915) ** 04 21 99 99 00 Charles Grodin, actor (1935) ** 04 21 99 99 00 Jack Kerouac, Canadian-born American author, dies (1969) ** 04 21 99 99 00 John Muir, American naturalist, is born (1838) ** 04 21 99 99 00 Mark Twain, author, dies (1910) ** 04 21 99 99 00 Queen Elizabeth II's real birthday. It is celebrated in June when the weather is more reliable. (1926) ** 04 21 99 99 00 Tony Danza, actor (1951) ** 04 22 99 99 00 Eddie Albert, actor, is born (1908) ** 04 22 99 99 00 Glen Campbell, singer, is born (1938) ** 04 22 99 99 00 Imanual Kant, philosopher, born (1724) ** 04 22 99 99 00 J. Robert Oppenheimer, physicist (1904) ** 04 22 99 99 00 Jack Nicholson, actor, is born (1937) ** 04 22 99 99 00 Kant born (1724) ** 04 22 99 99 00 Peter Frampton, singer (1940) ** 04 22 99 99 00 Sir Yehudi Menuhin, violinist (1916) ** 04 22 99 99 00 Vladimir Ilich Lenin, Russian Revolutionary leader, is born (1870) ** 04 23 99 99 00 James Buchanan, 15th President (1857-1861) (1791) ** 04 23 99 99 00 Lee Majors, actor (1940) ** 04 23 99 99 00 Miguel de Cervantes, author, dies (1616) ** 04 23 99 99 00 Shirley Temple Black, child actress and U.S. ambassador, is born (1928) ** 04 23 99 99 00 Valerie Bertinelli, actress (1960) ** 04 23 99 99 00 Vladimir Nabokov, Russian novelist, is born (1899) ** 04 23 99 99 00 William Shakespeare, playwright, dies (1616) ** 04 23 99 99 00 William Wordswoth, poet, dies near Grasmere, Westmorland (1850) ** 04 24 99 99 00 Andrew Halliday, Cable Car Pioneer, dies (1900) ** 04 24 99 99 00 Barbara Streisand, singer and actress, is born (1942) ** 04 24 99 99 00 Jill Ireland, actress (1936) ** 04 24 99 99 00 John Graunt, statistician, founded the science of demography (1620) ** 04 24 99 99 00 Robert Penn Warren, American Poet Laureate, is born (1905) ** 04 24 99 99 00 Shirley MacLaine, actress (1934) ** 04 24 99 99 00 Stanley Kauffmann, critic (1916) ** 04 24 99 99 00 The Duchess of Windsor dies in Paris at 89 (1986) ** 04 25 99 99 00 Al Pacino, actor (1940) ** 04 25 99 99 00 Alan Baxter, WDIZ-FM morning deejay (1955) ** 04 25 99 99 00 Albert King, blues guitarist, born (1925) ** 04 25 99 99 00 Dave Corzine, Orlando Magic center (1956) ** 04 25 99 99 00 Edward R. Murrow, American broadcast journalist, is born (1908) ** 04 25 99 99 00 Ella Fitzgerald, jazz singer (1918) ** 04 25 99 99 00 Guglielmo Marconi, made radio possible (1874) ** 04 25 99 99 00 Meadowlark Lemon, former Harlem Globetrotter (1932) ** 04 25 99 99 00 Oliver Cromwell, English military, political and religious leader, is born (1599) ** 04 26 99 99 00 Carol Burnett, comedian, born (San Antonio, TX, 1933) ** 04 26 99 99 00 Charles Richter, he tells us how bad the quakes are. (1900) ** 04 26 99 99 00 Duane Eddy, guitarist (1938) ** 04 26 99 99 00 John J. Audubon, American ornithologist and artist, is born in Haiti (1785) ** 04 26 99 99 00 Lucille (Lucy) Ball, actress and comedienne, dies (1989) ** 04 26 99 99 00 Ludwig Wittgenstein, Austrian-born English philosopher, is born (1889) ** 04 26 99 99 00 Srinivasa Ramanujan, one of the most brilliant mathematicians to ever live, dies at 32 of what was probably vitamin deficiency (1920) ** 04 26 99 99 00 William Shakespeare baptized (Stratford-on-Avon, England, 1564) ** 04 27 99 99 00 Coretta Scott King, civil rights activist (1927) ** 04 27 99 99 00 Edward Whymper, artist and mountaineer, first man to climb the Matterhorn, is born (1840) ** 04 27 99 99 00 Gypsy Rose Lee, American entertainer and author, dies (1970) ** 04 27 99 99 00 Jack Klugman, actor (1922) ** 04 27 99 99 00 Jan van Goyen, Dutch landscape painter, dies (1656) ** 04 27 99 99 00 Judith Blegen, opera singer (1941) ** 04 27 99 99 00 Judy Carnes, actress (1939) ** 04 27 99 99 00 Louis Victor de Broglie born, physicist (1774) ** 04 27 99 99 00 Magellan killed (Philippines, 1521) ** 04 27 99 99 00 Ralph Waldo Emerson, the poet, dies in Concord, Massachusetts (1882) ** 04 27 99 99 00 Samuel F. B. Morse (1791) ** 04 27 99 99 00 Ulyssses S. Grant, 18th President (1869-1877) (1822) ** 04 27 99 99 00 Wallace Hume Carothers, invented nylon. (1896) ** 04 28 99 99 00 Ann-Margaret, actress and beauty, is born in Stockholm, Sweden (1941) ** 04 28 99 99 00 James Baker, Secretary of State (1930) ** 04 28 99 99 00 James Monroe, 5th President (1816-1824) (1758) ** 04 28 99 99 00 Marcia Strassman, actress (1948) ** 04 28 99 99 00 Mussolini is executed by firing squad (1945) ** 04 28 99 99 00 Rowland Evans, Syndicated columnist (1921) ** 04 29 99 99 00 Adolph Sutro, SF mayor, built Cliff House, railways, tunnels... (1830) ** 04 29 99 99 00 Alfred Hitchcock, director of mystery films, dies (1980) ** 04 29 99 99 00 Duke Ellington, American jazz musician, is born (1899) ** 04 29 99 99 00 Fred Zinnermann, movie director (1907) ** 04 29 99 99 00 Jules Henri Poincare, founder of topology, is born (1854) ** 04 29 99 99 00 Rod McKuen, poet (1933) ** 04 29 99 99 00 William Randolph Hearst, newspaper publisher (SF Examiner) (San Francisco 1863) ** 04 29 99 99 00 Zubin Mehta, conductor (1936) ** 04 30 99 99 00 Adolph Hitler committed suicide with his wife of one day (1945) ** 04 30 99 99 00 Alice B. Toklas, American author, is born (1877) ** 04 30 99 99 00 Brandy Johnson, Olympic Gymnast from Altamonte Springs, Fl. (1973) ** 04 30 99 99 00 Eve Arden, Our Miss Brooks (1912) ** 04 30 99 99 00 Jill Clayburgh, actress (1944) ** 04 30 99 99 00 Karl Friedrich Gauss, mathematician and astronomer, is born (1777) ** 04 30 99 99 00 Sarah Hale, the author of "Mary Had a Little Lamb", dies (1879) ** 04 30 99 99 00 Willie Nelson, country/western singer, is born (1933) gcal-4.1/data/dates/events20000664000000000000000000006521312244130561012504 00000000000000# CalenTool V2.2 - nflag=1 range=3,4 - DO NOT REMOVE THIS LINE # $Header: events2,v 1.1 91/03/07 16:19:05 billr Exp $ # Notable events in history (Mar-Apr) # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # All dates in this file are New Style unless otherwise noted. # Some duplicates may exist where I haven't been able to verify which # one is correct. # ** 03 01 99 99 00 Bank of Italy becomes a National Bank. (1927) ** 03 01 99 99 00 EPA orders emergency ban on 2,4,5T and Silvex used to kill weeds (1979) ** 03 01 99 99 00 Nebraska becomes the 37th state (1867) ** 03 01 99 99 00 Ohio becomes the 17th state (1803) ** 03 01 99 99 00 Sarah Goode, Sarah Osborne, and Tituba arrested for witchcraft in Salem, Massachusetts (1692) ** 03 01 99 99 00 The world's first national park was established, when Pres. Ulysses S. Grant signed an act of Congress designating more than 2 million acres (800,000 hectares), mostly in Wyoming, as Yellowstone National Park. (1872) ** 03 01 99 99 00 patent issued for taking & projecting motion pictures to Louis Ducos du Hauron (he never did build such a machine, though) (1864) ** 03 01 99 99 00 the 22nd amendment, limiting the number of terms of presidential office is passed (1951) ** 03 01 99 99 00 the Articles of Confederation adopted by Continental Congress. (1781) ** 03 02 99 99 00 Congress creates the Territory of Nevada. (1861) ** 03 02 99 99 00 First Class postage raised to 10 cents from 8 cents. (1974) ** 03 02 99 99 00 Roman Catholic Cardinal Eugino Pacelli becomes Pope Pius XII (1939) ** 03 02 99 99 00 Standard US letter postage goes to $.10 (1974) ** 03 02 99 99 00 Texas declares independence (1836) ** 03 02 99 99 00 U.S. Forest Service founded (1901) ** 03 02 99 99 00 US Court of Customs & Patent Appeals created by US Congress. (1929) ** 03 03 99 99 00 A president's salary was raised from $25000 to $50000 per year (1873) ** 03 03 99 99 00 American Telephone and Telegraph incorporated. (1885) ** 03 03 99 99 00 Congress authorizes smallest US silver coin, the 3-cent piece. (1851) ** 03 03 99 99 00 Congress passed a resolution ordering U.S. Mint be established. (1791) ** 03 03 99 99 00 Congress passes 1st foreign aid bill. (1812) ** 03 03 99 99 00 Florida becomes the 27th state (1845) ** 03 03 99 99 00 Gold Coinage Act passed, allowing gold coins to be minted. (1849) ** 03 03 99 99 00 Morocco gains it's independence. (1956) ** 03 03 99 99 00 The Marines make their first amphibious landing. (1776) ** 03 03 99 99 00 a 20-cent coin was authorized by Congress (It only lasted 3 years). (1875) ** 03 04 99 99 00 1st railroad in US chartered, the Granite Railway in Quincy, Mass (1826) ** 03 04 99 99 00 Congress declares the Constitution to be in effect. (1789) ** 03 04 99 99 00 First meeting of Congress, in N.Y.C. (1789) ** 03 04 99 99 00 Hernando Cortez lands in Mexico (1519) ** 03 04 99 99 00 Roosevelt inaugurated, said "We have nothing to fear but fear itself" (1933) ** 03 04 99 99 00 Vermont becomes the 14th state (1791) ** 03 04 99 99 00 William Penn is given land by King Charles II for a "holy experiment" of a Colony in Pennsylvania (1681) ** 03 05 99 99 00 Boston Massacre (1770) ** 03 05 99 99 00 Congress appropriates $30,000 to ship camels to western US. (1845) ** 03 05 99 99 00 Southern Colorado gets the new area code 719 (1988) ** 03 05 99 99 00 railway between Bombay and Calcutta is completed (1870) ** 03 05 99 99 00 the Nazi party wins nearly half the seats in German elections (1933) ** 03 05 99 99 00 uprising by Irish convicts at Castle Hill, New South Wales, is crushed by government troops (1804) ** 03 06 99 99 00 All US banks closed (1933) ** 03 06 99 99 00 American bombers begin daytime attacks on Berlin (1944) ** 03 06 99 99 00 The Alamo finally falls after 13 days of siege by Santa Anna's troops (1836) ** 03 07 99 99 00 Flare up of racial tension during a civil rights march in Selma, Alabama (1965) ** 03 07 99 99 00 The first successful transatlantic radio telephone call took place between London and New York (1926) ** 03 07 99 99 00 coin vended locker patented (1911) ** 03 07 99 99 00 the game "Monopoly" is invented. (1933) ** 03 08 99 99 00 Accession of Queen Anne of Britain (1702) ** 03 08 99 99 00 First annual International Women's Day (1909) ** 03 08 99 99 00 The beginning of the February Revolution in Russia. (It is February in the Old Style aka the Julian calendar.) (1917) ** 03 09 99 99 00 Japanese defeat the Russians at Mukden (1905) ** 03 09 99 99 00 Pancho Villa invades U.S. (1916) ** 03 09 99 99 00 The Monitor and the Merrimack do battle at Hampton Roads (1862) ** 03 09 99 99 00 The war between Mexico and France ends (1839) ** 03 10 99 99 00 Big earthquake in Long Beach (W.C. Fields was making a movie when it struck & the cameras kept running) (1933) ** 03 10 99 99 00 James Earl Ray pleads guilty to murder of Martin Luther King Jr. (1969) ** 03 10 99 99 00 Japanese soldier found on Lubang Island in the Philippines who believes World War II is still on (1974) ** 03 10 99 99 00 The Vatican declares that conception in vitro is a sin. Childless parents are to look to the example of Jesus on the cross for comfort. (1987) ** 03 10 99 99 00 the 1st telephone call made by Alexander Graham Bell (1876) ** 03 10 99 99 00 the first incendiary raids on Japan (1945) ** 03 11 99 99 00 Bradfield Reservoir in Sheffield bursts and over 250 people drown (1864) ** 03 11 99 99 00 General McClellan is relieved of command (1862) ** 03 11 99 99 00 Great New England blizzard begins (1888) ** 03 11 99 99 00 H-Bomb accidentally dropped on Mars Bluff, South Carolina (but did not explode, since there still *is* a South Carolina) (1958) ** 03 11 99 99 00 The last Heath Hen alive in the world, dies (1932) ** 03 12 99 99 00 1st $20 Gold piece issued. (1850) ** 03 12 99 99 00 FDR conducts his first "Fireside Chat" (1936) ** 03 12 99 99 00 Juliette Low founds an organization called Girl Guides that later became the Girl Scouts (1912) ** 03 12 99 99 00 Mahatma Gandhi begins a campaign of civil disobedience with 200 mile march to protest British tax on salt (1930) ** 03 12 99 99 00 a speed limit of 30mph is introduced in towns and other built up areas in Britain (1935) ** 03 13 99 99 00 "Striptease" introduced, Paris (1894) ** 03 13 99 99 00 Dr. Lee de Forest demonstrates a sound motion picture system in New York (1923) ** 03 13 99 99 00 New York stock market crash (1907) ** 03 13 99 99 00 The Huguenots defeated at Jarnac (1569) ** 03 13 99 99 00 The Lancasters defeat the Yorks at the battle of Stamforn (1470) ** 03 14 99 99 00 Eli Whitney received a patent for his cotton gin (1794) ** 03 14 99 99 00 Great New England blizzard ends (1888) ** 03 14 99 99 00 Teddy Roosevelt excludes Japanese laborers from continental U.S. (1907) ** 03 14 99 99 00 Xerxes army is scared by a solar eclipse (479 BC) ** 03 15 99 99 00 Ides of March; Julius Caesar assassinated by Brutus (44 BC) ** 03 15 99 99 00 Maine becomes the 23rd state (1820) ** 03 15 99 99 00 US Mint stops buying and selling gold. (1968) ** 03 15 99 99 00 Watts, Los Angeles, riots kill two, injure 25 (1966) ** 03 15 99 99 00 Woodrow Wilson holds the 1st Presidential Press Conference. (1913) ** 03 15 99 99 00 riots and the abduction of Czar Nicholas II mark the beginning of the Russian revolution (1917) ** 03 16 99 99 00 Army Corps of Engineers is established (1802) ** 03 16 99 99 00 MyLai Massacre; 300 non-combatant villagers killed by U.S. infantrymen (1968) ** 03 16 99 99 00 Terry Anderson chief Middle East correspondent of the Associated Press is kidnapped in Lebanon (1985) ** 03 17 99 99 00 Bill establishing the White Sands National Monument in New Mexico is approved (1933) ** 03 17 99 99 00 Rubber bands are invented (1845) ** 03 17 99 99 00 The Dalai Lama escapes to India (1959) ** 03 17 99 99 00 The city of Dublin, Ireland founded (988) ** 03 17 99 99 00 Tibetans rise against occupying Chinese. (1959) ** 03 18 99 99 00 American Express founded. (1850) ** 03 18 99 99 00 Barnum & Bailey's Greatest Show on Earth opens in Madison Square Garden in New York City (1881) ** 03 18 99 99 00 End of the OPEC oil embargo (1974) ** 03 18 99 99 00 first use of Paris to London telephone line (1891) ** 03 19 99 99 00 Los Angeles Railway established to provide streetcar service. (1895) ** 03 19 99 99 00 Second Maori War ends in New Zealand (1861) ** 03 19 99 99 00 The Treaty of Versailles is rejected by the US Senate (1920) ** 03 19 99 99 00 US and British oil sources are expropriated by Mexico (1938) ** 03 20 99 99 00 Patty Hearst is convicted of bank robbery (1973) ** 03 20 99 99 00 Radio Caroline, original British pirate radio station, sinks (1980) ** 03 20 99 99 00 The Burlington Arcade in London is opened (1819) ** 03 21 99 99 00 Accession of Henry V of England (1413) ** 03 21 99 99 00 Florenz Ziegfeld, of Follies fame. (1869) ** 03 21 99 99 00 Geronimo is captured (1886) ** 03 21 99 99 00 Martin Luther King marched in Montgomery, Alabama (1965) ** 03 21 99 99 00 The massacre of 69 protesters at Sharpeville by South African police (1961) ** 03 21 99 99 00 The second battle of the Somme begins with a German offensive (1918) ** 03 22 99 99 00 A worker looking for air leaks with a candle causes $150 million fire at the Brown's Ferry reactor in Decatur, Alabama (1975) ** 03 22 99 99 00 Construction begins on Grand Coulee Dam in central Washington state (1941) ** 03 22 99 99 00 Cornstarch is patented (1841) ** 03 22 99 99 00 First Class Postage raised to 18 cents from 15 cents. (1981) ** 03 22 99 99 00 Joseph Priestly (father of soda pop) invents carbonated water. (1733) ** 03 22 99 99 00 There is an attempt to abduct Princess Anne in "The Mall" in London (1973) ** 03 23 99 99 00 1st telephone installed in the White House. (1929) ** 03 23 99 99 00 British scientist Martin Fleischman and University of Utah Chemist Stanley Pons claim they have discovered a way of causing fusion at room temperature (1989) ** 03 23 99 99 00 Los Angeles Railway Co starts using PCC streetcars. (1937) ** 03 23 99 99 00 Patrick Henry asks for Liberty or Death. (1775) ** 03 23 99 99 00 The Pope meets the Archbishop of Canterbury for the first time in 400 years, in the Sistine chapel (1966) ** 03 23 99 99 00 The Stamp Act is passed by parliament taxing the American Colonies (1765) ** 03 24 99 99 00 Construction of New York City subway system begins (1900) ** 03 25 99 99 00 Accession of Robert I of Scotland (1306) ** 03 25 99 99 00 Greece gains it's independence. (1821) ** 03 25 99 99 00 Triangle Shirt Waist Fire (1911) ** 03 25 99 99 00 a summit eruption on Mauna Loa was spotted at 1:25 AM. The Northeast rift zone was fountaining by 4:30 PM. During the next 21 days lava would flow almost to the city of Hilo. (1984) ** 03 26 99 99 00 First driving tests are given in England (1934) ** 03 26 99 99 00 For the first time since the revolution voters in the Soviet Union were given more than one candidate to vote for in a parliamentary election as part of Gorbachev's Democratization Plan (1989) ** 03 26 99 99 00 Hastings College of Law founded. (1878) ** 03 26 99 99 00 Judge Robert Warren is the first judge to issue a prior restraint to prevent the publication of workings of an H bomb in Progressive Magazine (1979) ** 03 26 99 99 00 Popeye statue unveiled, Crystal City TX Spinach Festival (1937) ** 03 26 99 99 00 The Camp David Accords are signed bring peace between Egypt and Israel after a 30 year state of war (1979) ** 03 27 99 99 00 Alaska Good Friday earthquake kills 117 (1964) ** 03 27 99 99 00 First Mormon temple is dedicated, in Kirtland, Ohio (1836) ** 03 27 99 99 00 Khrushchev becomes Premier of Soviet Union (1958) ** 03 28 99 99 00 First electric lights installed in Westminster Palace (1878) ** 03 28 99 99 00 Last German V rocket lands in Britain (1945) ** 03 28 99 99 00 Madrid surrenders to General Franco's rebel forces ending the Spanish civil war (1939) ** 03 28 99 99 00 Nathan Briggs gets patent for the washing machine. (1794) ** 03 28 99 99 00 Three Mile Island has a reactor accident, releases radioactive gas (1979) ** 03 29 99 99 00 Coca-Cola is created (1886) ** 03 29 99 99 00 Ice jam caused Niagara Falls to dry up (1848) ** 03 29 99 99 00 Last US troops leave Vietnam (1973) ** 03 29 99 99 00 Royal Albert Hall in London is opened by Queen Victoria (1871) ** 03 29 99 99 00 Swedish settled Christiana (Wilmington, Delaware) (1638) ** 03 30 99 99 00 15th Amendment passes, guarantees right to vote regardless of race. (1870) ** 03 30 99 99 00 A Sicilian woman of Palermo was sexually assaulted by a French soldier while on her way to evening prayers. The people of Palermo attacked all the French in town not sparing any and took the garrison of 8000 French beginning the successful revolt know as the Sicilian Vespers Revolt. (1282) ** 03 30 99 99 00 A directive from Washington decrees that suits will be made without trouser cuffs, pleats and patch pockets until the end of the war. (1942) ** 03 30 99 99 00 Da Nang falls to the North Vietnamese (1975) ** 03 30 99 99 00 Hinckley shoots President Reagan but only wounds him (1981) ** 03 30 99 99 00 Patent granted to Hyman Lipman for a pencil with an ERASER (1853) ** 03 30 99 99 00 Russia sold Alaska to the U.S. (1867) ** 03 30 99 99 00 The 15th amendment, black suffrage, proclaimed (1870) ** 03 31 99 99 00 Japan invades Mongolia (1936) ** 03 31 99 99 00 Los Angeles ends streetcar service after nearly 90 years. (1963) ** 03 31 99 99 00 Newfoundland becomes a province (1949) ** 03 31 99 99 00 The Eiffel Tower is officially opened in Paris (1889) ** 03 31 99 99 00 The Marshall Aid Act is passed by Congress (1948) ** 03 31 99 99 00 The first U.S. treaty with Japan (1854) ** 03 31 99 99 00 There are violent riots against the new British Poll Tax in London (1990) ** 04 01 99 99 00 Oliver Pollock, a New Orleans Businessman, creates the "$". (1778) ** 04 01 99 99 00 invasion of Okinawa by US forces (1945) ** 04 02 99 99 00 Charles Lindbergh and Dr.John F. Condou turned over $50000 to an unidentified man in a New York City cemetery as Ransom for the Lindbergh baby (1932) ** 04 02 99 99 00 Congress adopts the plan of Hamilton and Jefferson to establish a bimetallic monetary standard for the United States. The bimetallic mint ratio was set at 15:1. (1792) ** 04 02 99 99 00 NACA was renamed National Aeronautics Space Agency (1958) ** 04 02 99 99 00 The Calcutta and Bombay Railroad opened for through traffic (1870) ** 04 02 99 99 00 The Faulken Islands, owned by Britain, are invaded by the Argentinians (1982) ** 04 02 99 99 00 The first meeting of the American Congress (1718) ** 04 02 99 99 00 Watson Watt granted a patent for RADAR. (1935) ** 04 02 99 99 00 Woodrow Wilson calls for a declaration of war on Germany (1917) ** 04 03 99 99 00 Pony Express is initiated (1860) ** 04 03 99 99 00 Standard US letter postage goes to $.25 (1988) ** 04 03 99 99 00 The 23rd amendment is passed allowing people in Washington DC to vote for president (1961) ** 04 04 99 99 00 12 nations including U.S. sign N. Atlantic Treaty. (1949) ** 04 04 99 99 00 130 people died in USAF plane accident in evacuation from Viet Nam. (1975) ** 04 04 99 99 00 Arizona governor Evan Meacham is impeached (1988) ** 04 04 99 99 00 Congress sets the number of stripes for the American flag at 13 and declares that a new star shall be added to the flag for each state that enters the union on the July fourth following the date of entry (1818) ** 04 04 99 99 00 NATO Established (1949) ** 04 04 99 99 00 Tandy Corp. acquires Radio Shack (9 stores) (1963) ** 04 05 99 99 00 Pocahontas marries John Rolfe. (1614) ** 04 06 99 99 00 Battle of Shiloh. (1862) ** 04 06 99 99 00 Commander R. E. Peary arrives at the North Pole (1909) ** 04 06 99 99 00 Earthquake in London badly damages St Paul's and other churches (1580) ** 04 06 99 99 00 Joseph Smith founds The Church of Jesus Christ of Latter-day Saints (the Mormons) (1830) ** 04 06 99 99 00 New York City ends trolley car service. (1957) ** 04 06 99 99 00 US declares war on Germany (1917) ** 04 06 99 99 00 Vancouver, BC is founded by the Canadian Pacific Railway Company (1886) ** 04 07 99 99 00 Albert Hofmann synthesizes LSD (Switzerland, 1943) ** 04 07 99 99 00 General Ulysses S. Grant's Union forces win the battle of Shiloh, Tennessee (1862) ** 04 07 99 99 00 Prohibition ends. (1933) ** 04 07 99 99 00 World Health Organization is established. (1948) ** 04 08 99 99 00 17th Amendment, requiring direct election of senators, ratified (1913) ** 04 08 99 99 00 Ponce de Leon lands at the site of St. Augustine naming the place Florida (1513) ** 04 09 99 99 00 Lee surrenders to Grant at Appomattox Courthouse (1865) ** 04 09 99 99 00 United Nations Charter hearing. (1955) ** 04 10 99 99 00 Gov Morton of Nebraska suggests a holiday for planting trees to be known as Arbor Day (1872) ** 04 10 99 99 00 The American Society for the Prevention of Cruelty to Animals was incorporated (1866) ** 04 10 99 99 00 The luxury Liner RMS Titanic set sail on its ill-fated (1912)maiden voyage. ** 04 11 99 99 00 Anaheim completes it's new electric light system. (1895) ** 04 11 99 99 00 Benevolent and Protective Order of Elks organized. (1876) ** 04 11 99 99 00 British troops land in Norway (1940) ** 04 11 99 99 00 General Douglas MacArthur is fired from his post as five star general (1951) ** 04 11 99 99 00 Gibralter becomes British after the signing of a peace treaty with Spain (1713) ** 04 11 99 99 00 Henry VI of England was deposed for losing the war of the roses (1471) ** 04 11 99 99 00 Lincoln gives his last public speech (1865) ** 04 11 99 99 00 Pres. Reagan returned to the White House, 12 days after being wounded in an assassination attempt (1981) ** 04 11 99 99 00 The trial of Adolph Eichmann begins in Jerusalem (1961) ** 04 11 99 99 00 The trial of Milo for the murder of Claudius begins in Rome (52) ** 04 12 99 99 00 Confederate troops fire first shots of Civil War at Ft Sumter (1861) ** 04 12 99 99 00 Lake Eola Fountain's name changed from Centennial Fountain to Linton Allen Fountain to honor one of the originators of the project (1966) ** 04 12 99 99 00 The Salk vaccine against polio was declared safe and effective. (1955) ** 04 12 99 99 00 The government issues the first patent on an animal, a laboratory mouse that is more sensitive to cancer (1988) ** 04 13 99 99 00 $2 bill re-introduced as United States currency. (1976) ** 04 13 99 99 00 President Franklin D. Roosevelt dedicated the Jefferson Memorial in Washington (1943) ** 04 13 99 99 00 The Metropolitan Museum of Art was founded in New York (1870) ** 04 13 99 99 00 The first elephant arrives in the US. (1796) ** 04 14 99 99 00 American planes firebomb Tokyo (1945) ** 04 14 99 99 00 J.C. Penney opened his first store in Kemmerer, Wyo. (1902) ** 04 14 99 99 00 The RMS Titanic hits iceberg and begins to sink, eventually killing 1503 people of the 2224 aboard (1912) ** 04 14 99 99 00 The first American society for the abolition of slavery was organized by Benjamin Franklin and Benjamin Rush (1775) ** 04 14 99 99 00 Veteran's Hospital at Fort Miley established. (1900) ** 04 15 99 99 00 Actor Clint Eastwood becomes mayor of Carmel, California (1986) ** 04 15 99 99 00 Chiang Kai-Shek forms a government in Hankow (1927) ** 04 15 99 99 00 Ray Kroc starts the McDonald's chain of fast food restaurants. (1955) ** 04 15 99 99 00 Sir James Ross discovers the North magnetic pole (1800) ** 04 15 99 99 00 The first American school for the deaf opened in Hartford, Conn. (1817) ** 04 15 99 99 00 Titanic sinks at 2:20 AM. (1912) ** 04 15 99 99 00 insulin becomes generally available for diabetics. (1923) ** 04 15 99 99 00 the famed Poodle Dog Restaurant closes. (1922) ** 04 15 99 99 00 the first McDonalds opens (1955) ** 04 16 99 99 00 Lenin returns to Russia after ten years of exile (1917) ** 04 16 99 99 00 The Chinese gift to Pres. Nixon of two giant pandas arrives in the U.S. (1972) ** 04 16 99 99 00 U.S. troops entered Nuremberg, Germany during World War II (1945) ** 04 16 99 99 00 the first mass production factory starts up making pistols (1813) ** 04 17 99 99 00 Bay of Pigs invasion, crushed by Castro forces (1961) ** 04 17 99 99 00 Ford Motor Company unveiled the Mustang (1964) ** 04 17 99 99 00 Giovanni da Verrazano discovered New York Harbor (1524) ** 04 17 99 99 00 Office of Price Administration established (handled rationing) (1941) ** 04 17 99 99 00 Sirhan Sirhan was convicted of assassinating Sen Robert Kennedy (1969) ** 04 17 99 99 00 Treaty of Shimonoseki signed, ends 1st Sino-Japanese War (1894-95). (1895) ** 04 17 99 99 00 Yugoslavia surrendered to Germany in World War II (1941) ** 04 17 99 99 00 a contract was signed between Christopher Columbus and Spain to seek a westward ocean passage to Asia (1492) ** 04 18 99 99 00 17 Americans killed at the U.S. Embassy in Beirut, in an explosion set off by a suicide bomber (1983) ** 04 18 99 99 00 Doolittle bombs Tokyo (1942) ** 04 18 99 99 00 First laundromat opens, in Fort Worth, Texas (1934) ** 04 18 99 99 00 Paul Revere began his famous ride from Charleston to Lexington (1775) ** 04 18 99 99 00 San Francisco Earthquake and Fire (1906) ** 04 18 99 99 00 a car bomb demolishes US embassy in Beirut, Lebanon killing more than 60 people (1983) ** 04 19 99 99 00 47 sailors killed when a gun turret exploded on battleship, Iowa (1989) ** 04 19 99 99 00 California Historical Society founded. (1852) ** 04 19 99 99 00 Charles Duryea takes the 1st American-made auto out for a spin. (1892) ** 04 19 99 99 00 Connecticut finally approves the Bill of Rights (only 148 years late) (1939) ** 04 19 99 99 00 General Douglas MacArthur bids farewell to congress saying "Old soldiers never die; they just fade away." (1951) ** 04 19 99 99 00 The US goes off the Gold Standard (1933) ** 04 19 99 99 00 The battles of Lexington and Concord take place starting the Revolutionary war (1775) ** 04 19 99 99 00 Thousands of Jews begin Warsaw Ghetto uprising (1943) ** 04 20 99 99 00 Marie and Pierre Curie isolated the radioactove element radium (1902) ** 04 20 99 99 00 Supreme Court unanimously rules in favor of busing to achieve racial desegregation (1971) ** 04 20 99 99 00 The U.S. 7th army captures the city of Nuremburg in World War II (1945) ** 04 21 99 99 00 Congress establishes US Mint in Denver, Colorado. (1862) ** 04 21 99 99 00 Sam Houston's Texas army defeats the Mexicans at San Jacinto (1836) ** 04 21 99 99 00 The Mona Lisa is stolen from the Louvre in Paris (1911) ** 04 21 99 99 00 The Red Baron, Baron Von Richthofen is shot down (perhaps by ground fire) as he flies low in pursuit of Lt. Wilford May's Sopwith Camel (1918) ** 04 21 99 99 00 legend claims that Rome was founded on this day (753 BC) ** 04 21 99 99 00 the first train crosses the Mississippi river (1856) ** 04 22 99 99 00 Congress authorizes use of the motto "In God We Trust" for US coins (1864) ** 04 22 99 99 00 Henry VIII ascended the throne of England (1509) ** 04 22 99 99 00 Oklahoma opened by land run (1889) ** 04 22 99 99 00 President L.B. Johnson opened the New York World Fair. (1964) ** 04 22 99 99 00 The New York World's Fairs opens (1964) ** 04 22 99 99 00 The countess of Salisbury was dancing with Edward II when one of her garters became dislodged and fell to the floor. He gallantly put it on his own leg and thus began the Order of the Garter (1348) ** 04 22 99 99 00 The first "Earth Day" observed (1970) ** 04 22 99 99 00 poison gas is used by the Germans for the first time in World War I (1915) ** 04 23 99 99 00 Coda-Cola Company announced it was changing its Coke formula only to later reintroduce the original formula as Coke Classic (1985) ** 04 23 99 99 00 Methodist and Evangelical Bretheren merged to become the United Methodist Church (1968) ** 04 23 99 99 00 Stephen Douglas, the "Little Giant", debated Lincoln (1813) ** 04 23 99 99 00 The vitascope system for projecting onto a screen (1896) ** 04 24 99 99 00 8 Americans killed and 5 wounded in ill-fated military attempt to rescue US hostages in Iran (1980) ** 04 24 99 99 00 Congress approved a bill establishing the Library of Congress (1800) ** 04 24 99 99 00 Irish nationalists in Dublin launch the Easter rebellion, which is put down by the British (1916) ** 04 24 99 99 00 President Kennedy issues a statement in which he claims "sole responsibility" for the Bay of Pigs failure (1961) ** 04 24 99 99 00 Spain declares war on the United States (1898) ** 04 24 99 99 00 Winston Churchill is knighted by Queen Elizabeth II (1953) ** 04 25 99 99 00 Ground broken for the Suez Canal (1859) ** 04 25 99 99 00 New York becomes 1st state requiring license plates for cars (1901) ** 04 25 99 99 00 Robert Noyce granted a patent for the integrated circuit. (1961) ** 04 25 99 99 00 US declares war on Spain (1898) ** 04 25 99 99 00 United Nations Conference starts. (1945) ** 04 25 99 99 00 a Convention Parliament meets and votes restoration of Charles II (1660) ** 04 25 99 99 00 workers at nuclear power plant in Tsurga, Japan exposed to radioactive material during repairs (1981) ** 04 26 99 99 00 1st British to establish an American colony land at Cape Henry, Va. (1607) ** 04 26 99 99 00 Worst nuclear power plant disaster in history happens as a reactor in Chernobyl USSR catches fire and melts down releasing radiation into the atmosphere (1986) ** 04 26 99 99 00 nationwide test of the Salk anti-polio begins. (1954) ** 04 27 99 99 00 1st Spanish settlement in Phillipines, Cebu City, founded. (1565) ** 04 27 99 99 00 Germany's liability is declared to be 6.65 billion pounds by the Reparations Commission (1921) ** 04 27 99 99 00 Grant's Tomb (famed of song & legend) is dedicated. (1897) ** 04 27 99 99 00 Quang Tri is cut off from the rest of South Vietnam by North Vietnamese troops (1972) ** 04 27 99 99 00 The Scots are defeated at Dunbar (1296) ** 04 27 99 99 00 The accession of David I of Scotland (1124) ** 04 27 99 99 00 The state of Israel, is recognized by the British government (1950) ** 04 27 99 99 00 US Social Security system makes its first benefit payment. (1937) ** 04 27 99 99 00 founding of the Second Republic, in Austria. (1945) ** 04 28 99 99 00 1st successful parachute jump is made. (1919) ** 04 28 99 99 00 Last Americans evacuated from Saigon. (1974) ** 04 28 99 99 00 Maryland becomes the 7th state (1788) ** 04 28 99 99 00 The crew of the H.M.S Bounty mutiny (1789) ** 04 29 99 99 00 Gideon Sandback receives patent for the zipper (1913) ** 04 30 99 99 00 Department of the Navy established. (1798) ** 04 30 99 99 00 George Washington inaugurated as 1st president of the US (1789) ** 04 30 99 99 00 Louisiana becomes the 18th state (1812) ** 04 30 99 99 00 Saigon, Vietnam, falls to communist forces (1975) ** 04 30 99 99 00 US more than doubles its size thru the Louisiana Purchase. (1803) ** 04 30 99 99 00 for the first time since 1948 a ship with an Israeli flag passes through the Suez Canal (1979) gcal-4.1/data/dates/space0000664000000000000000000011217112353520606012211 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: space,v 2.5 91/05/13 09:36:51 billr Exp $ # Dates related to events in aviation, astronomy and space exploration # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and RPC Rodgers, UCSF, Nov 1988 # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # Some duplicates may exist where I haven't been able to verify which # one is correct. # ** 01 04 99 99 00 Quadrantid meteor shower (look north) ** 01 05 99 99 00 NASA announces development of Space Shuttle (1972) ** 01 05 99 99 00 Salyut 4, crew of 2, launched for 30 day mission (1975) ** 01 09 99 99 00 1st balloon flight in North America. (1793) ** 01 10 99 99 00 First radar contact with Moon (1946) ** 01 10 99 99 00 Venera 6 launched toward Venus (1969) ** 01 10 99 99 00 World airplane altitude record set (4,165 ft) at first international air show in LA (1910) ** 01 11 99 99 00 Amelia Earhart becomes the first woman to solo fly across the Pacific when she flies from Honolulu to Oakland (1935) ** 01 11 99 99 00 Soyuz 27 links up with Soyuz 26 and the orbiting space station Salyut 6 making the first time that three space craft are linked (1978) ** 01 11 99 99 00 Uranian moons Titania and Oberon discovered by William Herschel (1787) ** 01 13 99 99 00 Apollo 14 launched (what was that about rockets can't fly??) (1971) ** 01 14 99 99 00 Soyuz 4 launched (1968) ** 01 15 99 99 00 Soyuz 5 launched (1968) ** 01 17 99 99 00 Hermes rocket launched by ESA (1976) ** 01 17 99 99 00 Soyuz 4 & 5 complete first docking of 2 manned spacecraft (1968) ** 01 18 99 99 00 Eugene B. Ely makes the first landing of an aircraft on a ship when he lands on the deck of the USS Pennsylvania in San Francisco Harbor (1911) ** 01 21 99 99 00 Neptune becomes the outermost planet (Pluto moves closer). (1979) ** 01 22 99 99 00 Apollo 5 launched to Moon, unmanned lunar module tests (1968) ** 01 24 99 99 00 Voyager 2 encounters Uranus. Efforts will be made during the trip to Neptune to improve ground receiver sensitivity enough to allow data rates equal to the Uranus passage (4800 - 21600 bps) (1986) ** 01 24 99 99 00 51-C Discovery launched; first DoD mission (1985) ** 01 25 99 99 00 1st transcontinental commercial jet flight (LA to NY for $301). (1959) ** 01 25 99 99 00 Echo 2, first joint US/USSR satellite (1964) ** 01 27 99 99 00 Grissom, Chaffee & White die in Apollo 1 fire during a simulated launch (1967) ** 01 28 99 99 00 Space Shuttle Challenger Explodes 73s after liftoff (1986) ** 01 29 99 99 00 41- (STS-11) Challenger launched (1984) ** 01 30 99 99 00 US/Canada launch ISIS 1 to study ionosphere (1969) ** 01 31 99 99 00 Apollo 14 launched toward Moon (1971) ** 01 31 99 99 00 First US satellite (Explorer I) launched, Van Allen Belt discovered (1958) ** 01 31 99 99 00 Ham is first primate in space (158 miles) aboard Mercury/Redstone 2 (1961) ** 01 31 99 99 00 James van Allen discovers the Van Allen radiation belt (1958) ** 01 31 99 99 00 Luna 9 launched for Moon (1966) ** 02 02 99 99 00 8 of the 9 planets aligned for the 1st time in 400 years. (1962) ** 02 03 99 99 00 First rocket assisted controlled landing on the moon; by the Soviet Luna IX (1966) ** 02 03 99 99 00 Luna 9 first craft to softland on Moon (1966) ** 02 05 99 99 00 Apollo 14 lands on Moon (1971) ** 02 05 99 99 00 Sun, Moon, Mercury, Venus, Mars, Jupiter and Saturn are in conjunction during this Pacific eclipse (1962) ** 02 06 99 99 00 The Titan intercontinental ballistic missile is successfully test fired for the first time (1959) ** 02 07 99 99 00 Bruce McCandless makes first untethered space walk (1984) ** 02 08 99 99 00 Astronauts return after 85 days in Skylab (1974) ** 02 09 99 99 00 Halley's Comet reaches perihelion (1986) ** 02 09 99 99 00 the Boeing 747 takes it's 1st commercial flight. (1969) ** 02 10 99 99 00 The great comet disappeared from view. Most were terrified by it but it aided Newton in the study of parabolic orbits (1680) ** 02 11 99 99 00 Japan becomes fourth nation to launch artificial satellite (1970) ** 02 14 99 99 00 Luna 20 launched to orbit & land on Moon (1972) ** 02 18 99 99 00 Clyde Tombaugh discovers Pluto from the Lowell observatory in Flagstaff (1930) ** 02 20 99 99 00 John Glenn becomes the first American to orbit the earth aboard the Friendship 7 Mercury capsule (1962) ** 02 23 99 99 00 A supernoval explosion is first observed in the Large Magellanic Cloud. The last local supernova was in 1604 (1987) ** 02 24 99 99 00 Discovery of first pulsar announced (1968) ** 02 24 99 99 00 Mariner 6 launched for Mars flyby (1969) ** 02 28 99 99 00 First polar orbiting satellite, Discoverer 1, launched (1959) ** 03 01 99 99 00 Venera 3, first probe to land on Venus (1966) ** 03 02 99 99 00 Pioneer 10 launched for Jupiter flyby (1972) ** 03 04 99 99 00 Pioneer 4 makes first US lunar flyby (1959) ** 03 05 99 99 00 Voyager 1 encounters Jupiter and discovers rings (1979) ** 03 09 99 99 00 First dog recovered from space orbit (1961) ** 03 09 99 99 00 Yuri Gagarin, 1st man into space (1934) ** 03 10 99 99 00 Halley's Comet passes back across the ecliptic (1986) ** 03 10 99 99 00 Uranus' rings discovered (1977) ** 03 13 99 99 00 William Herschel discovers the planet Uranus by accident while studying the constellation Gemini. (1781) ** 03 15 99 99 00 Pluto again becomes the outermost planet. (1999) ** 03 16 99 99 00 Robert Goddard launches first liquid-fueled rocket (1926) ** 03 17 99 99 00 Vanguard I launched, proved Earth is pear-shaped (1958) ** 03 18 99 99 00 first walk in space by Russian Lieutenant-Colonel Leonev (1965) ** 03 20 99 99 00 The celebration of the first complete revolution of Uranus since its discovery (1865) ** 03 23 99 99 00 First photograph of Moon (1840) ** 03 23 99 99 00 Gemini 3 launched, completes 3 Earth orbits (1965) ** 03 24 99 99 00 British flyer survives 18,000-foot fall without a parachute, suffers broken ankle (1944) ** 03 25 99 99 00 Christiaan Huygens discovers Titan (1655) ** 03 27 99 99 00 Gagarin and Seryogin die in aircraft accident (1968) ** 03 27 99 99 00 Palla (asteroid) discovered by Heinrich Olbers (1802) ** 03 27 99 99 00 Vest (asteroid) discovered by Olbers (1807) ** 03 28 99 99 00 Yuri Gagarin is killed in a plane crash (1968) ** 03 30 99 99 00 Amelia Earhart is 1st woman to make solo crossing of the Atlantic. (1932) ** 03 30 99 99 00 Five rings around Uranus discovered (1977) ** 03 31 99 99 00 Luna 10 launched to Moon (1966) ** 04 01 99 99 00 TIROS I (Television & Infra-Red Observation Satellite) launched to improve weather prediction (1960) ** 04 01 99 99 00 US/Canada ISIS II launched to study the ionosphere (1971) ** 04 03 99 99 00 Soviet Union announces success of Luna 10, first spacecraft to achieve lunar orbit (1966) ** 04 04 99 99 00 (Unmanned) Apollo 6 launched atop Saturn V (1968) ** 04 04 99 99 00 First flight of space shuttle Challenger (1983) ** 04 04 99 99 00 Maiden voyage of STS Challenger (1983) ** 04 05 99 99 00 ATS II launched but failed to reach orbit (1967) ** 04 05 99 99 00 USSR Salyut 4 launched, fails to reach orbit, lands off course in snowstorm and rolls down a ravine; lines snag, saving lives of both cosmonauts (1975) ** 04 06 99 99 00 4 planes take off on 1st successful around-the-world flight. (1926) ** 04 06 99 99 00 First Intelsat (Early Bird) launched (1965) ** 04 06 99 99 00 Liftoff of Challenger 41C (1984) ** 04 06 99 99 00 Pioneer 11 launched to Jupiter & Saturn (1973) ** 04 07 99 99 00 STS-6 mission specialist Story Musgrave and Don Peterson perform first spacewalk (1983) ** 04 08 99 99 00 (Unmanned) Gemini 1 launched (1964) ** 04 09 99 99 00 First 7 astronauts presented to press: Shepard, Glenn, Cooper, Schirra, Grissom, Carpenter and Slayton (1959) ** 04 09 99 99 00 The space shuttle Challenger ended its first mission with a safe landing at Edwards Air Force Base in California (1983) ** 04 09 99 99 00 Two cosmonauts launched in Salyut 6; 185 day mission (1980) ** 04 10 99 99 00 The maiden launch of the space shuttle Columbia was scrubbed (1981) ** 04 11 99 99 00 Apollo 13 Moon launch: Lovell, Haise, Swigert (1970) ** 04 11 99 99 00 Celestial mechanics "Pinky" Nelson and "Ox" van Hoffen repair Solar Max satellite during 7 hour EVA in payload bay (1984) ** 04 11 99 99 00 Halley's Comet closest to earth (1986) ** 04 12 99 99 00 1st launch of the space shuttle, Columbia. (1981) ** 04 12 99 99 00 Launch of Discover (STS-16) 51-D; Bobko, Williams, Garn, Griggs, Seddon, Hoffman, Walker (1985) ** 04 12 99 99 00 Yuri A. Gagarin makes the first manned orbital flight (1961) ** 04 13 99 99 00 Apollo 13 oxygen tank ruptures, destroying service module and aborting lunar landing (1970) ** 04 14 99 99 00 Maiden Voyage of STS-1 into orbit: Young and Crippen (1981) ** 04 16 99 99 00 Apollo 16 launched, 5th lunar landing at Descartes Highlands: Young, Mattingly, Duke (1972) ** 04 16 99 99 00 Columbia returns (1981) ** 04 17 99 99 00 Apollo 13 crew returns safely to Earth (1970) ** 04 17 99 99 00 India enters space age, launching SLV-3 rocket (1983) ** 04 17 99 99 00 Jerrie Mock became the 1st wolman to complete a solo flight around the world (1964) ** 04 18 99 99 00 "Clipper" starts providing regular passenger flights from San Francisco to Honolulu (1936) ** 04 19 99 99 00 Discovery returns, blowing tire on landing (1985) ** 04 19 99 99 00 Halley's Comet becomes visible to the naked eye (1910) ** 04 19 99 99 00 USSR Salyut 1 launched; first manned lab in orbit (1971) ** 04 19 99 99 00 USSR Salyut 7 space station put into orbit (1982) ** 04 20 99 99 00 American Harold Graham makes first rocket belt flight (1961) ** 04 20 99 99 00 Canadian ANIK A2 became first commercial satellite in orbit (1973) ** 04 20 99 99 00 Soyuz T-8 launched; mission aborted when capsule fails to dock with Salyut station (1983) ** 04 20 99 99 00 The manned lunar module of Apollo 16 landed on the moon (1972) ** 04 21 99 99 00 Apollo 16 Astronauts John W. Young and Charles M. Duke explore the moon's surface (1972) ** 04 21 99 99 00 Lyrid meteor shower ** 04 23 99 99 00 Advisory council for Aeronautics becomes National Advisory Council on Aeronautic, or NACA (1915) ** 04 23 99 99 00 First Soviet communications satelite launched (1965) ** 04 23 99 99 00 USSR Soyus 1 launched; Vladimir Komarov becomes first cosomonaut to make 2 flights (1967) ** 04 24 99 99 00 China becomes 5th nation to launch artificial satellite (1970) ** 04 24 99 99 00 Hubble Space Telescope, ferried aboard space shuttle Discovery lifted off at 8:33 A.M. from Kennedy Space Center (1990) ** 04 25 99 99 00 Mercury/Atlas rocket lifts off with electronic mannequin; when inertial guidance system fails 40 seconds after launch, rocket destroyed by range safety officer (1961) ** 04 26 99 99 00 US/UK launches Ariel, first International payload (1962) ** 05 03 99 99 00 America's 1st passenger flight (New York-Atlantic City) (1919) ** 05 05 99 99 00 Alan Shepard becomes first American in Space in Freedom 7; 15 min sub-orbital flight (1961) ** 05 05 99 99 00 next conjunction of Sun, Moon, Mercury, Venus, Mars, Jupiter, and Saturn (2000) ** 05 06 99 99 00 The Hindenburg, a hydrogen filled zeppelin over 800 feet long, explodes during mooring in Lakehurst, NJ. Only 36 of the 98 aboard were killed. (1937) ** 05 07 99 99 00 Telstar 2 launched (apogee 6,700 miles). (1963) ** 05 09 99 99 00 Admiral Byrd first to fly over the North Pole (1926) ** 05 13 99 99 00 Soviet cosmonauts Berezovoi and Lebedev depart Baikonur Cosmodrome to begin 211 days in space, most of them aboard Salyut-7 space statio (1982) ** 05 14 99 99 00 United States launches space station "Skylab". (1973) ** 05 15 99 99 00 The Soviet Union launched Sputnik 3. (1958) ** 05 15 99 99 00 last of the Mercury flights, the 'Faith 7', launched. (1963) ** 05 16 99 99 00 Gordon Cooper completes 22 Earth orbits in Faith 7 (1963) ** 05 17 99 99 00 NASA launches first synchronous Meteorological satellite SMS-1. (1974) ** 05 18 99 99 00 Halley's Comet was seen from earth to move across the sun (1910) ** 05 18 99 99 00 Launch of Apollo 10 to rehearse lunar landing: Cernan, Stafford, and Young (1969) ** 05 20 99 99 00 The first regular transatlantic passenger service begins with Pan Am (1939) ** 05 20 99 99 00 US launches Pioneer Venus 1, produces first global radar map of Venus (1978) ** 05 24 99 99 00 Scott Carpenter orbits the earth three times. Only the second American to achieve Earth orbit. (1962) ** 05 25 99 99 00 American Airlines DC-10 crashes taking off from O'Hare. 275 killed highest death toll to date in aviation history. (1979) ** 05 25 99 99 00 Arthur C. Clark proposes the placement of relay satellites in geosynchronous orbit (1945) ** 05 25 99 99 00 Pres. John Kennedy declares landing a man on the Moon to be national objective (1961) ** 05 25 99 99 00 US launches first Skylab crew: Kerwin, Conrad, Weit (1973) ** 05 25 99 99 00 USSR launches Mars 3 to Mars (1971) ** 05 28 99 99 00 Astromonkeys "Able" & "Baker" zoom 300 miles into space on Jupiter missle (1959) ** 05 30 99 99 00 Mariner 9 launched; first craft to orbit Mars (1971) ** 05 31 99 99 00 Construction begins on Soviet cosmodrome launch facilitie (1955) ** 06 02 99 99 00 Surveyor 1 makes first US lunar soft landing (1966) ** 06 02 99 99 00 the Donati Comet 1st seen, named after it's discoverer. (1858) ** 06 03 99 99 00 200 inch Hale telescope dedicated (1948) ** 06 03 99 99 00 First U.S. space walk, Edward White, Gemini 4. (1965) ** 06 03 99 99 00 US launches Gemini 9 (1966) ** 06 05 99 99 00 The Montgolfiers make first ascent in hot air balloon. It lasts 10 minutes (1783) ** 06 06 99 99 00 First human visit to space station; USSR Soyuz 1 (1971) ** 06 06 99 99 00 Gemini 9 completes 45 orbits after rendezvous with 'angry alligator', (Agena with undetached launch shroud): Stafford and Cernan (1966) ** 06 06 99 99 00 transit of Venus (between Earth and Sun) occurs. (2012) ** 06 07 99 99 00 Gemini 4 completes 62 orbit (1965) ** 06 08 99 99 00 Soviets launch Venera 9 to Venus (1975) ** 06 08 99 99 00 next transit of Venus across the sun (2004) ** 06 09 99 99 00 Goddard patents rocket-fueled aircraft design (1931) ** 06 13 99 99 00 Pioneer 10 spacecraft flies past Neptune (1983) ** 06 13 99 99 00 Vostok 6 launched, pilot is 1st woman cosmonaut. (1963) ** 06 14 99 99 00 1st direct airplane crossing of the Atlantic. (1919) ** 06 14 99 99 00 England will witness a total eclipse of the sun (2051) ** 06 14 99 99 00 Launch of Mariner 5 for Venus flyby (1967) ** 06 14 99 99 00 Launch of Venera 10 to Venus (1975) ** 06 14 99 99 00 Pioneer 10 spacecraft leaves the solar system (1983) ** 06 15 99 99 00 USAF launches first "Big Bird" reconnaissance satellites ** 06 16 99 99 00 Valentina Tereshkova becomes first woman in space (1963) ** 06 18 99 99 00 First U.S. woman in space, Sally Ride, space shuttle Challenger. (1983) ** 06 19 99 99 00 Andrian Nikolayev and Vitalii Sevastyanov return after 18 days in Soyuz (1970) ** 06 20 99 99 00 Test flight of first rocket plane using liquid propellant (1939) ** 06 22 99 99 00 1st time a satellite is retrieved from orbit, by Space Shuttle. (1983) ** 06 22 99 99 00 Bright comet with fan shaped tail observed over London for a couple of days (1881) ** 06 22 99 99 00 Charon, moon of Pluto, discovered by James Christ (1978) ** 06 24 99 99 00 Flying Saucers sighted (1947) ** 06 24 99 99 00 Jean-Loup Chretien, first spacionaut, lifts off with two cosmonauts for an eight day visit to the Salyut 7 space station (1982) ** 06 25 99 99 00 5 Canterbury monks report something exploding on the Moon (only known observation) (1178) ** 06 26 99 99 00 First dedicated oceanographic satellite, SEASAT 1, launched (1978) ** 06 27 99 99 00 NASA X-15 flies at 4105 mph (1962) ** 06 28 99 99 00 in Hawaii, the 1st inter-island flight. (1918) ** 06 29 99 99 00 All three members of the crew of the Soyuz II space capsule were killed during re-entry over the U.S.S.R. (1971) ** 06 29 99 99 00 Soyuz 11 docks with Salyut 1 for 22 d (1971) ** 06 29 99 99 00 first flight from the West Coast arrives in Hawaii. (1927) ** 06 30 99 99 00 a giant fireball impacts in Central Siberia (the Tunguska Event). (1908) ** 07 02 99 99 00 1st flight of a Zeppelin (the LZ-1). (1900) ** 07 02 99 99 00 Aviator Amelia Earhart and her navigator, Fred Noonan, disappeared over the Pacific while attempting to make 1st flight at equator (1937) ** 07 02 99 99 00 Giotto launched to rendevous with Halley's Comet (1985) ** 07 03 99 99 00 Starstruck, Inc. launchs dolphin rocket off San Clemente Island (1984) ** 07 04 99 99 00 Hanna Reitsch pilots first successful helicopter flight, in Bremen Germany (1937) ** 07 04 99 99 00 Telegraph Hill Observatory opens. (1882) ** 07 04 99 99 00 brightest known super-nova starts shining, for 23 days. (1054) ** 07 05 99 99 00 Mariner 5 flies by Mars (1967?) ** 07 06 99 99 00 Soviets launch Titov in Vostok 2: 17 orbits, 25h 18m (1961) ** 07 07 99 99 00 Apollo 15 returns after 12d 7h 11 m 53 s (1971) ** 07 08 99 99 00 Pioneer-Venus 2 Multi-probe launched to Venus (1978) ** 07 09 99 99 00 Voyager II flies past Jupiter. (1979) ** 07 10 99 99 00 Bell Telephone's Telstar I is launched becoming the first private telecommunications satellite (1962) ** 07 10 99 99 00 Orbiter 1 launched toward Moon (1966) ** 07 11 99 99 00 1st transatlantic TV transmission via satellite (Telstar I). (1962) ** 07 11 99 99 00 Cosmonaut Micolaev sets record for longest space flight, 4 d (1962) ** 07 11 99 99 00 Skylab returns to earth showering debris over the Indian Ocean and Australia (1979) ** 07 12 99 99 00 Cosmonaught Popovich enters space; first time 2 manned craft in space simultaneously (1962) ** 07 12 99 99 00 Echo I, first passive satellite launched (1960) ** 07 12 99 99 00 First free flight test of Enterprise (1977) ** 07 12 99 99 00 USSR's Sputnik 5 launched with 2 dogs (1960) ** 07 14 99 99 00 1st commercial airplane flight in Hawaii. (1927) ** 07 14 99 99 00 First craft to fly by Mars, Mariner 4 (1965) ** 07 15 99 99 00 US/USSR launch Apollo-Soyuz Test Project (1975) ** 07 16 99 99 00 Launch of Apollo 11: Armstrong, Aldrin, Collins (1969) ** 07 17 99 99 00 Aviator Douglas Corrigan took off from New York for California, but landed instead in Ireland; His nickname; "Wrong Way Corrigan" (1938) ** 07 17 99 99 00 First US/USSR linkup in space (Apollo-Soyus) (1975) ** 07 17 99 99 00 First photograph of a star (Vega) (1850) ** 07 17 99 99 00 Pioneer 7 launched ** 07 18 99 99 00 Carl Sagan turned one billion seconds old (1966) ** 07 18 99 99 00 First women to walk in space: Svetlana Savitskaya accompanies Vladimir Dzhanibekov on EVA outside Salyut 7 (1984) ** 07 18 99 99 00 Launch of Gemini X, John Young and Mike Collins (1966) ** 07 18 99 99 00 Wrong Way Corrigan lands his plane in Dublin and asks if it is California (1938) ** 07 19 99 99 00 1st In-flight movie is shown (on TWA). (1961) ** 07 19 99 99 00 United flight 232 crashes at Suiox City, Iowa airport when the pilot trys to bring in the DC-10 with no rear engine, part of the tail gone and no hydraulics for steering. Remarkably 166 people survive. (1989) ** 07 20 99 99 00 1st pictures from Mars surface received (courtesy Viking 2). (1976) ** 07 20 99 99 00 Amelia Earhart Putnam takes off from Hawaii to become the first woman to fly solo around the world (1937) ** 07 20 99 99 00 First men on the Moon: Neil Armstrong, Edwin Aldrin, Apollo 11 (1969) ** 07 20 99 99 00 USSR recovers 2 dogs, first living organisms to return from space (1960) ** 07 20 99 99 00 Viking I lander sets down on Mars returning the first close-up color photos of Mars. It will continue working for six and a half years (1976) ** 07 20 99 99 00 Voyager 2 launched (1977) ** 07 21 99 99 00 Gemini 5 launched atop Titan V: Cooper & Conrad (1965) ** 07 21 99 99 00 Launch of Mercury 4 in sub-orbital flight: Grissom (1961) ** 07 21 99 99 00 Neil Armstrong steps on the moon at 2:56:15 AM (GMT). (1969) ** 07 23 99 99 00 ERTS (EARTH RESOURCES TECHNOLOGY SATELLITE, later called LANDSAT) launched (1972) ** 07 24 99 99 00 First launch from Cape Canaveral: V-2/WAC Corporal combination ** 07 25 99 99 00 1st airplane flight across the English Channel. (1909) ** 07 25 99 99 00 USSR launches Mars 5 (1973) ** 07 25 99 99 00 Voyager 2 encounters Saturn (1981) ** 07 26 99 99 00 Canada's Anik D1 comsat launched by US delta rocket (1982) ** 07 26 99 99 00 First geosynchronous satellite (Syncom 2, US) (1963) ** 07 26 99 99 00 Launch of Apollo 1 (1971) ** 07 26 99 99 00 USSR launches first intercontinental multi-stage ballistic missle (1957) ** 07 26 99 99 00 USSR's Soyuz fails to dock with Salyut 3 (1974) ** 07 27 99 99 00 Mariner 2 launched toward Venus flyby mission (1962) ** 07 27 99 99 00 Orville Wright tested the U.S.Army's first airplane, flying it for one hour and 12 minutes (1909) ** 07 28 99 99 00 First photograph of total solar eclipse (1851) ** 07 28 99 99 00 NASA releases transcript of recording of the doomed space shuttle Challenger in which pilot Michael Smith could be heard saying "Uh-oh!" (1986) ** 07 28 99 99 00 Skylab II launched (1973) ** 07 28 99 99 00 US launches Ranger 7 to Moon (1964) ** 07 29 99 99 00 Gemini 5 returns after 12d 7h 11m 53s (1965) ** 07 29 99 99 00 Pioneer 11 transmits images of Saturn's rings (1978) ** 07 29 99 99 00 President Eisenhower signed the National Aeronautics and Space Act, which created NASA (1958) ** 07 30 99 99 00 Apollo 15 lands on Moon (1971) ** 07 30 99 99 00 Delta Aquarid meteor shower peaks, 10-35 falls/hr (look south) ** 07 30 99 99 00 STS-14: first flight of Discovery (1984) ** 07 30 99 99 00 STS-8: 3rd flight of Challenger, first night launch and land (1983) ** 07 31 99 99 00 Harry S. Truman dedicates N.Y. Int'l Airport at Idlewild Field, later JFK (1948) ** 07 31 99 99 00 Ranger 7 transmits first lunar close-up photos before impact (1964) ** 07 31 99 99 00 The Lunar Roving Vehicle is operated for the first time during the Apollo 15 mission (1971) ** 08 01 99 99 00 Voyager begins its fly-by of Neptune (1989) ** 08 04 99 99 00 US launches first satellite into lunar orbit from manned spacecraft Apollo 15 (1971) ** 08 05 99 99 00 USSR launches Mars 6 (1973) ** 08 05 99 99 00 the spectrum of a comet observed for 1st time, by Giovanni Donati. (1864) ** 08 07 99 99 00 Cosmonaut Gherman Titov circles Earth for a full day in Vostok (1961) ** 08 07 99 99 00 US launches Explorer 6 to take first satellite photo of Earth (1959) ** 08 08 99 99 00 US launches Pioneer Venus probe (1978) ** 08 09 99 99 00 USSR launches Mars 7 (1973) ** 08 10 99 99 00 Construction began on the astronomical observatory at Greenwich England by order of Charles II (1675) ** 08 10 99 99 00 First recovery of ejected film capsule, Discoverer 13 (1960) ** 08 10 99 99 00 Launch of Lunar Orbiter 1 (1966) ** 08 11 99 99 00 Martian moon Deimos discovered by Asaph Hall (1877) ** 08 11 99 99 00 Perseid meteor shower, 50-100 falls/hr (look north; three days) ** 08 11 99 99 00 USSR launches first dual manned spacecraft flight (1962) ** 08 12 99 99 00 First passive communications satellite, Echo 1 (1960) ** 08 12 99 99 00 JAL 747 crashes in Japan killing 520 in the worst air disaster to date (1985) ** 08 14 99 99 00 US Orbiter 1 starts orbiting the moon (1966) ** 08 15 99 99 00 The Graf Zeppelin set the world distance record for non-stop flight of 6980 miles from Germany to Tokyo (1929) ** 08 16 99 99 00 Northwest Airline Flt 255 crashed in Detroit killing 165; sole survivor was 4 year-old Cecelia Cichan (1987) ** 08 17 99 99 00 Martian moon Phobos discovered by Asaph Hall (1877) ** 08 17 99 99 00 USSR launches Venera 7 to Venus (1970) ** 08 19 99 99 00 Cosmonauts Lyakhov & Ryumin complete a record 175-day space flight (1979) ** 08 19 99 99 00 The Russians put two dogs into orbit (1960) ** 08 20 99 99 00 Launch of Viking 1, first craft to send pictures from surface of Mars (1975) ** 08 20 99 99 00 Launch of Voyager 2 to outer solar system (1977) ** 08 20 99 99 00 Voyager II launched. (1977) ** 08 22 99 99 00 NASA's X-15 attains altitude of 67 miles (1963) ** 08 24 99 99 00 Amelia Earhart became the first woman to make a non-stop flight across the United States (1932) ** 08 24 99 99 00 Voyager 2 makes its closest approach to Neptune - 3042 miles (1989) ** 08 25 99 99 00 Graf Zeppelin passes over San Francisco, headed for Los Angeles after trans-Pacific voyage from Tokyo (1929) ** 08 25 99 99 00 Voyager 2 encounters Neptune, is thrown out of the solar plane and proceeds into deep space. With luck it will transmit useful data until 2015. (1989) ** 08 25 99 99 00 Voyager 2 encounters Saturn. During the passage its scanning platform jams. Study of the problem during the trip to Uranus provides a near perfect encounter there. (1981) ** 08 27 99 99 00 Launch of Mariner 2, first Venus flyby mission (1962) ** 08 28 99 99 00 Saturnian moon Enceladus discovered by William Herschel (1789) ** 08 29 99 99 00 Astronauts Cooper & Conrad complete 120 Earth orbits in Gemini 5 (1965) ** 08 29 99 99 00 Gemini V, carrying Gordon Cooper and Charles "Pete" Conrad, (1965)splashed into the Atlantic after eight days in space. ** 08 29 99 99 00 Star in Cygnus goes nova and becomes 4th brightest in sky; Nova Cygni 1975. (1975) ** 08 30 99 99 00 1st recorded occurrance of a comet hitting the sun (the energy released was about equal to 1 million hydrogen bombs) (1979) ** 08 30 99 99 00 Guy Bluford becomes first African-American American in space as Challenger make first night liftoff of shuttle program (1983) ** 08 30 99 99 00 Maiden Voyage of Discovery carrying first non-astronaut Charlie Walker (1984) ** 08 31 99 99 00 269 people killed after Korean Airlines 747 shot down by USSR (1983) ** 09 01 99 99 00 Pioneer 11, first craft to fly by Saturn (1979) ** 09 01 99 99 00 Korean Airlines flight 007 is forced to crash land in the Soviet Union after begin fired on by a Soviet interceptor (1983) ** 09 02 99 99 00 The asteroid Juno discovered (1804) ** 09 03 99 99 00 Viking II lander sets down on Mars (1976) ** 09 04 99 99 00 NASA launches its first Orbital Geophysical Observatory (OGO-1) (1964) ** 09 05 99 99 00 The space shuttle Discovery completed its first flight as it landed at Edwards Air Force Base in California (1984) ** 09 05 99 99 00 Voyager 1 begins 3 year flight to Jupiter and Saturn (1977) ** 09 07 99 99 00 Bell X-2 sets unofficial world altitude record for manned aircraft 126,000+ feet (1956) ** 09 09 99 99 00 "Conestoga I", 1st private rocket, is launched. (1982) ** 09 09 99 99 00 Discovery of Jovian moon Almalthea (1892) ** 09 09 99 99 00 Viking 2 launched (1975) ** 09 12 99 99 00 Gemini 11 achieves rendevous and docking during first orbit (1966) ** 09 12 99 99 00 USSR Launches Luna 16 to Moon (1970) ** 09 12 99 99 00 USSR launches Luna 2, first craft to impact another celestial body (Moon, 1959) ** 09 14 99 99 00 Jovina moon Leda discovered by Charles Kowal (1974) ** 09 14 99 99 00 USSR's Zond 5 is launched on first circumlunar flight (1968) ** 09 17 99 99 00 Zond 5 completes lunar circumnavigation (1968) ** 09 19 99 99 00 Saturnian moon Hyperion discovered (1848) ** 09 20 99 99 00 German rocket engineers begin work in US (1945) ** 09 21 99 99 00 Luna 16 leaves the Moon (1970) ** 09 22 99 99 00 Zond 5 completes flight (1968) ** 09 23 99 99 00 The planet Neptune is first observed by Dr. Galie of Berlin based on calculations of gravitational enfluence on Uranus by John Couch Adams of Cambridge and Urbain Le Verrier of Paris (1846) ** 09 24 99 99 00 First Automated return of lunar sample by Luna 1 (1970) ** 09 24 99 99 00 Henri Giffard, French mechanic, flys the first dirigible from Paris to Trappe (1853) ** 09 24 99 99 00 James H. Doolittle achieves the first totally instrument take off and landing (1929) ** 09 24 99 99 00 a new invention, the dirigible, is demonstrated. (1852) ** 09 25 99 99 00 144 people died in a PSA air crash in San Diego. (1978) ** 09 26 99 99 00 Cosmonauts Titov and Strekalov are saved from their exploding Soyuz T-10 booster by the launch escape system (1983) ** 09 26 99 99 00 Japan launches its first satellite in to space. (1966) ** 09 28 99 99 00 Two U.S. Army planes landed in Seatle completing the first round the world flight in 175 days. (1924) ** 09 29 99 99 00 First U.S. shuttle launch following Challenger disaster (Discovery, 8:37 PDT, 1988) ** 10 01 99 99 00 Inauguration of NASA (1958) ** 10 01 99 99 00 Vanguard Project transferred from military to NASA (1958) ** 10 02 99 99 00 3 cosmonauts return after a record 237 days in orbit (1984) ** 10 03 99 99 00 AF pilot Pete Knight flies x-15 at a record 4,534 mph (1967) ** 10 03 99 99 00 Discovery lands successfully (1988) ** 10 03 99 99 00 Launch of first V-2 rocket to altitude of 53 miles (1942) ** 10 03 99 99 00 Mercury 8 completes 6 Earth orbits (1962) ** 10 03 99 99 00 Spaceflight 71-2 launched; first flexible substrate photovoltaic (1972) ** 10 04 99 99 00 Courier 1B launched; first active repeater satellite in orbit (1960) ** 10 04 99 99 00 First artificial satellite, Sputnik 1 launched (1957) ** 10 04 99 99 00 Orville Wright pilots his plane for a little over 33 minutes (1905) ** 10 04 99 99 00 USSR Luna 3 sends back first photos of far side of Moon (1959) ** 10 05 99 99 00 41-G Challenger carried first Canadian, Marc Garneau, into orbit (1984) ** 10 05 99 99 00 Edwin Hubble identifies Cepheid variable star (1923) ** 10 06 99 99 00 NASA successfully launches Discovery which carries the $207 million Ulysses solar probe into space (1990) ** 10 08 99 99 00 First movie in the air; a newsreel and two cartoons at 5000 feet (1929) ** 10 09 99 99 00 2 cosmonauts launched to saluyt 5, but returned after failing to dock (1977) ** 10 09 99 99 00 Kathy Sullivan becomes first American woman to walk in space (1984) ** 10 10 99 99 00 Neptunian moon Triton discovered by William Lassel (1846) ** 10 10 99 99 00 Very Large Array (VLA) radio telescope network dedicated. (1980) ** 10 11 99 99 00 Apollo 7 launched, 1st manned flight of the Command & Service modules (1968) ** 10 11 99 99 00 Cosmonauts Popov and Ryumin set space endurance record of 184 days (1980) ** 10 11 99 99 00 First manned Apollo flight launched (Apollo 7) (1968) ** 10 11 99 99 00 Pioneer 1 launched; first spacecraft launched by NASA as official agency (1958) ** 10 12 99 99 00 1st commercial flight between California and Antartica. (1957) ** 10 12 99 99 00 Mariner 9 photographs Martian north pole (1972) ** 10 12 99 99 00 US/USSR signed an agreement for joint space effort in telecommunications and meteorology; pact was never fullfilled (1962) ** 10 12 99 99 00 USSR launches first 3 man crew in space (1964) ** 10 13 99 99 00 Voshkod 1 crew returns (1964) ** 10 14 99 99 00 2 cosmonats launched to Salyut 6, but return without docking (1976) ** 10 14 99 99 00 Chuck Yeager becomes the first person to break the sound barrier (Mach 1.015 at 42,000 feet) (1947) ** 10 18 99 99 00 Soviets announce their probe took photos of the far side of the Moon (1959) ** 10 18 99 99 00 USSR Venera 4 became first craft to make controlled descent into Venusian atmosphere (1967) ** 10 19 99 99 00 Mariner 5 flies by Venus (1967) ** 10 20 99 99 00 Orionid meteor shower, 10-70 falls/hr (look south) ** 10 21 99 99 00 Launch of Venera 9, first craft to orbit Venus (1975) ** 10 22 99 99 00 1st commercial flight from mainland to Hawaii. (1936) ** 10 22 99 99 00 Apollo 7 crew returns (1968) ** 10 22 99 99 00 Chinese make first record of solar eclipse (2136 BC) ** 10 22 99 99 00 USSR's Venera 9 sends first photos from Venus (1975) ** 10 23 99 99 00 Creation of Cosmos, according to Archbishop James Usher (4004 BC) ** 10 24 99 99 00 Disaster on USSR launch pad kills missle expert Nedelin and his team (unconfirmed); USSR claims he was killed in plane crash (1960) ** 10 24 99 99 00 Intelsat 5 re-enters Earth's atmosphere 5 months after upper stage fails (1984) ** 10 24 99 99 00 Uranian moons Ariel and Umbriel discovered by Lassel (1846) ** 10 25 99 99 00 Saturnian moon Iapetus discovered by Giovanni Cassini (1671) ** 10 25 99 99 00 USSR Venera 10 lands on Venus (1975) ** 10 26 99 99 00 USSR Soyuz 2 launched (1968) ** 10 26 99 99 00 first NY to Paris and NY to London jet passenger service (1958) ** 10 27 99 99 00 First unmanned flight test of Saturn rocket (1961) ** 10 28 99 99 00 US/USSR sign agreement to discuss joint space efforts (1970) ** 10 30 99 99 00 USSR Kosmos 186 and 188 make first automatic docking (1967) ** 10 30 99 99 00 Venmera 13 launched toward Venus ** 11 01 99 99 00 Asteroid Chiron discovered (1977) ** 11 01 99 99 00 Werner Von Braun heads German liquid fueled rocket development (1932) ** 11 02 99 99 00 Howard Hughes' Spruce Goose flies for 1st (& last) time. (1947) ** 11 02 99 99 00 Two Frenchmen make the first free hot air balloon flight (1783) ** 11 03 99 99 00 Laika becomes the first animal launched into orbit by USSR (1957) ** 11 03 99 99 00 Mariner 10 launched first flyby pictures of Venus, first mission to Mercury (1973) ** 11 03 99 99 00 Sputnik II launched bearing spacedog Laika, the first dog in space (1957) ** 11 05 99 99 00 US ATS-3 takes first pictures of full Earth disk (1967) ** 11 07 99 99 00 Goddard demonstrates tube-launched solid propellant rocket (1918) ** 11 09 99 99 00 First unmanned Saturn V flight tests Apollo 4 reentry module (1967) ** 11 09 99 99 00 Halley's comet crosses the ecliptic (1985) ** 11 10 99 99 00 USSR launches Zond 6 to Moon (1968) ** 11 10 99 99 00 Voyager I flies past Saturn. (1980) ** 11 11 99 99 00 Gemini 12 launched, takes first solar eclipse photos from space (1966) ** 11 11 99 99 00 Space Shuttle 'Columbia' makes 1st commercial flight. (1982) ** 11 12 99 99 00 1st time a spacecraft is launched twice -- the Space Shuttle 'Columbia' lifts off again (1981) ** 11 12 99 99 00 Voyager 1 comes within 77000 miles of Saturn and heads out of the plane of the solar system, with luck it will transmit useful data until 2015 (1980) ** 11 13 99 99 00 Mariner 9 orbits Mars (1971) ** 11 14 99 99 00 1st airplane flight from the deck of a ship. (1910) ** 11 14 99 99 00 Apollo 12 blasted off for the moon from Cape Kennedy. (1969) ** 11 16 99 99 00 Probably one of biggest meteor showers in history in the northern latitudes of the Pacific (also on the night of the 17th) (1966) ** 11 16 99 99 00 Skylab 4 launched, completes longest US space flight; 2017 h (1973) ** 11 17 99 99 00 46,000 meteoroids fall over AZ in 20 minutes (1966) ** 11 24 99 99 00 The first transit of Venus across the Sun observed by William Crabtree and Rev Horrocks (1639) ** 11 25 99 99 00 First Soviet liquid rocket attains altitude of 261 ft (1933) ** 11 26 99 99 00 First Meteor photograph (1885) ** 11 28 99 99 00 Capt. Cyril Turner of the Royal Air Force gave the first skywriting exhibition above New York's Times Square (1922) ** 11 29 99 99 00 Mercury launches a chimp called Ham (1961) ** 11 29 99 99 00 Navy Lieutenant Richard Byrd flies over the South Pole (1929) ** 11 30 99 99 00 8.5 pound meteor struck Elizabeth Hodges when it came through the roof of her house in Sylacauga, Alabama. She had only minor injuries and was hospitalized. (1954) ** 12 01 99 99 00 1st skywriting over the US - "Hello U.S.A." - by Capt Turner, RAF (1922) ** 12 02 99 99 00 First semi soft landing made by Russia's Mars 3 (1971) ** 12 03 99 99 00 Pioneer 10 swings around Jupiter bringing the first closeups of the planet (1973) ** 12 04 99 99 00 Gemini 7 is launched (1965) ** 12 06 99 99 00 First attempted satellite launch (unsuccessful) (1957) ** 12 07 99 99 00 Apollo 17, last of the Apollo moon series, launched. (1972) ** 12 09 99 99 00 First US probes sent to Venus (1978) ** 12 10 99 99 00 The first domestic jet passenger flight took place in the US as a National Airlines Boeing 707 flew 111 passengers from New York to Miami in about two and a half hours (1958) ** 12 11 99 99 00 The last manned moon landing, for now (1972) ** 12 13 99 99 00 Geminid meteor shower, 50-80 falls/hr, (look south) ** 12 13 99 99 00 Wright brothers first airplane flight at Kittyhawk. (1903) ** 12 14 99 99 00 Mariner II sends first detailed information about Venus from distance of 21,600 miles (1962) ** 12 15 99 99 00 1st rendezvous in space: Gemini 6 and Gemini 7 link up. (1965) ** 12 15 99 99 00 First craft to land on Venus, Venera 7 (1971) ** 12 15 99 99 00 Gemini 6 & 7 make first space rendevous (1965) ** 12 17 99 99 00 The first flight of the DC-3 (Gooney-bird) (1935) ** 12 17 99 99 00 at 10:35AM, for 12 seconds, 1st sustained motorized aircraft flight by Wright Brothers (1903) ** 12 18 99 99 00 Borman and Lovell Splash down in Atlantic to end two week Gemini VII mission (1965) ** 12 18 99 99 00 First test project of SCOR (Signal Communications by Orbiting Relay Equipment) (1958) ** 12 18 99 99 00 William Bond takes the first picture of the moon through a telescope (1849) ** 12 19 99 99 00 The Explorer satellite is launched (1963) ** 12 20 99 99 00 First Space walk made by Grechko from Salyut (1977) ** 12 21 99 99 00 Apollo 8 was launched on its way to man's first orbit of the moon (1968) ** 12 23 99 99 00 First men to orbit Moon: Borman, Lovell & Anders (1968) ** 12 23 99 99 00 Saturnian moon Rhea discovered by Giovanni Cassini (1672) ** 12 24 99 99 00 Apollo 8 Christmas Eve telecast made from lunar orbit (1968) ** 12 24 99 99 00 Luna 13 lands on Moon (1966) ** 12 25 99 99 00 Halley's Comet appears (1758) ** 12 28 99 99 00 Comet Kohoutek at perihelion (1973) ** 12 29 99 99 00 Pan Am starts San Francisco to Auckland, New Zealand service. (1937) ** 12 29 99 99 00 The first all female crew on a commercial airliner was arranged by the seven crew members swapping shifts to get on the same 747 flight (1986) gcal-4.1/data/dates/gdead0000664000000000000000000002314712353520606012166 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: gdead,v 1.2 91/03/07 16:21:08 billr Exp $ # # Dead Dates from the 1982 Dead Calendar # courtesy of Tom Uffner # ** 01 02 99 99 00 Psychedelic Shop opens, Haight St. SF (1966) ** 01 08 99 99 00 Acid Test Fillmore Aud. SF (1966) ** 01 09 99 99 00 Bill Graham born (1931) ** 01 13 99 99 00 "Stop Nuclear Power" benefit, Arlington Theatre, Santa Barbara (1978) ** 01 13 99 99 00 Cambodian Boat People's benefit, Oakland Col. w/ Joan Baez (1980) ** 01 14 99 99 00 Human Be-In, Golden Gate Park, SF, Dead, Airplane, Quicksilver (1967) ** 01 19 99 99 00 Janis Joplin born (1943) ** 01 21 99 99 00 Longshoreman's Hall Trips Festival, SF (thru 1-23-66) ** 01 22 99 99 00 Honolulu Civic Aud. (first show in Hawaii) (1970) ** 01 24 99 99 00 BAM's award, SF, Phil Lesh "best bassist" (1978) ** 01 30 99 99 00 BAM's award, SF, Mickey Hart "best drummer", Dead "best group" (1979) ** 01 31 99 99 00 Dead busted, New Orleans (1970) ** 02 04 99 99 00 Neal Cassady dies (1968) ** 02 08 99 99 00 Neal Cassady born (1926) ** 02 11 99 99 00 Watts Acid Test, Compton, CA (1966) ** 02 11 99 99 00 Fillmore East, NYC (w/ Duane and Gregg Allman, Peter Green) (1970) ** 02 13 99 99 00 'Bears Choice' recorded at Fillmore East, NYC (also 2-14-70) (1970) ** 02 13 99 99 00 "New Music for the 80's", Rhythm Devils debut, Marin, CA (1980) ** 02 14 99 99 00 Dead/Airplane open Carousel Ballroom, SF (1968) ** 02 17 99 99 00 "Rock for Life" benefit, Keith and Donna G.'s last show, Oakland (1979) ** 02 19 99 99 00 ESP Experiment show, Capital Theatre, Portchester, NY (1971) ** 02 23 99 99 00 Jefferson Airplane headline benefit for Dead's N.Orl. bust, Fill. W. (1970) ** 03 03 99 99 00 Haight Street, SF, free concert (1968) ** 03 05 99 99 00 Black Panther benefit, Oakland Aud. (1st show there), CA (1971) ** 03 05 99 99 00 Rolling Thunder benefit, Winterland, SF (1972) ** 03 08 99 99 00 Fillmore East opens, NYC (1968) ** 03 08 99 99 00 Pigpen found dead (1973) ** 03 12 99 99 00 Jack Kerouac born (1922) ** 03 15 99 99 00 Phil Lesh born (1940) ** 03 15 99 99 00 Benefit for SF Symphony ('Black and White Ball') Hilton Hotel, SF (1969) ** 03 20 99 99 00 Rainbow Theatre, London (also 3-21 thru 3-24) (1981) ** 03 23 99 99 00 Cow Palace debut of new sound system (25 tons, 641 spkrs, 48 amps) (1974) ** 03 23 99 99 00 S.N.A.C.K. benefit w/ Merl Saunders, Ned Lagin, Kezer Stad. SF (1975) ** 03 25 99 99 00 Academy of Music, NYC Donna's first show w/ Bo Diddley (1972) ** 03 25 99 99 00 BAM's award, SF, Jerry Garcia "Musician of the year" (1980) ** 03 28 99 99 00 Gruga Hall, Essen, Germany, w/ The Who, Flying Karamazov Bros. (1981) ** 04 01 99 99 00 "April Fools Show" Capital Theatre, Passaic, NJ (1980) ** 04 05 99 99 00 'Saturday Night Live' second appearance (1980) ** 04 07 99 99 00 Europe '72 Tour begins, Empire Pool, Wembley, England (1972) ** 04 15 99 99 00 BAM's award, SF, Phil Lesh "best bassist" (1981) ** 04 20 99 99 00 People's Park planted, Berkeley (1969) ** 04 22 99 99 00 Brent Mydland's first show, Spartan Stadium, San Jose, CA (1979) ** 04 26 99 99 00 Fillmore East, NYC w/ Duane Allman (1971) ** 04 27 99 99 00 Fillmore East, NYC w/ Beach Boys (1971) ** 04 28 99 99 00 Fillmore Eest, NYC w/ Tom Constanten (1971) ** 04 29 99 99 00 Fillmore East, NYC last show (1971) ** 04 30 99 99 00 Casey Jones killed (1900) ** 05 06 99 99 00 MIT, Cambridge, MA free concert (1970) ** 05 07 99 99 00 Bill Kreutzmann born (1946) ** 05 07 99 99 00 'Tomorrow Show' interview and music (1981) ** 05 13 99 99 00 Lille Fairgrounds, France (free concert) (1972) ** 05 16 99 99 00 Diga Rhythm Band's first public appearance, Winterland w/ Starship (1975) ** 05 24 99 99 00 Hollywood Festival Newcastle, England (first European show) (1970) ** 05 26 99 99 00 Europe '72 tour ends, Lyceum, London (1970) ** 05 26 99 99 00 Day on the Green #1, Kezer Stadim, SF w/ Dead, NRPS (1973) ** 05 27 99 99 00 First Avalon Ballroom show, SF (1966) ** 06 01 99 99 00 Haight Ashbury Free Clinic opens, SF (1967) ** 06 01 99 99 00 Dead Movie opens, Ziegfield Theatre, NYC (1977) ** 06 03 99 99 00 'The Vacation Ends', Dead begin touring again, Portland, OR (1976) ** 06 06 99 99 00 'Seastones' debut at Dominican College, San Rafael, CA (1975) ** 06 07 99 99 00 15-year anniversary shows, Folsom Field, Univ. of CO, Boulder (1980) ** 06 08 99 99 00 Day on the Green w/ Beach Boys, Oakland (1974) ** 06 09 99 99 00 RFK Stadium, Wash. DC, w/ Allman Bros. (1973) ** 06 12 99 99 00 'Fire on the Mountain', Dead and Mt. St. Helens hit Portland (1980) ** 06 14 99 99 00 First Fillmore East show (1968) ** 06 15 99 99 00 Dead play at Straight Theatre christening party, SF (1967) ** 06 17 99 99 00 Pigpen's last show, Hollywood Bowl, CA (1972) ** 06 17 99 99 00 Bob Fried Memorial Boogie, Winterland, SF (1975) ** 06 18 99 99 00 Dead at Monterey Pop Festival (1967) ** 06 19 99 99 00 Summer Solstice shows, West High Aud., Anchorage, AK (thru 6-21) (1980) ** 06 21 99 99 00 Chateau de Herouville, France, free concert (1971) ** 06 22 99 99 00 Central Park, NYC free concert (1969) ** 06 23 99 99 00 Robert Hunter born (1941) ** 06 27 99 99 00 Fillmore East, NYC closes (1971) ** 06 29 99 99 00 Red Dog Saloon opens, Virginia City, NV (1965) ** 06 29 99 99 00 Canadian Train Tour begins, Toronto, ends 7-3 (1970) ** 07 02 99 99 00 Last Fillmore West show, SF (1971) ** 07 04 99 99 00 William Hitchcock's mansion, Millbrook, NY (1967) ** 07 04 99 99 00 Fillmore West closes, SF (1971) ** 07 08 99 99 00 Mississippi River Festival, Edwardsville, IL (1970) ** 07 12 99 99 00 Orpheum Theatre shows begin, ends 7-18 (1976) ** 07 19 99 99 00 Keith Godchaux born (1948) ** 07 23 99 99 00 Keith Godchaux dies (1980) ** 07 28 99 99 00 Watkins Glen, NY w/ Allman Bros., Band. 600,000 people (1973) ** 08 01 99 99 00 Jerry Garcia born (1942) ** 08 04 99 99 00 Newport Rock Festival, Costa Mesa, CA (1968) ** 08 07 99 99 00 Merry Pranksters "Welcome Hell's Angels' Party", La Honda, CA (1965) ** 08 13 99 99 00 Great American Music Hall, SF (1975) ** 08 15 99 99 00 Woodstock Music and Arts Festival, NY (Dead 8-16), thru 8-17 (1969) ** 08 20 99 99 00 First Fillmore West show, SF (1968) ** 08 22 99 99 00 Donna Jean Godchaux born (1947) ** 08 28 99 99 00 Springfield Creamery benefit, Lane County Fairgrounds, OR (1972) ** 08 31 99 99 00 Dead at New Orleans Pop Festival (1969) ** 09 03 99 99 00 Dead at Sky River Rock Festival, Washington (1968) ** 09 08 99 99 00 Ron "Pigpen" McKernan born (1945) ** 09 09 99 99 00 Alexandra Palace, London (start of '74 European Tour' (1974) ** 09 10 99 99 00 Rolling Thunder (1916) ** 09 11 99 99 00 Mickey Hart born (1943) ** 09 11 99 99 00 Ken Kesey born (1935) ** 09 14 99 99 00 Sound and Light Theatre, Gizah, Egypt, w/ Hamza El-Din, thru 9-16 (1978) ** 09 16 99 99 00 Albert Hoffman's first LSD experience (1943) ** 09 23 99 99 00 Jefferson Airplane/Muddy Waters headline first Winterland dance, SF (1966) ** 09 25 99 99 00 Warfield shows begin, SF (return of accoustic sets) (1980) ** 09 26 99 99 00 Record Factory auction of Dead artwork and memorabilia, San Rafael, SF (1976) ** 09 28 99 99 00 Last free Dead show in Golden Gate Park, SF w/ Starship (1975) ** 09 28 99 99 00 Cabrillo discovers California (1542 ) ** 09 29 99 99 00 Mickey Hart's first show, Straight Theatre, SF (1967) ** 10 01 99 99 00 SF State College Acid Test (1966) ** 10 02 99 99 00 710 Ashbury Street bust (1967) ** 10 04 99 99 00 Janis Joplin dies (1970) ** 10 06 99 99 00 LSD declared illegal (1966) ** 10 06 99 99 00 'Death of Hippie' ceremony, SF (1967) ** 10 07 99 99 00 First Winterland show as "The Grateful Dead", SF (1966) ** 10 08 99 99 00 First 'Mickey and the Harbeats' show, The Matrix, SF (1968) ** 10 09 99 99 00 Roadie benefit, Winterland, SF (1972) ** 10 09 99 99 00 Who/Dead Day on the Green, Oakland, CA (thru 10-10) (1976) ** 10 14 99 99 00 Warfield shows end, SF (1980) ** 10 15 99 99 00 Peace Festival, Mt. Tamalpais, CA (1966) ** 10 16 99 99 00 Bob Wier born (1947) ** 10 16 99 99 00 Dead 'retire' (five shows at Winterland), SF (1974) ** 10 19 99 99 00 Keith Godchaux's first show, Northrup Aud., Minn., MN (1971) ** 10 20 99 99 00 Mickey Hart rejoins band at Winterland (retirement shows end), SF (1974) ** 10 21 99 99 00 Brent Mydland born (1952) ** 10 21 99 99 00 Jack Kerouac dies (1969) ** 10 23 99 99 00 Radio City Music Hall shows begin, NYC (thru 10-31) (1980) ** 10 26 99 99 00 Dead play at North Face Ski Shop opening, SF (1966) ** 10 27 99 99 00 KSAN's live tape weekend (vintage Fillmore, Avalon tapes played), SF (1972) ** 11 06 99 99 00 Jefferson Airplane headline first Bill Graham show, SF (1965) ** 11 09 99 99 00 First issue of Rolling Stone published, SF (1967) ** 11 11 99 99 00 'Saturday Night Live' first appearance (1978) ** 11 15 99 99 00 Moratorium Day, Lanai Theatre, Crockett, CA (1969) ** 11 15 99 99 00 Fillmore East, NYC w/ Winwood, Wood, Capaldi, Ramblin' Jack Elliot (1970) ** 11 17 99 99 00 Acoustic benefit for Hunger Week, Chicago's Loyola College (1978) ** 11 24 99 99 00 Capital Theatre, Passaic, NJ, nationwide broadcast (1978) ** 12 04 99 99 00 San Jose Acid Test (1965) ** 12 06 99 99 00 Mill Valley Recreation Center (free concert), CA (1980) ** 12 10 99 99 00 First Fillmore Auditorium show (2nd Mime Troupe benefit), SF (1965) ** 12 17 99 99 00 'Death and Rebirth of the Haight A. and Death of Money' parade, SF (1966) ** 12 18 99 99 00 Big Beat Club Acid Test, Palo Alto, CA (1965) ** 12 26 99 99 00 St. Stephens' Day ** 12 27 99 99 00 First Dead Head arrives for Winterland closing, SF (1978) ** 12 31 99 99 00 First New Year's show Fillmore Auditorium, SR (1966) ** 12 31 99 99 00 New Year's Eve at The Ark, Boston, MA (1969) ** 12 31 99 99 00 Dead close Winterland, SF w/ Blues Bros., NRPS (1978) gcal-4.1/data/dates/events40000664000000000000000000010504112353520612012501 00000000000000# CalenTool V2.2 - nflag=1 range=7,8 - DO NOT REMOVE THIS LINE # $Header: events4,v 1.1 91/03/07 16:19:08 billr Exp $ # Notable events in history (July-Aug) # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # All dates in this file are New Style unless otherwise noted. # Some duplicates may exist where I haven't been able to verify which # one is correct. # ** 07 01 99 99 00 1st public schoolhouse opens at Washington and Mason Streets. (1861) ** 07 01 99 99 00 Battle of Gettysburg begins (1863) ** 07 01 99 99 00 Bretton Woods Conference starts, establishing world-wide financial systems (like the IMF and the World Bank) (1944) ** 07 01 99 99 00 Dominion of Canada formed. (1867) ** 07 01 99 99 00 East and West German money is unified in preparation for political unification of Germany (1990) ** 07 01 99 99 00 First Class Postage DROPS to 2 cents from 3 cents. (1919) ** 07 01 99 99 00 First adhesive postage stamp (1847) ** 07 01 99 99 00 Teddy Roosevelt and his Rough Riders charge up San Juan Hill. (1898) ** 07 01 99 99 00 The beginning of the first international geophysical year (1957) ** 07 01 99 99 00 lifting of proscription against wearing of tartans in Scotland (1782) ** 07 02 99 99 00 At 9 am President Garfield is shot in a railroad station in Washington (1881) ** 07 02 99 99 00 Continental Congress passed a resolution saying "These United Colonies are, and of right, out to be, free and independent states" (1776) ** 07 02 99 99 00 President Lyndon Johnson signed the Civil Rights Act (1964) ** 07 02 99 99 00 The Sherman Antitrust Act is passed (1890) ** 07 02 99 99 00 The Supreme Court ruled that the death penalty is inherently neither cruel or unusual (1976) ** 07 02 99 99 00 The United States Army Air Corps was created (1926) ** 07 03 99 99 00 1st savings bank in US (Bank of Savings in NYC) opens its doors (1819) ** 07 03 99 99 00 Idaho became the 43rd state (1890) ** 07 03 99 99 00 Quebec is founded. (1608) ** 07 03 99 99 00 The USS Vincennes shot down an Iran Air jetliner over the Persian Gulf, killing all 290 passengers and crew (1988) ** 07 03 99 99 00 Washington takes command of Continental Army at Cambridge, Mass (1775) ** 07 03 99 99 00 soldier in Paris strikes image of virgin Mary which then bleeds! (1518) ** 07 04 99 99 00 America's 50th flag, honoring Hawai's statehood was unfurled. (1960) ** 07 04 99 99 00 Aquarium opens in Woodward Gardens. (1873) ** 07 04 99 99 00 Battles of Vicksburg & Gettysburg won by Union forces (1863) ** 07 04 99 99 00 Boise, Idaho founded (now capital of Idaho). (1863) ** 07 04 99 99 00 Cloudy, 76 degrees F (Philadelphia, PA, 1776) ** 07 04 99 99 00 Declaration of Independence signed in Philadelphia PA (1776) ** 07 04 99 99 00 Elwood Haynes successfully tests one of the 1st US autos (1894) ** 07 04 99 99 00 New York abstains on Declaration of Independence vote (1776) ** 07 04 99 99 00 Pacific Cable (San Francisco, Hawaii, Guam, Phillipines) opens. President Roosevelt sends a message to the Phillipines,then a message around the world in 12 minutes (1903) ** 07 04 99 99 00 Statue of Liberty is given to U.S. to commemorate the French and American revolutions (1884) ** 07 04 99 99 00 The song "America" written by Dr Samual Smith on scrap of paper and performed by Boston school children (1832) ** 07 04 99 99 00 corner stone of Washington monument is laid by President Polk (1848) ** 07 05 99 99 00 Crusaders take Jerusalem after 5 week siege. In rage they kill 10000 men women and children (1100) ** 07 05 99 99 00 Duke of Monmouth's rebel army was defeated (1685) ** 07 05 99 99 00 Pvt. Kenneth Shadrick of Skin Fork, W.VA. became the first fatality in the Korean War (1950) ** 07 05 99 99 00 The 26th amendment giving voting rights to 18 year olds passes (1971) ** 07 05 99 99 00 Venezuela gains independence from Spain. (1811) ** 07 05 99 99 00 William Booth founds the Salvation Army, in London, England. (1865) ** 07 06 99 99 00 1st inoculation (for rabies) of a human being, by Louis Pasteur (1885) ** 07 06 99 99 00 First Class postage back up to 3 cents from 2 cents. (1932) ** 07 06 99 99 00 Lawrence of Arabia captures Aqaba (1917) ** 07 06 99 99 00 Louis Pasteur inoculates a human being for the first time, a small boy badly bitten by a dog (1885) ** 07 06 99 99 00 Richard III and Anne are crowned king and queen of England (1483) ** 07 06 99 99 00 The Republican Pary came into being at a convention in Jackson, MI (1854) ** 07 06 99 99 00 preview of 1st all-talking motion picture took place in NYC (1928) ** 07 07 99 99 00 By act of Congress a new "Great Seal of the United States" is recut based on the original design and the old seal, known as the "illegal seal", made illegally by the Secretary of State in 1841, is removed from use. (1884) ** 07 07 99 99 00 Hawaii annexed to the US. (1898) ** 07 07 99 99 00 The Land Grant Act passes Congress, allowing the establishment of land grant colleges and universities (such as CSU) (1862) ** 07 07 99 99 00 US occupies Iceland (1941) ** 07 07 99 99 00 a patent was granted for the travelers cheque. (1891) 90 07 08 99 99 00 A very interesting date and time: 12:34:56 7/8/90 ** 07 08 99 99 00 1st American Passport issued by the US State Department. (1796) ** 07 08 99 99 00 Edward II is crowned king of England (1307) ** 07 08 99 99 00 First public reading, Declaration of Independence (1776) ** 07 08 99 99 00 General Douglas McArthur is made commander of UN forces in Korea (1950) ** 07 08 99 99 00 Harbor Hospital formally opens. (1897) ** 07 08 99 99 00 Part of Angel Island allocated for Immigration Detention Center (1905) ** 07 08 99 99 00 William Jennings Bryan makes his 'cross of gold' speech at the Democratic Convention in Chicago (1896) ** 07 08 99 99 00 the Liberty Bell cracks (again). (1835) ** 07 09 99 99 00 10-hour working day set by law, New Hampshire (1847) ** 07 09 99 99 00 Argentina gains it's independence. (1816) ** 07 09 99 99 00 Bahamas Islands declare their independence (1973) ** 07 09 99 99 00 Capt Montgomery claims Yerba Buena (San Francisco) for the U.S. (1846) ** 07 09 99 99 00 Holland annexed by Napoleon (1810) ** 07 09 99 99 00 RAF begin night bombing of Germany (1940) ** 07 10 99 99 00 Lady Jane Grey takes the throne after Edward VI's death according to a paper he signed before his death (1553) ** 07 10 99 99 00 The Rainbow Warrior is sunk and one crewman killed by 2 magnetic mines placed by French agents (1985) ** 07 10 99 99 00 Wyoming becomes the 44th state. (1890) ** 07 10 99 99 00 the Scopes 'Monkey' Trial starts. (1925) ** 07 11 99 99 00 Confederate forces begin their assault on Washington, D.C. (1864) ** 07 11 99 99 00 English fleet defeats the Spanish Fleet at Messina (1718) ** 07 11 99 99 00 John Quincy Adams, 6th President (1825-1829) (1767) ** 07 11 99 99 00 Pope Clement VII excommunicates England's King Henry VIII (1533) ** 07 11 99 99 00 The Flemish infantry defeat the French cavalry in the "Battle of the Spurs" (1302) ** 07 11 99 99 00 The U.S. Air Force Academy was dedicated at Lowry Air Base in Colorado (1955) ** 07 11 99 99 00 The U.S. Marine Corps was offically created by Congress (1798) ** 07 11 99 99 00 VP Aaron Burr mortally wounded former Treasury Sec. Alex. Hamilton in a pistol duel near Weehawken, N.J. He dies the next day (1804) ** 07 11 99 99 00 the second battle of the Somme begins (1916) ** 07 12 99 99 00 Congress passes 1st minimum wage law ($0.33 per hour). (1933) ** 07 12 99 99 00 The United States Congress authorizes the Medal of Honor (1862) ** 07 12 99 99 00 The United States, under General William Hull, invades Canada (1812) ** 07 12 99 99 00 US Disciplinary Barracks on Alcatraz Island abandoned. (1934) ** 07 12 99 99 00 William of Orange defeated Roman Catholic army of James II, establishing Protestant domination in Northern Ireland (1690) ** 07 13 99 99 00 Horace Greeley of the New York Tribune said "Go west young man, go west" (1865) ** 07 13 99 99 00 New York City was powerless for 25 hours from lightning storm. (1977) ** 07 13 99 99 00 People riot in New York against law that says $300 lets one avoid the draft during which they burn an orphanage (1863) ** 07 13 99 99 00 Women first compete in Olympic games (1908) ** 07 14 99 99 00 1st public demonstration of ice made by refrigeration. (1850) ** 07 14 99 99 00 Commodore Perry requests trade relations with the Japanese. (1853) ** 07 14 99 99 00 George Washington refuses a letter from Gen. Howe addressed to George Washington Esq. rather than General Washington (1776) ** 07 14 99 99 00 King Faisal II of Iraq is overthrown; the Iraqi army declares a Republic (1958) ** 07 14 99 99 00 The Bastille is stormed in Paris, the French revolution begins (1789) ** 07 14 99 99 00 the 1st ascent of the Matterhorn. (1865) ** 07 15 99 99 00 National Health Insurance Act comes into force in Britain (1912) ** 07 15 99 99 00 Rome taken and pillaged by Genseric (455) ** 07 16 99 99 00 1st atomic blast, Trinity Site, Alamogordo, New Mexico. (1945) ** 07 16 99 99 00 1st major battle of the Civil War -- Bull Run. (1861) ** 07 16 99 99 00 Congress establishes the District of Columbia. (1790) ** 07 16 99 99 00 Congress looks into allegations that the Air Force had made 3,500 bombing raids on Cambodia in 1969 and 1970 (1973) ** 07 16 99 99 00 Cream forms (U.K., 1966) ** 07 16 99 99 00 Father Serra founds Mission San Diego, 1st mission in Calif. (1769) ** 07 16 99 99 00 First parking meters were installed, in Oklahoma City. (1935) ** 07 17 99 99 00 Charles VII of France crowned by Joan of Arc (1492) ** 07 17 99 99 00 Construction begins on Disneyland... (1954) ** 07 17 99 99 00 Disneyland opens its doors in rural Orange County. (1955) ** 07 17 99 99 00 Spain ceded Florida to the United States. (1821) ** 07 17 99 99 00 The Moors defeat the Spanish at Fraga (1134) ** 07 17 99 99 00 the British royal family changes its name from Hanover to Windsor to avoid connections with Germany (1917) ** 07 17 99 99 00 the first U.S. paper money was printed (1861) ** 07 18 99 99 00 Britain introduces voting by secret ballot. (1872) ** 07 18 99 99 00 Intel Corporation is incorporated. (1968) ** 07 18 99 99 00 Rome burns for 9 days again, this time under Nero (64) ** 07 18 99 99 00 Rome sacked and burned by Brennus the Gaul (390 BC) ** 07 18 99 99 00 Senator Edward Kennedy drives his car off of a bridge and into a tidal pool on Martha's Vineyard. The passenger Mary Jo Kopechne drowns in the car. (1969) ** 07 18 99 99 00 United Nations admits Vietnam (1977) ** 07 18 99 99 00 Women granted equality in divorce cases by the British Matrimonial Causes Act (1923) ** 07 19 99 99 00 British Prime Minister Winston Churchill launched his "V for Victory" campaign in Europe (1941) ** 07 19 99 99 00 First Women's Rights Convention. Seneca Falls, NY (1848) ** 07 19 99 99 00 Five Massachusetts women executed for witchcraft (1692) ** 07 19 99 99 00 Heavy Zeppelin raids on Britain (1917) ** 07 19 99 99 00 Lady Jane Grey's reign ends as support is thrown to Mary (1553) ** 07 19 99 99 00 The worst train wreck in US history in Nashville, TN killing 101 (1918) ** 07 19 99 99 00 after being dispersed by a storm, the Spanish Armada reassembles and enters the English Channel (1588) ** 07 20 99 99 00 Columbia gains it's independence. (1810) ** 07 20 99 99 00 Kilauea begins a long eruption that as of May 1990 had not stopped. In the process over 650M cubic yards of lava will be released. (1986) ** 07 20 99 99 00 a bridge near Moscow gives way under a procession of 200 Waldimar monks drowning 158 (1851) ** 07 20 99 99 00 a group of German officers attempt to assassinate Hitler with a bomb and thereby end the war (1944) ** 07 21 99 99 00 Belgium gains its independence from the Netherlands; King Leopold I is crowned (1830) ** 07 21 99 99 00 The Savannah, the first atomic powered passenger ship, is launched (1959) ** 07 21 99 99 00 The first train robbery is carried out by Jesse and Frank James at Adair Iowa. They got $3000. (1873) ** 07 21 99 99 00 Vietnam divided at 17th parallel (1954) ** 07 22 99 99 00 27 FBI men gun down Public Enemy Number One, John Dillinger, as he leaves a movie theater (1934) ** 07 22 99 99 00 Alexander Mackenzie reaches the Pacific Ocean after crossing Canada (1793) ** 07 23 99 99 00 Dr. Livingstone returns to England (1864) ** 07 23 99 99 00 Ice cream cone introduced, St. Louis, MO (1904) ** 07 23 99 99 00 Parliamentary act to unite upper and lower Canada (1840) ** 07 23 99 99 00 The Matrimonial Causes Act eases divorce in England and Wales (1937) ** 07 23 99 99 00 The sultan of Muscat and Oman is deposed by his son (1970) ** 07 23 99 99 00 Two canisters of CS gas (type used by Britain in Northern Ireland) are thrown into the House of Commons (1970) ** 07 23 99 99 00 Vanessa Williams became the first Miss America to resign her title because of photographs that were published in Penthouse magazine (1984) ** 07 23 99 99 00 first interment in US National Cemetary at Presidio. (1852) ** 07 24 99 99 00 Alabama dropped charges against five black men accused of raping two white women in the "scottsboro Boys" case (1937) ** 07 24 99 99 00 Brigham Young reaches the site of Salt Lake City (1847) ** 07 24 99 99 00 British Window Tax is abolished (1851) ** 07 24 99 99 00 the Scopes 'Monkey' Trial ends (he's found guilty). (1925) ** 07 25 99 99 00 A treaty prohibiting the testing of nuclear weapons in the atmosphere, in space or under water was initialed in Moscow (1963) ** 07 25 99 99 00 Henry IV of France becomes Catholic (1593) ** 07 25 99 99 00 James I of England is crowned (1603) ** 07 25 99 99 00 Portuguese defeat Moors at Ourique (1139) ** 07 25 99 99 00 The Italian liner Andrea Doria sank, killing 51 people. (1956) ** 07 25 99 99 00 a virtually undefended Constantinople falls to the Nicaean Army (1261) ** 07 26 99 99 00 Baron Rothschild becomes the first Jew to be admitted to the British Parliament (1858) ** 07 26 99 99 00 Ben Franklin appointed the first colonial postmaster (1753) ** 07 26 99 99 00 Benjamin Franklin becomes Postmaster General. (1775) ** 07 26 99 99 00 Fidel Castro began his revolt against the rule of Bastista. (1953) ** 07 26 99 99 00 Liberia gains it's independence. (1847) ** 07 26 99 99 00 New York becomes the 11th state (1788) ** 07 26 99 99 00 President Nasser of Egypt nationalizes the internationally owned Suez Canal (1956) ** 07 26 99 99 00 the start of the Black-Eyed Peas Jamboree in Athens, Texas ** 07 27 99 99 00 Cromwell wins the battle of Gainsborough (1643) ** 07 27 99 99 00 Cyrus W. Field succeeded in laying a reliable transatlantic cable after twelve years of trying (1,686 miles long) (1866) ** 07 27 99 99 00 General George McClellan was placed in charge of the Army of the Potomac (1861) ** 07 27 99 99 00 German troops invade Ukraine (1941) ** 07 27 99 99 00 House Judiciary Committee recommends President Nixon's impeachment (1974) ** 07 27 99 99 00 Ray Brennan becomes the first person to die of Legionnaire's disease following an outbreak at a Philadelphia American Legion convention (1976) ** 07 27 99 99 00 The Korean war armistice is signed at Panmunjom after over two years of meetings (1953) ** 07 27 99 99 00 The bank of England is incorporated (1694) ** 07 27 99 99 00 The highlanders defeat Mackay at Killiecrankie (1689) ** 07 28 99 99 00 1st Singing Telegram is delivered (to Rudy Vallee). (1933) ** 07 28 99 99 00 An earthquake of magnitude 8.2 kills an estimated 800,000 people in Tangshan, China (1976) ** 07 28 99 99 00 Austria-Hungary declares war on Serbia (1914) ** 07 28 99 99 00 Congress makes "The Star-Spangled Banner" our 2nd National Anthem. (1931) ** 07 28 99 99 00 Peru declares independence from Spain (1821) ** 07 28 99 99 00 The city of Miami was incorporated. (1896) ** 07 28 99 99 00 an Army bomber flies into the Empire State Building at the 79th floor killing 13 (1945) ** 07 28 99 99 00 federal troops dispersed the Bonus Army of WWI veterans who wanted the money they were to receive in 1945. (1932) ** 07 28 99 99 00 festival of Neptune. In Roman times they sacrificed bulls and horses. ** 07 28 99 99 00 the Hamburger is created by Louis Lassing in Connecticut (1900) ** 07 28 99 99 00 the fourteenth amendment, civil rights, is proclaimed in effect (1868) ** 07 29 99 99 00 1st commercial treaty between US and Japan is signed. (1858) ** 07 29 99 99 00 1st transcontinental airmail flight from New York to San Francisco (1920) ** 07 29 99 99 00 Dominguez-Escalante expedition begins (1776) ** 07 29 99 99 00 Hamburg is saved from the Hussites by presenting the children as supplicants. The Hussites were moved and gave children cherries. (1432) ** 07 29 99 99 00 Mongolia has its first elections ever (1990) ** 07 29 99 99 00 Pope Paul VI reaffirms Catholic Church's stand against artificial means of birth control (1968) ** 07 29 99 99 00 The International Atomic Agency was formed (1957) ** 07 29 99 99 00 The first oil arrives at Valdez through the Alaska pipeline (1977) ** 07 29 99 99 00 Transcontinental telephone service, begins with a call New York to San Francisco (1914) ** 07 29 99 99 00 fire on the aircraft carrier Forrestal kills 134 (1967) ** 07 30 99 99 00 "In God We Trust" made U.S. motto (1956) ** 07 30 99 99 00 Former Teamsters Pres. Jimmy Hoffa disappeared in Detroit. (1975) ** 07 30 99 99 00 George Eastman gives first demonstration of color movies (1928) ** 07 30 99 99 00 President Johnson signed into law the Medicare bill, which went into effect the next year (1965) ** 07 30 99 99 00 The city of Baltimore was founded. (1929) ** 07 30 99 99 00 the House of Burgesses in Virginia is formed. 1st elective governing body in a British colony (1619) ** 07 31 99 99 00 1st US Patent granted (for a potash process). (1790) ** 07 31 99 99 00 Christopher Columbus discovered the island of Trinidad. (1498) ** 07 31 99 99 00 First storm warnings are published by British Meteorological department (1861) ** 07 31 99 99 00 Flood in Big Thompson Canyon, Colorado, kills 139 (1976) ** 07 31 99 99 00 Iranian pilgrams clash with riot police in Mecca killing over 400 people (1987) ** 07 31 99 99 00 Marquis de Lafayette, a 19 year old French nobleman, is made a major general in the Continental army (1777) ** 07 31 99 99 00 Saxophone (invented five years earlier) introduced into French military bands (1845) ** 07 31 99 99 00 The last Playboy Club in the US closes. It was a franchised club in Lansing, Michigan (1988) ** 08 01 99 99 00 California introduces it's Sales Tax (for Education). (1953) ** 08 01 99 99 00 Charles Whitman shot and killed 15 people from the bell tower at the University of Texas before he was killed by police (1966) ** 08 01 99 99 00 Colorado becomes the 38th state (1876) ** 08 01 99 99 00 First Class postage up to 4 cents (had been 3 cents for 26 years). (1958) ** 08 01 99 99 00 Joseph Priestley, Britsh scientist, successfully isolates oxygen from air (1774) ** 08 01 99 99 00 Mark Antony's fleet defects to Octavius Caesar (30 BC) ** 08 01 99 99 00 President Truman establishes Atomic Energy Commission. (1946) ** 08 01 99 99 00 The U.S. and Canada agree to create the North American Air Defense Command (1957) ** 08 01 99 99 00 US Quarantine Station authorized for Angel Island. (1881) ** 08 01 99 99 00 Whisky Rebellion (1794) ** 08 01 99 99 00 first US census completed showing nearly 4 million people live in the 13 states (1790) ** 08 01 99 99 00 the Everlasting League forms, the basis of the Swiss Confederation. (1291) ** 08 02 99 99 00 Capitol Reef National Park is established in a bill signed by President FDR (1937) ** 08 02 99 99 00 Hannibal of Carthage, assisted by elephants, routed Romans at Canne (216 BC) ** 08 02 99 99 00 Iraq invades Kuwait with 100,000 troops and takes it in under a day (1990) ** 08 02 99 99 00 Julius Caesar says, "I came, I saw, I conquered" defeating Pharnaces at Zela (47 BC) ** 08 02 99 99 00 Navy Lt. John F. Kennedy rescued members of his crew after their PT boat was run down by a Japanese destroyer (1943) ** 08 03 99 99 00 Columbus sets sail with 119 men and 3 ships for the new world (1492) ** 08 03 99 99 00 Lake Victoria was discovered by Captain Speke (1858) ** 08 03 99 99 00 The earliest known letter to have been sealed with sealing wax was written on this day (1554) ** 08 03 99 99 00 U.S.S. Nautilus passes below north polar ice cap (1958) ** 08 03 99 99 00 War declared on France by Germany (1914) ** 08 03 99 99 00 Women's rights convention held in Rochester, New York demanding suffrage and property rights (1848) ** 08 04 99 99 00 Anne Frank and seven others are arrested by Nazis when their hideaway is raided (1944) ** 08 04 99 99 00 Bombing of North Vietnam begins (1964) ** 08 04 99 99 00 Britain declares war on Germany starting World War I (1914) ** 08 04 99 99 00 Champagne is invented by Dom Perignon. (1693) ** 08 04 99 99 00 United States Coast Guard founded. (1790) ** 08 05 99 99 00 Nuclear Test Ban Treaty signed. (1963) ** 08 05 99 99 00 The first income tax of 3% of all income over $800 (1861) ** 08 05 99 99 00 The first traffic light is installed in Cleveland, Ohio (1914) ** 08 06 99 99 00 Atomic bomb dropped on Hiroshima (1945) ** 08 06 99 99 00 Bolivia gains it's independence (1835) ** 08 06 99 99 00 Pakistani Prime Minister Benazir Bhutto's goverenment is overthrown by the President of Pakistan (1990) ** 08 06 99 99 00 The French war with Morocco begins (1844) ** 08 06 99 99 00 The Holy Roman Empire is formally ended (1806) ** 08 06 99 99 00 The United Nations imposes strong Economic sanctions against Iraq for its invasion of Kuwait. The USSR, US and Red China are all in agreement for once. (1990) ** 08 06 99 99 00 The electric chair was used for the first time at Auburn State (1890)Prison in New York. ** 08 07 99 99 00 1st servicable steamboat, the Cleremont, goes on 1st voyage. (1807) ** 08 07 99 99 00 George Washington created the Order of the Purple Heart. (1782) ** 08 07 99 99 00 The Gulf of Tonkin resolution passed, giving Pres. Johnson broad powers in dealing with North Vietnamese attacks on U.S. forces (1964) ** 08 07 99 99 00 The revolving door is patented (1888) ** 08 07 99 99 00 the accidental release of enriched uranium at a top secret fuel plant near Erwin, Tenn results in 1000 people being exposed to some abnormal levels of radiation (1979) 88 08 08 99 99 00 Today the date is 8/8/88 ** 08 08 99 99 00 Benny Goodman's first paying job as a clarinet player (1923) ** 08 08 99 99 00 Great Train Robbery bags $7,368,000 (1963) ** 08 08 99 99 00 Montenegro declares war on Germany (1914) ** 08 08 99 99 00 Napoleon Bonaparte set sail for St. Helena to spend the rest of his days in exile (1815) ** 08 08 99 99 00 Nixon announces that he will resign at noon the following day (1973) ** 08 08 99 99 00 President Bush orders two divisions of troops to Saudi Arabia in response to possible invasion from Iraq (1990) ** 08 08 99 99 00 The Duchess of York (Fergie) gives birth to her first child, a baby girl (1988) ** 08 08 99 99 00 The silver dollar and the decimal system of money adopted by Congress (1786) ** 08 08 99 99 00 the Smithsonian Institution is founded in Washington D.C. (1846) ** 08 09 99 99 00 Atomic bomb dropped on Nagasaki (1945) ** 08 09 99 99 00 Helter Skelter...the Charles Manson murders (1969) ** 08 09 99 99 00 Persia defeats Spartan King Leonidas at Thermopylae (480 BC) ** 08 09 99 99 00 Richard Nixon resigns the US presidency (1974) ** 08 09 99 99 00 U.S./Canada border defined in Webster-Ashburton Treaty (1842) ** 08 10 99 99 00 Britain applies of EEC membership (1961) ** 08 10 99 99 00 Chicago incorporated as a village of 300 people (1833) ** 08 10 99 99 00 Columbia became the 1st American ship to sail around the globe. (1790) ** 08 10 99 99 00 Construction began on the astronomical observatory at Greenwich England by order of Charles II (1675) ** 08 10 99 99 00 Ecuador gains it's independence. (1809) ** 08 10 99 99 00 Heavy losses are inflicted to the Russian Fleet off Port Aurthor by the Japanese (1904) ** 08 10 99 99 00 Missouri became the 24th state. (1821) ** 08 10 99 99 00 Mobs in Paris attacked the palace of Louis XVI. (1792) ** 08 10 99 99 00 Pueblo revolt starts between Pueblo Indians and their Spanish rulers (1680) ** 08 10 99 99 00 The Mines Act promoted by Lord Ashley prohibits women and young children from working in the mines (1842) ** 08 10 99 99 00 The Spanish and the English defeat the French at St. Quentin (1557) ** 08 10 99 99 00 U.S. & Panama agree to transfer canal in year 2000 (1977) ** 08 10 99 99 00 Violent encounters between Red Guards and workers in Canton (1967) ** 08 11 99 99 00 France ends its involvement in the war in Indochina (1954) ** 08 11 99 99 00 King Hussein's Accession to the Throne in Jordan (1952) ** 08 11 99 99 00 Watts, Los Angeles, riots kill two, injure 25 (1965) ** 08 12 99 99 00 George Cormack discovered gold in Klondike Creek in the Yukon (1896) ** 08 12 99 99 00 Last U.S. ground troops out of Vietnam (1972) ** 08 12 99 99 00 Postal reform measure signed creating an independent U.S. Postal Service (1970) ** 08 13 99 99 00 East Germany sealed off the border between East and West Berlin, to halt the flow of refugees out of its territory (1961) ** 08 13 99 99 00 Hernado Cortez returning with more troops finally takes Mexico (1521) ** 08 13 99 99 00 Reciprocity Treaty between US and Hawaii ratified. (1876) ** 08 14 99 99 00 An international force including U.S. Marines enter Beijing to put down the Boxer rebellion (1900) ** 08 14 99 99 00 British troops arrive in Ireland to put down sectarian violence between Roman Catholics and Protestants (1969) ** 08 14 99 99 00 Pakistan became independent of British rule (1947) ** 08 14 99 99 00 President Roosevelt and Prime Minister Churchill sign the Atlantic Charter (1941) ** 08 14 99 99 00 Social Security begins in U.S. (1935) ** 08 14 99 99 00 Strike at Gdansk ship yards in Poland marks beginning of the Solidarity union in Poland (1980) ** 08 14 99 99 00 The Japanese surrender to Allies ending World War II (1945) ** 08 14 99 99 00 The Oregon Territory was established. (1848) ** 08 14 99 99 00 The first Russian settlement is established in Alaska on Kodiak Island (1784) ** 08 14 99 99 00 U.S. bombing of Cambodia came to a halt, marking the official end to 12 years of U.S. combat in Indochina (1973) ** 08 14 99 99 00 V-J (Victory in Japan) Day (1945) ** 08 14 99 99 00 war declared on Germany and Austria by China (1917) ** 08 15 99 99 00 Diplomatic relations are cut off between US and USSR (1918) ** 08 15 99 99 00 Gandhi's movement obtains independence (Pakistan, India, 1947) ** 08 15 99 99 00 Hurricane hits Plymouth Plantation (1635) ** 08 15 99 99 00 India became independent after 200 years of British rule. (1947) ** 08 15 99 99 00 the Congo (Brazzaville) gains it's independence. (1960) ** 08 15 99 99 00 the first ship to cross through the Panama Canal enters the Pacific (1914) ** 08 16 99 99 00 Richard I leader in the Crusades executed 2500 Turks to make medicine from their bile (1191) ** 08 16 99 99 00 Roller Coaster patented (1898) ** 08 16 99 99 00 The British capture Detroit (1812) ** 08 16 99 99 00 the Tate Gallery in London is opened (1897) ** 08 17 99 99 00 Allied Forces take Sicily (1943) ** 08 17 99 99 00 Federal ships and guns bombarded Fort Sumter in Charleston harbor (1863) ** 08 17 99 99 00 First public bath opened in New York City (1891) ** 08 17 99 99 00 Indonesia gains it's independence. (1950) ** 08 17 99 99 00 Robert Fulton's North River Steam Boat 'Clermont' began chugging up the Hudson on its successful round trip to Albany (1807) ** 08 17 99 99 00 the Dow Jones hits 2700 for the first time ever (1987) ** 08 18 99 99 00 James Meredith became the first black to graduate from the University of Mississippi (1963) ** 08 18 99 99 00 Tennessee became the 36th state to ratify the 19th Amendment, guaranteeing women the right to vote (1920) ** 08 19 99 99 00 Canada Co. chartered to colonize Upper Canada (Ontario). (1826) ** 08 19 99 99 00 Francis Gary Powers convicted of spying by USSR (U-2 incident) (1960) ** 08 19 99 99 00 Gail Borden patents condensed milk (1856) ** 08 19 99 99 00 President Ford won the Republican presidential nomination. (1976) ** 08 20 99 99 00 President Johnson signs a nearly $1 billion dollar antipoverty bill (1964) ** 08 20 99 99 00 The Germans occupy Brussels, Belgium (1914) ** 08 20 99 99 00 The Soviet Union and other Warsaw Pact nations invades Czechoslovakia to crush the "Prague Spring" liberalization movement (1968) ** 08 20 99 99 00 U.N. security council votes 14-0 (U.S. Abstaining) to censure Israel for declaring all of Jerusalem its capital (1980) ** 08 20 99 99 00 Winston Churchill says of the RAF, "Never in the history of Human conflict was so much owed by so many to so few." (1940) ** 08 21 99 99 00 First peace time nuclear death (1945) ** 08 21 99 99 00 Florida's first woman Chief of Police, Sue Wegner, was sworn in as chief of Mineola (1979) ** 08 21 99 99 00 Hawaii became the 50th state. (1959) ** 08 21 99 99 00 Nat Turner rebellion (1831) ** 08 21 99 99 00 first of the Lincoln/Douglas debates (1858) ** 08 22 99 99 00 England's King George III proclaimed the American colonies to be in a state of open rebellion (1775) ** 08 22 99 99 00 England's King Richard III was killed, ending the War of the Roses. (1485) ** 08 22 99 99 00 It was announced that the Mona Lisa was stolen from the Louvre sometime the night before. It turned up in Italy two years later. (1911) ** 08 22 99 99 00 John Fitch's steamboat completes it's tests, years before Fulton builds his steamboat (1787) ** 08 22 99 99 00 Pope Paul VI, begins the first papal visit to Latin America (1968) ** 08 22 99 99 00 St. Columba reports seeing monster in Loch Ness (565) ** 08 22 99 99 00 The United States annexes New Mexico (1846) ** 08 22 99 99 00 Theodore Roosevelt becomes the first president to ride in an automobile (1902) ** 08 23 99 99 00 Alexander Goodunov, Soviet ballet dancer, defects to U.S. (1979) ** 08 23 99 99 00 Christopher Columbus arrested for mistreating the natives of Haiti (1500) ** 08 23 99 99 00 Fanny Farmer opens her school of cooking (1902) ** 08 23 99 99 00 Germany and the Soviet Union sign a nonagression treaty (1939) ** 08 23 99 99 00 Ion Antonescu, Romanian Prime Minister, is overthrown making way for Romania to join the Allies in World War II (1944) ** 08 23 99 99 00 Japan declares war on Germany (1914) ** 08 23 99 99 00 Mount Holyoke Female Seminary in South Hadley, Massachusetts, one of the first colleges for women in the U.S., graduates its first students (1838) ** 08 23 99 99 00 Nazi Germany and the Soviet Union signed a non-aggression treaty. (1939) ** 08 23 99 99 00 Nicola Sacco and Bartolomeo Vanzetti were executed in Boston for killing two men in a payroll holdup. In 1977 Massachusetts Governor Michael Dukakis vindicated them. (1927) ** 08 23 99 99 00 Rome is take by the Visigoths (410) ** 08 24 99 99 00 -126.9 degrees F (Vostok, Antarctica, 1960) ** 08 24 99 99 00 Alaric takes Rome (410) ** 08 24 99 99 00 British troops burn Washington, D.C. (1814) ** 08 24 99 99 00 Monterey taken from Mexico by U.S. forces (1846) ** 08 24 99 99 00 Movie camera patented (1891) ** 08 24 99 99 00 Pompeii is buried. (79) ** 08 24 99 99 00 The North Atlantic Treaty went into effect; parties agreed that an armed attack against one would be considered "an attack on all" (1949) ** 08 24 99 99 00 The St. Bartholomew's Day Massacre, more than 30000 people killed in riots of French Catholics against Protestant Huguenots (1572) ** 08 24 99 99 00 Vesuvius erupts covering Pompeii, Herculaneum and Stabiae with 60ft of ash and mud (79) ** 08 24 99 99 00 Workers start pouring concrete for the Panama Canal. (1909) ** 08 24 99 99 00 the Waffle Iron is invented. (1869) ** 08 25 99 99 00 1500 Iroquois Indians kill all 200 inhabitants of Montreal (1689) ** 08 25 99 99 00 800 French immigrants arrived in Louisiana to found New Orleans (1718) ** 08 25 99 99 00 Allied forces liberated Paris, ending four years of German occupation during World War II (1944) ** 08 25 99 99 00 President Harry Truman calls in the army to seize control of the railroads to avert a national railroad strike (1950) ** 08 25 99 99 00 The National Park Service is established as part of the Department of the Interior (1916) ** 08 25 99 99 00 The ending of the General Council of Nicaea, which settled on the rules for computing the day for Easter (325) ** 08 25 99 99 00 Uraguay declared independence from Brazil (1825) ** 08 25 99 99 00 the skies of Northern and Central Colorado get an orange haze from smoke of the giant Yellowstone National Park forest fires that have burned over 300,000 acres (1988) ** 08 26 99 99 00 Britain and China sign a peace treaty (1842) ** 08 26 99 99 00 Cambridge Agreement pledged. Massachusetts Bay Co. stockholders agreed to emigrate to New England (1629) ** 08 26 99 99 00 Edward III beats the French at the battle of Crecy (1346) ** 08 26 99 99 00 John Fitch granted a US patent for his working steamboat. (1791) ** 08 26 99 99 00 Julius Caesar arrives for the first time in England with 8000 troops (55 BC) ** 08 26 99 99 00 The 19th amendment on women's suffrage becomes effective (1920) ** 08 27 99 99 00 1st successful oil well drilled near Titusville, Penn. (1859) ** 08 27 99 99 00 Kellogg-Briand Pact, where 60 nations agreed to outlaw war. (1928) ** 08 27 99 99 00 Krakatoa, west of Java, explodes with a force of 1,300 megatons, killing 36000 people and was heard 3000 miles away (1883) ** 08 27 99 99 00 Mrs. Fay Bridges became 1st woman to vote in a Florida election. (1920) ** 08 28 99 99 00 Dr. Martin Luther King Jr. delivered his "I have a dream" speech in front of the Lincoln Memorial (1963) ** 08 28 99 99 00 More than 520 people died as an earthquake shook central Mexico. (1973) ** 08 29 99 99 00 Rock Springs Massacre, Chinese killed by miners in Rock Springs, WY (1885) ** 08 29 99 99 00 The Chinese-American dish chop suey was invented in N.Y.City. (1896) ** 08 29 99 99 00 U.S. Sen. Strom Thurmond ended a filibuster against a civil rights bill after talking for more than 24 hours (1957) ** 08 30 99 99 00 75 cents per pound tariff set on opium (1842) ** 08 30 99 99 00 Japan Stationery Co. sells first felt-tipped pen (1960) ** 08 30 99 99 00 Union forces were defeated by the Confederates at the Second Battle of Bull Run (1862) ** 08 30 99 99 00 Washington-to-Moscow hot line connected (1963) ** 08 31 99 99 00 Mary Ann Nichols becomes the first victim of Jack the Ripper (1888) ** 08 31 99 99 00 Non-aggression pact signed by U.S.S.R. & Afghanistan (1926) ** 08 31 99 99 00 Solidarity Labor Union in Poland is founded. (1980) ** 08 31 99 99 00 The Caribbean nation of Trinidad and Tobago became independent within the British Commonwealth (1962) ** 08 31 99 99 00 The Department of Housing and Urban Development was established. (1965) ** 08 31 99 99 00 The first recorded major earthquake in U.S. history rocked Charleston, S.C., killing up to 110 people (1886) gcal-4.1/data/dates/events10000664000000000000000000007116012353520606012505 00000000000000# CalenTool V2.2 - nflag=1 range=1,2 - DO NOT REMOVE THIS LINE # $Header: events1,v 1.1 91/03/07 16:19:03 billr Exp $ # Notable events in history (Jan-Feb) # Today in History dates provided by Robert Heckendorn at # Hewlett-Packard in Fort Collins, Colorado. # Any corrections or additions may be sent to robert@fc.hp.com # # Additional dates provided from ProLine's today file # # Converted to calentool format by Larry Virden (lwv27%cas.BITNET@CUNYVM.CUNY.Edu) # and further edited and merged by Bill Randle (billr@saab.cna.tek.com). # All dates in this file are New Style unless otherwise noted. # Some duplicates may exist where I haven't been able to verify which # one is correct. # ** 01 01 99 99 00 Alcatraz officially becomes a Federal Prison. (1934) ** 01 01 99 99 00 At&T officially divests its local Bell companies (1984) ** 01 01 99 99 00 Castro expels Cuban President Batista (1959) ** 01 01 99 99 00 Churchill delivers "Iron Curtain" speech (1947) ** 01 01 99 99 00 Emancipation Proclamation issued by Lincoln. (1863) ** 01 01 99 99 00 England conquers Burma (1886) ** 01 01 99 99 00 European Economic Community (EEC) starts operation. (1958) ** 01 01 99 99 00 Ex-Atty. Gen. Mitchell, Halderman and Ehrlichman were convicted on cover-up charges relating to Watergate break-in (1975) ** 01 01 99 99 00 First annual Festival of Fools in Paris ridiculing nuns and priests (1198) ** 01 01 99 99 00 Haiti gains it's independence (1804) ** 01 01 99 99 00 Lincoln makes Emancipation Proclamation (1863) ** 01 01 99 99 00 Noon on this day is the epoch for Julian Day (JD) (4713 BC) ** 01 01 99 99 00 Samuel Pepys begins his diary (1660) ** 01 01 99 99 00 Sudan gains it's independence (1956) ** 01 01 99 99 00 The Epoch (Time 0 for UNIX systems, Midnight GMT) (1970) ** 01 02 99 99 00 Bert Parks fired from Miss America Pageant (1980) ** 01 02 99 99 00 Cigarette adds are banded from television (1971) ** 01 02 99 99 00 Dominguez-Escalante expedition of the South West ends in Santa Fe, NM (1777) ** 01 02 99 99 00 Georgia becomes the 4th state (1788) ** 01 02 99 99 00 German Chancellor Adolf Hitler becomes Time Magazine's Man of the Year (1939) ** 01 02 99 99 00 King Zog of Albania is deposed (1946) ** 01 02 99 99 00 Religious services were first broadcast at KDKA Pittsburgh (1921) ** 01 02 99 99 00 Secretary of State Johhn Hay announces the Open Door Policy with China to improve trade (1900) ** 01 02 99 99 00 The Japanese take the Philippine capital of Manila (1942) ** 01 02 99 99 00 The United States and Canada announced an agreement on joint action to preserve Niagara Falls (1929) ** 01 03 99 99 00 1st drinking straw is patented. (1888) ** 01 03 99 99 00 Alaska becomes the 49th state (1959) ** 01 03 99 99 00 Senators and Representatives end their terms on this day ** 01 03 99 99 00 Southern Pacific RR offers to bring the Liberty Bell to the Exposition without charge (1912) ** 01 03 99 99 00 Steam explosion in a military experimental reactor SL-1 in Idaho Falls kills three (1961) ** 01 03 99 99 00 The artificial drinking straw patented (1883) ** 01 03 99 99 00 The opening of Congress is first televised (1947) ** 01 03 99 99 00 US severs ties with Cuba (1961) ** 01 04 99 99 00 First auto crosses the Sahara desert (1924) ** 01 04 99 99 00 Great Britain grants independence to Burma (1948) ** 01 04 99 99 00 North Korean forces capture Seoul, Korea (1951) ** 01 04 99 99 00 The first around the world bicycle trip (1887) ** 01 04 99 99 00 Utah becomes the 45th state (1896) ** 01 05 99 99 00 -50 degrees F (Strawberry, UT, 1913) ** 01 05 99 99 00 Joseph Yablonski, his wife and daughter are found shot in their home. United Mine Workers chief Tony Boyle is later convicted of the killing (1970) ** 01 05 99 99 00 Ronald Reagan proposes first trillion dollar US budget (1987) ** 01 05 99 99 00 The emperor of China declares the English to be outlaws (1840) ** 01 05 99 99 00 Two GM plants in Flint, Michigan, are taken over by the Teamsters Union protesting intolerable work conditions (1936) ** 01 06 99 99 00 Arizona becomes the 47th state. ** 01 06 99 99 00 Franklin D. Roosevelt delivers his "Four Freedoms" speech in which he spoke of freedom of speech, worship, from want and from fear (1941) ** 01 06 99 99 00 Great Plains blizzard (1886) ** 01 06 99 99 00 New Mexico becomes the 47th state (1912) ** 01 06 99 99 00 Samuel Morse demonstrated his telegraph for the first time (1838) ** 01 06 99 99 00 Stock brokerage firm of Merrill Lynch founded. (1914) ** 01 07 99 99 00 1st balloon flight across the English Channel. (1785) ** 01 07 99 99 00 Intel is the first to copyright a chip mask. It is for a 256K EPROM (1985) ** 01 07 99 99 00 The first atomic submarine, the U.S.S. Nautilus, sets sail (1955) ** 01 07 99 99 00 U.S. First Class postage raised from 4 cents to 5 cents. (1963) ** 01 07 99 99 00 U.S. First Class postage raised from 5 cents to 6 cents. (1968) ** 01 07 99 99 00 the typewriter is patented (it was built years later) (1714) ** 01 08 99 99 00 American Telephone and Telegraph loses antitrust case (1982) ** 01 08 99 99 00 Battle of New Orleans ** 01 08 99 99 00 Eleventh Amendment, lawsuits against states, proclaimed (1798) ** 01 08 99 99 00 Gallipoli evacuated by the British (1916) ** 01 08 99 99 00 Lyndon Johnson announces his "War on Poverty" (1964) ** 01 09 99 99 00 1st income tax imposed, in England. (1799) ** 01 09 99 99 00 5.9 earthquake in New England/Canada; last one was in 1855. (1982) ** 01 09 99 99 00 Connecticut becomes the 5th state (1788) ** 01 09 99 99 00 Mississippi secedes from the union (1861) ** 01 09 99 99 00 St. Marciana is martyred by being torn to bits by a leopard and a wild bull in the Caesarea amphitheater (309) ** 01 09 99 99 00 the daguerrotype process announced at French Academy of Science (1839) ** 01 10 99 99 00 1st underground railway opens in London. (1863) ** 01 10 99 99 00 First meeting of United Nations General Assembly (London, 1946) ** 01 10 99 99 00 First oil gusher, Beaumont TX (1901) ** 01 10 99 99 00 In San Diego the first aerial photo is taken (1911) ** 01 10 99 99 00 Los Angeles Railway (with 5 streetcar lines) forced to close. (1945) ** 01 10 99 99 00 Pre-paid postage by means of stamped labels comes into use in Britain (1840) ** 01 10 99 99 00 the Penny Post mail system is started. (1840) ** 01 11 99 99 00 First English lottery was carried out. This continued as a money maker till 1826 (1569) ** 01 11 99 99 00 France touches off an international uproar when it releases Abu Daoud, a Palestinian suspected of being involved with the massacre of Israeli athletes at the 1972 Olympics. (1977) ** 01 11 99 99 00 Michigan Territory was created (1805) ** 01 11 99 99 00 Prithvi Jayanti in Nepal ** 01 11 99 99 00 Surgeon General condemns cigarettes (1964) ** 01 11 99 99 00 The Hudson, the first sedan style car, goes on display at the 13th annual Automobile show in New York (1913) ** 01 11 99 99 00 Whiskey-A-Go-Go opens (Sunset Boulevard, Los Angeles, 1963) ** 01 12 99 99 00 House defeats women's suffrage proposal (1915) ** 01 13 99 99 00 Anthony Foss obtains patent for the Accordion. (1854) ** 01 13 99 99 00 NY Times Editorial says rockets can never fly. (1920) ** 01 13 99 99 00 The British War office abolishes the lance as a weapon of battle (1928) ** 01 14 99 99 00 Castro visits Russia (1964) ** 01 14 99 99 00 English Labour Party founded (1893) ** 01 14 99 99 00 Henry Ford introduces the Assembly Line for his cars. (1914) ** 01 14 99 99 00 Izaak Walton League, anglers group, was formed (1922) ** 01 14 99 99 00 L.M. "Mario" Giannini elected president of Bank of America. (1936) ** 01 14 99 99 00 the Revolutionary War formally ends. (1784) ** 01 15 99 99 00 21 die when hit with a 30 foot high wall of Molasses (1919) ** 01 15 99 99 00 Governor Kieft purchased part of Long Island from Indians on behalf of New Netherlands (1639) ** 01 15 99 99 00 Steam elevator patented by Elisha Otis, forming base for his (1861)elevator company. ** 01 15 99 99 00 The Pentagon Building in Washington is completed. (1948) ** 01 16 99 99 00 G. H. Hardy receives the famous Ramanujan letter (1913) ** 01 16 99 99 00 Ivan the Terrible was crowned czar of Russia (1547) ** 01 16 99 99 00 Prohibition begins (1920) ** 01 16 99 99 00 Set uid bit patent issued (1979) ** 01 16 99 99 00 The Shah of Iran, Shah Mohammed Reza Pahlevi, leaves Iran for Egypt (1979) ** 01 16 99 99 00 The first run of the Orient Express (1872) ** 01 17 99 99 00 1st Cable Car is patented by Andrew S. Hallidie. (1871) ** 01 17 99 99 00 Flush toilet is patented by Mr. Thomas Crapper (Honest (1861) ** 01 17 99 99 00 It was Tin Can Drive Day. (1943) ** 01 17 99 99 00 Justice Department begins IBM suit (1969) ** 01 17 99 99 00 The US buys the Virgin Islands from Denmark for $25M (1917) ** 01 17 99 99 00 US and its allies start air attacks on Iraq in Operation Desert Storm (1991) ** 01 17 99 99 00 the Kingdom of Hawaii becomes a republic. (1893) ** 01 18 99 99 00 1st UFO sighting in America, by perplexed Pilgrims in Boston. (1644) ** 01 18 99 99 00 Captain Cook sights Hawaii which he dubs the Sandwich Islands (1778) ** 01 18 99 99 00 English explorer Robert F. Scott reaches the South Pole only to discover that Roald Amundsen had beaten them. (1912) ** 01 18 99 99 00 The World War I peace conference opens in Versailles (1919) ** 01 19 99 99 00 A presidential news conference was filmed for the first time. The president was Eisenhower. (1955) ** 01 19 99 99 00 Ezra Daggett and his nephew, Thomas Kensett, obtain a patent for storing food in a tin can (1825) ** 01 19 99 99 00 Guy Hunt becomes Alabama's first Republican governor since 1874 (1987) ** 01 19 99 99 00 In one of Gerald Ford's last acts as president, he pardoned Iva Toguri D'Aquino aka Tokyo Rose (1977) ** 01 20 99 99 00 1st English Parliament called into session by the Earl of Leicester (1265) ** 01 20 99 99 00 British-Chinese Treaty of Peking is signed (1925) ** 01 20 99 99 00 Edward VIII ascends the throne of England upon the death of George V (1936) ** 01 20 99 99 00 Iran releases 52 Americans it had held hostage for 444 days, only minutes after Jimmy Carter left the Presidency (1981) ** 01 20 99 99 00 London Docks opened (1805) ** 01 20 99 99 00 Nazi officials hold the infamous Wannsee conference in Berlin at which they decide on their "final solution"; the extermination of all Jews (1942) ** 01 20 99 99 00 Terry Waite, Anglican Church envoy, kidnapped in Lebanon (1987) ** 01 20 99 99 00 The U.S. Senate approved the leasing of Pearl Harbor in Hawaii as a naval base (1887) ** 01 20 99 99 00 The first assembly of the Commons as an agreed representational body (according to Sir William Dugdale) (1265) ** 01 21 99 99 00 Alger Hiss, State Department official, found guilty of perjury by New York federal jury (1950) ** 01 21 99 99 00 Glen Canyon Dam is dedicated (1963) ** 01 21 99 99 00 Jefferson Davis and four other Southern Senators resign from the Senate (1861) ** 01 21 99 99 00 New York City enacted an ordinance that made smoking by women in public punishable by a fine of from $5 to $25 and up to 10 days in jail. (1908) ** 01 21 99 99 00 President Jimmy Carter pardoned most Vietnam War draft dodgers (1977) ** 01 21 99 99 00 The Wilderness Society is formed (1935) ** 01 21 99 99 00 The first Kiwanis Club was founded in Detroit (1915) ** 01 21 99 99 00 USS Nautilus is christened by Mamie Eisenhower and is the first nuclear powered ship (1954) ** 01 22 99 99 00 Supreme Court overturns all state laws that limited a woman's right to abortion to the first 3 months (1973) ** 01 23 99 99 00 The Alaskan pipeline is authorized (1973) ** 01 23 99 99 00 The US Navy bathyscaph, Trieste, descends to a depth of over 35000 feet (1960) ** 01 23 99 99 00 The USS Pueblo is seized by the North Koreans (1968) ** 01 24 99 99 00 1st beer in cans is sold. (1935) ** 01 24 99 99 00 Alann (sic) Steen, communications instructor at Beirut University College, was kidnapped in Lebanon (1987) ** 01 24 99 99 00 Amazon Indians attack oil drilling crew with poison darts (1984) ** 01 24 99 99 00 Christian K. Nelson of Onawa, Iowa, patented the Eskimo Pie (1922) ** 01 24 99 99 00 Earthquake kills 890,000 people in China (1556) ** 01 24 99 99 00 Gold discovered in California at Sutter's Mill (1848) ** 01 24 99 99 00 Jesse Turner, professor of mathematics and computer science at Beirut University College, was kidnapped in Lebanon (1987) ** 01 24 99 99 00 President Franklin D. Roosevelt and Winston Churchill conclude conference in Casablanca (1943) ** 01 24 99 99 00 US Supreme Court rules income tax is unconstitutional (1916) ** 01 24 99 99 00 the rubber heel is patented by Humphrey O'Sullivan. (1899) ** 01 25 99 99 00 Alexander Bell in New York calls Thomas Watson in San Francisco. (1915) ** 01 25 99 99 00 Major-General Idi Amin deposes President Obote in Uganda (1971) ** 01 26 99 99 00 1st settlement established by the English in Australia. (1788) ** 01 26 99 99 00 Captain Wells discovers the largest diamond in the world, at the premier Mines in Pretoria, South Africa (1905) ** 01 26 99 99 00 Hindi made the official language of India (1965) ** 01 26 99 99 00 Hong Kong proclaimed a British sovereign territory (1841) ** 01 26 99 99 00 India becomes a republic. (1950) ** 01 26 99 99 00 Italian forces help General Franco and his rebel forces take Barcelona (1939) ** 01 26 99 99 00 Michigan becomes the 26th state (1837) ** 01 26 99 99 00 Sydney Australia settled (1778) ** 01 27 99 99 00 1st Tape Recorder is sold. (1948) ** 01 27 99 99 00 Dante exiled from Florence (1302) ** 01 27 99 99 00 Military draft ends (1973) ** 01 27 99 99 00 The first US bombing raid on Germany in World War II (1943) ** 01 27 99 99 00 Vietnam War cease-fire signed (1973) ** 01 28 99 99 00 First commercial telephone exchange initiated, in New York City (1878) ** 01 28 99 99 00 First ski tow, Woodstock VT (1914) ** 01 28 99 99 00 George W. Coy hired as 1st full-time telephone operator. (1878) ** 01 28 99 99 00 London's Pall Mall is the 1st street lit by gaslight. (1807) ** 01 28 99 99 00 The Coast Guard is founded (1915) ** 01 28 99 99 00 The first penal colony in Australia is founded at Botany Bay (1788) ** 01 29 99 99 00 Britain is refused entry into the common market (1961) ** 01 29 99 99 00 Greenwich Mean Time is adopted by Scotland (1848) ** 01 29 99 99 00 Kansas becomes the 34th state (1861) ** 01 29 99 99 00 Karl Friedrich Benz patents the first petrol driven motor car (1886) ** 01 29 99 99 00 The Victoria Cross is instituted by Queen Victoria (1856) ** 01 29 99 99 00 death warrant for Charles I is issued (1649) ** 01 29 99 99 00 the 18th amendment, prohibition of liquor, is proclaimed (1919) ** 01 30 99 99 00 First German submarine attack without warning occurs off the French Coast (1915) ** 01 30 99 99 00 Hitler made Chancellor of Germany (1933) ** 01 30 99 99 00 Mahatma Gandhi assassinated in New Delhi by Hindu fanatic (1948) ** 01 30 99 99 00 The Tet Offensive (1968) ** 01 30 99 99 00 US Navy's 1st ironclad warship, the "Monitor", launched. (1862) ** 01 30 99 99 00 pistol misfires in attempt to kill president Andrew Jackson (1835) ** 01 31 99 99 00 Irving Langmuir invents the tungsten filament lamp (1881) ** 01 31 99 99 00 Leon Trotsky expelled from the USSR (1929) ** 01 31 99 99 00 Moscow McDonalds opens, the largest McDonalds to date and the first McDonalds in the Soviet Union (1990) ** 01 31 99 99 00 The highest high pressure ever recorded in North America. 30.85 inches in Alaska (1989) ** 01 31 99 99 00 Truman directs the Atomic Energy Commission to begin work on a hydrogen bomb (1950) ** 02 01 99 99 00 Bricklayers start working 8-hour days. (1867) ** 02 01 99 99 00 Forces led by Khomeini take over Iran (1979) ** 02 01 99 99 00 RCA Victor unveils 45 rpm record system (1949) ** 02 01 99 99 00 Water begins backing up at Hoover Dam (1935) ** 02 01 99 99 00 the 1st armored car is introduced. (1920) ** 02 02 99 99 00 Cardiff Giant revealed as a hoax (1870) ** 02 02 99 99 00 Idi Amin declares himself to be absolute ruler for "ever and ever"in Uganda (1971) ** 02 02 99 99 00 Mexico sells US Texas, California, New Mexico & Arizona. (1848) ** 02 02 99 99 00 SS Strathleven arrives in London with 1st successful shipment of frozen mutton from Australia (1880) ** 02 02 99 99 00 The project that produces the HP-35 calculator, the calculator that replaced the slide rule, begins (1971) ** 02 03 99 99 00 Twin Peaks Tunnel, longest (11,920 feet) streetcar tunnel in the world, begins service with the K-Ingleside streetcar (1918) ** 02 03 99 99 00 U.S. First Class postage raised from 25 cents to 29 cents (1991) ** 02 04 99 99 00 Ceylon (now Sri Lanka) gains independence. (1948) ** 02 04 99 99 00 Jefferson Davis elected President of the Confederate States of America (1861) ** 02 04 99 99 00 Patty Hearst kidnapped (1974) ** 02 04 99 99 00 Richard Wetherill discovered the Basket Maker culture (1894) ** 02 04 99 99 00 The first electric portable typewriter, a Smith Corona, was sold (1957) ** 02 04 99 99 00 beginning of the Russo-Japanese War (1904) ** 02 04 99 99 00 the 24th amendment passes abolishing poll taxes (1964) ** 02 04 99 99 00 the beginning of the Yalta Conference between Roosevelt, Churchill and Stalin (1945) ** 02 05 99 99 00 National Wildlife Federation is formed (1936) ** 02 05 99 99 00 Patricia Hearst kidnapped by Symbionese Liberation Army (1974) ** 02 05 99 99 00 US troops enter Manila under General MacArthur (1945) ** 02 05 99 99 00 insanity of George III leads to the Regency act making the Prince of Wales, Prince Regent (1811) ** 02 06 99 99 00 A peace treaty is signed between the United States and Spain (1899) ** 02 06 99 99 00 Abolnassan Bani-Sadr, newly installed president of Iran, denounces militants holding US Embassy as "dictators who have created a government within a government" (1980) ** 02 06 99 99 00 Britain declares war on France (1778) ** 02 06 99 99 00 General Lee appointed commander-in-chief of Confederate forces (1865) ** 02 06 99 99 00 Massachusetts becomes the 6th state (1788) ** 02 06 99 99 00 The United States wins official recognition from France with the signing of two treaties in Paris (1778) ** 02 06 99 99 00 The stock market hits 1600 for the first time (1986) ** 02 06 99 99 00 the 20th amendment, covering terms of office, passed today (1933) ** 02 07 99 99 00 Austria and Prussia form an alliance against France (1792) ** 02 07 99 99 00 The British Railroads are taken over by the government (1940) ** 02 07 99 99 00 The beginning of the German offensive at Anzio (1944) ** 02 08 99 99 00 Boy Scouts of America founded. (1908) ** 02 08 99 99 00 Charter granted for College of William & Mary, 2nd college in US. (1693) ** 02 08 99 99 00 Louis Waterman begins experiments that invent the fountain pen. (1883) ** 02 08 99 99 00 Odessa is taken by the Bolsheviks (1920) ** 02 09 99 99 00 -51 degrees F (Vanderbilt, MI, 1934) ** 02 09 99 99 00 Daylight Wartime begins (1942) ** 02 09 99 99 00 U.S. Weather Service is founded. (1877) ** 02 10 99 99 00 1st electric arc light used (in California Theater). (1879) ** 02 10 99 99 00 Arthur Miller's "Death of a Salesman" opens on Broadway with Lee J. Cobb as Willy Loman (1949) ** 02 10 99 99 00 City of Anaheim incorporated (first time). (1870) ** 02 10 99 99 00 St. Paul's Shipwreck (60) ** 02 10 99 99 00 France cedes Canada to England in the Treaty of Paris, ending the French and Indian War (1763) ** 02 10 99 99 00 Mongols sack Baghdad (1258) ** 02 10 99 99 00 Philadelphia was first lighted by gas (1835) ** 02 10 99 99 00 Washington writes from Charleston, "Without men, without arms, without ammunition, there is little to be done." (1776) ** 02 11 99 99 00 At least 8 workers exposed to radiation at Sequoyah 1, a TVA nuclear power plant (1981) ** 02 11 99 99 00 Nelson Mandela, South African antiaparteid leader, is released after 28 years of imprisonment (1990) ** 02 11 99 99 00 Vatican City (world's Smallest Country) is made an enclave of Rome. (1929) ** 02 11 99 99 00 an American-led commando squad financed by millionaire industrialist H. Ross Perot, rescues two of his employees from an Iranian prison (1979) ** 02 12 99 99 00 Export-Import Bank incorporated. (1934) ** 02 12 99 99 00 Santa Barbara oil spill (1969) ** 02 12 99 99 00 Santiago, Chile founded. (1541) ** 02 13 99 99 00 Alexander Solzhenitsyn, author and dissident, is expelled from Russia (1974) ** 02 13 99 99 00 The Barbie Doll was introduced. Over half a billion are sold in its first 30 years. (1959) ** 02 13 99 99 00 William III and Mary II take the throne together (1689) ** 02 14 99 99 00 "La Marseillaise" becomes French national anthem (1879) ** 02 14 99 99 00 Alexander Graham Bell and Elisha Gray applied separately for patents related to the telephone. The supreme court will later rule that Bell was the rightful inventor (1876) ** 02 14 99 99 00 Arizona, the Grand Canyon State, becomes the 48th state (1912) ** 02 14 99 99 00 Bombing of Dresden (1945) ** 02 14 99 99 00 First lady Jacqueline Kennedy conducts a tour of the White House on network television (1962) ** 02 14 99 99 00 First micro-on-a-chip patented by TI (1978) ** 02 14 99 99 00 James Polk becomes the first president to be photographed while in office. He posed for Matthew Brady (1848) ** 02 14 99 99 00 Khomeini orders Solman Rushdi to be killed for writing the book "Satanic Verses" (1989) ** 02 14 99 99 00 Oregon, the Beaver State, becomes the 33rd state (1859) ** 02 14 99 99 00 The US ship Ranger takes the recently adopted Stars and Stripes to a foreign port for the first time as it arrived in France (1778) ** 02 14 99 99 00 The battleship Bismarck is first launched (1939) ** 02 14 99 99 00 seven hoods, rivals of Al Capone's gang, killed in garage in the St. Valentine's day massacre (1929) ** 02 15 99 99 00 Canada makes the maple leaf flag their official flag (1965) ** 02 15 99 99 00 Chicago Seven convicted (1970) ** 02 15 99 99 00 The Roman Feast of Lupercalia to honor Faunus (Gk. Pan) and Juno (Gk. Hera) was celebrated. This later became St. Valentine's day. ** 02 15 99 99 00 USS Maine sinks in Havana harbor, cause unknown. (1898) ** 02 16 99 99 00 14000 Confederate soldiers surrender at Fort Donelson, Tennessee to General Grant earning him the nickname "Unconditional Surrender Grant" (1862) ** 02 16 99 99 00 Fidel Castro becomes the Cuban premier after overthrow of Fulgencio Batista (1959) ** 02 16 99 99 00 Howard Carter finds the Pharoah Tutankhamun. (1923) ** 02 16 99 99 00 Lithuania proclaimed independence (1918) ** 02 16 99 99 00 Lt. Stephen Decatur leads a successful raid into Tripoli Harbor to burn the US Navy frigate Philadelphia which had fallen into the hands of pirates (1804) ** 02 16 99 99 00 Nylon patented (1937) ** 02 16 99 99 00 the Benevolent and Protective Order of Elks was organized in New York City (1868) ** 02 17 99 99 00 Chinese troops attack Vietnam along most of their 480 mile long border (1979) ** 02 17 99 99 00 Columbia, South Carolina was burned as Confederates moved out and the Union troops moved in (1865) ** 02 17 99 99 00 Sardines were 1st canned, in Eastport, Maine. (1876) ** 02 17 99 99 00 The Supreme court issues its "one man, one vote" ruling saying congressional districts within each state must be roughly equal in population (1964) ** 02 17 99 99 00 The US House of Representatives broke an electoral tie between Thomas Jefferson and Aaron Burr, electing Jefferson as president (1801) ** 02 17 99 99 00 The Voice of America started broadcasting to the USSR (1947) ** 02 17 99 99 00 standard US letter postage goes to $.22 (1985) ** 02 18 99 99 00 1st regular steamboat service to California started with the arrival of the "California" (1849) ** 02 18 99 99 00 Count Alessandro Giuseppe Antonio Anastasio Volta, invented the electric battery (1745) ** 02 18 99 99 00 F. D. R. signs Executive Order interning Japanese Americans (1942) ** 02 18 99 99 00 Jefferson Davis is sworn in as the first president of the Confederate States of America (1861) ** 02 18 99 99 00 Roman Catholicism ceases to be the state religion of Italy (1984) ** 02 18 99 99 00 The Soviet Union warns China to stop its invasion of Vietnam (1979) ** 02 19 99 99 00 Albinus is defeated near Lyons (197) ** 02 19 99 99 00 Beginning of the invasion of Iwo Jima (1945) ** 02 19 99 99 00 Former Vice President Aaron Burr was arrested in Alabama, tried for treason and acquitted (1807) ** 02 19 99 99 00 Independence of Cyprus established through an agreement signed in London by Britain, Turkey and Greece (1959) ** 02 19 99 99 00 Kansas becomes the first state to ban all alcoholic beverages (1881) ** 02 19 99 99 00 President Ford pardons Iva Toguri D'Aquino ("Tokyo Rose"). (1977) ** 02 19 99 99 00 Zanzibar severs ties with US and England (1964) ** 02 20 99 99 00 Metropolitan Museum of Art in New York City is opened (1877) ** 02 20 99 99 00 President George Washington signed an act creating the U.S. Post Office (1792) ** 02 20 99 99 00 The National Emergency Warning Center in Colorado erroneously ordered all radio and TV stations to go off the air. The mistake was not corrected for 30 minutes (1971) ** 02 20 99 99 00 The Supreme court rules that the federal government has more power than any individual state. (1809) ** 02 20 99 99 00 poll released shows that of 1110 American adults asked 72% would prefer all out nuclear war to life under communist rule. Estimated error margin was 3% (1987) ** 02 21 99 99 00 1st self-propelled locomotive on rails demonstrated, in Wales. (1804) ** 02 21 99 99 00 Battle of Verdun begins, bloodiest battle of WWI, over a million casualties (1916) ** 02 21 99 99 00 Edwin Land demonstrates black and white photos that self develop in only 60 seconds (1947) ** 02 21 99 99 00 First Telephone book is issued, in New Haven, Conn. (1878) ** 02 21 99 99 00 Last Carolina parakeet dies (1918) ** 02 21 99 99 00 Washington Monument is dedicated (1885) ** 02 21 99 99 00 first snow in recorded history falls on desert near Persian Gulf, 18 inches falls on Abu Dhabi and melts in four hours (1987) ** 02 22 99 99 00 Hawaii becomes a US Territory. (1900) ** 02 22 99 99 00 the Indian Quadequina introduces popcorn to colonists (1630) ** 02 23 99 99 00 Frank Winfield Woolworth opened his first store in Utica, NY, where it was a failure. Moving to Lancaster, PA, improved sales (1879) ** 02 23 99 99 00 Lt. Calley confesses, implicates Captain Medina in Vietnam massacre (1971) ** 02 23 99 99 00 Sixteenth amendment enacted as Wyoming becomes 36th state to approve it, creating federal income tax (1913) ** 02 23 99 99 00 US and its allies start ground attack on Iraqi positions in Kuwait and Iraq (1991) ** 02 23 99 99 00 six members of the Fifth division of US Marines raised the US flag over mount Suribachi on Iwo Jima. (1945) ** 02 23 99 99 00 the 25th amendment passes defining presidential succession (1967) ** 02 24 99 99 00 Galerius Valerius Maximianus issues the first edict of persecution against the Christians, in Rome (303) ** 02 24 99 99 00 Jaun Peron is elected President of Argentina (1946) ** 02 24 99 99 00 Los Angeles Vineyard Society organized. (1857) ** 02 24 99 99 00 Pope Gregory XIII issues a Papal Bull in which he outlines the calendar reforms that will be known as the Gregorian Calendar (1582) ** 02 24 99 99 00 The US Supreme Court declares for the first time an act of Congress to be unconstitutional (1803) ** 02 24 99 99 00 Voice of America begins broadcasting (in German). (1942) ** 02 24 99 99 00 a fledgling German political party holds its first important meeting in Munich. The party would later be called the Nazi Party. (1920) ** 02 25 99 99 00 Ferdinand Marcos leaves the Philippines as civil unrest rises. Corazon Aquino is now President (1986) ** 02 25 99 99 00 Oregon is 1st state to tax gasoline (1 cent per gallon). (1919) ** 02 25 99 99 00 the 16th amendment, allowing income taxes, is proclaimed (1913) ** 02 26 99 99 00 Grand Canyon National Park established (1919) ** 02 26 99 99 00 President Lincoln signs the National Currency Act. (1863) ** 02 26 99 99 00 The Soviet Union resumes atomic bomb testing after the US refuses to join them in a moratorium on testing (1987) ** 02 27 99 99 00 British are defeated by the Boers at the battle of Majuba, South Africa (1881) ** 02 27 99 99 00 Dominican Republic gains it's independence. (1844) ** 02 27 99 99 00 Hitler suspends freedom of the press and other civil liberties (1933) ** 02 27 99 99 00 The Lionheart crowned (1189) ** 02 27 99 99 00 The first Russian embassy to Britain (1557) ** 02 28 99 99 00 "French Connection" drug bust occurs (Marseilles, 1972) ** 02 28 99 99 00 Ferry in San Pablo Bay explodes. (1888) ** 02 28 99 99 00 Forrester issued a patent for computer core memory. (1956) ** 02 28 99 99 00 Mikhail Gorbachev calls for a pact to remove all medium range missiles from Europe (1987) ** 02 28 99 99 00 President Bush announces cease fire in Gulf War conditional upon Iraq accepting all UN resolutions, 12 midnight EST (1991) ** 02 28 99 99 00 The Pope gives permission for the Bible to be translated into all languages of the Catholic states (1759) ** 02 28 99 99 00 The Territory of Colorado was organized (1861) ** 02 29 99 99 00 French and Indian raid on Deerfield MA (1704) gcal-4.1/data/dates/celtic0000664000000000000000000000103512244130561012351 00000000000000# CalenTool V2.2 - nflag=1 range=2,11 - DO NOT REMOVE THIS LINE # $Header: celtic,v 2.4 91/05/13 09:38:16 billr Exp $ # Special days file for calentool (rel 2.1); modified from network posting by # RPC Rodgers, UCSF, Nov. 1988 # Dates of interest to Celts # ** 02 02 99 99 00 Oimelc (Winter purification & approach of spring) ** 05 01 99 99 00 Beltaine (Feast of sun god Bel) ** 08 02 99 99 00 Lughnasa (Feast of god Lugh, 30 day Celtic feast centers on this day) ** 10 31 99 99 00 Samhain (beginning of Celtic year, most important holiday) gcal-4.1/data/dates/README0000664000000000000000000000177212244130561012053 00000000000000# $Header: README,v 2.2 91/03/04 11:35:46 billr Exp $ These date files were derived from USENET postings of special events. See the CREDITS file for more details. All dates in these files are New Style unless otherwise noted. To use any of these files with the calentool program, add a line of the form: #include "/somepath/file" or #include to your ".appointments" file. The first method specifies the complete pathname to the desired file. The second prepends the file name with a pathname determined from the CalenTool/LibDir entry in the suntools defaults file (first), or from the path specified by DATELIB_DIR defined in the Makefile or ct.h file (second). If you add dates to these files, or create new ones, share your entries with the net by mailing a copy to me. PLEASE be CERTAIN that you have the correct rule for specifying the date before you do this; remember that not all holidays fall on the same Gregorian date each year! Bill Randle billr@saab.CNA.TEK.COM March 4, 1991 gcal-4.1/data/dates/lotr0000664000000000000000000000417612244130561012077 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: lotr,v 2.2 91/03/07 16:21:16 billr Exp $ # Special days file for calentool (rel 2.1); modified from network posting by # RPC Rodgers, UCSF, Nov. 1988 # Dates from "The Lord of the Rings" by J. R. R. Tolkien # ** 01 05 99 99 00 Fellowship enters Moria (LOTR) ** 01 09 99 99 00 Fellowship reaches Lorien (LOTR) ** 01 17 99 99 00 Passing of Gandalf (LOTR) ** 02 07 99 99 00 Fellowship leaves Lorien (LOTR) ** 02 17 99 99 00 Death of Boromir (LOTR) ** 02 20 99 99 00 Meriadoc & Pippin meet Treebeard (LOTR) ** 02 22 99 99 00 Passing of King Ellesar (LOTR) ** 02 24 99 99 00 Ents destroy Isengard (LOTR) ** 02 26 99 99 00 Aragorn takes the Paths of the Dead (LOTR) ** 03 05 99 99 00 Frodo & Samwise encounter Shelob (LOTR) ** 03 08 99 99 00 Deaths of Denethor & Theoden (LOTR) ** 03 18 99 99 00 Destruction of Ring (LOTR) ** 03 29 99 99 00 Flowering of the Mallorn (LOTR) ** 04 04 99 99 00 Gandalf visits Bilbo (LOTR) ** 04 17 99 99 00 An unexpected party (LOTR) ** 04 23 99 99 00 Crowning of King Ellesar (LOTR) ** 05 19 99 99 00 Arwen leaves Lorian to wed King Ellesar (LOTR) ** 06 11 99 99 00 Sauron attacks Osgilliath (LOTR) ** 06 13 99 99 00 Bilbo returns to Bag End (LOTR) ** 06 23 99 99 00 Wedding of Ellesar & Arwen (LOTR) ** 07 04 99 99 00 Gandalf imprisoned by Suruman (LOTR) ** 07 24 99 99 00 The ring comes to Bilbo (LOTR) ** 07 26 99 99 00 Bilbo rescued from Wargs by Eagles (LOTR) ** 08 03 99 99 00 Funeral of King Theoden (LOTR) ** 08 29 99 99 00 Suruman enters Shire (LOTR) ** 09 10 99 99 00 Gandalf escapes from Orthanc (LOTR) ** 09 14 99 99 00 Frodo & Bilbo's birthday (LOTR) ** 09 15 99 99 00 Black riders enter Shire (LOTR) ** 09 18 99 99 00 Frodo & company rescued by Bombadil (LOTR) ** 09 28 99 99 00 Frodo wounded at Weathertop (LOTR) ** 10 05 99 99 00 Frodo crosses bridge of Mitheithel (LOTR) ** 10 16 99 99 00 Boromir reaches Rivendell (LOTR) ** 10 17 99 99 00 Council of Elrond (LOTR) ** 10 25 99 99 00 End of War of the Ring (LOTR) ** 11 16 99 99 00 Bilbo reaches Lonely Mountain (LOTR) ** 12 05 99 99 00 Death of Smaug (LOTR) ** 12 16 99 99 00 Fellowship begins Quest (LOTR) gcal-4.1/data/dates/world0000664000000000000000000006565512451513634012265 00000000000000# CalenTool V2.2 - nflag=1 range=1,12 - DO NOT REMOVE THIS LINE # $Header: world,v 2.7 91/05/13 09:36:58 billr Exp $ # Special days file for calentool (rel 2.1); modified from network posting by # RPC Rodgers, UCSF, Nov. 1988 # Various holidays and special days commemorated around the world # (non-US and Canadian) # ** 01 01 99 99 00 Anniversary of the Triumph of the Revolution (Cuba) ** 01 01 99 99 00 Shi ho hai, Worhsip of the Four Directions (Japan) ** 01 01 99 99 00 Independence Day (Haiti, Sudan) ** 01 01 99 99 00 Universal Fraternity Day (Mozambique) ** 01 01 99 99 00 Neujahr (Germany) ** 01 02 99 99 00 Ancestry Day (Haiti) ** 01 02 99 99 00 St. Berchtold's Day (Switzerland) ** 01 03 99 99 00 New Year's Holiday (Scotland) ** 01 03 99 99 00 Genshi sai, Second Offical New Year Holiday (Japan) ** 01 03 99 99 00 Revolution Day (Upper Volta) ** 01 04 99 99 00 Independence Day (Burma) ** 01 04 99 99 00 Martyrs Day (Zaire) ** 01 05 99 99 00 Twelfth-night ** 01 05 99 99 00 Shinnen Enkai, Third Official New Year Holiday (Japan) ** 01 06 99 99 00 Children's Day (Uruguay) ** 01 06 99 99 00 Epiphany (Twelfth-day) ** 01 06 99 99 00 Heilige drei Koenige (Germany) ** 01 07 99 99 00 Christmas (Ethiopia) ** 01 07 99 99 00 Nanakusa, Seven Grasses Festival ("Five Festivals", Japan) ** 01 07 99 99 00 Pioneer's Day (Liberia) ** 01 09 99 99 00 Day of the Martyrs (Panama) ** 01 11 99 99 00 Anniversary of Peoples Republic of Albania ** 01 11 99 99 00 Armed Forces Day (Liberia) ** 01 11 99 99 00 Prithvi Jayanti (Nepal) ** 01 12 99 99 00 Zanzibar Revolution Day (Tanzania) ** 01 13 99 99 00 National Liberation Day (Togo) ** 01 15 99 99 00 Adults Day (Japan) ** 01 15 99 99 00 Arbor Day (Jordan) ** 01 16 99 99 00 Martyrs Day (Benin) ** 01 18 99 99 00 Revolution Day (Tunisia) ** 01 19 99 99 00 Ethopian Epiphany (Ethiopia) ** 01 19 99 99 00 Nameday of Archbishop Makarios (Cyprus) ** 01 20 99 99 00 Army Day (Mali) ** 01 20 99 99 00 Grandmother's day, young girls and boys are dunked in water for good health (Bulgaria) ** 01 20 99 99 00 National Heroes Day (Guinea-Bissau) ** 01 20 99 99 00 St. Agnes Eve (Ah, bitter chill it was...) ** 01 21 99 99 00 Our Lady of Altagracia (Dominican Republic) ** 01 23 99 99 00 Feast of St. Ildefonsus ** 01 24 99 99 00 Economic Liberation Day (Togo) ** 01 25 99 99 00 Burns Night (Scotland) ** 01 26 99 99 00 Republic Day (India) ** 01 26 99 99 00 Australia Day; observed on nearest Monday (Australia) ** 02 01 99 99 00 Chinese New Year Holiday (3 days) (Taiwan) ** 02 03 99 99 00 Setsubun, Change of Season or "Bean Throwing Night" (Japan) ** 02 04 99 99 00 Independence Commemoration Day (Sri Lanka) ** 02 05 99 99 00 Constitution Day (Mexico) ** 02 06 99 99 00 New Zealand Day ** 02 07 99 99 00 Independence Day (Grenada) ** 02 08 99 99 00 Anniversary, 1963 Revolution (Iraq) ** 02 09 99 99 00 St. Maron's Day (Lebanon) ** 02 11 99 99 00 Kigen Setsu, National Foundation Day (Japan) ** 02 12 99 99 00 Pyidaungsa Day (Burma) ** 02 16 99 99 00 Makha Bucha Day (Thailand) ** 02 18 99 99 00 Democracy Day (Nepal) ** 02 18 99 99 00 Independence Day (The Gambia) ** 02 18 99 99 00 National Bun Day (Iceland) ** 02 23 99 99 00 Republic Day (Guyana) ** 02 25 99 99 00 National Day (Kuwait) ** 02 27 99 99 00 Independence Day (Dominican Republic) ** 03 01 99 99 00 Samil Independence Movement Day (South Korea) ** 03 01 99 99 00 St. David's day (Patron saint of Wales) ** 03 02 99 99 00 Peasants Day (Burma) ** 03 02 99 99 00 Victory of Adowa (Ethiopia) ** 03 03 99 99 00 Hinamatsuri, Girl's Doll Festival ("Five Festivals", Japan) ** 03 03 99 99 00 Throne Day (Morocco) ** 03 05 99 99 00 Independence Day (Equatorial Guinea) ** 03 06 99 99 00 Independence Day (Ghana) ** 03 06 99 99 00 Chikyu Setsu, Empress's Birthday (Japan) ** 03 08 99 99 00 International Women's Day (U.S.S.R.) ** 03 08 99 99 00 Syrian National Day (Libyan Arab Republic) ** 03 08 99 99 00 Women's Day (Guinea-Bissau, Taiwan, Yemen Democratic Republic) ** 03 08 99 99 00 Youth Day (Zambia) ** 03 09 99 99 00 Decoration Day (Liberia) ** 03 09 99 99 00 Falgun Purnima Day (Nepal) ** 03 10 99 99 00 Riku gun Kenenbi, Japanese Army Commemoration Day (Japan) ** 03 10 99 99 00 Labor Day (South Korea) ** 03 12 99 99 00 Commonwealth Day (Swaziland) ** 03 12 99 99 00 Independence Day (Mauritius) ** 03 12 99 99 00 Moshoeshoe's Birthday (Lesotho) ** 03 12 99 99 00 Renovation Day (Gabon) ** 03 13 99 99 00 National Day (Grenada) ** 03 15 99 99 00 J.J. Robert's Birthday (Liberia) ** 03 19 99 99 00 St. Joseph's Day (Colombia, Costa Rica, Holy See, Liechtenstein, San Marino, Spain, Venezuela) ** 03 19 99 99 00 Tree Planting Day (Lestho) ** 03 20 99 99 00 Independence Day (Tunisia) ** 03 21 99 99 00 Afghan New Year (Afghanistan) ** 03 21 99 99 00 Shunki Korei Sai, Spring Equinox Festival for Imperial Ancestors (Japan) ** 03 21 99 99 00 Juarez' Birthday (Mexico) ** 03 23 99 99 00 Pakistan Day (Pakistan) ** 03 25 99 99 00 Feast of the Annunciation of the Blessed Virgin Mary, aka Our Lady's Day or Lady Day and in England as Quarter Day ** 03 25 99 99 00 Greek Independence Day (Cyprus) ** 03 25 99 99 00 National Holiday (Greece) ** 03 26 99 99 00 Independence Day (Bangladesh) ** 03 27 99 99 00 Armed Forces Day (Burma) ** 03 29 99 99 00 Memorial Day (Madagascar) ** 03 31 99 99 00 National Day (Malta) ** 04 01 99 99 00 Beginning of the financial year (Britain) ** 04 01 99 99 00 Youth Day (Benin) ** 04 02 99 99 00 Malvinas Day (Argentina) ** 04 03 99 99 00 Jimmu Tenno Sai, Demise of the First Emperor (Japan) ** 04 04 99 99 00 Ching Ming Festival (Hong Kong) ** 04 04 99 99 00 Liberation Day (Hungary) ** 04 04 99 99 00 National Day (Senegal) ** 04 05 99 99 00 Arbor Day (South Korea) ** 04 05 99 99 00 British income tax is due ** 04 05 99 99 00 Tomb Sweeping Day (Taiwan) ** 04 06 99 99 00 Chakri Memorial Day (Thailand) ** 04 06 99 99 00 Victory Day (Ethiopia) ** 04 08 99 99 00 Fast & Prayer Day (Liberia) ** 04 08 99 99 00 Kambutsue, celebration of Buddha's birthday (Japan) ** 04 09 99 99 00 Martyrs Day (Tunisia) ** 04 11 99 99 00 National Heroes Day (Costa Rica) ** 04 13 99 99 00 Laotian New Year (3 days, Laos) ** 04 13 99 99 00 National Day (Chad) ** 04 13 99 99 00 Songkron Day (Thailand) ** 04 14 99 99 00 Day of the Americas (Honduras) ** 04 15 99 99 00 Bengali New Year (Bangladesh) ** 04 15 99 99 00 Swallow Day, the day swallows are said to return (England) ** 04 16 99 99 00 Holy Week (5 days) (Venezuela) ** 04 16 99 99 00 Tourist Week (5 days) (Uruguay) ** 04 17 99 99 00 Burmese New Year (Burma) ** 04 18 99 99 00 Independence Day (Chile, Zimbabwe) ** 04 19 99 99 00 Declaration of Independence (Venezuela) ** 04 19 99 99 00 Landing of the "33" (Uruguay) ** 04 19 99 99 00 Republic Day (Sierra Leone) ** 04 21 99 99 00 Tiradentes (Brazil) ** 04 22 99 99 00 Sniff the breeze day, celebrated by picnicking near the Nile and inhaling breaths of the departing spring air (Egypt) ** 04 23 99 99 00 Independence Day (Turkey) ** 04 23 99 99 00 St. George's Day - patron saint of England ** 04 24 99 99 00 Victory Day (Togo) ** 04 25 99 99 00 Anniversary of the Revolution (Portugal) ** 04 25 99 99 00 Anzac Day (Australia, New Zealand, Tonga, Western Samoa) ** 04 25 99 99 00 Liberation Day (Italy) ** 04 25 99 99 00 National Flag Day (Swaziland) ** 04 26 99 99 00 Union Day (Tanzania) ** 04 27 99 99 00 Independence Day (Togo) ** 04 29 99 99 00 Tencho Setsu, Emperor's Birthday (Japan) ** 04 30 99 99 00 Sho Konsai, Commemoration for the Departed (Japan) ** 04 30 99 99 00 Queen's Birthday (Netherlands, Netherlands Antilles) ** 04 30 99 99 00 The Workers Day (Uruguay) ** 05 Mo 99 99 00 [1] Bank Holiday (UK) ** 05 01 99 99 00 Labor Day (many places) ** 05 01 99 00 00 Tag der Arbeit (Germany) ** 05 02 99 99 00 Constitution Day (Japan) ** 05 02 99 99 00 Memorial Day for the Emperor Shomu (Japan) ** 05 02 99 99 00 King's Birthday (Lesotho) ** 05 05 99 99 00 Children's Day (South Korea) ** 05 05 99 99 00 Cinco de Mayo Fiesta (Mexico) ** 05 05 99 99 00 Tango-no-sekku, Boy's Festival ("Five Festivals", Japan) ** 05 05 99 99 00 Coronation Day (Thailand) ** 05 05 99 99 00 Independence Day/Battle of Puebla (Mexico) ** 05 05 99 99 00 Liberation Day (Netherlands) ** 05 06 99 99 00 Bataan Day (Philippines) ** 05 08 99 99 00 Buddha's Birthday (South Korea) ** 05 08 99 99 00 Elections for National Assembly (Philippines) ** 05 09 99 99 00 Liberation Day (Czechoslovakia) ** 05 09 99 99 00 Victory Day (Poland, U.S.S.R.) ** 05 10 99 99 00 Mothers Day (Guatamala) ** 05 14 99 99 00 Anniversary of Founding of Guinean Democratic Party (Guinea) ** 05 14 99 99 00 Buddhist Holiday (Waisak 2528) (Indonesia) ** 05 14 99 99 00 Independence Day (2 days) (Paraguay) ** 05 14 99 99 00 Unification Day (Liberia) ** 05 15 99 99 00 Kamuzu Day (Malawi) ** 05 15 99 99 00 Vesak Day (Singapore, Malaysia) ** 05 15 99 99 00 Visakha Bucha Day (Thailand) ** 05 16 99 99 00 Discovery Day (Cayman Islands) ** 05 17 99 99 00 Constitution Day (Nauru, Norway) ** 05 18 99 99 00 Battle of Las Piedras (Uruguay) ** 05 18 99 99 00 Flag Day (Haiti) ** 05 18 99 99 00 Prayer Day (Denmark) ** 05 19 99 99 00 Youth & Sports Day (Turkey) ** 05 20 99 99 00 National Day (Cameroon) ** 05 21 99 99 00 Battle of Iquique (Chile) ** 05 22 99 99 00 National Heroes Day (Sri Lanka) ** 05 23 99 99 00 Commonwealth Day (Jamaica, Belize) ** 05 23 99 99 00 National Labor Day (Jamaica) ** 05 24 99 99 00 Battle of Pinchincha (Ecuador) ** 05 24 99 99 00 Bermuda Day (Bermuda) ** 05 24 99 99 00 British Empire Day ** 05 24 99 99 00 Day of Slav Letters (Bulgaria) ** 05 25 99 99 00 African Freedom Day (Zimbabwe) ** 05 25 99 99 00 African Liberation Day (Chad, Mauritania, Zambia) ** 05 25 99 99 00 Anniversary of Revolution of 1810 (Argentina) ** 05 25 99 99 00 Independence Day (Jordan) ** 05 25 99 99 00 Revolution in Sudan (Libyan Arab Republic) ** 05 27 99 99 00 Kaigun Kinenbi, Navy Commemoration Day (Japan) ** 05 28 99 99 00 Mothers Day (Central African Republic) ** 05 31 99 99 00 Pya Martyrs Day (Togo) ** 05 31 99 99 00 Republic Day (South Africa) ** 06 01 99 99 00 Independence Days (3 days) (Western Samoa) ** 06 01 99 99 00 Madaraka Day (Kenya) ** 06 01 99 99 00 Victory Day (Tunisia) ** 06 02 99 99 00 Corpus Christi (Paraguay) ** 06 02 99 99 00 Republic (Constitution) Day (Italy) ** 06 03 99 99 00 Bank Holiday (Rep. of Ireland) ** 06 03 99 99 00 Labor Day (Bahamas) ** 06 04 99 99 00 Dragon Boat Festival (Hong Kong, Taiwan) ** 06 04 99 99 00 Emancipation Day (Tonga) ** 06 04 99 99 00 Queen's Birthday (New Zealand) ** 06 05 99 99 00 Constitution Day (Denmark) ** 06 05 99 99 00 Liberation Day (Seychelles) ** 06 06 99 99 00 His Majesty, Yang Di-Pertuan Agong's Birthday (Malaysia) ** 06 06 99 99 00 Memorial Day (South Korea) ** 06 10 99 99 00 Camoes Day (Portugal) ** 06 11 99 99 00 Queen's Birthday (celebrated) (UK) ** 06 12 99 99 00 Independence Day (Philippines) ** 06 12 99 99 00 Peace with Bolivia (Paraguay) ** 06 13 99 99 00 Corrective Movement (Yemen Arab Republic) ** 06 16 99 99 00 Bloomsday - Anniversary of Dublin events, 1904 (Ireland) ** 06 17 99 99 00 Independence Day (Iceland) ** 06 17 99 99 00 National Day [Tag der deutschen Einheit] (Federal Republic of Germany) ** 06 18 99 99 00 Evacuation Day (Egypt) ** 06 18 99 99 00 Queen's Birthday (Fiji) ** 06 19 99 99 00 Artigas Birthday (Uruguay) ** 06 19 99 99 00 Labor Day (Trinidad, Tobago) ** 06 19 99 99 00 Revolution Day (Algeria) ** 06 20 99 99 00 Flag Day (Argentina) ** 06 22 99 99 00 Corrective Movement (Yemen Democratic Republic) ** 06 22 99 99 00 Midsummer Eve (Finland, Sweden) ** 06 22 99 99 00 National Sovereignty Day (Haiti) ** 06 23 99 99 00 National Holiday (Luxembourg) ** 06 24 99 99 00 Battle of Carabobob (Venezuela) ** 06 24 99 99 00 Fisherman's Day (Madagascar, Mozambique, Somalia) ** 06 24 99 99 00 Kings Day (Spain) ** 06 24 99 99 00 Midsummer Day (Europe) ** 06 24 99 99 00 Peasants Day (Peru) ** 06 24 99 99 00 St. Jean-Baptiste Day (Quebec) ** 06 28 99 99 00 Mothers Day (Central African Republic) ** 06 29 99 99 00 Independence Day (Seychelles) ** 06 29 99 99 00 Last Day of Ramadan* (Algeria, Oman) ** 06 30 99 99 00 Day of the Army (Guatemala) ** 06 30 99 99 00 Independence Day (Zaire) ** 07 01 99 99 00 Eid-Ul-Fitr* (2 days) (Pakistan) ** 07 01 99 99 00 Freedom Day (Suriname) ** 07 01 99 99 00 Independence Day (Burundi) ** 07 01 99 99 00 National Day (Rwamda) ** 07 01 99 99 00 Republic Day (Ghana) ** 07 01 99 99 00 Union of the Somalia Republic (Somalia) ** 07 02 99 99 00 National Day (Kiribati) ** 07 04 99 99 00 Caribbean Day (Guyana) ** 07 04 99 99 00 Constitution Day (Cayman Islands) ** 07 04 99 99 00 Family Day (Lesotho) ** 07 04 99 99 00 Heroes Day (Zambia) ** 07 04 99 99 00 Kadooment Day (Barbados) ** 07 04 99 99 00 Philippine-American Friendship Day (Philippines) ** 07 04 99 99 00 Warriors Day (2 days) (Yugoslavia) ** 07 05 99 99 00 Day of Peace & Unity (Rwanda) ** 07 05 99 99 00 Independence Day (Algeria, Venezuela) ** 07 07 99 99 00 Anniversary of the P.U.N. (Equatorial Guinea) ** 07 07 99 99 00 Tanabata, Weaver's Festival ("Five Festivals", Japan) ** 07 07 99 99 00 National Day (Malawi) ** 07 07 99 99 00 Saba Saba Day (Tanzania) ** 07 09 99 99 00 Independence Day (Argentina) ** 07 10 99 99 00 Independence Day (Bahamas) ** 07 11 99 99 00 National Holiday (Mongolian People's Republic) ** 07 12 99 99 00 Battle of Boyne celebrated (Northern Ireland) ** 07 12 99 99 00 The Twelfth (Northern Ireland) ** 07 13 99 99 00 Buddhist Lent (Thailand) ** 07 13 99 99 00 Start of the Bon Festival (Japan) ** 07 14 99 99 00 Anniversary of the Revolution (Iraq) ** 07 14 99 99 00 Bastille Day (France) ** 07 14 99 99 00 National Holiday (Monaco) ** 07 15 99 99 00 St. Swithin's Day ** 07 16 99 99 00 Presidents Day (Botswanna) ** 07 17 99 99 00 Constitution Day (South Korea) ** 07 17 99 99 00 July Revolution (Iraq) ** 07 17 99 99 00 Munoz Rivera's Birthday (Puerto Rico) ** 07 17 99 99 00 Public Holiday (Botswanna) ** 07 18 99 99 00 Constitution Day (Uruguay) ** 07 18 99 99 00 Liberation Day (Nicaragua) ** 07 18 99 99 00 National Day (Spain) ** 07 19 99 99 00 Martyrs Day (Burma) ** 07 20 99 99 00 Independence Day (Colombia) ** 07 21 99 99 00 National Holiday (Belgium) ** 07 22 99 99 00 King's Birthday (Swaziland) ** 07 22 99 99 00 National Day (Poland) ** 07 23 99 99 00 Anniversary of the Revolution (Egypt) ** 07 23 99 99 00 Eqyptian National Day (Syrian Arab Republic) ** 07 23 99 99 00 Remembrance Day (Papua, New Guinea) ** 07 24 99 99 00 Simon Bolivar's Day (Ecuador, Venezuela) ** 07 25 99 99 00 Grotto Day (England) ** 07 25 99 99 00 National Rebellion Day (3 days) (Cuba) ** 07 25 99 99 00 Republic Day (Tunisia) ** 07 25 99 99 00 St. James, Patron Saint (Spain) ** 07 26 99 99 00 Independence Day (Liberia) ** 07 26 99 99 00 National Day (Maldives) ** 07 27 99 99 00 Barbosa's Birthday (Puerto Rico) ** 07 28 99 99 00 Independence Days (2 days) (Peru) ** 07 29 99 99 00 Hamburg feast of cherries (Germany) ** 07 29 99 99 00 Olsok Eve, commemorating Viking King St. Olav (Norway) ** 07 31 99 99 00 Revolution Day (Congo) ** 08 01 99 99 00 Discovery Day (Trinidad, Tobogo) ** 08 01 99 99 00 Emancipation Day (Granada) ** 08 01 99 99 00 Founding of Asuncion (Paraguay) ** 08 01 99 99 00 Freedom Day (Guyana) ** 08 01 99 99 00 Confederation Day (Switzerland) ** 08 01 99 99 00 National Holidays (5 days) (El Salvador) ** 08 01 99 99 00 Parent's Day (Zaire) ** 08 02 99 99 00 Our Lady of Los Angeles (Costa Rica) ** 08 03 99 99 00 Independence Day (Jamaica, Niger) ** 08 03 99 99 00 Massacre du Pidjiguiti (Guinea-Bissau) ** 08 03 99 99 00 Memorial Day of Archbishop Makarios (Cyprus) ** 08 04 99 99 00 Freedom Day (Guyana) ** 08 Mo 99 99 00 [1] Bank Holiday (Scotland, Northern Ireland) ** 08 06 99 99 00 Bank Holiday (Australia, Fiji, Iceland) ** 08 06 99 99 00 Caricom (Barbados) ** 08 06 99 99 00 Emancipation Day (Bahamas) ** 08 06 99 99 00 Hiroshima Day (Japan) ** 08 06 99 99 00 Independence Day (Bolivia) ** 08 07 99 99 00 Battle of Boyaca (Colombia) ** 08 09 99 99 00 National Day (Singapore) ** 08 10 99 99 00 Independence Day (Ecuador) ** 08 11 99 99 00 Heroes Day (2 days) (Zimbabwe) ** 08 11 99 99 00 Independence Day (Chad) ** 08 11 99 99 00 King Hussein's Accession to Throne (Jordan) ** 08 12 99 99 00 Queen's Birthday (Thailand) ** 08 13 99 99 00 Proclamation of Independence (Central African Republic) ** 08 13 99 99 00 Women's Day (Tunisia) ** 08 14 99 99 00 Independence Day (Pakistan) ** 08 14 99 99 00 Waddi Dhahab (Morocco) ** 08 15 99 99 00 Founding of Ascuncion (Paraguay) ** 08 15 99 99 00 Independence Day (Congo, India) ** 08 15 99 99 00 Liberation Day (South Korea) ** 08 15 99 99 00 Santa Maria (Malta) ** 08 16 99 99 00 Independence Days (3 days, Gabon) ** 08 16 99 99 00 Restoration Day (Dominican Republic) ** 08 17 99 99 00 Anniversary of Death of General San Martin (Argentina) ** 08 17 99 99 00 Independence Day (Indonesia) ** 08 19 99 99 00 Independence Day (Afghanistan) ** 08 20 99 99 00 Constitution Day (Hungary) ** 08 23 99 99 00 Liberation Days (2 days) (Romania) ** 08 24 99 99 00 National Flag Day (Liberia) ** 08 25 99 99 00 Constitution Day (Paragual) ** 08 25 99 99 00 Independence Day (Uruguay) ** 08 Mo 99 99 00 [L] Bank Holiday (England, Wales) ** 08 27 99 99 00 Liberation Day (Hong Kong) ** 08 28 99 99 00 Heroes Day (Philippines) ** 08 30 99 99 00 St. Rose of Lima (Peru) ** 08 30 99 99 00 Victory Day (Turkey) ** 08 31 99 99 00 Independence Day (Trinidad, Tobago) ** 08 31 99 99 00 National Day (Malaysia) ** 08 31 99 99 00 Pashtoonian Day (Afghanistan) ** 09 01 99 99 00 Army Day (Chile) ** 09 03 99 99 00 Anniversary of Founding of the Republic (San Marino) ** 09 03 99 99 00 Independence Day (Qatar) ** 09 03 99 99 00 Memorial Day (Tunisia) ** 09 06 99 99 00 Defense of Pakistan Day (Pakistan) ** 09 06 99 99 00 Settlers Day (South Africa) ** 09 06 99 99 00 Somhlolo (Swaziland) ** 09 07 99 99 00 Independence Day (Brazil) ** 09 09 99 99 00 Anniversary of Socialist Revolution (2 days, Bulgaria) ** 09 09 99 99 00 Choyo, Chrysanthemum Festival ("Five Festivals", Japan) ** 09 09 99 99 00 National Day (North Korea) ** 09 10 99 99 00 Korean Thanksgiving Day (Chusuk) (South Korea) ** 09 10 99 99 00 Moon Festival (Taiwan) ** 09 10 99 99 00 National Day (Belize) ** 09 11 99 99 00 Ethiopian New Year (Ethiopia) ** 09 11 99 99 00 National Holiday (Chile) ** 09 12 99 99 00 Amilcar Cabral's Birthday (Guinea-Bissau) ** 09 12 99 99 00 Revolution Day (Ethiopia) ** 09 14 99 99 00 Battle of San Jacinto (Nicaragua) ** 09 15 99 99 00 Foundation of Panama (Panama) ** 09 15 99 99 00 Independence Day (Costa Rica, El Salvador, Guatamala, Honduras and Nicaragua) ** 09 15 99 99 00 Respect for the Aged Day (Japan) ** 09 16 99 99 00 Independence Day (Mexico, Papua, New Guinea) ** 09 17 99 99 00 National Heroes Day (Angola) ** 09 18 99 99 00 Independence Day (Chile) ** 09 18 99 99 00 Victory of Uprona (Burundi) ** 09 19 99 99 00 Army Day (Chile) ** 09 21 99 99 00 Independence Day (Belize) ** 09 22 99 99 00 Independence Day (Mali) ** 09 22 99 99 00 National Sovereignty Day (Haiti) ** 09 23 99 99 00 Shuki Korei Sai, Autumnal Equinox Festival for Imperial Ancestors (Japan) ** 09 24 99 99 00 Anniversary of Third Republic (Ghana) ** 09 24 99 99 00 Independence Day (Guinea-Bissau) ** 09 24 99 99 00 National Day (Saudi Arabia) ** 09 24 99 99 00 Our Lady of Mercedes (Dominican Republic) ** 09 24 99 99 00 Republic Day (Trinidad, Tobago) ** 09 25 99 99 00 Army Day (Mozambique) ** 09 25 99 99 00 Referendum Day (Rwanda) ** 09 26 99 99 00 National Day (Maldives, Yemen Democratic Republic) ** 09 26 99 99 00 Revolution Anniversary Day (Yemen Arab Republic) ** 09 27 99 99 00 Feast of Finding the True Cross (Ethiopia) ** 09 28 99 99 00 Confucious' Day (Taiwan) ** 09 29 99 99 00 Battle of Boqueron (Paraquay) ** 09 30 99 99 00 Botswanna Day (Botswanna) ** 10 Mo 99 99 00 [1] Labor Day (Australia) ** 10 01 99 99 00 Armed Forces Day (South Korea) ** 10 01 99 99 00 Independence Day (Nigeria) ** 10 01 99 99 00 National Liberation Day (2 days) (China) ** 10 01 99 99 00 Public Holiday (Botswanna) ** 10 02 99 99 00 Anniversary of Guinean Independence (Guinea) ** 10 02 99 99 00 National Day (People's Republic of China) ** 10 03 99 99 00 Chung Yeung Festival (Hong Kong) ** 10 03 99 99 00 Francisco Morazan's Birthday (Honduras) ** 10 03 99 99 00 National Foundation Day (South Korea) ** 10 03 99 99 00 U.N. Day (Barbados) ** 10 04 99 99 00 Independence Day (Lesotho) ** 10 05 99 99 00 Anniversary of Proclamation of the Republic (Portugal) ** 10 06 99 99 00 National Sports Day (Lesotho) ** 10 07 99 99 00 National Heroes Day (Jamaica) ** 10 08 99 99 00 Battle of Agamos (Peru) ** 10 08 99 99 00 Constitution Day (U.S.S.R.) ** 10 08 99 99 00 Fiji Day (Fiji) ** 10 09 99 99 00 Independence Day (Uganda) ** 10 09 99 99 00 Independence of Guayaquil (Ecuador) ** 10 09 99 99 00 Korean Alphabet Day (South Korea) ** 10 09 99 99 00 Republic Day (Khmer Republic) ** 10 10 99 99 00 Beginning of Wars for Independence (Cuba) ** 10 10 99 99 00 Fiji Day (Fiji) ** 10 10 99 99 00 Foundation of Workers Party (North Korea) ** 10 10 99 99 00 Health-Sports Day (Japan) ** 10 10 99 99 00 National Day (Taiwan) ** 10 11 99 99 00 Day of the Revolution (Panama) ** 10 11 99 99 00 Druger Day (South Africa) ** 10 12 99 99 00 Day of the Race (Argentina) ** 10 12 99 99 00 Discovery Day (Gahamas) ** 10 12 99 99 00 National Day (Equatorial Guinea, Spain) ** 10 12 99 99 00 Our Lady Aparecida Day (Brazil) ** 10 12 99 99 00 Pan American Day (Belize) ** 10 14 99 99 00 National Day (Yemen Arab Republic) ** 10 14 99 99 00 Young People's Day (Zaire) ** 10 15 99 99 00 Evacuation Day (Tunisia) ** 10 17 99 99 00 Anniversary of Dessaline's Death (Haiti) ** 10 17 99 99 00 Heroes Day (Jamaica) ** 10 17 99 99 00 Kanname Sai, God's Tasting Ceremony, a Harvest Festival (Japan) ** 10 17 99 99 00 Mother's Day (Malawi) ** 10 20 99 99 00 Anniversary of 1944 Revolution (Guatemala) ** 10 20 99 99 00 Kenyatta Day (Kenya) ** 10 21 99 99 00 Armed Forces Day (Honduras) ** 10 21 99 99 00 Revolution Days (2 days) (Somalia) ** 10 23 99 99 00 Chulalongkron's Day (Thailand) ** 10 24 99 99 00 Independence Day (Zambia) ** 10 25 99 99 00 Labor Day (New Zealand) ** 10 25 99 99 00 Taiwan Restoration Day (Taiwan) ** 10 26 99 99 00 Agam Day (Nauru) ** 10 26 99 99 00 Armed Forces Day (Benin, Rwanda) ** 10 26 99 99 00 National Day (Austria) ** 10 28 99 99 00 Bank Holiday (Republic of Ireland) ** 10 28 99 99 00 National Holiday (Greece) ** 10 28 99 99 00 OHI Day (Cyprus) ** 10 29 99 99 00 Republic Day (Turkey) ** 11 01 99 00 00 Allerheiligen (Germany) ** 11 02 99 99 00 Memorial Day (Ecuador) ** 11 03 99 99 00 Meiji Setsu, Birthday of Meiji Tenno, 1864, "Unifier of the Nation" (Japan) ** 11 03 99 99 00 Independence from Columbia (Panama) ** 11 03 99 99 00 Independence of Cuenca (Ecuador) ** 11 03 99 99 00 Thanksgiving Day (Liberia) ** 11 04 99 99 00 Flag Day (Panama) ** 11 05 99 99 00 Guy Fawkes' Day (U.K., commemorates the Gunpowder Plot of 1605) ** 11 06 99 99 00 Anniversary of October Socialist Revolution (2 days, U.S.S.R.) ** 11 06 99 99 00 Green March Day (Morocco) ** 11 06 99 99 00 Prophet Mohammed's Birthday (Malaysia) ** 11 07 99 99 00 Anniversary of Great October Revolution (Bulgaria) ** 11 07 99 99 00 October Revolution Day (Hungary) ** 11 08 99 99 00 Her Majesty, the Queen's Birthday (Nepal) ** 11 10 99 99 00 King's Birthday (Bhutan) ** 11 11 99 99 00 Independence Day (Angola) ** 11 11 99 99 00 Independence of Cartagena (Colombia) ** 11 11 99 99 00 Republic Day (Maldives) ** 11 12 99 99 00 Dr. Sun Yat-sen's Birthday (Taiwan) ** 11 12 99 99 00 Prince Charles' Birthday (Fiji) ** 11 14 99 99 00 King Hussein's Birthday (Jordan) ** 11 15 99 99 00 Dynasty Day (Belgium) ** 11 15 99 99 00 Proclamation of the Republic (Brazil) ** 11 15 99 99 00 Thatlouang Festival (Laos) ** 11 17 99 99 00 Army Day (Zaire) ** 11 17 99 99 00 Corrective Movement (Syrian Arab Republic) ** 11 18 99 99 00 Battle of Viertieres (Haiti) ** 11 18 99 99 00 Independence Day (Morocco) ** 11 18 99 99 00 National Days (4 days) (Oman) ** 11 19 99 99 00 Anniversary of 1968 Coup by Army (Mali) ** 11 19 99 99 00 Feast Day of S.A.S. Prince Rainier (Monaco) ** 11 19 99 99 00 Garifuna Settlement (Belize) ** 11 19 99 99 00 Prince of Wales Birthday (Fiji) ** 11 20 99 99 00 Revolution Day (Mexico) ** 11 21 99 99 00 Day of Prayer & Repentance (Federal Republic of Germany) ** 11 22 99 99 00 Anniversary of Portuguese Aggression (Guinea) ** 11 22 99 99 00 Independence Day (Lebanon) ** 11 23 99 99 00 Niiname Sai, Tasting New Rice Ceremony, a Thanksgiving Day (Japan) ** 11 24 99 99 00 Anniversary of the New Regime (Zaire) ** 11 25 99 99 00 Independence Day (Suriname) ** 11 28 99 99 00 Independence Day (Albania, Mauritania) ** 11 28 99 99 00 Independence from Spain (Panama) ** 11 28 99 99 00 Proclamation of the Republic (Chad) ** 11 29 99 99 00 Day of the Republic (2 days, Yugoslavia) ** 11 29 99 99 00 Goodwill Day (Liberia) ** 11 29 99 99 00 Liberation Day (Albania) ** 11 29 99 99 00 National Day (Burma) ** 11 30 99 99 00 Independence Day (Barbados, Yemen Democratic Republic) ** 11 30 99 99 00 National Day (Benin) ** 11 30 99 99 00 National Heroes Day (Philippines) ** 12 01 99 99 00 Anniversary of Restoration of Independence (Portugal) ** 12 01 99 99 00 Independence Day (Central African Republic) ** 12 02 99 99 00 National Holiday (United Arab Emirates) ** 12 03 99 99 00 National Holiday (Laos) ** 12 06 99 99 00 Nikolaustag (Germany) ** 12 06 99 99 00 Independence Day (Finland) ** 12 07 99 99 00 Independence Day (Ivory Coast, Panama) ** 12 07 99 99 00 Prophet Mohammed's Birthday (Fiji) ** 12 08 99 99 00 Blessing of the Water (Uruguay) ** 12 08 99 99 00 Mother's Day (Panama) ** 12 08 99 99 00 Our Lady of the Cacupe (Paraguay) ** 12 09 99 99 00 Independence Day (Tanzania) ** 12 10 99 99 00 Foundation of Worker's Party (Angola) ** 12 10 99 99 00 Human Rights Day (United Nations) ** 12 10 99 99 00 Thai Constitution Day (Thailand) ** 12 11 99 99 00 Independence Day (Upper Volta) ** 12 12 99 99 00 Fiesta of anniversary of the Miracle of Guadalupe (Guadalupe) ** 12 12 99 99 00 Independence Day (Kenya) ** 12 13 99 99 00 Republic Day (Malta) ** 12 15 99 99 00 Statue Day (Netherlands Antilles) ** 12 16 99 99 00 Constitution Day (Nepal) ** 12 16 99 99 00 Day of the Covenant (South Africa) ** 12 16 99 99 00 National Day (Bahrain) ** 12 16 99 99 00 Victory Day (Bangladesh) ** 12 17 99 99 00 National Day (Bhutan) ** 12 18 99 99 00 Republic Day (Niger) ** 12 23 99 99 00 Victory Day (Egypt) ** 12 25 99 99 00 Children's Day (Congo) ** 12 25 99 99 00 Constitution Day (Taiwan) ** 12 25 99 99 00 Taisho Tenno Sai, Commemoration of the Demise of the Late Emperor (Japan) ** 12 25 99 99 00 Birthday of Quaid-i-Azam (Pakistan) ** 12 25 99 00 00 1. Weihnachtsfeiertag (Germany) ** 12 26 99 99 00 Boxing Day (U.K.) ** 12 26 99 99 00 Family Day (South Africa) ** 12 26 99 99 00 Feast of Our Theotokos (Greece) ** 12 25 99 00 00 2. Weihnachtsfeiertag (Germany) ** 12 27 99 99 00 Bank Holiday (Cayman Islands) ** 12 27 99 99 00 Constitution Day (North Korea) ** 12 27 99 99 00 Public Holiday (Lesotho, Zimbabwe) ** 12 29 99 99 00 Civic Holidays (3 days) (Costa Rica) ** 12 29 99 99 00 His Majesty, the King's Birthday (Nepal) ** 12 30 99 99 00 Anniversary of Democratic Republic of Madagascar (Madagascar) ** 12 31 99 99 00 Bank Holiday (El Salvador, Honduras, Pakistan) ** 12 31 99 99 00 Feed Yourself Day (Benin) ** 12 31 99 99 00 Proclamation of the Republic (Congo) ** 12 31 99 99 00 St. Sylvester (Switzerland) gcal-4.1/data/README0000664000000000000000000002000512353366655010761 00000000000000README file for enclosed data files. The Gcal package encloses a collection of reminder/appointment files of other packages, namely the BSD-`calendar' reminder files and the `[X]Calentool-2.3' appointment files. These original and untouched files are stored in the `calendars/' and `dates/' subdirectories, and are automatically converted during the installation process of `gcal' by means of `awk' or `perl'. The AWK and Perl scripts (stored in the `scripts/' subdirectory) which I've worked out are not perfect but do their job well for the enclosed reminder/appointment files. These scripts don't break up the text part at any margin by default. If you want to have text parts break up at a special margin, define this in the variable LINEBREAK (near the top of each script) explicitly before you use the `install' target of the Makefile. I recommend to use a margin value of 40...50. This is only an experimental feature. It does not guarantee any _nicer_ representation of texts, but I've implemented it because some people might find it useful. Here is a short description of the other Gcal example resource files as they can be found in this file directory: * The file `sdata.rc' shows how some Sun based astronomical times and data can be detected. The file `mdata.rc' shows how some Moon based astronomical times and data can be detected. Both files do no respect Daylight Savings. Take these files as examples to manage astronomical times and data for locations without daylight-saving time. The example file `bkk.rc' demonstrates this for Bangkok, Thailand. * The file `de-sdata.rc' shows how some Sun based astronomical times and data can be detected for locations in Germany. The file `de-mdata.rc' shows how some Moon based astronomical times and data can be detected for locations in Germany. Both files respect daylight-saving times as used nowadays in Germany. Take these files as examples to manage astronomical times and data for locations with daylight-saving time. The example file `ms.rc' demonstrates this for Mu"nster, Germany -- my home town. * The file `sun-moon.rc' shows how the most important Sun/Moon based astronomical times and data can be detected for *GENERIC* locations. This file should either be used A. with a Gcal location response file as it is created by the `[gcal-]ddiffdrv' script/batch file (see `misc/README', for further details) like: gcal -f./sun-moon.rc @LOCATION-RESPONSE-FILE or B. by directly passing the name and the co-ordinate with or without the altitude part of the location with the `--text-variable=ARGUMENT' option via the command line like: gcal -f./sun-moon.rc --te='$l=DE-Muenster:$c=+5158+00738' The data and times are always calculated for GMT unless you specify the timezone of the location explicitly by passing it via the Gcal text variable $Z, e.g.: --text-variable='$z=60' or --text-variable='$z=+1\:' if the location's timezone is GMT-1 (CET respectively CEWT). The data and times are always calculated for the sea-level altitude +0 unless you specify the altitude of the location either as part of the co-ordinate of the location or explicitly by passing it via the Gcal text variable $H, e.g.: --text-variable='$h=+61' if the location's altitude is +61 meters above the sea-level (you have to give the sign explicitly). So the complete call for the (A) case would be: gcal -f./sun-moon.rc @LOCATION-RESPONSE-FILE --te='$z=60:$h=+61' And the complete call for the (B) case would either be: gcal -f./sun-moon.rc --te='$l=DE-Muenster:$c=+5158+00738+61:$z=60' or gcal -f./sun-moon.rc --te='$l=DE-Muenster:$c=+5158+00738:$z=60:$h=+61' * The file `wloc.rc' shows how air line distances between geographic point locations can be detected. * An example `birthday.rc' file simply shows some nonsense birthdays. * Some examples of different world time tables can be found in the files `wtt1.rc', `wtt2.rc' and `wtt3.rc'. * Other examples concerning ANSI-colored texts can be found in the file `ansipic.rc', and some examples of _large_ text graphics are stored in the `textpic.rc' file. I don't know whether there are any Copyright conditions on the texts stored in both files, but I guess there are none (hopefully). By the way, if you have more of this stuff or if you have other reminder/appointment files as distributed in the `calendars/' and `dates/' subdirectories, I'd appreciate if you send them to my eMail address (uuencoded `.tar.gz' preferred), so I'm able to add them to the next release of Gcal. Already received reminder/appointment files (thanks to the authors): `meteoric.rc' Date: 18-Sep-1996 Author: Claus-Peter Ru"ckemann Description: Meteoric showers - interval / maximum / number / radiant / velocity / comet Because the collection of reminder/appointment files is enclosed original and untouched AS IS, there is no warranty of any kind, either expressed or implied! The entire risk as to the quality and fitness for a particular purpose is with you. If conversion from other calendar management tools is required, some converters can be found in the `[X]Calentool-2.3' package (written by Bill Randle): `cm2calentool.e' Converts _sun calendar manager_ files to `Calentool' appointment files `cal2ct.c' Converts `calendar' files to `Calentool' appointment files `month2ct.c' Converts `month' files to `Calentool' appointment files `mt2ct.c' Converts `monthtool' files to `Calentool' appointment files Once you have converted a reminder/appointment file into the `[X]Calentool-2.3' appointment file format, you can convert this file to the Gcal format using `awk' or `perl' and the according script file `ct2gcal.awk' respectively `ct2gcal.pl'. Because the `%s[DATE]' ("starting date" of event) and `%e[DATE]' ("ending date" of event) special texts respected by former versions of the Gcal program in the text part of a resource file line do not exist in this style anymore in Gcal-2.20 or newer, there is a `old2v220' AWK respectively Perl script in the `data/scripts' directory which converts old-style resource files into the style used by Gcal-2.20 or newer. See the top-level `ATTENTION' file for more details. If you have _old_, pre Gcal version 2.20 resource files, you first have to convert them manually into the Gcal-2.20 style by processing them using the `old2v220' AWK respectively Perl scripts, for example: $ awk -f old2v220.awk FILE-OLD.rc > FILE-v220.rc or $ perl old2v220.pl FILE-OLD.rc > FILE-v220.rc By reason of implementing the optional format instruction which can be used by many special texts in the text part of a resource file line now, some of these special texts do not exist in this style anymore in Gcal-3.00 or newer. There is a `v2x2v300' AWK respectively Perl script in the `data/scripts' directory which converts old-style resource files, i.e. resource files that were used with Gcal-2.20 and Gcal-2.40, into the style used by Gcal-3.00 or newer. See the top-level `ATTENTION' file for more details. If you have Gcal version 2.20 or version 2.40 resource files and you want to use them with Gcal version 3.00, you first have to convert them manually into the Gcal-3.00 style by processing them using the `v2x2v300' AWK respectively Perl scripts, for example: $ awk -f v2x2v300.awk FILE-OLD.rc > FILE-v300.rc or $ perl v2x2v300.pl FILE-OLD.rc > FILE-v300.rc It is very possible that the conversion done by using the `v2x2v300' AWK respectively Perl scripts is not sufficient, i.e. the resulting file contains unwanted Gcal special texts or some of the required Gcal special texts are crippled or protected by a `\' character. In this case, you have to edit the resulting file manually to correct the broken text. Sorry! gcal-4.1/data/wtt1.rc0000664000000000000000000000560312353314150011314 00000000000000; Two column world time table for Gcal-2.20 or newer ; ; $Id: wtt1.rc 0.01 2000/03/31 00:00:01 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; Try this resource file by using the `-QUx' option of Gcal. ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; ; Either set `$f' to `%@' or to `%@*' ; for displaying using the 12-hours time format. ; $f=%@ ;$f=%@* ; ; The line templates. ; $p=0*d1#999 $a=$f$t $>15*l -- $:13*x $f$y ; ; The locations. ; $l=Samoa $t=-660 $x=Honolulu $y=-600 $p $a ; $l=Anchorage $t=-540 $x=San Francisco $y=-480 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $y+=60 $p %i0@a#0@b-1 $a ; $l=Denver $t=-420 $x=Chicago $y=-360 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $y+=60 $p %i0@a#0@b-1 $a ; $l=Montreal $t=-300 $x=New York $y=-300 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $y+=60 $p %i0@a#0@b-1 $a ; $l=Azores $t=-60 $x=London $y=0 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $y+=60 $p %i0@a#0@b-1 $a ; $l=Managua $t=-300 $x=Dakar $y=0 $p $a ; $l=Lisbon $t=0 $x=%3%1Münster%2 $y=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $y+=60 $p %i0@a#0@b-1 $a ; $l=Madrid $t=60 $x=Stockholm $y=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $y+=60 $p %i0@a#0@b-1 $a ; $l=Istanbul $t=120 $x=Helsinki $y=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $y+=60 $p %i0@a#0@b-1 $a ; $l=Athens $t=120 $x=Moscow $y=180 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $y+=60 $p %i0@a#0@b-1 $a ; $l=Johannesburg $t=120 $x=Nairobi $y=180 $p $a ; $l=Bombay $t=330 $x=Bangkok $y=420 $p $a ; $l=Beijing $t=480 $x=Hongkong $y=480 $p $a ; $l=Tokyo $t=540 $x=Seoul $y=540 $p $a ; $x=GMT $y= ; $l=Sydney $t=600 a=03sun9 b=10sun9 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a ; $l=Wellington $t=720 a=03sun3 b=10sun1 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a ; $l=Rio de Janeiro $t=-180 a=02sat2 b=10sun1 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a ; $l=Bermuda $t=-240 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Tehran $t=210 a=0321 b=0922 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a gcal-4.1/data/wtt2.rc0000664000000000000000000000653712353314150011324 00000000000000; One column world time table for Gcal-2.20 or newer ; ; $Id: wtt2.rc 0.01 2000/03/05 00:00:01 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; Try this resource file by using the `-QUx' option of Gcal. ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; ; Either set `$f' to `%@' or to `%@*' ; for displaying using the 12-hours time format. ; $f=%@ ;$f=%@* ; ; The line templates. ; $p=0*d1#999 $a=$f$t local time, $l ; ; The locations. ; $l=Samoa $t=-660 $p $a ; $l=Honolulu $t=-600 $p $a ; $l=Anchorage $t=-540 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=San Francisco $t=-480 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Denver $t=-420 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Managua $t=-300 $p $a ; $l=Chicago $t=-360 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Montreal $t=-300 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=New York $t=-300 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Bermuda $t=-240 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Rio de Janeiro $t=-180 a=02sat2 b=10sun1 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a ; $l=Azores $t=-60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Dakar $t=0 $p $a ; $l=London $t=0 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Lisbon $t=0 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=%3%1Münster%2 $t=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Madrid $t=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Stockholm $t=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Johannesburg $t=120 $p $a ; $l=Istanbul $t=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Helsinki $t=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Athens $t=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Nairobi $t=180 $p $a ; $l=Moscow $t=180 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Tehran $t=210 a=0321 b=0922 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Bombay $t=330 $p $a ; $l=Bangkok $t=420 $p $a ; $l=Beijing $t=480 $p $a ; $l=Hongkong $t=480 $p $a ; $l=Tokyo $t=540 $p $a ; $l=Seoul $t=540 $p $a ; $l=Sydney $t=600 a=03sun9 b=10sun9 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a ; $l=Wellington $t=720 a=03sun3 b=10sun1 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a gcal-4.1/build-aux/0000775000000000000000000000000013041164076011131 500000000000000gcal-4.1/build-aux/config.sub0000775000000000000000000010703713041163305013036 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2017 Free Software Foundation, Inc. timestamp='2017-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | e2k | epiphany \ | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pru \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; leon|leon[3-9]) basic_machine=sparc-$basic_machine ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pru-* \ | pyramid-* \ | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; asmjs) basic_machine=asmjs-unknown ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; e500v[12]) basic_machine=powerpc-unknown os=$os"spe" ;; e500v[12]-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` os=$os"spe" ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; leon-*|leon[3-9]-*) basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; moxiebox) basic_machine=moxie-unknown os=-moxiebox ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -ios) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; pru-*) os=-elf ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: gcal-4.1/build-aux/useless-if-before-free0000775000000000000000000001426013041163522015233 00000000000000eval '(exit $?0)' && eval 'exec perl -wST "$0" "$@"' & eval 'exec perl -wST "$0" $argv:q' if 0; # Detect instances of "if (p) free (p);". # Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces. my $VERSION = '2016-08-01 17:47'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook # do its job. Otherwise, update this string manually. # Copyright (C) 2008-2017 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Written by Jim Meyering use strict; use warnings; use Getopt::Long; (my $ME = $0) =~ s|.*/||; # use File::Coda; # http://meyering.net/code/Coda/ END { defined fileno STDOUT or return; close STDOUT and return; warn "$ME: failed to close standard output: $!\n"; $? ||= 1; } sub usage ($) { my ($exit_code) = @_; my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); if ($exit_code != 0) { print $STREAM "Try '$ME --help' for more information.\n"; } else { print $STREAM < sub { usage 0 }, version => sub { print "$ME version $VERSION\n"; exit }, list => \$list, 'name=s@' => \@name, ) or usage 1; # Make sure we have the right number of non-option arguments. # Always tell the user why we fail. @ARGV < 1 and (warn "$ME: missing FILE argument\n"), usage EXIT_ERROR; my $or = join '|', @name; my $regexp = qr/(?:$or)/; # Set the input record separator. # Note: this makes it impractical to print line numbers. $/ = '"'; my $found_match = 0; FILE: foreach my $file (@ARGV) { open FH, '<', $file or (warn "$ME: can't open '$file' for reading: $!\n"), $err = EXIT_ERROR, next; while (defined (my $line = )) { # Skip non-matching lines early to save time $line =~ /\bif\b/ or next; while ($line =~ /\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*([^)]+?))?\s*\) # 1 2 3 (?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;| \s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;\s*\}))/sxg) { my $all = $1; my ($lhs, $rhs) = ($2, $3); my ($free_opnd, $braced_free_opnd) = ($4, $5); my $non_NULL; if (!defined $rhs) { $non_NULL = $lhs } elsif (is_NULL $rhs) { $non_NULL = $lhs } elsif (is_NULL $lhs) { $non_NULL = $rhs } else { next } # Compare the non-NULL part of the "if" expression and the # free'd expression, without regard to white space. $non_NULL =~ tr/ \t//d; my $e2 = defined $free_opnd ? $free_opnd : $braced_free_opnd; $e2 =~ tr/ \t//d; if ($non_NULL eq $e2) { $found_match = 1; $list and (print "$file\0"), next FILE; print "$file: $all\n"; } } } } continue { close FH; } $found_match && $err == EXIT_NO_MATCH and $err = EXIT_MATCH; exit $err; } my $foo = <<'EOF'; # The above is to *find* them. # This adjusts them, removing the unnecessary "if (p)" part. # FIXME: do something like this as an option (doesn't do braces): free=xfree git grep -l -z "$free *(" \ | xargs -0 useless-if-before-free -l --name="$free" \ | xargs -0 perl -0x3b -pi -e \ 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s+('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\)\s*;)/$2/s' # Use the following to remove redundant uses of kfree inside braces. # Note that -0777 puts perl in slurp-whole-file mode; # but we have plenty of memory, these days... free=kfree git grep -l -z "$free *(" \ | xargs -0 useless-if-before-free -l --name="$free" \ | xargs -0 perl -0777 -pi -e \ 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s*\{\s*('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\);)\s*\}[^\n]*$/$2/gms' Be careful that the result of the above transformation is valid. If the matched string is followed by "else", then obviously, it won't be. When modifying files, refuse to process anything other than a regular file. EOF ## Local Variables: ## mode: perl ## indent-tabs-mode: nil ## eval: (add-hook 'write-file-hooks 'time-stamp) ## time-stamp-start: "my $VERSION = '" ## time-stamp-format: "%:y-%02m-%02d %02H:%02M" ## time-stamp-time-zone: "UTC0" ## time-stamp-end: "'; # UTC" ## End: gcal-4.1/build-aux/config.rpath0000775000000000000000000004421613041163305013362 00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2017 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's _LT_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; mingw* | cygwin* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in ecc*) wl='-Wl,' ;; icc* | ifort*) wl='-Wl,' ;; lf95*) wl='-Wl,' ;; nagfor*) wl='-Wl,-Wl,,' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; xl* | bgxl* | bgf* | mpixl*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) wl= ;; *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; newsos6) ;; *nto* | *qnx*) ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) wl='-Qoption ld ' ;; *) wl='-Wl,' ;; esac ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's _LT_LINKER_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; haiku*) ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then : else ld_shlibs=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd2.[01]*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix[4-9]*) library_names_spec='$libname$shrext' ;; amigaos*) case "$host_cpu" in powerpc*) library_names_spec='$libname$shrext' ;; m68k) library_names_spec='$libname.a' ;; esac ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32* | cegcc*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd[23].*) library_names_spec='$libname$shrext$versuffix' ;; freebsd* | dragonfly*) library_names_spec='$libname$shrext' ;; gnu*) library_names_spec='$libname$shrext' ;; haiku*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; *nto* | *qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; tpf*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. # List the specified version-controlled files. # With no argument, list them all. With a single DIRECTORY argument, # list the version-controlled files in that directory. # If there's an argument, it must be a single, "."-relative directory name. # cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/ postprocess= case $1 in --help) cat <. EOF exit ;; --version) year=`echo "$scriptversion" | sed 's/[^0-9].*//'` cat < This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. EOF exit ;; -C) test "$2" = . || postprocess="| sed 's|^|$2/|'" cd "$2" || exit 1 shift; shift ;; esac test $# = 0 && set . for dir do if test -d .git; then test "x$dir" = x. \ && dir= sed_esc= \ || { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; } # Ignore git symlinks - either they point into the tree, in which case # we don't need to visit the target twice, or they point somewhere # else (often into a submodule), in which case the content does not # belong to this package. eval exec git ls-tree -r 'HEAD:"$dir"' \ \| sed -n '"s/^100[^ ]*./$sed_esc/p"' $postprocess elif test -d .hg; then eval exec hg locate '"$dir/*"' $postprocess elif test -d .bzr; then test "$postprocess" = '' && postprocess="| sed 's|^\./||'" eval exec bzr ls -R --versioned '"$dir"' $postprocess elif test -d CVS; then test "$postprocess" = '' && postprocess="| sed 's|^\./||'" if test -x build-aux/cvsu; then eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess elif (cvsu --help) >/dev/null 2>&1; then eval cvsu --find --types=AFGM '"$dir"' $postprocess else eval awk -F/ \''{ \ if (!$1 && $3 !~ /^-/) { \ f=FILENAME; \ if (f ~ /CVS\/Entries$/) \ f = substr(f, 1, length(f)-11); \ print f $2; \ }}'\'' \ `find "$dir" -name Entries -print` /dev/null' $postprocess fi elif test -d .svn; then eval exec svn list -R '"$dir"' $postprocess else echo "$0: Failed to determine type of version control used in `pwd`" 1>&2 exit 1 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: gcal-4.1/build-aux/compile0000755000000000000000000001624513041163550012431 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-10-14.11; # UTC # Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gcal-4.1/build-aux/missing0000755000000000000000000001533013041163550012444 00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2013-10-28.13; # UTC # Copyright (C) 1996-2014 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gcal-4.1/build-aux/texinfo.tex0000664000000000000000000134667713041163305013271 00000000000000% texinfo.tex -- TeX macros to handle Texinfo files. % % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % \def\texinfoversion{2017-01-14.15} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, % 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 % Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as % published by the Free Software Foundation, either version 3 of the % License, or (at your option) any later version. % % This texinfo.tex file is distributed in the hope that it will be % useful, but WITHOUT ANY WARRANTY; without even the implied warranty % of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU % General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program. If not, see . % % As a special exception, when this file is read by TeX when processing % a Texinfo source document, you may use the result without % restriction. This Exception is an additional permission under section 7 % of the GNU General Public License, version 3 ("GPLv3"). % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: % http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or % http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or % http://www.gnu.org/software/texinfo/ (the Texinfo home page) % The texinfo.tex in any given distribution could well be out % of date, so if that's what you're using, please check. % % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the % problem. Patches are, of course, greatly appreciated. % % To process a Texinfo manual with TeX, it's most reliable to use the % texi2dvi shell script that comes with the distribution. For a simple % manual foo.texi, however, you can get away with this: % tex foo.texi % texindex foo.?? % tex foo.texi % tex foo.texi % dvips foo.dvi -o # or whatever; this makes foo.ps. % The extra TeX runs get the cross-reference information correct. % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. % % It is possible to adapt texinfo.tex for other languages, to some % extent. You can get the existing language-specific files from the % full Texinfo distribution. % % The GNU Texinfo home page is http://www.gnu.org/software/texinfo. \message{Loading texinfo [version \texinfoversion]:} % If in a .fmt file, print the version number % and turn on active characters that we couldn't do earlier because % they might have appeared in the input file name. \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} % LaTeX's \typeout. This ensures that the messages it is used for % are identical in format to the corresponding ones from latex/pdflatex. \def\typeout{\immediate\write17}% \chardef\other=12 % We never want plain's \outer definition of \+ in Texinfo. % For @tex, we can use \tabalign. \let\+ = \relax % Save some plain tex macros whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c \let\ptexcomma=\, \let\ptexdot=\. \let\ptexdots=\dots \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! \let\ptexfootnote=\footnote \let\ptexgtr=> \let\ptexhat=^ \let\ptexi=\i \let\ptexindent=\indent \let\ptexinsert=\insert \let\ptexlbrace=\{ \let\ptexless=< \let\ptexnewwrite\newwrite \let\ptexnoindent=\noindent \let\ptexplus=+ \let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ \let\ptexsp=\sp \let\ptexstar=\* \let\ptexsup=\sup \let\ptext=\t \let\ptextop=\top {\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J % Use TeX 3.0's \inputlineno to get the line number, for better error % messages, but if we're using an old version of TeX, don't do anything. % \ifx\inputlineno\thisisundefined \let\linenumber = \empty % Pre-3.0. \else \def\linenumber{l.\the\inputlineno:\space} \fi % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi \ifx\putworderror\undefined \gdef\putworderror{error}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi \ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi \ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi \ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi \ifx\putwordof\undefined \gdef\putwordof{of}\fi \ifx\putwordon\undefined \gdef\putwordon{on}\fi \ifx\putwordpage\undefined \gdef\putwordpage{page}\fi \ifx\putwordsection\undefined \gdef\putwordsection{section}\fi \ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi \ifx\putwordsee\undefined \gdef\putwordsee{see}\fi \ifx\putwordSee\undefined \gdef\putwordSee{See}\fi \ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi \ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi % \ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi \ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi \ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi \ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi \ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi \ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi \ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi \ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi \ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi \ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi \ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi \ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi % \ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi \ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi \ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi % Give the space character the catcode for a space. \def\spaceisspace{\catcode`\ =10\relax} % Likewise for ^^M, the end of line character. \def\endlineisspace{\catcode13=10\relax} \chardef\dashChar = `\- \chardef\slashChar = `\/ \chardef\underChar = `\_ % Ignore a token. % \def\gobble#1{} % The following is used inside several \edef's. \def\makecsname#1{\expandafter\noexpand\csname#1\endcsname} % Hyphenation fixes. \hyphenation{ Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script ap-pen-dix bit-map bit-maps data-base data-bases eshell fall-ing half-way long-est man-u-script man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces spell-ing spell-ings stand-alone strong-est time-stamp time-stamps which-ever white-space wide-spread wrap-around } % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, % since that produces some useless output on the terminal. We also make % some effort to order the tracing commands to reduce output in the log % file; cf. trace.sty in LaTeX. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% \def\loggingall{% \tracingstats2 \tracingpages1 \tracinglostchars2 % 2 gives us more in etex \tracingparagraphs1 \tracingoutput1 \tracingmacros2 \tracingrestores1 \showboxbreadth\maxdimen \showboxdepth\maxdimen \ifx\eTeXversion\thisisundefined\else % etex gives us more logging \tracingscantokens1 \tracingifs1 \tracinggroups1 \tracingnesting2 \tracingassigns1 \fi \tracingcommands3 % 3 gives us more in etex \errorcontextlines16 }% % @errormsg{MSG}. Do the index-like expansions on MSG, but if things % aren't perfect, it's not the end of the world, being an error message, % after all. % \def\errormsg{\begingroup \indexnofonts \doerrormsg} \def\doerrormsg#1{\errmessage{#1}} % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. % \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi\fi} \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount \removelastskip\penalty-100\medskip\fi\fi} \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi\fi} % Output routine % % For a final copy, take out the rectangles % that mark overfull boxes (in case you have decided % that the text looks ok even though it passes the margin). % \def\finalout{\overfullrule=0pt } % Do @cropmarks to get crop marks. % \newif\ifcropmarks \let\cropmarks = \cropmarkstrue % % Dimensions to add cropmarks at corners. % Added by P. A. MacKay, 12 Nov. 1986 % \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines \newdimen\cornerlong \cornerlong=1pc \newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in % Output a mark which sets \thischapter, \thissection and \thiscolor. % We dump everything together because we only have one kind of mark. % This works because we only use \botmark / \topmark, not \firstmark. % % A mark contains a subexpression of the \ifcase ... \fi construct. % \get*marks macros below extract the needed part using \ifcase. % % Another complication is to let the user choose whether \thischapter % (\thissection) refers to the chapter (section) in effect at the top % of a page, or that at the bottom of a page. % \domark is called twice inside \chapmacro, to add one % mark before the section break, and one after. % In the second call \prevchapterdefs is the same as \lastchapterdefs, % and \prevsectiondefs is the same as \lastsectiondefs. % Then if the page is not broken at the mark, some of the previous % section appears on the page, and we can get the name of this section % from \firstmark for @everyheadingmarks top. % @everyheadingmarks bottom uses \botmark. % % See page 260 of The TeXbook. \def\domark{% \toks0=\expandafter{\lastchapterdefs}% \toks2=\expandafter{\lastsectiondefs}% \toks4=\expandafter{\prevchapterdefs}% \toks6=\expandafter{\prevsectiondefs}% \toks8=\expandafter{\lastcolordefs}% \mark{% \the\toks0 \the\toks2 % 0: marks for @everyheadingmarks top \noexpand\or \the\toks4 \the\toks6 % 1: for @everyheadingmarks bottom \noexpand\else \the\toks8 % 2: color marks }% } % \gettopheadingmarks, \getbottomheadingmarks, % \getcolormarks - extract needed part of mark. % % \topmark doesn't work for the very first chapter (after the title % page or the contents), so we use \firstmark there -- this gets us % the mark with the chapter defs, unless the user sneaks in, e.g., % @setcolor (or @url, or @link, etc.) between @contents and the very % first @chapter. \def\gettopheadingmarks{% \ifcase0\topmark\fi \ifx\thischapter\empty \ifcase0\firstmark\fi \fi } \def\getbottomheadingmarks{\ifcase1\botmark\fi} \def\getcolormarks{\ifcase2\topmark\fi} % Avoid "undefined control sequence" errors. \def\lastchapterdefs{} \def\lastsectiondefs{} \def\lastsection{} \def\prevchapterdefs{} \def\prevsectiondefs{} \def\lastcolordefs{} % Margin to add to right of even pages, to left of odd pages. \newdimen\bindingoffset \newdimen\normaloffset \newdimen\txipagewidth \newdimen\txipageheight % Main output routine. % \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} \newbox\headlinebox \newbox\footlinebox % \onepageout takes a vbox as an argument. % \shipout a vbox for a single page, adding an optional header, footer, % cropmarks, and footnote. This also causes index entries for this page % to be written to the auxiliary files. % \def\onepageout#1{% \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi % % Common context changes for both heading and footing. % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). \def\commmonheadfootline{\let\hsize=\txipagewidth \texinfochars} % % Retrieve the information for the headings from the marks in the page, % and call Plain TeX's \makeheadline and \makefootline, which use the % values in \headline and \footline. % % This is used to check if we are on the first page of a chapter. \ifcase1\topmark\fi \let\prevchaptername\thischaptername \ifcase0\firstmark\fi \let\curchaptername\thischaptername % \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi % \ifx\curchaptername\prevchaptername \let\thischapterheading\thischapter \else % \thischapterheading is the same as \thischapter except it is blank % for the first page of a chapter. This is to prevent the chapter name % being shown twice. \def\thischapterheading{}% \fi % \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}% \global\setbox\footlinebox = \vbox{\commmonheadfootline \makefootline}% % {% % Set context for writing to auxiliary files like index files. % Have to do this stuff outside the \shipout because we want it to % take effect in \write's, yet the group defined by the \vbox ends % before the \shipout runs. % \indexdummies % don't expand commands in the output. \normalturnoffactive % \ in index entries must not stay \, e.g., if % the page break happens to be in the middle of an example. % We don't want .vr (or whatever) entries like this: % \entry{{\indexbackslash }acronym}{32}{\code {\acronym}} % "\acronym" won't work when it's read back in; % it needs to be % {\code {{\backslashcurfont }acronym} \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi % \ifcropmarks \vbox to \outervsize\bgroup \hsize = \outerhsize \vskip-\topandbottommargin \vtop to0pt{% \line{\ewtop\hfil\ewtop}% \nointerlineskip \line{% \vbox{\moveleft\cornerthick\nstop}% \hfill \vbox{\moveright\cornerthick\nstop}% }% \vss}% \vskip\topandbottommargin \line\bgroup \hfil % center the page within the outer (page) hsize. \ifodd\pageno\hskip\bindingoffset\fi \vbox\bgroup \fi % \unvbox\headlinebox \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. % (We lessened \vsize for it in \oddfootingyyy.) % The \baselineskip=24pt in plain's \makefootline has no effect. \vskip 24pt \unvbox\footlinebox \fi % \ifcropmarks \egroup % end of \vbox\bgroup \hfil\egroup % end of (centering) \line\bgroup \vskip\topandbottommargin plus1fill minus1fill \boxmaxdepth = \cornerthick \vbox to0pt{\vss \line{% \vbox{\moveleft\cornerthick\nsbot}% \hfill \vbox{\moveright\cornerthick\nsbot}% }% \nointerlineskip \line{\ewbot\hfil\ewbot}% }% \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox }% end of group with \indexdummies \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } \newinsert\margin \dimen\margin=\maxdimen % Main part of page, including any footnotes \def\pagebody#1{\vbox to\txipageheight{\boxmaxdepth=\maxdepth #1}} {\catcode`\@ =11 \gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi % marginal hacks, juha@viisa.uucp (Juha Takala) \ifvoid\margin\else % marginal info is present \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi \dimen@=\dp#1\relax \unvbox#1\relax \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } % Here are the rules for the cropmarks. Note that they are % offset so that the space between them is truly \outerhsize or \outervsize % (P. A. MacKay, 12 November, 1986) % \def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} \def\nstop{\vbox {\hrule height\cornerthick depth\cornerlong width\cornerthick}} \def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} \def\nsbot{\vbox {\hrule height\cornerlong depth\cornerthick width\cornerthick}} % Argument parsing % Parse an argument, then pass it to #1. The argument is the rest of % the input line (except we remove a trailing comment). #1 should be a % macro which expects an ordinary undelimited TeX argument. % For example, \def\foo{\parsearg\fooxxx}. % \def\parsearg{\parseargusing{}} \def\parseargusing#1#2{% \def\argtorun{#2}% \begingroup \obeylines \spaceisspace #1% \parseargline\empty% Insert the \empty token, see \finishparsearg below. } {\obeylines % \gdef\parseargline#1^^M{% \endgroup % End of the group started in \parsearg. \argremovecomment #1\comment\ArgTerm% }% } % First remove any @comment, then any @c comment. Also remove a @texinfoc % comment (see \scanmacro for details). Pass the result on to \argcheckspaces. \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} \def\argremovec#1\c#2\ArgTerm{\argremovetexinfoc #1\texinfoc\ArgTerm} \def\argremovetexinfoc#1\texinfoc#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} % Each occurrence of `\^^M' or `\^^M' is replaced by a single space. % % \argremovec might leave us with trailing space, e.g., % @end itemize @c foo % This space token undergoes the same procedure and is eventually removed % by \finishparsearg. % \def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M} \def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M} \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% \def\temp{#3}% \ifx\temp\empty % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: \let\temp\finishparsearg \else \let\temp\argcheckspaces \fi % Put the space token in: \temp#1 #3\ArgTerm } % If a _delimited_ argument is enclosed in braces, they get stripped; so % to get _exactly_ the rest of the line, we had to prevent such situation. % We prepended an \empty token at the very beginning and we expand it now, % just before passing the control to \argtorun. % (Similarly, we have to think about #3 of \argcheckspacesY above: it is % either the null string, or it ends with \^^M---thus there is no danger % that a pair of braces would be stripped. % % But first, we have to remove the trailing space token. % \def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} % \parseargdef - define a command taking an argument on the line % % \parseargdef\foo{...} % is roughly equivalent to % \def\foo{\parsearg\Xfoo} % \def\Xfoo#1{...} \def\parseargdef#1{% \expandafter \doparseargdef \csname\string#1\endcsname #1% } \def\doparseargdef#1#2{% \def#2{\parsearg#1}% \def#1##1% } % Several utility definitions with active space: { \obeyspaces \gdef\obeyedspace{ } % Make each space character in the input produce a normal interword % space in the output. Don't allow a line break at this space, as this % is used only in environments like @example, where each line of input % should produce a line of output anyway. % \gdef\sepspaces{\obeyspaces\let =\tie} % If an index command is used in an @example environment, any spaces % therein should become regular spaces in the raw index file, not the % expansion of \tie (\leavevmode \penalty \@M \ ). \gdef\unsepspaces{\let =\space} } \def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} % Define the framework for environments in texinfo.tex. It's used like this: % % \envdef\foo{...} % \def\Efoo{...} % % It's the responsibility of \envdef to insert \begingroup before the % actual body; @end closes the group after calling \Efoo. \envdef also % defines \thisenv, so the current environment is known; @end checks % whether the environment name matches. The \checkenv macro can also be % used to check whether the current environment is the one expected. % % Non-false conditionals (@iftex, @ifset) don't fit into this, so they % are not treated as environments; they don't open a group. (The % implementation of @end takes care not to call \endgroup in this % special case.) % At run-time, environments start with this: \def\startenvironment#1{\begingroup\def\thisenv{#1}} % initialize \let\thisenv\empty % ... but they get defined via ``\envdef\foo{...}'': \long\def\envdef#1#2{\def#1{\startenvironment#1#2}} \def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}} % Check whether we're in the right environment: \def\checkenv#1{% \def\temp{#1}% \ifx\thisenv\temp \else \badenverr \fi } % Environment mismatch, #1 expected: \def\badenverr{% \errhelp = \EMsimple \errmessage{This command can appear only \inenvironment\temp, not \inenvironment\thisenv}% } \def\inenvironment#1{% \ifx#1\empty outside of any environment% \else in environment \expandafter\string#1% \fi } % @end foo executes the definition of \Efoo. % But first, it executes a specialized version of \checkenv % \parseargdef\end{% \if 1\csname iscond.#1\endcsname \else % The general wording of \badenverr may not be ideal. \expandafter\checkenv\csname#1\endcsname \csname E#1\endcsname \endgroup \fi } \newhelp\EMsimple{Press RETURN to continue.} % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and % since \penalty is valid in vertical mode, we'd end up putting the % penalty on the vertical list instead of in the new paragraph. {\catcode`@ = 11 % Avoid using \@M directly, because that causes trouble % if the definition is written into an index file. \global\let\tiepenalty = \@M \gdef\tie{\leavevmode\penalty\tiepenalty\ } } % @: forces normal size whitespace following. \def\:{\spacefactor=1000 } % @* forces a line break. \def\*{\unskip\hfil\break\hbox{}\ignorespaces} % @/ allows a line break. \let\/=\allowbreak % @. is an end-of-sentence period. \def\.{.\spacefactor=\endofsentencespacefactor\space} % @! is an end-of-sentence bang. \def\!{!\spacefactor=\endofsentencespacefactor\space} % @? is an end-of-sentence query. \def\?{?\spacefactor=\endofsentencespacefactor\space} % @frenchspacing on|off says whether to put extra space after punctuation. % \def\onword{on} \def\offword{off} % \parseargdef\frenchspacing{% \def\temp{#1}% \ifx\temp\onword \plainfrenchspacing \else\ifx\temp\offword \plainnonfrenchspacing \else \errhelp = \EMsimple \errmessage{Unknown @frenchspacing option `\temp', must be on|off}% \fi\fi } % @w prevents a word break. Without the \leavevmode, @w at the % beginning of a paragraph, when TeX is still in vertical mode, would % produce a whole line of output instead of starting the paragraph. \def\w#1{\leavevmode\hbox{#1}} % @group ... @end group forces ... to be all on one page, by enclosing % it in a TeX vbox. We use \vtop instead of \vbox to construct the box % to keep its height that of a normal line. According to the rules for % \topskip (p.114 of the TeXbook), the glue inserted is % max (\topskip - \ht (first item), 0). If that height is large, % therefore, no glue is inserted, and the space between the headline and % the text is small, which looks bad. % % Another complication is that the group might be very large. This can % cause the glue on the previous page to be unduly stretched, because it % does not have much material. In this case, it's better to add an % explicit \vfill so that the extra space is at the bottom. The % threshold for doing this is if the group is more than \vfilllimit % percent of a page (\vfilllimit can be changed inside of @tex). % \newbox\groupbox \def\vfilllimit{0.7} % \envdef\group{% \ifnum\catcode`\^^M=\active \else \errhelp = \groupinvalidhelp \errmessage{@group invalid in context where filling is enabled}% \fi \startsavinginserts % \setbox\groupbox = \vtop\bgroup % Do @comment since we are called inside an environment such as % @example, where each end-of-line in the input causes an % end-of-line in the output. We don't want the end-of-line after % the `@group' to put extra space in the output. Since @group % should appear on a line by itself (according to the Texinfo % manual), we don't worry about eating any user text. \comment } % % The \vtop produces a box with normal height and large depth; thus, TeX puts % \baselineskip glue before it, and (when the next line of text is done) % \lineskip glue after it. Thus, space below is not quite equal to space % above. But it's pretty close. \def\Egroup{% % To get correct interline space between the last line of the group % and the first line afterwards, we have to propagate \prevdepth. \endgraf % Not \par, as it may have been set to \lisppar. \global\dimen1 = \prevdepth \egroup % End the \vtop. \addgroupbox \prevdepth = \dimen1 \checkinserts } \def\addgroupbox{ % \dimen0 is the vertical size of the group's box. \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox % \dimen2 is how much space is left on the page (more or less). \dimen2 = \txipageheight \advance\dimen2 by -\pagetotal % if the group doesn't fit on the current page, and it's a big big % group, force a page break. \ifdim \dimen0 > \dimen2 \ifdim \pagetotal < \vfilllimit\txipageheight \page \fi \fi \box\groupbox } % % TeX puts in an \escapechar (i.e., `@') at the beginning of the help % message, so this ends up printing `@group can only ...'. % \newhelp\groupinvalidhelp{% group can only be used in environments such as @example,^^J% where each line of input produces a line of output.} % @need space-in-mils % forces a page break if there is not space-in-mils remaining. \newdimen\mil \mil=0.001in \parseargdef\need{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. \par % % If the @need value is less than one line space, it's useless. \dimen0 = #1\mil \dimen2 = \ht\strutbox \advance\dimen2 by \dp\strutbox \ifdim\dimen0 > \dimen2 % % Do a \strut just to make the height of this box be normal, so the % normal leading is inserted relative to the preceding line. % And a page break here is fine. \vtop to #1\mil{\strut\vfil}% % % TeX does not even consider page breaks if a penalty added to the % main vertical list is 10000 or more. But in order to see if the % empty box we just added fits on the page, we must make it consider % page breaks. On the other hand, we don't want to actually break the % page after the empty box. So we use a penalty of 9999. % % There is an extremely small chance that TeX will actually break the % page at this \penalty, if there are no other feasible breakpoints in % sight. (If the user is using lots of big @group commands, which % almost-but-not-quite fill up a page, TeX will have a hard time doing % good page breaking, for example.) However, I could not construct an % example where a page broke at this \penalty; if it happens in a real % document, then we can reconsider our strategy. \penalty9999 % % Back up by the size of the box, whether we did a page break or not. \kern -#1\mil % % Do not allow a page break right after this kern. \nobreak \fi } % @br forces paragraph break (and is undocumented). \let\br = \par % @page forces the start of a new page. % \def\page{\par\vfill\supereject} % @exdent text.... % outputs text on separate line in roman font, starting at standard page margin % This records the amount of indent in the innermost environment. % That's how much \exdent should take out. \newskip\exdentamount % This defn is used inside fill environments such as @defun. \parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break} % This defn is used inside nofill environments such as @example. \parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount \leftline{\hskip\leftskip{\rm#1}}}} % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion % class. WHICH is `l' or `r'. Not documented, written for gawk manual. % \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} % \def\doinmargin#1#2{\strut\vadjust{% \nobreak \kern-\strutdepth \vtop to \strutdepth{% \baselineskip=\strutdepth \vss % if you have multiple lines of stuff to put here, you'll need to % make the vbox yourself of the appropriate size. \ifx#1l% \llap{\ignorespaces #2\hskip\inmarginspacing}% \else \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}% \fi \null }% }} \def\inleftmargin{\doinmargin l} \def\inrightmargin{\doinmargin r} % % @inmargin{TEXT [, RIGHT-TEXT]} % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; % else use TEXT for both). % \def\inmargin#1{\parseinmargin #1,,\finish} \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \def\lefttext{#1}% have both texts \def\righttext{#2}% \else \def\lefttext{#1}% have only one text \def\righttext{#1}% \fi % \ifodd\pageno \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin \else \def\temp{\inleftmargin\lefttext}% \fi \temp } % @include FILE -- \input text of FILE. % \def\include{\parseargusing\filenamecatcodes\includezzz} \def\includezzz#1{% \pushthisfilestack \def\thisfile{#1}% {% \makevalueexpandable % we want to expand any @value in FILE. \turnoffactive % and allow special characters in the expansion \indexnofonts % Allow `@@' and other weird things in file names. \wlog{texinfo.tex: doing @include of #1^^J}% \edef\temp{\noexpand\input #1 }% % % This trickery is to read FILE outside of a group, in case it makes % definitions, etc. \expandafter }\temp \popthisfilestack } \def\filenamecatcodes{% \catcode`\\=\other \catcode`~=\other \catcode`^=\other \catcode`_=\other \catcode`|=\other \catcode`<=\other \catcode`>=\other \catcode`+=\other \catcode`-=\other \catcode`\`=\other \catcode`\'=\other } \def\pushthisfilestack{% \expandafter\pushthisfilestackX\popthisfilestack\StackTerm } \def\pushthisfilestackX{% \expandafter\pushthisfilestackY\thisfile\StackTerm } \def\pushthisfilestackY #1\StackTerm #2\StackTerm {% \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}% } \def\popthisfilestack{\errthisfilestackempty} \def\errthisfilestackempty{\errmessage{Internal error: the stack of filenames is empty.}} % \def\thisfile{} % @center line % outputs that line, centered. % \parseargdef\center{% \ifhmode \let\centersub\centerH \else \let\centersub\centerV \fi \centersub{\hfil \ignorespaces#1\unskip \hfil}% \let\centersub\relax % don't let the definition persist, just in case } \def\centerH#1{{% \hfil\break \advance\hsize by -\leftskip \advance\hsize by -\rightskip \line{#1}% \break }} % \newcount\centerpenalty \def\centerV#1{% % The idea here is the same as in \startdefun, \cartouche, etc.: if % @center is the first thing after a section heading, we need to wipe % out the negative parskip inserted by \sectionheading, but still % prevent a page break here. \centerpenalty = \lastpenalty \ifnum\centerpenalty>10000 \vskip\parskip \fi \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi \line{\kern\leftskip #1\kern\rightskip}% } % @sp n outputs n lines of vertical space % \parseargdef\sp{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment % @ignore ... @end ignore is another way to write a comment \def\c{\begingroup \catcode`\^^M=\active% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% \cxxx} {\catcode`\^^M=\active \gdef\cxxx#1^^M{\endgroup}} % \let\comment\c % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. % NCHARS can also be the word `asis' or `none'. % We cannot feasibly implement @paragraphindent asis, though. % \def\asisword{asis} % no translation, these are keywords \def\noneword{none} % \parseargdef\paragraphindent{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \defaultparindent = 0pt \else \defaultparindent = #1em \fi \fi \parindent = \defaultparindent } % @exampleindent NCHARS % We'll use ems for NCHARS like @paragraphindent. % It seems @exampleindent asis isn't necessary, but % I preserve it to make it similar to @paragraphindent. \parseargdef\exampleindent{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \lispnarrowing = 0pt \else \lispnarrowing = #1em \fi \fi } % @firstparagraphindent WORD % If WORD is `none', then suppress indentation of the first paragraph % after a section heading. If WORD is `insert', then do indent at such % paragraphs. % % The paragraph indentation is suppressed or not by calling % \suppressfirstparagraphindent, which the sectioning commands do. % We switch the definition of this back and forth according to WORD. % By default, we suppress indentation. % \def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent} \def\insertword{insert} % \parseargdef\firstparagraphindent{% \def\temp{#1}% \ifx\temp\noneword \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent \else\ifx\temp\insertword \let\suppressfirstparagraphindent = \relax \else \errhelp = \EMsimple \errmessage{Unknown @firstparagraphindent option `\temp'}% \fi\fi } % Here is how we actually suppress indentation. Redefine \everypar to % \kern backwards by \parindent, and then reset itself to empty. % % We also make \indent itself not actually do anything until the next % paragraph. % \gdef\dosuppressfirstparagraphindent{% \gdef\indent {\restorefirstparagraphindent \indent}% \gdef\noindent{\restorefirstparagraphindent \noindent}% \global\everypar = {\kern -\parindent \restorefirstparagraphindent}% } % \gdef\restorefirstparagraphindent{% \global\let\indent = \ptexindent \global\let\noindent = \ptexnoindent \global\everypar = {}% } % @refill is a no-op. \let\refill=\relax % @setfilename INFO-FILENAME - ignored \let\setfilename=\comment % @bye. \outer\def\bye{\pagealignmacro\tracingstats=1\ptexend} \message{pdf,} % adobe `portable' document format \newcount\tempnum \newcount\lnkcount \newtoks\filename \newcount\filenamelength \newcount\pgn \newtoks\toksA \newtoks\toksB \newtoks\toksC \newtoks\toksD \newbox\boxA \newbox\boxB \newcount\countA \newif\ifpdf \newif\ifpdfmakepagedest % % For LuaTeX % \newif\iftxiuseunicodedestname \txiuseunicodedestnamefalse % For pdfTeX etc. \ifx\luatexversion\thisisundefined \else % Use Unicode destination names \txiuseunicodedestnametrue % Escape PDF strings with converting UTF-16 from UTF-8 \begingroup \catcode`\%=12 \directlua{ function UTF16oct(str) tex.sprint(string.char(0x5c) .. '376' .. string.char(0x5c) .. '377') for c in string.utfvalues(str) do if c < 0x10000 then tex.sprint( string.format(string.char(0x5c) .. string.char(0x25) .. '03o' .. string.char(0x5c) .. string.char(0x25) .. '03o', (c / 256), (c % 256))) else c = c - 0x10000 local c_hi = c / 1024 + 0xd800 local c_lo = c % 1024 + 0xdc00 tex.sprint( string.format(string.char(0x5c) .. string.char(0x25) .. '03o' .. string.char(0x5c) .. string.char(0x25) .. '03o' .. string.char(0x5c) .. string.char(0x25) .. '03o' .. string.char(0x5c) .. string.char(0x25) .. '03o', (c_hi / 256), (c_hi % 256), (c_lo / 256), (c_lo % 256))) end end end } \endgroup \def\pdfescapestrutfsixteen#1{\directlua{UTF16oct('\luaescapestring{#1}')}} % Escape PDF strings without converting \begingroup \directlua{ function PDFescstr(str) for c in string.bytes(str) do if c <= 0x20 or c >= 0x80 or c == 0x28 or c == 0x29 or c == 0x5c then tex.sprint( string.format(string.char(0x5c) .. string.char(0x25) .. '03o', c)) else tex.sprint(string.char(c)) end end end } \endgroup \def\pdfescapestring#1{\directlua{PDFescstr('\luaescapestring{#1}')}} \ifnum\luatexversion>84 % For LuaTeX >= 0.85 \def\pdfdest{\pdfextension dest} \let\pdfoutput\outputmode \def\pdfliteral{\pdfextension literal} \def\pdfcatalog{\pdfextension catalog} \def\pdftexversion{\numexpr\pdffeedback version\relax} \let\pdfximage\saveimageresource \let\pdfrefximage\useimageresource \let\pdflastximage\lastsavedimageresourceindex \def\pdfendlink{\pdfextension endlink\relax} \def\pdfoutline{\pdfextension outline} \def\pdfstartlink{\pdfextension startlink} \def\pdffontattr{\pdfextension fontattr} \def\pdfobj{\pdfextension obj} \def\pdflastobj{\numexpr\pdffeedback lastobj\relax} \let\pdfpagewidth\pagewidth \let\pdfpageheight\pageheight \edef\pdfhorigin{\pdfvariable horigin} \edef\pdfvorigin{\pdfvariable vorigin} \fi \fi % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 % can be set). So we test for \relax and 0 as well as being undefined. \ifx\pdfoutput\thisisundefined \else \ifx\pdfoutput\relax \else \ifcase\pdfoutput \else \pdftrue \fi \fi \fi % PDF uses PostScript string constants for the names of xref targets, % for display in the outlines, and in other places. Thus, we have to % double any backslashes. Otherwise, a name like "\node" will be % interpreted as a newline (\n), followed by o, d, e. Not good. % % See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and % related messages. The final outcome is that it is up to the TeX user % to double the backslashes and otherwise make the string valid, so % that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to % do this reliably, so we use it. % #1 is a control sequence in which to do the replacements, % which we \xdef. \def\txiescapepdf#1{% \ifx\pdfescapestring\thisisundefined % No primitive available; should we give a warning or log? % Many times it won't matter. \xdef#1{#1}% \else % The expandable \pdfescapestring primitive escapes parentheses, % backslashes, and other special chars. \xdef#1{\pdfescapestring{#1}}% \fi } \def\txiescapepdfutfsixteen#1{% \ifx\pdfescapestrutfsixteen\thisisundefined % No UTF-16 converting macro available. \txiescapepdf{#1}% \else \xdef#1{\pdfescapestrutfsixteen{#1}}% \fi } \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images with PDF output, and none of those formats could be found. (.eps cannot be supported due to the design of the PDF format; use regular TeX (DVI output) for that.)} \ifpdf % % Color manipulation macros using ideas from pdfcolor.tex, % except using rgb instead of cmyk; the latter is said to render as a % very dark gray on-screen and a very dark halftone in print, instead % of actual black. The dark red here is dark enough to print on paper as % nearly black, but still distinguishable for online viewing. We use % black by default, though. \def\rgbDarkRed{0.50 0.09 0.12} \def\rgbBlack{0 0 0} % % rg sets the color for filling (usual text, etc.); % RG sets the color for stroking (thin rules, e.g., normal _'s). \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} % % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. \def\setcolor#1{% \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}% \domark \pdfsetcolor{#1}% } % \def\maincolor{\rgbBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\lastcolordefs{} % \def\makefootline{% \baselineskip24pt \line{\pdfsetcolor{\maincolor}\the\footline}% } % \def\makeheadline{% \vbox to 0pt{% \vskip-22.5pt \line{% \vbox to8.5pt{}% % Extract \thiscolor definition from the marks. \getcolormarks % Typeset the headline with \maincolor, then restore the color. \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% }% \vss }% \nointerlineskip } % % \pdfcatalog{/PageMode /UseOutlines} % % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % % pdftex (and the PDF format) support .pdf, .png, .jpg (among % others). Let's try in that order, PDF first since if % someone has a scalable image, presumably better to use that than a % bitmap. \let\pdfimgext=\empty \begingroup \openin 1 #1.pdf \ifeof 1 \openin 1 #1.PDF \ifeof 1 \openin 1 #1.png \ifeof 1 \openin 1 #1.jpg \ifeof 1 \openin 1 #1.jpeg \ifeof 1 \openin 1 #1.JPG \ifeof 1 \errhelp = \nopdfimagehelp \errmessage{Could not find image file #1 for pdf}% \else \gdef\pdfimgext{JPG}% \fi \else \gdef\pdfimgext{jpeg}% \fi \else \gdef\pdfimgext{jpg}% \fi \else \gdef\pdfimgext{png}% \fi \else \gdef\pdfimgext{PDF}% \fi \else \gdef\pdfimgext{pdf}% \fi \closein 1 \endgroup % % without \immediate, ancient pdftex seg faults when the same image is % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) \ifnum\pdftexversion < 14 \immediate\pdfimage \else \immediate\pdfximage \fi \ifdim \wd0 >0pt width \pdfimagewidth \fi \ifdim \wd2 >0pt height \pdfimageheight \fi \ifnum\pdftexversion<13 #1.\pdfimgext \else {#1.\pdfimgext}% \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} % \def\setpdfdestname#1{{% % We have to set dummies so commands such as @code, and characters % such as \, aren't expanded when present in a section title. \indexnofonts \makevalueexpandable \turnoffactive \iftxiuseunicodedestname \ifx \declaredencoding \latone % Pass through Latin-1 characters. % LuaTeX with byte wise I/O converts Latin-1 characters to Unicode. \else \ifx \declaredencoding \utfeight % Pass through Unicode characters. \else % Use ASCII approximations in destination names. \passthroughcharsfalse \fi \fi \else % Use ASCII approximations in destination names. \passthroughcharsfalse \fi \def\pdfdestname{#1}% \txiescapepdf\pdfdestname }} % \def\setpdfoutlinetext#1{{% \indexnofonts \makevalueexpandable \turnoffactive \ifx \declaredencoding \latone % The PDF format can use an extended form of Latin-1 in bookmark % strings. See Appendix D of the PDF Reference, Sixth Edition, for % the "PDFDocEncoding". \passthroughcharstrue % Pass through Latin-1 characters. % LuaTeX: Convert to Unicode % pdfTeX: Use Latin-1 as PDFDocEncoding \def\pdfoutlinetext{#1}% \else \ifx \declaredencoding \utfeight \ifx\luatexversion\thisisundefined % For pdfTeX with UTF-8. % TODO: the PDF format can use UTF-16 in bookmark strings, % but the code for this isn't done yet. % Use ASCII approximations. \passthroughcharsfalse \def\pdfoutlinetext{#1}% \else % For LuaTeX with UTF-8. % Pass through Unicode characters for title texts. \passthroughcharstrue \def\pdfoutlinetext{#1}% \fi \else % For non-Latin-1 or non-UTF-8 encodings. % Use ASCII approximations. \passthroughcharsfalse \def\pdfoutlinetext{#1}% \fi \fi % LuaTeX: Convert to UTF-16 % pdfTeX: Use Latin-1 as PDFDocEncoding \txiescapepdfutfsixteen\pdfoutlinetext }} % \def\pdfmkdest#1{% \setpdfdestname{#1}% \safewhatsit{\pdfdest name{\pdfdestname} xyz}% } % % used to mark target names; must be expandable. \def\pdfmkpgn#1{#1} % % by default, use black for everything. \def\urlcolor{\rgbBlack} \def\linkcolor{\rgbBlack} \def\endlink{\setcolor{\maincolor}\pdfendlink} % % Adding outlines to PDF; macros for calculating structure of outlines % come from Petr Olsak \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% \else \csname#1\endcsname \fi} \def\advancenumber#1{\tempnum=\expnumber{#1}\relax \advance\tempnum by 1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} % % #1 is the section text, which is what will be displayed in the % outline by the pdf viewer. #2 is the pdf expression for the number % of subentries (or empty, for subsubsections). #3 is the node text, % which might be empty if this toc entry had no corresponding node. % #4 is the page number % \def\dopdfoutline#1#2#3#4{% % Generate a link to the node text if that exists; else, use the % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't % seem worth the trouble, since most documents are normally structured. \setpdfoutlinetext{#1} \setpdfdestname{#3} \ifx\pdfdestname\empty \def\pdfdestname{#4}% \fi % \pdfoutline goto name{\pdfmkpgn{\pdfdestname}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% \begingroup % Read toc silently, to get counts of subentries for \pdfoutline. \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \def\thischapnum{##2}% \def\thissecnum{0}% \def\thissubsecnum{0}% }% \def\numsecentry##1##2##3##4{% \advancenumber{chap\thischapnum}% \def\thissecnum{##2}% \def\thissubsecnum{0}% }% \def\numsubsecentry##1##2##3##4{% \advancenumber{sec\thissecnum}% \def\thissubsecnum{##2}% }% \def\numsubsubsecentry##1##2##3##4{% \advancenumber{subsec\thissubsecnum}% }% \def\thischapnum{0}% \def\thissecnum{0}% \def\thissubsecnum{0}% % % use \def rather than \let here because we redefine \chapentry et % al. a second time, below. \def\appentry{\numchapentry}% \def\appsecentry{\numsecentry}% \def\appsubsecentry{\numsubsecentry}% \def\appsubsubsecentry{\numsubsubsecentry}% \def\unnchapentry{\numchapentry}% \def\unnsecentry{\numsecentry}% \def\unnsubsecentry{\numsubsecentry}% \def\unnsubsubsecentry{\numsubsubsecentry}% \readdatafile{toc}% % % Read toc second time, this time actually producing the outlines. % The `-' means take the \expnumber as the absolute number of % subentries, which we calculated on our first read of the .toc above. % % We use the node names as the destinations. \def\numchapentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}% \def\numsecentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}% \def\numsubsecentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}% \def\numsubsubsecentry##1##2##3##4{% count is always zero \dopdfoutline{##1}{}{##3}{##4}}% % % PDF outlines are displayed using system fonts, instead of % document fonts. Therefore we cannot use special characters, % since the encoding is unknown. For example, the eogonek from % Latin 2 (0xea) gets translated to a | character. Info from % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. % % TODO this right, we have to translate 8-bit characters to % their "best" equivalent, based on the @documentencoding. Too % much work for too little return. Just use the ASCII equivalents % we use for the index sort strings. % \indexnofonts \setupdatafile % We can have normal brace characters in the PDF outlines, unlike % Texinfo index files. So set that up. \def\{{\lbracecharliteral}% \def\}{\rbracecharliteral}% \catcode`\\=\active \otherbackslash \input \tocreadfilename \endgroup } {\catcode`[=1 \catcode`]=2 \catcode`{=\other \catcode`}=\other \gdef\lbracecharliteral[{]% \gdef\rbracecharliteral[}]% ] % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces \addtokens{\filename}{\PP}% \advance\filenamelength by 1 \fi \nextsp} \def\getfilename#1{% \filenamelength=0 % If we don't expand the argument now, \skipspaces will get % snagged on things like "@value{foo}". \edef\temp{#1}% \expandafter\skipspaces\temp|\relax } \ifnum\pdftexversion < 14 \let \startlink \pdfannotlink \else \let \startlink \pdfstartlink \fi % make a live url in pdf output. \def\pdfurl#1{% \begingroup % it seems we really need yet another set of dummies; have not % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. % \normalturnoffactive \def\@{@}% \let\/=\empty \makevalueexpandable % do we want to go so far as to use \indexnofonts instead of just % special-casing \var here? \def\var##1{##1}% % \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% \endgroup} \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else \let\next=\maketoks \addtokens{\toksB}{\the\toksD} \ifx\first,\addtokens{\toksB}{\space}\fi \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else % non-pdf mode \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax \let\setcolor = \gobble \let\pdfsetcolor = \gobble \let\pdfmakeoutlines = \relax \fi % \ifx\pdfoutput % % For XeTeX % \ifx\XeTeXrevision\thisisundefined \else % % XeTeX version check % \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99996}>-1 % TeX Live 2016 contains XeTeX 0.99996 and xdvipdfmx 20160307. % It can use the `dvipdfmx:config' special (from TeX Live SVN r40941). % For avoiding PDF destination name replacement, we use this special % instead of xdvipdfmx's command line option `-C 0x0010'. \special{dvipdfmx:config C 0x0010} % XeTeX 0.99995+ comes with xdvipdfmx 20160307+. % It can handle Unicode destination names for PDF. \txiuseunicodedestnametrue \else % XeTeX < 0.99996 (TeX Live < 2016) cannot use the % `dvipdfmx:config' special. % So for avoiding PDF destination name replacement, % xdvipdfmx's command line option `-C 0x0010' is necessary. % % XeTeX < 0.99995 can not handle Unicode destination names for PDF % because xdvipdfmx 20150315 has a UTF-16 conversion issue. % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). \txiuseunicodedestnamefalse \fi % % Color support % \def\rgbDarkRed{0.50 0.09 0.12} \def\rgbBlack{0 0 0} % \def\pdfsetcolor#1{\special{pdf:scolor [#1]}} % % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. \def\setcolor#1{% \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}% \domark \pdfsetcolor{#1}% } % \def\maincolor{\rgbBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\lastcolordefs{} % \def\makefootline{% \baselineskip24pt \line{\pdfsetcolor{\maincolor}\the\footline}% } % \def\makeheadline{% \vbox to 0pt{% \vskip-22.5pt \line{% \vbox to8.5pt{}% % Extract \thiscolor definition from the marks. \getcolormarks % Typeset the headline with \maincolor, then restore the color. \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% }% \vss }% \nointerlineskip } % % PDF outline support % % Emulate pdfTeX primitive \def\pdfdest name#1 xyz{% \special{pdf:dest (#1) [@thispage /XYZ @xpos @ypos null]}% } % \def\setpdfdestname#1{{% % We have to set dummies so commands such as @code, and characters % such as \, aren't expanded when present in a section title. \indexnofonts \makevalueexpandable \turnoffactive \iftxiuseunicodedestname % Pass through Unicode characters. \else % Use ASCII approximations in destination names. \passthroughcharsfalse \fi \def\pdfdestname{#1}% \txiescapepdf\pdfdestname }} % \def\setpdfoutlinetext#1{{% \turnoffactive % Always use Unicode characters in title texts. \def\pdfoutlinetext{#1}% % For XeTeX, xdvipdfmx converts to UTF-16. % So we do not convert. \txiescapepdf\pdfoutlinetext }} % \def\pdfmkdest#1{% \setpdfdestname{#1}% \safewhatsit{\pdfdest name{\pdfdestname} xyz}% } % % by default, use black for everything. \def\urlcolor{\rgbBlack} \def\linkcolor{\rgbBlack} \def\endlink{\setcolor{\maincolor}\pdfendlink} % \def\dopdfoutline#1#2#3#4{% \setpdfoutlinetext{#1} \setpdfdestname{#3} \ifx\pdfdestname\empty \def\pdfdestname{#4}% \fi % \special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A << /S /GoTo /D (\pdfdestname) >> >> }% } % \def\pdfmakeoutlines{% \begingroup % % For XeTeX, counts of subentries are not necessary. % Therefore, we read toc only once. % % We use node names as destinations. \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \dopdfoutline{##1}{1}{##3}{##4}}% \def\numsecentry##1##2##3##4{% \dopdfoutline{##1}{2}{##3}{##4}}% \def\numsubsecentry##1##2##3##4{% \dopdfoutline{##1}{3}{##3}{##4}}% \def\numsubsubsecentry##1##2##3##4{% \dopdfoutline{##1}{4}{##3}{##4}}% % \let\appentry\numchapentry% \let\appsecentry\numsecentry% \let\appsubsecentry\numsubsecentry% \let\appsubsubsecentry\numsubsubsecentry% \let\unnchapentry\numchapentry% \let\unnsecentry\numsecentry% \let\unnsubsecentry\numsubsecentry% \let\unnsubsubsecentry\numsubsubsecentry% % % For XeTeX, xdvipdfmx converts strings to UTF-16. % Therefore, the encoding and the language may not be considered. % \indexnofonts \setupdatafile % We can have normal brace characters in the PDF outlines, unlike % Texinfo index files. So set that up. \def\{{\lbracecharliteral}% \def\}{\rbracecharliteral}% \catcode`\\=\active \otherbackslash \input \tocreadfilename \endgroup } {\catcode`[=1 \catcode`]=2 \catcode`{=\other \catcode`}=\other \gdef\lbracecharliteral[{]% \gdef\rbracecharliteral[}]% ] \special{pdf:docview << /PageMode /UseOutlines >> } % ``\special{pdf:tounicode ...}'' is not necessary % because xdvipdfmx converts strings from UTF-8 to UTF-16 without it. % However, due to a UTF-16 conversion issue of xdvipdfmx 20150315, % ``\special{pdf:dest ...}'' cannot handle non-ASCII strings. % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces \addtokens{\filename}{\PP}% \advance\filenamelength by 1 \fi \nextsp} \def\getfilename#1{% \filenamelength=0 % If we don't expand the argument now, \skipspaces will get % snagged on things like "@value{foo}". \edef\temp{#1}% \expandafter\skipspaces\temp|\relax } % make a live url in pdf output. \def\pdfurl#1{% \begingroup % it seems we really need yet another set of dummies; have not % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. % \normalturnoffactive \def\@{@}% \let\/=\empty \makevalueexpandable % do we want to go so far as to use \indexnofonts instead of just % special-casing \var here? \def\var##1{##1}% % \leavevmode\setcolor{\urlcolor}% \special{pdf:bann << /Border [0 0 0] /Subtype /Link /A << /S /URI /URI (#1) >> >>}% \endgroup} \def\endlink{\setcolor{\maincolor}\special{pdf:eann}} \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else \let\next=\maketoks \addtokens{\toksB}{\the\toksD} \ifx\first,\addtokens{\toksB}{\space}\fi \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A << /S /GoTo /D (#1) >> >>}% \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} % % % @image support % % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\doxeteximage#1#2#3{% \def\xeteximagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% \def\xeteximageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % % XeTeX (and the PDF format) supports .pdf, .png, .jpg (among % others). Let's try in that order, PDF first since if % someone has a scalable image, presumably better to use that than a % bitmap. \let\xeteximgext=\empty \begingroup \openin 1 #1.pdf \ifeof 1 \openin 1 #1.PDF \ifeof 1 \openin 1 #1.png \ifeof 1 \openin 1 #1.jpg \ifeof 1 \openin 1 #1.jpeg \ifeof 1 \openin 1 #1.JPG \ifeof 1 \errmessage{Could not find image file #1 for XeTeX}% \else \gdef\xeteximgext{JPG}% \fi \else \gdef\xeteximgext{jpeg}% \fi \else \gdef\xeteximgext{jpg}% \fi \else \gdef\xeteximgext{png}% \fi \else \gdef\xeteximgext{PDF}% \fi \else \gdef\xeteximgext{pdf}% \fi \closein 1 \endgroup % \def\xetexpdfext{pdf}% \ifx\xeteximgext\xetexpdfext \XeTeXpdffile "#1".\xeteximgext "" \else \def\xetexpdfext{PDF}% \ifx\xeteximgext\xetexpdfext \XeTeXpdffile "#1".\xeteximgext "" \else \XeTeXpicfile "#1".\xeteximgext "" \fi \fi \ifdim \wd0 >0pt width \xeteximagewidth \fi \ifdim \wd2 >0pt height \xeteximageheight \fi \relax } \fi % \message{fonts,} % Set the baselineskip to #1, and the lineskip and strut size % correspondingly. There is no deep meaning behind these magic numbers % used as factors; they just match (closely enough) what Knuth defined. % \def\lineskipfactor{.08333} \def\strutheightpercent{.70833} \def\strutdepthpercent {.29167} % % can get a sort of poor man's double spacing by redefining this. \def\baselinefactor{1} % \newdimen\textleading \def\setleading#1{% \dimen0 = #1\relax \normalbaselineskip = \baselinefactor\dimen0 \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% \vrule width0pt height\strutheightpercent\baselineskip depth \strutdepthpercent \baselineskip }% } % PDF CMaps. See also LaTeX's t1.cmap. % % do nothing with this by default. \expandafter\let\csname cmapOT1\endcsname\gobble \expandafter\let\csname cmapOT1IT\endcsname\gobble \expandafter\let\csname cmapOT1TT\endcsname\gobble % if we are producing pdf, and we have \pdffontattr, then define cmaps. % (\pdffontattr was introduced many years ago, but people still run % older pdftex's; it's easy to conditionalize, so we do.) \ifpdf \ifx\pdffontattr\thisisundefined \else \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1-0) %%Title: (TeX-OT1-0 TeX OT1 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1) /Supplement 0 >> def /CMapName /TeX-OT1-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <23> <26> <0023> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 40 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1IT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1IT-0) %%Title: (TeX-OT1IT-0 TeX OT1IT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1IT) /Supplement 0 >> def /CMapName /TeX-OT1IT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <25> <26> <0025> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 42 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <23> <0023> <24> <00A3> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1IT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1TT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1TT-0) %%Title: (TeX-OT1TT-0 TeX OT1TT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1TT) /Supplement 0 >> def /CMapName /TeX-OT1TT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 5 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <21> <26> <0021> <28> <5F> <0028> <61> <7E> <0061> endbfrange 32 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <2191> <0C> <2193> <0D> <0027> <0E> <00A1> <0F> <00BF> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <20> <2423> <27> <2019> <60> <2018> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1TT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% \fi\fi % Set the font macro #1 to the font named \fontprefix#2. % #3 is the font's design size, #4 is a scale factor, #5 is the CMap % encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit). % Example: % #1 = \textrm % #2 = \rmshape % #3 = 10 % #4 = \mainmagstep % #5 = OT1 % \def\setfont#1#2#3#4#5{% \font#1=\fontprefix#2#3 scaled #4 \csname cmap#5\endcsname#1% } % This is what gets called when #5 of \setfont is empty. \let\cmap\gobble % % (end of cmaps) % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. \ifx\fontprefix\thisisundefined \def\fontprefix{cm} \fi % Support font families that don't use the same naming scheme as CM. \def\rmshape{r} \def\rmbshape{bx} % where the normal face is bold \def\bfshape{b} \def\bxshape{bx} \def\ttshape{tt} \def\ttbshape{tt} \def\ttslshape{sltt} \def\itshape{ti} \def\itbshape{bxti} \def\slshape{sl} \def\slbshape{bxsl} \def\sfshape{ss} \def\sfbshape{ss} \def\scshape{csc} \def\scbshape{csc} % Definitions for a main text size of 11pt. (The default in Texinfo.) % \def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} \edef\mainmagstep{\magstephalf} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1095} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstep1}{OT1} \setfont\deftt\ttshape{10}{\magstep1}{OT1TT} \setfont\defsl\slshape{10}{\magstep1}{OT1TT} \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} \def\df{\let\ttfont=\deftt \let\bffont = \defbf \let\ttslfont=\defttsl \let\slfont=\defsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter (and unnumbered) fonts (17.28pt). \def\chapnominalsize{17pt} \setfont\chaprm\rmbshape{12}{\magstep2}{OT1} \setfont\chapit\itbshape{10}{\magstep3}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep3}{OT1} \setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT} \setfont\chapsf\sfbshape{17}{1000}{OT1} \let\chapbf=\chaprm \setfont\chapsc\scbshape{10}{\magstep3}{OT1} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 \def\chapecsize{1728} % Section fonts (14.4pt). \def\secnominalsize{14pt} \setfont\secrm\rmbshape{12}{\magstep1}{OT1} \setfont\secrmnotbold\rmshape{12}{\magstep1}{OT1} \setfont\secit\itbshape{10}{\magstep2}{OT1IT} \setfont\secsl\slbshape{10}{\magstep2}{OT1} \setfont\sectt\ttbshape{12}{\magstep1}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\secsf\sfbshape{12}{\magstep1}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep2}{OT1} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 \def\sececsize{1440} % Subsection fonts (13.15pt). \def\ssecnominalsize{13pt} \setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1} \setfont\ssecit\itbshape{10}{1315}{OT1IT} \setfont\ssecsl\slbshape{10}{1315}{OT1} \setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1315}{OT1TT} \setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1315}{OT1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 \def\ssececsize{1200} % Reduced fonts for @acronym in text (10pt). \def\reducednominalsize{10pt} \setfont\reducedrm\rmshape{10}{1000}{OT1} \setfont\reducedtt\ttshape{10}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{1000}{OT1} \setfont\reducedit\itshape{10}{1000}{OT1IT} \setfont\reducedsl\slshape{10}{1000}{OT1} \setfont\reducedsf\sfshape{10}{1000}{OT1} \setfont\reducedsc\scshape{10}{1000}{OT1} \setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} \font\reducedi=cmmi10 \font\reducedsy=cmsy10 \def\reducedecsize{1000} \textleading = 13.2pt % line spacing for 11pt CM \textfonts % reset the current fonts \rm } % end of 11pt text font size definitions, \definetextfontsizexi % Definitions to make the main text be 10pt Computer Modern, with % section, chapter, etc., sizes following suit. This is for the GNU % Press printing of the Emacs 22 manual. Maybe other manuals in the % future. Used with @smallbook, which sets the leading to 12pt. % \def\definetextfontsizex{% % Text fonts (10pt). \def\textnominalsize{10pt} \edef\mainmagstep{1000} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1000} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstephalf}{OT1} \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} \setfont\defsl\slshape{10}{\magstephalf}{OT1TT} \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} \def\df{\let\ttfont=\deftt \let\bffont = \defbf \let\slfont=\defsl \let\ttslfont=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter fonts (14.4pt). \def\chapnominalsize{14pt} \setfont\chaprm\rmbshape{12}{\magstep1}{OT1} \setfont\chapit\itbshape{10}{\magstep2}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep2}{OT1} \setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\chapsf\sfbshape{12}{\magstep1}{OT1} \let\chapbf\chaprm \setfont\chapsc\scbshape{10}{\magstep2}{OT1} \font\chapi=cmmi12 scaled \magstep1 \font\chapsy=cmsy10 scaled \magstep2 \def\chapecsize{1440} % Section fonts (12pt). \def\secnominalsize{12pt} \setfont\secrm\rmbshape{12}{1000}{OT1} \setfont\secit\itbshape{10}{\magstep1}{OT1IT} \setfont\secsl\slbshape{10}{\magstep1}{OT1} \setfont\sectt\ttbshape{12}{1000}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT} \setfont\secsf\sfbshape{12}{1000}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep1}{OT1} \font\seci=cmmi12 \font\secsy=cmsy10 scaled \magstep1 \def\sececsize{1200} % Subsection fonts (10pt). \def\ssecnominalsize{10pt} \setfont\ssecrm\rmbshape{10}{1000}{OT1} \setfont\ssecit\itbshape{10}{1000}{OT1IT} \setfont\ssecsl\slbshape{10}{1000}{OT1} \setfont\ssectt\ttbshape{10}{1000}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1000}{OT1TT} \setfont\ssecsf\sfbshape{10}{1000}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1000}{OT1} \font\sseci=cmmi10 \font\ssecsy=cmsy10 \def\ssececsize{1000} % Reduced fonts for @acronym in text (9pt). \def\reducednominalsize{9pt} \setfont\reducedrm\rmshape{9}{1000}{OT1} \setfont\reducedtt\ttshape{9}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{900}{OT1} \setfont\reducedit\itshape{9}{1000}{OT1IT} \setfont\reducedsl\slshape{9}{1000}{OT1} \setfont\reducedsf\sfshape{9}{1000}{OT1} \setfont\reducedsc\scshape{10}{900}{OT1} \setfont\reducedttsl\ttslshape{10}{900}{OT1TT} \font\reducedi=cmmi9 \font\reducedsy=cmsy9 \def\reducedecsize{0900} \divide\parskip by 2 % reduce space between paragraphs \textleading = 12pt % line spacing for 10pt CM \textfonts % reset the current fonts \rm } % end of 10pt text font size definitions, \definetextfontsizex % Fonts for short table of contents. \setfont\shortcontrm\rmshape{12}{1000}{OT1} \setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 \setfont\shortcontsl\slshape{12}{1000}{OT1} \setfont\shortconttt\ttshape{12}{1000}{OT1TT} % We provide the user-level command % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. % \def\xiword{11} \def\xword{10} \def\xwordpt{10pt} % \parseargdef\fonttextsize{% \def\textsizearg{#1}% %\wlog{doing @fonttextsize \textsizearg}% % % Set \globaldefs so that documents can use this inside @tex, since % makeinfo 4.8 does not support it, but we need it nonetheless. % \begingroup \globaldefs=1 \ifx\textsizearg\xword \definetextfontsizex \else \ifx\textsizearg\xiword \definetextfontsizexi \else \errhelp=\EMsimple \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} \fi\fi \endgroup } % % Change the current font style to #1, remembering it in \curfontstyle. % For now, we do not accumulate font styles: @b{@i{foo}} prints foo in % italics, not bold italics. % \def\setfontstyle#1{% \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd. \csname #1font\endcsname % change the current font } \def\rm{\fam=0 \setfontstyle{rm}} \def\it{\fam=\itfam \setfontstyle{it}} \def\sl{\fam=\slfam \setfontstyle{sl}} \def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf} \def\tt{\fam=\ttfam \setfontstyle{tt}} % Texinfo sort of supports the sans serif font style, which plain TeX does not. % So we set up a \sf. \newfam\sffam \def\sf{\fam=\sffam \setfontstyle{sf}} % We don't need math for this font style. \def\ttsl{\setfontstyle{ttsl}} % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. We don't % bother to reset \scriptfont and \scriptscriptfont; awaiting user need. % \def\resetmathfonts{% \textfont0=\rmfont \textfont1=\ifont \textfont2=\syfont \textfont\itfam=\itfont \textfont\slfam=\slfont \textfont\bffam=\bffont \textfont\ttfam=\ttfont \textfont\sffam=\sffont } % % The font-changing commands (all called \...fonts) redefine the meanings % of \STYLEfont, instead of just \STYLE. We do this because \STYLE needs % to also set the current \fam for math mode. Our \STYLE (e.g., \rm) % commands hardwire \STYLEfont to set the current font. % % Each font-changing command also sets the names \lsize (one size lower) % and \lllsize (three sizes lower). These relative commands are used % in, e.g., the LaTeX logo and acronyms. % % This all needs generalizing, badly. % \def\assignfonts#1{% \expandafter\let\expandafter\rmfont\csname #1rm\endcsname \expandafter\let\expandafter\itfont\csname #1it\endcsname \expandafter\let\expandafter\slfont\csname #1sl\endcsname \expandafter\let\expandafter\bffont\csname #1bf\endcsname \expandafter\let\expandafter\ttfont\csname #1tt\endcsname \expandafter\let\expandafter\smallcaps\csname #1sc\endcsname \expandafter\let\expandafter\sffont \csname #1sf\endcsname \expandafter\let\expandafter\ifont \csname #1i\endcsname \expandafter\let\expandafter\syfont \csname #1sy\endcsname \expandafter\let\expandafter\ttslfont\csname #1ttsl\endcsname } \newif\ifrmisbold % Select smaller font size with the current style. Used to change font size % in, e.g., the LaTeX logo and acronyms. If we are using bold fonts for % normal roman text, also use bold fonts for roman text in the smaller size. \def\switchtolllsize{% \expandafter\assignfonts\expandafter{\lllsize}% \ifrmisbold \let\rmfont\bffont \fi \csname\curfontstyle\endcsname }% \def\switchtolsize{% \expandafter\assignfonts\expandafter{\lsize}% \ifrmisbold \let\rmfont\bffont \fi \csname\curfontstyle\endcsname }% \def\definefontsetatsize#1#2#3#4#5{% \expandafter\def\csname #1fonts\endcsname{% \def\curfontsize{#1}% \def\lsize{#2}\def\lllsize{#3}% \csname rmisbold#5\endcsname \assignfonts{#1}% \resetmathfonts \setleading{#4}% }} \definefontsetatsize{text} {reduced}{smaller}{\textleading}{false} \definefontsetatsize{title} {chap} {subsec} {27pt} {true} \definefontsetatsize{chap} {sec} {text} {19pt} {true} \definefontsetatsize{sec} {subsec} {reduced}{17pt} {true} \definefontsetatsize{ssec} {text} {small} {15pt} {true} \definefontsetatsize{reduced}{small} {smaller}{10.5pt}{false} \definefontsetatsize{small} {smaller}{smaller}{10.5pt}{false} \definefontsetatsize{smaller}{smaller}{smaller}{9.5pt} {false} \def\titlefont#1{{\titlefonts\rm #1}} \let\subsecfonts = \ssecfonts \let\subsubsecfonts = \ssecfonts % Define these just so they can be easily changed for other fonts. \def\angleleft{$\langle$} \def\angleright{$\rangle$} % Set the fonts to use with the @small... environments. \let\smallexamplefonts = \smallfonts % About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample % can fit this many characters: % 8.5x11=86 smallbook=72 a4=90 a5=69 % If we use \scriptfonts (8pt), then we can fit this many characters: % 8.5x11=90+ smallbook=80 a4=90+ a5=77 % For me, subjectively, the few extra characters that fit aren't worth % the additional smallness of 8pt. So I'm making the default 9pt. % % By the way, for comparison, here's what fits with @example (10pt): % 8.5x11=71 smallbook=60 a4=75 a5=58 % --karl, 24jan03. % Set up the default fonts, so we can use them for creating boxes. % \definetextfontsizexi \message{markup,} % Check if we are currently using a typewriter font. Since all the % Computer Modern typewriter fonts have zero interword stretch (and % shrink), and it is reasonable to expect all typewriter fonts to have % this property, we can check that font parameter. % \def\ifmonospace{\ifdim\fontdimen3\font=0pt } % Markup style infrastructure. \defmarkupstylesetup\INITMACRO will % define and register \INITMACRO to be called on markup style changes. % \INITMACRO can check \currentmarkupstyle for the innermost % style and the set of \ifmarkupSTYLE switches for all styles % currently in effect. \newif\ifmarkupvar \newif\ifmarkupsamp \newif\ifmarkupkey %\newif\ifmarkupfile % @file == @samp. %\newif\ifmarkupoption % @option == @samp. \newif\ifmarkupcode \newif\ifmarkupkbd %\newif\ifmarkupenv % @env == @code. %\newif\ifmarkupcommand % @command == @code. \newif\ifmarkuptex % @tex (and part of @math, for now). \newif\ifmarkupexample \newif\ifmarkupverb \newif\ifmarkupverbatim \let\currentmarkupstyle\empty \def\setupmarkupstyle#1{% \csname markup#1true\endcsname \def\currentmarkupstyle{#1}% \markupstylesetup } \let\markupstylesetup\empty \def\defmarkupstylesetup#1{% \expandafter\def\expandafter\markupstylesetup \expandafter{\markupstylesetup #1}% \def#1% } % Markup style setup for left and right quotes. \defmarkupstylesetup\markupsetuplq{% \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuplqdefault \else \temp \fi } \defmarkupstylesetup\markupsetuprq{% \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuprqdefault \else \temp \fi } { \catcode`\'=\active \catcode`\`=\active \gdef\markupsetuplqdefault{\let`\lq} \gdef\markupsetuprqdefault{\let'\rq} \gdef\markupsetcodequoteleft{\let`\codequoteleft} \gdef\markupsetcodequoteright{\let'\codequoteright} } \let\markupsetuplqcode \markupsetcodequoteleft \let\markupsetuprqcode \markupsetcodequoteright % \let\markupsetuplqexample \markupsetcodequoteleft \let\markupsetuprqexample \markupsetcodequoteright % \let\markupsetuplqkbd \markupsetcodequoteleft \let\markupsetuprqkbd \markupsetcodequoteright % \let\markupsetuplqsamp \markupsetcodequoteleft \let\markupsetuprqsamp \markupsetcodequoteright % \let\markupsetuplqverb \markupsetcodequoteleft \let\markupsetuprqverb \markupsetcodequoteright % \let\markupsetuplqverbatim \markupsetcodequoteleft \let\markupsetuprqverbatim \markupsetcodequoteright % Allow an option to not use regular directed right quote/apostrophe % (char 0x27), but instead the undirected quote from cmtt (char 0x0d). % The undirected quote is ugly, so don't make it the default, but it % works for pasting with more pdf viewers (at least evince), the % lilypond developers report. xpdf does work with the regular 0x27. % \def\codequoteright{% \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax '% \else \char'15 \fi \else \char'15 \fi } % % and a similar option for the left quote char vs. a grave accent. % Modern fonts display ASCII 0x60 as a grave accent, so some people like % the code environments to do likewise. % \def\codequoteleft{% \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax % [Knuth] pp. 380,381,391 % \relax disables Spanish ligatures ?` and !` of \tt font. \relax`% \else \char'22 \fi \else \char'22 \fi } % Commands to set the quote options. % \parseargdef\codequoteundirected{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxicodequoteundirected\endcsname = t% \else\ifx\temp\offword \expandafter\let\csname SETtxicodequoteundirected\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}% \fi\fi } % \parseargdef\codequotebacktick{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxicodequotebacktick\endcsname = t% \else\ifx\temp\offword \expandafter\let\csname SETtxicodequotebacktick\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}% \fi\fi } % [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. \def\noligaturesquoteleft{\relax\lq} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 % Font commands. % #1 is the font command (\sl or \it), #2 is the text to slant. % If we are in a monospaced environment, however, 1) always use \ttsl, % and 2) do not add an italic correction. \def\dosmartslant#1#2{% \ifusingtt {{\ttsl #2}\let\next=\relax}% {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}% \next } \def\smartslanted{\dosmartslant\sl} \def\smartitalic{\dosmartslant\it} % Output an italic correction unless \next (presumed to be the following % character) is such as not to need one. \def\smartitaliccorrection{% \ifx\next,% \else\ifx\next-% \else\ifx\next.% \else\ifx\next\.% \else\ifx\next\comma% \else\ptexslash \fi\fi\fi\fi\fi \aftersmartic } % Unconditional use \ttsl, and no ic. @var is set to this for defuns. \def\ttslanted#1{{\ttsl #1}} % @cite is like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? \def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} \def\aftersmartic{} \def\var#1{% \let\saveaftersmartic = \aftersmartic \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}% \smartslanted{#1}% } \let\i=\smartitalic \let\slanted=\smartslanted \let\dfn=\smartslanted \let\emph=\smartitalic % Explicit font changes: @r, @sc, undocumented @ii. \def\r#1{{\rm #1}} % roman font \def\sc#1{{\smallcaps#1}} % smallcaps font \def\ii#1{{\it #1}} % italic font % @b, explicit bold. Also @strong. \def\b#1{{\bf #1}} \let\strong=\b % @sansserif, explicit sans. \def\sansserif#1{{\sf #1}} % We can't just use \exhyphenpenalty, because that only has effect at % the end of a paragraph. Restore normal hyphenation at the end of the % group within which \nohyphenation is presumably called. % \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} \def\restorehyphenation{\hyphenchar\font = `- } % Set sfcode to normal for the chars that usually have another value. % Can't use plain's \frenchspacing because it uses the `\x notation, and % sometimes \x has an active definition that messes things up. % \catcode`@=11 \def\plainfrenchspacing{% \sfcode`\.=\@m \sfcode`\?=\@m \sfcode`\!=\@m \sfcode`\:=\@m \sfcode`\;=\@m \sfcode`\,=\@m \def\endofsentencespacefactor{1000}% for @. and friends } \def\plainnonfrenchspacing{% \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000 \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 \def\endofsentencespacefactor{3000}% for @. and friends } \catcode`@=\other \def\endofsentencespacefactor{3000}% default % @t, explicit typewriter. \def\t#1{% {\tt \rawbackslash \plainfrenchspacing #1}% \null } % @samp. \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} % @indicateurl is \samp, that is, with quotes. \let\indicateurl=\samp % @code (and similar) prints in typewriter, but with spaces the same % size as normal in the surrounding text, without hyphenation, etc. % This is a subroutine for that. \def\tclose#1{% {% % Change normal interword space to be same as for the current font. \spaceskip = \fontdimen2\font % % Switch to typewriter. \tt % % But `\ ' produces the large typewriter interword space. \def\ {{\spaceskip = 0pt{} }}% % % Turn off hyphenation. \nohyphenation % \rawbackslash \plainfrenchspacing #1% }% \null % reset spacefactor to 1000 } % We *must* turn on hyphenation at `-' and `_' in @code. % (But see \codedashfinish below.) % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. % % Unfortunately, TeX uses one parameter (\hyphenchar) to control % both hyphenation at - and hyphenation within words. % We must therefore turn them both off (\tclose does that) % and arrange explicitly to hyphenate at a dash. -- rms. { \catcode`\-=\active \catcode`\_=\active \catcode`\'=\active \catcode`\`=\active \global\let'=\rq \global\let`=\lq % default definitions % \global\def\code{\begingroup \setupmarkupstyle{code}% % The following should really be moved into \setupmarkupstyle handlers. \catcode\dashChar=\active \catcode\underChar=\active \ifallowcodebreaks \let-\codedash \let_\codeunder \else \let-\normaldash \let_\realunder \fi % Given -foo (with a single dash), we do not want to allow a break % after the hyphen. \global\let\codedashprev=\codedash % \codex } % \gdef\codedash{\futurelet\next\codedashfinish} \gdef\codedashfinish{% \normaldash % always output the dash character itself. % % Now, output a discretionary to allow a line break, unless % (a) the next character is a -, or % (b) the preceding character is a -. % E.g., given --posix, we do not want to allow a break after either -. % Given --foo-bar, we do want to allow a break between the - and the b. \ifx\next\codedash \else \ifx\codedashprev\codedash \else \discretionary{}{}{}\fi \fi % we need the space after the = for the case when \next itself is a % space token; it would get swallowed otherwise. As in @code{- a}. \global\let\codedashprev= \next } } \def\normaldash{-} % \def\codex #1{\tclose{#1}\endgroup} \def\codeunder{% % this is all so @math{@code{var_name}+1} can work. In math mode, _ % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.) % will therefore expand the active definition of _, which is us % (inside @code that is), therefore an endless loop. \ifusingtt{\ifmmode \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_. \else\normalunderscore \fi \discretionary{}{}{}}% {\_}% } % An additional complication: the above will allow breaks after, e.g., % each of the four underscores in __typeof__. This is bad. % @allowcodebreaks provides a document-level way to turn breaking at - % and _ on and off. % \newif\ifallowcodebreaks \allowcodebreakstrue \def\keywordtrue{true} \def\keywordfalse{false} \parseargdef\allowcodebreaks{% \def\txiarg{#1}% \ifx\txiarg\keywordtrue \allowcodebreakstrue \else\ifx\txiarg\keywordfalse \allowcodebreaksfalse \else \errhelp = \EMsimple \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}% \fi\fi } % For @command, @env, @file, @option quotes seem unnecessary, % so use \code rather than \samp. \let\command=\code \let\env=\code \let\file=\code \let\option=\code % @uref (abbreviation for `urlref') aka @url takes an optional % (comma-separated) second argument specifying the text to display and % an optional third arg as text to display instead of (rather than in % addition to) the url itself. First (mandatory) arg is the url. % TeX-only option to allow changing PDF output to show only the second % arg (if given), and not the url (which is then just the link target). \newif\ifurefurlonlylink % The main macro is \urefbreak, which allows breaking at expected % places within the url. (There used to be another version, which % didn't support automatic breaking.) \def\urefbreak{\begingroup \urefcatcodes \dourefbreak} \let\uref=\urefbreak % \def\dourefbreak#1{\urefbreakfinish #1,,,\finish} \def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else \setbox0 = \hbox{\ignorespaces #2}% look for second arg \ifdim\wd0 > 0pt \ifpdf % For pdfTeX and LuaTeX \ifurefurlonlylink % PDF plus option to not display url, show just arg \unhbox0 \else % PDF, normally display both arg and url for consistency, % visibility, if the pdf is eventually used to print, etc. \unhbox0\ (\urefcode{#1})% \fi \else \ifx\XeTeXrevision\thisisundefined \unhbox0\ (\urefcode{#1})% DVI, always show arg and url \else % For XeTeX \ifurefurlonlylink % PDF plus option to not display url, show just arg \unhbox0 \else % PDF, normally display both arg and url for consistency, % visibility, if the pdf is eventually used to print, etc. \unhbox0\ (\urefcode{#1})% \fi \fi \fi \else \urefcode{#1}% only url given, so show it \fi \fi \endlink \endgroup} % Allow line breaks around only a few characters (only). \def\urefcatcodes{% \catcode`\&=\active \catcode`\.=\active \catcode`\#=\active \catcode`\?=\active \catcode`\/=\active } { \urefcatcodes % \global\def\urefcode{\begingroup \setupmarkupstyle{code}% \urefcatcodes \let&\urefcodeamp \let.\urefcodedot \let#\urefcodehash \let?\urefcodequest \let/\urefcodeslash \codex } % % By default, they are just regular characters. \global\def&{\normalamp} \global\def.{\normaldot} \global\def#{\normalhash} \global\def?{\normalquest} \global\def/{\normalslash} } % we put a little stretch before and after the breakable chars, to help % line breaking of long url's. The unequal skips make look better in % cmtt at least, especially for dots. \def\urefprestretchamount{.13em} \def\urefpoststretchamount{.1em} \def\urefprestretch{\urefprebreak \hskip0pt plus\urefprestretchamount\relax} \def\urefpoststretch{\urefpostbreak \hskip0pt plus\urefprestretchamount\relax} % \def\urefcodeamp{\urefprestretch \&\urefpoststretch} \def\urefcodedot{\urefprestretch .\urefpoststretch} \def\urefcodehash{\urefprestretch \#\urefpoststretch} \def\urefcodequest{\urefprestretch ?\urefpoststretch} \def\urefcodeslash{\futurelet\next\urefcodeslashfinish} { \catcode`\/=\active \global\def\urefcodeslashfinish{% \urefprestretch \slashChar % Allow line break only after the final / in a sequence of % slashes, to avoid line break between the slashes in http://. \ifx\next/\else \urefpoststretch \fi } } % One more complication: by default we'll break after the special % characters, but some people like to break before the special chars, so % allow that. Also allow no breaking at all, for manual control. % \parseargdef\urefbreakstyle{% \def\txiarg{#1}% \ifx\txiarg\wordnone \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak} \else\ifx\txiarg\wordbefore \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak} \else\ifx\txiarg\wordafter \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak} \else \errhelp = \EMsimple \errmessage{Unknown @urefbreakstyle setting `\txiarg'}% \fi\fi\fi } \def\wordafter{after} \def\wordbefore{before} \def\wordnone{none} \urefbreakstyle after % @url synonym for @uref, since that's how everyone uses it. % \let\url=\uref % rms does not like angle brackets --karl, 17may97. % So now @email is just like @uref, unless we are pdf. % %\def\email#1{\angleleft{\tt #1}\angleright} \ifpdf \def\email#1{\doemail#1,,\finish} \def\doemail#1,#2,#3\finish{\begingroup \unsepspaces \pdfurl{mailto:#1}% \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi \endlink \endgroup} \else \ifx\XeTeXrevision\thisisundefined \let\email=\uref \else \def\email#1{\doemail#1,,\finish} \def\doemail#1,#2,#3\finish{\begingroup \unsepspaces \pdfurl{mailto:#1}% \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi \endlink \endgroup} \fi \fi % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). \parseargdef\kbdinputstyle{% \def\txiarg{#1}% \ifx\txiarg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% \else\ifx\txiarg\wordexample \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\txiarg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \else \errhelp = \EMsimple \errmessage{Unknown @kbdinputstyle setting `\txiarg'}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} % Default is `distinct'. \kbdinputstyle distinct % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. \def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}} \def\xkey{\key} \def\kbdsub#1#2#3\par{% \def\one{#1}\def\three{#3}\def\threex{??}% \ifx\one\xkey\ifx\threex\three \key{#2}% \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi } % definition of @key that produces a lozenge. Doesn't adjust to text size. %\setfont\keyrm\rmshape{8}{1000}{OT1} %\font\keysy=cmsy9 %\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% % \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% % \vbox{\hrule\kern-0.4pt % \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% % \kern-0.4pt\hrule}% % \kern-.06em\raise0.4pt\hbox{\angleright}}}} % definition of @key with no lozenge. If the current font is already % monospace, don't change it; that way, we respect @kbdinputstyle. But % if it isn't monospace, then use \tt. % \def\key#1{{\setupmarkupstyle{key}% \nohyphenation \ifmonospace\else\tt\fi #1}\null} % @clicksequence{File @click{} Open ...} \def\clicksequence#1{\begingroup #1\endgroup} % @clickstyle @arrow (by default) \parseargdef\clickstyle{\def\click{#1}} \def\click{\arrow} % Typeset a dimension, e.g., `in' or `pt'. The only reason for the % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % \def\dmn#1{\thinspace #1} % @acronym for "FBI", "NATO", and the like. % We print this one point size smaller, since it's intended for % all-uppercase. % \def\acronym#1{\doacronym #1,,\finish} \def\doacronym#1,#2,#3\finish{% {\switchtolsize #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi \null % reset \spacefactor=1000 } % @abbr for "Comput. J." and the like. % No font change, but don't do end-of-sentence spacing. % \def\abbr#1{\doabbr #1,,\finish} \def\doabbr#1,#2,#3\finish{% {\plainfrenchspacing #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi \null % reset \spacefactor=1000 } % @asis just yields its argument. Used with @table, for example. % \def\asis#1{#1} % @math outputs its argument in math mode. % % One complication: _ usually means subscripts, but it could also mean % an actual _ character, as in @math{@var{some_variable} + 1}. So make % _ active, and distinguish by seeing if the current family is \slfam, % which is what @var uses. { \catcode`\_ = \active \gdef\mathunderscore{% \catcode`\_=\active \def_{\ifnum\fam=\slfam \_\else\sb\fi}% } } % Another complication: we want \\ (and @\) to output a math (or tt) \. % FYI, plain.tex uses \\ as a temporary control sequence (for no % particular reason), but this is not advertised and we don't care. % % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % \def\math{% \ifmmode\else % only go into math if not in math mode already \tex \mathunderscore \let\\ = \mathbackslash \mathactive % make the texinfo accent commands work in math mode \let\"=\ddot \let\'=\acute \let\==\bar \let\^=\hat \let\`=\grave \let\u=\breve \let\v=\check \let\~=\tilde \let\dotaccent=\dot % have to provide another name for sup operator \let\mathopsup=\sup $\expandafter\finishmath\fi } \def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. % Some active characters (such as <) are spaced differently in math. % We have to reset their definitions in case the @math was an argument % to a command which sets the catcodes (such as @item or @section). % { \catcode`^ = \active \catcode`< = \active \catcode`> = \active \catcode`+ = \active \catcode`' = \active \gdef\mathactive{% \let^ = \ptexhat \let< = \ptexless \let> = \ptexgtr \let+ = \ptexplus \let' = \ptexquoteright } } % for @sub and @sup, if in math mode, just do a normal sub/superscript. % If in text, use math to place as sub/superscript, but switch % into text mode, with smaller fonts. This is a different font than the % one used for real math sub/superscripts (8pt vs. 7pt), but let's not % fix it (significant additions to font machinery) until someone notices. % \def\sub{\ifmmode \expandafter\sb \else \expandafter\finishsub\fi} \def\finishsub#1{$\sb{\hbox{\switchtolllsize #1}}$}% % \def\sup{\ifmmode \expandafter\ptexsp \else \expandafter\finishsup\fi} \def\finishsup#1{$\ptexsp{\hbox{\switchtolllsize #1}}$}% % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. % Ignore unless FMTNAME == tex; then it is like @iftex and @tex, % except specified as a normal braced arg, so no newlines to worry about. % \def\outfmtnametex{tex} % \long\def\inlinefmt#1{\doinlinefmt #1,\finish} \long\def\doinlinefmt#1,#2,\finish{% \def\inlinefmtname{#1}% \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi } % % @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if % FMTNAME is tex, else ELSE-TEXT. \long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish} \long\def\doinlinefmtifelse#1,#2,#3,#4,\finish{% \def\inlinefmtname{#1}% \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\else \ignorespaces #3\fi } % % For raw, must switch into @tex before parsing the argument, to avoid % setting catcodes prematurely. Doing it this way means that, for % example, @inlineraw{html, foo{bar} gets a parse error instead of being % ignored. But this isn't important because if people want a literal % *right* brace they would have to use a command anyway, so they may as % well use a command to get a left brace too. We could re-use the % delimiter character idea from \verb, but it seems like overkill. % \long\def\inlineraw{\tex \doinlineraw} \long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} \def\doinlinerawtwo#1,#2,\finish{% \def\inlinerawname{#1}% \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi \endgroup % close group opened by \tex. } % @inlineifset{VAR, TEXT} expands TEXT if VAR is @set. % \long\def\inlineifset#1{\doinlineifset #1,\finish} \long\def\doinlineifset#1,#2,\finish{% \def\inlinevarname{#1}% \expandafter\ifx\csname SET\inlinevarname\endcsname\relax \else\ignorespaces#2\fi } % @inlineifclear{VAR, TEXT} expands TEXT if VAR is not @set. % \long\def\inlineifclear#1{\doinlineifclear #1,\finish} \long\def\doinlineifclear#1,#2,\finish{% \def\inlinevarname{#1}% \expandafter\ifx\csname SET\inlinevarname\endcsname\relax \ignorespaces#2\fi } \message{glyphs,} % and logos. % @@ prints an @, as does @atchar{}. \def\@{\char64 } \let\atchar=\@ % @{ @} @lbracechar{} @rbracechar{} all generate brace characters. \def\lbracechar{{\ifmonospace\char123\else\ensuremath\lbrace\fi}} \def\rbracechar{{\ifmonospace\char125\else\ensuremath\rbrace\fi}} \let\{=\lbracechar \let\}=\rbracechar % @comma{} to avoid , parsing problems. \let\comma = , % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent % Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. \let\, = \ptexc \let\dotaccent = \ptexdot \def\ringaccent#1{{\accent23 #1}} \let\tieaccent = \ptext \let\ubaraccent = \ptexb \let\udotaccent = \d % Other special characters: @questiondown @exclamdown @ordf @ordm % Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} \def\ordf{\leavevmode\raise1ex\hbox{\switchtolllsize \underbar{a}}} \def\ordm{\leavevmode\raise1ex\hbox{\switchtolllsize \underbar{o}}} % Dotless i and dotless j, used for accents. \def\imacro{i} \def\jmacro{j} \def\dotless#1{% \def\temp{#1}% \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi \else \errmessage{@dotless can be used only with i or j}% \fi\fi } % The \TeX{} logo, as in plain, but resetting the spacing so that a % period following counts as ending a sentence. (Idea found in latex.) % \edef\TeX{\TeX \spacefactor=1000 } % @LaTeX{} logo. Not quite the same results as the definition in % latex.ltx, since we use a different font for the raised A; it's most % convenient for us to use an explicitly smaller font, rather than using % the \scriptstyle font (since we don't reset \scriptstyle and % \scriptscriptstyle). % \def\LaTeX{% L\kern-.36em {\setbox0=\hbox{T}% \vbox to \ht0{\hbox{% \ifx\textnominalsize\xwordpt % for 10pt running text, lllsize (8pt) is too small for the A in LaTeX. % Revert to plain's \scriptsize, which is 7pt. \count255=\the\fam $\fam\count255 \scriptstyle A$% \else % For 11pt, we can use our lllsize. \switchtolllsize A% \fi }% \vss }}% \kern-.15em \TeX } % Some math mode symbols. Define \ensuremath to switch into math mode % unless we are already there. Expansion tricks may not be needed here, % but safer, and can't hurt. \def\ensuremath{\ifmmode \expandafter\asis \else\expandafter\ensuredmath \fi} \def\ensuredmath#1{$\relax#1$} % \def\bullet{\ensuremath\ptexbullet} \def\geq{\ensuremath\ge} \def\leq{\ensuremath\le} \def\minus{\ensuremath-} % @dots{} outputs an ellipsis using the current font. % We do .5em per period so that it has the same spacing in the cm % typewriter fonts as three actual period characters; on the other hand, % in other typewriter fonts three periods are wider than 1.5em. So do % whichever is larger. % \def\dots{% \leavevmode \setbox0=\hbox{...}% get width of three periods \ifdim\wd0 > 1.5em \dimen0 = \wd0 \else \dimen0 = 1.5em \fi \hbox to \dimen0{% \hskip 0pt plus.25fil .\hskip 0pt plus1fil .\hskip 0pt plus1fil .\hskip 0pt plus.5fil }% } % @enddots{} is an end-of-sentence ellipsis. % \def\enddots{% \dots \spacefactor=\endofsentencespacefactor } % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. % % Since these characters are used in examples, they should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % \def\point{$\star$} \def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}} \def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} \def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}} \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} \def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}} % The @error{} command. % Adapted from the TeXbook's \boxit. % \newbox\errorbox % {\ttfont \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt} % \setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. \advance\hsize by -2\dimen2 % Rules. \vbox{% \hrule height\dimen2 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. \kern3pt\vrule width\dimen2}% Space to right. \hrule height\dimen2} \hfil} % \def\error{\leavevmode\lower.7ex\copy\errorbox} % @pounds{} is a sterling sign, which Knuth put in the CM italic font. % \def\pounds{{\it\$}} % @euro{} comes from a separate font, depending on the current style. % We use the free feym* fonts from the eurosym package by Henrik % Theiling, which support regular, slanted, bold and bold slanted (and % "outlined" (blackboard board, sort of) versions, which we don't need). % It is available from http://www.ctan.org/tex-archive/fonts/eurosym. % % Although only regular is the truly official Euro symbol, we ignore % that. The Euro is designed to be slightly taller than the regular % font height. % % feymr - regular % feymo - slanted % feybr - bold % feybo - bold slanted % % There is no good (free) typewriter version, to my knowledge. % A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. % Hmm. % % Also doesn't work in math. Do we need to do math with euro symbols? % Hope not. % % \def\euro{{\eurofont e}} \def\eurofont{% % We set the font at each command, rather than predefining it in % \textfonts and the other font-switching commands, so that % installations which never need the symbol don't have to have the % font installed. % % There is only one designed size (nominal 10pt), so we always scale % that to the current nominal size. % % By the way, simply using "at 1em" works for cmr10 and the like, but % does not work for cmbx10 and other extended/shrunken fonts. % \def\eurosize{\csname\curfontsize nominalsize\endcsname}% % \ifx\curfontstyle\bfstylename % bold: \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize \else % regular: \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize \fi \thiseurofont } % Glyphs from the EC fonts. We don't use \let for the aliases, because % sometimes we redefine the original macro, and the alias should reflect % the redefinition. % % Use LaTeX names for the Icelandic letters. \def\DH{{\ecfont \char"D0}} % Eth \def\dh{{\ecfont \char"F0}} % eth \def\TH{{\ecfont \char"DE}} % Thorn \def\th{{\ecfont \char"FE}} % thorn % \def\guillemetleft{{\ecfont \char"13}} \def\guillemotleft{\guillemetleft} \def\guillemetright{{\ecfont \char"14}} \def\guillemotright{\guillemetright} \def\guilsinglleft{{\ecfont \char"0E}} \def\guilsinglright{{\ecfont \char"0F}} \def\quotedblbase{{\ecfont \char"12}} \def\quotesinglbase{{\ecfont \char"0D}} % % This positioning is not perfect (see the ogonek LaTeX package), but % we have the precomposed glyphs for the most common cases. We put the % tests to use those glyphs in the single \ogonek macro so we have fewer % dummy definitions to worry about for index entries, etc. % % ogonek is also used with other letters in Lithuanian (IOU), but using % the precomposed glyphs for those is not so easy since they aren't in % the same EC font. \def\ogonek#1{{% \def\temp{#1}% \ifx\temp\macrocharA\Aogonek \else\ifx\temp\macrochara\aogonek \else\ifx\temp\macrocharE\Eogonek \else\ifx\temp\macrochare\eogonek \else \ecfont \setbox0=\hbox{#1}% \ifdim\ht0=1ex\accent"0C #1% \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}% \fi \fi\fi\fi\fi }% } \def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A} \def\aogonek{{\ecfont \char"A1}}\def\macrochara{a} \def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E} \def\eogonek{{\ecfont \char"A6}}\def\macrochare{e} % % Use the European Computer Modern fonts (cm-super in outline format) % for non-CM glyphs. That is ec* for regular text and tc* for the text % companion symbols (LaTeX TS1 encoding). Both are part of the ec % package and follow the same conventions. % \def\ecfont{\etcfont{e}} \def\tcfont{\etcfont{t}} % \def\etcfont#1{% % We can't distinguish serif/sans and italic/slanted, but this % is used for crude hacks anyway (like adding French and German % quotes to documents typeset with CM, where we lose kerning), so % hopefully nobody will notice/care. \edef\ecsize{\csname\curfontsize ecsize\endcsname}% \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% \ifmonospace % typewriter: \font\thisecfont = #1ctt\ecsize \space at \nominalsize \else \ifx\curfontstyle\bfstylename % bold: \font\thisecfont = #1cb\ifusingit{i}{x}\ecsize \space at \nominalsize \else % regular: \font\thisecfont = #1c\ifusingit{ti}{rm}\ecsize \space at \nominalsize \fi \fi \thisecfont } % @registeredsymbol - R in a circle. The font for the R should really % be smaller yet, but lllsize is the best we can do for now. % Adapted from the plain.tex definition of \copyright. % \def\registeredsymbol{% $^{{\ooalign{\hfil\raise.07ex\hbox{\switchtolllsize R}% \hfil\crcr\Orb}}% }$% } % @textdegree - the normal degrees sign. % \def\textdegree{$^\circ$} % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. % \ifx\Orb\thisisundefined \def\Orb{\mathhexbox20D} \fi % Quotes. \chardef\quotedblleft="5C \chardef\quotedblright=`\" \chardef\quoteleft=`\` \chardef\quoteright=`\' \message{page headings,} \newskip\titlepagetopglue \titlepagetopglue = 1.5in \newskip\titlepagebottomglue \titlepagebottomglue = 2pc % First the title page. Must do @settitle before @titlepage. \newif\ifseenauthor \newif\iffinishedtitlepage % @setcontentsaftertitlepage used to do an implicit @contents or % @shortcontents after @end titlepage, but it is now obsolete. \def\setcontentsaftertitlepage{% \errmessage{@setcontentsaftertitlepage has been removed as a Texinfo command; move your @contents command if you want the contents after the title page.}}% \def\setshortcontentsaftertitlepage{% \errmessage{@setshortcontentsaftertitlepage has been removed as a Texinfo command; move your @shortcontents and @contents commands if you want the contents after the title page.}}% \parseargdef\shorttitlepage{% \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}% \endgroup\page\hbox{}\page} \envdef\titlepage{% % Open one extra group, as we want to close it in the middle of \Etitlepage. \begingroup \parindent=0pt \textfonts % Leave some space at the very top of the page. \vglue\titlepagetopglue % No rule at page bottom unless we print one at the top with @title. \finishedtitlepagetrue % % Most title ``pages'' are actually two pages long, with space % at the top of the second. We don't want the ragged left on the second. \let\oldpage = \page \def\page{% \iffinishedtitlepage\else \finishtitlepage \fi \let\page = \oldpage \page \null }% } \def\Etitlepage{% \iffinishedtitlepage\else \finishtitlepage \fi % It is important to do the page break before ending the group, % because the headline and footline are only empty inside the group. % If we use the new definition of \page, we always get a blank page % after the title page, which we certainly don't want. \oldpage \endgroup % % Need this before the \...aftertitlepage checks so that if they are % in effect the toc pages will come out with page numbers. \HEADINGSon } \def\finishtitlepage{% \vskip4pt \hrule height 2pt width \hsize \vskip\titlepagebottomglue \finishedtitlepagetrue } % Settings used for typesetting titles: no hyphenation, no indentation, % don't worry much about spacing, ragged right. This should be used % inside a \vbox, and fonts need to be set appropriately first. \par should % be specified before the end of the \vbox, since a vbox is a group. % \def\raggedtitlesettings{% \rm \hyphenpenalty=10000 \parindent=0pt \tolerance=5000 \ptexraggedright } % Macros to be used within @titlepage: \let\subtitlerm=\rmfont \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} \parseargdef\title{% \checkenv\titlepage \vbox{\titlefonts \raggedtitlesettings #1\par}% % print a rule at the page bottom also. \finishedtitlepagefalse \vskip4pt \hrule height 4pt width \hsize \vskip4pt } \parseargdef\subtitle{% \checkenv\titlepage {\subtitlefont \rightline{#1}}% } % @author should come last, but may come many times. % It can also be used inside @quotation. % \parseargdef\author{% \def\temp{\quotation}% \ifx\thisenv\temp \def\quotationauthor{#1}% printed in \Equotation. \else \checkenv\titlepage \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi {\secfonts\rm \leftline{#1}}% \fi } % Set up page headings and footings. \let\thispage=\folio \newtoks\evenheadline % headline on even pages \newtoks\oddheadline % headline on odd pages \newtoks\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages % Now make \makeheadline and \makefootline in Plain TeX use those variables \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline \else \the\evenheadline \fi}} \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline \else \the\evenfootline \fi}\HEADINGShook} \let\HEADINGShook=\relax % Commands to set those variables. % For example, this is what @headings on does % @evenheading @thistitle|@thispage|@thischapter % @oddheading @thischapter|@thispage|@thistitle % @evenfooting @thisfile|| % @oddfooting ||@thisfile \def\evenheading{\parsearg\evenheadingxxx} \def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish} \def\evenheadingyyy #1\|#2\|#3\|#4\finish{% \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \def\oddheading{\parsearg\oddheadingxxx} \def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish} \def\oddheadingyyy #1\|#2\|#3\|#4\finish{% \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}% \def\evenfooting{\parsearg\evenfootingxxx} \def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish} \def\evenfootingyyy #1\|#2\|#3\|#4\finish{% \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \def\oddfooting{\parsearg\oddfootingxxx} \def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish} \def\oddfootingyyy #1\|#2\|#3\|#4\finish{% \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. \global\advance\txipageheight by -12pt \global\advance\vsize by -12pt } \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} % @evenheadingmarks top \thischapter <- chapter at the top of a page % @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page % % The same set of arguments for: % % @oddheadingmarks % @evenfootingmarks % @oddfootingmarks % @everyheadingmarks % @everyfootingmarks % These define \getoddheadingmarks, \getevenheadingmarks, % \getoddfootingmarks, and \getevenfootingmarks, each to one of % \gettopheadingmarks, \getbottomheadingmarks. % \def\evenheadingmarks{\headingmarks{even}{heading}} \def\oddheadingmarks{\headingmarks{odd}{heading}} \def\evenfootingmarks{\headingmarks{even}{footing}} \def\oddfootingmarks{\headingmarks{odd}{footing}} \parseargdef\everyheadingmarks{\headingmarks{even}{heading}{#1} \headingmarks{odd}{heading}{#1} } \parseargdef\everyfootingmarks{\headingmarks{even}{footing}{#1} \headingmarks{odd}{footing}{#1} } % #1 = even/odd, #2 = heading/footing, #3 = top/bottom. \def\headingmarks#1#2#3 {% \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname \global\expandafter\let\csname get#1#2marks\endcsname \temp } \everyheadingmarks bottom \everyfootingmarks bottom % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. % @headings off turns them off. % @headings on same as @headings double, retained for compatibility. % @headings after turns on double-sided headings after this page. % @headings doubleafter turns on double-sided headings after this page. % @headings singleafter turns on single-sided headings after this page. % By default, they are off at the start of a document, % and turned `on' after @end titlepage. \parseargdef\headings{\csname HEADINGS#1\endcsname} \def\headingsoff{% non-global headings elimination \evenheadline={\hfil}\evenfootline={\hfil}% \oddheadline={\hfil}\oddfootline={\hfil}% } \def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting \HEADINGSoff % it's the default % When we turn headings on, set the page number to 1. % For double-sided printing, put current file name in lower left corner, % chapter name on inside top of right hand pages, document % title on inside top of left hand pages, and page numbers on outside top % edge of all pages. \def\HEADINGSdouble{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapterheading\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \let\contentsalignmacro = \chappager % For single-sided printing, chapter title goes across top left of page, % page number on top right. \def\HEADINGSsingle{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapterheading\hfil\folio}} \global\oddheadline={\line{\thischapterheading\hfil\folio}} \global\let\contentsalignmacro = \chappager } \def\HEADINGSon{\HEADINGSdouble} \def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} \let\HEADINGSdoubleafter=\HEADINGSafter \def\HEADINGSdoublex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapterheading\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex} \def\HEADINGSsinglex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapterheading\hfil\folio}} \global\oddheadline={\line{\thischapterheading\hfil\folio}} \global\let\contentsalignmacro = \chappager } % Subroutines used in generating headings % This produces Day Month Year style of output. % Only define if not already defined, in case a txi-??.tex file has set % up a different format (e.g., txi-cs.tex does this). \ifx\today\thisisundefined \def\today{% \number\day\space \ifcase\month \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec \fi \space\number\year} \fi % @settitle line... specifies the title of the document, for headings. % It generates no output of its own. \def\thistitle{\putwordNoTitle} \def\settitle{\parsearg{\gdef\thistitle}} \message{tables,} % Tables -- @table, @ftable, @vtable, @item(x). % default indentation of table text \newdimen\tableindent \tableindent=.8in % default indentation of @itemize and @enumerate text \newdimen\itemindent \itemindent=.3in % margin between end of table item and start of table text. \newdimen\itemmargin \itemmargin=.1in % used internally for \itemindent minus \itemmargin \newdimen\itemmax % Note @table, @ftable, and @vtable define @item, @itemx, etc., with % these defs. % They also define \itemindex % to index the item name in whatever manner is desired (perhaps none). \newif\ifitemxneedsnegativevskip \def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi} \def\internalBitem{\smallbreak \parsearg\itemzzz} \def\internalBitemx{\itemxpar \parsearg\itemzzz} \def\itemzzz #1{\begingroup % \advance\hsize by -\rightskip \advance\hsize by -\tableindent \setbox0=\hbox{\itemindicate{#1}}% \itemindex{#1}% \nobreak % This prevents a break before @itemx. % % If the item text does not fit in the space we have, put it on a line % by itself, and do not allow a page break either before or after that % line. We do not start a paragraph here because then if the next % command is, e.g., @kindex, the whatsit would get put into the % horizontal list on a line by itself, resulting in extra blank space. \ifdim \wd0>\itemmax % % Make this a paragraph so we get the \parskip glue and wrapping, % but leave it ragged-right. \begingroup \advance\leftskip by-\tableindent \advance\hsize by\tableindent \advance\rightskip by0pt plus1fil\relax \leavevmode\unhbox0\par \endgroup % % We're going to be starting a paragraph, but we don't want the % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % % Stop a page break at the \parskip glue coming up. However, if % what follows is an environment such as @example, there will be no % \parskip glue; then the negative vskip we just inserted would % cause the example and the item to crash together. So we use this % bizarre value of 10001 as a signal to \aboveenvbreak to insert % \parskip glue after all. Section titles are handled this way also. % \penalty 10001 \endgroup \itemxneedsnegativevskipfalse \else % The item text fits into the space. Start a paragraph, so that the % following text (if any) will end up on the same line. \noindent % Do this with kerns and \unhbox so that if there is a footnote in % the item text, it can migrate to the main vertical list and % eventually be printed. \nobreak\kern-\tableindent \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0 \unhbox0 \nobreak\kern\dimen0 \endgroup \itemxneedsnegativevskiptrue \fi } \def\item{\errmessage{@item while not in a list environment}} \def\itemx{\errmessage{@itemx while not in a list environment}} % @table, @ftable, @vtable. \envdef\table{% \let\itemindex\gobble \tablecheck{table}% } \envdef\ftable{% \def\itemindex ##1{\doind {fn}{\code{##1}}}% \tablecheck{ftable}% } \envdef\vtable{% \def\itemindex ##1{\doind {vr}{\code{##1}}}% \tablecheck{vtable}% } \def\tablecheck#1{% \ifnum \the\catcode`\^^M=\active \endgroup \errmessage{This command won't work in this context; perhaps the problem is that we are \inenvironment\thisenv}% \def\next{\doignore{#1}}% \else \let\next\tablex \fi \next } \def\tablex#1{% \def\itemindicate{#1}% \parsearg\tabley } \def\tabley#1{% {% \makevalueexpandable \edef\temp{\noexpand\tablez #1\space\space\space}% \expandafter }\temp \endtablez } \def\tablez #1 #2 #3 #4\endtablez{% \aboveenvbreak \ifnum 0#1>0 \advance \leftskip by #1\mil \fi \ifnum 0#2>0 \tableindent=#2\mil \fi \ifnum 0#3>0 \advance \rightskip by #3\mil \fi \itemmax=\tableindent \advance \itemmax by -\itemmargin \advance \leftskip by \tableindent \exdentamount=\tableindent \parindent = 0pt \parskip = \smallskipamount \ifdim \parskip=0pt \parskip=2pt \fi \let\item = \internalBitem \let\itemx = \internalBitemx } \def\Etable{\endgraf\afterenvbreak} \let\Eftable\Etable \let\Evtable\Etable \let\Eitemize\Etable \let\Eenumerate\Etable % This is the counter used by @enumerate, which is really @itemize \newcount \itemno \envdef\itemize{\parsearg\doitemize} \def\doitemize#1{% \aboveenvbreak \itemmax=\itemindent \advance\itemmax by -\itemmargin \advance\leftskip by \itemindent \exdentamount=\itemindent \parindent=0pt \parskip=\smallskipamount \ifdim\parskip=0pt \parskip=2pt \fi % % Try typesetting the item mark so that if the document erroneously says % something like @itemize @samp (intending @table), there's an error % right away at the @itemize. It's not the best error message in the % world, but it's better than leaving it to the @item. This means if % the user wants an empty mark, they have to say @w{} not just @w. \def\itemcontents{#1}% \setbox0 = \hbox{\itemcontents}% % % @itemize with no arg is equivalent to @itemize @bullet. \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi % \let\item=\itemizeitem } % Definition of @item while inside @itemize and @enumerate. % \def\itemizeitem{% \advance\itemno by 1 % for enumerations {\let\par=\endgraf \smallbreak}% reasonable place to break {% % If the document has an @itemize directly after a section title, a % \nobreak will be last on the list, and \sectionheading will have % done a \vskip-\parskip. In that case, we don't want to zero % parskip, or the item text will crash with the heading. On the % other hand, when there is normal text preceding the item (as there % usually is), we do want to zero parskip, or there would be too much % space. In that case, we won't have a \nobreak before. At least % that's the theory. \ifnum\lastpenalty<10000 \parskip=0in \fi \noindent \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% % \ifinner\else \vadjust{\penalty 1200}% not good to break after first line of item. \fi % We can be in inner vertical mode in a footnote, although an % @itemize looks awful there. }% \flushcr } % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. % \def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}% % Allow an optional argument of an uppercase letter, lowercase letter, % or number, to specify the first label in the enumerated list. No % argument is the same as `1'. % \envparseargdef\enumerate{\enumeratey #1 \endenumeratey} \def\enumeratey #1 #2\endenumeratey{% % If we were given no argument, pretend we were given `1'. \def\thearg{#1}% \ifx\thearg\empty \def\thearg{1}\fi % % Detect if the argument is a single token. If so, it might be a % letter. Otherwise, the only valid thing it can be is a number. % (We will always have one token, because of the test we just made. % This is a good thing, since \splitoff doesn't work given nothing at % all -- the first parameter is undelimited.) \expandafter\splitoff\thearg\endmark \ifx\rest\empty % Only one token in the argument. It could still be anything. % A ``lowercase letter'' is one whose \lccode is nonzero. % An ``uppercase letter'' is one whose \lccode is both nonzero, and % not equal to itself. % Otherwise, we assume it's a number. % % We need the \relax at the end of the \ifnum lines to stop TeX from % continuing to look for a . % \ifnum\lccode\expandafter`\thearg=0\relax \numericenumerate % a number (we hope) \else % It's a letter. \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax \lowercaseenumerate % lowercase letter \else \uppercaseenumerate % uppercase letter \fi \fi \else % Multiple tokens in the argument. We hope it's a number. \numericenumerate \fi } % An @enumerate whose labels are integers. The starting integer is % given in \thearg. % \def\numericenumerate{% \itemno = \thearg \startenumeration{\the\itemno}% } % The starting (lowercase) letter is in \thearg. \def\lowercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more lowercase letters in @enumerate; get a bigger alphabet}% \fi \char\lccode\itemno }% } % The starting (uppercase) letter is in \thearg. \def\uppercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more uppercase letters in @enumerate; get a bigger alphabet} \fi \char\uccode\itemno }% } % Call \doitemize, adding a period to the first argument and supplying the % common last two arguments. Also subtract one from the initial value in % \itemno, since @item increments \itemno. % \def\startenumeration#1{% \advance\itemno by -1 \doitemize{#1.}\flushcr } % @alphaenumerate and @capsenumerate are abbreviations for giving an arg % to @enumerate. % \def\alphaenumerate{\enumerate{a}} \def\capsenumerate{\enumerate{A}} \def\Ealphaenumerate{\Eenumerate} \def\Ecapsenumerate{\Eenumerate} % @multitable macros % Amy Hendrickson, 8/18/94, 3/6/96 % % @multitable ... @end multitable will make as many columns as desired. % Contents of each column will wrap at width given in preamble. Width % can be specified either with sample text given in a template line, % or in percent of \hsize, the current width of text on page. % Table can continue over pages but will only break between lines. % To make preamble: % % Either define widths of columns in terms of percent of \hsize: % @multitable @columnfractions .25 .3 .45 % @item ... % % Numbers following @columnfractions are the percent of the total % current hsize to be used for each column. You may use as many % columns as desired. % Or use a template: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item ... % using the widest term desired in each column. % Each new table line starts with @item, each subsequent new column % starts with @tab. Empty columns may be produced by supplying @tab's % with nothing between them for as many times as empty columns are needed, % ie, @tab@tab@tab will produce two empty columns. % @item, @tab do not need to be on their own lines, but it will not hurt % if they are. % Sample multitable: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item first col stuff @tab second col stuff @tab third col % @item % first col stuff % @tab % second col stuff % @tab % third col % @item first col stuff @tab second col stuff % @tab Many paragraphs of text may be used in any column. % % They will wrap at the width determined by the template. % @item@tab@tab This will be in third column. % @end multitable % Default dimensions may be reset by user. % @multitableparskip is vertical space between paragraphs in table. % @multitableparindent is paragraph indent in table. % @multitablecolmargin is horizontal space to be left between columns. % @multitablelinespace is space to leave between table items, baseline % to baseline. % 0pt means it depends on current normal line spacing. % \newskip\multitableparskip \newskip\multitableparindent \newdimen\multitablecolspace \newskip\multitablelinespace \multitableparskip=0pt \multitableparindent=6pt \multitablecolspace=12pt \multitablelinespace=0pt % Macros used to set up halign preamble: % \let\endsetuptable\relax \def\xendsetuptable{\endsetuptable} \let\columnfractions\relax \def\xcolumnfractions{\columnfractions} \newif\ifsetpercent % #1 is the @columnfraction, usually a decimal number like .5, but might % be just 1. We just use it, whatever it is. % \def\pickupwholefraction#1 {% \global\advance\colcount by 1 \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}% \setuptable } \newcount\colcount \def\setuptable#1{% \def\firstarg{#1}% \ifx\firstarg\xendsetuptable \let\go = \relax \else \ifx\firstarg\xcolumnfractions \global\setpercenttrue \else \ifsetpercent \let\go\pickupwholefraction \else \global\advance\colcount by 1 \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a % separator; typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi \fi \ifx\go\pickupwholefraction % Put the argument back for the \pickupwholefraction call, so % we'll always have a period there to be parsed. \def\go{\pickupwholefraction#1}% \else \let\go = \setuptable \fi% \fi \go } % multitable-only commands. % % @headitem starts a heading row, which we typeset in bold. Assignments % have to be global since we are inside the implicit group of an % alignment entry. \everycr below resets \everytab so we don't have to % undo it ourselves. \def\headitemfont{\b}% for people to use in the template row; not changeable \def\headitem{% \checkenv\multitable \crcr \gdef\headitemcrhook{\nobreak}% attempt to avoid page break after headings \global\everytab={\bf}% can't use \headitemfont since the parsing differs \the\everytab % for the first item }% % % default for tables with no headings. \let\headitemcrhook=\relax % % A \tab used to include \hskip1sp. But then the space in a template % line is not enough. That is bad. So let's go back to just `&' until % we again encounter the problem the 1sp was intended to solve. % --karl, nathan@acm.org, 20apr99. \def\tab{\checkenv\multitable &\the\everytab}% % @multitable ... @end multitable definitions: % \newtoks\everytab % insert after every tab. % \envdef\multitable{% \vskip\parskip \startsavinginserts % % @item within a multitable starts a normal row. % We use \def instead of \let so that if one of the multitable entries % contains an @itemize, we don't choke on the \item (seen as \crcr aka % \endtemplate) expanding \doitemize. \def\item{\crcr}% % \tolerance=9500 \hbadness=9500 \setmultitablespacing \parskip=\multitableparskip \parindent=\multitableparindent \overfullrule=0pt \global\colcount=0 % \everycr = {% \noalign{% \global\everytab={}% Reset from possible headitem. \global\colcount=0 % Reset the column counter. % % Check for saved footnotes, etc.: \checkinserts % % Perhaps a \nobreak, then reset: \headitemcrhook \global\let\headitemcrhook=\relax }% }% % \parsearg\domultitable } \def\domultitable#1{% % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable % % This preamble sets up a generic column definition, which will % be used as many times as user calls for columns. % \vtop will set a single line and will also let text wrap and % continue for many paragraphs if desired. \halign\bgroup &% \global\advance\colcount by 1 \multistrut \vtop{% % Use the current \colcount to find the correct column width: \hsize=\expandafter\csname col\the\colcount\endcsname % % In order to keep entries from bumping into each other % we will add a \leftskip of \multitablecolspace to all columns after % the first one. % % If a template has been used, we will add \multitablecolspace % to the width of each template entry. % % If the user has set preamble in terms of percent of \hsize we will % use that dimension as the width of the column, and the \leftskip % will keep entries from bumping into each other. Table will start at % left margin and final column will justify at right margin. % % Make sure we don't inherit \rightskip from the outer environment. \rightskip=0pt \ifnum\colcount=1 % The first column will be indented with the surrounding text. \advance\hsize by\leftskip \else \ifsetpercent \else % If user has not set preamble in terms of percent of \hsize % we will advance \hsize by \multitablecolspace. \advance\hsize by \multitablecolspace \fi % In either case we will make \leftskip=\multitablecolspace: \leftskip=\multitablecolspace \fi % Ignoring space at the beginning and end avoids an occasional spurious % blank line, when TeX decides to break the line at the space before the % box from the multistrut, so the strut ends up on a line by itself. % For example: % @multitable @columnfractions .11 .89 % @item @code{#} % @tab Legal holiday which is valid in major parts of the whole country. % Is automatically provided with highlighting sequences respectively % marking characters. \noindent\ignorespaces##\unskip\multistrut }\cr } \def\Emultitable{% \crcr \egroup % end the \halign \global\setpercentfalse } \def\setmultitablespacing{% \def\multistrut{\strut}% just use the standard line spacing % % Compute \multitablelinespace (if not defined by user) for use in % \multitableparskip calculation. We used define \multistrut based on % this, but (ironically) that caused the spacing to be off. % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100. \ifdim\multitablelinespace=0pt \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip \global\advance\multitablelinespace by-\ht0 \fi % Test to see if parskip is larger than space between lines of % table. If not, do nothing. % If so, set to same dimension as multitablelinespace. \ifdim\multitableparskip>\multitablelinespace \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt % to keep parskip somewhat smaller % than skip between lines in the table. \fi% \ifdim\multitableparskip=0pt \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt % to keep parskip somewhat smaller % than skip between lines in the table. \fi} \message{conditionals,} % @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext, % @ifnotxml always succeed. They currently do nothing; we don't % attempt to check whether the conditionals are properly nested. But we % have to remember that they are conditionals, so that @end doesn't % attempt to close an environment group. % \def\makecond#1{% \expandafter\let\csname #1\endcsname = \relax \expandafter\let\csname iscond.#1\endcsname = 1 } \makecond{iftex} \makecond{ifnotdocbook} \makecond{ifnothtml} \makecond{ifnotinfo} \makecond{ifnotplaintext} \makecond{ifnotxml} % Ignore @ignore, @ifhtml, @ifinfo, and the like. % \def\direntry{\doignore{direntry}} \def\documentdescription{\doignore{documentdescription}} \def\docbook{\doignore{docbook}} \def\html{\doignore{html}} \def\ifdocbook{\doignore{ifdocbook}} \def\ifhtml{\doignore{ifhtml}} \def\ifinfo{\doignore{ifinfo}} \def\ifnottex{\doignore{ifnottex}} \def\ifplaintext{\doignore{ifplaintext}} \def\ifxml{\doignore{ifxml}} \def\ignore{\doignore{ignore}} \def\menu{\doignore{menu}} \def\xml{\doignore{xml}} % Ignore text until a line `@end #1', keeping track of nested conditionals. % % A count to remember the depth of nesting. \newcount\doignorecount \def\doignore#1{\begingroup % Scan in ``verbatim'' mode: \obeylines \catcode`\@ = \other \catcode`\{ = \other \catcode`\} = \other % % Make sure that spaces turn into tokens that match what \doignoretext wants. \spaceisspace % % Count number of #1's that we've seen. \doignorecount = 0 % % Swallow text until we reach the matching `@end #1'. \dodoignore{#1}% } { \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source. \obeylines % % \gdef\dodoignore#1{% % #1 contains the command name as a string, e.g., `ifinfo'. % % Define a command to find the next `@end #1'. \long\def\doignoretext##1^^M@end #1{% \doignoretextyyy##1^^M@#1\_STOP_}% % % And this command to find another #1 command, at the beginning of a % line. (Otherwise, we would consider a line `@c @ifset', for % example, to count as an @ifset for nesting.) \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % % And now expand that command. \doignoretext ^^M% }% } \def\doignoreyyy#1{% \def\temp{#1}% \ifx\temp\empty % Nothing found. \let\next\doignoretextzzz \else % Found a nested condition, ... \advance\doignorecount by 1 \let\next\doignoretextyyy % ..., look for another. % If we're here, #1 ends with ^^M\ifinfo (for example). \fi \next #1% the token \_STOP_ is present just after this macro. } % We have to swallow the remaining "\_STOP_". % \def\doignoretextzzz#1{% \ifnum\doignorecount = 0 % We have just found the outermost @end. \let\next\enddoignore \else % Still inside a nested condition. \advance\doignorecount by -1 \let\next\doignoretext % Look for the next @end. \fi \next } % Finish off ignored text. { \obeylines% % Ignore anything after the last `@end #1'; this matters in verbatim % environments, where otherwise the newline after an ignored conditional % would result in a blank line in the output. \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% } % @set VAR sets the variable VAR to an empty value. % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. % % Since we want to separate VAR from REST-OF-LINE (which might be % empty), we can't just use \parsearg; we have to insert a space of our % own to delimit the rest of the line, and then take it out again if we % didn't need it. % We rely on the fact that \parsearg sets \catcode`\ =10. % \parseargdef\set{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% {% \makevalueexpandable \def\temp{#2}% \edef\next{\gdef\makecsname{SET#1}}% \ifx\temp\empty \next{}% \else \setzzz#2\endsetzzz \fi }% } % Remove the trailing space \setxxx inserted. \def\setzzz#1 \endsetzzz{\next{#1}} % @clear VAR clears (i.e., unsets) the variable VAR. % \parseargdef\clear{% {% \makevalueexpandable \global\expandafter\let\csname SET#1\endcsname=\relax }% } % @value{foo} gets the text saved in variable foo. \def\value{\begingroup\makevalueexpandable\valuexxx} \def\valuexxx#1{\expandablevalue{#1}\endgroup} { \catcode`\-=\active \catcode`\_=\active % \gdef\makevalueexpandable{% \let\value = \expandablevalue % We don't want these characters active, ... \catcode`\-=\other \catcode`\_=\other % ..., but we might end up with active ones in the argument if % we're called from @code, as @code{@value{foo-bar_}}, though. % So \let them to their normal equivalents. \let-\normaldash \let_\normalunderscore } } % We have this subroutine so that we can handle at least some @value's % properly in indexes (we call \makevalueexpandable in \indexdummies). % The command has to be fully expandable (if the variable is set), since % the result winds up in the index file. This means that if the % variable's value contains other Texinfo commands, it's almost certain % it will fail (although perhaps we could fix that with sufficient work % to do a one-level expansion on the result, instead of complete). % % Unfortunately, this has the consequence that when _ is in the *value* % of an @set, it does not print properly in the roman fonts (get the cmr % dot accent at position 126 instead). No fix comes to mind, and it's % been this way since 2003 or earlier, so just ignore it. % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% \message{Variable `#1', used in @value, is not set.}% \else \csname SET#1\endcsname \fi } % Like \expandablevalue, but completely expandable (the \message in the % definition above operates at the execution level of TeX). Used when % writing to auxiliary files, due to the expansion that \write does. % If flag is undefined, pass through an unexpanded @value command: maybe it % will be set by the time it is read back in. % % NB flag names containing - or _ may not work here. \def\dummyvalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax \noexpand\value{#1}% \else \csname SET#1\endcsname \fi } % Used for @value's in index entries to form the sort key: expand the @value % if possible, otherwise sort late. \def\indexnofontsvalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax ZZZZZZZ \else \csname SET#1\endcsname \fi } % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % % To get the special treatment we need for `@end ifset,' we call % \makecond and then redefine. % \makecond{ifset} \def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}} \def\doifset#1#2{% {% \makevalueexpandable \let\next=\empty \expandafter\ifx\csname SET#2\endcsname\relax #1% If not set, redefine \next. \fi \expandafter }\next } \def\ifsetfail{\doignore{ifset}} % @ifclear VAR ... @end executes the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % % The `\else' inside the `\doifset' parameter is a trick to reuse the % above code: if the variable is not set, do nothing, if it is set, % then redefine \next to \ifclearfail. % \makecond{ifclear} \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} \def\ifclearfail{\doignore{ifclear}} % @ifcommandisdefined CMD ... @end executes the `...' if CMD (written % without the @) is in fact defined. We can only feasibly check at the % TeX level, so something like `mathcode' is going to considered % defined even though it is not a Texinfo command. % \makecond{ifcommanddefined} \def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}} % \def\doifcmddefined#1#2{{% \makevalueexpandable \let\next=\empty \expandafter\ifx\csname #2\endcsname\relax #1% If not defined, \let\next as above. \fi \expandafter }\next } \def\ifcmddefinedfail{\doignore{ifcommanddefined}} % @ifcommandnotdefined CMD ... handled similar to @ifclear above. \makecond{ifcommandnotdefined} \def\ifcommandnotdefined{% \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}} \def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}} % Set the `txicommandconditionals' variable, so documents have a way to % test if the @ifcommand...defined conditionals are available. \set txicommandconditionals % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. \let\dircategory=\comment % @defininfoenclose. \let\definfoenclose=\comment \message{indexing,} % Index generation facilities % Define \newwrite to be identical to plain tex's \newwrite % except not \outer, so it can be used within macros and \if's. \edef\newwrite{\makecsname{ptexnewwrite}} % \newindex {foo} defines an index named IX. % It automatically defines \IXindex such that % \IXindex ...rest of line... puts an entry in the index IX. % It also defines \IXindfile to be the number of the output channel for % the file that accumulates this index. The file's extension is IX. % The name of an index should be no more than 2 characters long % for the sake of vms. % \def\newindex#1{% \expandafter\chardef\csname#1indfile\endcsname=0 \expandafter\xdef\csname#1index\endcsname{% % Define @#1index \noexpand\doindex{#1}} } % @defindex foo == \newindex{foo} % \def\defindex{\parsearg\newindex} % Define @defcodeindex, like @defindex except put all entries in @code. % \def\defcodeindex{\parsearg\newcodeindex} % \def\newcodeindex#1{% \expandafter\chardef\csname#1indfile\endcsname=0 \expandafter\xdef\csname#1index\endcsname{% \noexpand\docodeindex{#1}}% } % The default indices: \newindex{cp}% concepts, \newcodeindex{fn}% functions, \newcodeindex{vr}% variables, \newcodeindex{tp}% types, \newcodeindex{ky}% keys \newcodeindex{pg}% and programs. % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. % % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. % \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} % #1 is \doindex or \docodeindex, #2 the index getting redefined (foo), % #3 the target index (bar). \def\dosynindex#1#2#3{% \requireopenindexfile{#3}% % redefine \fooindfile: \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname \expandafter\let\csname#2indfile\endcsname=\temp % redefine \fooindex: \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}% } % Define \doindex, the driver for all index macros. % Argument #1 is generated by the calling \fooindex macro, % and it is the two-letter name of the index. \def\doindex#1{\edef\indexname{#1}\parsearg\doindexxxx} \def\doindexxxx #1{\doind{\indexname}{#1}} % like the previous two, but they put @code around the argument. \def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx} \def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}} % Used when writing an index entry out to an index file to prevent % expansion of Texinfo commands that can appear in an index entry. % \def\indexdummies{% \escapechar = `\\ % use backslash in output files. \definedummyletter\@% \definedummyletter\ % % % For texindex which always views { and } as separators. \def\{{\lbracechar{}}% \def\}{\rbracechar{}}% % % Do the redefinitions. \definedummies } % Used for the aux and toc files, where @ is the escape character. % \def\atdummies{% \definedummyletter\@% \definedummyletter\ % \definedummyletter\{% \definedummyletter\}% % % Do the redefinitions. \definedummies \otherbackslash } % \definedummyword defines \#1 as \string\#1\space, thus effectively % preventing its expansion. This is used only for control words, % not control letters, because the \space would be incorrect for % control characters, but is needed to separate the control word % from whatever follows. % % These can be used both for control words that take an argument and % those that do not. If it is followed by {arg} in the input, then % that will dutifully get written to the index (or wherever). % % For control letters, we have \definedummyletter, which omits the % space. % \def\definedummyword #1{\def#1{\string#1\space}}% \def\definedummyletter#1{\def#1{\string#1}}% \let\definedummyaccent\definedummyletter % Called from \indexdummies and \atdummies, to effectively prevent % the expansion of commands. % \def\definedummies{% % \let\commondummyword\definedummyword \let\commondummyletter\definedummyletter \let\commondummyaccent\definedummyaccent \commondummiesnofonts % \definedummyletter\_% \definedummyletter\-% % % Non-English letters. \definedummyword\AA \definedummyword\AE \definedummyword\DH \definedummyword\L \definedummyword\O \definedummyword\OE \definedummyword\TH \definedummyword\aa \definedummyword\ae \definedummyword\dh \definedummyword\exclamdown \definedummyword\l \definedummyword\o \definedummyword\oe \definedummyword\ordf \definedummyword\ordm \definedummyword\questiondown \definedummyword\ss \definedummyword\th % % Although these internal commands shouldn't show up, sometimes they do. \definedummyword\bf \definedummyword\gtr \definedummyword\hat \definedummyword\less \definedummyword\sf \definedummyword\sl \definedummyword\tclose \definedummyword\tt % \definedummyword\LaTeX \definedummyword\TeX % % Assorted special characters. \definedummyword\atchar \definedummyword\arrow \definedummyword\bullet \definedummyword\comma \definedummyword\copyright \definedummyword\registeredsymbol \definedummyword\dots \definedummyword\enddots \definedummyword\entrybreak \definedummyword\equiv \definedummyword\error \definedummyword\euro \definedummyword\expansion \definedummyword\geq \definedummyword\guillemetleft \definedummyword\guillemetright \definedummyword\guilsinglleft \definedummyword\guilsinglright \definedummyword\lbracechar \definedummyword\leq \definedummyword\mathopsup \definedummyword\minus \definedummyword\ogonek \definedummyword\pounds \definedummyword\point \definedummyword\print \definedummyword\quotedblbase \definedummyword\quotedblleft \definedummyword\quotedblright \definedummyword\quoteleft \definedummyword\quoteright \definedummyword\quotesinglbase \definedummyword\rbracechar \definedummyword\result \definedummyword\sub \definedummyword\sup \definedummyword\textdegree % % We want to disable all macros so that they are not expanded by \write. \macrolist \let\value\dummyvalue % \normalturnoffactive } % \commondummiesnofonts: common to \definedummies and \indexnofonts. % Define \commondummyletter, \commondummyaccent and \commondummyword before % using. Used for accents, font commands, and various control letters. % \def\commondummiesnofonts{% % Control letters and accents. \commondummyletter\!% \commondummyaccent\"% \commondummyaccent\'% \commondummyletter\*% \commondummyaccent\,% \commondummyletter\.% \commondummyletter\/% \commondummyletter\:% \commondummyaccent\=% \commondummyletter\?% \commondummyaccent\^% \commondummyaccent\`% \commondummyaccent\~% \commondummyword\u \commondummyword\v \commondummyword\H \commondummyword\dotaccent \commondummyword\ogonek \commondummyword\ringaccent \commondummyword\tieaccent \commondummyword\ubaraccent \commondummyword\udotaccent \commondummyword\dotless % % Texinfo font commands. \commondummyword\b \commondummyword\i \commondummyword\r \commondummyword\sansserif \commondummyword\sc \commondummyword\slanted \commondummyword\t % % Commands that take arguments. \commondummyword\abbr \commondummyword\acronym \commondummyword\anchor \commondummyword\cite \commondummyword\code \commondummyword\command \commondummyword\dfn \commondummyword\dmn \commondummyword\email \commondummyword\emph \commondummyword\env \commondummyword\file \commondummyword\image \commondummyword\indicateurl \commondummyword\inforef \commondummyword\kbd \commondummyword\key \commondummyword\math \commondummyword\option \commondummyword\pxref \commondummyword\ref \commondummyword\samp \commondummyword\strong \commondummyword\tie \commondummyword\U \commondummyword\uref \commondummyword\url \commondummyword\var \commondummyword\verb \commondummyword\w \commondummyword\xref } % For testing: output @{ and @} in index sort strings as \{ and \}. \newif\ifusebracesinindexes \let\indexlbrace\relax \let\indexrbrace\relax {\catcode`\@=0 \catcode`\\=13 @gdef@backslashdisappear{@def\{}} } { \catcode`\<=13 \catcode`\-=13 \catcode`\`=13 \gdef\indexnonalnumdisappear{% \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax\else % @set txiindexlquoteignore makes us ignore left quotes in the sort term. % (Introduced for FSFS 2nd ed.) \let`=\empty \fi % \expandafter\ifx\csname SETtxiindexbackslashignore\endcsname\relax\else \backslashdisappear \fi % \expandafter\ifx\csname SETtxiindexhyphenignore\endcsname\relax\else \def-{}% \fi \expandafter\ifx\csname SETtxiindexlessthanignore\endcsname\relax\else \def<{}% \fi \expandafter\ifx\csname SETtxiindexatsignignore\endcsname\relax\else \def\@{}% \fi } \gdef\indexnonalnumreappear{% \useindexbackslash \let-\normaldash \let<\normalless \def\@{@}% } } % \indexnofonts is used when outputting the strings to sort the index % by, and when constructing control sequence names. It eliminates all % control sequences and just writes whatever the best ASCII sort string % would be for a given command (usually its argument). % \def\indexnofonts{% % Accent commands should become @asis. \def\commondummyaccent##1{\let##1\asis}% % We can just ignore other control letters. \def\commondummyletter##1{\let##1\empty}% % All control words become @asis by default; overrides below. \let\commondummyword\commondummyaccent \commondummiesnofonts % % Don't no-op \tt, since it isn't a user-level command % and is used in the definitions of the active chars like <, >, |, etc. % Likewise with the other plain tex font commands. %\let\tt=\asis % \def\ { }% \def\@{@}% \def\_{\normalunderscore}% \def\-{}% @- shouldn't affect sorting % \uccode`\1=`\{ \uppercase{\def\{{1}}% \uccode`\1=`\} \uppercase{\def\}{1}}% \let\lbracechar\{% \let\rbracechar\}% % % Non-English letters. \def\AA{AA}% \def\AE{AE}% \def\DH{DZZ}% \def\L{L}% \def\OE{OE}% \def\O{O}% \def\TH{TH}% \def\aa{aa}% \def\ae{ae}% \def\dh{dzz}% \def\exclamdown{!}% \def\l{l}% \def\oe{oe}% \def\ordf{a}% \def\ordm{o}% \def\o{o}% \def\questiondown{?}% \def\ss{ss}% \def\th{th}% % \def\LaTeX{LaTeX}% \def\TeX{TeX}% % % Assorted special characters. \defglyph gives the control sequence a % definition that removes the {} that follows its use. \defglyph\atchar{@}% \defglyph\arrow{->}% \defglyph\bullet{bullet}% \defglyph\comma{,}% \defglyph\copyright{copyright}% \defglyph\dots{...}% \defglyph\enddots{...}% \defglyph\equiv{==}% \defglyph\error{error}% \defglyph\euro{euro}% \defglyph\expansion{==>}% \defglyph\geq{>=}% \defglyph\guillemetleft{<<}% \defglyph\guillemetright{>>}% \defglyph\guilsinglleft{<}% \defglyph\guilsinglright{>}% \defglyph\leq{<=}% \defglyph\lbracechar{\{}% \defglyph\minus{-}% \defglyph\point{.}% \defglyph\pounds{pounds}% \defglyph\print{-|}% \defglyph\quotedblbase{"}% \defglyph\quotedblleft{"}% \defglyph\quotedblright{"}% \defglyph\quoteleft{`}% \defglyph\quoteright{'}% \defglyph\quotesinglbase{,}% \defglyph\rbracechar{\}}% \defglyph\registeredsymbol{R}% \defglyph\result{=>}% \defglyph\textdegree{o}% % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. % makeinfo does not expand macros in the argument to @deffn, which ends up % writing an index entry, and texindex isn't prepared for an index sort entry % that starts with \. % % Since macro invocations are followed by braces, we can just redefine them % to take a single TeX argument. The case of a macro invocation that % goes to end-of-line is not handled. % \macrolist \let\value\indexnofontsvalue } \def\defglyph#1#2{\def#1##1{#2}} % see above \let\SETmarginindex=\relax % put index entries in margin (undocumented)? % Most index entries go through here, but \dosubind is the general case. % #1 is the index name, #2 is the entry text. \def\doind#1#2{\dosubind{#1}{#2}{}} % There is also \dosubind {index}{topic}{subtopic} % which makes an entry in a two-level index such as the operation index. % TODO: Two-level index? Operation index? % Workhorse for all indexes. % #1 is name of index, #2 is stuff to put there, #3 is subentry -- % empty if called from \doind, as we usually are (the main exception % is with most defuns, which call us directly). % \def\dosubind#1#2#3{% \iflinks {% \requireopenindexfile{#1}% % Store the main index entry text (including the third arg). \toks0 = {#2}% % If third arg is present, precede it with a space. \def\thirdarg{#3}% \ifx\thirdarg\empty \else \toks0 = \expandafter{\the\toks0 \space #3}% \fi % \edef\writeto{\csname#1indfile\endcsname}% % \safewhatsit\dosubindwrite }% \fi } % Check if an index file has been opened, and if not, open it. \def\requireopenindexfile#1{% \ifnum\csname #1indfile\endcsname=0 \expandafter\newwrite \csname#1indfile\endcsname \edef\suffix{#1}% % A .fls suffix would conflict with the file extension for the output % of -recorder, so use .f1s instead. \ifx\suffix\indexisfl\def\suffix{f1}\fi % Open the file \immediate\openout\csname#1indfile\endcsname \jobname.\suffix % Using \immediate above here prevents an object entering into the current % box, which could confound checks such as those in \safewhatsit for % preceding skips. \typeout{Writing index file \jobname.\suffix}% \fi} \def\indexisfl{fl} % Output \ as {\indexbackslash}, because \ is an escape character in % the index files. \let\indexbackslash=\relax {\catcode`\@=0 \catcode`\\=\active @gdef@useindexbackslash{@def\{{@indexbackslash}}} } % Definition for writing index entry text. \def\sortas#1{\ignorespaces}% % Definition for writing index entry sort key. Should occur at the at % the beginning of the index entry, like % @cindex @sortas{september} \september % The \ignorespaces takes care of following space, but there's no way % to remove space before it. { \catcode`\-=13 \gdef\indexwritesortas{% \begingroup \indexnonalnumreappear \indexwritesortasxxx} \gdef\indexwritesortasxxx#1{% \xdef\indexsortkey{#1}\endgroup} } % Write the entry in \toks0 to the index file. % \def\dosubindwrite{% % Put the index entry in the margin if desired. \ifx\SETmarginindex\relax\else \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}% \fi % % Remember, we are within a group. \indexdummies % Must do this here, since \bf, etc expand at this stage \useindexbackslash % \indexbackslash isn't defined now so it will be output % as is; and it will print as backslash. % The braces around \indexbrace are recognized by texindex. % % Get the string to sort by, by processing the index entry with all % font commands turned off. {\indexnofonts \def\lbracechar{{\indexlbrace}}% \def\rbracechar{{\indexrbrace}}% \let\{=\lbracechar \let\}=\rbracechar \indexnonalnumdisappear \xdef\indexsortkey{}% \let\sortas=\indexwritesortas \edef\temp{\the\toks0}% \setbox\dummybox = \hbox{\temp}% Make sure to execute any \sortas \ifx\indexsortkey\empty \xdef\indexsortkey{\temp}% \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi \fi }% % % Set up the complete index entry, with both the sort key and % the original text, including any font commands. We write % three arguments to \entry to the .?? file (four in the % subentry case), texindex reduces to two when writing the .??s % sorted result. \edef\temp{% \write\writeto{% \string\entry{\indexsortkey}{\noexpand\folio}{\the\toks0}}% }% \temp } \newbox\dummybox % used above % Take care of unwanted page breaks/skips around a whatsit: % % If a skip is the last thing on the list now, preserve it % by backing up by \lastskip, doing the \write, then inserting % the skip again. Otherwise, the whatsit generated by the % \write or \pdfdest will make \lastskip zero. The result is that % sequences like this: % @end defun % @tindex whatever % @defun ... % will have extra space inserted, because the \medbreak in the % start of the @defun won't see the skip inserted by the @end of % the previous defun. % % But don't do any of this if we're not in vertical mode. We % don't want to do a \vskip and prematurely end a paragraph. % % Avoid page breaks due to these extra skips, too. % % But wait, there is a catch there: % We'll have to check whether \lastskip is zero skip. \ifdim is not % sufficient for this purpose, as it ignores stretch and shrink parts % of the skip. The only way seems to be to check the textual % representation of the skip. % % The following is almost like \def\zeroskipmacro{0.0pt} except that % the ``p'' and ``t'' characters have catcode \other, not 11 (letter). % \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} % \newskip\whatsitskip \newcount\whatsitpenalty % % ..., ready, GO: % \def\safewhatsit#1{\ifhmode #1% \else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. \whatsitskip = \lastskip \edef\lastskipmacro{\the\lastskip}% \whatsitpenalty = \lastpenalty % % If \lastskip is nonzero, that means the last item was a % skip. And since a skip is discardable, that means this % -\whatsitskip glue we're inserting is preceded by a % non-discardable item, therefore it is not a potential % breakpoint, therefore no \nobreak needed. \ifx\lastskipmacro\zeroskipmacro \else \vskip-\whatsitskip \fi % #1% % \ifx\lastskipmacro\zeroskipmacro % If \lastskip was zero, perhaps the last item was a penalty, and % perhaps it was >=10000, e.g., a \nobreak. In that case, we want % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: % @deffn deffn-whatever % @vindex index-whatever % Description. % would allow a break between the index-whatever whatsit % and the "Description." paragraph. \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi \else % On the other hand, if we had a nonzero \lastskip, % this make-up glue would be preceded by a non-discardable item % (the whatsit from the \write), so we must insert a \nobreak. \nobreak\vskip\whatsitskip \fi \fi} % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} % or % \entry {sortstring}{page}{topic}{subtopic} % The texindex program reads in these files and writes files % containing these kinds of lines: % \initial {c} % before the first topic whose initial is c % \entry {topic}{pagelist} % for a topic that is used without subtopics % \primary {topic} % for the beginning of a topic that is used with subtopics % \secondary {subtopic}{pagelist} % for each subtopic. % Define the user-accessible indexing commands % @findex, @vindex, @kindex, @cindex. \def\findex {\fnindex} \def\kindex {\kyindex} \def\cindex {\cpindex} \def\vindex {\vrindex} \def\tindex {\tpindex} \def\pindex {\pgindex} \def\cindexsub {\begingroup\obeylines\cindexsub} {\obeylines % \gdef\cindexsub "#1" #2^^M{\endgroup % \dosubind{cp}{#2}{#1}}} % Define the macros used in formatting output of the sorted index material. % @printindex causes a particular index (the ??s file) to get printed. % It does not print any chapter heading (usually an @unnumbered). % \parseargdef\printindex{\begingroup \dobreak \chapheadingskip{10000}% % \smallfonts \rm \tolerance = 9500 \plainfrenchspacing \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See if the index file exists and is nonempty. % Change catcode of @ here so that if the index file contains % \initial {@} % as its first line, TeX doesn't complain about mismatched braces % (because it thinks @} is a control sequence). \catcode`\@ = 12 % See comment in \requireopenindexfile. \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi \openin 1 \jobname.\indexname s \ifeof 1 % \enddoublecolumns gets confused if there is no text in the index, % and it loses the chapter title and the aux file entries for the % index. The easiest way to prevent this problem is to make sure % there is some text. \putwordIndexNonexistent \typeout{No file \jobname.\indexname s.}% \else \catcode`\\ = 0 % % If the index file exists but is empty, then \openin leaves \ifeof % false. We have to make TeX try to read something from the file, so % it can discover if there is anything in it. \read 1 to \thisline \ifeof 1 \putwordIndexIsEmpty \else % Index files are almost Texinfo source, but we use \ as the escape % character. It would be better to use @, but that's too big a change % to make right now. \def\indexbackslash{\ttbackslash}% \let\indexlbrace\{ % Likewise, set these sequences for braces \let\indexrbrace\} % used in the sort key. \begindoublecolumns \let\entrywidowpenalty=\indexwidowpenalty % % Read input from the index file line by line. \loopdo \ifeof1 \let\firsttoken\relax \else \read 1 to \nextline \edef\act{\gdef\noexpand\firsttoken{\getfirsttoken\nextline}}% \act \fi \thisline % \ifeof1\else \let\thisline\nextline \repeat %% \enddoublecolumns \fi \fi \closein 1 \endgroup} \def\getfirsttoken#1{\expandafter\getfirsttokenx#1\endfirsttoken} \long\def\getfirsttokenx#1#2\endfirsttoken{\noexpand#1} \def\loopdo#1\repeat{\def\body{#1}\loopdoxxx} \def\loopdoxxx{\let\next=\relax\body\let\next=\loopdoxxx\fi\next} % These macros are used by the sorted index file itself. % Change them to control the appearance of the index. {\catcode`\/=13 \catcode`\-=13 \catcode`\^=13 \catcode`\~=13 \catcode`\_=13 \catcode`\|=13 \catcode`\<=13 \catcode`\>=13 \catcode`\+=13 \catcode`\"=13 \catcode`\$=3 \gdef\initialglyphs{% % Some changes for non-alphabetic characters. Using the glyphs from the % math fonts looks more consistent than the typewriter font used elsewhere % for these characters. \def\indexbackslash{\math{\backslash}}% \let\\=\indexbackslash % % Can't get bold backslash so don't use bold forward slash \catcode`\/=13 \def/{{\secrmnotbold \normalslash}}% \def-{{\normaldash\normaldash}}% en dash `--' \def^{{\chapbf \normalcaret}}% \def~{{\chapbf \normaltilde}}% \def\_{% \leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }% \def|{$\vert$}% \def<{$\less$}% \def>{$\gtr$}% \def+{$\normalplus$}% }} \def\initial{% \bgroup \initialglyphs \initialx } \def\initialx#1{% % Remove any glue we may have, we'll be inserting our own. \removelastskip % % We like breaks before the index initials, so insert a bonus. % The glue before the bonus allows a little bit of space at the % bottom of a column to reduce an increase in inter-line spacing. \nobreak \vskip 0pt plus 5\baselineskip \penalty -300 \vskip 0pt plus -5\baselineskip % % Typeset the initial. Making this add up to a whole number of % baselineskips increases the chance of the dots lining up from column % to column. It still won't often be perfect, because of the stretch % we need before each entry, but it's better. % % No shrink because it confuses \balancecolumns. \vskip 1.67\baselineskip plus 1\baselineskip \leftline{\secfonts \kern-0.05em \secbf #1}% % \secfonts is inside the argument of \leftline so that the change of % \baselineskip will not affect any glue inserted before the vbox that % \leftline creates. % Do our best not to break after the initial. \nobreak \vskip .33\baselineskip plus .1\baselineskip \egroup % \initialglyphs } \newdimen\entryrightmargin \entryrightmargin=0pt % \entry typesets a paragraph consisting of the text (#1), dot leaders, and % then page number (#2) flushed to the right margin. It is used for index % and table of contents entries. The paragraph is indented by \leftskip. % \def\entry{% \begingroup % % For pdfTeX and XeTeX. % The redefinition of \domark stops marks being added in \pdflink to % preserve coloured links across page boundaries. Otherwise the marks % would get in the way of \lastbox in \insertindexentrybox. \let\domark\relax % % Start a new paragraph if necessary, so our assignments below can't % affect previous text. \par % % No extra space above this paragraph. \parskip = 0in % % When reading the text of entry, convert explicit line breaks % from @* into spaces. The user might give these in long section % titles, for instance. \def\*{\unskip\space\ignorespaces}% \def\entrybreak{\hfil\break}% An undocumented command % % Swallow the left brace of the text (first parameter): \afterassignment\doentry \let\temp = } \def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% % Save the text of the entry \global\setbox\boxA=\hbox\bgroup \bgroup % Instead of the swallowed brace. \noindent \aftergroup\finishentry % And now comes the text of the entry. % Not absorbing as a macro argument reduces the chance of problems % with catcodes occurring. } {\catcode`\@=11 \gdef\finishentry#1{% \egroup % end box A \dimen@ = \wd\boxA % Length of text of entry \global\setbox\boxA=\hbox\bgroup\unhbox\boxA % #1 is the page number. % % Get the width of the page numbers, and only use % leaders if they are present. \global\setbox\boxB = \hbox{#1}% \ifdim\wd\boxB = 0pt \null\nobreak\hfill\ % \else % \null\nobreak\indexdotfill % Have leaders before the page number. % \ifpdf \pdfgettoks#1.% \hskip\skip\thinshrinkable\the\toksA \else \ifx\XeTeXrevision\thisisundefined \hskip\skip\thinshrinkable #1% \else \pdfgettoks#1.% \hskip\skip\thinshrinkable\the\toksA \fi \fi \fi \egroup % end \boxA \ifdim\wd\boxB = 0pt \global\setbox\entryindexbox=\vbox{\unhbox\boxA}% \else \global\setbox\entryindexbox=\vbox\bgroup % We want the text of the entries to be aligned to the left, and the % page numbers to be aligned to the right. % \parindent = 0pt \advance\leftskip by 0pt plus 1fil \advance\leftskip by 0pt plus -1fill \rightskip = 0pt plus -1fil \advance\rightskip by 0pt plus 1fill % Cause last line, which could consist of page numbers on their own % if the list of page numbers is long, to be aligned to the right. \parfillskip=0pt plus -1fill % \advance\rightskip by \entryrightmargin % Determine how far we can stretch into the margin. % This allows, e.g., "Appendix H GNU Free Documentation License" to % fit on one line in @letterpaper format. \ifdim\entryrightmargin>2.1em \dimen@i=2.1em \else \dimen@i=0em \fi \advance \parfillskip by 0pt minus 1\dimen@i % \dimen@ii = \hsize \advance\dimen@ii by -1\leftskip \advance\dimen@ii by -1\entryrightmargin \advance\dimen@ii by 1\dimen@i \ifdim\wd\boxA > \dimen@ii % If the entry doesn't fit in one line \ifdim\dimen@ > 0.8\dimen@ii % due to long index text \dimen@ = 0.7\dimen@ % Try to split the text roughly evenly \dimen@ii = \hsize \ifnum\dimen@>\dimen@ii % If the entry is too long, use the whole line \dimen@ = \dimen@ii \fi \advance\leftskip by 0pt plus 1fill % ragged right \advance \dimen@ by 1\rightskip \parshape = 2 0pt \dimen@ 0em \dimen@ii % Ideally we'd add a finite glue at the end of the first line only, % instead of using \parshape with explicit line lengths, but TeX % doesn't seem to provide a way to do such a thing. % \leftskip = 1em \parindent = -1em \fi\fi \indent % start paragraph \unhbox\boxA % % Do not prefer a separate line ending with a hyphen to fewer lines. \finalhyphendemerits = 0 % % Word spacing - no stretch \spaceskip=\fontdimen2\font minus \fontdimen4\font % \linepenalty=1000 % Discourage line breaks. \hyphenpenalty=5000 % Discourage hyphenation. % \par % format the paragraph \egroup % The \vbox \fi \endgroup % delay text of entry until after penalty \bgroup\aftergroup\insertindexentrybox \entrywidowpenalty }} \newskip\thinshrinkable \skip\thinshrinkable=.15em minus .15em \newbox\entryindexbox \def\insertindexentrybox{% \ourunvbox\entryindexbox } % Use \lastbox to take apart vbox box by box, and add each sub-box % to the current vertical list. \def\ourunvbox#1{% \bgroup % for local binding of \delayedbox % Remove the last box from box #1 \global\setbox#1=\vbox{% \unvbox#1% \unskip % remove any glue \unpenalty \global\setbox\interbox=\lastbox }% \setbox\delayedbox=\box\interbox \ifdim\ht#1=0pt\else \ourunvbox#1 % Repeat on what's left of the box \nobreak \fi \box\delayedbox \egroup } \newbox\delayedbox \newbox\interbox % Default is no penalty \let\entrywidowpenalty\egroup % Used from \printindex. \firsttoken should be the first token % after the \entry. If it's not another \entry, we are at the last % line of a group of index entries, so insert a penalty to discourage % widowed index entries. \long\def\indexwidowpenalty{% \def\isentry{\entry}% \ifx\firsttoken\isentry \else \penalty 9000 \fi \egroup % now comes the box added with \aftergroup } % Like plain.tex's \dotfill, except uses up at least 1 em. % The filll stretch here overpowers both the fil and fill stretch to push % the page number to the right. \def\indexdotfill{\cleaders \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1filll} \def\primary #1{\line{#1\hfil}} \newskip\secondaryindent \secondaryindent=0.5cm \def\secondary#1#2{{% \parfillskip=0in \parskip=0in \hangindent=1in \hangafter=1 \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill \ifpdf \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. \else \ifx\XeTeXrevision\thisisundefined #2 \else \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. \fi \fi \par }} % Define two-column mode, which we use to typeset indexes. % Adapted from the TeXbook, page 416, which is to say, % the manmac.tex format used to print the TeXbook itself. \catcode`\@=11 % private names \newbox\partialpage \newdimen\doublecolumnhsize % Use inside an output routine to save \topmark and \firstmark \def\savemarks{% \global\savedtopmark=\expandafter{\topmark }% \global\savedfirstmark=\expandafter{\firstmark }% } \newtoks\savedtopmark \newtoks\savedfirstmark % Set \topmark and \firstmark for next time \output runs. % Can't be run from withinside \output (because any material % added while an output routine is active, including % penalties, is saved for after it finishes). The page so far % should be empty, otherwise what's on it will be thrown away. \def\restoremarks{% \mark{\the\savedtopmark}% \bgroup\output = {% \setbox\dummybox=\box\PAGE }abc\eject\egroup % "abc" because output routine doesn't fire for a completely empty page. \mark{\the\savedfirstmark}% } \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns % If not much space left on page, start a new page. \ifdim\pagetotal>0.8\vsize\vfill\eject\fi % % Grab any single-column material above us. \output = {% % % Here is a possibility not foreseen in manmac: if we accumulate a % whole lot of material, we might end up calling this \output % routine twice in a row (see the doublecol-lose test, which is % essentially a couple of indexes with @setchapternewpage off). In % that case we just ship out what is in \partialpage with the normal % output routine. Generally, \partialpage will be empty when this % runs and this will be a no-op. See the indexspread.tex test case. \ifvoid\partialpage \else \onepageout{\pagecontents\partialpage}% \fi % \global\setbox\partialpage = \vbox{% % Unvbox the main output page. \unvbox\PAGE \kern-\topskip \kern\baselineskip }% \savemarks }% \eject % run that output routine to set \partialpage \restoremarks % % We recover the two marks that the last output routine saved in order % to propagate the information in marks added around a chapter heading, % which could be otherwise be lost by the time the final page is output. % % % Use the double-column output routine for subsequent pages. \output = {\doublecolumnout}% % % Change the page size parameters. We could do this once outside this % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 % format, but then we repeat the same computation. Repeating a couple % of assignments once per index is clearly meaningless for the % execution time, so we may as well do it in one place. % % First we halve the line length, less a little for the gutter between % the columns. We compute the gutter based on the line length, so it % changes automatically with the paper format. The magic constant % below is chosen so that the gutter has the same value (well, +-<1pt) % as it did when we hard-coded it. % % We put the result in a separate register, \doublecolumhsize, so we % can restore it in \pagesofar, after \hsize itself has (potentially) % been clobbered. % \doublecolumnhsize = \hsize \advance\doublecolumnhsize by -.04154\hsize \divide\doublecolumnhsize by 2 \hsize = \doublecolumnhsize % % Double the \vsize as well. (We don't need a separate register here, % since nobody clobbers \vsize.) \vsize = 2\vsize % % For the benefit of balancing columns \advance\baselineskip by 0pt plus 0.5pt } % The double-column output routine for all double-column pages except % the last, which is done by \balancecolumns. % \def\doublecolumnout{% % \splittopskip=\topskip \splitmaxdepth=\maxdepth % Get the available space for the double columns -- the normal % (undoubled) page height minus any material left over from the % previous page. \dimen@ = \vsize \divide\dimen@ by 2 \advance\dimen@ by -\ht\partialpage % % box0 will be the left-hand column, box2 the right. \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ \onepageout\pagesofar \unvbox255 \penalty\outputpenalty } % % Re-output the contents of the output page -- any previous material, % followed by the two boxes we just split, in box0 and box2. \def\pagesofar{% \unvbox\partialpage % \hsize = \doublecolumnhsize \wd0=\hsize \wd2=\hsize \hbox to\txipagewidth{\box0\hfil\box2}% } % Finished with with double columns. \def\enddoublecolumns{% % The following penalty ensures that the page builder is exercised % _before_ we change the output routine. This is necessary in the % following situation: % % The last section of the index consists only of a single entry. % Before this section, \pagetotal is less than \pagegoal, so no % break occurs before the last section starts. However, the last % section, consisting of \initial and the single \entry, does not % fit on the page and has to be broken off. Without the following % penalty the page builder will not be exercised until \eject % below, and by that time we'll already have changed the output % routine to the \balancecolumns version, so the next-to-last % double-column page will be processed with \balancecolumns, which % is wrong: The two columns will go to the main vertical list, with % the broken-off section in the recent contributions. As soon as % the output routine finishes, TeX starts reconsidering the page % break. The two columns and the broken-off section both fit on the % page, because the two columns now take up only half of the page % goal. When TeX sees \eject from below which follows the final % section, it invokes the new output routine that we've set after % \balancecolumns below; \onepageout will try to fit the two columns % and the final section into the vbox of \txipageheight (see % \pagebody), causing an overfull box. % % Note that glue won't work here, because glue does not exercise the % page builder, unlike penalties (see The TeXbook, pp. 280-281). \penalty0 % \output = {% % Split the last of the double-column material. \savemarks \balancecolumns % % Having called \balancecolumns once, we do not % want to call it again. Therefore, reset \output to its normal % definition right away. \global\output = {\onepageout{\pagecontents\PAGE}}% }% \eject \endgroup % started in \begindoublecolumns \restoremarks % Leave the double-column material on the current page, no automatic % page break. \box\balancedcolumns % % \pagegoal was set to the doubled \vsize above, since we restarted % the current page. We're now back to normal single-column % typesetting, so reset \pagegoal to the normal \vsize (after the % \endgroup where \vsize got restored). \pagegoal = \vsize } \newbox\balancedcolumns \setbox\balancedcolumns=\vbox{shouldnt see this}% % % Only called for the last of the double column material. \doublecolumnout % does the others. \def\balancecolumns{% \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 \advance\dimen@ by \topskip \advance\dimen@ by-\baselineskip \ifdim\dimen@<5\baselineskip % Don't split a short final column in two. \setbox2=\vbox{}% \else \divide\dimen@ by 2 % target to split to \dimen@ii = \dimen@ \splittopskip = \topskip % Loop until left column is at least as high as the right column. {% \vbadness = 10000 \loop \global\setbox3 = \copy0 \global\setbox1 = \vsplit3 to \dimen@ \ifdim\ht1<\ht3 \global\advance\dimen@ by 1pt \repeat }% % Now the left column is in box 1, and the right column in box 3. % Check whether the left column has come out higher than the page itself. % (Note that we have doubled \vsize for the double columns, so % the actual height of the page is 0.5\vsize). \ifdim2\ht1>\vsize % Just split the last of the double column material roughly in half. \setbox2=\box0 \setbox0 = \vsplit2 to \dimen@ii \setbox0=\vbox to \dimen@ii {\unvbox0\vfill}% \setbox2=\vbox to \dimen@ii {\unvbox2\vfill}% \else % Compare the heights of the two columns. \ifdim4\ht1>5\ht3 % Column heights are too different, so don't make their bottoms % flush with each other. \setbox2=\vbox to \ht1 {\unvbox3\vfill}% \setbox0=\vbox to \ht1 {\unvbox1\vfill}% \else % Make column bottoms flush with each other. \setbox2=\vbox to\ht1{\unvbox3\unskip}% \setbox0=\vbox to\ht1{\unvbox1\unskip}% \fi \fi \fi % \global\setbox\balancedcolumns=\vbox{\pagesofar}% } \catcode`\@ = \other \message{sectioning,} % Chapters, sections, etc. % Let's start with @part. \outer\parseargdef\part{\partzzz{#1}} \def\partzzz#1{% \chapoddpage \null \vskip.3\vsize % move it down on the page a bit \begingroup \noindent \titlefonts\rm #1\par % the text \let\lastnode=\empty % no node to associate with \writetocentry{part}{#1}{}% but put it in the toc \headingsoff % no headline or footline on the part page % This outputs a mark at the end of the page that clears \thischapter % and \thissection, as is done in \startcontents. \let\pchapsepmacro\relax \chapmacro{}{Yomitfromtoc}{}% \chapoddpage \endgroup } % \unnumberedno is an oxymoron. But we count the unnumbered % sections so that we can refer to them unambiguously in the pdf % outlines by their "section number". We avoid collisions with chapter % numbers by starting them at 10000. (If a document ever has 10000 % chapters, we're in trouble anyway, I'm sure.) \newcount\unnumberedno \unnumberedno = 10000 \newcount\chapno \newcount\secno \secno=0 \newcount\subsecno \subsecno=0 \newcount\subsubsecno \subsubsecno=0 % This counter is funny since it counts through charcodes of letters A, B, ... \newcount\appendixno \appendixno = `\@ % % \def\appendixletter{\char\the\appendixno} % We do the following ugly conditional instead of the above simple % construct for the sake of pdftex, which needs the actual % letter in the expansion, not just typeset. % \def\appendixletter{% \ifnum\appendixno=`A A% \else\ifnum\appendixno=`B B% \else\ifnum\appendixno=`C C% \else\ifnum\appendixno=`D D% \else\ifnum\appendixno=`E E% \else\ifnum\appendixno=`F F% \else\ifnum\appendixno=`G G% \else\ifnum\appendixno=`H H% \else\ifnum\appendixno=`I I% \else\ifnum\appendixno=`J J% \else\ifnum\appendixno=`K K% \else\ifnum\appendixno=`L L% \else\ifnum\appendixno=`M M% \else\ifnum\appendixno=`N N% \else\ifnum\appendixno=`O O% \else\ifnum\appendixno=`P P% \else\ifnum\appendixno=`Q Q% \else\ifnum\appendixno=`R R% \else\ifnum\appendixno=`S S% \else\ifnum\appendixno=`T T% \else\ifnum\appendixno=`U U% \else\ifnum\appendixno=`V V% \else\ifnum\appendixno=`W W% \else\ifnum\appendixno=`X X% \else\ifnum\appendixno=`Y Y% \else\ifnum\appendixno=`Z Z% % The \the is necessary, despite appearances, because \appendixletter is % expanded while writing the .toc file. \char\appendixno is not % expandable, thus it is written literally, thus all appendixes come out % with the same letter (or @) in the toc without it. \else\char\the\appendixno \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} % Each @chapter defines these (using marks) as the number+name, number % and name of the chapter. Page headings and footings can use % these. @section does likewise. \def\thischapter{} \def\thischapternum{} \def\thischaptername{} \def\thissection{} \def\thissectionnum{} \def\thissectionname{} \newcount\absseclevel % used to calculate proper heading level \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count % @raisesections: treat @section as chapter, @subsection as section, etc. \def\raisesections{\global\advance\secbase by -1} \let\up=\raisesections % original BFox name % @lowersections: treat @chapter as section, @section as subsection, etc. \def\lowersections{\global\advance\secbase by 1} \let\down=\lowersections % original BFox name % we only have subsub. \chardef\maxseclevel = 3 % % A numbered section within an unnumbered changes to unnumbered too. % To achieve this, remember the "biggest" unnum. sec. we are currently in: \chardef\unnlevel = \maxseclevel % % Trace whether the current chapter is an appendix or not: % \chapheadtype is "N" or "A", unnumbered chapters are ignored. \def\chapheadtype{N} % Choose a heading macro % #1 is heading type % #2 is heading level % #3 is text for heading \def\genhead#1#2#3{% % Compute the abs. sec. level: \absseclevel=#2 \advance\absseclevel by \secbase % Make sure \absseclevel doesn't fall outside the range: \ifnum \absseclevel < 0 \absseclevel = 0 \else \ifnum \absseclevel > 3 \absseclevel = 3 \fi \fi % The heading type: \def\headtype{#1}% \if \headtype U% \ifnum \absseclevel < \unnlevel \chardef\unnlevel = \absseclevel \fi \else % Check for appendix sections: \ifnum \absseclevel = 0 \edef\chapheadtype{\headtype}% \else \if \headtype A\if \chapheadtype N% \errmessage{@appendix... within a non-appendix chapter}% \fi\fi \fi % Check for numbered within unnumbered: \ifnum \absseclevel > \unnlevel \def\headtype{U}% \else \chardef\unnlevel = 3 \fi \fi % Now print the heading: \if \headtype U% \ifcase\absseclevel \unnumberedzzz{#3}% \or \unnumberedseczzz{#3}% \or \unnumberedsubseczzz{#3}% \or \unnumberedsubsubseczzz{#3}% \fi \else \if \headtype A% \ifcase\absseclevel \appendixzzz{#3}% \or \appendixsectionzzz{#3}% \or \appendixsubseczzz{#3}% \or \appendixsubsubseczzz{#3}% \fi \else \ifcase\absseclevel \chapterzzz{#3}% \or \seczzz{#3}% \or \numberedsubseczzz{#3}% \or \numberedsubsubseczzz{#3}% \fi \fi \fi \suppressfirstparagraphindent } % an interface: \def\numhead{\genhead N} \def\apphead{\genhead A} \def\unnmhead{\genhead U} % @chapter, @appendix, @unnumbered. Increment top-level counter, reset % all lower-level sectioning counters to zero. % % Also set \chaplevelprefix, which we prepend to @float sequence numbers % (e.g., figures), q.v. By default (before any chapter), that is empty. \let\chaplevelprefix = \empty % \outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz \def\chapterzzz#1{% % section resetting is \global in case the chapter is in a group, such % as an @include file. \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\chapno by 1 % % Used for \float. \gdef\chaplevelprefix{\the\chapno.}% \resetallfloatnos % % \putwordChapter can contain complex things in translations. \toks0=\expandafter{\putwordChapter}% \message{\the\toks0 \space \the\chapno}% % % Write the actual heading. \chapmacro{#1}{Ynumbered}{\the\chapno}% % % So @section and the like are numbered underneath this chapter. \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec \global\let\subsubsection = \numberedsubsubsec } \outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz % \def\appendixzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\appendixno by 1 \gdef\chaplevelprefix{\appendixletter.}% \resetallfloatnos % % \putwordAppendix can contain complex things in translations. \toks0=\expandafter{\putwordAppendix}% \message{\the\toks0 \space \appendixletter}% % \chapmacro{#1}{Yappendix}{\appendixletter}% % \global\let\section = \appendixsec \global\let\subsection = \appendixsubsec \global\let\subsubsection = \appendixsubsubsec } % normally unnmhead0 calls unnumberedzzz: \outer\parseargdef\unnumbered{\unnmhead0{#1}} \def\unnumberedzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\unnumberedno by 1 % % Since an unnumbered has no number, no prefix for figures. \global\let\chaplevelprefix = \empty \resetallfloatnos % % This used to be simply \message{#1}, but TeX fully expands the % argument to \message. Therefore, if #1 contained @-commands, TeX % expanded them. For example, in `@unnumbered The @cite{Book}', TeX % expanded @cite (which turns out to cause errors because \cite is meant % to be executed, not expanded). % % Anyway, we don't want the fully-expanded definition of @cite to appear % as a result of the \message, we just want `@cite' itself. We use % \the to achieve this: TeX expands \the only once, % simply yielding the contents of . (We also do this for % the toc entries.) \toks0 = {#1}% \message{(\the\toks0)}% % \chapmacro{#1}{Ynothing}{\the\unnumberedno}% % \global\let\section = \unnumberedsec \global\let\subsection = \unnumberedsubsec \global\let\subsubsection = \unnumberedsubsubsec } % @centerchap is like @unnumbered, but the heading is centered. \outer\parseargdef\centerchap{% \let\centerparametersmaybe = \centerparameters \unnmhead0{#1}% \let\centerparametersmaybe = \relax } % @top is like @unnumbered. \let\top\unnumbered % Sections. % \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz \def\seczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% } % normally calls appendixsectionzzz: \outer\parseargdef\appendixsection{\apphead1{#1}} \def\appendixsectionzzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% } \let\appendixsec\appendixsection % normally calls unnumberedseczzz: \outer\parseargdef\unnumberedsec{\unnmhead1{#1}} \def\unnumberedseczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. % % normally calls numberedsubseczzz: \outer\parseargdef\numberedsubsec{\numhead2{#1}} \def\numberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% } % normally calls appendixsubseczzz: \outer\parseargdef\appendixsubsec{\apphead2{#1}} \def\appendixsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno}% } % normally calls unnumberedsubseczzz: \outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} \def\unnumberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno}% } % Subsubsections. % % normally numberedsubsubseczzz: \outer\parseargdef\numberedsubsubsec{\numhead3{#1}} \def\numberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynumbered}% {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% } % normally appendixsubsubseczzz: \outer\parseargdef\appendixsubsubsec{\apphead3{#1}} \def\appendixsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% } % normally unnumberedsubsubseczzz: \outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} \def\unnumberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}% } % These macros control what the section commands do, according % to what kind of chapter we are in (ordinary, appendix, or unnumbered). % Define them by default for a numbered chapter. \let\section = \numberedsec \let\subsection = \numberedsubsec \let\subsubsection = \numberedsubsubsec % Define @majorheading, @heading and @subheading \def\majorheading{% {\advance\chapheadingskip by 10pt \chapbreak }% \parsearg\chapheadingzzz } \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% \vbox{\chapfonts \raggedtitlesettings #1\par}% \nobreak\bigskip \nobreak \suppressfirstparagraphindent } % @heading, @subheading, @subsubheading. \parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{} \suppressfirstparagraphindent} \parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{} \suppressfirstparagraphindent} \parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{} \suppressfirstparagraphindent} % These macros generate a chapter, section, etc. heading only % (including whitespace, linebreaking, etc. around it), % given all the information in convenient, parsed form. % Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} % Parameter controlling skip before chapter headings (if needed) \newskip\chapheadingskip % Define plain chapter starts, and page on/off switching for it. \def\chapbreak{\dobreak \chapheadingskip {-4000}} % Start a new page \def\chappager{\par\vfill\supereject} % \chapoddpage - start on an odd page for a new chapter % Because \domark is called before \chapoddpage, the filler page will % get the headings for the next chapter, which is wrong. But we don't % care -- we just disable all headings on the filler page. \def\chapoddpage{% \chappager \ifodd\pageno \else \begingroup \headingsoff \null \chappager \endgroup \fi } \parseargdef\setchapternewpage{\csname CHAPPAG#1\endcsname} \def\CHAPPAGoff{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chapbreak \global\let\pagealignmacro=\chappager} \def\CHAPPAGon{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chappager \global\let\pagealignmacro=\chappager \global\def\HEADINGSon{\HEADINGSsingle}} \def\CHAPPAGodd{% \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\let\pagealignmacro=\chapoddpage \global\def\HEADINGSon{\HEADINGSdouble}} \CHAPPAGon % \chapmacro - Chapter opening. % % #1 is the text, #2 is the section type (Ynumbered, Ynothing, % Yappendix, Yomitfromtoc), #3 the chapter number. % Not used for @heading series. % % To test against our argument. \def\Ynothingkeyword{Ynothing} \def\Yappendixkeyword{Yappendix} \def\Yomitfromtockeyword{Yomitfromtoc} % \def\chapmacro#1#2#3{% \expandafter\ifx\thisenv\titlepage\else \checkenv{}% chapters, etc., should not start inside an environment. \fi % FIXME: \chapmacro is currently called from inside \titlepage when % \setcontentsaftertitlepage to print the "Table of Contents" heading, but % this should probably be done by \sectionheading with an option to print % in chapter size. % % Insert the first mark before the heading break (see notes for \domark). \let\prevchapterdefs=\lastchapterdefs \let\prevsectiondefs=\lastsectiondefs \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}% \gdef\thissection{}}% % \def\temptype{#2}% \ifx\temptype\Ynothingkeyword \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{\thischaptername}}% \else\ifx\temptype\Yomitfromtockeyword \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{}}% \else\ifx\temptype\Yappendixkeyword \toks0={#1}% \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\appendixletter}% % \noexpand\putwordAppendix avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordAppendix{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \else \toks0={#1}% \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\the\chapno}% % \noexpand\putwordChapter avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordChapter{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \fi\fi\fi % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert the chapter heading break. \pchapsepmacro % % Now the second mark, after the heading break. No break points % between here and the heading. \let\prevchapterdefs=\lastchapterdefs \let\prevsectiondefs=\lastsectiondefs \domark % {% \chapfonts \rm \let\footnote=\errfootnoteheading % give better error message % % Have to define \lastsection before calling \donoderef, because the % xref code eventually uses it. On the other hand, it has to be called % after \pchapsepmacro, or the headline will change too soon. \gdef\lastsection{#1}% % % Only insert the separating space if we have a chapter/appendix % number, and don't print the unnumbered ``number''. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unnchap}% \else\ifx\temptype\Yomitfromtockeyword \setbox0 = \hbox{}% contents like unnumbered, but no toc entry \def\toctype{omit}% \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% \def\toctype{app}% \else \setbox0 = \hbox{#3\enspace}% \def\toctype{numchap}% \fi\fi\fi % % Write the toc entry for this chapter. Must come before the % \donoderef, because we include the current node name in the toc % entry, and \donoderef resets it to empty. \writetocentry{\toctype}{#1}{#3}% % % For pdftex, we have to write out the node definition (aka, make % the pdfdest) after any page break, but before the actual text has % been typeset. If the destination for the pdf outline is after the % text, then jumping from the outline may wind up with the text not % being visible, for instance under high magnification. \donoderef{#2}% % % Typeset the actual heading. \nobreak % Avoid page breaks at the interline glue. \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title \nobreak } % @centerchap -- centered and unnumbered. \let\centerparametersmaybe = \relax \def\centerparameters{% \advance\rightskip by 3\rightskip \leftskip = \rightskip \parfillskip = 0pt } % Section titles. These macros combine the section number parts and % call the generic \sectionheading to do the printing. % \newskip\secheadingskip \def\secheadingbreak{\dobreak \secheadingskip{-1000}} % Subsection titles. \newskip\subsecheadingskip \def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}} % Subsubsection titles. \def\subsubsecheadingskip{\subsecheadingskip} \def\subsubsecheadingbreak{\subsecheadingbreak} % Print any size, any type, section title. % % #1 is the text of the title, % #2 is the section level (sec/subsec/subsubsec), % #3 is the section type (Ynumbered, Ynothing, Yappendix, Yomitfromtoc), % #4 is the section number. % \def\seckeyword{sec} % \def\sectionheading#1#2#3#4{% {% \def\sectionlevel{#2}% \def\temptype{#3}% % % It is ok for the @heading series commands to appear inside an % environment (it's been historically allowed, though the logic is % dubious), but not the others. \ifx\temptype\Yomitfromtockeyword\else \checkenv{}% non-@*heading should not be in an environment. \fi \let\footnote=\errfootnoteheading % % Switch to the right set of fonts. \csname #2fonts\endcsname \rm % % Insert first mark before the heading break (see notes for \domark). \let\prevsectiondefs=\lastsectiondefs \ifx\temptype\Ynothingkeyword \ifx\sectionlevel\seckeyword \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}% \gdef\thissection{\thissectionname}}% \fi \else\ifx\temptype\Yomitfromtockeyword % Don't redefine \thissection. \else\ifx\temptype\Yappendixkeyword \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \else \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \fi\fi\fi % % Go into vertical mode. Usually we'll already be there, but we % don't want the following whatsit to end up in a preceding paragraph % if the document didn't happen to have a blank line. \par % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert space above the heading. \csname #2headingbreak\endcsname % % Now the second mark, after the heading break. No break points % between here and the heading. \global\let\prevsectiondefs=\lastsectiondefs \domark % % Only insert the space after the number if we have a section number. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unn}% \gdef\lastsection{#1}% \else\ifx\temptype\Yomitfromtockeyword % for @headings -- no section number, don't include in toc, % and don't redefine \lastsection. \setbox0 = \hbox{}% \def\toctype{omit}% \let\sectionlevel=\empty \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{#4\enspace}% \def\toctype{app}% \gdef\lastsection{#1}% \else \setbox0 = \hbox{#4\enspace}% \def\toctype{num}% \gdef\lastsection{#1}% \fi\fi\fi % % Write the toc entry (before \donoderef). See comments in \chapmacro. \writetocentry{\toctype\sectionlevel}{#1}{#4}% % % Write the node reference (= pdf destination for pdftex). % Again, see comments in \chapmacro. \donoderef{#3}% % % Interline glue will be inserted when the vbox is completed. % That glue will be a valid breakpoint for the page, since it'll be % preceded by a whatsit (usually from the \donoderef, or from the % \writetocentry if there was no node). We don't want to allow that % break, since then the whatsits could end up on page n while the % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. \nobreak % % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \hangindent=\wd0 % zero if no section number \unhbox0 #1}% }% % Add extra space after the heading -- half of whatever came above it. % Don't allow stretch, though. \kern .5 \csname #2headingskip\endcsname % % Do not let the kern be a potential breakpoint, as it would be if it % was followed by glue. \nobreak % % We'll almost certainly start a paragraph next, so don't let that % glue accumulate. (Not a breakpoint because it's preceded by a % discardable item.) However, when a paragraph is not started next % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out % or the negative glue will cause weirdly wrong output, typically % obscuring the section heading with something else. \vskip-\parskip % % This is so the last item on the main vertical list is a known % \penalty > 10000, so \startdefun, etc., can recognize the situation % and do the needful. \penalty 10001 } \message{toc,} % Table of contents. \newwrite\tocfile % Write an entry to the toc file, opening it if necessary. % Called from @chapter, etc. % % Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno} % We append the current node name (if any) and page number as additional % arguments for the \{chap,sec,...}entry macros which will eventually % read this. The node name is used in the pdf outlines as the % destination to jump to. % % We open the .toc file for writing here instead of at @setfilename (or % any other fixed time) so that @contents can be anywhere in the document. % But if #1 is `omit', then we don't do anything. This is used for the % table of contents chapter openings themselves. % \newif\iftocfileopened \def\omitkeyword{omit}% % \def\writetocentry#1#2#3{% \edef\writetoctype{#1}% \ifx\writetoctype\omitkeyword \else \iftocfileopened\else \immediate\openout\tocfile = \jobname.toc \global\tocfileopenedtrue \fi % \iflinks {\atdummies \edef\temp{% \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% \temp }% \fi \fi % % Tell \shipout to create a pdf destination on each page, if we're % writing pdf. These are used in the table of contents. We can't % just write one on every page because the title pages are numbered % 1 and 2 (the page numbers aren't printed), and so are the first % two pages of the document. Thus, we'd have two destinations named % `1', and two named `2'. \ifpdf \global\pdfmakepagedesttrue \else \ifx\XeTeXrevision\thisisundefined \else \global\pdfmakepagedesttrue \fi \fi } % These characters do not print properly in the Computer Modern roman % fonts, so we must take special care. This is more or less redundant % with the Texinfo input format setup at the end of this file. % \def\activecatcodes{% \catcode`\"=\active \catcode`\$=\active \catcode`\<=\active \catcode`\>=\active \catcode`\\=\active \catcode`\^=\active \catcode`\_=\active \catcode`\|=\active \catcode`\~=\active } % Read the toc file, which is essentially Texinfo input. \def\readtocfile{% \setupdatafile \activecatcodes \input \tocreadfilename } \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 % Prepare to read what we've written to \tocfile. % \def\startcontents#1{% % If @setchapternewpage on, and @headings double, the contents should % start on an odd page, unlike chapters. Thus, we maintain % \contentsalignmacro in parallel with \pagealignmacro. % From: Torbjorn Granlund \contentsalignmacro \immediate\closeout\tocfile % % Don't need to put `Contents' or `Short Contents' in the headline. % It is abundantly clear what they are. \chapmacro{#1}{Yomitfromtoc}{}% % \savepageno = \pageno \begingroup % Set up to handle contents files properly. \raggedbottom % Worry more about breakpoints than the bottom. \entryrightmargin=\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } % redefined for the two-volume lispref. We always output on % \jobname.toc even if this is redefined. % \def\tocreadfilename{\jobname.toc} % Normal (long) toc. % \def\contents{% \startcontents{\putwordTOC}% \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \ifeof 1 \else \pdfmakeoutlines \fi \closein 1 \endgroup \lastnegativepageno = \pageno \global\pageno = \savepageno } % And just the chapters. \def\summarycontents{% \startcontents{\putwordShortTOC}% % \let\partentry = \shortpartentry \let\numchapentry = \shortchapentry \let\appentry = \shortchapentry \let\unnchapentry = \shortunnchapentry % We want a true roman here for the page numbers. \secfonts \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl \let\tt=\shortconttt \rm \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\numsecentry##1##2##3##4{} \let\appsecentry = \numsecentry \let\unnsecentry = \numsecentry \let\numsubsecentry = \numsecentry \let\appsubsecentry = \numsecentry \let\unnsubsecentry = \numsecentry \let\numsubsubsecentry = \numsecentry \let\appsubsubsecentry = \numsecentry \let\unnsubsubsecentry = \numsecentry \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \closein 1 \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \endgroup \lastnegativepageno = \pageno \global\pageno = \savepageno } \let\shortcontents = \summarycontents % Typeset the label for a chapter or appendix for the short contents. % The arg is, e.g., `A' for an appendix, or `3' for a chapter. % \def\shortchaplabel#1{% % This space should be enough, since a single number is .5em, and the % widest letter (M) is 1em, at least in the Computer Modern fonts. % But use \hss just in case. % (This space doesn't include the extra space that gets added after % the label; that gets put in by \shortchapentry above.) % % We'd like to right-justify chapter numbers, but that looks strange % with appendix letters. And right-justifying numbers and % left-justifying letters looks strange when there is less than 10 % chapters. Have to read the whole toc once to know how many chapters % there are before deciding ... \hbox to 1em{#1\hss}% } % These macros generate individual entries in the table of contents. % The first argument is the chapter or section name. % The last argument is the page number. % The arguments in between are the chapter number, section number, ... % Parts, in the main contents. Replace the part number, which doesn't % exist, with an empty box. Let's hope all the numbers have the same width. % Also ignore the page number, which is conventionally not printed. \def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}} \def\partentry#1#2#3#4{\dochapentry{\numeralbox\labelspace#1}{}} % % Parts, in the short toc. \def\shortpartentry#1#2#3#4{% \penalty-300 \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip \shortchapentry{{\bf #1}}{\numeralbox}{}{}% } % Chapters, in the main contents. \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % Chapters, in the short toc. % See comments in \dochapentry re vbox and related settings. \def\shortchapentry#1#2#3#4{% \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}% } % Appendices, in the main contents. % Need the word Appendix, and a fixed-size box. % \def\appendixbox#1{% % We use M since it's probably the widest letter. \setbox0 = \hbox{\putwordAppendix{} M}% \hbox to \wd0{\putwordAppendix{} #1\hss}} % \def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\hskip.7em#1}{#4}} % Unnumbered chapters. \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} \def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}} % Sections. \def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}} \let\appsecentry=\numsecentry \def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}} % Subsections. \def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}} \let\appsubsecentry=\numsubsecentry \def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} % And subsubsections. \def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}} \let\appsubsubsecentry=\numsubsubsecentry \def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}} % This parameter controls the indentation of the various levels. % Same as \defaultparindent. \newdimen\tocindent \tocindent = 15pt % Now for the actual typesetting. In all these, #1 is the text and #2 is the % page number. % % If the toc has to be broken over pages, we want it to be at chapters % if at all possible; hence the \penalty. \def\dochapentry#1#2{% \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip \begingroup % Move the page numbers slightly to the right \advance\entryrightmargin by -0.05em \chapentryfonts \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup \nobreak\vskip .25\baselineskip plus.1\baselineskip } \def\dosecentry#1#2{\begingroup \secentryfonts \leftskip=\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsecentry#1#2{\begingroup \subsecentryfonts \leftskip=2\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsubsecentry#1#2{\begingroup \subsubsecentryfonts \leftskip=3\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} % We use the same \entry macro as for the index entries. \let\tocentry = \entry % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} \def\dopageno#1{{\rm #1}} \def\doshortpageno#1{{\rm #1}} \def\chapentryfonts{\secfonts \rm} \def\secentryfonts{\textfonts} \def\subsecentryfonts{\textfonts} \def\subsubsecentryfonts{\textfonts} \message{environments,} % @foo ... @end foo. % @tex ... @end tex escapes into raw TeX temporarily. % One exception: @ is still an escape character, so that @end tex works. % But \@ or @@ will get a plain @ character. \envdef\tex{% \setupmarkupstyle{tex}% \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie \catcode `\%=14 \catcode `\+=\other \catcode `\"=\other \catcode `\|=\other \catcode `\<=\other \catcode `\>=\other \catcode `\`=\other \catcode `\'=\other % % ' is active in math mode (mathcode"8000). So reset it, and all our % other math active characters (just in case), to plain's definitions. \mathactive % % Inverse of the list at the beginning of the file. \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc \let\,=\ptexcomma \let\.=\ptexdot \let\dots=\ptexdots \let\equiv=\ptexequiv \let\!=\ptexexclam \let\i=\ptexi \let\indent=\ptexindent \let\noindent=\ptexnoindent \let\{=\ptexlbrace \let\+=\tabalign \let\}=\ptexrbrace \let\/=\ptexslash \let\sp=\ptexsp \let\*=\ptexstar %\let\sup=\ptexsup % do not redefine, we want @sup to work in math mode \let\t=\ptext \expandafter \let\csname top\endcsname=\ptextop % we've made it outer \let\frenchspacing=\plainfrenchspacing % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% } % There is no need to define \Etex. % Define @lisp ... @end lisp. % @lisp environment forms a group so it can rebind things, % including the definition of @end lisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. \newskip\lispnarrowing \lispnarrowing=0.4in % This is the definition that ^^M gets inside @lisp, @example, and other % such environments. \null is better than a space, since it doesn't % have any width. \def\lisppar{\null\endgraf} % This space is always present above and below environments. \newskip\envskipamount \envskipamount = 0pt % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the % start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% % =10000 instead of <10000 because of a special case in \itemzzz and % \sectionheading, q.v. \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip \ifnum\lastpenalty<10000 % Penalize breaking before the environment, because preceding text % often leads into it. \penalty100 \fi \vskip\envskipamount \fi \fi }} \def\afterenvbreak{{% % =10000 instead of <10000 because of a special case in \itemzzz and % \sectionheading, q.v. \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip % it's not a good place to break if the last penalty was \nobreak % or better ... \ifnum\lastpenalty<10000 \penalty-50 \fi \vskip\envskipamount \fi \fi }} % \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will % also clear it, so that its embedded environments do the narrowing again. \let\nonarrowing=\relax % @cartouche ... @end cartouche: draw rectangle w/rounded corners around % environment contents. \font\circle=lcircle10 \newdimen\circthick \newdimen\cartouter\newdimen\cartinner \newskip\normbskip\newskip\normpskip\newskip\normlskip \circthick=\fontdimen8\circle % \def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth \def\ctr{{\hskip 6pt\circle\char'010}} \def\cbl{{\circle\char'012\hskip -6pt}} \def\cbr{{\hskip 6pt\circle\char'011}} \def\carttop{\hbox to \cartouter{\hskip\lskip \ctl\leaders\hrule height\circthick\hfil\ctr \hskip\rskip}} \def\cartbot{\hbox to \cartouter{\hskip\lskip \cbl\leaders\hrule height\circthick\hfil\cbr \hskip\rskip}} % \newskip\lskip\newskip\rskip \envdef\cartouche{% \ifhmode\par\fi % can't be in the midst of a paragraph. \startsavinginserts \lskip=\leftskip \rskip=\rightskip \leftskip=0pt\rightskip=0pt % we want these *outside*. \cartinner=\hsize \advance\cartinner by-\lskip \advance\cartinner by-\rskip \cartouter=\hsize \advance\cartouter by 18.4pt % allow for 3pt kerns on either % side, and for 6pt waste from % each corner char, and rule thickness \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % % If this cartouche directly follows a sectioning command, we need the % \parskip glue (backspaced over by default) or the cartouche can % collide with the section heading. \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi % \setbox\groupbox=\vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop \hbox\bgroup \hskip\lskip \vrule\kern3pt \vbox\bgroup \kern3pt \hsize=\cartinner \baselineskip=\normbskip \lineskip=\normlskip \parskip=\normpskip \vskip -\parskip \comment % For explanation, see the end of def\group. } \def\Ecartouche{% \ifhmode\par\fi \kern3pt \egroup \kern3pt\vrule \hskip\rskip \egroup \cartbot \egroup \addgroupbox \checkinserts } % This macro is called at the beginning of all the @example variants, % inside a group. \newdimen\nonfillparindent \def\nonfillstart{% \aboveenvbreak \ifdim\hfuzz < 12pt \hfuzz = 12pt \fi % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt % Turn off paragraph indentation but redefine \indent to emulate % the normal \indent. \nonfillparindent=\parindent \parindent = 0pt \let\indent\nonfillindent % \emergencystretch = 0pt % don't try to avoid overfull boxes \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing \else \let\nonarrowing = \relax \fi \let\exdent=\nofillexdent } \begingroup \obeyspaces % We want to swallow spaces (but not other tokens) after the fake % @indent in our nonfill-environments, where spaces are normally % active and set to @tie, resulting in them not being ignored after % @indent. \gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}% \gdef\nonfillindentcheck{% \ifx\temp % \expandafter\nonfillindentgobble% \else% \leavevmode\nonfillindentbox% \fi% }% \endgroup \def\nonfillindentgobble#1{\nonfillindent} \def\nonfillindentbox{\hbox to \nonfillparindent{\hss}} % If you want all examples etc. small: @set dispenvsize small. % If you want even small examples the full size: @set dispenvsize nosmall. % This affects the following displayed environments: % @example, @display, @format, @lisp % \def\smallword{small} \def\nosmallword{nosmall} \let\SETdispenvsize\relax \def\setnormaldispenv{% \ifx\SETdispenvsize\smallword % end paragraph for sake of leading, in case document has no blank % line. This is redundant with what happens in \aboveenvbreak, but % we need to do it before changing the fonts, and it's inconvenient % to change the fonts afterward. \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } \def\setsmalldispenv{% \ifx\SETdispenvsize\nosmallword \else \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } % We often define two environments, @foo and @smallfoo. % Let's do it in one command. #1 is the env name, #2 the definition. \def\makedispenvdef#1#2{% \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}% \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}% \expandafter\let\csname E#1\endcsname \afterenvbreak \expandafter\let\csname Esmall#1\endcsname \afterenvbreak } % Define two environment synonyms (#1 and #2) for an environment. \def\maketwodispenvdef#1#2#3{% \makedispenvdef{#1}{#3}% \makedispenvdef{#2}{#3}% } % % @lisp: indented, narrowed, typewriter font; % @example: same as @lisp. % % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. % \maketwodispenvdef{lisp}{example}{% \nonfillstart \tt\setupmarkupstyle{example}% \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. \gobble % eat return } % @display/@smalldisplay: same as @lisp except keep current font. % \makedispenvdef{display}{% \nonfillstart \gobble } % @format/@smallformat: same as @display except don't narrow margins. % \makedispenvdef{format}{% \let\nonarrowing = t% \nonfillstart \gobble } % @flushleft: same as @format, but doesn't obey \SETdispenvsize. \envdef\flushleft{% \let\nonarrowing = t% \nonfillstart \gobble } \let\Eflushleft = \afterenvbreak % @flushright. % \envdef\flushright{% \let\nonarrowing = t% \nonfillstart \advance\leftskip by 0pt plus 1fill\relax \gobble } \let\Eflushright = \afterenvbreak % @raggedright does more-or-less normal line breaking but no right % justification. From plain.tex. Don't stretch around special % characters in urls in this environment, since the stretch at the right % should be enough. \envdef\raggedright{% \rightskip0pt plus2.4em \spaceskip.3333em \xspaceskip.5em\relax \def\urefprestretchamount{0pt}% \def\urefpoststretchamount{0pt}% } \let\Eraggedright\par \envdef\raggedleft{% \parindent=0pt \leftskip0pt plus2em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedleft\par \envdef\raggedcenter{% \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedcenter\par % @quotation does normal linebreaking (hence we can't use \nonfillstart) % and narrows the margins. We keep \parskip nonzero in general, since % we're doing normal filling. So, when using \aboveenvbreak and % \afterenvbreak, temporarily make \parskip 0. % \makedispenvdef{quotation}{\quotationstart} % \def\quotationstart{% \indentedblockstart % same as \indentedblock, but increase right margin too. \ifx\nonarrowing\relax \advance\rightskip by \lispnarrowing \fi \parsearg\quotationlabel } % We have retained a nonzero parskip for the environment, since we're % doing normal filling. % \def\Equotation{% \par \ifx\quotationauthor\thisisundefined\else % indent a bit. \leftline{\kern 2\leftskip \sl ---\quotationauthor}% \fi {\parskip=0pt \afterenvbreak}% } \def\Esmallquotation{\Equotation} % If we're given an argument, typeset it in bold with a colon after. \def\quotationlabel#1{% \def\temp{#1}% \ifx\temp\empty \else {\bf #1: }% \fi } % @indentedblock is like @quotation, but indents only on the left and % has no optional argument. % \makedispenvdef{indentedblock}{\indentedblockstart} % \def\indentedblockstart{% {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip \parindent=0pt % % @cartouche defines \nonarrowing to inhibit narrowing at next level down. \ifx\nonarrowing\relax \advance\leftskip by \lispnarrowing \exdentamount = \lispnarrowing \else \let\nonarrowing = \relax \fi } % Keep a nonzero parskip for the environment, since we're doing normal filling. % \def\Eindentedblock{% \par {\parskip=0pt \afterenvbreak}% } \def\Esmallindentedblock{\Eindentedblock} % LaTeX-like @verbatim...@end verbatim and @verb{...} % If we want to allow any as delimiter, % we need the curly braces so that makeinfo sees the @verb command, eg: % `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org % % [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. % % [Knuth] p.344; only we need to do the other characters Texinfo sets % active too. Otherwise, they get lost as the first character on a % verbatim line. \def\dospecials{% \do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% \do\<\do\>\do\|\do\@\do+\do\"% % Don't do the quotes -- if we do, @set txicodequoteundirected and % @set txicodequotebacktick will not have effect on @verb and % @verbatim, and ?` and !` ligatures won't get disabled. %\do\`\do\'% } % % [Knuth] p. 380 \def\uncatcodespecials{% \def\do##1{\catcode`##1=\other}\dospecials} % % Setup for the @verb command. % % Eight spaces for a tab \begingroup \catcode`\^^I=\active \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }} \endgroup % \def\setupverb{% \tt % easiest (and conventionally used) font for verbatim \def\par{\leavevmode\endgraf}% \setupmarkupstyle{verb}% \tabeightspaces % Respect line breaks, % print special symbols as themselves, and % make each space count % must do in this order: \obeylines \uncatcodespecials \sepspaces } % Setup for the @verbatim environment % % Real tab expansion. \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % % We typeset each line of the verbatim in an \hbox, so we can handle % tabs. The \global is in case the verbatim line starts with an accent, % or some other command that starts with a begin-group. Otherwise, the % entire \verbbox would disappear at the corresponding end-group, before % it is typeset. Meanwhile, we can't have nested verbatim commands % (can we?), so the \global won't be overwriting itself. \newbox\verbbox \def\starttabbox{\global\setbox\verbbox=\hbox\bgroup} % \begingroup \catcode`\^^I=\active \gdef\tabexpand{% \catcode`\^^I=\active \def^^I{\leavevmode\egroup \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab \divide\dimen\verbbox by\tabw \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox }% } \endgroup % start the verbatim environment. \def\setupverbatim{% \let\nonarrowing = t% \nonfillstart \tt % easiest (and conventionally used) font for verbatim % The \leavevmode here is for blank lines. Otherwise, we would % never \starttabox and the \egroup would end verbatim mode. \def\par{\leavevmode\egroup\box\verbbox\endgraf}% \tabexpand \setupmarkupstyle{verbatim}% % Respect line breaks, % print special symbols as themselves, and % make each space count. % Must do in this order: \obeylines \uncatcodespecials \sepspaces \everypar{\starttabbox}% } % Do the @verb magic: verbatim text is quoted by unique % delimiter characters. Before first delimiter expect a % right brace, after last delimiter expect closing brace: % % \def\doverb'{'#1'}'{#1} % % [Knuth] p. 382; only eat outer {} \begingroup \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next] \endgroup % \def\verb{\begingroup\setupverb\doverb} % % % Do the @verbatim magic: define the macro \doverbatim so that % the (first) argument ends when '@end verbatim' is reached, ie: % % \def\doverbatim#1@end verbatim{#1} % % For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': % we need not redefine '\', '{' and '}'. % % Inspired by LaTeX's verbatim command set [latex.ltx] % \begingroup \catcode`\ =\active \obeylines % % ignore everything up to the first ^^M, that's the newline at the end % of the @verbatim input line itself. Otherwise we get an extra blank % line in the output. \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}% % We really want {...\end verbatim} in the body of the macro, but % without the active space; thus we have to use \xdef and \gobble. \endgroup % \envdef\verbatim{% \setupverbatim\doverbatim } \let\Everbatim = \afterenvbreak % @verbatiminclude FILE - insert text of file in verbatim environment. % \def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude} % \def\doverbatiminclude#1{% {% \makevalueexpandable \setupverbatim \indexnofonts % Allow `@@' and other weird things in file names. \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}% \input #1 \afterenvbreak }% } % @copying ... @end copying. % Save the text away for @insertcopying later. % % We save the uninterpreted tokens, rather than creating a box. % Saving the text in a box would be much easier, but then all the % typesetting commands (@smallbook, font changes, etc.) have to be done % beforehand -- and a) we want @copying to be done first in the source % file; b) letting users define the frontmatter in as flexible order as % possible is desirable. % \def\copying{\checkenv{}\begingroup\scanargctxt\docopying} \def\docopying#1@end copying{\endgroup\def\copyingtext{#1}} % \def\insertcopying{% \begingroup \parindent = 0pt % paragraph indentation looks wrong on title page \scanexp\copyingtext \endgroup } \message{defuns,} % @defun etc. \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\defunpenalty % Start the processing of @deffn: \def\startdefun{% \ifnum\lastpenalty<10000 \medbreak \defunpenalty=10003 % Will keep this @deffn together with the % following @def command, see below. \else % If there are two @def commands in a row, we'll have a \nobreak, % which is there to keep the function description together with its % header. But if there's nothing but headers, we need to allow a % break somewhere. Check specifically for penalty 10002, inserted % by \printdefunline, instead of 10000, since the sectioning % commands also insert a nobreak penalty, and we don't want to allow % a break between a section heading and a defun. % % As a further refinement, we avoid "club" headers by signalling % with penalty of 10003 after the very first @deffn in the % sequence (see above), and penalty of 10002 after any following % @def command. \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi % % Similarly, after a section heading, do not allow a break. % But do insert the glue. \medskip % preceded by discardable penalty, so not a breakpoint \fi % \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent } \def\dodefunx#1{% % First, check whether we are in the right environment: \checkenv#1% % % As above, allow line break if we have multiple x headers in a row. % It's not a great place, though. \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi % % And now, it's time to reuse the body of the original defun: \expandafter\gobbledefun#1% } \def\gobbledefun#1\startdefun{} % \printdefunline \deffnheader{text} % \def\printdefunline#1#2{% \begingroup % call \deffnheader: #1#2 \endheader % common ending: \interlinepenalty = 10000 \advance\rightskip by 0pt plus 1fil\relax \endgraf \nobreak\vskip -\parskip \penalty\defunpenalty % signal to \startdefun and \dodefunx % Some of the @defun-type tags do not enable magic parentheses, % rendering the following check redundant. But we don't optimize. \checkparencounts \endgroup } \def\Edefun{\endgraf\medbreak} % \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; % the only thing remaining is to define \deffnheader. % \def\makedefun#1{% \expandafter\let\csname E#1\endcsname = \Edefun \edef\temp{\noexpand\domakedefun \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}% \temp } % \domakedefun \deffn \deffnx \deffnheader { (defn. of \deffnheader) } % % Define \deffn and \deffnx, without parameters. % \deffnheader has to be defined explicitly. % \def\domakedefun#1#2#3{% \envdef#1{% \startdefun \doingtypefnfalse % distinguish typed functions from all else \parseargusing\activeparens{\printdefunline#3}% }% \def#2{\dodefunx#1}% \def#3% } \newif\ifdoingtypefn % doing typed function? \newif\ifrettypeownline % typeset return type on its own line? % @deftypefnnewline on|off says whether the return type of typed functions % are printed on their own line. This affects @deftypefn, @deftypefun, % @deftypeop, and @deftypemethod. % \parseargdef\deftypefnnewline{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxideftypefnnl\endcsname = \empty \else\ifx\temp\offword \expandafter\let\csname SETtxideftypefnnl\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @txideftypefnnl value `\temp', must be on|off}% \fi\fi } % Untyped functions: % @deffn category name args \makedefun{deffn}{\deffngeneral{}} % @deffn category class name args \makedefun{defop}#1 {\defopon{#1\ \putwordon}} % \defopon {category on}class name args \def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } % \deffngeneral {subind}category name args % \def\deffngeneral#1#2 #3 #4\endheader{% % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}. \dosubind{fn}{\code{#3}}{#1}% \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% } % Typed functions: % @deftypefn category type name args \makedefun{deftypefn}{\deftypefngeneral{}} % @deftypeop category class type name args \makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}} % \deftypeopon {category on}class type name args \def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } % \deftypefngeneral {subind}category type name args % \def\deftypefngeneral#1#2 #3 #4 #5\endheader{% \dosubind{fn}{\code{#4}}{#1}% \doingtypefntrue \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } % Typed variables: % @deftypevr category type var args \makedefun{deftypevr}{\deftypecvgeneral{}} % @deftypecv category class type var args \makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}} % \deftypecvof {category of}class type var args \def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} } % \deftypecvgeneral {subind}category type var args % \def\deftypecvgeneral#1#2 #3 #4 #5\endheader{% \dosubind{vr}{\code{#4}}{#1}% \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } % Untyped variables: % @defvr category var args \makedefun{defvr}#1 {\deftypevrheader{#1} {} } % @defcv category class var args \makedefun{defcv}#1 {\defcvof{#1\ \putwordof}} % \defcvof {category of}class var args \def\defcvof#1#2 {\deftypecvof{#1}#2 {} } % Types: % @deftp category name args \makedefun{deftp}#1 #2 #3\endheader{% \doind{tp}{\code{#2}}% \defname{#1}{}{#2}\defunargs{#3\unskip}% } % Remaining @defun-like shortcuts: \makedefun{defun}{\deffnheader{\putwordDeffunc} } \makedefun{defmac}{\deffnheader{\putwordDefmac} } \makedefun{defspec}{\deffnheader{\putwordDefspec} } \makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} } \makedefun{defvar}{\defvrheader{\putwordDefvar} } \makedefun{defopt}{\defvrheader{\putwordDefopt} } \makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} } \makedefun{defmethod}{\defopon\putwordMethodon} \makedefun{deftypemethod}{\deftypeopon\putwordMethodon} \makedefun{defivar}{\defcvof\putwordInstanceVariableof} \makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof} % \defname, which formats the name of the @def (not the args). % #1 is the category, such as "Function". % #2 is the return type, if any. % #3 is the function name. % % We are followed by (but not passed) the arguments, if any. % \def\defname#1#2#3{% \par % Get the values of \leftskip and \rightskip as they were outside the @def... \advance\leftskip by -\defbodyindent % % Determine if we are typesetting the return type of a typed function % on a line by itself. \rettypeownlinefalse \ifdoingtypefn % doing a typed function specifically? % then check user option for putting return type on its own line: \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else \rettypeownlinetrue \fi \fi % % How we'll format the category name. Putting it in brackets helps % distinguish it from the body text that may end up on the next line % just below it. \def\temp{#1}% \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} % % Figure out line sizes for the paragraph shape. We'll always have at % least two. \tempnum = 2 % % The first line needs space for \box0; but if \rightskip is nonzero, % we need only space for the part of \box0 which exceeds it: \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip % % If doing a return type on its own line, we'll have another line. \ifrettypeownline \advance\tempnum by 1 \def\maybeshapeline{0in \hsize}% \else \def\maybeshapeline{}% \fi % % The continuations: \dimen2=\hsize \advance\dimen2 by -\defargsindent % % The final paragraph shape: \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2 % % Put the category name at the right margin. \noindent \hbox to 0pt{% \hfil\box0 \kern-\hsize % \hsize has to be shortened this way: \kern\leftskip % Intentionally do not respect \rightskip, since we need the space. }% % % Allow all lines to be underfull without complaint: \tolerance=10000 \hbadness=10000 \exdentamount=\defbodyindent {% % defun fonts. We use typewriter by default (used to be bold) because: % . we're printing identifiers, they should be in tt in principle. % . in languages with many accents, such as Czech or French, it's % common to leave accents off identifiers. The result looks ok in % tt, but exceedingly strange in rm. % . we don't want -- and --- to be treated as ligatures. % . this still does not fix the ?` and !` ligatures, but so far no % one has made identifiers using them :). \df \tt \def\temp{#2}% text of the return type \ifx\temp\empty\else \tclose{\temp}% typeset the return type \ifrettypeownline % put return type on its own line; prohibit line break following: \hfil\vadjust{\nobreak}\break \else \space % type on same line, so just followed by a space \fi \fi % no return type #3% output function name }% {\rm\enskip}% hskip 0.5 em of \rmfont % \boldbrax % arguments will be output next, if any. } % Print arguments in slanted roman (not ttsl), inconsistently with using % tt for the name. This is because literal text is sometimes needed in % the argument list (groff manual), and ttsl and tt are not very % distinguishable. Prevent hyphenation at `-' chars. % \def\defunargs#1{% % use sl by default (not ttsl), % tt for the names. \df \sl \hyphenchar\font=0 % % On the other hand, if an argument has two dashes (for instance), we % want a way to get ttsl. We used to recommend @var for that, so % leave the code in, but it's strange for @var to lead to typewriter. % Nowadays we recommend @code, since the difference between a ttsl hyphen % and a tt hyphen is pretty tiny. @code also disables ?` !`. \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}% #1% \sl\hyphenchar\font=45 } % We want ()&[] to print specially on the defun line. % \def\activeparens{% \catcode`\(=\active \catcode`\)=\active \catcode`\[=\active \catcode`\]=\active \catcode`\&=\active } % Make control sequences which act like normal parenthesis chars. \let\lparen = ( \let\rparen = ) % Be sure that we always have a definition for `(', etc. For example, % if the fn name has parens in it, \boldbrax will not be in effect yet, % so TeX would otherwise complain about undefined control sequence. { \activeparens \global\let(=\lparen \global\let)=\rparen \global\let[=\lbrack \global\let]=\rbrack \global\let& = \& \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} \gdef\magicamp{\let&=\amprm} } \newcount\parencount % If we encounter &foo, then turn on ()-hacking afterwards \newif\ifampseen \def\amprm#1 {\ampseentrue{\bf\ }} \def\parenfont{% \ifampseen % At the first level, print parens in roman, % otherwise use the default font. \ifnum \parencount=1 \rm \fi \else % The \sf parens (in \boldbrax) actually are a little bolder than % the contained text. This is especially needed for [ and ] . \sf \fi } \def\infirstlevel#1{% \ifampseen \ifnum\parencount=1 #1% \fi \fi } \def\bfafterword#1 {#1 \bf} \def\opnr{% \global\advance\parencount by 1 {\parenfont(}% \infirstlevel \bfafterword } \def\clnr{% {\parenfont)}% \infirstlevel \sl \global\advance\parencount by -1 } \newcount\brackcount \def\lbrb{% \global\advance\brackcount by 1 {\bf[}% } \def\rbrb{% {\bf]}% \global\advance\brackcount by -1 } \def\checkparencounts{% \ifnum\parencount=0 \else \badparencount \fi \ifnum\brackcount=0 \else \badbrackcount \fi } % these should not use \errmessage; the glibc manual, at least, actually % has such constructs (when documenting function pointers). \def\badparencount{% \message{Warning: unbalanced parentheses in @def...}% \global\parencount=0 } \def\badbrackcount{% \message{Warning: unbalanced square brackets in @def...}% \global\brackcount=0 } \message{macros,} % @macro. % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. \ifx\eTeXversion\thisisundefined \newwrite\macscribble \def\scantokens#1{% \toks0={#1}% \immediate\openout\macscribble=\jobname.tmp \immediate\write\macscribble{\the\toks0}% \immediate\closeout\macscribble \input \jobname.tmp } \fi % alias because \c means cedilla in @tex or @math \let\texinfoc=\c \newcount\savedcatcodeone \newcount\savedcatcodetwo % Used at the time of macro expansion. % Argument is macro body with arguments substituted \def\scanmacro#1{% \newlinechar`\^^M \def\xeatspaces{\eatspaces}% % % Temporarily undo catcode changes of \printindex. Set catcode of @ to % 0 so that @-commands in macro expansions aren't printed literally when % formatting an index file, where \ is used as the escape character. \savedcatcodeone=\catcode`\@ \savedcatcodetwo=\catcode`\\ \catcode`\@=0 \catcode`\\=\active % % Process the macro body under the current catcode regime. \scantokens{#1@texinfoc}% % \catcode`\@=\savedcatcodeone \catcode`\\=\savedcatcodetwo % % The \texinfoc is to remove the \newlinechar added by \scantokens, and % can be noticed by \parsearg. % We avoid surrounding the call to \scantokens with \bgroup and \egroup % to allow macros to open or close groups themselves. } % Used for copying and captions \def\scanexp#1{% \expandafter\scanmacro\expandafter{#1}% } \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? % List of all defined macros in the form % \commondummyword\macro1\commondummyword\macro2... % Currently is also contains all @aliases; the list can be split % if there is a need. \def\macrolist{} % Add the macro to \macrolist \def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} \def\addtomacrolistxxx#1{% \toks0 = \expandafter{\macrolist\commondummyword#1}% \xdef\macrolist{\the\toks0}% } % Utility routines. % This does \let #1 = #2, with \csnames; that is, % \let \csname#1\endcsname = \csname#2\endcsname % (except of course we have to play expansion games). % \def\cslet#1#2{% \expandafter\let \csname#1\expandafter\endcsname \csname#2\endcsname } % Trim leading and trailing spaces off a string. % Concepts from aro-bend problem 15 (see CTAN). {\catcode`\@=11 \gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }} \gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@} \gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @} \def\unbrace#1{#1} \unbrace{\gdef\trim@@@ #1 } #2@{#1} } % Trim a single trailing ^^M off a string. {\catcode`\^^M=\other \catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% \gdef\eatcrb#1Q#2Q{#1}% } % Macro bodies are absorbed as an argument in a context where % all characters are catcode 10, 11 or 12, except \ which is active % (as in normal texinfo). It is necessary to change the definition of \ % to recognize macro arguments; this is the job of \mbodybackslash. % % Non-ASCII encodings make 8-bit characters active, so un-activate % them to avoid their expansion. Must do this non-globally, to % confine the change to the current group. % % It's necessary to have hard CRs when the macro is executed. This is % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. % \def\scanctxt{% used as subroutine \catcode`\"=\other \catcode`\+=\other \catcode`\<=\other \catcode`\>=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other \catcode`\~=\other \passthroughcharstrue } \def\scanargctxt{% used for copying and captions, not macros. \scanctxt \catcode`\@=\other \catcode`\\=\other \catcode`\^^M=\other } \def\macrobodyctxt{% used for @macro definitions \scanctxt \catcode`\ =\other \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other \catcode`\^^M=\other \usembodybackslash } % Used when scanning braced macro arguments. Note, however, that catcode % changes here are ineffectual if the macro invocation was nested inside % an argument to another Texinfo command. \def\macroargctxt{% \scanctxt \catcode`\ =\active \catcode`\^^M=\other \catcode`\\=\active } \def\macrolineargctxt{% used for whole-line arguments without braces \scanctxt \catcode`\{=\other \catcode`\}=\other } % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. % We define \csname macarg.\endcsname to be \realbackslash, so % \\ in macro replacement text gets you a backslash. % {\catcode`@=0 @catcode`@\=@active @gdef@usembodybackslash{@let\=@mbodybackslash} @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} } \expandafter\def\csname macarg.\endcsname{\realbackslash} \def\margbackslash#1{\char`\#1 } \def\macro{\recursivefalse\parsearg\macroxxx} \def\rmacro{\recursivetrue\parsearg\macroxxx} \def\macroxxx#1{% \getargs{#1}% now \macname is the macname and \argl the arglist \ifx\argl\empty % no arguments \paramno=0\relax \else \expandafter\parsemargdef \argl;% \if\paramno>256\relax \ifx\eTeXversion\thisisundefined \errhelp = \EMsimple \errmessage{You need eTeX to compile a file with macros with more than 256 arguments} \fi \fi \fi \if1\csname ismacro.\the\macname\endcsname \message{Warning: redefining \the\macname}% \else \expandafter\ifx\csname \the\macname\endcsname \relax \else \errmessage{Macro name \the\macname\space already defined}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% \addtomacrolist{\the\macname}% \fi \begingroup \macrobodyctxt \ifrecursive \expandafter\parsermacbody \else \expandafter\parsemacbody \fi} \parseargdef\unmacro{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% % Remove the macro name from \macrolist: \begingroup \expandafter\let\csname#1\endcsname \relax \let\commondummyword\unmacrodo \xdef\macrolist{\macrolist}% \endgroup \else \errmessage{Macro #1 not defined}% \fi } % Called by \do from \dounmacro on each macro. The idea is to omit any % macro definitions that have been changed to \relax. % \def\unmacrodo#1{% \ifx #1\relax % remove this \else \noexpand\commondummyword \noexpand#1% \fi } % \getargs -- Parse the arguments to a @macro line. Set \macname to % the name of the macro, and \argl to the braced argument list. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} \def\getmacname#1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} % This made use of the feature that if the last token of a % is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. % Parse the optional {params} list to @macro or @rmacro. % Set \paramno to the number of arguments, % and \paramlist to a parameter text for the macro (e.g. #1,#2,#3 for a % three-param macro.) Define \macarg.BLAH for each BLAH in the params % list to some hook where the argument is to be expanded. If there are % less than 10 arguments that hook is to be replaced by ##N where N % is the position in that list, that is to say the macro arguments are to be % defined `a la TeX in the macro body. % % That gets used by \mbodybackslash (above). % % If there are 10 or more arguments, a different technique is used: see % \parsemmanyargdef. % \def\parsemargdef#1;{% \paramno=0\def\paramlist{}% \let\hash\relax % \hash is redefined to `#' later to get it into definitions \let\xeatspaces\relax \parsemargdefxxx#1,;,% \ifnum\paramno<10\relax\else \paramno0\relax \parsemmanyargdef@@#1,;,% 10 or more arguments \fi } \def\parsemargdefxxx#1,{% \if#1;\let\next=\relax \else \let\next=\parsemargdefxxx \advance\paramno by 1 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname {\xeatspaces{\hash\the\paramno}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} % \parsemacbody, \parsermacbody % % Read recursive and nonrecursive macro bodies. (They're different since % rec and nonrec macros end differently.) % % We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro % body to be transformed. % Set \macrobody to the body of the macro, and call \defmacro. % {\catcode`\ =\other\long\gdef\parsemacbody#1@end macro{% \xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}% {\catcode`\ =\other\long\gdef\parsermacbody#1@end rmacro{% \xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}% % Make @ a letter, so that we can make private-to-Texinfo macro names. \edef\texiatcatcode{\the\catcode`\@} \catcode `@=11\relax %%%%%%%%%%%%%% Code for > 10 arguments only %%%%%%%%%%%%%%%%%% % If there are 10 or more arguments, a different technique is used, where the % hook remains in the body, and when macro is to be expanded the body is % processed again to replace the arguments. % % In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the % argument N value and then \edef the body (nothing else will expand because of % the catcode regime under which the body was input). % % If you compile with TeX (not eTeX), and you have macros with 10 or more % arguments, no macro can have more than 256 arguments (else error). % % In case that there are 10 or more arguments we parse again the arguments % list to set new definitions for the \macarg.BLAH macros corresponding to % each BLAH argument. It was anyhow needed to parse already once this list % in order to count the arguments, and as macros with at most 9 arguments % are by far more frequent than macro with 10 or more arguments, defining % twice the \macarg.BLAH macros does not cost too much processing power. \def\parsemmanyargdef@@#1,{% \if#1;\let\next=\relax \else \let\next=\parsemmanyargdef@@ \edef\tempb{\eatspaces{#1}}% \expandafter\def\expandafter\tempa \expandafter{\csname macarg.\tempb\endcsname}% % Note that we need some extra \noexpand\noexpand, this is because we % don't want \the to be expanded in the \parsermacbody as it uses an % \xdef . \expandafter\edef\tempa {\noexpand\noexpand\noexpand\the\toks\the\paramno}% \advance\paramno by 1\relax \fi\next} \let\endargs@\relax \let\nil@\relax \def\nilm@{\nil@}% \long\def\nillm@{\nil@}% % This macro is expanded during the Texinfo macro expansion, not during its % definition. It gets all the arguments' values and assigns them to macros % macarg.ARGNAME % % #1 is the macro name % #2 is the list of argument names % #3 is the list of argument values \def\getargvals@#1#2#3{% \def\macargdeflist@{}% \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion. \def\paramlist{#2,\nil@}% \def\macroname{#1}% \begingroup \macroargctxt \def\argvaluelist{#3,\nil@}% \def\@tempa{#3}% \ifx\@tempa\empty \setemptyargvalues@ \else \getargvals@@ \fi } \def\getargvals@@{% \ifx\paramlist\nilm@ % Some sanity check needed here that \argvaluelist is also empty. \ifx\argvaluelist\nillm@ \else \errhelp = \EMsimple \errmessage{Too many arguments in macro `\macroname'!}% \fi \let\next\macargexpandinbody@ \else \ifx\argvaluelist\nillm@ % No more arguments values passed to macro. Set remaining named-arg % macros to empty. \let\next\setemptyargvalues@ \else % pop current arg name into \@tempb \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}% \expandafter\@tempa\expandafter{\paramlist}% % pop current argument value into \@tempc \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}% \expandafter\@tempa\expandafter{\argvaluelist}% % Here \@tempb is the current arg name and \@tempc is the current arg value. % First place the new argument macro definition into \@tempd \expandafter\macname\expandafter{\@tempc}% \expandafter\let\csname macarg.\@tempb\endcsname\relax \expandafter\def\expandafter\@tempe\expandafter{% \csname macarg.\@tempb\endcsname}% \edef\@tempd{\long\def\@tempe{\the\macname}}% \push@\@tempd\macargdeflist@ \let\next\getargvals@@ \fi \fi \next } \def\push@#1#2{% \expandafter\expandafter\expandafter\def \expandafter\expandafter\expandafter#2% \expandafter\expandafter\expandafter{% \expandafter#1#2}% } % Replace arguments by their values in the macro body, and place the result % in macro \@tempa. % \def\macvalstoargs@{% % To do this we use the property that token registers that are \the'ed % within an \edef expand only once. So we are going to place all argument % values into respective token registers. % % First we save the token context, and initialize argument numbering. \begingroup \paramno0\relax % Then, for each argument number #N, we place the corresponding argument % value into a new token list register \toks#N \expandafter\putargsintokens@\saveparamlist@,;,% % Then, we expand the body so that argument are replaced by their % values. The trick for values not to be expanded themselves is that they % are within tokens and that tokens expand only once in an \edef . \edef\@tempc{\csname mac.\macroname .body\endcsname}% % Now we restore the token stack pointer to free the token list registers % which we have used, but we make sure that expanded body is saved after % group. \expandafter \endgroup \expandafter\def\expandafter\@tempa\expandafter{\@tempc}% } % Define the named-macro outside of this group and then close this group. % \def\macargexpandinbody@{% \expandafter \endgroup \macargdeflist@ % First the replace in body the macro arguments by their values, the result % is in \@tempa . \macvalstoargs@ % Then we point at the \norecurse or \gobble (for recursive) macro value % with \@tempb . \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname % Depending on whether it is recursive or not, we need some tailing % \egroup . \ifx\@tempb\gobble \let\@tempc\relax \else \let\@tempc\egroup \fi % And now we do the real job: \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}% \@tempd } \def\putargsintokens@#1,{% \if#1;\let\next\relax \else \let\next\putargsintokens@ % First we allocate the new token list register, and give it a temporary % alias \@tempb . \toksdef\@tempb\the\paramno % Then we place the argument value into that token list register. \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname \expandafter\@tempb\expandafter{\@tempa}% \advance\paramno by 1\relax \fi \next } % Trailing missing arguments are set to empty. % \def\setemptyargvalues@{% \ifx\paramlist\nilm@ \let\next\macargexpandinbody@ \else \expandafter\setemptyargvaluesparser@\paramlist\endargs@ \let\next\setemptyargvalues@ \fi \next } \def\setemptyargvaluesparser@#1,#2\endargs@{% \expandafter\def\expandafter\@tempa\expandafter{% \expandafter\def\csname macarg.#1\endcsname{}}% \push@\@tempa\macargdeflist@ \def\paramlist{#2}% } % #1 is the element target macro % #2 is the list macro % #3,#4\endargs@ is the list value \def\pop@#1#2#3,#4\endargs@{% \def#1{#3}% \def#2{#4}% } \long\def\longpop@#1#2#3,#4\endargs@{% \long\def#1{#3}% \long\def#2{#4}% } %%%%%%%%%%%%%% End of code for > 10 arguments %%%%%%%%%%%%%%%%%% % This defines a Texinfo @macro or @rmacro, called by \parsemacbody. % \macrobody has the body of the macro in it, with placeholders for % its parameters, looking like "\xeatspaces{\hash 1}". % \paramno is the number of parameters % \paramlist is a TeX parameter text, e.g. "#1,#2,#3," % There are four cases: macros of zero, one, up to nine, and many arguments. % \xdef is used so that macro definitions will survive the file % they're defined in: @include reads the file inside a group. % \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars \ifnum\paramno=1 \def\xeatspaces##1{##1}% % This removes the pair of braces around the argument. We don't % use \eatspaces, because this can cause ends of lines to be lost % when the argument to \eatspaces is read, leading to line-based % commands like "@itemize" not being read correctly. \else \let\xeatspaces\relax % suppress expansion \fi \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup \noexpand\spaceisspace \noexpand\endlineisspace \noexpand\expandafter % skip any whitespace after the macro name. \expandafter\noexpand\csname\the\macname @@@\endcsname}% \expandafter\xdef\csname\the\macname @@@\endcsname{% \egroup \noexpand\scanmacro{\macrobody}}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup \noexpand\braceorline \expandafter\noexpand\csname\the\macname @@@\endcsname}% \expandafter\xdef\csname\the\macname @@@\endcsname##1{% \egroup \noexpand\scanmacro{\macrobody}% }% \else % at most 9 \ifnum\paramno<10\relax % @MACNAME sets the context for reading the macro argument % @MACNAME@@ gets the argument, processes backslashes and appends a % comma. % @MACNAME@@@ removes braces surrounding the argument list. % @MACNAME@@@@ scans the macro body with arguments substituted. \expandafter\xdef\csname\the\macname\endcsname{% \bgroup \noexpand\expandafter % This \expandafter skip any spaces after the \noexpand\macroargctxt % macro before we change the catcode of space. \noexpand\expandafter \expandafter\noexpand\csname\the\macname @@\endcsname}% \expandafter\xdef\csname\the\macname @@\endcsname##1{% \noexpand\passargtomacro \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}% \expandafter\xdef\csname\the\macname @@@\endcsname##1{% \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname @@@@\endcsname\paramlist{% \egroup\noexpand\scanmacro{\macrobody}}% \else % 10 or more: \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble \fi \fi} \catcode `\@\texiatcatcode\relax % end private-to-Texinfo catcodes \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % {\catcode`\@=0 \catcode`\\=13 % We need to manipulate \ so use @ as escape @catcode`@_=11 % private names @catcode`@!=11 % used as argument separator % \passargtomacro#1#2 - % Call #1 with a list of tokens #2, with any doubled backslashes in #2 % compressed to one. % % This implementation works by expansion, and not execution (so we cannot use % \def or similar). This reduces the risk of this failing in contexts where % complete expansion is done with no execution (for example, in writing out to % an auxiliary file for an index entry). % % State is kept in the input stream: the argument passed to % @look_ahead, @gobble_and_check_finish and @add_segment is % % THE_MACRO ARG_RESULT ! {PENDING_BS} NEXT_TOKEN (... rest of input) % % where: % THE_MACRO - name of the macro we want to call % ARG_RESULT - argument list we build to pass to that macro % PENDING_BS - either a backslash or nothing % NEXT_TOKEN - used to look ahead in the input stream to see what's coming next @gdef@passargtomacro#1#2{% @add_segment #1!{}@relax#2\@_finish\% } @gdef@_finish{@_finishx} @global@let@_finishx@relax % #1 - THE_MACRO ARG_RESULT % #2 - PENDING_BS % #3 - NEXT_TOKEN % #4 used to look ahead % % If the next token is not a backslash, process the rest of the argument; % otherwise, remove the next token. @gdef@look_ahead#1!#2#3#4{% @ifx#4\% @expandafter@gobble_and_check_finish @else @expandafter@add_segment @fi#1!{#2}#4#4% } % #1 - THE_MACRO ARG_RESULT % #2 - PENDING_BS % #3 - NEXT_TOKEN % #4 should be a backslash, which is gobbled. % #5 looks ahead % % Double backslash found. Add a single backslash, and look ahead. @gdef@gobble_and_check_finish#1!#2#3#4#5{% @add_segment#1\!{}#5#5% } @gdef@is_fi{@fi} % #1 - THE_MACRO ARG_RESULT % #2 - PENDING_BS % #3 - NEXT_TOKEN % #4 is input stream until next backslash % % Input stream is either at the start of the argument, or just after a % backslash sequence, either a lone backslash, or a doubled backslash. % NEXT_TOKEN contains the first token in the input stream: if it is \finish, % finish; otherwise, append to ARG_RESULT the segment of the argument up until % the next backslash. PENDING_BACKSLASH contains a backslash to represent % a backslash just before the start of the input stream that has not been % added to ARG_RESULT. @gdef@add_segment#1!#2#3#4\{% @ifx#3@_finish @call_the_macro#1!% @else % append the pending backslash to the result, followed by the next segment @expandafter@is_fi@look_ahead#1#2#4!{\}@fi % this @fi is discarded by @look_ahead. % we can't get rid of it with \expandafter because we don't know how % long #4 is. } % #1 - THE_MACRO % #2 - ARG_RESULT % #3 discards the res of the conditional in @add_segment, and @is_fi ends the % conditional. @gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \braceorline MAC is used for a one-argument macro MAC. It checks % whether the next non-whitespace character is a {. It sets the context % for reading the argument (slightly different in the two cases). Then, % to read the argument, in the whole-line case, it then calls the regular % \parsearg MAC; in the lbrace case, it calls \passargtomacro MAC. % \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup \macroargctxt \expandafter\passargtomacro \else \macrolineargctxt\expandafter\parsearg \fi \macnamexxx} % @alias. % We need some trickery to remove the optional spaces around the equal % sign. Make them active and then expand them all to nothing. % \def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} \def\aliasyyy #1=#2\relax{% {% \expandafter\let\obeyedspace=\empty \addtomacrolist{#1}% \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% }% \next } \message{cross references,} \newwrite\auxfile \newif\ifhavexrefs % True if xref values are known. \newif\ifwarnedxrefs % True if we warned once that they aren't known. % @inforef is relatively simple. \def\inforef #1{\inforefzzz #1,,,,**} \def\inforefzzz #1,#2,#3,#4**{% \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} % @node's only job in TeX is to define \lastnode, which is used in % cross-references. The @node line might or might not have commas, and % might or might not have spaces before the first comma, like: % @node foo , bar , ... % We don't want such trailing spaces in the node name. % \parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse} % % also remove a trailing comma, in case of something like this: % @node Help-Cross, , , Cross-refs \def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse} \def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}} \let\nwnode=\node \let\lastnode=\empty % Write a cross-reference definition for the current node. #1 is the % type (Ynumbered, Yappendix, Ynothing). % \def\donoderef#1{% \ifx\lastnode\empty\else \setref{\lastnode}{#1}% \global\let\lastnode=\empty \fi } % @anchor{NAME} -- define xref target at arbitrary point. % \newcount\savesfregister % \def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} \def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} \def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an % anchor), which consists of three parts: % 1) NAME-title - the current sectioning name taken from \lastsection, % or the anchor name. % 2) NAME-snt - section number and type, passed as the SNT arg, or % empty for anchors. % 3) NAME-pg - the page number. % % This is called from \donoderef, \anchor, and \dofloat. In the case of % floats, there is an additional part, which is not written here: % 4) NAME-lof - the text as it should appear in a @listoffloats. % \def\setref#1#2{% \pdfmkdest{#1}% \iflinks {% \requireauxfile \atdummies % preserve commands, but don't expand them % match definition in \xrdef, \refx, \xrefX. \def\value##1{##1}% \edef\writexrdef##1##2{% \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef ##1}{##2}}% these are parameters of \writexrdef }% \toks0 = \expandafter{\lastsection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout }% \fi } % @xrefautosectiontitle on|off says whether @section(ing) names are used % automatically in xrefs, if the third arg is not explicitly specified. % This was provided as a "secret" @set xref-automatic-section-title % variable, now it's official. % \parseargdef\xrefautomaticsectiontitle{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETxref-automatic-section-title\endcsname = \empty \else\ifx\temp\offword \expandafter\let\csname SETxref-automatic-section-title\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @xrefautomaticsectiontitle value `\temp', must be on|off}% \fi\fi } % % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed % manual. All but the node name can be omitted. % \def\pxref{\putwordsee{} \xrefXX} \def\xref{\putwordSee{} \xrefXX} \def\ref{\xrefXX} \def\xrefXX#1{\def\xrefXXarg{#1}\futurelet\tokenafterxref\xrefXXX} \def\xrefXXX{\expandafter\xrefX\expandafter[\xrefXXarg,,,,,,,]} % \newbox\toprefbox \newbox\printedrefnamebox \newbox\infofilenamebox \newbox\printedmanualbox % \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces % % Get args without leading/trailing spaces. \def\printedrefname{\ignorespaces #3}% \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% % \def\infofilename{\ignorespaces #4}% \setbox\infofilenamebox = \hbox{\infofilename\unskip}% % \def\printedmanual{\ignorespaces #5}% \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% % % If the printed reference name (arg #3) was not explicitly given in % the @xref, figure out what we want to use. \ifdim \wd\printedrefnamebox = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax % Not auto section-title: use node name inside the square brackets. \def\printedrefname{\ignorespaces #1}% \else % Auto section-title: use chapter/section title inside % the square brackets if we have it. \ifdim \wd\printedmanualbox > 0pt % It is in another manual, so we don't have it; use node name. \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs % We (should) know the real title if we have the xref values. \def\printedrefname{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. \def\printedrefname{\ignorespaces #1}% \fi% \fi \fi \fi % % Make link in pdf output. \ifpdf % For pdfTeX and LuaTeX {\indexnofonts \makevalueexpandable \turnoffactive % This expands tokens, so do it after making catcode changes, so _ % etc. don't get their TeX definitions. This ignores all spaces in % #4, including (wrongly) those in the middle of the filename. \getfilename{#4}% % % This (wrongly) does not take account of leading or trailing % spaces in #1, which should be ignored. \setpdfdestname{#1}% % \ifx\pdfdestname\empty \def\pdfdestname{Top}% no empty targets \fi % \leavevmode \startlink attr{/Border [0 0 0]}% \ifnum\filenamelength>0 goto file{\the\filename.pdf} name{\pdfdestname}% \else goto name{\pdfmkpgn{\pdfdestname}}% \fi }% \setcolor{\linkcolor}% \else \ifx\XeTeXrevision\thisisundefined \else % For XeTeX {\indexnofonts \makevalueexpandable \turnoffactive % This expands tokens, so do it after making catcode changes, so _ % etc. don't get their TeX definitions. This ignores all spaces in % #4, including (wrongly) those in the middle of the filename. \getfilename{#4}% % % This (wrongly) does not take account of leading or trailing % spaces in #1, which should be ignored. \setpdfdestname{#1}% % \ifx\pdfdestname\empty \def\pdfdestname{Top}% no empty targets \fi % \leavevmode \ifnum\filenamelength>0 % With default settings, % XeTeX (xdvipdfmx) replaces link destination names with integers. % In this case, the replaced destination names of % remote PDFs are no longer known. In order to avoid a replacement, % you can use xdvipdfmx's command line option `-C 0x0010'. % If you use XeTeX 0.99996+ (TeX Live 2016+), % this command line option is no longer necessary % because we can use the `dvipdfmx:config' special. \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A << /S /GoToR /F (\the\filename.pdf) /D (\pdfdestname) >> >>}% \else \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A << /S /GoTo /D (\pdfdestname) >> >>}% \fi }% \setcolor{\linkcolor}% \fi \fi {% % Have to otherify everything special to allow the \csname to % include an _ in the xref name, etc. \indexnofonts \turnoffactive \def\value##1{##1}% \expandafter\global\expandafter\let\expandafter\Xthisreftitle \csname XR#1-title\endcsname }% % % Float references are printed completely differently: "Figure 1.2" % instead of "[somenode], p.3". \iffloat distinguishes them by % \Xthisreftitle being set to a magic string. \iffloat\Xthisreftitle % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". \ifdim\wd\printedrefnamebox = 0pt \refx{#1-snt}{}% \else \printedrefname \fi % % If the user also gave the printed manual name (fifth arg), append % "in MANUALNAME". \ifdim \wd\printedmanualbox > 0pt \space \putwordin{} \cite{\printedmanual}% \fi \else % node/anchor (non-float) references. % % If we use \unhbox to print the node names, TeX does not insert % empty discretionaries after hyphens, which means that it will not % find a line break at a hyphen in a node names. Since some manuals % are best written with fairly long node names, containing hyphens, % this is a loss. Therefore, we give the text of the node name % again, so it is as if TeX is seeing it for the first time. % \ifdim \wd\printedmanualbox > 0pt % Cross-manual reference with a printed manual name. % \crossmanualxref{\cite{\printedmanual\unskip}}% % \else\ifdim \wd\infofilenamebox > 0pt % Cross-manual reference with only an info filename (arg 4), no % printed manual name (arg 5). This is essentially the same as % the case above; we output the filename, since we have nothing else. % \crossmanualxref{\code{\infofilename\unskip}}% % \else % Reference within this manual. % % _ (for example) has to be the character _ for the purposes of the % control sequence corresponding to the node, but it has to expand % into the usual \leavevmode...\vrule stuff for purposes of % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. {\turnoffactive % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi }% % output the `[mynode]' via the macro below so it can be overridden. \xrefprintnodename\printedrefname % % But we always want a comma and a space: ,\space % % output the `page 3'. \turnoffactive \putwordpage\tie\refx{#1-pg}{}% % Add a , if xref followed by a space \if\space\noexpand\tokenafterxref ,% \else\ifx\ \tokenafterxref ,% @TAB \else\ifx\*\tokenafterxref ,% @* \else\ifx\ \tokenafterxref ,% @SPACE \else\ifx\ \tokenafterxref ,% @NL \else\ifx\tie\tokenafterxref ,% @tie \fi\fi\fi\fi\fi\fi \fi\fi \fi \endlink \endgroup} % Output a cross-manual xref to #1. Used just above (twice). % % Only include the text "Section ``foo'' in" if the foo is neither % missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply % "see The Foo Manual", the idea being to refer to the whole manual. % % But, this being TeX, we can't easily compare our node name against the % string "Top" while ignoring the possible spaces before and after in % the input. By adding the arbitrary 7sp below, we make it much less % likely that a real node name would have the same width as "Top" (e.g., % in a monospaced font). Hopefully it will never happen in practice. % % For the same basic reason, we retypeset the "Top" at every % reference, since the current font is indeterminate. % \def\crossmanualxref#1{% \setbox\toprefbox = \hbox{Top\kern7sp}% \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% \ifdim \wd2 > 7sp % nonempty? \ifdim \wd2 = \wd\toprefbox \else % same as Top? \putwordSection{} ``\printedrefname'' \putwordin{}\space \fi \fi #1% } % This macro is called from \xrefX for the `[nodename]' part of xref % output. It's a separate macro only so it can be changed more easily, % since square brackets don't work well in some documents. Particularly % one that Bob is working on :). % \def\xrefprintnodename#1{[#1]} % Things referred to by \setref. % \def\Ynothing{} \def\Yomitfromtoc{} \def\Ynumbered{% \ifnum\secno=0 \putwordChapter@tie \the\chapno \else \ifnum\subsecno=0 \putwordSection@tie \the\chapno.\the\secno \else \ifnum\subsubsecno=0 \putwordSection@tie \the\chapno.\the\secno.\the\subsecno \else \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } \def\Yappendix{% \ifnum\secno=0 \putwordAppendix@tie @char\the\appendixno{}% \else \ifnum\subsecno=0 \putwordSection@tie @char\the\appendixno.\the\secno \else \ifnum\subsubsecno=0 \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno \else \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } % \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME. SUFFIX % is output afterwards if non-empty. \def\refx#1#2{% \requireauxfile {% \indexnofonts \otherbackslash \def\value##1{##1}% \expandafter\global\expandafter\let\expandafter\thisrefX \csname XR#1\endcsname }% \ifx\thisrefX\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright \iflinks \ifhavexrefs {\toks0 = {#1}% avoid expansion of possibly-complex value \message{\linenumber Undefined cross reference `\the\toks0'.}}% \else \ifwarnedxrefs\else \global\warnedxrefstrue \message{Cross reference values unknown; you must run TeX again.}% \fi \fi \fi \else % It's defined, so just use it. \thisrefX \fi #2% Output the suffix in any case. } % This is the macro invoked by entries in the aux file. Define a control % sequence for a cross-reference target (we prepend XR to the control sequence % name to avoid collisions). The value is the page number. If this is a float % type, we have more work to do. % \def\xrdef#1#2{% {% Expand the node or anchor name to remove control sequences. % \turnoffactive stops 8-bit characters being changed to commands % like @'e. \refx does the same to retrieve the value in the definition. \indexnofonts \turnoffactive \def\value##1{##1}% \xdef\safexrefname{#1}% }% % \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref % % Was that xref control sequence that we just defined for a float? \expandafter\iffloat\csname XR\safexrefname\endcsname % it was a float, and we have the (safe) float type in \iffloattype. \expandafter\let\expandafter\floatlist \csname floatlist\iffloattype\endcsname % % Is this the first time we've seen this float type? \expandafter\ifx\floatlist\relax \toks0 = {\do}% yes, so just \do \else % had it before, so preserve previous elements in list. \toks0 = \expandafter{\floatlist\do}% \fi % % Remember this xref in the control sequence \floatlistFLOATTYPE, % for later use in \listoffloats. \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 {\safexrefname}}% \fi } % If working on a large document in chapters, it is convenient to % be able to disable indexing, cross-referencing, and contents, for test runs. % This is done with @novalidate at the beginning of the file. % \newif\iflinks \linkstrue % by default we want the aux files. \let\novalidate = \linksfalse % Used when writing to the aux file, or when using data from it. \def\requireauxfile{% \iflinks \tryauxfile % Open the new aux file. TeX will close it automatically at exit. \immediate\openout\auxfile=\jobname.aux \fi \global\let\requireauxfile=\relax % Only do this once. } % Read the last existing aux file, if any. No error if none exists. % \def\tryauxfile{% \openin 1 \jobname.aux \ifeof 1 \else \readdatafile{aux}% \global\havexrefstrue \fi \closein 1 } \def\setupdatafile{% \catcode`\^^@=\other \catcode`\^^A=\other \catcode`\^^B=\other \catcode`\^^C=\other \catcode`\^^D=\other \catcode`\^^E=\other \catcode`\^^F=\other \catcode`\^^G=\other \catcode`\^^H=\other \catcode`\^^K=\other \catcode`\^^L=\other \catcode`\^^N=\other \catcode`\^^P=\other \catcode`\^^Q=\other \catcode`\^^R=\other \catcode`\^^S=\other \catcode`\^^T=\other \catcode`\^^U=\other \catcode`\^^V=\other \catcode`\^^W=\other \catcode`\^^X=\other \catcode`\^^Z=\other \catcode`\^^[=\other \catcode`\^^\=\other \catcode`\^^]=\other \catcode`\^^^=\other \catcode`\^^_=\other % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, % that is not enough: for node names that actually contain a ^ % character, we would end up writing a line like this: 'xrdef {'hat % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first % argument, and \hat is not an expandable control sequence. It could % all be worked out, but why? Either we support ^^ or we don't. % % The other change necessary for this was to define \auxhat: % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter % and then to call \auxhat in \setq. % \catcode`\^=\other % % Special characters. Should be turned off anyway, but... \catcode`\~=\other \catcode`\[=\other \catcode`\]=\other \catcode`\"=\other \catcode`\_=\other \catcode`\|=\other \catcode`\<=\other \catcode`\>=\other \catcode`\$=\other \catcode`\#=\other \catcode`\&=\other \catcode`\%=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off % % This is to support \ in node names and titles, since the \ % characters end up in a \csname. It's easier than % leaving it active and making its active definition an actual \ % character. What I don't understand is why it works in the *value* % of the xrdef. Seems like it should be a catcode12 \, and that % should not typeset properly. But it works, so I'm moving on for % now. --karl, 15jan04. \catcode`\\=\other % % @ is our escape character in .aux files, and we need braces. \catcode`\{=1 \catcode`\}=2 \catcode`\@=0 } \def\readdatafile#1{% \begingroup \setupdatafile \input\jobname.#1 \endgroup} \message{insertions,} % including footnotes. \newcount \footnoteno % The trailing space in the following definition for supereject is % vital for proper filling; pages come out unaligned when you do a % pagealignmacro call if that space before the closing brace is % removed. (Generally, numeric constants should always be followed by a % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } % @footnotestyle is meaningful for Info output only. \let\footnotestyle=\comment {\catcode `\@=11 % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip \thisfootno\@sf \dofootnote }% % Don't bother with the trickery in plain.tex to not require the % footnote text as a parameter. Our footnotes don't need to be so general. % % Oh yes, they do; otherwise, @ifset (and anything else that uses % \parseargline) fails inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % \gdef\dofootnote{% \insert\footins\bgroup % % Nested footnotes are not supported in TeX, that would take a lot % more work. (\startsavinginserts does not suffice.) \let\footnote=\errfootnotenest % % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. \hsize=\txipagewidth \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes \splitmaxdepth\dp\strutbox \floatingpenalty\@MM \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip \parindent\defaultparindent % \smallfonts \rm % % Because we use hanging indentation in footnotes, a @noindent appears % to exdent this text, so make it be a no-op. makeinfo does not use % hanging indentation so @noindent can still be needed within footnote % text after an @example or the like (not that this is good style). \let\noindent = \relax % % Hang the footnote text off the number. Use \everypar in case the % footnote extends for more than one paragraph. \everypar = {\hang}% \textindent{\thisfootno}% % % Don't crash into the line above the footnote text. Since this % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut % % Invoke rest of plain TeX footnote routine. \futurelet\next\fo@t } }%end \catcode `\@=11 \def\errfootnotenest{% \errhelp=\EMsimple \errmessage{Nested footnotes not supported in texinfo.tex, even though they work in makeinfo; sorry} } \def\errfootnoteheading{% \errhelp=\EMsimple \errmessage{Footnotes in chapters, sections, etc., are not supported} } % In case a @footnote appears in a vbox, save the footnote text and create % the real \insert just after the vbox finished. Otherwise, the insertion % would be lost. % Similarly, if a @footnote appears inside an alignment, save the footnote % text to a box and make the \insert when a row of the table is finished. % And the same can be done for other insert classes. --kasal, 16nov03. % % Replace the \insert primitive by a cheating macro. % Deeper inside, just make sure that the saved insertions are not spilled % out prematurely. % \def\startsavinginserts{% \ifx \insert\ptexinsert \let\insert\saveinsert \else \let\checkinserts\relax \fi } % This \insert replacement works for both \insert\footins{foo} and % \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}. % \def\saveinsert#1{% \edef\next{\noexpand\savetobox \makeSAVEname#1}% \afterassignment\next % swallow the left brace \let\temp = } \def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}} \def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1} \def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi} \def\placesaveins#1{% \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname {\box#1}% } % eat @SAVE -- beware, all of them have catcode \other: { \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-) \gdef\gobblesave @SAVE{} } % initialization: \def\newsaveins #1{% \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}% \next } \def\newsaveinsX #1{% \csname newbox\endcsname #1% \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts \checksaveins #1}% } % initialize: \let\checkinserts\empty \newsaveins\footins \newsaveins\margin % @image. We use the macros from epsf.tex to support this. % If epsf.tex is not installed and @image is used, we complain. % % Check for and read epsf.tex up front. If we read it only at @image % time, we might be inside a group, and then its definitions would get % undone and the next image would fail. \openin 1 = epsf.tex \ifeof 1 \else % Do not bother showing banner with epsf.tex v2.7k (available in % doc/epsf.tex and on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi \closein 1 % % We will only complain once about lack of epsf.tex. \newif\ifwarnednoepsf \newhelp\noepsfhelp{epsf.tex must be installed for images to work. It is also included in the Texinfo distribution, or you can get it from ftp://tug.org/tex/epsf.tex.} % \def\image#1{% \ifx\epsfbox\thisisundefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% \global\warnednoepsftrue \fi \else \imagexxx #1,,,,,\finish \fi } % % Arguments to @image: % #1 is (mandatory) image filename; we tack on .eps extension. % #2 is (optional) width, #3 is (optional) height. % #4 is (ignored optional) html alt text. % #5 is (ignored optional) extension. % #6 is just the usual extra ignored arg for parsing stuff. \newif\ifimagevmode \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup \catcode`\^^M = 5 % in case we're inside an example \normalturnoffactive % allow _ et al. in names \def\xprocessmacroarg{\eatspaces}% in case we are being used via a macro % If the image is by itself, center it. \ifvmode \imagevmodetrue \else \ifx\centersub\centerV % for @center @image, we need a vbox so we can have our vertical space \imagevmodetrue \vbox\bgroup % vbox has better behavior than vtop herev \fi\fi % \ifimagevmode \nobreak\medskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space % above and below. \nobreak\vskip\parskip \nobreak \fi % % Leave vertical mode so that indentation from an enclosing % environment such as @quotation is respected. % However, if we're at the top level, we don't want the % normal paragraph indentation. % On the other hand, if we are in the case of @center @image, we don't % want to start a paragraph, which will create a hsize-width box and % eradicate the centering. \ifx\centersub\centerV\else \noindent \fi % % Output the image. \ifpdf % For pdfTeX and LuaTeX <= 0.80 \dopdfimage{#1}{#2}{#3}% \else \ifx\XeTeXrevision\thisisundefined % For epsf.tex % \epsfbox itself resets \epsf?size at each figure. \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \epsfysize=#3\relax \fi \epsfbox{#1.eps}% \else % For XeTeX \doxeteximage{#1}{#2}{#3}% \fi \fi % \ifimagevmode \medskip % space after a standalone image \fi \ifx\centersub\centerV \egroup \fi \endgroup} % @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables, % etc. We don't actually implement floating yet, we always include the % float "here". But it seemed the best name for the future. % \envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish} % There may be a space before second and/or third parameter; delete it. \def\eatcommaspace#1, {#1,} % #1 is the optional FLOATTYPE, the text label for this float, typically % "Figure", "Table", "Example", etc. Can't contain commas. If omitted, % this float will not be numbered and cannot be referred to. % % #2 is the optional xref label. Also must be present for the float to % be referable. % % #3 is the optional positioning argument; for now, it is ignored. It % will somehow specify the positions allowed to float to (here, top, bottom). % % We keep a separate counter for each FLOATTYPE, which we reset at each % chapter-level command. \let\resetallfloatnos=\empty % \def\dofloat#1,#2,#3,#4\finish{% \let\thiscaption=\empty \let\thisshortcaption=\empty % % don't lose footnotes inside @float. % % BEWARE: when the floats start float, we have to issue warning whenever an % insert appears inside a float which could possibly float. --kasal, 26may04 % \startsavinginserts % % We can't be used inside a paragraph. \par % \vtop\bgroup \def\floattype{#1}% \def\floatlabel{#2}% \def\floatloc{#3}% we do nothing with this yet. % \ifx\floattype\empty \let\safefloattype=\empty \else {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% \fi % % If label is given but no type, we handle that as the empty type. \ifx\floatlabel\empty \else % We want each FLOATTYPE to be numbered separately (Figure 1, % Table 1, Figure 2, ...). (And if no label, no number.) % \expandafter\getfloatno\csname\safefloattype floatno\endcsname \global\advance\floatno by 1 % {% % This magic value for \lastsection is output by \setref as the % XREFLABEL-title value. \xrefX uses it to distinguish float % labels (which have a completely different output format) from % node and anchor labels. And \xrdef uses it to construct the % lists of floats. % \edef\lastsection{\floatmagic=\safefloattype}% \setref{\floatlabel}{Yfloat}% }% \fi % % start with \parskip glue, I guess. \vskip\parskip % % Don't suppress indentation if a float happens to start a section. \restorefirstparagraphindent } % we have these possibilities: % @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap % @float Foo,lbl & no caption: Foo 1.1 % @float Foo & @caption{Cap}: Foo: Cap % @float Foo & no caption: Foo % @float ,lbl & Caption{Cap}: 1.1: Cap % @float ,lbl & no caption: 1.1 % @float & @caption{Cap}: Cap % @float & no caption: % \def\Efloat{% \let\floatident = \empty % % In all cases, if we have a float type, it comes first. \ifx\floattype\empty \else \def\floatident{\floattype}\fi % % If we have an xref label, the number comes next. \ifx\floatlabel\empty \else \ifx\floattype\empty \else % if also had float type, need tie first. \appendtomacro\floatident{\tie}% \fi % the number. \appendtomacro\floatident{\chaplevelprefix\the\floatno}% \fi % % Start the printed caption with what we've constructed in % \floatident, but keep it separate; we need \floatident again. \let\captionline = \floatident % \ifx\thiscaption\empty \else \ifx\floatident\empty \else \appendtomacro\captionline{: }% had ident, so need a colon between \fi % % caption text. \appendtomacro\captionline{\scanexp\thiscaption}% \fi % % If we have anything to print, print it, with space before. % Eventually this needs to become an \insert. \ifx\captionline\empty \else \vskip.5\parskip \captionline % % Space below caption. \vskip\parskip \fi % % If have an xref label, write the list of floats info. Do this % after the caption, to avoid chance of it being a breakpoint. \ifx\floatlabel\empty \else % Write the text that goes in the lof to the aux file as % \floatlabel-lof. Besides \floatident, we include the short % caption if specified, else the full caption if specified, else nothing. {% \requireauxfile \atdummies % \ifx\thisshortcaption\empty \def\gtemp{\thiscaption}% \else \def\gtemp{\thisshortcaption}% \fi \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident \ifx\gtemp\empty \else : \gtemp \fi}}% }% \fi \egroup % end of \vtop % \checkinserts } % Append the tokens #2 to the definition of macro #1, not expanding either. % \def\appendtomacro#1#2{% \expandafter\def\expandafter#1\expandafter{#1#2}% } % @caption, @shortcaption % \def\caption{\docaption\thiscaption} \def\shortcaption{\docaption\thisshortcaption} \def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption} \def\defcaption#1#2{\egroup \def#1{#2}} % The parameter is the control sequence identifying the counter we are % going to use. Create it if it doesn't exist and assign it to \floatno. \def\getfloatno#1{% \ifx#1\relax % Haven't seen this figure type before. \csname newcount\endcsname #1% % % Remember to reset this floatno at the next chap. \expandafter\gdef\expandafter\resetallfloatnos \expandafter{\resetallfloatnos #1=0 }% \fi \let\floatno#1% } % \setref calls this to get the XREFLABEL-snt value. We want an @xref % to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we % first read the @float command. % \def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}% % Magic string used for the XREFLABEL-title value, so \xrefX can % distinguish floats from other xref types. \def\floatmagic{!!float!!} % #1 is the control sequence we are passed; we expand into a conditional % which is true if #1 represents a float ref. That is, the magic % \lastsection value which we \setref above. % \def\iffloat#1{\expandafter\doiffloat#1==\finish} % % #1 is (maybe) the \floatmagic string. If so, #2 will be the % (safe) float type for this float. We set \iffloattype to #2. % \def\doiffloat#1=#2=#3\finish{% \def\temp{#1}% \def\iffloattype{#2}% \ifx\temp\floatmagic } % @listoffloats FLOATTYPE - print a list of floats like a table of contents. % \parseargdef\listoffloats{% \def\floattype{#1}% floattype {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% % % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE. \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax \ifhavexrefs % if the user said @listoffloats foo but never @float foo. \message{\linenumber No `\safefloattype' floats to list.}% \fi \else \begingroup \leftskip=\tocindent % indent these entries like a toc \let\do=\listoffloatsdo \csname floatlist\safefloattype\endcsname \endgroup \fi } % This is called on each entry in a list of floats. We're passed the % xref label, in the form LABEL-title, which is how we save it in the % aux file. We strip off the -title and look up \XRLABEL-lof, which % has the text we're supposed to typeset here. % % Figures without xref labels will not be included in the list (since % they won't appear in the aux file). % \def\listoffloatsdo#1{\listoffloatsdoentry#1\finish} \def\listoffloatsdoentry#1-title\finish{{% % Can't fully expand XR#1-lof because it can contain anything. Just % pass the control sequence. On the other hand, XR#1-pg is just the % page number, and we want to fully expand that so we can get a link % in pdf output. \toksA = \expandafter{\csname XR#1-lof\endcsname}% % % use the same \entry macro we use to generate the TOC and index. \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}% \writeentry }} \message{localization,} % For single-language documents, @documentlanguage is usually given very % early, just after @documentencoding. Single argument is the language % (de) or locale (de_DE) abbreviation. % { \catcode`\_ = \active \globaldefs=1 \parseargdef\documentlanguage{% \tex % read txi-??.tex file in plain TeX. % Read the file by the name they passed if it exists. \let_ = \normalunderscore % normal _ character for filename test \openin 1 txi-#1.tex \ifeof 1 \documentlanguagetrywithoutunderscore #1_\finish \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 \endgroup % end raw TeX } % % If they passed de_DE, and txi-de_DE.tex doesn't exist, % try txi-de.tex. % \gdef\documentlanguagetrywithoutunderscore#1_#2\finish{% \openin 1 txi-#1.tex \ifeof 1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 } }% end of special _ catcode % \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? Putting it in the current directory should work if nowhere else does.} % This macro is called from txi-??.tex files; the first argument is the % \language name to set (without the "\lang@" prefix), the second and % third args are \{left,right}hyphenmin. % % The language names to pass are determined when the format is built. % See the etex.log file created at that time, e.g., % /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log. % % With TeX Live 2008, etex now includes hyphenation patterns for all % available languages. This means we can support hyphenation in % Texinfo, at least to some extent. (This still doesn't solve the % accented characters problem.) % \catcode`@=11 \def\txisetlanguage#1#2#3{% % do not set the language if the name is undefined in the current TeX. \expandafter\ifx\csname lang@#1\endcsname \relax \message{no patterns for #1}% \else \global\language = \csname lang@#1\endcsname \fi % but there is no harm in adjusting the hyphenmin values regardless. \global\lefthyphenmin = #2\relax \global\righthyphenmin = #3\relax } % XeTeX and LuaTeX can handle Unicode natively. % Their default I/O uses UTF-8 sequences instead of a byte-wise operation. % Other TeX engines' I/O (pdfTeX, etc.) is byte-wise. % \newif\iftxinativeunicodecapable \newif\iftxiusebytewiseio \ifx\XeTeXrevision\thisisundefined \ifx\luatexversion\thisisundefined \txinativeunicodecapablefalse \txiusebytewiseiotrue \else \txinativeunicodecapabletrue \txiusebytewiseiofalse \fi \else \txinativeunicodecapabletrue \txiusebytewiseiofalse \fi % Set I/O by bytes instead of UTF-8 sequence for XeTeX and LuaTex % for non-UTF-8 (byte-wise) encodings. % \def\setbytewiseio{% \ifx\XeTeXrevision\thisisundefined \else \XeTeXdefaultencoding "bytes" % For subsequent files to be read \XeTeXinputencoding "bytes" % For document root file % Unfortunately, there seems to be no corresponding XeTeX command for % output encoding. This is a problem for auxiliary index and TOC files. % The only solution would be perhaps to write out @U{...} sequences in % place of non-ASCII characters. \fi \ifx\luatexversion\thisisundefined \else \directlua{ local utf8_char, byte, gsub = unicode.utf8.char, string.byte, string.gsub local function convert_char (char) return utf8_char(byte(char)) end local function convert_line (line) return gsub(line, ".", convert_char) end callback.register("process_input_buffer", convert_line) local function convert_line_out (line) local line_out = "" for c in string.utfvalues(line) do line_out = line_out .. string.char(c) end return line_out end callback.register("process_output_buffer", convert_line_out) } \fi \txiusebytewiseiotrue } % Helpers for encodings. % Set the catcode of characters 128 through 255 to the specified number. % \def\setnonasciicharscatcode#1{% \count255=128 \loop\ifnum\count255<256 \global\catcode\count255=#1\relax \advance\count255 by 1 \repeat } \def\setnonasciicharscatcodenonglobal#1{% \count255=128 \loop\ifnum\count255<256 \catcode\count255=#1\relax \advance\count255 by 1 \repeat } % @documentencoding sets the definition of non-ASCII characters % according to the specified encoding. % \def\documentencoding{\parseargusing\filenamecatcodes\documentencodingzzz} \def\documentencodingzzz#1{% % % Encoding being declared for the document. \def\declaredencoding{\csname #1.enc\endcsname}% % % Supported encodings: names converted to tokens in order to be able % to compare them with \ifx. \def\ascii{\csname US-ASCII.enc\endcsname}% \def\latnine{\csname ISO-8859-15.enc\endcsname}% \def\latone{\csname ISO-8859-1.enc\endcsname}% \def\lattwo{\csname ISO-8859-2.enc\endcsname}% \def\utfeight{\csname UTF-8.enc\endcsname}% % \ifx \declaredencoding \ascii \asciichardefs % \else \ifx \declaredencoding \lattwo \iftxinativeunicodecapable \setbytewiseio \fi \setnonasciicharscatcode\active \lattwochardefs % \else \ifx \declaredencoding \latone \iftxinativeunicodecapable \setbytewiseio \fi \setnonasciicharscatcode\active \latonechardefs % \else \ifx \declaredencoding \latnine \iftxinativeunicodecapable \setbytewiseio \fi \setnonasciicharscatcode\active \latninechardefs % \else \ifx \declaredencoding \utfeight \iftxinativeunicodecapable % For native Unicode handling (XeTeX and LuaTeX) \nativeunicodechardefs \else % For treating UTF-8 as byte sequences (TeX, eTeX and pdfTeX) \setnonasciicharscatcode\active % since we already invoked \utfeightchardefs at the top level % (below), do not re-invoke it, otherwise our check for duplicated % definitions gets triggered. Making non-ascii chars active is % sufficient. \fi % \else \message{Ignoring unknown document encoding: #1.}% % \fi % utfeight \fi % latnine \fi % latone \fi % lattwo \fi % ascii % \ifx\XeTeXrevision\thisisundefined \else \ifx \declaredencoding \utfeight \else \ifx \declaredencoding \ascii \else \message{Warning: XeTeX with non-UTF-8 encodings cannot handle % non-ASCII characters in auxiliary files.}% \fi \fi \fi } % emacs-page % A message to be logged when using a character that isn't available % the default font encoding (OT1). % \def\missingcharmsg#1{\message{Character missing, sorry: #1.}} % Take account of \c (plain) vs. \, (Texinfo) difference. \def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi} % First, make active non-ASCII characters in order for them to be % correctly categorized when TeX reads the replacement text of % macros containing the character definitions. \setnonasciicharscatcode\active % \def\gdefchar#1#2{% \gdef#1{% \ifpassthroughchars \string#1% \else #2% \fi }} % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% \gdefchar^^a0{\tie} \gdefchar^^a1{\exclamdown} \gdefchar^^a2{{\tcfont \char162}} % cent \gdefchar^^a3{\pounds{}} \gdefchar^^a4{{\tcfont \char164}} % currency \gdefchar^^a5{{\tcfont \char165}} % yen \gdefchar^^a6{{\tcfont \char166}} % broken bar \gdefchar^^a7{\S} \gdefchar^^a8{\"{}} \gdefchar^^a9{\copyright{}} \gdefchar^^aa{\ordf} \gdefchar^^ab{\guillemetleft{}} \gdefchar^^ac{\ensuremath\lnot} \gdefchar^^ad{\-} \gdefchar^^ae{\registeredsymbol{}} \gdefchar^^af{\={}} % \gdefchar^^b0{\textdegree} \gdefchar^^b1{$\pm$} \gdefchar^^b2{$^2$} \gdefchar^^b3{$^3$} \gdefchar^^b4{\'{}} \gdefchar^^b5{$\mu$} \gdefchar^^b6{\P} \gdefchar^^b7{\ensuremath\cdot} \gdefchar^^b8{\cedilla\ } \gdefchar^^b9{$^1$} \gdefchar^^ba{\ordm} \gdefchar^^bb{\guillemetright{}} \gdefchar^^bc{$1\over4$} \gdefchar^^bd{$1\over2$} \gdefchar^^be{$3\over4$} \gdefchar^^bf{\questiondown} % \gdefchar^^c0{\`A} \gdefchar^^c1{\'A} \gdefchar^^c2{\^A} \gdefchar^^c3{\~A} \gdefchar^^c4{\"A} \gdefchar^^c5{\ringaccent A} \gdefchar^^c6{\AE} \gdefchar^^c7{\cedilla C} \gdefchar^^c8{\`E} \gdefchar^^c9{\'E} \gdefchar^^ca{\^E} \gdefchar^^cb{\"E} \gdefchar^^cc{\`I} \gdefchar^^cd{\'I} \gdefchar^^ce{\^I} \gdefchar^^cf{\"I} % \gdefchar^^d0{\DH} \gdefchar^^d1{\~N} \gdefchar^^d2{\`O} \gdefchar^^d3{\'O} \gdefchar^^d4{\^O} \gdefchar^^d5{\~O} \gdefchar^^d6{\"O} \gdefchar^^d7{$\times$} \gdefchar^^d8{\O} \gdefchar^^d9{\`U} \gdefchar^^da{\'U} \gdefchar^^db{\^U} \gdefchar^^dc{\"U} \gdefchar^^dd{\'Y} \gdefchar^^de{\TH} \gdefchar^^df{\ss} % \gdefchar^^e0{\`a} \gdefchar^^e1{\'a} \gdefchar^^e2{\^a} \gdefchar^^e3{\~a} \gdefchar^^e4{\"a} \gdefchar^^e5{\ringaccent a} \gdefchar^^e6{\ae} \gdefchar^^e7{\cedilla c} \gdefchar^^e8{\`e} \gdefchar^^e9{\'e} \gdefchar^^ea{\^e} \gdefchar^^eb{\"e} \gdefchar^^ec{\`{\dotless i}} \gdefchar^^ed{\'{\dotless i}} \gdefchar^^ee{\^{\dotless i}} \gdefchar^^ef{\"{\dotless i}} % \gdefchar^^f0{\dh} \gdefchar^^f1{\~n} \gdefchar^^f2{\`o} \gdefchar^^f3{\'o} \gdefchar^^f4{\^o} \gdefchar^^f5{\~o} \gdefchar^^f6{\"o} \gdefchar^^f7{$\div$} \gdefchar^^f8{\o} \gdefchar^^f9{\`u} \gdefchar^^fa{\'u} \gdefchar^^fb{\^u} \gdefchar^^fc{\"u} \gdefchar^^fd{\'y} \gdefchar^^fe{\th} \gdefchar^^ff{\"y} } % Latin9 (ISO-8859-15) encoding character definitions. \def\latninechardefs{% % Encoding is almost identical to Latin1. \latonechardefs % \gdefchar^^a4{\euro{}} \gdefchar^^a6{\v S} \gdefchar^^a8{\v s} \gdefchar^^b4{\v Z} \gdefchar^^b8{\v z} \gdefchar^^bc{\OE} \gdefchar^^bd{\oe} \gdefchar^^be{\"Y} } % Latin2 (ISO-8859-2) character definitions. \def\lattwochardefs{% \gdefchar^^a0{\tie} \gdefchar^^a1{\ogonek{A}} \gdefchar^^a2{\u{}} \gdefchar^^a3{\L} \gdefchar^^a4{\missingcharmsg{CURRENCY SIGN}} \gdefchar^^a5{\v L} \gdefchar^^a6{\'S} \gdefchar^^a7{\S} \gdefchar^^a8{\"{}} \gdefchar^^a9{\v S} \gdefchar^^aa{\cedilla S} \gdefchar^^ab{\v T} \gdefchar^^ac{\'Z} \gdefchar^^ad{\-} \gdefchar^^ae{\v Z} \gdefchar^^af{\dotaccent Z} % \gdefchar^^b0{\textdegree{}} \gdefchar^^b1{\ogonek{a}} \gdefchar^^b2{\ogonek{ }} \gdefchar^^b3{\l} \gdefchar^^b4{\'{}} \gdefchar^^b5{\v l} \gdefchar^^b6{\'s} \gdefchar^^b7{\v{}} \gdefchar^^b8{\cedilla\ } \gdefchar^^b9{\v s} \gdefchar^^ba{\cedilla s} \gdefchar^^bb{\v t} \gdefchar^^bc{\'z} \gdefchar^^bd{\H{}} \gdefchar^^be{\v z} \gdefchar^^bf{\dotaccent z} % \gdefchar^^c0{\'R} \gdefchar^^c1{\'A} \gdefchar^^c2{\^A} \gdefchar^^c3{\u A} \gdefchar^^c4{\"A} \gdefchar^^c5{\'L} \gdefchar^^c6{\'C} \gdefchar^^c7{\cedilla C} \gdefchar^^c8{\v C} \gdefchar^^c9{\'E} \gdefchar^^ca{\ogonek{E}} \gdefchar^^cb{\"E} \gdefchar^^cc{\v E} \gdefchar^^cd{\'I} \gdefchar^^ce{\^I} \gdefchar^^cf{\v D} % \gdefchar^^d0{\DH} \gdefchar^^d1{\'N} \gdefchar^^d2{\v N} \gdefchar^^d3{\'O} \gdefchar^^d4{\^O} \gdefchar^^d5{\H O} \gdefchar^^d6{\"O} \gdefchar^^d7{$\times$} \gdefchar^^d8{\v R} \gdefchar^^d9{\ringaccent U} \gdefchar^^da{\'U} \gdefchar^^db{\H U} \gdefchar^^dc{\"U} \gdefchar^^dd{\'Y} \gdefchar^^de{\cedilla T} \gdefchar^^df{\ss} % \gdefchar^^e0{\'r} \gdefchar^^e1{\'a} \gdefchar^^e2{\^a} \gdefchar^^e3{\u a} \gdefchar^^e4{\"a} \gdefchar^^e5{\'l} \gdefchar^^e6{\'c} \gdefchar^^e7{\cedilla c} \gdefchar^^e8{\v c} \gdefchar^^e9{\'e} \gdefchar^^ea{\ogonek{e}} \gdefchar^^eb{\"e} \gdefchar^^ec{\v e} \gdefchar^^ed{\'{\dotless{i}}} \gdefchar^^ee{\^{\dotless{i}}} \gdefchar^^ef{\v d} % \gdefchar^^f0{\dh} \gdefchar^^f1{\'n} \gdefchar^^f2{\v n} \gdefchar^^f3{\'o} \gdefchar^^f4{\^o} \gdefchar^^f5{\H o} \gdefchar^^f6{\"o} \gdefchar^^f7{$\div$} \gdefchar^^f8{\v r} \gdefchar^^f9{\ringaccent u} \gdefchar^^fa{\'u} \gdefchar^^fb{\H u} \gdefchar^^fc{\"u} \gdefchar^^fd{\'y} \gdefchar^^fe{\cedilla t} \gdefchar^^ff{\dotaccent{}} } % UTF-8 character definitions. % % This code to support UTF-8 is based on LaTeX's utf8.def, with some % changes for Texinfo conventions. It is included here under the GPL by % permission from Frank Mittelbach and the LaTeX team. % \newcount\countUTFx \newcount\countUTFy \newcount\countUTFz \gdef\UTFviiiTwoOctets#1#2{\expandafter \UTFviiiDefined\csname u8:#1\string #2\endcsname} % \gdef\UTFviiiThreeOctets#1#2#3{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname} % \gdef\UTFviiiFourOctets#1#2#3#4{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname} \gdef\UTFviiiDefined#1{% \ifx #1\relax \message{\linenumber Unicode char \string #1 not defined for Texinfo}% \else \expandafter #1% \fi } % Give non-ASCII bytes the active definitions for processing UTF-8 sequences \begingroup \catcode`\~13 \catcode`\$12 \catcode`\"12 % Loop from \countUTFx to \countUTFy, performing \UTFviiiTmp % substituting ~ and $ with a character token of that value. \def\UTFviiiLoop{% \global\catcode\countUTFx\active \uccode`\~\countUTFx \uccode`\$\countUTFx \uppercase\expandafter{\UTFviiiTmp}% \advance\countUTFx by 1 \ifnum\countUTFx < \countUTFy \expandafter\UTFviiiLoop \fi} % For bytes other than the first in a UTF-8 sequence. Not expected to % be expanded except when writing to auxiliary files. \countUTFx = "80 \countUTFy = "C2 \def\UTFviiiTmp{% \gdef~{% \ifpassthroughchars $\fi}}% \UTFviiiLoop \countUTFx = "C2 \countUTFy = "E0 \def\UTFviiiTmp{% \gdef~{% \ifpassthroughchars $% \else\expandafter\UTFviiiTwoOctets\expandafter$\fi}}% \UTFviiiLoop \countUTFx = "E0 \countUTFy = "F0 \def\UTFviiiTmp{% \gdef~{% \ifpassthroughchars $% \else\expandafter\UTFviiiThreeOctets\expandafter$\fi}}% \UTFviiiLoop \countUTFx = "F0 \countUTFy = "F4 \def\UTFviiiTmp{% \gdef~{% \ifpassthroughchars $% \else\expandafter\UTFviiiFourOctets\expandafter$\fi }}% \UTFviiiLoop \endgroup \def\globallet{\global\let} % save some \expandafter's below % @U{xxxx} to produce U+xxxx, if we support it. \def\U#1{% \expandafter\ifx\csname uni:#1\endcsname \relax \iftxinativeunicodecapable % All Unicode characters can be used if native Unicode handling is % active. However, if the font does not have the glyph, % letters are missing. \begingroup \uccode`\.="#1\relax \uppercase{.} \endgroup \else \errhelp = \EMsimple \errmessage{Unicode character U+#1 not supported, sorry}% \fi \else \csname uni:#1\endcsname \fi } % These macros are used here to construct the name of a control % sequence to be defined. \def\UTFviiiTwoOctetsName#1#2{% \csname u8:#1\string #2\endcsname}% \def\UTFviiiThreeOctetsName#1#2#3{% \csname u8:#1\string #2\string #3\endcsname}% \def\UTFviiiFourOctetsName#1#2#3#4{% \csname u8:#1\string #2\string #3\string #4\endcsname}% % For UTF-8 byte sequences (TeX, e-TeX and pdfTeX), % provide a definition macro to replace a Unicode character; % this gets used by the @U command % \begingroup \catcode`\"=12 \catcode`\<=12 \catcode`\.=12 \catcode`\,=12 \catcode`\;=12 \catcode`\!=12 \catcode`\~=13 \gdef\DeclareUnicodeCharacterUTFviii#1#2{% \countUTFz = "#1\relax \begingroup \parseXMLCharref % Give \u8:... its definition. The sequence of seven \expandafter's % expands after the \gdef three times, e.g. % % 1. \UTFviiTwoOctetsName B1 B2 % 2. \csname u8:B1 \string B2 \endcsname % 3. \u8: B1 B2 (a single control sequence token) % \expandafter\expandafter \expandafter\expandafter \expandafter\expandafter \expandafter\gdef \UTFviiiTmp{#2}% % \expandafter\ifx\csname uni:#1\endcsname \relax \else \message{Internal error, already defined: #1}% \fi % % define an additional control sequence for this code point. \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp \endgroup} % % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp % to the corresponding UTF-8 sequence. \gdef\parseXMLCharref{% \ifnum\countUTFz < "A0\relax \errhelp = \EMsimple \errmessage{Cannot define Unicode char value < 00A0}% \else\ifnum\countUTFz < "800\relax \parseUTFviiiA,% \parseUTFviiiB C\UTFviiiTwoOctetsName.,% \else\ifnum\countUTFz < "10000\relax \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiB E\UTFviiiThreeOctetsName.{,;}% \else \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiA!% \parseUTFviiiB F\UTFviiiFourOctetsName.{!,;}% \fi\fi\fi } % Extract a byte from the end of the UTF-8 representation of \countUTFx. % It must be a non-initial byte in the sequence. % Change \uccode of #1 for it to be used in \parseUTFviiiB as one % of the bytes. \gdef\parseUTFviiiA#1{% \countUTFx = \countUTFz \divide\countUTFz by 64 \countUTFy = \countUTFz % Save to be the future value of \countUTFz. \multiply\countUTFz by 64 % \countUTFz is now \countUTFx with the last 5 bits cleared. Subtract % in order to get the last five bits. \advance\countUTFx by -\countUTFz % Convert this to the byte in the UTF-8 sequence. \advance\countUTFx by 128 \uccode `#1\countUTFx \countUTFz = \countUTFy} % Used to put a UTF-8 byte sequence into \UTFviiiTmp % #1 is the increment for \countUTFz to yield a the first byte of the UTF-8 % sequence. % #2 is one of the \UTFviii*OctetsName macros. % #3 is always a full stop (.) % #4 is a template for the other bytes in the sequence. The values for these % bytes is substituted in here with \uppercase using the \uccode's. \gdef\parseUTFviiiB#1#2#3#4{% \advance\countUTFz by "#10\relax \uccode `#3\countUTFz \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} \endgroup % For native Unicode handling (XeTeX and LuaTeX), % provide a definition macro that sets a catcode to `other' non-globally % \def\DeclareUnicodeCharacterNativeOther#1#2{% \catcode"#1=\other } % https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_M % U+0000..U+007F = https://en.wikipedia.org/wiki/Basic_Latin_(Unicode_block) % U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block) % U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A % U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B % % Many of our renditions are less than wonderful, and all the missing % characters are available somewhere. Loading the necessary fonts % awaits user request. We can't truly support Unicode without % reimplementing everything that's been done in LaTeX for many years, % plus probably using luatex or xetex, and who knows what else. % We won't be doing that here in this simple file. But we can try to at % least make most of the characters not bomb out. % \def\unicodechardefs{% \DeclareUnicodeCharacter{00A0}{\tie}% \DeclareUnicodeCharacter{00A1}{\exclamdown}% \DeclareUnicodeCharacter{00A2}{{\tcfont \char162}}% 0242=cent \DeclareUnicodeCharacter{00A3}{\pounds{}}% \DeclareUnicodeCharacter{00A4}{{\tcfont \char164}}% 0244=currency \DeclareUnicodeCharacter{00A5}{{\tcfont \char165}}% 0245=yen \DeclareUnicodeCharacter{00A6}{{\tcfont \char166}}% 0246=brokenbar \DeclareUnicodeCharacter{00A7}{\S}% \DeclareUnicodeCharacter{00A8}{\"{ }}% \DeclareUnicodeCharacter{00A9}{\copyright{}}% \DeclareUnicodeCharacter{00AA}{\ordf}% \DeclareUnicodeCharacter{00AB}{\guillemetleft{}}% \DeclareUnicodeCharacter{00AC}{\ensuremath\lnot}% \DeclareUnicodeCharacter{00AD}{\-}% \DeclareUnicodeCharacter{00AE}{\registeredsymbol{}}% \DeclareUnicodeCharacter{00AF}{\={ }}% % \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}% \DeclareUnicodeCharacter{00B1}{\ensuremath\pm}% \DeclareUnicodeCharacter{00B2}{$^2$}% \DeclareUnicodeCharacter{00B3}{$^3$}% \DeclareUnicodeCharacter{00B4}{\'{ }}% \DeclareUnicodeCharacter{00B5}{$\mu$}% \DeclareUnicodeCharacter{00B6}{\P}% \DeclareUnicodeCharacter{00B7}{\ensuremath\cdot}% \DeclareUnicodeCharacter{00B8}{\cedilla{ }}% \DeclareUnicodeCharacter{00B9}{$^1$}% \DeclareUnicodeCharacter{00BA}{\ordm}% \DeclareUnicodeCharacter{00BB}{\guillemetright{}}% \DeclareUnicodeCharacter{00BC}{$1\over4$}% \DeclareUnicodeCharacter{00BD}{$1\over2$}% \DeclareUnicodeCharacter{00BE}{$3\over4$}% \DeclareUnicodeCharacter{00BF}{\questiondown}% % \DeclareUnicodeCharacter{00C0}{\`A}% \DeclareUnicodeCharacter{00C1}{\'A}% \DeclareUnicodeCharacter{00C2}{\^A}% \DeclareUnicodeCharacter{00C3}{\~A}% \DeclareUnicodeCharacter{00C4}{\"A}% \DeclareUnicodeCharacter{00C5}{\AA}% \DeclareUnicodeCharacter{00C6}{\AE}% \DeclareUnicodeCharacter{00C7}{\cedilla{C}}% \DeclareUnicodeCharacter{00C8}{\`E}% \DeclareUnicodeCharacter{00C9}{\'E}% \DeclareUnicodeCharacter{00CA}{\^E}% \DeclareUnicodeCharacter{00CB}{\"E}% \DeclareUnicodeCharacter{00CC}{\`I}% \DeclareUnicodeCharacter{00CD}{\'I}% \DeclareUnicodeCharacter{00CE}{\^I}% \DeclareUnicodeCharacter{00CF}{\"I}% % \DeclareUnicodeCharacter{00D0}{\DH}% \DeclareUnicodeCharacter{00D1}{\~N}% \DeclareUnicodeCharacter{00D2}{\`O}% \DeclareUnicodeCharacter{00D3}{\'O}% \DeclareUnicodeCharacter{00D4}{\^O}% \DeclareUnicodeCharacter{00D5}{\~O}% \DeclareUnicodeCharacter{00D6}{\"O}% \DeclareUnicodeCharacter{00D7}{\ensuremath\times}% \DeclareUnicodeCharacter{00D8}{\O}% \DeclareUnicodeCharacter{00D9}{\`U}% \DeclareUnicodeCharacter{00DA}{\'U}% \DeclareUnicodeCharacter{00DB}{\^U}% \DeclareUnicodeCharacter{00DC}{\"U}% \DeclareUnicodeCharacter{00DD}{\'Y}% \DeclareUnicodeCharacter{00DE}{\TH}% \DeclareUnicodeCharacter{00DF}{\ss}% % \DeclareUnicodeCharacter{00E0}{\`a}% \DeclareUnicodeCharacter{00E1}{\'a}% \DeclareUnicodeCharacter{00E2}{\^a}% \DeclareUnicodeCharacter{00E3}{\~a}% \DeclareUnicodeCharacter{00E4}{\"a}% \DeclareUnicodeCharacter{00E5}{\aa}% \DeclareUnicodeCharacter{00E6}{\ae}% \DeclareUnicodeCharacter{00E7}{\cedilla{c}}% \DeclareUnicodeCharacter{00E8}{\`e}% \DeclareUnicodeCharacter{00E9}{\'e}% \DeclareUnicodeCharacter{00EA}{\^e}% \DeclareUnicodeCharacter{00EB}{\"e}% \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}% \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}% \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}% \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}% % \DeclareUnicodeCharacter{00F0}{\dh}% \DeclareUnicodeCharacter{00F1}{\~n}% \DeclareUnicodeCharacter{00F2}{\`o}% \DeclareUnicodeCharacter{00F3}{\'o}% \DeclareUnicodeCharacter{00F4}{\^o}% \DeclareUnicodeCharacter{00F5}{\~o}% \DeclareUnicodeCharacter{00F6}{\"o}% \DeclareUnicodeCharacter{00F7}{\ensuremath\div}% \DeclareUnicodeCharacter{00F8}{\o}% \DeclareUnicodeCharacter{00F9}{\`u}% \DeclareUnicodeCharacter{00FA}{\'u}% \DeclareUnicodeCharacter{00FB}{\^u}% \DeclareUnicodeCharacter{00FC}{\"u}% \DeclareUnicodeCharacter{00FD}{\'y}% \DeclareUnicodeCharacter{00FE}{\th}% \DeclareUnicodeCharacter{00FF}{\"y}% % \DeclareUnicodeCharacter{0100}{\=A}% \DeclareUnicodeCharacter{0101}{\=a}% \DeclareUnicodeCharacter{0102}{\u{A}}% \DeclareUnicodeCharacter{0103}{\u{a}}% \DeclareUnicodeCharacter{0104}{\ogonek{A}}% \DeclareUnicodeCharacter{0105}{\ogonek{a}}% \DeclareUnicodeCharacter{0106}{\'C}% \DeclareUnicodeCharacter{0107}{\'c}% \DeclareUnicodeCharacter{0108}{\^C}% \DeclareUnicodeCharacter{0109}{\^c}% \DeclareUnicodeCharacter{010A}{\dotaccent{C}}% \DeclareUnicodeCharacter{010B}{\dotaccent{c}}% \DeclareUnicodeCharacter{010C}{\v{C}}% \DeclareUnicodeCharacter{010D}{\v{c}}% \DeclareUnicodeCharacter{010E}{\v{D}}% \DeclareUnicodeCharacter{010F}{d'}% % \DeclareUnicodeCharacter{0110}{\DH}% \DeclareUnicodeCharacter{0111}{\dh}% \DeclareUnicodeCharacter{0112}{\=E}% \DeclareUnicodeCharacter{0113}{\=e}% \DeclareUnicodeCharacter{0114}{\u{E}}% \DeclareUnicodeCharacter{0115}{\u{e}}% \DeclareUnicodeCharacter{0116}{\dotaccent{E}}% \DeclareUnicodeCharacter{0117}{\dotaccent{e}}% \DeclareUnicodeCharacter{0118}{\ogonek{E}}% \DeclareUnicodeCharacter{0119}{\ogonek{e}}% \DeclareUnicodeCharacter{011A}{\v{E}}% \DeclareUnicodeCharacter{011B}{\v{e}}% \DeclareUnicodeCharacter{011C}{\^G}% \DeclareUnicodeCharacter{011D}{\^g}% \DeclareUnicodeCharacter{011E}{\u{G}}% \DeclareUnicodeCharacter{011F}{\u{g}}% % \DeclareUnicodeCharacter{0120}{\dotaccent{G}}% \DeclareUnicodeCharacter{0121}{\dotaccent{g}}% \DeclareUnicodeCharacter{0122}{\cedilla{G}}% \DeclareUnicodeCharacter{0123}{\cedilla{g}}% \DeclareUnicodeCharacter{0124}{\^H}% \DeclareUnicodeCharacter{0125}{\^h}% \DeclareUnicodeCharacter{0126}{\missingcharmsg{H WITH STROKE}}% \DeclareUnicodeCharacter{0127}{\missingcharmsg{h WITH STROKE}}% \DeclareUnicodeCharacter{0128}{\~I}% \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}% \DeclareUnicodeCharacter{012A}{\=I}% \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}% \DeclareUnicodeCharacter{012C}{\u{I}}% \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}% \DeclareUnicodeCharacter{012E}{\ogonek{I}}% \DeclareUnicodeCharacter{012F}{\ogonek{i}}% % \DeclareUnicodeCharacter{0130}{\dotaccent{I}}% \DeclareUnicodeCharacter{0131}{\dotless{i}}% \DeclareUnicodeCharacter{0132}{IJ}% \DeclareUnicodeCharacter{0133}{ij}% \DeclareUnicodeCharacter{0134}{\^J}% \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}% \DeclareUnicodeCharacter{0136}{\cedilla{K}}% \DeclareUnicodeCharacter{0137}{\cedilla{k}}% \DeclareUnicodeCharacter{0138}{\ensuremath\kappa}% \DeclareUnicodeCharacter{0139}{\'L}% \DeclareUnicodeCharacter{013A}{\'l}% \DeclareUnicodeCharacter{013B}{\cedilla{L}}% \DeclareUnicodeCharacter{013C}{\cedilla{l}}% \DeclareUnicodeCharacter{013D}{L'}% should kern \DeclareUnicodeCharacter{013E}{l'}% should kern \DeclareUnicodeCharacter{013F}{L\U{00B7}}% % \DeclareUnicodeCharacter{0140}{l\U{00B7}}% \DeclareUnicodeCharacter{0141}{\L}% \DeclareUnicodeCharacter{0142}{\l}% \DeclareUnicodeCharacter{0143}{\'N}% \DeclareUnicodeCharacter{0144}{\'n}% \DeclareUnicodeCharacter{0145}{\cedilla{N}}% \DeclareUnicodeCharacter{0146}{\cedilla{n}}% \DeclareUnicodeCharacter{0147}{\v{N}}% \DeclareUnicodeCharacter{0148}{\v{n}}% \DeclareUnicodeCharacter{0149}{'n}% \DeclareUnicodeCharacter{014A}{\missingcharmsg{ENG}}% \DeclareUnicodeCharacter{014B}{\missingcharmsg{eng}}% \DeclareUnicodeCharacter{014C}{\=O}% \DeclareUnicodeCharacter{014D}{\=o}% \DeclareUnicodeCharacter{014E}{\u{O}}% \DeclareUnicodeCharacter{014F}{\u{o}}% % \DeclareUnicodeCharacter{0150}{\H{O}}% \DeclareUnicodeCharacter{0151}{\H{o}}% \DeclareUnicodeCharacter{0152}{\OE}% \DeclareUnicodeCharacter{0153}{\oe}% \DeclareUnicodeCharacter{0154}{\'R}% \DeclareUnicodeCharacter{0155}{\'r}% \DeclareUnicodeCharacter{0156}{\cedilla{R}}% \DeclareUnicodeCharacter{0157}{\cedilla{r}}% \DeclareUnicodeCharacter{0158}{\v{R}}% \DeclareUnicodeCharacter{0159}{\v{r}}% \DeclareUnicodeCharacter{015A}{\'S}% \DeclareUnicodeCharacter{015B}{\'s}% \DeclareUnicodeCharacter{015C}{\^S}% \DeclareUnicodeCharacter{015D}{\^s}% \DeclareUnicodeCharacter{015E}{\cedilla{S}}% \DeclareUnicodeCharacter{015F}{\cedilla{s}}% % \DeclareUnicodeCharacter{0160}{\v{S}}% \DeclareUnicodeCharacter{0161}{\v{s}}% \DeclareUnicodeCharacter{0162}{\cedilla{T}}% \DeclareUnicodeCharacter{0163}{\cedilla{t}}% \DeclareUnicodeCharacter{0164}{\v{T}}% \DeclareUnicodeCharacter{0165}{\v{t}}% \DeclareUnicodeCharacter{0166}{\missingcharmsg{H WITH STROKE}}% \DeclareUnicodeCharacter{0167}{\missingcharmsg{h WITH STROKE}}% \DeclareUnicodeCharacter{0168}{\~U}% \DeclareUnicodeCharacter{0169}{\~u}% \DeclareUnicodeCharacter{016A}{\=U}% \DeclareUnicodeCharacter{016B}{\=u}% \DeclareUnicodeCharacter{016C}{\u{U}}% \DeclareUnicodeCharacter{016D}{\u{u}}% \DeclareUnicodeCharacter{016E}{\ringaccent{U}}% \DeclareUnicodeCharacter{016F}{\ringaccent{u}}% % \DeclareUnicodeCharacter{0170}{\H{U}}% \DeclareUnicodeCharacter{0171}{\H{u}}% \DeclareUnicodeCharacter{0172}{\ogonek{U}}% \DeclareUnicodeCharacter{0173}{\ogonek{u}}% \DeclareUnicodeCharacter{0174}{\^W}% \DeclareUnicodeCharacter{0175}{\^w}% \DeclareUnicodeCharacter{0176}{\^Y}% \DeclareUnicodeCharacter{0177}{\^y}% \DeclareUnicodeCharacter{0178}{\"Y}% \DeclareUnicodeCharacter{0179}{\'Z}% \DeclareUnicodeCharacter{017A}{\'z}% \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}% \DeclareUnicodeCharacter{017C}{\dotaccent{z}}% \DeclareUnicodeCharacter{017D}{\v{Z}}% \DeclareUnicodeCharacter{017E}{\v{z}}% \DeclareUnicodeCharacter{017F}{\missingcharmsg{LONG S}}% % \DeclareUnicodeCharacter{01C4}{D\v{Z}}% \DeclareUnicodeCharacter{01C5}{D\v{z}}% \DeclareUnicodeCharacter{01C6}{d\v{z}}% \DeclareUnicodeCharacter{01C7}{LJ}% \DeclareUnicodeCharacter{01C8}{Lj}% \DeclareUnicodeCharacter{01C9}{lj}% \DeclareUnicodeCharacter{01CA}{NJ}% \DeclareUnicodeCharacter{01CB}{Nj}% \DeclareUnicodeCharacter{01CC}{nj}% \DeclareUnicodeCharacter{01CD}{\v{A}}% \DeclareUnicodeCharacter{01CE}{\v{a}}% \DeclareUnicodeCharacter{01CF}{\v{I}}% % \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}% \DeclareUnicodeCharacter{01D1}{\v{O}}% \DeclareUnicodeCharacter{01D2}{\v{o}}% \DeclareUnicodeCharacter{01D3}{\v{U}}% \DeclareUnicodeCharacter{01D4}{\v{u}}% % \DeclareUnicodeCharacter{01E2}{\={\AE}}% \DeclareUnicodeCharacter{01E3}{\={\ae}}% \DeclareUnicodeCharacter{01E6}{\v{G}}% \DeclareUnicodeCharacter{01E7}{\v{g}}% \DeclareUnicodeCharacter{01E8}{\v{K}}% \DeclareUnicodeCharacter{01E9}{\v{k}}% % \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}% \DeclareUnicodeCharacter{01F1}{DZ}% \DeclareUnicodeCharacter{01F2}{Dz}% \DeclareUnicodeCharacter{01F3}{dz}% \DeclareUnicodeCharacter{01F4}{\'G}% \DeclareUnicodeCharacter{01F5}{\'g}% \DeclareUnicodeCharacter{01F8}{\`N}% \DeclareUnicodeCharacter{01F9}{\`n}% \DeclareUnicodeCharacter{01FC}{\'{\AE}}% \DeclareUnicodeCharacter{01FD}{\'{\ae}}% \DeclareUnicodeCharacter{01FE}{\'{\O}}% \DeclareUnicodeCharacter{01FF}{\'{\o}}% % \DeclareUnicodeCharacter{021E}{\v{H}}% \DeclareUnicodeCharacter{021F}{\v{h}}% % \DeclareUnicodeCharacter{0226}{\dotaccent{A}}% \DeclareUnicodeCharacter{0227}{\dotaccent{a}}% \DeclareUnicodeCharacter{0228}{\cedilla{E}}% \DeclareUnicodeCharacter{0229}{\cedilla{e}}% \DeclareUnicodeCharacter{022E}{\dotaccent{O}}% \DeclareUnicodeCharacter{022F}{\dotaccent{o}}% % \DeclareUnicodeCharacter{0232}{\=Y}% \DeclareUnicodeCharacter{0233}{\=y}% \DeclareUnicodeCharacter{0237}{\dotless{j}}% % \DeclareUnicodeCharacter{02DB}{\ogonek{ }}% % % Greek letters upper case \DeclareUnicodeCharacter{0391}{{\it A}}% \DeclareUnicodeCharacter{0392}{{\it B}}% \DeclareUnicodeCharacter{0393}{\ensuremath{\mit\Gamma}}% \DeclareUnicodeCharacter{0394}{\ensuremath{\mit\Delta}}% \DeclareUnicodeCharacter{0395}{{\it E}}% \DeclareUnicodeCharacter{0396}{{\it Z}}% \DeclareUnicodeCharacter{0397}{{\it H}}% \DeclareUnicodeCharacter{0398}{\ensuremath{\mit\Theta}}% \DeclareUnicodeCharacter{0399}{{\it I}}% \DeclareUnicodeCharacter{039A}{{\it K}}% \DeclareUnicodeCharacter{039B}{\ensuremath{\mit\Lambda}}% \DeclareUnicodeCharacter{039C}{{\it M}}% \DeclareUnicodeCharacter{039D}{{\it N}}% \DeclareUnicodeCharacter{039E}{\ensuremath{\mit\Xi}}% \DeclareUnicodeCharacter{039F}{{\it O}}% \DeclareUnicodeCharacter{03A0}{\ensuremath{\mit\Pi}}% \DeclareUnicodeCharacter{03A1}{{\it P}}% %\DeclareUnicodeCharacter{03A2}{} % none - corresponds to final sigma \DeclareUnicodeCharacter{03A3}{\ensuremath{\mit\Sigma}}% \DeclareUnicodeCharacter{03A4}{{\it T}}% \DeclareUnicodeCharacter{03A5}{\ensuremath{\mit\Upsilon}}% \DeclareUnicodeCharacter{03A6}{\ensuremath{\mit\Phi}}% \DeclareUnicodeCharacter{03A7}{{\it X}}% \DeclareUnicodeCharacter{03A8}{\ensuremath{\mit\Psi}}% \DeclareUnicodeCharacter{03A9}{\ensuremath{\mit\Omega}}% % % Vowels with accents \DeclareUnicodeCharacter{0390}{\ensuremath{\ddot{\acute\iota}}}% \DeclareUnicodeCharacter{03AC}{\ensuremath{\acute\alpha}}% \DeclareUnicodeCharacter{03AD}{\ensuremath{\acute\epsilon}}% \DeclareUnicodeCharacter{03AE}{\ensuremath{\acute\eta}}% \DeclareUnicodeCharacter{03AF}{\ensuremath{\acute\iota}}% \DeclareUnicodeCharacter{03B0}{\ensuremath{\acute{\ddot\upsilon}}}% % % Standalone accent \DeclareUnicodeCharacter{0384}{\ensuremath{\acute{\ }}}% % % Greek letters lower case \DeclareUnicodeCharacter{03B1}{\ensuremath\alpha}% \DeclareUnicodeCharacter{03B2}{\ensuremath\beta}% \DeclareUnicodeCharacter{03B3}{\ensuremath\gamma}% \DeclareUnicodeCharacter{03B4}{\ensuremath\delta}% \DeclareUnicodeCharacter{03B5}{\ensuremath\epsilon}% \DeclareUnicodeCharacter{03B6}{\ensuremath\zeta}% \DeclareUnicodeCharacter{03B7}{\ensuremath\eta}% \DeclareUnicodeCharacter{03B8}{\ensuremath\theta}% \DeclareUnicodeCharacter{03B9}{\ensuremath\iota}% \DeclareUnicodeCharacter{03BA}{\ensuremath\kappa}% \DeclareUnicodeCharacter{03BB}{\ensuremath\lambda}% \DeclareUnicodeCharacter{03BC}{\ensuremath\mu}% \DeclareUnicodeCharacter{03BD}{\ensuremath\nu}% \DeclareUnicodeCharacter{03BE}{\ensuremath\xi}% \DeclareUnicodeCharacter{03BF}{{\it o}}% omicron \DeclareUnicodeCharacter{03C0}{\ensuremath\pi}% \DeclareUnicodeCharacter{03C1}{\ensuremath\rho}% \DeclareUnicodeCharacter{03C2}{\ensuremath\varsigma}% \DeclareUnicodeCharacter{03C3}{\ensuremath\sigma}% \DeclareUnicodeCharacter{03C4}{\ensuremath\tau}% \DeclareUnicodeCharacter{03C5}{\ensuremath\upsilon}% \DeclareUnicodeCharacter{03C6}{\ensuremath\phi}% \DeclareUnicodeCharacter{03C7}{\ensuremath\chi}% \DeclareUnicodeCharacter{03C8}{\ensuremath\psi}% \DeclareUnicodeCharacter{03C9}{\ensuremath\omega}% % % More Greek vowels with accents \DeclareUnicodeCharacter{03CA}{\ensuremath{\ddot\iota}}% \DeclareUnicodeCharacter{03CB}{\ensuremath{\ddot\upsilon}}% \DeclareUnicodeCharacter{03CC}{\ensuremath{\acute o}}% \DeclareUnicodeCharacter{03CD}{\ensuremath{\acute\upsilon}}% \DeclareUnicodeCharacter{03CE}{\ensuremath{\acute\omega}}% % % Variant Greek letters \DeclareUnicodeCharacter{03D1}{\ensuremath\vartheta}% \DeclareUnicodeCharacter{03D6}{\ensuremath\varpi}% \DeclareUnicodeCharacter{03F1}{\ensuremath\varrho}% % \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}% \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}% \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}% \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}% \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}% \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}% \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}% \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}% \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}% \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}% \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}% \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}% % \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}% \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}% % \DeclareUnicodeCharacter{1E20}{\=G}% \DeclareUnicodeCharacter{1E21}{\=g}% \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}% \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}% \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}% \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}% \DeclareUnicodeCharacter{1E26}{\"H}% \DeclareUnicodeCharacter{1E27}{\"h}% % \DeclareUnicodeCharacter{1E30}{\'K}% \DeclareUnicodeCharacter{1E31}{\'k}% \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}% \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}% \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}% \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}% \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}% \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}% \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}% \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}% \DeclareUnicodeCharacter{1E3E}{\'M}% \DeclareUnicodeCharacter{1E3F}{\'m}% % \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}% \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}% \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}% \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}% \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}% \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}% \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}% \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}% \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}% \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}% % \DeclareUnicodeCharacter{1E54}{\'P}% \DeclareUnicodeCharacter{1E55}{\'p}% \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}% \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}% \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}% \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}% \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}% \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}% \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}% \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}% % \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}% \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}% \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}% \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}% \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}% \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}% \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}% \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}% \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}% \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}% % \DeclareUnicodeCharacter{1E7C}{\~V}% \DeclareUnicodeCharacter{1E7D}{\~v}% \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}% \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}% % \DeclareUnicodeCharacter{1E80}{\`W}% \DeclareUnicodeCharacter{1E81}{\`w}% \DeclareUnicodeCharacter{1E82}{\'W}% \DeclareUnicodeCharacter{1E83}{\'w}% \DeclareUnicodeCharacter{1E84}{\"W}% \DeclareUnicodeCharacter{1E85}{\"w}% \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}% \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}% \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}% \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}% \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}% \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}% \DeclareUnicodeCharacter{1E8C}{\"X}% \DeclareUnicodeCharacter{1E8D}{\"x}% \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}% \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}% % \DeclareUnicodeCharacter{1E90}{\^Z}% \DeclareUnicodeCharacter{1E91}{\^z}% \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}% \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}% \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}% \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}% \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}% \DeclareUnicodeCharacter{1E97}{\"t}% \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}% \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}% % \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}% \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}% % \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}% \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}% \DeclareUnicodeCharacter{1EBC}{\~E}% \DeclareUnicodeCharacter{1EBD}{\~e}% % \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}% \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}% \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}% \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}% % \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}% \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}% % \DeclareUnicodeCharacter{1EF2}{\`Y}% \DeclareUnicodeCharacter{1EF3}{\`y}% \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}% % \DeclareUnicodeCharacter{1EF8}{\~Y}% \DeclareUnicodeCharacter{1EF9}{\~y}% % % Punctuation \DeclareUnicodeCharacter{2013}{--}% \DeclareUnicodeCharacter{2014}{---}% \DeclareUnicodeCharacter{2018}{\quoteleft{}}% \DeclareUnicodeCharacter{2019}{\quoteright{}}% \DeclareUnicodeCharacter{201A}{\quotesinglbase{}}% \DeclareUnicodeCharacter{201C}{\quotedblleft{}}% \DeclareUnicodeCharacter{201D}{\quotedblright{}}% \DeclareUnicodeCharacter{201E}{\quotedblbase{}}% \DeclareUnicodeCharacter{2020}{\ensuremath\dagger}% \DeclareUnicodeCharacter{2021}{\ensuremath\ddagger}% \DeclareUnicodeCharacter{2022}{\bullet{}}% \DeclareUnicodeCharacter{202F}{\thinspace}% \DeclareUnicodeCharacter{2026}{\dots{}}% \DeclareUnicodeCharacter{2039}{\guilsinglleft{}}% \DeclareUnicodeCharacter{203A}{\guilsinglright{}}% % \DeclareUnicodeCharacter{20AC}{\euro{}}% % \DeclareUnicodeCharacter{2192}{\expansion{}}% \DeclareUnicodeCharacter{21D2}{\result{}}% % % Mathematical symbols \DeclareUnicodeCharacter{2200}{\ensuremath\forall}% \DeclareUnicodeCharacter{2203}{\ensuremath\exists}% \DeclareUnicodeCharacter{2208}{\ensuremath\in}% \DeclareUnicodeCharacter{2212}{\minus{}}% \DeclareUnicodeCharacter{2217}{\ast}% \DeclareUnicodeCharacter{221E}{\ensuremath\infty}% \DeclareUnicodeCharacter{2225}{\ensuremath\parallel}% \DeclareUnicodeCharacter{2227}{\ensuremath\wedge}% \DeclareUnicodeCharacter{2229}{\ensuremath\cap}% \DeclareUnicodeCharacter{2261}{\equiv{}}% \DeclareUnicodeCharacter{2264}{\ensuremath\leq}% \DeclareUnicodeCharacter{2265}{\ensuremath\geq}% \DeclareUnicodeCharacter{2282}{\ensuremath\subset}% \DeclareUnicodeCharacter{2287}{\ensuremath\supseteq}% % \DeclareUnicodeCharacter{2016}{\ensuremath\Vert}% \DeclareUnicodeCharacter{2032}{\ensuremath\prime}% \DeclareUnicodeCharacter{210F}{\ensuremath\hbar}% \DeclareUnicodeCharacter{2111}{\ensuremath\Im}% \DeclareUnicodeCharacter{2113}{\ensuremath\ell}% \DeclareUnicodeCharacter{2118}{\ensuremath\wp}% \DeclareUnicodeCharacter{211C}{\ensuremath\Re}% \DeclareUnicodeCharacter{2127}{\ensuremath\mho}% \DeclareUnicodeCharacter{2135}{\ensuremath\aleph}% \DeclareUnicodeCharacter{2190}{\ensuremath\leftarrow}% \DeclareUnicodeCharacter{2191}{\ensuremath\uparrow}% \DeclareUnicodeCharacter{2193}{\ensuremath\downarrow}% \DeclareUnicodeCharacter{2194}{\ensuremath\leftrightarrow}% \DeclareUnicodeCharacter{2195}{\ensuremath\updownarrow}% \DeclareUnicodeCharacter{2196}{\ensuremath\nwarrow}% \DeclareUnicodeCharacter{2197}{\ensuremath\nearrow}% \DeclareUnicodeCharacter{2198}{\ensuremath\searrow}% \DeclareUnicodeCharacter{2199}{\ensuremath\swarrow}% \DeclareUnicodeCharacter{21A6}{\ensuremath\mapsto}% \DeclareUnicodeCharacter{21A9}{\ensuremath\hookleftarrow}% \DeclareUnicodeCharacter{21AA}{\ensuremath\hookrightarrow}% \DeclareUnicodeCharacter{21BC}{\ensuremath\leftharpoonup}% \DeclareUnicodeCharacter{21BD}{\ensuremath\leftharpoondown}% \DeclareUnicodeCharacter{21BE}{\ensuremath\upharpoonright}% \DeclareUnicodeCharacter{21C0}{\ensuremath\rightharpoonup}% \DeclareUnicodeCharacter{21C1}{\ensuremath\rightharpoondown}% \DeclareUnicodeCharacter{21CC}{\ensuremath\rightleftharpoons}% \DeclareUnicodeCharacter{21D0}{\ensuremath\Leftarrow}% \DeclareUnicodeCharacter{21D1}{\ensuremath\Uparrow}% \DeclareUnicodeCharacter{21D3}{\ensuremath\Downarrow}% \DeclareUnicodeCharacter{21D4}{\ensuremath\Leftrightarrow}% \DeclareUnicodeCharacter{21D5}{\ensuremath\Updownarrow}% \DeclareUnicodeCharacter{21DD}{\ensuremath\leadsto}% \DeclareUnicodeCharacter{2201}{\ensuremath\complement}% \DeclareUnicodeCharacter{2202}{\ensuremath\partial}% \DeclareUnicodeCharacter{2205}{\ensuremath\emptyset}% \DeclareUnicodeCharacter{2207}{\ensuremath\nabla}% \DeclareUnicodeCharacter{2209}{\ensuremath\notin}% \DeclareUnicodeCharacter{220B}{\ensuremath\owns}% \DeclareUnicodeCharacter{220F}{\ensuremath\prod}% \DeclareUnicodeCharacter{2210}{\ensuremath\coprod}% \DeclareUnicodeCharacter{2211}{\ensuremath\sum}% \DeclareUnicodeCharacter{2213}{\ensuremath\mp}% \DeclareUnicodeCharacter{2218}{\ensuremath\circ}% \DeclareUnicodeCharacter{221A}{\ensuremath\surd}% \DeclareUnicodeCharacter{221D}{\ensuremath\propto}% \DeclareUnicodeCharacter{2220}{\ensuremath\angle}% \DeclareUnicodeCharacter{2223}{\ensuremath\mid}% \DeclareUnicodeCharacter{2228}{\ensuremath\vee}% \DeclareUnicodeCharacter{222A}{\ensuremath\cup}% \DeclareUnicodeCharacter{222B}{\ensuremath\smallint}% \DeclareUnicodeCharacter{222E}{\ensuremath\oint}% \DeclareUnicodeCharacter{223C}{\ensuremath\sim}% \DeclareUnicodeCharacter{2240}{\ensuremath\wr}% \DeclareUnicodeCharacter{2243}{\ensuremath\simeq}% \DeclareUnicodeCharacter{2245}{\ensuremath\cong}% \DeclareUnicodeCharacter{2248}{\ensuremath\approx}% \DeclareUnicodeCharacter{224D}{\ensuremath\asymp}% \DeclareUnicodeCharacter{2250}{\ensuremath\doteq}% \DeclareUnicodeCharacter{2260}{\ensuremath\neq}% \DeclareUnicodeCharacter{226A}{\ensuremath\ll}% \DeclareUnicodeCharacter{226B}{\ensuremath\gg}% \DeclareUnicodeCharacter{227A}{\ensuremath\prec}% \DeclareUnicodeCharacter{227B}{\ensuremath\succ}% \DeclareUnicodeCharacter{2283}{\ensuremath\supset}% \DeclareUnicodeCharacter{2286}{\ensuremath\subseteq}% \DeclareUnicodeCharacter{228E}{\ensuremath\uplus}% \DeclareUnicodeCharacter{228F}{\ensuremath\sqsubset}% \DeclareUnicodeCharacter{2290}{\ensuremath\sqsupset}% \DeclareUnicodeCharacter{2291}{\ensuremath\sqsubseteq}% \DeclareUnicodeCharacter{2292}{\ensuremath\sqsupseteq}% \DeclareUnicodeCharacter{2293}{\ensuremath\sqcap}% \DeclareUnicodeCharacter{2294}{\ensuremath\sqcup}% \DeclareUnicodeCharacter{2295}{\ensuremath\oplus}% \DeclareUnicodeCharacter{2296}{\ensuremath\ominus}% \DeclareUnicodeCharacter{2297}{\ensuremath\otimes}% \DeclareUnicodeCharacter{2298}{\ensuremath\oslash}% \DeclareUnicodeCharacter{2299}{\ensuremath\odot}% \DeclareUnicodeCharacter{22A2}{\ensuremath\vdash}% \DeclareUnicodeCharacter{22A3}{\ensuremath\dashv}% \DeclareUnicodeCharacter{22A4}{\ensuremath\ptextop}% \DeclareUnicodeCharacter{22A5}{\ensuremath\bot}% \DeclareUnicodeCharacter{22A8}{\ensuremath\models}% \DeclareUnicodeCharacter{22B4}{\ensuremath\unlhd}% \DeclareUnicodeCharacter{22B5}{\ensuremath\unrhd}% \DeclareUnicodeCharacter{22C0}{\ensuremath\bigwedge}% \DeclareUnicodeCharacter{22C1}{\ensuremath\bigvee}% \DeclareUnicodeCharacter{22C2}{\ensuremath\bigcap}% \DeclareUnicodeCharacter{22C3}{\ensuremath\bigcup}% \DeclareUnicodeCharacter{22C4}{\ensuremath\diamond}% \DeclareUnicodeCharacter{22C5}{\ensuremath\cdot}% \DeclareUnicodeCharacter{22C6}{\ensuremath\star}% \DeclareUnicodeCharacter{22C8}{\ensuremath\bowtie}% \DeclareUnicodeCharacter{2308}{\ensuremath\lceil}% \DeclareUnicodeCharacter{2309}{\ensuremath\rceil}% \DeclareUnicodeCharacter{230A}{\ensuremath\lfloor}% \DeclareUnicodeCharacter{230B}{\ensuremath\rfloor}% \DeclareUnicodeCharacter{2322}{\ensuremath\frown}% \DeclareUnicodeCharacter{2323}{\ensuremath\smile}% % \DeclareUnicodeCharacter{25A1}{\ensuremath\Box}% \DeclareUnicodeCharacter{25B3}{\ensuremath\triangle}% \DeclareUnicodeCharacter{25B7}{\ensuremath\triangleright}% \DeclareUnicodeCharacter{25BD}{\ensuremath\bigtriangledown}% \DeclareUnicodeCharacter{25C1}{\ensuremath\triangleleft}% \DeclareUnicodeCharacter{25C7}{\ensuremath\Diamond}% \DeclareUnicodeCharacter{2660}{\ensuremath\spadesuit}% \DeclareUnicodeCharacter{2661}{\ensuremath\heartsuit}% \DeclareUnicodeCharacter{2662}{\ensuremath\diamondsuit}% \DeclareUnicodeCharacter{2663}{\ensuremath\clubsuit}% \DeclareUnicodeCharacter{266D}{\ensuremath\flat}% \DeclareUnicodeCharacter{266E}{\ensuremath\natural}% \DeclareUnicodeCharacter{266F}{\ensuremath\sharp}% \DeclareUnicodeCharacter{26AA}{\ensuremath\bigcirc}% \DeclareUnicodeCharacter{27B9}{\ensuremath\rangle}% \DeclareUnicodeCharacter{27C2}{\ensuremath\perp}% \DeclareUnicodeCharacter{27E8}{\ensuremath\langle}% \DeclareUnicodeCharacter{27F5}{\ensuremath\longleftarrow}% \DeclareUnicodeCharacter{27F6}{\ensuremath\longrightarrow}% \DeclareUnicodeCharacter{27F7}{\ensuremath\longleftrightarrow}% \DeclareUnicodeCharacter{27FC}{\ensuremath\longmapsto}% \DeclareUnicodeCharacter{29F5}{\ensuremath\setminus}% \DeclareUnicodeCharacter{2A00}{\ensuremath\bigodot}% \DeclareUnicodeCharacter{2A01}{\ensuremath\bigoplus}% \DeclareUnicodeCharacter{2A02}{\ensuremath\bigotimes}% \DeclareUnicodeCharacter{2A04}{\ensuremath\biguplus}% \DeclareUnicodeCharacter{2A06}{\ensuremath\bigsqcup}% \DeclareUnicodeCharacter{2A1D}{\ensuremath\Join}% \DeclareUnicodeCharacter{2A3F}{\ensuremath\amalg}% \DeclareUnicodeCharacter{2AAF}{\ensuremath\preceq}% \DeclareUnicodeCharacter{2AB0}{\ensuremath\succeq}% % \global\mathchardef\checkmark="1370% actually the square root sign \DeclareUnicodeCharacter{2713}{\ensuremath\checkmark}% }% end of \unicodechardefs % UTF-8 byte sequence (pdfTeX) definitions (replacing and @U command) % It makes the setting that replace UTF-8 byte sequence. \def\utfeightchardefs{% \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterUTFviii \unicodechardefs } % Whether the active definitions of non-ASCII characters expand to % non-active tokens with the same character code. This is used to % write characters literally, instead of using active definitions for % printing the correct glyphs. \newif\ifpassthroughchars \passthroughcharsfalse % For native Unicode handling (XeTeX and LuaTeX), % provide a definition macro to replace/pass-through a Unicode character % \def\DeclareUnicodeCharacterNative#1#2{% \catcode"#1=\active \def\dodeclareunicodecharacternative##1##2##3{% \begingroup \uccode`\~="##2\relax \uppercase{\gdef~}{% \ifpassthroughchars ##1% \else ##3% \fi } \endgroup } \begingroup \uccode`\.="#1\relax \uppercase{\def\UTFNativeTmp{.}}% \expandafter\dodeclareunicodecharacternative\UTFNativeTmp{#1}{#2}% \endgroup } % Native Unicode handling (XeTeX and LuaTeX) character replacing definition. % It activates the setting that replaces Unicode characters. \def\nativeunicodechardefs{% \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNative \unicodechardefs } % For native Unicode handling (XeTeX and LuaTeX), % make the character token expand % to the sequences given in \unicodechardefs for printing. \def\DeclareUnicodeCharacterNativeAtU#1#2{% \def\UTFAtUTmp{#2} \expandafter\globallet\csname uni:#1\endcsname \UTFAtUTmp } % @U command definitions for native Unicode handling (XeTeX and LuaTeX). \def\nativeunicodechardefsatu{% \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNativeAtU \unicodechardefs } % US-ASCII character definitions. \def\asciichardefs{% nothing need be done \relax } % define all Unicode characters we know about, for the sake of @U. \iftxinativeunicodecapable \nativeunicodechardefsatu \else \utfeightchardefs \fi % Make non-ASCII characters printable again for compatibility with % existing Texinfo documents that may use them, even without declaring a % document encoding. % \setnonasciicharscatcode \other \message{formatting,} \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt \secheadingskip = 12pt plus 3pt minus 2pt \subsecheadingskip = 9pt plus 2pt minus 2pt % Prevent underfull vbox error messages. \vbadness = 10000 % Don't be very finicky about underfull hboxes, either. \hbadness = 6666 % Following George Bush, get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 % Use TeX 3.0's \emergencystretch to help line breaking, but if we're % using an old version of TeX, don't do anything. We want the amount of % stretch added to depend on the line length, hence the dependence on % \hsize. We call this whenever the paper size is set. % \def\setemergencystretch{% \ifx\emergencystretch\thisisundefined % Allow us to assign to \emergencystretch anyway. \def\emergencystretch{\dimen0}% \else \emergencystretch = .15\hsize \fi } % Parameters in order: 1) textheight; 2) textwidth; % 3) voffset; 4) hoffset; 5) binding offset; 6) topskip; % 7) physical page height; 8) physical page width. % % We also call \setleading{\textleading}, so the caller should define % \textleading. The caller should also set \parskip. % \def\internalpagesizes#1#2#3#4#5#6#7#8{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip % \vsize = #1\relax \advance\vsize by \topskip \outervsize = \vsize \advance\outervsize by 2\topandbottommargin \txipageheight = \vsize % \hsize = #2\relax \outerhsize = \hsize \advance\outerhsize by 0.5in \txipagewidth = \hsize % \normaloffset = #4\relax \bindingoffset = #5\relax % \ifpdf \pdfpageheight #7\relax \pdfpagewidth #8\relax % if we don't reset these, they will remain at "1 true in" of % whatever layout pdftex was dumped with. \pdfhorigin = 1 true in \pdfvorigin = 1 true in \else \ifx\XeTeXrevision\thisisundefined \else \pdfpageheight #7\relax \pdfpagewidth #8\relax % XeTeX does not have \pdfhorigin and \pdfvorigin. \fi \fi % \setleading{\textleading} % \parindent = \defaultparindent \setemergencystretch } % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % If page is nothing but text, make it come out even. \internalpagesizes{607.2pt}{6in}% that's 46 lines {\voffset}{.25in}% {\bindingoffset}{36pt}% {11in}{8.5in}% }} % Use @smallbook to reset parameters for 7x9.25 trim size. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \textleading = 12pt % \internalpagesizes{7.5in}{5in}% {-.2in}{0in}% {\bindingoffset}{16pt}% {9.25in}{7in}% % \lispnarrowing = 0.3in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = .5cm }} % Use @smallerbook to reset parameters for 6x9 trim size. % (Just testing, parameters still in flux.) \def\smallerbook{{\globaldefs = 1 \parskip = 1.5pt plus 1pt \textleading = 12pt % \internalpagesizes{7.4in}{4.8in}% {-.2in}{-.4in}% {0pt}{14pt}% {9in}{6in}% % \lispnarrowing = 0.25in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = .4cm }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % Double-side printing via postscript on Laserjet 4050 % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. % To change the settings for a different printer or situation, adjust % \normaloffset until the front-side and back-side texts align. Then % do the same for \bindingoffset. You can set these for testing in % your texinfo source file like this: % @tex % \global\normaloffset = -6mm % \global\bindingoffset = 10mm % @end tex \internalpagesizes{673.2pt}{160mm}% that's 51 lines {\voffset}{\hoffset}% {\bindingoffset}{44pt}% {297mm}{210mm}% % \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = 5mm }} % Use @afivepaper to print on European A5 paper. % From romildo@urano.iceb.ufop.br, 2 July 2000. % He also recommends making @example and @lisp be small. \def\afivepaper{{\globaldefs = 1 \parskip = 2pt plus 1pt minus 0.1pt \textleading = 12.5pt % \internalpagesizes{160mm}{120mm}% {\voffset}{\hoffset}% {\bindingoffset}{8pt}% {210mm}{148mm}% % \lispnarrowing = 0.2in \tolerance = 800 \hfuzz = 1.2pt \contentsrightmargin = 0pt \defbodyindent = 2mm \tableindent = 12mm }} % A specific text layout, 24x15cm overall, intended for A4 paper. \def\afourlatex{{\globaldefs = 1 \afourpaper \internalpagesizes{237mm}{150mm}% {\voffset}{4.6mm}% {\bindingoffset}{7mm}% {297mm}{210mm}% % % Must explicitly reset to 0 because we call \afourpaper. \globaldefs = 0 }} % Use @afourwide to print on A4 paper in landscape format. \def\afourwide{{\globaldefs = 1 \afourpaper \internalpagesizes{241mm}{165mm}% {\voffset}{-2.95mm}% {\bindingoffset}{7mm}% {297mm}{210mm}% \globaldefs = 0 }} % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, % and/or leading, also. Or perhaps we should compute them somehow. % \parseargdef\pagesizes{\pagesizesyyy #1,,\finish} \def\pagesizesyyy#1,#2,#3\finish{{% \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi \globaldefs = 1 % \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % \dimen0 = #1\relax \advance\dimen0 by \voffset % \dimen2 = \hsize \advance\dimen2 by \normaloffset % \internalpagesizes{#1}{\hsize}% {\voffset}{\normaloffset}% {\bindingoffset}{44pt}% {\dimen0}{\dimen2}% }} % Set default to letter. % \letterpaper \message{and turning on texinfo input format.} \def^^L{\par} % remove \outer, so ^L can appear in an @comment % DEL is a comment character, in case @c does not suffice. \catcode`\^^? = 14 % Define macros to output various characters with catcode for normal text. \catcode`\"=\other \def\normaldoublequote{"} \catcode`\$=\other \def\normaldollar{$}%$ font-lock fix \catcode`\+=\other \def\normalplus{+} \catcode`\<=\other \def\normalless{<} \catcode`\>=\other \def\normalgreater{>} \catcode`\^=\other \def\normalcaret{^} \catcode`\_=\other \def\normalunderscore{_} \catcode`\|=\other \def\normalverticalbar{|} \catcode`\~=\other \def\normaltilde{~} % This macro is used to make a character print one way in \tt % (where it can probably be output as-is), and another way in other fonts, % where something hairier probably needs to be done. % % #1 is what to print if we are indeed using \tt; #2 is what to print % otherwise. Since all the Computer Modern typewriter fonts have zero % interword stretch (and shrink), and it is reasonable to expect all % typewriter fonts to have this, we can check that font parameter. % \def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi} % Same as above, but check for italic font. Actually this also catches % non-italic slanted fonts since it is impossible to distinguish them from % italic fonts. But since this is only used by $ and it uses \sl anyway % this is not a problem. \def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi} % Set catcodes for Texinfo file % Active characters for printing the wanted glyph. % Most of these we simply print from the \tt font, but for some, we can % use math or other variants that look better in normal text. % \catcode`\"=\active \def\activedoublequote{{\tt\char34}} \let"=\activedoublequote \catcode`\~=\active \def\activetilde{{\tt\char126}} \let~ = \activetilde \chardef\hatchar=`\^ \catcode`\^=\active \def\activehat{{\tt \hatchar}} \let^ = \activehat \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } \let\realunder=_ \catcode`\|=\active \def|{{\tt\char124}} \chardef \less=`\< \catcode`\<=\active \def\activeless{{\tt \less}}\let< = \activeless \chardef \gtr=`\> \catcode`\>=\active \def\activegtr{{\tt \gtr}}\let> = \activegtr \catcode`\+=\active \def+{{\tt \char 43}} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix \catcode`\-=\active \let-=\normaldash % used for headline/footline in the output routine, in case the page % breaks in the middle of an @tex block. \def\texinfochars{% \let< = \activeless \let> = \activegtr \let~ = \activetilde \let^ = \activehat \markupsetuplqdefault \markupsetuprqdefault \let\b = \strong \let\i = \smartitalic % in principle, all other definitions in \tex have to be undone too. } % Used sometimes to turn off (effectively) the active characters even after % parsing them. \def\turnoffactive{% \normalturnoffactive \otherbackslash } \catcode`\@=0 % \backslashcurfont outputs one backslash character in current font, % as in \char`\\. \global\chardef\backslashcurfont=`\\ \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work % \realbackslash is an actual character `\' with catcode other, and % \doublebackslash is two of them (for the pdf outlines). {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} % In Texinfo, backslash is an active character; it prints the backslash % in fixed width font. \catcode`\\=\active % @ for escape char from now on. % Print a typewriter backslash. For math mode, we can't simply use % \backslashcurfont: the story here is that in math mode, the \char % of \backslashcurfont ends up printing the roman \ from the math symbol % font (because \char in math mode uses the \mathcode, and plain.tex % sets \mathcode`\\="026E). Hence we use an explicit \mathchar, % which is the decimal equivalent of "715c (class 7, e.g., use \fam; % ignored family value; char position "5C). We can't use " for the % usual hex value because it has already been made active. @def@ttbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} @let@backslashchar = @ttbackslash % @backslashchar{} is for user documents. % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with % catcode other. We switch back and forth between these. @gdef@rawbackslash{@let\=@backslashcurfont} @gdef@otherbackslash{@let\=@realbackslash} % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of % the literal character `\'. % {@catcode`- = @active @gdef@normalturnoffactive{% @passthroughcharstrue @let-=@normaldash @let"=@normaldoublequote @let$=@normaldollar %$ font-lock fix @let+=@normalplus @let<=@normalless @let>=@normalgreater @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let~=@normaltilde @let\=@ttbackslash @markupsetuplqdefault @markupsetuprqdefault @unsepspaces } } % If a .fmt file is being used, characters that might appear in a file % name cannot be active until we have parsed the command line. % So turn them off again, and have @fixbackslash turn them back on. @catcode`+=@other @catcode`@_=@other % \enablebackslashhack - allow file to begin `\input texinfo' % % If a .fmt file is being used, we don't want the `\input texinfo' to show up. % That is what \eatinput is for; after that, the `\' should revert to printing % a backslash. % If the file did not have a `\input texinfo', then it is turned off after % the first line; otherwise the first `\' in the file would cause an error. % This is used on the very last line of this file, texinfo.tex. % We also use @c to call @fixbackslash, in case ends of lines are hidden. { @catcode`@^=7 @catcode`@^^M=13@gdef@enablebackslashhack{% @global@let\ = @eatinput% @catcode`@^^M=13% @def@c{@fixbackslash@c}% % Definition for the newline at the end of this file. @def ^^M{@let^^M@secondlinenl}% % Definition for a newline in the main Texinfo file. @gdef @secondlinenl{@fixbackslash}% }} {@catcode`@^=7 @catcode`@^^M=13% @gdef@eatinput input texinfo#1^^M{@fixbackslash}} % Emergency active definition of newline, in case an active newline token % appears by mistake. {@catcode`@^=7 @catcode13=13% @gdef@enableemergencynewline{% @gdef^^M{% @par% %@par% }}} @gdef@fixbackslash{% @ifx\@eatinput @let\ = @ttbackslash @fi @catcode13=5 % regular end of line @enableemergencynewline @let@c=@texinfoc % Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. @catcode`+=@active @catcode`@_=@active % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. This macro, @fixbackslash, gets % called at the beginning of every Texinfo file. Not opening texinfo.cnf % directly in this file, texinfo.tex, makes it possible to make a format % file for Texinfo. % @openin 1 texinfo.cnf @ifeof 1 @else @input texinfo.cnf @fi @closein 1 } % Say @foo, not \foo, in error messages. @escapechar = `@@ % These (along with & and #) are made active for url-breaking, so need % active definitions as the normal characters. @def@normaldot{.} @def@normalquest{?} @def@normalslash{/} % These look ok in all fonts, so just make them not special. % @hashchar{} gets its own user-level command, because of #line. @catcode`@& = @other @def@normalamp{&} @catcode`@# = @other @def@normalhash{#} @catcode`@% = @other @def@normalpercent{%} @let @hashchar = @normalhash @c Finally, make ` and ' active, so that txicodequoteundirected and @c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we @c don't make ` and ' active, @code will not get them as active chars. @c Do this last of all since we use ` in the previous @catcode assignments. @catcode`@'=@active @catcode`@`=@active @markupsetuplqdefault @markupsetuprqdefault @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) @c page-delimiter: "^\\\\message\\|emacs-page" @c time-stamp-start: "def\\\\texinfoversion{" @c time-stamp-format: "%:y-%02m-%02d.%02H" @c time-stamp-end: "}" @c End: @c vim:sw=2: @enablebackslashhack gcal-4.1/build-aux/install-sh0000775000000000000000000003452413041163305013057 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2016-01-11.22; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. tab=' ' nl=' ' IFS=" $tab$nl" # Set DOITPROG to "echo" to test this script. doit=${DOITPROG-} doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) is_target_a_directory=always dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done # We allow the use of options -d and -T together, by making -d # take the precedence; this is for compatibility with GNU install. if test -n "$dir_arg"; then if test -n "$dst_arg"; then echo "$0: target directory not allowed when installing a directory." >&2 exit 1 fi fi if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then if test $# -gt 1 || test "$is_target_a_directory" = always; then if test ! -d "$dst_arg"; then echo "$0: $dst_arg: Is not a directory." >&2 exit 1 fi fi fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac oIFS=$IFS IFS=/ set -f set fnord $dstdir shift set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: gcal-4.1/build-aux/git-version-gen0000775000000000000000000001753313041163305014017 00000000000000#!/bin/sh # Print a version string. scriptversion=2017-01-09.19; # UTC # Copyright (C) 2007-2017 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/. # It may be run two ways: # - from a git repository in which the "git describe" command below # produces useful output (thus requiring at least one signed tag) # - from a non-git-repo directory containing a .tarball-version file, which # presumes this script is invoked like "./git-version-gen .tarball-version". # In order to use intra-version strings in your project, you will need two # separate generated version string files: # # .tarball-version - present only in a distribution tarball, and not in # a checked-out repository. Created with contents that were learned at # the last time autoconf was run, and used by git-version-gen. Must not # be present in either $(srcdir) or $(builddir) for git-version-gen to # give accurate answers during normal development with a checked out tree, # but must be present in a tarball when there is no version control system. # Therefore, it cannot be used in any dependencies. GNUmakefile has # hooks to force a reconfigure at distribution time to get the value # correct, without penalizing normal development with extra reconfigures. # # .version - present in a checked-out repository and in a distribution # tarball. Usable in dependencies, particularly for files that don't # want to depend on config.h but do want to track version changes. # Delete this file prior to any autoconf run where you want to rebuild # files to pick up a version string change; and leave it stale to # minimize rebuild time after unrelated changes to configure sources. # # As with any generated file in a VC'd directory, you should add # /.version to .gitignore, so that you don't accidentally commit it. # .tarball-version is never generated in a VC'd directory, so needn't # be listed there. # # Use the following line in your configure.ac, so that $(VERSION) will # automatically be up-to-date each time configure is run (and note that # since configure.ac no longer includes a version string, Makefile rules # should not depend on configure.ac for version updates). # # AC_INIT([GNU project], # m4_esyscmd([build-aux/git-version-gen .tarball-version]), # [bug-project@example]) # # Then use the following lines in your Makefile.am, so that .version # will be present for dependencies, and so that .version and # .tarball-version will exist in distribution tarballs. # # EXTRA_DIST = $(top_srcdir)/.version # BUILT_SOURCES = $(top_srcdir)/.version # $(top_srcdir)/.version: # echo $(VERSION) > $@-t && mv $@-t $@ # dist-hook: # echo $(VERSION) > $(distdir)/.tarball-version me=$0 version="git-version-gen $scriptversion Copyright 2011 Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING." usage="\ Usage: $me [OPTION]... \$srcdir/.tarball-version [TAG-NORMALIZATION-SED-SCRIPT] Print a version string. Options: --prefix PREFIX prefix of git tags (default 'v') --fallback VERSION fallback version to use if \"git --version\" fails --help display this help and exit --version output version information and exit Running without arguments will suffice in most cases." prefix=v fallback= while test $# -gt 0; do case $1 in --help) echo "$usage"; exit 0;; --version) echo "$version"; exit 0;; --prefix) shift; prefix=${1?};; --fallback) shift; fallback=${1?};; -*) echo "$0: Unknown option '$1'." >&2 echo "$0: Try '--help' for more information." >&2 exit 1;; *) if test "x$tarball_version_file" = x; then tarball_version_file="$1" elif test "x$tag_sed_script" = x; then tag_sed_script="$1" else echo "$0: extra non-option argument '$1'." >&2 exit 1 fi;; esac shift done if test "x$tarball_version_file" = x; then echo "$usage" exit 1 fi tag_sed_script="${tag_sed_script:-s/x/x/}" nl=' ' # Avoid meddling by environment variable of the same name. v= v_from_git= # First see if there is a tarball-only version file. # then try "git describe", then default. if test -f $tarball_version_file then v=`cat $tarball_version_file` || v= case $v in *$nl*) v= ;; # reject multi-line output [0-9]*) ;; *) v= ;; esac test "x$v" = x \ && echo "$0: WARNING: $tarball_version_file is missing or damaged" 1>&2 fi if test "x$v" != x then : # use $v # Otherwise, if there is at least one git commit involving the working # directory, and "git describe" output looks sensible, use that to # derive a version string. elif test "`git log -1 --pretty=format:x . 2>&1`" = x \ && v=`git describe --abbrev=4 --match="$prefix*" HEAD 2>/dev/null \ || git describe --abbrev=4 HEAD 2>/dev/null` \ && v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \ && case $v in $prefix[0-9]*) ;; *) (exit 1) ;; esac then # Is this a new git that lists number of commits since the last # tag or the previous older version that did not? # Newer: v6.10-77-g0f8faeb # Older: v6.10-g0f8faeb case $v in *-*-*) : git describe is okay three part flavor ;; *-*) : git describe is older two part flavor # Recreate the number of commits and rewrite such that the # result is the same as if we were using the newer version # of git describe. vtag=`echo "$v" | sed 's/-.*//'` commit_list=`git rev-list "$vtag"..HEAD 2>/dev/null` \ || { commit_list=failed; echo "$0: WARNING: git rev-list failed" 1>&2; } numcommits=`echo "$commit_list" | wc -l` v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`; test "$commit_list" = failed && v=UNKNOWN ;; esac # Change the first '-' to a '.', so version-comparing tools work properly. # Remove the "g" in git describe's output string, to save a byte. v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`; v_from_git=1 elif test "x$fallback" = x || git --version >/dev/null 2>&1; then v=UNKNOWN else v=$fallback fi v=`echo "$v" |sed "s/^$prefix//"` # Test whether to append the "-dirty" suffix only if the version # string we're using came from git. I.e., skip the test if it's "UNKNOWN" # or if it came from .tarball-version. if test "x$v_from_git" != x; then # Don't declare a version "dirty" merely because a timestamp has changed. git update-index --refresh > /dev/null 2>&1 dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty= case "$dirty" in '') ;; *) # Append the suffix only if there isn't one already. case $v in *-dirty) ;; *) v="$v-dirty" ;; esac ;; esac fi # Omit the trailing newline, so that m4_esyscmd can use the result directly. printf %s "$v" # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: gcal-4.1/build-aux/depcomp0000775000000000000000000005370113041163305012426 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2016-01-11.22; # UTC # Copyright (C) 1999-2017 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: gcal-4.1/build-aux/snippet/0000775000000000000000000000000013041164074012611 500000000000000gcal-4.1/build-aux/snippet/_Noreturn.h0000664000000000000000000000046213041163522014654 00000000000000#if !defined _Noreturn && __STDC_VERSION__ < 201112 # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif gcal-4.1/build-aux/snippet/c++defs.h0000664000000000000000000003412513041163522014116 00000000000000/* C++ compatible function declaration macros. Copyright (C) 2010-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _GL_CXXDEFS_H #define _GL_CXXDEFS_H /* Begin/end the GNULIB_NAMESPACE namespace. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { # define _GL_END_NAMESPACE } #else # define _GL_BEGIN_NAMESPACE # define _GL_END_NAMESPACE #endif /* The three most frequent use cases of these macros are: * For providing a substitute for a function that is missing on some platforms, but is declared and works fine on the platforms on which it exists: #if @GNULIB_FOO@ # if !@HAVE_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on all platforms, but is broken/insufficient and needs to be replaced on some platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on some platforms but is broken/insufficient and needs to be replaced on some of them and is additionally either missing or undeclared on some other platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif */ /* _GL_EXTERN_C declaration; performs the declaration with C linkage. */ #if defined __cplusplus # define _GL_EXTERN_C extern "C" #else # define _GL_EXTERN_C extern #endif /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); declares a replacement function, named rpl_func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype rpl_func parameters_and_attributes /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); declares the system function, named func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype func parameters_and_attributes /* _GL_CXXALIAS_RPL (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to rpl_func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); Wrapping rpl_func in an object with an inline conversion operator avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is actually used in the program. */ #define _GL_CXXALIAS_RPL(func,rettype,parameters) \ _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return ::rpl_func; \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); except that the C function rpl_func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast(::rpl_func); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to the system provided function func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); Wrapping func in an object with an inline conversion operator avoids a reference to func unless GNULIB_NAMESPACE::func is actually used in the program. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return ::func; \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast(::func); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function is picked among a set of overloaded functions, namely the one with rettype2 and parameters2. Two consecutive casts are used to silence the "cannot find a match" and "invalid conversion" errors that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE /* The outer cast must be a reinterpret_cast. The inner cast: When the function is defined as a set of overloaded functions, it works as a static_cast<>, choosing the designated variant. When the function is defined as a single variant, it works as a reinterpret_cast<>. The parenthesized cast syntax works both ways. */ # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ namespace GNULIB_NAMESPACE \ { \ static const struct _gl_ ## func ## _wrapper \ { \ typedef rettype (*type) parameters; \ \ inline operator type () const \ { \ return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ } \ } func = {}; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN (func); causes a warning to be emitted when ::func is used but not when GNULIB_NAMESPACE::func is used. func must be defined without overloaded variants. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN(func) \ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) # define _GL_CXXALIASWARN_1(func,namespace) \ _GL_CXXALIASWARN_2 (func, namespace) /* To work around GCC bug , we enable the warning only when not optimizing. */ # if !__OPTIMIZE__ # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_WARN_ON_USE (func, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN_2(func,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN(func) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); causes a warning to be emitted when the given overloaded variant of ::func is used but not when GNULIB_NAMESPACE::func is used. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ GNULIB_NAMESPACE) # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) /* To work around GCC bug , we enable the warning only when not optimizing. */ # if !__OPTIMIZE__ # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif #endif /* _GL_CXXDEFS_H */ gcal-4.1/build-aux/snippet/warn-on-use.h0000664000000000000000000001200713041163522015052 00000000000000/* A C macro for emitting warnings if a function is used. Copyright (C) 2010-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* _GL_WARN_ON_USE (function, "literal string") issues a declaration for FUNCTION which will then trigger a compiler warning containing the text of "literal string" anywhere that function is called, if supported by the compiler. If the compiler does not support this feature, the macro expands to an unused extern declaration. This macro is useful for marking a function as a potential portability trap, with the intent that "literal string" include instructions on the replacement function that should be used instead. However, one of the reasons that a function is a portability trap is if it has the wrong signature. Declaring FUNCTION with a different signature in C is a compilation error, so this macro must use the same type as any existing declaration so that programs that avoid the problematic FUNCTION do not fail to compile merely because they included a header that poisoned the function. But this implies that _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already have a declaration. Use of this macro implies that there must not be any other macro hiding the declaration of FUNCTION; but undefining FUNCTION first is part of the poisoning process anyway (although for symbols that are provided only via a macro, the result is a compilation error rather than a warning containing "literal string"). Also note that in C++, it is only safe to use if FUNCTION has no overloads. For an example, it is possible to poison 'getline' by: - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], [getline]) in configure.ac, which potentially defines HAVE_RAW_DECL_GETLINE - adding this code to a header that wraps the system : #undef getline #if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" "not universally present; use the gnulib module getline"); #endif It is not possible to directly poison global variables. But it is possible to write a wrapper accessor function, and poison that (less common usage, like &environ, will cause a compilation error rather than issue the nice warning, but the end result of informing the developer about their portability problem is still achieved): #if HAVE_RAW_DECL_ENVIRON static char ***rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); # undef environ # define environ (*rpl_environ ()) #endif */ #ifndef _GL_WARN_ON_USE # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) /* A compiler attribute is available in gcc versions 4.3.0 and later. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function __attribute__ ((__warning__ (message))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function # else /* Unsupported. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # endif #endif /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string") is like _GL_WARN_ON_USE (function, "string"), except that the function is declared with the given prototype, consisting of return type, parameters, and attributes. This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does not work in this case. */ #ifndef _GL_WARN_ON_USE_CXX # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ extern rettype function parameters_and_attributes \ __attribute__ ((__warning__ (msg))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ extern rettype function parameters_and_attributes # else /* Unsupported. */ # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # endif #endif /* _GL_WARN_EXTERN_C declaration; performs the declaration with C linkage. */ #ifndef _GL_WARN_EXTERN_C # if defined __cplusplus # define _GL_WARN_EXTERN_C extern "C" # else # define _GL_WARN_EXTERN_C extern # endif #endif gcal-4.1/build-aux/snippet/unused-parameter.h0000664000000000000000000000304213041163522016157 00000000000000/* A C macro for declaring that specific function parameters are not used. Copyright (C) 2008-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter declarations for parameters that are not used. This helps to reduce warnings, such as from GCC -Wunused-parameter. The syntax is as follows: type param _GL_UNUSED_PARAMETER or more generally param_decl _GL_UNUSED_PARAMETER For example: int param _GL_UNUSED_PARAMETER int *(*param)(void) _GL_UNUSED_PARAMETER Other possible, but obscure and discouraged syntaxes: int _GL_UNUSED_PARAMETER *(*param)(void) _GL_UNUSED_PARAMETER int *(*param)(void) */ #ifndef _GL_UNUSED_PARAMETER # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_UNUSED_PARAMETER __attribute__ ((__unused__)) # else # define _GL_UNUSED_PARAMETER # endif #endif gcal-4.1/build-aux/snippet/arg-nonnull.h0000664000000000000000000000230013041163522015126 00000000000000/* A C macro for declaring that specific arguments must not be NULL. Copyright (C) 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools that the values passed as arguments n, ..., m must be non-NULL pointers. n = 1 stands for the first argument, n = 2 for the second argument etc. */ #ifndef _GL_ARG_NONNULL # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) # else # define _GL_ARG_NONNULL(params) # endif #endif gcal-4.1/build-aux/ar-lib0000755000000000000000000001330213041163550012136 00000000000000#! /bin/sh # Wrapper for Microsoft lib.exe me=ar-lib scriptversion=2012-03-01.08; # UTC # Copyright (C) 2010-2014 Free Software Foundation, Inc. # Written by Peter Rosin . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # func_error message func_error () { echo "$me: $1" 1>&2 exit 1 } file_conv= # func_file_conv build_file # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv in mingw) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin) file=`cygpath -m "$file" || echo "$file"` ;; wine) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_at_file at_file operation archive # Iterate over all members in AT_FILE performing OPERATION on ARCHIVE # for each of them. # When interpreting the content of the @FILE, do NOT use func_file_conv, # since the user would need to supply preconverted file names to # binutils ar, at least for MinGW. func_at_file () { operation=$2 archive=$3 at_file_contents=`cat "$1"` eval set x "$at_file_contents" shift for member do $AR -NOLOGO $operation:"$member" "$archive" || exit $? done } case $1 in '') func_error "no command. Try '$0 --help' for more information." ;; -h | --h*) cat <. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ /sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || \ echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` machine=${arch}${endian}-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # Determine ABI tags. case "${UNAME_MACHINE_ARCH}" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; *:Sortix:*:*) echo ${UNAME_MACHINE}-unknown-sortix exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") UNAME_MACHINE=alpha ;; "EV5 (21164)") UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/lslpp ] ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH=hppa2.0w else HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; e2k:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; k1om:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; mips64el:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; SX-ACE:SUPER-UX:*:*) echo sxace-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub # that puts up a graphical alert prompting to install # developer tools. Any system running Mac OS X 10.7 or # later (Darwin 11 and later) is required to have a 64-bit # processor. This is not true of the ARM version of Darwin # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; esac cat >&2 </dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: gcal-4.1/configure0000775000000000000000000323546613041163547011113 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for gcal 4.1. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and bug-gcal@gnu.org $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='gcal' PACKAGE_TARNAME='gcal' PACKAGE_VERSION='4.1' PACKAGE_STRING='gcal 4.1' PACKAGE_BUGREPORT='bug-gcal@gnu.org' PACKAGE_URL='' ac_unique_file="src/gcal.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" gl_use_threads_default= gt_needs= ac_func_list= gl_ceil_required=plain ac_header_list= gl_floor_required=plain gl_log_required=plain gl_log10_required=plain ac_subst_vars='gltests_LTLIBOBJS gltests_LIBOBJS gl_LTLIBOBJS gl_LIBOBJS CONFIG_INCLUDE am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS LIBGNU_LTLIBDEPS LIBGNU_LIBDEPS gltests_WITNESS REPLACE_TOWLOWER REPLACE_ISWCNTRL HAVE_WCTYPE_H NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H NEXT_WCTYPE_H HAVE_ISWCNTRL REPLACE_ISWBLANK HAVE_WCTRANS_T HAVE_WCTYPE_T HAVE_ISWBLANK GNULIB_TOWCTRANS GNULIB_WCTRANS GNULIB_ISWCTYPE GNULIB_WCTYPE GNULIB_ISWBLANK HAVE_WINT_T HAVE_FEATURES_H NEXT_AS_FIRST_DIRECTIVE_WCHAR_H NEXT_WCHAR_H HAVE_UNISTD_H NEXT_AS_FIRST_DIRECTIVE_UNISTD_H NEXT_UNISTD_H UNISTD_H_DEFINES_STRUCT_TIMESPEC PTHREAD_H_DEFINES_STRUCT_TIMESPEC SYS_TIME_H_DEFINES_STRUCT_TIMESPEC TIME_H_DEFINES_STRUCT_TIMESPEC NEXT_AS_FIRST_DIRECTIVE_TIME_H NEXT_TIME_H REPLACE_LOCALTIME REPLACE_GMTIME REPLACE_TIMEGM REPLACE_NANOSLEEP REPLACE_MKTIME REPLACE_LOCALTIME_R HAVE_TIMEGM HAVE_STRPTIME HAVE_NANOSLEEP HAVE_DECL_LOCALTIME_R GNULIB_TIME_RZ GNULIB_TIME_R GNULIB_TIMEGM GNULIB_STRPTIME GNULIB_NANOSLEEP GNULIB_MKTIME TAN_LIBM NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H NEXT_SYS_WAIT_H GNULIB_WAITPID HAVE_SYS_UIO_H NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H NEXT_SYS_UIO_H NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H NEXT_SYS_IOCTL_H HAVE_SYS_IOCTL_H HAVE_STRINGS_H NEXT_AS_FIRST_DIRECTIVE_STRINGS_H NEXT_STRINGS_H HAVE_DECL_STRNCASECMP HAVE_STRCASECMP HAVE_FFS GNULIB_FFS NEXT_AS_FIRST_DIRECTIVE_STRING_H NEXT_STRING_H NEXT_AS_FIRST_DIRECTIVE_STDLIB_H NEXT_STDLIB_H NEXT_AS_FIRST_DIRECTIVE_STDIO_H NEXT_STDIO_H GL_GENERATE_STDINT_H_FALSE GL_GENERATE_STDINT_H_TRUE STDINT_H HAVE_SYS_INTTYPES_H HAVE_SYS_BITYPES_H HAVE_C99_STDINT_H WINT_T_SUFFIX WCHAR_T_SUFFIX SIG_ATOMIC_T_SUFFIX SIZE_T_SUFFIX PTRDIFF_T_SUFFIX HAVE_SIGNED_WINT_T HAVE_SIGNED_WCHAR_T HAVE_SIGNED_SIG_ATOMIC_T BITSIZEOF_WINT_T BITSIZEOF_WCHAR_T BITSIZEOF_SIG_ATOMIC_T BITSIZEOF_SIZE_T BITSIZEOF_PTRDIFF_T HAVE_STDINT_H NEXT_AS_FIRST_DIRECTIVE_STDINT_H NEXT_STDINT_H HAVE_SYS_TYPES_H HAVE_INTTYPES_H HAVE_WCHAR_H HAVE_UNSIGNED_LONG_LONG_INT HAVE_LONG_LONG_INT GNULIB_OVERRIDES_WINT_T HAVE__BOOL GL_GENERATE_STDBOOL_H_FALSE GL_GENERATE_STDBOOL_H_TRUE STDBOOL_H GL_GENERATE_STDALIGN_H_FALSE GL_GENERATE_STDALIGN_H_TRUE STDALIGN_H SQRT_LIBM HAVE_SPAWN_H NEXT_AS_FIRST_DIRECTIVE_SPAWN_H NEXT_SPAWN_H SIN_LIBM NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H NEXT_SIGNAL_H GL_GENERATE_SCHED_H_FALSE GL_GENERATE_SCHED_H_TRUE SCHED_H HAVE_SYS_CDEFS_H HAVE_STRUCT_SCHED_PARAM HAVE_SCHED_H NEXT_AS_FIRST_DIRECTIVE_SCHED_H NEXT_SCHED_H REPLACE_RAISE REPLACE_PTHREAD_SIGMASK HAVE_SIGHANDLER_T HAVE_TYPE_VOLATILE_SIG_ATOMIC_T HAVE_STRUCT_SIGACTION_SA_SIGACTION HAVE_SIGACTION HAVE_SIGINFO_T HAVE_SIGSET_T HAVE_RAISE HAVE_PTHREAD_SIGMASK HAVE_POSIX_SIGNALBLOCKING GNULIB_SIGACTION GNULIB_SIGPROCMASK GNULIB_SIGNAL_H_SIGPIPE GNULIB_RAISE GNULIB_PTHREAD_SIGMASK LIB_POSIX_SPAWN REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE REPLACE_POSIX_SPAWN HAVE_POSIX_SPAWN_FILE_ACTIONS_T HAVE_POSIX_SPAWNATTR_T HAVE_POSIX_SPAWN GNULIB_POSIX_SPAWNATTR_DESTROY GNULIB_POSIX_SPAWNATTR_SETSIGMASK GNULIB_POSIX_SPAWNATTR_GETSIGMASK GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM GNULIB_POSIX_SPAWNATTR_SETPGROUP GNULIB_POSIX_SPAWNATTR_GETPGROUP GNULIB_POSIX_SPAWNATTR_SETFLAGS GNULIB_POSIX_SPAWNATTR_GETFLAGS GNULIB_POSIX_SPAWNATTR_INIT GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT GNULIB_POSIX_SPAWNP GNULIB_POSIX_SPAWN APPLE_UNIVERSAL_BUILD UNDEFINE_STRTOK_R REPLACE_STRTOK_R REPLACE_STRSIGNAL REPLACE_STRNLEN REPLACE_STRNDUP REPLACE_STRNCAT REPLACE_STRERROR_R REPLACE_STRERROR REPLACE_STRCHRNUL REPLACE_STRCASESTR REPLACE_STRSTR REPLACE_STRDUP REPLACE_STPNCPY REPLACE_MEMMEM REPLACE_MEMCHR HAVE_STRVERSCMP HAVE_DECL_STRSIGNAL HAVE_DECL_STRERROR_R HAVE_DECL_STRTOK_R HAVE_STRCASESTR HAVE_STRSEP HAVE_STRPBRK HAVE_DECL_STRNLEN HAVE_DECL_STRNDUP HAVE_DECL_STRDUP HAVE_STRCHRNUL HAVE_STPNCPY HAVE_STPCPY HAVE_RAWMEMCHR HAVE_DECL_MEMRCHR HAVE_MEMPCPY HAVE_DECL_MEMMEM HAVE_MEMCHR HAVE_FFSLL HAVE_FFSL HAVE_MBSLEN GNULIB_STRVERSCMP GNULIB_STRSIGNAL GNULIB_STRERROR_R GNULIB_STRERROR GNULIB_MBSTOK_R GNULIB_MBSSEP GNULIB_MBSSPN GNULIB_MBSPBRK GNULIB_MBSCSPN GNULIB_MBSCASESTR GNULIB_MBSPCASECMP GNULIB_MBSNCASECMP GNULIB_MBSCASECMP GNULIB_MBSSTR GNULIB_MBSRCHR GNULIB_MBSCHR GNULIB_MBSNLEN GNULIB_MBSLEN GNULIB_STRTOK_R GNULIB_STRCASESTR GNULIB_STRSTR GNULIB_STRSEP GNULIB_STRPBRK GNULIB_STRNLEN GNULIB_STRNDUP GNULIB_STRNCAT GNULIB_STRDUP GNULIB_STRCHRNUL GNULIB_STPNCPY GNULIB_STPCPY GNULIB_RAWMEMCHR GNULIB_MEMRCHR GNULIB_MEMPCPY GNULIB_MEMMEM GNULIB_MEMCHR GNULIB_FFSLL GNULIB_FFSL LOCALE_FR_UTF8 LOCALE_ZH_CN LOCALE_JA NEXT_AS_FIRST_DIRECTIVE_MATH_H NEXT_MATH_H REPLACE_WCTOMB REPLACE_UNSETENV REPLACE_STRTOD REPLACE_SETENV REPLACE_REALPATH REPLACE_REALLOC REPLACE_RANDOM_R REPLACE_QSORT_R REPLACE_PUTENV REPLACE_PTSNAME_R REPLACE_PTSNAME REPLACE_MKSTEMP REPLACE_MBTOWC REPLACE_MALLOC REPLACE_CANONICALIZE_FILE_NAME REPLACE_CALLOC HAVE_DECL_UNSETENV HAVE_UNLOCKPT HAVE_SYS_LOADAVG_H HAVE_STRUCT_RANDOM_DATA HAVE_STRTOULL HAVE_STRTOLL HAVE_STRTOD HAVE_DECL_SETENV HAVE_SETENV HAVE_SECURE_GETENV HAVE_RPMATCH HAVE_REALPATH HAVE_RANDOM_R HAVE_RANDOM_H HAVE_RANDOM HAVE_QSORT_R HAVE_PTSNAME_R HAVE_PTSNAME HAVE_POSIX_OPENPT HAVE_MKSTEMPS HAVE_MKSTEMP HAVE_MKOSTEMPS HAVE_MKOSTEMP HAVE_MKDTEMP HAVE_GRANTPT HAVE_GETSUBOPT HAVE_DECL_GETLOADAVG HAVE_CANONICALIZE_FILE_NAME HAVE_ATOLL HAVE__EXIT GNULIB_WCTOMB GNULIB_UNSETENV GNULIB_UNLOCKPT GNULIB_SYSTEM_POSIX GNULIB_STRTOULL GNULIB_STRTOLL GNULIB_STRTOD GNULIB_SETENV GNULIB_SECURE_GETENV GNULIB_RPMATCH GNULIB_REALPATH GNULIB_REALLOC_POSIX GNULIB_RANDOM_R GNULIB_RANDOM GNULIB_QSORT_R GNULIB_PUTENV GNULIB_PTSNAME_R GNULIB_PTSNAME GNULIB_POSIX_OPENPT GNULIB_MKSTEMPS GNULIB_MKSTEMP GNULIB_MKOSTEMPS GNULIB_MKOSTEMP GNULIB_MKDTEMP GNULIB_MBTOWC GNULIB_MALLOC_POSIX GNULIB_GRANTPT GNULIB_GETSUBOPT GNULIB_GETLOADAVG GNULIB_CANONICALIZE_FILE_NAME GNULIB_CALLOC_POSIX GNULIB_ATOLL GNULIB__EXIT SED LOG10_LIBM LOG_LIBM NEXT_AS_FIRST_DIRECTIVE_LOCALE_H NEXT_LOCALE_H HAVE_XLOCALE_H NEXT_AS_FIRST_DIRECTIVE_STDDEF_H NEXT_STDDEF_H GL_GENERATE_STDDEF_H_FALSE GL_GENERATE_STDDEF_H_TRUE STDDEF_H HAVE_WCHAR_T HAVE_MAX_ALIGN_T REPLACE_NULL REPLACE_STRUCT_LCONV REPLACE_DUPLOCALE REPLACE_SETLOCALE REPLACE_LOCALECONV HAVE_DUPLOCALE GNULIB_DUPLOCALE GNULIB_SETLOCALE GNULIB_LOCALECONV LOCALCHARSET_TESTS_ENVIRONMENT GLIBC21 GL_GENERATE_LIMITS_H_FALSE GL_GENERATE_LIMITS_H_TRUE LIMITS_H NEXT_AS_FIRST_DIRECTIVE_LIMITS_H NEXT_LIMITS_H HAVE_LANGINFO_YESEXPR HAVE_LANGINFO_ERA HAVE_LANGINFO_T_FMT_AMPM HAVE_LANGINFO_CODESET HAVE_LANGINFO_H NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H NEXT_LANGINFO_H REPLACE_NL_LANGINFO HAVE_NL_LANGINFO GNULIB_NL_LANGINFO HAVE_WS2TCPIP_H HAVE_SYS_SOCKET_H NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H NEXT_SYS_SOCKET_H HAVE_ACCEPT4 HAVE_SA_FAMILY_T HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY HAVE_STRUCT_SOCKADDR_STORAGE GNULIB_ACCEPT4 GNULIB_SHUTDOWN GNULIB_SETSOCKOPT GNULIB_SENDTO GNULIB_RECVFROM GNULIB_SEND GNULIB_RECV GNULIB_LISTEN GNULIB_GETSOCKOPT GNULIB_GETSOCKNAME GNULIB_GETPEERNAME GNULIB_BIND GNULIB_ACCEPT GNULIB_CONNECT GNULIB_SOCKET NEXT_AS_FIRST_DIRECTIVE_ICONV_H NEXT_ICONV_H GL_GENERATE_ICONV_H_FALSE GL_GENERATE_ICONV_H_TRUE ICONV_H REPLACE_ICONV_UTF REPLACE_ICONV_OPEN REPLACE_ICONV ICONV_CONST GNULIB_ICONV NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H NEXT_SYS_TIME_H REPLACE_STRUCT_TIMEVAL REPLACE_GETTIMEOFDAY HAVE_TIMEZONE_T HAVE_SYS_TIME_H HAVE_STRUCT_TIMEVAL HAVE_GETTIMEOFDAY GNULIB_GETTIMEOFDAY WINDOWS_64_BIT_ST_SIZE NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H NEXT_SYS_STAT_H REPLACE_UTIMENSAT REPLACE_STAT REPLACE_MKNOD REPLACE_MKFIFO REPLACE_MKDIR REPLACE_LSTAT REPLACE_FUTIMENS REPLACE_FSTATAT REPLACE_FSTAT HAVE_UTIMENSAT HAVE_MKNODAT HAVE_MKNOD HAVE_MKFIFOAT HAVE_MKFIFO HAVE_MKDIRAT HAVE_LSTAT HAVE_LCHMOD HAVE_FUTIMENS HAVE_FSTATAT HAVE_FCHMODAT GNULIB_UTIMENSAT GNULIB_STAT GNULIB_MKNODAT GNULIB_MKNOD GNULIB_MKFIFOAT GNULIB_MKFIFO GNULIB_MKDIRAT GNULIB_LSTAT GNULIB_LCHMOD GNULIB_FUTIMENS GNULIB_FSTATAT GNULIB_FSTAT GNULIB_FCHMODAT WINDOWS_64_BIT_OFF_T NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H NEXT_SYS_TYPES_H FLOOR_LIBM REPLACE_ITOLD GL_GENERATE_FLOAT_H_FALSE GL_GENERATE_FLOAT_H_TRUE FLOAT_H NEXT_AS_FIRST_DIRECTIVE_FLOAT_H NEXT_FLOAT_H NEXT_AS_FIRST_DIRECTIVE_FCNTL_H NEXT_FCNTL_H REPLACE_OPENAT REPLACE_OPEN REPLACE_FCNTL HAVE_OPENAT HAVE_FCNTL GNULIB_OPENAT GNULIB_OPEN GNULIB_NONBLOCKING GNULIB_FCNTL REPLACE_VSPRINTF REPLACE_VSNPRINTF REPLACE_VPRINTF REPLACE_VFPRINTF REPLACE_VDPRINTF REPLACE_VASPRINTF REPLACE_TMPFILE REPLACE_STDIO_WRITE_FUNCS REPLACE_STDIO_READ_FUNCS REPLACE_SPRINTF REPLACE_SNPRINTF REPLACE_RENAMEAT REPLACE_RENAME REPLACE_REMOVE REPLACE_PRINTF REPLACE_POPEN REPLACE_PERROR REPLACE_OBSTACK_PRINTF REPLACE_GETLINE REPLACE_GETDELIM REPLACE_FTELLO REPLACE_FTELL REPLACE_FSEEKO REPLACE_FSEEK REPLACE_FREOPEN REPLACE_FPURGE REPLACE_FPRINTF REPLACE_FOPEN REPLACE_FFLUSH REPLACE_FDOPEN REPLACE_FCLOSE REPLACE_DPRINTF HAVE_VDPRINTF HAVE_VASPRINTF HAVE_RENAMEAT HAVE_POPEN HAVE_PCLOSE HAVE_FTELLO HAVE_FSEEKO HAVE_DPRINTF HAVE_DECL_VSNPRINTF HAVE_DECL_SNPRINTF HAVE_DECL_OBSTACK_PRINTF HAVE_DECL_GETLINE HAVE_DECL_GETDELIM HAVE_DECL_FTELLO HAVE_DECL_FSEEKO HAVE_DECL_FPURGE GNULIB_VSPRINTF_POSIX GNULIB_VSNPRINTF GNULIB_VPRINTF_POSIX GNULIB_VPRINTF GNULIB_VFPRINTF_POSIX GNULIB_VFPRINTF GNULIB_VDPRINTF GNULIB_VSCANF GNULIB_VFSCANF GNULIB_VASPRINTF GNULIB_TMPFILE GNULIB_STDIO_H_SIGPIPE GNULIB_STDIO_H_NONBLOCKING GNULIB_SPRINTF_POSIX GNULIB_SNPRINTF GNULIB_SCANF GNULIB_RENAMEAT GNULIB_RENAME GNULIB_REMOVE GNULIB_PUTS GNULIB_PUTCHAR GNULIB_PUTC GNULIB_PRINTF_POSIX GNULIB_PRINTF GNULIB_POPEN GNULIB_PERROR GNULIB_PCLOSE GNULIB_OBSTACK_PRINTF_POSIX GNULIB_OBSTACK_PRINTF GNULIB_GETLINE GNULIB_GETDELIM GNULIB_GETCHAR GNULIB_GETC GNULIB_FWRITE GNULIB_FTELLO GNULIB_FTELL GNULIB_FSEEKO GNULIB_FSEEK GNULIB_FSCANF GNULIB_FREOPEN GNULIB_FREAD GNULIB_FPUTS GNULIB_FPUTC GNULIB_FPURGE GNULIB_FPRINTF_POSIX GNULIB_FPRINTF GNULIB_FOPEN GNULIB_FGETS GNULIB_FGETC GNULIB_FFLUSH GNULIB_FDOPEN GNULIB_FCLOSE GNULIB_DPRINTF EOVERFLOW_VALUE EOVERFLOW_HIDDEN ENOLINK_VALUE ENOLINK_HIDDEN EMULTIHOP_VALUE EMULTIHOP_HIDDEN GL_GENERATE_ERRNO_H_FALSE GL_GENERATE_ERRNO_H_TRUE ERRNO_H NEXT_AS_FIRST_DIRECTIVE_ERRNO_H NEXT_ERRNO_H PRAGMA_COLUMNS PRAGMA_SYSTEM_HEADER INCLUDE_NEXT_AS_FIRST_DIRECTIVE INCLUDE_NEXT COS_LIBM pkglibexecdir runstatedir lispdir LTLIBMULTITHREAD LIBMULTITHREAD LTLIBTHREAD LIBTHREAD LIBPTH_PREFIX LTLIBPTH LIBPTH HAVE_WINSOCK2_H REPLACE_IOCTL SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS SYS_IOCTL_H_HAVE_WINSOCK2_H GNULIB_IOCTL HAVE_MSVC_INVALID_PARAMETER_HANDLER UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS UNISTD_H_HAVE_WINSOCK2_H REPLACE_WRITE REPLACE_USLEEP REPLACE_UNLINKAT REPLACE_UNLINK REPLACE_TTYNAME_R REPLACE_SYMLINKAT REPLACE_SYMLINK REPLACE_SLEEP REPLACE_RMDIR REPLACE_READLINKAT REPLACE_READLINK REPLACE_READ REPLACE_PWRITE REPLACE_PREAD REPLACE_LSEEK REPLACE_LINKAT REPLACE_LINK REPLACE_LCHOWN REPLACE_ISATTY REPLACE_GETPAGESIZE REPLACE_GETGROUPS REPLACE_GETLOGIN_R REPLACE_GETDTABLESIZE REPLACE_GETDOMAINNAME REPLACE_GETCWD REPLACE_FTRUNCATE REPLACE_FCHOWNAT REPLACE_DUP2 REPLACE_DUP REPLACE_CLOSE REPLACE_CHOWN HAVE_SYS_PARAM_H HAVE_OS_H HAVE_DECL_TTYNAME_R HAVE_DECL_SETHOSTNAME HAVE_DECL_GETUSERSHELL HAVE_DECL_GETPAGESIZE HAVE_DECL_GETLOGIN_R HAVE_DECL_GETLOGIN HAVE_DECL_GETDOMAINNAME HAVE_DECL_FDATASYNC HAVE_DECL_FCHDIR HAVE_DECL_ENVIRON HAVE_USLEEP HAVE_UNLINKAT HAVE_SYMLINKAT HAVE_SYMLINK HAVE_SLEEP HAVE_SETHOSTNAME HAVE_READLINKAT HAVE_READLINK HAVE_PWRITE HAVE_PREAD HAVE_PIPE2 HAVE_PIPE HAVE_LINKAT HAVE_LINK HAVE_LCHOWN HAVE_GROUP_MEMBER HAVE_GETPAGESIZE HAVE_GETLOGIN HAVE_GETHOSTNAME HAVE_GETGROUPS HAVE_GETDTABLESIZE HAVE_FTRUNCATE HAVE_FSYNC HAVE_FDATASYNC HAVE_FCHOWNAT HAVE_FCHDIR HAVE_FACCESSAT HAVE_EUIDACCESS HAVE_DUP3 HAVE_DUP2 HAVE_CHOWN GNULIB_WRITE GNULIB_USLEEP GNULIB_UNLINKAT GNULIB_UNLINK GNULIB_UNISTD_H_SIGPIPE GNULIB_UNISTD_H_NONBLOCKING GNULIB_TTYNAME_R GNULIB_SYMLINKAT GNULIB_SYMLINK GNULIB_SLEEP GNULIB_SETHOSTNAME GNULIB_RMDIR GNULIB_READLINKAT GNULIB_READLINK GNULIB_READ GNULIB_PWRITE GNULIB_PREAD GNULIB_PIPE2 GNULIB_PIPE GNULIB_LSEEK GNULIB_LINKAT GNULIB_LINK GNULIB_LCHOWN GNULIB_ISATTY GNULIB_GROUP_MEMBER GNULIB_GETUSERSHELL GNULIB_GETPAGESIZE GNULIB_GETLOGIN_R GNULIB_GETLOGIN GNULIB_GETHOSTNAME GNULIB_GETGROUPS GNULIB_GETDTABLESIZE GNULIB_GETDOMAINNAME GNULIB_GETCWD GNULIB_FTRUNCATE GNULIB_FSYNC GNULIB_FDATASYNC GNULIB_FCHOWNAT GNULIB_FCHDIR GNULIB_FACCESSAT GNULIB_EUIDACCESS GNULIB_ENVIRON GNULIB_DUP3 GNULIB_DUP2 GNULIB_DUP GNULIB_CLOSE GNULIB_CHOWN GNULIB_CHDIR CEIL_LIBM REPLACE_TRUNCL REPLACE_TRUNCF REPLACE_TRUNC REPLACE_TANHF REPLACE_TANF REPLACE_SQRTL REPLACE_SQRTF REPLACE_SINHF REPLACE_SINF REPLACE_SIGNBIT_USING_GCC REPLACE_SIGNBIT REPLACE_ROUNDL REPLACE_ROUNDF REPLACE_ROUND REPLACE_REMAINDERL REPLACE_REMAINDERF REPLACE_REMAINDER REPLACE_NAN REPLACE_MODFL REPLACE_MODFF REPLACE_MODF REPLACE_LOGBL REPLACE_LOGBF REPLACE_LOGB REPLACE_LOG2L REPLACE_LOG2F REPLACE_LOG2 REPLACE_LOG1PL REPLACE_LOG1PF REPLACE_LOG1P REPLACE_LOG10L REPLACE_LOG10F REPLACE_LOG10 REPLACE_LOGL REPLACE_LOGF REPLACE_LOG REPLACE_LDEXPL REPLACE_ISNAN REPLACE_ISINF REPLACE_ISFINITE REPLACE_ILOGBF REPLACE_ILOGB REPLACE_HYPOTL REPLACE_HYPOTF REPLACE_HYPOT REPLACE_HUGE_VAL REPLACE_FREXPL REPLACE_FREXP REPLACE_FREXPF REPLACE_FMODL REPLACE_FMODF REPLACE_FMOD REPLACE_FMAL REPLACE_FMAF REPLACE_FMA REPLACE_FLOORL REPLACE_FLOORF REPLACE_FLOOR REPLACE_FABSL REPLACE_EXP2L REPLACE_EXP2 REPLACE_EXPM1F REPLACE_EXPM1 REPLACE_EXPF REPLACE_COSHF REPLACE_COSF REPLACE_CEILL REPLACE_CEILF REPLACE_CEIL REPLACE_CBRTL REPLACE_CBRTF REPLACE_ATAN2F REPLACE_ATANF REPLACE_ASINF REPLACE_ACOSF HAVE_DECL_TRUNCL HAVE_DECL_TRUNCF HAVE_DECL_TRUNC HAVE_DECL_TANL HAVE_DECL_SQRTL HAVE_DECL_SINL HAVE_DECL_ROUNDL HAVE_DECL_ROUNDF HAVE_DECL_ROUND HAVE_DECL_RINTF HAVE_DECL_REMAINDERL HAVE_DECL_REMAINDER HAVE_DECL_LOGB HAVE_DECL_LOG2L HAVE_DECL_LOG2F HAVE_DECL_LOG2 HAVE_DECL_LOG10L HAVE_DECL_LOGL HAVE_DECL_LDEXPL HAVE_DECL_FREXPL HAVE_DECL_FLOORL HAVE_DECL_FLOORF HAVE_DECL_EXPM1L HAVE_DECL_EXP2L HAVE_DECL_EXP2F HAVE_DECL_EXP2 HAVE_DECL_EXPL HAVE_DECL_COSL HAVE_DECL_COPYSIGNF HAVE_DECL_CEILL HAVE_DECL_CEILF HAVE_DECL_CBRTL HAVE_DECL_CBRTF HAVE_DECL_ATANL HAVE_DECL_ASINL HAVE_DECL_ACOSL HAVE_TANHF HAVE_TANL HAVE_TANF HAVE_SQRTL HAVE_SQRTF HAVE_SINHF HAVE_SINL HAVE_SINF HAVE_RINTL HAVE_RINT HAVE_REMAINDERF HAVE_REMAINDER HAVE_POWF HAVE_MODFL HAVE_MODFF HAVE_LOGBL HAVE_LOGBF HAVE_LOG1PL HAVE_LOG1PF HAVE_LOG1P HAVE_LOG10L HAVE_LOG10F HAVE_LOGL HAVE_LOGF HAVE_LDEXPF HAVE_ISNANL HAVE_ISNAND HAVE_ISNANF HAVE_ILOGBL HAVE_ILOGBF HAVE_ILOGB HAVE_HYPOTL HAVE_HYPOTF HAVE_FREXPF HAVE_FMODL HAVE_FMODF HAVE_FMAL HAVE_FMAF HAVE_FMA HAVE_FABSL HAVE_FABSF HAVE_EXPM1F HAVE_EXPM1 HAVE_EXPL HAVE_EXPF HAVE_COSHF HAVE_COSL HAVE_COSF HAVE_COPYSIGNL HAVE_COPYSIGN HAVE_CBRTL HAVE_CBRTF HAVE_CBRT HAVE_ATAN2F HAVE_ATANL HAVE_ATANF HAVE_ASINL HAVE_ASINF HAVE_ACOSL HAVE_ACOSF GNULIB_TRUNCL GNULIB_TRUNCF GNULIB_TRUNC GNULIB_TANHF GNULIB_TANL GNULIB_TANF GNULIB_SQRTL GNULIB_SQRTF GNULIB_SINHF GNULIB_SINL GNULIB_SINF GNULIB_SIGNBIT GNULIB_ROUNDL GNULIB_ROUNDF GNULIB_ROUND GNULIB_RINTL GNULIB_RINTF GNULIB_RINT GNULIB_REMAINDERL GNULIB_REMAINDERF GNULIB_REMAINDER GNULIB_POWF GNULIB_MODFL GNULIB_MODFF GNULIB_MODF GNULIB_LOGBL GNULIB_LOGBF GNULIB_LOGB GNULIB_LOG2L GNULIB_LOG2F GNULIB_LOG2 GNULIB_LOG1PL GNULIB_LOG1PF GNULIB_LOG1P GNULIB_LOG10L GNULIB_LOG10F GNULIB_LOG10 GNULIB_LOGL GNULIB_LOGF GNULIB_LOG GNULIB_LDEXPL GNULIB_LDEXPF GNULIB_ISNANL GNULIB_ISNAND GNULIB_ISNANF GNULIB_ISNAN GNULIB_ISINF GNULIB_ISFINITE GNULIB_ILOGBL GNULIB_ILOGBF GNULIB_ILOGB GNULIB_HYPOTL GNULIB_HYPOTF GNULIB_HYPOT GNULIB_FREXPL GNULIB_FREXP GNULIB_FREXPF GNULIB_FMODL GNULIB_FMODF GNULIB_FMOD GNULIB_FMAL GNULIB_FMAF GNULIB_FMA GNULIB_FLOORL GNULIB_FLOORF GNULIB_FLOOR GNULIB_FABSL GNULIB_FABSF GNULIB_EXPM1L GNULIB_EXPM1F GNULIB_EXPM1 GNULIB_EXP2L GNULIB_EXP2F GNULIB_EXP2 GNULIB_EXPL GNULIB_EXPF GNULIB_COSHF GNULIB_COSL GNULIB_COSF GNULIB_COPYSIGNL GNULIB_COPYSIGNF GNULIB_COPYSIGN GNULIB_CEILL GNULIB_CEILF GNULIB_CEIL GNULIB_CBRTL GNULIB_CBRTF GNULIB_CBRT GNULIB_ATAN2F GNULIB_ATANL GNULIB_ATANF GNULIB_ASINL GNULIB_ASINF GNULIB_ACOSL GNULIB_ACOSF LOCALE_FR REPLACE_WCSWIDTH REPLACE_WCWIDTH REPLACE_WCSNRTOMBS REPLACE_WCSRTOMBS REPLACE_WCRTOMB REPLACE_MBSNRTOWCS REPLACE_MBSRTOWCS REPLACE_MBRLEN REPLACE_MBRTOWC REPLACE_MBSINIT REPLACE_WCTOB REPLACE_BTOWC REPLACE_MBSTATE_T HAVE_DECL_WCWIDTH HAVE_DECL_WCTOB HAVE_WCSWIDTH HAVE_WCSTOK HAVE_WCSSTR HAVE_WCSPBRK HAVE_WCSSPN HAVE_WCSCSPN HAVE_WCSRCHR HAVE_WCSCHR HAVE_WCSDUP HAVE_WCSXFRM HAVE_WCSCOLL HAVE_WCSNCASECMP HAVE_WCSCASECMP HAVE_WCSNCMP HAVE_WCSCMP HAVE_WCSNCAT HAVE_WCSCAT HAVE_WCPNCPY HAVE_WCSNCPY HAVE_WCPCPY HAVE_WCSCPY HAVE_WCSNLEN HAVE_WCSLEN HAVE_WMEMSET HAVE_WMEMMOVE HAVE_WMEMCPY HAVE_WMEMCMP HAVE_WMEMCHR HAVE_WCSNRTOMBS HAVE_WCSRTOMBS HAVE_WCRTOMB HAVE_MBSNRTOWCS HAVE_MBSRTOWCS HAVE_MBRLEN HAVE_MBRTOWC HAVE_MBSINIT HAVE_BTOWC GNULIB_WCSWIDTH GNULIB_WCSTOK GNULIB_WCSSTR GNULIB_WCSPBRK GNULIB_WCSSPN GNULIB_WCSCSPN GNULIB_WCSRCHR GNULIB_WCSCHR GNULIB_WCSDUP GNULIB_WCSXFRM GNULIB_WCSCOLL GNULIB_WCSNCASECMP GNULIB_WCSCASECMP GNULIB_WCSNCMP GNULIB_WCSCMP GNULIB_WCSNCAT GNULIB_WCSCAT GNULIB_WCPNCPY GNULIB_WCSNCPY GNULIB_WCPCPY GNULIB_WCSCPY GNULIB_WCSNLEN GNULIB_WCSLEN GNULIB_WMEMSET GNULIB_WMEMMOVE GNULIB_WMEMCPY GNULIB_WMEMCMP GNULIB_WMEMCHR GNULIB_WCWIDTH GNULIB_WCSNRTOMBS GNULIB_WCSRTOMBS GNULIB_WCRTOMB GNULIB_MBSNRTOWCS GNULIB_MBSRTOWCS GNULIB_MBRLEN GNULIB_MBRTOWC GNULIB_MBSINIT GNULIB_WCTOB GNULIB_BTOWC ATAN2_LIBM ATAN_LIBM ASIN_LIBM GL_GENERATE_ALLOCA_H_FALSE GL_GENERATE_ALLOCA_H_TRUE ALLOCA_H ACOS_LIBM POW_LIBM GL_COND_LIBTOOL_FALSE GL_COND_LIBTOOL_TRUE POSUB LTLIBINTL LIBINTL INTLLIBS LTLIBICONV LIBICONV INTL_MACOSX_LIBS XGETTEXT_EXTRA_OPTIONS MSGMERGE XGETTEXT_015 XGETTEXT GMSGFMT_015 MSGFMT_015 GMSGFMT MSGFMT GETTEXT_MACRO_VERSION USE_NLS LIBM LN_S CP PAGER3 PAGER2 PAGER1 ZDUMP PERL GCAL_RC_OBJS GCAL_HD_OBJS ALLOCA host_os host_vendor host_cpu host build_os build_vendor build_cpu build ARFLAGS ac_ct_AR AR RANLIB EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_largefile enable_threads enable_unicode enable_easc enable_cc_holidays enable_hls enable_pager enable_rc enable_term enable_nls with_gnu_ld enable_rpath with_libiconv_prefix with_libintl_prefix enable_assert with_libpth_prefix with_included_regex ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures gcal 4.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/gcal] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of gcal 4.1:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-largefile omit support for large files --enable-threads={posix|solaris|pth|windows} specify multithreading API --disable-threads build without multithread safety --enable-unicode use unicode --enable-easc use extended ASCII character set --disable-cc-holidays do not use all available country specific holidays --disable-hls do not use highlighting sequences --disable-pager do not use external or simple internal pager feature --disable-rc do not use fixed date feature --disable-term do not use libncurses/libtermcap/libtermlib --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths --disable-assert turn off assertions Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --with-libpth-prefix[=DIR] search for libpth in DIR/include and DIR/lib --without-libpth-prefix don't search for libpth in includedir and libdir --without-included-regex don't compile regex; this is the default on systems with recent-enough versions of the GNU C Library (use with caution on other systems). Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF gcal configure 4.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ------------------------------- ## ## Report this to bug-gcal@gnu.org ## ## ------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 &5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES # ---------------------------------------------------- # Tries to find if the field MEMBER exists in type AGGR, after including # INCLUDES, setting cache variable VAR accordingly. ac_fn_c_check_member () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 $as_echo_n "checking for $2.$3... " >&6; } if eval \${$4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (sizeof ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else eval "$4=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$4 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by gcal $as_me 4.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi gt_needs="$gt_needs " as_fn_append ac_func_list " btowc" as_fn_append ac_func_list " _set_invalid_parameter_handler" as_fn_append ac_header_list " sys/socket.h" as_fn_append ac_header_list " unistd.h" as_fn_append ac_func_list " fcntl" as_fn_append ac_func_list " symlink" as_fn_append ac_func_list " fpurge" as_fn_append ac_func_list " __fpurge" as_fn_append ac_func_list " __freading" as_fn_append ac_header_list " sys/stat.h" as_fn_append ac_func_list " getdtablesize" as_fn_append ac_func_list " getprogname" as_fn_append ac_func_list " getexecname" as_fn_append ac_header_list " sys/time.h" as_fn_append ac_func_list " gettimeofday" as_fn_append ac_header_list " iconv.h" as_fn_append ac_header_list " langinfo.h" as_fn_append ac_header_list " limits.h" as_fn_append ac_func_list " link" as_fn_append ac_header_list " xlocale.h" as_fn_append ac_func_list " lstat" as_fn_append ac_header_list " math.h" as_fn_append ac_func_list " mbsinit" as_fn_append ac_func_list " mbrtowc" as_fn_append ac_header_list " sys/mman.h" as_fn_append ac_func_list " mprotect" as_fn_append ac_func_list " mkostemp" as_fn_append ac_func_list " nl_langinfo" as_fn_append ac_header_list " sys/param.h" as_fn_append ac_func_list " __xpg_strerror_r" as_fn_append ac_func_list " pipe2" as_fn_append ac_header_list " malloc.h" as_fn_append ac_func_list " isblank" as_fn_append ac_func_list " iswctype" as_fn_append ac_header_list " sys/cdefs.h" as_fn_append ac_func_list " secure_getenv" as_fn_append ac_func_list " getuid" as_fn_append ac_func_list " geteuid" as_fn_append ac_func_list " getgid" as_fn_append ac_func_list " getegid" as_fn_append ac_func_list " sigaction" as_fn_append ac_func_list " sigaltstack" as_fn_append ac_func_list " siginterrupt" as_fn_append ac_header_list " spawn.h" as_fn_append ac_header_list " wchar.h" as_fn_append ac_header_list " stdint.h" as_fn_append ac_func_list " strdup" as_fn_append ac_func_list " catgets" as_fn_append ac_func_list " snprintf" as_fn_append ac_header_list " strings.h" as_fn_append ac_header_list " sys/ioctl.h" as_fn_append ac_header_list " sys/uio.h" as_fn_append ac_header_list " sys/wait.h" as_fn_append ac_func_list " pipe" as_fn_append ac_header_list " features.h" as_fn_append ac_func_list " wcrtomb" as_fn_append ac_func_list " iswcntrl" as_fn_append ac_header_list " wctype.h" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in build-aux "$srcdir"/build-aux; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. am__api_version='1.15' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='gcal' VERSION='4.1' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h $as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h $as_echo "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 $as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; } if ${ac_cv_should_define__xopen_source+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_should_define__xopen_source=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include mbstate_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE 500 #include mbstate_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_should_define__xopen_source=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 $as_echo "$ac_cv_should_define__xopen_source" >&6; } test $ac_cv_should_define__xopen_source = yes && $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: this is the automatical configuration step of $PACKAGE-$VERSION" >&5 $as_echo "this is the automatical configuration step of $PACKAGE-$VERSION" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: please wait..." >&5 $as_echo "please wait..." >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } if test -z "$CFLAGS"; then gcal_possibly_adjust_cflags=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler..." >&5 $as_echo "$as_me: checking for C compiler..." >&6;} ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5 $as_echo_n "checking for Minix Amsterdam compiler... " >&6; } if ${gl_cv_c_amsterdam_compiler+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ACK__ Amsterdam #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Amsterdam" >/dev/null 2>&1; then : gl_cv_c_amsterdam_compiler=yes else gl_cv_c_amsterdam_compiler=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5 $as_echo "$gl_cv_c_amsterdam_compiler" >&6; } if test $gl_cv_c_amsterdam_compiler = yes; then if test -z "$AR"; then AR='cc -c.a' fi if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} { $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 $as_echo_n "checking the archiver ($AR) interface... " >&6; } if ${am_cv_ar_interface+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am_cv_ar_interface=ar cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 $as_echo "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) as_fn_error $? "could not determine $AR interface" "$LINENO" 5 ;; esac fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="ar" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi if test -z "$ARFLAGS"; then ARFLAGS='cr' fi if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' else if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } if ${ac_cv_sys_largefile_source+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_sys_largefile_source=no; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGEFILE_SOURCE 1 #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_sys_largefile_source=1; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_cv_sys_largefile_source=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5 $as_echo "$ac_cv_sys_largefile_source" >&6; } case $ac_cv_sys_largefile_source in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source _ACEOF ;; esac rm -rf conftest* # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug # in glibc 2.1.3, but that breaks too many other things. # If you want fseeko and ftello with glibc, upgrade to a fixed glibc. if test $ac_cv_sys_largefile_source != unknown; then $as_echo "#define HAVE_FSEEKO 1" >>confdefs.h fi # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : enableval=$enable_largefile; fi if test "$enable_largefile" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext CC="$CC -n32" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 $as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=64; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_file_offset_bits=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 $as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF ;; esac rm -rf conftest* if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=1; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_large_files=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 $as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF ;; esac rm -rf conftest* fi $as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h fi # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Check whether --enable-threads was given. if test "${enable_threads+set}" = set; then : enableval=$enable_threads; gl_use_threads=$enableval else if test -n "$gl_use_threads_default"; then gl_use_threads="$gl_use_threads_default" else case "$host_os" in osf*) gl_use_threads=no ;; cygwin*) case `uname -r` in 1.[0-5].*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ;; *) gl_use_threads=yes ;; esac fi fi if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # For using : case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks . cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_LINK_IFELSE test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in . case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac fi # Pre-early section. # Code from module absolute-header: # Code from module acos: # Code from module alloca: # Code from module alloca-opt: # Code from module asin: # Code from module assert: # Code from module atan: # Code from module atan2: # Code from module binary-io: # Code from module btowc: # Code from module builtin-expect: # Code from module ceil: # Code from module cloexec: # Code from module close: # Code from module cond: # Code from module configmake: # Code from module cos: # Code from module dirname-lgpl: # Code from module dosname: # Code from module double-slash-root: # Code from module dup2: # Code from module environ: # Code from module errno: # Code from module error: # Code from module exitfail: # Code from module extensions: # Code from module extern-inline: # Code from module fatal-signal: # Code from module fclose: # Code from module fcntl: # Code from module fcntl-h: # Code from module fd-hook: # Code from module fd-safer-flag: # Code from module fflush: # Code from module filename: # Code from module float: # Code from module floor: # Code from module fopen: # Code from module fpurge: # Code from module freading: # Code from module free: # Code from module fseek: # Code from module fseeko: # Code from module fstat: # Code from module ftell: # Code from module ftello: # Code from module getdtablesize: # Code from module getprogname: # Code from module gettext-h: # Code from module gettimeofday: # Code from module git-version-gen: # Code from module gnumakefile: # Code from module hard-locale: # Code from module havelib: # Code from module iconv: # Code from module iconv-h: # Code from module include_next: # Code from module intprops: # Code from module ioctl: # Code from module langinfo: # Code from module largefile: # Code from module limits-h: # Code from module link: # Code from module list: # Code from module localcharset: # Code from module locale: # Code from module localeconv: # Code from module lock: # Code from module log: # Code from module log10: # Code from module lseek: # Code from module lstat: # Code from module maintainer-makefile: # Code from module malloc: # Code from module malloc-gnu: # Code from module malloc-posix: # Code from module math: # Code from module mbrtowc: # Code from module mbsinit: # Code from module mbtowc: # Code from module memchr: # Code from module mkostemp: # Code from module msvc-inval: # Code from module msvc-nothrow: # Code from module multiarch: # Code from module nl_langinfo: # Code from module open: # Code from module pathmax: # Code from module perror: # Code from module pipe: # Code from module pipe2: # Code from module pipe2-safer: # Code from module posix_spawn-internal: # Code from module posix_spawn_file_actions_addclose: # Code from module posix_spawn_file_actions_adddup2: # Code from module posix_spawn_file_actions_addopen: # Code from module posix_spawn_file_actions_destroy: # Code from module posix_spawn_file_actions_init: # Code from module posix_spawnattr_destroy: # Code from module posix_spawnattr_init: # Code from module posix_spawnattr_setflags: # Code from module posix_spawnattr_setsigmask: # Code from module posix_spawnp: # Code from module putenv: # Code from module raise: # Code from module rawmemchr: # Code from module realloc: # Code from module realloc-gnu: # Code from module realloc-posix: # Code from module regex: # Code from module sched: # Code from module secure_getenv: # Code from module sigaction: # Code from module signal: # Code from module signal-h: # Code from module sigprocmask: # Code from module sin: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/unused-parameter: # Code from module snippet/warn-on-use: # Code from module socklen: # Code from module spawn: # Code from module spawn-pipe: # Code from module sqrt: # Code from module ssize_t: # Code from module stat: # Code from module stdalign: # Code from module stdbool: # Code from module stddef: # Code from module stdint: # Code from module stdio: # Code from module stdlib: # Code from module strchrnul: # Code from module strcspn: # Code from module strdup-posix: # Code from module streq: # Code from module strerror: # Code from module strerror-override: # Code from module strerror_r-posix: # Code from module string: # Code from module strings: # Code from module strstr: # Code from module strstr-simple: # Code from module strtol: # Code from module sys_ioctl: # Code from module sys_socket: # Code from module sys_stat: # Code from module sys_time: # Code from module sys_types: # Code from module sys_uio: # Code from module sys_wait: # Code from module tan: # Code from module tempname: # Code from module threadlib: # Code from module time: # Code from module tmpdir: # Code from module unistd: # Code from module unistd-safer: # Code from module unlink: # Code from module useless-if-before-free: # Code from module vc-list-files: # Code from module verify: # Code from module wait-process: # Code from module waitpid: # Code from module wchar: # Code from module wcrtomb: # Code from module wctype-h: # Code from module write: # Code from module xalloc: # Code from module xalloc-die: # Code from module xalloc-oversized: ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (size_t); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "#define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $PACKAGE specific package options..." >&5 $as_echo "$as_me: checking for $PACKAGE specific package options..." >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unicode support is required" >&5 $as_echo_n "checking whether unicode support is required... " >&6; } # Check whether --enable-unicode was given. if test "${enable_unicode+set}" = set; then : enableval=$enable_unicode; gcal_cv_use_unicode=$enableval else gcal_cv_use_unicode=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_use_unicode" >&5 $as_echo "$gcal_cv_use_unicode" >&6; } if test "$gcal_cv_use_unicode" = yes; then $as_echo "#define USE_UNICODE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether extended ASCII character set is required" >&5 $as_echo_n "checking whether extended ASCII character set is required... " >&6; } # Check whether --enable-easc was given. if test "${enable_easc+set}" = set; then : enableval=$enable_easc; gcal_cv_use_easc=$enableval else gcal_cv_use_easc=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_use_easc" >&5 $as_echo "$gcal_cv_use_easc" >&6; } if test "$gcal_cv_use_easc" = yes; then $as_echo "#define USE_EASC 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether all available country specific holidays are required" >&5 $as_echo_n "checking whether all available country specific holidays are required... " >&6; } # Check whether --enable-cc-holidays was given. if test "${enable_cc_holidays+set}" = set; then : enableval=$enable_cc_holidays; gcal_cv_use_cc_holidays=$enableval else gcal_cv_use_cc_holidays=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_use_cc_holidays" >&5 $as_echo "$gcal_cv_use_cc_holidays" >&6; } if test "$gcal_cv_use_cc_holidays" = yes; then GCAL_HD_OBJS="\$(GCAL_HD_OBJS)" else $as_echo "#define HD_TOP20CC 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether highlighting sequences are required" >&5 $as_echo_n "checking whether highlighting sequences are required... " >&6; } # Check whether --enable-hls was given. if test "${enable_hls+set}" = set; then : enableval=$enable_hls; gcal_cv_use_hls=$enableval else gcal_cv_use_hls=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_use_hls" >&5 $as_echo "$gcal_cv_use_hls" >&6; } if test "$gcal_cv_use_hls" = yes; then $as_echo "#define USE_HLS 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pager feature is required" >&5 $as_echo_n "checking whether pager feature is required... " >&6; } # Check whether --enable-pager was given. if test "${enable_pager+set}" = set; then : enableval=$enable_pager; gcal_cv_use_pager=$enableval else gcal_cv_use_pager=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_use_pager" >&5 $as_echo "$gcal_cv_use_pager" >&6; } if test "$gcal_cv_use_pager" = yes; then $as_echo "#define USE_PAGER 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fixed date feature is required" >&5 $as_echo_n "checking whether fixed date feature is required... " >&6; } # Check whether --enable-rc was given. if test "${enable_rc+set}" = set; then : enableval=$enable_rc; gcal_cv_use_rc=$enableval else gcal_cv_use_rc=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_use_rc" >&5 $as_echo "$gcal_cv_use_rc" >&6; } if test "$gcal_cv_use_rc" = yes; then GCAL_RC_OBJS="\$(GCAL_RC_OBJS)" $as_echo "#define USE_RC 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether terminal libraries are required" >&5 $as_echo_n "checking whether terminal libraries are required... " >&6; } # Check whether --enable-term was given. if test "${enable_term+set}" = set; then : enableval=$enable_term; gcal_cv_use_term=$enableval else gcal_cv_use_term=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_use_term" >&5 $as_echo "$gcal_cv_use_term" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for programs..." >&5 $as_echo "$as_me: checking for programs..." >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_PERL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PERL"; then ac_cv_prog_PERL="$PERL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PERL="perl" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi PERL=$ac_cv_prog_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done if test -z "$ac_cv_prog_AWK"; then # Extract the first word of "gnuawk", so it can be a program name with args. set dummy gnuawk; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="gnuawk" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$ac_cv_prog_AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no automatic installation of dates files!" >&5 $as_echo "$as_me: WARNING: no automatic installation of dates files!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Makefile target *installdates* will never be executed" >&5 $as_echo "$as_me: WARNING: Makefile target *installdates* will never be executed" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: and some other targets will create useless script files." >&5 $as_echo "$as_me: WARNING: and some other targets will create useless script files." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } fi fi # Extract the first word of "zdump", so it can be a program name with args. set dummy zdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ZDUMP+:} false; then : $as_echo_n "(cached) " >&6 else case $ZDUMP in [\\/]* | ?:[\\/]*) ac_cv_path_ZDUMP="$ZDUMP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:\ /sbin:\ /usr/sbin:\ /usr/local/sbin:\ /usr/etc:\ /usr/etc/zoneinfo:\ /usr/lib:\ /usr/lib/zoneinfo:\ /usr/share:\ /usr/share/zoneinfo:\ /usr/share/lib:\ /usr/share/lib/zoneinfo:\ /usr/share/etc:\ /usr/share/etc/zoneinfo:\ /usr/local/etc:\ /usr/local/etc/zoneinfo:\ /usr/local/lib:\ /usr/local/lib/zoneinfo:\ /usr/local/share:\ /usr/local/share/zoneinfo:\ /usr/local/share/lib:\ /usr/local/share/lib/zoneinfo:\ /usr/local/share/etc:\ /usr/local/share/etc/zoneinfo:\ /opt/gnu/sbin:\ /opt/gnu/usr/sbin:\ /opt/gnu/usr/local/sbin:\ /opt/gnu/etc:\ /opt/gnu/etc/zoneinfo:\ /opt/gnu/lib:\ /opt/gnu/lib/zoneinfo:\ /opt/gnu/share:\ /opt/gnu/share/zoneinfo:\ /opt/gnu/share/lib:\ /opt/gnu/share/lib/zoneinfo:\ /opt/gnu/share/etc:\ /opt/gnu/share/etc/zoneinfo" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ZDUMP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ZDUMP=$ac_cv_path_ZDUMP if test -n "$ZDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ZDUMP" >&5 $as_echo "$ZDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$ac_cv_path_ZDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ask your sysadmin for the ZONEINFO time zone dumping program!" >&5 $as_echo "$as_me: WARNING: Ask your sysadmin for the ZONEINFO time zone dumping program!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Makefile target *dst* will produce a useless script file." >&5 $as_echo "$as_me: WARNING: Makefile target *dst* will produce a useless script file." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } fi if test "$gcal_cv_use_pager" = yes; then # Extract the first word of "less", so it can be a program name with args. set dummy less; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_PAGER1+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PAGER1"; then ac_cv_prog_PAGER1="$PAGER1" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PAGER1="less" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi PAGER1=$ac_cv_prog_PAGER1 if test -n "$PAGER1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PAGER1" >&5 $as_echo "$PAGER1" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat >>confdefs.h <<_ACEOF #define PAGER1_PROG "$PAGER1" _ACEOF # Extract the first word of "more", so it can be a program name with args. set dummy more; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_PAGER2+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PAGER2"; then ac_cv_prog_PAGER2="$PAGER2" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PAGER2="more" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi PAGER2=$ac_cv_prog_PAGER2 if test -n "$PAGER2"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PAGER2" >&5 $as_echo "$PAGER2" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat >>confdefs.h <<_ACEOF #define PAGER2_PROG "$PAGER2" _ACEOF # Extract the first word of "pg", so it can be a program name with args. set dummy pg; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_PAGER3+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PAGER3"; then ac_cv_prog_PAGER3="$PAGER3" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PAGER3="pg" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi PAGER3=$ac_cv_prog_PAGER3 if test -n "$PAGER3"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PAGER3" >&5 $as_echo "$PAGER3" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat >>confdefs.h <<_ACEOF #define PAGER3_PROG "$PAGER3" _ACEOF fi for ac_prog in cp copy do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CP"; then ac_cv_prog_CP="$CP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CP="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CP=$ac_cv_prog_CP if test -n "$CP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 $as_echo "$CP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CP" && break done if test -n "$ac_cv_prog_CP"; then if test "$ac_cv_prog_CP" = cp; then CP="cp -p" else if test "$ac_cv_prog_CP" != "cp -p"; then if test "$ac_cv_prog_CP" != "copy -m"; then CP="copy -m" fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi if test $ac_cv_c_compiler_gnu = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 $as_echo_n "checking whether $CC needs -traditional... " >&6; } if ${ac_cv_prog_gcc_traditional+:} false; then : $as_echo_n "(cached) " >&6 else ac_pattern="Autoconf.*'x'" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then : ac_cv_prog_gcc_traditional=yes else ac_cv_prog_gcc_traditional=no fi rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then : ac_cv_prog_gcc_traditional=yes fi rm -f conftest* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 $as_echo "$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi if test "$gcal_possibly_adjust_cflags" = yes && test -n "$GCC"; then CFLAGS="$CFLAGS -Wall" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for operating system variants..." >&5 $as_echo "$as_me: checking for operating system variants..." >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } if ${ac_cv_search_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strerror (); int main () { return strerror (); ; return 0; } _ACEOF for ac_lib in '' cposix; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_strerror=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_strerror+:} false; then : break fi done if ${ac_cv_search_strerror+:} false; then : else ac_cv_search_strerror=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 $as_echo "$ac_cv_search_strerror" >&6; } ac_res=$ac_cv_search_strerror if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libraries..." >&5 $as_echo "$as_me: checking for libraries..." >&6;} if test "$gcal_cv_use_term" = yes; then gcal_ttylibs_ok=no gcal_libtermlib_ok=no TTYLIBS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncurses" >&5 $as_echo_n "checking for initscr in -lncurses... " >&6; } if ${ac_cv_lib_ncurses_initscr+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char initscr (); int main () { return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ncurses_initscr=yes else ac_cv_lib_ncurses_initscr=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_initscr" >&5 $as_echo "$ac_cv_lib_ncurses_initscr" >&6; } if test "x$ac_cv_lib_ncurses_initscr" = xyes; then : TTYLIBS="-lncurses" fi if test -z "$TTYLIBS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5 $as_echo_n "checking for tgetent in -ltermcap... " >&6; } if ${ac_cv_lib_termcap_tgetent+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltermcap $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char tgetent (); int main () { return tgetent (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_termcap_tgetent=yes else ac_cv_lib_termcap_tgetent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5 $as_echo "$ac_cv_lib_termcap_tgetent" >&6; } if test "x$ac_cv_lib_termcap_tgetent" = xyes; then : TTYLIBS="-ltermcap" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermlib" >&5 $as_echo_n "checking for tgetent in -ltermlib... " >&6; } if ${ac_cv_lib_termlib_tgetent+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltermlib $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char tgetent (); int main () { return tgetent (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_termlib_tgetent=yes else ac_cv_lib_termlib_tgetent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termlib_tgetent" >&5 $as_echo "$ac_cv_lib_termlib_tgetent" >&6; } if test "x$ac_cv_lib_termlib_tgetent" = xyes; then : have_libtermlib=yes else have_libtermlib=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working terminal libraries" >&5 $as_echo_n "checking for working terminal libraries... " >&6; } SAVE_LIBS=$LIBS LIBS="$LIBS $TTYLIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { tgetent(0); tgetflag(0); tgetnum(0); tgetstr(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gcal_ttylibs_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$gcal_ttylibs_ok" = yes; then $as_echo "#define HAVE_TTYLIBS 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: using $TTYLIBS" >&5 $as_echo "using $TTYLIBS" >&6; } else if test "$TTYLIBS" = "-lncurses"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: using $TTYLIBS fails" >&5 $as_echo "using $TTYLIBS fails" >&6; } LIBS="$SAVE_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5 $as_echo_n "checking for tgetent in -ltermcap... " >&6; } if ${ac_cv_lib_termcap_tgetent+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltermcap $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char tgetent (); int main () { return tgetent (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_termcap_tgetent=yes else ac_cv_lib_termcap_tgetent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5 $as_echo "$ac_cv_lib_termcap_tgetent" >&6; } if test "x$ac_cv_lib_termcap_tgetent" = xyes; then : TTYLIBS="-ltermcap" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working terminal libraries again" >&5 $as_echo_n "checking for working terminal libraries again... " >&6; } LIBS="$LIBS $TTYLIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { tgetent(0); tgetflag(0); tgetnum(0); tgetstr(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gcal_ttylibs_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$gcal_ttylibs_ok" = yes; then $as_echo "#define HAVE_TTYLIBS 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: using $TTYLIBS" >&5 $as_echo "using $TTYLIBS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: using $TTYLIBS fails" >&5 $as_echo "using $TTYLIBS fails" >&6; } LIBS="$SAVE_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermlib" >&5 $as_echo_n "checking for tgetent in -ltermlib... " >&6; } if ${ac_cv_lib_termlib_tgetent+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltermlib $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char tgetent (); int main () { return tgetent (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_termlib_tgetent=yes else ac_cv_lib_termlib_tgetent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termlib_tgetent" >&5 $as_echo "$ac_cv_lib_termlib_tgetent" >&6; } if test "x$ac_cv_lib_termlib_tgetent" = xyes; then : have_libtermlib=yes else have_libtermlib=no fi TTYLIBS="-ltermlib" LIBS="$LIBS $TTYLIBS" if test "$have_libtermlib" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working terminal libraries again" >&5 $as_echo_n "checking for working terminal libraries again... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { tgetent(0); tgetflag(0); tgetnum(0); tgetstr(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gcal_libtermlib_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$gcal_libtermlib_ok" = yes; then $as_echo "#define HAVE_TTYLIBS 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: using $TTYLIBS" >&5 $as_echo "using $TTYLIBS" >&6; } fi fi fi else if test "$have_libtermlib" = yes; then TTYLIBS="-ltermlib" LIBS="$SAVE_LIBS $TTYLIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { tgetent(0); tgetflag(0); tgetnum(0); tgetstr(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gcal_libtermlib_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$gcal_libtermlib_ok" = yes; then $as_echo "#define HAVE_TTYLIBS 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: using $TTYLIBS" >&5 $as_echo "using $TTYLIBS" >&6; } fi fi fi fi if test "$gcal_ttylibs_ok" = no && test "$gcal_libtermlib_ok" = no; then LIBS="$SAVE_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: hmm... whats this??" >&5 $as_echo "hmm... whats this??" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no terminal libraries available" >&5 $as_echo "$as_me: WARNING: no terminal libraries available" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: " >&5 $as_echo "$as_me: WARNING: " >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: this means $PACKAGE-$VERSION will use its defaults now" >&5 $as_echo "$as_me: WARNING: this means $PACKAGE-$VERSION will use its defaults now" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: and is unable to support several terminal types!" >&5 $as_echo "$as_me: WARNING: and is unable to support several terminal types!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: note: $PACKAGE-$VERSION would work more flexible if libncurses.a" >&5 $as_echo "$as_me: WARNING: note: $PACKAGE-$VERSION would work more flexible if libncurses.a" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libtermcap.a or libtermlib.a are installed." >&5 $as_echo "$as_me: WARNING: libtermcap.a or libtermlib.a are installed." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 $as_echo_n "checking for cos in -lm... " >&6; } if ${ac_cv_lib_m_cos+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char cos (); int main () { return cos (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_cos=yes else ac_cv_lib_m_cos=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 $as_echo "$ac_cv_lib_m_cos" >&6; } if test "x$ac_cv_lib_m_cos" = xyes; then : LIBM="-lm" $as_echo "#define HAVE_LIBM 1" >>confdefs.h have_libm=yes else have_libm=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for header files..." >&5 $as_echo "$as_me: checking for header files..." >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi for ac_header in stdio.h stdlib.h string.h unistd.h ctype.h errno.h limits.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in assert.h signal.h termio.h termios.h sgtty.h langinfo.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _NL_TIME_FIRST_WEEKDAY" >&5 $as_echo_n "checking for _NL_TIME_FIRST_WEEKDAY... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char c; c = *((unsigned char *) nl_langinfo(_NL_TIME_FIRST_WEEKDAY)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : nl_res=yes else nl_res=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nl_res" >&5 $as_echo "$nl_res" >&6; } if test "$nl_res" = "yes"; then $as_echo "#define HAVE__NL_TIME_FIRST_WEEKDAY 1" >>confdefs.h fi if test "$gcal_cv_use_term" = yes; then if test "$gcal_ttylibs_ok" = yes || test "$gcal_libtermlib_ok" = yes; then for ac_header in termcap.h do : ac_fn_c_check_header_mongrel "$LINENO" "termcap.h" "ac_cv_header_termcap_h" "$ac_includes_default" if test "x$ac_cv_header_termcap_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TERMCAP_H 1 _ACEOF fi done fi fi if test "$have_libm" = yes; then for ac_header in math.h do : ac_fn_c_check_header_mongrel "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default" if test "x$ac_cv_header_math_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MATH_H 1 _ACEOF fi done fi if test "$gcal_cv_use_included_regexps" = no; then for ac_header in regex.h do : ac_fn_c_check_header_mongrel "$LINENO" "regex.h" "ac_cv_header_regex_h" "$ac_includes_default" if test "x$ac_cv_header_regex_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_REGEX_H 1 _ACEOF fi done fi if test "$gcal_cv_use_pager" = yes; then for ac_header in fcntl.h do : ac_fn_c_check_header_mongrel "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default" if test "x$ac_cv_header_fcntl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FCNTL_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 $as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } if ${ac_cv_header_sys_wait_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) #endif #ifndef WIFEXITED # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif int main () { int s; wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_sys_wait_h=yes else ac_cv_header_sys_wait_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5 $as_echo "$ac_cv_header_sys_wait_h" >&6; } if test $ac_cv_header_sys_wait_h = yes; then $as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h fi fi for ac_header in sys/ioctl.h sys/stream.h sys/ptem.h sys/stat.h sys/types.h sys/time.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for typedefs and structures..." >&5 $as_echo "$as_me: checking for typedefs and structures..." >&6;} if test "$gcal_cv_use_pager" = yes; then ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 $as_echo_n "checking return type of signal handlers... " >&6; } if ${ac_cv_type_signal+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_signal=int else ac_cv_type_signal=void fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 $as_echo "$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for time_t" >&5 $as_echo_n "checking for time_t... " >&6; } if ${gcal_cv_type_time_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # if TIME_WITH_SYS_TIME # include # include # else # if HAVE_SYS_TIME_H # include # else # include # endif # endif int main () { time_t t = 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gcal_cv_type_time_t=yes else gcal_cv_type_time_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "$gcal_cv_type_time_t" = yes; then $as_echo "#define HAVE_TIME_T 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_type_time_t" >&5 $as_echo "$gcal_cv_type_time_t" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler characteristics..." >&5 $as_echo "$as_me: checking for compiler characteristics..." >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for void" >&5 $as_echo_n "checking for void... " >&6; } if ${gcal_cv_c_void+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { void *foo = 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gcal_cv_c_void=yes else gcal_cv_c_void=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "$gcal_cv_c_void" = yes; then $as_echo "#define HAVE_VOID 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_c_void" >&5 $as_echo "$gcal_cv_c_void" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library functions..." >&5 $as_echo "$as_me: checking for library functions..." >&6;} if test "$gcal_cv_use_pager" = yes; then for ac_func in dup dup2 do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done fi for ac_func in signal strtol strstr strchr strrchr strcspn strcasecmp strncasecmp setlocale do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_func "$LINENO" "tcgetattr" "ac_cv_func_tcgetattr" if test "x$ac_cv_func_tcgetattr" = xyes; then : $as_echo "#define HAVE_TERMIOS_FUNCS 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working system function" >&5 $as_echo_n "checking for working system function... " >&6; } if ${gcal_cv_func_system_ok+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gcal_cv_func_system_ok=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # if STDC_HEADERS # include # endif int main() { int i; i = system(NULL); if (!i) exit(1); exit(0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gcal_cv_func_system_ok=yes else gcal_cv_func_system_ok=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_func_system_ok" >&5 $as_echo "$gcal_cv_func_system_ok" >&6; } if test "$gcal_cv_func_system_ok" = yes; then $as_echo "#define HAVE_SYSTEM 1" >>confdefs.h fi if test "$gcal_cv_use_included_regexps" = no; then have_regexp=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for regular expression functions..." >&5 $as_echo "$as_me: checking for regular expression functions..." >&6;} ac_fn_c_check_func "$LINENO" "re_compile_pattern" "ac_cv_func_re_compile_pattern" if test "x$ac_cv_func_re_compile_pattern" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: using GNU re_compile_pattern" >&5 $as_echo "using GNU re_compile_pattern" >&6; } $as_echo "#define HAVE_GNU_RE_COMPILE_PATTERN 1" >>confdefs.h have_regexp=yes fi if test "$have_regexp" = no; then have_posix_regexp=unknown if test "$cross_compiling" = yes; then : have_posix_regexp=unknown else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # if HAVE_SYS_TYPES_H # include # endif # if HAVE_REGEX_H # include # endif int main() { regex_t r; regmatch_t rm; if (regcomp(&r, "abc", 0)) exit(1); if (regexec(&r, "xabcy", 1, &rm, 0)) exit(1); exit(0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : have_posix_regexp=yes else have_posix_regexp=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "$have_posix_regexp" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: using POSIX regcomp" >&5 $as_echo "using POSIX regcomp" >&6; } $as_echo "#define HAVE_POSIX_REGCOMP 1" >>confdefs.h have_regexp=yes else if test "$have_posix_regexp" = unknown; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # if HAVE_SYS_TYPES_H # include # endif # if HAVE_REGEX_H # include # endif int main () { regex_t *r; regfree(r); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: using POSIX regcomp" >&5 $as_echo "using POSIX regcomp" >&6; } $as_echo "#define HAVE_POSIX_REGCOMP 1" >>confdefs.h have_regexp=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi fi if test "$have_regexp" = no; then ac_fn_c_check_func "$LINENO" "re_comp" "ac_cv_func_re_comp" if test "x$ac_cv_func_re_comp" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: using BSD re_comp" >&5 $as_echo "using BSD re_comp" >&6; } $as_echo "#define HAVE_RE_COMP 1" >>confdefs.h have_regexp=yes fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ctype library functions..." >&5 $as_echo "$as_me: checking for ctype library functions..." >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for upper/lower" >&5 $as_echo_n "checking for upper/lower... " >&6; } if ${gcal_cv_func_upper_lower+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # if HAVE_CTYPE_H # include # endif int main () { static int x; x = tolower(x); x = toupper(x); x = islower(x); x = isupper(x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gcal_cv_func_upper_lower=yes else gcal_cv_func_upper_lower=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test "$gcal_cv_func_upper_lower" = yes; then $as_echo "#define HAVE_UPPER_LOWER 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_func_upper_lower" >&5 $as_echo "$gcal_cv_func_upper_lower" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isdigit" >&5 $as_echo_n "checking for isdigit... " >&6; } if ${gcal_cv_func_isdigit+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # if HAVE_CTYPE_H # include # endif int main () { static int x; x = isdigit(x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gcal_cv_func_isdigit=yes else gcal_cv_func_isdigit=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test "$gcal_cv_func_isdigit" = yes; then $as_echo "#define HAVE_ISDIGIT 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_func_isdigit" >&5 $as_echo "$gcal_cv_func_isdigit" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isalpha" >&5 $as_echo_n "checking for isalpha... " >&6; } if ${gcal_cv_func_isalpha+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # if HAVE_CTYPE_H # include # endif int main () { static int x; x = isalpha(x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gcal_cv_func_isalpha=yes else gcal_cv_func_isalpha=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test "$gcal_cv_func_isalpha" = yes; then $as_echo "#define HAVE_ISALPHA 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_func_isalpha" >&5 $as_echo "$gcal_cv_func_isalpha" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isalnum" >&5 $as_echo_n "checking for isalnum... " >&6; } if ${gcal_cv_func_isalnum+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # if HAVE_CTYPE_H # include # endif int main () { static int x; x = isalnum(x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gcal_cv_func_isalnum=yes else gcal_cv_func_isalnum=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test "$gcal_cv_func_isalnum" = yes; then $as_echo "#define HAVE_ISALNUM 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_func_isalnum" >&5 $as_echo "$gcal_cv_func_isalnum" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isspace" >&5 $as_echo_n "checking for isspace... " >&6; } if ${gcal_cv_func_isspace+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # if HAVE_CTYPE_H # include # endif int main () { static int x; x = isspace(x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gcal_cv_func_isspace=yes else gcal_cv_func_isspace=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test "$gcal_cv_func_isspace" = yes; then $as_echo "#define HAVE_ISSPACE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcal_cv_func_isspace" >&5 $as_echo "$gcal_cv_func_isspace" >&6; } if test "$gcal_cv_use_term" = yes; then if test "$gcal_ttylibs_ok" = yes || test "$gcal_libtermlib_ok" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for external variables..." >&5 $as_echo "$as_me: checking for external variables..." >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: checking terminal library for ospeed" >&5 $as_echo_n "checking terminal library for ospeed... " >&6; } if ${gcal_cv_var_ospeed_test_1+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # if HAVE_SYS_TYPES_H # include # endif # if HAVE_TERMIOS_H # include # endif # if HAVE_TERMCAP_H # include # endif int main () { ospeed = 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gcal_cv_var_ospeed_test_1=yes else gcal_cv_var_ospeed_test_1=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test "$gcal_cv_var_ospeed_test_1" = no; then if ${gcal_cv_var_ospeed_test_2+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern short ospeed; ospeed = 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gcal_cv_var_ospeed_test_2=yes else gcal_cv_var_ospeed_test_2=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi fi if test "$gcal_cv_var_ospeed_test_1" = yes || test "$gcal_cv_var_ospeed_test_2" = yes; then $as_echo "#define HAVE_OSPEED 1" >>confdefs.h if test "$gcal_cv_var_ospeed_test_2" = yes; then $as_echo "#define MUST_DCL_OSPEED 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for system services..." >&5 $as_echo "$as_me: checking for system services..." >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether #! works in shell scripts" >&5 $as_echo_n "checking whether #! works in shell scripts... " >&6; } if ${ac_cv_sys_interpreter+:} false; then : $as_echo_n "(cached) " >&6 else echo '#! /bin/cat exit 69 ' >conftest chmod u+x conftest (SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1) if test $? -ne 69; then ac_cv_sys_interpreter=yes else ac_cv_sys_interpreter=no fi rm -f conftest fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_interpreter" >&5 $as_echo "$ac_cv_sys_interpreter" >&6; } interpval=$ac_cv_sys_interpreter if test "$ac_cv_sys_interpreter" = yes; then $as_echo "#define HAVE_SYS_INTERPRETER 1" >>confdefs.h fi mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } GETTEXT_MACRO_VERSION=0.17 # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$localedir" || localedir='${datadir}/locale' test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= ac_config_commands="$ac_config_commands po-directories" if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 $as_echo_n "checking for 64-bit host... " >&6; } if ${gl_cv_solaris_64bit+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _LP64 sixtyfour bits #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "sixtyfour bits" >/dev/null 2>&1; then : gl_cv_solaris_64bit=yes else gl_cv_solaris_64bit=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 $as_echo "$gl_cv_solaris_64bit" >&6; } if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then : withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBICONV= LTLIBICONV= INCICONV= LIBICONV_PREFIX= HAVE_LIBICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libc=yes" else eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi am_cv_func_iconv_works=no for ac_iconv_const in '' 'const'; do if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #ifndef ICONV_CONST # define ICONV_CONST $ac_iconv_const #endif int main () { int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\263"; char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; ICONV_CONST char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) result |= 16; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi test "$am_cv_func_iconv_works" = no || break done LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBINTL= LTLIBINTL= INCINTL= LIBINTL_PREFIX= HAVE_LIBINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libintl=yes" else eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi INTLLIBS="$LIBINTL" LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ POW_LIBM= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pow can be used without linking with libm" >&5 $as_echo_n "checking whether pow can be used without linking with libm... " >&6; } if ${gl_cv_func_pow_no_libm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include double (*funcptr) (double, double) = pow; int i_ret; float f_ret; double d_ret; long double l_ret; int main () { double y = funcptr (1.6180339887, 1.6180339887) + pow (1.6180339887, 1.6180339887); return y < 0.3 || y > 1.7; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_pow_no_libm=yes else gl_cv_func_pow_no_libm=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pow_no_libm" >&5 $as_echo "$gl_cv_func_pow_no_libm" >&6; } if test $gl_cv_func_pow_no_libm = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pow can be used with libm" >&5 $as_echo_n "checking whether pow can be used with libm... " >&6; } if ${gl_cv_func_pow_in_libm+:} false; then : $as_echo_n "(cached) " >&6 else save_LIBS="$LIBS" LIBS="$LIBS -lm" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include double (*funcptr) (double, double) = pow; int i_ret; float f_ret; double d_ret; long double l_ret; int main () { double y = funcptr (1.6180339887, 1.6180339887) + pow (1.6180339887, 1.6180339887); return y < 0.3 || y > 1.7; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_pow_in_libm=yes else gl_cv_func_pow_in_libm=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pow_in_libm" >&5 $as_echo "$gl_cv_func_pow_in_libm" >&6; } if test $gl_cv_func_pow_in_libm = yes; then POW_LIBM=-lm fi fi GNULIB_BTOWC=0; GNULIB_WCTOB=0; GNULIB_MBSINIT=0; GNULIB_MBRTOWC=0; GNULIB_MBRLEN=0; GNULIB_MBSRTOWCS=0; GNULIB_MBSNRTOWCS=0; GNULIB_WCRTOMB=0; GNULIB_WCSRTOMBS=0; GNULIB_WCSNRTOMBS=0; GNULIB_WCWIDTH=0; GNULIB_WMEMCHR=0; GNULIB_WMEMCMP=0; GNULIB_WMEMCPY=0; GNULIB_WMEMMOVE=0; GNULIB_WMEMSET=0; GNULIB_WCSLEN=0; GNULIB_WCSNLEN=0; GNULIB_WCSCPY=0; GNULIB_WCPCPY=0; GNULIB_WCSNCPY=0; GNULIB_WCPNCPY=0; GNULIB_WCSCAT=0; GNULIB_WCSNCAT=0; GNULIB_WCSCMP=0; GNULIB_WCSNCMP=0; GNULIB_WCSCASECMP=0; GNULIB_WCSNCASECMP=0; GNULIB_WCSCOLL=0; GNULIB_WCSXFRM=0; GNULIB_WCSDUP=0; GNULIB_WCSCHR=0; GNULIB_WCSRCHR=0; GNULIB_WCSCSPN=0; GNULIB_WCSSPN=0; GNULIB_WCSPBRK=0; GNULIB_WCSSTR=0; GNULIB_WCSTOK=0; GNULIB_WCSWIDTH=0; HAVE_BTOWC=1; HAVE_MBSINIT=1; HAVE_MBRTOWC=1; HAVE_MBRLEN=1; HAVE_MBSRTOWCS=1; HAVE_MBSNRTOWCS=1; HAVE_WCRTOMB=1; HAVE_WCSRTOMBS=1; HAVE_WCSNRTOMBS=1; HAVE_WMEMCHR=1; HAVE_WMEMCMP=1; HAVE_WMEMCPY=1; HAVE_WMEMMOVE=1; HAVE_WMEMSET=1; HAVE_WCSLEN=1; HAVE_WCSNLEN=1; HAVE_WCSCPY=1; HAVE_WCPCPY=1; HAVE_WCSNCPY=1; HAVE_WCPNCPY=1; HAVE_WCSCAT=1; HAVE_WCSNCAT=1; HAVE_WCSCMP=1; HAVE_WCSNCMP=1; HAVE_WCSCASECMP=1; HAVE_WCSNCASECMP=1; HAVE_WCSCOLL=1; HAVE_WCSXFRM=1; HAVE_WCSDUP=1; HAVE_WCSCHR=1; HAVE_WCSRCHR=1; HAVE_WCSCSPN=1; HAVE_WCSSPN=1; HAVE_WCSPBRK=1; HAVE_WCSSTR=1; HAVE_WCSTOK=1; HAVE_WCSWIDTH=1; HAVE_DECL_WCTOB=1; HAVE_DECL_WCWIDTH=1; REPLACE_MBSTATE_T=0; REPLACE_BTOWC=0; REPLACE_WCTOB=0; REPLACE_MBSINIT=0; REPLACE_MBRTOWC=0; REPLACE_MBRLEN=0; REPLACE_MBSRTOWCS=0; REPLACE_MBSNRTOWCS=0; REPLACE_WCRTOMB=0; REPLACE_WCSRTOMBS=0; REPLACE_WCSNRTOMBS=0; REPLACE_WCWIDTH=0; REPLACE_WCSWIDTH=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether uses 'inline' correctly" >&5 $as_echo_n "checking whether uses 'inline' correctly... " >&6; } if ${gl_cv_header_wchar_h_correct_inline+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_wchar_h_correct_inline=yes cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include extern int zero (void); int main () { return zero(); } _ACEOF save_ac_compile="$ac_compile" ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int zero (void) { return 0; } _ACEOF ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then : else gl_cv_header_wchar_h_correct_inline=no fi fi fi ac_compile="$save_ac_compile" rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5 $as_echo "$gl_cv_header_wchar_h_correct_inline" >&6; } if test $gl_cv_header_wchar_h_correct_inline = no; then as_fn_error $? " cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of , or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted." "$LINENO" 5 fi for ac_func in $ac_func_list do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } if ${am_cv_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char* cs = nl_langinfo(CODESET); return !cs; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_langinfo_codeset=yes else am_cv_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 $as_echo "$am_cv_langinfo_codeset" >&6; } if test $am_cv_langinfo_codeset = yes; then $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 $as_echo_n "checking for a traditional french locale... " >&6; } if ${gt_cv_locale_fr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 $as_echo "$gt_cv_locale_fr" >&6; } LOCALE_FR=$gt_cv_locale_fr GNULIB_ACOSF=0; GNULIB_ACOSL=0; GNULIB_ASINF=0; GNULIB_ASINL=0; GNULIB_ATANF=0; GNULIB_ATANL=0; GNULIB_ATAN2F=0; GNULIB_CBRT=0; GNULIB_CBRTF=0; GNULIB_CBRTL=0; GNULIB_CEIL=0; GNULIB_CEILF=0; GNULIB_CEILL=0; GNULIB_COPYSIGN=0; GNULIB_COPYSIGNF=0; GNULIB_COPYSIGNL=0; GNULIB_COSF=0; GNULIB_COSL=0; GNULIB_COSHF=0; GNULIB_EXPF=0; GNULIB_EXPL=0; GNULIB_EXP2=0; GNULIB_EXP2F=0; GNULIB_EXP2L=0; GNULIB_EXPM1=0; GNULIB_EXPM1F=0; GNULIB_EXPM1L=0; GNULIB_FABSF=0; GNULIB_FABSL=0; GNULIB_FLOOR=0; GNULIB_FLOORF=0; GNULIB_FLOORL=0; GNULIB_FMA=0; GNULIB_FMAF=0; GNULIB_FMAL=0; GNULIB_FMOD=0; GNULIB_FMODF=0; GNULIB_FMODL=0; GNULIB_FREXPF=0; GNULIB_FREXP=0; GNULIB_FREXPL=0; GNULIB_HYPOT=0; GNULIB_HYPOTF=0; GNULIB_HYPOTL=0; GNULIB_ILOGB=0; GNULIB_ILOGBF=0; GNULIB_ILOGBL=0; GNULIB_ISFINITE=0; GNULIB_ISINF=0; GNULIB_ISNAN=0; GNULIB_ISNANF=0; GNULIB_ISNAND=0; GNULIB_ISNANL=0; GNULIB_LDEXPF=0; GNULIB_LDEXPL=0; GNULIB_LOG=0; GNULIB_LOGF=0; GNULIB_LOGL=0; GNULIB_LOG10=0; GNULIB_LOG10F=0; GNULIB_LOG10L=0; GNULIB_LOG1P=0; GNULIB_LOG1PF=0; GNULIB_LOG1PL=0; GNULIB_LOG2=0; GNULIB_LOG2F=0; GNULIB_LOG2L=0; GNULIB_LOGB=0; GNULIB_LOGBF=0; GNULIB_LOGBL=0; GNULIB_MODF=0; GNULIB_MODFF=0; GNULIB_MODFL=0; GNULIB_POWF=0; GNULIB_REMAINDER=0; GNULIB_REMAINDERF=0; GNULIB_REMAINDERL=0; GNULIB_RINT=0; GNULIB_RINTF=0; GNULIB_RINTL=0; GNULIB_ROUND=0; GNULIB_ROUNDF=0; GNULIB_ROUNDL=0; GNULIB_SIGNBIT=0; GNULIB_SINF=0; GNULIB_SINL=0; GNULIB_SINHF=0; GNULIB_SQRTF=0; GNULIB_SQRTL=0; GNULIB_TANF=0; GNULIB_TANL=0; GNULIB_TANHF=0; GNULIB_TRUNC=0; GNULIB_TRUNCF=0; GNULIB_TRUNCL=0; HAVE_ACOSF=1; HAVE_ACOSL=1; HAVE_ASINF=1; HAVE_ASINL=1; HAVE_ATANF=1; HAVE_ATANL=1; HAVE_ATAN2F=1; HAVE_CBRT=1; HAVE_CBRTF=1; HAVE_CBRTL=1; HAVE_COPYSIGN=1; HAVE_COPYSIGNL=1; HAVE_COSF=1; HAVE_COSL=1; HAVE_COSHF=1; HAVE_EXPF=1; HAVE_EXPL=1; HAVE_EXPM1=1; HAVE_EXPM1F=1; HAVE_FABSF=1; HAVE_FABSL=1; HAVE_FMA=1; HAVE_FMAF=1; HAVE_FMAL=1; HAVE_FMODF=1; HAVE_FMODL=1; HAVE_FREXPF=1; HAVE_HYPOTF=1; HAVE_HYPOTL=1; HAVE_ILOGB=1; HAVE_ILOGBF=1; HAVE_ILOGBL=1; HAVE_ISNANF=1; HAVE_ISNAND=1; HAVE_ISNANL=1; HAVE_LDEXPF=1; HAVE_LOGF=1; HAVE_LOGL=1; HAVE_LOG10F=1; HAVE_LOG10L=1; HAVE_LOG1P=1; HAVE_LOG1PF=1; HAVE_LOG1PL=1; HAVE_LOGBF=1; HAVE_LOGBL=1; HAVE_MODFF=1; HAVE_MODFL=1; HAVE_POWF=1; HAVE_REMAINDER=1; HAVE_REMAINDERF=1; HAVE_RINT=1; HAVE_RINTL=1; HAVE_SINF=1; HAVE_SINL=1; HAVE_SINHF=1; HAVE_SQRTF=1; HAVE_SQRTL=1; HAVE_TANF=1; HAVE_TANL=1; HAVE_TANHF=1; HAVE_DECL_ACOSL=1; HAVE_DECL_ASINL=1; HAVE_DECL_ATANL=1; HAVE_DECL_CBRTF=1; HAVE_DECL_CBRTL=1; HAVE_DECL_CEILF=1; HAVE_DECL_CEILL=1; HAVE_DECL_COPYSIGNF=1; HAVE_DECL_COSL=1; HAVE_DECL_EXPL=1; HAVE_DECL_EXP2=1; HAVE_DECL_EXP2F=1; HAVE_DECL_EXP2L=1; HAVE_DECL_EXPM1L=1; HAVE_DECL_FLOORF=1; HAVE_DECL_FLOORL=1; HAVE_DECL_FREXPL=1; HAVE_DECL_LDEXPL=1; HAVE_DECL_LOGL=1; HAVE_DECL_LOG10L=1; HAVE_DECL_LOG2=1; HAVE_DECL_LOG2F=1; HAVE_DECL_LOG2L=1; HAVE_DECL_LOGB=1; HAVE_DECL_REMAINDER=1; HAVE_DECL_REMAINDERL=1; HAVE_DECL_RINTF=1; HAVE_DECL_ROUND=1; HAVE_DECL_ROUNDF=1; HAVE_DECL_ROUNDL=1; HAVE_DECL_SINL=1; HAVE_DECL_SQRTL=1; HAVE_DECL_TANL=1; HAVE_DECL_TRUNC=1; HAVE_DECL_TRUNCF=1; HAVE_DECL_TRUNCL=1; REPLACE_ACOSF=0; REPLACE_ASINF=0; REPLACE_ATANF=0; REPLACE_ATAN2F=0; REPLACE_CBRTF=0; REPLACE_CBRTL=0; REPLACE_CEIL=0; REPLACE_CEILF=0; REPLACE_CEILL=0; REPLACE_COSF=0; REPLACE_COSHF=0; REPLACE_EXPF=0; REPLACE_EXPM1=0; REPLACE_EXPM1F=0; REPLACE_EXP2=0; REPLACE_EXP2L=0; REPLACE_FABSL=0; REPLACE_FLOOR=0; REPLACE_FLOORF=0; REPLACE_FLOORL=0; REPLACE_FMA=0; REPLACE_FMAF=0; REPLACE_FMAL=0; REPLACE_FMOD=0; REPLACE_FMODF=0; REPLACE_FMODL=0; REPLACE_FREXPF=0; REPLACE_FREXP=0; REPLACE_FREXPL=0; REPLACE_HUGE_VAL=0; REPLACE_HYPOT=0; REPLACE_HYPOTF=0; REPLACE_HYPOTL=0; REPLACE_ILOGB=0; REPLACE_ILOGBF=0; REPLACE_ISFINITE=0; REPLACE_ISINF=0; REPLACE_ISNAN=0; REPLACE_LDEXPL=0; REPLACE_LOG=0; REPLACE_LOGF=0; REPLACE_LOGL=0; REPLACE_LOG10=0; REPLACE_LOG10F=0; REPLACE_LOG10L=0; REPLACE_LOG1P=0; REPLACE_LOG1PF=0; REPLACE_LOG1PL=0; REPLACE_LOG2=0; REPLACE_LOG2F=0; REPLACE_LOG2L=0; REPLACE_LOGB=0; REPLACE_LOGBF=0; REPLACE_LOGBL=0; REPLACE_MODF=0; REPLACE_MODFF=0; REPLACE_MODFL=0; REPLACE_NAN=0; REPLACE_REMAINDER=0; REPLACE_REMAINDERF=0; REPLACE_REMAINDERL=0; REPLACE_ROUND=0; REPLACE_ROUNDF=0; REPLACE_ROUNDL=0; REPLACE_SIGNBIT=0; REPLACE_SIGNBIT_USING_GCC=0; REPLACE_SINF=0; REPLACE_SINHF=0; REPLACE_SQRTF=0; REPLACE_SQRTL=0; REPLACE_TANF=0; REPLACE_TANHF=0; REPLACE_TRUNC=0; REPLACE_TRUNCF=0; REPLACE_TRUNCL=0; GNULIB_CHDIR=0; GNULIB_CHOWN=0; GNULIB_CLOSE=0; GNULIB_DUP=0; GNULIB_DUP2=0; GNULIB_DUP3=0; GNULIB_ENVIRON=0; GNULIB_EUIDACCESS=0; GNULIB_FACCESSAT=0; GNULIB_FCHDIR=0; GNULIB_FCHOWNAT=0; GNULIB_FDATASYNC=0; GNULIB_FSYNC=0; GNULIB_FTRUNCATE=0; GNULIB_GETCWD=0; GNULIB_GETDOMAINNAME=0; GNULIB_GETDTABLESIZE=0; GNULIB_GETGROUPS=0; GNULIB_GETHOSTNAME=0; GNULIB_GETLOGIN=0; GNULIB_GETLOGIN_R=0; GNULIB_GETPAGESIZE=0; GNULIB_GETUSERSHELL=0; GNULIB_GROUP_MEMBER=0; GNULIB_ISATTY=0; GNULIB_LCHOWN=0; GNULIB_LINK=0; GNULIB_LINKAT=0; GNULIB_LSEEK=0; GNULIB_PIPE=0; GNULIB_PIPE2=0; GNULIB_PREAD=0; GNULIB_PWRITE=0; GNULIB_READ=0; GNULIB_READLINK=0; GNULIB_READLINKAT=0; GNULIB_RMDIR=0; GNULIB_SETHOSTNAME=0; GNULIB_SLEEP=0; GNULIB_SYMLINK=0; GNULIB_SYMLINKAT=0; GNULIB_TTYNAME_R=0; GNULIB_UNISTD_H_NONBLOCKING=0; GNULIB_UNISTD_H_SIGPIPE=0; GNULIB_UNLINK=0; GNULIB_UNLINKAT=0; GNULIB_USLEEP=0; GNULIB_WRITE=0; HAVE_CHOWN=1; HAVE_DUP2=1; HAVE_DUP3=1; HAVE_EUIDACCESS=1; HAVE_FACCESSAT=1; HAVE_FCHDIR=1; HAVE_FCHOWNAT=1; HAVE_FDATASYNC=1; HAVE_FSYNC=1; HAVE_FTRUNCATE=1; HAVE_GETDTABLESIZE=1; HAVE_GETGROUPS=1; HAVE_GETHOSTNAME=1; HAVE_GETLOGIN=1; HAVE_GETPAGESIZE=1; HAVE_GROUP_MEMBER=1; HAVE_LCHOWN=1; HAVE_LINK=1; HAVE_LINKAT=1; HAVE_PIPE=1; HAVE_PIPE2=1; HAVE_PREAD=1; HAVE_PWRITE=1; HAVE_READLINK=1; HAVE_READLINKAT=1; HAVE_SETHOSTNAME=1; HAVE_SLEEP=1; HAVE_SYMLINK=1; HAVE_SYMLINKAT=1; HAVE_UNLINKAT=1; HAVE_USLEEP=1; HAVE_DECL_ENVIRON=1; HAVE_DECL_FCHDIR=1; HAVE_DECL_FDATASYNC=1; HAVE_DECL_GETDOMAINNAME=1; HAVE_DECL_GETLOGIN=1; HAVE_DECL_GETLOGIN_R=1; HAVE_DECL_GETPAGESIZE=1; HAVE_DECL_GETUSERSHELL=1; HAVE_DECL_SETHOSTNAME=1; HAVE_DECL_TTYNAME_R=1; HAVE_OS_H=0; HAVE_SYS_PARAM_H=0; REPLACE_CHOWN=0; REPLACE_CLOSE=0; REPLACE_DUP=0; REPLACE_DUP2=0; REPLACE_FCHOWNAT=0; REPLACE_FTRUNCATE=0; REPLACE_GETCWD=0; REPLACE_GETDOMAINNAME=0; REPLACE_GETDTABLESIZE=0; REPLACE_GETLOGIN_R=0; REPLACE_GETGROUPS=0; REPLACE_GETPAGESIZE=0; REPLACE_ISATTY=0; REPLACE_LCHOWN=0; REPLACE_LINK=0; REPLACE_LINKAT=0; REPLACE_LSEEK=0; REPLACE_PREAD=0; REPLACE_PWRITE=0; REPLACE_READ=0; REPLACE_READLINK=0; REPLACE_READLINKAT=0; REPLACE_RMDIR=0; REPLACE_SLEEP=0; REPLACE_SYMLINK=0; REPLACE_SYMLINKAT=0; REPLACE_TTYNAME_R=0; REPLACE_UNLINK=0; REPLACE_UNLINKAT=0; REPLACE_USLEEP=0; REPLACE_WRITE=0; UNISTD_H_HAVE_WINSOCK2_H=0; UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; if test $ac_cv_func__set_invalid_parameter_handler = yes; then HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 $as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h else HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 fi GNULIB_IOCTL=0; SYS_IOCTL_H_HAVE_WINSOCK2_H=0; SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; REPLACE_IOCTL=0; for ac_header in $ac_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 $as_echo_n "checking whether imported symbols can be declared weak... " >&6; } if ${gl_cv_have_weak+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_have_weak=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern void xyzzy (); #pragma weak xyzzy int main () { xyzzy(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_have_weak=maybe fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $gl_cv_have_weak = maybe; then if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ELF__ Extensible Linking Format #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Extensible Linking Format" >/dev/null 2>&1; then : gl_cv_have_weak="guessing yes" else gl_cv_have_weak="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #pragma weak fputs int main () { return (fputs == NULL); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_have_weak=yes else gl_cv_have_weak=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 $as_echo "$gl_cv_have_weak" >&6; } if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks . It's added above, in gl_THREADLIB_EARLY_BODY. ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" if test "x$ac_cv_header_pthread_h" = xyes; then : gl_have_pthread_h=yes else gl_have_pthread_h=no fi if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. # # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 # needs -pthread for some reason. See: # http://lists.gnu.org/archive/html/bug-gnulib/2014-09/msg00023.html save_LIBS=$LIBS for gl_pthread in '' '-pthread'; do LIBS="$LIBS $gl_pthread" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include pthread_mutex_t m; pthread_mutexattr_t ma; int main () { pthread_mutex_lock (&m); pthread_mutexattr_init (&ma); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_pthread=yes LIBTHREAD=$gl_pthread LTLIBTHREAD=$gl_pthread LIBMULTITHREAD=$gl_pthread LTLIBMULTITHREAD=$gl_pthread fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$save_LIBS test -n "$gl_have_pthread" && break done # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test -n "$gl_have_pthread" && test -z "$LIBTHREAD"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 $as_echo_n "checking for pthread_kill in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_kill=yes else ac_cv_lib_pthread_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 $as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. # On Solaris 10 or newer, this test is no longer needed, because # libc contains the fully functional pthread functions. case "$host_os" in solaris | solaris2.1-9 | solaris2.1-9.* | hpux*) $as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h esac fi elif test -z "$gl_have_pthread"; then # Some library is needed. Try libpthread and libc_r. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 $as_echo_n "checking for pthread_kill in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_kill=yes else ac_cv_lib_pthread_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 $as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : gl_have_pthread=yes LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread fi if test -z "$gl_have_pthread"; then # For FreeBSD 4. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 $as_echo_n "checking for pthread_kill in -lc_r... " >&6; } if ${ac_cv_lib_c_r_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_c_r_pthread_kill=yes else ac_cv_lib_c_r_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 $as_echo "$ac_cv_lib_c_r_pthread_kill" >&6; } if test "x$ac_cv_lib_c_r_pthread_kill" = xyes; then : gl_have_pthread=yes LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r fi fi fi if test -n "$gl_have_pthread"; then gl_threads_api=posix $as_echo "#define USE_POSIX_THREADS 1" >>confdefs.h if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then $as_echo "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= fi fi fi fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then gl_have_solaristhread= gl_save_LIBS="$LIBS" LIBS="$LIBS -lthread" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { thr_self(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_solaristhread=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" if test -n "$gl_have_solaristhread"; then gl_threads_api=solaris LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" $as_echo "#define USE_SOLARIS_THREADS 1" >>confdefs.h if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then $as_echo "#define USE_SOLARIS_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= fi fi fi fi if test "$gl_use_threads" = pth; then gl_save_CPPFLAGS="$CPPFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libpth" >&5 $as_echo_n "checking how to link with libpth... " >&6; } if ${ac_cv_libpth_libs+:} false; then : $as_echo_n "(cached) " >&6 else use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libpth-prefix was given. if test "${with_libpth_prefix+set}" = set; then : withval=$with_libpth_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBPTH= LTLIBPTH= INCPTH= LIBPTH_PREFIX= HAVE_LIBPTH= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='pth ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBPTH="${LIBPTH}${LIBPTH:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_a" else LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'pth'; then LIBPTH_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'pth'; then LIBPTH_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCPTH="${INCPTH}${INCPTH:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBPTH="${LIBPTH}${LIBPTH:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBPTH="${LIBPTH}${LIBPTH:+ }$dep" LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$dep" ;; esac done fi else LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-R$found_dir" done fi ac_cv_libpth_libs="$LIBPTH" ac_cv_libpth_ltlibs="$LTLIBPTH" ac_cv_libpth_cppflags="$INCPTH" ac_cv_libpth_prefix="$LIBPTH_PREFIX" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libpth_libs" >&5 $as_echo "$ac_cv_libpth_libs" >&6; } LIBPTH="$ac_cv_libpth_libs" LTLIBPTH="$ac_cv_libpth_ltlibs" INCPTH="$ac_cv_libpth_cppflags" LIBPTH_PREFIX="$ac_cv_libpth_prefix" for element in $INCPTH; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done HAVE_LIBPTH=yes gl_have_pth= gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBPTH" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pth_self(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_pth=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" if test -n "$gl_have_pth"; then gl_threads_api=pth LIBTHREAD="$LIBPTH" LTLIBTHREAD="$LTLIBPTH" LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" $as_echo "#define USE_PTH_THREADS 1" >>confdefs.h if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then $as_echo "#define USE_PTH_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= fi fi else CPPFLAGS="$gl_save_CPPFLAGS" fi fi if test -z "$gl_have_pthread"; then case "$gl_use_threads" in yes | windows | win32) # The 'win32' is for backward compatibility. if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=windows $as_echo "#define USE_WINDOWS_THREADS 1" >>confdefs.h fi ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for multithread API to use" >&5 $as_echo_n "checking for multithread API to use... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_threads_api" >&5 $as_echo "$gl_threads_api" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 $as_echo_n "checking whether // is distinct from /... " >&6; } if ${gl_cv_double_slash_root+:} false; then : $as_echo_n "(cached) " >&6 else if test x"$cross_compiling" = xyes ; then # When cross-compiling, there is no way to tell whether // is special # short of a list of hosts. However, the only known hosts to date # that have a distinct // are Apollo DomainOS (too old to port to), # Cygwin, and z/OS. If anyone knows of another system for which // has # special semantics and is distinct from /, please report it to # . case $host in *-cygwin | i370-ibm-openedition) gl_cv_double_slash_root=yes ;; *) # Be optimistic and assume that / and // are the same when we # don't know. gl_cv_double_slash_root='unknown, assuming no' ;; esac else set x `ls -di / // 2>/dev/null` if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then gl_cv_double_slash_root=no else gl_cv_double_slash_root=yes fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5 $as_echo "$gl_cv_double_slash_root" >&6; } if test "$gl_cv_double_slash_root" = yes; then $as_echo "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5 $as_echo_n "checking if environ is properly declared... " >&6; } if ${gt_cv_var_environ_declaration+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_UNISTD_H #include #endif /* mingw, BeOS, Haiku declare environ in , not in . */ #include extern struct { int foo; } environ; int main () { environ.foo = 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_var_environ_declaration=no else gt_cv_var_environ_declaration=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5 $as_echo "$gt_cv_var_environ_declaration" >&6; } if test $gt_cv_var_environ_declaration = yes; then $as_echo "#define HAVE_ENVIRON_DECL 1" >>confdefs.h fi if test $gt_cv_var_environ_declaration != yes; then HAVE_DECL_ENVIRON=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5 $as_echo_n "checking whether the preprocessor supports include_next... " >&6; } if ${gl_cv_have_include_next+:} false; then : $as_echo_n "(cached) " >&6 else rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 cat < conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd1b/conftest.h #define DEFINED_IN_CONFTESTD1 #include #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd2/conftest.h #ifndef DEFINED_IN_CONFTESTD1 #error "include_next test doesn't work" #endif #define DEFINED_IN_CONFTESTD2 EOF gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_have_include_next=yes else CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_have_include_next=buggy else gl_cv_have_include_next=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS="$gl_save_CPPFLAGS" rm -rf conftestd1a conftestd1b conftestd2 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5 $as_echo "$gl_cv_have_include_next" >&6; } PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next if test -n "$GCC"; then PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' fi else if test $gl_cv_have_include_next = buggy; then INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next else INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5 $as_echo_n "checking whether system header files limit the line length... " >&6; } if ${gl_cv_pragma_columns+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __TANDEM choke me #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "choke me" >/dev/null 2>&1; then : gl_cv_pragma_columns=yes else gl_cv_pragma_columns=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pragma_columns" >&5 $as_echo "$gl_cv_pragma_columns" >&6; } if test $gl_cv_pragma_columns = yes; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5 $as_echo_n "checking for complete errno.h... " >&6; } if ${gl_cv_header_errno_h_complete+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if !defined ETXTBSY booboo #endif #if !defined ENOMSG booboo #endif #if !defined EIDRM booboo #endif #if !defined ENOLINK booboo #endif #if !defined EPROTO booboo #endif #if !defined EMULTIHOP booboo #endif #if !defined EBADMSG booboo #endif #if !defined EOVERFLOW booboo #endif #if !defined ENOTSUP booboo #endif #if !defined ENETRESET booboo #endif #if !defined ECONNABORTED booboo #endif #if !defined ESTALE booboo #endif #if !defined EDQUOT booboo #endif #if !defined ECANCELED booboo #endif #if !defined EOWNERDEAD booboo #endif #if !defined ENOTRECOVERABLE booboo #endif #if !defined EILSEQ booboo #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "booboo" >/dev/null 2>&1; then : gl_cv_header_errno_h_complete=no else gl_cv_header_errno_h_complete=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_complete" >&5 $as_echo "$gl_cv_header_errno_h_complete" >&6; } if test $gl_cv_header_errno_h_complete = yes; then ERRNO_H='' else if test $gl_cv_have_include_next = yes; then gl_cv_next_errno_h='<'errno.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_errno_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'errno.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_errno_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_errno_h gl_cv_next_errno_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_errno_h" >&5 $as_echo "$gl_cv_next_errno_h" >&6; } fi NEXT_ERRNO_H=$gl_cv_next_errno_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'errno.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_errno_h fi NEXT_AS_FIRST_DIRECTIVE_ERRNO_H=$gl_next_as_first_directive ERRNO_H='errno.h' fi if test -n "$ERRNO_H"; then GL_GENERATE_ERRNO_H_TRUE= GL_GENERATE_ERRNO_H_FALSE='#' else GL_GENERATE_ERRNO_H_TRUE='#' GL_GENERATE_ERRNO_H_FALSE= fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5 $as_echo_n "checking for EMULTIHOP value... " >&6; } if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef EMULTIHOP yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EMULTIHOP=yes else gl_cv_header_errno_h_EMULTIHOP=no fi rm -f conftest* if test $gl_cv_header_errno_h_EMULTIHOP = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef EMULTIHOP yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EMULTIHOP=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP" " #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EMULTIHOP" >&5 $as_echo "$gl_cv_header_errno_h_EMULTIHOP" >&6; } case $gl_cv_header_errno_h_EMULTIHOP in yes | no) EMULTIHOP_HIDDEN=0; EMULTIHOP_VALUE= ;; *) EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP" ;; esac fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5 $as_echo_n "checking for ENOLINK value... " >&6; } if ${gl_cv_header_errno_h_ENOLINK+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef ENOLINK yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_ENOLINK=yes else gl_cv_header_errno_h_ENOLINK=no fi rm -f conftest* if test $gl_cv_header_errno_h_ENOLINK = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef ENOLINK yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_ENOLINK=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_ENOLINK = hidden; then if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK" " #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_ENOLINK" >&5 $as_echo "$gl_cv_header_errno_h_ENOLINK" >&6; } case $gl_cv_header_errno_h_ENOLINK in yes | no) ENOLINK_HIDDEN=0; ENOLINK_VALUE= ;; *) ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK" ;; esac fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5 $as_echo_n "checking for EOVERFLOW value... " >&6; } if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef EOVERFLOW yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EOVERFLOW=yes else gl_cv_header_errno_h_EOVERFLOW=no fi rm -f conftest* if test $gl_cv_header_errno_h_EOVERFLOW = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef EOVERFLOW yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EOVERFLOW=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW" " #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EOVERFLOW" >&5 $as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; } case $gl_cv_header_errno_h_EOVERFLOW in yes | no) EOVERFLOW_HIDDEN=0; EOVERFLOW_VALUE= ;; *) EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW" ;; esac fi $as_echo "#define HAVE_DECL_STRERROR_R 1" >>confdefs.h $as_echo "#define HAVE_STRERROR_R 1" >>confdefs.h $as_echo "#define STRERROR_R_CHAR_P 0" >>confdefs.h XGETTEXT_EXTRA_OPTIONS= ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" "#include " if test "x$ac_cv_type_sig_atomic_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SIG_ATOMIC_T 1 _ACEOF else $as_echo "#define sig_atomic_t int" >>confdefs.h fi GNULIB_DPRINTF=0; GNULIB_FCLOSE=0; GNULIB_FDOPEN=0; GNULIB_FFLUSH=0; GNULIB_FGETC=0; GNULIB_FGETS=0; GNULIB_FOPEN=0; GNULIB_FPRINTF=0; GNULIB_FPRINTF_POSIX=0; GNULIB_FPURGE=0; GNULIB_FPUTC=0; GNULIB_FPUTS=0; GNULIB_FREAD=0; GNULIB_FREOPEN=0; GNULIB_FSCANF=0; GNULIB_FSEEK=0; GNULIB_FSEEKO=0; GNULIB_FTELL=0; GNULIB_FTELLO=0; GNULIB_FWRITE=0; GNULIB_GETC=0; GNULIB_GETCHAR=0; GNULIB_GETDELIM=0; GNULIB_GETLINE=0; GNULIB_OBSTACK_PRINTF=0; GNULIB_OBSTACK_PRINTF_POSIX=0; GNULIB_PCLOSE=0; GNULIB_PERROR=0; GNULIB_POPEN=0; GNULIB_PRINTF=0; GNULIB_PRINTF_POSIX=0; GNULIB_PUTC=0; GNULIB_PUTCHAR=0; GNULIB_PUTS=0; GNULIB_REMOVE=0; GNULIB_RENAME=0; GNULIB_RENAMEAT=0; GNULIB_SCANF=0; GNULIB_SNPRINTF=0; GNULIB_SPRINTF_POSIX=0; GNULIB_STDIO_H_NONBLOCKING=0; GNULIB_STDIO_H_SIGPIPE=0; GNULIB_TMPFILE=0; GNULIB_VASPRINTF=0; GNULIB_VFSCANF=0; GNULIB_VSCANF=0; GNULIB_VDPRINTF=0; GNULIB_VFPRINTF=0; GNULIB_VFPRINTF_POSIX=0; GNULIB_VPRINTF=0; GNULIB_VPRINTF_POSIX=0; GNULIB_VSNPRINTF=0; GNULIB_VSPRINTF_POSIX=0; HAVE_DECL_FPURGE=1; HAVE_DECL_FSEEKO=1; HAVE_DECL_FTELLO=1; HAVE_DECL_GETDELIM=1; HAVE_DECL_GETLINE=1; HAVE_DECL_OBSTACK_PRINTF=1; HAVE_DECL_SNPRINTF=1; HAVE_DECL_VSNPRINTF=1; HAVE_DPRINTF=1; HAVE_FSEEKO=1; HAVE_FTELLO=1; HAVE_PCLOSE=1; HAVE_POPEN=1; HAVE_RENAMEAT=1; HAVE_VASPRINTF=1; HAVE_VDPRINTF=1; REPLACE_DPRINTF=0; REPLACE_FCLOSE=0; REPLACE_FDOPEN=0; REPLACE_FFLUSH=0; REPLACE_FOPEN=0; REPLACE_FPRINTF=0; REPLACE_FPURGE=0; REPLACE_FREOPEN=0; REPLACE_FSEEK=0; REPLACE_FSEEKO=0; REPLACE_FTELL=0; REPLACE_FTELLO=0; REPLACE_GETDELIM=0; REPLACE_GETLINE=0; REPLACE_OBSTACK_PRINTF=0; REPLACE_PERROR=0; REPLACE_POPEN=0; REPLACE_PRINTF=0; REPLACE_REMOVE=0; REPLACE_RENAME=0; REPLACE_RENAMEAT=0; REPLACE_SNPRINTF=0; REPLACE_SPRINTF=0; REPLACE_STDIO_READ_FUNCS=0; REPLACE_STDIO_WRITE_FUNCS=0; REPLACE_TMPFILE=0; REPLACE_VASPRINTF=0; REPLACE_VDPRINTF=0; REPLACE_VFPRINTF=0; REPLACE_VPRINTF=0; REPLACE_VSNPRINTF=0; REPLACE_VSPRINTF=0; GNULIB_FCNTL=0; GNULIB_NONBLOCKING=0; GNULIB_OPEN=0; GNULIB_OPENAT=0; HAVE_FCNTL=1; HAVE_OPENAT=1; REPLACE_FCNTL=0; REPLACE_OPEN=0; REPLACE_OPENAT=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 $as_echo_n "checking for working fcntl.h... " >&6; } if ${gl_cv_header_working_fcntl_h+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_header_working_fcntl_h=cross-compiling else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include # include # defined sleep(n) _sleep ((n) * 1000) #endif #include #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; int main () { int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_header_working_fcntl_h=yes else case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 $as_echo "$gl_cv_header_working_fcntl_h" >&6; } case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac cat >>confdefs.h <<_ACEOF #define HAVE_WORKING_O_NOATIME $ac_val _ACEOF case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac cat >>confdefs.h <<_ACEOF #define HAVE_WORKING_O_NOFOLLOW $ac_val _ACEOF ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define mode_t int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdin defaults to large file offsets" >&5 $as_echo_n "checking whether stdin defaults to large file offsets... " >&6; } if ${gl_cv_var_stdin_large_offset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if defined __SL64 && defined __SCLE /* cygwin */ /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and it is easier to do a version check than building a runtime test. */ # include # if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25) choke me # endif #endif ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_var_stdin_large_offset=yes else gl_cv_var_stdin_large_offset=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var_stdin_large_offset" >&5 $as_echo "$gl_cv_var_stdin_large_offset" >&6; } case "$host_os" in mingw*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5 $as_echo_n "checking for 64-bit off_t... " >&6; } if ${gl_cv_type_off_t_64+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_off_t_64=yes else gl_cv_type_off_t_64=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5 $as_echo "$gl_cv_type_off_t_64" >&6; } if test $gl_cv_type_off_t_64 = no; then WINDOWS_64_BIT_OFF_T=1 else WINDOWS_64_BIT_OFF_T=0 fi WINDOWS_64_BIT_ST_SIZE=1 ;; *) WINDOWS_64_BIT_OFF_T=0 WINDOWS_64_BIT_ST_SIZE=0 ;; esac if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_types_h='<'sys/types.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_types_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/types.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_types_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_types_h gl_cv_next_sys_types_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5 $as_echo "$gl_cv_next_sys_types_h" >&6; } fi NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/types.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_types_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive ac_fn_c_check_decl "$LINENO" "fseeko" "ac_cv_have_decl_fseeko" "$ac_includes_default" if test "x$ac_cv_have_decl_fseeko" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FSEEKO $ac_have_decl _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5 $as_echo_n "checking for fseeko... " >&6; } if ${gl_cv_func_fseeko+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { fseeko (stdin, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_fseeko=yes else gl_cv_func_fseeko=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5 $as_echo "$gl_cv_func_fseeko" >&6; } if test $ac_cv_have_decl_fseeko = no; then HAVE_DECL_FSEEKO=0 fi if test $gl_cv_func_fseeko = no; then HAVE_FSEEKO=0 else if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_FSEEKO=1 fi if test $gl_cv_var_stdin_large_offset = no; then REPLACE_FSEEKO=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 $as_echo_n "checking whether fflush works on input streams... " >&6; } if ${gl_cv_func_fflush_stdin+:} false; then : $as_echo_n "(cached) " >&6 else echo hello world > conftest.txt if test "$cross_compiling" = yes; then : gl_cv_func_fflush_stdin=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif int main () { FILE *f = fopen ("conftest.txt", "r"); char buffer[10]; int fd; int c; if (f == NULL) return 1; fd = fileno (f); if (fd < 0 || fread (buffer, 1, 5, f) != 5) return 2; /* For deterministic results, ensure f read a bigger buffer. */ if (lseek (fd, 0, SEEK_CUR) == 5) return 3; /* POSIX requires fflush-fseek to set file offset of fd. This fails on BSD systems and on mingw. */ if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) return 4; if (lseek (fd, 0, SEEK_CUR) != 5) return 5; /* Verify behaviour of fflush after ungetc. See */ /* Verify behaviour of fflush after a backup ungetc. This fails on mingw. */ c = fgetc (f); ungetc (c, f); fflush (f); if (fgetc (f) != c) return 6; /* Verify behaviour of fflush after a non-backup ungetc. This fails on glibc 2.8 and on BSD systems. */ c = fgetc (f); ungetc ('@', f); fflush (f); if (fgetc (f) != c) return 7; return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fflush_stdin=yes else gl_cv_func_fflush_stdin=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm conftest.txt fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 $as_echo "$gl_cv_func_fflush_stdin" >&6; } case $gl_cv_func_fflush_stdin in yes) gl_func_fflush_stdin=1 ;; no) gl_func_fflush_stdin=0 ;; *) gl_func_fflush_stdin='(-1)' ;; esac cat >>confdefs.h <<_ACEOF #define FUNC_FFLUSH_STDIN $gl_func_fflush_stdin _ACEOF if test $gl_cv_func_fflush_stdin != yes; then REPLACE_FSEEKO=1 fi fi GNULIB_FCHMODAT=0; GNULIB_FSTAT=0; GNULIB_FSTATAT=0; GNULIB_FUTIMENS=0; GNULIB_LCHMOD=0; GNULIB_LSTAT=0; GNULIB_MKDIRAT=0; GNULIB_MKFIFO=0; GNULIB_MKFIFOAT=0; GNULIB_MKNOD=0; GNULIB_MKNODAT=0; GNULIB_STAT=0; GNULIB_UTIMENSAT=0; HAVE_FCHMODAT=1; HAVE_FSTATAT=1; HAVE_FUTIMENS=1; HAVE_LCHMOD=1; HAVE_LSTAT=1; HAVE_MKDIRAT=1; HAVE_MKFIFO=1; HAVE_MKFIFOAT=1; HAVE_MKNOD=1; HAVE_MKNODAT=1; HAVE_UTIMENSAT=1; REPLACE_FSTAT=0; REPLACE_FSTATAT=0; REPLACE_FUTIMENS=0; REPLACE_LSTAT=0; REPLACE_MKDIR=0; REPLACE_MKFIFO=0; REPLACE_MKNOD=0; REPLACE_STAT=0; REPLACE_UTIMENSAT=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 $as_echo_n "checking whether stat file-mode macros are broken... " >&6; } if ${ac_cv_header_stat_broken+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if defined S_ISBLK && defined S_IFDIR extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; #endif #if defined S_ISBLK && defined S_IFCHR extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; #endif #if defined S_ISLNK && defined S_IFREG extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; #endif #if defined S_ISSOCK && defined S_IFREG extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stat_broken=no else ac_cv_header_stat_broken=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 $as_echo "$ac_cv_header_stat_broken" >&6; } if test $ac_cv_header_stat_broken = yes; then $as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h fi if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_stat_h='<'sys/stat.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_stat_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_stat_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/stat.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_stat_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_stat_h gl_cv_next_sys_stat_h='"'$gl_header'"' else gl_cv_next_sys_stat_h='<'sys/stat.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5 $as_echo "$gl_cv_next_sys_stat_h" >&6; } fi NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/stat.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_stat_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive if test $WINDOWS_64_BIT_ST_SIZE = 1; then $as_echo "#define _GL_WINDOWS_64_BIT_ST_SIZE 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include #include " if test "x$ac_cv_type_nlink_t" = xyes; then : else $as_echo "#define nlink_t int" >>confdefs.h fi for gl_func in fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done ac_fn_c_check_decl "$LINENO" "ftello" "ac_cv_have_decl_ftello" "$ac_includes_default" if test "x$ac_cv_have_decl_ftello" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FTELLO $ac_have_decl _ACEOF if test $ac_cv_have_decl_ftello = no; then HAVE_DECL_FTELLO=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ftello" >&5 $as_echo_n "checking for ftello... " >&6; } if ${gl_cv_func_ftello+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { ftello (stdin); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_ftello=yes else gl_cv_func_ftello=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello" >&5 $as_echo "$gl_cv_func_ftello" >&6; } if test $gl_cv_func_ftello = no; then HAVE_FTELLO=0 else if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_FTELLO=1 fi if test $gl_cv_var_stdin_large_offset = no; then REPLACE_FTELLO=1 fi if test $REPLACE_FTELLO = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ftello works" >&5 $as_echo_n "checking whether ftello works... " >&6; } if ${gl_cv_func_ftello_works+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_ftello_works="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_ftello_works="guessing yes" ;; esac if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #define TESTFILE "conftest.tmp" int main (void) { FILE *fp; /* Create a file with some contents. */ fp = fopen (TESTFILE, "w"); if (fp == NULL) return 70; if (fwrite ("foogarsh", 1, 8, fp) < 8) return 71; if (fclose (fp)) return 72; /* The file's contents is now "foogarsh". */ /* Try writing after reading to EOF. */ fp = fopen (TESTFILE, "r+"); if (fp == NULL) return 73; if (fseek (fp, -1, SEEK_END)) return 74; if (!(getc (fp) == 'h')) return 1; if (!(getc (fp) == EOF)) return 2; if (!(ftell (fp) == 8)) return 3; if (!(ftell (fp) == 8)) return 4; if (!(putc ('!', fp) == '!')) return 5; if (!(ftell (fp) == 9)) return 6; if (!(fclose (fp) == 0)) return 7; fp = fopen (TESTFILE, "r"); if (fp == NULL) return 75; { char buf[10]; if (!(fread (buf, 1, 10, fp) == 9)) return 10; if (!(memcmp (buf, "foogarsh!", 9) == 0)) return 11; } if (!(fclose (fp) == 0)) return 12; /* The file's contents is now "foogarsh!". */ return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_ftello_works=yes else gl_cv_func_ftello_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello_works" >&5 $as_echo "$gl_cv_func_ftello_works" >&6; } case "$gl_cv_func_ftello_works" in *yes) ;; *) REPLACE_FTELLO=1 $as_echo "#define FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE 1" >>confdefs.h ;; esac fi fi ac_fn_c_check_decl "$LINENO" "getdtablesize" "ac_cv_have_decl_getdtablesize" "$ac_includes_default" if test "x$ac_cv_have_decl_getdtablesize" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETDTABLESIZE $ac_have_decl _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 $as_echo_n "checking for C/C++ restrict keyword... " >&6; } if ${ac_cv_c_restrict+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_restrict=no # The order here caters to the fact that C++ does not require restrict. for ac_kw in __restrict __restrict__ _Restrict restrict; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ typedef int *int_ptr; int foo (int_ptr $ac_kw ip) { return ip[0]; } int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ int bar (int ip[$ac_kw]) { return ip[0]; } int main () { int s[1]; int *$ac_kw t = s; t[0] = 0; return foo (t) + bar (t); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_restrict=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_restrict" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 $as_echo "$ac_cv_c_restrict" >&6; } case $ac_cv_c_restrict in restrict) ;; no) $as_echo "#define restrict /**/" >>confdefs.h ;; *) cat >>confdefs.h <<_ACEOF #define restrict $ac_cv_c_restrict _ACEOF ;; esac GNULIB_GETTIMEOFDAY=0; HAVE_GETTIMEOFDAY=1; HAVE_STRUCT_TIMEVAL=1; HAVE_SYS_TIME_H=1; HAVE_TIMEZONE_T=0; REPLACE_GETTIMEOFDAY=0; REPLACE_STRUCT_TIMEVAL=0; if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_time_h='<'sys/time.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_time_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_time_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/time.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_time_h gl_cv_next_sys_time_h='"'$gl_header'"' else gl_cv_next_sys_time_h='<'sys/time.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_time_h" >&5 $as_echo "$gl_cv_next_sys_time_h" >&6; } fi NEXT_SYS_TIME_H=$gl_cv_next_sys_time_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/time.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_time_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H=$gl_next_as_first_directive if test $ac_cv_header_sys_time_h != yes; then HAVE_SYS_TIME_H=0 fi if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5 $as_echo_n "checking for struct timeval... " >&6; } if ${gl_cv_sys_struct_timeval+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_SYS_TIME_H #include #endif #include #if HAVE_WINSOCK2_H # include #endif int main () { static struct timeval x; x.tv_sec = x.tv_usec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timeval=yes else gl_cv_sys_struct_timeval=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval" >&5 $as_echo "$gl_cv_sys_struct_timeval" >&6; } if test $gl_cv_sys_struct_timeval != yes; then HAVE_STRUCT_TIMEVAL=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wide-enough struct timeval.tv_sec member" >&5 $as_echo_n "checking for wide-enough struct timeval.tv_sec member... " >&6; } if ${gl_cv_sys_struct_timeval_tv_sec+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_SYS_TIME_H #include #endif #include #if HAVE_WINSOCK2_H # include #endif int main () { static struct timeval x; typedef int verify_tv_sec_type[ sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1 ]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timeval_tv_sec=yes else gl_cv_sys_struct_timeval_tv_sec=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval_tv_sec" >&5 $as_echo "$gl_cv_sys_struct_timeval_tv_sec" >&6; } if test $gl_cv_sys_struct_timeval_tv_sec != yes; then REPLACE_STRUCT_TIMEVAL=1 fi fi for gl_func in gettimeofday; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_SYS_TIME_H # include #endif #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done GNULIB_ICONV=0; ICONV_CONST=; REPLACE_ICONV=0; REPLACE_ICONV_OPEN=0; REPLACE_ICONV_UTF=0; ICONV_H=''; if test -n "$ICONV_H"; then GL_GENERATE_ICONV_H_TRUE= GL_GENERATE_ICONV_H_FALSE='#' else GL_GENERATE_ICONV_H_TRUE='#' GL_GENERATE_ICONV_H_FALSE= fi am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi am_cv_func_iconv_works=no for ac_iconv_const in '' 'const'; do if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #ifndef ICONV_CONST # define ICONV_CONST $ac_iconv_const #endif int main () { int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\263"; char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; ICONV_CONST char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) result |= 16; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi test "$am_cv_func_iconv_works" = no || break done LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 $as_echo_n "checking for iconv declaration... " >&6; } if ${am_cv_proto_iconv+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_cv_proto_iconv_arg1="" else am_cv_proto_iconv_arg1="const" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" fi am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_proto_iconv" >&5 $as_echo " $am_cv_proto_iconv" >&6; } else am_cv_proto_iconv_arg1="" fi cat >>confdefs.h <<_ACEOF #define ICONV_CONST $am_cv_proto_iconv_arg1 _ACEOF if test -n "$am_cv_proto_iconv_arg1"; then ICONV_CONST="const" fi GNULIB_SOCKET=0; GNULIB_CONNECT=0; GNULIB_ACCEPT=0; GNULIB_BIND=0; GNULIB_GETPEERNAME=0; GNULIB_GETSOCKNAME=0; GNULIB_GETSOCKOPT=0; GNULIB_LISTEN=0; GNULIB_RECV=0; GNULIB_SEND=0; GNULIB_RECVFROM=0; GNULIB_SENDTO=0; GNULIB_SETSOCKOPT=0; GNULIB_SHUTDOWN=0; GNULIB_ACCEPT4=0; HAVE_STRUCT_SOCKADDR_STORAGE=1; HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; HAVE_SA_FAMILY_T=1; HAVE_ACCEPT4=1; if test $ac_cv_header_sys_socket_h = no; then for ac_header in ws2tcpip.h do : ac_fn_c_check_header_mongrel "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default" if test "x$ac_cv_header_ws2tcpip_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WS2TCPIP_H 1 _ACEOF fi done fi case "$host_os" in osf*) $as_echo "#define _POSIX_PII_SOCKET 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is self-contained" >&5 $as_echo_n "checking whether is self-contained... " >&6; } if ${gl_cv_header_sys_socket_h_selfcontained+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_sys_socket_h_selfcontained=yes else gl_cv_header_sys_socket_h_selfcontained=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_selfcontained" >&5 $as_echo "$gl_cv_header_sys_socket_h_selfcontained" >&6; } if test $gl_cv_header_sys_socket_h_selfcontained = yes; then for ac_func in shutdown do : ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown" if test "x$ac_cv_func_shutdown" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SHUTDOWN 1 _ACEOF fi done if test $ac_cv_func_shutdown = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether defines the SHUT_* macros" >&5 $as_echo_n "checking whether defines the SHUT_* macros... " >&6; } if ${gl_cv_header_sys_socket_h_shut+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR }; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_sys_socket_h_shut=yes else gl_cv_header_sys_socket_h_shut=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_sys_socket_h_shut" >&5 $as_echo "$gl_cv_header_sys_socket_h_shut" >&6; } if test $gl_cv_header_sys_socket_h_shut = no; then SYS_SOCKET_H='sys/socket.h' fi fi fi # We need to check for ws2tcpip.h now. if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_socket_h='<'sys/socket.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_socket_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_socket_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/socket.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_socket_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_socket_h gl_cv_next_sys_socket_h='"'$gl_header'"' else gl_cv_next_sys_socket_h='<'sys/socket.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_socket_h" >&5 $as_echo "$gl_cv_next_sys_socket_h" >&6; } fi NEXT_SYS_SOCKET_H=$gl_cv_next_sys_socket_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/socket.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_socket_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H=$gl_next_as_first_directive if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 HAVE_WS2TCPIP_H=0 else HAVE_SYS_SOCKET_H=0 if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else HAVE_WS2TCPIP_H=0 fi fi ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" " /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif " if test "x$ac_cv_type_struct_sockaddr_storage" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE 1 _ACEOF fi ac_fn_c_check_type "$LINENO" "sa_family_t" "ac_cv_type_sa_family_t" " /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif " if test "x$ac_cv_type_sa_family_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SA_FAMILY_T 1 _ACEOF fi if test $ac_cv_type_struct_sockaddr_storage = no; then HAVE_STRUCT_SOCKADDR_STORAGE=0 fi if test $ac_cv_type_sa_family_t = no; then HAVE_SA_FAMILY_T=0 fi if test $ac_cv_type_struct_sockaddr_storage != no; then ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" "#include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif " if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 _ACEOF else HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0 fi fi if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then SYS_SOCKET_H='sys/socket.h' fi if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi for gl_func in socket connect accept bind getpeername getsockname getsockopt listen recv send recvfrom sendto setsockopt shutdown accept4; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Some systems require prerequisite headers. */ #include #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done GNULIB_NL_LANGINFO=0; HAVE_NL_LANGINFO=1; REPLACE_NL_LANGINFO=0; if test $gl_cv_have_include_next = yes; then gl_cv_next_limits_h='<'limits.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_limits_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_limits_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'limits.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_limits_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_limits_h gl_cv_next_limits_h='"'$gl_header'"' else gl_cv_next_limits_h='<'limits.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_limits_h" >&5 $as_echo "$gl_cv_next_limits_h" >&6; } fi NEXT_LIMITS_H=$gl_cv_next_limits_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'limits.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_limits_h fi NEXT_AS_FIRST_DIRECTIVE_LIMITS_H=$gl_next_as_first_directive { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether limits.h has ULLONG_WIDTH etc." >&5 $as_echo_n "checking whether limits.h has ULLONG_WIDTH etc.... " >&6; } if ${gl_cv_header_limits_width+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include int ullw = ULLONG_WIDTH; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_limits_width=yes else gl_cv_header_limits_width=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_limits_width" >&5 $as_echo "$gl_cv_header_limits_width" >&6; } if test "$gl_cv_header_limits_width" = yes; then LIMITS_H= else LIMITS_H=limits.h fi if test -n "$LIMITS_H"; then GL_GENERATE_LIMITS_H_TRUE= GL_GENERATE_LIMITS_H_FALSE='#' else GL_GENERATE_LIMITS_H_TRUE='#' GL_GENERATE_LIMITS_H_FALSE= fi ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default" if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETC_UNLOCKED $ac_have_decl _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5 $as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; } if ${ac_cv_gnu_library_2_1+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif #ifdef __UCLIBC__ Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky" >/dev/null 2>&1; then : ac_cv_gnu_library_2_1=yes else ac_cv_gnu_library_2_1=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 $as_echo "$ac_cv_gnu_library_2_1" >&6; } GLIBC21="$ac_cv_gnu_library_2_1" GNULIB_LOCALECONV=0; GNULIB_SETLOCALE=0; GNULIB_DUPLOCALE=0; HAVE_DUPLOCALE=1; REPLACE_LOCALECONV=0; REPLACE_SETLOCALE=0; REPLACE_DUPLOCALE=0; REPLACE_STRUCT_LCONV=0; REPLACE_NULL=0; HAVE_MAX_ALIGN_T=1; HAVE_WCHAR_T=1; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 $as_echo_n "checking for wchar_t... " >&6; } if ${gt_cv_c_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include wchar_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wchar_t=yes else gt_cv_c_wchar_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5 $as_echo "$gt_cv_c_wchar_t" >&6; } if test $gt_cv_c_wchar_t = yes; then $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h fi STDDEF_H= ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include " if test "x$ac_cv_type_max_align_t" = xyes; then : else HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h fi if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } if ${gl_cv_decl_null_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int test[2 * (sizeof NULL == sizeof (void *)) -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_decl_null_works=yes else gl_cv_decl_null_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 $as_echo "$gl_cv_decl_null_works" >&6; } if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' else GL_GENERATE_STDDEF_H_TRUE='#' GL_GENERATE_STDDEF_H_FALSE= fi if test -n "$STDDEF_H"; then if test $gl_cv_have_include_next = yes; then gl_cv_next_stddef_h='<'stddef.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stddef_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stddef.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stddef_h gl_cv_next_stddef_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 $as_echo "$gl_cv_next_stddef_h" >&6; } fi NEXT_STDDEF_H=$gl_cv_next_stddef_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stddef.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stddef_h fi NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive fi LOG_LIBM="$POW_LIBM" save_LIBS="$LIBS" LIBS="$LIBS $LOG_LIBM" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether log works" >&5 $as_echo_n "checking whether log works... " >&6; } if ${gl_cv_func_log_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in osf*) gl_cv_func_log_works="guessing no";; *) gl_cv_func_log_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include volatile double x; double y; int main () { x = -0.0; y = log (x); if (!(y + y == y)) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_log_works=yes else gl_cv_func_log_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_log_works" >&5 $as_echo "$gl_cv_func_log_works" >&6; } LIBS="$save_LIBS" case "$gl_cv_func_log_works" in *yes) ;; *) REPLACE_LOG=1 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${gl_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$cross_compiling" = yes; then : case "$host_os" in *-gnu*) # Guess yes on glibc systems. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; *) # If we don't know, assume the worst. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; if (symlink ("conftest.file", "conftest.sym") != 0) return 1; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_lstat_dereferences_slashed_symlink=yes else gl_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; } case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *yes) cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed GNULIB__EXIT=0; GNULIB_ATOLL=0; GNULIB_CALLOC_POSIX=0; GNULIB_CANONICALIZE_FILE_NAME=0; GNULIB_GETLOADAVG=0; GNULIB_GETSUBOPT=0; GNULIB_GRANTPT=0; GNULIB_MALLOC_POSIX=0; GNULIB_MBTOWC=0; GNULIB_MKDTEMP=0; GNULIB_MKOSTEMP=0; GNULIB_MKOSTEMPS=0; GNULIB_MKSTEMP=0; GNULIB_MKSTEMPS=0; GNULIB_POSIX_OPENPT=0; GNULIB_PTSNAME=0; GNULIB_PTSNAME_R=0; GNULIB_PUTENV=0; GNULIB_QSORT_R=0; GNULIB_RANDOM=0; GNULIB_RANDOM_R=0; GNULIB_REALLOC_POSIX=0; GNULIB_REALPATH=0; GNULIB_RPMATCH=0; GNULIB_SECURE_GETENV=0; GNULIB_SETENV=0; GNULIB_STRTOD=0; GNULIB_STRTOLL=0; GNULIB_STRTOULL=0; GNULIB_SYSTEM_POSIX=0; GNULIB_UNLOCKPT=0; GNULIB_UNSETENV=0; GNULIB_WCTOMB=0; HAVE__EXIT=1; HAVE_ATOLL=1; HAVE_CANONICALIZE_FILE_NAME=1; HAVE_DECL_GETLOADAVG=1; HAVE_GETSUBOPT=1; HAVE_GRANTPT=1; HAVE_MKDTEMP=1; HAVE_MKOSTEMP=1; HAVE_MKOSTEMPS=1; HAVE_MKSTEMP=1; HAVE_MKSTEMPS=1; HAVE_POSIX_OPENPT=1; HAVE_PTSNAME=1; HAVE_PTSNAME_R=1; HAVE_QSORT_R=1; HAVE_RANDOM=1; HAVE_RANDOM_H=1; HAVE_RANDOM_R=1; HAVE_REALPATH=1; HAVE_RPMATCH=1; HAVE_SECURE_GETENV=1; HAVE_SETENV=1; HAVE_DECL_SETENV=1; HAVE_STRTOD=1; HAVE_STRTOLL=1; HAVE_STRTOULL=1; HAVE_STRUCT_RANDOM_DATA=1; HAVE_SYS_LOADAVG_H=0; HAVE_UNLOCKPT=1; HAVE_DECL_UNSETENV=1; REPLACE_CALLOC=0; REPLACE_CANONICALIZE_FILE_NAME=0; REPLACE_MALLOC=0; REPLACE_MBTOWC=0; REPLACE_MKSTEMP=0; REPLACE_PTSNAME=0; REPLACE_PTSNAME_R=0; REPLACE_PUTENV=0; REPLACE_QSORT_R=0; REPLACE_RANDOM_R=0; REPLACE_REALLOC=0; REPLACE_REALPATH=0; REPLACE_SETENV=0; REPLACE_STRTOD=0; REPLACE_UNSETENV=0; REPLACE_WCTOMB=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5 $as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; } if ${gl_cv_func_malloc_posix+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_malloc_posix=yes else gl_cv_func_malloc_posix=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5 $as_echo "$gl_cv_func_malloc_posix" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 $as_echo_n "checking for mbstate_t... " >&6; } if ${ac_cv_type_mbstate_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { mbstate_t x; return sizeof x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_mbstate_t=yes else ac_cv_type_mbstate_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5 $as_echo "$ac_cv_type_mbstate_t" >&6; } if test $ac_cv_type_mbstate_t = yes; then $as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h else $as_echo "#define mbstate_t int" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 $as_echo_n "checking for a traditional japanese locale... " >&6; } if ${gt_cv_locale_ja+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { const char *p; /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5 $as_echo "$gt_cv_locale_ja" >&6; } LOCALE_JA=$gt_cv_locale_ja { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 $as_echo_n "checking for a transitional chinese locale... " >&6; } if ${gt_cv_locale_zh_CN+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { const char *p; /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5 $as_echo "$gt_cv_locale_zh_CN" >&6; } LOCALE_ZH_CN=$gt_cv_locale_zh_CN { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 $as_echo_n "checking for a french Unicode locale... " >&6; } if ${gt_cv_locale_fr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 $as_echo "$gt_cv_locale_fr_utf8" >&6; } LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 GNULIB_FFSL=0; GNULIB_FFSLL=0; GNULIB_MEMCHR=0; GNULIB_MEMMEM=0; GNULIB_MEMPCPY=0; GNULIB_MEMRCHR=0; GNULIB_RAWMEMCHR=0; GNULIB_STPCPY=0; GNULIB_STPNCPY=0; GNULIB_STRCHRNUL=0; GNULIB_STRDUP=0; GNULIB_STRNCAT=0; GNULIB_STRNDUP=0; GNULIB_STRNLEN=0; GNULIB_STRPBRK=0; GNULIB_STRSEP=0; GNULIB_STRSTR=0; GNULIB_STRCASESTR=0; GNULIB_STRTOK_R=0; GNULIB_MBSLEN=0; GNULIB_MBSNLEN=0; GNULIB_MBSCHR=0; GNULIB_MBSRCHR=0; GNULIB_MBSSTR=0; GNULIB_MBSCASECMP=0; GNULIB_MBSNCASECMP=0; GNULIB_MBSPCASECMP=0; GNULIB_MBSCASESTR=0; GNULIB_MBSCSPN=0; GNULIB_MBSPBRK=0; GNULIB_MBSSPN=0; GNULIB_MBSSEP=0; GNULIB_MBSTOK_R=0; GNULIB_STRERROR=0; GNULIB_STRERROR_R=0; GNULIB_STRSIGNAL=0; GNULIB_STRVERSCMP=0; HAVE_MBSLEN=0; HAVE_FFSL=1; HAVE_FFSLL=1; HAVE_MEMCHR=1; HAVE_DECL_MEMMEM=1; HAVE_MEMPCPY=1; HAVE_DECL_MEMRCHR=1; HAVE_RAWMEMCHR=1; HAVE_STPCPY=1; HAVE_STPNCPY=1; HAVE_STRCHRNUL=1; HAVE_DECL_STRDUP=1; HAVE_DECL_STRNDUP=1; HAVE_DECL_STRNLEN=1; HAVE_STRPBRK=1; HAVE_STRSEP=1; HAVE_STRCASESTR=1; HAVE_DECL_STRTOK_R=1; HAVE_DECL_STRERROR_R=1; HAVE_DECL_STRSIGNAL=1; HAVE_STRVERSCMP=1; REPLACE_MEMCHR=0; REPLACE_MEMMEM=0; REPLACE_STPNCPY=0; REPLACE_STRDUP=0; REPLACE_STRSTR=0; REPLACE_STRCASESTR=0; REPLACE_STRCHRNUL=0; REPLACE_STRERROR=0; REPLACE_STRERROR_R=0; REPLACE_STRNCAT=0; REPLACE_STRNDUP=0; REPLACE_STRNLEN=0; REPLACE_STRSIGNAL=0; REPLACE_STRTOK_R=0; UNDEFINE_STRTOK_R=0; # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" if test "x$ac_cv_func_mmap" = xyes; then : gl_have_mmap=yes else gl_have_mmap=no fi # Try to allow MAP_ANONYMOUS. gl_have_mmap_anonymous=no if test $gl_have_mmap = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5 $as_echo_n "checking for MAP_ANONYMOUS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef MAP_ANONYMOUS I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1; then : gl_have_mmap_anonymous=yes fi rm -f conftest* if test $gl_have_mmap_anonymous != yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef MAP_ANON I cannot identify this map #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "I cannot identify this map" >/dev/null 2>&1; then : $as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h gl_have_mmap_anonymous=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5 $as_echo "$gl_have_mmap_anonymous" >&6; } if test $gl_have_mmap_anonymous = yes; then $as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h fi fi if test $HAVE_MEMCHR = 1; then # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 # http://bugzilla.redhat.com/499689 # memchr should not dereference overestimated length after a match # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 # http://sourceware.org/bugzilla/show_bug.cgi?id=10162 # Assume that memchr works on platforms that lack mprotect. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5 $as_echo_n "checking whether memchr works... " >&6; } if ${gl_cv_func_memchr_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_func_memchr_works="guessing no" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_SYS_MMAN_H # include # include # include # include # ifndef MAP_FILE # define MAP_FILE 0 # endif #endif int main () { int result = 0; char *fence = NULL; #if HAVE_SYS_MMAN_H && HAVE_MPROTECT # if HAVE_MAP_ANONYMOUS const int flags = MAP_ANONYMOUS | MAP_PRIVATE; const int fd = -1; # else /* !HAVE_MAP_ANONYMOUS */ const int flags = MAP_FILE | MAP_PRIVATE; int fd = open ("/dev/zero", O_RDONLY, 0666); if (fd >= 0) # endif { int pagesize = getpagesize (); char *two_pages = (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, flags, fd, 0); if (two_pages != (char *)(-1) && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) fence = two_pages + pagesize; } #endif if (fence) { if (memchr (fence, 0, 0)) result |= 1; strcpy (fence - 9, "12345678"); if (memchr (fence - 9, 0, 79) != fence - 1) result |= 2; if (memchr (fence - 1, 0, 3) != fence - 1) result |= 4; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_memchr_works=yes else gl_cv_func_memchr_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5 $as_echo "$gl_cv_func_memchr_works" >&6; } if test "$gl_cv_func_memchr_works" != yes; then REPLACE_MEMCHR=1 fi fi gl_cv_c_multiarch=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : arch= prev= for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do if test -n "$prev"; then case $word in i?86 | x86_64 | ppc | ppc64) if test -z "$arch" || test "$arch" = "$word"; then arch="$word" else gl_cv_c_multiarch=yes fi ;; esac prev= else if test "x$word" = "x-arch"; then prev=arch fi fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 else APPLE_UNIVERSAL_BUILD=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5 $as_echo_n "checking for promoted mode_t type... " >&6; } if ${gl_cv_promoted_mode_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_promoted_mode_t='int' else gl_cv_promoted_mode_t='mode_t' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_promoted_mode_t" >&5 $as_echo "$gl_cv_promoted_mode_t" >&6; } cat >>confdefs.h <<_ACEOF #define PROMOTED_MODE_T $gl_cv_promoted_mode_t _ACEOF REPLACE_STRERROR_0=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5 $as_echo_n "checking whether strerror(0) succeeds... " >&6; } if ${gl_cv_func_strerror_0_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_strerror_0_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int result = 0; char *str; errno = 0; str = strerror (0); if (!*str) result |= 1; if (errno) result |= 2; if (strstr (str, "nknown") || strstr (str, "ndefined")) result |= 4; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strerror_0_works=yes else gl_cv_func_strerror_0_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5 $as_echo "$gl_cv_func_strerror_0_works" >&6; } case "$gl_cv_func_strerror_0_works" in *yes) ;; *) REPLACE_STRERROR_0=1 $as_echo "#define REPLACE_STRERROR_0 1" >>confdefs.h ;; esac ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r" if test "x$ac_cv_func_strerror_r" = xyes; then : fi if test $ac_cv_func_strerror_r = yes; then if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror_r with POSIX signature" >&5 $as_echo_n "checking for strerror_r with POSIX signature... " >&6; } if ${gl_cv_func_strerror_r_posix_signature+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int strerror_r (int, char *, size_t); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_strerror_r_posix_signature=yes else gl_cv_func_strerror_r_posix_signature=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_r_posix_signature" >&5 $as_echo "$gl_cv_func_strerror_r_posix_signature" >&6; } if test $gl_cv_func_strerror_r_posix_signature = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r works" >&5 $as_echo_n "checking whether strerror_r works... " >&6; } if ${gl_cv_func_strerror_r_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on AIX. aix*) gl_cv_func_strerror_r_works="guessing no";; # Guess no on HP-UX. hpux*) gl_cv_func_strerror_r_works="guessing no";; # Guess no on BSD variants. *bsd*) gl_cv_func_strerror_r_works="guessing no";; # Guess yes otherwise. *) gl_cv_func_strerror_r_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int result = 0; char buf[79]; if (strerror_r (EACCES, buf, 0) < 0) result |= 1; errno = 0; if (strerror_r (EACCES, buf, sizeof buf) != 0) result |= 2; strcpy (buf, "Unknown"); if (strerror_r (0, buf, sizeof buf) != 0) result |= 4; if (errno) result |= 8; if (strstr (buf, "nknown") || strstr (buf, "ndefined")) result |= 0x10; errno = 0; *buf = 0; if (strerror_r (-3, buf, sizeof buf) < 0) result |= 0x20; if (errno) result |= 0x40; if (!*buf) result |= 0x80; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strerror_r_works=yes else gl_cv_func_strerror_r_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_r_works" >&5 $as_echo "$gl_cv_func_strerror_r_works" >&6; } else if test $ac_cv_func___xpg_strerror_r = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether __xpg_strerror_r works" >&5 $as_echo_n "checking whether __xpg_strerror_r works... " >&6; } if ${gl_cv_func_strerror_r_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_func_strerror_r_works="guessing no" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include extern #ifdef __cplusplus "C" #endif int __xpg_strerror_r(int, char *, size_t); int main () { int result = 0; char buf[256] = "^"; char copy[256]; char *str = strerror (-1); strcpy (copy, str); if (__xpg_strerror_r (-2, buf, 1) == 0) result |= 1; if (*buf) result |= 2; __xpg_strerror_r (-2, buf, 256); if (strcmp (str, copy)) result |= 4; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strerror_r_works=yes else gl_cv_func_strerror_r_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_r_works" >&5 $as_echo "$gl_cv_func_strerror_r_works" >&6; } fi fi fi fi ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" if test "x$ac_cv_have_decl_strerror_r" = xyes; then : HAVE_DECL_STRERROR_R=1 else HAVE_DECL_STRERROR_R=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR_R_ORIG $HAVE_DECL_STRERROR_R _ACEOF if test $ac_cv_func_strerror_r = yes; then if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then if test $gl_cv_func_strerror_r_posix_signature = yes; then case "$gl_cv_func_strerror_r_works" in *no) REPLACE_STRERROR_R=1 ;; esac else REPLACE_STRERROR_R=1 fi else REPLACE_STRERROR_R=1 fi fi # Overwrite the findings of AC_FUNC_STRERROR_R (for code that uses that). GNULIB_POSIX_SPAWN=0; GNULIB_POSIX_SPAWNP=0; GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT=0; GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE=0; GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2=0; GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN=0; GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY=0; GNULIB_POSIX_SPAWNATTR_INIT=0; GNULIB_POSIX_SPAWNATTR_GETFLAGS=0; GNULIB_POSIX_SPAWNATTR_SETFLAGS=0; GNULIB_POSIX_SPAWNATTR_GETPGROUP=0; GNULIB_POSIX_SPAWNATTR_SETPGROUP=0; GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM=0; GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM=0; GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY=0; GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY=0; GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT=0; GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT=0; GNULIB_POSIX_SPAWNATTR_GETSIGMASK=0; GNULIB_POSIX_SPAWNATTR_SETSIGMASK=0; GNULIB_POSIX_SPAWNATTR_DESTROY=0; HAVE_POSIX_SPAWN=1; HAVE_POSIX_SPAWNATTR_T=1; HAVE_POSIX_SPAWN_FILE_ACTIONS_T=1; REPLACE_POSIX_SPAWN=0; REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE=0; REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2=0; REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN=0; LIB_POSIX_SPAWN= gl_saved_libs=$LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing posix_spawn" >&5 $as_echo_n "checking for library containing posix_spawn... " >&6; } if ${ac_cv_search_posix_spawn+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char posix_spawn (); int main () { return posix_spawn (); ; return 0; } _ACEOF for ac_lib in '' rt; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_posix_spawn=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_posix_spawn+:} false; then : break fi done if ${ac_cv_search_posix_spawn+:} false; then : else ac_cv_search_posix_spawn=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_posix_spawn" >&5 $as_echo "$ac_cv_search_posix_spawn" >&6; } ac_res=$ac_cv_search_posix_spawn if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" test "$ac_cv_search_posix_spawn" = "none required" || LIB_POSIX_SPAWN=$ac_cv_search_posix_spawn fi for ac_func in posix_spawn do : ac_fn_c_check_func "$LINENO" "posix_spawn" "ac_cv_func_posix_spawn" if test "x$ac_cv_func_posix_spawn" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_POSIX_SPAWN 1 _ACEOF fi done LIBS=$gl_saved_libs if test $ac_cv_func_posix_spawn != yes; then HAVE_POSIX_SPAWN=0 fi if test $ac_cv_func_posix_spawn = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_spawn works" >&5 $as_echo_n "checking whether posix_spawn works... " >&6; } if ${gl_cv_func_posix_spawn_works+:} false; then : $as_echo_n "(cached) " >&6 else if test $cross_compiling = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include #include #include #include #include #include #include extern char **environ; #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif #ifndef WTERMSIG # define WTERMSIG(x) ((x) & 0x7f) #endif #ifndef WIFEXITED # define WIFEXITED(x) (WTERMSIG (x) == 0) #endif #ifndef WEXITSTATUS # define WEXITSTATUS(x) (((x) >> 8) & 0xff) #endif #define CHILD_PROGRAM_FILENAME "/non/exist/ent" static int fd_safer (int fd) { if (0 <= fd && fd <= 2) { int f = fd_safer (dup (fd)); int e = errno; close (fd); errno = e; fd = f; } return fd; } int main () { char *argv[2] = { CHILD_PROGRAM_FILENAME, NULL }; int ofd[2]; sigset_t blocked_signals; sigset_t fatal_signal_set; posix_spawn_file_actions_t actions; bool actions_allocated; posix_spawnattr_t attrs; bool attrs_allocated; int err; pid_t child; int status; int exitstatus; setvbuf (stdout, NULL, _IOFBF, 0); puts ("This should be seen only once."); if (pipe (ofd) < 0 || (ofd[1] = fd_safer (ofd[1])) < 0) { perror ("cannot create pipe"); exit (1); } sigprocmask (SIG_SETMASK, NULL, &blocked_signals); sigemptyset (&fatal_signal_set); sigaddset (&fatal_signal_set, SIGINT); sigaddset (&fatal_signal_set, SIGTERM); sigaddset (&fatal_signal_set, SIGHUP); sigaddset (&fatal_signal_set, SIGPIPE); sigprocmask (SIG_BLOCK, &fatal_signal_set, NULL); actions_allocated = false; attrs_allocated = false; if ((err = posix_spawn_file_actions_init (&actions)) != 0 || (actions_allocated = true, (err = posix_spawn_file_actions_adddup2 (&actions, ofd[0], STDIN_FILENO)) != 0 || (err = posix_spawn_file_actions_addclose (&actions, ofd[0])) != 0 || (err = posix_spawn_file_actions_addclose (&actions, ofd[1])) != 0 || (err = posix_spawnattr_init (&attrs)) != 0 || (attrs_allocated = true, (err = posix_spawnattr_setsigmask (&attrs, &blocked_signals)) != 0 || (err = posix_spawnattr_setflags (&attrs, POSIX_SPAWN_SETSIGMASK)) != 0) || (err = posix_spawnp (&child, CHILD_PROGRAM_FILENAME, &actions, &attrs, argv, environ)) != 0)) { if (actions_allocated) posix_spawn_file_actions_destroy (&actions); if (attrs_allocated) posix_spawnattr_destroy (&attrs); sigprocmask (SIG_UNBLOCK, &fatal_signal_set, NULL); if (err == ENOENT) return 0; else { errno = err; perror ("subprocess failed"); exit (1); } } posix_spawn_file_actions_destroy (&actions); posix_spawnattr_destroy (&attrs); sigprocmask (SIG_UNBLOCK, &fatal_signal_set, NULL); close (ofd[0]); close (ofd[1]); status = 0; while (waitpid (child, &status, 0) != child) ; if (!WIFEXITED (status)) { fprintf (stderr, "subprocess terminated with unexpected wait status %d\n", status); exit (1); } exitstatus = WEXITSTATUS (status); if (exitstatus != 127) { fprintf (stderr, "subprocess terminated with unexpected exit status %d\n", exitstatus); exit (1); } return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if test -s conftest$ac_exeext \ && ./conftest$ac_exeext > conftest.out \ && echo 'This should be seen only once.' > conftest.ok \ && cmp conftest.out conftest.ok > /dev/null; then gl_cv_func_posix_spawn_works=yes else gl_cv_func_posix_spawn_works=no fi else gl_cv_func_posix_spawn_works=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $gl_cv_func_posix_spawn_works = yes; then if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Test whether posix_spawn_file_actions_addopen supports filename arguments that contain special characters such as '*'. */ #include #include #include #include #include #include #include #include #include #include extern char **environ; #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif #ifndef WTERMSIG # define WTERMSIG(x) ((x) & 0x7f) #endif #ifndef WIFEXITED # define WIFEXITED(x) (WTERMSIG (x) == 0) #endif #ifndef WEXITSTATUS # define WEXITSTATUS(x) (((x) >> 8) & 0xff) #endif #define CHILD_PROGRAM_FILENAME "conftest" #define DATA_FILENAME "conftest%=*#?" static int parent_main (void) { FILE *fp; char *argv[3] = { CHILD_PROGRAM_FILENAME, "-child", NULL }; posix_spawn_file_actions_t actions; bool actions_allocated; int err; pid_t child; int status; int exitstatus; /* Create a data file with specific contents. */ fp = fopen (DATA_FILENAME, "wb"); if (fp == NULL) { perror ("cannot create data file"); return 1; } fwrite ("Halle Potta", 1, 11, fp); if (fflush (fp) || fclose (fp)) { perror ("cannot prepare data file"); return 2; } /* Avoid reading from our stdin, as it could block. */ freopen ("/dev/null", "rb", stdin); /* Test whether posix_spawn_file_actions_addopen with this file name actually works, but spawning a child that reads from this file. */ actions_allocated = false; if ((err = posix_spawn_file_actions_init (&actions)) != 0 || (actions_allocated = true, (err = posix_spawn_file_actions_addopen (&actions, STDIN_FILENO, DATA_FILENAME, O_RDONLY, 0600)) != 0 || (err = posix_spawn (&child, CHILD_PROGRAM_FILENAME, &actions, NULL, argv, environ)) != 0)) { if (actions_allocated) posix_spawn_file_actions_destroy (&actions); errno = err; perror ("subprocess failed"); return 3; } posix_spawn_file_actions_destroy (&actions); status = 0; while (waitpid (child, &status, 0) != child) ; if (!WIFEXITED (status)) { fprintf (stderr, "subprocess terminated with unexpected wait status %d\n", status); return 4; } exitstatus = WEXITSTATUS (status); if (exitstatus != 0) { fprintf (stderr, "subprocess terminated with unexpected exit status %d\n", exitstatus); return 5; } return 0; } static int child_main (void) { char buf[1024]; /* See if reading from STDIN_FILENO yields the expected contents. */ if (fread (buf, 1, sizeof (buf), stdin) == 11 && memcmp (buf, "Halle Potta", 11) == 0) return 0; else return 8; } static void cleanup_then_die (int sig) { /* Clean up data file. */ unlink (DATA_FILENAME); /* Re-raise the signal and die from it. */ signal (sig, SIG_DFL); raise (sig); } int main (int argc, char *argv[]) { int exitstatus; if (!(argc > 1 && strcmp (argv[1], "-child") == 0)) { /* This is the parent process. */ signal (SIGINT, cleanup_then_die); signal (SIGTERM, cleanup_then_die); #ifdef SIGHUP signal (SIGHUP, cleanup_then_die); #endif exitstatus = parent_main (); } else { /* This is the child process. */ exitstatus = child_main (); } unlink (DATA_FILENAME); return exitstatus; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else gl_cv_func_posix_spawn_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi else case "$host_os" in aix*) gl_cv_func_posix_spawn_works="guessing no";; *) gl_cv_func_posix_spawn_works="guessing yes";; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_posix_spawn_works" >&5 $as_echo "$gl_cv_func_posix_spawn_works" >&6; } case "$gl_cv_func_posix_spawn_works" in *yes) $as_echo "#define HAVE_WORKING_POSIX_SPAWN 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_spawnattr_setschedpolicy is supported" >&5 $as_echo_n "checking whether posix_spawnattr_setschedpolicy is supported... " >&6; } if ${gl_cv_func_spawnattr_setschedpolicy+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if POSIX_SPAWN_SETSCHEDULER POSIX scheduling supported #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "POSIX scheduling supported" >/dev/null 2>&1; then : gl_cv_func_spawnattr_setschedpolicy=yes else gl_cv_func_spawnattr_setschedpolicy=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_spawnattr_setschedpolicy" >&5 $as_echo "$gl_cv_func_spawnattr_setschedpolicy" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_spawnattr_setschedparam is supported" >&5 $as_echo_n "checking whether posix_spawnattr_setschedparam is supported... " >&6; } if ${gl_cv_func_spawnattr_setschedparam+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if POSIX_SPAWN_SETSCHEDPARAM POSIX scheduling supported #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "POSIX scheduling supported" >/dev/null 2>&1; then : gl_cv_func_spawnattr_setschedparam=yes else gl_cv_func_spawnattr_setschedparam=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_spawnattr_setschedparam" >&5 $as_echo "$gl_cv_func_spawnattr_setschedparam" >&6; } ;; *) REPLACE_POSIX_SPAWN=1 ;; esac fi GNULIB_PTHREAD_SIGMASK=0; GNULIB_RAISE=0; GNULIB_SIGNAL_H_SIGPIPE=0; GNULIB_SIGPROCMASK=0; GNULIB_SIGACTION=0; HAVE_POSIX_SIGNALBLOCKING=1; HAVE_PTHREAD_SIGMASK=1; HAVE_RAISE=1; HAVE_SIGSET_T=1; HAVE_SIGINFO_T=1; HAVE_SIGACTION=1; HAVE_STRUCT_SIGACTION_SA_SIGACTION=1; HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1; HAVE_SIGHANDLER_T=1; REPLACE_PTHREAD_SIGMASK=0; REPLACE_RAISE=0; ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" " #include /* Mingw defines sigset_t not in , but in . */ #include " if test "x$ac_cv_type_sigset_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SIGSET_T 1 _ACEOF gl_cv_type_sigset_t=yes else gl_cv_type_sigset_t=no fi if test $gl_cv_type_sigset_t != yes; then HAVE_SIGSET_T=0 fi ac_fn_c_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default" if test "x$ac_cv_have_decl_alarm" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ALARM $ac_have_decl _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_malloc_0_nonnull=no ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { char *p = malloc (0); int result = !p; free (p); return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : gl_cv_func_malloc_0_nonnull=1 else gl_cv_func_malloc_0_nonnull=0 fi cat >>confdefs.h <<_ACEOF #define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 $as_echo_n "checking for uid_t in sys/types.h... " >&6; } if ${ac_cv_type_uid_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "uid_t" >/dev/null 2>&1; then : ac_cv_type_uid_t=yes else ac_cv_type_uid_t=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 $as_echo "$ac_cv_type_uid_t" >&6; } if test $ac_cv_type_uid_t = no; then $as_echo "#define uid_t int" >>confdefs.h $as_echo "#define gid_t int" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if ${ac_cv_header_stdbool_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __cplusplus typedef bool Bool; #else typedef _Bool Bool; #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { Bool s: 1; Bool t; bool u: 1; bool v; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ Bool q = true; Bool *pq = &q; bool *qq = &q; int main () { bool e = &s; *pq |= q; *pq |= ! q; *qq |= q; *qq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq + !qq); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdbool_h=yes else ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 $as_echo_n "checking for wint_t... " >&6; } if ${gt_cv_c_wint_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include wint_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wint_t=yes else gt_cv_c_wint_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 $as_echo "$gt_cv_c_wint_t" >&6; } if test $gt_cv_c_wint_t = yes; then $as_echo "#define HAVE_WINT_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wint_t is too small" >&5 $as_echo_n "checking whether wint_t is too small... " >&6; } if ${gl_cv_type_wint_t_too_small+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include #endif #include int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_wint_t_too_small=no else gl_cv_type_wint_t_too_small=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wint_t_too_small" >&5 $as_echo "$gl_cv_type_wint_t_too_small" >&6; } if test $gl_cv_type_wint_t_too_small = yes; then GNULIB_OVERRIDES_WINT_T=1 else GNULIB_OVERRIDES_WINT_T=0 fi else GNULIB_OVERRIDES_WINT_T=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5 $as_echo_n "checking for unsigned long long int... " >&6; } if ${ac_cv_type_unsigned_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_type_unsigned_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* For now, do not test the preprocessor; as of 2007 there are too many implementations with broken preprocessors. Perhaps this can be revisited in 2012. In the meantime, code should not expect #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63; int main () { /* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else ac_cv_type_unsigned_long_long_int=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 $as_echo "$ac_cv_type_unsigned_long_long_int" >&6; } if test $ac_cv_type_unsigned_long_long_int = yes; then $as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 $as_echo_n "checking for long long int... " >&6; } if ${ac_cv_type_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_type_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_long_long_int = yes; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef LLONG_MAX # define HALF \ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) # define LLONG_MAX (HALF - 1 + HALF) #endif int main () { long long int n = 1; int i; for (i = 0; ; i++) { long long int m = n << i; if (m >> i != n) return 1; if (LLONG_MAX / 2 < m) break; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_type_long_long_int=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 $as_echo "$ac_cv_type_long_long_int" >&6; } if test $ac_cv_type_long_long_int = yes; then $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h fi if test $ac_cv_type_long_long_int = yes; then HAVE_LONG_LONG_INT=1 else HAVE_LONG_LONG_INT=0 fi if test $ac_cv_type_unsigned_long_long_int = yes; then HAVE_UNSIGNED_LONG_LONG_INT=1 else HAVE_UNSIGNED_LONG_LONG_INT=0 fi if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi if test $ac_cv_header_inttypes_h = yes; then HAVE_INTTYPES_H=1 else HAVE_INTTYPES_H=0 fi if test $ac_cv_header_sys_types_h = yes; then HAVE_SYS_TYPES_H=1 else HAVE_SYS_TYPES_H=0 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_stdint_h='<'stdint.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_stdint_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdint.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdint_h gl_cv_next_stdint_h='"'$gl_header'"' else gl_cv_next_stdint_h='<'stdint.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 $as_echo "$gl_cv_next_stdint_h" >&6; } fi NEXT_STDINT_H=$gl_cv_next_stdint_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdint.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdint_h fi NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else HAVE_STDINT_H=0 fi if test $ac_cv_header_stdint_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 $as_echo_n "checking whether stdint.h conforms to C99... " >&6; } if ${gl_cv_header_working_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_working_stdint_h=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) #error "WCHAR_MIN, WCHAR_MAX not defined in " #endif /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; #endif #ifdef INT16_MAX int16_t a2 = INT16_MAX; int16_t a2min = INT16_MIN; #endif #ifdef INT32_MAX int32_t a3 = INT32_MAX; int32_t a3min = INT32_MIN; #endif #ifdef INT64_MAX int64_t a4 = INT64_MAX; int64_t a4min = INT64_MIN; #endif #ifdef UINT8_MAX uint8_t b1 = UINT8_MAX; #else typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; #endif #ifdef UINT16_MAX uint16_t b2 = UINT16_MAX; #endif #ifdef UINT32_MAX uint32_t b3 = UINT32_MAX; #endif #ifdef UINT64_MAX uint64_t b4 = UINT64_MAX; #endif int_least8_t c1 = INT8_C (0x7f); int_least8_t c1max = INT_LEAST8_MAX; int_least8_t c1min = INT_LEAST8_MIN; int_least16_t c2 = INT16_C (0x7fff); int_least16_t c2max = INT_LEAST16_MAX; int_least16_t c2min = INT_LEAST16_MIN; int_least32_t c3 = INT32_C (0x7fffffff); int_least32_t c3max = INT_LEAST32_MAX; int_least32_t c3min = INT_LEAST32_MIN; int_least64_t c4 = INT64_C (0x7fffffffffffffff); int_least64_t c4max = INT_LEAST64_MAX; int_least64_t c4min = INT_LEAST64_MIN; uint_least8_t d1 = UINT8_C (0xff); uint_least8_t d1max = UINT_LEAST8_MAX; uint_least16_t d2 = UINT16_C (0xffff); uint_least16_t d2max = UINT_LEAST16_MAX; uint_least32_t d3 = UINT32_C (0xffffffff); uint_least32_t d3max = UINT_LEAST32_MAX; uint_least64_t d4 = UINT64_C (0xffffffffffffffff); uint_least64_t d4max = UINT_LEAST64_MAX; int_fast8_t e1 = INT_FAST8_MAX; int_fast8_t e1min = INT_FAST8_MIN; int_fast16_t e2 = INT_FAST16_MAX; int_fast16_t e2min = INT_FAST16_MIN; int_fast32_t e3 = INT_FAST32_MAX; int_fast32_t e3min = INT_FAST32_MIN; int_fast64_t e4 = INT_FAST64_MAX; int_fast64_t e4min = INT_FAST64_MIN; uint_fast8_t f1 = UINT_FAST8_MAX; uint_fast16_t f2 = UINT_FAST16_MAX; uint_fast32_t f3 = UINT_FAST32_MAX; uint_fast64_t f4 = UINT_FAST64_MAX; #ifdef INTPTR_MAX intptr_t g = INTPTR_MAX; intptr_t gmin = INTPTR_MIN; #endif #ifdef UINTPTR_MAX uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; /* Check that SIZE_MAX has the correct type, if possible. */ #if 201112 <= __STDC_VERSION__ int k = _Generic (SIZE_MAX, size_t: 0); #elif (2 <= __GNUC__ || defined __IBM__TYPEOF__ \ || (0x5110 <= __SUNPRO_C && !__STDC__)) extern size_t k; extern __typeof__ (SIZE_MAX) k; #endif #include /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) ((t) 0 < (t) -1 \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) struct s { int check_PTRDIFF: PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; /* Detect bug in FreeBSD 6.0 / ia64. */ int check_SIG_ATOMIC: SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ? 1 : -1; int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; int check_WCHAR: WCHAR_MIN == TYPE_MINIMUM (wchar_t) && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ? 1 : -1; /* Detect bug in mingw. */ int check_WINT: WINT_MIN == TYPE_MINIMUM (wint_t) && WINT_MAX == TYPE_MAXIMUM (wint_t) ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; int check_UINT16_C: (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; /* Detect bugs in OpenBSD 3.9 stdint.h. */ #ifdef UINT8_MAX int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; #endif #ifdef UINT16_MAX int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; #endif #ifdef UINT32_MAX int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; #endif #ifdef UINT64_MAX int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; #endif int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if test "$cross_compiling" = yes; then : gl_cv_header_working_stdint_h=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif #include #include #define MVAL(macro) MVAL1(macro) #define MVAL1(expression) #expression static const char *macro_values[] = { #ifdef INT8_MAX MVAL (INT8_MAX), #endif #ifdef INT16_MAX MVAL (INT16_MAX), #endif #ifdef INT32_MAX MVAL (INT32_MAX), #endif #ifdef INT64_MAX MVAL (INT64_MAX), #endif #ifdef UINT8_MAX MVAL (UINT8_MAX), #endif #ifdef UINT16_MAX MVAL (UINT16_MAX), #endif #ifdef UINT32_MAX MVAL (UINT32_MAX), #endif #ifdef UINT64_MAX MVAL (UINT64_MAX), #endif NULL }; int main () { const char **mv; for (mv = macro_values; *mv != NULL; mv++) { const char *value = *mv; /* Test whether it looks like a cast expression. */ if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 || strncmp (value, "((int)"/*)*/, 6) == 0 || strncmp (value, "((signed short)"/*)*/, 15) == 0 || strncmp (value, "((signed char)"/*)*/, 14) == 0) return mv - macro_values + 1; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_header_working_stdint_h=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 $as_echo "$gl_cv_header_working_stdint_h" >&6; } fi HAVE_C99_STDINT_H=0 HAVE_SYS_BITYPES_H=0 HAVE_SYS_INTTYPES_H=0 STDINT_H=stdint.h if test "$gl_cv_header_working_stdint_h" = yes; then HAVE_C99_STDINT_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h predates C++11" >&5 $as_echo_n "checking whether stdint.h predates C++11... " >&6; } if ${gl_cv_header_stdint_predates_cxx11_h+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_stdint_predates_cxx11_h=yes cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif intmax_t im = INTMAX_MAX; int32_t i32 = INT32_C (0x7fffffff); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_stdint_predates_cxx11_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_predates_cxx11_h" >&5 $as_echo "$gl_cv_header_stdint_predates_cxx11_h" >&6; } if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then $as_echo "#define __STDC_CONSTANT_MACROS 1" >>confdefs.h $as_echo "#define __STDC_LIMIT_MACROS 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h has UINTMAX_WIDTH etc." >&5 $as_echo_n "checking whether stdint.h has UINTMAX_WIDTH etc.... " >&6; } if ${gl_cv_header_stdint_width+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_stdint_width=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif int iw = UINTMAX_WIDTH; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_stdint_width=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_width" >&5 $as_echo "$gl_cv_header_stdint_width" >&6; } if test "$gl_cv_header_stdint_width" = yes; then STDINT_H= fi else for ac_header in sys/inttypes.h sys/bitypes.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_header_sys_inttypes_h = yes; then HAVE_SYS_INTTYPES_H=1 fi if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 fi if test $APPLE_UNIVERSAL_BUILD = 0; then for gltype in ptrdiff_t size_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 $as_echo_n "checking for bit size of $gltype... " >&6; } if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif #include "; then : else result=unknown fi eval gl_cv_bitsizeof_${gltype}=\$result fi eval ac_res=\$gl_cv_bitsizeof_${gltype} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` cat >>confdefs.h <<_ACEOF #define BITSIZEOF_${GLTYPE} $result _ACEOF eval BITSIZEOF_${GLTYPE}=\$result done fi for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 $as_echo_n "checking for bit size of $gltype... " >&6; } if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif #include "; then : else result=unknown fi eval gl_cv_bitsizeof_${gltype}=\$result fi eval ac_res=\$gl_cv_bitsizeof_${gltype} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` cat >>confdefs.h <<_ACEOF #define BITSIZEOF_${GLTYPE} $result _ACEOF eval BITSIZEOF_${GLTYPE}=\$result done for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 $as_echo_n "checking whether $gltype is signed... " >&6; } if eval \${gl_cv_type_${gltype}_signed+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : result=yes else result=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval gl_cv_type_${gltype}_signed=\$result fi eval ac_res=\$gl_cv_type_${gltype}_signed { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_SIGNED_${GLTYPE} 1 _ACEOF eval HAVE_SIGNED_${GLTYPE}=1 else eval HAVE_SIGNED_${GLTYPE}=0 fi done gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no if test $APPLE_UNIVERSAL_BUILD = 0; then for gltype in ptrdiff_t size_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 $as_echo_n "checking for $gltype integer literal suffix... " >&6; } if eval \${gl_cv_type_${gltype}_suffix+:} false; then : $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif extern $gltype foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval gl_cv_type_${gltype}_suffix=\$glsuf fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done fi eval ac_res=\$gl_cv_type_${gltype}_suffix { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result cat >>confdefs.h <<_ACEOF #define ${GLTYPE}_SUFFIX $result _ACEOF done fi for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 $as_echo_n "checking for $gltype integer literal suffix... " >&6; } if eval \${gl_cv_type_${gltype}_suffix+:} false; then : $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif extern $gltype foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval gl_cv_type_${gltype}_suffix=\$glsuf fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done fi eval ac_res=\$gl_cv_type_${gltype}_suffix { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result cat >>confdefs.h <<_ACEOF #define ${GLTYPE}_SUFFIX $result _ACEOF done if test $GNULIB_OVERRIDES_WINT_T = 1; then BITSIZEOF_WINT_T=32 fi fi LIMITS_H=limits.h if test -n "$LIMITS_H"; then GL_GENERATE_LIMITS_H_TRUE= GL_GENERATE_LIMITS_H_FALSE='#' else GL_GENERATE_LIMITS_H_TRUE='#' GL_GENERATE_LIMITS_H_FALSE= fi if test -n "$STDINT_H"; then GL_GENERATE_STDINT_H_TRUE= GL_GENERATE_STDINT_H_FALSE='#' else GL_GENERATE_STDINT_H_TRUE='#' GL_GENERATE_STDINT_H_FALSE= fi ac_fn_c_check_decl "$LINENO" "strdup" "ac_cv_have_decl_strdup" "$ac_includes_default" if test "x$ac_cv_have_decl_strdup" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRDUP $ac_have_decl _ACEOF if test $gl_cv_have_include_next = yes; then gl_cv_next_string_h='<'string.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_string_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'string.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_string_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_string_h gl_cv_next_string_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5 $as_echo "$gl_cv_next_string_h" >&6; } fi NEXT_STRING_H=$gl_cv_next_string_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'string.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_string_h fi NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done GNULIB_FFS=0; HAVE_FFS=1; HAVE_STRCASECMP=1; HAVE_DECL_STRNCASECMP=1; if test $gl_cv_have_include_next = yes; then gl_cv_next_strings_h='<'strings.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_strings_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_strings_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'strings.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_strings_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_strings_h gl_cv_next_strings_h='"'$gl_header'"' else gl_cv_next_strings_h='<'strings.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_strings_h" >&5 $as_echo "$gl_cv_next_strings_h" >&6; } fi NEXT_STRINGS_H=$gl_cv_next_strings_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'strings.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_strings_h fi NEXT_AS_FIRST_DIRECTIVE_STRINGS_H=$gl_next_as_first_directive if test $ac_cv_header_strings_h = yes; then HAVE_STRINGS_H=1 else HAVE_STRINGS_H=0 fi for gl_func in ffs strcasecmp strncasecmp; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Minix 3.1.8 has a bug: must be included before . */ #include #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test "$gl_cv_func_memchr_works" != yes; then REPLACE_STRSTR=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works" >&5 $as_echo_n "checking whether strstr works... " >&6; } if ${gl_cv_func_strstr_works_always+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ || defined __UCLIBC__ Lucky user #endif #elif defined __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #else Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1; then : gl_cv_func_strstr_works_always="guessing yes" else gl_cv_func_strstr_works_always="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for strstr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P int main () { return !!strstr (HAYSTACK, NEEDLE); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strstr_works_always=yes else gl_cv_func_strstr_works_always=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strstr_works_always" >&5 $as_echo "$gl_cv_func_strstr_works_always" >&6; } case "$gl_cv_func_strstr_works_always" in *yes) ;; *) REPLACE_STRSTR=1 ;; esac fi GNULIB_WAITPID=0; GNULIB_MKTIME=0; GNULIB_NANOSLEEP=0; GNULIB_STRPTIME=0; GNULIB_TIMEGM=0; GNULIB_TIME_R=0; GNULIB_TIME_RZ=0; HAVE_DECL_LOCALTIME_R=1; HAVE_NANOSLEEP=1; HAVE_STRPTIME=1; HAVE_TIMEGM=1; REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; REPLACE_MKTIME=GNULIB_PORTCHECK; REPLACE_NANOSLEEP=GNULIB_PORTCHECK; REPLACE_TIMEGM=GNULIB_PORTCHECK; : ${GNULIB_GETTIMEOFDAY=0}; REPLACE_GMTIME=0; REPLACE_LOCALTIME=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_time_h=yes else gl_cv_sys_struct_timespec_in_time_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_time_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_time_h" >&6; } TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_sys_time_h=yes else gl_cv_sys_struct_timespec_in_sys_time_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; } if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_pthread_h=yes else gl_cv_sys_struct_timespec_in_pthread_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; } if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_unistd_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_unistd_h=yes else gl_cv_sys_struct_timespec_in_unistd_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_unistd_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_unistd_h" >&6; } if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 fi fi fi fi if test $gl_cv_have_include_next = yes; then gl_cv_next_time_h='<'time.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'time.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_time_h gl_cv_next_time_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5 $as_echo "$gl_cv_next_time_h" >&6; } fi NEXT_TIME_H=$gl_cv_next_time_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'time.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_time_h fi NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else HAVE_FEATURES_H=0 fi GNULIB_ISWBLANK=0; GNULIB_WCTYPE=0; GNULIB_ISWCTYPE=0; GNULIB_WCTRANS=0; GNULIB_TOWCTRANS=0; HAVE_ISWBLANK=1; HAVE_WCTYPE_T=1; HAVE_WCTRANS_T=1; REPLACE_ISWBLANK=0; if false; then GL_COND_LIBTOOL_TRUE= GL_COND_LIBTOOL_FALSE='#' else GL_COND_LIBTOOL_TRUE='#' GL_COND_LIBTOOL_FALSE= fi gl_cond_libtool=false gl_libdeps= gl_ltlibdeps= gl_m4_base='m4' gl_source_base='lib' ACOS_LIBM="$POW_LIBM" if test $ac_cv_func_alloca_works = no; then : fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5 $as_echo_n "checking for alloca as a compiler built-in... " >&6; } if ${gl_cv_rpl_alloca+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Need own alloca" >/dev/null 2>&1; then : gl_cv_rpl_alloca=yes else gl_cv_rpl_alloca=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5 $as_echo "$gl_cv_rpl_alloca" >&6; } if test $gl_cv_rpl_alloca = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h ALLOCA_H=alloca.h else ALLOCA_H= fi else ALLOCA_H=alloca.h fi if test -n "$ALLOCA_H"; then GL_GENERATE_ALLOCA_H_TRUE= GL_GENERATE_ALLOCA_H_FALSE='#' else GL_GENERATE_ALLOCA_H_TRUE='#' GL_GENERATE_ALLOCA_H_FALSE= fi ASIN_LIBM="$POW_LIBM" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable assertions" >&5 $as_echo_n "checking whether to enable assertions... " >&6; } # Check whether --enable-assert was given. if test "${enable_assert+set}" = set; then : enableval=$enable_assert; if test "x$enableval" = xno; then : $as_echo "#define NDEBUG 1" >>confdefs.h elif test "x$enableval" != xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-assert" >&5 $as_echo "$as_me: WARNING: invalid argument supplied to --enable-assert" >&2;} enable_assert=yes fi else enable_assert=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_assert" >&5 $as_echo "$enable_assert" >&6; } ATAN_LIBM="$POW_LIBM" ATAN2_LIBM="$POW_LIBM" if test $ac_cv_func_btowc = no; then HAVE_BTOWC=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5 $as_echo_n "checking whether btowc(0) is correct... " >&6; } if ${gl_cv_func_btowc_nul+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on Cygwin. cygwin*) gl_cv_func_btowc_nul="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_btowc_nul="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (btowc ('\0') != 0) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_btowc_nul=yes else gl_cv_func_btowc_nul=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_nul" >&5 $as_echo "$gl_cv_func_btowc_nul" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5 $as_echo_n "checking whether btowc(EOF) is correct... " >&6; } if ${gl_cv_func_btowc_eof+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on IRIX. irix*) gl_cv_func_btowc_eof="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_btowc_eof="guessing yes" ;; esac if test $LOCALE_FR != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { if (btowc (EOF) != WEOF) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_btowc_eof=yes else gl_cv_func_btowc_eof=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5 $as_echo "$gl_cv_func_btowc_eof" >&6; } case "$gl_cv_func_btowc_nul" in *yes) ;; *) REPLACE_BTOWC=1 ;; esac case "$gl_cv_func_btowc_eof" in *yes) ;; *) REPLACE_BTOWC=1 ;; esac fi if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then gl_LIBOBJS="$gl_LIBOBJS btowc.$ac_objext" : fi GNULIB_BTOWC=1 $as_echo "#define GNULIB_TEST_BTOWC 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5 $as_echo_n "checking for __builtin_expect... " >&6; } if ${gl_cv___builtin_expect+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (int argc, char **argv) { argc = __builtin_expect (argc, 100); return argv[argc != 100][0]; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv___builtin_expect=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (int argc, char **argv) { argc = __builtin_expect (argc, 100); return argv[argc != 100][0]; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv___builtin_expect="in " else gl_cv___builtin_expect=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv___builtin_expect" >&5 $as_echo "$gl_cv___builtin_expect" >&6; } if test "$gl_cv___builtin_expect" = yes; then $as_echo "#define HAVE___BUILTIN_EXPECT 1" >>confdefs.h elif test "$gl_cv___builtin_expect" = "in "; then $as_echo "#define HAVE___BUILTIN_EXPECT 2" >>confdefs.h fi saved_as_echo_n="$as_echo_n" as_echo_n=':' if ${gl_cv_func_ceil_libm+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_func_ceil_libm=? cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include double x; int main () { x = ceil(x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_ceil_libm= fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$gl_cv_func_ceil_libm" = "?"; then save_LIBS="$LIBS" LIBS="$LIBS -lm" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include double x; int main () { x = ceil(x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_ceil_libm="-lm" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$save_LIBS" fi fi as_echo_n="$saved_as_echo_n" CEIL_LIBM="$gl_cv_func_ceil_libm" if test "$CEIL_LIBM" = "?"; then CEIL_LIBM= fi if test $REPLACE_CEIL = 1; then CEIL_LIBM= fi if test $REPLACE_CEIL = 1; then gl_LIBOBJS="$gl_LIBOBJS ceil.$ac_objext" fi GNULIB_CEIL=1 $as_echo "#define GNULIB_TEST_CEIL 1" >>confdefs.h $as_echo "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_CLOSE=1 fi if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then REPLACE_CLOSE=1 fi if test $REPLACE_CLOSE = 1; then gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext" fi GNULIB_CLOSE=1 $as_echo "#define GNULIB_TEST_CLOSE 1" >>confdefs.h if test "x$datarootdir" = x; then datarootdir='${datadir}' fi if test "x$docdir" = x; then docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' fi if test "x$htmldir" = x; then htmldir='${docdir}' fi if test "x$dvidir" = x; then dvidir='${docdir}' fi if test "x$pdfdir" = x; then pdfdir='${docdir}' fi if test "x$psdir" = x; then psdir='${docdir}' fi if test "x$lispdir" = x; then lispdir='${datarootdir}/emacs/site-lisp' fi if test "x$localedir" = x; then localedir='${datarootdir}/locale' fi if test "x$runstatedir" = x; then runstatedir='${localstatedir}/run' fi pkglibexecdir='${libexecdir}/${PACKAGE}' COS_LIBM="$POW_LIBM" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5 $as_echo_n "checking whether // is distinct from /... " >&6; } if ${gl_cv_double_slash_root+:} false; then : $as_echo_n "(cached) " >&6 else if test x"$cross_compiling" = xyes ; then # When cross-compiling, there is no way to tell whether // is special # short of a list of hosts. However, the only known hosts to date # that have a distinct // are Apollo DomainOS (too old to port to), # Cygwin, and z/OS. If anyone knows of another system for which // has # special semantics and is distinct from /, please report it to # . case $host in *-cygwin | i370-ibm-openedition) gl_cv_double_slash_root=yes ;; *) # Be optimistic and assume that / and // are the same when we # don't know. gl_cv_double_slash_root='unknown, assuming no' ;; esac else set x `ls -di / // 2>/dev/null` if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then gl_cv_double_slash_root=no else gl_cv_double_slash_root=yes fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5 $as_echo "$gl_cv_double_slash_root" >&6; } if test "$gl_cv_double_slash_root" = yes; then $as_echo "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h fi $as_echo "#define HAVE_DUP2 1" >>confdefs.h if test $HAVE_DUP2 = 1; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5 $as_echo_n "checking whether dup2 works... " >&6; } if ${gl_cv_func_dup2_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 gl_cv_func_dup2_works="guessing no" ;; aix* | freebsd*) # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, # not EBADF. gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. gl_cv_func_dup2_works="guessing no" ;; *-android*) # implemented using dup3(), which fails if oldfd == newfd gl_cv_func_dup2_works="guessing no" ;; os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif int main () { int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) != 1) result |= 2; #ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif close (0); if (dup2 (0, 0) != -1) result |= 8; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, bad_fd) == -1 && errno != EBADF) result |= 16; /* Flush out some cygwin core dumps. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; dup2 (2, 255); dup2 (2, 256); /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ { int fd = open (".", O_RDONLY); if (fd == -1) result |= 64; else if (dup2 (fd, fd + 1) == -1) result |= 128; close (fd); } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_dup2_works=yes else gl_cv_func_dup2_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5 $as_echo "$gl_cv_func_dup2_works" >&6; } case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 for ac_func in setdtablesize do : ac_fn_c_check_func "$LINENO" "setdtablesize" "ac_cv_func_setdtablesize" if test "x$ac_cv_func_setdtablesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SETDTABLESIZE 1 _ACEOF fi done ;; esac fi if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext" fi GNULIB_DUP2=1 $as_echo "#define GNULIB_TEST_DUP2 1" >>confdefs.h GNULIB_ENVIRON=1 $as_echo "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 $as_echo_n "checking for error_at_line... " >&6; } if ${ac_cv_lib_error_at_line+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { error_at_line (0, 0, "", 0, "an error occurred"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_error_at_line=yes else ac_cv_lib_error_at_line=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5 $as_echo "$ac_cv_lib_error_at_line" >&6; } if test $ac_cv_lib_error_at_line = no; then gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext" : fi XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format" XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format" : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 $as_echo_n "checking whether fflush works on input streams... " >&6; } if ${gl_cv_func_fflush_stdin+:} false; then : $as_echo_n "(cached) " >&6 else echo hello world > conftest.txt if test "$cross_compiling" = yes; then : gl_cv_func_fflush_stdin=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif int main () { FILE *f = fopen ("conftest.txt", "r"); char buffer[10]; int fd; int c; if (f == NULL) return 1; fd = fileno (f); if (fd < 0 || fread (buffer, 1, 5, f) != 5) return 2; /* For deterministic results, ensure f read a bigger buffer. */ if (lseek (fd, 0, SEEK_CUR) == 5) return 3; /* POSIX requires fflush-fseek to set file offset of fd. This fails on BSD systems and on mingw. */ if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) return 4; if (lseek (fd, 0, SEEK_CUR) != 5) return 5; /* Verify behaviour of fflush after ungetc. See */ /* Verify behaviour of fflush after a backup ungetc. This fails on mingw. */ c = fgetc (f); ungetc (c, f); fflush (f); if (fgetc (f) != c) return 6; /* Verify behaviour of fflush after a non-backup ungetc. This fails on glibc 2.8 and on BSD systems. */ c = fgetc (f); ungetc ('@', f); fflush (f); if (fgetc (f) != c) return 7; return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fflush_stdin=yes else gl_cv_func_fflush_stdin=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm conftest.txt fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 $as_echo "$gl_cv_func_fflush_stdin" >&6; } case $gl_cv_func_fflush_stdin in yes) gl_func_fflush_stdin=1 ;; no) gl_func_fflush_stdin=0 ;; *) gl_func_fflush_stdin='(-1)' ;; esac cat >>confdefs.h <<_ACEOF #define FUNC_FFLUSH_STDIN $gl_func_fflush_stdin _ACEOF if test $gl_cv_func_fflush_stdin != yes; then REPLACE_FCLOSE=1 fi if test $REPLACE_CLOSE = 1; then REPLACE_FCLOSE=1 fi case "$host_os" in openedition) REPLACE_FCLOSE=1 ;; esac if test $REPLACE_FCLOSE = 1; then gl_LIBOBJS="$gl_LIBOBJS fclose.$ac_objext" fi GNULIB_FCLOSE=1 $as_echo "#define GNULIB_TEST_FCLOSE 1" >>confdefs.h if test $ac_cv_func_fcntl = no; then if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5 $as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; } if ${gl_cv_func_fcntl_f_dupfd_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case $host_os in aix* | cygwin* | haiku*) gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif int main () { int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; if (errno != EINVAL) result |= 2; if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; if (errno != EINVAL) result |= 8; /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ { int fd; fd = open (".", O_RDONLY); if (fd == -1) result |= 16; else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) result |= 32; close (fd); } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fcntl_f_dupfd_works=yes else gl_cv_func_fcntl_f_dupfd_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_works" >&5 $as_echo "$gl_cv_func_fcntl_f_dupfd_works" >&6; } case $gl_cv_func_fcntl_f_dupfd_works in *yes) ;; *) if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi $as_echo "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5 $as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; } if ${gl_cv_func_fcntl_f_dupfd_cloexec+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef F_DUPFD_CLOEXEC choke me #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __linux__ /* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace it to support the semantics on older kernels that failed with EINVAL. */ choke me #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_fcntl_f_dupfd_cloexec=yes else gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else gl_cv_func_fcntl_f_dupfd_cloexec=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_cloexec" >&5 $as_echo "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; } if test "$gl_cv_func_fcntl_f_dupfd_cloexec" != yes; then if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi fi fi if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext" fi GNULIB_FCNTL=1 $as_echo "#define GNULIB_TEST_FCNTL 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_fcntl_h='<'fcntl.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_fcntl_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'fcntl.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_fcntl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_fcntl_h gl_cv_next_fcntl_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fcntl_h" >&5 $as_echo "$gl_cv_next_fcntl_h" >&6; } fi NEXT_FCNTL_H=$gl_cv_next_fcntl_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'fcntl.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_fcntl_h fi NEXT_AS_FIRST_DIRECTIVE_FCNTL_H=$gl_next_as_first_directive for gl_func in fcntl openat; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done cat >>confdefs.h <<_ACEOF #define GNULIB_FD_SAFER_FLAG 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 $as_echo_n "checking whether fflush works on input streams... " >&6; } if ${gl_cv_func_fflush_stdin+:} false; then : $as_echo_n "(cached) " >&6 else echo hello world > conftest.txt if test "$cross_compiling" = yes; then : gl_cv_func_fflush_stdin=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif int main () { FILE *f = fopen ("conftest.txt", "r"); char buffer[10]; int fd; int c; if (f == NULL) return 1; fd = fileno (f); if (fd < 0 || fread (buffer, 1, 5, f) != 5) return 2; /* For deterministic results, ensure f read a bigger buffer. */ if (lseek (fd, 0, SEEK_CUR) == 5) return 3; /* POSIX requires fflush-fseek to set file offset of fd. This fails on BSD systems and on mingw. */ if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) return 4; if (lseek (fd, 0, SEEK_CUR) != 5) return 5; /* Verify behaviour of fflush after ungetc. See */ /* Verify behaviour of fflush after a backup ungetc. This fails on mingw. */ c = fgetc (f); ungetc (c, f); fflush (f); if (fgetc (f) != c) return 6; /* Verify behaviour of fflush after a non-backup ungetc. This fails on glibc 2.8 and on BSD systems. */ c = fgetc (f); ungetc ('@', f); fflush (f); if (fgetc (f) != c) return 7; return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fflush_stdin=yes else gl_cv_func_fflush_stdin=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm conftest.txt fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 $as_echo "$gl_cv_func_fflush_stdin" >&6; } case $gl_cv_func_fflush_stdin in yes) gl_func_fflush_stdin=1 ;; no) gl_func_fflush_stdin=0 ;; *) gl_func_fflush_stdin='(-1)' ;; esac cat >>confdefs.h <<_ACEOF #define FUNC_FFLUSH_STDIN $gl_func_fflush_stdin _ACEOF if test $gl_cv_func_fflush_stdin != yes; then REPLACE_FFLUSH=1 fi if test $REPLACE_FFLUSH = 1; then gl_LIBOBJS="$gl_LIBOBJS fflush.$ac_objext" : fi cat >>confdefs.h <<_ACEOF #define GNULIB_FFLUSH 1 _ACEOF GNULIB_FFLUSH=1 $as_echo "#define GNULIB_TEST_FFLUSH 1" >>confdefs.h FLOAT_H= REPLACE_FLOAT_LDBL=0 case "$host_os" in aix* | beos* | openbsd* | mirbsd* | irix*) FLOAT_H=float.h ;; freebsd*) case "$host_cpu" in i[34567]86 ) FLOAT_H=float.h ;; x86_64 ) # On x86_64 systems, the C compiler may still be generating # 32-bit code. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ || defined __x86_64__ || defined __amd64__ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : else FLOAT_H=float.h fi rm -f conftest* ;; esac ;; linux*) case "$host_cpu" in powerpc*) FLOAT_H=float.h ;; esac ;; esac case "$host_os" in aix* | freebsd* | linux*) if test -n "$FLOAT_H"; then REPLACE_FLOAT_LDBL=1 fi ;; esac REPLACE_ITOLD=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5 $as_echo_n "checking whether conversion from 'int' to 'long double' works... " >&6; } if ${gl_cv_func_itold_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host" in sparc*-*-linux*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __LP64__ || defined __arch64__ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_func_itold_works="guessing no" else gl_cv_func_itold_works="guessing yes" fi rm -f conftest* ;; *) gl_cv_func_itold_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int i = -1; volatile long double ld; int main () { ld += i * 1.0L; if (ld > 0) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_itold_works=yes else gl_cv_func_itold_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5 $as_echo "$gl_cv_func_itold_works" >&6; } case "$gl_cv_func_itold_works" in *no) REPLACE_ITOLD=1 FLOAT_H=float.h ;; esac if test -n "$FLOAT_H"; then if test $gl_cv_have_include_next = yes; then gl_cv_next_float_h='<'float.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_float_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'float.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_float_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_float_h gl_cv_next_float_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_float_h" >&5 $as_echo "$gl_cv_next_float_h" >&6; } fi NEXT_FLOAT_H=$gl_cv_next_float_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'float.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_float_h fi NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive fi if test -n "$FLOAT_H"; then GL_GENERATE_FLOAT_H_TRUE= GL_GENERATE_FLOAT_H_FALSE='#' else GL_GENERATE_FLOAT_H_TRUE='#' GL_GENERATE_FLOAT_H_FALSE= fi if test $REPLACE_FLOAT_LDBL = 1; then gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext" fi if test $REPLACE_ITOLD = 1; then gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext" fi saved_as_echo_n="$as_echo_n" as_echo_n=':' if ${gl_cv_func_floor_libm+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_func_floor_libm=? cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include double x; int main () { x = floor(x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_floor_libm= fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$gl_cv_func_floor_libm" = "?"; then save_LIBS="$LIBS" LIBS="$LIBS -lm" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include double x; int main () { x = floor(x); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_floor_libm="-lm" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$save_LIBS" fi fi as_echo_n="$saved_as_echo_n" FLOOR_LIBM="$gl_cv_func_floor_libm" if test "$FLOOR_LIBM" = "?"; then FLOOR_LIBM= fi if test $REPLACE_FLOOR = 1; then FLOOR_LIBM= fi if test $REPLACE_FLOOR = 1; then gl_LIBOBJS="$gl_LIBOBJS floor.$ac_objext" fi GNULIB_FLOOR=1 $as_echo "#define GNULIB_TEST_FLOOR 1" >>confdefs.h case "$host_os" in mingw* | pw*) REPLACE_FOPEN=1 gl_cv_func_fopen_slash="guessing no" ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fopen recognizes a trailing slash" >&5 $as_echo_n "checking whether fopen recognizes a trailing slash... " >&6; } if ${gl_cv_func_fopen_slash+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_fopen_slash="guessing no" ;; *) gl_cv_func_fopen_slash="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return fopen ("conftest.sl/", "w") != NULL; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fopen_slash=yes else gl_cv_func_fopen_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.sl fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fopen_slash" >&5 $as_echo "$gl_cv_func_fopen_slash" >&6; } ;; esac case "$gl_cv_func_fopen_slash" in *no) $as_echo "#define FOPEN_TRAILING_SLASH_BUG 1" >>confdefs.h REPLACE_FOPEN=1 ;; esac if test $REPLACE_FOPEN = 1; then gl_LIBOBJS="$gl_LIBOBJS fopen.$ac_objext" : fi GNULIB_FOPEN=1 $as_echo "#define GNULIB_TEST_FOPEN 1" >>confdefs.h ac_fn_c_check_decl "$LINENO" "fpurge" "ac_cv_have_decl_fpurge" "#include " if test "x$ac_cv_have_decl_fpurge" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FPURGE $ac_have_decl _ACEOF if test "x$ac_cv_func_fpurge" = xyes; then HAVE_FPURGE=1 # Detect BSD bug. Only cygwin 1.7 is known to be immune. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fpurge works" >&5 $as_echo_n "checking whether fpurge works... " >&6; } if ${gl_cv_func_fpurge_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_func_fpurge_works='guessing no' else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.txt", "w+"); if (!f) return 1; if (fputc ('a', f) != 'a') return 2; rewind (f); if (fgetc (f) != 'a') return 3; if (fgetc (f) != EOF) return 4; if (fpurge (f) != 0) return 5; if (putc ('b', f) != 'b') return 6; if (fclose (f) != 0) return 7; if ((f = fopen ("conftest.txt", "r")) == NULL) return 8; if (fgetc (f) != 'a') return 9; if (fgetc (f) != 'b') return 10; if (fgetc (f) != EOF) return 11; if (fclose (f) != 0) return 12; if (remove ("conftest.txt") != 0) return 13; return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fpurge_works=yes else gl_cv_func_fpurge_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fpurge_works" >&5 $as_echo "$gl_cv_func_fpurge_works" >&6; } if test "x$gl_cv_func_fpurge_works" != xyes; then REPLACE_FPURGE=1 fi else HAVE_FPURGE=0 fi if test "x$ac_cv_have_decl_fpurge" = xno; then HAVE_DECL_FPURGE=0 fi if test $HAVE_FPURGE = 0 || test $REPLACE_FPURGE = 1; then gl_LIBOBJS="$gl_LIBOBJS fpurge.$ac_objext" fi GNULIB_FPURGE=1 $as_echo "#define GNULIB_TEST_FPURGE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether free (NULL) is known to work" >&5 $as_echo_n "checking whether free (NULL) is known to work... " >&6; } if ${gl_cv_func_free+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in mingw*) gl_cv_func_free=yes ;; *) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if _POSIX_VERSION < 199009L && \ (defined unix || defined _unix || defined _unix_ \ || defined __unix || defined __unix__) #error "'free (NULL)' is not known to work" #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_free=yes else gl_cv_func_free=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_free" >&5 $as_echo "$gl_cv_func_free" >&6; } if test $gl_cv_func_free = no; then $as_echo "#define free rpl_free" >>confdefs.h fi if test $gl_cv_func_free = no; then gl_LIBOBJS="$gl_LIBOBJS free.$ac_objext" : fi if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then REPLACE_FSEEK=1 fi if test $REPLACE_FSEEK = 1; then gl_LIBOBJS="$gl_LIBOBJS fseek.$ac_objext" fi GNULIB_FSEEK=1 $as_echo "#define GNULIB_TEST_FSEEK 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5 $as_echo_n "checking for fseeko... " >&6; } if ${gl_cv_func_fseeko+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { fseeko (stdin, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_fseeko=yes else gl_cv_func_fseeko=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5 $as_echo "$gl_cv_func_fseeko" >&6; } if test $ac_cv_have_decl_fseeko = no; then HAVE_DECL_FSEEKO=0 fi if test $gl_cv_func_fseeko = no; then HAVE_FSEEKO=0 else if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_FSEEKO=1 fi if test $gl_cv_var_stdin_large_offset = no; then REPLACE_FSEEKO=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fflush works on input streams" >&5 $as_echo_n "checking whether fflush works on input streams... " >&6; } if ${gl_cv_func_fflush_stdin+:} false; then : $as_echo_n "(cached) " >&6 else echo hello world > conftest.txt if test "$cross_compiling" = yes; then : gl_cv_func_fflush_stdin=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif int main () { FILE *f = fopen ("conftest.txt", "r"); char buffer[10]; int fd; int c; if (f == NULL) return 1; fd = fileno (f); if (fd < 0 || fread (buffer, 1, 5, f) != 5) return 2; /* For deterministic results, ensure f read a bigger buffer. */ if (lseek (fd, 0, SEEK_CUR) == 5) return 3; /* POSIX requires fflush-fseek to set file offset of fd. This fails on BSD systems and on mingw. */ if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) return 4; if (lseek (fd, 0, SEEK_CUR) != 5) return 5; /* Verify behaviour of fflush after ungetc. See */ /* Verify behaviour of fflush after a backup ungetc. This fails on mingw. */ c = fgetc (f); ungetc (c, f); fflush (f); if (fgetc (f) != c) return 6; /* Verify behaviour of fflush after a non-backup ungetc. This fails on glibc 2.8 and on BSD systems. */ c = fgetc (f); ungetc ('@', f); fflush (f); if (fgetc (f) != c) return 7; return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fflush_stdin=yes else gl_cv_func_fflush_stdin=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm conftest.txt fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fflush_stdin" >&5 $as_echo "$gl_cv_func_fflush_stdin" >&6; } case $gl_cv_func_fflush_stdin in yes) gl_func_fflush_stdin=1 ;; no) gl_func_fflush_stdin=0 ;; *) gl_func_fflush_stdin='(-1)' ;; esac cat >>confdefs.h <<_ACEOF #define FUNC_FFLUSH_STDIN $gl_func_fflush_stdin _ACEOF if test $gl_cv_func_fflush_stdin != yes; then REPLACE_FSEEKO=1 fi fi if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then gl_LIBOBJS="$gl_LIBOBJS fseeko.$ac_objext" for ac_func in _fseeki64 do : ac_fn_c_check_func "$LINENO" "_fseeki64" "ac_cv_func__fseeki64" if test "x$ac_cv_func__fseeki64" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__FSEEKI64 1 _ACEOF fi done fi GNULIB_FSEEKO=1 $as_echo "#define GNULIB_TEST_FSEEKO 1" >>confdefs.h if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_FSTAT=1 fi if test $WINDOWS_64_BIT_ST_SIZE = 1; then REPLACE_FSTAT=1 fi if test $REPLACE_FSTAT = 1; then gl_LIBOBJS="$gl_LIBOBJS fstat.$ac_objext" : fi GNULIB_FSTAT=1 $as_echo "#define GNULIB_TEST_FSTAT 1" >>confdefs.h if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then REPLACE_FTELL=1 fi if test $REPLACE_FTELL = 1; then gl_LIBOBJS="$gl_LIBOBJS ftell.$ac_objext" fi GNULIB_FTELL=1 $as_echo "#define GNULIB_TEST_FTELL 1" >>confdefs.h if test $ac_cv_have_decl_ftello = no; then HAVE_DECL_FTELLO=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ftello" >&5 $as_echo_n "checking for ftello... " >&6; } if ${gl_cv_func_ftello+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { ftello (stdin); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_func_ftello=yes else gl_cv_func_ftello=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello" >&5 $as_echo "$gl_cv_func_ftello" >&6; } if test $gl_cv_func_ftello = no; then HAVE_FTELLO=0 else if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_FTELLO=1 fi if test $gl_cv_var_stdin_large_offset = no; then REPLACE_FTELLO=1 fi if test $REPLACE_FTELLO = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ftello works" >&5 $as_echo_n "checking whether ftello works... " >&6; } if ${gl_cv_func_ftello_works+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_ftello_works="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_ftello_works="guessing yes" ;; esac if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #define TESTFILE "conftest.tmp" int main (void) { FILE *fp; /* Create a file with some contents. */ fp = fopen (TESTFILE, "w"); if (fp == NULL) return 70; if (fwrite ("foogarsh", 1, 8, fp) < 8) return 71; if (fclose (fp)) return 72; /* The file's contents is now "foogarsh". */ /* Try writing after reading to EOF. */ fp = fopen (TESTFILE, "r+"); if (fp == NULL) return 73; if (fseek (fp, -1, SEEK_END)) return 74; if (!(getc (fp) == 'h')) return 1; if (!(getc (fp) == EOF)) return 2; if (!(ftell (fp) == 8)) return 3; if (!(ftell (fp) == 8)) return 4; if (!(putc ('!', fp) == '!')) return 5; if (!(ftell (fp) == 9)) return 6; if (!(fclose (fp) == 0)) return 7; fp = fopen (TESTFILE, "r"); if (fp == NULL) return 75; { char buf[10]; if (!(fread (buf, 1, 10, fp) == 9)) return 10; if (!(memcmp (buf, "foogarsh!", 9) == 0)) return 11; } if (!(fclose (fp) == 0)) return 12; /* The file's contents is now "foogarsh!". */ return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_ftello_works=yes else gl_cv_func_ftello_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ftello_works" >&5 $as_echo "$gl_cv_func_ftello_works" >&6; } case "$gl_cv_func_ftello_works" in *yes) ;; *) REPLACE_FTELLO=1 $as_echo "#define FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE 1" >>confdefs.h ;; esac fi fi if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then gl_LIBOBJS="$gl_LIBOBJS ftello.$ac_objext" for ac_func in _ftelli64 do : ac_fn_c_check_func "$LINENO" "_ftelli64" "ac_cv_func__ftelli64" if test "x$ac_cv_func__ftelli64" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__FTELLI64 1 _ACEOF fi done fi GNULIB_FTELLO=1 $as_echo "#define GNULIB_TEST_FTELLO 1" >>confdefs.h if test $ac_cv_func_getdtablesize = yes && test $ac_cv_have_decl_getdtablesize = yes; then # Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft limit # up to an unchangeable hard limit; all other platforms correctly # require setrlimit before getdtablesize() can report a larger value. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getdtablesize works" >&5 $as_echo_n "checking whether getdtablesize works... " >&6; } if ${gl_cv_func_getdtablesize_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows gl_cv_func_getdtablesize_works="guessing no" ;; *) gl_cv_func_getdtablesize_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int size = getdtablesize(); if (dup2 (0, getdtablesize()) != -1) return 1; if (size != getdtablesize()) return 2; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getdtablesize_works=yes else gl_cv_func_getdtablesize_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getdtablesize_works" >&5 $as_echo "$gl_cv_func_getdtablesize_works" >&6; } case "$gl_cv_func_getdtablesize_works" in *yes) ;; *) REPLACE_GETDTABLESIZE=1 ;; esac else HAVE_GETDTABLESIZE=0 fi if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then gl_LIBOBJS="$gl_LIBOBJS getdtablesize.$ac_objext" : fi GNULIB_GETDTABLESIZE=1 $as_echo "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h ac_found=0 ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include " if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : ac_found=1 fi ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include " if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : ac_found=1 fi ac_fn_c_check_decl "$LINENO" "__argv" "ac_cv_have_decl___argv" "#include " if test "x$ac_cv_have_decl___argv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL___ARGV $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : ac_found=1 fi # Incur the cost of this test only if none of the above worked. if test $ac_found = 0; then # On OpenBSD 5.1, using the global __progname variable appears to be # the only way to implement getprogname. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether __progname is defined in default libraries" >&5 $as_echo_n "checking whether __progname is defined in default libraries... " >&6; } if ${gl_cv_var___progname+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_var___progname= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern char *__progname; int main () { return *__progname; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_var___progname=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var___progname" >&5 $as_echo "$gl_cv_var___progname" >&6; } if test "$gl_cv_var___progname" = yes; then $as_echo "#define HAVE_VAR___PROGNAME 1" >>confdefs.h fi fi gl_gettimeofday_timezone=void if test $ac_cv_func_gettimeofday != yes; then HAVE_GETTIMEOFDAY=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday clobbers localtime buffer" >&5 $as_echo_n "checking whether gettimeofday clobbers localtime buffer... " >&6; } if ${gl_cv_func_gettimeofday_clobber+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : # When cross-compiling: case "$host_os" in # Guess all is fine on glibc systems. *-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;; # If we don't know, assume the worst. *) gl_cv_func_gettimeofday_clobber="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { time_t t = 0; struct tm *lt; struct tm saved_lt; struct timeval tv; lt = localtime (&t); saved_lt = *lt; gettimeofday (&tv, NULL); return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_gettimeofday_clobber=no else gl_cv_func_gettimeofday_clobber=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gettimeofday_clobber" >&5 $as_echo "$gl_cv_func_gettimeofday_clobber" >&6; } case "$gl_cv_func_gettimeofday_clobber" in *yes) REPLACE_GETTIMEOFDAY=1 REPLACE_GMTIME=1 REPLACE_LOCALTIME=1 $as_echo "#define GETTIMEOFDAY_CLOBBERS_LOCALTIME 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettimeofday with POSIX signature" >&5 $as_echo_n "checking for gettimeofday with POSIX signature... " >&6; } if ${gl_cv_func_gettimeofday_posix_signature+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include struct timeval c; int gettimeofday (struct timeval *restrict, void *restrict); int main () { /* glibc uses struct timezone * rather than the POSIX void * if _GNU_SOURCE is defined. However, since the only portable use of gettimeofday uses NULL as the second parameter, and since the glibc definition is actually more typesafe, it is not worth wrapping this to get a compliant signature. */ int (*f) (struct timeval *restrict, void *restrict) = gettimeofday; int x = f (&c, 0); return !(x | c.tv_sec | c.tv_usec); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_gettimeofday_posix_signature=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int gettimeofday (struct timeval *restrict, struct timezone *restrict); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_gettimeofday_posix_signature=almost else gl_cv_func_gettimeofday_posix_signature=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gettimeofday_posix_signature" >&5 $as_echo "$gl_cv_func_gettimeofday_posix_signature" >&6; } if test $gl_cv_func_gettimeofday_posix_signature = almost; then gl_gettimeofday_timezone='struct timezone' elif test $gl_cv_func_gettimeofday_posix_signature != yes; then REPLACE_GETTIMEOFDAY=1 fi if test $REPLACE_STRUCT_TIMEVAL = 1; then REPLACE_GETTIMEOFDAY=1 fi fi cat >>confdefs.h <<_ACEOF #define GETTIMEOFDAY_TIMEZONE $gl_gettimeofday_timezone _ACEOF if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext" for ac_header in sys/timeb.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default" if test "x$ac_cv_header_sys_timeb_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIMEB_H 1 _ACEOF fi done for ac_func in _ftime do : ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime" if test "x$ac_cv_func__ftime" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__FTIME 1 _ACEOF fi done fi GNULIB_GETTIMEOFDAY=1 $as_echo "#define GNULIB_TEST_GETTIMEOFDAY 1" >>confdefs.h # Autoconf 2.61a.99 and earlier don't support linking a file only # in VPATH builds. But since GNUmakefile is for maintainer use # only, it does not matter if we skip the link with older autoconf. # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH # builds, so use a shell variable to bypass this. GNUmakefile=GNUmakefile ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile" : GNULIB_ICONV=1 if test $gl_cv_have_include_next = yes; then gl_cv_next_iconv_h='<'iconv.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_iconv_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_iconv_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'iconv.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_iconv_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_iconv_h gl_cv_next_iconv_h='"'$gl_header'"' else gl_cv_next_iconv_h='<'iconv.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_iconv_h" >&5 $as_echo "$gl_cv_next_iconv_h" >&6; } fi NEXT_ICONV_H=$gl_cv_next_iconv_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'iconv.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_iconv_h fi NEXT_AS_FIRST_DIRECTIVE_ICONV_H=$gl_next_as_first_directive HAVE_IOCTL=1 if test "$ac_cv_header_winsock2_h" = yes; then HAVE_IOCTL=0 else for ac_func in ioctl do : ac_fn_c_check_func "$LINENO" "ioctl" "ac_cv_func_ioctl" if test "x$ac_cv_func_ioctl" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_IOCTL 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ioctl with POSIX signature" >&5 $as_echo_n "checking for ioctl with POSIX signature... " >&6; } if ${gl_cv_func_ioctl_posix_signature+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { extern #ifdef __cplusplus "C" #endif int ioctl (int, int, ...); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_ioctl_posix_signature=yes else gl_cv_func_ioctl_posix_signature=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ioctl_posix_signature" >&5 $as_echo "$gl_cv_func_ioctl_posix_signature" >&6; } if test $gl_cv_func_ioctl_posix_signature != yes; then REPLACE_IOCTL=1 fi fi if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then gl_LIBOBJS="$gl_LIBOBJS ioctl.$ac_objext" fi GNULIB_IOCTL=1 $as_echo "#define GNULIB_TEST_IOCTL 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_langinfo_h='<'langinfo.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_langinfo_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_langinfo_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'langinfo.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_langinfo_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_langinfo_h gl_cv_next_langinfo_h='"'$gl_header'"' else gl_cv_next_langinfo_h='<'langinfo.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_langinfo_h" >&5 $as_echo "$gl_cv_next_langinfo_h" >&6; } fi NEXT_LANGINFO_H=$gl_cv_next_langinfo_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'langinfo.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_langinfo_h fi NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H=$gl_next_as_first_directive HAVE_LANGINFO_CODESET=0 HAVE_LANGINFO_T_FMT_AMPM=0 HAVE_LANGINFO_ERA=0 HAVE_LANGINFO_YESEXPR=0 if test $ac_cv_header_langinfo_h = yes; then HAVE_LANGINFO_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5 $as_echo_n "checking whether langinfo.h defines CODESET... " >&6; } if ${gl_cv_header_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = CODESET; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_codeset=yes else gl_cv_header_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_codeset" >&5 $as_echo "$gl_cv_header_langinfo_codeset" >&6; } if test $gl_cv_header_langinfo_codeset = yes; then HAVE_LANGINFO_CODESET=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5 $as_echo_n "checking whether langinfo.h defines T_FMT_AMPM... " >&6; } if ${gl_cv_header_langinfo_t_fmt_ampm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = T_FMT_AMPM; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_t_fmt_ampm=yes else gl_cv_header_langinfo_t_fmt_ampm=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5 $as_echo "$gl_cv_header_langinfo_t_fmt_ampm" >&6; } if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then HAVE_LANGINFO_T_FMT_AMPM=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5 $as_echo_n "checking whether langinfo.h defines ERA... " >&6; } if ${gl_cv_header_langinfo_era+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = ERA; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_era=yes else gl_cv_header_langinfo_era=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_era" >&5 $as_echo "$gl_cv_header_langinfo_era" >&6; } if test $gl_cv_header_langinfo_era = yes; then HAVE_LANGINFO_ERA=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5 $as_echo_n "checking whether langinfo.h defines YESEXPR... " >&6; } if ${gl_cv_header_langinfo_yesexpr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int a = YESEXPR; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_langinfo_yesexpr=yes else gl_cv_header_langinfo_yesexpr=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5 $as_echo "$gl_cv_header_langinfo_yesexpr" >&6; } if test $gl_cv_header_langinfo_yesexpr = yes; then HAVE_LANGINFO_YESEXPR=1 fi else HAVE_LANGINFO_H=0 fi for gl_func in nl_langinfo; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $ac_cv_func_link = no; then HAVE_LINK=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether link obeys POSIX" >&5 $as_echo_n "checking whether link obeys POSIX... " >&6; } if ${gl_cv_func_link_works+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.a # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.a conftest.lnk fi if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_link_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_link_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int result = 0; if (!link ("conftest.a", "conftest.b/")) result |= 1; #if HAVE_LSTAT if (!link ("conftest.lnk/", "conftest.b")) result |= 2; if (rename ("conftest.a", "conftest.b")) result |= 4; if (!link ("conftest.b", "conftest.lnk")) result |= 8; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_link_works=yes else gl_cv_func_link_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.a conftest.b conftest.lnk fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_link_works" >&5 $as_echo "$gl_cv_func_link_works" >&6; } case "$gl_cv_func_link_works" in *yes) ;; *) REPLACE_LINK=1 ;; esac fi if test $HAVE_LINK = 0 || test $REPLACE_LINK = 1; then gl_LIBOBJS="$gl_LIBOBJS link.$ac_objext" fi GNULIB_LINK=1 $as_echo "#define GNULIB_TEST_LINK 1" >>confdefs.h LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\"" case "$host_os" in solaris*) $as_echo "#define _LCONV_C99 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5 $as_echo_n "checking whether locale.h conforms to POSIX:2001... " >&6; } if ${gl_cv_header_locale_h_posix2001+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int x = LC_MESSAGES; int y = sizeof (((struct lconv *) 0)->decimal_point); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_locale_h_posix2001=yes else gl_cv_header_locale_h_posix2001=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5 $as_echo "$gl_cv_header_locale_h_posix2001" >&6; } if test $ac_cv_header_xlocale_h = yes; then HAVE_XLOCALE_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5 $as_echo_n "checking whether locale.h defines locale_t... " >&6; } if ${gl_cv_header_locale_has_locale_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include locale_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_locale_has_locale_t=yes else gl_cv_header_locale_has_locale_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5 $as_echo "$gl_cv_header_locale_has_locale_t" >&6; } if test $gl_cv_header_locale_has_locale_t = yes; then gl_cv_header_locale_h_needs_xlocale_h=no else gl_cv_header_locale_h_needs_xlocale_h=yes fi else HAVE_XLOCALE_H=0 gl_cv_header_locale_h_needs_xlocale_h=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5 $as_echo_n "checking whether struct lconv is properly defined... " >&6; } if ${gl_cv_sys_struct_lconv_ok+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include struct lconv l; int x = sizeof (l.decimal_point); int y = sizeof (l.int_p_cs_precedes); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_lconv_ok=yes else gl_cv_sys_struct_lconv_ok=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5 $as_echo "$gl_cv_sys_struct_lconv_ok" >&6; } if test $gl_cv_sys_struct_lconv_ok = no; then REPLACE_STRUCT_LCONV=1 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_locale_h='<'locale.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_locale_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'locale.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_locale_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_locale_h gl_cv_next_locale_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5 $as_echo "$gl_cv_next_locale_h" >&6; } fi NEXT_LOCALE_H=$gl_cv_next_locale_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'locale.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_locale_h fi NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive for gl_func in setlocale duplocale; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Some systems provide declarations in a non-standard header. */ #if HAVE_XLOCALE_H # include #endif int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $REPLACE_STRUCT_LCONV = 1; then REPLACE_LOCALECONV=1 fi if test $REPLACE_LOCALECONV = 1; then gl_LIBOBJS="$gl_LIBOBJS localeconv.$ac_objext" ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include " if test "x$ac_cv_member_struct_lconv_decimal_point" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_LCONV_DECIMAL_POINT 1 _ACEOF fi fi GNULIB_LOCALECONV=1 $as_echo "#define GNULIB_TEST_LOCALECONV 1" >>confdefs.h if test "$gl_threads_api" = posix; then # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. has_rwlock=false ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include " if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then : has_rwlock=true $as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h fi if $has_rwlock; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthread_rwlock_rdlock prefers a writer to a reader" >&5 $as_echo_n "checking whether pthread_rwlock_rdlock prefers a writer to a reader... " >&6; } if ${gl_cv_pthread_rwlock_rdlock_prefer_writer+:} false; then : $as_echo_n "(cached) " >&6 else save_LIBS="$LIBS" LIBS="$LIBS $LIBMULTITHREAD" if test "$cross_compiling" = yes; then : gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #define SUCCEED() exit (0) #define FAILURE() exit (1) #define UNEXPECTED(n) (exit (10 + (n))) /* The main thread creates the waiting writer and the requesting reader threads in the default way; this guarantees that they have the same priority. We can reuse the main thread as first reader thread. */ static pthread_rwlock_t lock; static pthread_t reader1; static pthread_t writer; static pthread_t reader2; static pthread_t timer; /* Used to pass control from writer to reader2 and from reader2 to timer, as in a relay race. Passing control from one running thread to another running thread is most likely faster than to create the second thread. */ static pthread_mutex_t baton; static void * timer_func (void *ignored) { /* Step 13 (can be before or after step 12): The timer thread takes the baton, then waits a moment to make sure it can tell whether the second reader thread is blocked at step 12. */ if (pthread_mutex_lock (&baton)) UNEXPECTED (13); usleep (100000); /* By the time we get here, it's clear that the second reader thread is blocked at step 12. This is the desired behaviour. */ SUCCEED (); } static void * reader2_func (void *ignored) { int err; /* Step 8 (can be before or after step 7): The second reader thread takes the baton, then waits a moment to make sure the writer thread has reached step 7. */ if (pthread_mutex_lock (&baton)) UNEXPECTED (8); usleep (100000); /* Step 9: The second reader thread requests the lock. */ err = pthread_rwlock_tryrdlock (&lock); if (err == 0) FAILURE (); else if (err != EBUSY) UNEXPECTED (9); /* Step 10: Launch a timer, to test whether the next call blocks. */ if (pthread_create (&timer, NULL, timer_func, NULL)) UNEXPECTED (10); /* Step 11: Release the baton. */ if (pthread_mutex_unlock (&baton)) UNEXPECTED (11); /* Step 12: The second reader thread requests the lock. */ err = pthread_rwlock_rdlock (&lock); if (err == 0) FAILURE (); else UNEXPECTED (12); } static void * writer_func (void *ignored) { /* Step 4: Take the baton, so that the second reader thread does not go ahead too early. */ if (pthread_mutex_lock (&baton)) UNEXPECTED (4); /* Step 5: Create the second reader thread. */ if (pthread_create (&reader2, NULL, reader2_func, NULL)) UNEXPECTED (5); /* Step 6: Release the baton. */ if (pthread_mutex_unlock (&baton)) UNEXPECTED (6); /* Step 7: The writer thread requests the lock. */ if (pthread_rwlock_wrlock (&lock)) UNEXPECTED (7); return NULL; } int main () { reader1 = pthread_self (); /* Step 1: The main thread initializes the lock and the baton. */ if (pthread_rwlock_init (&lock, NULL)) UNEXPECTED (1); if (pthread_mutex_init (&baton, NULL)) UNEXPECTED (1); /* Step 2: The main thread acquires the lock as a reader. */ if (pthread_rwlock_rdlock (&lock)) UNEXPECTED (2); /* Step 3: Create the writer thread. */ if (pthread_create (&writer, NULL, writer_func, NULL)) UNEXPECTED (3); /* Job done. Go to sleep. */ for (;;) { sleep (1); } } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_pthread_rwlock_rdlock_prefer_writer=yes else gl_cv_pthread_rwlock_rdlock_prefer_writer=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS="$save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pthread_rwlock_rdlock_prefer_writer" >&5 $as_echo "$gl_cv_pthread_rwlock_rdlock_prefer_writer" >&6; } case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in *yes) $as_echo "#define HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER 1" >>confdefs.h ;; esac fi # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if __FreeBSD__ == 4 error "No, in FreeBSD 4.0 recursive mutexes actually don't work." #elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." #else int x = (int)PTHREAD_MUTEX_RECURSIVE; return !x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_PTHREAD_MUTEX_RECURSIVE 1" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi : cat >>confdefs.h <<_ACEOF #define GNULIB_LOCK 1 _ACEOF if test $REPLACE_LOG = 1; then gl_LIBOBJS="$gl_LIBOBJS log.$ac_objext" fi GNULIB_LOG=1 $as_echo "#define GNULIB_TEST_LOG 1" >>confdefs.h LOG10_LIBM="$POW_LIBM" save_LIBS="$LIBS" LIBS="$LIBS $LOG10_LIBM" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether log10 works" >&5 $as_echo_n "checking whether log10 works... " >&6; } if ${gl_cv_func_log10_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in osf*) gl_cv_func_log10_works="guessing no";; *) gl_cv_func_log10_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include volatile double x; double y; int main () { x = -0.0; y = log10 (x); if (!(y + y == y)) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_log10_works=yes else gl_cv_func_log10_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_log10_works" >&5 $as_echo "$gl_cv_func_log10_works" >&6; } LIBS="$save_LIBS" case "$gl_cv_func_log10_works" in *yes) ;; *) REPLACE_LOG10=1 ;; esac if test $REPLACE_LOG10 = 1; then gl_LIBOBJS="$gl_LIBOBJS log10.$ac_objext" fi GNULIB_LOG10=1 $as_echo "#define GNULIB_TEST_LOG10 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lseek detects pipes" >&5 $as_echo_n "checking whether lseek detects pipes... " >&6; } if ${gl_cv_func_lseek_pipe+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in mingw*) gl_cv_func_lseek_pipe=no ;; *) if test $cross_compiling = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for off_t */ #include /* for SEEK_CUR */ #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif int main () { /* Exit with success only if stdin is seekable. */ return lseek (0, (off_t)0, SEEK_CUR) < 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if test -s conftest$ac_exeext \ && ./conftest$ac_exeext < conftest.$ac_ext \ && test 1 = "`echo hi \ | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then gl_cv_func_lseek_pipe=yes else gl_cv_func_lseek_pipe=no fi else gl_cv_func_lseek_pipe=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __BEOS__ /* BeOS mistakenly return 0 when trying to seek on pipes. */ Choke me. #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_lseek_pipe=yes else gl_cv_func_lseek_pipe=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lseek_pipe" >&5 $as_echo "$gl_cv_func_lseek_pipe" >&6; } if test $gl_cv_func_lseek_pipe = no; then REPLACE_LSEEK=1 $as_echo "#define LSEEK_PIPE_BROKEN 1" >>confdefs.h fi if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_LSEEK=1 fi if test $REPLACE_LSEEK = 1; then gl_LIBOBJS="$gl_LIBOBJS lseek.$ac_objext" fi GNULIB_LSEEK=1 $as_echo "#define GNULIB_TEST_LSEEK 1" >>confdefs.h if test $ac_cv_func_lstat = yes; then case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *no) REPLACE_LSTAT=1 ;; esac else HAVE_LSTAT=0 fi if test $REPLACE_LSTAT = 1; then gl_LIBOBJS="$gl_LIBOBJS lstat.$ac_objext" : fi GNULIB_LSTAT=1 $as_echo "#define GNULIB_TEST_LSTAT 1" >>confdefs.h for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_malloc_0_nonnull=no ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { char *p = malloc (0); int result = !p; free (p); return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : $as_echo "#define HAVE_MALLOC_GNU 1" >>confdefs.h else $as_echo "#define HAVE_MALLOC_GNU 0" >>confdefs.h REPLACE_MALLOC=1 fi if test $REPLACE_MALLOC = 1; then gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" fi cat >>confdefs.h <<_ACEOF #define GNULIB_MALLOC_GNU 1 _ACEOF if test $gl_cv_func_malloc_posix = yes; then $as_echo "#define HAVE_MALLOC_POSIX 1" >>confdefs.h else REPLACE_MALLOC=1 fi if test $REPLACE_MALLOC = 1; then gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" fi GNULIB_MALLOC_POSIX=1 $as_echo "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_math_h='<'math.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_math_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_math_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'math.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_math_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_math_h gl_cv_next_math_h='"'$gl_header'"' else gl_cv_next_math_h='<'math.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_math_h" >&5 $as_echo "$gl_cv_next_math_h" >&6; } fi NEXT_MATH_H=$gl_cv_next_math_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'math.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_math_h fi NEXT_AS_FIRST_DIRECTIVE_MATH_H=$gl_next_as_first_directive { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NAN macro works" >&5 $as_echo_n "checking whether NAN macro works... " >&6; } if ${gl_cv_header_math_nan_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { /* Solaris 10 has a broken definition of NAN. Other platforms fail to provide NAN, or provide it only in C99 mode; this test only needs to fail when NAN is provided but wrong. */ float f = 1.0f; #ifdef NAN f = NAN; #endif return f == 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_math_nan_works=yes else gl_cv_header_math_nan_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_math_nan_works" >&5 $as_echo "$gl_cv_header_math_nan_works" >&6; } if test $gl_cv_header_math_nan_works = no; then REPLACE_NAN=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether HUGE_VAL works" >&5 $as_echo_n "checking whether HUGE_VAL works... " >&6; } if ${gl_cv_header_math_huge_val_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { /* Solaris 10 has a broken definition of HUGE_VAL. */ double d = HUGE_VAL; return d == 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_math_huge_val_works=yes else gl_cv_header_math_huge_val_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_math_huge_val_works" >&5 $as_echo "$gl_cv_header_math_huge_val_works" >&6; } if test $gl_cv_header_math_huge_val_works = no; then REPLACE_HUGE_VAL=1 fi for gl_func in acosf acosl asinf asinl atanf atanl cbrt cbrtf cbrtl ceilf ceill copysign copysignf copysignl cosf cosl coshf expf expl exp2 exp2f exp2l expm1 expm1f expm1l fabsf fabsl floorf floorl fma fmaf fmal fmod fmodf fmodl frexpf frexpl hypotf hypotl ilogb ilogbf ilogbl ldexpf ldexpl log logf logl log10 log10f log10l log1p log1pf log1pl log2 log2f log2l logb logbf logbl modf modff modfl powf remainder remainderf remainderl rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl tanf tanl tanhf trunc truncf truncl; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac if test $LOCALE_JA != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "BĵŸer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_incomplete_state=yes else gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 $as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "BĵŸer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_sanitycheck=yes else gl_cv_func_mbrtowc_sanitycheck=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi if test $ac_cv_func_mbrtowc = no; then HAVE_MBRTOWC=0 ac_fn_c_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" " /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include " if test "x$ac_cv_have_decl_mbrtowc" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_MBRTOWC $ac_have_decl _ACEOF if test $ac_cv_have_decl_mbrtowc = yes; then REPLACE_MBRTOWC=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBRTOWC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5 $as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; } if ${gl_cv_func_mbrtowc_null_arg1+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;; esac if test $LOCALE_FR_UTF8 != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "\303\237er"; mbstate_t state; wchar_t wc; size_t ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 5, &state); if (ret != 2) result |= 1; if (!mbsinit (&state)) result |= 2; memset (&state, '\0', sizeof (mbstate_t)); ret = mbrtowc (NULL, input, 5, &state); if (ret != 2) /* Solaris 7 fails here: ret is -1. */ result |= 4; if (!mbsinit (&state)) result |= 8; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_null_arg1=yes else gl_cv_func_mbrtowc_null_arg1=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5 $as_echo "$gl_cv_func_mbrtowc_null_arg1" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5 $as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; } if ${gl_cv_func_mbrtowc_null_arg2+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on OSF/1. osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;; esac if test $LOCALE_FR_UTF8 != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { mbstate_t state; wchar_t wc; int ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; mbrtowc (&wc, NULL, 5, &state); /* Check that wc was not modified. */ if (wc != (wchar_t) 0xBADFACE) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_null_arg2=yes else gl_cv_func_mbrtowc_null_arg2=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5 $as_echo "$gl_cv_func_mbrtowc_null_arg2" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5 $as_echo_n "checking whether mbrtowc has a correct return value... " >&6; } if ${gl_cv_func_mbrtowc_retval+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on HP-UX, Solaris, native Windows. hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_retval="guessing yes" ;; esac if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { int result = 0; int found_some_locale = 0; /* This fails on Solaris. */ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "B\303\274\303\237er"; /* "BĵŸer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 1) result |= 1; } found_some_locale = 1; } /* This fails on HP-UX 11.11. */ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { char input[] = "B\217\253\344\217\251\316er"; /* "BĵŸer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 2) result |= 2; } found_some_locale = 1; } /* This fails on native Windows. */ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) { char input[] = "<\223\372\226\173\214\352>"; /* "<ĉ—ĉœĴèŞž>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 4; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) { char input[] = "<\244\351\245\273\273\171>"; /* "<ĉ—ĉœĴèŞž>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 8; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_China.936") != NULL) { char input[] = "<\310\325\261\276\325\132>"; /* "<ĉ—ĉœĴèŞž>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 16; } found_some_locale = 1; } return (found_some_locale ? result : 77); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_retval=yes else if test $? != 77; then gl_cv_func_mbrtowc_retval=no fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5 $as_echo "$gl_cv_func_mbrtowc_retval" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5 $as_echo_n "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; } if ${gl_cv_func_mbrtowc_nul_retval+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris 8 and 9. solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { /* This fails on Solaris 8 and 9. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "", 1, &state) != 0) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_nul_retval=yes else gl_cv_func_mbrtowc_nul_retval=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5 $as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works on empty input" >&5 $as_echo_n "checking whether mbrtowc works on empty input... " >&6; } if ${gl_cv_func_mbrtowc_empty_input+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX and glibc systems. aix* | *-gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; esac if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include static wchar_t wc; static mbstate_t mbs; int main (void) { return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_empty_input=yes else gl_cv_func_mbrtowc_empty_input=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_empty_input" >&5 $as_echo "$gl_cv_func_mbrtowc_empty_input" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C locale is free of encoding errors" >&5 $as_echo_n "checking whether the C locale is free of encoding errors... " >&6; } if ${gl_cv_C_locale_sans_EILSEQ+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_C_locale_sans_EILSEQ="guessing no" if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int i; char *locale = setlocale (LC_ALL, "C"); if (! locale) return 2; for (i = CHAR_MIN; i <= CHAR_MAX; i++) { char c = i; wchar_t wc; mbstate_t mbs = { 0, }; size_t ss = mbrtowc (&wc, &c, 1, &mbs); if (1 < ss) return 3; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_C_locale_sans_EILSEQ=yes else gl_cv_C_locale_sans_EILSEQ=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_C_locale_sans_EILSEQ" >&5 $as_echo "$gl_cv_C_locale_sans_EILSEQ" >&6; } case "$gl_cv_func_mbrtowc_null_arg1" in *yes) ;; *) $as_echo "#define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_null_arg2" in *yes) ;; *) $as_echo "#define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_retval" in *yes) ;; *) $as_echo "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_nul_retval" in *yes) ;; *) $as_echo "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_empty_input" in *yes) ;; *) $as_echo "#define MBRTOWC_EMPTY_INPUT_BUG 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac case $gl_cv_C_locale_sans_EILSEQ in *yes) ;; *) $as_echo "#define C_LOCALE_MAYBE_EILSEQ 1" >>confdefs.h REPLACE_MBRTOWC=1 ;; esac fi fi if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext" : fi GNULIB_MBRTOWC=1 $as_echo "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac if test $LOCALE_JA != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "BĵŸer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_incomplete_state=yes else gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 $as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "BĵŸer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_sanitycheck=yes else gl_cv_func_mbrtowc_sanitycheck=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi if test $ac_cv_func_mbsinit = no; then HAVE_MBSINIT=0 ac_fn_c_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" " /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include " if test "x$ac_cv_have_decl_mbsinit" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_MBSINIT $ac_have_decl _ACEOF if test $ac_cv_have_decl_mbsinit = yes; then REPLACE_MBSINIT=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBSINIT=1 else case "$host_os" in mingw*) REPLACE_MBSINIT=1 ;; esac fi fi if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext" : fi GNULIB_MBSINIT=1 $as_echo "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h if false; then REPLACE_MBTOWC=1 fi if test $REPLACE_MBTOWC = 1; then gl_LIBOBJS="$gl_LIBOBJS mbtowc.$ac_objext" : fi GNULIB_MBTOWC=1 $as_echo "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext" for ac_header in bp-sym.h do : ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default" if test "x$ac_cv_header_bp_sym_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BP_SYM_H 1 _ACEOF fi done fi GNULIB_MEMCHR=1 $as_echo "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h if test $ac_cv_func_mkostemp != yes; then HAVE_MKOSTEMP=0 fi if test $HAVE_MKOSTEMP = 0; then gl_LIBOBJS="$gl_LIBOBJS mkostemp.$ac_objext" fi cat >>confdefs.h <<_ACEOF #define GNULIB_MKOSTEMP 1 _ACEOF GNULIB_MKOSTEMP=1 $as_echo "#define GNULIB_TEST_MKOSTEMP 1" >>confdefs.h if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext" fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext" fi if test $ac_cv_func_nl_langinfo = yes; then # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether YESEXPR works" >&5 $as_echo_n "checking whether YESEXPR works... " >&6; } if ${gl_cv_func_nl_langinfo_yesexpr_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess no on irix systems. irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";; # Guess yes elsewhere. *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !*nl_langinfo(YESEXPR); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_nl_langinfo_yesexpr_works=yes else gl_cv_func_nl_langinfo_yesexpr_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nl_langinfo_yesexpr_works" >&5 $as_echo "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; } case $gl_cv_func_nl_langinfo_yesexpr_works in *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;; *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;; esac cat >>confdefs.h <<_ACEOF #define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS _ACEOF if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then : else REPLACE_NL_LANGINFO=1 $as_echo "#define REPLACE_NL_LANGINFO 1" >>confdefs.h fi else HAVE_NL_LANGINFO=0 fi if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext" fi GNULIB_NL_LANGINFO=1 $as_echo "#define GNULIB_TEST_NL_LANGINFO 1" >>confdefs.h case "$host_os" in mingw* | pw*) REPLACE_OPEN=1 ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5 $as_echo_n "checking whether open recognizes a trailing slash... " >&6; } if ${gl_cv_func_open_slash+:} false; then : $as_echo_n "(cached) " >&6 else # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then touch conftest.tmp ln -s conftest.tmp conftest.lnk fi if test "$cross_compiling" = yes; then : case "$host_os" in freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #endif int main () { int result = 0; #if HAVE_LSTAT if (open ("conftest.lnk/", O_RDONLY) != -1) result |= 1; #endif if (open ("conftest.sl/", O_CREAT, 0600) >= 0) result |= 2; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_open_slash=yes else gl_cv_func_open_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.sl conftest.tmp conftest.lnk fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5 $as_echo "$gl_cv_func_open_slash" >&6; } case "$gl_cv_func_open_slash" in *no) $as_echo "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h REPLACE_OPEN=1 ;; esac ;; esac if test $REPLACE_OPEN = 1; then gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext" : fi GNULIB_OPEN=1 $as_echo "#define GNULIB_TEST_OPEN 1" >>confdefs.h if test "$ERRNO_H:$REPLACE_STRERROR_0" != :0; then REPLACE_PERROR=1 fi case ${gl_cv_func_strerror_r_works-unset} in unset|*yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether perror matches strerror" >&5 $as_echo_n "checking whether perror matches strerror... " >&6; } if ${gl_cv_func_perror_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_func_perror_works="guessing no" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { char *str = strerror (-1); if (!getenv("CONFTEST_OUTPUT")) return 0; if (!str) str = ""; puts (str); errno = -1; perror (""); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : if CONFTEST_OUTPUT=1 ./conftest$EXEEXT >conftest.txt1 2>conftest.txt2 \ && cmp conftest.txt1 conftest.txt2 >/dev/null; then gl_cv_func_perror_works=yes else gl_cv_func_perror_works=no fi rm -rf conftest.txt1 conftest.txt2 else gl_cv_func_perror_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_perror_works" >&5 $as_echo "$gl_cv_func_perror_works" >&6; } if test "$gl_cv_func_perror_works" != yes; then REPLACE_PERROR=1 fi ;; *) REPLACE_PERROR=1 ;; esac if test $REPLACE_PERROR = 1; then gl_LIBOBJS="$gl_LIBOBJS perror.$ac_objext" fi GNULIB_PERROR=1 $as_echo "#define GNULIB_TEST_PERROR 1" >>confdefs.h if test $ac_cv_func_pipe2 != yes; then HAVE_PIPE2=0 fi GNULIB_PIPE2=1 $as_echo "#define GNULIB_TEST_PIPE2 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define GNULIB_PIPE2_SAFER 1 _ACEOF if test $REPLACE_POSIX_SPAWN = 1; then REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_spawn_file_actions_addclose works" >&5 $as_echo_n "checking whether posix_spawn_file_actions_addclose works... " >&6; } if ${gl_cv_func_posix_spawn_file_actions_addclose_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : # Guess no on Solaris, yes otherwise. case "$host_os" in solaris*) gl_cv_func_posix_spawn_file_actions_addclose_works="guessing no";; *) gl_cv_func_posix_spawn_file_actions_addclose_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { posix_spawn_file_actions_t actions; if (posix_spawn_file_actions_init (&actions) != 0) return 1; if (posix_spawn_file_actions_addclose (&actions, 10000000) == 0) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_posix_spawn_file_actions_addclose_works=yes else gl_cv_func_posix_spawn_file_actions_addclose_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_posix_spawn_file_actions_addclose_works" >&5 $as_echo "$gl_cv_func_posix_spawn_file_actions_addclose_works" >&6; } case "$gl_cv_func_posix_spawn_file_actions_addclose_works" in *yes) ;; *) REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE=1 ;; esac fi if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = 1; then gl_LIBOBJS="$gl_LIBOBJS spawn_faction_addclose.$ac_objext" fi GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE=1 $as_echo "#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE 1" >>confdefs.h if test $REPLACE_POSIX_SPAWN = 1; then REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_spawn_file_actions_adddup2 works" >&5 $as_echo_n "checking whether posix_spawn_file_actions_adddup2 works... " >&6; } if ${gl_cv_func_posix_spawn_file_actions_adddup2_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : # Guess no on Solaris, yes otherwise. case "$host_os" in solaris*) gl_cv_func_posix_spawn_file_actions_adddup2_works="guessing no";; *) gl_cv_func_posix_spawn_file_actions_adddup2_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { posix_spawn_file_actions_t actions; if (posix_spawn_file_actions_init (&actions) != 0) return 1; if (posix_spawn_file_actions_adddup2 (&actions, 10000000, 2) == 0) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_posix_spawn_file_actions_adddup2_works=yes else gl_cv_func_posix_spawn_file_actions_adddup2_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_posix_spawn_file_actions_adddup2_works" >&5 $as_echo "$gl_cv_func_posix_spawn_file_actions_adddup2_works" >&6; } case "$gl_cv_func_posix_spawn_file_actions_adddup2_works" in *yes) ;; *) REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2=1 ;; esac fi if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = 1; then gl_LIBOBJS="$gl_LIBOBJS spawn_faction_adddup2.$ac_objext" fi GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2=1 $as_echo "#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 1" >>confdefs.h if test $REPLACE_POSIX_SPAWN = 1; then REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_spawn_file_actions_addopen works" >&5 $as_echo_n "checking whether posix_spawn_file_actions_addopen works... " >&6; } if ${gl_cv_func_posix_spawn_file_actions_addopen_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : # Guess no on Solaris, yes otherwise. case "$host_os" in solaris*) gl_cv_func_posix_spawn_file_actions_addopen_works="guessing no";; *) gl_cv_func_posix_spawn_file_actions_addopen_works="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { posix_spawn_file_actions_t actions; if (posix_spawn_file_actions_init (&actions) != 0) return 1; if (posix_spawn_file_actions_addopen (&actions, 10000000, "foo", 0, O_RDONLY) == 0) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_posix_spawn_file_actions_addopen_works=yes else gl_cv_func_posix_spawn_file_actions_addopen_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_posix_spawn_file_actions_addopen_works" >&5 $as_echo "$gl_cv_func_posix_spawn_file_actions_addopen_works" >&6; } case "$gl_cv_func_posix_spawn_file_actions_addopen_works" in *yes) ;; *) REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN=1 ;; esac fi if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = 1; then gl_LIBOBJS="$gl_LIBOBJS spawn_faction_addopen.$ac_objext" fi GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN=1 $as_echo "#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN 1" >>confdefs.h if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then gl_LIBOBJS="$gl_LIBOBJS spawn_faction_destroy.$ac_objext" fi GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY=1 $as_echo "#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_DESTROY 1" >>confdefs.h if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then gl_LIBOBJS="$gl_LIBOBJS spawn_faction_init.$ac_objext" fi GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT=1 $as_echo "#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_INIT 1" >>confdefs.h if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then gl_LIBOBJS="$gl_LIBOBJS spawnattr_destroy.$ac_objext" fi GNULIB_POSIX_SPAWNATTR_DESTROY=1 $as_echo "#define GNULIB_TEST_POSIX_SPAWNATTR_DESTROY 1" >>confdefs.h if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then gl_LIBOBJS="$gl_LIBOBJS spawnattr_init.$ac_objext" fi GNULIB_POSIX_SPAWNATTR_INIT=1 $as_echo "#define GNULIB_TEST_POSIX_SPAWNATTR_INIT 1" >>confdefs.h if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then gl_LIBOBJS="$gl_LIBOBJS spawnattr_setflags.$ac_objext" fi GNULIB_POSIX_SPAWNATTR_SETFLAGS=1 $as_echo "#define GNULIB_TEST_POSIX_SPAWNATTR_SETFLAGS 1" >>confdefs.h if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then gl_LIBOBJS="$gl_LIBOBJS spawnattr_setsigmask.$ac_objext" fi GNULIB_POSIX_SPAWNATTR_SETSIGMASK=1 $as_echo "#define GNULIB_TEST_POSIX_SPAWNATTR_SETSIGMASK 1" >>confdefs.h if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then gl_LIBOBJS="$gl_LIBOBJS spawnp.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS spawni.$ac_objext" for ac_header in paths.h do : ac_fn_c_check_header_mongrel "$LINENO" "paths.h" "ac_cv_header_paths_h" "$ac_includes_default" if test "x$ac_cv_header_paths_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PATHS_H 1 _ACEOF fi done for ac_func in confstr sched_setparam sched_setscheduler setegid seteuid vfork do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done fi GNULIB_POSIX_SPAWNP=1 $as_echo "#define GNULIB_TEST_POSIX_SPAWNP 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for putenv compatible with GNU and SVID" >&5 $as_echo_n "checking for putenv compatible with GNU and SVID... " >&6; } if ${gl_cv_func_svid_putenv+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_svid_putenv="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_svid_putenv="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Put it in env. */ if (putenv ("CONFTEST_putenv=val")) return 1; /* Try to remove it. */ if (putenv ("CONFTEST_putenv")) return 2; /* Make sure it was deleted. */ if (getenv ("CONFTEST_putenv") != 0) return 3; return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_svid_putenv=yes else gl_cv_func_svid_putenv=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_svid_putenv" >&5 $as_echo "$gl_cv_func_svid_putenv" >&6; } case "$gl_cv_func_svid_putenv" in *yes) ;; *) REPLACE_PUTENV=1 ;; esac if test $REPLACE_PUTENV = 1; then gl_LIBOBJS="$gl_LIBOBJS putenv.$ac_objext" ac_fn_c_check_decl "$LINENO" "_putenv" "ac_cv_have_decl__putenv" "$ac_includes_default" if test "x$ac_cv_have_decl__putenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__PUTENV $ac_have_decl _ACEOF fi GNULIB_PUTENV=1 $as_echo "#define GNULIB_TEST_PUTENV 1" >>confdefs.h for ac_func in raise do : ac_fn_c_check_func "$LINENO" "raise" "ac_cv_func_raise" if test "x$ac_cv_func_raise" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_RAISE 1 _ACEOF fi done if test $ac_cv_func_raise = no; then HAVE_RAISE=0 else if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_RAISE=1 fi if test $gl_cv_type_sigset_t = yes; then ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask" if test "x$ac_cv_func_sigprocmask" = xyes; then : gl_cv_func_sigprocmask=1 fi fi if test -z "$gl_cv_func_sigprocmask"; then HAVE_POSIX_SIGNALBLOCKING=0 fi if test $HAVE_POSIX_SIGNALBLOCKING = 0; then : fi fi if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then gl_LIBOBJS="$gl_LIBOBJS raise.$ac_objext" : fi GNULIB_RAISE=1 $as_echo "#define GNULIB_TEST_RAISE 1" >>confdefs.h for ac_func in rawmemchr do : ac_fn_c_check_func "$LINENO" "rawmemchr" "ac_cv_func_rawmemchr" if test "x$ac_cv_func_rawmemchr" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_RAWMEMCHR 1 _ACEOF fi done if test $ac_cv_func_rawmemchr = no; then HAVE_RAWMEMCHR=0 fi if test $HAVE_RAWMEMCHR = 0; then gl_LIBOBJS="$gl_LIBOBJS rawmemchr.$ac_objext" : fi GNULIB_RAWMEMCHR=1 $as_echo "#define GNULIB_TEST_RAWMEMCHR 1" >>confdefs.h for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible realloc" >&5 $as_echo_n "checking for GNU libc compatible realloc... " >&6; } if ${ac_cv_func_realloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_realloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_realloc_0_nonnull=no ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *realloc (); #endif int main () { char *p = realloc (0, 0); int result = !p; free (p); return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_realloc_0_nonnull=yes else ac_cv_func_realloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5 $as_echo "$ac_cv_func_realloc_0_nonnull" >&6; } if test $ac_cv_func_realloc_0_nonnull = yes; then : $as_echo "#define HAVE_REALLOC_GNU 1" >>confdefs.h else $as_echo "#define HAVE_REALLOC_GNU 0" >>confdefs.h REPLACE_REALLOC=1 fi if test $REPLACE_REALLOC = 1; then gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext" fi cat >>confdefs.h <<_ACEOF #define GNULIB_REALLOC_GNU 1 _ACEOF if test $gl_cv_func_malloc_posix = yes; then $as_echo "#define HAVE_REALLOC_POSIX 1" >>confdefs.h else REPLACE_REALLOC=1 fi if test $REPLACE_REALLOC = 1; then gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext" fi GNULIB_REALLOC_POSIX=1 $as_echo "#define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h # Check whether --with-included-regex was given. if test "${with_included_regex+set}" = set; then : withval=$with_included_regex; fi case $with_included_regex in #( yes|no) ac_use_included_regex=$with_included_regex ;; '') # If the system regex support is good enough that it passes the # following run test, then default to *not* using the included regex.c. # If cross compiling, assume the test would fail and use the included # regex.c. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working re_compile_pattern" >&5 $as_echo_n "checking for working re_compile_pattern... " >&6; } if ${gl_cv_func_re_compile_pattern_working+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_func_re_compile_pattern_working=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #if defined M_CHECK_ACTION || HAVE_DECL_ALARM # include # include #endif #if HAVE_MALLOC_H # include #endif #ifdef M_CHECK_ACTION /* Exit with distinguishable exit code. */ static void sigabrt_no_core (int sig) { raise (SIGTERM); } #endif int main () { int result = 0; static struct re_pattern_buffer regex; unsigned char folded_chars[UCHAR_MAX + 1]; int i; const char *s; struct re_registers regs; /* Some builds of glibc go into an infinite loop on this test. Use alarm to force death, and mallopt to avoid malloc recursion in diagnosing the corrupted heap. */ #if HAVE_DECL_ALARM signal (SIGALRM, SIG_DFL); alarm (2); #endif #ifdef M_CHECK_ACTION signal (SIGABRT, sigabrt_no_core); mallopt (M_CHECK_ACTION, 2); #endif if (setlocale (LC_ALL, "en_US.UTF-8")) { { /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html This test needs valgrind to catch the bug on Debian GNU/Linux 3.1 x86, but it might catch the bug better on other platforms and it shouldn't hurt to try the test here. */ static char const pat[] = "insert into"; static char const data[] = "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else if (re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, ®s) != -1) result |= 1; regfree (®ex); } { /* This test is from glibc bug 15078. The test case is from Andreas Schwab in . */ static char const pat[] = "[^x]x"; static char const data[] = /* */ "\xe1\x80\x80" "\xe1\x80\xbb" "\xe1\x80\xbd" "\xe1\x80\x94" "\xe1\x80\xba" "\xe1\x80\xaf" "\xe1\x80\x95" "\xe1\x80\xba" "x"; re_set_syntax (0); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else { i = re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, 0); if (i != 0 && i != 21) result |= 1; } regfree (®ex); } if (! setlocale (LC_ALL, "C")) return 1; } /* This test is from glibc bug 3957, reported by Andrew Mackey. */ re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[^x]b", 6, ®ex); if (s) result |= 2; /* This should fail, but succeeds for glibc-2.5. */ else if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) result |= 2; /* This regular expression is from Spencer ere test number 75 in grep-2.3. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP); memset (®ex, 0, sizeof regex); for (i = 0; i <= UCHAR_MAX; i++) folded_chars[i] = i; regex.translate = folded_chars; s = re_compile_pattern ("a[[:]:]]b\n", 11, ®ex); /* This should fail with _Invalid character class name_ error. */ if (!s) result |= 4; /* Ensure that [b-a] is diagnosed as invalid, when using RE_NO_EMPTY_RANGES. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[b-a]", 6, ®ex); if (s == 0) result |= 8; /* This should succeed, but does not for glibc-2.1.3. */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("{1", 2, ®ex); if (s) result |= 8; /* The following example is derived from a problem report against gawk from Jorge Stolfi . */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[an\371]*n", 7, ®ex); if (s) result |= 8; /* This should match, but does not for glibc-2.2.1. */ else if (re_match (®ex, "an", 2, 0, ®s) != 2) result |= 8; memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 8; /* glibc-2.2.93 does not work with a negative RANGE argument. */ else if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) result |= 8; /* The version of regex.c in older versions of gnulib ignored RE_ICASE. Detect that problem too. */ re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 16; else if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) result |= 16; /* Catch a bug reported by Vin Shelton in http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html */ re_set_syntax (RE_SYNTAX_POSIX_BASIC & ~RE_CONTEXT_INVALID_DUP & ~RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); if (s) result |= 32; /* REG_STARTEND was added to glibc on 2004-01-15. Reject older versions. */ if (! REG_STARTEND) result |= 64; #if 0 /* It would be nice to reject hosts whose regoff_t values are too narrow (including glibc on hosts with 64-bit ptrdiff_t and 32-bit int), but we should wait until glibc implements this feature. Otherwise, support for equivalence classes and multibyte collation symbols would always be broken except when compiling --without-included-regex. */ if (sizeof (regoff_t) < sizeof (ptrdiff_t) || sizeof (regoff_t) < sizeof (ssize_t)) result |= 64; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_re_compile_pattern_working=yes else gl_cv_func_re_compile_pattern_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_re_compile_pattern_working" >&5 $as_echo "$gl_cv_func_re_compile_pattern_working" >&6; } case $gl_cv_func_re_compile_pattern_working in #( yes) ac_use_included_regex=no;; #( no) ac_use_included_regex=yes;; esac ;; *) as_fn_error $? "Invalid value for --with-included-regex: $with_included_regex" "$LINENO" 5 ;; esac if test $ac_use_included_regex = yes; then $as_echo "#define _REGEX_INCLUDE_LIMITS_H 1" >>confdefs.h $as_echo "#define _REGEX_LARGE_OFFSETS 1" >>confdefs.h $as_echo "#define re_syntax_options rpl_re_syntax_options" >>confdefs.h $as_echo "#define re_set_syntax rpl_re_set_syntax" >>confdefs.h $as_echo "#define re_compile_pattern rpl_re_compile_pattern" >>confdefs.h $as_echo "#define re_compile_fastmap rpl_re_compile_fastmap" >>confdefs.h $as_echo "#define re_search rpl_re_search" >>confdefs.h $as_echo "#define re_search_2 rpl_re_search_2" >>confdefs.h $as_echo "#define re_match rpl_re_match" >>confdefs.h $as_echo "#define re_match_2 rpl_re_match_2" >>confdefs.h $as_echo "#define re_set_registers rpl_re_set_registers" >>confdefs.h $as_echo "#define re_comp rpl_re_comp" >>confdefs.h $as_echo "#define re_exec rpl_re_exec" >>confdefs.h $as_echo "#define regcomp rpl_regcomp" >>confdefs.h $as_echo "#define regexec rpl_regexec" >>confdefs.h $as_echo "#define regerror rpl_regerror" >>confdefs.h $as_echo "#define regfree rpl_regfree" >>confdefs.h fi if test $ac_use_included_regex = yes; then gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext" for ac_header in libintl.h do : ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBINTL_H 1 _ACEOF fi done ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include " if test "x$ac_cv_have_decl_isblank" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ISBLANK $ac_have_decl _ACEOF fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include struct sched_param a; int b[] = { SCHED_FIFO, SCHED_RR, SCHED_OTHER }; pid_t t1; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : SCHED_H='' else SCHED_H='sched.h' for ac_header in sched.h do : ac_fn_c_check_header_compile "$LINENO" "sched.h" "ac_cv_header_sched_h" "#if HAVE_SYS_CDEFS_H #include #endif " if test "x$ac_cv_header_sched_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SCHED_H 1 _ACEOF fi done if test $gl_cv_have_include_next = yes; then gl_cv_next_sched_h='<'sched.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sched_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sched.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sched_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sched_h gl_cv_next_sched_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sched_h" >&5 $as_echo "$gl_cv_next_sched_h" >&6; } fi NEXT_SCHED_H=$gl_cv_next_sched_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sched.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sched_h fi NEXT_AS_FIRST_DIRECTIVE_SCHED_H=$gl_next_as_first_directive if test "$ac_cv_header_sched_h" = yes; then HAVE_SCHED_H=1 else HAVE_SCHED_H=0 fi if test "$HAVE_SCHED_H" = 1; then ac_fn_c_check_type "$LINENO" "struct sched_param" "ac_cv_type_struct_sched_param" "#if HAVE_SYS_CDEFS_H #include #endif #include " if test "x$ac_cv_type_struct_sched_param" = xyes; then : HAVE_STRUCT_SCHED_PARAM=1 else HAVE_STRUCT_SCHED_PARAM=0 fi else ac_fn_c_check_type "$LINENO" "struct sched_param" "ac_cv_type_struct_sched_param" "#include " if test "x$ac_cv_type_struct_sched_param" = xyes; then : HAVE_STRUCT_SCHED_PARAM=1 else HAVE_STRUCT_SCHED_PARAM=0 fi fi if test "$ac_cv_header_sys_cdefs_h" = yes; then HAVE_SYS_CDEFS_H=1 else HAVE_SYS_CDEFS_H=0 fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test -n "$SCHED_H"; then GL_GENERATE_SCHED_H_TRUE= GL_GENERATE_SCHED_H_FALSE='#' else GL_GENERATE_SCHED_H_TRUE='#' GL_GENERATE_SCHED_H_FALSE= fi if test $ac_cv_func_secure_getenv = no; then HAVE_SECURE_GETENV=0 fi if test $HAVE_SECURE_GETENV = 0; then gl_LIBOBJS="$gl_LIBOBJS secure_getenv.$ac_objext" for ac_func in __secure_getenv do : ac_fn_c_check_func "$LINENO" "__secure_getenv" "ac_cv_func___secure_getenv" if test "x$ac_cv_func___secure_getenv" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE___SECURE_GETENV 1 _ACEOF fi done if test $ac_cv_func___secure_getenv = no; then for ac_func in issetugid do : ac_fn_c_check_func "$LINENO" "issetugid" "ac_cv_func_issetugid" if test "x$ac_cv_func_issetugid" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ISSETUGID 1 _ACEOF fi done fi fi GNULIB_SECURE_GETENV=1 $as_echo "#define GNULIB_TEST_SECURE_GETENV 1" >>confdefs.h if test $ac_cv_func_sigaction = yes; then ac_fn_c_check_member "$LINENO" "struct sigaction" "sa_sigaction" "ac_cv_member_struct_sigaction_sa_sigaction" "#include " if test "x$ac_cv_member_struct_sigaction_sa_sigaction" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SIGACTION_SA_SIGACTION 1 _ACEOF fi if test $ac_cv_member_struct_sigaction_sa_sigaction = no; then HAVE_STRUCT_SIGACTION_SA_SIGACTION=0 fi else HAVE_SIGACTION=0 fi if test $HAVE_SIGACTION = 0; then gl_LIBOBJS="$gl_LIBOBJS sigaction.$ac_objext" ac_fn_c_check_type "$LINENO" "siginfo_t" "ac_cv_type_siginfo_t" " #include " if test "x$ac_cv_type_siginfo_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SIGINFO_T 1 _ACEOF fi if test $ac_cv_type_siginfo_t = no; then HAVE_SIGINFO_T=0 fi fi GNULIB_SIGACTION=1 $as_echo "#define GNULIB_TEST_SIGACTION 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_signal_h='<'signal.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_signal_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'signal.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_signal_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_signal_h gl_cv_next_signal_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_signal_h" >&5 $as_echo "$gl_cv_next_signal_h" >&6; } fi NEXT_SIGNAL_H=$gl_cv_next_signal_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'signal.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_signal_h fi NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H=$gl_next_as_first_directive # AIX declares sig_atomic_t to already include volatile, and C89 compilers # then choke on 'volatile sig_atomic_t'. C99 requires that it compile. ac_fn_c_check_type "$LINENO" "volatile sig_atomic_t" "ac_cv_type_volatile_sig_atomic_t" " #include " if test "x$ac_cv_type_volatile_sig_atomic_t" = xyes; then : else HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0 fi ac_fn_c_check_type "$LINENO" "sighandler_t" "ac_cv_type_sighandler_t" " #include " if test "x$ac_cv_type_sighandler_t" = xyes; then : else HAVE_SIGHANDLER_T=0 fi for gl_func in pthread_sigmask sigaction sigaddset sigdelset sigemptyset sigfillset sigismember sigpending sigprocmask; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $gl_cv_type_sigset_t = yes; then ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask" if test "x$ac_cv_func_sigprocmask" = xyes; then : gl_cv_func_sigprocmask=1 fi fi if test -z "$gl_cv_func_sigprocmask"; then HAVE_POSIX_SIGNALBLOCKING=0 fi if test $HAVE_POSIX_SIGNALBLOCKING = 0; then gl_LIBOBJS="$gl_LIBOBJS sigprocmask.$ac_objext" : fi GNULIB_SIGPROCMASK=1 $as_echo "#define GNULIB_TEST_SIGPROCMASK 1" >>confdefs.h SIN_LIBM="$POW_LIBM" ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" " /* is not needed according to POSIX, but the in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #if HAVE_SYS_SOCKET_H # include #elif HAVE_WS2TCPIP_H # include #endif " if test "x$ac_cv_type_socklen_t" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t equivalent" >&5 $as_echo_n "checking for socklen_t equivalent... " >&6; } if ${gl_cv_socklen_t_equiv+:} false; then : $as_echo_n "(cached) " >&6 else # Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername gl_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void; do for t in int size_t "unsigned int" "long int" "unsigned long int"; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int getpeername (int, $arg2 *, $t *); int main () { $t len; getpeername (0, 0, &len); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_socklen_t_equiv="$t" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$gl_cv_socklen_t_equiv" != "" && break done test "$gl_cv_socklen_t_equiv" != "" && break done fi if test "$gl_cv_socklen_t_equiv" = ""; then as_fn_error $? "Cannot find a type to use in place of socklen_t" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socklen_t_equiv" >&5 $as_echo "$gl_cv_socklen_t_equiv" >&6; } cat >>confdefs.h <<_ACEOF #define socklen_t $gl_cv_socklen_t_equiv _ACEOF fi if test $gl_cv_have_include_next = yes; then gl_cv_next_spawn_h='<'spawn.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_spawn_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_spawn_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'spawn.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_spawn_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_spawn_h gl_cv_next_spawn_h='"'$gl_header'"' else gl_cv_next_spawn_h='<'spawn.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_spawn_h" >&5 $as_echo "$gl_cv_next_spawn_h" >&6; } fi NEXT_SPAWN_H=$gl_cv_next_spawn_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'spawn.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_spawn_h fi NEXT_AS_FIRST_DIRECTIVE_SPAWN_H=$gl_next_as_first_directive if test $ac_cv_header_spawn_h = yes; then HAVE_SPAWN_H=1 ac_fn_c_check_type "$LINENO" "posix_spawnattr_t" "ac_cv_type_posix_spawnattr_t" " #include " if test "x$ac_cv_type_posix_spawnattr_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_POSIX_SPAWNATTR_T 1 _ACEOF else HAVE_POSIX_SPAWNATTR_T=0 fi ac_fn_c_check_type "$LINENO" "posix_spawn_file_actions_t" "ac_cv_type_posix_spawn_file_actions_t" " #include " if test "x$ac_cv_type_posix_spawn_file_actions_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_POSIX_SPAWN_FILE_ACTIONS_T 1 _ACEOF else HAVE_POSIX_SPAWN_FILE_ACTIONS_T=0 fi else HAVE_SPAWN_H=0 HAVE_POSIX_SPAWNATTR_T=0 HAVE_POSIX_SPAWN_FILE_ACTIONS_T=0 fi for gl_func in posix_spawn posix_spawnp posix_spawnattr_init posix_spawnattr_destroy posix_spawnattr_getsigdefault posix_spawnattr_setsigdefault posix_spawnattr_getsigmask posix_spawnattr_setsigmask posix_spawnattr_getflags posix_spawnattr_setflags posix_spawnattr_getpgroup posix_spawnattr_setpgroup posix_spawnattr_getschedpolicy posix_spawnattr_setschedpolicy posix_spawnattr_getschedparam posix_spawnattr_setschedparam posix_spawn_file_actions_init posix_spawn_file_actions_destroy posix_spawn_file_actions_addopen posix_spawn_file_actions_addclose posix_spawn_file_actions_adddup2; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done SQRT_LIBM="$POW_LIBM" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5 $as_echo_n "checking for ssize_t... " >&6; } if ${gt_cv_ssize_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_ssize_t=yes else gt_cv_ssize_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5 $as_echo "$gt_cv_ssize_t" >&6; } if test $gt_cv_ssize_t = no; then $as_echo "#define ssize_t int" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on directories" >&5 $as_echo_n "checking whether stat handles trailing slashes on directories... " >&6; } if ${gl_cv_func_stat_dir_slash+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case $host_os in mingw*) gl_cv_func_stat_dir_slash="guessing no";; *) gl_cv_func_stat_dir_slash="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { struct stat st; return stat (".", &st) != stat ("./", &st); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_stat_dir_slash=yes else gl_cv_func_stat_dir_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_dir_slash" >&5 $as_echo "$gl_cv_func_stat_dir_slash" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5 $as_echo_n "checking whether stat handles trailing slashes on files... " >&6; } if ${gl_cv_func_stat_file_slash+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.tmp # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.tmp conftest.lnk fi if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_stat_file_slash="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int result = 0; struct stat st; if (!stat ("conftest.tmp/", &st)) result |= 1; #if HAVE_LSTAT if (!stat ("conftest.lnk/", &st)) result |= 2; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_stat_file_slash=yes else gl_cv_func_stat_file_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.tmp conftest.lnk fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_file_slash" >&5 $as_echo "$gl_cv_func_stat_file_slash" >&6; } case $gl_cv_func_stat_dir_slash in *no) REPLACE_STAT=1 $as_echo "#define REPLACE_FUNC_STAT_DIR 1" >>confdefs.h ;; esac case $gl_cv_func_stat_file_slash in *no) REPLACE_STAT=1 $as_echo "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h ;; esac if test $REPLACE_STAT = 1; then gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext" : fi GNULIB_STAT=1 $as_echo "#define GNULIB_TEST_STAT 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working stdalign.h" >&5 $as_echo_n "checking for working stdalign.h... " >&6; } if ${gl_cv_header_working_stdalign_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Test that alignof yields a result consistent with offsetof. This catches GCC bug 52023 . */ #ifdef __cplusplus template struct alignof_helper { char a; t b; }; # define ao(type) offsetof (alignof_helper, b) #else # define ao(type) offsetof (struct { char a; type b; }, b) #endif char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1]; char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; /* Test _Alignas only on platforms where gnulib can help. */ #if \ ((defined __cplusplus && 201103 <= __cplusplus) \ || (defined __APPLE__ && defined __MACH__ \ ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ : __GNUC__) \ || __HP_cc || __HP_aCC || __IBMC__ || __IBMCPP__ \ || __ICC || 0x5110 <= __SUNPRO_C \ || 1300 <= _MSC_VER) struct alignas_test { char c; char alignas (8) alignas_8; }; char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 ? 1 : -1]; #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_working_stdalign_h=yes else gl_cv_header_working_stdalign_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdalign_h" >&5 $as_echo "$gl_cv_header_working_stdalign_h" >&6; } if test $gl_cv_header_working_stdalign_h = yes; then STDALIGN_H='' else STDALIGN_H='stdalign.h' fi if test -n "$STDALIGN_H"; then GL_GENERATE_STDALIGN_H_TRUE= GL_GENERATE_STDALIGN_H_FALSE='#' else GL_GENERATE_STDALIGN_H_TRUE='#' GL_GENERATE_STDALIGN_H_FALSE= fi # Define two additional variables used in the Makefile substitution. if test "$ac_cv_header_stdbool_h" = yes; then STDBOOL_H='' else STDBOOL_H='stdbool.h' fi if test -n "$STDBOOL_H"; then GL_GENERATE_STDBOOL_H_TRUE= GL_GENERATE_STDBOOL_H_FALSE='#' else GL_GENERATE_STDBOOL_H_TRUE='#' GL_GENERATE_STDBOOL_H_FALSE= fi if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 else HAVE__BOOL=0 fi STDDEF_H= ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include " if test "x$ac_cv_type_max_align_t" = xyes; then : else HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h fi if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } if ${gl_cv_decl_null_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int test[2 * (sizeof NULL == sizeof (void *)) -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_decl_null_works=yes else gl_cv_decl_null_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 $as_echo "$gl_cv_decl_null_works" >&6; } if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' else GL_GENERATE_STDDEF_H_TRUE='#' GL_GENERATE_STDDEF_H_FALSE= fi if test -n "$STDDEF_H"; then if test $gl_cv_have_include_next = yes; then gl_cv_next_stddef_h='<'stddef.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stddef_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stddef.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stddef_h gl_cv_next_stddef_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 $as_echo "$gl_cv_next_stddef_h" >&6; } fi NEXT_STDDEF_H=$gl_cv_next_stddef_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stddef.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stddef_h fi NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive fi $as_echo "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_stdio_h='<'stdio.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdio_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdio.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdio_h gl_cv_next_stdio_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5 $as_echo "$gl_cv_next_stdio_h" >&6; } fi NEXT_STDIO_H=$gl_cv_next_stdio_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdio.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdio_h fi NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive { $as_echo "$as_me:${as_lineno-$LINENO}: checking which flavor of printf attribute matches inttypes macros" >&5 $as_echo_n "checking which flavor of printf attribute matches inttypes macros... " >&6; } if ${gl_cv_func_printf_attribute_flavor+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define __STDC_FORMAT_MACROS 1 #include #include /* For non-mingw systems, compilation will trivially succeed. For mingw, compilation will succeed for older mingw (system printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_printf_attribute_flavor=system else gl_cv_func_printf_attribute_flavor=gnu fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_attribute_flavor" >&5 $as_echo "$gl_cv_func_printf_attribute_flavor" >&6; } if test "$gl_cv_func_printf_attribute_flavor" = gnu; then $as_echo "#define GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 1" >>confdefs.h fi GNULIB_FSCANF=1 cat >>confdefs.h <<_ACEOF #define GNULIB_FSCANF 1 _ACEOF GNULIB_SCANF=1 cat >>confdefs.h <<_ACEOF #define GNULIB_SCANF 1 _ACEOF GNULIB_FGETC=1 GNULIB_GETC=1 GNULIB_GETCHAR=1 GNULIB_FGETS=1 GNULIB_FREAD=1 GNULIB_FPRINTF=1 GNULIB_PRINTF=1 GNULIB_VFPRINTF=1 GNULIB_VPRINTF=1 GNULIB_FPUTC=1 GNULIB_PUTC=1 GNULIB_PUTCHAR=1 GNULIB_FPUTS=1 GNULIB_PUTS=1 GNULIB_FWRITE=1 for gl_func in dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $gl_cv_have_include_next = yes; then gl_cv_next_stdlib_h='<'stdlib.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdlib_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdlib.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_stdlib_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_stdlib_h gl_cv_next_stdlib_h='"'$gl_header'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 $as_echo "$gl_cv_next_stdlib_h" >&6; } fi NEXT_STDLIB_H=$gl_cv_next_stdlib_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdlib.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdlib_h fi NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r qsort_r random random_r realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_SYS_LOADAVG_H # include #endif #if HAVE_RANDOM_H # include #endif int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done for ac_func in strchrnul do : ac_fn_c_check_func "$LINENO" "strchrnul" "ac_cv_func_strchrnul" if test "x$ac_cv_func_strchrnul" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRCHRNUL 1 _ACEOF fi done if test $ac_cv_func_strchrnul = no; then HAVE_STRCHRNUL=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strchrnul works" >&5 $as_echo_n "checking whether strchrnul works... " >&6; } if ${gl_cv_func_strchrnul_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9) Lucky user #endif #else Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1; then : gl_cv_func_strchrnul_works="guessing yes" else gl_cv_func_strchrnul_works="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for strchrnul */ int main () { const char *buf = "a"; return strchrnul (buf, 'b') != buf + 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strchrnul_works=yes else gl_cv_func_strchrnul_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strchrnul_works" >&5 $as_echo "$gl_cv_func_strchrnul_works" >&6; } case "$gl_cv_func_strchrnul_works" in *yes) ;; *) REPLACE_STRCHRNUL=1 ;; esac fi if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then gl_LIBOBJS="$gl_LIBOBJS strchrnul.$ac_objext" : fi GNULIB_STRCHRNUL=1 $as_echo "#define GNULIB_TEST_STRCHRNUL 1" >>confdefs.h for ac_func in strcspn do : ac_fn_c_check_func "$LINENO" "strcspn" "ac_cv_func_strcspn" if test "x$ac_cv_func_strcspn" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRCSPN 1 _ACEOF fi done if test $ac_cv_func_strcspn = no; then gl_LIBOBJS="$gl_LIBOBJS strcspn.$ac_objext" : fi if test $ac_cv_func_strdup = yes; then if test $gl_cv_func_malloc_posix != yes; then REPLACE_STRDUP=1 fi fi if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext" : fi GNULIB_STRDUP=1 $as_echo "#define GNULIB_TEST_STRDUP 1" >>confdefs.h if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5 $as_echo_n "checking for working strerror function... " >&6; } if ${gl_cv_func_working_strerror+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_working_strerror="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_working_strerror="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { if (!*strerror (-2)) return 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_working_strerror=yes else gl_cv_func_working_strerror=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5 $as_echo "$gl_cv_func_working_strerror" >&6; } case "$gl_cv_func_working_strerror" in *yes) ;; *) REPLACE_STRERROR=1 ;; esac case "$gl_cv_func_strerror_r_works" in *no) REPLACE_STRERROR=1 ;; esac else REPLACE_STRERROR=1 fi if test $REPLACE_STRERROR = 1; then gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext" fi cat >>confdefs.h <<_ACEOF #define GNULIB_STRERROR 1 _ACEOF GNULIB_STRERROR=1 $as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext" if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi fi ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" if test "x$ac_cv_have_decl_strerror_r" = xyes; then : HAVE_DECL_STRERROR_R=1 else HAVE_DECL_STRERROR_R=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR_R_ORIG $HAVE_DECL_STRERROR_R _ACEOF if test $ac_cv_func_strerror_r = yes; then if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then if test $gl_cv_func_strerror_r_posix_signature = yes; then case "$gl_cv_func_strerror_r_works" in *no) REPLACE_STRERROR_R=1 ;; esac else REPLACE_STRERROR_R=1 fi else REPLACE_STRERROR_R=1 fi fi # Overwrite the findings of AC_FUNC_STRERROR_R (for code that uses that). if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then gl_LIBOBJS="$gl_LIBOBJS strerror_r.$ac_objext" fi GNULIB_STRERROR_R=1 $as_echo "#define GNULIB_TEST_STRERROR_R 1" >>confdefs.h if test $REPLACE_STRSTR = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works in linear time" >&5 $as_echo_n "checking whether strstr works in linear time... " >&6; } if ${gl_cv_func_strstr_linear+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ && !(defined __i386__ || defined __x86_64__) \ && !defined __UCLIBC__ Lucky user #endif #endif #ifdef __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1; then : gl_cv_func_strstr_linear="guessing yes" else gl_cv_func_strstr_linear="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __MVS__ /* z/OS does not deliver signals while strstr() is running (thanks to restrictions on its LE runtime), which prevents us from limiting the running time of this test. */ # error "This test does not work properly on z/OS" #endif #include /* for signal */ #include /* for strstr */ #include /* for malloc */ #include /* for alarm */ static void quit (int sig) { _exit (sig + 128); } int main () { int result = 0; size_t m = 1000000; char *haystack = (char *) malloc (2 * m + 2); char *needle = (char *) malloc (m + 2); /* Failure to compile this test due to missing alarm is okay, since all such platforms (mingw) also have quadratic strstr. */ signal (SIGALRM, quit); alarm (5); /* Check for quadratic performance. */ if (haystack && needle) { memset (haystack, 'A', 2 * m); haystack[2 * m] = 'B'; haystack[2 * m + 1] = 0; memset (needle, 'A', m); needle[m] = 'B'; needle[m + 1] = 0; if (!strstr (haystack, needle)) result |= 1; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strstr_linear=yes else gl_cv_func_strstr_linear=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strstr_linear" >&5 $as_echo "$gl_cv_func_strstr_linear" >&6; } case "$gl_cv_func_strstr_linear" in *yes) ;; *) REPLACE_STRSTR=1 ;; esac fi if test $REPLACE_STRSTR = 1; then gl_LIBOBJS="$gl_LIBOBJS strstr.$ac_objext" fi if test "$gl_cv_func_memchr_works" != yes; then REPLACE_STRSTR=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works" >&5 $as_echo_n "checking whether strstr works... " >&6; } if ${gl_cv_func_strstr_works_always+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ || defined __UCLIBC__ Lucky user #endif #elif defined __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #else Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky user" >/dev/null 2>&1; then : gl_cv_func_strstr_works_always="guessing yes" else gl_cv_func_strstr_works_always="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for strstr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P int main () { return !!strstr (HAYSTACK, NEEDLE); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strstr_works_always=yes else gl_cv_func_strstr_works_always=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strstr_works_always" >&5 $as_echo "$gl_cv_func_strstr_works_always" >&6; } case "$gl_cv_func_strstr_works_always" in *yes) ;; *) REPLACE_STRSTR=1 ;; esac fi if test $REPLACE_STRSTR = 1; then gl_LIBOBJS="$gl_LIBOBJS strstr.$ac_objext" fi GNULIB_STRSTR=1 $as_echo "#define GNULIB_TEST_STRSTR 1" >>confdefs.h for ac_func in strtol do : ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" if test "x$ac_cv_func_strtol" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRTOL 1 _ACEOF fi done if test $ac_cv_func_strtol = no; then gl_LIBOBJS="$gl_LIBOBJS strtol.$ac_objext" fi if test $ac_cv_header_sys_ioctl_h = yes; then HAVE_SYS_IOCTL_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether declares ioctl" >&5 $as_echo_n "checking whether declares ioctl... " >&6; } if ${gl_cv_decl_ioctl_in_sys_ioctl_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { (void) ioctl; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_decl_ioctl_in_sys_ioctl_h=yes else gl_cv_decl_ioctl_in_sys_ioctl_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_ioctl_in_sys_ioctl_h" >&5 $as_echo "$gl_cv_decl_ioctl_in_sys_ioctl_h" >&6; } else HAVE_SYS_IOCTL_H=0 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_ioctl_h='<'sys/ioctl.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_ioctl_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_ioctl_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/ioctl.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_ioctl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_ioctl_h gl_cv_next_sys_ioctl_h='"'$gl_header'"' else gl_cv_next_sys_ioctl_h='<'sys/ioctl.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_ioctl_h" >&5 $as_echo "$gl_cv_next_sys_ioctl_h" >&6; } fi NEXT_SYS_IOCTL_H=$gl_cv_next_sys_ioctl_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/ioctl.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_ioctl_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H=$gl_next_as_first_directive for gl_func in ioctl; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Some platforms declare ioctl in the wrong header. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include #endif int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_stat_h='<'sys/stat.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_stat_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_stat_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/stat.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_stat_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_stat_h gl_cv_next_sys_stat_h='"'$gl_header'"' else gl_cv_next_sys_stat_h='<'sys/stat.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5 $as_echo "$gl_cv_next_sys_stat_h" >&6; } fi NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/stat.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_stat_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive if test $WINDOWS_64_BIT_ST_SIZE = 1; then $as_echo "#define _GL_WINDOWS_64_BIT_ST_SIZE 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include #include " if test "x$ac_cv_type_nlink_t" = xyes; then : else $as_echo "#define nlink_t int" >>confdefs.h fi for gl_func in fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_uio_h='<'sys/uio.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_uio_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_uio_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/uio.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_uio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_uio_h gl_cv_next_sys_uio_h='"'$gl_header'"' else gl_cv_next_sys_uio_h='<'sys/uio.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_uio_h" >&5 $as_echo "$gl_cv_next_sys_uio_h" >&6; } fi NEXT_SYS_UIO_H=$gl_cv_next_sys_uio_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/uio.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_uio_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H=$gl_next_as_first_directive if test $ac_cv_header_sys_uio_h = yes; then HAVE_SYS_UIO_H=1 else HAVE_SYS_UIO_H=0 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_wait_h='<'sys/wait.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_wait_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_wait_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/wait.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_sys_wait_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_sys_wait_h gl_cv_next_sys_wait_h='"'$gl_header'"' else gl_cv_next_sys_wait_h='<'sys/wait.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_wait_h" >&5 $as_echo "$gl_cv_next_sys_wait_h" >&6; } fi NEXT_SYS_WAIT_H=$gl_cv_next_sys_wait_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/wait.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_wait_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H=$gl_next_as_first_directive for gl_func in waitpid; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done TAN_LIBM="$POW_LIBM" : : if test $gl_cv_have_include_next = yes; then gl_cv_next_unistd_h='<'unistd.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_unistd_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_unistd_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'unistd.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_unistd_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_unistd_h gl_cv_next_unistd_h='"'$gl_header'"' else gl_cv_next_unistd_h='<'unistd.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5 $as_echo "$gl_cv_next_unistd_h" >&6; } fi NEXT_UNISTD_H=$gl_cv_next_unistd_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'unistd.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_unistd_h fi NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r unlink unlinkat usleep; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_UNISTD_H # include #endif /* Some systems declare various items in the wrong headers. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include # endif #endif int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unlink honors trailing slashes" >&5 $as_echo_n "checking whether unlink honors trailing slashes... " >&6; } if ${gl_cv_func_unlink_honors_slashes+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.file # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.file conftest.lnk fi if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_unlink_honors_slashes="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_unlink_honors_slashes="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif #include int main () { int result = 0; if (!unlink ("conftest.file/")) result |= 1; else if (errno != ENOTDIR) result |= 2; #if HAVE_LSTAT if (!unlink ("conftest.lnk/")) result |= 4; else if (errno != ENOTDIR) result |= 8; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_unlink_honors_slashes=yes else gl_cv_func_unlink_honors_slashes=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.file conftest.lnk fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unlink_honors_slashes" >&5 $as_echo "$gl_cv_func_unlink_honors_slashes" >&6; } case "$gl_cv_func_unlink_honors_slashes" in *no) REPLACE_UNLINK=1 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unlink of a parent directory fails as it should" >&5 $as_echo_n "checking whether unlink of a parent directory fails as it should... " >&6; } if ${gl_cv_func_unlink_parent_fails+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in darwin*) if { # Use the mktemp program if available. If not available, hide the error # message. tmp=`(umask 077 && mktemp -d /tmp/gtXXXXXX) 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { # Use a simple mkdir command. It is guaranteed to fail if the directory # already exists. $RANDOM is bash specific and expands to empty in shells # other than bash, ksh and zsh. Its use does not increase security; # rather, it minimizes the probability of failure in a very cluttered /tmp # directory. tmp=/tmp/gt$$-$RANDOM (umask 077 && mkdir "$tmp") }; then mkdir "$tmp/subdir" GL_SUBDIR_FOR_UNLINK="$tmp/subdir" export GL_SUBDIR_FOR_UNLINK if test "$cross_compiling" = yes; then : # If we don't know, assume the worst. gl_cv_func_unlink_parent_fails="guessing no" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include # include #endif int main () { int result = 0; if (chdir (getenv ("GL_SUBDIR_FOR_UNLINK")) != 0) result |= 1; else if (unlink ("..") == 0) result |= 2; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_unlink_parent_fails=yes else gl_cv_func_unlink_parent_fails=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi unset GL_SUBDIR_FOR_UNLINK rm -rf "$tmp" else gl_cv_func_unlink_parent_fails="guessing no" fi ;; *) gl_cv_func_unlink_parent_fails="guessing yes" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unlink_parent_fails" >&5 $as_echo "$gl_cv_func_unlink_parent_fails" >&6; } case "$gl_cv_func_unlink_parent_fails" in *no) REPLACE_UNLINK=1 $as_echo "#define UNLINK_PARENT_BUG 1" >>confdefs.h ;; esac if test $REPLACE_UNLINK = 1; then gl_LIBOBJS="$gl_LIBOBJS unlink.$ac_objext" fi GNULIB_UNLINK=1 $as_echo "#define GNULIB_TEST_UNLINK 1" >>confdefs.h for ac_func in waitid do : ac_fn_c_check_func "$LINENO" "waitid" "ac_cv_func_waitid" if test "x$ac_cv_func_waitid" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WAITID 1 _ACEOF fi done HAVE_WAITPID=1 case $host_os in mingw*) HAVE_WAITPID=0 ;; esac if test $HAVE_WAITPID = 0; then gl_LIBOBJS="$gl_LIBOBJS waitpid.$ac_objext" fi GNULIB_WAITPID=1 $as_echo "#define GNULIB_TEST_WAITPID 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_wchar_h='<'wchar.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_wchar_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_wchar_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'wchar.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_wchar_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_wchar_h gl_cv_next_wchar_h='"'$gl_header'"' else gl_cv_next_wchar_h='<'wchar.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5 $as_echo "$gl_cv_next_wchar_h" >&6; } fi NEXT_WCHAR_H=$gl_cv_next_wchar_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'wchar.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_wchar_h fi NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth ; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include #endif #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5 $as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac if test $LOCALE_JA != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "BĵŸer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_incomplete_state=yes else gl_cv_func_mbrtowc_incomplete_state=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 $as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5 $as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "BĵŸer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 2; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_mbrtowc_sanitycheck=yes else gl_cv_func_mbrtowc_sanitycheck=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi if test $ac_cv_func_wcrtomb = no; then HAVE_WCRTOMB=0 ac_fn_c_check_decl "$LINENO" "wcrtomb" "ac_cv_have_decl_wcrtomb" " /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include " if test "x$ac_cv_have_decl_wcrtomb" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_WCRTOMB $ac_have_decl _ACEOF if test $ac_cv_have_decl_wcrtomb = yes; then REPLACE_WCRTOMB=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_WCRTOMB=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5 $as_echo_n "checking whether wcrtomb return value is correct... " >&6; } if ${gl_cv_func_wcrtomb_retval+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in # Guess no on AIX 4, OSF/1 and Solaris. aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_wcrtomb_retval="guessing yes" ;; esac if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 1; } if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 2; } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 4; } if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 8; } return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_wcrtomb_retval=yes else gl_cv_func_wcrtomb_retval=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_retval" >&5 $as_echo "$gl_cv_func_wcrtomb_retval" >&6; } case "$gl_cv_func_wcrtomb_retval" in *yes) ;; *) REPLACE_WCRTOMB=1 ;; esac fi fi if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then gl_LIBOBJS="$gl_LIBOBJS wcrtomb.$ac_objext" : fi GNULIB_WCRTOMB=1 $as_echo "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h if test $ac_cv_func_iswcntrl = yes; then HAVE_ISWCNTRL=1 else HAVE_ISWCNTRL=0 fi if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_wctype_h='<'wctype.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_wctype_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_wctype_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'wctype.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_absolute_wctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"` gl_header=$gl_cv_absolute_wctype_h gl_cv_next_wctype_h='"'$gl_header'"' else gl_cv_next_wctype_h='<'wctype.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5 $as_echo "$gl_cv_next_wctype_h" >&6; } fi NEXT_WCTYPE_H=$gl_cv_next_wctype_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'wctype.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_wctype_h fi NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5 $as_echo_n "checking whether iswcntrl works... " >&6; } if ${gl_cv_func_iswcntrl_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if __GNU_LIBRARY__ == 1 Linux libc5 i18n is broken. #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_iswcntrl_works="guessing yes" else gl_cv_func_iswcntrl_works="guessing no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #include int main () { return iswprint ('x') == 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_iswcntrl_works=yes else gl_cv_func_iswcntrl_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5 $as_echo "$gl_cv_func_iswcntrl_works" >&6; } fi HAVE_WCTYPE_H=1 else HAVE_WCTYPE_H=0 fi case "$gl_cv_func_iswcntrl_works" in *yes) REPLACE_ISWCNTRL=0 ;; *) REPLACE_ISWCNTRL=1 ;; esac if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then : fi if test $REPLACE_ISWCNTRL = 1; then REPLACE_TOWLOWER=1 else for ac_func in towlower do : ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower" if test "x$ac_cv_func_towlower" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TOWLOWER 1 _ACEOF fi done if test $ac_cv_func_towlower = yes; then REPLACE_TOWLOWER=0 else ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #if HAVE_WCTYPE_H # include #endif " if test "x$ac_cv_have_decl_towlower" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_TOWLOWER $ac_have_decl _ACEOF if test $ac_cv_have_decl_towlower = yes; then REPLACE_TOWLOWER=1 else REPLACE_TOWLOWER=0 fi fi fi if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then : fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5 $as_echo_n "checking for wctype_t... " >&6; } if ${gl_cv_type_wctype_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #if HAVE_WCTYPE_H # include #endif wctype_t a; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_wctype_t=yes else gl_cv_type_wctype_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5 $as_echo "$gl_cv_type_wctype_t" >&6; } if test $gl_cv_type_wctype_t = no; then HAVE_WCTYPE_T=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5 $as_echo_n "checking for wctrans_t... " >&6; } if ${gl_cv_type_wctrans_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #include wctrans_t a; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_wctrans_t=yes else gl_cv_type_wctrans_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5 $as_echo "$gl_cv_type_wctrans_t" >&6; } if test $gl_cv_type_wctrans_t = no; then HAVE_WCTRANS_T=0 fi for gl_func in wctype iswctype wctrans towctrans ; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include # include #endif #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_WRITE=1 fi if test $REPLACE_WRITE = 1; then gl_LIBOBJS="$gl_LIBOBJS write.$ac_objext" : fi GNULIB_WRITE=1 $as_echo "#define GNULIB_TEST_WRITE 1" >>confdefs.h : # End of code from modules gltests_libdeps= gltests_ltlibdeps= gl_source_base='tests' gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS gl_module_indicator_condition=$gltests_WITNESS LIBGNU_LIBDEPS="$gl_libdeps" LIBGNU_LTLIBDEPS="$gl_ltlibdeps" if test -s "$srcdir/doc/mks1sed.in"; then sed -e '/^#.*[^\\]$/d' -e '/^#$/d' $srcdir/doc/mks1sed.in > $srcdir/doc/mksamp-1.sed fi if test -s "$srcdir/doc/mks2sed.in"; then sed -e '/^#.*[^\\]$/d' -e '/^#$/d' $srcdir/doc/mks2sed.in > $srcdir/doc/mksamp-2.sed fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } ac_config_headers="$ac_config_headers config.h" ac_config_files="$ac_config_files Makefile install-inf data/Makefile doc/Makefile doc/en/Makefile doc/en/examples/Makefile doc/mksamp lib/Makefile misc/Makefile misc/daily/daily misc/ddiff/ddiff misc/ddiff/ddiffdrv misc/dst/dst misc/gcalltx/gcalltx misc/gcalltx/gcalltxp misc/moon/moon misc/mrms/mrms misc/srss/srss misc/wloc/wlocdrv po/Makefile.in src/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_FLOAT_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_LIMITS_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi CONFIG_INCLUDE=config.h if test -z "${GL_GENERATE_SCHED_H_TRUE}" && test -z "${GL_GENERATE_SCHED_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_SCHED_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDALIGN_H_TRUE}" && test -z "${GL_GENERATE_STDALIGN_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDALIGN_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_LIMITS_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi gl_libobjs= gl_ltlibobjs= if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" done fi gl_LIBOBJS=$gl_libobjs gl_LTLIBOBJS=$gl_ltlibobjs gltests_libobjs= gltests_ltlibobjs= if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" done fi gltests_LIBOBJS=$gltests_libobjs gltests_LTLIBOBJS=$gltests_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by gcal $as_me 4.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_links="$ac_config_links" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration links: $config_links Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ gcal config.status 4.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" GNUmakefile=$GNUmakefile _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "$GNUmakefile") CONFIG_LINKS="$CONFIG_LINKS $GNUmakefile:$GNUmakefile" ;; "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "install-inf") CONFIG_FILES="$CONFIG_FILES install-inf" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/en/Makefile") CONFIG_FILES="$CONFIG_FILES doc/en/Makefile" ;; "doc/en/examples/Makefile") CONFIG_FILES="$CONFIG_FILES doc/en/examples/Makefile" ;; "doc/mksamp") CONFIG_FILES="$CONFIG_FILES doc/mksamp" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "misc/Makefile") CONFIG_FILES="$CONFIG_FILES misc/Makefile" ;; "misc/daily/daily") CONFIG_FILES="$CONFIG_FILES misc/daily/daily" ;; "misc/ddiff/ddiff") CONFIG_FILES="$CONFIG_FILES misc/ddiff/ddiff" ;; "misc/ddiff/ddiffdrv") CONFIG_FILES="$CONFIG_FILES misc/ddiff/ddiffdrv" ;; "misc/dst/dst") CONFIG_FILES="$CONFIG_FILES misc/dst/dst" ;; "misc/gcalltx/gcalltx") CONFIG_FILES="$CONFIG_FILES misc/gcalltx/gcalltx" ;; "misc/gcalltx/gcalltxp") CONFIG_FILES="$CONFIG_FILES misc/gcalltx/gcalltxp" ;; "misc/moon/moon") CONFIG_FILES="$CONFIG_FILES misc/moon/moon" ;; "misc/mrms/mrms") CONFIG_FILES="$CONFIG_FILES misc/mrms/mrms" ;; "misc/srss/srss") CONFIG_FILES="$CONFIG_FILES misc/srss/srss" ;; "misc/wloc/wlocdrv") CONFIG_FILES="$CONFIG_FILES misc/wloc/wlocdrv" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :L) # # CONFIG_LINK # if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then : else # Prefer the file from the source tree if names are identical. if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then ac_source=$srcdir/$ac_source fi { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 $as_echo "$as_me: linking $ac_source to $ac_file" >&6;} if test ! -r "$ac_source"; then as_fn_error $? "$ac_source: file not found" "$LINENO" 5 fi rm -f "$ac_file" # Try a relative symlink, then a hard link, then a copy. case $ac_source in [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; *) ac_rel_source=$ac_top_build_prefix$ac_source ;; esac ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || ln "$ac_source" "$ac_file" 2>/dev/null || cp -p "$ac_source" "$ac_file" || as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 fi ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Bored? Fallen asleep?? All checks done!" >&5 $as_echo "Bored? Fallen asleep?? All checks done!" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Perhaps you might want to inspect the created" >&5 $as_echo "Perhaps you might want to inspect the created" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Makefiles now for tuning some settings..." >&5 $as_echo "Makefiles now for tuning some settings..." >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } gcal-4.1/lib/0000775000000000000000000000000013041164074010003 500000000000000gcal-4.1/lib/unlink.c0000664000000000000000000000652713041163523011377 00000000000000/* Work around unlink bugs. Copyright (C) 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include #include #include #include #include "dosname.h" #undef unlink /* Remove file NAME. Return 0 if successful, -1 if not. */ int rpl_unlink (char const *name) { /* Work around Solaris 9 bug where unlink("file/") succeeds. */ size_t len = strlen (name); int result = 0; if (len && ISSLASH (name[len - 1])) { /* We can't unlink(2) something if it doesn't exist. If it does exist, then it resolved to a directory, due to the trailing slash, and POSIX requires that the unlink attempt to remove that directory (which would leave the symlink dangling). Unfortunately, Solaris 9 is one of the platforms where the root user can unlink directories, and we don't want to cripple this behavior on real directories, even if it is seldom needed (at any rate, it's nicer to let coreutils' unlink(1) give the correct errno for non-root users). But we don't know whether name was an actual directory, or a symlink to a directory; and due to the bug of ignoring trailing slash, Solaris 9 would end up successfully unlinking the symlink instead of the directory. Technically, we could use realpath to find the canonical directory name to attempt deletion on. But that is a lot of work for a corner case; so we instead just use an lstat on the shortened name, and reject symlinks with trailing slashes. The root user of unlink(1) will just have to live with the rule that they can't delete a directory via a symlink. */ struct stat st; result = lstat (name, &st); if (result == 0) { /* Trailing NUL will overwrite the trailing slash. */ char *short_name = malloc (len); if (!short_name) { errno = EPERM; return -1; } memcpy (short_name, name, len); while (len && ISSLASH (short_name[len - 1])) short_name[--len] = '\0'; if (len && (lstat (short_name, &st) || S_ISLNK (st.st_mode))) { free (short_name); errno = EPERM; return -1; } free (short_name); } } if (!result) { #if UNLINK_PARENT_BUG if (len >= 2 && name[len - 1] == '.' && name[len - 2] == '.' && (len == 2 || ISSLASH (name[len - 3]))) { errno = EISDIR; /* could also use EPERM */ return -1; } #endif result = unlink (name); } return result; } gcal-4.1/lib/binary-io.c0000664000000000000000000000015113041163522011752 00000000000000#include #define BINARY_IO_INLINE _GL_EXTERN_INLINE #include "binary-io.h" typedef int dummy; gcal-4.1/lib/gl_list.c0000664000000000000000000000012213041163522011514 00000000000000#include #define GL_LIST_INLINE _GL_EXTERN_INLINE #include "gl_list.h" gcal-4.1/lib/langinfo.in.h0000664000000000000000000001321213041163522012272 00000000000000/* Substitute for and wrapper around . Copyright (C) 2009-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* * POSIX for platforms that lack it or have an incomplete one. * */ #ifndef _@GUARD_PREFIX@_LANGINFO_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_LANGINFO_H@ # @INCLUDE_NEXT@ @NEXT_LANGINFO_H@ #endif #ifndef _@GUARD_PREFIX@_LANGINFO_H #define _@GUARD_PREFIX@_LANGINFO_H #if !@HAVE_LANGINFO_H@ /* A platform that lacks . */ /* Assume that it also lacks and the nl_item type. */ # if !GNULIB_defined_nl_item typedef int nl_item; # define GNULIB_defined_nl_item 1 # endif /* nl_langinfo items of the LC_CTYPE category */ # define CODESET 10000 /* nl_langinfo items of the LC_NUMERIC category */ # define RADIXCHAR 10001 # define DECIMAL_POINT RADIXCHAR # define THOUSEP 10002 # define THOUSANDS_SEP THOUSEP # define GROUPING 10114 /* nl_langinfo items of the LC_TIME category */ # define D_T_FMT 10003 # define D_FMT 10004 # define T_FMT 10005 # define T_FMT_AMPM 10006 # define AM_STR 10007 # define PM_STR 10008 # define DAY_1 10009 # define DAY_2 (DAY_1 + 1) # define DAY_3 (DAY_1 + 2) # define DAY_4 (DAY_1 + 3) # define DAY_5 (DAY_1 + 4) # define DAY_6 (DAY_1 + 5) # define DAY_7 (DAY_1 + 6) # define ABDAY_1 10016 # define ABDAY_2 (ABDAY_1 + 1) # define ABDAY_3 (ABDAY_1 + 2) # define ABDAY_4 (ABDAY_1 + 3) # define ABDAY_5 (ABDAY_1 + 4) # define ABDAY_6 (ABDAY_1 + 5) # define ABDAY_7 (ABDAY_1 + 6) # define MON_1 10023 # define MON_2 (MON_1 + 1) # define MON_3 (MON_1 + 2) # define MON_4 (MON_1 + 3) # define MON_5 (MON_1 + 4) # define MON_6 (MON_1 + 5) # define MON_7 (MON_1 + 6) # define MON_8 (MON_1 + 7) # define MON_9 (MON_1 + 8) # define MON_10 (MON_1 + 9) # define MON_11 (MON_1 + 10) # define MON_12 (MON_1 + 11) # define ABMON_1 10035 # define ABMON_2 (ABMON_1 + 1) # define ABMON_3 (ABMON_1 + 2) # define ABMON_4 (ABMON_1 + 3) # define ABMON_5 (ABMON_1 + 4) # define ABMON_6 (ABMON_1 + 5) # define ABMON_7 (ABMON_1 + 6) # define ABMON_8 (ABMON_1 + 7) # define ABMON_9 (ABMON_1 + 8) # define ABMON_10 (ABMON_1 + 9) # define ABMON_11 (ABMON_1 + 10) # define ABMON_12 (ABMON_1 + 11) # define ERA 10047 # define ERA_D_FMT 10048 # define ERA_D_T_FMT 10049 # define ERA_T_FMT 10050 # define ALT_DIGITS 10051 /* nl_langinfo items of the LC_MONETARY category */ # define CRNCYSTR 10052 # define CURRENCY_SYMBOL CRNCYSTR # define INT_CURR_SYMBOL 10100 # define MON_DECIMAL_POINT 10101 # define MON_THOUSANDS_SEP 10102 # define MON_GROUPING 10103 # define POSITIVE_SIGN 10104 # define NEGATIVE_SIGN 10105 # define FRAC_DIGITS 10106 # define INT_FRAC_DIGITS 10107 # define P_CS_PRECEDES 10108 # define N_CS_PRECEDES 10109 # define P_SEP_BY_SPACE 10110 # define N_SEP_BY_SPACE 10111 # define P_SIGN_POSN 10112 # define N_SIGN_POSN 10113 /* nl_langinfo items of the LC_MESSAGES category */ # define YESEXPR 10053 # define NOEXPR 10054 #else /* A platform that has . */ # if !@HAVE_LANGINFO_CODESET@ # define CODESET 10000 # define GNULIB_defined_CODESET 1 # endif # if !@HAVE_LANGINFO_T_FMT_AMPM@ # define T_FMT_AMPM 10006 # define GNULIB_defined_T_FMT_AMPM 1 # endif # if !@HAVE_LANGINFO_ERA@ # define ERA 10047 # define ERA_D_FMT 10048 # define ERA_D_T_FMT 10049 # define ERA_T_FMT 10050 # define ALT_DIGITS 10051 # define GNULIB_defined_ERA 1 # endif # if !@HAVE_LANGINFO_YESEXPR@ # define YESEXPR 10053 # define NOEXPR 10054 # define GNULIB_defined_YESEXPR 1 # endif #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ /* Return a piece of locale dependent information. Note: The difference between nl_langinfo (CODESET) and locale_charset () is that the latter normalizes the encoding names to GNU conventions. */ #if @GNULIB_NL_LANGINFO@ # if @REPLACE_NL_LANGINFO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef nl_langinfo # define nl_langinfo rpl_nl_langinfo # endif _GL_FUNCDECL_RPL (nl_langinfo, char *, (nl_item item)); _GL_CXXALIAS_RPL (nl_langinfo, char *, (nl_item item)); # else # if !@HAVE_NL_LANGINFO@ _GL_FUNCDECL_SYS (nl_langinfo, char *, (nl_item item)); # endif _GL_CXXALIAS_SYS (nl_langinfo, char *, (nl_item item)); # endif _GL_CXXALIASWARN (nl_langinfo); #elif defined GNULIB_POSIXCHECK # undef nl_langinfo # if HAVE_RAW_DECL_NL_LANGINFO _GL_WARN_ON_USE (nl_langinfo, "nl_langinfo is not portable - " "use gnulib module nl_langinfo for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_LANGINFO_H */ #endif /* _@GUARD_PREFIX@_LANGINFO_H */ gcal-4.1/lib/log10.c0000664000000000000000000000220513041163522011005 00000000000000/* Base 10 logarithmic function. Copyright (C) 2012-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include double log10 (double x) #undef log10 { if (x <= 0.0) { /* Work around the OSF/1 5.1 bug. */ if (x == 0.0) /* Return -Infinity. */ return -1.0 / 0.0; /* Work around the NetBSD 5.1, Solaris 11 2011-11 bug. */ else /* x < 0.0 */ /* Return NaN. */ return 0.0 / 0.0; } return log10 (x); } gcal-4.1/lib/regcomp.c0000664000000000000000000033544213041163523011534 00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see . */ #ifdef _LIBC # include #endif static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, size_t length, reg_syntax_t syntax); static void re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, char *fastmap); static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len); #ifdef RE_ENABLE_I18N static void free_charset (re_charset_t *cset); #endif /* RE_ENABLE_I18N */ static void free_workarea_compile (regex_t *preg); static reg_errcode_t create_initial_state (re_dfa_t *dfa); #ifdef RE_ENABLE_I18N static void optimize_utf8 (re_dfa_t *dfa); #endif static reg_errcode_t analyze (regex_t *preg); static reg_errcode_t preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra); static reg_errcode_t postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra); static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node); static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node); static bin_tree_t *lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node); static reg_errcode_t calc_first (void *extra, bin_tree_t *node); static reg_errcode_t calc_next (void *extra, bin_tree_t *node); static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node); static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint); static Idx search_duplicated_node (const re_dfa_t *dfa, Idx org_node, unsigned int constraint); static reg_errcode_t calc_eclosure (re_dfa_t *dfa); static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root); static reg_errcode_t calc_inveclosure (re_dfa_t *dfa); static Idx fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax); static int peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) internal_function; static bin_tree_t *parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, reg_errcode_t *err); static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err); static bin_tree_t *parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err); static bin_tree_t *parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err); static bin_tree_t *parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err); static bin_tree_t *parse_dup_op (bin_tree_t *dup_elem, re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err); static bin_tree_t *parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err); static reg_errcode_t parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token, int token_len, re_dfa_t *dfa, reg_syntax_t syntax, bool accept_hyphen); static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token); #ifdef RE_ENABLE_I18N static reg_errcode_t build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, Idx *equiv_class_alloc, const unsigned char *name); static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, re_charset_t *mbcset, Idx *char_class_alloc, const char *class_name, reg_syntax_t syntax); #else /* not RE_ENABLE_I18N */ static reg_errcode_t build_equiv_class (bitset_t sbcset, const unsigned char *name); static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, const char *class_name, reg_syntax_t syntax); #endif /* not RE_ENABLE_I18N */ static bin_tree_t *build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, const char *class_name, const char *extra, bool non_match, reg_errcode_t *err); static bin_tree_t *create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, re_token_type_t type); static bin_tree_t *create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, const re_token_t *token); static bin_tree_t *duplicate_tree (const bin_tree_t *src, re_dfa_t *dfa); static void free_token (re_token_t *node); static reg_errcode_t free_tree (void *extra, bin_tree_t *node); static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node); /* This table gives an error message for each of the error codes listed in regex.h. Obviously the order here has to be same as there. POSIX doesn't require that we do anything for REG_NOERROR, but why not be nice? */ static const char __re_error_msgid[] = { #define REG_NOERROR_IDX 0 gettext_noop ("Success") /* REG_NOERROR */ "\0" #define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success") gettext_noop ("No match") /* REG_NOMATCH */ "\0" #define REG_BADPAT_IDX (REG_NOMATCH_IDX + sizeof "No match") gettext_noop ("Invalid regular expression") /* REG_BADPAT */ "\0" #define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression") gettext_noop ("Invalid collation character") /* REG_ECOLLATE */ "\0" #define REG_ECTYPE_IDX (REG_ECOLLATE_IDX + sizeof "Invalid collation character") gettext_noop ("Invalid character class name") /* REG_ECTYPE */ "\0" #define REG_EESCAPE_IDX (REG_ECTYPE_IDX + sizeof "Invalid character class name") gettext_noop ("Trailing backslash") /* REG_EESCAPE */ "\0" #define REG_ESUBREG_IDX (REG_EESCAPE_IDX + sizeof "Trailing backslash") gettext_noop ("Invalid back reference") /* REG_ESUBREG */ "\0" #define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference") gettext_noop ("Unmatched [, [^, [:, [., or [=") /* REG_EBRACK */ "\0" #define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [, [^, [:, [., or [=") gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */ "\0" #define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(") gettext_noop ("Unmatched \\{") /* REG_EBRACE */ "\0" #define REG_BADBR_IDX (REG_EBRACE_IDX + sizeof "Unmatched \\{") gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */ "\0" #define REG_ERANGE_IDX (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}") gettext_noop ("Invalid range end") /* REG_ERANGE */ "\0" #define REG_ESPACE_IDX (REG_ERANGE_IDX + sizeof "Invalid range end") gettext_noop ("Memory exhausted") /* REG_ESPACE */ "\0" #define REG_BADRPT_IDX (REG_ESPACE_IDX + sizeof "Memory exhausted") gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */ "\0" #define REG_EEND_IDX (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression") gettext_noop ("Premature end of regular expression") /* REG_EEND */ "\0" #define REG_ESIZE_IDX (REG_EEND_IDX + sizeof "Premature end of regular expression") gettext_noop ("Regular expression too big") /* REG_ESIZE */ "\0" #define REG_ERPAREN_IDX (REG_ESIZE_IDX + sizeof "Regular expression too big") gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */ }; static const size_t __re_error_msgid_idx[] = { REG_NOERROR_IDX, REG_NOMATCH_IDX, REG_BADPAT_IDX, REG_ECOLLATE_IDX, REG_ECTYPE_IDX, REG_EESCAPE_IDX, REG_ESUBREG_IDX, REG_EBRACK_IDX, REG_EPAREN_IDX, REG_EBRACE_IDX, REG_BADBR_IDX, REG_ERANGE_IDX, REG_ESPACE_IDX, REG_BADRPT_IDX, REG_EEND_IDX, REG_ESIZE_IDX, REG_ERPAREN_IDX }; /* Entry points for GNU code. */ /* re_compile_pattern is the GNU regular expression compiler: it compiles PATTERN (of length LENGTH) and puts the result in BUFP. Returns 0 if the pattern was valid, otherwise an error string. Assumes the 'allocated' (and perhaps 'buffer') and 'translate' fields are set in BUFP on entry. */ const char * re_compile_pattern (const char *pattern, size_t length, struct re_pattern_buffer *bufp) { reg_errcode_t ret; /* And GNU code determines whether or not to get register information by passing null for the REGS argument to re_match, etc., not by setting no_sub, unless RE_NO_SUB is set. */ bufp->no_sub = !!(re_syntax_options & RE_NO_SUB); /* Match anchors at newline. */ bufp->newline_anchor = 1; ret = re_compile_internal (bufp, pattern, length, re_syntax_options); if (!ret) return NULL; return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } #ifdef _LIBC weak_alias (__re_compile_pattern, re_compile_pattern) #endif /* Set by 're_set_syntax' to the current regexp syntax to recognize. Can also be assigned to arbitrarily: each pattern buffer stores its own syntax, so it can be changed between regex compilations. */ /* This has no initializer because initialized variables in Emacs become read-only after dumping. */ reg_syntax_t re_syntax_options; /* Specify the precise syntax of regexps for compilation. This provides for compatibility for various utilities which historically have different, incompatible syntaxes. The argument SYNTAX is a bit mask comprised of the various bits defined in regex.h. We return the old syntax. */ reg_syntax_t re_set_syntax (reg_syntax_t syntax) { reg_syntax_t ret = re_syntax_options; re_syntax_options = syntax; return ret; } #ifdef _LIBC weak_alias (__re_set_syntax, re_set_syntax) #endif int re_compile_fastmap (struct re_pattern_buffer *bufp) { re_dfa_t *dfa = bufp->buffer; char *fastmap = bufp->fastmap; memset (fastmap, '\0', sizeof (char) * SBC_MAX); re_compile_fastmap_iter (bufp, dfa->init_state, fastmap); if (dfa->init_state != dfa->init_state_word) re_compile_fastmap_iter (bufp, dfa->init_state_word, fastmap); if (dfa->init_state != dfa->init_state_nl) re_compile_fastmap_iter (bufp, dfa->init_state_nl, fastmap); if (dfa->init_state != dfa->init_state_begbuf) re_compile_fastmap_iter (bufp, dfa->init_state_begbuf, fastmap); bufp->fastmap_accurate = 1; return 0; } #ifdef _LIBC weak_alias (__re_compile_fastmap, re_compile_fastmap) #endif static inline void __attribute__ ((always_inline)) re_set_fastmap (char *fastmap, bool icase, int ch) { fastmap[ch] = 1; if (icase) fastmap[tolower (ch)] = 1; } /* Helper function for re_compile_fastmap. Compile fastmap for the initial_state INIT_STATE. */ static void re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, char *fastmap) { re_dfa_t *dfa = bufp->buffer; Idx node_cnt; bool icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE)); for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt) { Idx node = init_state->nodes.elems[node_cnt]; re_token_type_t type = dfa->nodes[node].type; if (type == CHARACTER) { re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c); #ifdef RE_ENABLE_I18N if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) { unsigned char buf[MB_LEN_MAX]; unsigned char *p; wchar_t wc; mbstate_t state; p = buf; *p++ = dfa->nodes[node].opr.c; while (++node < dfa->nodes_len && dfa->nodes[node].type == CHARACTER && dfa->nodes[node].mb_partial) *p++ = dfa->nodes[node].opr.c; memset (&state, '\0', sizeof (state)); if (__mbrtowc (&wc, (const char *) buf, p - buf, &state) == p - buf && (__wcrtomb ((char *) buf, __towlower (wc), &state) != (size_t) -1)) re_set_fastmap (fastmap, false, buf[0]); } #endif } else if (type == SIMPLE_BRACKET) { int i, ch; for (i = 0, ch = 0; i < BITSET_WORDS; ++i) { int j; bitset_word_t w = dfa->nodes[node].opr.sbcset[i]; for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) if (w & ((bitset_word_t) 1 << j)) re_set_fastmap (fastmap, icase, ch); } } #ifdef RE_ENABLE_I18N else if (type == COMPLEX_BRACKET) { re_charset_t *cset = dfa->nodes[node].opr.mbcset; Idx i; # ifdef _LIBC /* See if we have to try all bytes which start multiple collation elements. e.g. In da_DK, we want to catch 'a' since "aa" is a valid collation element, and don't catch 'b' since 'b' is the only collation element which starts from 'b' (and it is caught by SIMPLE_BRACKET). */ if (_NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES) != 0 && (cset->ncoll_syms || cset->nranges)) { const int32_t *table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); for (i = 0; i < SBC_MAX; ++i) if (table[i] < 0) re_set_fastmap (fastmap, icase, i); } # endif /* _LIBC */ /* See if we have to start the match at all multibyte characters, i.e. where we would not find an invalid sequence. This only applies to multibyte character sets; for single byte character sets, the SIMPLE_BRACKET again suffices. */ if (dfa->mb_cur_max > 1 && (cset->nchar_classes || cset->non_match || cset->nranges # ifdef _LIBC || cset->nequiv_classes # endif /* _LIBC */ )) { unsigned char c = 0; do { mbstate_t mbs; memset (&mbs, 0, sizeof (mbs)); if (__mbrtowc (NULL, (char *) &c, 1, &mbs) == (size_t) -2) re_set_fastmap (fastmap, false, (int) c); } while (++c != 0); } else { /* ... Else catch all bytes which can start the mbchars. */ for (i = 0; i < cset->nmbchars; ++i) { char buf[256]; mbstate_t state; memset (&state, '\0', sizeof (state)); if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1) re_set_fastmap (fastmap, icase, *(unsigned char *) buf); if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) { if (__wcrtomb (buf, __towlower (cset->mbchars[i]), &state) != (size_t) -1) re_set_fastmap (fastmap, false, *(unsigned char *) buf); } } } } #endif /* RE_ENABLE_I18N */ else if (type == OP_PERIOD #ifdef RE_ENABLE_I18N || type == OP_UTF8_PERIOD #endif /* RE_ENABLE_I18N */ || type == END_OF_RE) { memset (fastmap, '\1', sizeof (char) * SBC_MAX); if (type == END_OF_RE) bufp->can_be_null = 1; return; } } } /* Entry point for POSIX code. */ /* regcomp takes a regular expression as a string and compiles it. PREG is a regex_t *. We do not expect any fields to be initialized, since POSIX says we shouldn't. Thus, we set 'buffer' to the compiled pattern; 'used' to the length of the compiled pattern; 'syntax' to RE_SYNTAX_POSIX_EXTENDED if the REG_EXTENDED bit in CFLAGS is set; otherwise, to RE_SYNTAX_POSIX_BASIC; 'newline_anchor' to REG_NEWLINE being set in CFLAGS; 'fastmap' to an allocated space for the fastmap; 'fastmap_accurate' to zero; 're_nsub' to the number of subexpressions in PATTERN. PATTERN is the address of the pattern string. CFLAGS is a series of bits which affect compilation. If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we use POSIX basic syntax. If REG_NEWLINE is set, then . and [^...] don't match newline. Also, regexec will try a match beginning after every newline. If REG_ICASE is set, then we considers upper- and lowercase versions of letters to be equivalent when matching. If REG_NOSUB is set, then when PREG is passed to regexec, that routine will report only success or failure, and nothing about the registers. It returns 0 if it succeeds, nonzero if it doesn't. (See regex.h for the return codes and their meanings.) */ int regcomp (regex_t *_Restrict_ preg, const char *_Restrict_ pattern, int cflags) { reg_errcode_t ret; reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED : RE_SYNTAX_POSIX_BASIC); preg->buffer = NULL; preg->allocated = 0; preg->used = 0; /* Try to allocate space for the fastmap. */ preg->fastmap = re_malloc (char, SBC_MAX); if (BE (preg->fastmap == NULL, 0)) return REG_ESPACE; syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0; /* If REG_NEWLINE is set, newlines are treated differently. */ if (cflags & REG_NEWLINE) { /* REG_NEWLINE implies neither . nor [^...] match newline. */ syntax &= ~RE_DOT_NEWLINE; syntax |= RE_HAT_LISTS_NOT_NEWLINE; /* It also changes the matching behavior. */ preg->newline_anchor = 1; } else preg->newline_anchor = 0; preg->no_sub = !!(cflags & REG_NOSUB); preg->translate = NULL; ret = re_compile_internal (preg, pattern, strlen (pattern), syntax); /* POSIX doesn't distinguish between an unmatched open-group and an unmatched close-group: both are REG_EPAREN. */ if (ret == REG_ERPAREN) ret = REG_EPAREN; /* We have already checked preg->fastmap != NULL. */ if (BE (ret == REG_NOERROR, 1)) /* Compute the fastmap now, since regexec cannot modify the pattern buffer. This function never fails in this implementation. */ (void) re_compile_fastmap (preg); else { /* Some error occurred while compiling the expression. */ re_free (preg->fastmap); preg->fastmap = NULL; } return (int) ret; } #ifdef _LIBC weak_alias (__regcomp, regcomp) #endif /* Returns a message corresponding to an error code, ERRCODE, returned from either regcomp or regexec. We don't use PREG here. */ size_t regerror (int errcode, const regex_t *_Restrict_ preg, char *_Restrict_ errbuf, size_t errbuf_size) { const char *msg; size_t msg_size; if (BE (errcode < 0 || errcode >= (int) (sizeof (__re_error_msgid_idx) / sizeof (__re_error_msgid_idx[0])), 0)) /* Only error codes returned by the rest of the code should be passed to this routine. If we are given anything else, or if other regex code generates an invalid error code, then the program has a bug. Dump core so we can fix it. */ abort (); msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]); msg_size = strlen (msg) + 1; /* Includes the null. */ if (BE (errbuf_size != 0, 1)) { size_t cpy_size = msg_size; if (BE (msg_size > errbuf_size, 0)) { cpy_size = errbuf_size - 1; errbuf[cpy_size] = '\0'; } memcpy (errbuf, msg, cpy_size); } return msg_size; } #ifdef _LIBC weak_alias (__regerror, regerror) #endif #ifdef RE_ENABLE_I18N /* This static array is used for the map to single-byte characters when UTF-8 is used. Otherwise we would allocate memory just to initialize it the same all the time. UTF-8 is the preferred encoding so this is a worthwhile optimization. */ static const bitset_t utf8_sb_map = { /* Set the first 128 bits. */ # if defined __GNUC__ && !defined __STRICT_ANSI__ [0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX # else # if 4 * BITSET_WORD_BITS < ASCII_CHARS # error "bitset_word_t is narrower than 32 bits" # elif 3 * BITSET_WORD_BITS < ASCII_CHARS BITSET_WORD_MAX, BITSET_WORD_MAX, BITSET_WORD_MAX, # elif 2 * BITSET_WORD_BITS < ASCII_CHARS BITSET_WORD_MAX, BITSET_WORD_MAX, # elif 1 * BITSET_WORD_BITS < ASCII_CHARS BITSET_WORD_MAX, # endif (BITSET_WORD_MAX >> (SBC_MAX % BITSET_WORD_BITS == 0 ? 0 : BITSET_WORD_BITS - SBC_MAX % BITSET_WORD_BITS)) # endif }; #endif static void free_dfa_content (re_dfa_t *dfa) { Idx i, j; if (dfa->nodes) for (i = 0; i < dfa->nodes_len; ++i) free_token (dfa->nodes + i); re_free (dfa->nexts); for (i = 0; i < dfa->nodes_len; ++i) { if (dfa->eclosures != NULL) re_node_set_free (dfa->eclosures + i); if (dfa->inveclosures != NULL) re_node_set_free (dfa->inveclosures + i); if (dfa->edests != NULL) re_node_set_free (dfa->edests + i); } re_free (dfa->edests); re_free (dfa->eclosures); re_free (dfa->inveclosures); re_free (dfa->nodes); if (dfa->state_table) for (i = 0; i <= dfa->state_hash_mask; ++i) { struct re_state_table_entry *entry = dfa->state_table + i; for (j = 0; j < entry->num; ++j) { re_dfastate_t *state = entry->array[j]; free_state (state); } re_free (entry->array); } re_free (dfa->state_table); #ifdef RE_ENABLE_I18N if (dfa->sb_char != utf8_sb_map) re_free (dfa->sb_char); #endif re_free (dfa->subexp_map); #ifdef DEBUG re_free (dfa->re_str); #endif re_free (dfa); } /* Free dynamically allocated space used by PREG. */ void regfree (regex_t *preg) { re_dfa_t *dfa = preg->buffer; if (BE (dfa != NULL, 1)) { lock_fini (dfa->lock); free_dfa_content (dfa); } preg->buffer = NULL; preg->allocated = 0; re_free (preg->fastmap); preg->fastmap = NULL; re_free (preg->translate); preg->translate = NULL; } #ifdef _LIBC weak_alias (__regfree, regfree) #endif /* Entry points compatible with 4.2 BSD regex library. We don't define them unless specifically requested. */ #if defined _REGEX_RE_COMP || defined _LIBC /* BSD has one and only one pattern buffer. */ static struct re_pattern_buffer re_comp_buf; char * # ifdef _LIBC /* Make these definitions weak in libc, so POSIX programs can redefine these names if they don't use our functions, and still use regcomp/regexec above without link errors. */ weak_function # endif re_comp (const char *s) { reg_errcode_t ret; char *fastmap; if (!s) { if (!re_comp_buf.buffer) return gettext ("No previous regular expression"); return 0; } if (re_comp_buf.buffer) { fastmap = re_comp_buf.fastmap; re_comp_buf.fastmap = NULL; __regfree (&re_comp_buf); memset (&re_comp_buf, '\0', sizeof (re_comp_buf)); re_comp_buf.fastmap = fastmap; } if (re_comp_buf.fastmap == NULL) { re_comp_buf.fastmap = (char *) malloc (SBC_MAX); if (re_comp_buf.fastmap == NULL) return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) REG_ESPACE]); } /* Since 're_exec' always passes NULL for the 'regs' argument, we don't need to initialize the pattern buffer fields which affect it. */ /* Match anchors at newlines. */ re_comp_buf.newline_anchor = 1; ret = re_compile_internal (&re_comp_buf, s, strlen (s), re_syntax_options); if (!ret) return NULL; /* Yes, we're discarding 'const' here if !HAVE_LIBINTL. */ return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } #ifdef _LIBC libc_freeres_fn (free_mem) { __regfree (&re_comp_buf); } #endif #endif /* _REGEX_RE_COMP */ /* Internal entry point. Compile the regular expression PATTERN, whose length is LENGTH. SYNTAX indicate regular expression's syntax. */ static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, size_t length, reg_syntax_t syntax) { reg_errcode_t err = REG_NOERROR; re_dfa_t *dfa; re_string_t regexp; /* Initialize the pattern buffer. */ preg->fastmap_accurate = 0; preg->syntax = syntax; preg->not_bol = preg->not_eol = 0; preg->used = 0; preg->re_nsub = 0; preg->can_be_null = 0; preg->regs_allocated = REGS_UNALLOCATED; /* Initialize the dfa. */ dfa = preg->buffer; if (BE (preg->allocated < sizeof (re_dfa_t), 0)) { /* If zero allocated, but buffer is non-null, try to realloc enough space. This loses if buffer's address is bogus, but that is the user's responsibility. If ->buffer is NULL this is a simple allocation. */ dfa = re_realloc (preg->buffer, re_dfa_t, 1); if (dfa == NULL) return REG_ESPACE; preg->allocated = sizeof (re_dfa_t); preg->buffer = dfa; } preg->used = sizeof (re_dfa_t); err = init_dfa (dfa, length); if (BE (err == REG_NOERROR && lock_init (dfa->lock) != 0, 0)) err = REG_ESPACE; if (BE (err != REG_NOERROR, 0)) { free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; return err; } #ifdef DEBUG /* Note: length+1 will not overflow since it is checked in init_dfa. */ dfa->re_str = re_malloc (char, length + 1); strncpy (dfa->re_str, pattern, length + 1); #endif err = re_string_construct (®exp, pattern, length, preg->translate, (syntax & RE_ICASE) != 0, dfa); if (BE (err != REG_NOERROR, 0)) { re_compile_internal_free_return: free_workarea_compile (preg); re_string_destruct (®exp); lock_fini (dfa->lock); free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; return err; } /* Parse the regular expression, and build a structure tree. */ preg->re_nsub = 0; dfa->str_tree = parse (®exp, preg, syntax, &err); if (BE (dfa->str_tree == NULL, 0)) goto re_compile_internal_free_return; /* Analyze the tree and create the nfa. */ err = analyze (preg); if (BE (err != REG_NOERROR, 0)) goto re_compile_internal_free_return; #ifdef RE_ENABLE_I18N /* If possible, do searching in single byte encoding to speed things up. */ if (dfa->is_utf8 && !(syntax & RE_ICASE) && preg->translate == NULL) optimize_utf8 (dfa); #endif /* Then create the initial state of the dfa. */ err = create_initial_state (dfa); /* Release work areas. */ free_workarea_compile (preg); re_string_destruct (®exp); if (BE (err != REG_NOERROR, 0)) { lock_fini (dfa->lock); free_dfa_content (dfa); preg->buffer = NULL; preg->allocated = 0; } return err; } /* Initialize DFA. We use the length of the regular expression PAT_LEN as the initial length of some arrays. */ static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len) { __re_size_t table_size; #ifndef _LIBC const char *codeset_name; #endif #ifdef RE_ENABLE_I18N size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t)); #else size_t max_i18n_object_size = 0; #endif size_t max_object_size = MAX (sizeof (struct re_state_table_entry), MAX (sizeof (re_token_t), MAX (sizeof (re_node_set), MAX (sizeof (regmatch_t), max_i18n_object_size)))); memset (dfa, '\0', sizeof (re_dfa_t)); /* Force allocation of str_tree_storage the first time. */ dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE; /* Avoid overflows. The extra "/ 2" is for the table_size doubling calculation below, and for similar doubling calculations elsewhere. And it's <= rather than <, because some of the doubling calculations add 1 afterwards. */ if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2 <= pat_len, 0)) return REG_ESPACE; dfa->nodes_alloc = pat_len + 1; dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc); /* table_size = 2 ^ ceil(log pat_len) */ for (table_size = 1; ; table_size <<= 1) if (table_size > pat_len) break; dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size); dfa->state_hash_mask = table_size - 1; dfa->mb_cur_max = MB_CUR_MAX; #ifdef _LIBC if (dfa->mb_cur_max == 6 && strcmp (_NL_CURRENT (LC_CTYPE, _NL_CTYPE_CODESET_NAME), "UTF-8") == 0) dfa->is_utf8 = 1; dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII) != 0); #else codeset_name = nl_langinfo (CODESET); if ((codeset_name[0] == 'U' || codeset_name[0] == 'u') && (codeset_name[1] == 'T' || codeset_name[1] == 't') && (codeset_name[2] == 'F' || codeset_name[2] == 'f') && strcmp (codeset_name + 3 + (codeset_name[3] == '-'), "8") == 0) dfa->is_utf8 = 1; /* We check exhaustively in the loop below if this charset is a superset of ASCII. */ dfa->map_notascii = 0; #endif #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { if (dfa->is_utf8) dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map; else { int i, j, ch; dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); if (BE (dfa->sb_char == NULL, 0)) return REG_ESPACE; /* Set the bits corresponding to single byte chars. */ for (i = 0, ch = 0; i < BITSET_WORDS; ++i) for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) { wint_t wch = __btowc (ch); if (wch != WEOF) dfa->sb_char[i] |= (bitset_word_t) 1 << j; # ifndef _LIBC if (isascii (ch) && wch != ch) dfa->map_notascii = 1; # endif } } } #endif if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0)) return REG_ESPACE; return REG_NOERROR; } /* Initialize WORD_CHAR table, which indicate which character is "word". In this case "word" means that it is the word construction character used by some operators like "\<", "\>", etc. */ static void internal_function init_word_char (re_dfa_t *dfa) { int i = 0; int j; int ch = 0; dfa->word_ops_used = 1; if (BE (dfa->map_notascii == 0, 1)) { bitset_word_t bits0 = 0x00000000; bitset_word_t bits1 = 0x03ff0000; bitset_word_t bits2 = 0x87fffffe; bitset_word_t bits3 = 0x07fffffe; if (BITSET_WORD_BITS == 64) { dfa->word_char[0] = bits1 << 31 << 1 | bits0; dfa->word_char[1] = bits3 << 31 << 1 | bits2; i = 2; } else if (BITSET_WORD_BITS == 32) { dfa->word_char[0] = bits0; dfa->word_char[1] = bits1; dfa->word_char[2] = bits2; dfa->word_char[3] = bits3; i = 4; } else goto general_case; ch = 128; if (BE (dfa->is_utf8, 1)) { memset (&dfa->word_char[i], '\0', (SBC_MAX - ch) / 8); return; } } general_case: for (; i < BITSET_WORDS; ++i) for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) if (isalnum (ch) || ch == '_') dfa->word_char[i] |= (bitset_word_t) 1 << j; } /* Free the work area which are only used while compiling. */ static void free_workarea_compile (regex_t *preg) { re_dfa_t *dfa = preg->buffer; bin_tree_storage_t *storage, *next; for (storage = dfa->str_tree_storage; storage; storage = next) { next = storage->next; re_free (storage); } dfa->str_tree_storage = NULL; dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE; dfa->str_tree = NULL; re_free (dfa->org_indices); dfa->org_indices = NULL; } /* Create initial states for all contexts. */ static reg_errcode_t create_initial_state (re_dfa_t *dfa) { Idx first, i; reg_errcode_t err; re_node_set init_nodes; /* Initial states have the epsilon closure of the node which is the first node of the regular expression. */ first = dfa->str_tree->first->node_idx; dfa->init_node = first; err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first); if (BE (err != REG_NOERROR, 0)) return err; /* The back-references which are in initial states can epsilon transit, since in this case all of the subexpressions can be null. Then we add epsilon closures of the nodes which are the next nodes of the back-references. */ if (dfa->nbackref > 0) for (i = 0; i < init_nodes.nelem; ++i) { Idx node_idx = init_nodes.elems[i]; re_token_type_t type = dfa->nodes[node_idx].type; Idx clexp_idx; if (type != OP_BACK_REF) continue; for (clexp_idx = 0; clexp_idx < init_nodes.nelem; ++clexp_idx) { re_token_t *clexp_node; clexp_node = dfa->nodes + init_nodes.elems[clexp_idx]; if (clexp_node->type == OP_CLOSE_SUBEXP && clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx) break; } if (clexp_idx == init_nodes.nelem) continue; if (type == OP_BACK_REF) { Idx dest_idx = dfa->edests[node_idx].elems[0]; if (!re_node_set_contains (&init_nodes, dest_idx)) { reg_errcode_t merge_err = re_node_set_merge (&init_nodes, dfa->eclosures + dest_idx); if (merge_err != REG_NOERROR) return merge_err; i = 0; } } } /* It must be the first time to invoke acquire_state. */ dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0); /* We don't check ERR here, since the initial state must not be NULL. */ if (BE (dfa->init_state == NULL, 0)) return err; if (dfa->init_state->has_constraint) { dfa->init_state_word = re_acquire_state_context (&err, dfa, &init_nodes, CONTEXT_WORD); dfa->init_state_nl = re_acquire_state_context (&err, dfa, &init_nodes, CONTEXT_NEWLINE); dfa->init_state_begbuf = re_acquire_state_context (&err, dfa, &init_nodes, CONTEXT_NEWLINE | CONTEXT_BEGBUF); if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL || dfa->init_state_begbuf == NULL, 0)) return err; } else dfa->init_state_word = dfa->init_state_nl = dfa->init_state_begbuf = dfa->init_state; re_node_set_free (&init_nodes); return REG_NOERROR; } #ifdef RE_ENABLE_I18N /* If it is possible to do searching in single byte encoding instead of UTF-8 to speed things up, set dfa->mb_cur_max to 1, clear is_utf8 and change DFA nodes where needed. */ static void optimize_utf8 (re_dfa_t *dfa) { Idx node; int i; bool mb_chars = false; bool has_period = false; for (node = 0; node < dfa->nodes_len; ++node) switch (dfa->nodes[node].type) { case CHARACTER: if (dfa->nodes[node].opr.c >= ASCII_CHARS) mb_chars = true; break; case ANCHOR: switch (dfa->nodes[node].opr.ctx_type) { case LINE_FIRST: case LINE_LAST: case BUF_FIRST: case BUF_LAST: break; default: /* Word anchors etc. cannot be handled. It's okay to test opr.ctx_type since constraints (for all DFA nodes) are created by ORing one or more opr.ctx_type values. */ return; } break; case OP_PERIOD: has_period = true; break; case OP_BACK_REF: case OP_ALT: case END_OF_RE: case OP_DUP_ASTERISK: case OP_OPEN_SUBEXP: case OP_CLOSE_SUBEXP: break; case COMPLEX_BRACKET: return; case SIMPLE_BRACKET: /* Just double check. */ { int rshift = (ASCII_CHARS % BITSET_WORD_BITS == 0 ? 0 : BITSET_WORD_BITS - ASCII_CHARS % BITSET_WORD_BITS); for (i = ASCII_CHARS / BITSET_WORD_BITS; i < BITSET_WORDS; ++i) { if (dfa->nodes[node].opr.sbcset[i] >> rshift != 0) return; rshift = 0; } } break; default: abort (); } if (mb_chars || has_period) for (node = 0; node < dfa->nodes_len; ++node) { if (dfa->nodes[node].type == CHARACTER && dfa->nodes[node].opr.c >= ASCII_CHARS) dfa->nodes[node].mb_partial = 0; else if (dfa->nodes[node].type == OP_PERIOD) dfa->nodes[node].type = OP_UTF8_PERIOD; } /* The search can be in single byte locale. */ dfa->mb_cur_max = 1; dfa->is_utf8 = 0; dfa->has_mb_node = dfa->nbackref > 0 || has_period; } #endif /* Analyze the structure tree, and calculate "first", "next", "edest", "eclosure", and "inveclosure". */ static reg_errcode_t analyze (regex_t *preg) { re_dfa_t *dfa = preg->buffer; reg_errcode_t ret; /* Allocate arrays. */ dfa->nexts = re_malloc (Idx, dfa->nodes_alloc); dfa->org_indices = re_malloc (Idx, dfa->nodes_alloc); dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc); dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc); if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL || dfa->eclosures == NULL, 0)) return REG_ESPACE; dfa->subexp_map = re_malloc (Idx, preg->re_nsub); if (dfa->subexp_map != NULL) { Idx i; for (i = 0; i < preg->re_nsub; i++) dfa->subexp_map[i] = i; preorder (dfa->str_tree, optimize_subexps, dfa); for (i = 0; i < preg->re_nsub; i++) if (dfa->subexp_map[i] != i) break; if (i == preg->re_nsub) { free (dfa->subexp_map); dfa->subexp_map = NULL; } } ret = postorder (dfa->str_tree, lower_subexps, preg); if (BE (ret != REG_NOERROR, 0)) return ret; ret = postorder (dfa->str_tree, calc_first, dfa); if (BE (ret != REG_NOERROR, 0)) return ret; preorder (dfa->str_tree, calc_next, dfa); ret = preorder (dfa->str_tree, link_nfa_nodes, dfa); if (BE (ret != REG_NOERROR, 0)) return ret; ret = calc_eclosure (dfa); if (BE (ret != REG_NOERROR, 0)) return ret; /* We only need this during the prune_impossible_nodes pass in regexec.c; skip it if p_i_n will not run, as calc_inveclosure can be quadratic. */ if ((!preg->no_sub && preg->re_nsub > 0 && dfa->has_plural_match) || dfa->nbackref) { dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len); if (BE (dfa->inveclosures == NULL, 0)) return REG_ESPACE; ret = calc_inveclosure (dfa); } return ret; } /* Our parse trees are very unbalanced, so we cannot use a stack to implement parse tree visits. Instead, we use parent pointers and some hairy code in these two functions. */ static reg_errcode_t postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra) { bin_tree_t *node, *prev; for (node = root; ; ) { /* Descend down the tree, preferably to the left (or to the right if that's the only child). */ while (node->left || node->right) if (node->left) node = node->left; else node = node->right; do { reg_errcode_t err = fn (extra, node); if (BE (err != REG_NOERROR, 0)) return err; if (node->parent == NULL) return REG_NOERROR; prev = node; node = node->parent; } /* Go up while we have a node that is reached from the right. */ while (node->right == prev || node->right == NULL); node = node->right; } } static reg_errcode_t preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra) { bin_tree_t *node; for (node = root; ; ) { reg_errcode_t err = fn (extra, node); if (BE (err != REG_NOERROR, 0)) return err; /* Go to the left node, or up and to the right. */ if (node->left) node = node->left; else { bin_tree_t *prev = NULL; while (node->right == prev || node->right == NULL) { prev = node; node = node->parent; if (!node) return REG_NOERROR; } node = node->right; } } } /* Optimization pass: if a SUBEXP is entirely contained, strip it and tell re_search_internal to map the inner one's opr.idx to this one's. Adjust backreferences as well. Requires a preorder visit. */ static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; if (node->token.type == OP_BACK_REF && dfa->subexp_map) { int idx = node->token.opr.idx; node->token.opr.idx = dfa->subexp_map[idx]; dfa->used_bkref_map |= 1 << node->token.opr.idx; } else if (node->token.type == SUBEXP && node->left && node->left->token.type == SUBEXP) { Idx other_idx = node->left->token.opr.idx; node->left = node->left->left; if (node->left) node->left->parent = node; dfa->subexp_map[other_idx] = dfa->subexp_map[node->token.opr.idx]; if (other_idx < BITSET_WORD_BITS) dfa->used_bkref_map &= ~((bitset_word_t) 1 << other_idx); } return REG_NOERROR; } /* Lowering pass: Turn each SUBEXP node into the appropriate concatenation of OP_OPEN_SUBEXP, the body of the SUBEXP (if any) and OP_CLOSE_SUBEXP. */ static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node) { regex_t *preg = (regex_t *) extra; reg_errcode_t err = REG_NOERROR; if (node->left && node->left->token.type == SUBEXP) { node->left = lower_subexp (&err, preg, node->left); if (node->left) node->left->parent = node; } if (node->right && node->right->token.type == SUBEXP) { node->right = lower_subexp (&err, preg, node->right); if (node->right) node->right->parent = node; } return err; } static bin_tree_t * lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node) { re_dfa_t *dfa = preg->buffer; bin_tree_t *body = node->left; bin_tree_t *op, *cls, *tree1, *tree; if (preg->no_sub /* We do not optimize empty subexpressions, because otherwise we may have bad CONCAT nodes with NULL children. This is obviously not very common, so we do not lose much. An example that triggers this case is the sed "script" /\(\)/x. */ && node->left != NULL && (node->token.opr.idx >= BITSET_WORD_BITS || !(dfa->used_bkref_map & ((bitset_word_t) 1 << node->token.opr.idx)))) return node->left; /* Convert the SUBEXP node to the concatenation of an OP_OPEN_SUBEXP, the contents, and an OP_CLOSE_SUBEXP. */ op = create_tree (dfa, NULL, NULL, OP_OPEN_SUBEXP); cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP); tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls; tree = create_tree (dfa, op, tree1, CONCAT); if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0)) { *err = REG_ESPACE; return NULL; } op->token.opr.idx = cls->token.opr.idx = node->token.opr.idx; op->token.opt_subexp = cls->token.opt_subexp = node->token.opt_subexp; return tree; } /* Pass 1 in building the NFA: compute FIRST and create unlinked automaton nodes. Requires a postorder visit. */ static reg_errcode_t calc_first (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; if (node->token.type == CONCAT) { node->first = node->left->first; node->node_idx = node->left->node_idx; } else { node->first = node; node->node_idx = re_dfa_add_node (dfa, node->token); if (BE (node->node_idx == -1, 0)) return REG_ESPACE; if (node->token.type == ANCHOR) dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type; } return REG_NOERROR; } /* Pass 2: compute NEXT on the tree. Preorder visit. */ static reg_errcode_t calc_next (void *extra, bin_tree_t *node) { switch (node->token.type) { case OP_DUP_ASTERISK: node->left->next = node; break; case CONCAT: node->left->next = node->right->first; node->right->next = node->next; break; default: if (node->left) node->left->next = node->next; if (node->right) node->right->next = node->next; break; } return REG_NOERROR; } /* Pass 3: link all DFA nodes to their NEXT node (any order will do). */ static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; Idx idx = node->node_idx; reg_errcode_t err = REG_NOERROR; switch (node->token.type) { case CONCAT: break; case END_OF_RE: assert (node->next == NULL); break; case OP_DUP_ASTERISK: case OP_ALT: { Idx left, right; dfa->has_plural_match = 1; if (node->left != NULL) left = node->left->first->node_idx; else left = node->next->node_idx; if (node->right != NULL) right = node->right->first->node_idx; else right = node->next->node_idx; assert (left > -1); assert (right > -1); err = re_node_set_init_2 (dfa->edests + idx, left, right); } break; case ANCHOR: case OP_OPEN_SUBEXP: case OP_CLOSE_SUBEXP: err = re_node_set_init_1 (dfa->edests + idx, node->next->node_idx); break; case OP_BACK_REF: dfa->nexts[idx] = node->next->node_idx; if (node->token.type == OP_BACK_REF) err = re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]); break; default: assert (!IS_EPSILON_NODE (node->token.type)); dfa->nexts[idx] = node->next->node_idx; break; } return err; } /* Duplicate the epsilon closure of the node ROOT_NODE. Note that duplicated nodes have constraint INIT_CONSTRAINT in addition to their own constraint. */ static reg_errcode_t internal_function duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, Idx root_node, unsigned int init_constraint) { Idx org_node, clone_node; bool ok; unsigned int constraint = init_constraint; for (org_node = top_org_node, clone_node = top_clone_node;;) { Idx org_dest, clone_dest; if (dfa->nodes[org_node].type == OP_BACK_REF) { /* If the back reference epsilon-transit, its destination must also have the constraint. Then duplicate the epsilon closure of the destination of the back reference, and store it in edests of the back reference. */ org_dest = dfa->nexts[org_node]; re_node_set_empty (dfa->edests + clone_node); clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == -1, 0)) return REG_ESPACE; dfa->nexts[clone_node] = dfa->nexts[org_node]; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; } else if (dfa->edests[org_node].nelem == 0) { /* In case of the node can't epsilon-transit, don't duplicate the destination and store the original destination as the destination of the node. */ dfa->nexts[clone_node] = dfa->nexts[org_node]; break; } else if (dfa->edests[org_node].nelem == 1) { /* In case of the node can epsilon-transit, and it has only one destination. */ org_dest = dfa->edests[org_node].elems[0]; re_node_set_empty (dfa->edests + clone_node); /* If the node is root_node itself, it means the epsilon closure has a loop. Then tie it to the destination of the root_node. */ if (org_node == root_node && clone_node != org_node) { ok = re_node_set_insert (dfa->edests + clone_node, org_dest); if (BE (! ok, 0)) return REG_ESPACE; break; } /* In case the node has another constraint, append it. */ constraint |= dfa->nodes[org_node].constraint; clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == -1, 0)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; } else /* dfa->edests[org_node].nelem == 2 */ { /* In case of the node can epsilon-transit, and it has two destinations. In the bin_tree_t and DFA, that's '|' and '*'. */ org_dest = dfa->edests[org_node].elems[0]; re_node_set_empty (dfa->edests + clone_node); /* Search for a duplicated node which satisfies the constraint. */ clone_dest = search_duplicated_node (dfa, org_dest, constraint); if (clone_dest == -1) { /* There is no such duplicated node, create a new one. */ reg_errcode_t err; clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == -1, 0)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; err = duplicate_node_closure (dfa, org_dest, clone_dest, root_node, constraint); if (BE (err != REG_NOERROR, 0)) return err; } else { /* There is a duplicated node which satisfies the constraint, use it to avoid infinite loop. */ ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; } org_dest = dfa->edests[org_node].elems[1]; clone_dest = duplicate_node (dfa, org_dest, constraint); if (BE (clone_dest == -1, 0)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) return REG_ESPACE; } org_node = org_dest; clone_node = clone_dest; } return REG_NOERROR; } /* Search for a node which is duplicated from the node ORG_NODE, and satisfies the constraint CONSTRAINT. */ static Idx search_duplicated_node (const re_dfa_t *dfa, Idx org_node, unsigned int constraint) { Idx idx; for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx) { if (org_node == dfa->org_indices[idx] && constraint == dfa->nodes[idx].constraint) return idx; /* Found. */ } return -1; /* Not found. */ } /* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT. Return the index of the new node, or -1 if insufficient storage is available. */ static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint) { Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]); if (BE (dup_idx != -1, 1)) { dfa->nodes[dup_idx].constraint = constraint; dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint; dfa->nodes[dup_idx].duplicated = 1; /* Store the index of the original node. */ dfa->org_indices[dup_idx] = org_idx; } return dup_idx; } static reg_errcode_t calc_inveclosure (re_dfa_t *dfa) { Idx src, idx; bool ok; for (idx = 0; idx < dfa->nodes_len; ++idx) re_node_set_init_empty (dfa->inveclosures + idx); for (src = 0; src < dfa->nodes_len; ++src) { Idx *elems = dfa->eclosures[src].elems; for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx) { ok = re_node_set_insert_last (dfa->inveclosures + elems[idx], src); if (BE (! ok, 0)) return REG_ESPACE; } } return REG_NOERROR; } /* Calculate "eclosure" for all the node in DFA. */ static reg_errcode_t calc_eclosure (re_dfa_t *dfa) { Idx node_idx; bool incomplete; #ifdef DEBUG assert (dfa->nodes_len > 0); #endif incomplete = false; /* For each nodes, calculate epsilon closure. */ for (node_idx = 0; ; ++node_idx) { reg_errcode_t err; re_node_set eclosure_elem; if (node_idx == dfa->nodes_len) { if (!incomplete) break; incomplete = false; node_idx = 0; } #ifdef DEBUG assert (dfa->eclosures[node_idx].nelem != -1); #endif /* If we have already calculated, skip it. */ if (dfa->eclosures[node_idx].nelem != 0) continue; /* Calculate epsilon closure of 'node_idx'. */ err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, true); if (BE (err != REG_NOERROR, 0)) return err; if (dfa->eclosures[node_idx].nelem == 0) { incomplete = true; re_node_set_free (&eclosure_elem); } } return REG_NOERROR; } /* Calculate epsilon closure of NODE. */ static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) { reg_errcode_t err; Idx i; re_node_set eclosure; bool ok; bool incomplete = false; err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1); if (BE (err != REG_NOERROR, 0)) return err; /* This indicates that we are calculating this node now. We reference this value to avoid infinite loop. */ dfa->eclosures[node].nelem = -1; /* If the current node has constraints, duplicate all nodes since they must inherit the constraints. */ if (dfa->nodes[node].constraint && dfa->edests[node].nelem && !dfa->nodes[dfa->edests[node].elems[0]].duplicated) { err = duplicate_node_closure (dfa, node, node, node, dfa->nodes[node].constraint); if (BE (err != REG_NOERROR, 0)) return err; } /* Expand each epsilon destination nodes. */ if (IS_EPSILON_NODE(dfa->nodes[node].type)) for (i = 0; i < dfa->edests[node].nelem; ++i) { re_node_set eclosure_elem; Idx edest = dfa->edests[node].elems[i]; /* If calculating the epsilon closure of 'edest' is in progress, return intermediate result. */ if (dfa->eclosures[edest].nelem == -1) { incomplete = true; continue; } /* If we haven't calculated the epsilon closure of 'edest' yet, calculate now. Otherwise use calculated epsilon closure. */ if (dfa->eclosures[edest].nelem == 0) { err = calc_eclosure_iter (&eclosure_elem, dfa, edest, false); if (BE (err != REG_NOERROR, 0)) return err; } else eclosure_elem = dfa->eclosures[edest]; /* Merge the epsilon closure of 'edest'. */ err = re_node_set_merge (&eclosure, &eclosure_elem); if (BE (err != REG_NOERROR, 0)) return err; /* If the epsilon closure of 'edest' is incomplete, the epsilon closure of this node is also incomplete. */ if (dfa->eclosures[edest].nelem == 0) { incomplete = true; re_node_set_free (&eclosure_elem); } } /* An epsilon closure includes itself. */ ok = re_node_set_insert (&eclosure, node); if (BE (! ok, 0)) return REG_ESPACE; if (incomplete && !root) dfa->eclosures[node].nelem = 0; else dfa->eclosures[node] = eclosure; *new_set = eclosure; return REG_NOERROR; } /* Functions for token which are used in the parser. */ /* Fetch a token from INPUT. We must not use this function inside bracket expressions. */ static void internal_function fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax) { re_string_skip_bytes (input, peek_token (result, input, syntax)); } /* Peek a token from INPUT, and return the length of the token. We must not use this function inside bracket expressions. */ static int internal_function peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; if (re_string_eoi (input)) { token->type = END_OF_RE; return 0; } c = re_string_peek_byte (input, 0); token->opr.c = c; token->word_char = 0; #ifdef RE_ENABLE_I18N token->mb_partial = 0; if (input->mb_cur_max > 1 && !re_string_first_byte (input, re_string_cur_idx (input))) { token->type = CHARACTER; token->mb_partial = 1; return 1; } #endif if (c == '\\') { unsigned char c2; if (re_string_cur_idx (input) + 1 >= re_string_length (input)) { token->type = BACK_SLASH; return 1; } c2 = re_string_peek_byte_case (input, 1); token->opr.c = c2; token->type = CHARACTER; #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input) + 1); token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; } else #endif token->word_char = IS_WORD_CHAR (c2) != 0; switch (c2) { case '|': if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_NO_BK_VBAR)) token->type = OP_ALT; break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (!(syntax & RE_NO_BK_REFS)) { token->type = OP_BACK_REF; token->opr.idx = c2 - '1'; } break; case '<': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = WORD_FIRST; } break; case '>': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = WORD_LAST; } break; case 'b': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = WORD_DELIM; } break; case 'B': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = NOT_WORD_DELIM; } break; case 'w': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_WORD; break; case 'W': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_NOTWORD; break; case 's': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_SPACE; break; case 'S': if (!(syntax & RE_NO_GNU_OPS)) token->type = OP_NOTSPACE; break; case '`': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = BUF_FIRST; } break; case '\'': if (!(syntax & RE_NO_GNU_OPS)) { token->type = ANCHOR; token->opr.ctx_type = BUF_LAST; } break; case '(': if (!(syntax & RE_NO_BK_PARENS)) token->type = OP_OPEN_SUBEXP; break; case ')': if (!(syntax & RE_NO_BK_PARENS)) token->type = OP_CLOSE_SUBEXP; break; case '+': if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_PLUS; break; case '?': if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_QUESTION; break; case '{': if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES))) token->type = OP_OPEN_DUP_NUM; break; case '}': if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES))) token->type = OP_CLOSE_DUP_NUM; break; default: break; } return 2; } token->type = CHARACTER; #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input)); token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; } else #endif token->word_char = IS_WORD_CHAR (token->opr.c); switch (c) { case '\n': if (syntax & RE_NEWLINE_ALT) token->type = OP_ALT; break; case '|': if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_NO_BK_VBAR)) token->type = OP_ALT; break; case '*': token->type = OP_DUP_ASTERISK; break; case '+': if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_PLUS; break; case '?': if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM)) token->type = OP_DUP_QUESTION; break; case '{': if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES)) token->type = OP_OPEN_DUP_NUM; break; case '}': if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES)) token->type = OP_CLOSE_DUP_NUM; break; case '(': if (syntax & RE_NO_BK_PARENS) token->type = OP_OPEN_SUBEXP; break; case ')': if (syntax & RE_NO_BK_PARENS) token->type = OP_CLOSE_SUBEXP; break; case '[': token->type = OP_OPEN_BRACKET; break; case '.': token->type = OP_PERIOD; break; case '^': if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) && re_string_cur_idx (input) != 0) { char prev = re_string_peek_byte (input, -1); if (!(syntax & RE_NEWLINE_ALT) || prev != '\n') break; } token->type = ANCHOR; token->opr.ctx_type = LINE_FIRST; break; case '$': if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) && re_string_cur_idx (input) + 1 != re_string_length (input)) { re_token_t next; re_string_skip_bytes (input, 1); peek_token (&next, input, syntax); re_string_skip_bytes (input, -1); if (next.type != OP_ALT && next.type != OP_CLOSE_SUBEXP) break; } token->type = ANCHOR; token->opr.ctx_type = LINE_LAST; break; default: break; } return 1; } /* Peek a token from INPUT, and return the length of the token. We must not use this function out of bracket expressions. */ static int internal_function peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; if (re_string_eoi (input)) { token->type = END_OF_RE; return 0; } c = re_string_peek_byte (input, 0); token->opr.c = c; #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1 && !re_string_first_byte (input, re_string_cur_idx (input))) { token->type = CHARACTER; return 1; } #endif /* RE_ENABLE_I18N */ if (c == '\\' && (syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && re_string_cur_idx (input) + 1 < re_string_length (input)) { /* In this case, '\' escape a character. */ unsigned char c2; re_string_skip_bytes (input, 1); c2 = re_string_peek_byte (input, 0); token->opr.c = c2; token->type = CHARACTER; return 1; } if (c == '[') /* '[' is a special char in a bracket exps. */ { unsigned char c2; int token_len; if (re_string_cur_idx (input) + 1 < re_string_length (input)) c2 = re_string_peek_byte (input, 1); else c2 = 0; token->opr.c = c2; token_len = 2; switch (c2) { case '.': token->type = OP_OPEN_COLL_ELEM; break; case '=': token->type = OP_OPEN_EQUIV_CLASS; break; case ':': if (syntax & RE_CHAR_CLASSES) { token->type = OP_OPEN_CHAR_CLASS; break; } /* else fall through. */ default: token->type = CHARACTER; token->opr.c = c; token_len = 1; break; } return token_len; } switch (c) { case '-': token->type = OP_CHARSET_RANGE; break; case ']': token->type = OP_CLOSE_BRACKET; break; case '^': token->type = OP_NON_MATCH_LIST; break; default: token->type = CHARACTER; } return 1; } /* Functions for parser. */ /* Entry point of the parser. Parse the regular expression REGEXP and return the structure tree. If an error occurs, ERR is set by error code, and return NULL. This function build the following tree, from regular expression : CAT / \ / \ EOR CAT means concatenation. EOR means end of regular expression. */ static bin_tree_t * parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, reg_errcode_t *err) { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree, *eor, *root; re_token_t current_token; dfa->syntax = syntax; fetch_token (¤t_token, regexp, syntax | RE_CARET_ANCHORS_HERE); tree = parse_reg_exp (regexp, preg, ¤t_token, syntax, 0, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; eor = create_tree (dfa, NULL, NULL, END_OF_RE); if (tree != NULL) root = create_tree (dfa, tree, eor, CONCAT); else root = eor; if (BE (eor == NULL || root == NULL, 0)) { *err = REG_ESPACE; return NULL; } return root; } /* This function build the following tree, from regular expression |: ALT / \ / \ ALT means alternative, which represents the operator '|'. */ static bin_tree_t * parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err) { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree, *branch = NULL; bitset_word_t initial_bkref_map = dfa->completed_bkref_map; tree = parse_branch (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; while (token->type == OP_ALT) { fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE); if (token->type != OP_ALT && token->type != END_OF_RE && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) { bitset_word_t accumulated_bkref_map = dfa->completed_bkref_map; dfa->completed_bkref_map = initial_bkref_map; branch = parse_branch (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && branch == NULL, 0)) { if (tree != NULL) postorder (tree, free_tree, NULL); return NULL; } dfa->completed_bkref_map |= accumulated_bkref_map; } else branch = NULL; tree = create_tree (dfa, tree, branch, OP_ALT); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } return tree; } /* This function build the following tree, from regular expression : CAT / \ / \ CAT means concatenation. */ static bin_tree_t * parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err) { bin_tree_t *tree, *expr; re_dfa_t *dfa = preg->buffer; tree = parse_expression (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; while (token->type != OP_ALT && token->type != END_OF_RE && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) { expr = parse_expression (regexp, preg, token, syntax, nest, err); if (BE (*err != REG_NOERROR && expr == NULL, 0)) { if (tree != NULL) postorder (tree, free_tree, NULL); return NULL; } if (tree != NULL && expr != NULL) { bin_tree_t *newtree = create_tree (dfa, tree, expr, CONCAT); if (newtree == NULL) { postorder (expr, free_tree, NULL); postorder (tree, free_tree, NULL); *err = REG_ESPACE; return NULL; } tree = newtree; } else if (tree == NULL) tree = expr; /* Otherwise expr == NULL, we don't need to create new tree. */ } return tree; } /* This function build the following tree, from regular expression a*: * | a */ static bin_tree_t * parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err) { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree; switch (token->type) { case CHARACTER: tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { while (!re_string_eoi (regexp) && !re_string_first_byte (regexp, re_string_cur_idx (regexp))) { bin_tree_t *mbc_remain; fetch_token (token, regexp, syntax); mbc_remain = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree, mbc_remain, CONCAT); if (BE (mbc_remain == NULL || tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } } #endif break; case OP_OPEN_SUBEXP: tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_OPEN_BRACKET: tree = parse_bracket_exp (regexp, dfa, token, syntax, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_BACK_REF: if (!BE (dfa->completed_bkref_map & (1 << token->opr.idx), 1)) { *err = REG_ESUBREG; return NULL; } dfa->used_bkref_map |= 1 << token->opr.idx; tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } ++dfa->nbackref; dfa->has_mb_node = 1; break; case OP_OPEN_DUP_NUM: if (syntax & RE_CONTEXT_INVALID_DUP) { *err = REG_BADRPT; return NULL; } /* FALLTHROUGH */ case OP_DUP_ASTERISK: case OP_DUP_PLUS: case OP_DUP_QUESTION: if (syntax & RE_CONTEXT_INVALID_OPS) { *err = REG_BADRPT; return NULL; } else if (syntax & RE_CONTEXT_INDEP_OPS) { fetch_token (token, regexp, syntax); return parse_expression (regexp, preg, token, syntax, nest, err); } /* else fall through */ case OP_CLOSE_SUBEXP: if ((token->type == OP_CLOSE_SUBEXP) && !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)) { *err = REG_ERPAREN; return NULL; } /* else fall through */ case OP_CLOSE_DUP_NUM: /* We treat it as a normal character. */ /* Then we can these characters as normal characters. */ token->type = CHARACTER; /* mb_partial and word_char bits should be initialized already by peek_token. */ tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } break; case ANCHOR: if ((token->opr.ctx_type & (WORD_DELIM | NOT_WORD_DELIM | WORD_FIRST | WORD_LAST)) && dfa->word_ops_used == 0) init_word_char (dfa); if (token->opr.ctx_type == WORD_DELIM || token->opr.ctx_type == NOT_WORD_DELIM) { bin_tree_t *tree_first, *tree_last; if (token->opr.ctx_type == WORD_DELIM) { token->opr.ctx_type = WORD_FIRST; tree_first = create_token_tree (dfa, NULL, NULL, token); token->opr.ctx_type = WORD_LAST; } else { token->opr.ctx_type = INSIDE_WORD; tree_first = create_token_tree (dfa, NULL, NULL, token); token->opr.ctx_type = INSIDE_NOTWORD; } tree_last = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree_first, tree_last, OP_ALT); if (BE (tree_first == NULL || tree_last == NULL || tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } else { tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } } /* We must return here, since ANCHORs can't be followed by repetition operators. eg. RE"^*" is invalid or "", it must not be "". */ fetch_token (token, regexp, syntax); return tree; case OP_PERIOD: tree = create_token_tree (dfa, NULL, NULL, token); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } if (dfa->mb_cur_max > 1) dfa->has_mb_node = 1; break; case OP_WORD: case OP_NOTWORD: tree = build_charclass_op (dfa, regexp->trans, "alnum", "_", token->type == OP_NOTWORD, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_SPACE: case OP_NOTSPACE: tree = build_charclass_op (dfa, regexp->trans, "space", "", token->type == OP_NOTSPACE, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; break; case OP_ALT: case END_OF_RE: return NULL; case BACK_SLASH: *err = REG_EESCAPE; return NULL; default: /* Must not happen? */ #ifdef DEBUG assert (0); #endif return NULL; } fetch_token (token, regexp, syntax); while (token->type == OP_DUP_ASTERISK || token->type == OP_DUP_PLUS || token->type == OP_DUP_QUESTION || token->type == OP_OPEN_DUP_NUM) { bin_tree_t *dup_tree = parse_dup_op (tree, regexp, dfa, token, syntax, err); if (BE (*err != REG_NOERROR && dup_tree == NULL, 0)) { if (tree != NULL) postorder (tree, free_tree, NULL); return NULL; } tree = dup_tree; /* In BRE consecutive duplications are not allowed. */ if ((syntax & RE_CONTEXT_INVALID_DUP) && (token->type == OP_DUP_ASTERISK || token->type == OP_OPEN_DUP_NUM)) { if (tree != NULL) postorder (tree, free_tree, NULL); *err = REG_BADRPT; return NULL; } } return tree; } /* This function build the following tree, from regular expression (): SUBEXP | */ static bin_tree_t * parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, reg_syntax_t syntax, Idx nest, reg_errcode_t *err) { re_dfa_t *dfa = preg->buffer; bin_tree_t *tree; size_t cur_nsub; cur_nsub = preg->re_nsub++; fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE); /* The subexpression may be a null string. */ if (token->type == OP_CLOSE_SUBEXP) tree = NULL; else { tree = parse_reg_exp (regexp, preg, token, syntax, nest, err); if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0)) { if (tree != NULL) postorder (tree, free_tree, NULL); *err = REG_EPAREN; } if (BE (*err != REG_NOERROR, 0)) return NULL; } if (cur_nsub <= '9' - '1') dfa->completed_bkref_map |= 1 << cur_nsub; tree = create_tree (dfa, tree, NULL, SUBEXP); if (BE (tree == NULL, 0)) { *err = REG_ESPACE; return NULL; } tree->token.opr.idx = cur_nsub; return tree; } /* This function parse repetition operators like "*", "+", "{1,3}" etc. */ static bin_tree_t * parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err) { bin_tree_t *tree = NULL, *old_tree = NULL; Idx i, start, end, start_idx = re_string_cur_idx (regexp); re_token_t start_token = *token; if (token->type == OP_OPEN_DUP_NUM) { end = 0; start = fetch_number (regexp, token, syntax); if (start == -1) { if (token->type == CHARACTER && token->opr.c == ',') start = 0; /* We treat "{,m}" as "{0,m}". */ else { *err = REG_BADBR; /* {} is invalid. */ return NULL; } } if (BE (start != -2, 1)) { /* We treat "{n}" as "{n,n}". */ end = ((token->type == OP_CLOSE_DUP_NUM) ? start : ((token->type == CHARACTER && token->opr.c == ',') ? fetch_number (regexp, token, syntax) : -2)); } if (BE (start == -2 || end == -2, 0)) { /* Invalid sequence. */ if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0)) { if (token->type == END_OF_RE) *err = REG_EBRACE; else *err = REG_BADBR; return NULL; } /* If the syntax bit is set, rollback. */ re_string_set_index (regexp, start_idx); *token = start_token; token->type = CHARACTER; /* mb_partial and word_char bits should be already initialized by peek_token. */ return elem; } if (BE ((end != -1 && start > end) || token->type != OP_CLOSE_DUP_NUM, 0)) { /* First number greater than second. */ *err = REG_BADBR; return NULL; } if (BE (RE_DUP_MAX < (end == -1 ? start : end), 0)) { *err = REG_ESIZE; return NULL; } } else { start = (token->type == OP_DUP_PLUS) ? 1 : 0; end = (token->type == OP_DUP_QUESTION) ? 1 : -1; } fetch_token (token, regexp, syntax); if (BE (elem == NULL, 0)) return NULL; if (BE (start == 0 && end == 0, 0)) { postorder (elem, free_tree, NULL); return NULL; } /* Extract "{n,m}" to "...{0,}". */ if (BE (start > 0, 0)) { tree = elem; for (i = 2; i <= start; ++i) { elem = duplicate_tree (elem, dfa); tree = create_tree (dfa, tree, elem, CONCAT); if (BE (elem == NULL || tree == NULL, 0)) goto parse_dup_op_espace; } if (start == end) return tree; /* Duplicate ELEM before it is marked optional. */ elem = duplicate_tree (elem, dfa); if (BE (elem == NULL, 0)) goto parse_dup_op_espace; old_tree = tree; } else old_tree = NULL; if (elem->token.type == SUBEXP) { uintptr_t subidx = elem->token.opr.idx; postorder (elem, mark_opt_subexp, (void *) subidx); } tree = create_tree (dfa, elem, NULL, (end == -1 ? OP_DUP_ASTERISK : OP_ALT)); if (BE (tree == NULL, 0)) goto parse_dup_op_espace; /* From gnulib's "intprops.h": True if the arithmetic type T is signed. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* This loop is actually executed only when end != -1, to rewrite {0,n} as ((...?)?)?... We have already created the start+1-th copy. */ if (TYPE_SIGNED (Idx) || end != -1) for (i = start + 2; i <= end; ++i) { elem = duplicate_tree (elem, dfa); tree = create_tree (dfa, tree, elem, CONCAT); if (BE (elem == NULL || tree == NULL, 0)) goto parse_dup_op_espace; tree = create_tree (dfa, tree, NULL, OP_ALT); if (BE (tree == NULL, 0)) goto parse_dup_op_espace; } if (old_tree) tree = create_tree (dfa, old_tree, tree, CONCAT); return tree; parse_dup_op_espace: *err = REG_ESPACE; return NULL; } /* Size of the names for collating symbol/equivalence_class/character_class. I'm not sure, but maybe enough. */ #define BRACKET_NAME_BUF_SIZE 32 #ifndef _LIBC # ifdef RE_ENABLE_I18N /* Convert the byte B to the corresponding wide character. In a unibyte locale, treat B as itself if it is an encoding error. In a multibyte locale, return WEOF if B is an encoding error. */ static wint_t parse_byte (unsigned char b, re_charset_t *mbcset) { wint_t wc = __btowc (b); return wc == WEOF && !mbcset ? b : wc; } #endif /* Local function for parse_bracket_exp only used in case of NOT _LIBC. Build the range expression which starts from START_ELEM, and ends at END_ELEM. The result are written to MBCSET and SBCSET. RANGE_ALLOC is the allocated size of mbcset->range_starts, and mbcset->range_ends, is a pointer argument since we may update it. */ static reg_errcode_t internal_function # ifdef RE_ENABLE_I18N build_range_exp (const reg_syntax_t syntax, bitset_t sbcset, re_charset_t *mbcset, Idx *range_alloc, const bracket_elem_t *start_elem, const bracket_elem_t *end_elem) # else /* not RE_ENABLE_I18N */ build_range_exp (const reg_syntax_t syntax, bitset_t sbcset, const bracket_elem_t *start_elem, const bracket_elem_t *end_elem) # endif /* not RE_ENABLE_I18N */ { unsigned int start_ch, end_ch; /* Equivalence Classes and Character Classes can't be a range start/end. */ if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS, 0)) return REG_ERANGE; /* We can handle no multi character collating elements without libc support. */ if (BE ((start_elem->type == COLL_SYM && strlen ((char *) start_elem->opr.name) > 1) || (end_elem->type == COLL_SYM && strlen ((char *) end_elem->opr.name) > 1), 0)) return REG_ECOLLATE; # ifdef RE_ENABLE_I18N { wchar_t wc; wint_t start_wc; wint_t end_wc; start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0] : 0)); end_ch = ((end_elem->type == SB_CHAR) ? end_elem->opr.ch : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] : 0)); start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM) ? parse_byte (start_ch, mbcset) : start_elem->opr.wch); end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM) ? parse_byte (end_ch, mbcset) : end_elem->opr.wch); if (start_wc == WEOF || end_wc == WEOF) return REG_ECOLLATE; else if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_wc > end_wc, 0)) return REG_ERANGE; /* Got valid collation sequence values, add them as a new entry. However, for !_LIBC we have no collation elements: if the character set is single byte, the single byte character set that we build below suffices. parse_bracket_exp passes no MBCSET if dfa->mb_cur_max == 1. */ if (mbcset) { /* Check the space of the arrays. */ if (BE (*range_alloc == mbcset->nranges, 0)) { /* There is not enough space, need realloc. */ wchar_t *new_array_start, *new_array_end; Idx new_nranges; /* +1 in case of mbcset->nranges is 0. */ new_nranges = 2 * mbcset->nranges + 1; /* Use realloc since mbcset->range_starts and mbcset->range_ends are NULL if *range_alloc == 0. */ new_array_start = re_realloc (mbcset->range_starts, wchar_t, new_nranges); new_array_end = re_realloc (mbcset->range_ends, wchar_t, new_nranges); if (BE (new_array_start == NULL || new_array_end == NULL, 0)) { re_free (new_array_start); re_free (new_array_end); return REG_ESPACE; } mbcset->range_starts = new_array_start; mbcset->range_ends = new_array_end; *range_alloc = new_nranges; } mbcset->range_starts[mbcset->nranges] = start_wc; mbcset->range_ends[mbcset->nranges++] = end_wc; } /* Build the table for single byte characters. */ for (wc = 0; wc < SBC_MAX; ++wc) { if (start_wc <= wc && wc <= end_wc) bitset_set (sbcset, wc); } } # else /* not RE_ENABLE_I18N */ { unsigned int ch; start_ch = ((start_elem->type == SB_CHAR ) ? start_elem->opr.ch : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0] : 0)); end_ch = ((end_elem->type == SB_CHAR ) ? end_elem->opr.ch : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] : 0)); if (start_ch > end_ch) return REG_ERANGE; /* Build the table for single byte characters. */ for (ch = 0; ch < SBC_MAX; ++ch) if (start_ch <= ch && ch <= end_ch) bitset_set (sbcset, ch); } # endif /* not RE_ENABLE_I18N */ return REG_NOERROR; } #endif /* not _LIBC */ #ifndef _LIBC /* Helper function for parse_bracket_exp only used in case of NOT _LIBC.. Build the collating element which is represented by NAME. The result are written to MBCSET and SBCSET. COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a pointer argument since we may update it. */ static reg_errcode_t internal_function # ifdef RE_ENABLE_I18N build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, Idx *coll_sym_alloc, const unsigned char *name) # else /* not RE_ENABLE_I18N */ build_collating_symbol (bitset_t sbcset, const unsigned char *name) # endif /* not RE_ENABLE_I18N */ { size_t name_len = strlen ((const char *) name); if (BE (name_len != 1, 0)) return REG_ECOLLATE; else { bitset_set (sbcset, name[0]); return REG_NOERROR; } } #endif /* not _LIBC */ /* This function parse bracket expression like "[abc]", "[a-c]", "[[.a-a.]]" etc. */ static bin_tree_t * parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err) { #ifdef _LIBC const unsigned char *collseqmb; const char *collseqwc; uint32_t nrules; int32_t table_size; const int32_t *symb_table; const unsigned char *extra; /* Local function for parse_bracket_exp used in _LIBC environment. Seek the collating symbol entry corresponding to NAME. Return the index of the symbol in the SYMB_TABLE, or -1 if not found. */ auto inline int32_t __attribute__ ((always_inline)) seek_collating_symbol_entry (const unsigned char *name, size_t name_len) { int32_t elem; for (elem = 0; elem < table_size; elem++) if (symb_table[2 * elem] != 0) { int32_t idx = symb_table[2 * elem + 1]; /* Skip the name of collating element name. */ idx += 1 + extra[idx]; if (/* Compare the length of the name. */ name_len == extra[idx] /* Compare the name. */ && memcmp (name, &extra[idx + 1], name_len) == 0) /* Yep, this is the entry. */ return elem; } return -1; } /* Local function for parse_bracket_exp used in _LIBC environment. Look up the collation sequence value of BR_ELEM. Return the value if succeeded, UINT_MAX otherwise. */ auto inline unsigned int __attribute__ ((always_inline)) lookup_collation_sequence_value (bracket_elem_t *br_elem) { if (br_elem->type == SB_CHAR) { /* if (MB_CUR_MAX == 1) */ if (nrules == 0) return collseqmb[br_elem->opr.ch]; else { wint_t wc = __btowc (br_elem->opr.ch); return __collseq_table_lookup (collseqwc, wc); } } else if (br_elem->type == MB_CHAR) { if (nrules != 0) return __collseq_table_lookup (collseqwc, br_elem->opr.wch); } else if (br_elem->type == COLL_SYM) { size_t sym_name_len = strlen ((char *) br_elem->opr.name); if (nrules != 0) { int32_t elem, idx; elem = seek_collating_symbol_entry (br_elem->opr.name, sym_name_len); if (elem != -1) { /* We found the entry. */ idx = symb_table[2 * elem + 1]; /* Skip the name of collating element name. */ idx += 1 + extra[idx]; /* Skip the byte sequence of the collating element. */ idx += 1 + extra[idx]; /* Adjust for the alignment. */ idx = (idx + 3) & ~3; /* Skip the multibyte collation sequence value. */ idx += sizeof (unsigned int); /* Skip the wide char sequence of the collating element. */ idx += sizeof (unsigned int) * (1 + *(unsigned int *) (extra + idx)); /* Return the collation sequence value. */ return *(unsigned int *) (extra + idx); } else if (sym_name_len == 1) { /* No valid character. Match it as a single byte character. */ return collseqmb[br_elem->opr.name[0]]; } } else if (sym_name_len == 1) return collseqmb[br_elem->opr.name[0]]; } return UINT_MAX; } /* Local function for parse_bracket_exp used in _LIBC environment. Build the range expression which starts from START_ELEM, and ends at END_ELEM. The result are written to MBCSET and SBCSET. RANGE_ALLOC is the allocated size of mbcset->range_starts, and mbcset->range_ends, is a pointer argument since we may update it. */ auto inline reg_errcode_t __attribute__ ((always_inline)) build_range_exp (bitset_t sbcset, re_charset_t *mbcset, int *range_alloc, bracket_elem_t *start_elem, bracket_elem_t *end_elem) { unsigned int ch; uint32_t start_collseq; uint32_t end_collseq; /* Equivalence Classes and Character Classes can't be a range start/end. */ if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS, 0)) return REG_ERANGE; /* FIXME: Implement rational ranges here, too. */ start_collseq = lookup_collation_sequence_value (start_elem); end_collseq = lookup_collation_sequence_value (end_elem); /* Check start/end collation sequence values. */ if (BE (start_collseq == UINT_MAX || end_collseq == UINT_MAX, 0)) return REG_ECOLLATE; if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_collseq > end_collseq, 0)) return REG_ERANGE; /* Got valid collation sequence values, add them as a new entry. However, if we have no collation elements, and the character set is single byte, the single byte character set that we build below suffices. */ if (nrules > 0 || dfa->mb_cur_max > 1) { /* Check the space of the arrays. */ if (BE (*range_alloc == mbcset->nranges, 0)) { /* There is not enough space, need realloc. */ uint32_t *new_array_start; uint32_t *new_array_end; Idx new_nranges; /* +1 in case of mbcset->nranges is 0. */ new_nranges = 2 * mbcset->nranges + 1; new_array_start = re_realloc (mbcset->range_starts, uint32_t, new_nranges); new_array_end = re_realloc (mbcset->range_ends, uint32_t, new_nranges); if (BE (new_array_start == NULL || new_array_end == NULL, 0)) return REG_ESPACE; mbcset->range_starts = new_array_start; mbcset->range_ends = new_array_end; *range_alloc = new_nranges; } mbcset->range_starts[mbcset->nranges] = start_collseq; mbcset->range_ends[mbcset->nranges++] = end_collseq; } /* Build the table for single byte characters. */ for (ch = 0; ch < SBC_MAX; ch++) { uint32_t ch_collseq; /* if (MB_CUR_MAX == 1) */ if (nrules == 0) ch_collseq = collseqmb[ch]; else ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch)); if (start_collseq <= ch_collseq && ch_collseq <= end_collseq) bitset_set (sbcset, ch); } return REG_NOERROR; } /* Local function for parse_bracket_exp used in _LIBC environment. Build the collating element which is represented by NAME. The result are written to MBCSET and SBCSET. COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a pointer argument since we may update it. */ auto inline reg_errcode_t __attribute__ ((always_inline)) build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, Idx *coll_sym_alloc, const unsigned char *name) { int32_t elem, idx; size_t name_len = strlen ((const char *) name); if (nrules != 0) { elem = seek_collating_symbol_entry (name, name_len); if (elem != -1) { /* We found the entry. */ idx = symb_table[2 * elem + 1]; /* Skip the name of collating element name. */ idx += 1 + extra[idx]; } else if (name_len == 1) { /* No valid character, treat it as a normal character. */ bitset_set (sbcset, name[0]); return REG_NOERROR; } else return REG_ECOLLATE; /* Got valid collation sequence, add it as a new entry. */ /* Check the space of the arrays. */ if (BE (*coll_sym_alloc == mbcset->ncoll_syms, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->ncoll_syms is 0. */ Idx new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1; /* Use realloc since mbcset->coll_syms is NULL if *alloc == 0. */ int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t, new_coll_sym_alloc); if (BE (new_coll_syms == NULL, 0)) return REG_ESPACE; mbcset->coll_syms = new_coll_syms; *coll_sym_alloc = new_coll_sym_alloc; } mbcset->coll_syms[mbcset->ncoll_syms++] = idx; return REG_NOERROR; } else { if (BE (name_len != 1, 0)) return REG_ECOLLATE; else { bitset_set (sbcset, name[0]); return REG_NOERROR; } } } #endif re_token_t br_token; re_bitset_ptr_t sbcset; #ifdef RE_ENABLE_I18N re_charset_t *mbcset; Idx coll_sym_alloc = 0, range_alloc = 0, mbchar_alloc = 0; Idx equiv_class_alloc = 0, char_class_alloc = 0; #endif /* not RE_ENABLE_I18N */ bool non_match = false; bin_tree_t *work_tree; int token_len; bool first_round = true; #ifdef _LIBC collseqmb = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB); nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules) { /* if (MB_CUR_MAX > 1) */ collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); table_size = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_SYMB_HASH_SIZEMB); symb_table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_TABLEMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); } #endif sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); #ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); #endif /* RE_ENABLE_I18N */ #ifdef RE_ENABLE_I18N if (BE (sbcset == NULL || mbcset == NULL, 0)) #else if (BE (sbcset == NULL, 0)) #endif /* RE_ENABLE_I18N */ { re_free (sbcset); #ifdef RE_ENABLE_I18N re_free (mbcset); #endif *err = REG_ESPACE; return NULL; } token_len = peek_token_bracket (token, regexp, syntax); if (BE (token->type == END_OF_RE, 0)) { *err = REG_BADPAT; goto parse_bracket_exp_free_return; } if (token->type == OP_NON_MATCH_LIST) { #ifdef RE_ENABLE_I18N mbcset->non_match = 1; #endif /* not RE_ENABLE_I18N */ non_match = true; if (syntax & RE_HAT_LISTS_NOT_NEWLINE) bitset_set (sbcset, '\n'); re_string_skip_bytes (regexp, token_len); /* Skip a token. */ token_len = peek_token_bracket (token, regexp, syntax); if (BE (token->type == END_OF_RE, 0)) { *err = REG_BADPAT; goto parse_bracket_exp_free_return; } } /* We treat the first ']' as a normal character. */ if (token->type == OP_CLOSE_BRACKET) token->type = CHARACTER; while (1) { bracket_elem_t start_elem, end_elem; unsigned char start_name_buf[BRACKET_NAME_BUF_SIZE]; unsigned char end_name_buf[BRACKET_NAME_BUF_SIZE]; reg_errcode_t ret; int token_len2 = 0; bool is_range_exp = false; re_token_t token2; start_elem.opr.name = start_name_buf; start_elem.type = COLL_SYM; ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa, syntax, first_round); if (BE (ret != REG_NOERROR, 0)) { *err = ret; goto parse_bracket_exp_free_return; } first_round = false; /* Get information about the next token. We need it in any case. */ token_len = peek_token_bracket (token, regexp, syntax); /* Do not check for ranges if we know they are not allowed. */ if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS) { if (BE (token->type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; } if (token->type == OP_CHARSET_RANGE) { re_string_skip_bytes (regexp, token_len); /* Skip '-'. */ token_len2 = peek_token_bracket (&token2, regexp, syntax); if (BE (token2.type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; } if (token2.type == OP_CLOSE_BRACKET) { /* We treat the last '-' as a normal character. */ re_string_skip_bytes (regexp, -token_len); token->type = CHARACTER; } else is_range_exp = true; } } if (is_range_exp == true) { end_elem.opr.name = end_name_buf; end_elem.type = COLL_SYM; ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2, dfa, syntax, true); if (BE (ret != REG_NOERROR, 0)) { *err = ret; goto parse_bracket_exp_free_return; } token_len = peek_token_bracket (token, regexp, syntax); #ifdef _LIBC *err = build_range_exp (sbcset, mbcset, &range_alloc, &start_elem, &end_elem); #else # ifdef RE_ENABLE_I18N *err = build_range_exp (syntax, sbcset, dfa->mb_cur_max > 1 ? mbcset : NULL, &range_alloc, &start_elem, &end_elem); # else *err = build_range_exp (syntax, sbcset, &start_elem, &end_elem); # endif #endif /* RE_ENABLE_I18N */ if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; } else { switch (start_elem.type) { case SB_CHAR: bitset_set (sbcset, start_elem.opr.ch); break; #ifdef RE_ENABLE_I18N case MB_CHAR: /* Check whether the array has enough space. */ if (BE (mbchar_alloc == mbcset->nmbchars, 0)) { wchar_t *new_mbchars; /* Not enough, realloc it. */ /* +1 in case of mbcset->nmbchars is 0. */ mbchar_alloc = 2 * mbcset->nmbchars + 1; /* Use realloc since array is NULL if *alloc == 0. */ new_mbchars = re_realloc (mbcset->mbchars, wchar_t, mbchar_alloc); if (BE (new_mbchars == NULL, 0)) goto parse_bracket_exp_espace; mbcset->mbchars = new_mbchars; } mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch; break; #endif /* RE_ENABLE_I18N */ case EQUIV_CLASS: *err = build_equiv_class (sbcset, #ifdef RE_ENABLE_I18N mbcset, &equiv_class_alloc, #endif /* RE_ENABLE_I18N */ start_elem.opr.name); if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; case COLL_SYM: *err = build_collating_symbol (sbcset, #ifdef RE_ENABLE_I18N mbcset, &coll_sym_alloc, #endif /* RE_ENABLE_I18N */ start_elem.opr.name); if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; case CHAR_CLASS: *err = build_charclass (regexp->trans, sbcset, #ifdef RE_ENABLE_I18N mbcset, &char_class_alloc, #endif /* RE_ENABLE_I18N */ (const char *) start_elem.opr.name, syntax); if (BE (*err != REG_NOERROR, 0)) goto parse_bracket_exp_free_return; break; default: assert (0); break; } } if (BE (token->type == END_OF_RE, 0)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; } if (token->type == OP_CLOSE_BRACKET) break; } re_string_skip_bytes (regexp, token_len); /* Skip a token. */ /* If it is non-matching list. */ if (non_match) bitset_not (sbcset); #ifdef RE_ENABLE_I18N /* Ensure only single byte characters are set. */ if (dfa->mb_cur_max > 1) bitset_mask (sbcset, dfa->sb_char); if (mbcset->nmbchars || mbcset->ncoll_syms || mbcset->nequiv_classes || mbcset->nranges || (dfa->mb_cur_max > 1 && (mbcset->nchar_classes || mbcset->non_match))) { bin_tree_t *mbc_tree; int sbc_idx; /* Build a tree for complex bracket. */ dfa->has_mb_node = 1; br_token.type = COMPLEX_BRACKET; br_token.opr.mbcset = mbcset; mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (mbc_tree == NULL, 0)) goto parse_bracket_exp_espace; for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx) if (sbcset[sbc_idx]) break; /* If there are no bits set in sbcset, there is no point of having both SIMPLE_BRACKET and COMPLEX_BRACKET. */ if (sbc_idx < BITSET_WORDS) { /* Build a tree for simple bracket. */ br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; /* Then join them by ALT node. */ work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT); if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; } else { re_free (sbcset); work_tree = mbc_tree; } } else #endif /* not RE_ENABLE_I18N */ { #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* Build a tree for simple bracket. */ br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (work_tree == NULL, 0)) goto parse_bracket_exp_espace; } return work_tree; parse_bracket_exp_espace: *err = REG_ESPACE; parse_bracket_exp_free_return: re_free (sbcset); #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* RE_ENABLE_I18N */ return NULL; } /* Parse an element in the bracket expression. */ static reg_errcode_t parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token, int token_len, re_dfa_t *dfa, reg_syntax_t syntax, bool accept_hyphen) { #ifdef RE_ENABLE_I18N int cur_char_size; cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp)); if (cur_char_size > 1) { elem->type = MB_CHAR; elem->opr.wch = re_string_wchar_at (regexp, re_string_cur_idx (regexp)); re_string_skip_bytes (regexp, cur_char_size); return REG_NOERROR; } #endif /* RE_ENABLE_I18N */ re_string_skip_bytes (regexp, token_len); /* Skip a token. */ if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS || token->type == OP_OPEN_EQUIV_CLASS) return parse_bracket_symbol (elem, regexp, token); if (BE (token->type == OP_CHARSET_RANGE, 0) && !accept_hyphen) { /* A '-' must only appear as anything but a range indicator before the closing bracket. Everything else is an error. */ re_token_t token2; (void) peek_token_bracket (&token2, regexp, syntax); if (token2.type != OP_CLOSE_BRACKET) /* The actual error value is not standardized since this whole case is undefined. But ERANGE makes good sense. */ return REG_ERANGE; } elem->type = SB_CHAR; elem->opr.ch = token->opr.c; return REG_NOERROR; } /* Parse a bracket symbol in the bracket expression. Bracket symbols are such as [::], [..], and [==]. */ static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token) { unsigned char ch, delim = token->opr.c; int i = 0; if (re_string_eoi(regexp)) return REG_EBRACK; for (;; ++i) { if (i >= BRACKET_NAME_BUF_SIZE) return REG_EBRACK; if (token->type == OP_OPEN_CHAR_CLASS) ch = re_string_fetch_byte_case (regexp); else ch = re_string_fetch_byte (regexp); if (re_string_eoi(regexp)) return REG_EBRACK; if (ch == delim && re_string_peek_byte (regexp, 0) == ']') break; elem->opr.name[i] = ch; } re_string_skip_bytes (regexp, 1); elem->opr.name[i] = '\0'; switch (token->type) { case OP_OPEN_COLL_ELEM: elem->type = COLL_SYM; break; case OP_OPEN_EQUIV_CLASS: elem->type = EQUIV_CLASS; break; case OP_OPEN_CHAR_CLASS: elem->type = CHAR_CLASS; break; default: break; } return REG_NOERROR; } /* Helper function for parse_bracket_exp. Build the equivalence class which is represented by NAME. The result are written to MBCSET and SBCSET. EQUIV_CLASS_ALLOC is the allocated size of mbcset->equiv_classes, is a pointer argument since we may update it. */ static reg_errcode_t #ifdef RE_ENABLE_I18N build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, Idx *equiv_class_alloc, const unsigned char *name) #else /* not RE_ENABLE_I18N */ build_equiv_class (bitset_t sbcset, const unsigned char *name) #endif /* not RE_ENABLE_I18N */ { #ifdef _LIBC uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { const int32_t *table, *indirect; const unsigned char *weights, *extra, *cp; unsigned char char_buf[2]; int32_t idx1, idx2; unsigned int ch; size_t len; /* Calculate the index for equivalence class. */ cp = name; table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); idx1 = findidx (table, indirect, extra, &cp, -1); if (BE (idx1 == 0 || *cp != '\0', 0)) /* This isn't a valid character. */ return REG_ECOLLATE; /* Build single byte matching table for this equivalence class. */ len = weights[idx1 & 0xffffff]; for (ch = 0; ch < SBC_MAX; ++ch) { char_buf[0] = ch; cp = char_buf; idx2 = findidx (table, indirect, extra, &cp, 1); /* idx2 = table[ch]; */ if (idx2 == 0) /* This isn't a valid character. */ continue; /* Compare only if the length matches and the collation rule index is the same. */ if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24)) { int cnt = 0; while (cnt <= len && weights[(idx1 & 0xffffff) + 1 + cnt] == weights[(idx2 & 0xffffff) + 1 + cnt]) ++cnt; if (cnt > len) bitset_set (sbcset, ch); } } /* Check whether the array has enough space. */ if (BE (*equiv_class_alloc == mbcset->nequiv_classes, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->nequiv_classes is 0. */ Idx new_equiv_class_alloc = 2 * mbcset->nequiv_classes + 1; /* Use realloc since the array is NULL if *alloc == 0. */ int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes, int32_t, new_equiv_class_alloc); if (BE (new_equiv_classes == NULL, 0)) return REG_ESPACE; mbcset->equiv_classes = new_equiv_classes; *equiv_class_alloc = new_equiv_class_alloc; } mbcset->equiv_classes[mbcset->nequiv_classes++] = idx1; } else #endif /* _LIBC */ { if (BE (strlen ((const char *) name) != 1, 0)) return REG_ECOLLATE; bitset_set (sbcset, *name); } return REG_NOERROR; } /* Helper function for parse_bracket_exp. Build the character class which is represented by NAME. The result are written to MBCSET and SBCSET. CHAR_CLASS_ALLOC is the allocated size of mbcset->char_classes, is a pointer argument since we may update it. */ static reg_errcode_t #ifdef RE_ENABLE_I18N build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, re_charset_t *mbcset, Idx *char_class_alloc, const char *class_name, reg_syntax_t syntax) #else /* not RE_ENABLE_I18N */ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, const char *class_name, reg_syntax_t syntax) #endif /* not RE_ENABLE_I18N */ { int i; const char *name = class_name; /* In case of REG_ICASE "upper" and "lower" match the both of upper and lower cases. */ if ((syntax & RE_ICASE) && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0)) name = "alpha"; #ifdef RE_ENABLE_I18N /* Check the space of the arrays. */ if (BE (*char_class_alloc == mbcset->nchar_classes, 0)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->nchar_classes is 0. */ Idx new_char_class_alloc = 2 * mbcset->nchar_classes + 1; /* Use realloc since array is NULL if *alloc == 0. */ wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t, new_char_class_alloc); if (BE (new_char_classes == NULL, 0)) return REG_ESPACE; mbcset->char_classes = new_char_classes; *char_class_alloc = new_char_class_alloc; } mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name); #endif /* RE_ENABLE_I18N */ #define BUILD_CHARCLASS_LOOP(ctype_func) \ do { \ if (BE (trans != NULL, 0)) \ { \ for (i = 0; i < SBC_MAX; ++i) \ if (ctype_func (i)) \ bitset_set (sbcset, trans[i]); \ } \ else \ { \ for (i = 0; i < SBC_MAX; ++i) \ if (ctype_func (i)) \ bitset_set (sbcset, i); \ } \ } while (0) if (strcmp (name, "alnum") == 0) BUILD_CHARCLASS_LOOP (isalnum); else if (strcmp (name, "cntrl") == 0) BUILD_CHARCLASS_LOOP (iscntrl); else if (strcmp (name, "lower") == 0) BUILD_CHARCLASS_LOOP (islower); else if (strcmp (name, "space") == 0) BUILD_CHARCLASS_LOOP (isspace); else if (strcmp (name, "alpha") == 0) BUILD_CHARCLASS_LOOP (isalpha); else if (strcmp (name, "digit") == 0) BUILD_CHARCLASS_LOOP (isdigit); else if (strcmp (name, "print") == 0) BUILD_CHARCLASS_LOOP (isprint); else if (strcmp (name, "upper") == 0) BUILD_CHARCLASS_LOOP (isupper); else if (strcmp (name, "blank") == 0) BUILD_CHARCLASS_LOOP (isblank); else if (strcmp (name, "graph") == 0) BUILD_CHARCLASS_LOOP (isgraph); else if (strcmp (name, "punct") == 0) BUILD_CHARCLASS_LOOP (ispunct); else if (strcmp (name, "xdigit") == 0) BUILD_CHARCLASS_LOOP (isxdigit); else return REG_ECTYPE; return REG_NOERROR; } static bin_tree_t * build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, const char *class_name, const char *extra, bool non_match, reg_errcode_t *err) { re_bitset_ptr_t sbcset; #ifdef RE_ENABLE_I18N re_charset_t *mbcset; Idx alloc = 0; #endif /* not RE_ENABLE_I18N */ reg_errcode_t ret; re_token_t br_token; bin_tree_t *tree; sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); if (BE (sbcset == NULL, 0)) { *err = REG_ESPACE; return NULL; } #ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); if (BE (mbcset == NULL, 0)) { re_free (sbcset); *err = REG_ESPACE; return NULL; } mbcset->non_match = non_match; #endif /* RE_ENABLE_I18N */ /* We don't care the syntax in this case. */ ret = build_charclass (trans, sbcset, #ifdef RE_ENABLE_I18N mbcset, &alloc, #endif /* RE_ENABLE_I18N */ class_name, 0); if (BE (ret != REG_NOERROR, 0)) { re_free (sbcset); #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* RE_ENABLE_I18N */ *err = ret; return NULL; } /* \w match '_' also. */ for (; *extra; extra++) bitset_set (sbcset, *extra); /* If it is non-matching list. */ if (non_match) bitset_not (sbcset); #ifdef RE_ENABLE_I18N /* Ensure only single byte characters are set. */ if (dfa->mb_cur_max > 1) bitset_mask (sbcset, dfa->sb_char); #endif /* Build a tree for simple bracket. */ #if defined GCC_LINT || defined lint memset (&br_token, 0, sizeof br_token); #endif br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (tree == NULL, 0)) goto build_word_op_espace; #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { bin_tree_t *mbc_tree; /* Build a tree for complex bracket. */ br_token.type = COMPLEX_BRACKET; br_token.opr.mbcset = mbcset; dfa->has_mb_node = 1; mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (mbc_tree == NULL, 0)) goto build_word_op_espace; /* Then join them by ALT node. */ tree = create_tree (dfa, tree, mbc_tree, OP_ALT); if (BE (mbc_tree != NULL, 1)) return tree; } else { free_charset (mbcset); return tree; } #else /* not RE_ENABLE_I18N */ return tree; #endif /* not RE_ENABLE_I18N */ build_word_op_espace: re_free (sbcset); #ifdef RE_ENABLE_I18N free_charset (mbcset); #endif /* RE_ENABLE_I18N */ *err = REG_ESPACE; return NULL; } /* This is intended for the expressions like "a{1,3}". Fetch a number from 'input', and return the number. Return -1 if the number field is empty like "{,1}". Return RE_DUP_MAX + 1 if the number field is too large. Return -2 if an error occurred. */ static Idx fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax) { Idx num = -1; unsigned char c; while (1) { fetch_token (token, input, syntax); c = token->opr.c; if (BE (token->type == END_OF_RE, 0)) return -2; if (token->type == OP_CLOSE_DUP_NUM || c == ',') break; num = ((token->type != CHARACTER || c < '0' || '9' < c || num == -2) ? -2 : num == -1 ? c - '0' : MIN (RE_DUP_MAX + 1, num * 10 + c - '0')); } return num; } #ifdef RE_ENABLE_I18N static void free_charset (re_charset_t *cset) { re_free (cset->mbchars); # ifdef _LIBC re_free (cset->coll_syms); re_free (cset->equiv_classes); re_free (cset->range_starts); re_free (cset->range_ends); # endif re_free (cset->char_classes); re_free (cset); } #endif /* RE_ENABLE_I18N */ /* Functions for binary tree operation. */ /* Create a tree node. */ static bin_tree_t * create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, re_token_type_t type) { re_token_t t; #if defined GCC_LINT || defined lint memset (&t, 0, sizeof t); #endif t.type = type; return create_token_tree (dfa, left, right, &t); } static bin_tree_t * create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, const re_token_t *token) { bin_tree_t *tree; if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0)) { bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1); if (storage == NULL) return NULL; storage->next = dfa->str_tree_storage; dfa->str_tree_storage = storage; dfa->str_tree_storage_idx = 0; } tree = &dfa->str_tree_storage->data[dfa->str_tree_storage_idx++]; tree->parent = NULL; tree->left = left; tree->right = right; tree->token = *token; tree->token.duplicated = 0; tree->token.opt_subexp = 0; tree->first = NULL; tree->next = NULL; tree->node_idx = -1; if (left != NULL) left->parent = tree; if (right != NULL) right->parent = tree; return tree; } /* Mark the tree SRC as an optional subexpression. To be called from preorder or postorder. */ static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node) { Idx idx = (uintptr_t) extra; if (node->token.type == SUBEXP && node->token.opr.idx == idx) node->token.opt_subexp = 1; return REG_NOERROR; } /* Free the allocated memory inside NODE. */ static void free_token (re_token_t *node) { #ifdef RE_ENABLE_I18N if (node->type == COMPLEX_BRACKET && node->duplicated == 0) free_charset (node->opr.mbcset); else #endif /* RE_ENABLE_I18N */ if (node->type == SIMPLE_BRACKET && node->duplicated == 0) re_free (node->opr.sbcset); } /* Worker function for tree walking. Free the allocated memory inside NODE and its children. */ static reg_errcode_t free_tree (void *extra, bin_tree_t *node) { free_token (&node->token); return REG_NOERROR; } /* Duplicate the node SRC, and return new node. This is a preorder visit similar to the one implemented by the generic visitor, but we need more infrastructure to maintain two parallel trees --- so, it's easier to duplicate. */ static bin_tree_t * duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa) { const bin_tree_t *node; bin_tree_t *dup_root; bin_tree_t **p_new = &dup_root, *dup_node = root->parent; for (node = root; ; ) { /* Create a new tree and link it back to the current parent. */ *p_new = create_token_tree (dfa, NULL, NULL, &node->token); if (*p_new == NULL) return NULL; (*p_new)->parent = dup_node; (*p_new)->token.duplicated = 1; dup_node = *p_new; /* Go to the left node, or up and to the right. */ if (node->left) { node = node->left; p_new = &dup_node->left; } else { const bin_tree_t *prev = NULL; while (node->right == prev || node->right == NULL) { prev = node; node = node->parent; dup_node = dup_node->parent; if (!node) return dup_root; } node = node->right; p_new = &dup_node->right; } } } gcal-4.1/lib/log.c0000664000000000000000000000215413041163522010647 00000000000000/* Logarithm. Copyright (C) 2012-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include double log (double x) #undef log { if (x <= 0.0) { /* Work around the OSF/1 5.1 bug. */ if (x == 0.0) /* Return -Infinity. */ return -1.0 / 0.0; /* Work around the NetBSD 5.1, Solaris 11 2011-11 bug. */ else /* x < 0.0 */ /* Return NaN. */ return 0.0 / 0.0; } return log (x); } gcal-4.1/lib/strcspn.c0000664000000000000000000000233613041163523011565 00000000000000/* Copyright (C) 1991, 1994, 1996-1997, 2002-2003, 2005-2006, 2009-2017 Free * Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@gnu.org. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include #undef strcspn /* Return the length of the maximum initial segment of S which contains no characters from REJECT. */ size_t strcspn (const char *s, const char *reject) { size_t count = 0; while (*s != '\0') if (strchr (reject, *s++) == NULL) ++count; else return count; return count; } gcal-4.1/lib/exitfail.h0000664000000000000000000000140213041163522011673 00000000000000/* Failure exit status Copyright (C) 2002, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ extern int volatile exit_failure; gcal-4.1/lib/spawn.in.h0000664000000000000000000010756713041163523011647 00000000000000/* Definitions for POSIX spawn interface. Copyright (C) 2000, 2003-2004, 2008-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _@GUARD_PREFIX@_SPAWN_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_SPAWN_H@ # @INCLUDE_NEXT@ @NEXT_SPAWN_H@ #endif #ifndef _@GUARD_PREFIX@_SPAWN_H #define _@GUARD_PREFIX@_SPAWN_H /* Get definitions of 'struct sched_param' and 'sigset_t'. But avoid namespace pollution on glibc systems. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include #endif #include #ifndef __THROW # define __THROW #endif /* GCC 2.95 and later have "__restrict"; C99 compilers have "restrict", and "configure" may have defined "restrict". Other compilers use __restrict, __restrict__, and _Restrict, and 'configure' might #define 'restrict' to those words, so pick a different name. */ #ifndef _Restrict_ # if 199901L <= __STDC_VERSION__ # define _Restrict_ restrict # elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__) # define _Restrict_ __restrict # else # define _Restrict_ # endif #endif /* gcc 3.1 and up support the [restrict] syntax. Don't trust sys/cdefs.h's definition of __restrict_arr, though, as it mishandles gcc -ansi -pedantic. */ #ifndef _Restrict_arr_ # if ((199901L <= __STDC_VERSION__ \ || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) \ && !defined __STRICT_ANSI__)) \ && !defined __GNUG__) # define _Restrict_arr_ _Restrict_ # else # define _Restrict_arr_ # endif #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Data structure to contain attributes for thread creation. */ #if @REPLACE_POSIX_SPAWN@ # define posix_spawnattr_t rpl_posix_spawnattr_t #endif #if @REPLACE_POSIX_SPAWN@ || !@HAVE_POSIX_SPAWNATTR_T@ # if !GNULIB_defined_posix_spawnattr_t typedef struct { short int _flags; pid_t _pgrp; sigset_t _sd; sigset_t _ss; struct sched_param _sp; int _policy; int __pad[16]; } posix_spawnattr_t; # define GNULIB_defined_posix_spawnattr_t 1 # endif #endif /* Data structure to contain information about the actions to be performed in the new process with respect to file descriptors. */ #if @REPLACE_POSIX_SPAWN@ # define posix_spawn_file_actions_t rpl_posix_spawn_file_actions_t #endif #if @REPLACE_POSIX_SPAWN@ || !@HAVE_POSIX_SPAWN_FILE_ACTIONS_T@ # if !GNULIB_defined_posix_spawn_file_actions_t typedef struct { int _allocated; int _used; struct __spawn_action *_actions; int __pad[16]; } posix_spawn_file_actions_t; # define GNULIB_defined_posix_spawn_file_actions_t 1 # endif #endif /* Flags to be set in the 'posix_spawnattr_t'. */ #if @HAVE_POSIX_SPAWN@ /* Use the values from the system, but provide the missing ones. */ # ifndef POSIX_SPAWN_SETSCHEDPARAM # define POSIX_SPAWN_SETSCHEDPARAM 0 # endif # ifndef POSIX_SPAWN_SETSCHEDULER # define POSIX_SPAWN_SETSCHEDULER 0 # endif #else # if @REPLACE_POSIX_SPAWN@ /* Use the values from the system, for better compatibility. */ /* But this implementation does not support AIX extensions. */ # undef POSIX_SPAWN_FORK_HANDLERS # else # define POSIX_SPAWN_RESETIDS 0x01 # define POSIX_SPAWN_SETPGROUP 0x02 # define POSIX_SPAWN_SETSIGDEF 0x04 # define POSIX_SPAWN_SETSIGMASK 0x08 # define POSIX_SPAWN_SETSCHEDPARAM 0x10 # define POSIX_SPAWN_SETSCHEDULER 0x20 # endif #endif /* A GNU extension. Use the next free bit position. */ #define POSIX_SPAWN_USEVFORK \ ((POSIX_SPAWN_RESETIDS | (POSIX_SPAWN_RESETIDS - 1) \ | POSIX_SPAWN_SETPGROUP | (POSIX_SPAWN_SETPGROUP - 1) \ | POSIX_SPAWN_SETSIGDEF | (POSIX_SPAWN_SETSIGDEF - 1) \ | POSIX_SPAWN_SETSIGMASK | (POSIX_SPAWN_SETSIGMASK - 1) \ | POSIX_SPAWN_SETSCHEDPARAM \ | (POSIX_SPAWN_SETSCHEDPARAM > 0 ? POSIX_SPAWN_SETSCHEDPARAM - 1 : 0) \ | POSIX_SPAWN_SETSCHEDULER \ | (POSIX_SPAWN_SETSCHEDULER > 0 ? POSIX_SPAWN_SETSCHEDULER - 1 : 0)) \ + 1) #if !GNULIB_defined_verify_POSIX_SPAWN_USEVFORK_no_overlap typedef int verify_POSIX_SPAWN_USEVFORK_no_overlap [(((POSIX_SPAWN_RESETIDS | POSIX_SPAWN_SETPGROUP | POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK | POSIX_SPAWN_SETSCHEDPARAM | POSIX_SPAWN_SETSCHEDULER) & POSIX_SPAWN_USEVFORK) == 0) ? 1 : -1]; # define GNULIB_defined_verify_POSIX_SPAWN_USEVFORK_no_overlap 1 #endif #if @GNULIB_POSIX_SPAWN@ /* Spawn a new process executing PATH with the attributes describes in *ATTRP. Before running the process perform the actions described in FILE-ACTIONS. This function is a possible cancellation points and therefore not marked with __THROW. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawn rpl_posix_spawn # endif _GL_FUNCDECL_RPL (posix_spawn, int, (pid_t *_Restrict_ __pid, const char *_Restrict_ __path, const posix_spawn_file_actions_t *_Restrict_ __file_actions, const posix_spawnattr_t *_Restrict_ __attrp, char *const argv[_Restrict_arr_], char *const envp[_Restrict_arr_]) _GL_ARG_NONNULL ((2, 5, 6))); _GL_CXXALIAS_RPL (posix_spawn, int, (pid_t *_Restrict_ __pid, const char *_Restrict_ __path, const posix_spawn_file_actions_t *_Restrict_ __file_actions, const posix_spawnattr_t *_Restrict_ __attrp, char *const argv[_Restrict_arr_], char *const envp[_Restrict_arr_])); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawn, int, (pid_t *_Restrict_ __pid, const char *_Restrict_ __path, const posix_spawn_file_actions_t *_Restrict_ __file_actions, const posix_spawnattr_t *_Restrict_ __attrp, char *const argv[_Restrict_arr_], char *const envp[_Restrict_arr_]) _GL_ARG_NONNULL ((2, 5, 6))); # endif _GL_CXXALIAS_SYS (posix_spawn, int, (pid_t *_Restrict_ __pid, const char *_Restrict_ __path, const posix_spawn_file_actions_t *_Restrict_ __file_actions, const posix_spawnattr_t *_Restrict_ __attrp, char *const argv[_Restrict_arr_], char *const envp[_Restrict_arr_])); # endif _GL_CXXALIASWARN (posix_spawn); #elif defined GNULIB_POSIXCHECK # undef posix_spawn # if HAVE_RAW_DECL_POSIX_SPAWN _GL_WARN_ON_USE (posix_spawn, "posix_spawn is unportable - " "use gnulib module posix_spawn for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNP@ /* Similar to 'posix_spawn' but search for FILE in the PATH. This function is a possible cancellation points and therefore not marked with __THROW. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnp rpl_posix_spawnp # endif _GL_FUNCDECL_RPL (posix_spawnp, int, (pid_t *__pid, const char *__file, const posix_spawn_file_actions_t *__file_actions, const posix_spawnattr_t *__attrp, char *const argv[], char *const envp[]) _GL_ARG_NONNULL ((2, 5, 6))); _GL_CXXALIAS_RPL (posix_spawnp, int, (pid_t *__pid, const char *__file, const posix_spawn_file_actions_t *__file_actions, const posix_spawnattr_t *__attrp, char *const argv[], char *const envp[])); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawnp, int, (pid_t *__pid, const char *__file, const posix_spawn_file_actions_t *__file_actions, const posix_spawnattr_t *__attrp, char *const argv[], char *const envp[]) _GL_ARG_NONNULL ((2, 5, 6))); # endif _GL_CXXALIAS_SYS (posix_spawnp, int, (pid_t *__pid, const char *__file, const posix_spawn_file_actions_t *__file_actions, const posix_spawnattr_t *__attrp, char *const argv[], char *const envp[])); # endif _GL_CXXALIASWARN (posix_spawnp); #elif defined GNULIB_POSIXCHECK # undef posix_spawnp # if HAVE_RAW_DECL_POSIX_SPAWNP _GL_WARN_ON_USE (posix_spawnp, "posix_spawnp is unportable - " "use gnulib module posix_spawnp for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_INIT@ /* Initialize data structure with attributes for 'spawn' to default values. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_init rpl_posix_spawnattr_init # endif _GL_FUNCDECL_RPL (posix_spawnattr_init, int, (posix_spawnattr_t *__attr) __THROW _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (posix_spawnattr_init, int, (posix_spawnattr_t *__attr)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawnattr_init, int, (posix_spawnattr_t *__attr) __THROW _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_init, int, (posix_spawnattr_t *__attr)); # endif _GL_CXXALIASWARN (posix_spawnattr_init); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_init # if HAVE_RAW_DECL_POSIX_SPAWNATTR_INIT _GL_WARN_ON_USE (posix_spawnattr_init, "posix_spawnattr_init is unportable - " "use gnulib module posix_spawnattr_init for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_DESTROY@ /* Free resources associated with ATTR. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_destroy rpl_posix_spawnattr_destroy # endif _GL_FUNCDECL_RPL (posix_spawnattr_destroy, int, (posix_spawnattr_t *__attr) __THROW _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (posix_spawnattr_destroy, int, (posix_spawnattr_t *__attr)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawnattr_destroy, int, (posix_spawnattr_t *__attr) __THROW _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_destroy, int, (posix_spawnattr_t *__attr)); # endif _GL_CXXALIASWARN (posix_spawnattr_destroy); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_destroy # if HAVE_RAW_DECL_POSIX_SPAWNATTR_DESTROY _GL_WARN_ON_USE (posix_spawnattr_destroy, "posix_spawnattr_destroy is unportable - " "use gnulib module posix_spawnattr_destroy for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@ /* Store signal mask for signals with default handling from ATTR in SIGDEFAULT. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_getsigdefault rpl_posix_spawnattr_getsigdefault # endif _GL_FUNCDECL_RPL (posix_spawnattr_getsigdefault, int, (const posix_spawnattr_t *_Restrict_ __attr, sigset_t *_Restrict_ __sigdefault) __THROW _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (posix_spawnattr_getsigdefault, int, (const posix_spawnattr_t *_Restrict_ __attr, sigset_t *_Restrict_ __sigdefault)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawnattr_getsigdefault, int, (const posix_spawnattr_t *_Restrict_ __attr, sigset_t *_Restrict_ __sigdefault) __THROW _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_getsigdefault, int, (const posix_spawnattr_t *_Restrict_ __attr, sigset_t *_Restrict_ __sigdefault)); # endif _GL_CXXALIASWARN (posix_spawnattr_getsigdefault); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_getsigdefault # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSIGDEFAULT _GL_WARN_ON_USE (posix_spawnattr_getsigdefault, "posix_spawnattr_getsigdefault is unportable - " "use gnulib module posix_spawnattr_getsigdefault for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@ /* Set signal mask for signals with default handling in ATTR to SIGDEFAULT. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_setsigdefault rpl_posix_spawnattr_setsigdefault # endif _GL_FUNCDECL_RPL (posix_spawnattr_setsigdefault, int, (posix_spawnattr_t *_Restrict_ __attr, const sigset_t *_Restrict_ __sigdefault) __THROW _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (posix_spawnattr_setsigdefault, int, (posix_spawnattr_t *_Restrict_ __attr, const sigset_t *_Restrict_ __sigdefault)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawnattr_setsigdefault, int, (posix_spawnattr_t *_Restrict_ __attr, const sigset_t *_Restrict_ __sigdefault) __THROW _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_setsigdefault, int, (posix_spawnattr_t *_Restrict_ __attr, const sigset_t *_Restrict_ __sigdefault)); # endif _GL_CXXALIASWARN (posix_spawnattr_setsigdefault); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_setsigdefault # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSIGDEFAULT _GL_WARN_ON_USE (posix_spawnattr_setsigdefault, "posix_spawnattr_setsigdefault is unportable - " "use gnulib module posix_spawnattr_setsigdefault for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@ /* Store signal mask for the new process from ATTR in SIGMASK. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_getsigmask rpl_posix_spawnattr_getsigmask # endif _GL_FUNCDECL_RPL (posix_spawnattr_getsigmask, int, (const posix_spawnattr_t *_Restrict_ __attr, sigset_t *_Restrict_ __sigmask) __THROW _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (posix_spawnattr_getsigmask, int, (const posix_spawnattr_t *_Restrict_ __attr, sigset_t *_Restrict_ __sigmask)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawnattr_getsigmask, int, (const posix_spawnattr_t *_Restrict_ __attr, sigset_t *_Restrict_ __sigmask) __THROW _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_getsigmask, int, (const posix_spawnattr_t *_Restrict_ __attr, sigset_t *_Restrict_ __sigmask)); # endif _GL_CXXALIASWARN (posix_spawnattr_getsigmask); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_getsigmask # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSIGMASK _GL_WARN_ON_USE (posix_spawnattr_getsigmask, "posix_spawnattr_getsigmask is unportable - " "use gnulib module posix_spawnattr_getsigmask for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@ /* Set signal mask for the new process in ATTR to SIGMASK. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_setsigmask rpl_posix_spawnattr_setsigmask # endif _GL_FUNCDECL_RPL (posix_spawnattr_setsigmask, int, (posix_spawnattr_t *_Restrict_ __attr, const sigset_t *_Restrict_ __sigmask) __THROW _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (posix_spawnattr_setsigmask, int, (posix_spawnattr_t *_Restrict_ __attr, const sigset_t *_Restrict_ __sigmask)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawnattr_setsigmask, int, (posix_spawnattr_t *_Restrict_ __attr, const sigset_t *_Restrict_ __sigmask) __THROW _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_setsigmask, int, (posix_spawnattr_t *_Restrict_ __attr, const sigset_t *_Restrict_ __sigmask)); # endif _GL_CXXALIASWARN (posix_spawnattr_setsigmask); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_setsigmask # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSIGMASK _GL_WARN_ON_USE (posix_spawnattr_setsigmask, "posix_spawnattr_setsigmask is unportable - " "use gnulib module posix_spawnattr_setsigmask for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_GETFLAGS@ /* Get flag word from the attribute structure. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_getflags rpl_posix_spawnattr_getflags # endif _GL_FUNCDECL_RPL (posix_spawnattr_getflags, int, (const posix_spawnattr_t *_Restrict_ __attr, short int *_Restrict_ __flags) __THROW _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (posix_spawnattr_getflags, int, (const posix_spawnattr_t *_Restrict_ __attr, short int *_Restrict_ __flags)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawnattr_getflags, int, (const posix_spawnattr_t *_Restrict_ __attr, short int *_Restrict_ __flags) __THROW _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_getflags, int, (const posix_spawnattr_t *_Restrict_ __attr, short int *_Restrict_ __flags)); # endif _GL_CXXALIASWARN (posix_spawnattr_getflags); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_getflags # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETFLAGS _GL_WARN_ON_USE (posix_spawnattr_getflags, "posix_spawnattr_getflags is unportable - " "use gnulib module posix_spawnattr_getflags for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_SETFLAGS@ /* Store flags in the attribute structure. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_setflags rpl_posix_spawnattr_setflags # endif _GL_FUNCDECL_RPL (posix_spawnattr_setflags, int, (posix_spawnattr_t *__attr, short int __flags) __THROW _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (posix_spawnattr_setflags, int, (posix_spawnattr_t *__attr, short int __flags)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawnattr_setflags, int, (posix_spawnattr_t *__attr, short int __flags) __THROW _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_setflags, int, (posix_spawnattr_t *__attr, short int __flags)); # endif _GL_CXXALIASWARN (posix_spawnattr_setflags); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_setflags # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETFLAGS _GL_WARN_ON_USE (posix_spawnattr_setflags, "posix_spawnattr_setflags is unportable - " "use gnulib module posix_spawnattr_setflags for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_GETPGROUP@ /* Get process group ID from the attribute structure. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_getpgroup rpl_posix_spawnattr_getpgroup # endif _GL_FUNCDECL_RPL (posix_spawnattr_getpgroup, int, (const posix_spawnattr_t *_Restrict_ __attr, pid_t *_Restrict_ __pgroup) __THROW _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (posix_spawnattr_getpgroup, int, (const posix_spawnattr_t *_Restrict_ __attr, pid_t *_Restrict_ __pgroup)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawnattr_getpgroup, int, (const posix_spawnattr_t *_Restrict_ __attr, pid_t *_Restrict_ __pgroup) __THROW _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_getpgroup, int, (const posix_spawnattr_t *_Restrict_ __attr, pid_t *_Restrict_ __pgroup)); # endif _GL_CXXALIASWARN (posix_spawnattr_getpgroup); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_getpgroup # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETPGROUP _GL_WARN_ON_USE (posix_spawnattr_getpgroup, "posix_spawnattr_getpgroup is unportable - " "use gnulib module posix_spawnattr_getpgroup for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_SETPGROUP@ /* Store process group ID in the attribute structure. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_setpgroup rpl_posix_spawnattr_setpgroup # endif _GL_FUNCDECL_RPL (posix_spawnattr_setpgroup, int, (posix_spawnattr_t *__attr, pid_t __pgroup) __THROW _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (posix_spawnattr_setpgroup, int, (posix_spawnattr_t *__attr, pid_t __pgroup)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawnattr_setpgroup, int, (posix_spawnattr_t *__attr, pid_t __pgroup) __THROW _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_setpgroup, int, (posix_spawnattr_t *__attr, pid_t __pgroup)); # endif _GL_CXXALIASWARN (posix_spawnattr_setpgroup); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_setpgroup # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETPGROUP _GL_WARN_ON_USE (posix_spawnattr_setpgroup, "posix_spawnattr_setpgroup is unportable - " "use gnulib module posix_spawnattr_setpgroup for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY@ /* Get scheduling policy from the attribute structure. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_getschedpolicy rpl_posix_spawnattr_getschedpolicy # endif _GL_FUNCDECL_RPL (posix_spawnattr_getschedpolicy, int, (const posix_spawnattr_t *_Restrict_ __attr, int *_Restrict_ __schedpolicy) __THROW _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (posix_spawnattr_getschedpolicy, int, (const posix_spawnattr_t *_Restrict_ __attr, int *_Restrict_ __schedpolicy)); # else # if !@HAVE_POSIX_SPAWN@ || POSIX_SPAWN_SETSCHEDULER == 0 _GL_FUNCDECL_SYS (posix_spawnattr_getschedpolicy, int, (const posix_spawnattr_t *_Restrict_ __attr, int *_Restrict_ __schedpolicy) __THROW _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_getschedpolicy, int, (const posix_spawnattr_t *_Restrict_ __attr, int *_Restrict_ __schedpolicy)); # endif _GL_CXXALIASWARN (posix_spawnattr_getschedpolicy); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_getschedpolicy # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSCHEDPOLICY _GL_WARN_ON_USE (posix_spawnattr_getschedpolicy, "posix_spawnattr_getschedpolicy is unportable - " "use gnulib module posix_spawnattr_getschedpolicy for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@ /* Store scheduling policy in the attribute structure. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_setschedpolicy rpl_posix_spawnattr_setschedpolicy # endif _GL_FUNCDECL_RPL (posix_spawnattr_setschedpolicy, int, (posix_spawnattr_t *__attr, int __schedpolicy) __THROW _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (posix_spawnattr_setschedpolicy, int, (posix_spawnattr_t *__attr, int __schedpolicy)); # else # if !@HAVE_POSIX_SPAWN@ || POSIX_SPAWN_SETSCHEDULER == 0 _GL_FUNCDECL_SYS (posix_spawnattr_setschedpolicy, int, (posix_spawnattr_t *__attr, int __schedpolicy) __THROW _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_setschedpolicy, int, (posix_spawnattr_t *__attr, int __schedpolicy)); # endif _GL_CXXALIASWARN (posix_spawnattr_setschedpolicy); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_setschedpolicy # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSCHEDPOLICY _GL_WARN_ON_USE (posix_spawnattr_setschedpolicy, "posix_spawnattr_setschedpolicy is unportable - " "use gnulib module posix_spawnattr_setschedpolicy for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@ /* Get scheduling parameters from the attribute structure. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_getschedparam rpl_posix_spawnattr_getschedparam # endif _GL_FUNCDECL_RPL (posix_spawnattr_getschedparam, int, (const posix_spawnattr_t *_Restrict_ __attr, struct sched_param *_Restrict_ __schedparam) __THROW _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (posix_spawnattr_getschedparam, int, (const posix_spawnattr_t *_Restrict_ __attr, struct sched_param *_Restrict_ __schedparam)); # else # if !@HAVE_POSIX_SPAWN@ || POSIX_SPAWN_SETSCHEDPARAM == 0 _GL_FUNCDECL_SYS (posix_spawnattr_getschedparam, int, (const posix_spawnattr_t *_Restrict_ __attr, struct sched_param *_Restrict_ __schedparam) __THROW _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_getschedparam, int, (const posix_spawnattr_t *_Restrict_ __attr, struct sched_param *_Restrict_ __schedparam)); # endif _GL_CXXALIASWARN (posix_spawnattr_getschedparam); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_getschedparam # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSCHEDPARAM _GL_WARN_ON_USE (posix_spawnattr_getschedparam, "posix_spawnattr_getschedparam is unportable - " "use gnulib module posix_spawnattr_getschedparam for portability"); # endif #endif #if @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@ /* Store scheduling parameters in the attribute structure. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawnattr_setschedparam rpl_posix_spawnattr_setschedparam # endif _GL_FUNCDECL_RPL (posix_spawnattr_setschedparam, int, (posix_spawnattr_t *_Restrict_ __attr, const struct sched_param *_Restrict_ __schedparam) __THROW _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (posix_spawnattr_setschedparam, int, (posix_spawnattr_t *_Restrict_ __attr, const struct sched_param *_Restrict_ __schedparam)); # else # if !@HAVE_POSIX_SPAWN@ || POSIX_SPAWN_SETSCHEDPARAM == 0 _GL_FUNCDECL_SYS (posix_spawnattr_setschedparam, int, (posix_spawnattr_t *_Restrict_ __attr, const struct sched_param *_Restrict_ __schedparam) __THROW _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (posix_spawnattr_setschedparam, int, (posix_spawnattr_t *_Restrict_ __attr, const struct sched_param *_Restrict_ __schedparam)); # endif _GL_CXXALIASWARN (posix_spawnattr_setschedparam); #elif defined GNULIB_POSIXCHECK # undef posix_spawnattr_setschedparam # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSCHEDPARAM _GL_WARN_ON_USE (posix_spawnattr_setschedparam, "posix_spawnattr_setschedparam is unportable - " "use gnulib module posix_spawnattr_setschedparam for portability"); # endif #endif #if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT@ /* Initialize data structure for file attribute for 'spawn' call. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawn_file_actions_init rpl_posix_spawn_file_actions_init # endif _GL_FUNCDECL_RPL (posix_spawn_file_actions_init, int, (posix_spawn_file_actions_t *__file_actions) __THROW _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (posix_spawn_file_actions_init, int, (posix_spawn_file_actions_t *__file_actions)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawn_file_actions_init, int, (posix_spawn_file_actions_t *__file_actions) __THROW _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (posix_spawn_file_actions_init, int, (posix_spawn_file_actions_t *__file_actions)); # endif _GL_CXXALIASWARN (posix_spawn_file_actions_init); #elif defined GNULIB_POSIXCHECK # undef posix_spawn_file_actions_init # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_INIT _GL_WARN_ON_USE (posix_spawn_file_actions_init, "posix_spawn_file_actions_init is unportable - " "use gnulib module posix_spawn_file_actions_init for portability"); # endif #endif #if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@ /* Free resources associated with FILE-ACTIONS. */ # if @REPLACE_POSIX_SPAWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawn_file_actions_destroy rpl_posix_spawn_file_actions_destroy # endif _GL_FUNCDECL_RPL (posix_spawn_file_actions_destroy, int, (posix_spawn_file_actions_t *__file_actions) __THROW _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (posix_spawn_file_actions_destroy, int, (posix_spawn_file_actions_t *__file_actions)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawn_file_actions_destroy, int, (posix_spawn_file_actions_t *__file_actions) __THROW _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (posix_spawn_file_actions_destroy, int, (posix_spawn_file_actions_t *__file_actions)); # endif _GL_CXXALIASWARN (posix_spawn_file_actions_destroy); #elif defined GNULIB_POSIXCHECK # undef posix_spawn_file_actions_destroy # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_DESTROY _GL_WARN_ON_USE (posix_spawn_file_actions_destroy, "posix_spawn_file_actions_destroy is unportable - " "use gnulib module posix_spawn_file_actions_destroy for portability"); # endif #endif #if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ /* Add an action to FILE-ACTIONS which tells the implementation to call 'open' for the given file during the 'spawn' call. */ # if @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawn_file_actions_addopen rpl_posix_spawn_file_actions_addopen # endif _GL_FUNCDECL_RPL (posix_spawn_file_actions_addopen, int, (posix_spawn_file_actions_t *_Restrict_ __file_actions, int __fd, const char *_Restrict_ __path, int __oflag, mode_t __mode) __THROW _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (posix_spawn_file_actions_addopen, int, (posix_spawn_file_actions_t *_Restrict_ __file_actions, int __fd, const char *_Restrict_ __path, int __oflag, mode_t __mode)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawn_file_actions_addopen, int, (posix_spawn_file_actions_t *_Restrict_ __file_actions, int __fd, const char *_Restrict_ __path, int __oflag, mode_t __mode) __THROW _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (posix_spawn_file_actions_addopen, int, (posix_spawn_file_actions_t *_Restrict_ __file_actions, int __fd, const char *_Restrict_ __path, int __oflag, mode_t __mode)); # endif _GL_CXXALIASWARN (posix_spawn_file_actions_addopen); #elif defined GNULIB_POSIXCHECK # undef posix_spawn_file_actions_addopen # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN _GL_WARN_ON_USE (posix_spawn_file_actions_addopen, "posix_spawn_file_actions_addopen is unportable - " "use gnulib module posix_spawn_file_actions_addopen for portability"); # endif #endif #if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ /* Add an action to FILE-ACTIONS which tells the implementation to call 'close' for the given file descriptor during the 'spawn' call. */ # if @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawn_file_actions_addclose rpl_posix_spawn_file_actions_addclose # endif _GL_FUNCDECL_RPL (posix_spawn_file_actions_addclose, int, (posix_spawn_file_actions_t *__file_actions, int __fd) __THROW _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (posix_spawn_file_actions_addclose, int, (posix_spawn_file_actions_t *__file_actions, int __fd)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawn_file_actions_addclose, int, (posix_spawn_file_actions_t *__file_actions, int __fd) __THROW _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (posix_spawn_file_actions_addclose, int, (posix_spawn_file_actions_t *__file_actions, int __fd)); # endif _GL_CXXALIASWARN (posix_spawn_file_actions_addclose); #elif defined GNULIB_POSIXCHECK # undef posix_spawn_file_actions_addclose # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE _GL_WARN_ON_USE (posix_spawn_file_actions_addclose, "posix_spawn_file_actions_addclose is unportable - " "use gnulib module posix_spawn_file_actions_addclose for portability"); # endif #endif #if @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ /* Add an action to FILE-ACTIONS which tells the implementation to call 'dup2' for the given file descriptors during the 'spawn' call. */ # if @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define posix_spawn_file_actions_adddup2 rpl_posix_spawn_file_actions_adddup2 # endif _GL_FUNCDECL_RPL (posix_spawn_file_actions_adddup2, int, (posix_spawn_file_actions_t *__file_actions, int __fd, int __newfd) __THROW _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (posix_spawn_file_actions_adddup2, int, (posix_spawn_file_actions_t *__file_actions, int __fd, int __newfd)); # else # if !@HAVE_POSIX_SPAWN@ _GL_FUNCDECL_SYS (posix_spawn_file_actions_adddup2, int, (posix_spawn_file_actions_t *__file_actions, int __fd, int __newfd) __THROW _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (posix_spawn_file_actions_adddup2, int, (posix_spawn_file_actions_t *__file_actions, int __fd, int __newfd)); # endif _GL_CXXALIASWARN (posix_spawn_file_actions_adddup2); #elif defined GNULIB_POSIXCHECK # undef posix_spawn_file_actions_adddup2 # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 _GL_WARN_ON_USE (posix_spawn_file_actions_adddup2, "posix_spawn_file_actions_adddup2 is unportable - " "use gnulib module posix_spawn_file_actions_adddup2 for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_SPAWN_H */ #endif /* _@GUARD_PREFIX@_SPAWN_H */ gcal-4.1/lib/malloc.c0000664000000000000000000000273213041163522011337 00000000000000/* malloc() function that is glibc compatible. Copyright (C) 1997-1998, 2006-2007, 2009-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* written by Jim Meyering and Bruno Haible */ #define _GL_USE_STDLIB_ALLOC 1 #include /* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */ #ifdef malloc # define NEED_MALLOC_GNU 1 # undef malloc /* Whereas the gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */ #elif GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU # define NEED_MALLOC_GNU 1 #endif #include #include /* Allocate an N-byte block of memory from the heap. If N is zero, allocate a 1-byte block. */ void * rpl_malloc (size_t n) { void *result; #if NEED_MALLOC_GNU if (n == 0) n = 1; #endif result = malloc (n); #if !HAVE_MALLOC_POSIX if (result == NULL) errno = ENOMEM; #endif return result; } gcal-4.1/lib/strings.in.h0000664000000000000000000000765613041163523012206 00000000000000/* A substitute . Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_STRINGS_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Minix 3.1.8 has a bug: must be included before . But avoid namespace pollution on glibc systems. */ #if defined __minix && !defined __GLIBC__ # include #endif /* The include_next requires a split double-inclusion guard. */ #if @HAVE_STRINGS_H@ # @INCLUDE_NEXT@ @NEXT_STRINGS_H@ #endif #ifndef _@GUARD_PREFIX@_STRINGS_H #define _@GUARD_PREFIX@_STRINGS_H #if ! @HAVE_DECL_STRNCASECMP@ /* Get size_t. */ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #ifdef __cplusplus extern "C" { #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFS@ # if !@HAVE_FFS@ _GL_FUNCDECL_SYS (ffs, int, (int i)); # endif _GL_CXXALIAS_SYS (ffs, int, (int i)); _GL_CXXALIASWARN (ffs); #elif defined GNULIB_POSIXCHECK # undef ffs # if HAVE_RAW_DECL_FFS _GL_WARN_ON_USE (ffs, "ffs is not portable - use the ffs module"); # endif #endif /* Compare strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function does not work in multibyte locales. */ #if ! @HAVE_STRCASECMP@ extern int strcasecmp (char const *s1, char const *s2) _GL_ARG_NONNULL ((1, 2)); #endif #if defined GNULIB_POSIXCHECK /* strcasecmp() does not work with multibyte strings: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strcasecmp # if HAVE_RAW_DECL_STRCASECMP _GL_WARN_ON_USE (strcasecmp, "strcasecmp cannot work correctly on character " "strings in multibyte locales - " "use mbscasecmp if you care about " "internationalization, or use c_strcasecmp , " "gnulib module c-strcase) if you want a locale " "independent function"); # endif #endif /* Compare no more than N bytes of strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function cannot work correctly in multibyte locales. */ #if ! @HAVE_DECL_STRNCASECMP@ extern int strncasecmp (char const *s1, char const *s2, size_t n) _GL_ARG_NONNULL ((1, 2)); #endif #if defined GNULIB_POSIXCHECK /* strncasecmp() does not work with multibyte strings: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strncasecmp # if HAVE_RAW_DECL_STRNCASECMP _GL_WARN_ON_USE (strncasecmp, "strncasecmp cannot work correctly on character " "strings in multibyte locales - " "use mbsncasecmp or mbspcasecmp if you care about " "internationalization, or use c_strncasecmp , " "gnulib module c-strcase) if you want a locale " "independent function"); # endif #endif #ifdef __cplusplus } #endif #endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */ gcal-4.1/lib/sys_types.in.h0000664000000000000000000000330213041163523012537 00000000000000/* Provide a more complete sys/types.h. Copyright (C) 2011-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #ifndef _@GUARD_PREFIX@_SYS_TYPES_H /* The include_next requires a split double-inclusion guard. */ # define _GL_INCLUDING_SYS_TYPES_H #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ # undef _GL_INCLUDING_SYS_TYPES_H #ifndef _@GUARD_PREFIX@_SYS_TYPES_H #define _@GUARD_PREFIX@_SYS_TYPES_H /* Override off_t if Large File Support is requested on native Windows. */ #if @WINDOWS_64_BIT_OFF_T@ /* Same as int64_t in . */ # if defined _MSC_VER # define off_t __int64 # else # define off_t long long int # endif /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_64_BIT_OFF_T 1 #endif /* MSVC 9 defines size_t in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include #endif #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ gcal-4.1/lib/str-two-way.h0000664000000000000000000004216513041163523012317 00000000000000/* Byte-wise substring search, using the Two-Way algorithm. Copyright (C) 2008-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Eric Blake , 2008. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Before including this file, you need to include and , and define: RESULT_TYPE A macro that expands to the return type. AVAILABLE(h, h_l, j, n_l) A macro that returns nonzero if there are at least N_L bytes left starting at H[J]. H is 'unsigned char *', H_L, J, and N_L are 'size_t'; H_L is an lvalue. For NUL-terminated searches, H_L can be modified each iteration to avoid having to compute the end of H up front. For case-insensitivity, you may optionally define: CMP_FUNC(p1, p2, l) A macro that returns 0 iff the first L characters of P1 and P2 are equal. CANON_ELEMENT(c) A macro that canonicalizes an element right after it has been fetched from one of the two strings. The argument is an 'unsigned char'; the result must be an 'unsigned char' as well. This file undefines the macros documented above, and defines LONG_NEEDLE_THRESHOLD. */ #include #include /* We use the Two-Way string matching algorithm (also known as Chrochemore-Perrin), which guarantees linear complexity with constant space. Additionally, for long needles, we also use a bad character shift table similar to the Boyer-Moore algorithm to achieve improved (potentially sub-linear) performance. See http://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260, http://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.34.6641&rep=rep1&type=pdf */ /* Point at which computing a bad-byte shift table is likely to be worthwhile. Small needles should not compute a table, since it adds (1 << CHAR_BIT) + NEEDLE_LEN computations of preparation for a speedup no greater than a factor of NEEDLE_LEN. The larger the needle, the better the potential performance gain. On the other hand, on non-POSIX systems with CHAR_BIT larger than eight, the memory required for the table is prohibitive. */ #if CHAR_BIT < 10 # define LONG_NEEDLE_THRESHOLD 32U #else # define LONG_NEEDLE_THRESHOLD SIZE_MAX #endif #ifndef MAX # define MAX(a, b) ((a < b) ? (b) : (a)) #endif #ifndef CANON_ELEMENT # define CANON_ELEMENT(c) c #endif #ifndef CMP_FUNC # define CMP_FUNC memcmp #endif /* Perform a critical factorization of NEEDLE, of length NEEDLE_LEN. Return the index of the first byte in the right half, and set *PERIOD to the global period of the right half. The global period of a string is the smallest index (possibly its length) at which all remaining bytes in the string are repetitions of the prefix (the last repetition may be a subset of the prefix). When NEEDLE is factored into two halves, a local period is the length of the smallest word that shares a suffix with the left half and shares a prefix with the right half. All factorizations of a non-empty NEEDLE have a local period of at least 1 and no greater than NEEDLE_LEN. A critical factorization has the property that the local period equals the global period. All strings have at least one critical factorization with the left half smaller than the global period. And while some strings have more than one critical factorization, it is provable that with an ordered alphabet, at least one of the critical factorizations corresponds to a maximal suffix. Given an ordered alphabet, a critical factorization can be computed in linear time, with 2 * NEEDLE_LEN comparisons, by computing the shorter of two ordered maximal suffixes. The ordered maximal suffixes are determined by lexicographic comparison while tracking periodicity. */ static size_t critical_factorization (const unsigned char *needle, size_t needle_len, size_t *period) { /* Index of last byte of left half, or SIZE_MAX. */ size_t max_suffix, max_suffix_rev; size_t j; /* Index into NEEDLE for current candidate suffix. */ size_t k; /* Offset into current period. */ size_t p; /* Intermediate period. */ unsigned char a, b; /* Current comparison bytes. */ /* Special case NEEDLE_LEN of 1 or 2 (all callers already filtered out 0-length needles. */ if (needle_len < 3) { *period = 1; return needle_len - 1; } /* Invariants: 0 <= j < NEEDLE_LEN - 1 -1 <= max_suffix{,_rev} < j (treating SIZE_MAX as if it were signed) min(max_suffix, max_suffix_rev) < global period of NEEDLE 1 <= p <= global period of NEEDLE p == global period of the substring NEEDLE[max_suffix{,_rev}+1...j] 1 <= k <= p */ /* Perform lexicographic search. */ max_suffix = SIZE_MAX; j = 0; k = p = 1; while (j + k < needle_len) { a = CANON_ELEMENT (needle[j + k]); b = CANON_ELEMENT (needle[max_suffix + k]); if (a < b) { /* Suffix is smaller, period is entire prefix so far. */ j += k; k = 1; p = j - max_suffix; } else if (a == b) { /* Advance through repetition of the current period. */ if (k != p) ++k; else { j += p; k = 1; } } else /* b < a */ { /* Suffix is larger, start over from current location. */ max_suffix = j++; k = p = 1; } } *period = p; /* Perform reverse lexicographic search. */ max_suffix_rev = SIZE_MAX; j = 0; k = p = 1; while (j + k < needle_len) { a = CANON_ELEMENT (needle[j + k]); b = CANON_ELEMENT (needle[max_suffix_rev + k]); if (b < a) { /* Suffix is smaller, period is entire prefix so far. */ j += k; k = 1; p = j - max_suffix_rev; } else if (a == b) { /* Advance through repetition of the current period. */ if (k != p) ++k; else { j += p; k = 1; } } else /* a < b */ { /* Suffix is larger, start over from current location. */ max_suffix_rev = j++; k = p = 1; } } /* Choose the shorter suffix. Return the index of the first byte of the right half, rather than the last byte of the left half. For some examples, 'banana' has two critical factorizations, both exposed by the two lexicographic extreme suffixes of 'anana' and 'nana', where both suffixes have a period of 2. On the other hand, with 'aab' and 'bba', both strings have a single critical factorization of the last byte, with the suffix having a period of 1. While the maximal lexicographic suffix of 'aab' is 'b', the maximal lexicographic suffix of 'bba' is 'ba', which is not a critical factorization. Conversely, the maximal reverse lexicographic suffix of 'a' works for 'bba', but not 'ab' for 'aab'. The shorter suffix of the two will always be a critical factorization. */ if (max_suffix_rev + 1 < max_suffix + 1) return max_suffix + 1; *period = p; return max_suffix_rev + 1; } /* Return the first location of non-empty NEEDLE within HAYSTACK, or NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This method is optimized for NEEDLE_LEN < LONG_NEEDLE_THRESHOLD. Performance is guaranteed to be linear, with an initialization cost of 2 * NEEDLE_LEN comparisons. If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. */ static RETURN_TYPE two_way_short_needle (const unsigned char *haystack, size_t haystack_len, const unsigned char *needle, size_t needle_len) { size_t i; /* Index into current byte of NEEDLE. */ size_t j; /* Index into current window of HAYSTACK. */ size_t period; /* The period of the right half of needle. */ size_t suffix; /* The index of the right half of needle. */ /* Factor the needle into two halves, such that the left half is smaller than the global period, and the right half is periodic (with a period as large as NEEDLE_LEN - suffix). */ suffix = critical_factorization (needle, needle_len, &period); /* Perform the search. Each iteration compares the right half first. */ if (CMP_FUNC (needle, needle + period, suffix) == 0) { /* Entire needle is periodic; a mismatch in the left half can only advance by the period, so use memory to avoid rescanning known occurrences of the period in the right half. */ size_t memory = 0; j = 0; while (AVAILABLE (haystack, haystack_len, j, needle_len)) { /* Scan for matches in right half. */ i = MAX (suffix, memory); while (i < needle_len && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) ++i; if (needle_len <= i) { /* Scan for matches in left half. */ i = suffix - 1; while (memory < i + 1 && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) --i; if (i + 1 < memory + 1) return (RETURN_TYPE) (haystack + j); /* No match, so remember how many repetitions of period on the right half were scanned. */ j += period; memory = needle_len - period; } else { j += i - suffix + 1; memory = 0; } } } else { /* The two halves of needle are distinct; no extra memory is required, and any mismatch results in a maximal shift. */ period = MAX (suffix, needle_len - suffix) + 1; j = 0; while (AVAILABLE (haystack, haystack_len, j, needle_len)) { /* Scan for matches in right half. */ i = suffix; while (i < needle_len && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) ++i; if (needle_len <= i) { /* Scan for matches in left half. */ i = suffix - 1; while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) --i; if (i == SIZE_MAX) return (RETURN_TYPE) (haystack + j); j += period; } else j += i - suffix + 1; } } return NULL; } /* Return the first location of non-empty NEEDLE within HAYSTACK, or NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This method is optimized for LONG_NEEDLE_THRESHOLD <= NEEDLE_LEN. Performance is guaranteed to be linear, with an initialization cost of 3 * NEEDLE_LEN + (1 << CHAR_BIT) operations. If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and sublinear performance O(HAYSTACK_LEN / NEEDLE_LEN) is possible. If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and sublinear performance is not possible. */ static RETURN_TYPE two_way_long_needle (const unsigned char *haystack, size_t haystack_len, const unsigned char *needle, size_t needle_len) { size_t i; /* Index into current byte of NEEDLE. */ size_t j; /* Index into current window of HAYSTACK. */ size_t period; /* The period of the right half of needle. */ size_t suffix; /* The index of the right half of needle. */ size_t shift_table[1U << CHAR_BIT]; /* See below. */ /* Factor the needle into two halves, such that the left half is smaller than the global period, and the right half is periodic (with a period as large as NEEDLE_LEN - suffix). */ suffix = critical_factorization (needle, needle_len, &period); /* Populate shift_table. For each possible byte value c, shift_table[c] is the distance from the last occurrence of c to the end of NEEDLE, or NEEDLE_LEN if c is absent from the NEEDLE. shift_table[NEEDLE[NEEDLE_LEN - 1]] contains the only 0. */ for (i = 0; i < 1U << CHAR_BIT; i++) shift_table[i] = needle_len; for (i = 0; i < needle_len; i++) shift_table[CANON_ELEMENT (needle[i])] = needle_len - i - 1; /* Perform the search. Each iteration compares the right half first. */ if (CMP_FUNC (needle, needle + period, suffix) == 0) { /* Entire needle is periodic; a mismatch in the left half can only advance by the period, so use memory to avoid rescanning known occurrences of the period in the right half. */ size_t memory = 0; size_t shift; j = 0; while (AVAILABLE (haystack, haystack_len, j, needle_len)) { /* Check the last byte first; if it does not match, then shift to the next possible match location. */ shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])]; if (0 < shift) { if (memory && shift < period) { /* Since needle is periodic, but the last period has a byte out of place, there can be no match until after the mismatch. */ shift = needle_len - period; } memory = 0; j += shift; continue; } /* Scan for matches in right half. The last byte has already been matched, by virtue of the shift table. */ i = MAX (suffix, memory); while (i < needle_len - 1 && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) ++i; if (needle_len - 1 <= i) { /* Scan for matches in left half. */ i = suffix - 1; while (memory < i + 1 && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) --i; if (i + 1 < memory + 1) return (RETURN_TYPE) (haystack + j); /* No match, so remember how many repetitions of period on the right half were scanned. */ j += period; memory = needle_len - period; } else { j += i - suffix + 1; memory = 0; } } } else { /* The two halves of needle are distinct; no extra memory is required, and any mismatch results in a maximal shift. */ size_t shift; period = MAX (suffix, needle_len - suffix) + 1; j = 0; while (AVAILABLE (haystack, haystack_len, j, needle_len)) { /* Check the last byte first; if it does not match, then shift to the next possible match location. */ shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])]; if (0 < shift) { j += shift; continue; } /* Scan for matches in right half. The last byte has already been matched, by virtue of the shift table. */ i = suffix; while (i < needle_len - 1 && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) ++i; if (needle_len - 1 <= i) { /* Scan for matches in left half. */ i = suffix - 1; while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) == CANON_ELEMENT (haystack[i + j]))) --i; if (i == SIZE_MAX) return (RETURN_TYPE) (haystack + j); j += period; } else j += i - suffix + 1; } } return NULL; } #undef AVAILABLE #undef CANON_ELEMENT #undef CMP_FUNC #undef MAX #undef RETURN_TYPE gcal-4.1/lib/intprops.h0000664000000000000000000005105313041163522011753 00000000000000/* intprops.h -- properties of integer types Copyright (C) 2001-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert. */ #ifndef _GL_INTPROPS_H #define _GL_INTPROPS_H #include #include /* Return a value with the common real type of E and V and the value of V. */ #define _GL_INT_CONVERT(e, v) (0 * (e) + (v)) /* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see . */ #define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v)) /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ /* True if the arithmetic type T is an integer type. bool counts as an integer. */ #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) /* True if the real type T is signed. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* Return 1 if the real expression E, after promotion, has a signed or floating type. */ #define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) /* Minimum and maximum values for integer types and expressions. */ /* The width in bits of the integer type or expression T. Padding bits are not supported; this is checked at compile-time below. */ #define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) /* The maximum and minimum values for the integer type T. */ #define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1))) /* The maximum and minimum values for the type of the expression E, after integer promotion. E should not have side effects. */ #define _GL_INT_MINIMUM(e) \ (EXPR_SIGNED (e) \ ? ~ _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_CONVERT (e, 0)) #define _GL_INT_MAXIMUM(e) \ (EXPR_SIGNED (e) \ ? _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_NEGATE_CONVERT (e, 1)) #define _GL_SIGNED_INT_MAXIMUM(e) \ (((_GL_INT_CONVERT (e, 1) << (TYPE_WIDTH ((e) + 0) - 2)) - 1) * 2 + 1) /* Work around OpenVMS incompatibility with C99. */ #if !defined LLONG_MAX && defined __INT64_MAX # define LLONG_MAX __INT64_MAX # define LLONG_MIN __INT64_MIN #endif /* This include file assumes that signed types are two's complement without padding bits; the above macros have undefined behavior otherwise. If this is a problem for you, please let us know how to fix it for your host. As a sanity check, test the assumption for some signed types that bounds. */ verify (TYPE_MINIMUM (signed char) == SCHAR_MIN); verify (TYPE_MAXIMUM (signed char) == SCHAR_MAX); verify (TYPE_MINIMUM (short int) == SHRT_MIN); verify (TYPE_MAXIMUM (short int) == SHRT_MAX); verify (TYPE_MINIMUM (int) == INT_MIN); verify (TYPE_MAXIMUM (int) == INT_MAX); verify (TYPE_MINIMUM (long int) == LONG_MIN); verify (TYPE_MAXIMUM (long int) == LONG_MAX); #ifdef LLONG_MAX verify (TYPE_MINIMUM (long long int) == LLONG_MIN); verify (TYPE_MAXIMUM (long long int) == LLONG_MAX); #endif /* Similarly, sanity-check one ISO/IEC TS 18661-1:2014 macro if defined. */ #ifdef UINT_WIDTH verify (TYPE_WIDTH (unsigned int) == UINT_WIDTH); #endif /* Does the __typeof__ keyword work? This could be done by 'configure', but for now it's easier to do it by hand. */ #if (2 <= __GNUC__ \ || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \ || (0x5110 <= __SUNPRO_C && !__STDC__)) # define _GL_HAVE___TYPEOF__ 1 #else # define _GL_HAVE___TYPEOF__ 0 #endif /* Return 1 if the integer type or expression T might be signed. Return 0 if it is definitely unsigned. This macro does not evaluate its argument, and expands to an integer constant expression. */ #if _GL_HAVE___TYPEOF__ # define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t)) #else # define _GL_SIGNED_TYPE_OR_EXPR(t) 1 #endif /* Bound on length of the string representing an unsigned integer value representable in B bits. log10 (2.0) < 146/485. The smallest value of B where this bound is not tight is 2621. */ #define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) /* Bound on length of the string representing an integer type or expression T. Subtract 1 for the sign bit if T is signed, and then add 1 more for a minus sign if needed. Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is signed, this macro may overestimate the true bound by one byte when applied to unsigned types of size 2, 4, 16, ... bytes. */ #define INT_STRLEN_BOUND(t) \ (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \ + _GL_SIGNED_TYPE_OR_EXPR (t)) /* Bound on buffer size needed to represent an integer type or expression T, including the terminating null. */ #define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) /* Range overflow checks. The INT__RANGE_OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. They do not rely on undefined or implementation-defined behavior. Their implementations are simple and straightforward, but they are a bit harder to use than the INT__OVERFLOW macros described below. Example usage: long int i = ...; long int j = ...; if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX)) printf ("multiply would overflow"); else printf ("product is %ld", i * j); Restrictions on *_RANGE_OVERFLOW macros: These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. The arithmetic arguments (including the MIN and MAX arguments) must be of the same integer type after the usual arithmetic conversions, and the type must have minimum value MIN and maximum MAX. Unsigned types should use a zero MIN of the proper type. These macros are tuned for constant MIN and MAX. For commutative operations such as A + B, they are also tuned for constant B. */ /* Return 1 if A + B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (a) < (min) - (b) \ : (max) - (b) < (a)) /* Return 1 if A - B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (max) + (b) < (a) \ : (a) < (min) + (b)) /* Return 1 if - A would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ ((min) < 0 \ ? (a) < - (max) \ : 0 < (a)) /* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Avoid && and || as they tickle bugs in Sun C 5.11 2010/08/13 and other compilers; see . */ #define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? ((a) < 0 \ ? (a) < (max) / (b) \ : (b) == -1 \ ? 0 \ : (min) / (b) < (a)) \ : (b) == 0 \ ? 0 \ : ((a) < 0 \ ? (a) < (min) / (b) \ : (max) / (b) < (a))) /* Return 1 if A / B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. */ #define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \ ((min) < 0 && (b) == -1 && (a) < - (max)) /* Return 1 if A % B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. Mathematically, % should never overflow, but on x86-like hosts INT_MIN % -1 traps, and the C standard permits this, so treat this as an overflow too. */ #define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \ INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max) /* Return 1 if A << B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Here, MIN and MAX are for A only, and B need not be of the same type as the other arguments. The C standard says that behavior is undefined for shifts unless 0 <= B < wordwidth, and that when A is negative then A << B has undefined behavior and A >> B has implementation-defined behavior, but do not check these other restrictions. */ #define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \ ((a) < 0 \ ? (a) < (min) >> (b) \ : (max) >> (b) < (a)) /* True if __builtin_add_overflow (A, B, P) works when P is non-null. */ #define _GL_HAS_BUILTIN_OVERFLOW (5 <= __GNUC__) /* True if __builtin_add_overflow_p (A, B, C) works. */ #define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__) /* The _GL*_OVERFLOW macros have the same restrictions as the *_RANGE_OVERFLOW macros, except that they do not assume that operands (e.g., A and B) have the same type as MIN and MAX. Instead, they assume that the result (e.g., A + B) has that type. */ #if _GL_HAS_BUILTIN_OVERFLOW_P # define _GL_ADD_OVERFLOW(a, b, min, max) \ __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0) # define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0) # define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0) #else # define _GL_ADD_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? (b) <= (a) + (b) \ : (b) < 0 ? (a) <= (a) + (b) \ : (a) + (b) < (b)) # define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? 1 \ : (b) < 0 ? (a) - (b) <= (a) \ : (a) < (b)) # define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) #endif #define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (b) <= (a) + (b) - 1 \ : (b) < 0 && (a) + (b) <= (a)) #define _GL_REMAINDER_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \ : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max)) /* Return a nonzero value if A is a mathematical multiple of B, where A is unsigned, B is negative, and MAX is the maximum value of A's type. A's type must be the same as (A % B)'s type. Normally (A % -B == 0) suffices, but things get tricky if -B would overflow. */ #define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \ (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \ ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \ ? (a) \ : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \ : (a) % - (b)) \ == 0) /* Check for integer overflow, and report low order bits of answer. The INT__OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. The INT__WRAPV macros also store the low-order bits of the answer. These macros work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. Example usage, assuming A and B are long int: if (INT_MULTIPLY_OVERFLOW (a, b)) printf ("result would overflow\n"); else printf ("result is %ld (no overflow)\n", a * b); Example usage with WRAPV flavor: long int result; bool overflow = INT_MULTIPLY_WRAPV (a, b, &result); printf ("result is %ld (%s)\n", result, overflow ? "after overflow" : "no overflow"); Restrictions on these macros: These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. The WRAPV macros are not constant expressions. They support only +, binary -, and *. The result type must be signed. These macros are tuned for their last argument being a constant. Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, A % B, and A << B would overflow, respectively. */ #define INT_ADD_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW) #define INT_SUBTRACT_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW) #if _GL_HAS_BUILTIN_OVERFLOW_P # define INT_NEGATE_OVERFLOW(a) INT_SUBTRACT_OVERFLOW (0, a) #else # define INT_NEGATE_OVERFLOW(a) \ INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) #endif #define INT_MULTIPLY_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW) #define INT_DIVIDE_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW) #define INT_REMAINDER_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW) #define INT_LEFT_SHIFT_OVERFLOW(a, b) \ INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \ _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) /* Return 1 if the expression A B would overflow, where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test, assuming MIN and MAX are the minimum and maximum for the result type. Arguments should be free of side effects. */ #define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ op_result_overflow (a, b, \ _GL_INT_MINIMUM (0 * (b) + (a)), \ _GL_INT_MAXIMUM (0 * (b) + (a))) /* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. Return 1 if the result overflows. See above for restrictions. */ #define INT_ADD_WRAPV(a, b, r) \ _GL_INT_OP_WRAPV (a, b, r, +, __builtin_add_overflow, INT_ADD_OVERFLOW) #define INT_SUBTRACT_WRAPV(a, b, r) \ _GL_INT_OP_WRAPV (a, b, r, -, __builtin_sub_overflow, INT_SUBTRACT_OVERFLOW) #define INT_MULTIPLY_WRAPV(a, b, r) \ _GL_INT_OP_WRAPV (a, b, r, *, __builtin_mul_overflow, INT_MULTIPLY_OVERFLOW) /* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193 https://llvm.org/bugs/show_bug.cgi?id=25390 For now, assume all versions of GCC-like compilers generate bogus warnings for _Generic. This matters only for older compilers that lack __builtin_add_overflow. */ #if __GNUC__ # define _GL__GENERIC_BOGUS 1 #else # define _GL__GENERIC_BOGUS 0 #endif /* Store the low-order bits of A B into *R, where OP specifies the operation. BUILTIN is the builtin operation, and OVERFLOW the overflow predicate. Return 1 if the result overflows. See above for restrictions. */ #if _GL_HAS_BUILTIN_OVERFLOW # define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) builtin (a, b, r) #elif 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS # define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \ (_Generic \ (*(r), \ signed char: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned char, \ signed char, SCHAR_MIN, SCHAR_MAX), \ short int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned short int, \ short int, SHRT_MIN, SHRT_MAX), \ int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ int, INT_MIN, INT_MAX), \ long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX), \ long long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ long long int, LLONG_MIN, LLONG_MAX))) #else # define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \ (sizeof *(r) == sizeof (signed char) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned char, \ signed char, SCHAR_MIN, SCHAR_MAX) \ : sizeof *(r) == sizeof (short int) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned short int, \ short int, SHRT_MIN, SHRT_MAX) \ : sizeof *(r) == sizeof (int) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ int, INT_MIN, INT_MAX) \ : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow)) # ifdef LLONG_MAX # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ (sizeof *(r) == sizeof (long int) \ ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX) \ : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ long long int, LLONG_MIN, LLONG_MAX)) # else # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX) # endif #endif /* Store the low-order bits of A B into *R, where the operation is given by OP. Use the unsigned type UT for calculation to avoid overflow problems. *R's type is T, with extremal values TMIN and TMAX. T must be a signed integer type. Return 1 if the result overflows. */ #define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \ (sizeof ((a) op (b)) < sizeof (t) \ ? _GL_INT_OP_CALC1 ((t) (a), (t) (b), r, op, overflow, ut, t, tmin, tmax) \ : _GL_INT_OP_CALC1 (a, b, r, op, overflow, ut, t, tmin, tmax)) #define _GL_INT_OP_CALC1(a, b, r, op, overflow, ut, t, tmin, tmax) \ ((overflow (a, b) \ || (EXPR_SIGNED ((a) op (b)) && ((a) op (b)) < (tmin)) \ || (tmax) < ((a) op (b))) \ ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t, tmin, tmax), 1) \ : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t, tmin, tmax), 0)) /* Return A B, where the operation is given by OP. Use the unsigned type UT for calculation to avoid overflow problems. Convert the result to type T without overflow by subtracting TMIN from large values before converting, and adding it afterwards. Compilers can optimize all the operations except OP. */ #define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t, tmin, tmax) \ (((ut) (a) op (ut) (b)) <= (tmax) \ ? (t) ((ut) (a) op (ut) (b)) \ : ((t) (((ut) (a) op (ut) (b)) - (tmin)) + (tmin))) #endif /* _GL_INTPROPS_H */ gcal-4.1/lib/strerror-override.h0000664000000000000000000000374313041163523013600 00000000000000/* strerror-override.h --- POSIX compatible system error routine Copyright (C) 2010-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _GL_STRERROR_OVERRIDE_H # define _GL_STRERROR_OVERRIDE_H # include # include /* Reasonable buffer size that should never trigger ERANGE; if this proves too small, we intentionally abort(), to remind us to fix this value. */ # define STACKBUF_LEN 256 /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ # if REPLACE_STRERROR_0 \ || GNULIB_defined_ESOCK \ || GNULIB_defined_ESTREAMS \ || GNULIB_defined_EWINSOCK \ || GNULIB_defined_ENOMSG \ || GNULIB_defined_EIDRM \ || GNULIB_defined_ENOLINK \ || GNULIB_defined_EPROTO \ || GNULIB_defined_EMULTIHOP \ || GNULIB_defined_EBADMSG \ || GNULIB_defined_EOVERFLOW \ || GNULIB_defined_ENOTSUP \ || GNULIB_defined_ENETRESET \ || GNULIB_defined_ECONNABORTED \ || GNULIB_defined_ESTALE \ || GNULIB_defined_EDQUOT \ || GNULIB_defined_ECANCELED \ || GNULIB_defined_EOWNERDEAD \ || GNULIB_defined_ENOTRECOVERABLE \ || GNULIB_defined_EILSEQ extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST; # else # define strerror_override(ignored) NULL # endif #endif /* _GL_STRERROR_OVERRIDE_H */ gcal-4.1/lib/unistd.c0000664000000000000000000000014713041163523011375 00000000000000#include #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE #include "unistd.h" typedef int dummy; gcal-4.1/lib/regexec.c0000664000000000000000000037645513041163523011533 00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see . */ static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, Idx n) internal_function; static void match_ctx_clean (re_match_context_t *mctx) internal_function; static void match_ctx_free (re_match_context_t *cache) internal_function; static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, Idx node, Idx str_idx, Idx from, Idx to) internal_function; static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) internal_function; static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx) internal_function; static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx) internal_function; static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, re_dfastate_t **limited_sts, Idx last_node, Idx last_str_idx) internal_function; static reg_errcode_t re_search_internal (const regex_t *preg, const char *string, Idx length, Idx start, Idx last_start, Idx stop, size_t nmatch, regmatch_t pmatch[], int eflags) internal_function; static regoff_t re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, Idx length1, const char *string2, Idx length2, Idx start, regoff_t range, struct re_registers *regs, Idx stop, bool ret_len) internal_function; static regoff_t re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx start, regoff_t range, Idx stop, struct re_registers *regs, bool ret_len) internal_function; static unsigned re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, int regs_allocated) internal_function; static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx) internal_function; static Idx check_matching (re_match_context_t *mctx, bool fl_longest_match, Idx *p_match_first) internal_function; static Idx check_halt_state_context (const re_match_context_t *mctx, const re_dfastate_t *state, Idx idx) internal_function; static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch) internal_function; static reg_errcode_t push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes) internal_function; static reg_errcode_t set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, bool fl_backtrack) internal_function; static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs) internal_function; #ifdef RE_ENABLE_I18N static int sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx node_idx, Idx str_idx, Idx max_str_idx) internal_function; #endif /* RE_ENABLE_I18N */ static reg_errcode_t sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) internal_function; static reg_errcode_t build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *cur_dest) internal_function; static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *dest_nodes) internal_function; static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates) internal_function; static bool check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx) internal_function; static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, Idx subexp_idx, Idx from_node, Idx bkref_idx) internal_function; static int check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, Idx subexp_idx, Idx node, Idx str_idx, Idx bkref_idx) internal_function; static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, Idx str_idx) internal_function; static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, const re_node_set *candidates) internal_function; static reg_errcode_t merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, re_dfastate_t **src, Idx num) internal_function; static re_dfastate_t *find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) internal_function; static re_dfastate_t *transit_state (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) internal_function; static re_dfastate_t *merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *next_state) internal_function; static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, Idx str_idx) internal_function; #if 0 static re_dfastate_t *transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *pstate) internal_function; #endif #ifdef RE_ENABLE_I18N static reg_errcode_t transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) internal_function; #endif /* RE_ENABLE_I18N */ static reg_errcode_t transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) internal_function; static reg_errcode_t get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) internal_function; static reg_errcode_t get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, Idx bkref_node, Idx bkref_str) internal_function; static Idx find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, Idx subexp_idx, int type) internal_function; static reg_errcode_t check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Idx top_str, Idx last_node, Idx last_str, int type) internal_function; static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, re_node_set *cur_nodes, re_node_set *next_nodes) internal_function; static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, Idx ex_subexp, int type) internal_function; static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, Idx target, Idx ex_subexp, int type) internal_function; static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Idx cur_str, Idx subexp_num, int type) internal_function; static bool build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) internal_function; #ifdef RE_ENABLE_I18N static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, const re_string_t *input, Idx idx) internal_function; # ifdef _LIBC static unsigned int find_collation_sequence_value (const unsigned char *mbs, size_t name_len) internal_function; # endif /* _LIBC */ #endif /* RE_ENABLE_I18N */ static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *states_node, bitset_t *states_ch) internal_function; static bool check_node_accept (const re_match_context_t *mctx, const re_token_t *node, Idx idx) internal_function; static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len) internal_function; /* Entry point for POSIX code. */ /* regexec searches for a given pattern, specified by PREG, in the string STRING. If NMATCH is zero or REG_NOSUB was set in the cflags argument to 'regcomp', we ignore PMATCH. Otherwise, we assume PMATCH has at least NMATCH elements, and we set them to the offsets of the corresponding matched substrings. EFLAGS specifies "execution flags" which affect matching: if REG_NOTBOL is set, then ^ does not match at the beginning of the string; if REG_NOTEOL is set, then $ does not match at the end. We return 0 if we find a match and REG_NOMATCH if not. */ int regexec (const regex_t *_Restrict_ preg, const char *_Restrict_ string, size_t nmatch, regmatch_t pmatch[], int eflags) { reg_errcode_t err; Idx start, length; re_dfa_t *dfa = preg->buffer; if (eflags & ~(REG_NOTBOL | REG_NOTEOL | REG_STARTEND)) return REG_BADPAT; if (eflags & REG_STARTEND) { start = pmatch[0].rm_so; length = pmatch[0].rm_eo; } else { start = 0; length = strlen (string); } lock_lock (dfa->lock); if (preg->no_sub) err = re_search_internal (preg, string, length, start, length, length, 0, NULL, eflags); else err = re_search_internal (preg, string, length, start, length, length, nmatch, pmatch, eflags); lock_unlock (dfa->lock); return err != REG_NOERROR; } #ifdef _LIBC # include versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4); # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4) __typeof__ (__regexec) __compat_regexec; int attribute_compat_text_section __compat_regexec (const regex_t *_Restrict_ preg, const char *_Restrict_ string, size_t nmatch, regmatch_t pmatch[], int eflags) { return regexec (preg, string, nmatch, pmatch, eflags & (REG_NOTBOL | REG_NOTEOL)); } compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0); # endif #endif /* Entry points for GNU code. */ /* re_match, re_search, re_match_2, re_search_2 The former two functions operate on STRING with length LENGTH, while the later two operate on concatenation of STRING1 and STRING2 with lengths LENGTH1 and LENGTH2, respectively. re_match() matches the compiled pattern in BUFP against the string, starting at index START. re_search() first tries matching at index START, then it tries to match starting from index START + 1, and so on. The last start position tried is START + RANGE. (Thus RANGE = 0 forces re_search to operate the same way as re_match().) The parameter STOP of re_{match,search}_2 specifies that no match exceeding the first STOP characters of the concatenation of the strings should be concerned. If REGS is not NULL, and BUFP->no_sub is not set, the offsets of the match and all groups is stored in REGS. (For the "_2" variants, the offsets are computed relative to the concatenation, not relative to the individual strings.) On success, re_match* functions return the length of the match, re_search* return the position of the start of the match. Return value -1 means no match was found and -2 indicates an internal error. */ regoff_t re_match (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx start, struct re_registers *regs) { return re_search_stub (bufp, string, length, start, 0, length, regs, true); } #ifdef _LIBC weak_alias (__re_match, re_match) #endif regoff_t re_search (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx start, regoff_t range, struct re_registers *regs) { return re_search_stub (bufp, string, length, start, range, length, regs, false); } #ifdef _LIBC weak_alias (__re_search, re_search) #endif regoff_t re_match_2 (struct re_pattern_buffer *bufp, const char *string1, Idx length1, const char *string2, Idx length2, Idx start, struct re_registers *regs, Idx stop) { return re_search_2_stub (bufp, string1, length1, string2, length2, start, 0, regs, stop, true); } #ifdef _LIBC weak_alias (__re_match_2, re_match_2) #endif regoff_t re_search_2 (struct re_pattern_buffer *bufp, const char *string1, Idx length1, const char *string2, Idx length2, Idx start, regoff_t range, struct re_registers *regs, Idx stop) { return re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs, stop, false); } #ifdef _LIBC weak_alias (__re_search_2, re_search_2) #endif static regoff_t internal_function re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, Idx length1, const char *string2, Idx length2, Idx start, regoff_t range, struct re_registers *regs, Idx stop, bool ret_len) { const char *str; regoff_t rval; Idx len; char *s = NULL; if (BE ((length1 < 0 || length2 < 0 || stop < 0 || INT_ADD_WRAPV (length1, length2, &len)), 0)) return -2; /* Concatenate the strings. */ if (length2 > 0) if (length1 > 0) { s = re_malloc (char, len); if (BE (s == NULL, 0)) return -2; #ifdef _LIBC memcpy (__mempcpy (s, string1, length1), string2, length2); #else memcpy (s, string1, length1); memcpy (s + length1, string2, length2); #endif str = s; } else str = string2; else str = string1; rval = re_search_stub (bufp, str, len, start, range, stop, regs, ret_len); re_free (s); return rval; } /* The parameters have the same meaning as those of re_search. Additional parameters: If RET_LEN is true the length of the match is returned (re_match style); otherwise the position of the match is returned. */ static regoff_t internal_function re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx start, regoff_t range, Idx stop, struct re_registers *regs, bool ret_len) { reg_errcode_t result; regmatch_t *pmatch; Idx nregs; regoff_t rval; int eflags = 0; re_dfa_t *dfa = bufp->buffer; Idx last_start = start + range; /* Check for out-of-range. */ if (BE (start < 0 || start > length, 0)) return -1; if (BE (length < last_start || (0 <= range && last_start < start), 0)) last_start = length; else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0)) last_start = 0; lock_lock (dfa->lock); eflags |= (bufp->not_bol) ? REG_NOTBOL : 0; eflags |= (bufp->not_eol) ? REG_NOTEOL : 0; /* Compile fastmap if we haven't yet. */ if (start < last_start && bufp->fastmap != NULL && !bufp->fastmap_accurate) re_compile_fastmap (bufp); if (BE (bufp->no_sub, 0)) regs = NULL; /* We need at least 1 register. */ if (regs == NULL) nregs = 1; else if (BE (bufp->regs_allocated == REGS_FIXED && regs->num_regs <= bufp->re_nsub, 0)) { nregs = regs->num_regs; if (BE (nregs < 1, 0)) { /* Nothing can be copied to regs. */ regs = NULL; nregs = 1; } } else nregs = bufp->re_nsub + 1; pmatch = re_malloc (regmatch_t, nregs); if (BE (pmatch == NULL, 0)) { rval = -2; goto out; } result = re_search_internal (bufp, string, length, start, last_start, stop, nregs, pmatch, eflags); rval = 0; /* I hope we needn't fill their regs with -1's when no match was found. */ if (result != REG_NOERROR) rval = result == REG_NOMATCH ? -1 : -2; else if (regs != NULL) { /* If caller wants register contents data back, copy them. */ bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs, bufp->regs_allocated); if (BE (bufp->regs_allocated == REGS_UNALLOCATED, 0)) rval = -2; } if (BE (rval == 0, 1)) { if (ret_len) { assert (pmatch[0].rm_so == start); rval = pmatch[0].rm_eo - start; } else rval = pmatch[0].rm_so; } re_free (pmatch); out: lock_unlock (dfa->lock); return rval; } static unsigned internal_function re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, int regs_allocated) { int rval = REGS_REALLOCATE; Idx i; Idx need_regs = nregs + 1; /* We need one extra element beyond 'num_regs' for the '-1' marker GNU code uses. */ /* Have the register data arrays been allocated? */ if (regs_allocated == REGS_UNALLOCATED) { /* No. So allocate them with malloc. */ regs->start = re_malloc (regoff_t, need_regs); if (BE (regs->start == NULL, 0)) return REGS_UNALLOCATED; regs->end = re_malloc (regoff_t, need_regs); if (BE (regs->end == NULL, 0)) { re_free (regs->start); return REGS_UNALLOCATED; } regs->num_regs = need_regs; } else if (regs_allocated == REGS_REALLOCATE) { /* Yes. If we need more elements than were already allocated, reallocate them. If we need fewer, just leave it alone. */ if (BE (need_regs > regs->num_regs, 0)) { regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs); regoff_t *new_end; if (BE (new_start == NULL, 0)) return REGS_UNALLOCATED; new_end = re_realloc (regs->end, regoff_t, need_regs); if (BE (new_end == NULL, 0)) { re_free (new_start); return REGS_UNALLOCATED; } regs->start = new_start; regs->end = new_end; regs->num_regs = need_regs; } } else { assert (regs_allocated == REGS_FIXED); /* This function may not be called with REGS_FIXED and nregs too big. */ assert (regs->num_regs >= nregs); rval = REGS_FIXED; } /* Copy the regs. */ for (i = 0; i < nregs; ++i) { regs->start[i] = pmatch[i].rm_so; regs->end[i] = pmatch[i].rm_eo; } for ( ; i < regs->num_regs; ++i) regs->start[i] = regs->end[i] = -1; return rval; } /* Set REGS to hold NUM_REGS registers, storing them in STARTS and ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use this memory for recording register information. STARTS and ENDS must be allocated using the malloc library routine, and must each be at least NUM_REGS * sizeof (regoff_t) bytes long. If NUM_REGS == 0, then subsequent matches should allocate their own register data. Unless this function is called, the first search or match using PATTERN_BUFFER will allocate its own register data, without freeing the old data. */ void re_set_registers (struct re_pattern_buffer *bufp, struct re_registers *regs, __re_size_t num_regs, regoff_t *starts, regoff_t *ends) { if (num_regs) { bufp->regs_allocated = REGS_REALLOCATE; regs->num_regs = num_regs; regs->start = starts; regs->end = ends; } else { bufp->regs_allocated = REGS_UNALLOCATED; regs->num_regs = 0; regs->start = regs->end = NULL; } } #ifdef _LIBC weak_alias (__re_set_registers, re_set_registers) #endif /* Entry points compatible with 4.2 BSD regex library. We don't define them unless specifically requested. */ #if defined _REGEX_RE_COMP || defined _LIBC int # ifdef _LIBC weak_function # endif re_exec (const char *s) { return 0 == regexec (&re_comp_buf, s, 0, NULL, 0); } #endif /* _REGEX_RE_COMP */ /* Internal entry point. */ /* Searches for a compiled pattern PREG in the string STRING, whose length is LENGTH. NMATCH, PMATCH, and EFLAGS have the same meaning as with regexec. LAST_START is START + RANGE, where START and RANGE have the same meaning as with re_search. Return REG_NOERROR if we find a match, and REG_NOMATCH if not, otherwise return the error code. Note: We assume front end functions already check ranges. (0 <= LAST_START && LAST_START <= LENGTH) */ static reg_errcode_t __attribute_warn_unused_result__ internal_function re_search_internal (const regex_t *preg, const char *string, Idx length, Idx start, Idx last_start, Idx stop, size_t nmatch, regmatch_t pmatch[], int eflags) { reg_errcode_t err; const re_dfa_t *dfa = preg->buffer; Idx left_lim, right_lim; int incr; bool fl_longest_match; int match_kind; Idx match_first; Idx match_last = -1; Idx extra_nmatch; bool sb; int ch; #if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) re_match_context_t mctx = { .dfa = dfa }; #else re_match_context_t mctx; #endif char *fastmap = ((preg->fastmap != NULL && preg->fastmap_accurate && start != last_start && !preg->can_be_null) ? preg->fastmap : NULL); RE_TRANSLATE_TYPE t = preg->translate; #if !(defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) memset (&mctx, '\0', sizeof (re_match_context_t)); mctx.dfa = dfa; #endif extra_nmatch = (nmatch > preg->re_nsub) ? nmatch - (preg->re_nsub + 1) : 0; nmatch -= extra_nmatch; /* Check if the DFA haven't been compiled. */ if (BE (preg->used == 0 || dfa->init_state == NULL || dfa->init_state_word == NULL || dfa->init_state_nl == NULL || dfa->init_state_begbuf == NULL, 0)) return REG_NOMATCH; #ifdef DEBUG /* We assume front-end functions already check them. */ assert (0 <= last_start && last_start <= length); #endif /* If initial states with non-begbuf contexts have no elements, the regex must be anchored. If preg->newline_anchor is set, we'll never use init_state_nl, so do not check it. */ if (dfa->init_state->nodes.nelem == 0 && dfa->init_state_word->nodes.nelem == 0 && (dfa->init_state_nl->nodes.nelem == 0 || !preg->newline_anchor)) { if (start != 0 && last_start != 0) return REG_NOMATCH; start = last_start = 0; } /* We must check the longest matching, if nmatch > 0. */ fl_longest_match = (nmatch != 0 || dfa->nbackref); err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1, preg->translate, (preg->syntax & RE_ICASE) != 0, dfa); if (BE (err != REG_NOERROR, 0)) goto free_return; mctx.input.stop = stop; mctx.input.raw_stop = stop; mctx.input.newline_anchor = preg->newline_anchor; err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2); if (BE (err != REG_NOERROR, 0)) goto free_return; /* We will log all the DFA states through which the dfa pass, if nmatch > 1, or this dfa has "multibyte node", which is a back-reference or a node which can accept multibyte character or multi character collating element. */ if (nmatch > 1 || dfa->has_mb_node) { /* Avoid overflow. */ if (BE ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) <= mctx.input.bufs_len), 0)) { err = REG_ESPACE; goto free_return; } mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1); if (BE (mctx.state_log == NULL, 0)) { err = REG_ESPACE; goto free_return; } } else mctx.state_log = NULL; match_first = start; mctx.input.tip_context = (eflags & REG_NOTBOL) ? CONTEXT_BEGBUF : CONTEXT_NEWLINE | CONTEXT_BEGBUF; /* Check incrementally whether the input string matches. */ incr = (last_start < start) ? -1 : 1; left_lim = (last_start < start) ? last_start : start; right_lim = (last_start < start) ? start : last_start; sb = dfa->mb_cur_max == 1; match_kind = (fastmap ? ((sb || !(preg->syntax & RE_ICASE || t) ? 4 : 0) | (start <= last_start ? 2 : 0) | (t != NULL ? 1 : 0)) : 8); for (;; match_first += incr) { err = REG_NOMATCH; if (match_first < left_lim || right_lim < match_first) goto free_return; /* Advance as rapidly as possible through the string, until we find a plausible place to start matching. This may be done with varying efficiency, so there are various possibilities: only the most common of them are specialized, in order to save on code size. We use a switch statement for speed. */ switch (match_kind) { case 8: /* No fastmap. */ break; case 7: /* Fastmap with single-byte translation, match forward. */ while (BE (match_first < right_lim, 1) && !fastmap[t[(unsigned char) string[match_first]]]) ++match_first; goto forward_match_found_start_or_reached_end; case 6: /* Fastmap without translation, match forward. */ while (BE (match_first < right_lim, 1) && !fastmap[(unsigned char) string[match_first]]) ++match_first; forward_match_found_start_or_reached_end: if (BE (match_first == right_lim, 0)) { ch = match_first >= length ? 0 : (unsigned char) string[match_first]; if (!fastmap[t ? t[ch] : ch]) goto free_return; } break; case 4: case 5: /* Fastmap without multi-byte translation, match backwards. */ while (match_first >= left_lim) { ch = match_first >= length ? 0 : (unsigned char) string[match_first]; if (fastmap[t ? t[ch] : ch]) break; --match_first; } if (match_first < left_lim) goto free_return; break; default: /* In this case, we can't determine easily the current byte, since it might be a component byte of a multibyte character. Then we use the constructed buffer instead. */ for (;;) { /* If MATCH_FIRST is out of the valid range, reconstruct the buffers. */ __re_size_t offset = match_first - mctx.input.raw_mbs_idx; if (BE (offset >= (__re_size_t) mctx.input.valid_raw_len, 0)) { err = re_string_reconstruct (&mctx.input, match_first, eflags); if (BE (err != REG_NOERROR, 0)) goto free_return; offset = match_first - mctx.input.raw_mbs_idx; } /* If MATCH_FIRST is out of the buffer, leave it as '\0'. Note that MATCH_FIRST must not be smaller than 0. */ ch = (match_first >= length ? 0 : re_string_byte_at (&mctx.input, offset)); if (fastmap[ch]) break; match_first += incr; if (match_first < left_lim || match_first > right_lim) { err = REG_NOMATCH; goto free_return; } } break; } /* Reconstruct the buffers so that the matcher can assume that the matching starts from the beginning of the buffer. */ err = re_string_reconstruct (&mctx.input, match_first, eflags); if (BE (err != REG_NOERROR, 0)) goto free_return; #ifdef RE_ENABLE_I18N /* Don't consider this char as a possible match start if it part, yet isn't the head, of a multibyte character. */ if (!sb && !re_string_first_byte (&mctx.input, 0)) continue; #endif /* It seems to be appropriate one, then use the matcher. */ /* We assume that the matching starts from 0. */ mctx.state_log_top = mctx.nbkref_ents = mctx.max_mb_elem_len = 0; match_last = check_matching (&mctx, fl_longest_match, start <= last_start ? &match_first : NULL); if (match_last != -1) { if (BE (match_last == -2, 0)) { err = REG_ESPACE; goto free_return; } else { mctx.match_last = match_last; if ((!preg->no_sub && nmatch > 1) || dfa->nbackref) { re_dfastate_t *pstate = mctx.state_log[match_last]; mctx.last_node = check_halt_state_context (&mctx, pstate, match_last); } if ((!preg->no_sub && nmatch > 1 && dfa->has_plural_match) || dfa->nbackref) { err = prune_impossible_nodes (&mctx); if (err == REG_NOERROR) break; if (BE (err != REG_NOMATCH, 0)) goto free_return; match_last = -1; } else break; /* We found a match. */ } } match_ctx_clean (&mctx); } #ifdef DEBUG assert (match_last != -1); assert (err == REG_NOERROR); #endif /* Set pmatch[] if we need. */ if (nmatch > 0) { Idx reg_idx; /* Initialize registers. */ for (reg_idx = 1; reg_idx < nmatch; ++reg_idx) pmatch[reg_idx].rm_so = pmatch[reg_idx].rm_eo = -1; /* Set the points where matching start/end. */ pmatch[0].rm_so = 0; pmatch[0].rm_eo = mctx.match_last; /* FIXME: This function should fail if mctx.match_last exceeds the maximum possible regoff_t value. We need a new error code REG_OVERFLOW. */ if (!preg->no_sub && nmatch > 1) { err = set_regs (preg, &mctx, nmatch, pmatch, dfa->has_plural_match && dfa->nbackref > 0); if (BE (err != REG_NOERROR, 0)) goto free_return; } /* At last, add the offset to each register, since we slid the buffers so that we could assume that the matching starts from 0. */ for (reg_idx = 0; reg_idx < nmatch; ++reg_idx) if (pmatch[reg_idx].rm_so != -1) { #ifdef RE_ENABLE_I18N if (BE (mctx.input.offsets_needed != 0, 0)) { pmatch[reg_idx].rm_so = (pmatch[reg_idx].rm_so == mctx.input.valid_len ? mctx.input.valid_raw_len : mctx.input.offsets[pmatch[reg_idx].rm_so]); pmatch[reg_idx].rm_eo = (pmatch[reg_idx].rm_eo == mctx.input.valid_len ? mctx.input.valid_raw_len : mctx.input.offsets[pmatch[reg_idx].rm_eo]); } #else assert (mctx.input.offsets_needed == 0); #endif pmatch[reg_idx].rm_so += match_first; pmatch[reg_idx].rm_eo += match_first; } for (reg_idx = 0; reg_idx < extra_nmatch; ++reg_idx) { pmatch[nmatch + reg_idx].rm_so = -1; pmatch[nmatch + reg_idx].rm_eo = -1; } if (dfa->subexp_map) for (reg_idx = 0; reg_idx + 1 < nmatch; reg_idx++) if (dfa->subexp_map[reg_idx] != reg_idx) { pmatch[reg_idx + 1].rm_so = pmatch[dfa->subexp_map[reg_idx] + 1].rm_so; pmatch[reg_idx + 1].rm_eo = pmatch[dfa->subexp_map[reg_idx] + 1].rm_eo; } } free_return: re_free (mctx.state_log); if (dfa->nbackref) match_ctx_free (&mctx); re_string_destruct (&mctx.input); return err; } static reg_errcode_t internal_function __attribute_warn_unused_result__ prune_impossible_nodes (re_match_context_t *mctx) { const re_dfa_t *const dfa = mctx->dfa; Idx halt_node, match_last; reg_errcode_t ret; re_dfastate_t **sifted_states; re_dfastate_t **lim_states = NULL; re_sift_context_t sctx; #ifdef DEBUG assert (mctx->state_log != NULL); #endif match_last = mctx->match_last; halt_node = mctx->last_node; /* Avoid overflow. */ if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) <= match_last, 0)) return REG_ESPACE; sifted_states = re_malloc (re_dfastate_t *, match_last + 1); if (BE (sifted_states == NULL, 0)) { ret = REG_ESPACE; goto free_return; } if (dfa->nbackref) { lim_states = re_malloc (re_dfastate_t *, match_last + 1); if (BE (lim_states == NULL, 0)) { ret = REG_ESPACE; goto free_return; } while (1) { memset (lim_states, '\0', sizeof (re_dfastate_t *) * (match_last + 1)); sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last); ret = sift_states_backward (mctx, &sctx); re_node_set_free (&sctx.limits); if (BE (ret != REG_NOERROR, 0)) goto free_return; if (sifted_states[0] != NULL || lim_states[0] != NULL) break; do { --match_last; if (match_last < 0) { ret = REG_NOMATCH; goto free_return; } } while (mctx->state_log[match_last] == NULL || !mctx->state_log[match_last]->halt); halt_node = check_halt_state_context (mctx, mctx->state_log[match_last], match_last); } ret = merge_state_array (dfa, sifted_states, lim_states, match_last + 1); re_free (lim_states); lim_states = NULL; if (BE (ret != REG_NOERROR, 0)) goto free_return; } else { sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last); ret = sift_states_backward (mctx, &sctx); re_node_set_free (&sctx.limits); if (BE (ret != REG_NOERROR, 0)) goto free_return; if (sifted_states[0] == NULL) { ret = REG_NOMATCH; goto free_return; } } re_free (mctx->state_log); mctx->state_log = sifted_states; sifted_states = NULL; mctx->last_node = halt_node; mctx->match_last = match_last; ret = REG_NOERROR; free_return: re_free (sifted_states); re_free (lim_states); return ret; } /* Acquire an initial state and return it. We must select appropriate initial state depending on the context, since initial states may have constraints like "\<", "^", etc.. */ static inline re_dfastate_t * __attribute__ ((always_inline)) internal_function acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx, Idx idx) { const re_dfa_t *const dfa = mctx->dfa; if (dfa->init_state->has_constraint) { unsigned int context; context = re_string_context_at (&mctx->input, idx - 1, mctx->eflags); if (IS_WORD_CONTEXT (context)) return dfa->init_state_word; else if (IS_ORDINARY_CONTEXT (context)) return dfa->init_state; else if (IS_BEGBUF_CONTEXT (context) && IS_NEWLINE_CONTEXT (context)) return dfa->init_state_begbuf; else if (IS_NEWLINE_CONTEXT (context)) return dfa->init_state_nl; else if (IS_BEGBUF_CONTEXT (context)) { /* It is relatively rare case, then calculate on demand. */ return re_acquire_state_context (err, dfa, dfa->init_state->entrance_nodes, context); } else /* Must not happen? */ return dfa->init_state; } else return dfa->init_state; } /* Check whether the regular expression match input string INPUT or not, and return the index where the matching end. Return -1 if there is no match, and return -2 in case of an error. FL_LONGEST_MATCH means we want the POSIX longest matching. If P_MATCH_FIRST is not NULL, and the match fails, it is set to the next place where we may want to try matching. Note that the matcher assumes that the matching starts from the current index of the buffer. */ static Idx internal_function __attribute_warn_unused_result__ check_matching (re_match_context_t *mctx, bool fl_longest_match, Idx *p_match_first) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx match = 0; Idx match_last = -1; Idx cur_str_idx = re_string_cur_idx (&mctx->input); re_dfastate_t *cur_state; bool at_init_state = p_match_first != NULL; Idx next_start_idx = cur_str_idx; err = REG_NOERROR; cur_state = acquire_init_state_context (&err, mctx, cur_str_idx); /* An initial state must not be NULL (invalid). */ if (BE (cur_state == NULL, 0)) { assert (err == REG_ESPACE); return -2; } if (mctx->state_log != NULL) { mctx->state_log[cur_str_idx] = cur_state; /* Check OP_OPEN_SUBEXP in the initial state in case that we use them later. E.g. Processing back references. */ if (BE (dfa->nbackref, 0)) { at_init_state = false; err = check_subexp_matching_top (mctx, &cur_state->nodes, 0); if (BE (err != REG_NOERROR, 0)) return err; if (cur_state->has_backref) { err = transit_state_bkref (mctx, &cur_state->nodes); if (BE (err != REG_NOERROR, 0)) return err; } } } /* If the RE accepts NULL string. */ if (BE (cur_state->halt, 0)) { if (!cur_state->has_constraint || check_halt_state_context (mctx, cur_state, cur_str_idx)) { if (!fl_longest_match) return cur_str_idx; else { match_last = cur_str_idx; match = 1; } } } while (!re_string_eoi (&mctx->input)) { re_dfastate_t *old_state = cur_state; Idx next_char_idx = re_string_cur_idx (&mctx->input) + 1; if ((BE (next_char_idx >= mctx->input.bufs_len, 0) && mctx->input.bufs_len < mctx->input.len) || (BE (next_char_idx >= mctx->input.valid_len, 0) && mctx->input.valid_len < mctx->input.len)) { err = extend_buffers (mctx, next_char_idx + 1); if (BE (err != REG_NOERROR, 0)) { assert (err == REG_ESPACE); return -2; } } cur_state = transit_state (&err, mctx, cur_state); if (mctx->state_log != NULL) cur_state = merge_state_with_log (&err, mctx, cur_state); if (cur_state == NULL) { /* Reached the invalid state or an error. Try to recover a valid state using the state log, if available and if we have not already found a valid (even if not the longest) match. */ if (BE (err != REG_NOERROR, 0)) return -2; if (mctx->state_log == NULL || (match && !fl_longest_match) || (cur_state = find_recover_state (&err, mctx)) == NULL) break; } if (BE (at_init_state, 0)) { if (old_state == cur_state) next_start_idx = next_char_idx; else at_init_state = false; } if (cur_state->halt) { /* Reached a halt state. Check the halt state can satisfy the current context. */ if (!cur_state->has_constraint || check_halt_state_context (mctx, cur_state, re_string_cur_idx (&mctx->input))) { /* We found an appropriate halt state. */ match_last = re_string_cur_idx (&mctx->input); match = 1; /* We found a match, do not modify match_first below. */ p_match_first = NULL; if (!fl_longest_match) break; } } } if (p_match_first) *p_match_first += next_start_idx; return match_last; } /* Check NODE match the current context. */ static bool internal_function check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context) { re_token_type_t type = dfa->nodes[node].type; unsigned int constraint = dfa->nodes[node].constraint; if (type != END_OF_RE) return false; if (!constraint) return true; if (NOT_SATISFY_NEXT_CONSTRAINT (constraint, context)) return false; return true; } /* Check the halt state STATE match the current context. Return 0 if not match, if the node, STATE has, is a halt node and match the context, return the node. */ static Idx internal_function check_halt_state_context (const re_match_context_t *mctx, const re_dfastate_t *state, Idx idx) { Idx i; unsigned int context; #ifdef DEBUG assert (state->halt); #endif context = re_string_context_at (&mctx->input, idx, mctx->eflags); for (i = 0; i < state->nodes.nelem; ++i) if (check_halt_node_context (mctx->dfa, state->nodes.elems[i], context)) return state->nodes.elems[i]; return 0; } /* Compute the next node to which "NFA" transit from NODE("NFA" is a NFA corresponding to the DFA). Return the destination node, and update EPS_VIA_NODES; return -1 in case of errors. */ static Idx internal_function proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, Idx *pidx, Idx node, re_node_set *eps_via_nodes, struct re_fail_stack_t *fs) { const re_dfa_t *const dfa = mctx->dfa; Idx i; bool ok; if (IS_EPSILON_NODE (dfa->nodes[node].type)) { re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes; re_node_set *edests = &dfa->edests[node]; Idx dest_node; ok = re_node_set_insert (eps_via_nodes, node); if (BE (! ok, 0)) return -2; /* Pick up a valid destination, or return -1 if none is found. */ for (dest_node = -1, i = 0; i < edests->nelem; ++i) { Idx candidate = edests->elems[i]; if (!re_node_set_contains (cur_nodes, candidate)) continue; if (dest_node == -1) dest_node = candidate; else { /* In order to avoid infinite loop like "(a*)*", return the second epsilon-transition if the first was already considered. */ if (re_node_set_contains (eps_via_nodes, dest_node)) return candidate; /* Otherwise, push the second epsilon-transition on the fail stack. */ else if (fs != NULL && push_fail_stack (fs, *pidx, candidate, nregs, regs, eps_via_nodes)) return -2; /* We know we are going to exit. */ break; } } return dest_node; } else { Idx naccepted = 0; re_token_type_t type = dfa->nodes[node].type; #ifdef RE_ENABLE_I18N if (dfa->nodes[node].accept_mb) naccepted = check_node_accept_bytes (dfa, node, &mctx->input, *pidx); else #endif /* RE_ENABLE_I18N */ if (type == OP_BACK_REF) { Idx subexp_idx = dfa->nodes[node].opr.idx + 1; naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so; if (fs != NULL) { if (regs[subexp_idx].rm_so == -1 || regs[subexp_idx].rm_eo == -1) return -1; else if (naccepted) { char *buf = (char *) re_string_get_buffer (&mctx->input); if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx, naccepted) != 0) return -1; } } if (naccepted == 0) { Idx dest_node; ok = re_node_set_insert (eps_via_nodes, node); if (BE (! ok, 0)) return -2; dest_node = dfa->edests[node].elems[0]; if (re_node_set_contains (&mctx->state_log[*pidx]->nodes, dest_node)) return dest_node; } } if (naccepted != 0 || check_node_accept (mctx, dfa->nodes + node, *pidx)) { Idx dest_node = dfa->nexts[node]; *pidx = (naccepted == 0) ? *pidx + 1 : *pidx + naccepted; if (fs && (*pidx > mctx->match_last || mctx->state_log[*pidx] == NULL || !re_node_set_contains (&mctx->state_log[*pidx]->nodes, dest_node))) return -1; re_node_set_empty (eps_via_nodes); return dest_node; } } return -1; } static reg_errcode_t internal_function __attribute_warn_unused_result__ push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { reg_errcode_t err; Idx num = fs->num++; if (fs->num == fs->alloc) { struct re_fail_stack_ent_t *new_array; new_array = realloc (fs->stack, (sizeof (struct re_fail_stack_ent_t) * fs->alloc * 2)); if (new_array == NULL) return REG_ESPACE; fs->alloc *= 2; fs->stack = new_array; } fs->stack[num].idx = str_idx; fs->stack[num].node = dest_node; fs->stack[num].regs = re_malloc (regmatch_t, nregs); if (fs->stack[num].regs == NULL) return REG_ESPACE; memcpy (fs->stack[num].regs, regs, sizeof (regmatch_t) * nregs); err = re_node_set_init_copy (&fs->stack[num].eps_via_nodes, eps_via_nodes); return err; } static Idx internal_function pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { Idx num = --fs->num; assert (num >= 0); *pidx = fs->stack[num].idx; memcpy (regs, fs->stack[num].regs, sizeof (regmatch_t) * nregs); re_node_set_free (eps_via_nodes); re_free (fs->stack[num].regs); *eps_via_nodes = fs->stack[num].eps_via_nodes; return fs->stack[num].node; } /* Set the positions where the subexpressions are starts/ends to registers PMATCH. Note: We assume that pmatch[0] is already set, and pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, bool fl_backtrack) { const re_dfa_t *dfa = preg->buffer; Idx idx, cur_node; re_node_set eps_via_nodes; struct re_fail_stack_t *fs; struct re_fail_stack_t fs_body = { 0, 2, NULL }; regmatch_t *prev_idx_match; bool prev_idx_match_malloced = false; #ifdef DEBUG assert (nmatch > 1); assert (mctx->state_log != NULL); #endif if (fl_backtrack) { fs = &fs_body; fs->stack = re_malloc (struct re_fail_stack_ent_t, fs->alloc); if (fs->stack == NULL) return REG_ESPACE; } else fs = NULL; cur_node = dfa->init_node; re_node_set_init_empty (&eps_via_nodes); if (__libc_use_alloca (nmatch * sizeof (regmatch_t))) prev_idx_match = (regmatch_t *) alloca (nmatch * sizeof (regmatch_t)); else { prev_idx_match = re_malloc (regmatch_t, nmatch); if (prev_idx_match == NULL) { free_fail_stack_return (fs); return REG_ESPACE; } prev_idx_match_malloced = true; } memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;) { update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch); if (idx == pmatch[0].rm_eo && cur_node == mctx->last_node) { Idx reg_idx; if (fs) { for (reg_idx = 0; reg_idx < nmatch; ++reg_idx) if (pmatch[reg_idx].rm_so > -1 && pmatch[reg_idx].rm_eo == -1) break; if (reg_idx == nmatch) { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return free_fail_stack_return (fs); } cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, &eps_via_nodes); } else { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return REG_NOERROR; } } /* Proceed to next node. */ cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node, &eps_via_nodes, fs); if (BE (cur_node < 0, 0)) { if (BE (cur_node == -2, 0)) { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); free_fail_stack_return (fs); return REG_ESPACE; } if (fs) cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, &eps_via_nodes); else { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return REG_NOMATCH; } } } re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) re_free (prev_idx_match); return free_fail_stack_return (fs); } static reg_errcode_t internal_function free_fail_stack_return (struct re_fail_stack_t *fs) { if (fs) { Idx fs_idx; for (fs_idx = 0; fs_idx < fs->num; ++fs_idx) { re_node_set_free (&fs->stack[fs_idx].eps_via_nodes); re_free (fs->stack[fs_idx].regs); } re_free (fs->stack); } return REG_NOERROR; } static void internal_function update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch) { int type = dfa->nodes[cur_node].type; if (type == OP_OPEN_SUBEXP) { Idx reg_num = dfa->nodes[cur_node].opr.idx + 1; /* We are at the first node of this sub expression. */ if (reg_num < nmatch) { pmatch[reg_num].rm_so = cur_idx; pmatch[reg_num].rm_eo = -1; } } else if (type == OP_CLOSE_SUBEXP) { Idx reg_num = dfa->nodes[cur_node].opr.idx + 1; if (reg_num < nmatch) { /* We are at the last node of this sub expression. */ if (pmatch[reg_num].rm_so < cur_idx) { pmatch[reg_num].rm_eo = cur_idx; /* This is a non-empty match or we are not inside an optional subexpression. Accept this right away. */ memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); } else { if (dfa->nodes[cur_node].opt_subexp && prev_idx_match[reg_num].rm_so != -1) /* We transited through an empty match for an optional subexpression, like (a?)*, and this is not the subexp's first match. Copy back the old content of the registers so that matches of an inner subexpression are undone as well, like in ((a?))*. */ memcpy (pmatch, prev_idx_match, sizeof (regmatch_t) * nmatch); else /* We completed a subexpression, but it may be part of an optional one, so do not update PREV_IDX_MATCH. */ pmatch[reg_num].rm_eo = cur_idx; } } } } /* This function checks the STATE_LOG from the SCTX->last_str_idx to 0 and sift the nodes in each states according to the following rules. Updated state_log will be wrote to STATE_LOG. Rules: We throw away the Node 'a' in the STATE_LOG[STR_IDX] if... 1. When STR_IDX == MATCH_LAST(the last index in the state_log): If 'a' isn't the LAST_NODE and 'a' can't epsilon transit to the LAST_NODE, we throw away the node 'a'. 2. When 0 <= STR_IDX < MATCH_LAST and 'a' accepts string 's' and transit to 'b': i. If 'b' isn't in the STATE_LOG[STR_IDX+strlen('s')], we throw away the node 'a'. ii. If 'b' is in the STATE_LOG[STR_IDX+strlen('s')] but 'b' is thrown away, we throw away the node 'a'. 3. When 0 <= STR_IDX < MATCH_LAST and 'a' epsilon transit to 'b': i. If 'b' isn't in the STATE_LOG[STR_IDX], we throw away the node 'a'. ii. If 'b' is in the STATE_LOG[STR_IDX] but 'b' is thrown away, we throw away the node 'a'. */ #define STATE_NODE_CONTAINS(state,node) \ ((state) != NULL && re_node_set_contains (&(state)->nodes, node)) static reg_errcode_t internal_function sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) { reg_errcode_t err; int null_cnt = 0; Idx str_idx = sctx->last_str_idx; re_node_set cur_dest; #ifdef DEBUG assert (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL); #endif /* Build sifted state_log[str_idx]. It has the nodes which can epsilon transit to the last_node and the last_node itself. */ err = re_node_set_init_1 (&cur_dest, sctx->last_node); if (BE (err != REG_NOERROR, 0)) return err; err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); if (BE (err != REG_NOERROR, 0)) goto free_return; /* Then check each states in the state_log. */ while (str_idx > 0) { /* Update counters. */ null_cnt = (sctx->sifted_states[str_idx] == NULL) ? null_cnt + 1 : 0; if (null_cnt > mctx->max_mb_elem_len) { memset (sctx->sifted_states, '\0', sizeof (re_dfastate_t *) * str_idx); re_node_set_free (&cur_dest); return REG_NOERROR; } re_node_set_empty (&cur_dest); --str_idx; if (mctx->state_log[str_idx]) { err = build_sifted_states (mctx, sctx, str_idx, &cur_dest); if (BE (err != REG_NOERROR, 0)) goto free_return; } /* Add all the nodes which satisfy the following conditions: - It can epsilon transit to a node in CUR_DEST. - It is in CUR_SRC. And update state_log. */ err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); if (BE (err != REG_NOERROR, 0)) goto free_return; } err = REG_NOERROR; free_return: re_node_set_free (&cur_dest); return err; } static reg_errcode_t internal_function __attribute_warn_unused_result__ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *cur_dest) { const re_dfa_t *const dfa = mctx->dfa; const re_node_set *cur_src = &mctx->state_log[str_idx]->non_eps_nodes; Idx i; /* Then build the next sifted state. We build the next sifted state on 'cur_dest', and update 'sifted_states[str_idx]' with 'cur_dest'. Note: 'cur_dest' is the sifted state from 'state_log[str_idx + 1]'. 'cur_src' points the node_set of the old 'state_log[str_idx]' (with the epsilon nodes pre-filtered out). */ for (i = 0; i < cur_src->nelem; i++) { Idx prev_node = cur_src->elems[i]; int naccepted = 0; bool ok; #ifdef DEBUG re_token_type_t type = dfa->nodes[prev_node].type; assert (!IS_EPSILON_NODE (type)); #endif #ifdef RE_ENABLE_I18N /* If the node may accept "multi byte". */ if (dfa->nodes[prev_node].accept_mb) naccepted = sift_states_iter_mb (mctx, sctx, prev_node, str_idx, sctx->last_str_idx); #endif /* RE_ENABLE_I18N */ /* We don't check backreferences here. See update_cur_sifted_state(). */ if (!naccepted && check_node_accept (mctx, dfa->nodes + prev_node, str_idx) && STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + 1], dfa->nexts[prev_node])) naccepted = 1; if (naccepted == 0) continue; if (sctx->limits.nelem) { Idx to_idx = str_idx + naccepted; if (check_dst_limits (mctx, &sctx->limits, dfa->nexts[prev_node], to_idx, prev_node, str_idx)) continue; } ok = re_node_set_insert (cur_dest, prev_node); if (BE (! ok, 0)) return REG_ESPACE; } return REG_NOERROR; } /* Helper functions. */ static reg_errcode_t internal_function clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx) { Idx top = mctx->state_log_top; if ((next_state_log_idx >= mctx->input.bufs_len && mctx->input.bufs_len < mctx->input.len) || (next_state_log_idx >= mctx->input.valid_len && mctx->input.valid_len < mctx->input.len)) { reg_errcode_t err; err = extend_buffers (mctx, next_state_log_idx + 1); if (BE (err != REG_NOERROR, 0)) return err; } if (top < next_state_log_idx) { memset (mctx->state_log + top + 1, '\0', sizeof (re_dfastate_t *) * (next_state_log_idx - top)); mctx->state_log_top = next_state_log_idx; } return REG_NOERROR; } static reg_errcode_t internal_function merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, re_dfastate_t **src, Idx num) { Idx st_idx; reg_errcode_t err; for (st_idx = 0; st_idx < num; ++st_idx) { if (dst[st_idx] == NULL) dst[st_idx] = src[st_idx]; else if (src[st_idx] != NULL) { re_node_set merged_set; err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes, &src[st_idx]->nodes); if (BE (err != REG_NOERROR, 0)) return err; dst[st_idx] = re_acquire_state (&err, dfa, &merged_set); re_node_set_free (&merged_set); if (BE (err != REG_NOERROR, 0)) return err; } } return REG_NOERROR; } static reg_errcode_t internal_function update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *dest_nodes) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err = REG_NOERROR; const re_node_set *candidates; candidates = ((mctx->state_log[str_idx] == NULL) ? NULL : &mctx->state_log[str_idx]->nodes); if (dest_nodes->nelem == 0) sctx->sifted_states[str_idx] = NULL; else { if (candidates) { /* At first, add the nodes which can epsilon transit to a node in DEST_NODE. */ err = add_epsilon_src_nodes (dfa, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; /* Then, check the limitations in the current sift_context. */ if (sctx->limits.nelem) { err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits, mctx->bkref_ents, str_idx); if (BE (err != REG_NOERROR, 0)) return err; } } sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes); if (BE (err != REG_NOERROR, 0)) return err; } if (candidates && mctx->state_log[str_idx]->has_backref) { err = sift_states_bkref (mctx, sctx, str_idx, candidates); if (BE (err != REG_NOERROR, 0)) return err; } return REG_NOERROR; } static reg_errcode_t internal_function __attribute_warn_unused_result__ add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates) { reg_errcode_t err = REG_NOERROR; Idx i; re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes); if (BE (err != REG_NOERROR, 0)) return err; if (!state->inveclosure.alloc) { err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem); if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; for (i = 0; i < dest_nodes->nelem; i++) { err = re_node_set_merge (&state->inveclosure, dfa->inveclosures + dest_nodes->elems[i]); if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; } } return re_node_set_add_intersect (dest_nodes, candidates, &state->inveclosure); } static reg_errcode_t internal_function sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes, const re_node_set *candidates) { Idx ecl_idx; reg_errcode_t err; re_node_set *inv_eclosure = dfa->inveclosures + node; re_node_set except_nodes; re_node_set_init_empty (&except_nodes); for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx) { Idx cur_node = inv_eclosure->elems[ecl_idx]; if (cur_node == node) continue; if (IS_EPSILON_NODE (dfa->nodes[cur_node].type)) { Idx edst1 = dfa->edests[cur_node].elems[0]; Idx edst2 = ((dfa->edests[cur_node].nelem > 1) ? dfa->edests[cur_node].elems[1] : -1); if ((!re_node_set_contains (inv_eclosure, edst1) && re_node_set_contains (dest_nodes, edst1)) || (edst2 > 0 && !re_node_set_contains (inv_eclosure, edst2) && re_node_set_contains (dest_nodes, edst2))) { err = re_node_set_add_intersect (&except_nodes, candidates, dfa->inveclosures + cur_node); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&except_nodes); return err; } } } } for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx) { Idx cur_node = inv_eclosure->elems[ecl_idx]; if (!re_node_set_contains (&except_nodes, cur_node)) { Idx idx = re_node_set_contains (dest_nodes, cur_node) - 1; re_node_set_remove_at (dest_nodes, idx); } } re_node_set_free (&except_nodes); return REG_NOERROR; } static bool internal_function check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx) { const re_dfa_t *const dfa = mctx->dfa; Idx lim_idx, src_pos, dst_pos; Idx dst_bkref_idx = search_cur_bkref_entry (mctx, dst_idx); Idx src_bkref_idx = search_cur_bkref_entry (mctx, src_idx); for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx) { Idx subexp_idx; struct re_backref_cache_entry *ent; ent = mctx->bkref_ents + limits->elems[lim_idx]; subexp_idx = dfa->nodes[ent->node].opr.idx; dst_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx], subexp_idx, dst_node, dst_idx, dst_bkref_idx); src_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx], subexp_idx, src_node, src_idx, src_bkref_idx); /* In case of: ( ) ( ) ( ) */ if (src_pos == dst_pos) continue; /* This is unrelated limitation. */ else return true; } return false; } static int internal_function check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, Idx subexp_idx, Idx from_node, Idx bkref_idx) { const re_dfa_t *const dfa = mctx->dfa; const re_node_set *eclosures = dfa->eclosures + from_node; Idx node_idx; /* Else, we are on the boundary: examine the nodes on the epsilon closure. */ for (node_idx = 0; node_idx < eclosures->nelem; ++node_idx) { Idx node = eclosures->elems[node_idx]; switch (dfa->nodes[node].type) { case OP_BACK_REF: if (bkref_idx != -1) { struct re_backref_cache_entry *ent = mctx->bkref_ents + bkref_idx; do { Idx dst; int cpos; if (ent->node != node) continue; if (subexp_idx < BITSET_WORD_BITS && !(ent->eps_reachable_subexps_map & ((bitset_word_t) 1 << subexp_idx))) continue; /* Recurse trying to reach the OP_OPEN_SUBEXP and OP_CLOSE_SUBEXP cases below. But, if the destination node is the same node as the source node, don't recurse because it would cause an infinite loop: a regex that exhibits this behavior is ()\1*\1* */ dst = dfa->edests[node].elems[0]; if (dst == from_node) { if (boundaries & 1) return -1; else /* if (boundaries & 2) */ return 0; } cpos = check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx, dst, bkref_idx); if (cpos == -1 /* && (boundaries & 1) */) return -1; if (cpos == 0 && (boundaries & 2)) return 0; if (subexp_idx < BITSET_WORD_BITS) ent->eps_reachable_subexps_map &= ~((bitset_word_t) 1 << subexp_idx); } while (ent++->more); } break; case OP_OPEN_SUBEXP: if ((boundaries & 1) && subexp_idx == dfa->nodes[node].opr.idx) return -1; break; case OP_CLOSE_SUBEXP: if ((boundaries & 2) && subexp_idx == dfa->nodes[node].opr.idx) return 0; break; default: break; } } return (boundaries & 2) ? 1 : 0; } static int internal_function check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, Idx subexp_idx, Idx from_node, Idx str_idx, Idx bkref_idx) { struct re_backref_cache_entry *lim = mctx->bkref_ents + limit; int boundaries; /* If we are outside the range of the subexpression, return -1 or 1. */ if (str_idx < lim->subexp_from) return -1; if (lim->subexp_to < str_idx) return 1; /* If we are within the subexpression, return 0. */ boundaries = (str_idx == lim->subexp_from); boundaries |= (str_idx == lim->subexp_to) << 1; if (boundaries == 0) return 0; /* Else, examine epsilon closure. */ return check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx, from_node, bkref_idx); } /* Check the limitations of sub expressions LIMITS, and remove the nodes which are against limitations from DEST_NODES. */ static reg_errcode_t internal_function check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, Idx str_idx) { reg_errcode_t err; Idx node_idx, lim_idx; for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx) { Idx subexp_idx; struct re_backref_cache_entry *ent; ent = bkref_ents + limits->elems[lim_idx]; if (str_idx <= ent->subexp_from || ent->str_idx < str_idx) continue; /* This is unrelated limitation. */ subexp_idx = dfa->nodes[ent->node].opr.idx; if (ent->subexp_to == str_idx) { Idx ops_node = -1; Idx cls_node = -1; for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { Idx node = dest_nodes->elems[node_idx]; re_token_type_t type = dfa->nodes[node].type; if (type == OP_OPEN_SUBEXP && subexp_idx == dfa->nodes[node].opr.idx) ops_node = node; else if (type == OP_CLOSE_SUBEXP && subexp_idx == dfa->nodes[node].opr.idx) cls_node = node; } /* Check the limitation of the open subexpression. */ /* Note that (ent->subexp_to = str_idx != ent->subexp_from). */ if (ops_node >= 0) { err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; } /* Check the limitation of the close subexpression. */ if (cls_node >= 0) for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { Idx node = dest_nodes->elems[node_idx]; if (!re_node_set_contains (dfa->inveclosures + node, cls_node) && !re_node_set_contains (dfa->eclosures + node, cls_node)) { /* It is against this limitation. Remove it form the current sifted state. */ err = sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; --node_idx; } } } else /* (ent->subexp_to != str_idx) */ { for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) { Idx node = dest_nodes->elems[node_idx]; re_token_type_t type = dfa->nodes[node].type; if (type == OP_CLOSE_SUBEXP || type == OP_OPEN_SUBEXP) { if (subexp_idx != dfa->nodes[node].opr.idx) continue; /* It is against this limitation. Remove it form the current sifted state. */ err = sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates); if (BE (err != REG_NOERROR, 0)) return err; } } } } return REG_NOERROR; } static reg_errcode_t internal_function __attribute_warn_unused_result__ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, const re_node_set *candidates) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx node_idx, node; re_sift_context_t local_sctx; Idx first_idx = search_cur_bkref_entry (mctx, str_idx); if (first_idx == -1) return REG_NOERROR; local_sctx.sifted_states = NULL; /* Mark that it hasn't been initialized. */ for (node_idx = 0; node_idx < candidates->nelem; ++node_idx) { Idx enabled_idx; re_token_type_t type; struct re_backref_cache_entry *entry; node = candidates->elems[node_idx]; type = dfa->nodes[node].type; /* Avoid infinite loop for the REs like "()\1+". */ if (node == sctx->last_node && str_idx == sctx->last_str_idx) continue; if (type != OP_BACK_REF) continue; entry = mctx->bkref_ents + first_idx; enabled_idx = first_idx; do { Idx subexp_len; Idx to_idx; Idx dst_node; bool ok; re_dfastate_t *cur_state; if (entry->node != node) continue; subexp_len = entry->subexp_to - entry->subexp_from; to_idx = str_idx + subexp_len; dst_node = (subexp_len ? dfa->nexts[node] : dfa->edests[node].elems[0]); if (to_idx > sctx->last_str_idx || sctx->sifted_states[to_idx] == NULL || !STATE_NODE_CONTAINS (sctx->sifted_states[to_idx], dst_node) || check_dst_limits (mctx, &sctx->limits, node, str_idx, dst_node, to_idx)) continue; if (local_sctx.sifted_states == NULL) { local_sctx = *sctx; err = re_node_set_init_copy (&local_sctx.limits, &sctx->limits); if (BE (err != REG_NOERROR, 0)) goto free_return; } local_sctx.last_node = node; local_sctx.last_str_idx = str_idx; ok = re_node_set_insert (&local_sctx.limits, enabled_idx); if (BE (! ok, 0)) { err = REG_ESPACE; goto free_return; } cur_state = local_sctx.sifted_states[str_idx]; err = sift_states_backward (mctx, &local_sctx); if (BE (err != REG_NOERROR, 0)) goto free_return; if (sctx->limited_states != NULL) { err = merge_state_array (dfa, sctx->limited_states, local_sctx.sifted_states, str_idx + 1); if (BE (err != REG_NOERROR, 0)) goto free_return; } local_sctx.sifted_states[str_idx] = cur_state; re_node_set_remove (&local_sctx.limits, enabled_idx); /* mctx->bkref_ents may have changed, reload the pointer. */ entry = mctx->bkref_ents + enabled_idx; } while (enabled_idx++, entry++->more); } err = REG_NOERROR; free_return: if (local_sctx.sifted_states != NULL) { re_node_set_free (&local_sctx.limits); } return err; } #ifdef RE_ENABLE_I18N static int internal_function sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx node_idx, Idx str_idx, Idx max_str_idx) { const re_dfa_t *const dfa = mctx->dfa; int naccepted; /* Check the node can accept "multi byte". */ naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx); if (naccepted > 0 && str_idx + naccepted <= max_str_idx && !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted], dfa->nexts[node_idx])) /* The node can't accept the "multi byte", or the destination was already thrown away, then the node could't accept the current input "multi byte". */ naccepted = 0; /* Otherwise, it is sure that the node could accept 'naccepted' bytes input. */ return naccepted; } #endif /* RE_ENABLE_I18N */ /* Functions for state transition. */ /* Return the next state to which the current state STATE will transit by accepting the current input byte, and update STATE_LOG if necessary. If STATE can accept a multibyte char/collating element/back reference update the destination of STATE_LOG. */ static re_dfastate_t * internal_function __attribute_warn_unused_result__ transit_state (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) { re_dfastate_t **trtable; unsigned char ch; #ifdef RE_ENABLE_I18N /* If the current state can accept multibyte. */ if (BE (state->accept_mb, 0)) { *err = transit_state_mb (mctx, state); if (BE (*err != REG_NOERROR, 0)) return NULL; } #endif /* RE_ENABLE_I18N */ /* Then decide the next state with the single byte. */ #if 0 if (0) /* don't use transition table */ return transit_state_sb (err, mctx, state); #endif /* Use transition table */ ch = re_string_fetch_byte (&mctx->input); for (;;) { trtable = state->trtable; if (BE (trtable != NULL, 1)) return trtable[ch]; trtable = state->word_trtable; if (BE (trtable != NULL, 1)) { unsigned int context; context = re_string_context_at (&mctx->input, re_string_cur_idx (&mctx->input) - 1, mctx->eflags); if (IS_WORD_CONTEXT (context)) return trtable[ch + SBC_MAX]; else return trtable[ch]; } if (!build_trtable (mctx->dfa, state)) { *err = REG_ESPACE; return NULL; } /* Retry, we now have a transition table. */ } } /* Update the state_log if we need */ static re_dfastate_t * internal_function merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *next_state) { const re_dfa_t *const dfa = mctx->dfa; Idx cur_idx = re_string_cur_idx (&mctx->input); if (cur_idx > mctx->state_log_top) { mctx->state_log[cur_idx] = next_state; mctx->state_log_top = cur_idx; } else if (mctx->state_log[cur_idx] == 0) { mctx->state_log[cur_idx] = next_state; } else { re_dfastate_t *pstate; unsigned int context; re_node_set next_nodes, *log_nodes, *table_nodes = NULL; /* If (state_log[cur_idx] != 0), it implies that cur_idx is the destination of a multibyte char/collating element/ back reference. Then the next state is the union set of these destinations and the results of the transition table. */ pstate = mctx->state_log[cur_idx]; log_nodes = pstate->entrance_nodes; if (next_state != NULL) { table_nodes = next_state->entrance_nodes; *err = re_node_set_init_union (&next_nodes, table_nodes, log_nodes); if (BE (*err != REG_NOERROR, 0)) return NULL; } else next_nodes = *log_nodes; /* Note: We already add the nodes of the initial state, then we don't need to add them here. */ context = re_string_context_at (&mctx->input, re_string_cur_idx (&mctx->input) - 1, mctx->eflags); next_state = mctx->state_log[cur_idx] = re_acquire_state_context (err, dfa, &next_nodes, context); /* We don't need to check errors here, since the return value of this function is next_state and ERR is already set. */ if (table_nodes != NULL) re_node_set_free (&next_nodes); } if (BE (dfa->nbackref, 0) && next_state != NULL) { /* Check OP_OPEN_SUBEXP in the current state in case that we use them later. We must check them here, since the back references in the next state might use them. */ *err = check_subexp_matching_top (mctx, &next_state->nodes, cur_idx); if (BE (*err != REG_NOERROR, 0)) return NULL; /* If the next state has back references. */ if (next_state->has_backref) { *err = transit_state_bkref (mctx, &next_state->nodes); if (BE (*err != REG_NOERROR, 0)) return NULL; next_state = mctx->state_log[cur_idx]; } } return next_state; } /* Skip bytes in the input that correspond to part of a multi-byte match, then look in the log for a state from which to restart matching. */ static re_dfastate_t * internal_function find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) { re_dfastate_t *cur_state; do { Idx max = mctx->state_log_top; Idx cur_str_idx = re_string_cur_idx (&mctx->input); do { if (++cur_str_idx > max) return NULL; re_string_skip_bytes (&mctx->input, 1); } while (mctx->state_log[cur_str_idx] == NULL); cur_state = merge_state_with_log (err, mctx, NULL); } while (*err == REG_NOERROR && cur_state == NULL); return cur_state; } /* Helper functions for transit_state. */ /* From the node set CUR_NODES, pick up the nodes whose types are OP_OPEN_SUBEXP and which have corresponding back references in the regular expression. And register them to use them later for evaluating the corresponding back references. */ static reg_errcode_t internal_function check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, Idx str_idx) { const re_dfa_t *const dfa = mctx->dfa; Idx node_idx; reg_errcode_t err; /* TODO: This isn't efficient. Because there might be more than one nodes whose types are OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all nodes. E.g. RE: (a){2} */ for (node_idx = 0; node_idx < cur_nodes->nelem; ++node_idx) { Idx node = cur_nodes->elems[node_idx]; if (dfa->nodes[node].type == OP_OPEN_SUBEXP && dfa->nodes[node].opr.idx < BITSET_WORD_BITS && (dfa->used_bkref_map & ((bitset_word_t) 1 << dfa->nodes[node].opr.idx))) { err = match_ctx_add_subtop (mctx, node, str_idx); if (BE (err != REG_NOERROR, 0)) return err; } } return REG_NOERROR; } #if 0 /* Return the next state to which the current state STATE will transit by accepting the current input byte. */ static re_dfastate_t * transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) { const re_dfa_t *const dfa = mctx->dfa; re_node_set next_nodes; re_dfastate_t *next_state; Idx node_cnt, cur_str_idx = re_string_cur_idx (&mctx->input); unsigned int context; *err = re_node_set_alloc (&next_nodes, state->nodes.nelem + 1); if (BE (*err != REG_NOERROR, 0)) return NULL; for (node_cnt = 0; node_cnt < state->nodes.nelem; ++node_cnt) { Idx cur_node = state->nodes.elems[node_cnt]; if (check_node_accept (mctx, dfa->nodes + cur_node, cur_str_idx)) { *err = re_node_set_merge (&next_nodes, dfa->eclosures + dfa->nexts[cur_node]); if (BE (*err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return NULL; } } } context = re_string_context_at (&mctx->input, cur_str_idx, mctx->eflags); next_state = re_acquire_state_context (err, dfa, &next_nodes, context); /* We don't need to check errors here, since the return value of this function is next_state and ERR is already set. */ re_node_set_free (&next_nodes); re_string_skip_bytes (&mctx->input, 1); return next_state; } #endif #ifdef RE_ENABLE_I18N static reg_errcode_t internal_function transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx i; for (i = 0; i < pstate->nodes.nelem; ++i) { re_node_set dest_nodes, *new_nodes; Idx cur_node_idx = pstate->nodes.elems[i]; int naccepted; Idx dest_idx; unsigned int context; re_dfastate_t *dest_state; if (!dfa->nodes[cur_node_idx].accept_mb) continue; if (dfa->nodes[cur_node_idx].constraint) { context = re_string_context_at (&mctx->input, re_string_cur_idx (&mctx->input), mctx->eflags); if (NOT_SATISFY_NEXT_CONSTRAINT (dfa->nodes[cur_node_idx].constraint, context)) continue; } /* How many bytes the node can accept? */ naccepted = check_node_accept_bytes (dfa, cur_node_idx, &mctx->input, re_string_cur_idx (&mctx->input)); if (naccepted == 0) continue; /* The node can accepts 'naccepted' bytes. */ dest_idx = re_string_cur_idx (&mctx->input) + naccepted; mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted : mctx->max_mb_elem_len); err = clean_state_log_if_needed (mctx, dest_idx); if (BE (err != REG_NOERROR, 0)) return err; #ifdef DEBUG assert (dfa->nexts[cur_node_idx] != -1); #endif new_nodes = dfa->eclosures + dfa->nexts[cur_node_idx]; dest_state = mctx->state_log[dest_idx]; if (dest_state == NULL) dest_nodes = *new_nodes; else { err = re_node_set_init_union (&dest_nodes, dest_state->entrance_nodes, new_nodes); if (BE (err != REG_NOERROR, 0)) return err; } context = re_string_context_at (&mctx->input, dest_idx - 1, mctx->eflags); mctx->state_log[dest_idx] = re_acquire_state_context (&err, dfa, &dest_nodes, context); if (dest_state != NULL) re_node_set_free (&dest_nodes); if (BE (mctx->state_log[dest_idx] == NULL && err != REG_NOERROR, 0)) return err; } return REG_NOERROR; } #endif /* RE_ENABLE_I18N */ static reg_errcode_t internal_function transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx i; Idx cur_str_idx = re_string_cur_idx (&mctx->input); for (i = 0; i < nodes->nelem; ++i) { Idx dest_str_idx, prev_nelem, bkc_idx; Idx node_idx = nodes->elems[i]; unsigned int context; const re_token_t *node = dfa->nodes + node_idx; re_node_set *new_dest_nodes; /* Check whether 'node' is a backreference or not. */ if (node->type != OP_BACK_REF) continue; if (node->constraint) { context = re_string_context_at (&mctx->input, cur_str_idx, mctx->eflags); if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context)) continue; } /* 'node' is a backreference. Check the substring which the substring matched. */ bkc_idx = mctx->nbkref_ents; err = get_subexp (mctx, node_idx, cur_str_idx); if (BE (err != REG_NOERROR, 0)) goto free_return; /* And add the epsilon closures (which is 'new_dest_nodes') of the backreference to appropriate state_log. */ #ifdef DEBUG assert (dfa->nexts[node_idx] != -1); #endif for (; bkc_idx < mctx->nbkref_ents; ++bkc_idx) { Idx subexp_len; re_dfastate_t *dest_state; struct re_backref_cache_entry *bkref_ent; bkref_ent = mctx->bkref_ents + bkc_idx; if (bkref_ent->node != node_idx || bkref_ent->str_idx != cur_str_idx) continue; subexp_len = bkref_ent->subexp_to - bkref_ent->subexp_from; new_dest_nodes = (subexp_len == 0 ? dfa->eclosures + dfa->edests[node_idx].elems[0] : dfa->eclosures + dfa->nexts[node_idx]); dest_str_idx = (cur_str_idx + bkref_ent->subexp_to - bkref_ent->subexp_from); context = re_string_context_at (&mctx->input, dest_str_idx - 1, mctx->eflags); dest_state = mctx->state_log[dest_str_idx]; prev_nelem = ((mctx->state_log[cur_str_idx] == NULL) ? 0 : mctx->state_log[cur_str_idx]->nodes.nelem); /* Add 'new_dest_node' to state_log. */ if (dest_state == NULL) { mctx->state_log[dest_str_idx] = re_acquire_state_context (&err, dfa, new_dest_nodes, context); if (BE (mctx->state_log[dest_str_idx] == NULL && err != REG_NOERROR, 0)) goto free_return; } else { re_node_set dest_nodes; err = re_node_set_init_union (&dest_nodes, dest_state->entrance_nodes, new_dest_nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&dest_nodes); goto free_return; } mctx->state_log[dest_str_idx] = re_acquire_state_context (&err, dfa, &dest_nodes, context); re_node_set_free (&dest_nodes); if (BE (mctx->state_log[dest_str_idx] == NULL && err != REG_NOERROR, 0)) goto free_return; } /* We need to check recursively if the backreference can epsilon transit. */ if (subexp_len == 0 && mctx->state_log[cur_str_idx]->nodes.nelem > prev_nelem) { err = check_subexp_matching_top (mctx, new_dest_nodes, cur_str_idx); if (BE (err != REG_NOERROR, 0)) goto free_return; err = transit_state_bkref (mctx, new_dest_nodes); if (BE (err != REG_NOERROR, 0)) goto free_return; } } } err = REG_NOERROR; free_return: return err; } /* Enumerate all the candidates which the backreference BKREF_NODE can match at BKREF_STR_IDX, and register them by match_ctx_add_entry(). Note that we might collect inappropriate candidates here. However, the cost of checking them strictly here is too high, then we delay these checking for prune_impossible_nodes(). */ static reg_errcode_t internal_function __attribute_warn_unused_result__ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) { const re_dfa_t *const dfa = mctx->dfa; Idx subexp_num, sub_top_idx; const char *buf = (const char *) re_string_get_buffer (&mctx->input); /* Return if we have already checked BKREF_NODE at BKREF_STR_IDX. */ Idx cache_idx = search_cur_bkref_entry (mctx, bkref_str_idx); if (cache_idx != -1) { const struct re_backref_cache_entry *entry = mctx->bkref_ents + cache_idx; do if (entry->node == bkref_node) return REG_NOERROR; /* We already checked it. */ while (entry++->more); } subexp_num = dfa->nodes[bkref_node].opr.idx; /* For each sub expression */ for (sub_top_idx = 0; sub_top_idx < mctx->nsub_tops; ++sub_top_idx) { reg_errcode_t err; re_sub_match_top_t *sub_top = mctx->sub_tops[sub_top_idx]; re_sub_match_last_t *sub_last; Idx sub_last_idx, sl_str, bkref_str_off; if (dfa->nodes[sub_top->node].opr.idx != subexp_num) continue; /* It isn't related. */ sl_str = sub_top->str_idx; bkref_str_off = bkref_str_idx; /* At first, check the last node of sub expressions we already evaluated. */ for (sub_last_idx = 0; sub_last_idx < sub_top->nlasts; ++sub_last_idx) { regoff_t sl_str_diff; sub_last = sub_top->lasts[sub_last_idx]; sl_str_diff = sub_last->str_idx - sl_str; /* The matched string by the sub expression match with the substring at the back reference? */ if (sl_str_diff > 0) { if (BE (bkref_str_off + sl_str_diff > mctx->input.valid_len, 0)) { /* Not enough chars for a successful match. */ if (bkref_str_off + sl_str_diff > mctx->input.len) break; err = clean_state_log_if_needed (mctx, bkref_str_off + sl_str_diff); if (BE (err != REG_NOERROR, 0)) return err; buf = (const char *) re_string_get_buffer (&mctx->input); } if (memcmp (buf + bkref_str_off, buf + sl_str, sl_str_diff) != 0) /* We don't need to search this sub expression any more. */ break; } bkref_str_off += sl_str_diff; sl_str += sl_str_diff; err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node, bkref_str_idx); /* Reload buf, since the preceding call might have reallocated the buffer. */ buf = (const char *) re_string_get_buffer (&mctx->input); if (err == REG_NOMATCH) continue; if (BE (err != REG_NOERROR, 0)) return err; } if (sub_last_idx < sub_top->nlasts) continue; if (sub_last_idx > 0) ++sl_str; /* Then, search for the other last nodes of the sub expression. */ for (; sl_str <= bkref_str_idx; ++sl_str) { Idx cls_node; regoff_t sl_str_off; const re_node_set *nodes; sl_str_off = sl_str - sub_top->str_idx; /* The matched string by the sub expression match with the substring at the back reference? */ if (sl_str_off > 0) { if (BE (bkref_str_off >= mctx->input.valid_len, 0)) { /* If we are at the end of the input, we cannot match. */ if (bkref_str_off >= mctx->input.len) break; err = extend_buffers (mctx, bkref_str_off + 1); if (BE (err != REG_NOERROR, 0)) return err; buf = (const char *) re_string_get_buffer (&mctx->input); } if (buf [bkref_str_off++] != buf[sl_str - 1]) break; /* We don't need to search this sub expression any more. */ } if (mctx->state_log[sl_str] == NULL) continue; /* Does this state have a ')' of the sub expression? */ nodes = &mctx->state_log[sl_str]->nodes; cls_node = find_subexp_node (dfa, nodes, subexp_num, OP_CLOSE_SUBEXP); if (cls_node == -1) continue; /* No. */ if (sub_top->path == NULL) { sub_top->path = calloc (sizeof (state_array_t), sl_str - sub_top->str_idx + 1); if (sub_top->path == NULL) return REG_ESPACE; } /* Can the OP_OPEN_SUBEXP node arrive the OP_CLOSE_SUBEXP node in the current context? */ err = check_arrival (mctx, sub_top->path, sub_top->node, sub_top->str_idx, cls_node, sl_str, OP_CLOSE_SUBEXP); if (err == REG_NOMATCH) continue; if (BE (err != REG_NOERROR, 0)) return err; sub_last = match_ctx_add_sublast (sub_top, cls_node, sl_str); if (BE (sub_last == NULL, 0)) return REG_ESPACE; err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node, bkref_str_idx); if (err == REG_NOMATCH) continue; } } return REG_NOERROR; } /* Helper functions for get_subexp(). */ /* Check SUB_LAST can arrive to the back reference BKREF_NODE at BKREF_STR. If it can arrive, register the sub expression expressed with SUB_TOP and SUB_LAST. */ static reg_errcode_t internal_function get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, Idx bkref_node, Idx bkref_str) { reg_errcode_t err; Idx to_idx; /* Can the subexpression arrive the back reference? */ err = check_arrival (mctx, &sub_last->path, sub_last->node, sub_last->str_idx, bkref_node, bkref_str, OP_OPEN_SUBEXP); if (err != REG_NOERROR) return err; err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx, sub_last->str_idx); if (BE (err != REG_NOERROR, 0)) return err; to_idx = bkref_str + sub_last->str_idx - sub_top->str_idx; return clean_state_log_if_needed (mctx, to_idx); } /* Find the first node which is '(' or ')' and whose index is SUBEXP_IDX. Search '(' if FL_OPEN, or search ')' otherwise. TODO: This function isn't efficient... Because there might be more than one nodes whose types are OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all nodes. E.g. RE: (a){2} */ static Idx internal_function find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, Idx subexp_idx, int type) { Idx cls_idx; for (cls_idx = 0; cls_idx < nodes->nelem; ++cls_idx) { Idx cls_node = nodes->elems[cls_idx]; const re_token_t *node = dfa->nodes + cls_node; if (node->type == type && node->opr.idx == subexp_idx) return cls_node; } return -1; } /* Check whether the node TOP_NODE at TOP_STR can arrive to the node LAST_NODE at LAST_STR. We record the path onto PATH since it will be heavily reused. Return REG_NOERROR if it can arrive, or REG_NOMATCH otherwise. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Idx top_str, Idx last_node, Idx last_str, int type) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err = REG_NOERROR; Idx subexp_num, backup_cur_idx, str_idx, null_cnt; re_dfastate_t *cur_state = NULL; re_node_set *cur_nodes, next_nodes; re_dfastate_t **backup_state_log; unsigned int context; subexp_num = dfa->nodes[top_node].opr.idx; /* Extend the buffer if we need. */ if (BE (path->alloc < last_str + mctx->max_mb_elem_len + 1, 0)) { re_dfastate_t **new_array; Idx old_alloc = path->alloc; Idx incr_alloc = last_str + mctx->max_mb_elem_len + 1; Idx new_alloc; if (BE (IDX_MAX - old_alloc < incr_alloc, 0)) return REG_ESPACE; new_alloc = old_alloc + incr_alloc; if (BE (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc, 0)) return REG_ESPACE; new_array = re_realloc (path->array, re_dfastate_t *, new_alloc); if (BE (new_array == NULL, 0)) return REG_ESPACE; path->array = new_array; path->alloc = new_alloc; memset (new_array + old_alloc, '\0', sizeof (re_dfastate_t *) * (path->alloc - old_alloc)); } str_idx = path->next_idx ? path->next_idx : top_str; /* Temporary modify MCTX. */ backup_state_log = mctx->state_log; backup_cur_idx = mctx->input.cur_idx; mctx->state_log = path->array; mctx->input.cur_idx = str_idx; /* Setup initial node set. */ context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags); if (str_idx == top_str) { err = re_node_set_init_1 (&next_nodes, top_node); if (BE (err != REG_NOERROR, 0)) return err; err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } else { cur_state = mctx->state_log[str_idx]; if (cur_state && cur_state->has_backref) { err = re_node_set_init_copy (&next_nodes, &cur_state->nodes); if (BE (err != REG_NOERROR, 0)) return err; } else re_node_set_init_empty (&next_nodes); } if (str_idx == top_str || (cur_state && cur_state->has_backref)) { if (next_nodes.nelem) { err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); if (BE (cur_state == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } mctx->state_log[str_idx] = cur_state; } for (null_cnt = 0; str_idx < last_str && null_cnt <= mctx->max_mb_elem_len;) { re_node_set_empty (&next_nodes); if (mctx->state_log[str_idx + 1]) { err = re_node_set_merge (&next_nodes, &mctx->state_log[str_idx + 1]->nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } if (cur_state) { err = check_arrival_add_next_nodes (mctx, str_idx, &cur_state->non_eps_nodes, &next_nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } ++str_idx; if (next_nodes.nelem) { err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } } context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags); cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); if (BE (cur_state == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; } mctx->state_log[str_idx] = cur_state; null_cnt = cur_state == NULL ? null_cnt + 1 : 0; } re_node_set_free (&next_nodes); cur_nodes = (mctx->state_log[last_str] == NULL ? NULL : &mctx->state_log[last_str]->nodes); path->next_idx = str_idx; /* Fix MCTX. */ mctx->state_log = backup_state_log; mctx->input.cur_idx = backup_cur_idx; /* Then check the current node set has the node LAST_NODE. */ if (cur_nodes != NULL && re_node_set_contains (cur_nodes, last_node)) return REG_NOERROR; return REG_NOMATCH; } /* Helper functions for check_arrival. */ /* Calculate the destination nodes of CUR_NODES at STR_IDX, and append them to NEXT_NODES. TODO: This function is similar to the functions transit_state*(), however this function has many additional works. Can't we unify them? */ static reg_errcode_t internal_function __attribute_warn_unused_result__ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, re_node_set *cur_nodes, re_node_set *next_nodes) { const re_dfa_t *const dfa = mctx->dfa; bool ok; Idx cur_idx; #ifdef RE_ENABLE_I18N reg_errcode_t err = REG_NOERROR; #endif re_node_set union_set; re_node_set_init_empty (&union_set); for (cur_idx = 0; cur_idx < cur_nodes->nelem; ++cur_idx) { int naccepted = 0; Idx cur_node = cur_nodes->elems[cur_idx]; #ifdef DEBUG re_token_type_t type = dfa->nodes[cur_node].type; assert (!IS_EPSILON_NODE (type)); #endif #ifdef RE_ENABLE_I18N /* If the node may accept "multi byte". */ if (dfa->nodes[cur_node].accept_mb) { naccepted = check_node_accept_bytes (dfa, cur_node, &mctx->input, str_idx); if (naccepted > 1) { re_dfastate_t *dest_state; Idx next_node = dfa->nexts[cur_node]; Idx next_idx = str_idx + naccepted; dest_state = mctx->state_log[next_idx]; re_node_set_empty (&union_set); if (dest_state) { err = re_node_set_merge (&union_set, &dest_state->nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&union_set); return err; } } ok = re_node_set_insert (&union_set, next_node); if (BE (! ok, 0)) { re_node_set_free (&union_set); return REG_ESPACE; } mctx->state_log[next_idx] = re_acquire_state (&err, dfa, &union_set); if (BE (mctx->state_log[next_idx] == NULL && err != REG_NOERROR, 0)) { re_node_set_free (&union_set); return err; } } } #endif /* RE_ENABLE_I18N */ if (naccepted || check_node_accept (mctx, dfa->nodes + cur_node, str_idx)) { ok = re_node_set_insert (next_nodes, dfa->nexts[cur_node]); if (BE (! ok, 0)) { re_node_set_free (&union_set); return REG_ESPACE; } } } re_node_set_free (&union_set); return REG_NOERROR; } /* For all the nodes in CUR_NODES, add the epsilon closures of them to CUR_NODES, however exclude the nodes which are: - inside the sub expression whose number is EX_SUBEXP, if FL_OPEN. - out of the sub expression whose number is EX_SUBEXP, if !FL_OPEN. */ static reg_errcode_t internal_function check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, Idx ex_subexp, int type) { reg_errcode_t err; Idx idx, outside_node; re_node_set new_nodes; #ifdef DEBUG assert (cur_nodes->nelem); #endif err = re_node_set_alloc (&new_nodes, cur_nodes->nelem); if (BE (err != REG_NOERROR, 0)) return err; /* Create a new node set NEW_NODES with the nodes which are epsilon closures of the node in CUR_NODES. */ for (idx = 0; idx < cur_nodes->nelem; ++idx) { Idx cur_node = cur_nodes->elems[idx]; const re_node_set *eclosure = dfa->eclosures + cur_node; outside_node = find_subexp_node (dfa, eclosure, ex_subexp, type); if (outside_node == -1) { /* There are no problematic nodes, just merge them. */ err = re_node_set_merge (&new_nodes, eclosure); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&new_nodes); return err; } } else { /* There are problematic nodes, re-calculate incrementally. */ err = check_arrival_expand_ecl_sub (dfa, &new_nodes, cur_node, ex_subexp, type); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&new_nodes); return err; } } } re_node_set_free (cur_nodes); *cur_nodes = new_nodes; return REG_NOERROR; } /* Helper function for check_arrival_expand_ecl. Check incrementally the epsilon closure of TARGET, and if it isn't problematic append it to DST_NODES. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, Idx target, Idx ex_subexp, int type) { Idx cur_node; for (cur_node = target; !re_node_set_contains (dst_nodes, cur_node);) { bool ok; if (dfa->nodes[cur_node].type == type && dfa->nodes[cur_node].opr.idx == ex_subexp) { if (type == OP_CLOSE_SUBEXP) { ok = re_node_set_insert (dst_nodes, cur_node); if (BE (! ok, 0)) return REG_ESPACE; } break; } ok = re_node_set_insert (dst_nodes, cur_node); if (BE (! ok, 0)) return REG_ESPACE; if (dfa->edests[cur_node].nelem == 0) break; if (dfa->edests[cur_node].nelem == 2) { reg_errcode_t err; err = check_arrival_expand_ecl_sub (dfa, dst_nodes, dfa->edests[cur_node].elems[1], ex_subexp, type); if (BE (err != REG_NOERROR, 0)) return err; } cur_node = dfa->edests[cur_node].elems[0]; } return REG_NOERROR; } /* For all the back references in the current state, calculate the destination of the back references by the appropriate entry in MCTX->BKREF_ENTS. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Idx cur_str, Idx subexp_num, int type) { const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; Idx cache_idx_start = search_cur_bkref_entry (mctx, cur_str); struct re_backref_cache_entry *ent; if (cache_idx_start == -1) return REG_NOERROR; restart: ent = mctx->bkref_ents + cache_idx_start; do { Idx to_idx, next_node; /* Is this entry ENT is appropriate? */ if (!re_node_set_contains (cur_nodes, ent->node)) continue; /* No. */ to_idx = cur_str + ent->subexp_to - ent->subexp_from; /* Calculate the destination of the back reference, and append it to MCTX->STATE_LOG. */ if (to_idx == cur_str) { /* The backreference did epsilon transit, we must re-check all the node in the current state. */ re_node_set new_dests; reg_errcode_t err2, err3; next_node = dfa->edests[ent->node].elems[0]; if (re_node_set_contains (cur_nodes, next_node)) continue; err = re_node_set_init_1 (&new_dests, next_node); err2 = check_arrival_expand_ecl (dfa, &new_dests, subexp_num, type); err3 = re_node_set_merge (cur_nodes, &new_dests); re_node_set_free (&new_dests); if (BE (err != REG_NOERROR || err2 != REG_NOERROR || err3 != REG_NOERROR, 0)) { err = (err != REG_NOERROR ? err : (err2 != REG_NOERROR ? err2 : err3)); return err; } /* TODO: It is still inefficient... */ goto restart; } else { re_node_set union_set; next_node = dfa->nexts[ent->node]; if (mctx->state_log[to_idx]) { bool ok; if (re_node_set_contains (&mctx->state_log[to_idx]->nodes, next_node)) continue; err = re_node_set_init_copy (&union_set, &mctx->state_log[to_idx]->nodes); ok = re_node_set_insert (&union_set, next_node); if (BE (err != REG_NOERROR || ! ok, 0)) { re_node_set_free (&union_set); err = err != REG_NOERROR ? err : REG_ESPACE; return err; } } else { err = re_node_set_init_1 (&union_set, next_node); if (BE (err != REG_NOERROR, 0)) return err; } mctx->state_log[to_idx] = re_acquire_state (&err, dfa, &union_set); re_node_set_free (&union_set); if (BE (mctx->state_log[to_idx] == NULL && err != REG_NOERROR, 0)) return err; } } while (ent++->more); return REG_NOERROR; } /* Build transition table for the state. Return true if successful. */ static bool internal_function build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) { reg_errcode_t err; Idx i, j; int ch; bool need_word_trtable = false; bitset_word_t elem, mask; bool dests_node_malloced = false; bool dest_states_malloced = false; Idx ndests; /* Number of the destination states from 'state'. */ re_dfastate_t **trtable; re_dfastate_t **dest_states = NULL, **dest_states_word, **dest_states_nl; re_node_set follows, *dests_node; bitset_t *dests_ch; bitset_t acceptable; struct dests_alloc { re_node_set dests_node[SBC_MAX]; bitset_t dests_ch[SBC_MAX]; } *dests_alloc; /* We build DFA states which corresponds to the destination nodes from 'state'. 'dests_node[i]' represents the nodes which i-th destination state contains, and 'dests_ch[i]' represents the characters which i-th destination state accepts. */ if (__libc_use_alloca (sizeof (struct dests_alloc))) dests_alloc = (struct dests_alloc *) alloca (sizeof (struct dests_alloc)); else { dests_alloc = re_malloc (struct dests_alloc, 1); if (BE (dests_alloc == NULL, 0)) return false; dests_node_malloced = true; } dests_node = dests_alloc->dests_node; dests_ch = dests_alloc->dests_ch; /* Initialize transition table. */ state->word_trtable = state->trtable = NULL; /* At first, group all nodes belonging to 'state' into several destinations. */ ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch); if (BE (ndests <= 0, 0)) { if (dests_node_malloced) free (dests_alloc); /* Return false in case of an error, true otherwise. */ if (ndests == 0) { state->trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); if (BE (state->trtable == NULL, 0)) return false; return true; } return false; } err = re_node_set_alloc (&follows, ndests + 1); if (BE (err != REG_NOERROR, 0)) goto out_free; /* Avoid arithmetic overflow in size calculation. */ if (BE ((((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX) / (3 * sizeof (re_dfastate_t *))) < ndests), 0)) goto out_free; if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX + ndests * 3 * sizeof (re_dfastate_t *))) dest_states = (re_dfastate_t **) alloca (ndests * 3 * sizeof (re_dfastate_t *)); else { dest_states = (re_dfastate_t **) malloc (ndests * 3 * sizeof (re_dfastate_t *)); if (BE (dest_states == NULL, 0)) { out_free: if (dest_states_malloced) free (dest_states); re_node_set_free (&follows); for (i = 0; i < ndests; ++i) re_node_set_free (dests_node + i); if (dests_node_malloced) free (dests_alloc); return false; } dest_states_malloced = true; } dest_states_word = dest_states + ndests; dest_states_nl = dest_states_word + ndests; bitset_empty (acceptable); /* Then build the states for all destinations. */ for (i = 0; i < ndests; ++i) { Idx next_node; re_node_set_empty (&follows); /* Merge the follows of this destination states. */ for (j = 0; j < dests_node[i].nelem; ++j) { next_node = dfa->nexts[dests_node[i].elems[j]]; if (next_node != -1) { err = re_node_set_merge (&follows, dfa->eclosures + next_node); if (BE (err != REG_NOERROR, 0)) goto out_free; } } dest_states[i] = re_acquire_state_context (&err, dfa, &follows, 0); if (BE (dest_states[i] == NULL && err != REG_NOERROR, 0)) goto out_free; /* If the new state has context constraint, build appropriate states for these contexts. */ if (dest_states[i]->has_constraint) { dest_states_word[i] = re_acquire_state_context (&err, dfa, &follows, CONTEXT_WORD); if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0)) goto out_free; if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1) need_word_trtable = true; dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows, CONTEXT_NEWLINE); if (BE (dest_states_nl[i] == NULL && err != REG_NOERROR, 0)) goto out_free; } else { dest_states_word[i] = dest_states[i]; dest_states_nl[i] = dest_states[i]; } bitset_merge (acceptable, dests_ch[i]); } if (!BE (need_word_trtable, 0)) { /* We don't care about whether the following character is a word character, or we are in a single-byte character set so we can discern by looking at the character code: allocate a 256-entry transition table. */ trtable = state->trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); if (BE (trtable == NULL, 0)) goto out_free; /* For all characters ch...: */ for (i = 0; i < BITSET_WORDS; ++i) for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) if (BE (elem & 1, 0)) { /* There must be exactly one destination which accepts character ch. See group_nodes_into_DFAstates. */ for (j = 0; (dests_ch[j][i] & mask) == 0; ++j) ; /* j-th destination accepts the word character ch. */ if (dfa->word_char[i] & mask) trtable[ch] = dest_states_word[j]; else trtable[ch] = dest_states[j]; } } else { /* We care about whether the following character is a word character, and we are in a multi-byte character set: discern by looking at the character code: build two 256-entry transition tables, one starting at trtable[0] and one starting at trtable[SBC_MAX]. */ trtable = state->word_trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX); if (BE (trtable == NULL, 0)) goto out_free; /* For all characters ch...: */ for (i = 0; i < BITSET_WORDS; ++i) for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) if (BE (elem & 1, 0)) { /* There must be exactly one destination which accepts character ch. See group_nodes_into_DFAstates. */ for (j = 0; (dests_ch[j][i] & mask) == 0; ++j) ; /* j-th destination accepts the word character ch. */ trtable[ch] = dest_states[j]; trtable[ch + SBC_MAX] = dest_states_word[j]; } } /* new line */ if (bitset_contain (acceptable, NEWLINE_CHAR)) { /* The current state accepts newline character. */ for (j = 0; j < ndests; ++j) if (bitset_contain (dests_ch[j], NEWLINE_CHAR)) { /* k-th destination accepts newline character. */ trtable[NEWLINE_CHAR] = dest_states_nl[j]; if (need_word_trtable) trtable[NEWLINE_CHAR + SBC_MAX] = dest_states_nl[j]; /* There must be only one destination which accepts newline. See group_nodes_into_DFAstates. */ break; } } if (dest_states_malloced) free (dest_states); re_node_set_free (&follows); for (i = 0; i < ndests; ++i) re_node_set_free (dests_node + i); if (dests_node_malloced) free (dests_alloc); return true; } /* Group all nodes belonging to STATE into several destinations. Then for all destinations, set the nodes belonging to the destination to DESTS_NODE[i] and set the characters accepted by the destination to DEST_CH[i]. This function return the number of destinations. */ static Idx internal_function group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *dests_node, bitset_t *dests_ch) { reg_errcode_t err; bool ok; Idx i, j, k; Idx ndests; /* Number of the destinations from 'state'. */ bitset_t accepts; /* Characters a node can accept. */ const re_node_set *cur_nodes = &state->nodes; bitset_empty (accepts); ndests = 0; /* For all the nodes belonging to 'state', */ for (i = 0; i < cur_nodes->nelem; ++i) { re_token_t *node = &dfa->nodes[cur_nodes->elems[i]]; re_token_type_t type = node->type; unsigned int constraint = node->constraint; /* Enumerate all single byte character this node can accept. */ if (type == CHARACTER) bitset_set (accepts, node->opr.c); else if (type == SIMPLE_BRACKET) { bitset_merge (accepts, node->opr.sbcset); } else if (type == OP_PERIOD) { #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) bitset_merge (accepts, dfa->sb_char); else #endif bitset_set_all (accepts); if (!(dfa->syntax & RE_DOT_NEWLINE)) bitset_clear (accepts, '\n'); if (dfa->syntax & RE_DOT_NOT_NULL) bitset_clear (accepts, '\0'); } #ifdef RE_ENABLE_I18N else if (type == OP_UTF8_PERIOD) { if (ASCII_CHARS % BITSET_WORD_BITS == 0) memset (accepts, -1, ASCII_CHARS / CHAR_BIT); else bitset_merge (accepts, utf8_sb_map); if (!(dfa->syntax & RE_DOT_NEWLINE)) bitset_clear (accepts, '\n'); if (dfa->syntax & RE_DOT_NOT_NULL) bitset_clear (accepts, '\0'); } #endif else continue; /* Check the 'accepts' and sift the characters which are not match it the context. */ if (constraint) { if (constraint & NEXT_NEWLINE_CONSTRAINT) { bool accepts_newline = bitset_contain (accepts, NEWLINE_CHAR); bitset_empty (accepts); if (accepts_newline) bitset_set (accepts, NEWLINE_CHAR); else continue; } if (constraint & NEXT_ENDBUF_CONSTRAINT) { bitset_empty (accepts); continue; } if (constraint & NEXT_WORD_CONSTRAINT) { bitset_word_t any_set = 0; if (type == CHARACTER && !node->word_char) { bitset_empty (accepts); continue; } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j])); else #endif for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= dfa->word_char[j]); if (!any_set) continue; } if (constraint & NEXT_NOTWORD_CONSTRAINT) { bitset_word_t any_set = 0; if (type == CHARACTER && node->word_char) { bitset_empty (accepts); continue; } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j])); else #endif for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= ~dfa->word_char[j]); if (!any_set) continue; } } /* Then divide 'accepts' into DFA states, or create a new state. Above, we make sure that accepts is not empty. */ for (j = 0; j < ndests; ++j) { bitset_t intersec; /* Intersection sets, see below. */ bitset_t remains; /* Flags, see below. */ bitset_word_t has_intersec, not_subset, not_consumed; /* Optimization, skip if this state doesn't accept the character. */ if (type == CHARACTER && !bitset_contain (dests_ch[j], node->opr.c)) continue; /* Enumerate the intersection set of this state and 'accepts'. */ has_intersec = 0; for (k = 0; k < BITSET_WORDS; ++k) has_intersec |= intersec[k] = accepts[k] & dests_ch[j][k]; /* And skip if the intersection set is empty. */ if (!has_intersec) continue; /* Then check if this state is a subset of 'accepts'. */ not_subset = not_consumed = 0; for (k = 0; k < BITSET_WORDS; ++k) { not_subset |= remains[k] = ~accepts[k] & dests_ch[j][k]; not_consumed |= accepts[k] = accepts[k] & ~dests_ch[j][k]; } /* If this state isn't a subset of 'accepts', create a new group state, which has the 'remains'. */ if (not_subset) { bitset_copy (dests_ch[ndests], remains); bitset_copy (dests_ch[j], intersec); err = re_node_set_init_copy (dests_node + ndests, &dests_node[j]); if (BE (err != REG_NOERROR, 0)) goto error_return; ++ndests; } /* Put the position in the current group. */ ok = re_node_set_insert (&dests_node[j], cur_nodes->elems[i]); if (BE (! ok, 0)) goto error_return; /* If all characters are consumed, go to next node. */ if (!not_consumed) break; } /* Some characters remain, create a new group. */ if (j == ndests) { bitset_copy (dests_ch[ndests], accepts); err = re_node_set_init_1 (dests_node + ndests, cur_nodes->elems[i]); if (BE (err != REG_NOERROR, 0)) goto error_return; ++ndests; bitset_empty (accepts); } } return ndests; error_return: for (j = 0; j < ndests; ++j) re_node_set_free (dests_node + j); return -1; } #ifdef RE_ENABLE_I18N /* Check how many bytes the node 'dfa->nodes[node_idx]' accepts. Return the number of the bytes the node accepts. STR_IDX is the current index of the input string. This function handles the nodes which can accept one character, or one collating element like '.', '[a-z]', opposite to the other nodes can only accept one byte. */ # ifdef _LIBC # include # endif static int internal_function check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, const re_string_t *input, Idx str_idx) { const re_token_t *node = dfa->nodes + node_idx; int char_len, elem_len; Idx i; if (BE (node->type == OP_UTF8_PERIOD, 0)) { unsigned char c = re_string_byte_at (input, str_idx), d; if (BE (c < 0xc2, 1)) return 0; if (str_idx + 2 > input->len) return 0; d = re_string_byte_at (input, str_idx + 1); if (c < 0xe0) return (d < 0x80 || d > 0xbf) ? 0 : 2; else if (c < 0xf0) { char_len = 3; if (c == 0xe0 && d < 0xa0) return 0; } else if (c < 0xf8) { char_len = 4; if (c == 0xf0 && d < 0x90) return 0; } else if (c < 0xfc) { char_len = 5; if (c == 0xf8 && d < 0x88) return 0; } else if (c < 0xfe) { char_len = 6; if (c == 0xfc && d < 0x84) return 0; } else return 0; if (str_idx + char_len > input->len) return 0; for (i = 1; i < char_len; ++i) { d = re_string_byte_at (input, str_idx + i); if (d < 0x80 || d > 0xbf) return 0; } return char_len; } char_len = re_string_char_size_at (input, str_idx); if (node->type == OP_PERIOD) { if (char_len <= 1) return 0; /* FIXME: I don't think this if is needed, as both '\n' and '\0' are char_len == 1. */ /* '.' accepts any one character except the following two cases. */ if ((!(dfa->syntax & RE_DOT_NEWLINE) && re_string_byte_at (input, str_idx) == '\n') || ((dfa->syntax & RE_DOT_NOT_NULL) && re_string_byte_at (input, str_idx) == '\0')) return 0; return char_len; } elem_len = re_string_elem_size_at (input, str_idx); if ((elem_len <= 1 && char_len <= 1) || char_len == 0) return 0; if (node->type == COMPLEX_BRACKET) { const re_charset_t *cset = node->opr.mbcset; # ifdef _LIBC const unsigned char *pin = ((const unsigned char *) re_string_get_buffer (input) + str_idx); Idx j; uint32_t nrules; # endif /* _LIBC */ int match_len = 0; wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars) ? re_string_wchar_at (input, str_idx) : 0); /* match with multibyte character? */ for (i = 0; i < cset->nmbchars; ++i) if (wc == cset->mbchars[i]) { match_len = char_len; goto check_node_accept_bytes_match; } /* match with character_class? */ for (i = 0; i < cset->nchar_classes; ++i) { wctype_t wt = cset->char_classes[i]; if (__iswctype (wc, wt)) { match_len = char_len; goto check_node_accept_bytes_match; } } # ifdef _LIBC nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { unsigned int in_collseq = 0; const int32_t *table, *indirect; const unsigned char *weights, *extra; const char *collseqwc; /* match with collating_symbol? */ if (cset->ncoll_syms) extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); for (i = 0; i < cset->ncoll_syms; ++i) { const unsigned char *coll_sym = extra + cset->coll_syms[i]; /* Compare the length of input collating element and the length of current collating element. */ if (*coll_sym != elem_len) continue; /* Compare each bytes. */ for (j = 0; j < *coll_sym; j++) if (pin[j] != coll_sym[1 + j]) break; if (j == *coll_sym) { /* Match if every bytes is equal. */ match_len = j; goto check_node_accept_bytes_match; } } if (cset->nranges) { if (elem_len <= char_len) { collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); in_collseq = __collseq_table_lookup (collseqwc, wc); } else in_collseq = find_collation_sequence_value (pin, elem_len); } /* match with range expression? */ /* FIXME: Implement rational ranges here, too. */ for (i = 0; i < cset->nranges; ++i) if (cset->range_starts[i] <= in_collseq && in_collseq <= cset->range_ends[i]) { match_len = elem_len; goto check_node_accept_bytes_match; } /* match with equivalence_class? */ if (cset->nequiv_classes) { const unsigned char *cp = pin; table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); int32_t idx = findidx (table, indirect, extra, &cp, elem_len); if (idx > 0) for (i = 0; i < cset->nequiv_classes; ++i) { int32_t equiv_class_idx = cset->equiv_classes[i]; size_t weight_len = weights[idx & 0xffffff]; if (weight_len == weights[equiv_class_idx & 0xffffff] && (idx >> 24) == (equiv_class_idx >> 24)) { Idx cnt = 0; idx &= 0xffffff; equiv_class_idx &= 0xffffff; while (cnt <= weight_len && (weights[equiv_class_idx + 1 + cnt] == weights[idx + 1 + cnt])) ++cnt; if (cnt > weight_len) { match_len = elem_len; goto check_node_accept_bytes_match; } } } } } else # endif /* _LIBC */ { /* match with range expression? */ for (i = 0; i < cset->nranges; ++i) { if (cset->range_starts[i] <= wc && wc <= cset->range_ends[i]) { match_len = char_len; goto check_node_accept_bytes_match; } } } check_node_accept_bytes_match: if (!cset->non_match) return match_len; else { if (match_len > 0) return 0; else return (elem_len > char_len) ? elem_len : char_len; } } return 0; } # ifdef _LIBC static unsigned int internal_function find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len) { uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules == 0) { if (mbs_len == 1) { /* No valid character. Match it as a single byte character. */ const unsigned char *collseq = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB); return collseq[mbs[0]]; } return UINT_MAX; } else { int32_t idx; const unsigned char *extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); int32_t extrasize = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB + 1) - extra; for (idx = 0; idx < extrasize;) { int mbs_cnt; bool found = false; int32_t elem_mbs_len; /* Skip the name of collating element name. */ idx = idx + extra[idx] + 1; elem_mbs_len = extra[idx++]; if (mbs_len == elem_mbs_len) { for (mbs_cnt = 0; mbs_cnt < elem_mbs_len; ++mbs_cnt) if (extra[idx + mbs_cnt] != mbs[mbs_cnt]) break; if (mbs_cnt == elem_mbs_len) /* Found the entry. */ found = true; } /* Skip the byte sequence of the collating element. */ idx += elem_mbs_len; /* Adjust for the alignment. */ idx = (idx + 3) & ~3; /* Skip the collation sequence value. */ idx += sizeof (uint32_t); /* Skip the wide char sequence of the collating element. */ idx = idx + sizeof (uint32_t) * (*(int32_t *) (extra + idx) + 1); /* If we found the entry, return the sequence value. */ if (found) return *(uint32_t *) (extra + idx); /* Skip the collation sequence value. */ idx += sizeof (uint32_t); } return UINT_MAX; } } # endif /* _LIBC */ #endif /* RE_ENABLE_I18N */ /* Check whether the node accepts the byte which is IDX-th byte of the INPUT. */ static bool internal_function check_node_accept (const re_match_context_t *mctx, const re_token_t *node, Idx idx) { unsigned char ch; ch = re_string_byte_at (&mctx->input, idx); switch (node->type) { case CHARACTER: if (node->opr.c != ch) return false; break; case SIMPLE_BRACKET: if (!bitset_contain (node->opr.sbcset, ch)) return false; break; #ifdef RE_ENABLE_I18N case OP_UTF8_PERIOD: if (ch >= ASCII_CHARS) return false; /* FALLTHROUGH */ #endif case OP_PERIOD: if ((ch == '\n' && !(mctx->dfa->syntax & RE_DOT_NEWLINE)) || (ch == '\0' && (mctx->dfa->syntax & RE_DOT_NOT_NULL))) return false; break; default: return false; } if (node->constraint) { /* The node has constraints. Check whether the current context satisfies the constraints. */ unsigned int context = re_string_context_at (&mctx->input, idx, mctx->eflags); if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context)) return false; } return true; } /* Extend the buffers, if the buffers have run out. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ extend_buffers (re_match_context_t *mctx, int min_len) { reg_errcode_t ret; re_string_t *pstr = &mctx->input; /* Avoid overflow. */ if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2 <= pstr->bufs_len, 0)) return REG_ESPACE; /* Double the lengths of the buffers, but allocate at least MIN_LEN. */ ret = re_string_realloc_buffers (pstr, MAX (min_len, MIN (pstr->len, pstr->bufs_len * 2))); if (BE (ret != REG_NOERROR, 0)) return ret; if (mctx->state_log != NULL) { /* And double the length of state_log. */ /* XXX We have no indication of the size of this buffer. If this allocation fail we have no indication that the state_log array does not have the right size. */ re_dfastate_t **new_array = re_realloc (mctx->state_log, re_dfastate_t *, pstr->bufs_len + 1); if (BE (new_array == NULL, 0)) return REG_ESPACE; mctx->state_log = new_array; } /* Then reconstruct the buffers. */ if (pstr->icase) { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; } else #endif /* RE_ENABLE_I18N */ build_upper_buffer (pstr); } else { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) build_wcs_buffer (pstr); else #endif /* RE_ENABLE_I18N */ { if (pstr->trans != NULL) re_string_translate_buffer (pstr); } } return REG_NOERROR; } /* Functions for matching context. */ /* Initialize MCTX. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ match_ctx_init (re_match_context_t *mctx, int eflags, Idx n) { mctx->eflags = eflags; mctx->match_last = -1; if (n > 0) { /* Avoid overflow. */ size_t max_object_size = MAX (sizeof (struct re_backref_cache_entry), sizeof (re_sub_match_top_t *)); if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n, 0)) return REG_ESPACE; mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n); mctx->sub_tops = re_malloc (re_sub_match_top_t *, n); if (BE (mctx->bkref_ents == NULL || mctx->sub_tops == NULL, 0)) return REG_ESPACE; } /* Already zero-ed by the caller. else mctx->bkref_ents = NULL; mctx->nbkref_ents = 0; mctx->nsub_tops = 0; */ mctx->abkref_ents = n; mctx->max_mb_elem_len = 1; mctx->asub_tops = n; return REG_NOERROR; } /* Clean the entries which depend on the current input in MCTX. This function must be invoked when the matcher changes the start index of the input, or changes the input string. */ static void internal_function match_ctx_clean (re_match_context_t *mctx) { Idx st_idx; for (st_idx = 0; st_idx < mctx->nsub_tops; ++st_idx) { Idx sl_idx; re_sub_match_top_t *top = mctx->sub_tops[st_idx]; for (sl_idx = 0; sl_idx < top->nlasts; ++sl_idx) { re_sub_match_last_t *last = top->lasts[sl_idx]; re_free (last->path.array); re_free (last); } re_free (top->lasts); if (top->path) { re_free (top->path->array); re_free (top->path); } free (top); } mctx->nsub_tops = 0; mctx->nbkref_ents = 0; } /* Free all the memory associated with MCTX. */ static void internal_function match_ctx_free (re_match_context_t *mctx) { /* First, free all the memory associated with MCTX->SUB_TOPS. */ match_ctx_clean (mctx); re_free (mctx->sub_tops); re_free (mctx->bkref_ents); } /* Add a new backreference entry to MCTX. Note that we assume that caller never call this function with duplicate entry, and call with STR_IDX which isn't smaller than any existing entry. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from, Idx to) { if (mctx->nbkref_ents >= mctx->abkref_ents) { struct re_backref_cache_entry* new_entry; new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry, mctx->abkref_ents * 2); if (BE (new_entry == NULL, 0)) { re_free (mctx->bkref_ents); return REG_ESPACE; } mctx->bkref_ents = new_entry; memset (mctx->bkref_ents + mctx->nbkref_ents, '\0', sizeof (struct re_backref_cache_entry) * mctx->abkref_ents); mctx->abkref_ents *= 2; } if (mctx->nbkref_ents > 0 && mctx->bkref_ents[mctx->nbkref_ents - 1].str_idx == str_idx) mctx->bkref_ents[mctx->nbkref_ents - 1].more = 1; mctx->bkref_ents[mctx->nbkref_ents].node = node; mctx->bkref_ents[mctx->nbkref_ents].str_idx = str_idx; mctx->bkref_ents[mctx->nbkref_ents].subexp_from = from; mctx->bkref_ents[mctx->nbkref_ents].subexp_to = to; /* This is a cache that saves negative results of check_dst_limits_calc_pos. If bit N is clear, means that this entry won't epsilon-transition to an OP_OPEN_SUBEXP or OP_CLOSE_SUBEXP for the N+1-th subexpression. If it is set, check_dst_limits_calc_pos_1 will recurse and try to find one such node. A backreference does not epsilon-transition unless it is empty, so set to all zeros if FROM != TO. */ mctx->bkref_ents[mctx->nbkref_ents].eps_reachable_subexps_map = (from == to ? -1 : 0); mctx->bkref_ents[mctx->nbkref_ents++].more = 0; if (mctx->max_mb_elem_len < to - from) mctx->max_mb_elem_len = to - from; return REG_NOERROR; } /* Return the first entry with the same str_idx, or -1 if none is found. Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX. */ static Idx internal_function search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) { Idx left, right, mid, last; last = right = mctx->nbkref_ents; for (left = 0; left < right;) { mid = (left + right) / 2; if (mctx->bkref_ents[mid].str_idx < str_idx) left = mid + 1; else right = mid; } if (left < last && mctx->bkref_ents[left].str_idx == str_idx) return left; else return -1; } /* Register the node NODE, whose type is OP_OPEN_SUBEXP, and which matches at STR_IDX. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx) { #ifdef DEBUG assert (mctx->sub_tops != NULL); assert (mctx->asub_tops > 0); #endif if (BE (mctx->nsub_tops == mctx->asub_tops, 0)) { Idx new_asub_tops = mctx->asub_tops * 2; re_sub_match_top_t **new_array = re_realloc (mctx->sub_tops, re_sub_match_top_t *, new_asub_tops); if (BE (new_array == NULL, 0)) return REG_ESPACE; mctx->sub_tops = new_array; mctx->asub_tops = new_asub_tops; } mctx->sub_tops[mctx->nsub_tops] = calloc (1, sizeof (re_sub_match_top_t)); if (BE (mctx->sub_tops[mctx->nsub_tops] == NULL, 0)) return REG_ESPACE; mctx->sub_tops[mctx->nsub_tops]->node = node; mctx->sub_tops[mctx->nsub_tops++]->str_idx = str_idx; return REG_NOERROR; } /* Register the node NODE, whose type is OP_CLOSE_SUBEXP, and which matches at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP. */ static re_sub_match_last_t * internal_function match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx) { re_sub_match_last_t *new_entry; if (BE (subtop->nlasts == subtop->alasts, 0)) { Idx new_alasts = 2 * subtop->alasts + 1; re_sub_match_last_t **new_array = re_realloc (subtop->lasts, re_sub_match_last_t *, new_alasts); if (BE (new_array == NULL, 0)) return NULL; subtop->lasts = new_array; subtop->alasts = new_alasts; } new_entry = calloc (1, sizeof (re_sub_match_last_t)); if (BE (new_entry != NULL, 1)) { subtop->lasts[subtop->nlasts] = new_entry; new_entry->node = node; new_entry->str_idx = str_idx; ++subtop->nlasts; } return new_entry; } static void internal_function sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, re_dfastate_t **limited_sts, Idx last_node, Idx last_str_idx) { sctx->sifted_states = sifted_sts; sctx->limited_states = limited_sts; sctx->last_node = last_node; sctx->last_str_idx = last_str_idx; re_node_set_init_empty (&sctx->limits); } gcal-4.1/lib/locale.in.h0000664000000000000000000001600213041163522011734 00000000000000/* A POSIX . Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #ifdef _GL_ALREADY_INCLUDING_LOCALE_H /* Special invocation conventions to handle Solaris header files (through Solaris 10) when combined with gettext's libintl.h. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_LOCALE_H #define _GL_ALREADY_INCLUDING_LOCALE_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ #undef _GL_ALREADY_INCLUDING_LOCALE_H #ifndef _@GUARD_PREFIX@_LOCALE_H #define _@GUARD_PREFIX@_LOCALE_H /* NetBSD 5.0 mis-defines NULL. */ #include /* Mac OS X 10.5 defines the locale_t type in . */ #if @HAVE_XLOCALE_H@ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* The LC_MESSAGES locale category is specified in POSIX, but not in ISO C. On systems that don't define it, use the same value as GNU libintl. */ #if !defined LC_MESSAGES # define LC_MESSAGES 1729 #endif /* Bionic libc's 'struct lconv' is just a dummy. */ #if @REPLACE_STRUCT_LCONV@ # define lconv rpl_lconv struct lconv { /* All 'char *' are actually 'const char *'. */ /* Members that depend on the LC_NUMERIC category of the locale. See */ /* Symbol used as decimal point. */ char *decimal_point; /* Symbol used to separate groups of digits to the left of the decimal point. */ char *thousands_sep; /* Definition of the size of groups of digits to the left of the decimal point. */ char *grouping; /* Members that depend on the LC_MONETARY category of the locale. See */ /* Symbol used as decimal point. */ char *mon_decimal_point; /* Symbol used to separate groups of digits to the left of the decimal point. */ char *mon_thousands_sep; /* Definition of the size of groups of digits to the left of the decimal point. */ char *mon_grouping; /* Sign used to indicate a value >= 0. */ char *positive_sign; /* Sign used to indicate a value < 0. */ char *negative_sign; /* For formatting local currency. */ /* Currency symbol (3 characters) followed by separator (1 character). */ char *currency_symbol; /* Number of digits after the decimal point. */ char frac_digits; /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char p_cs_precedes; /* For values >= 0: Position of the sign. */ char p_sign_posn; /* For values >= 0: Placement of spaces between currency symbol, sign, and number. */ char p_sep_by_space; /* For values < 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char n_cs_precedes; /* For values < 0: Position of the sign. */ char n_sign_posn; /* For values < 0: Placement of spaces between currency symbol, sign, and number. */ char n_sep_by_space; /* For formatting international currency. */ /* Currency symbol (3 characters) followed by separator (1 character). */ char *int_curr_symbol; /* Number of digits after the decimal point. */ char int_frac_digits; /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char int_p_cs_precedes; /* For values >= 0: Position of the sign. */ char int_p_sign_posn; /* For values >= 0: Placement of spaces between currency symbol, sign, and number. */ char int_p_sep_by_space; /* For values < 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char int_n_cs_precedes; /* For values < 0: Position of the sign. */ char int_n_sign_posn; /* For values < 0: Placement of spaces between currency symbol, sign, and number. */ char int_n_sep_by_space; }; #endif #if @GNULIB_LOCALECONV@ # if @REPLACE_LOCALECONV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localeconv # define localeconv rpl_localeconv # endif _GL_FUNCDECL_RPL (localeconv, struct lconv *, (void)); _GL_CXXALIAS_RPL (localeconv, struct lconv *, (void)); # else _GL_CXXALIAS_SYS (localeconv, struct lconv *, (void)); # endif _GL_CXXALIASWARN (localeconv); #elif @REPLACE_STRUCT_LCONV@ # undef localeconv # define localeconv localeconv_used_without_requesting_gnulib_module_localeconv #elif defined GNULIB_POSIXCHECK # undef localeconv # if HAVE_RAW_DECL_LOCALECONV _GL_WARN_ON_USE (localeconv, "localeconv returns too few information on some platforms - " "use gnulib module localeconv for portability"); # endif #endif #if @GNULIB_SETLOCALE@ # if @REPLACE_SETLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setlocale # define setlocale rpl_setlocale # define GNULIB_defined_setlocale 1 # endif _GL_FUNCDECL_RPL (setlocale, char *, (int category, const char *locale)); _GL_CXXALIAS_RPL (setlocale, char *, (int category, const char *locale)); # else _GL_CXXALIAS_SYS (setlocale, char *, (int category, const char *locale)); # endif _GL_CXXALIASWARN (setlocale); #elif defined GNULIB_POSIXCHECK # undef setlocale # if HAVE_RAW_DECL_SETLOCALE _GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - " "use gnulib module setlocale for portability"); # endif #endif #if @GNULIB_DUPLOCALE@ # if @REPLACE_DUPLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef duplocale # define duplocale rpl_duplocale # endif _GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale)); # else # if @HAVE_DUPLOCALE@ _GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale)); # endif # endif # if @HAVE_DUPLOCALE@ _GL_CXXALIASWARN (duplocale); # endif #elif defined GNULIB_POSIXCHECK # undef duplocale # if HAVE_RAW_DECL_DUPLOCALE _GL_WARN_ON_USE (duplocale, "duplocale is buggy on some glibc systems - " "use gnulib module duplocale for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_LOCALE_H */ #endif /* ! _GL_ALREADY_INCLUDING_LOCALE_H */ #endif /* _@GUARD_PREFIX@_LOCALE_H */ gcal-4.1/lib/errno.in.h0000664000000000000000000001646313041163522011635 00000000000000/* A POSIX-like . Copyright (C) 2008-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_ERRNO_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_ERRNO_H@ #ifndef _@GUARD_PREFIX@_ERRNO_H #define _@GUARD_PREFIX@_ERRNO_H /* On native Windows platforms, many macros are not defined. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* These are the same values as defined by MSVC 10, for interoperability. */ # ifndef ENOMSG # define ENOMSG 122 # define GNULIB_defined_ENOMSG 1 # endif # ifndef EIDRM # define EIDRM 111 # define GNULIB_defined_EIDRM 1 # endif # ifndef ENOLINK # define ENOLINK 121 # define GNULIB_defined_ENOLINK 1 # endif # ifndef EPROTO # define EPROTO 134 # define GNULIB_defined_EPROTO 1 # endif # ifndef EBADMSG # define EBADMSG 104 # define GNULIB_defined_EBADMSG 1 # endif # ifndef EOVERFLOW # define EOVERFLOW 132 # define GNULIB_defined_EOVERFLOW 1 # endif # ifndef ENOTSUP # define ENOTSUP 129 # define GNULIB_defined_ENOTSUP 1 # endif # ifndef ENETRESET # define ENETRESET 117 # define GNULIB_defined_ENETRESET 1 # endif # ifndef ECONNABORTED # define ECONNABORTED 106 # define GNULIB_defined_ECONNABORTED 1 # endif # ifndef ECANCELED # define ECANCELED 105 # define GNULIB_defined_ECANCELED 1 # endif # ifndef EOWNERDEAD # define EOWNERDEAD 133 # define GNULIB_defined_EOWNERDEAD 1 # endif # ifndef ENOTRECOVERABLE # define ENOTRECOVERABLE 127 # define GNULIB_defined_ENOTRECOVERABLE 1 # endif # ifndef EINPROGRESS # define EINPROGRESS 112 # define EALREADY 103 # define ENOTSOCK 128 # define EDESTADDRREQ 109 # define EMSGSIZE 115 # define EPROTOTYPE 136 # define ENOPROTOOPT 123 # define EPROTONOSUPPORT 135 # define EOPNOTSUPP 130 # define EAFNOSUPPORT 102 # define EADDRINUSE 100 # define EADDRNOTAVAIL 101 # define ENETDOWN 116 # define ENETUNREACH 118 # define ECONNRESET 108 # define ENOBUFS 119 # define EISCONN 113 # define ENOTCONN 126 # define ETIMEDOUT 138 # define ECONNREFUSED 107 # define ELOOP 114 # define EHOSTUNREACH 110 # define EWOULDBLOCK 140 # define GNULIB_defined_ESOCK 1 # endif # ifndef ETXTBSY # define ETXTBSY 139 # define ENODATA 120 /* not required by POSIX */ # define ENOSR 124 /* not required by POSIX */ # define ENOSTR 125 /* not required by POSIX */ # define ETIME 137 /* not required by POSIX */ # define EOTHER 131 /* not required by POSIX */ # define GNULIB_defined_ESTREAMS 1 # endif /* These are intentionally the same values as the WSA* error numbers, defined in . */ # define ESOCKTNOSUPPORT 10044 /* not required by POSIX */ # define EPFNOSUPPORT 10046 /* not required by POSIX */ # define ESHUTDOWN 10058 /* not required by POSIX */ # define ETOOMANYREFS 10059 /* not required by POSIX */ # define EHOSTDOWN 10064 /* not required by POSIX */ # define EPROCLIM 10067 /* not required by POSIX */ # define EUSERS 10068 /* not required by POSIX */ # define EDQUOT 10069 # define ESTALE 10070 # define EREMOTE 10071 /* not required by POSIX */ # define GNULIB_defined_EWINSOCK 1 # endif /* On OSF/1 5.1, when _XOPEN_SOURCE_EXTENDED is not defined, the macros EMULTIHOP, ENOLINK, EOVERFLOW are not defined. */ # if @EMULTIHOP_HIDDEN@ # define EMULTIHOP @EMULTIHOP_VALUE@ # define GNULIB_defined_EMULTIHOP 1 # endif # if @ENOLINK_HIDDEN@ # define ENOLINK @ENOLINK_VALUE@ # define GNULIB_defined_ENOLINK 1 # endif # if @EOVERFLOW_HIDDEN@ # define EOVERFLOW @EOVERFLOW_VALUE@ # define GNULIB_defined_EOVERFLOW 1 # endif /* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK, EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined. Likewise, on NonStop Kernel, EDQUOT is not defined. Define them here. Values >= 2000 seem safe to use: Solaris ESTALE = 151, HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133. Note: When one of these systems defines some of these macros some day, binaries will have to be recompiled so that they recognizes the new errno values from the system. */ # ifndef ENOMSG # define ENOMSG 2000 # define GNULIB_defined_ENOMSG 1 # endif # ifndef EIDRM # define EIDRM 2001 # define GNULIB_defined_EIDRM 1 # endif # ifndef ENOLINK # define ENOLINK 2002 # define GNULIB_defined_ENOLINK 1 # endif # ifndef EPROTO # define EPROTO 2003 # define GNULIB_defined_EPROTO 1 # endif # ifndef EMULTIHOP # define EMULTIHOP 2004 # define GNULIB_defined_EMULTIHOP 1 # endif # ifndef EBADMSG # define EBADMSG 2005 # define GNULIB_defined_EBADMSG 1 # endif # ifndef EOVERFLOW # define EOVERFLOW 2006 # define GNULIB_defined_EOVERFLOW 1 # endif # ifndef ENOTSUP # define ENOTSUP 2007 # define GNULIB_defined_ENOTSUP 1 # endif # ifndef ENETRESET # define ENETRESET 2011 # define GNULIB_defined_ENETRESET 1 # endif # ifndef ECONNABORTED # define ECONNABORTED 2012 # define GNULIB_defined_ECONNABORTED 1 # endif # ifndef ESTALE # define ESTALE 2009 # define GNULIB_defined_ESTALE 1 # endif # ifndef EDQUOT # define EDQUOT 2010 # define GNULIB_defined_EDQUOT 1 # endif # ifndef ECANCELED # define ECANCELED 2008 # define GNULIB_defined_ECANCELED 1 # endif /* On many platforms, the macros EOWNERDEAD and ENOTRECOVERABLE are not defined. */ # ifndef EOWNERDEAD # if defined __sun /* Use the same values as defined for Solaris >= 8, for interoperability. */ # define EOWNERDEAD 58 # define ENOTRECOVERABLE 59 # elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* We have a conflict here: pthreads-win32 defines these values differently than MSVC 10. It's hairy to decide which one to use. */ # if defined __MINGW32__ && !defined USE_WINDOWS_THREADS /* Use the same values as defined by pthreads-win32, for interoperability. */ # define EOWNERDEAD 43 # define ENOTRECOVERABLE 44 # else /* Use the same values as defined by MSVC 10, for interoperability. */ # define EOWNERDEAD 133 # define ENOTRECOVERABLE 127 # endif # else # define EOWNERDEAD 2013 # define ENOTRECOVERABLE 2014 # endif # define GNULIB_defined_EOWNERDEAD 1 # define GNULIB_defined_ENOTRECOVERABLE 1 # endif # ifndef EILSEQ # define EILSEQ 2015 # define GNULIB_defined_EILSEQ 1 # endif #endif /* _@GUARD_PREFIX@_ERRNO_H */ #endif /* _@GUARD_PREFIX@_ERRNO_H */ gcal-4.1/lib/alloca.c0000664000000000000000000003445413041163522011331 00000000000000/* alloca.c -- allocate automatically reclaimed memory (Mostly) portable public-domain implementation -- D A Gwyn This implementation of the PWB library alloca function, which is used to allocate space off the run-time stack so that it is automatically reclaimed upon procedure exit, was inspired by discussions with J. Q. Johnson of Cornell. J.Otto Tennant contributed the Cray support. There are some preprocessor constants that can be defined when compiling for your specific system, for improved efficiency; however, the defaults should be okay. The general concept of this implementation is to keep track of all alloca-allocated blocks, and reclaim any that are found to be deeper in the stack than the current invocation. This heuristic does not reclaim storage as soon as it becomes invalid, but it will do so eventually. As a special case, alloca(0) reclaims storage without allocating any. It is a good idea to use alloca(0) in your main control loop, etc. to force garbage collection. */ #include #include #include #include #ifdef emacs # include "lisp.h" # include "blockinput.h" # ifdef EMACS_FREE # undef free # define free EMACS_FREE # endif #else # define memory_full() abort () #endif /* If compiling with GCC 2, this file's not needed. */ #if !defined (__GNUC__) || __GNUC__ < 2 /* If someone has defined alloca as a macro, there must be some other way alloca is supposed to work. */ # ifndef alloca # ifdef emacs # ifdef static /* actually, only want this if static is defined as "" -- this is for usg, in which emacs must undefine static in order to make unexec workable */ # ifndef STACK_DIRECTION you lose -- must know STACK_DIRECTION at compile-time /* Using #error here is not wise since this file should work for old and obscure compilers. */ # endif /* STACK_DIRECTION undefined */ # endif /* static */ # endif /* emacs */ /* If your stack is a linked list of frames, you have to provide an "address metric" ADDRESS_FUNCTION macro. */ # if defined (CRAY) && defined (CRAY_STACKSEG_END) long i00afunc (); # define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg)) # else # define ADDRESS_FUNCTION(arg) &(arg) # endif /* Define STACK_DIRECTION if you know the direction of stack growth for your system; otherwise it will be automatically deduced at run-time. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ # ifndef STACK_DIRECTION # define STACK_DIRECTION 0 /* Direction unknown. */ # endif # if STACK_DIRECTION != 0 # define STACK_DIR STACK_DIRECTION /* Known at compile-time. */ # else /* STACK_DIRECTION == 0; need run-time code. */ static int stack_dir; /* 1 or -1 once known. */ # define STACK_DIR stack_dir static int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } # endif /* STACK_DIRECTION == 0 */ /* An "alloca header" is used to: (a) chain together all alloca'ed blocks; (b) keep track of stack depth. It is very important that sizeof(header) agree with malloc alignment chunk size. The following default should work okay. */ # ifndef ALIGN_SIZE # define ALIGN_SIZE sizeof(double) # endif typedef union hdr { char align[ALIGN_SIZE]; /* To force sizeof(header). */ struct { union hdr *next; /* For chaining headers. */ char *deep; /* For stack depth measure. */ } h; } header; static header *last_alloca_header = NULL; /* -> last alloca header. */ /* Return a pointer to at least SIZE bytes of storage, which will be automatically reclaimed upon exit from the procedure that called alloca. Originally, this space was supposed to be taken from the current stack frame of the caller, but that method cannot be made to work for some implementations of C, for example under Gould's UTX/32. */ void * alloca (size_t size) { auto char probe; /* Probes stack depth: */ register char *depth = ADDRESS_FUNCTION (probe); # if STACK_DIRECTION == 0 if (STACK_DIR == 0) /* Unknown growth direction. */ STACK_DIR = find_stack_direction (NULL, (size & 1) + 20); # endif /* Reclaim garbage, defined as all alloca'd storage that was allocated from deeper in the stack than currently. */ { register header *hp; /* Traverses linked list. */ # ifdef emacs BLOCK_INPUT; # endif for (hp = last_alloca_header; hp != NULL;) if ((STACK_DIR > 0 && hp->h.deep > depth) || (STACK_DIR < 0 && hp->h.deep < depth)) { register header *np = hp->h.next; free (hp); /* Collect garbage. */ hp = np; /* -> next header. */ } else break; /* Rest are not deeper. */ last_alloca_header = hp; /* -> last valid storage. */ # ifdef emacs UNBLOCK_INPUT; # endif } if (size == 0) return NULL; /* No allocation required. */ /* Allocate combined header + user data storage. */ { /* Address of header. */ register header *new; size_t combined_size = sizeof (header) + size; if (combined_size < sizeof (header)) memory_full (); new = malloc (combined_size); if (! new) memory_full (); new->h.next = last_alloca_header; new->h.deep = depth; last_alloca_header = new; /* User storage begins just after header. */ return (void *) (new + 1); } } # if defined (CRAY) && defined (CRAY_STACKSEG_END) # ifdef DEBUG_I00AFUNC # include # endif # ifndef CRAY_STACK # define CRAY_STACK # ifndef CRAY2 /* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */ struct stack_control_header { long shgrow:32; /* Number of times stack has grown. */ long shaseg:32; /* Size of increments to stack. */ long shhwm:32; /* High water mark of stack. */ long shsize:32; /* Current size of stack (all segments). */ }; /* The stack segment linkage control information occurs at the high-address end of a stack segment. (The stack grows from low addresses to high addresses.) The initial part of the stack segment linkage control information is 0200 (octal) words. This provides for register storage for the routine which overflows the stack. */ struct stack_segment_linkage { long ss[0200]; /* 0200 overflow words. */ long sssize:32; /* Number of words in this segment. */ long ssbase:32; /* Offset to stack base. */ long:32; long sspseg:32; /* Offset to linkage control of previous segment of stack. */ long:32; long sstcpt:32; /* Pointer to task common address block. */ long sscsnm; /* Private control structure number for microtasking. */ long ssusr1; /* Reserved for user. */ long ssusr2; /* Reserved for user. */ long sstpid; /* Process ID for pid based multi-tasking. */ long ssgvup; /* Pointer to multitasking thread giveup. */ long sscray[7]; /* Reserved for Cray Research. */ long ssa0; long ssa1; long ssa2; long ssa3; long ssa4; long ssa5; long ssa6; long ssa7; long sss0; long sss1; long sss2; long sss3; long sss4; long sss5; long sss6; long sss7; }; # else /* CRAY2 */ /* The following structure defines the vector of words returned by the STKSTAT library routine. */ struct stk_stat { long now; /* Current total stack size. */ long maxc; /* Amount of contiguous space which would be required to satisfy the maximum stack demand to date. */ long high_water; /* Stack high-water mark. */ long overflows; /* Number of stack overflow ($STKOFEN) calls. */ long hits; /* Number of internal buffer hits. */ long extends; /* Number of block extensions. */ long stko_mallocs; /* Block allocations by $STKOFEN. */ long underflows; /* Number of stack underflow calls ($STKRETN). */ long stko_free; /* Number of deallocations by $STKRETN. */ long stkm_free; /* Number of deallocations by $STKMRET. */ long segments; /* Current number of stack segments. */ long maxs; /* Maximum number of stack segments so far. */ long pad_size; /* Stack pad size. */ long current_address; /* Current stack segment address. */ long current_size; /* Current stack segment size. This number is actually corrupted by STKSTAT to include the fifteen word trailer area. */ long initial_address; /* Address of initial segment. */ long initial_size; /* Size of initial segment. */ }; /* The following structure describes the data structure which trails any stack segment. I think that the description in 'asdef' is out of date. I only describe the parts that I am sure about. */ struct stk_trailer { long this_address; /* Address of this block. */ long this_size; /* Size of this block (does not include this trailer). */ long unknown2; long unknown3; long link; /* Address of trailer block of previous segment. */ long unknown5; long unknown6; long unknown7; long unknown8; long unknown9; long unknown10; long unknown11; long unknown12; long unknown13; long unknown14; }; # endif /* CRAY2 */ # endif /* not CRAY_STACK */ # ifdef CRAY2 /* Determine a "stack measure" for an arbitrary ADDRESS. I doubt that "lint" will like this much. */ static long i00afunc (long *address) { struct stk_stat status; struct stk_trailer *trailer; long *block, size; long result = 0; /* We want to iterate through all of the segments. The first step is to get the stack status structure. We could do this more quickly and more directly, perhaps, by referencing the $LM00 common block, but I know that this works. */ STKSTAT (&status); /* Set up the iteration. */ trailer = (struct stk_trailer *) (status.current_address + status.current_size - 15); /* There must be at least one stack segment. Therefore it is a fatal error if "trailer" is null. */ if (trailer == 0) abort (); /* Discard segments that do not contain our argument address. */ while (trailer != 0) { block = (long *) trailer->this_address; size = trailer->this_size; if (block == 0 || size == 0) abort (); trailer = (struct stk_trailer *) trailer->link; if ((block <= address) && (address < (block + size))) break; } /* Set the result to the offset in this segment and add the sizes of all predecessor segments. */ result = address - block; if (trailer == 0) { return result; } do { if (trailer->this_size <= 0) abort (); result += trailer->this_size; trailer = (struct stk_trailer *) trailer->link; } while (trailer != 0); /* We are done. Note that if you present a bogus address (one not in any segment), you will get a different number back, formed from subtracting the address of the first block. This is probably not what you want. */ return (result); } # else /* not CRAY2 */ /* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP. Determine the number of the cell within the stack, given the address of the cell. The purpose of this routine is to linearize, in some sense, stack addresses for alloca. */ static long i00afunc (long address) { long stkl = 0; long size, pseg, this_segment, stack; long result = 0; struct stack_segment_linkage *ssptr; /* Register B67 contains the address of the end of the current stack segment. If you (as a subprogram) store your registers on the stack and find that you are past the contents of B67, you have overflowed the segment. B67 also points to the stack segment linkage control area, which is what we are really interested in. */ stkl = CRAY_STACKSEG_END (); ssptr = (struct stack_segment_linkage *) stkl; /* If one subtracts 'size' from the end of the segment, one has the address of the first word of the segment. If this is not the first segment, 'pseg' will be nonzero. */ pseg = ssptr->sspseg; size = ssptr->sssize; this_segment = stkl - size; /* It is possible that calling this routine itself caused a stack overflow. Discard stack segments which do not contain the target address. */ while (!(this_segment <= address && address <= stkl)) { # ifdef DEBUG_I00AFUNC fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl); # endif if (pseg == 0) break; stkl = stkl - pseg; ssptr = (struct stack_segment_linkage *) stkl; size = ssptr->sssize; pseg = ssptr->sspseg; this_segment = stkl - size; } result = address - this_segment; /* If you subtract pseg from the current end of the stack, you get the address of the previous stack segment's end. This seems a little convoluted to me, but I'll bet you save a cycle somewhere. */ while (pseg != 0) { # ifdef DEBUG_I00AFUNC fprintf (stderr, "%011o %011o\n", pseg, size); # endif stkl = stkl - pseg; ssptr = (struct stack_segment_linkage *) stkl; size = ssptr->sssize; pseg = ssptr->sspseg; result += size; } return (result); } # endif /* not CRAY2 */ # endif /* CRAY */ # endif /* no alloca */ #endif /* not GCC 2 */ gcal-4.1/lib/tmpdir.c0000664000000000000000000001017513041163523011370 00000000000000/* Copyright (C) 1999, 2001-2002, 2006, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Extracted from sysdeps/posix/tempname.c. */ #include /* Specification. */ #include "tmpdir.h" #include #include #include #include #ifndef __set_errno # define __set_errno(Val) errno = (Val) #endif #include #ifndef P_tmpdir # ifdef _P_tmpdir /* native Windows */ # define P_tmpdir _P_tmpdir # else # define P_tmpdir "/tmp" # endif #endif #include #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include #endif #include "pathmax.h" #if _LIBC # define struct_stat64 struct stat64 #else # define struct_stat64 struct stat # define __libc_secure_getenv secure_getenv # define __xstat64(version, path, buf) stat (path, buf) #endif /* Pathname support. ISSLASH(C) tests whether C is a directory separator character. */ #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ /* Native Windows, Cygwin, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') #else /* Unix */ # define ISSLASH(C) ((C) == '/') #endif /* Return nonzero if DIR is an existent directory. */ static bool direxists (const char *dir) { struct_stat64 buf; return __xstat64 (_STAT_VER, dir, &buf) == 0 && S_ISDIR (buf.st_mode); } /* Path search algorithm, for tmpnam, tmpfile, etc. If DIR is non-null and exists, uses it; otherwise uses the first of $TMPDIR, P_tmpdir, /tmp that exists. Copies into TMPL a template suitable for use with mk[s]temp. Will fail (-1) if DIR is non-null and doesn't exist, none of the searched dirs exists, or there's not enough space in TMPL. */ int path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx, bool try_tmpdir) { const char *d; size_t dlen, plen; bool add_slash; if (!pfx || !pfx[0]) { pfx = "file"; plen = 4; } else { plen = strlen (pfx); if (plen > 5) plen = 5; } if (try_tmpdir) { d = __libc_secure_getenv ("TMPDIR"); if (d != NULL && direxists (d)) dir = d; else if (dir != NULL && direxists (dir)) /* nothing */ ; else dir = NULL; } if (dir == NULL) { #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ char dirbuf[PATH_MAX]; DWORD retval; /* Find Windows temporary file directory. We try this before P_tmpdir because Windows defines P_tmpdir to "\\" and will therefore try to put all temporary files in the root directory (unless $TMPDIR is set). */ retval = GetTempPath (PATH_MAX, dirbuf); if (retval > 0 && retval < PATH_MAX && direxists (dirbuf)) dir = dirbuf; else #endif if (direxists (P_tmpdir)) dir = P_tmpdir; else if (strcmp (P_tmpdir, "/tmp") != 0 && direxists ("/tmp")) dir = "/tmp"; else { __set_errno (ENOENT); return -1; } } dlen = strlen (dir); #ifdef __VMS add_slash = 0; #else add_slash = dlen != 0 && !ISSLASH (dir[dlen - 1]); #endif /* check we have room for "${dir}/${pfx}XXXXXX\0" */ if (tmpl_len < dlen + add_slash + plen + 6 + 1) { __set_errno (EINVAL); return -1; } memcpy (tmpl, dir, dlen); sprintf (tmpl + dlen, &"/%.*sXXXXXX"[!add_slash], (int) plen, pfx); return 0; } gcal-4.1/lib/close.c0000664000000000000000000000270713041163522011177 00000000000000/* close replacement. Copyright (C) 2008-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include "fd-hook.h" #include "msvc-inval.h" #undef close #if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int close_nothrow (int fd) { int result; TRY_MSVC_INVAL { result = close (fd); } CATCH_MSVC_INVAL { result = -1; errno = EBADF; } DONE_MSVC_INVAL; return result; } #else # define close_nothrow close #endif /* Override close() to call into other gnulib modules. */ int rpl_close (int fd) { #if WINDOWS_SOCKETS int retval = execute_all_close_hooks (close_nothrow, fd); #else int retval = close_nothrow (fd); #endif #if REPLACE_FCHDIR if (retval >= 0) _gl_unregister_fd (fd); #endif return retval; } gcal-4.1/lib/dup-safer-flag.c0000664000000000000000000000244313041163522012664 00000000000000/* Duplicate a file descriptor result, avoiding clobbering STD{IN,OUT,ERR}_FILENO, with specific flags. Copyright (C) 2001, 2004-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert and Eric Blake. */ #include /* Specification. */ #include "unistd-safer.h" #include #include /* Like dup, but do not return STDIN_FILENO, STDOUT_FILENO, or STDERR_FILENO. If FLAG contains O_CLOEXEC, behave like fcntl(F_DUPFD_CLOEXEC) rather than fcntl(F_DUPFD). */ int dup_safer_flag (int fd, int flag) { return fcntl (fd, (flag & O_CLOEXEC) ? F_DUPFD_CLOEXEC : F_DUPFD, STDERR_FILENO + 1); } gcal-4.1/lib/mbtowc.c0000664000000000000000000000164613041163522011366 00000000000000/* Convert multibyte character to wide character. Copyright (C) 2011-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include #include #include #include "mbtowc-impl.h" gcal-4.1/lib/sig-handler.h0000664000000000000000000000357713041163523012303 00000000000000/* Convenience declarations when working with . Copyright (C) 2008-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _GL_SIG_HANDLER_H #define _GL_SIG_HANDLER_H #include #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef SIG_HANDLER_INLINE # define SIG_HANDLER_INLINE _GL_INLINE #endif /* Convenience type when working with signal handlers. */ typedef void (*sa_handler_t) (int); /* Return the handler of a signal, as a sa_handler_t value regardless of its true type. The resulting function can be compared to special values like SIG_IGN but it is not portable to call it. */ SIG_HANDLER_INLINE sa_handler_t _GL_ATTRIBUTE_PURE get_handler (struct sigaction const *a) { #ifdef SA_SIGINFO /* POSIX says that special values like SIG_IGN can only occur when action.sa_flags does not contain SA_SIGINFO. But in Linux 2.4, for example, sa_sigaction and sa_handler are aliases and a signal is ignored if sa_sigaction (after casting) equals SIG_IGN. So use (and cast) sa_sigaction in that case. */ if (a->sa_flags & SA_SIGINFO) return (sa_handler_t) a->sa_sigaction; #endif return a->sa_handler; } _GL_INLINE_HEADER_END #endif /* _GL_SIG_HANDLER_H */ gcal-4.1/lib/float.in.h0000664000000000000000000001673413041163522011616 00000000000000/* A correct . Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _@GUARD_PREFIX@_FLOAT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FLOAT_H@ #ifndef _@GUARD_PREFIX@_FLOAT_H #define _@GUARD_PREFIX@_FLOAT_H /* 'long double' properties. */ #if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__) /* Number of mantissa units, in base FLT_RADIX. */ # undef LDBL_MANT_DIG # define LDBL_MANT_DIG 64 /* Number of decimal digits that is sufficient for representing a number. */ # undef LDBL_DIG # define LDBL_DIG 18 /* x-1 where x is the smallest representable number > 1. */ # undef LDBL_EPSILON # define LDBL_EPSILON 1.0842021724855044340E-19L /* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP (-16381) /* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */ # undef LDBL_MAX_EXP # define LDBL_MAX_EXP 16384 /* Minimum positive normalized number. */ # undef LDBL_MIN # define LDBL_MIN 3.3621031431120935063E-4932L /* Maximum representable finite number. */ # undef LDBL_MAX # define LDBL_MAX 1.1897314953572317650E+4932L /* Minimum e such that 10^e is in the range of normalized numbers. */ # undef LDBL_MIN_10_EXP # define LDBL_MIN_10_EXP (-4931) /* Maximum e such that 10^e is in the range of representable finite numbers. */ # undef LDBL_MAX_10_EXP # define LDBL_MAX_10_EXP 4932 #endif /* On FreeBSD/x86 6.4, the 'long double' type really has only 53 bits of precision in the compiler but 64 bits of precision at runtime. See . */ #if defined __i386__ && defined __FreeBSD__ /* Number of mantissa units, in base FLT_RADIX. */ # undef LDBL_MANT_DIG # define LDBL_MANT_DIG 64 /* Number of decimal digits that is sufficient for representing a number. */ # undef LDBL_DIG # define LDBL_DIG 18 /* x-1 where x is the smallest representable number > 1. */ # undef LDBL_EPSILON # define LDBL_EPSILON 1.084202172485504434007452800869941711426e-19L /* 2^-63 */ /* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP (-16381) /* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */ # undef LDBL_MAX_EXP # define LDBL_MAX_EXP 16384 /* Minimum positive normalized number. */ # undef LDBL_MIN # define LDBL_MIN 3.3621031431120935E-4932L /* = 0x1p-16382L */ /* Maximum representable finite number. */ # undef LDBL_MAX /* LDBL_MAX is represented as { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }. But the largest literal that GCC allows us to write is 0x0.fffffffffffff8p16384L = { 0xFFFFF800, 0xFFFFFFFF, 32766 }. So, define it like this through a reference to an external variable const unsigned int LDBL_MAX[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }; extern const long double LDBL_MAX; Unfortunately, this is not a constant expression. */ union gl_long_double_union { struct { unsigned int lo; unsigned int hi; unsigned int exponent; } xd; long double ld; }; extern const union gl_long_double_union gl_LDBL_MAX; # define LDBL_MAX (gl_LDBL_MAX.ld) /* Minimum e such that 10^e is in the range of normalized numbers. */ # undef LDBL_MIN_10_EXP # define LDBL_MIN_10_EXP (-4931) /* Maximum e such that 10^e is in the range of representable finite numbers. */ # undef LDBL_MAX_10_EXP # define LDBL_MAX_10_EXP 4932 #endif /* On AIX 7.1 with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_MAX are wrong. On Linux/PowerPC with gcc 4.4, the value of LDBL_MAX is wrong. */ #if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP DBL_MIN_EXP # undef LDBL_MIN_10_EXP # define LDBL_MIN_10_EXP DBL_MIN_10_EXP # undef LDBL_MIN # define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */ #endif #if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__ # undef LDBL_MAX /* LDBL_MAX is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xFFFFFFFF }. It is not easy to define: #define LDBL_MAX 1.79769313486231580793728971405302307166e308L is too small, whereas #define LDBL_MAX 1.79769313486231580793728971405302307167e308L is too large. Apparently a bug in GCC decimal-to-binary conversion. Also, I can't get values larger than #define LDBL63 ((long double) (1ULL << 63)) #define LDBL882 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63) #define LDBL945 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63) #define LDBL1008 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63) #define LDBL_MAX (LDBL1008 * 65535.0L + LDBL945 * (long double) 9223372036821221375ULL + LDBL882 * (long double) 4611686018427387904ULL) which is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xF8000000 }. So, define it like this through a reference to an external variable const double LDBL_MAX[2] = { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL }; extern const long double LDBL_MAX; or through a pointer cast #define LDBL_MAX \ (*(const long double *) (double[]) { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL }) Unfortunately, this is not a constant expression, and the latter expression does not work well when GCC is optimizing.. */ union gl_long_double_union { struct { double hi; double lo; } dd; long double ld; }; extern const union gl_long_double_union gl_LDBL_MAX; # define LDBL_MAX (gl_LDBL_MAX.ld) #endif /* On IRIX 6.5, with cc, the value of LDBL_MANT_DIG is wrong. On IRIX 6.5, with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_EPSILON are wrong. */ #if defined __sgi && (LDBL_MANT_DIG >= 106) # undef LDBL_MANT_DIG # define LDBL_MANT_DIG 106 # if defined __GNUC__ # undef LDBL_MIN_EXP # define LDBL_MIN_EXP DBL_MIN_EXP # undef LDBL_MIN_10_EXP # define LDBL_MIN_10_EXP DBL_MIN_10_EXP # undef LDBL_MIN # define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */ # undef LDBL_EPSILON # define LDBL_EPSILON 2.46519032881566189191165176650870696773e-32L /* 2^-105 */ # endif #endif #if @REPLACE_ITOLD@ /* Pull in a function that fixes the 'int' to 'long double' conversion of glibc 2.7. */ extern # ifdef __cplusplus "C" # endif void _Qp_itoq (long double *, int); static void (*_gl_float_fix_itold) (long double *, int) = _Qp_itoq; #endif #endif /* _@GUARD_PREFIX@_FLOAT_H */ #endif /* _@GUARD_PREFIX@_FLOAT_H */ gcal-4.1/lib/msvc-inval.c0000664000000000000000000000751113041163522012147 00000000000000/* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 2011-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include /* Specification. */ #include "msvc-inval.h" #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) /* Get _invalid_parameter_handler type and _set_invalid_parameter_handler declaration. */ # include # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { } # else /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include # if defined _MSC_VER static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); } # else /* An index to thread-local storage. */ static DWORD tls_index; static int tls_initialized /* = 0 */; /* Used as a fallback only. */ static struct gl_msvc_inval_per_thread not_per_thread; struct gl_msvc_inval_per_thread * gl_msvc_inval_current (void) { if (!tls_initialized) { tls_index = TlsAlloc (); tls_initialized = 1; } if (tls_index == TLS_OUT_OF_INDEXES) /* TlsAlloc had failed. */ return ¬_per_thread; else { struct gl_msvc_inval_per_thread *pointer = (struct gl_msvc_inval_per_thread *) TlsGetValue (tls_index); if (pointer == NULL) { /* First call. Allocate a new 'struct gl_msvc_inval_per_thread'. */ pointer = (struct gl_msvc_inval_per_thread *) malloc (sizeof (struct gl_msvc_inval_per_thread)); if (pointer == NULL) /* Could not allocate memory. Use the global storage. */ pointer = ¬_per_thread; TlsSetValue (tls_index, pointer); } return pointer; } } static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { struct gl_msvc_inval_per_thread *current = gl_msvc_inval_current (); if (current->restart_valid) longjmp (current->restart, 1); else /* An invalid parameter notification from outside the gnulib code. Give the caller a chance to intervene. */ RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); } # endif # endif static int gl_msvc_inval_initialized /* = 0 */; void gl_msvc_inval_ensure_handler (void) { if (gl_msvc_inval_initialized == 0) { _set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler); gl_msvc_inval_initialized = 1; } } #endif gcal-4.1/lib/memchr.valgrind0000664000000000000000000000065213041163522012726 00000000000000# Suppress a valgrind message about use of uninitialized memory in memchr(). # POSIX states that when the character is found, memchr must not read extra # bytes in an overestimated length (for example, where memchr is used to # implement strnlen). However, we use a safe word read to provide a speedup. { memchr-value4 Memcheck:Value4 fun:rpl_memchr } { memchr-value8 Memcheck:Value8 fun:rpl_memchr } gcal-4.1/lib/xmalloc.c0000664000000000000000000000641413041163523011531 00000000000000/* xmalloc.c -- malloc with out of memory checking Copyright (C) 1990-2000, 2002-2006, 2008-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #define XALLOC_INLINE _GL_EXTERN_INLINE #include "xalloc.h" #include #include /* 1 if calloc is known to be compatible with GNU calloc. This matters if we are not also using the calloc module, which defines HAVE_CALLOC_GNU and supports the GNU API even on non-GNU platforms. */ #if defined HAVE_CALLOC_GNU || (defined __GLIBC__ && !defined __UCLIBC__) enum { HAVE_GNU_CALLOC = 1 }; #else enum { HAVE_GNU_CALLOC = 0 }; #endif /* Allocate N bytes of memory dynamically, with error checking. */ void * xmalloc (size_t n) { void *p = malloc (n); if (!p && n != 0) xalloc_die (); return p; } /* Change the size of an allocated block of memory P to N bytes, with error checking. */ void * xrealloc (void *p, size_t n) { if (!n && p) { /* The GNU and C99 realloc behaviors disagree here. Act like GNU, even if the underlying realloc is C99. */ free (p); return NULL; } p = realloc (p, n); if (!p && n) xalloc_die (); return p; } /* If P is null, allocate a block of at least *PN bytes; otherwise, reallocate P so that it contains more than *PN bytes. *PN must be nonzero unless P is null. Set *PN to the new block's size, and return the pointer to the new block. *PN is never set to zero, and the returned pointer is never null. */ void * x2realloc (void *p, size_t *pn) { return x2nrealloc (p, pn, 1); } /* Allocate S bytes of zeroed memory dynamically, with error checking. There's no need for xnzalloc (N, S), since it would be equivalent to xcalloc (N, S). */ void * xzalloc (size_t s) { return memset (xmalloc (s), 0, s); } /* Allocate zeroed memory for N elements of S bytes, with error checking. S must be nonzero. */ void * xcalloc (size_t n, size_t s) { void *p; /* Test for overflow, since objects with size greater than PTRDIFF_MAX cause pointer subtraction to go awry. Omit size-zero tests if HAVE_GNU_CALLOC, since GNU calloc never returns NULL if successful. */ if (xalloc_oversized (n, s) || (! (p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0))) xalloc_die (); return p; } /* Clone an object P of size S, with error checking. There's no need for xnmemdup (P, N, S), since xmemdup (P, N * S) works without any need for an arithmetic overflow check. */ void * xmemdup (void const *p, size_t s) { return memcpy (xmalloc (s), p, s); } /* Clone STRING. */ char * xstrdup (char const *string) { return xmemdup (string, strlen (string) + 1); } gcal-4.1/lib/strchrnul.valgrind0000664000000000000000000000040313041163523013472 00000000000000# Suppress a valgrind message about use of uninitialized memory in strchrnul(). # This use is OK because it provides only a speedup. { strchrnul-value4 Memcheck:Value4 fun:strchrnul } { strchrnul-value8 Memcheck:Value8 fun:strchrnul } gcal-4.1/lib/math.c0000664000000000000000000000014313041163522011013 00000000000000#include #define _GL_MATH_INLINE _GL_EXTERN_INLINE #include "math.h" typedef int dummy; gcal-4.1/lib/ftell.c0000664000000000000000000000215513041163522011175 00000000000000/* An ftell() function that works around platform bugs. Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include long ftell (FILE *fp) { /* Use the replacement ftello function with all its workarounds. */ off_t offset = ftello (fp); if (LONG_MIN <= offset && offset <= LONG_MAX) return /* (long) */ offset; else { errno = EOVERFLOW; return -1; } } gcal-4.1/lib/fflush.c0000664000000000000000000001675513041163522011371 00000000000000/* fflush.c -- allow flushing input streams Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake. */ #include /* Specification. */ #include #include #include #include "freading.h" #include "stdio-impl.h" #include "unused-parameter.h" #undef fflush #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */ static void clear_ungetc_buffer_preserving_position (FILE *fp) { if (fp->_flags & _IO_IN_BACKUP) /* _IO_free_backup_area is a bit complicated. Simply call fseek. */ fseeko (fp, 0, SEEK_CUR); } #else /* Clear the stream's ungetc buffer. May modify the value of ftello (fp). */ static void clear_ungetc_buffer (FILE *fp) { # if defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ if (HASUB (fp)) { fp_->_p += fp_->_r; fp_->_r = 0; } # elif defined __EMX__ /* emx+gcc */ if (fp->_ungetc_count > 0) { fp->_ungetc_count = 0; fp->_rcount = - fp->_rcount; } # elif defined _IOERR /* Minix, AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, MSVC, NonStop Kernel */ /* Nothing to do. */ # else /* other implementations */ fseeko (fp, 0, SEEK_CUR); # endif } #endif #if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ static int disable_seek_optimization (FILE *fp) { int saved_flags = fp_->_flags & (__SOPT | __SNPT); fp_->_flags = (fp_->_flags & ~__SOPT) | __SNPT; return saved_flags; } static void restore_seek_optimization (FILE *fp, int saved_flags) { fp_->_flags = (fp_->_flags & ~(__SOPT | __SNPT)) | saved_flags; } # else static void update_fpos_cache (FILE *fp _GL_UNUSED_PARAMETER, off_t pos _GL_UNUSED_PARAMETER) { # if defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ # if defined __CYGWIN__ /* fp_->_offset is typed as an integer. */ fp_->_offset = pos; # else /* fp_->_offset is an fpos_t. */ /* Use a union, since on NetBSD, the compilation flags determine whether fpos_t is typedef'd to off_t or a struct containing a single off_t member. */ union { fpos_t f; off_t o; } u; u.o = pos; fp_->_offset = u.f; # endif fp_->_flags |= __SOFF; # endif } # endif #endif /* Flush all pending data on STREAM according to POSIX rules. Both output and seekable input streams are supported. */ int rpl_fflush (FILE *stream) { /* When stream is NULL, POSIX and C99 only require flushing of "output streams and update streams in which the most recent operation was not input", and all implementations do this. When stream is "an output stream or an update stream in which the most recent operation was not input", POSIX and C99 requires that fflush writes out any buffered data, and all implementations do this. When stream is, however, an input stream or an update stream in which the most recent operation was input, C99 specifies nothing, and POSIX only specifies behavior if the stream is seekable. mingw, in particular, drops the input buffer, leaving the file descriptor positioned at the end of the input buffer. I.e. ftell (stream) is lost. We don't want to call the implementation's fflush in this case. We test ! freading (stream) here, rather than fwriting (stream), because what we need to know is whether the stream holds a "read buffer", and on mingw this is indicated by _IOREAD, regardless of _IOWRT. */ if (stream == NULL || ! freading (stream)) return fflush (stream); #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ clear_ungetc_buffer_preserving_position (stream); return fflush (stream); #else { /* Notes about the file-position indicator: 1) The file position indicator is incremented by fgetc() and decremented by ungetc(): "... the fgetc() function shall ... advance the associated file position indicator for the stream ..." "The file-position indicator is decremented by each successful call to ungetc()..." 2) says: "The value of the file-position indicator for the stream after reading or discarding all pushed-back bytes shall be the same as it was before the bytes were pushed back." Here we are discarding all pushed-back bytes. But more specifically, 3) says: "[After fflush(),] the file offset of the underlying open file description shall be set to the file position of the stream, and any characters pushed back onto the stream by ungetc() ... shall be discarded." */ /* POSIX does not specify fflush behavior for non-seekable input streams. Some implementations purge unread data, some return EBADF, some do nothing. */ off_t pos = ftello (stream); if (pos == -1) { errno = EBADF; return EOF; } /* Clear the ungetc buffer. */ clear_ungetc_buffer (stream); /* To get here, we must be flushing a seekable input stream, so the semantics of fpurge are now appropriate to clear the buffer. To avoid losing data, the lseek is also necessary. */ { int result = fpurge (stream); if (result != 0) return result; } # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ { /* Disable seek optimization for the next fseeko call. This tells the following fseeko call to seek to the desired position directly, rather than to seek to a block-aligned boundary. */ int saved_flags = disable_seek_optimization (stream); int result = fseeko (stream, pos, SEEK_SET); restore_seek_optimization (stream, saved_flags); return result; } # else pos = lseek (fileno (stream), pos, SEEK_SET); if (pos == -1) return EOF; /* After a successful lseek, update the file descriptor's position cache in the stream. */ update_fpos_cache (stream, pos); return 0; # endif } #endif } gcal-4.1/lib/spawn_faction_adddup2.c0000664000000000000000000000413413041163523014325 00000000000000/* Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #if !_LIBC # define __sysconf(open_max) getdtablesize () #endif #if !HAVE_WORKING_POSIX_SPAWN # include "spawn_int.h" #endif /* Add an action to FILE-ACTIONS which tells the implementation to call 'dup2' for the given file descriptors during the 'spawn' call. */ int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *file_actions, int fd, int newfd) #undef posix_spawn_file_actions_adddup2 { int maxfd = __sysconf (_SC_OPEN_MAX); /* Test for the validity of the file descriptor. */ if (fd < 0 || newfd < 0 || fd >= maxfd || newfd >= maxfd) return EBADF; #if HAVE_WORKING_POSIX_SPAWN return posix_spawn_file_actions_adddup2 (file_actions, fd, newfd); #else /* Allocate more memory if needed. */ if (file_actions->_used == file_actions->_allocated && __posix_spawn_file_actions_realloc (file_actions) != 0) /* This can only mean we ran out of memory. */ return ENOMEM; { struct __spawn_action *rec; /* Add the new value. */ rec = &file_actions->_actions[file_actions->_used]; rec->tag = spawn_do_dup2; rec->action.dup2_action.fd = fd; rec->action.dup2_action.newfd = newfd; /* Account for the new entry. */ ++file_actions->_used; return 0; } #endif } gcal-4.1/lib/stdalign.in.h0000664000000000000000000001117113041163523012305 00000000000000/* A substitute for ISO C11 . Copyright 2011-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Paul Eggert and Bruno Haible. */ #ifndef _GL_STDALIGN_H #define _GL_STDALIGN_H /* ISO C11 for platforms that lack it. References: ISO C11 (latest free draft ) sections 6.5.3.4, 6.7.5, 7.15. C++11 (latest free draft ) section 18.10. */ /* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment requirement of a structure member (i.e., slot or field) that is of type TYPE, as an integer constant expression. This differs from GCC's __alignof__ operator, which can yield a better-performing alignment for an object of that type. For example, on x86 with GCC, __alignof__ (double) and __alignof__ (long long) are 8, whereas alignof (double) and alignof (long long) are 4 unless the option '-malign-double' is used. The result cannot be used as a value for an 'enum' constant, if you want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. Include for offsetof. */ #include /* FreeBSD 9.1 , included by and lots of other standard headers, defines conflicting implementations of _Alignas and _Alignof that are no better than ours; override them. */ #undef _Alignas #undef _Alignof /* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023 . */ #if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9))) # ifdef __cplusplus # if 201103 <= __cplusplus # define _Alignof(type) alignof (type) # else template struct __alignof_helper { char __a; __t __b; }; # define _Alignof(type) offsetof (__alignof_helper, __b) # endif # else # define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) # endif #endif #if ! (defined __cplusplus && 201103 <= __cplusplus) # define alignof _Alignof #endif #define __alignof_is_defined 1 /* alignas (A), also known as _Alignas (A), aligns a variable or type to the alignment A, where A is an integer constant expression. For example: int alignas (8) foo; struct s { int a; int alignas (8) bar; }; aligns the address of FOO and the offset of BAR to be multiples of 8. A should be a power of two that is at least the type's alignment and at most the implementation's alignment limit. This limit is 2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable to MSVC through at least version 10.0, A should be an integer constant, as MSVC does not support expressions such as 1 << 3. To be portable to Sun C 5.11, do not align auto variables to anything stricter than their default alignment. The following C11 requirements are not supported here: - If A is zero, alignas has no effect. - alignas can be used multiple times; the strictest one wins. - alignas (TYPE) is equivalent to alignas (alignof (TYPE)). */ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 # if defined __cplusplus && 201103 <= __cplusplus # define _Alignas(a) alignas (a) # elif ((defined __APPLE__ && defined __MACH__ \ ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ : __GNUC__) \ || 061200 <= __HP_cc || 061200 <= __HP_aCC \ || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__) # define _Alignas(a) __attribute__ ((__aligned__ (a))) # elif 1300 <= _MSC_VER # define _Alignas(a) __declspec (align (a)) # endif #endif #if ((defined _Alignas && ! (defined __cplusplus && 201103 <= __cplusplus)) \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # define alignas _Alignas #endif #if defined alignas || (defined __cplusplus && 201103 <= __cplusplus) # define __alignas_is_defined 1 #endif #endif /* _GL_STDALIGN_H */ gcal-4.1/lib/write.c0000664000000000000000000001201113041163523011212 00000000000000/* POSIX compatible write() function. Copyright (C) 2008-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include /* On native Windows platforms, SIGPIPE does not exist. When write() is called on a pipe with no readers, WriteFile() fails with error GetLastError() = ERROR_NO_DATA, and write() in consequence fails with error EINVAL. */ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include # include # include # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # include "msvc-inval.h" # include "msvc-nothrow.h" # undef write # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static ssize_t write_nothrow (int fd, const void *buf, size_t count) { ssize_t result; TRY_MSVC_INVAL { result = write (fd, buf, count); } CATCH_MSVC_INVAL { result = -1; errno = EBADF; } DONE_MSVC_INVAL; return result; } # else # define write_nothrow write # endif ssize_t rpl_write (int fd, const void *buf, size_t count) { for (;;) { ssize_t ret = write_nothrow (fd, buf, count); if (ret < 0) { # if GNULIB_NONBLOCKING if (errno == ENOSPC) { HANDLE h = (HANDLE) _get_osfhandle (fd); if (GetFileType (h) == FILE_TYPE_PIPE) { /* h is a pipe or socket. */ DWORD state; if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL, NULL, 0) && (state & PIPE_NOWAIT) != 0) { /* h is a pipe in non-blocking mode. We can get here in four situations: 1. When the pipe buffer is full. 2. When count <= pipe_buf_size and the number of free bytes in the pipe buffer is < count. 3. When count > pipe_buf_size and the number of free bytes in the pipe buffer is > 0, < pipe_buf_size. 4. When count > pipe_buf_size and the pipe buffer is entirely empty. The cases 1 and 2 are POSIX compliant. In cases 3 and 4 POSIX specifies that write() must split the request and succeed with a partial write. We fix case 4. We don't fix case 3 because it is not essential for programs. */ DWORD out_size; /* size of the buffer for outgoing data */ DWORD in_size; /* size of the buffer for incoming data */ if (GetNamedPipeInfo (h, NULL, &out_size, &in_size, NULL)) { size_t reduced_count = count; /* In theory we need only one of out_size, in_size. But I don't know which of the two. The description is ambiguous. */ if (out_size != 0 && out_size < reduced_count) reduced_count = out_size; if (in_size != 0 && in_size < reduced_count) reduced_count = in_size; if (reduced_count < count) { /* Attempt to write only the first part. */ count = reduced_count; continue; } } /* Change errno from ENOSPC to EAGAIN. */ errno = EAGAIN; } } } else # endif { # if GNULIB_SIGPIPE if (GetLastError () == ERROR_NO_DATA && GetFileType ((HANDLE) _get_osfhandle (fd)) == FILE_TYPE_PIPE) { /* Try to raise signal SIGPIPE. */ raise (SIGPIPE); /* If it is currently blocked or ignored, change errno from EINVAL to EPIPE. */ errno = EPIPE; } # endif } } return ret; } } #endif gcal-4.1/lib/getdtablesize.c0000664000000000000000000000643713041163522012724 00000000000000/* getdtablesize() function for platforms that don't have it. Copyright (C) 2008-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include # include "msvc-inval.h" # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int _setmaxstdio_nothrow (int newmax) { int result; TRY_MSVC_INVAL { result = _setmaxstdio (newmax); } CATCH_MSVC_INVAL { result = -1; } DONE_MSVC_INVAL; return result; } # define _setmaxstdio _setmaxstdio_nothrow # endif /* Cache for the previous getdtablesize () result. Safe to cache because Windows also lacks setrlimit. */ static int dtablesize; int getdtablesize (void) { if (dtablesize == 0) { /* We are looking for the number N such that the valid file descriptors are 0..N-1. It can be obtained through a loop as follows: { int fd; for (fd = 3; fd < 65536; fd++) if (dup2 (0, fd) == -1) break; return fd; } On Windows XP, the result is 2048. The drawback of this loop is that it allocates memory for a libc internal array that is never freed. The number N can also be obtained as the upper bound for _getmaxstdio (). _getmaxstdio () returns the maximum number of open FILE objects. The sanity check in _setmaxstdio reveals the maximum number of file descriptors. This too allocates memory, but it is freed when we call _setmaxstdio with the original value. */ int orig_max_stdio = _getmaxstdio (); unsigned int bound; for (bound = 0x10000; _setmaxstdio (bound) < 0; bound = bound / 2) ; _setmaxstdio (orig_max_stdio); dtablesize = bound; } return dtablesize; } #else # include # include # ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY # endif # ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY # endif # ifdef __CYGWIN__ /* Cygwin 1.7.25 auto-increases the RLIMIT_NOFILE soft limit until it hits the compile-time constant hard limit of 3200. We might as well just report the hard limit. */ # define rlim_cur rlim_max # endif int getdtablesize (void) { struct rlimit lim; if (getrlimit (RLIMIT_NOFILE, &lim) == 0 && 0 <= lim.rlim_cur && lim.rlim_cur <= INT_MAX && lim.rlim_cur != RLIM_INFINITY && lim.rlim_cur != RLIM_SAVED_CUR && lim.rlim_cur != RLIM_SAVED_MAX) return lim.rlim_cur; return INT_MAX; } #endif gcal-4.1/lib/rawmemchr.c0000664000000000000000000001220113041163523012046 00000000000000/* Searching in a string. Copyright (C) 2008-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include /* Find the first occurrence of C in S. */ void * rawmemchr (const void *s, int c_in) { /* On 32-bit hardware, choosing longword to be a 32-bit unsigned long instead of a 64-bit uintmax_t tends to give better performance. On 64-bit hardware, unsigned long is generally 64 bits already. Change this typedef to experiment with performance. */ typedef unsigned long int longword; const unsigned char *char_ptr; const longword *longword_ptr; longword repeated_one; longword repeated_c; unsigned char c; c = (unsigned char) c_in; /* Handle the first few bytes by reading one byte at a time. Do this until CHAR_PTR is aligned on a longword boundary. */ for (char_ptr = (const unsigned char *) s; (size_t) char_ptr % sizeof (longword) != 0; ++char_ptr) if (*char_ptr == c) return (void *) char_ptr; longword_ptr = (const longword *) char_ptr; /* All these elucidatory comments refer to 4-byte longwords, but the theory applies equally well to any size longwords. */ /* Compute auxiliary longword values: repeated_one is a value which has a 1 in every byte. repeated_c has c in every byte. */ repeated_one = 0x01010101; repeated_c = c | (c << 8); repeated_c |= repeated_c << 16; if (0xffffffffU < (longword) -1) { repeated_one |= repeated_one << 31 << 1; repeated_c |= repeated_c << 31 << 1; if (8 < sizeof (longword)) { size_t i; for (i = 64; i < sizeof (longword) * 8; i *= 2) { repeated_one |= repeated_one << i; repeated_c |= repeated_c << i; } } } /* Instead of the traditional loop which tests each byte, we will test a longword at a time. The tricky part is testing if *any of the four* bytes in the longword in question are equal to NUL or c. We first use an xor with repeated_c. This reduces the task to testing whether *any of the four* bytes in longword1 is zero. We compute tmp = ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7). That is, we perform the following operations: 1. Subtract repeated_one. 2. & ~longword1. 3. & a mask consisting of 0x80 in every byte. Consider what happens in each byte: - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, and step 3 transforms it into 0x80. A carry can also be propagated to more significant bytes. - If a byte of longword1 is nonzero, let its lowest 1 bit be at position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, the byte ends in a single bit of value 0 and k bits of value 1. After step 2, the result is just k bits of value 1: 2^k - 1. After step 3, the result is 0. And no carry is produced. So, if longword1 has only non-zero bytes, tmp is zero. Whereas if longword1 has a zero byte, call j the position of the least significant zero byte. Then the result has a zero at positions 0, ..., j-1 and a 0x80 at position j. We cannot predict the result at the more significant bytes (positions j+1..3), but it does not matter since we already have a non-zero bit at position 8*j+7. The test whether any byte in longword1 is zero is equivalent to testing whether tmp is nonzero. This test can read beyond the end of a string, depending on where C_IN is encountered. However, this is considered safe since the initialization phase ensured that the read will be aligned, therefore, the read will not cross page boundaries and will not cause a fault. */ while (1) { longword longword1 = *longword_ptr ^ repeated_c; if ((((longword1 - repeated_one) & ~longword1) & (repeated_one << 7)) != 0) break; longword_ptr++; } char_ptr = (const unsigned char *) longword_ptr; /* At this point, we know that one of the sizeof (longword) bytes starting at char_ptr is == c. On little-endian machines, we could determine the first such byte without any further memory accesses, just by looking at the tmp result from the last loop iteration. But this does not work on big-endian machines. Choose code that works in both cases. */ char_ptr = (unsigned char *) longword_ptr; while (*char_ptr != c) char_ptr++; return (void *) char_ptr; } gcal-4.1/lib/wctype-h.c0000664000000000000000000000023313041163523011623 00000000000000/* Normally this would be wctype.c, but that name's already taken. */ #include #define _GL_WCTYPE_INLINE _GL_EXTERN_INLINE #include "wctype.h" gcal-4.1/lib/link.c0000664000000000000000000001306313041163522011024 00000000000000/* Emulate link on platforms that lack it, namely native Windows platforms. Copyright (C) 2009-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include #include #include #include #include #include #if !HAVE_LINK # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include /* CreateHardLink was introduced only in Windows 2000. */ typedef BOOL (WINAPI * CreateHardLinkFuncType) (LPCTSTR lpFileName, LPCTSTR lpExistingFileName, LPSECURITY_ATTRIBUTES lpSecurityAttributes); static CreateHardLinkFuncType CreateHardLinkFunc = NULL; static BOOL initialized = FALSE; static void initialize (void) { HMODULE kernel32 = GetModuleHandle ("kernel32.dll"); if (kernel32 != NULL) { CreateHardLinkFunc = (CreateHardLinkFuncType) GetProcAddress (kernel32, "CreateHardLinkA"); } initialized = TRUE; } int link (const char *file1, const char *file2) { char *dir; size_t len1 = strlen (file1); size_t len2 = strlen (file2); if (!initialized) initialize (); if (CreateHardLinkFunc == NULL) { /* System does not support hard links. */ errno = EPERM; return -1; } /* Reject trailing slashes on non-directories; mingw does not support hard-linking directories. */ if ((len1 && (file1[len1 - 1] == '/' || file1[len1 - 1] == '\\')) || (len2 && (file2[len2 - 1] == '/' || file2[len2 - 1] == '\\'))) { struct stat st; if (stat (file1, &st) == 0 && S_ISDIR (st.st_mode)) errno = EPERM; else errno = ENOTDIR; return -1; } /* CreateHardLink("b/.","a",NULL) creates file "b", so we must check that dirname(file2) exists. */ dir = strdup (file2); if (!dir) return -1; { struct stat st; char *p = strchr (dir, '\0'); while (dir < p && (*--p != '/' && *p != '\\')); *p = '\0'; if (p != dir && stat (dir, &st) == -1) { int saved_errno = errno; free (dir); errno = saved_errno; return -1; } free (dir); } /* Now create the link. */ if (CreateHardLinkFunc (file2, file1, NULL) == 0) { /* It is not documented which errors CreateHardLink() can produce. * The following conversions are based on tests on a Windows XP SP2 * system. */ DWORD err = GetLastError (); switch (err) { case ERROR_ACCESS_DENIED: errno = EACCES; break; case ERROR_INVALID_FUNCTION: /* fs does not support hard links */ errno = EPERM; break; case ERROR_NOT_SAME_DEVICE: errno = EXDEV; break; case ERROR_PATH_NOT_FOUND: case ERROR_FILE_NOT_FOUND: errno = ENOENT; break; case ERROR_INVALID_PARAMETER: errno = ENAMETOOLONG; break; case ERROR_TOO_MANY_LINKS: errno = EMLINK; break; case ERROR_ALREADY_EXISTS: errno = EEXIST; break; default: errno = EIO; } return -1; } return 0; } # else /* !Windows */ # error "This platform lacks a link function, and Gnulib doesn't provide a replacement. This is a bug in Gnulib." # endif /* !Windows */ #else /* HAVE_LINK */ # undef link /* Create a hard link from FILE1 to FILE2, working around platform bugs. */ int rpl_link (char const *file1, char const *file2) { size_t len1; size_t len2; struct stat st; /* Don't allow IRIX to dereference dangling file2 symlink. */ if (!lstat (file2, &st)) { errno = EEXIST; return -1; } /* Reject trailing slashes on non-directories. */ len1 = strlen (file1); len2 = strlen (file2); if ((len1 && file1[len1 - 1] == '/') || (len2 && file2[len2 - 1] == '/')) { /* Let link() decide whether hard-linking directories is legal. If stat() fails, then link() should fail for the same reason (although on Solaris 9, link("file/","oops") mistakenly succeeds); if stat() succeeds, require a directory. */ if (stat (file1, &st)) return -1; if (!S_ISDIR (st.st_mode)) { errno = ENOTDIR; return -1; } } else { /* Fix Cygwin 1.5.x bug where link("a","b/.") creates file "b". */ char *dir = strdup (file2); char *p; if (!dir) return -1; /* We already know file2 does not end in slash. Strip off the basename, then check that the dirname exists. */ p = strrchr (dir, '/'); if (p) { *p = '\0'; if (stat (dir, &st) == -1) { int saved_errno = errno; free (dir); errno = saved_errno; return -1; } } free (dir); } return link (file1, file2); } #endif /* HAVE_LINK */ gcal-4.1/lib/cloexec.h0000664000000000000000000000273413041163522011521 00000000000000/* closexec.c - set or clear the close-on-exec descriptor flag Copyright (C) 2004, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, or clear the flag if VALUE is false. Return 0 on success, or -1 on error with 'errno' set. Note that on MingW, this function does NOT protect DESC from being inherited into spawned children. Instead, either use dup_cloexec followed by closing the original DESC, or use interfaces such as open or pipe2 that accept flags like O_CLOEXEC to create DESC non-inheritable in the first place. */ int set_cloexec_flag (int desc, bool value); /* Duplicates a file handle FD, while marking the copy to be closed prior to exec or spawn. Returns -1 and sets errno if FD could not be duplicated. */ int dup_cloexec (int fd); gcal-4.1/lib/mbtowc-impl.h0000664000000000000000000000262613041163522012331 00000000000000/* Convert multibyte character to wide character. Copyright (C) 2011-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* We don't need a static internal state, because the encoding is not state dependent, and when mbrtowc returns (size_t)(-2). we throw the result away. */ int mbtowc (wchar_t *pwc, const char *s, size_t n) { if (s == NULL) return 0; else { mbstate_t state; wchar_t wc; size_t result; memset (&state, 0, sizeof (mbstate_t)); result = mbrtowc (&wc, s, n, &state); if (result == (size_t)-1 || result == (size_t)-2) { errno = EILSEQ; return -1; } if (pwc != NULL) *pwc = wc; return (wc == 0 ? 0 : result); } } gcal-4.1/lib/msvc-nothrow.h0000664000000000000000000000301013041163522012531 00000000000000/* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 2011-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _MSVC_NOTHROW_H #define _MSVC_NOTHROW_H /* With MSVC runtime libraries with the "invalid parameter handler" concept, functions like fprintf(), dup2(), or close() crash when the caller passes an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) instead. This file defines wrappers that turn such an invalid parameter notification into an error code. */ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get original declaration of _get_osfhandle. */ # include # if HAVE_MSVC_INVALID_PARAMETER_HANDLER /* Override _get_osfhandle. */ extern intptr_t _gl_nothrow_get_osfhandle (int fd); # define _get_osfhandle _gl_nothrow_get_osfhandle # endif #endif #endif /* _MSVC_NOTHROW_H */ gcal-4.1/lib/xalloc-oversized.h0000664000000000000000000000440213041163523013364 00000000000000/* xalloc-oversized.h -- memory allocation size checking Copyright (C) 1990-2000, 2003-2004, 2006-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef XALLOC_OVERSIZED_H_ #define XALLOC_OVERSIZED_H_ #include #include /* True if N * S would overflow in a size_t calculation, or would generate a value larger than PTRDIFF_MAX. This expands to a constant expression if N and S are both constants. By gnulib convention, SIZE_MAX represents overflow in size calculations, so the conservative size_t-based dividend to use here is SIZE_MAX - 1. */ #define __xalloc_oversized(n, s) \ ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) < (n)) #if PTRDIFF_MAX < SIZE_MAX typedef ptrdiff_t __xalloc_count_type; #else typedef size_t __xalloc_count_type; #endif /* Return 1 if an array of N objects, each of size S, cannot exist reliably due to size or ptrdiff_t arithmetic overflow. S must be positive and N must be nonnegative. This is a macro, not a function, so that it works correctly even when SIZE_MAX < N. */ #if 7 <= __GNUC__ # define xalloc_oversized(n, s) \ __builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1) #elif 5 <= __GNUC__ && !__STRICT_ANSI__ # define xalloc_oversized(n, s) \ (__builtin_constant_p (n) && __builtin_constant_p (s) \ ? __xalloc_oversized (n, s) \ : ({ __xalloc_count_type __xalloc_count; \ __builtin_mul_overflow (n, s, &__xalloc_count); })) /* Other compilers use integer division; this may be slower but is more portable. */ #else # define xalloc_oversized(n, s) __xalloc_oversized (n, s) #endif #endif /* !XALLOC_OVERSIZED_H_ */ gcal-4.1/lib/unistd--.h0000664000000000000000000000174313041163523011537 00000000000000/* Like unistd.h, but redefine some names to avoid glitches. Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert. */ #include #include "unistd-safer.h" #undef dup #define dup dup_safer #undef pipe #define pipe pipe_safer #if GNULIB_PIPE2_SAFER # undef pipe2 # define pipe2 pipe2_safer #endif gcal-4.1/lib/regex.h0000664000000000000000000006013413041163523011210 00000000000000/* Definitions for data structures and routines for the regular expression library. Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see . */ #ifndef _REGEX_H #define _REGEX_H 1 #include /* Allow the use in C++ code. */ #ifdef __cplusplus extern "C" { #endif /* Define __USE_GNU to declare GNU extensions that violate the POSIX name space rules. */ #ifdef _GNU_SOURCE # define __USE_GNU 1 #endif #ifdef _REGEX_LARGE_OFFSETS /* Use types and values that are wide enough to represent signed and unsigned byte offsets in memory. This currently works only when the regex code is used outside of the GNU C library; it is not yet supported within glibc itself, and glibc users should not define _REGEX_LARGE_OFFSETS. */ /* The type of object sizes. */ typedef size_t __re_size_t; /* The type of object sizes, in places where the traditional code uses unsigned long int. */ typedef size_t __re_long_size_t; #else /* The traditional GNU regex implementation mishandles strings longer than INT_MAX. */ typedef unsigned int __re_size_t; typedef unsigned long int __re_long_size_t; #endif /* The following two types have to be signed and unsigned integer type wide enough to hold a value of a pointer. For most ANSI compilers ptrdiff_t and size_t should be likely OK. Still size of these two types is 2 for Microsoft C. Ugh... */ typedef long int s_reg_t; typedef unsigned long int active_reg_t; /* The following bits are used to determine the regexp syntax we recognize. The set/not-set meanings are chosen so that Emacs syntax remains the value 0. The bits are given in alphabetical order, and the definitions shifted by one from the previous bit; thus, when we add or remove a bit, only one other definition need change. */ typedef unsigned long int reg_syntax_t; #ifdef __USE_GNU /* If this bit is not set, then \ inside a bracket expression is literal. If set, then such a \ quotes the following character. */ # define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) /* If this bit is not set, then + and ? are operators, and \+ and \? are literals. If set, then \+ and \? are operators and + and ? are literals. */ # define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) /* If this bit is set, then character classes are supported. They are: [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. If not set, then character classes are not supported. */ # define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) /* If this bit is set, then ^ and $ are always anchors (outside bracket expressions, of course). If this bit is not set, then it depends: ^ is an anchor if it is at the beginning of a regular expression or after an open-group or an alternation operator; $ is an anchor if it is at the end of a regular expression, or before a close-group or an alternation operator. This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because POSIX draft 11.2 says that * etc. in leading positions is undefined. We already implemented a previous draft which made those constructs invalid, though, so we haven't changed the code back. */ # define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) /* If this bit is set, then special characters are always special regardless of where they are in the pattern. If this bit is not set, then special characters are special only in some contexts; otherwise they are ordinary. Specifically, * + ? and intervals are only special when not after the beginning, open-group, or alternation operator. */ # define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) /* If this bit is set, then *, +, ?, and { cannot be first in an re or immediately after an alternation or begin-group operator. */ # define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) /* If this bit is set, then . matches newline. If not set, then it doesn't. */ # define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) /* If this bit is set, then . doesn't match NUL. If not set, then it does. */ # define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) /* If this bit is set, nonmatching lists [^...] do not match newline. If not set, they do. */ # define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) /* If this bit is set, either \{...\} or {...} defines an interval, depending on RE_NO_BK_BRACES. If not set, \{, \}, {, and } are literals. */ # define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) /* If this bit is set, +, ? and | aren't recognized as operators. If not set, they are. */ # define RE_LIMITED_OPS (RE_INTERVALS << 1) /* If this bit is set, newline is an alternation operator. If not set, newline is literal. */ # define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) /* If this bit is set, then '{...}' defines an interval, and \{ and \} are literals. If not set, then '\{...\}' defines an interval. */ # define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) /* If this bit is set, (...) defines a group, and \( and \) are literals. If not set, \(...\) defines a group, and ( and ) are literals. */ # define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) /* If this bit is set, then \ matches . If not set, then \ is a back-reference. */ # define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) /* If this bit is set, then | is an alternation operator, and \| is literal. If not set, then \| is an alternation operator, and | is literal. */ # define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) /* If this bit is set, then an ending range point collating higher than the starting range point, as in [z-a], is invalid. If not set, then when ending range point collates higher than the starting range point, the range is ignored. */ # define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) /* If this bit is set, then an unmatched ) is ordinary. If not set, then an unmatched ) is invalid. */ # define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) /* If this bit is set, succeed as soon as we match the whole pattern, without further backtracking. */ # define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) /* If this bit is set, do not process the GNU regex operators. If not set, then the GNU regex operators are recognized. */ # define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) /* If this bit is set, turn on internal regex debugging. If not set, and debugging was on, turn it off. This only works if regex.c is compiled -DDEBUG. We define this bit always, so that all that's needed to turn on debugging is to recompile regex.c; the calling code can always have this bit set, and it won't affect anything in the normal case. */ # define RE_DEBUG (RE_NO_GNU_OPS << 1) /* If this bit is set, a syntactically invalid interval is treated as a string of ordinary characters. For example, the ERE 'a{1' is treated as 'a\{1'. */ # define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) /* If this bit is set, then ignore case when matching. If not set, then case is significant. */ # define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) /* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only for ^, because it is difficult to scan the regex backwards to find whether ^ should be special. */ # define RE_CARET_ANCHORS_HERE (RE_ICASE << 1) /* If this bit is set, then \{ cannot be first in a regex or immediately after an alternation, open-group or \} operator. */ # define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1) /* If this bit is set, then no_sub will be set to 1 during re_compile_pattern. */ # define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) #endif /* This global variable defines the particular regexp syntax to use (for some interfaces). When a regexp is compiled, the syntax used is stored in the pattern buffer, so changing this does not affect already-compiled regexps. */ extern reg_syntax_t re_syntax_options; #ifdef __USE_GNU /* Define combinations of the above bits for the standard possibilities. (The [[[ comments delimit what gets put into the Texinfo file, so don't delete them!) */ /* [[[begin syntaxes]]] */ # define RE_SYNTAX_EMACS 0 # define RE_SYNTAX_AWK \ (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \ | RE_CHAR_CLASSES \ | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS) # define RE_SYNTAX_GNU_AWK \ ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ | RE_INVALID_INTERVAL_ORD) \ & ~(RE_DOT_NOT_NULL | RE_CONTEXT_INDEP_OPS \ | RE_CONTEXT_INVALID_OPS )) # define RE_SYNTAX_POSIX_AWK \ (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ | RE_INTERVALS | RE_NO_GNU_OPS \ | RE_INVALID_INTERVAL_ORD) # define RE_SYNTAX_GREP \ ((RE_SYNTAX_POSIX_BASIC | RE_NEWLINE_ALT) \ & ~(RE_CONTEXT_INVALID_DUP | RE_DOT_NOT_NULL)) # define RE_SYNTAX_EGREP \ ((RE_SYNTAX_POSIX_EXTENDED | RE_INVALID_INTERVAL_ORD | RE_NEWLINE_ALT) \ & ~(RE_CONTEXT_INVALID_OPS | RE_DOT_NOT_NULL)) /* POSIX grep -E behavior is no longer incompatible with GNU. */ # define RE_SYNTAX_POSIX_EGREP \ RE_SYNTAX_EGREP /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ # define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC # define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC /* Syntax bits common to both basic and extended POSIX regex syntax. */ # define _RE_SYNTAX_POSIX_COMMON \ (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ | RE_INTERVALS | RE_NO_EMPTY_RANGES) # define RE_SYNTAX_POSIX_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP) /* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this isn't minimal, since other operators, such as \`, aren't disabled. */ # define RE_SYNTAX_POSIX_MINIMAL_BASIC \ (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS) # define RE_SYNTAX_POSIX_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_VBAR \ | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD) /* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is removed and RE_NO_BK_REFS is added. */ # define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD) /* [[[end syntaxes]]] */ /* Maximum number of duplicates an interval can allow. POSIX-conforming systems might define this in , but we want our value, so remove any previous define. */ # ifdef _REGEX_INCLUDE_LIMITS_H # include # endif # ifdef RE_DUP_MAX # undef RE_DUP_MAX # endif /* RE_DUP_MAX is 2**15 - 1 because an earlier implementation stored the counter as a 2-byte signed integer. This is no longer true, so RE_DUP_MAX could be increased to (INT_MAX / 10 - 1), or to ((SIZE_MAX - 9) / 10) if _REGEX_LARGE_OFFSETS is defined. However, there would be a huge performance problem if someone actually used a pattern like a\{214748363\}, so RE_DUP_MAX retains its historical value. */ # define RE_DUP_MAX (0x7fff) #endif /* POSIX 'cflags' bits (i.e., information for 'regcomp'). */ /* If this bit is set, then use extended regular expression syntax. If not set, then use basic regular expression syntax. */ #define REG_EXTENDED 1 /* If this bit is set, then ignore case when matching. If not set, then case is significant. */ #define REG_ICASE (1 << 1) /* If this bit is set, then anchors do not match at newline characters in the string. If not set, then anchors do match at newlines. */ #define REG_NEWLINE (1 << 2) /* If this bit is set, then report only success or fail in regexec. If not set, then returns differ between not matching and errors. */ #define REG_NOSUB (1 << 3) /* POSIX 'eflags' bits (i.e., information for regexec). */ /* If this bit is set, then the beginning-of-line operator doesn't match the beginning of the string (presumably because it's not the beginning of a line). If not set, then the beginning-of-line operator does match the beginning of the string. */ #define REG_NOTBOL 1 /* Like REG_NOTBOL, except for the end-of-line. */ #define REG_NOTEOL (1 << 1) /* Use PMATCH[0] to delimit the start and end of the search in the buffer. */ #define REG_STARTEND (1 << 2) /* If any error codes are removed, changed, or added, update the '__re_error_msgid' table in regcomp.c. */ typedef enum { _REG_ENOSYS = -1, /* This will never happen for this implementation. */ _REG_NOERROR = 0, /* Success. */ _REG_NOMATCH, /* Didn't find a match (for regexec). */ /* POSIX regcomp return error codes. (In the order listed in the standard.) */ _REG_BADPAT, /* Invalid pattern. */ _REG_ECOLLATE, /* Invalid collating element. */ _REG_ECTYPE, /* Invalid character class name. */ _REG_EESCAPE, /* Trailing backslash. */ _REG_ESUBREG, /* Invalid back reference. */ _REG_EBRACK, /* Unmatched left bracket. */ _REG_EPAREN, /* Parenthesis imbalance. */ _REG_EBRACE, /* Unmatched \{. */ _REG_BADBR, /* Invalid contents of \{\}. */ _REG_ERANGE, /* Invalid range end. */ _REG_ESPACE, /* Ran out of memory. */ _REG_BADRPT, /* No preceding re for repetition op. */ /* Error codes we've added. */ _REG_EEND, /* Premature end. */ _REG_ESIZE, /* Too large (e.g., repeat count too large). */ _REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */ } reg_errcode_t; #if defined _XOPEN_SOURCE || defined __USE_XOPEN2K # define REG_ENOSYS _REG_ENOSYS #endif #define REG_NOERROR _REG_NOERROR #define REG_NOMATCH _REG_NOMATCH #define REG_BADPAT _REG_BADPAT #define REG_ECOLLATE _REG_ECOLLATE #define REG_ECTYPE _REG_ECTYPE #define REG_EESCAPE _REG_EESCAPE #define REG_ESUBREG _REG_ESUBREG #define REG_EBRACK _REG_EBRACK #define REG_EPAREN _REG_EPAREN #define REG_EBRACE _REG_EBRACE #define REG_BADBR _REG_BADBR #define REG_ERANGE _REG_ERANGE #define REG_ESPACE _REG_ESPACE #define REG_BADRPT _REG_BADRPT #define REG_EEND _REG_EEND #define REG_ESIZE _REG_ESIZE #define REG_ERPAREN _REG_ERPAREN /* This data structure represents a compiled pattern. Before calling the pattern compiler, the fields 'buffer', 'allocated', 'fastmap', and 'translate' can be set. After the pattern has been compiled, the fields 're_nsub', 'not_bol' and 'not_eol' are available. All other fields are private to the regex routines. */ #ifndef RE_TRANSLATE_TYPE # define __RE_TRANSLATE_TYPE unsigned char * # ifdef __USE_GNU # define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE # endif #endif #ifdef __USE_GNU # define __REPB_PREFIX(name) name #else # define __REPB_PREFIX(name) __##name #endif struct re_pattern_buffer { /* Space that holds the compiled pattern. The type 'struct re_dfa_t' is private and is not declared here. */ struct re_dfa_t *__REPB_PREFIX(buffer); /* Number of bytes to which 'buffer' points. */ __re_long_size_t __REPB_PREFIX(allocated); /* Number of bytes actually used in 'buffer'. */ __re_long_size_t __REPB_PREFIX(used); /* Syntax setting with which the pattern was compiled. */ reg_syntax_t __REPB_PREFIX(syntax); /* Pointer to a fastmap, if any, otherwise zero. re_search uses the fastmap, if there is one, to skip over impossible starting points for matches. */ char *__REPB_PREFIX(fastmap); /* Either a translate table to apply to all characters before comparing them, or zero for no translation. The translation is applied to a pattern when it is compiled and to a string when it is matched. */ __RE_TRANSLATE_TYPE __REPB_PREFIX(translate); /* Number of subexpressions found by the compiler. */ size_t re_nsub; /* Zero if this pattern cannot match the empty string, one else. Well, in truth it's used only in 're_search_2', to see whether or not we should use the fastmap, so we don't set this absolutely perfectly; see 're_compile_fastmap' (the "duplicate" case). */ unsigned __REPB_PREFIX(can_be_null) : 1; /* If REGS_UNALLOCATED, allocate space in the 'regs' structure for 'max (RE_NREGS, re_nsub + 1)' groups. If REGS_REALLOCATE, reallocate space if necessary. If REGS_FIXED, use what's there. */ #ifdef __USE_GNU # define REGS_UNALLOCATED 0 # define REGS_REALLOCATE 1 # define REGS_FIXED 2 #endif unsigned __REPB_PREFIX(regs_allocated) : 2; /* Set to zero when 're_compile_pattern' compiles a pattern; set to one by 're_compile_fastmap' if it updates the fastmap. */ unsigned __REPB_PREFIX(fastmap_accurate) : 1; /* If set, 're_match_2' does not return information about subexpressions. */ unsigned __REPB_PREFIX(no_sub) : 1; /* If set, a beginning-of-line anchor doesn't match at the beginning of the string. */ unsigned __REPB_PREFIX(not_bol) : 1; /* Similarly for an end-of-line anchor. */ unsigned __REPB_PREFIX(not_eol) : 1; /* If true, an anchor at a newline matches. */ unsigned __REPB_PREFIX(newline_anchor) : 1; }; typedef struct re_pattern_buffer regex_t; /* Type for byte offsets within the string. POSIX mandates this. */ #ifdef _REGEX_LARGE_OFFSETS /* POSIX 1003.1-2008 requires that regoff_t be at least as wide as ptrdiff_t and ssize_t. We don't know of any hosts where ptrdiff_t is wider than ssize_t, so ssize_t is safe. ptrdiff_t is not visible here, so use ssize_t. */ typedef ssize_t regoff_t; #else /* The traditional GNU regex implementation mishandles strings longer than INT_MAX. */ typedef int regoff_t; #endif #ifdef __USE_GNU /* This is the structure we store register match data in. See regex.texinfo for a full description of what registers match. */ struct re_registers { __re_size_t num_regs; regoff_t *start; regoff_t *end; }; /* If 'regs_allocated' is REGS_UNALLOCATED in the pattern buffer, 're_match_2' returns information about at least this many registers the first time a 'regs' structure is passed. */ # ifndef RE_NREGS # define RE_NREGS 30 # endif #endif /* POSIX specification for registers. Aside from the different names than 're_registers', POSIX uses an array of structures, instead of a structure of arrays. */ typedef struct { regoff_t rm_so; /* Byte offset from string's start to substring's start. */ regoff_t rm_eo; /* Byte offset from string's start to substring's end. */ } regmatch_t; /* Declarations for routines. */ #ifdef __USE_GNU /* Sets the current default syntax to SYNTAX, and return the old syntax. You can also simply assign to the 're_syntax_options' variable. */ extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax); /* Compile the regular expression PATTERN, with length LENGTH and syntax given by the global 're_syntax_options', into the buffer BUFFER. Return NULL if successful, and an error string if not. To free the allocated storage, you must call 'regfree' on BUFFER. Note that the translate table must either have been initialized by 'regcomp', with a malloc'ed value, or set to NULL before calling 'regfree'. */ extern const char *re_compile_pattern (const char *__pattern, size_t __length, struct re_pattern_buffer *__buffer); /* Compile a fastmap for the compiled pattern in BUFFER; used to accelerate searches. Return 0 if successful and -2 if was an internal error. */ extern int re_compile_fastmap (struct re_pattern_buffer *__buffer); /* Search in the string STRING (with length LENGTH) for the pattern compiled into BUFFER. Start searching at position START, for RANGE characters. Return the starting position of the match, -1 for no match, or -2 for an internal error. Also return register information in REGS (if REGS and BUFFER->no_sub are nonzero). */ extern regoff_t re_search (struct re_pattern_buffer *__buffer, const char *__String, regoff_t __length, regoff_t __start, regoff_t __range, struct re_registers *__regs); /* Like 're_search', but search in the concatenation of STRING1 and STRING2. Also, stop searching at index START + STOP. */ extern regoff_t re_search_2 (struct re_pattern_buffer *__buffer, const char *__string1, regoff_t __length1, const char *__string2, regoff_t __length2, regoff_t __start, regoff_t __range, struct re_registers *__regs, regoff_t __stop); /* Like 're_search', but return how many characters in STRING the regexp in BUFFER matched, starting at position START. */ extern regoff_t re_match (struct re_pattern_buffer *__buffer, const char *__String, regoff_t __length, regoff_t __start, struct re_registers *__regs); /* Relates to 're_match' as 're_search_2' relates to 're_search'. */ extern regoff_t re_match_2 (struct re_pattern_buffer *__buffer, const char *__string1, regoff_t __length1, const char *__string2, regoff_t __length2, regoff_t __start, struct re_registers *__regs, regoff_t __stop); /* Set REGS to hold NUM_REGS registers, storing them in STARTS and ENDS. Subsequent matches using BUFFER and REGS will use this memory for recording register information. STARTS and ENDS must be allocated with malloc, and must each be at least 'NUM_REGS * sizeof (regoff_t)' bytes long. If NUM_REGS == 0, then subsequent matches should allocate their own register data. Unless this function is called, the first search or match using BUFFER will allocate its own register data, without freeing the old data. */ extern void re_set_registers (struct re_pattern_buffer *__buffer, struct re_registers *__regs, __re_size_t __num_regs, regoff_t *__starts, regoff_t *__ends); #endif /* Use GNU */ #if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_MISC) # ifndef _CRAY /* 4.2 bsd compatibility. */ extern char *re_comp (const char *); extern int re_exec (const char *); # endif #endif /* GCC 2.95 and later have "__restrict"; C99 compilers have "restrict", and "configure" may have defined "restrict". Other compilers use __restrict, __restrict__, and _Restrict, and 'configure' might #define 'restrict' to those words, so pick a different name. */ #ifndef _Restrict_ # if 199901L <= __STDC_VERSION__ # define _Restrict_ restrict # elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__) # define _Restrict_ __restrict # else # define _Restrict_ # endif #endif /* gcc 3.1 and up support the [restrict] syntax. Don't trust sys/cdefs.h's definition of __restrict_arr, though, as it mishandles gcc -ansi -pedantic. */ #ifndef _Restrict_arr_ # if ((199901L <= __STDC_VERSION__ \ || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) \ && !defined __STRICT_ANSI__)) \ && !defined __GNUG__) # define _Restrict_arr_ _Restrict_ # else # define _Restrict_arr_ # endif #endif /* POSIX compatibility. */ extern int regcomp (regex_t *_Restrict_ __preg, const char *_Restrict_ __pattern, int __cflags); extern int regexec (const regex_t *_Restrict_ __preg, const char *_Restrict_ __String, size_t __nmatch, regmatch_t __pmatch[_Restrict_arr_], int __eflags); extern size_t regerror (int __errcode, const regex_t *_Restrict_ __preg, char *_Restrict_ __errbuf, size_t __errbuf_size); extern void regfree (regex_t *__preg); #ifdef __cplusplus } #endif /* C++ */ #endif /* regex.h */ gcal-4.1/lib/memchr.c0000664000000000000000000001334613041163522011346 00000000000000/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2017 Free Software Foundation, Inc. Based on strlen implementation by Torbjorn Granlund (tege@sics.se), with help from Dan Sahlin (dan@sics.se) and commentary by Jim Blandy (jimb@ai.mit.edu); adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), and implemented by Roland McGrath (roland@ai.mit.edu). NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _LIBC # include #endif #include #include #if defined _LIBC # include #else # define reg_char char #endif #include #if HAVE_BP_SYM_H || defined _LIBC # include #else # define BP_SYM(sym) sym #endif #undef __memchr #ifdef _LIBC # undef memchr #endif #ifndef weak_alias # define __memchr memchr #endif /* Search no more than N bytes of S for C. */ void * __memchr (void const *s, int c_in, size_t n) { /* On 32-bit hardware, choosing longword to be a 32-bit unsigned long instead of a 64-bit uintmax_t tends to give better performance. On 64-bit hardware, unsigned long is generally 64 bits already. Change this typedef to experiment with performance. */ typedef unsigned long int longword; const unsigned char *char_ptr; const longword *longword_ptr; longword repeated_one; longword repeated_c; unsigned reg_char c; c = (unsigned char) c_in; /* Handle the first few bytes by reading one byte at a time. Do this until CHAR_PTR is aligned on a longword boundary. */ for (char_ptr = (const unsigned char *) s; n > 0 && (size_t) char_ptr % sizeof (longword) != 0; --n, ++char_ptr) if (*char_ptr == c) return (void *) char_ptr; longword_ptr = (const longword *) char_ptr; /* All these elucidatory comments refer to 4-byte longwords, but the theory applies equally well to any size longwords. */ /* Compute auxiliary longword values: repeated_one is a value which has a 1 in every byte. repeated_c has c in every byte. */ repeated_one = 0x01010101; repeated_c = c | (c << 8); repeated_c |= repeated_c << 16; if (0xffffffffU < (longword) -1) { repeated_one |= repeated_one << 31 << 1; repeated_c |= repeated_c << 31 << 1; if (8 < sizeof (longword)) { size_t i; for (i = 64; i < sizeof (longword) * 8; i *= 2) { repeated_one |= repeated_one << i; repeated_c |= repeated_c << i; } } } /* Instead of the traditional loop which tests each byte, we will test a longword at a time. The tricky part is testing if *any of the four* bytes in the longword in question are equal to c. We first use an xor with repeated_c. This reduces the task to testing whether *any of the four* bytes in longword1 is zero. We compute tmp = ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7). That is, we perform the following operations: 1. Subtract repeated_one. 2. & ~longword1. 3. & a mask consisting of 0x80 in every byte. Consider what happens in each byte: - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, and step 3 transforms it into 0x80. A carry can also be propagated to more significant bytes. - If a byte of longword1 is nonzero, let its lowest 1 bit be at position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, the byte ends in a single bit of value 0 and k bits of value 1. After step 2, the result is just k bits of value 1: 2^k - 1. After step 3, the result is 0. And no carry is produced. So, if longword1 has only non-zero bytes, tmp is zero. Whereas if longword1 has a zero byte, call j the position of the least significant zero byte. Then the result has a zero at positions 0, ..., j-1 and a 0x80 at position j. We cannot predict the result at the more significant bytes (positions j+1..3), but it does not matter since we already have a non-zero bit at position 8*j+7. So, the test whether any byte in longword1 is zero is equivalent to testing whether tmp is nonzero. */ while (n >= sizeof (longword)) { longword longword1 = *longword_ptr ^ repeated_c; if ((((longword1 - repeated_one) & ~longword1) & (repeated_one << 7)) != 0) break; longword_ptr++; n -= sizeof (longword); } char_ptr = (const unsigned char *) longword_ptr; /* At this point, we know that either n < sizeof (longword), or one of the sizeof (longword) bytes starting at char_ptr is == c. On little-endian machines, we could determine the first such byte without any further memory accesses, just by looking at the tmp result from the last loop iteration. But this does not work on big-endian machines. Choose code that works in both cases. */ for (; n > 0; --n, ++char_ptr) { if (*char_ptr == c) return (void *) char_ptr; } return NULL; } #ifdef weak_alias weak_alias (__memchr, BP_SYM (memchr)) #endif gcal-4.1/lib/fseek.c0000664000000000000000000000203513041163522011161 00000000000000/* An fseek() function that, together with fflush(), is POSIX compliant. Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include /* Get off_t. */ #include int fseek (FILE *fp, long offset, int whence) { /* Use the replacement fseeko function with all its workarounds. */ return fseeko (fp, (off_t)offset, whence); } gcal-4.1/lib/perror.c0000664000000000000000000000276313041163523011406 00000000000000/* Print a message describing error code. Copyright (C) 2008-2017 Free Software Foundation, Inc. Written by Bruno Haible and Simon Josefsson. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include #include "strerror-override.h" /* Use the system functions, not the gnulib overrides in this file. */ #undef fprintf void perror (const char *string) { char stackbuf[STACKBUF_LEN]; int ret; /* Our implementation guarantees that this will be a non-empty string, even if it returns EINVAL; and stackbuf should be sized large enough to avoid ERANGE. */ ret = strerror_r (errno, stackbuf, sizeof stackbuf); if (ret == ERANGE) abort (); if (string != NULL && *string != '\0') fprintf (stderr, "%s: %s\n", string, stackbuf); else fprintf (stderr, "%s\n", stackbuf); } gcal-4.1/lib/fd-hook.c0000664000000000000000000000701213041163522011413 00000000000000/* Hook for making making file descriptor functions close(), ioctl() extensible. Copyright (C) 2009-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2009. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include "fd-hook.h" #include /* Currently, this entire code is only needed for the handling of sockets on native Windows platforms. */ #if WINDOWS_SOCKETS /* The first and last link in the doubly linked list. Initially the list is empty. */ static struct fd_hook anchor = { &anchor, &anchor, NULL, NULL }; int execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, int fd) { if (remaining_list == &anchor) /* End of list reached. */ return primary (fd); else return remaining_list->private_close_fn (remaining_list->private_next, primary, fd); } int execute_all_close_hooks (gl_close_fn primary, int fd) { return execute_close_hooks (anchor.private_next, primary, fd); } int execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg) { if (remaining_list == &anchor) /* End of list reached. */ return primary (fd, request, arg); else return remaining_list->private_ioctl_fn (remaining_list->private_next, primary, fd, request, arg); } int execute_all_ioctl_hooks (gl_ioctl_fn primary, int fd, int request, void *arg) { return execute_ioctl_hooks (anchor.private_next, primary, fd, request, arg); } void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link) { if (close_hook == NULL) close_hook = execute_close_hooks; if (ioctl_hook == NULL) ioctl_hook = execute_ioctl_hooks; if (link->private_next == NULL && link->private_prev == NULL) { /* Add the link to the doubly linked list. */ link->private_next = anchor.private_next; link->private_prev = &anchor; link->private_close_fn = close_hook; link->private_ioctl_fn = ioctl_hook; anchor.private_next->private_prev = link; anchor.private_next = link; } else { /* The link is already in use. */ if (link->private_close_fn != close_hook || link->private_ioctl_fn != ioctl_hook) abort (); } } void unregister_fd_hook (struct fd_hook *link) { struct fd_hook *next = link->private_next; struct fd_hook *prev = link->private_prev; if (next != NULL && prev != NULL) { /* The link is in use. Remove it from the doubly linked list. */ prev->private_next = next; next->private_prev = prev; /* Clear the link, to mark it unused. */ link->private_next = NULL; link->private_prev = NULL; link->private_close_fn = NULL; link->private_ioctl_fn = NULL; } } #endif gcal-4.1/lib/mkostemp.c0000664000000000000000000000255213041163522011727 00000000000000/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2017 Free Software Foundation, Inc. This file is derived from the one in the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #if !_LIBC # include #endif #include #if !_LIBC # include "tempname.h" # define __gen_tempname gen_tempname # ifndef __GTFILE # define __GT_FILE GT_FILE # endif #endif #include #ifndef __GT_FILE # define __GT_FILE 0 #endif /* Generate a unique temporary file name from XTEMPLATE. The last six characters of XTEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. Then open the file and return a fd. */ int mkostemp (char *xtemplate, int flags) { return __gen_tempname (xtemplate, 0, flags, __GT_FILE); } gcal-4.1/lib/sigprocmask.c0000664000000000000000000002062713041163523012416 00000000000000/* POSIX compatible signal blocking. Copyright (C) 2006-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2006. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif /* We assume that a platform without POSIX signal blocking functions also does not have the POSIX sigaction() function, only the signal() function. We also assume signal() has SysV semantics, where any handler is uninstalled prior to being invoked. This is true for native Windows platforms. */ /* We use raw signal(), but also provide a wrapper rpl_signal() so that applications can query or change a blocked signal. */ #undef signal /* Provide invalid signal numbers as fallbacks if the uncatchable signals are not defined. */ #ifndef SIGKILL # define SIGKILL (-1) #endif #ifndef SIGSTOP # define SIGSTOP (-1) #endif /* On native Windows, as of 2008, the signal SIGABRT_COMPAT is an alias for the signal SIGABRT. Only one signal handler is stored for both SIGABRT and SIGABRT_COMPAT. SIGABRT_COMPAT is not a signal of its own. */ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # undef SIGABRT_COMPAT # define SIGABRT_COMPAT 6 #endif #ifdef SIGABRT_COMPAT # define SIGABRT_COMPAT_MASK (1U << SIGABRT_COMPAT) #else # define SIGABRT_COMPAT_MASK 0 #endif typedef void (*handler_t) (int); #if HAVE_MSVC_INVALID_PARAMETER_HANDLER static handler_t signal_nothrow (int sig, handler_t handler) { handler_t result; TRY_MSVC_INVAL { result = signal (sig, handler); } CATCH_MSVC_INVAL { result = SIG_ERR; errno = EINVAL; } DONE_MSVC_INVAL; return result; } # define signal signal_nothrow #endif /* Handling of gnulib defined signals. */ #if GNULIB_defined_SIGPIPE static handler_t SIGPIPE_handler = SIG_DFL; #endif #if GNULIB_defined_SIGPIPE static handler_t ext_signal (int sig, handler_t handler) { switch (sig) { case SIGPIPE: { handler_t old_handler = SIGPIPE_handler; SIGPIPE_handler = handler; return old_handler; } default: /* System defined signal */ return signal (sig, handler); } } # undef signal # define signal ext_signal #endif int sigismember (const sigset_t *set, int sig) { if (sig >= 0 && sig < NSIG) { #ifdef SIGABRT_COMPAT if (sig == SIGABRT_COMPAT) sig = SIGABRT; #endif return (*set >> sig) & 1; } else return 0; } int sigemptyset (sigset_t *set) { *set = 0; return 0; } int sigaddset (sigset_t *set, int sig) { if (sig >= 0 && sig < NSIG) { #ifdef SIGABRT_COMPAT if (sig == SIGABRT_COMPAT) sig = SIGABRT; #endif *set |= 1U << sig; return 0; } else { errno = EINVAL; return -1; } } int sigdelset (sigset_t *set, int sig) { if (sig >= 0 && sig < NSIG) { #ifdef SIGABRT_COMPAT if (sig == SIGABRT_COMPAT) sig = SIGABRT; #endif *set &= ~(1U << sig); return 0; } else { errno = EINVAL; return -1; } } int sigfillset (sigset_t *set) { *set = ((2U << (NSIG - 1)) - 1) & ~ SIGABRT_COMPAT_MASK; return 0; } /* Set of currently blocked signals. */ static volatile sigset_t blocked_set /* = 0 */; /* Set of currently blocked and pending signals. */ static volatile sig_atomic_t pending_array[NSIG] /* = { 0 } */; /* Signal handler that is installed for blocked signals. */ static void blocked_handler (int sig) { /* Reinstall the handler, in case the signal occurs multiple times while blocked. There is an inherent race where an asynchronous signal in between when the kernel uninstalled the handler and when we reinstall it will trigger the default handler; oh well. */ signal (sig, blocked_handler); if (sig >= 0 && sig < NSIG) pending_array[sig] = 1; } int sigpending (sigset_t *set) { sigset_t pending = 0; int sig; for (sig = 0; sig < NSIG; sig++) if (pending_array[sig]) pending |= 1U << sig; *set = pending; return 0; } /* The previous signal handlers. Only the array elements corresponding to blocked signals are relevant. */ static volatile handler_t old_handlers[NSIG]; int sigprocmask (int operation, const sigset_t *set, sigset_t *old_set) { if (old_set != NULL) *old_set = blocked_set; if (set != NULL) { sigset_t new_blocked_set; sigset_t to_unblock; sigset_t to_block; switch (operation) { case SIG_BLOCK: new_blocked_set = blocked_set | *set; break; case SIG_SETMASK: new_blocked_set = *set; break; case SIG_UNBLOCK: new_blocked_set = blocked_set & ~*set; break; default: errno = EINVAL; return -1; } to_unblock = blocked_set & ~new_blocked_set; to_block = new_blocked_set & ~blocked_set; if (to_block != 0) { int sig; for (sig = 0; sig < NSIG; sig++) if ((to_block >> sig) & 1) { pending_array[sig] = 0; if ((old_handlers[sig] = signal (sig, blocked_handler)) != SIG_ERR) blocked_set |= 1U << sig; } } if (to_unblock != 0) { sig_atomic_t received[NSIG]; int sig; for (sig = 0; sig < NSIG; sig++) if ((to_unblock >> sig) & 1) { if (signal (sig, old_handlers[sig]) != blocked_handler) /* The application changed a signal handler while the signal was blocked, bypassing our rpl_signal replacement. We don't support this. */ abort (); received[sig] = pending_array[sig]; blocked_set &= ~(1U << sig); pending_array[sig] = 0; } else received[sig] = 0; for (sig = 0; sig < NSIG; sig++) if (received[sig]) raise (sig); } } return 0; } /* Install the handler FUNC for signal SIG, and return the previous handler. */ handler_t rpl_signal (int sig, handler_t handler) { /* We must provide a wrapper, so that a user can query what handler they installed even if that signal is currently blocked. */ if (sig >= 0 && sig < NSIG && sig != SIGKILL && sig != SIGSTOP && handler != SIG_ERR) { #ifdef SIGABRT_COMPAT if (sig == SIGABRT_COMPAT) sig = SIGABRT; #endif if (blocked_set & (1U << sig)) { /* POSIX states that sigprocmask and signal are both async-signal-safe. This is not true of our implementation - there is a slight data race where an asynchronous interrupt on signal A can occur after we install blocked_handler but before we have updated old_handlers for signal B, such that handler A can see stale information if it calls signal(B). Oh well - signal handlers really shouldn't try to manipulate the installed handlers of unrelated signals. */ handler_t result = old_handlers[sig]; old_handlers[sig] = handler; return result; } else return signal (sig, handler); } else { errno = EINVAL; return SIG_ERR; } } #if GNULIB_defined_SIGPIPE /* Raise the signal SIGPIPE. */ int _gl_raise_SIGPIPE (void) { if (blocked_set & (1U << SIGPIPE)) pending_array[SIGPIPE] = 1; else { handler_t handler = SIGPIPE_handler; if (handler == SIG_DFL) exit (128 + SIGPIPE); else if (handler != SIG_IGN) (*handler) (SIGPIPE); } return 0; } #endif gcal-4.1/lib/tempname.h0000664000000000000000000000441413041163523011703 00000000000000/* Create a temporary file or directory. Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* header written by Eric Blake */ #ifndef GL_TEMPNAME_H # define GL_TEMPNAME_H # include # ifdef __GT_FILE # define GT_FILE __GT_FILE # define GT_DIR __GT_DIR # define GT_NOCREATE __GT_NOCREATE # else # define GT_FILE 0 # define GT_DIR 1 # define GT_NOCREATE 2 # endif #ifdef __cplusplus extern "C" { #endif /* Generate a temporary file name based on TMPL. TMPL must match the rules for mk[s]temp (i.e. end in "XXXXXX", possibly with a suffix). The name constructed does not exist at the time of the call to gen_tempname. TMPL is overwritten with the result. KIND may be one of: GT_NOCREATE: simply verify that the name does not exist at the time of the call. GT_FILE: create a large file using open(O_CREAT|O_EXCL) and return a read-write fd. The file is mode 0600. GT_DIR: create a directory, which will be mode 0700. We use a clever algorithm to get hard-to-predict names. */ extern int gen_tempname (char *tmpl, int suffixlen, int flags, int kind); /* Similar to gen_tempname, but TRYFUNC is called for each temporary name to try. If TRYFUNC returns a non-negative number, TRY_GEN_TEMPNAME returns with this value. Otherwise, if errno is set to EEXIST, another name is tried, or else TRY_GEN_TEMPNAME returns -1. */ extern int try_tempname (char *tmpl, int suffixlen, void *args, int (*tryfunc) (char *, void *)); #ifdef __cplusplus } #endif #endif /* GL_TEMPNAME_H */ gcal-4.1/lib/spawn_faction_destroy.c0000664000000000000000000000206213041163523014471 00000000000000/* Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include /* Initialize data structure for file attribute for 'spawn' call. */ int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *file_actions) { /* Free the memory allocated. */ free (file_actions->_actions); return 0; } gcal-4.1/lib/spawnattr_setsigmask.c0000664000000000000000000000215413041163523014344 00000000000000/* Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include /* Set signal mask for the new process in ATTR to SIGMASK. */ int posix_spawnattr_setsigmask (posix_spawnattr_t *attr, const sigset_t *sigmask) { /* Copy the sigset_t data to the user buffer. */ memcpy (&attr->_ss, sigmask, sizeof (sigset_t)); return 0; } gcal-4.1/lib/secure_getenv.c0000664000000000000000000000377613041163523012740 00000000000000/* Look up an environment variable, returning NULL in insecure situations. Copyright 2013-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #if !HAVE___SECURE_GETENV # if HAVE_ISSETUGID || (HAVE_GETUID && HAVE_GETEUID && HAVE_GETGID && HAVE_GETEGID) # include # endif #endif char * secure_getenv (char const *name) { #if HAVE___SECURE_GETENV /* glibc */ return __secure_getenv (name); #elif HAVE_ISSETUGID /* OS X, FreeBSD, NetBSD, OpenBSD */ if (issetugid ()) return NULL; return getenv (name); #elif HAVE_GETUID && HAVE_GETEUID && HAVE_GETGID && HAVE_GETEGID /* other Unix */ if (geteuid () != getuid () || getegid () != getgid ()) return NULL; return getenv (name); #elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* native Windows */ /* On native Windows, there is no such concept as setuid or setgid binaries. - Programs launched as system services have high privileges, but they don't inherit environment variables from a user. - Programs launched by a user with "Run as Administrator" have high privileges and use the environment variables, but the user has been asked whether he agrees. - Programs launched by a user without "Run as Administrator" cannot gain high privileges, therefore there is no risk. */ return getenv (name); #else return NULL; #endif } gcal-4.1/lib/ceil.c0000664000000000000000000000701113041163522010777 00000000000000/* Round towards positive infinity. Copyright (C) 2007, 2010-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #if ! defined USE_LONG_DOUBLE # include #endif /* Specification. */ #include #include #undef MIN #ifdef USE_LONG_DOUBLE # define FUNC ceill # define DOUBLE long double # define MANT_DIG LDBL_MANT_DIG # define MIN LDBL_MIN # define L_(literal) literal##L #elif ! defined USE_FLOAT # define FUNC ceil # define DOUBLE double # define MANT_DIG DBL_MANT_DIG # define MIN DBL_MIN # define L_(literal) literal #else /* defined USE_FLOAT */ # define FUNC ceilf # define DOUBLE float # define MANT_DIG FLT_MANT_DIG # define MIN FLT_MIN # define L_(literal) literal##f #endif /* -0.0. See minus-zero.h. */ #if defined __hpux || defined __sgi || defined __ICC # define MINUS_ZERO (-MIN * MIN) #else # define MINUS_ZERO L_(-0.0) #endif /* MSVC with option -fp:strict refuses to compile constant initializers that contain floating-point operations. Pacify this compiler. */ #ifdef _MSC_VER # pragma fenv_access (off) #endif /* 2^(MANT_DIG-1). */ static const DOUBLE TWO_MANT_DIG = /* Assume MANT_DIG <= 5 * 31. Use the identity n = floor(n/5) + floor((n+1)/5) + ... + floor((n+4)/5). */ (DOUBLE) (1U << ((MANT_DIG - 1) / 5)) * (DOUBLE) (1U << ((MANT_DIG - 1 + 1) / 5)) * (DOUBLE) (1U << ((MANT_DIG - 1 + 2) / 5)) * (DOUBLE) (1U << ((MANT_DIG - 1 + 3) / 5)) * (DOUBLE) (1U << ((MANT_DIG - 1 + 4) / 5)); DOUBLE FUNC (DOUBLE x) { /* The use of 'volatile' guarantees that excess precision bits are dropped at each addition step and before the following comparison at the caller's site. It is necessary on x86 systems where double-floats are not IEEE compliant by default, to avoid that the results become platform and compiler option dependent. 'volatile' is a portable alternative to gcc's -ffloat-store option. */ volatile DOUBLE y = x; volatile DOUBLE z = y; if (z > L_(0.0)) { /* Avoid rounding errors for values near 2^k, where k >= MANT_DIG-1. */ if (z < TWO_MANT_DIG) { /* Round to the next integer (nearest or up or down, doesn't matter). */ z += TWO_MANT_DIG; z -= TWO_MANT_DIG; /* Enforce rounding up. */ if (z < y) z += L_(1.0); } } else if (z < L_(0.0)) { /* For -1 < x < 0, return -0.0 regardless of the current rounding mode. */ if (z > L_(-1.0)) z = MINUS_ZERO; /* Avoid rounding errors for values near -2^k, where k >= MANT_DIG-1. */ else if (z > - TWO_MANT_DIG) { /* Round to the next integer (nearest or up or down, doesn't matter). */ z -= TWO_MANT_DIG; z += TWO_MANT_DIG; /* Enforce rounding up. */ if (z < y) z += L_(1.0); } } return z; } gcal-4.1/lib/exitfail.c0000664000000000000000000000153313041163522011673 00000000000000/* Failure exit status Copyright (C) 2002-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include "exitfail.h" #include int volatile exit_failure = EXIT_FAILURE; gcal-4.1/lib/stdint.in.h0000664000000000000000000005314513041163523012014 00000000000000/* Copyright (C) 2001-2002, 2004-2017 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* * ISO C 99 for platforms that lack it. * */ #ifndef _@GUARD_PREFIX@_STDINT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* When including a system file that in turn includes , use the system , not our substitute. This avoids problems with (for example) VMS, whose includes . */ #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* On Android (Bionic libc), includes this file before having defined 'time_t'. Therefore in this case avoid including other system header files; just include the system's . Ideally we should test __BIONIC__ here, but it is only defined after has been included; hence test __ANDROID__ instead. */ #if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #else /* Get those types that are already defined in other system include files, so that we can "#define int8_t signed char" below without worrying about a later system include file containing a "typedef signed char int8_t;" that will get messed up by our macro. Our macros should all be consistent with the system versions, except for the "fast" types and macros, which we recommend against using in public interfaces due to compiler differences. */ #if @HAVE_STDINT_H@ # if defined __sgi && ! defined __c99 /* Bypass IRIX's if in C89 mode, since it merely annoys users with "This header file is to be used only for c99 mode compilations" diagnostics. */ # define __STDINT_H__ # endif /* Some pre-C++11 implementations need this. */ # ifdef __cplusplus # ifndef __STDC_CONSTANT_MACROS # define __STDC_CONSTANT_MACROS 1 # endif # ifndef __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS 1 # endif # endif /* Other systems may have an incomplete or buggy . Include it before , since any "#include " in would reinclude us, skipping our contents because _@GUARD_PREFIX@_STDINT_H is defined. The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #endif #if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H #define _@GUARD_PREFIX@_STDINT_H /* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, LONG_MIN, LONG_MAX, ULONG_MAX, _GL_INTEGER_WIDTH. */ #include /* Override WINT_MIN and WINT_MAX if gnulib's or overrides wint_t. */ #if @GNULIB_OVERRIDES_WINT_T@ # undef WINT_MIN # undef WINT_MAX # define WINT_MIN 0x0U # define WINT_MAX 0xffffffffU #endif #if ! @HAVE_C99_STDINT_H@ /* defines some of the stdint.h types as well, on glibc, IRIX 6.5, and OpenBSD 3.8 (via ). AIX 5.2 isn't needed and causes troubles. Mac OS X 10.4.6 includes (which is us), but relies on the system definitions, so include after @NEXT_STDINT_H@. */ # if @HAVE_SYS_TYPES_H@ && ! defined _AIX # include # endif # if @HAVE_INTTYPES_H@ /* In OpenBSD 3.8, includes , which defines int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. also defines intptr_t and uintptr_t. */ # include # elif @HAVE_SYS_INTTYPES_H@ /* Solaris 7 has the types except the *_fast*_t types, and the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ # include # endif # if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ /* Linux libc4 >= 4.6.7 and libc5 have a that defines int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is included by . */ # include # endif # undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* Minimum and maximum values for an integer type under the usual assumption. Return an unspecified value if BITS == 0, adding a check to pacify picky compilers. */ # define _STDINT_MIN(signed, bits, zero) \ ((signed) ? ~ _STDINT_MAX (signed, bits, zero) : (zero)) # define _STDINT_MAX(signed, bits, zero) \ (((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) #if !GNULIB_defined_stdint_types /* 7.18.1.1. Exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ # undef int8_t # undef uint8_t typedef signed char gl_int8_t; typedef unsigned char gl_uint8_t; # define int8_t gl_int8_t # define uint8_t gl_uint8_t # undef int16_t # undef uint16_t typedef short int gl_int16_t; typedef unsigned short int gl_uint16_t; # define int16_t gl_int16_t # define uint16_t gl_uint16_t # undef int32_t # undef uint32_t typedef int gl_int32_t; typedef unsigned int gl_uint32_t; # define int32_t gl_int32_t # define uint32_t gl_uint32_t /* If the system defines INT64_MAX, assume int64_t works. That way, if the underlying platform defines int64_t to be a 64-bit long long int, the code below won't mistakenly define it to be a 64-bit long int, which would mess up C++ name mangling. We must use #ifdef rather than #if, to avoid an error with HP-UX 10.20 cc. */ # ifdef INT64_MAX # define GL_INT64_T # else /* Do not undefine int64_t if gnulib is not being used with 64-bit types, since otherwise it breaks platforms like Tandem/NSK. */ # if LONG_MAX >> 31 >> 31 == 1 # undef int64_t typedef long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif defined _MSC_VER # undef int64_t typedef __int64 gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif @HAVE_LONG_LONG_INT@ # undef int64_t typedef long long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # endif # endif # ifdef UINT64_MAX # define GL_UINT64_T # else # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # undef uint64_t typedef unsigned long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif defined _MSC_VER # undef uint64_t typedef unsigned __int64 gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif @HAVE_UNSIGNED_LONG_LONG_INT@ # undef uint64_t typedef unsigned long long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # endif # endif /* Avoid collision with Solaris 2.5.1 etc. */ # define _UINT8_T # define _UINT32_T # define _UINT64_T /* 7.18.1.2. Minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ # undef int_least8_t # undef uint_least8_t # undef int_least16_t # undef uint_least16_t # undef int_least32_t # undef uint_least32_t # undef int_least64_t # undef uint_least64_t # define int_least8_t int8_t # define uint_least8_t uint8_t # define int_least16_t int16_t # define uint_least16_t uint16_t # define int_least32_t int32_t # define uint_least32_t uint32_t # ifdef GL_INT64_T # define int_least64_t int64_t # endif # ifdef GL_UINT64_T # define uint_least64_t uint64_t # endif /* 7.18.1.3. Fastest minimum-width integer types */ /* Note: Other substitutes may define these types differently. It is not recommended to use these types in public header files. */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. The following code normally uses types consistent with glibc, as that lessens the chance of incompatibility with older GNU hosts. */ # undef int_fast8_t # undef uint_fast8_t # undef int_fast16_t # undef uint_fast16_t # undef int_fast32_t # undef uint_fast32_t # undef int_fast64_t # undef uint_fast64_t typedef signed char gl_int_fast8_t; typedef unsigned char gl_uint_fast8_t; # ifdef __sun /* Define types compatible with SunOS 5.10, so that code compiled under earlier SunOS versions works with code compiled under SunOS 5.10. */ typedef int gl_int_fast32_t; typedef unsigned int gl_uint_fast32_t; # else typedef long int gl_int_fast32_t; typedef unsigned long int gl_uint_fast32_t; # endif typedef gl_int_fast32_t gl_int_fast16_t; typedef gl_uint_fast32_t gl_uint_fast16_t; # define int_fast8_t gl_int_fast8_t # define uint_fast8_t gl_uint_fast8_t # define int_fast16_t gl_int_fast16_t # define uint_fast16_t gl_uint_fast16_t # define int_fast32_t gl_int_fast32_t # define uint_fast32_t gl_uint_fast32_t # ifdef GL_INT64_T # define int_fast64_t int64_t # endif # ifdef GL_UINT64_T # define uint_fast64_t uint64_t # endif /* 7.18.1.4. Integer types capable of holding object pointers */ /* kLIBC's stdint.h defines _INTPTR_T_DECLARED and needs its own definitions of intptr_t and uintptr_t (which use int and unsigned) to avoid clashes with declarations of system functions like sbrk. */ # ifndef _INTPTR_T_DECLARED # undef intptr_t # undef uintptr_t typedef long int gl_intptr_t; typedef unsigned long int gl_uintptr_t; # define intptr_t gl_intptr_t # define uintptr_t gl_uintptr_t # endif /* 7.18.1.5. Greatest-width integer types */ /* Note: These types are compiler dependent. It may be unwise to use them in public header files. */ /* If the system defines INTMAX_MAX, assume that intmax_t works, and similarly for UINTMAX_MAX and uintmax_t. This avoids problems with assuming one type where another is used by the system. */ # ifndef INTMAX_MAX # undef INTMAX_C # undef intmax_t # if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 typedef long long int gl_intmax_t; # define intmax_t gl_intmax_t # elif defined GL_INT64_T # define intmax_t int64_t # else typedef long int gl_intmax_t; # define intmax_t gl_intmax_t # endif # endif # ifndef UINTMAX_MAX # undef UINTMAX_C # undef uintmax_t # if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 typedef unsigned long long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # elif defined GL_UINT64_T # define uintmax_t uint64_t # else typedef unsigned long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # endif # endif /* Verify that intmax_t and uintmax_t have the same size. Too much code breaks if this is not the case. If this check fails, the reason is likely to be found in the autoconf macros. */ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) ? 1 : -1]; # define GNULIB_defined_stdint_types 1 # endif /* !GNULIB_defined_stdint_types */ /* 7.18.2. Limits of specified-width integer types */ /* 7.18.2.1. Limits of exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ # undef INT8_MIN # undef INT8_MAX # undef UINT8_MAX # define INT8_MIN (~ INT8_MAX) # define INT8_MAX 127 # define UINT8_MAX 255 # undef INT16_MIN # undef INT16_MAX # undef UINT16_MAX # define INT16_MIN (~ INT16_MAX) # define INT16_MAX 32767 # define UINT16_MAX 65535 # undef INT32_MIN # undef INT32_MAX # undef UINT32_MAX # define INT32_MIN (~ INT32_MAX) # define INT32_MAX 2147483647 # define UINT32_MAX 4294967295U # if defined GL_INT64_T && ! defined INT64_MAX /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 evaluates the latter incorrectly in preprocessor expressions. */ # define INT64_MIN (- INTMAX_C (1) << 63) # define INT64_MAX INTMAX_C (9223372036854775807) # endif # if defined GL_UINT64_T && ! defined UINT64_MAX # define UINT64_MAX UINTMAX_C (18446744073709551615) # endif /* 7.18.2.2. Limits of minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ # undef INT_LEAST8_MIN # undef INT_LEAST8_MAX # undef UINT_LEAST8_MAX # define INT_LEAST8_MIN INT8_MIN # define INT_LEAST8_MAX INT8_MAX # define UINT_LEAST8_MAX UINT8_MAX # undef INT_LEAST16_MIN # undef INT_LEAST16_MAX # undef UINT_LEAST16_MAX # define INT_LEAST16_MIN INT16_MIN # define INT_LEAST16_MAX INT16_MAX # define UINT_LEAST16_MAX UINT16_MAX # undef INT_LEAST32_MIN # undef INT_LEAST32_MAX # undef UINT_LEAST32_MAX # define INT_LEAST32_MIN INT32_MIN # define INT_LEAST32_MAX INT32_MAX # define UINT_LEAST32_MAX UINT32_MAX # undef INT_LEAST64_MIN # undef INT_LEAST64_MAX # ifdef GL_INT64_T # define INT_LEAST64_MIN INT64_MIN # define INT_LEAST64_MAX INT64_MAX # endif # undef UINT_LEAST64_MAX # ifdef GL_UINT64_T # define UINT_LEAST64_MAX UINT64_MAX # endif /* 7.18.2.3. Limits of fastest minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. */ # undef INT_FAST8_MIN # undef INT_FAST8_MAX # undef UINT_FAST8_MAX # define INT_FAST8_MIN SCHAR_MIN # define INT_FAST8_MAX SCHAR_MAX # define UINT_FAST8_MAX UCHAR_MAX # undef INT_FAST16_MIN # undef INT_FAST16_MAX # undef UINT_FAST16_MAX # define INT_FAST16_MIN INT_FAST32_MIN # define INT_FAST16_MAX INT_FAST32_MAX # define UINT_FAST16_MAX UINT_FAST32_MAX # undef INT_FAST32_MIN # undef INT_FAST32_MAX # undef UINT_FAST32_MAX # ifdef __sun # define INT_FAST32_MIN INT_MIN # define INT_FAST32_MAX INT_MAX # define UINT_FAST32_MAX UINT_MAX # else # define INT_FAST32_MIN LONG_MIN # define INT_FAST32_MAX LONG_MAX # define UINT_FAST32_MAX ULONG_MAX # endif # undef INT_FAST64_MIN # undef INT_FAST64_MAX # ifdef GL_INT64_T # define INT_FAST64_MIN INT64_MIN # define INT_FAST64_MAX INT64_MAX # endif # undef UINT_FAST64_MAX # ifdef GL_UINT64_T # define UINT_FAST64_MAX UINT64_MAX # endif /* 7.18.2.4. Limits of integer types capable of holding object pointers */ # undef INTPTR_MIN # undef INTPTR_MAX # undef UINTPTR_MAX # define INTPTR_MIN LONG_MIN # define INTPTR_MAX LONG_MAX # define UINTPTR_MAX ULONG_MAX /* 7.18.2.5. Limits of greatest-width integer types */ # ifndef INTMAX_MAX # undef INTMAX_MIN # ifdef INT64_MAX # define INTMAX_MIN INT64_MIN # define INTMAX_MAX INT64_MAX # else # define INTMAX_MIN INT32_MIN # define INTMAX_MAX INT32_MAX # endif # endif # ifndef UINTMAX_MAX # ifdef UINT64_MAX # define UINTMAX_MAX UINT64_MAX # else # define UINTMAX_MAX UINT32_MAX # endif # endif /* 7.18.3. Limits of other integer types */ /* ptrdiff_t limits */ # undef PTRDIFF_MIN # undef PTRDIFF_MAX # if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l) # define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) # else # define PTRDIFF_MIN _STDINT_MIN (1, 32, 0) # define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) # endif # else # define PTRDIFF_MIN \ _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # define PTRDIFF_MAX \ _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # endif /* sig_atomic_t limits */ # undef SIG_ATOMIC_MIN # undef SIG_ATOMIC_MAX # define SIG_ATOMIC_MIN \ _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) # define SIG_ATOMIC_MAX \ _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) /* size_t limit */ # undef SIZE_MAX # if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define SIZE_MAX _STDINT_MAX (0, 64, 0ul) # else # define SIZE_MAX _STDINT_MAX (0, 32, 0ul) # endif # else # define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) # endif /* wchar_t limits */ /* Get WCHAR_MIN, WCHAR_MAX. This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested includes -> -> -> , and the latter includes and assumes its types are already defined. */ # if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) /* BSD/OS 4.0.1 has a bug: , and must be included before . */ # include # include # include # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # include # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # endif # undef WCHAR_MIN # undef WCHAR_MAX # define WCHAR_MIN \ _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) # define WCHAR_MAX \ _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) /* wint_t limits */ # undef WINT_MIN # undef WINT_MAX # define WINT_MIN \ _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) # define WINT_MAX \ _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) /* 7.18.4. Macros for integer constants */ /* 7.18.4.1. Macros for minimum-width integer constants */ /* According to ISO C 99 Technical Corrigendum 1 */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ # undef INT8_C # undef UINT8_C # define INT8_C(x) x # define UINT8_C(x) x # undef INT16_C # undef UINT16_C # define INT16_C(x) x # define UINT16_C(x) x # undef INT32_C # undef UINT32_C # define INT32_C(x) x # define UINT32_C(x) x ## U # undef INT64_C # undef UINT64_C # if LONG_MAX >> 31 >> 31 == 1 # define INT64_C(x) x##L # elif defined _MSC_VER # define INT64_C(x) x##i64 # elif @HAVE_LONG_LONG_INT@ # define INT64_C(x) x##LL # endif # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # define UINT64_C(x) x##UL # elif defined _MSC_VER # define UINT64_C(x) x##ui64 # elif @HAVE_UNSIGNED_LONG_LONG_INT@ # define UINT64_C(x) x##ULL # endif /* 7.18.4.2. Macros for greatest-width integer constants */ # ifndef INTMAX_C # if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define INTMAX_C(x) x##LL # elif defined GL_INT64_T # define INTMAX_C(x) INT64_C(x) # else # define INTMAX_C(x) x##L # endif # endif # ifndef UINTMAX_C # if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define UINTMAX_C(x) x##ULL # elif defined GL_UINT64_T # define UINTMAX_C(x) UINT64_C(x) # else # define UINTMAX_C(x) x##UL # endif # endif #endif /* !@HAVE_C99_STDINT_H@ */ /* Macros specified by ISO/IEC TS 18661-1:2014. */ #if (!defined UINTMAX_WIDTH \ && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) # ifdef INT8_MAX # define INT8_WIDTH _GL_INTEGER_WIDTH (INT8_MIN, INT8_MAX) # endif # ifdef UINT8_MAX # define UINT8_WIDTH _GL_INTEGER_WIDTH (0, UINT8_MAX) # endif # ifdef INT16_MAX # define INT16_WIDTH _GL_INTEGER_WIDTH (INT16_MIN, INT16_MAX) # endif # ifdef UINT16_MAX # define UINT16_WIDTH _GL_INTEGER_WIDTH (0, UINT16_MAX) # endif # ifdef INT32_MAX # define INT32_WIDTH _GL_INTEGER_WIDTH (INT32_MIN, INT32_MAX) # endif # ifdef UINT32_MAX # define UINT32_WIDTH _GL_INTEGER_WIDTH (0, UINT32_MAX) # endif # ifdef INT64_MAX # define INT64_WIDTH _GL_INTEGER_WIDTH (INT64_MIN, INT64_MAX) # endif # ifdef UINT64_MAX # define UINT64_WIDTH _GL_INTEGER_WIDTH (0, UINT64_MAX) # endif # define INT_LEAST8_WIDTH _GL_INTEGER_WIDTH (INT_LEAST8_MIN, INT_LEAST8_MAX) # define UINT_LEAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST8_MAX) # define INT_LEAST16_WIDTH _GL_INTEGER_WIDTH (INT_LEAST16_MIN, INT_LEAST16_MAX) # define UINT_LEAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST16_MAX) # define INT_LEAST32_WIDTH _GL_INTEGER_WIDTH (INT_LEAST32_MIN, INT_LEAST32_MAX) # define UINT_LEAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST32_MAX) # define INT_LEAST64_WIDTH _GL_INTEGER_WIDTH (INT_LEAST64_MIN, INT_LEAST64_MAX) # define UINT_LEAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST64_MAX) # define INT_FAST8_WIDTH _GL_INTEGER_WIDTH (INT_FAST8_MIN, INT_FAST8_MAX) # define UINT_FAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST8_MAX) # define INT_FAST16_WIDTH _GL_INTEGER_WIDTH (INT_FAST16_MIN, INT_FAST16_MAX) # define UINT_FAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST16_MAX) # define INT_FAST32_WIDTH _GL_INTEGER_WIDTH (INT_FAST32_MIN, INT_FAST32_MAX) # define UINT_FAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST32_MAX) # define INT_FAST64_WIDTH _GL_INTEGER_WIDTH (INT_FAST64_MIN, INT_FAST64_MAX) # define UINT_FAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST64_MAX) # define INTPTR_WIDTH _GL_INTEGER_WIDTH (INTPTR_MIN, INTPTR_MAX) # define UINTPTR_WIDTH _GL_INTEGER_WIDTH (0, UINTPTR_MAX) # define INTMAX_WIDTH _GL_INTEGER_WIDTH (INTMAX_MIN, INTMAX_MAX) # define UINTMAX_WIDTH _GL_INTEGER_WIDTH (0, UINTMAX_MAX) # define PTRDIFF_WIDTH _GL_INTEGER_WIDTH (PTRDIFF_MIN, PTRDIFF_MAX) # define SIZE_WIDTH _GL_INTEGER_WIDTH (0, SIZE_MAX) # define WCHAR_WIDTH _GL_INTEGER_WIDTH (WCHAR_MIN, WCHAR_MAX) # ifdef WINT_MAX # define WINT_WIDTH _GL_INTEGER_WIDTH (WINT_MIN, WINT_MAX) # endif # ifdef SIG_ATOMIC_MAX # define SIG_ATOMIC_WIDTH _GL_INTEGER_WIDTH (SIG_ATOMIC_MIN, SIG_ATOMIC_MAX) # endif #endif /* !WINT_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ #endif /* _@GUARD_PREFIX@_STDINT_H */ #endif /* !(defined __ANDROID__ && ...) */ #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ gcal-4.1/lib/stat.c0000664000000000000000000001066613041163523011051 00000000000000/* Work around platform bugs in stat. Copyright (C) 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* written by Eric Blake */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_stat doesn't recurse to rpl_stat. */ #define __need_system_sys_stat_h #include /* Get the original definition of stat. It might be defined as a macro. */ #include #include #undef __need_system_sys_stat_h #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # if _GL_WINDOWS_64_BIT_ST_SIZE # undef stat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */ # define stat _stati64 # define REPLACE_FUNC_STAT_DIR 1 # undef REPLACE_FUNC_STAT_FILE # elif REPLACE_FUNC_STAT_FILE /* mingw64 has a broken stat() function, based on _stat(), in libmingwex.a. Bypass it. */ # define stat _stat # define REPLACE_FUNC_STAT_DIR 1 # undef REPLACE_FUNC_STAT_FILE # endif #endif static int orig_stat (const char *filename, struct stat *buf) { return stat (filename, buf); } /* Specification. */ /* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ #include "sys/stat.h" #include #include #include #include #include "dosname.h" #include "verify.h" #if REPLACE_FUNC_STAT_DIR # include "pathmax.h" /* The only known systems where REPLACE_FUNC_STAT_DIR is needed also have a constant PATH_MAX. */ # ifndef PATH_MAX # error "Please port this replacement to your platform" # endif #endif /* Store information about NAME into ST. Work around bugs with trailing slashes. Mingw has other bugs (such as st_ino always being 0 on success) which this wrapper does not work around. But at least this implementation provides the ability to emulate fchdir correctly. */ int rpl_stat (char const *name, struct stat *st) { int result = orig_stat (name, st); #if REPLACE_FUNC_STAT_FILE /* Solaris 9 mistakenly succeeds when given a non-directory with a trailing slash. */ if (result == 0 && !S_ISDIR (st->st_mode)) { size_t len = strlen (name); if (ISSLASH (name[len - 1])) { errno = ENOTDIR; return -1; } } #endif /* REPLACE_FUNC_STAT_FILE */ #if REPLACE_FUNC_STAT_DIR if (result == -1 && errno == ENOENT) { /* Due to mingw's oddities, there are some directories (like c:\) where stat() only succeeds with a trailing slash, and other directories (like c:\windows) where stat() only succeeds without a trailing slash. But we want the two to be synonymous, since chdir() manages either style. Likewise, Mingw also reports ENOENT for names longer than PATH_MAX, when we want ENAMETOOLONG, and for stat("file/"), when we want ENOTDIR. Fortunately, mingw PATH_MAX is small enough for stack allocation. */ char fixed_name[PATH_MAX + 1] = {0}; size_t len = strlen (name); bool check_dir = false; verify (PATH_MAX <= 4096); if (PATH_MAX <= len) errno = ENAMETOOLONG; else if (len) { strcpy (fixed_name, name); if (ISSLASH (fixed_name[len - 1])) { check_dir = true; while (len && ISSLASH (fixed_name[len - 1])) fixed_name[--len] = '\0'; if (!len) fixed_name[0] = '/'; } else fixed_name[len++] = '/'; result = orig_stat (fixed_name, st); if (result == 0 && check_dir && !S_ISDIR (st->st_mode)) { result = -1; errno = ENOTDIR; } } } #endif /* REPLACE_FUNC_STAT_DIR */ return result; } gcal-4.1/lib/rawmemchr.valgrind0000664000000000000000000000040313041163523013433 00000000000000# Suppress a valgrind message about use of uninitialized memory in rawmemchr(). # This use is OK because it provides only a speedup. { rawmemchr-value4 Memcheck:Value4 fun:rawmemchr } { rawmemchr-value8 Memcheck:Value8 fun:rawmemchr } gcal-4.1/lib/localcharset.c0000664000000000000000000005005613041163522012536 00000000000000/* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2006, 2008-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Bruno Haible . */ #include /* Specification. */ #include "localcharset.h" #include #include #include #include #include #if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET # define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */ #endif #if defined _WIN32 || defined __WIN32__ # define WINDOWS_NATIVE # include #endif #if defined __EMX__ /* Assume EMX program runs on OS/2, even if compiled under DOS. */ # ifndef OS2 # define OS2 # endif #endif #if !defined WINDOWS_NATIVE # include # if HAVE_LANGINFO_CODESET # include # else # if 0 /* see comment below */ # include # endif # endif # ifdef __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include # endif #elif defined WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN # include #endif #if defined OS2 # define INCL_DOS # include #endif /* For MB_CUR_MAX_L */ #if defined DARWIN7 # include #endif #if ENABLE_RELOCATABLE # include "relocatable.h" #else # define relocate(pathname) (pathname) #endif /* Get LIBDIR. */ #ifndef LIBDIR # include "configmake.h" #endif /* Define O_NOFOLLOW to 0 on platforms where it does not exist. */ #ifndef O_NOFOLLOW # define O_NOFOLLOW 0 #endif #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ /* Native Windows, Cygwin, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') #endif #ifndef DIRECTORY_SEPARATOR # define DIRECTORY_SEPARATOR '/' #endif #ifndef ISSLASH # define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) #endif #if HAVE_DECL_GETC_UNLOCKED # undef getc # define getc getc_unlocked #endif /* The following static variable is declared 'volatile' to avoid a possible multithread problem in the function get_charset_aliases. If we are running in a threaded environment, and if two threads initialize 'charset_aliases' simultaneously, both will produce the same value, and everything will be ok if the two assignments to 'charset_aliases' are atomic. But I don't know what will happen if the two assignments mix. */ #if __STDC__ != 1 # define volatile /* empty */ #endif /* Pointer to the contents of the charset.alias file, if it has already been read, else NULL. Its format is: ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ static const char * volatile charset_aliases; /* Return a pointer to the contents of the charset.alias file. */ static const char * get_charset_aliases (void) { const char *cp; cp = charset_aliases; if (cp == NULL) { #if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined OS2) const char *dir; const char *base = "charset.alias"; char *file_name; /* Make it possible to override the charset.alias location. This is necessary for running the testsuite before "make install". */ dir = getenv ("CHARSETALIASDIR"); if (dir == NULL || dir[0] == '\0') dir = relocate (LIBDIR); /* Concatenate dir and base into freshly allocated file_name. */ { size_t dir_len = strlen (dir); size_t base_len = strlen (base); int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); file_name = (char *) malloc (dir_len + add_slash + base_len + 1); if (file_name != NULL) { memcpy (file_name, dir, dir_len); if (add_slash) file_name[dir_len] = DIRECTORY_SEPARATOR; memcpy (file_name + dir_len + add_slash, base, base_len + 1); } } if (file_name == NULL) /* Out of memory. Treat the file as empty. */ cp = ""; else { int fd; /* Open the file. Reject symbolic links on platforms that support O_NOFOLLOW. This is a security feature. Without it, an attacker could retrieve parts of the contents (namely, the tail of the first line that starts with "* ") of an arbitrary file by placing a symbolic link to that file under the name "charset.alias" in some writable directory and defining the environment variable CHARSETALIASDIR to point to that directory. */ fd = open (file_name, O_RDONLY | (HAVE_WORKING_O_NOFOLLOW ? O_NOFOLLOW : 0)); if (fd < 0) /* File not found. Treat it as empty. */ cp = ""; else { FILE *fp; fp = fdopen (fd, "r"); if (fp == NULL) { /* Out of memory. Treat the file as empty. */ close (fd); cp = ""; } else { /* Parse the file's contents. */ char *res_ptr = NULL; size_t res_size = 0; for (;;) { int c; char buf1[50+1]; char buf2[50+1]; size_t l1, l2; char *old_res_ptr; c = getc (fp); if (c == EOF) break; if (c == '\n' || c == ' ' || c == '\t') continue; if (c == '#') { /* Skip comment, to end of line. */ do c = getc (fp); while (!(c == EOF || c == '\n')); if (c == EOF) break; continue; } ungetc (c, fp); if (fscanf (fp, "%50s %50s", buf1, buf2) < 2) break; l1 = strlen (buf1); l2 = strlen (buf2); old_res_ptr = res_ptr; if (res_size == 0) { res_size = l1 + 1 + l2 + 1; res_ptr = (char *) malloc (res_size + 1); } else { res_size += l1 + 1 + l2 + 1; res_ptr = (char *) realloc (res_ptr, res_size + 1); } if (res_ptr == NULL) { /* Out of memory. */ res_size = 0; free (old_res_ptr); break; } strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); strcpy (res_ptr + res_size - (l2 + 1), buf2); } fclose (fp); if (res_size == 0) cp = ""; else { *(res_ptr + res_size) = '\0'; cp = res_ptr; } } } free (file_name); } #else # if defined DARWIN7 /* To avoid the trouble of installing a file that is shared by many GNU packages -- many packaging systems have problems with this --, simply inline the aliases here. */ cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" "ISO8859-2" "\0" "ISO-8859-2" "\0" "ISO8859-4" "\0" "ISO-8859-4" "\0" "ISO8859-5" "\0" "ISO-8859-5" "\0" "ISO8859-7" "\0" "ISO-8859-7" "\0" "ISO8859-9" "\0" "ISO-8859-9" "\0" "ISO8859-13" "\0" "ISO-8859-13" "\0" "ISO8859-15" "\0" "ISO-8859-15" "\0" "KOI8-R" "\0" "KOI8-R" "\0" "KOI8-U" "\0" "KOI8-U" "\0" "CP866" "\0" "CP866" "\0" "CP949" "\0" "CP949" "\0" "CP1131" "\0" "CP1131" "\0" "CP1251" "\0" "CP1251" "\0" "eucCN" "\0" "GB2312" "\0" "GB2312" "\0" "GB2312" "\0" "eucJP" "\0" "EUC-JP" "\0" "eucKR" "\0" "EUC-KR" "\0" "Big5" "\0" "BIG5" "\0" "Big5HKSCS" "\0" "BIG5-HKSCS" "\0" "GBK" "\0" "GBK" "\0" "GB18030" "\0" "GB18030" "\0" "SJIS" "\0" "SHIFT_JIS" "\0" "ARMSCII-8" "\0" "ARMSCII-8" "\0" "PT154" "\0" "PT154" "\0" /*"ISCII-DEV" "\0" "?" "\0"*/ "*" "\0" "UTF-8" "\0"; # endif # if defined VMS /* To avoid the troubles of an extra file charset.alias_vms in the sources of many GNU packages, simply inline the aliases here. */ /* The list of encodings is taken from the OpenVMS 7.3-1 documentation "Compaq C Run-Time Library Reference Manual for OpenVMS systems" section 10.7 "Handling Different Character Sets". */ cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" "ISO8859-2" "\0" "ISO-8859-2" "\0" "ISO8859-5" "\0" "ISO-8859-5" "\0" "ISO8859-7" "\0" "ISO-8859-7" "\0" "ISO8859-8" "\0" "ISO-8859-8" "\0" "ISO8859-9" "\0" "ISO-8859-9" "\0" /* Japanese */ "eucJP" "\0" "EUC-JP" "\0" "SJIS" "\0" "SHIFT_JIS" "\0" "DECKANJI" "\0" "DEC-KANJI" "\0" "SDECKANJI" "\0" "EUC-JP" "\0" /* Chinese */ "eucTW" "\0" "EUC-TW" "\0" "DECHANYU" "\0" "DEC-HANYU" "\0" "DECHANZI" "\0" "GB2312" "\0" /* Korean */ "DECKOREAN" "\0" "EUC-KR" "\0"; # endif # if defined WINDOWS_NATIVE || defined __CYGWIN__ /* To avoid the troubles of installing a separate file in the same directory as the DLL and of retrieving the DLL's directory at runtime, simply inline the aliases here. */ cp = "CP936" "\0" "GBK" "\0" "CP1361" "\0" "JOHAB" "\0" "CP20127" "\0" "ASCII" "\0" "CP20866" "\0" "KOI8-R" "\0" "CP20936" "\0" "GB2312" "\0" "CP21866" "\0" "KOI8-RU" "\0" "CP28591" "\0" "ISO-8859-1" "\0" "CP28592" "\0" "ISO-8859-2" "\0" "CP28593" "\0" "ISO-8859-3" "\0" "CP28594" "\0" "ISO-8859-4" "\0" "CP28595" "\0" "ISO-8859-5" "\0" "CP28596" "\0" "ISO-8859-6" "\0" "CP28597" "\0" "ISO-8859-7" "\0" "CP28598" "\0" "ISO-8859-8" "\0" "CP28599" "\0" "ISO-8859-9" "\0" "CP28605" "\0" "ISO-8859-15" "\0" "CP38598" "\0" "ISO-8859-8" "\0" "CP51932" "\0" "EUC-JP" "\0" "CP51936" "\0" "GB2312" "\0" "CP51949" "\0" "EUC-KR" "\0" "CP51950" "\0" "EUC-TW" "\0" "CP54936" "\0" "GB18030" "\0" "CP65001" "\0" "UTF-8" "\0"; # endif # if defined OS2 /* To avoid the troubles of installing a separate file in the same directory as the DLL and of retrieving the DLL's directory at runtime, simply inline the aliases here. */ /* The list of encodings is taken from "List of OS/2 Codepages" by Alex Taylor: . See also "IBM Globalization - Code page identifiers": . */ cp = "CP813" "\0" "ISO-8859-7" "\0" "CP878" "\0" "KOI8-R" "\0" "CP819" "\0" "ISO-8859-1" "\0" "CP912" "\0" "ISO-8859-2" "\0" "CP913" "\0" "ISO-8859-3" "\0" "CP914" "\0" "ISO-8859-4" "\0" "CP915" "\0" "ISO-8859-5" "\0" "CP916" "\0" "ISO-8859-8" "\0" "CP920" "\0" "ISO-8859-9" "\0" "CP921" "\0" "ISO-8859-13" "\0" "CP923" "\0" "ISO-8859-15" "\0" "CP954" "\0" "EUC-JP" "\0" "CP964" "\0" "EUC-TW" "\0" "CP970" "\0" "EUC-KR" "\0" "CP1089" "\0" "ISO-8859-6" "\0" "CP1208" "\0" "UTF-8" "\0" "CP1381" "\0" "GB2312" "\0" "CP1386" "\0" "GBK" "\0" "CP3372" "\0" "EUC-JP" "\0"; # endif #endif charset_aliases = cp; } return cp; } /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed in config.charset. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ #ifdef STATIC STATIC #endif const char * locale_charset (void) { const char *codeset; const char *aliases; #if !(defined WINDOWS_NATIVE || defined OS2) # if HAVE_LANGINFO_CODESET /* Most systems support nl_langinfo (CODESET) nowadays. */ codeset = nl_langinfo (CODESET); # ifdef __CYGWIN__ /* Cygwin < 1.7 does not have locales. nl_langinfo (CODESET) always returns "US-ASCII". Return the suffix of the locale name from the environment variables (if present) or the codepage as a number. */ if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) { const char *locale; static char buf[2 + 10 + 1]; locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } if (locale != NULL && locale[0] != '\0') { /* If the locale name contains an encoding after the dot, return it. */ const char *dot = strchr (locale, '.'); if (dot != NULL) { const char *modifier; dot++; /* Look for the possible @... trailer and remove it, if any. */ modifier = strchr (dot, '@'); if (modifier == NULL) return dot; if (modifier - dot < sizeof (buf)) { memcpy (buf, dot, modifier - dot); buf [modifier - dot] = '\0'; return buf; } } } /* The Windows API has a function returning the locale's codepage as a number: GetACP(). This encoding is used by Cygwin, unless the user has set the environment variable CYGWIN=codepage:oem (which very few people do). Output directed to console windows needs to be converted (to GetOEMCP() if the console is using a raster font, or to GetConsoleOutputCP() if it is using a TrueType font). Cygwin does this conversion transparently (see winsup/cygwin/fhandler_console.cc), converting to GetConsoleOutputCP(). This leads to correct results, except when SetConsoleOutputCP has been called and a raster font is in use. */ sprintf (buf, "CP%u", GetACP ()); codeset = buf; } # endif # else /* On old systems which lack it, use setlocale or getenv. */ const char *locale = NULL; /* But most old systems don't have a complete set of locales. Some (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't use setlocale here; it would return "C" when it doesn't support the locale name the user has set. */ # if 0 locale = setlocale (LC_CTYPE, NULL); # endif if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } } /* On some old systems, one used to set locale = "iso8859_1". On others, you set it to "language_COUNTRY.charset". In any case, we resolve it through the charset.alias file. */ codeset = locale; # endif #elif defined WINDOWS_NATIVE static char buf[2 + 10 + 1]; /* The Windows API has a function returning the locale's codepage as a number, but the value doesn't change according to what the 'setlocale' call specified. So we use it as a last resort, in case the string returned by 'setlocale' doesn't specify the codepage. */ char *current_locale = setlocale (LC_ALL, NULL); char *pdot; /* If they set different locales for different categories, 'setlocale' will return a semi-colon separated list of locale values. To make sure we use the correct one, we choose LC_CTYPE. */ if (strchr (current_locale, ';')) current_locale = setlocale (LC_CTYPE, NULL); pdot = strrchr (current_locale, '.'); if (pdot && 2 + strlen (pdot + 1) + 1 <= sizeof (buf)) sprintf (buf, "CP%s", pdot + 1); else { /* The Windows API has a function returning the locale's codepage as a number: GetACP(). When the output goes to a console window, it needs to be provided in GetOEMCP() encoding if the console is using a raster font, or in GetConsoleOutputCP() encoding if it is using a TrueType font. But in GUI programs and for output sent to files and pipes, GetACP() encoding is the best bet. */ sprintf (buf, "CP%u", GetACP ()); } codeset = buf; #elif defined OS2 const char *locale; static char buf[2 + 10 + 1]; ULONG cp[3]; ULONG cplen; codeset = NULL; /* Allow user to override the codeset, as set in the operating system, with standard language environment variables. */ locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } if (locale != NULL && locale[0] != '\0') { /* If the locale name contains an encoding after the dot, return it. */ const char *dot = strchr (locale, '.'); if (dot != NULL) { const char *modifier; dot++; /* Look for the possible @... trailer and remove it, if any. */ modifier = strchr (dot, '@'); if (modifier == NULL) return dot; if (modifier - dot < sizeof (buf)) { memcpy (buf, dot, modifier - dot); buf [modifier - dot] = '\0'; return buf; } } /* For the POSIX locale, don't use the system's codepage. */ if (strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0) codeset = ""; } if (codeset == NULL) { /* OS/2 has a function returning the locale's codepage as a number. */ if (DosQueryCp (sizeof (cp), cp, &cplen)) codeset = ""; else { sprintf (buf, "CP%u", cp[0]); codeset = buf; } } #endif if (codeset == NULL) /* The canonical name cannot be determined. */ codeset = ""; /* Resolve alias. */ for (aliases = get_charset_aliases (); *aliases != '\0'; aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) if (strcmp (codeset, aliases) == 0 || (aliases[0] == '*' && aliases[1] == '\0')) { codeset = aliases + strlen (aliases) + 1; break; } /* Don't return an empty string. GNU libc and GNU libiconv interpret the empty string as denoting "the locale's character encoding", thus GNU libiconv would call this function a second time. */ if (codeset[0] == '\0') codeset = "ASCII"; #ifdef DARWIN7 /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8" (the default codeset) does not work when MB_CUR_MAX is 1. */ if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX_L (uselocale (NULL)) <= 1) codeset = "ASCII"; #endif return codeset; } gcal-4.1/lib/Makefile.am0000664000000000000000000033027413041163527011772 00000000000000## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. # Copyright (C) 2002-2017 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: gnulib-tool --import --local-dir=gl --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl acos alloca asin assert atan atan2 ceil close cond cos dup2 error fclose fcntl fflush filename floor fopen free gettext-h git-version-gen iconv iconv-h ioctl langinfo link list locale log log10 maintainer-makefile malloc mkostemp nl_langinfo open perror pipe putenv realloc regex signal sin sqrt stat strcspn string strings strstr strtol tan time tmpdir unlink write AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = EXTRA_DIST = BUILT_SOURCES = SUFFIXES = MOSTLYCLEANFILES = core *.stackdump MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = AM_CFLAGS = noinst_LIBRARIES += libgnu.a libgnu_a_SOURCES = libgnu_a_LIBADD = $(gl_LIBOBJS) libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) EXTRA_libgnu_a_SOURCES = ## begin gnulib module absolute-header # Use this preprocessor expression to decide whether #include_next works. # Do not rely on a 'configure'-time test for this, since the expression # might appear in an installed header, which is used by some other compiler. HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER) ## end gnulib module absolute-header ## begin gnulib module alloca libgnu_a_LIBADD += @ALLOCA@ libgnu_a_DEPENDENCIES += @ALLOCA@ EXTRA_DIST += alloca.c EXTRA_libgnu_a_SOURCES += alloca.c ## end gnulib module alloca ## begin gnulib module alloca-opt BUILT_SOURCES += $(ALLOCA_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_ALLOCA_H alloca.h: alloca.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/alloca.in.h; \ } > $@-t && \ mv -f $@-t $@ else alloca.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += alloca.h alloca.h-t EXTRA_DIST += alloca.in.h ## end gnulib module alloca-opt ## begin gnulib module binary-io libgnu_a_SOURCES += binary-io.h binary-io.c ## end gnulib module binary-io ## begin gnulib module btowc EXTRA_DIST += btowc.c EXTRA_libgnu_a_SOURCES += btowc.c ## end gnulib module btowc ## begin gnulib module ceil EXTRA_DIST += ceil.c EXTRA_libgnu_a_SOURCES += ceil.c ## end gnulib module ceil ## begin gnulib module cloexec libgnu_a_SOURCES += cloexec.c EXTRA_DIST += cloexec.h ## end gnulib module cloexec ## begin gnulib module close EXTRA_DIST += close.c EXTRA_libgnu_a_SOURCES += close.c ## end gnulib module close ## begin gnulib module cond libgnu_a_SOURCES += glthread/cond.h glthread/cond.c ## end gnulib module cond ## begin gnulib module configmake # Listed in the same order as the GNU makefile conventions, and # provided by autoconf 2.59c+ or 2.70. # The Automake-defined pkg* macros are appended, in the order # listed in the Automake 1.10a+ documentation. configmake.h: Makefile $(AM_V_GEN)rm -f $@-t && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ echo '#define PREFIX "$(prefix)"'; \ echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ echo '#define BINDIR "$(bindir)"'; \ echo '#define SBINDIR "$(sbindir)"'; \ echo '#define LIBEXECDIR "$(libexecdir)"'; \ echo '#define DATAROOTDIR "$(datarootdir)"'; \ echo '#define DATADIR "$(datadir)"'; \ echo '#define SYSCONFDIR "$(sysconfdir)"'; \ echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ echo '#define RUNSTATEDIR "$(runstatedir)"'; \ echo '#define INCLUDEDIR "$(includedir)"'; \ echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ echo '#define DOCDIR "$(docdir)"'; \ echo '#define INFODIR "$(infodir)"'; \ echo '#define HTMLDIR "$(htmldir)"'; \ echo '#define DVIDIR "$(dvidir)"'; \ echo '#define PDFDIR "$(pdfdir)"'; \ echo '#define PSDIR "$(psdir)"'; \ echo '#define LIBDIR "$(libdir)"'; \ echo '#define LISPDIR "$(lispdir)"'; \ echo '#define LOCALEDIR "$(localedir)"'; \ echo '#define MANDIR "$(mandir)"'; \ echo '#define MANEXT "$(manext)"'; \ echo '#define PKGDATADIR "$(pkgdatadir)"'; \ echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ echo '#define PKGLIBDIR "$(pkglibdir)"'; \ echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ } | sed '/""/d' > $@-t && \ mv -f $@-t $@ BUILT_SOURCES += configmake.h CLEANFILES += configmake.h configmake.h-t ## end gnulib module configmake ## begin gnulib module dirname-lgpl libgnu_a_SOURCES += dirname-lgpl.c basename-lgpl.c stripslash.c EXTRA_DIST += dirname.h ## end gnulib module dirname-lgpl ## begin gnulib module dosname EXTRA_DIST += dosname.h ## end gnulib module dosname ## begin gnulib module dup2 EXTRA_DIST += dup2.c EXTRA_libgnu_a_SOURCES += dup2.c ## end gnulib module dup2 ## begin gnulib module errno BUILT_SOURCES += $(ERRNO_H) # We need the following in order to create when the system # doesn't have one that is POSIX compliant. if GL_GENERATE_ERRNO_H errno.h: errno.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ < $(srcdir)/errno.in.h; \ } > $@-t && \ mv $@-t $@ else errno.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += errno.h errno.h-t EXTRA_DIST += errno.in.h ## end gnulib module errno ## begin gnulib module error EXTRA_DIST += error.c error.h EXTRA_libgnu_a_SOURCES += error.c ## end gnulib module error ## begin gnulib module exitfail libgnu_a_SOURCES += exitfail.c EXTRA_DIST += exitfail.h ## end gnulib module exitfail ## begin gnulib module fatal-signal libgnu_a_SOURCES += fatal-signal.h fatal-signal.c ## end gnulib module fatal-signal ## begin gnulib module fclose EXTRA_DIST += fclose.c EXTRA_libgnu_a_SOURCES += fclose.c ## end gnulib module fclose ## begin gnulib module fcntl EXTRA_DIST += fcntl.c EXTRA_libgnu_a_SOURCES += fcntl.c ## end gnulib module fcntl ## begin gnulib module fcntl-h BUILT_SOURCES += fcntl.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \ -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \ -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \ -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/fcntl.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += fcntl.h fcntl.h-t EXTRA_DIST += fcntl.in.h ## end gnulib module fcntl-h ## begin gnulib module fd-hook libgnu_a_SOURCES += fd-hook.c EXTRA_DIST += fd-hook.h ## end gnulib module fd-hook ## begin gnulib module fd-safer-flag libgnu_a_SOURCES += fd-safer-flag.c dup-safer-flag.c ## end gnulib module fd-safer-flag ## begin gnulib module fflush EXTRA_DIST += fflush.c stdio-impl.h EXTRA_libgnu_a_SOURCES += fflush.c ## end gnulib module fflush ## begin gnulib module filename EXTRA_DIST += filename.h ## end gnulib module filename ## begin gnulib module float BUILT_SOURCES += $(FLOAT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_FLOAT_H float.h: float.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \ < $(srcdir)/float.in.h; \ } > $@-t && \ mv $@-t $@ else float.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += float.h float.h-t EXTRA_DIST += float.c float.in.h itold.c EXTRA_libgnu_a_SOURCES += float.c itold.c ## end gnulib module float ## begin gnulib module floor EXTRA_DIST += floor.c EXTRA_libgnu_a_SOURCES += floor.c ## end gnulib module floor ## begin gnulib module fopen EXTRA_DIST += fopen.c EXTRA_libgnu_a_SOURCES += fopen.c ## end gnulib module fopen ## begin gnulib module fpurge EXTRA_DIST += fpurge.c stdio-impl.h EXTRA_libgnu_a_SOURCES += fpurge.c ## end gnulib module fpurge ## begin gnulib module freading libgnu_a_SOURCES += freading.c EXTRA_DIST += freading.h stdio-impl.h ## end gnulib module freading ## begin gnulib module free EXTRA_DIST += free.c EXTRA_libgnu_a_SOURCES += free.c ## end gnulib module free ## begin gnulib module fseek EXTRA_DIST += fseek.c EXTRA_libgnu_a_SOURCES += fseek.c ## end gnulib module fseek ## begin gnulib module fseeko EXTRA_DIST += fseeko.c stdio-impl.h EXTRA_libgnu_a_SOURCES += fseeko.c ## end gnulib module fseeko ## begin gnulib module fstat EXTRA_DIST += fstat.c EXTRA_libgnu_a_SOURCES += fstat.c ## end gnulib module fstat ## begin gnulib module ftell EXTRA_DIST += ftell.c EXTRA_libgnu_a_SOURCES += ftell.c ## end gnulib module ftell ## begin gnulib module ftello EXTRA_DIST += ftello.c stdio-impl.h EXTRA_libgnu_a_SOURCES += ftello.c ## end gnulib module ftello ## begin gnulib module getdtablesize EXTRA_DIST += getdtablesize.c EXTRA_libgnu_a_SOURCES += getdtablesize.c ## end gnulib module getdtablesize ## begin gnulib module getprogname libgnu_a_SOURCES += getprogname.h getprogname.c ## end gnulib module getprogname ## begin gnulib module gettext-h libgnu_a_SOURCES += gettext.h ## end gnulib module gettext-h ## begin gnulib module gettimeofday EXTRA_DIST += gettimeofday.c EXTRA_libgnu_a_SOURCES += gettimeofday.c ## end gnulib module gettimeofday ## begin gnulib module git-version-gen EXTRA_DIST += $(top_srcdir)/build-aux/git-version-gen ## end gnulib module git-version-gen ## begin gnulib module gnumakefile distclean-local: clean-GNUmakefile clean-GNUmakefile: test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile EXTRA_DIST += $(top_srcdir)/GNUmakefile ## end gnulib module gnumakefile ## begin gnulib module hard-locale libgnu_a_SOURCES += hard-locale.c EXTRA_DIST += hard-locale.h ## end gnulib module hard-locale ## begin gnulib module havelib EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath ## end gnulib module havelib ## begin gnulib module iconv-h BUILT_SOURCES += $(ICONV_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_ICONV_H iconv.h: iconv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_ICONV_H''@|$(NEXT_ICONV_H)|g' \ -e 's/@''GNULIB_ICONV''@/$(GNULIB_ICONV)/g' \ -e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \ -e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \ -e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \ -e 's|@''REPLACE_ICONV_UTF''@|$(REPLACE_ICONV_UTF)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/iconv.in.h; \ } > $@-t && \ mv $@-t $@ else iconv.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += iconv.h iconv.h-t EXTRA_DIST += iconv.in.h ## end gnulib module iconv-h ## begin gnulib module intprops EXTRA_DIST += intprops.h ## end gnulib module intprops ## begin gnulib module ioctl EXTRA_DIST += ioctl.c w32sock.h EXTRA_libgnu_a_SOURCES += ioctl.c ## end gnulib module ioctl ## begin gnulib module langinfo BUILT_SOURCES += langinfo.h # We need the following in order to create an empty placeholder for # when the system doesn't have one. langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \ -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \ -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \ -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \ -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \ -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/langinfo.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += langinfo.h langinfo.h-t EXTRA_DIST += langinfo.in.h ## end gnulib module langinfo ## begin gnulib module limits-h BUILT_SOURCES += $(LIMITS_H) # We need the following in order to create when the system # doesn't have one that is compatible with GNU. if GL_GENERATE_LIMITS_H limits.h: limits.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ < $(srcdir)/limits.in.h; \ } > $@-t && \ mv $@-t $@ else limits.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += limits.h limits.h-t EXTRA_DIST += limits.in.h ## end gnulib module limits-h ## begin gnulib module link EXTRA_DIST += link.c EXTRA_libgnu_a_SOURCES += link.c ## end gnulib module link ## begin gnulib module list libgnu_a_SOURCES += gl_list.h gl_list.c ## end gnulib module list ## begin gnulib module localcharset libgnu_a_SOURCES += localcharset.h localcharset.c # We need the following in order to install a simple file in $(libdir) # which is shared with other installed packages. We use a list of referencing # packages so that "make uninstall" will remove the file if and only if it # is not used by another installed package. # On systems with glibc-2.1 or newer, the file is redundant, therefore we # avoid installing it. all-local: charset.alias ref-add.sed ref-del.sed charset_alias = $(DESTDIR)$(libdir)/charset.alias charset_tmp = $(DESTDIR)$(libdir)/charset.tmp install-exec-local: install-exec-localcharset install-exec-localcharset: all-local if test $(GLIBC21) = no; then \ case '$(host_os)' in \ darwin[56]*) \ need_charset_alias=true ;; \ darwin* | cygwin* | mingw* | pw32* | cegcc*) \ need_charset_alias=false ;; \ *) \ need_charset_alias=true ;; \ esac ; \ else \ need_charset_alias=false ; \ fi ; \ if $$need_charset_alias; then \ $(mkinstalldirs) $(DESTDIR)$(libdir) ; \ fi ; \ if test -f $(charset_alias); then \ sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ rm -f $(charset_tmp) ; \ else \ if $$need_charset_alias; then \ sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ rm -f $(charset_tmp) ; \ fi ; \ fi uninstall-local: uninstall-localcharset uninstall-localcharset: all-local if test -f $(charset_alias); then \ sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ if grep '^# Packages using this file: $$' $(charset_tmp) \ > /dev/null; then \ rm -f $(charset_alias); \ else \ $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ fi; \ rm -f $(charset_tmp); \ fi charset.alias: config.charset $(AM_V_GEN)rm -f t-$@ $@ && \ $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \ mv t-$@ $@ SUFFIXES += .sed .sin .sin.sed: $(AM_V_GEN)rm -f t-$@ $@ && \ sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \ mv t-$@ $@ CLEANFILES += charset.alias ref-add.sed ref-del.sed EXTRA_DIST += config.charset ref-add.sin ref-del.sin ## end gnulib module localcharset ## begin gnulib module locale BUILT_SOURCES += locale.h # We need the following in order to create when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/locale.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += locale.h locale.h-t EXTRA_DIST += locale.in.h ## end gnulib module locale ## begin gnulib module localeconv EXTRA_DIST += localeconv.c EXTRA_libgnu_a_SOURCES += localeconv.c ## end gnulib module localeconv ## begin gnulib module lock libgnu_a_SOURCES += glthread/lock.h glthread/lock.c ## end gnulib module lock ## begin gnulib module log EXTRA_DIST += log.c EXTRA_libgnu_a_SOURCES += log.c ## end gnulib module log ## begin gnulib module log10 EXTRA_DIST += log10.c EXTRA_libgnu_a_SOURCES += log10.c ## end gnulib module log10 ## begin gnulib module lseek EXTRA_DIST += lseek.c EXTRA_libgnu_a_SOURCES += lseek.c ## end gnulib module lseek ## begin gnulib module lstat EXTRA_DIST += lstat.c EXTRA_libgnu_a_SOURCES += lstat.c ## end gnulib module lstat ## begin gnulib module maintainer-makefile EXTRA_DIST += $(top_srcdir)/maint.mk ## end gnulib module maintainer-makefile ## begin gnulib module malloc-gnu EXTRA_DIST += malloc.c EXTRA_libgnu_a_SOURCES += malloc.c ## end gnulib module malloc-gnu ## begin gnulib module malloc-posix EXTRA_DIST += malloc.c EXTRA_libgnu_a_SOURCES += malloc.c ## end gnulib module malloc-posix ## begin gnulib module math BUILT_SOURCES += math.h libgnu_a_SOURCES += math.c # We need the following in order to create when the system # doesn't have one that works with the given compiler. math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \ -e 's/@''GNULIB_ACOSF''@/$(GNULIB_ACOSF)/g' \ -e 's/@''GNULIB_ACOSL''@/$(GNULIB_ACOSL)/g' \ -e 's/@''GNULIB_ASINF''@/$(GNULIB_ASINF)/g' \ -e 's/@''GNULIB_ASINL''@/$(GNULIB_ASINL)/g' \ -e 's/@''GNULIB_ATANF''@/$(GNULIB_ATANF)/g' \ -e 's/@''GNULIB_ATANL''@/$(GNULIB_ATANL)/g' \ -e 's/@''GNULIB_ATAN2F''@/$(GNULIB_ATAN2F)/g' \ -e 's/@''GNULIB_CBRT''@/$(GNULIB_CBRT)/g' \ -e 's/@''GNULIB_CBRTF''@/$(GNULIB_CBRTF)/g' \ -e 's/@''GNULIB_CBRTL''@/$(GNULIB_CBRTL)/g' \ -e 's/@''GNULIB_CEIL''@/$(GNULIB_CEIL)/g' \ -e 's/@''GNULIB_CEILF''@/$(GNULIB_CEILF)/g' \ -e 's/@''GNULIB_CEILL''@/$(GNULIB_CEILL)/g' \ -e 's/@''GNULIB_COPYSIGN''@/$(GNULIB_COPYSIGN)/g' \ -e 's/@''GNULIB_COPYSIGNF''@/$(GNULIB_COPYSIGNF)/g' \ -e 's/@''GNULIB_COPYSIGNL''@/$(GNULIB_COPYSIGNL)/g' \ -e 's/@''GNULIB_COSF''@/$(GNULIB_COSF)/g' \ -e 's/@''GNULIB_COSL''@/$(GNULIB_COSL)/g' \ -e 's/@''GNULIB_COSHF''@/$(GNULIB_COSHF)/g' \ -e 's/@''GNULIB_EXPF''@/$(GNULIB_EXPF)/g' \ -e 's/@''GNULIB_EXPL''@/$(GNULIB_EXPL)/g' \ -e 's/@''GNULIB_EXP2''@/$(GNULIB_EXP2)/g' \ -e 's/@''GNULIB_EXP2F''@/$(GNULIB_EXP2F)/g' \ -e 's/@''GNULIB_EXP2L''@/$(GNULIB_EXP2L)/g' \ -e 's/@''GNULIB_EXPM1''@/$(GNULIB_EXPM1)/g' \ -e 's/@''GNULIB_EXPM1F''@/$(GNULIB_EXPM1F)/g' \ -e 's/@''GNULIB_EXPM1L''@/$(GNULIB_EXPM1L)/g' \ -e 's/@''GNULIB_FABSF''@/$(GNULIB_FABSF)/g' \ -e 's/@''GNULIB_FABSL''@/$(GNULIB_FABSL)/g' \ -e 's/@''GNULIB_FLOOR''@/$(GNULIB_FLOOR)/g' \ -e 's/@''GNULIB_FLOORF''@/$(GNULIB_FLOORF)/g' \ -e 's/@''GNULIB_FLOORL''@/$(GNULIB_FLOORL)/g' \ -e 's/@''GNULIB_FMA''@/$(GNULIB_FMA)/g' \ -e 's/@''GNULIB_FMAF''@/$(GNULIB_FMAF)/g' \ -e 's/@''GNULIB_FMAL''@/$(GNULIB_FMAL)/g' \ -e 's/@''GNULIB_FMOD''@/$(GNULIB_FMOD)/g' \ -e 's/@''GNULIB_FMODF''@/$(GNULIB_FMODF)/g' \ -e 's/@''GNULIB_FMODL''@/$(GNULIB_FMODL)/g' \ -e 's/@''GNULIB_FREXPF''@/$(GNULIB_FREXPF)/g' \ -e 's/@''GNULIB_FREXP''@/$(GNULIB_FREXP)/g' \ -e 's/@''GNULIB_FREXPL''@/$(GNULIB_FREXPL)/g' \ -e 's/@''GNULIB_HYPOT''@/$(GNULIB_HYPOT)/g' \ -e 's/@''GNULIB_HYPOTF''@/$(GNULIB_HYPOTF)/g' \ -e 's/@''GNULIB_HYPOTL''@/$(GNULIB_HYPOTL)/g' \ < $(srcdir)/math.in.h | \ sed -e 's/@''GNULIB_ILOGB''@/$(GNULIB_ILOGB)/g' \ -e 's/@''GNULIB_ILOGBF''@/$(GNULIB_ILOGBF)/g' \ -e 's/@''GNULIB_ILOGBL''@/$(GNULIB_ILOGBL)/g' \ -e 's/@''GNULIB_ISFINITE''@/$(GNULIB_ISFINITE)/g' \ -e 's/@''GNULIB_ISINF''@/$(GNULIB_ISINF)/g' \ -e 's/@''GNULIB_ISNAN''@/$(GNULIB_ISNAN)/g' \ -e 's/@''GNULIB_ISNANF''@/$(GNULIB_ISNANF)/g' \ -e 's/@''GNULIB_ISNAND''@/$(GNULIB_ISNAND)/g' \ -e 's/@''GNULIB_ISNANL''@/$(GNULIB_ISNANL)/g' \ -e 's/@''GNULIB_LDEXPF''@/$(GNULIB_LDEXPF)/g' \ -e 's/@''GNULIB_LDEXPL''@/$(GNULIB_LDEXPL)/g' \ -e 's/@''GNULIB_LOG''@/$(GNULIB_LOG)/g' \ -e 's/@''GNULIB_LOGF''@/$(GNULIB_LOGF)/g' \ -e 's/@''GNULIB_LOGL''@/$(GNULIB_LOGL)/g' \ -e 's/@''GNULIB_LOG10''@/$(GNULIB_LOG10)/g' \ -e 's/@''GNULIB_LOG10F''@/$(GNULIB_LOG10F)/g' \ -e 's/@''GNULIB_LOG10L''@/$(GNULIB_LOG10L)/g' \ -e 's/@''GNULIB_LOG1P''@/$(GNULIB_LOG1P)/g' \ -e 's/@''GNULIB_LOG1PF''@/$(GNULIB_LOG1PF)/g' \ -e 's/@''GNULIB_LOG1PL''@/$(GNULIB_LOG1PL)/g' \ -e 's/@''GNULIB_LOG2''@/$(GNULIB_LOG2)/g' \ -e 's/@''GNULIB_LOG2F''@/$(GNULIB_LOG2F)/g' \ -e 's/@''GNULIB_LOG2L''@/$(GNULIB_LOG2L)/g' \ -e 's/@''GNULIB_LOGB''@/$(GNULIB_LOGB)/g' \ -e 's/@''GNULIB_LOGBF''@/$(GNULIB_LOGBF)/g' \ -e 's/@''GNULIB_LOGBL''@/$(GNULIB_LOGBL)/g' \ -e 's/@''GNULIB_MODF''@/$(GNULIB_MODF)/g' \ -e 's/@''GNULIB_MODFF''@/$(GNULIB_MODFF)/g' \ -e 's/@''GNULIB_MODFL''@/$(GNULIB_MODFL)/g' \ -e 's/@''GNULIB_POWF''@/$(GNULIB_POWF)/g' \ -e 's/@''GNULIB_REMAINDER''@/$(GNULIB_REMAINDER)/g' \ -e 's/@''GNULIB_REMAINDERF''@/$(GNULIB_REMAINDERF)/g' \ -e 's/@''GNULIB_REMAINDERL''@/$(GNULIB_REMAINDERL)/g' \ -e 's/@''GNULIB_RINT''@/$(GNULIB_RINT)/g' \ -e 's/@''GNULIB_RINTF''@/$(GNULIB_RINTF)/g' \ -e 's/@''GNULIB_RINTL''@/$(GNULIB_RINTL)/g' \ -e 's/@''GNULIB_ROUND''@/$(GNULIB_ROUND)/g' \ -e 's/@''GNULIB_ROUNDF''@/$(GNULIB_ROUNDF)/g' \ -e 's/@''GNULIB_ROUNDL''@/$(GNULIB_ROUNDL)/g' \ -e 's/@''GNULIB_SIGNBIT''@/$(GNULIB_SIGNBIT)/g' \ -e 's/@''GNULIB_SINF''@/$(GNULIB_SINF)/g' \ -e 's/@''GNULIB_SINL''@/$(GNULIB_SINL)/g' \ -e 's/@''GNULIB_SINHF''@/$(GNULIB_SINHF)/g' \ -e 's/@''GNULIB_SQRTF''@/$(GNULIB_SQRTF)/g' \ -e 's/@''GNULIB_SQRTL''@/$(GNULIB_SQRTL)/g' \ -e 's/@''GNULIB_TANF''@/$(GNULIB_TANF)/g' \ -e 's/@''GNULIB_TANL''@/$(GNULIB_TANL)/g' \ -e 's/@''GNULIB_TANHF''@/$(GNULIB_TANHF)/g' \ -e 's/@''GNULIB_TRUNC''@/$(GNULIB_TRUNC)/g' \ -e 's/@''GNULIB_TRUNCF''@/$(GNULIB_TRUNCF)/g' \ -e 's/@''GNULIB_TRUNCL''@/$(GNULIB_TRUNCL)/g' \ | \ sed -e 's|@''HAVE_ACOSF''@|$(HAVE_ACOSF)|g' \ -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \ -e 's|@''HAVE_ASINF''@|$(HAVE_ASINF)|g' \ -e 's|@''HAVE_ASINL''@|$(HAVE_ASINL)|g' \ -e 's|@''HAVE_ATANF''@|$(HAVE_ATANF)|g' \ -e 's|@''HAVE_ATANL''@|$(HAVE_ATANL)|g' \ -e 's|@''HAVE_ATAN2F''@|$(HAVE_ATAN2F)|g' \ -e 's|@''HAVE_CBRT''@|$(HAVE_CBRT)|g' \ -e 's|@''HAVE_CBRTF''@|$(HAVE_CBRTF)|g' \ -e 's|@''HAVE_CBRTL''@|$(HAVE_CBRTL)|g' \ -e 's|@''HAVE_COPYSIGN''@|$(HAVE_COPYSIGN)|g' \ -e 's|@''HAVE_COPYSIGNL''@|$(HAVE_COPYSIGNL)|g' \ -e 's|@''HAVE_COSF''@|$(HAVE_COSF)|g' \ -e 's|@''HAVE_COSL''@|$(HAVE_COSL)|g' \ -e 's|@''HAVE_COSHF''@|$(HAVE_COSHF)|g' \ -e 's|@''HAVE_EXPF''@|$(HAVE_EXPF)|g' \ -e 's|@''HAVE_EXPL''@|$(HAVE_EXPL)|g' \ -e 's|@''HAVE_EXPM1''@|$(HAVE_EXPM1)|g' \ -e 's|@''HAVE_EXPM1F''@|$(HAVE_EXPM1F)|g' \ -e 's|@''HAVE_FABSF''@|$(HAVE_FABSF)|g' \ -e 's|@''HAVE_FABSL''@|$(HAVE_FABSL)|g' \ -e 's|@''HAVE_FMA''@|$(HAVE_FMA)|g' \ -e 's|@''HAVE_FMAF''@|$(HAVE_FMAF)|g' \ -e 's|@''HAVE_FMAL''@|$(HAVE_FMAL)|g' \ -e 's|@''HAVE_FMODF''@|$(HAVE_FMODF)|g' \ -e 's|@''HAVE_FMODL''@|$(HAVE_FMODL)|g' \ -e 's|@''HAVE_FREXPF''@|$(HAVE_FREXPF)|g' \ -e 's|@''HAVE_HYPOTF''@|$(HAVE_HYPOTF)|g' \ -e 's|@''HAVE_HYPOTL''@|$(HAVE_HYPOTL)|g' \ -e 's|@''HAVE_ILOGB''@|$(HAVE_ILOGB)|g' \ -e 's|@''HAVE_ILOGBF''@|$(HAVE_ILOGBF)|g' \ -e 's|@''HAVE_ILOGBL''@|$(HAVE_ILOGBL)|g' \ -e 's|@''HAVE_ISNANF''@|$(HAVE_ISNANF)|g' \ -e 's|@''HAVE_ISNAND''@|$(HAVE_ISNAND)|g' \ -e 's|@''HAVE_ISNANL''@|$(HAVE_ISNANL)|g' \ -e 's|@''HAVE_LDEXPF''@|$(HAVE_LDEXPF)|g' \ -e 's|@''HAVE_LOGF''@|$(HAVE_LOGF)|g' \ -e 's|@''HAVE_LOGL''@|$(HAVE_LOGL)|g' \ -e 's|@''HAVE_LOG10F''@|$(HAVE_LOG10F)|g' \ -e 's|@''HAVE_LOG10L''@|$(HAVE_LOG10L)|g' \ -e 's|@''HAVE_LOG1P''@|$(HAVE_LOG1P)|g' \ -e 's|@''HAVE_LOG1PF''@|$(HAVE_LOG1PF)|g' \ -e 's|@''HAVE_LOG1PL''@|$(HAVE_LOG1PL)|g' \ -e 's|@''HAVE_LOGBF''@|$(HAVE_LOGBF)|g' \ -e 's|@''HAVE_LOGBL''@|$(HAVE_LOGBL)|g' \ -e 's|@''HAVE_MODFF''@|$(HAVE_MODFF)|g' \ -e 's|@''HAVE_MODFL''@|$(HAVE_MODFL)|g' \ -e 's|@''HAVE_POWF''@|$(HAVE_POWF)|g' \ -e 's|@''HAVE_REMAINDER''@|$(HAVE_REMAINDER)|g' \ -e 's|@''HAVE_REMAINDERF''@|$(HAVE_REMAINDERF)|g' \ -e 's|@''HAVE_RINT''@|$(HAVE_RINT)|g' \ -e 's|@''HAVE_RINTL''@|$(HAVE_RINTL)|g' \ -e 's|@''HAVE_SINF''@|$(HAVE_SINF)|g' \ -e 's|@''HAVE_SINL''@|$(HAVE_SINL)|g' \ -e 's|@''HAVE_SINHF''@|$(HAVE_SINHF)|g' \ -e 's|@''HAVE_SQRTF''@|$(HAVE_SQRTF)|g' \ -e 's|@''HAVE_SQRTL''@|$(HAVE_SQRTL)|g' \ -e 's|@''HAVE_TANF''@|$(HAVE_TANF)|g' \ -e 's|@''HAVE_TANL''@|$(HAVE_TANL)|g' \ -e 's|@''HAVE_TANHF''@|$(HAVE_TANHF)|g' \ -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \ -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \ -e 's|@''HAVE_DECL_ATANL''@|$(HAVE_DECL_ATANL)|g' \ -e 's|@''HAVE_DECL_CBRTF''@|$(HAVE_DECL_CBRTF)|g' \ -e 's|@''HAVE_DECL_CBRTL''@|$(HAVE_DECL_CBRTL)|g' \ -e 's|@''HAVE_DECL_CEILF''@|$(HAVE_DECL_CEILF)|g' \ -e 's|@''HAVE_DECL_CEILL''@|$(HAVE_DECL_CEILL)|g' \ -e 's|@''HAVE_DECL_COPYSIGNF''@|$(HAVE_DECL_COPYSIGNF)|g' \ -e 's|@''HAVE_DECL_COSL''@|$(HAVE_DECL_COSL)|g' \ -e 's|@''HAVE_DECL_EXPL''@|$(HAVE_DECL_EXPL)|g' \ -e 's|@''HAVE_DECL_EXP2''@|$(HAVE_DECL_EXP2)|g' \ -e 's|@''HAVE_DECL_EXP2F''@|$(HAVE_DECL_EXP2F)|g' \ -e 's|@''HAVE_DECL_EXP2L''@|$(HAVE_DECL_EXP2L)|g' \ -e 's|@''HAVE_DECL_EXPM1L''@|$(HAVE_DECL_EXPM1L)|g' \ -e 's|@''HAVE_DECL_FLOORF''@|$(HAVE_DECL_FLOORF)|g' \ -e 's|@''HAVE_DECL_FLOORL''@|$(HAVE_DECL_FLOORL)|g' \ -e 's|@''HAVE_DECL_FREXPL''@|$(HAVE_DECL_FREXPL)|g' \ -e 's|@''HAVE_DECL_LDEXPL''@|$(HAVE_DECL_LDEXPL)|g' \ -e 's|@''HAVE_DECL_LOGL''@|$(HAVE_DECL_LOGL)|g' \ -e 's|@''HAVE_DECL_LOG10L''@|$(HAVE_DECL_LOG10L)|g' \ -e 's|@''HAVE_DECL_LOG2''@|$(HAVE_DECL_LOG2)|g' \ -e 's|@''HAVE_DECL_LOG2F''@|$(HAVE_DECL_LOG2F)|g' \ -e 's|@''HAVE_DECL_LOG2L''@|$(HAVE_DECL_LOG2L)|g' \ -e 's|@''HAVE_DECL_LOGB''@|$(HAVE_DECL_LOGB)|g' \ -e 's|@''HAVE_DECL_REMAINDER''@|$(HAVE_DECL_REMAINDER)|g' \ -e 's|@''HAVE_DECL_REMAINDERL''@|$(HAVE_DECL_REMAINDERL)|g' \ -e 's|@''HAVE_DECL_RINTF''@|$(HAVE_DECL_RINTF)|g' \ -e 's|@''HAVE_DECL_ROUND''@|$(HAVE_DECL_ROUND)|g' \ -e 's|@''HAVE_DECL_ROUNDF''@|$(HAVE_DECL_ROUNDF)|g' \ -e 's|@''HAVE_DECL_ROUNDL''@|$(HAVE_DECL_ROUNDL)|g' \ -e 's|@''HAVE_DECL_SINL''@|$(HAVE_DECL_SINL)|g' \ -e 's|@''HAVE_DECL_SQRTL''@|$(HAVE_DECL_SQRTL)|g' \ -e 's|@''HAVE_DECL_TANL''@|$(HAVE_DECL_TANL)|g' \ -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \ -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \ -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \ | \ sed -e 's|@''REPLACE_ACOSF''@|$(REPLACE_ACOSF)|g' \ -e 's|@''REPLACE_ASINF''@|$(REPLACE_ASINF)|g' \ -e 's|@''REPLACE_ATANF''@|$(REPLACE_ATANF)|g' \ -e 's|@''REPLACE_ATAN2F''@|$(REPLACE_ATAN2F)|g' \ -e 's|@''REPLACE_CBRTF''@|$(REPLACE_CBRTF)|g' \ -e 's|@''REPLACE_CBRTL''@|$(REPLACE_CBRTL)|g' \ -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \ -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \ -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \ -e 's|@''REPLACE_COSF''@|$(REPLACE_COSF)|g' \ -e 's|@''REPLACE_COSHF''@|$(REPLACE_COSHF)|g' \ -e 's|@''REPLACE_EXPF''@|$(REPLACE_EXPF)|g' \ -e 's|@''REPLACE_EXPM1''@|$(REPLACE_EXPM1)|g' \ -e 's|@''REPLACE_EXPM1F''@|$(REPLACE_EXPM1F)|g' \ -e 's|@''REPLACE_EXP2''@|$(REPLACE_EXP2)|g' \ -e 's|@''REPLACE_EXP2L''@|$(REPLACE_EXP2L)|g' \ -e 's|@''REPLACE_FABSL''@|$(REPLACE_FABSL)|g' \ -e 's|@''REPLACE_FLOOR''@|$(REPLACE_FLOOR)|g' \ -e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \ -e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \ -e 's|@''REPLACE_FMA''@|$(REPLACE_FMA)|g' \ -e 's|@''REPLACE_FMAF''@|$(REPLACE_FMAF)|g' \ -e 's|@''REPLACE_FMAL''@|$(REPLACE_FMAL)|g' \ -e 's|@''REPLACE_FMOD''@|$(REPLACE_FMOD)|g' \ -e 's|@''REPLACE_FMODF''@|$(REPLACE_FMODF)|g' \ -e 's|@''REPLACE_FMODL''@|$(REPLACE_FMODL)|g' \ -e 's|@''REPLACE_FREXPF''@|$(REPLACE_FREXPF)|g' \ -e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \ -e 's|@''REPLACE_FREXPL''@|$(REPLACE_FREXPL)|g' \ -e 's|@''REPLACE_HUGE_VAL''@|$(REPLACE_HUGE_VAL)|g' \ -e 's|@''REPLACE_HYPOT''@|$(REPLACE_HYPOT)|g' \ -e 's|@''REPLACE_HYPOTF''@|$(REPLACE_HYPOTF)|g' \ -e 's|@''REPLACE_HYPOTL''@|$(REPLACE_HYPOTL)|g' \ -e 's|@''REPLACE_ILOGB''@|$(REPLACE_ILOGB)|g' \ -e 's|@''REPLACE_ILOGBF''@|$(REPLACE_ILOGBF)|g' \ -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \ -e 's|@''REPLACE_ISINF''@|$(REPLACE_ISINF)|g' \ -e 's|@''REPLACE_ISNAN''@|$(REPLACE_ISNAN)|g' \ -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \ -e 's|@''REPLACE_LDEXPL''@|$(REPLACE_LDEXPL)|g' \ -e 's|@''REPLACE_LOG''@|$(REPLACE_LOG)|g' \ -e 's|@''REPLACE_LOGF''@|$(REPLACE_LOGF)|g' \ -e 's|@''REPLACE_LOGL''@|$(REPLACE_LOGL)|g' \ -e 's|@''REPLACE_LOG10''@|$(REPLACE_LOG10)|g' \ -e 's|@''REPLACE_LOG10F''@|$(REPLACE_LOG10F)|g' \ -e 's|@''REPLACE_LOG10L''@|$(REPLACE_LOG10L)|g' \ -e 's|@''REPLACE_LOG1P''@|$(REPLACE_LOG1P)|g' \ -e 's|@''REPLACE_LOG1PF''@|$(REPLACE_LOG1PF)|g' \ -e 's|@''REPLACE_LOG1PL''@|$(REPLACE_LOG1PL)|g' \ -e 's|@''REPLACE_LOG2''@|$(REPLACE_LOG2)|g' \ -e 's|@''REPLACE_LOG2F''@|$(REPLACE_LOG2F)|g' \ -e 's|@''REPLACE_LOG2L''@|$(REPLACE_LOG2L)|g' \ -e 's|@''REPLACE_LOGB''@|$(REPLACE_LOGB)|g' \ -e 's|@''REPLACE_LOGBF''@|$(REPLACE_LOGBF)|g' \ -e 's|@''REPLACE_LOGBL''@|$(REPLACE_LOGBL)|g' \ -e 's|@''REPLACE_MODF''@|$(REPLACE_MODF)|g' \ -e 's|@''REPLACE_MODFF''@|$(REPLACE_MODFF)|g' \ -e 's|@''REPLACE_MODFL''@|$(REPLACE_MODFL)|g' \ -e 's|@''REPLACE_NAN''@|$(REPLACE_NAN)|g' \ -e 's|@''REPLACE_REMAINDER''@|$(REPLACE_REMAINDER)|g' \ -e 's|@''REPLACE_REMAINDERF''@|$(REPLACE_REMAINDERF)|g' \ -e 's|@''REPLACE_REMAINDERL''@|$(REPLACE_REMAINDERL)|g' \ -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \ -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \ -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \ -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \ -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \ -e 's|@''REPLACE_SINF''@|$(REPLACE_SINF)|g' \ -e 's|@''REPLACE_SINHF''@|$(REPLACE_SINHF)|g' \ -e 's|@''REPLACE_SQRTF''@|$(REPLACE_SQRTF)|g' \ -e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \ -e 's|@''REPLACE_TANF''@|$(REPLACE_TANF)|g' \ -e 's|@''REPLACE_TANHF''@|$(REPLACE_TANHF)|g' \ -e 's|@''REPLACE_TRUNC''@|$(REPLACE_TRUNC)|g' \ -e 's|@''REPLACE_TRUNCF''@|$(REPLACE_TRUNCF)|g' \ -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += math.h math.h-t EXTRA_DIST += math.in.h ## end gnulib module math ## begin gnulib module mbrtowc EXTRA_DIST += mbrtowc.c EXTRA_libgnu_a_SOURCES += mbrtowc.c ## end gnulib module mbrtowc ## begin gnulib module mbsinit EXTRA_DIST += mbsinit.c EXTRA_libgnu_a_SOURCES += mbsinit.c ## end gnulib module mbsinit ## begin gnulib module mbtowc EXTRA_DIST += mbtowc-impl.h mbtowc.c EXTRA_libgnu_a_SOURCES += mbtowc.c ## end gnulib module mbtowc ## begin gnulib module memchr EXTRA_DIST += memchr.c memchr.valgrind EXTRA_libgnu_a_SOURCES += memchr.c ## end gnulib module memchr ## begin gnulib module mkostemp EXTRA_DIST += mkostemp.c EXTRA_libgnu_a_SOURCES += mkostemp.c ## end gnulib module mkostemp ## begin gnulib module msvc-inval EXTRA_DIST += msvc-inval.c msvc-inval.h EXTRA_libgnu_a_SOURCES += msvc-inval.c ## end gnulib module msvc-inval ## begin gnulib module msvc-nothrow EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h EXTRA_libgnu_a_SOURCES += msvc-nothrow.c ## end gnulib module msvc-nothrow ## begin gnulib module nl_langinfo EXTRA_DIST += nl_langinfo.c EXTRA_libgnu_a_SOURCES += nl_langinfo.c ## end gnulib module nl_langinfo ## begin gnulib module open EXTRA_DIST += open.c EXTRA_libgnu_a_SOURCES += open.c ## end gnulib module open ## begin gnulib module pathmax EXTRA_DIST += pathmax.h ## end gnulib module pathmax ## begin gnulib module perror EXTRA_DIST += perror.c EXTRA_libgnu_a_SOURCES += perror.c ## end gnulib module perror ## begin gnulib module pipe EXTRA_DIST += pipe.h ## end gnulib module pipe ## begin gnulib module pipe2 libgnu_a_SOURCES += pipe2.c ## end gnulib module pipe2 ## begin gnulib module pipe2-safer libgnu_a_SOURCES += pipe2-safer.c ## end gnulib module pipe2-safer ## begin gnulib module posix_spawn-internal EXTRA_DIST += spawn_int.h spawni.c EXTRA_libgnu_a_SOURCES += spawni.c ## end gnulib module posix_spawn-internal ## begin gnulib module posix_spawn_file_actions_addclose EXTRA_DIST += spawn_faction_addclose.c spawn_int.h EXTRA_libgnu_a_SOURCES += spawn_faction_addclose.c ## end gnulib module posix_spawn_file_actions_addclose ## begin gnulib module posix_spawn_file_actions_adddup2 EXTRA_DIST += spawn_faction_adddup2.c spawn_int.h EXTRA_libgnu_a_SOURCES += spawn_faction_adddup2.c ## end gnulib module posix_spawn_file_actions_adddup2 ## begin gnulib module posix_spawn_file_actions_addopen EXTRA_DIST += spawn_faction_addopen.c spawn_int.h EXTRA_libgnu_a_SOURCES += spawn_faction_addopen.c ## end gnulib module posix_spawn_file_actions_addopen ## begin gnulib module posix_spawn_file_actions_destroy EXTRA_DIST += spawn_faction_destroy.c EXTRA_libgnu_a_SOURCES += spawn_faction_destroy.c ## end gnulib module posix_spawn_file_actions_destroy ## begin gnulib module posix_spawn_file_actions_init EXTRA_DIST += spawn_faction_init.c spawn_int.h EXTRA_libgnu_a_SOURCES += spawn_faction_init.c ## end gnulib module posix_spawn_file_actions_init ## begin gnulib module posix_spawnattr_destroy EXTRA_DIST += spawnattr_destroy.c EXTRA_libgnu_a_SOURCES += spawnattr_destroy.c ## end gnulib module posix_spawnattr_destroy ## begin gnulib module posix_spawnattr_init EXTRA_DIST += spawnattr_init.c EXTRA_libgnu_a_SOURCES += spawnattr_init.c ## end gnulib module posix_spawnattr_init ## begin gnulib module posix_spawnattr_setflags EXTRA_DIST += spawnattr_setflags.c EXTRA_libgnu_a_SOURCES += spawnattr_setflags.c ## end gnulib module posix_spawnattr_setflags ## begin gnulib module posix_spawnattr_setsigmask EXTRA_DIST += spawnattr_setsigmask.c EXTRA_libgnu_a_SOURCES += spawnattr_setsigmask.c ## end gnulib module posix_spawnattr_setsigmask ## begin gnulib module posix_spawnp EXTRA_DIST += spawnp.c EXTRA_libgnu_a_SOURCES += spawnp.c ## end gnulib module posix_spawnp ## begin gnulib module putenv EXTRA_DIST += putenv.c EXTRA_libgnu_a_SOURCES += putenv.c ## end gnulib module putenv ## begin gnulib module raise EXTRA_DIST += raise.c EXTRA_libgnu_a_SOURCES += raise.c ## end gnulib module raise ## begin gnulib module rawmemchr EXTRA_DIST += rawmemchr.c rawmemchr.valgrind EXTRA_libgnu_a_SOURCES += rawmemchr.c ## end gnulib module rawmemchr ## begin gnulib module realloc-gnu EXTRA_DIST += realloc.c EXTRA_libgnu_a_SOURCES += realloc.c ## end gnulib module realloc-gnu ## begin gnulib module realloc-posix EXTRA_DIST += realloc.c EXTRA_libgnu_a_SOURCES += realloc.c ## end gnulib module realloc-posix ## begin gnulib module regex EXTRA_DIST += regcomp.c regex.c regex.h regex_internal.c regex_internal.h regexec.c EXTRA_libgnu_a_SOURCES += regcomp.c regex.c regex_internal.c regexec.c ## end gnulib module regex ## begin gnulib module sched BUILT_SOURCES += $(SCHED_H) # We need the following in order to create a replacement for when # the system doesn't have one. if GL_GENERATE_SCHED_H sched.h: sched.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_SCHED_H''@|$(HAVE_SCHED_H)|g' \ -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SCHED_H''@|$(NEXT_SCHED_H)|g' \ -e 's|@''HAVE_STRUCT_SCHED_PARAM''@|$(HAVE_STRUCT_SCHED_PARAM)|g' \ < $(srcdir)/sched.in.h; \ } > $@-t && \ mv $@-t $@ else sched.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += sched.h sched.h-t EXTRA_DIST += sched.in.h ## end gnulib module sched ## begin gnulib module secure_getenv EXTRA_DIST += secure_getenv.c EXTRA_libgnu_a_SOURCES += secure_getenv.c ## end gnulib module secure_getenv ## begin gnulib module sigaction libgnu_a_SOURCES += sig-handler.c EXTRA_DIST += sig-handler.h sigaction.c EXTRA_libgnu_a_SOURCES += sigaction.c ## end gnulib module sigaction ## begin gnulib module signal-h BUILT_SOURCES += signal.h # We need the following in order to create when the system # doesn't have a complete one. signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \ -e 's|@''GNULIB_PTHREAD_SIGMASK''@|$(GNULIB_PTHREAD_SIGMASK)|g' \ -e 's|@''GNULIB_RAISE''@|$(GNULIB_RAISE)|g' \ -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \ -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \ -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \ -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \ -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \ -e 's|@''HAVE_RAISE''@|$(HAVE_RAISE)|g' \ -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \ -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \ -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \ -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \ -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \ -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \ -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' \ -e 's|@''REPLACE_RAISE''@|$(REPLACE_RAISE)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/signal.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += signal.h signal.h-t EXTRA_DIST += signal.in.h ## end gnulib module signal-h ## begin gnulib module sigprocmask EXTRA_DIST += sigprocmask.c EXTRA_libgnu_a_SOURCES += sigprocmask.c ## end gnulib module sigprocmask ## begin gnulib module snippet/_Noreturn # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all Makefile.am that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H=$(top_srcdir)/build-aux/snippet/_Noreturn.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/_Noreturn.h ## end gnulib module snippet/_Noreturn ## begin gnulib module snippet/arg-nonnull # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += arg-nonnull.h # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut # off. arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_ARG_NONNULL/,$$p' \ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t ARG_NONNULL_H=arg-nonnull.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/arg-nonnull.h ## end gnulib module snippet/arg-nonnull ## begin gnulib module snippet/c++defs # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += c++defs.h # The c++defs.h that gets inserted into generated .h files is the same as # build-aux/snippet/c++defs.h, except that it has the copyright header cut off. c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/_GL_CXXDEFS/,$$p' \ < $(top_srcdir)/build-aux/snippet/c++defs.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += c++defs.h c++defs.h-t CXXDEFS_H=c++defs.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/c++defs.h ## end gnulib module snippet/c++defs ## begin gnulib module snippet/unused-parameter # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += unused-parameter.h # The unused-parameter.h that gets inserted into generated .h files is the same # as build-aux/snippet/unused-parameter.h, except that it has the copyright # header cut off. unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \ < $(top_srcdir)/build-aux/snippet/unused-parameter.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += unused-parameter.h unused-parameter.h-t UNUSED_PARAMETER_H=unused-parameter.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/unused-parameter.h ## end gnulib module snippet/unused-parameter ## begin gnulib module snippet/warn-on-use BUILT_SOURCES += warn-on-use.h # The warn-on-use.h that gets inserted into generated .h files is the same as # build-aux/snippet/warn-on-use.h, except that it has the copyright header cut # off. warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/^.ifndef/,$$p' \ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t WARN_ON_USE_H=warn-on-use.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h ## end gnulib module snippet/warn-on-use ## begin gnulib module spawn BUILT_SOURCES += spawn.h # We need the following in order to create a replacement for when # the system doesn't have one. spawn.h: spawn.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_SPAWN_H''@|$(HAVE_SPAWN_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SPAWN_H''@|$(NEXT_SPAWN_H)|g' \ -e 's/@''GNULIB_POSIX_SPAWN''@/$(GNULIB_POSIX_SPAWN)/g' \ -e 's/@''GNULIB_POSIX_SPAWNP''@/$(GNULIB_POSIX_SPAWNP)/g' \ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT)/g' \ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE)/g' \ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2)/g' \ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN)/g' \ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_INIT''@/$(GNULIB_POSIX_SPAWNATTR_INIT)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETFLAGS''@/$(GNULIB_POSIX_SPAWNATTR_GETFLAGS)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETFLAGS''@/$(GNULIB_POSIX_SPAWNATTR_SETFLAGS)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETPGROUP''@/$(GNULIB_POSIX_SPAWNATTR_GETPGROUP)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETPGROUP''@/$(GNULIB_POSIX_SPAWNATTR_SETPGROUP)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM''@/$(GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM''@/$(GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY''@/$(GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY''@/$(GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT''@/$(GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT''@/$(GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETSIGMASK''@/$(GNULIB_POSIX_SPAWNATTR_GETSIGMASK)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETSIGMASK''@/$(GNULIB_POSIX_SPAWNATTR_SETSIGMASK)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_DESTROY''@/$(GNULIB_POSIX_SPAWNATTR_DESTROY)/g' \ -e 's|@''HAVE_POSIX_SPAWN''@|$(HAVE_POSIX_SPAWN)|g' \ -e 's|@''HAVE_POSIX_SPAWNATTR_T''@|$(HAVE_POSIX_SPAWNATTR_T)|g' \ -e 's|@''HAVE_POSIX_SPAWN_FILE_ACTIONS_T''@|$(HAVE_POSIX_SPAWN_FILE_ACTIONS_T)|g' \ -e 's|@''REPLACE_POSIX_SPAWN''@|$(REPLACE_POSIX_SPAWN)|g' \ -e 's|@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE''@|$(REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE)|g' \ -e 's|@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2''@|$(REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2)|g' \ -e 's|@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN''@|$(REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/spawn.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += spawn.h spawn.h-t EXTRA_DIST += spawn.in.h ## end gnulib module spawn ## begin gnulib module spawn-pipe libgnu_a_SOURCES += spawn-pipe.h spawn-pipe.c w32spawn.h ## end gnulib module spawn-pipe ## begin gnulib module stat EXTRA_DIST += stat.c EXTRA_libgnu_a_SOURCES += stat.c ## end gnulib module stat ## begin gnulib module stdalign BUILT_SOURCES += $(STDALIGN_H) # We need the following in order to create when the system # doesn't have one that works. if GL_GENERATE_STDALIGN_H stdalign.h: stdalign.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/stdalign.in.h; \ } > $@-t && \ mv $@-t $@ else stdalign.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdalign.h stdalign.h-t EXTRA_DIST += stdalign.in.h ## end gnulib module stdalign ## begin gnulib module stdbool BUILT_SOURCES += $(STDBOOL_H) # We need the following in order to create when the system # doesn't have one that works. if GL_GENERATE_STDBOOL_H stdbool.h: stdbool.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ } > $@-t && \ mv $@-t $@ else stdbool.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdbool.h stdbool.h-t EXTRA_DIST += stdbool.in.h ## end gnulib module stdbool ## begin gnulib module stddef BUILT_SOURCES += $(STDDEF_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDDEF_H stddef.h: stddef.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ < $(srcdir)/stddef.in.h; \ } > $@-t && \ mv $@-t $@ else stddef.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stddef.h stddef.h-t EXTRA_DIST += stddef.in.h ## end gnulib module stddef ## begin gnulib module stdint BUILT_SOURCES += $(STDINT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDINT_H stdint.h: stdint.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ < $(srcdir)/stdint.in.h; \ } > $@-t && \ mv $@-t $@ else stdint.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdint.h stdint.h-t EXTRA_DIST += stdint.in.h ## end gnulib module stdint ## begin gnulib module stdio BUILT_SOURCES += stdio.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \ -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdio.h stdio.h-t EXTRA_DIST += stdio.in.h ## end gnulib module stdio ## begin gnulib module stdlib BUILT_SOURCES += stdlib.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_QSORT_R''@/$(GNULIB_QSORT_R)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdlib.h stdlib.h-t EXTRA_DIST += stdlib.in.h ## end gnulib module stdlib ## begin gnulib module strchrnul EXTRA_DIST += strchrnul.c strchrnul.valgrind EXTRA_libgnu_a_SOURCES += strchrnul.c ## end gnulib module strchrnul ## begin gnulib module strcspn EXTRA_DIST += strcspn.c EXTRA_libgnu_a_SOURCES += strcspn.c ## end gnulib module strcspn ## begin gnulib module strdup-posix EXTRA_DIST += strdup.c EXTRA_libgnu_a_SOURCES += strdup.c ## end gnulib module strdup-posix ## begin gnulib module streq EXTRA_DIST += streq.h ## end gnulib module streq ## begin gnulib module strerror EXTRA_DIST += strerror.c EXTRA_libgnu_a_SOURCES += strerror.c ## end gnulib module strerror ## begin gnulib module strerror-override EXTRA_DIST += strerror-override.c strerror-override.h EXTRA_libgnu_a_SOURCES += strerror-override.c ## end gnulib module strerror-override ## begin gnulib module strerror_r-posix EXTRA_DIST += strerror_r.c EXTRA_libgnu_a_SOURCES += strerror_r.c ## end gnulib module strerror_r-posix ## begin gnulib module string BUILT_SOURCES += string.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += string.h string.h-t EXTRA_DIST += string.in.h ## end gnulib module string ## begin gnulib module strings BUILT_SOURCES += strings.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \ -e 's|@''GNULIB_FFS''@|$(GNULIB_FFS)|g' \ -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \ -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \ -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/strings.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += strings.h strings.h-t EXTRA_DIST += strings.in.h ## end gnulib module strings ## begin gnulib module strstr-simple EXTRA_DIST += str-two-way.h strstr.c EXTRA_libgnu_a_SOURCES += strstr.c ## end gnulib module strstr-simple ## begin gnulib module strtol EXTRA_DIST += strtol.c EXTRA_libgnu_a_SOURCES += strtol.c ## end gnulib module strtol ## begin gnulib module sys_ioctl BUILT_SOURCES += sys/ioctl.h # We need the following in order to create when the system # does not have a complete one. sys/ioctl.h: sys_ioctl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_SYS_IOCTL_H''@|$(HAVE_SYS_IOCTL_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_IOCTL_H''@|$(NEXT_SYS_IOCTL_H)|g' \ -e 's/@''GNULIB_IOCTL''@/$(GNULIB_IOCTL)/g' \ -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e 's|@''REPLACE_IOCTL''@|$(REPLACE_IOCTL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_ioctl.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/ioctl.h sys/ioctl.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_ioctl.in.h ## end gnulib module sys_ioctl ## begin gnulib module sys_socket BUILT_SOURCES += sys/socket.h libgnu_a_SOURCES += sys_socket.c # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_SOCKET''@/$(GNULIB_SOCKET)/g' \ -e 's/@''GNULIB_CONNECT''@/$(GNULIB_CONNECT)/g' \ -e 's/@''GNULIB_ACCEPT''@/$(GNULIB_ACCEPT)/g' \ -e 's/@''GNULIB_BIND''@/$(GNULIB_BIND)/g' \ -e 's/@''GNULIB_GETPEERNAME''@/$(GNULIB_GETPEERNAME)/g' \ -e 's/@''GNULIB_GETSOCKNAME''@/$(GNULIB_GETSOCKNAME)/g' \ -e 's/@''GNULIB_GETSOCKOPT''@/$(GNULIB_GETSOCKOPT)/g' \ -e 's/@''GNULIB_LISTEN''@/$(GNULIB_LISTEN)/g' \ -e 's/@''GNULIB_RECV''@/$(GNULIB_RECV)/g' \ -e 's/@''GNULIB_SEND''@/$(GNULIB_SEND)/g' \ -e 's/@''GNULIB_RECVFROM''@/$(GNULIB_RECVFROM)/g' \ -e 's/@''GNULIB_SENDTO''@/$(GNULIB_SENDTO)/g' \ -e 's/@''GNULIB_SETSOCKOPT''@/$(GNULIB_SETSOCKOPT)/g' \ -e 's/@''GNULIB_SHUTDOWN''@/$(GNULIB_SHUTDOWN)/g' \ -e 's/@''GNULIB_ACCEPT4''@/$(GNULIB_ACCEPT4)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY''@|$(HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY)|g' \ -e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \ -e 's|@''HAVE_ACCEPT4''@|$(HAVE_ACCEPT4)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_socket.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += sys/socket.h sys/socket.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_socket.in.h ## end gnulib module sys_socket ## begin gnulib module sys_stat BUILT_SOURCES += sys/stat.h # We need the following in order to create when the system # has one that is incomplete. sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_stat.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_stat.in.h ## end gnulib module sys_stat ## begin gnulib module sys_time BUILT_SOURCES += sys/time.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \ -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \ -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \ -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \ -e 's/@''REPLACE_STRUCT_TIMEVAL''@/$(REPLACE_STRUCT_TIMEVAL)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_time.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/time.h sys/time.h-t EXTRA_DIST += sys_time.in.h ## end gnulib module sys_time ## begin gnulib module sys_types BUILT_SOURCES += sys/types.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/types.h sys/types.h-t EXTRA_DIST += sys_types.in.h ## end gnulib module sys_types ## begin gnulib module sys_uio BUILT_SOURCES += sys/uio.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/uio.h: sys_uio.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \ -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \ < $(srcdir)/sys_uio.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += sys/uio.h sys/uio.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_uio.in.h ## end gnulib module sys_uio ## begin gnulib module sys_wait BUILT_SOURCES += sys/wait.h # We need the following in order to create when the system # has one that is incomplete. sys/wait.h: sys_wait.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_WAIT_H''@|$(NEXT_SYS_WAIT_H)|g' \ -e 's/@''GNULIB_WAITPID''@/$(GNULIB_WAITPID)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_wait.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/wait.h sys/wait.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_wait.in.h ## end gnulib module sys_wait ## begin gnulib module tempname libgnu_a_SOURCES += tempname.c EXTRA_DIST += tempname.h ## end gnulib module tempname ## begin gnulib module threadlib libgnu_a_SOURCES += glthread/threadlib.c EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath ## end gnulib module threadlib ## begin gnulib module time BUILT_SOURCES += time.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \ -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's/@''GNULIB_TIME_RZ''@/$(GNULIB_TIME_RZ)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \ -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/time.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += time.h time.h-t EXTRA_DIST += time.in.h ## end gnulib module time ## begin gnulib module tmpdir libgnu_a_SOURCES += tmpdir.h tmpdir.c ## end gnulib module tmpdir ## begin gnulib module unistd BUILT_SOURCES += unistd.h libgnu_a_SOURCES += unistd.c # We need the following in order to create an empty placeholder for # when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += unistd.h unistd.h-t EXTRA_DIST += unistd.in.h ## end gnulib module unistd ## begin gnulib module unistd-safer libgnu_a_SOURCES += dup-safer.c fd-safer.c pipe-safer.c EXTRA_DIST += unistd--.h unistd-safer.h ## end gnulib module unistd-safer ## begin gnulib module unlink EXTRA_DIST += unlink.c EXTRA_libgnu_a_SOURCES += unlink.c ## end gnulib module unlink ## begin gnulib module useless-if-before-free EXTRA_DIST += $(top_srcdir)/build-aux/useless-if-before-free ## end gnulib module useless-if-before-free ## begin gnulib module vc-list-files EXTRA_DIST += $(top_srcdir)/build-aux/vc-list-files ## end gnulib module vc-list-files ## begin gnulib module verify EXTRA_DIST += verify.h ## end gnulib module verify ## begin gnulib module wait-process libgnu_a_SOURCES += wait-process.h wait-process.c ## end gnulib module wait-process ## begin gnulib module waitpid EXTRA_DIST += waitpid.c EXTRA_libgnu_a_SOURCES += waitpid.c ## end gnulib module waitpid ## begin gnulib module wchar BUILT_SOURCES += wchar.h # We need the following in order to create when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += wchar.h wchar.h-t EXTRA_DIST += wchar.in.h ## end gnulib module wchar ## begin gnulib module wcrtomb EXTRA_DIST += wcrtomb.c EXTRA_libgnu_a_SOURCES += wcrtomb.c ## end gnulib module wcrtomb ## begin gnulib module wctype-h BUILT_SOURCES += wctype.h libgnu_a_SOURCES += wctype-h.c # We need the following in order to create when the system # doesn't have one that works with the given compiler. wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \ -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \ -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \ -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \ -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/wctype.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += wctype.h wctype.h-t EXTRA_DIST += wctype.in.h ## end gnulib module wctype-h ## begin gnulib module write EXTRA_DIST += write.c EXTRA_libgnu_a_SOURCES += write.c ## end gnulib module write ## begin gnulib module xalloc libgnu_a_SOURCES += xmalloc.c EXTRA_DIST += xalloc.h ## end gnulib module xalloc ## begin gnulib module xalloc-die libgnu_a_SOURCES += xalloc-die.c ## end gnulib module xalloc-die ## begin gnulib module xalloc-oversized EXTRA_DIST += xalloc-oversized.h ## end gnulib module xalloc-oversized mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : gcal-4.1/lib/pipe-safer.c0000664000000000000000000000265613041163523012131 00000000000000/* Invoke pipe, but avoid some glitches. Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Jim Meyering. */ #include #include "unistd-safer.h" #include #include /* Like pipe, but ensure that neither of the file descriptors is STDIN_FILENO, STDOUT_FILENO, or STDERR_FILENO. Fail with ENOSYS on platforms that lack pipe. */ int pipe_safer (int fd[2]) { #if HAVE_PIPE if (pipe (fd) == 0) { int i; for (i = 0; i < 2; i++) { fd[i] = fd_safer (fd[i]); if (fd[i] < 0) { int e = errno; close (fd[1 - i]); errno = e; return -1; } } return 0; } #else errno = ENOSYS; #endif return -1; } gcal-4.1/lib/sys_stat.in.h0000664000000000000000000004767113041163523012367 00000000000000/* Provide a more complete sys/stat header file. Copyright (C) 2005-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ /* This file is supposed to be used on platforms where is incomplete. It is intended to provide definitions and prototypes needed by an application. Start with what the system provides. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_sys_stat_h /* Special invocation convention. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_STAT_H /* Get nlink_t. May also define off_t to a 64-bit type on native Windows. */ #include /* Get struct timespec. */ #include /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ #ifndef _@GUARD_PREFIX@_SYS_STAT_H #define _@GUARD_PREFIX@_SYS_STAT_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Before doing "#define mkdir rpl_mkdir" below, we need to include all headers that may declare mkdir(). Native Windows platforms declare mkdir in and/or , not in . */ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include /* mingw32, mingw64 */ # include /* mingw64, MSVC 9 */ #endif /* Native Windows platforms declare umask() in . */ #if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include #endif /* Large File Support on native Windows. */ #if @WINDOWS_64_BIT_ST_SIZE@ # define stat _stati64 #endif #ifndef S_IFIFO # ifdef _S_IFIFO # define S_IFIFO _S_IFIFO # endif #endif #ifndef S_IFMT # define S_IFMT 0170000 #endif #if STAT_MACROS_BROKEN # undef S_ISBLK # undef S_ISCHR # undef S_ISDIR # undef S_ISFIFO # undef S_ISLNK # undef S_ISNAM # undef S_ISMPB # undef S_ISMPC # undef S_ISNWK # undef S_ISREG # undef S_ISSOCK #endif #ifndef S_ISBLK # ifdef S_IFBLK # define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) # else # define S_ISBLK(m) 0 # endif #endif #ifndef S_ISCHR # ifdef S_IFCHR # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) # else # define S_ISCHR(m) 0 # endif #endif #ifndef S_ISDIR # ifdef S_IFDIR # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) # else # define S_ISDIR(m) 0 # endif #endif #ifndef S_ISDOOR /* Solaris 2.5 and up */ # define S_ISDOOR(m) 0 #endif #ifndef S_ISFIFO # ifdef S_IFIFO # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) # else # define S_ISFIFO(m) 0 # endif #endif #ifndef S_ISLNK # ifdef S_IFLNK # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) # else # define S_ISLNK(m) 0 # endif #endif #ifndef S_ISMPB /* V7 */ # ifdef S_IFMPB # define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) # define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) # else # define S_ISMPB(m) 0 # define S_ISMPC(m) 0 # endif #endif #ifndef S_ISMPX /* AIX */ # define S_ISMPX(m) 0 #endif #ifndef S_ISNAM /* Xenix */ # ifdef S_IFNAM # define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) # else # define S_ISNAM(m) 0 # endif #endif #ifndef S_ISNWK /* HP/UX */ # ifdef S_IFNWK # define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) # else # define S_ISNWK(m) 0 # endif #endif #ifndef S_ISPORT /* Solaris 10 and up */ # define S_ISPORT(m) 0 #endif #ifndef S_ISREG # ifdef S_IFREG # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) # else # define S_ISREG(m) 0 # endif #endif #ifndef S_ISSOCK # ifdef S_IFSOCK # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) # else # define S_ISSOCK(m) 0 # endif #endif #ifndef S_TYPEISMQ # define S_TYPEISMQ(p) 0 #endif #ifndef S_TYPEISTMO # define S_TYPEISTMO(p) 0 #endif #ifndef S_TYPEISSEM # ifdef S_INSEM # define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM) # else # define S_TYPEISSEM(p) 0 # endif #endif #ifndef S_TYPEISSHM # ifdef S_INSHD # define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD) # else # define S_TYPEISSHM(p) 0 # endif #endif /* high performance ("contiguous data") */ #ifndef S_ISCTG # define S_ISCTG(p) 0 #endif /* Cray DMF (data migration facility): off line, with data */ #ifndef S_ISOFD # define S_ISOFD(p) 0 #endif /* Cray DMF (data migration facility): off line, with no data */ #ifndef S_ISOFL # define S_ISOFL(p) 0 #endif /* 4.4BSD whiteout */ #ifndef S_ISWHT # define S_ISWHT(m) 0 #endif /* If any of the following are undefined, define them to their de facto standard values. */ #if !S_ISUID # define S_ISUID 04000 #endif #if !S_ISGID # define S_ISGID 02000 #endif /* S_ISVTX is a common extension to POSIX. */ #ifndef S_ISVTX # define S_ISVTX 01000 #endif #if !S_IRUSR && S_IREAD # define S_IRUSR S_IREAD #endif #if !S_IRUSR # define S_IRUSR 00400 #endif #if !S_IRGRP # define S_IRGRP (S_IRUSR >> 3) #endif #if !S_IROTH # define S_IROTH (S_IRUSR >> 6) #endif #if !S_IWUSR && S_IWRITE # define S_IWUSR S_IWRITE #endif #if !S_IWUSR # define S_IWUSR 00200 #endif #if !S_IWGRP # define S_IWGRP (S_IWUSR >> 3) #endif #if !S_IWOTH # define S_IWOTH (S_IWUSR >> 6) #endif #if !S_IXUSR && S_IEXEC # define S_IXUSR S_IEXEC #endif #if !S_IXUSR # define S_IXUSR 00100 #endif #if !S_IXGRP # define S_IXGRP (S_IXUSR >> 3) #endif #if !S_IXOTH # define S_IXOTH (S_IXUSR >> 6) #endif #if !S_IRWXU # define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) #endif #if !S_IRWXG # define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) #endif #if !S_IRWXO # define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) #endif /* S_IXUGO is a common extension to POSIX. */ #if !S_IXUGO # define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) #endif #ifndef S_IRWXUGO # define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) #endif /* Macros for futimens and utimensat. */ #ifndef UTIME_NOW # define UTIME_NOW (-1) # define UTIME_OMIT (-2) #endif #if @GNULIB_FCHMODAT@ # if !@HAVE_FCHMODAT@ _GL_FUNCDECL_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag)); _GL_CXXALIASWARN (fchmodat); #elif defined GNULIB_POSIXCHECK # undef fchmodat # if HAVE_RAW_DECL_FCHMODAT _GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FSTAT@ # if @REPLACE_FSTAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fstat # define fstat rpl_fstat # endif _GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf)); # else _GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf)); # endif _GL_CXXALIASWARN (fstat); #elif @WINDOWS_64_BIT_ST_SIZE@ /* Above, we define stat to _stati64. */ # define fstat _fstati64 #elif defined GNULIB_POSIXCHECK # undef fstat # if HAVE_RAW_DECL_FSTAT _GL_WARN_ON_USE (fstat, "fstat has portability problems - " "use gnulib module fstat for portability"); # endif #endif #if @GNULIB_FSTATAT@ # if @REPLACE_FSTATAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fstatat # define fstatat rpl_fstatat # endif _GL_FUNCDECL_RPL (fstatat, int, (int fd, char const *name, struct stat *st, int flags) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (fstatat, int, (int fd, char const *name, struct stat *st, int flags)); # else # if !@HAVE_FSTATAT@ _GL_FUNCDECL_SYS (fstatat, int, (int fd, char const *name, struct stat *st, int flags) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (fstatat, int, (int fd, char const *name, struct stat *st, int flags)); # endif _GL_CXXALIASWARN (fstatat); #elif defined GNULIB_POSIXCHECK # undef fstatat # if HAVE_RAW_DECL_FSTATAT _GL_WARN_ON_USE (fstatat, "fstatat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FUTIMENS@ /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens implementation relies on futimesat, which on Solaris 10 makes an invocation to futimens that is meant to invoke the libc's futimens(), not gnulib's futimens(). */ # if @REPLACE_FUTIMENS@ || (!@HAVE_FUTIMENS@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef futimens # define futimens rpl_futimens # endif _GL_FUNCDECL_RPL (futimens, int, (int fd, struct timespec const times[2])); _GL_CXXALIAS_RPL (futimens, int, (int fd, struct timespec const times[2])); # else # if !@HAVE_FUTIMENS@ _GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif _GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif # if @HAVE_FUTIMENS@ _GL_CXXALIASWARN (futimens); # endif #elif defined GNULIB_POSIXCHECK # undef futimens # if HAVE_RAW_DECL_FUTIMENS _GL_WARN_ON_USE (futimens, "futimens is not portable - " "use gnulib module futimens for portability"); # endif #endif #if @GNULIB_LCHMOD@ /* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME denotes a symbolic link. */ # if !@HAVE_LCHMOD@ /* The lchmod replacement follows symbolic links. Callers should take this into account; lchmod should be applied only to arguments that are known to not be symbolic links. On hosts that lack lchmod, this can lead to race conditions between the check and the invocation of lchmod, but we know of no workarounds that are reliable in general. You might try requesting support for lchmod from your operating system supplier. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lchmod chmod # endif /* Need to cast, because on mingw, the second parameter of chmod is int mode. */ _GL_CXXALIAS_RPL_CAST_1 (lchmod, chmod, int, (const char *filename, mode_t mode)); # else # if 0 /* assume already declared */ _GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode)); # endif # if @HAVE_LCHMOD@ _GL_CXXALIASWARN (lchmod); # endif #elif defined GNULIB_POSIXCHECK # undef lchmod # if HAVE_RAW_DECL_LCHMOD _GL_WARN_ON_USE (lchmod, "lchmod is unportable - " "use gnulib module lchmod for portability"); # endif #endif #if @GNULIB_LSTAT@ # if ! @HAVE_LSTAT@ /* mingw does not support symlinks, therefore it does not have lstat. But without links, stat does just fine. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lstat stat # endif _GL_CXXALIAS_RPL_1 (lstat, stat, int, (const char *name, struct stat *buf)); # elif @REPLACE_LSTAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lstat # define lstat rpl_lstat # endif _GL_FUNCDECL_RPL (lstat, int, (const char *name, struct stat *buf) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (lstat, int, (const char *name, struct stat *buf)); # else _GL_CXXALIAS_SYS (lstat, int, (const char *name, struct stat *buf)); # endif # if @HAVE_LSTAT@ _GL_CXXALIASWARN (lstat); # endif #elif defined GNULIB_POSIXCHECK # undef lstat # if HAVE_RAW_DECL_LSTAT _GL_WARN_ON_USE (lstat, "lstat is unportable - " "use gnulib module lstat for portability"); # endif #endif #if @REPLACE_MKDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkdir # define mkdir rpl_mkdir # endif _GL_FUNCDECL_RPL (mkdir, int, (char const *name, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); #else /* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. Additionally, it declares _mkdir (and depending on compile flags, an alias mkdir), only in the nonstandard includes and , which are included above. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # if !GNULIB_defined_rpl_mkdir static int rpl_mkdir (char const *name, mode_t mode) { return _mkdir (name); } # define GNULIB_defined_rpl_mkdir 1 # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mkdir rpl_mkdir # endif _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); # else _GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); # endif #endif _GL_CXXALIASWARN (mkdir); #if @GNULIB_MKDIRAT@ # if !@HAVE_MKDIRAT@ _GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode)); _GL_CXXALIASWARN (mkdirat); #elif defined GNULIB_POSIXCHECK # undef mkdirat # if HAVE_RAW_DECL_MKDIRAT _GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_MKFIFO@ # if @REPLACE_MKFIFO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkfifo # define mkfifo rpl_mkfifo # endif _GL_FUNCDECL_RPL (mkfifo, int, (char const *file, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkfifo, int, (char const *file, mode_t mode)); # else # if !@HAVE_MKFIFO@ _GL_FUNCDECL_SYS (mkfifo, int, (char const *file, mode_t mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode)); # endif _GL_CXXALIASWARN (mkfifo); #elif defined GNULIB_POSIXCHECK # undef mkfifo # if HAVE_RAW_DECL_MKFIFO _GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - " "use gnulib module mkfifo for portability"); # endif #endif #if @GNULIB_MKFIFOAT@ # if !@HAVE_MKFIFOAT@ _GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)); _GL_CXXALIASWARN (mkfifoat); #elif defined GNULIB_POSIXCHECK # undef mkfifoat # if HAVE_RAW_DECL_MKFIFOAT _GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - " "use gnulib module mkfifoat for portability"); # endif #endif #if @GNULIB_MKNOD@ # if @REPLACE_MKNOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mknod # define mknod rpl_mknod # endif _GL_FUNCDECL_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev)); # else # if !@HAVE_MKNOD@ _GL_FUNCDECL_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on OSF/1 5.1, the third parameter is '...'. */ _GL_CXXALIAS_SYS_CAST (mknod, int, (char const *file, mode_t mode, dev_t dev)); # endif _GL_CXXALIASWARN (mknod); #elif defined GNULIB_POSIXCHECK # undef mknod # if HAVE_RAW_DECL_MKNOD _GL_WARN_ON_USE (mknod, "mknod is not portable - " "use gnulib module mknod for portability"); # endif #endif #if @GNULIB_MKNODAT@ # if !@HAVE_MKNODAT@ _GL_FUNCDECL_SYS (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev)); _GL_CXXALIASWARN (mknodat); #elif defined GNULIB_POSIXCHECK # undef mknodat # if HAVE_RAW_DECL_MKNODAT _GL_WARN_ON_USE (mknodat, "mknodat is not portable - " "use gnulib module mkfifoat for portability"); # endif #endif #if @GNULIB_STAT@ # if @REPLACE_STAT@ /* We can't use the object-like #define stat rpl_stat, because of struct stat. This means that rpl_stat will not be used if the user does (stat)(a,b). Oh well. */ # if defined _AIX && defined stat && defined _LARGE_FILES /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, so we have to replace stat64() instead of stat(). */ # undef stat64 # define stat64(name, st) rpl_stat (name, st) # elif @WINDOWS_64_BIT_ST_SIZE@ /* Above, we define stat to _stati64. */ # if defined __MINGW32__ && defined _stati64 # ifndef _USE_32BIT_TIME_T /* The system headers define _stati64 to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # elif defined _MSC_VER && defined _stati64 # ifdef _USE_32BIT_TIME_T /* The system headers define _stati64 to _stat32i64. */ # undef _stat32i64 # define _stat32i64(name, st) rpl_stat (name, st) # else /* The system headers define _stati64 to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # else # undef _stati64 # define _stati64(name, st) rpl_stat (name, st) # endif # elif defined __MINGW32__ && defined stat # ifdef _USE_32BIT_TIME_T /* The system headers define stat to _stat32i64. */ # undef _stat32i64 # define _stat32i64(name, st) rpl_stat (name, st) # else /* The system headers define stat to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # elif defined _MSC_VER && defined stat # ifdef _USE_32BIT_TIME_T /* The system headers define stat to _stat32. */ # undef _stat32 # define _stat32(name, st) rpl_stat (name, st) # else /* The system headers define stat to _stat64i32. */ # undef _stat64i32 # define _stat64i32(name, st) rpl_stat (name, st) # endif # else /* !(_AIX ||__MINGW32__ || _MSC_VER) */ # undef stat # define stat(name, st) rpl_stat (name, st) # endif /* !_LARGE_FILES */ _GL_EXTERN_C int stat (const char *name, struct stat *buf) _GL_ARG_NONNULL ((1, 2)); # endif #elif defined GNULIB_POSIXCHECK # undef stat # if HAVE_RAW_DECL_STAT _GL_WARN_ON_USE (stat, "stat is unportable - " "use gnulib module stat for portability"); # endif #endif #if @GNULIB_UTIMENSAT@ /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat implementation relies on futimesat, which on Solaris 10 makes an invocation to utimensat that is meant to invoke the libc's utimensat(), not gnulib's utimensat(). */ # if @REPLACE_UTIMENSAT@ || (!@HAVE_UTIMENSAT@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef utimensat # define utimensat rpl_utimensat # endif _GL_FUNCDECL_RPL (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # else # if !@HAVE_UTIMENSAT@ _GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # endif # if @HAVE_UTIMENSAT@ _GL_CXXALIASWARN (utimensat); # endif #elif defined GNULIB_POSIXCHECK # undef utimensat # if HAVE_RAW_DECL_UTIMENSAT _GL_WARN_ON_USE (utimensat, "utimensat is not portable - " "use gnulib module utimensat for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif gcal-4.1/lib/string.in.h0000664000000000000000000011734413041163523012017 00000000000000/* A GNU-like . Copyright (C) 1995-1996, 2001-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _GL_ALREADY_INCLUDING_STRING_H /* Special invocation convention: - On OS X/NetBSD we have a sequence of nested includes -> -> "string.h" In this situation system _chk variants due to -D_FORTIFY_SOURCE might be used after any replacements defined here. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STRING_H #define _GL_ALREADY_INCLUDING_STRING_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #undef _GL_ALREADY_INCLUDING_STRING_H #ifndef _@GUARD_PREFIX@_STRING_H #define _@GUARD_PREFIX@_STRING_H /* NetBSD 5.0 mis-defines NULL. */ #include /* MirBSD defines mbslen as a macro. */ #if @GNULIB_MBSLEN@ && defined __MirBSD__ # include #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* NetBSD 5.0 declares strsignal in , not in . */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ && ! defined __GLIBC__ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSL@ # if !@HAVE_FFSL@ _GL_FUNCDECL_SYS (ffsl, int, (long int i)); # endif _GL_CXXALIAS_SYS (ffsl, int, (long int i)); _GL_CXXALIASWARN (ffsl); #elif defined GNULIB_POSIXCHECK # undef ffsl # if HAVE_RAW_DECL_FFSL _GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); # endif #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSLL@ # if !@HAVE_FFSLL@ _GL_FUNCDECL_SYS (ffsll, int, (long long int i)); # endif _GL_CXXALIAS_SYS (ffsll, int, (long long int i)); _GL_CXXALIASWARN (ffsll); #elif defined GNULIB_POSIXCHECK # undef ffsll # if HAVE_RAW_DECL_FFSLL _GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); # endif #endif /* Return the first instance of C within N bytes of S, or NULL. */ #if @GNULIB_MEMCHR@ # if @REPLACE_MEMCHR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memchr rpl_memchr # endif _GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); # else # if ! @HAVE_MEMCHR@ _GL_FUNCDECL_SYS (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const void * std::memchr (const void *, int, size_t); } extern "C++" { void * std::memchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memchr, void *, (void const *__s, int __c, size_t __n), void const *, (void const *__s, int __c, size_t __n)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n)); _GL_CXXALIASWARN1 (memchr, void const *, (void const *__s, int __c, size_t __n)); # else _GL_CXXALIASWARN (memchr); # endif #elif defined GNULIB_POSIXCHECK # undef memchr /* Assume memchr is always declared. */ _GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " "use gnulib module memchr for portability" ); #endif /* Return the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_MEMMEM@ # if @REPLACE_MEMMEM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memmem rpl_memmem # endif _GL_FUNCDECL_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # else # if ! @HAVE_DECL_MEMMEM@ _GL_FUNCDECL_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # endif _GL_CXXALIASWARN (memmem); #elif defined GNULIB_POSIXCHECK # undef memmem # if HAVE_RAW_DECL_MEMMEM _GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " "use gnulib module memmem-simple for portability, " "and module memmem for speed" ); # endif #endif /* Copy N bytes of SRC to DEST, return pointer to bytes after the last written byte. */ #if @GNULIB_MEMPCPY@ # if ! @HAVE_MEMPCPY@ _GL_FUNCDECL_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n)); _GL_CXXALIASWARN (mempcpy); #elif defined GNULIB_POSIXCHECK # undef mempcpy # if HAVE_RAW_DECL_MEMPCPY _GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " "use gnulib module mempcpy for portability"); # endif #endif /* Search backwards through a block for a byte (specified as an int). */ #if @GNULIB_MEMRCHR@ # if ! @HAVE_DECL_MEMRCHR@ _GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::memrchr (const void *, int, size_t); } extern "C++" { void * std::memrchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memrchr, void *, (void const *, int, size_t), void const *, (void const *, int, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t)); _GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t)); # else _GL_CXXALIASWARN (memrchr); # endif #elif defined GNULIB_POSIXCHECK # undef memrchr # if HAVE_RAW_DECL_MEMRCHR _GL_WARN_ON_USE (memrchr, "memrchr is unportable - " "use gnulib module memrchr for portability"); # endif #endif /* Find the first occurrence of C in S. More efficient than memchr(S,C,N), at the expense of undefined behavior if C does not occur within N bytes. */ #if @GNULIB_RAWMEMCHR@ # if ! @HAVE_RAWMEMCHR@ _GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::rawmemchr (const void *, int); } extern "C++" { void * std::rawmemchr (void *, int); } */ _GL_CXXALIAS_SYS_CAST2 (rawmemchr, void *, (void const *__s, int __c_in), void const *, (void const *__s, int __c_in)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in)); _GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in)); # else _GL_CXXALIASWARN (rawmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef rawmemchr # if HAVE_RAW_DECL_RAWMEMCHR _GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " "use gnulib module rawmemchr for portability"); # endif #endif /* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ #if @GNULIB_STPCPY@ # if ! @HAVE_STPCPY@ _GL_FUNCDECL_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src)); _GL_CXXALIASWARN (stpcpy); #elif defined GNULIB_POSIXCHECK # undef stpcpy # if HAVE_RAW_DECL_STPCPY _GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " "use gnulib module stpcpy for portability"); # endif #endif /* Copy no more than N bytes of SRC to DST, returning a pointer past the last non-NUL byte written into DST. */ #if @GNULIB_STPNCPY@ # if @REPLACE_STPNCPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef stpncpy # define stpncpy rpl_stpncpy # endif _GL_FUNCDECL_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # else # if ! @HAVE_STPNCPY@ _GL_FUNCDECL_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # endif _GL_CXXALIASWARN (stpncpy); #elif defined GNULIB_POSIXCHECK # undef stpncpy # if HAVE_RAW_DECL_STPNCPY _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " "use gnulib module stpncpy for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strchr /* Assume strchr is always declared. */ _GL_WARN_ON_USE (strchr, "strchr cannot work correctly on character strings " "in some multibyte locales - " "use mbschr if you care about internationalization"); #endif /* Find the first occurrence of C in S or the final NUL byte. */ #if @GNULIB_STRCHRNUL@ # if @REPLACE_STRCHRNUL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strchrnul rpl_strchrnul # endif _GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strchrnul, char *, (const char *str, int ch)); # else # if ! @HAVE_STRCHRNUL@ _GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * std::strchrnul (const char *, int); } extern "C++" { char * std::strchrnul (char *, int); } */ _GL_CXXALIAS_SYS_CAST2 (strchrnul, char *, (char const *__s, int __c_in), char const *, (char const *__s, int __c_in)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in)); _GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in)); # else _GL_CXXALIASWARN (strchrnul); # endif #elif defined GNULIB_POSIXCHECK # undef strchrnul # if HAVE_RAW_DECL_STRCHRNUL _GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " "use gnulib module strchrnul for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_STRDUP@ # if @REPLACE_STRDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup rpl_strdup # endif _GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup /* strdup exists as a function and as a macro. Get rid of the macro. */ # undef strdup # endif # if !(@HAVE_DECL_STRDUP@ || defined strdup) _GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); # endif _GL_CXXALIASWARN (strdup); #elif defined GNULIB_POSIXCHECK # undef strdup # if HAVE_RAW_DECL_STRDUP _GL_WARN_ON_USE (strdup, "strdup is unportable - " "use gnulib module strdup for portability"); # endif #endif /* Append no more than N characters from SRC onto DEST. */ #if @GNULIB_STRNCAT@ # if @REPLACE_STRNCAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strncat # define strncat rpl_strncat # endif _GL_FUNCDECL_RPL (strncat, char *, (char *dest, const char *src, size_t n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strncat, char *, (char *dest, const char *src, size_t n)); # else _GL_CXXALIAS_SYS (strncat, char *, (char *dest, const char *src, size_t n)); # endif _GL_CXXALIASWARN (strncat); #elif defined GNULIB_POSIXCHECK # undef strncat # if HAVE_RAW_DECL_STRNCAT _GL_WARN_ON_USE (strncat, "strncat is unportable - " "use gnulib module strncat for portability"); # endif #endif /* Return a newly allocated copy of at most N bytes of STRING. */ #if @GNULIB_STRNDUP@ # if @REPLACE_STRNDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strndup # define strndup rpl_strndup # endif _GL_FUNCDECL_RPL (strndup, char *, (char const *__s, size_t __n) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n)); # else # if ! @HAVE_DECL_STRNDUP@ _GL_FUNCDECL_SYS (strndup, char *, (char const *__s, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strndup, char *, (char const *__s, size_t __n)); # endif _GL_CXXALIASWARN (strndup); #elif defined GNULIB_POSIXCHECK # undef strndup # if HAVE_RAW_DECL_STRNDUP _GL_WARN_ON_USE (strndup, "strndup is unportable - " "use gnulib module strndup for portability"); # endif #endif /* Find the length (number of bytes) of STRING, but scan at most MAXLEN bytes. If no '\0' terminator is found in that many bytes, return MAXLEN. */ #if @GNULIB_STRNLEN@ # if @REPLACE_STRNLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strnlen # define strnlen rpl_strnlen # endif _GL_FUNCDECL_RPL (strnlen, size_t, (char const *__s, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strnlen, size_t, (char const *__s, size_t __maxlen)); # else # if ! @HAVE_DECL_STRNLEN@ _GL_FUNCDECL_SYS (strnlen, size_t, (char const *__s, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen)); # endif _GL_CXXALIASWARN (strnlen); #elif defined GNULIB_POSIXCHECK # undef strnlen # if HAVE_RAW_DECL_STRNLEN _GL_WARN_ON_USE (strnlen, "strnlen is unportable - " "use gnulib module strnlen for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strcspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strcspn /* Assume strcspn is always declared. */ _GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " "in multibyte locales - " "use mbscspn if you care about internationalization"); #endif /* Find the first occurrence in S of any character in ACCEPT. */ #if @GNULIB_STRPBRK@ # if ! @HAVE_STRPBRK@ _GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const char * strpbrk (const char *, const char *); } extern "C++" { char * strpbrk (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strpbrk, char *, (char const *__s, char const *__accept), const char *, (char const *__s, char const *__accept)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept)); _GL_CXXALIASWARN1 (strpbrk, char const *, (char const *__s, char const *__accept)); # else _GL_CXXALIASWARN (strpbrk); # endif # if defined GNULIB_POSIXCHECK /* strpbrk() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strpbrk _GL_WARN_ON_USE (strpbrk, "strpbrk cannot work correctly on character strings " "in multibyte locales - " "use mbspbrk if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strpbrk # if HAVE_RAW_DECL_STRPBRK _GL_WARN_ON_USE (strpbrk, "strpbrk is unportable - " "use gnulib module strpbrk for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it cannot work with multibyte strings. */ # undef strspn /* Assume strspn is always declared. */ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " "in multibyte locales - " "use mbsspn if you care about internationalization"); #endif #if defined GNULIB_POSIXCHECK /* strrchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strrchr /* Assume strrchr is always declared. */ _GL_WARN_ON_USE (strrchr, "strrchr cannot work correctly on character strings " "in some multibyte locales - " "use mbsrchr if you care about internationalization"); #endif /* Search the next delimiter (char listed in DELIM) starting at *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next char after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of strtok() that is multithread-safe and supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strtok_r(). */ #if @GNULIB_STRSEP@ # if ! @HAVE_STRSEP@ _GL_FUNCDECL_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim)); _GL_CXXALIASWARN (strsep); # if defined GNULIB_POSIXCHECK # undef strsep _GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " "in multibyte locales - " "use mbssep if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strsep # if HAVE_RAW_DECL_STRSEP _GL_WARN_ON_USE (strsep, "strsep is unportable - " "use gnulib module strsep for portability"); # endif #endif #if @GNULIB_STRSTR@ # if @REPLACE_STRSTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strstr rpl_strstr # endif _GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); # else /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strstr (const char *, const char *); } extern "C++" { char * strstr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strstr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strstr, const char *, (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strstr); # endif #elif defined GNULIB_POSIXCHECK /* strstr() does not work with multibyte strings if the locale encoding is different from UTF-8: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strstr /* Assume strstr is always declared. */ _GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " "work correctly on character strings in most " "multibyte locales - " "use mbsstr if you care about internationalization, " "or use strstr if you care about speed"); #endif /* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive comparison. */ #if @GNULIB_STRCASESTR@ # if @REPLACE_STRCASESTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strcasestr rpl_strcasestr # endif _GL_FUNCDECL_RPL (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strcasestr, char *, (const char *haystack, const char *needle)); # else # if ! @HAVE_STRCASESTR@ _GL_FUNCDECL_SYS (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strcasestr (const char *, const char *); } extern "C++" { char * strcasestr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strcasestr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strcasestr, const char *, (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strcasestr); # endif #elif defined GNULIB_POSIXCHECK /* strcasestr() does not work with multibyte strings: It is a glibc extension, and glibc implements it only for unibyte locales. */ # undef strcasestr # if HAVE_RAW_DECL_STRCASESTR _GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " "strings in multibyte locales - " "use mbscasestr if you care about " "internationalization, or use c-strcasestr if you want " "a locale independent function"); # endif #endif /* Parse S into tokens separated by characters in DELIM. If S is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = strtok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" This is a variant of strtok() that is multithread-safe. For the POSIX documentation for this function, see: http://www.opengroup.org/susv3xsh/strtok.html Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strsep(). */ #if @GNULIB_STRTOK_R@ # if @REPLACE_STRTOK_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtok_r # define strtok_r rpl_strtok_r # endif _GL_FUNCDECL_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # else # if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK # undef strtok_r # endif # if ! @HAVE_DECL_STRTOK_R@ _GL_FUNCDECL_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # endif _GL_CXXALIASWARN (strtok_r); # if defined GNULIB_POSIXCHECK _GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " "strings in multibyte locales - " "use mbstok_r if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strtok_r # if HAVE_RAW_DECL_STRTOK_R _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " "use gnulib module strtok_r for portability"); # endif #endif /* The following functions are not specified by POSIX. They are gnulib extensions. */ #if @GNULIB_MBSLEN@ /* Return the number of multibyte characters in the character string STRING. This considers multibyte characters, unlike strlen, which counts bytes. */ # ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ # undef mbslen # endif # if @HAVE_MBSLEN@ /* AIX, OSF/1, MirBSD define mbslen already in libc. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbslen rpl_mbslen # endif _GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); # else _GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); # endif _GL_CXXALIASWARN (mbslen); #endif #if @GNULIB_MBSNLEN@ /* Return the number of multibyte characters in the character string starting at STRING and ending at STRING + LEN. */ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1)); #endif #if @GNULIB_MBSCHR@ /* Locate the first single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbschr rpl_mbschr /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbschr); #endif #if @GNULIB_MBSRCHR@ /* Locate the last single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strrchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux || defined __INTERIX # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbsrchr rpl_mbsrchr /* avoid collision with system function */ # endif _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbsrchr); #endif #if @GNULIB_MBSSTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. Unlike strstr(), this function works correctly in multibyte locales with encodings different from UTF-8. */ _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASECMP@ /* Compare the character strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function may, in multibyte locales, return 0 for strings of different lengths! Unlike strcasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSNCASECMP@ /* Compare the initial segment of the character string S1 consisting of at most N characters with the initial segment of the character string S2 consisting of at most N characters, ignoring case, returning less than, equal to or greater than zero if the initial segment of S1 is lexicographically less than, equal to or greater than the initial segment of S2. Note: This function may, in multibyte locales, return 0 for initial segments of different lengths! Unlike strncasecmp(), this function works correctly in multibyte locales. But beware that N is not a byte count but a character count! */ _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPCASECMP@ /* Compare the initial segment of the character string STRING consisting of at most mbslen (PREFIX) characters with the character string PREFIX, ignoring case. If the two match, return a pointer to the first byte after this prefix in STRING. Otherwise, return NULL. Note: This function may, in multibyte locales, return non-NULL if STRING is of smaller length than PREFIX! Unlike strncasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASESTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK, using case-insensitive comparison. Note: This function may, in multibyte locales, return success even if strlen (haystack) < strlen (needle) ! Unlike strcasestr(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCSPN@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strcspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPBRK@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the pointer to it, or NULL if none exists. Unlike strpbrk(), this function works correctly in multibyte locales. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); # else _GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); # endif _GL_CXXALIASWARN (mbspbrk); #endif #if @GNULIB_MBSSPN@ /* Find the first occurrence in the character string STRING of any character not in the character string REJECT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSSEP@ /* Search the next delimiter (multibyte character listed in the character string DELIM) starting at the character string *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next multibyte character after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of mbstok_r() that supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbstok_r(). */ _GL_EXTERN_C char * mbssep (char **stringp, const char *delim) _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSTOK_R@ /* Parse the character string STRING into tokens separated by characters in the character string DELIM. If STRING is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = mbstok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbssep(). */ _GL_EXTERN_C char * mbstok_r (char *string, const char *delim, char **save_ptr) _GL_ARG_NONNULL ((2, 3)); #endif /* Map any int, typically from errno, into an error message. */ #if @GNULIB_STRERROR@ # if @REPLACE_STRERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror # define strerror rpl_strerror # endif _GL_FUNCDECL_RPL (strerror, char *, (int)); _GL_CXXALIAS_RPL (strerror, char *, (int)); # else _GL_CXXALIAS_SYS (strerror, char *, (int)); # endif _GL_CXXALIASWARN (strerror); #elif defined GNULIB_POSIXCHECK # undef strerror /* Assume strerror is always declared. */ _GL_WARN_ON_USE (strerror, "strerror is unportable - " "use gnulib module strerror to guarantee non-NULL result"); #endif /* Map any int, typically from errno, into an error message. Multithread-safe. Uses the POSIX declaration, not the glibc declaration. */ #if @GNULIB_STRERROR_R@ # if @REPLACE_STRERROR_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror_r # define strerror_r rpl_strerror_r # endif _GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)); # else # if !@HAVE_DECL_STRERROR_R@ _GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); # endif # if @HAVE_DECL_STRERROR_R@ _GL_CXXALIASWARN (strerror_r); # endif #elif defined GNULIB_POSIXCHECK # undef strerror_r # if HAVE_RAW_DECL_STRERROR_R _GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " "use gnulib module strerror_r-posix for portability"); # endif #endif #if @GNULIB_STRSIGNAL@ # if @REPLACE_STRSIGNAL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strsignal rpl_strsignal # endif _GL_FUNCDECL_RPL (strsignal, char *, (int __sig)); _GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); # else # if ! @HAVE_DECL_STRSIGNAL@ _GL_FUNCDECL_SYS (strsignal, char *, (int __sig)); # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is 'const char *'. */ _GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); # endif _GL_CXXALIASWARN (strsignal); #elif defined GNULIB_POSIXCHECK # undef strsignal # if HAVE_RAW_DECL_STRSIGNAL _GL_WARN_ON_USE (strsignal, "strsignal is unportable - " "use gnulib module strsignal for portability"); # endif #endif #if @GNULIB_STRVERSCMP@ # if !@HAVE_STRVERSCMP@ _GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); _GL_CXXALIASWARN (strverscmp); #elif defined GNULIB_POSIXCHECK # undef strverscmp # if HAVE_RAW_DECL_STRVERSCMP _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " "use gnulib module strverscmp for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */ #endif gcal-4.1/lib/xalloc.h0000664000000000000000000001715113041163523011361 00000000000000/* xalloc.h -- malloc with out-of-memory checking Copyright (C) 1990-2000, 2003-2004, 2006-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef XALLOC_H_ #define XALLOC_H_ #include #include #include "xalloc-oversized.h" #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef XALLOC_INLINE # define XALLOC_INLINE _GL_INLINE #endif #ifdef __cplusplus extern "C" { #endif #if __GNUC__ >= 3 # define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) #else # define _GL_ATTRIBUTE_MALLOC #endif #if ! defined __clang__ && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) # define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) #else # define _GL_ATTRIBUTE_ALLOC_SIZE(args) #endif /* This function is always triggered when memory is exhausted. It must be defined by the application, either explicitly or by using gnulib's xalloc-die module. This is the function to call when one wants the program to die because of a memory allocation failure. */ extern _Noreturn void xalloc_die (void); void *xmalloc (size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); void *xzalloc (size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); void *xcalloc (size_t n, size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)); void *xrealloc (void *p, size_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2)); void *x2realloc (void *p, size_t *pn); void *xmemdup (void const *p, size_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2)); char *xstrdup (char const *str) _GL_ATTRIBUTE_MALLOC; /* In the following macros, T must be an elementary or structure/union or typedef'ed type, or a pointer to such a type. To apply one of the following macros to a function pointer or array type, you need to typedef it first and use the typedef name. */ /* Allocate an object of type T dynamically, with error checking. */ /* extern t *XMALLOC (typename t); */ #define XMALLOC(t) ((t *) xmalloc (sizeof (t))) /* Allocate memory for N elements of type T, with error checking. */ /* extern t *XNMALLOC (size_t n, typename t); */ #define XNMALLOC(n, t) \ ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t)))) /* Allocate an object of type T dynamically, with error checking, and zero it. */ /* extern t *XZALLOC (typename t); */ #define XZALLOC(t) ((t *) xzalloc (sizeof (t))) /* Allocate memory for N elements of type T, with error checking, and zero it. */ /* extern t *XCALLOC (size_t n, typename t); */ #define XCALLOC(n, t) \ ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t)))) /* Allocate an array of N objects, each with S bytes of memory, dynamically, with error checking. S must be nonzero. */ XALLOC_INLINE void *xnmalloc (size_t n, size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)); XALLOC_INLINE void * xnmalloc (size_t n, size_t s) { if (xalloc_oversized (n, s)) xalloc_die (); return xmalloc (n * s); } /* Change the size of an allocated block of memory P to an array of N objects each of S bytes, with error checking. S must be nonzero. */ XALLOC_INLINE void *xnrealloc (void *p, size_t n, size_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)); XALLOC_INLINE void * xnrealloc (void *p, size_t n, size_t s) { if (xalloc_oversized (n, s)) xalloc_die (); return xrealloc (p, n * s); } /* If P is null, allocate a block of at least *PN such objects; otherwise, reallocate P so that it contains more than *PN objects each of S bytes. S must be nonzero. Set *PN to the new number of objects, and return the pointer to the new block. *PN is never set to zero, and the returned pointer is never null. Repeated reallocations are guaranteed to make progress, either by allocating an initial block with a nonzero size, or by allocating a larger block. In the following implementation, nonzero sizes are increased by a factor of approximately 1.5 so that repeated reallocations have O(N) overall cost rather than O(N**2) cost, but the specification for this function does not guarantee that rate. Here is an example of use: int *p = NULL; size_t used = 0; size_t allocated = 0; void append_int (int value) { if (used == allocated) p = x2nrealloc (p, &allocated, sizeof *p); p[used++] = value; } This causes x2nrealloc to allocate a block of some nonzero size the first time it is called. To have finer-grained control over the initial size, set *PN to a nonzero value before calling this function with P == NULL. For example: int *p = NULL; size_t used = 0; size_t allocated = 0; size_t allocated1 = 1000; void append_int (int value) { if (used == allocated) { p = x2nrealloc (p, &allocated1, sizeof *p); allocated = allocated1; } p[used++] = value; } */ XALLOC_INLINE void * x2nrealloc (void *p, size_t *pn, size_t s) { size_t n = *pn; if (! p) { if (! n) { /* The approximate size to use for initial small allocation requests, when the invoking code specifies an old size of zero. This is the largest "small" request for the GNU C library malloc. */ enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; n = DEFAULT_MXFAST / s; n += !n; } } else { /* Set N = floor (1.5 * N) + 1 so that progress is made even if N == 0. Check for overflow, so that N * S stays in both ptrdiff_t and size_t range. The check may be slightly conservative, but an exact check isn't worth the trouble. */ if ((PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX) / 3 * 2 / s <= n) xalloc_die (); n += n / 2 + 1; } *pn = n; return xrealloc (p, n * s); } /* Return a pointer to a new buffer of N bytes. This is like xmalloc, except it returns char *. */ XALLOC_INLINE char *xcharalloc (size_t n) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)); XALLOC_INLINE char * xcharalloc (size_t n) { return XNMALLOC (n, char); } #ifdef __cplusplus } /* C++ does not allow conversions from void * to other pointer types without a cast. Use templates to work around the problem when possible. */ template inline T * xrealloc (T *p, size_t s) { return (T *) xrealloc ((void *) p, s); } template inline T * xnrealloc (T *p, size_t n, size_t s) { return (T *) xnrealloc ((void *) p, n, s); } template inline T * x2realloc (T *p, size_t *pn) { return (T *) x2realloc ((void *) p, pn); } template inline T * x2nrealloc (T *p, size_t *pn, size_t s) { return (T *) x2nrealloc ((void *) p, pn, s); } template inline T * xmemdup (T const *p, size_t s) { return (T *) xmemdup ((void const *) p, s); } #endif _GL_INLINE_HEADER_END #endif /* !XALLOC_H_ */ gcal-4.1/lib/xalloc-die.c0000664000000000000000000000243413041163523012111 00000000000000/* Report a memory allocation failure and exit. Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include "xalloc.h" #include #include "error.h" #include "exitfail.h" #include "gettext.h" #define _(msgid) gettext (msgid) void xalloc_die (void) { error (exit_failure, 0, "%s", _("memory exhausted")); /* _Noreturn cannot be given to error, since it may return if its first argument is 0. To help compilers understand the xalloc_die does not return, call abort. Also, the abort is a safety feature if exit_failure is 0 (which shouldn't happen). */ abort (); } gcal-4.1/lib/itold.c0000664000000000000000000000201013041163522011170 00000000000000/* Replacement for 'int' to 'long double' conversion routine. Copyright (C) 2011-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include void _Qp_itoq (long double *result, int a) { /* Convert from 'int' to 'double', then from 'double' to 'long double'. */ *result = (double) a; } gcal-4.1/lib/sig-handler.c0000664000000000000000000000013213041163523012256 00000000000000#include #define SIG_HANDLER_INLINE _GL_EXTERN_INLINE #include "sig-handler.h" gcal-4.1/lib/mbrtowc.c0000664000000000000000000002523513041163522011550 00000000000000/* Convert multibyte character to wide character. Copyright (C) 1999-2002, 2005-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #if C_LOCALE_MAYBE_EILSEQ # include "hard-locale.h" # include #endif #if GNULIB_defined_mbstate_t /* Implement mbrtowc() on top of mbtowc(). */ # include # include # include "localcharset.h" # include "streq.h" # include "verify.h" verify (sizeof (mbstate_t) >= 4); static char internal_state[4]; size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) { char *pstate = (char *)ps; if (s == NULL) { pwc = NULL; s = ""; n = 1; } if (n == 0) return (size_t)(-2); /* Here n > 0. */ if (pstate == NULL) pstate = internal_state; { size_t nstate = pstate[0]; char buf[4]; const char *p; size_t m; switch (nstate) { case 0: p = s; m = n; break; case 3: buf[2] = pstate[3]; /*FALLTHROUGH*/ case 2: buf[1] = pstate[2]; /*FALLTHROUGH*/ case 1: buf[0] = pstate[1]; p = buf; m = nstate; buf[m++] = s[0]; if (n >= 2 && m < 4) { buf[m++] = s[1]; if (n >= 3 && m < 4) buf[m++] = s[2]; } break; default: errno = EINVAL; return (size_t)(-1); } /* Here m > 0. */ # if __GLIBC__ || defined __UCLIBC__ /* Work around bug */ mbtowc (NULL, NULL, 0); # endif { int res = mbtowc (pwc, p, m); if (res >= 0) { if (pwc != NULL && ((*pwc == 0) != (res == 0))) abort (); if (nstate >= (res > 0 ? res : 1)) abort (); res -= nstate; pstate[0] = 0; return res; } /* mbtowc does not distinguish between invalid and incomplete multibyte sequences. But mbrtowc needs to make this distinction. There are two possible approaches: - Use iconv() and its return value. - Use built-in knowledge about the possible encodings. Given the low quality of implementation of iconv() on the systems that lack mbrtowc(), we use the second approach. The possible encodings are: - 8-bit encodings, - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS, - UTF-8. Use specialized code for each. */ if (m >= 4 || m >= MB_CUR_MAX) goto invalid; /* Here MB_CUR_MAX > 1 and 0 < m < 4. */ { const char *encoding = locale_charset (); if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) { /* Cf. unistr/u8-mblen.c. */ unsigned char c = (unsigned char) p[0]; if (c >= 0xc2) { if (c < 0xe0) { if (m == 1) goto incomplete; } else if (c < 0xf0) { if (m == 1) goto incomplete; if (m == 2) { unsigned char c2 = (unsigned char) p[1]; if ((c2 ^ 0x80) < 0x40 && (c >= 0xe1 || c2 >= 0xa0) && (c != 0xed || c2 < 0xa0)) goto incomplete; } } else if (c <= 0xf4) { if (m == 1) goto incomplete; else /* m == 2 || m == 3 */ { unsigned char c2 = (unsigned char) p[1]; if ((c2 ^ 0x80) < 0x40 && (c >= 0xf1 || c2 >= 0x90) && (c < 0xf4 || (c == 0xf4 && c2 < 0x90))) { if (m == 2) goto incomplete; else /* m == 3 */ { unsigned char c3 = (unsigned char) p[2]; if ((c3 ^ 0x80) < 0x40) goto incomplete; } } } } } goto invalid; } /* As a reference for this code, you can use the GNU libiconv implementation. Look for uses of the RET_TOOFEW macro. */ if (STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)) { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f) goto incomplete; } if (m == 2) { unsigned char c = (unsigned char) p[0]; if (c == 0x8f) { unsigned char c2 = (unsigned char) p[1]; if (c2 >= 0xa1 && c2 < 0xff) goto incomplete; } } goto invalid; } if (STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)) { if (m == 1) { unsigned char c = (unsigned char) p[0]; if (c >= 0xa1 && c < 0xff) goto incomplete; } goto invalid; } if (STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)) { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0xa1 && c < 0xff) || c == 0x8e) goto incomplete; } else /* m == 2 || m == 3 */ { unsigned char c = (unsigned char) p[0]; if (c == 0x8e) goto incomplete; } goto invalid; } if (STREQ_OPT (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0)) { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe)) goto incomplete; } else /* m == 2 || m == 3 */ { unsigned char c = (unsigned char) p[0]; if (c >= 0x90 && c <= 0xe3) { unsigned char c2 = (unsigned char) p[1]; if (c2 >= 0x30 && c2 <= 0x39) { if (m == 2) goto incomplete; else /* m == 3 */ { unsigned char c3 = (unsigned char) p[2]; if (c3 >= 0x81 && c3 <= 0xfe) goto incomplete; } } } } goto invalid; } if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0)) { if (m == 1) { unsigned char c = (unsigned char) p[0]; if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea) || (c >= 0xf0 && c <= 0xf9)) goto incomplete; } goto invalid; } /* An unknown multibyte encoding. */ goto incomplete; } incomplete: { size_t k = nstate; /* Here 0 <= k < m < 4. */ pstate[++k] = s[0]; if (k < m) { pstate[++k] = s[1]; if (k < m) pstate[++k] = s[2]; } if (k != m) abort (); } pstate[0] = m; return (size_t)(-2); invalid: errno = EILSEQ; /* The conversion state is undefined, says POSIX. */ return (size_t)(-1); } } } #else /* Override the system's mbrtowc() function. */ # undef mbrtowc size_t rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) { size_t ret; wchar_t wc; # if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG || MBRTOWC_EMPTY_INPUT_BUG if (s == NULL) { pwc = NULL; s = ""; n = 1; } # endif # if MBRTOWC_EMPTY_INPUT_BUG if (n == 0) return (size_t) -2; # endif if (! pwc) pwc = &wc; # if MBRTOWC_RETVAL_BUG { static mbstate_t internal_state; /* Override mbrtowc's internal state. We cannot call mbsinit() on the hidden internal state, but we can call it on our variable. */ if (ps == NULL) ps = &internal_state; if (!mbsinit (ps)) { /* Parse the rest of the multibyte character byte for byte. */ size_t count = 0; for (; n > 0; s++, n--) { ret = mbrtowc (&wc, s, 1, ps); if (ret == (size_t)(-1)) return (size_t)(-1); count++; if (ret != (size_t)(-2)) { /* The multibyte character has been completed. */ *pwc = wc; return (wc == 0 ? 0 : count); } } return (size_t)(-2); } } # endif ret = mbrtowc (pwc, s, n, ps); # if MBRTOWC_NUL_RETVAL_BUG if (ret < (size_t) -2 && !*pwc) return 0; # endif # if C_LOCALE_MAYBE_EILSEQ if ((size_t) -2 <= ret && n != 0 && ! hard_locale (LC_CTYPE)) { unsigned char uc = *s; *pwc = uc; return 1; } # endif return ret; } #endif gcal-4.1/lib/signal.in.h0000664000000000000000000003462313041163523011764 00000000000000/* A GNU-like . Copyright (C) 2006-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_sig_atomic_t || defined __need_sigset_t || defined _GL_ALREADY_INCLUDING_SIGNAL_H || (defined _SIGNAL_H && !defined __SIZEOF_PTHREAD_MUTEX_T) /* Special invocation convention: - Inside glibc header files. - On glibc systems we have a sequence of nested includes -> -> . In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. - On glibc systems with GCC 4.3 we have a sequence of nested includes -> -> -> . In this situation, some of the functions are not yet declared, therefore we cannot provide the C++ aliases. */ # @INCLUDE_NEXT@ @NEXT_SIGNAL_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SIGNAL_H #define _GL_ALREADY_INCLUDING_SIGNAL_H /* Define pid_t, uid_t. Also, mingw defines sigset_t not in , but in . On Solaris 10, includes , which eventually includes us; so include now, before the second inclusion guard. */ #include /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SIGNAL_H@ #undef _GL_ALREADY_INCLUDING_SIGNAL_H #ifndef _@GUARD_PREFIX@_SIGNAL_H #define _@GUARD_PREFIX@_SIGNAL_H /* Mac OS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6, Android declare pthread_sigmask in , not in . But avoid namespace pollution on glibc systems.*/ #if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \ && ((defined __APPLE__ && defined __MACH__) \ || defined __FreeBSD__ || defined __OpenBSD__ || defined __osf__ \ || defined __sun || defined __ANDROID__) \ && ! defined __GLIBC__ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* On AIX, sig_atomic_t already includes volatile. C99 requires that 'volatile sig_atomic_t' ignore the extra modifier, but C89 did not. Hence, redefine this to a non-volatile type as needed. */ #if ! @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ # if !GNULIB_defined_sig_atomic_t typedef int rpl_sig_atomic_t; # undef sig_atomic_t # define sig_atomic_t rpl_sig_atomic_t # define GNULIB_defined_sig_atomic_t 1 # endif #endif /* A set or mask of signals. */ #if !@HAVE_SIGSET_T@ # if !GNULIB_defined_sigset_t typedef unsigned int sigset_t; # define GNULIB_defined_sigset_t 1 # endif #endif /* Define sighandler_t, the type of signal handlers. A GNU extension. */ #if !@HAVE_SIGHANDLER_T@ # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_sighandler_t typedef void (*sighandler_t) (int); # define GNULIB_defined_sighandler_t 1 # endif # ifdef __cplusplus } # endif #endif #if @GNULIB_SIGNAL_H_SIGPIPE@ # ifndef SIGPIPE /* Define SIGPIPE to a value that does not overlap with other signals. */ # define SIGPIPE 13 # define GNULIB_defined_SIGPIPE 1 /* To actually use SIGPIPE, you also need the gnulib modules 'sigprocmask', 'write', 'stdio'. */ # endif #endif /* Maximum signal number + 1. */ #ifndef NSIG # if defined __TANDEM # define NSIG 32 # endif #endif #if @GNULIB_PTHREAD_SIGMASK@ # if @REPLACE_PTHREAD_SIGMASK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pthread_sigmask # define pthread_sigmask rpl_pthread_sigmask # endif _GL_FUNCDECL_RPL (pthread_sigmask, int, (int how, const sigset_t *new_mask, sigset_t *old_mask)); _GL_CXXALIAS_RPL (pthread_sigmask, int, (int how, const sigset_t *new_mask, sigset_t *old_mask)); # else # if !@HAVE_PTHREAD_SIGMASK@ _GL_FUNCDECL_SYS (pthread_sigmask, int, (int how, const sigset_t *new_mask, sigset_t *old_mask)); # endif _GL_CXXALIAS_SYS (pthread_sigmask, int, (int how, const sigset_t *new_mask, sigset_t *old_mask)); # endif _GL_CXXALIASWARN (pthread_sigmask); #elif defined GNULIB_POSIXCHECK # undef pthread_sigmask # if HAVE_RAW_DECL_PTHREAD_SIGMASK _GL_WARN_ON_USE (pthread_sigmask, "pthread_sigmask is not portable - " "use gnulib module pthread_sigmask for portability"); # endif #endif #if @GNULIB_RAISE@ # if @REPLACE_RAISE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef raise # define raise rpl_raise # endif _GL_FUNCDECL_RPL (raise, int, (int sig)); _GL_CXXALIAS_RPL (raise, int, (int sig)); # else # if !@HAVE_RAISE@ _GL_FUNCDECL_SYS (raise, int, (int sig)); # endif _GL_CXXALIAS_SYS (raise, int, (int sig)); # endif _GL_CXXALIASWARN (raise); #elif defined GNULIB_POSIXCHECK # undef raise /* Assume raise is always declared. */ _GL_WARN_ON_USE (raise, "raise can crash on native Windows - " "use gnulib module raise for portability"); #endif #if @GNULIB_SIGPROCMASK@ # if !@HAVE_POSIX_SIGNALBLOCKING@ # ifndef GNULIB_defined_signal_blocking # define GNULIB_defined_signal_blocking 1 # endif /* Maximum signal number + 1. */ # ifndef NSIG # define NSIG 32 # endif /* This code supports only 32 signals. */ # if !GNULIB_defined_verify_NSIG_constraint typedef int verify_NSIG_constraint[NSIG <= 32 ? 1 : -1]; # define GNULIB_defined_verify_NSIG_constraint 1 # endif # endif /* When also using extern inline, suppress the use of static inline in standard headers of problematic Apple configurations, as Libc at least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., . Perhaps Apple will fix this some day. */ #if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ && (defined __i386__ || defined __x86_64__)) # undef sigaddset # undef sigdelset # undef sigemptyset # undef sigfillset # undef sigismember #endif /* Test whether a given signal is contained in a signal set. */ # if @HAVE_POSIX_SIGNALBLOCKING@ /* This function is defined as a macro on Mac OS X. */ # if defined __cplusplus && defined GNULIB_NAMESPACE # undef sigismember # endif # else _GL_FUNCDECL_SYS (sigismember, int, (const sigset_t *set, int sig) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (sigismember, int, (const sigset_t *set, int sig)); _GL_CXXALIASWARN (sigismember); /* Initialize a signal set to the empty set. */ # if @HAVE_POSIX_SIGNALBLOCKING@ /* This function is defined as a macro on Mac OS X. */ # if defined __cplusplus && defined GNULIB_NAMESPACE # undef sigemptyset # endif # else _GL_FUNCDECL_SYS (sigemptyset, int, (sigset_t *set) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (sigemptyset, int, (sigset_t *set)); _GL_CXXALIASWARN (sigemptyset); /* Add a signal to a signal set. */ # if @HAVE_POSIX_SIGNALBLOCKING@ /* This function is defined as a macro on Mac OS X. */ # if defined __cplusplus && defined GNULIB_NAMESPACE # undef sigaddset # endif # else _GL_FUNCDECL_SYS (sigaddset, int, (sigset_t *set, int sig) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (sigaddset, int, (sigset_t *set, int sig)); _GL_CXXALIASWARN (sigaddset); /* Remove a signal from a signal set. */ # if @HAVE_POSIX_SIGNALBLOCKING@ /* This function is defined as a macro on Mac OS X. */ # if defined __cplusplus && defined GNULIB_NAMESPACE # undef sigdelset # endif # else _GL_FUNCDECL_SYS (sigdelset, int, (sigset_t *set, int sig) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (sigdelset, int, (sigset_t *set, int sig)); _GL_CXXALIASWARN (sigdelset); /* Fill a signal set with all possible signals. */ # if @HAVE_POSIX_SIGNALBLOCKING@ /* This function is defined as a macro on Mac OS X. */ # if defined __cplusplus && defined GNULIB_NAMESPACE # undef sigfillset # endif # else _GL_FUNCDECL_SYS (sigfillset, int, (sigset_t *set) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (sigfillset, int, (sigset_t *set)); _GL_CXXALIASWARN (sigfillset); /* Return the set of those blocked signals that are pending. */ # if !@HAVE_POSIX_SIGNALBLOCKING@ _GL_FUNCDECL_SYS (sigpending, int, (sigset_t *set) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (sigpending, int, (sigset_t *set)); _GL_CXXALIASWARN (sigpending); /* If OLD_SET is not NULL, put the current set of blocked signals in *OLD_SET. Then, if SET is not NULL, affect the current set of blocked signals by combining it with *SET as indicated in OPERATION. In this implementation, you are not allowed to change a signal handler while the signal is blocked. */ # if !@HAVE_POSIX_SIGNALBLOCKING@ # define SIG_BLOCK 0 /* blocked_set = blocked_set | *set; */ # define SIG_SETMASK 1 /* blocked_set = *set; */ # define SIG_UNBLOCK 2 /* blocked_set = blocked_set & ~*set; */ _GL_FUNCDECL_SYS (sigprocmask, int, (int operation, const sigset_t *set, sigset_t *old_set)); # endif _GL_CXXALIAS_SYS (sigprocmask, int, (int operation, const sigset_t *set, sigset_t *old_set)); _GL_CXXALIASWARN (sigprocmask); /* Install the handler FUNC for signal SIG, and return the previous handler. */ # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_function_taking_int_returning_void_t typedef void (*_gl_function_taking_int_returning_void_t) (int); # define GNULIB_defined_function_taking_int_returning_void_t 1 # endif # ifdef __cplusplus } # endif # if !@HAVE_POSIX_SIGNALBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define signal rpl_signal # endif _GL_FUNCDECL_RPL (signal, _gl_function_taking_int_returning_void_t, (int sig, _gl_function_taking_int_returning_void_t func)); _GL_CXXALIAS_RPL (signal, _gl_function_taking_int_returning_void_t, (int sig, _gl_function_taking_int_returning_void_t func)); # else _GL_CXXALIAS_SYS (signal, _gl_function_taking_int_returning_void_t, (int sig, _gl_function_taking_int_returning_void_t func)); # endif _GL_CXXALIASWARN (signal); # if !@HAVE_POSIX_SIGNALBLOCKING@ && GNULIB_defined_SIGPIPE /* Raise signal SIGPIPE. */ _GL_EXTERN_C int _gl_raise_SIGPIPE (void); # endif #elif defined GNULIB_POSIXCHECK # undef sigaddset # if HAVE_RAW_DECL_SIGADDSET _GL_WARN_ON_USE (sigaddset, "sigaddset is unportable - " "use the gnulib module sigprocmask for portability"); # endif # undef sigdelset # if HAVE_RAW_DECL_SIGDELSET _GL_WARN_ON_USE (sigdelset, "sigdelset is unportable - " "use the gnulib module sigprocmask for portability"); # endif # undef sigemptyset # if HAVE_RAW_DECL_SIGEMPTYSET _GL_WARN_ON_USE (sigemptyset, "sigemptyset is unportable - " "use the gnulib module sigprocmask for portability"); # endif # undef sigfillset # if HAVE_RAW_DECL_SIGFILLSET _GL_WARN_ON_USE (sigfillset, "sigfillset is unportable - " "use the gnulib module sigprocmask for portability"); # endif # undef sigismember # if HAVE_RAW_DECL_SIGISMEMBER _GL_WARN_ON_USE (sigismember, "sigismember is unportable - " "use the gnulib module sigprocmask for portability"); # endif # undef sigpending # if HAVE_RAW_DECL_SIGPENDING _GL_WARN_ON_USE (sigpending, "sigpending is unportable - " "use the gnulib module sigprocmask for portability"); # endif # undef sigprocmask # if HAVE_RAW_DECL_SIGPROCMASK _GL_WARN_ON_USE (sigprocmask, "sigprocmask is unportable - " "use the gnulib module sigprocmask for portability"); # endif #endif /* @GNULIB_SIGPROCMASK@ */ #if @GNULIB_SIGACTION@ # if !@HAVE_SIGACTION@ # if !@HAVE_SIGINFO_T@ # if !GNULIB_defined_siginfo_types /* Present to allow compilation, but unsupported by gnulib. */ union sigval { int sival_int; void *sival_ptr; }; /* Present to allow compilation, but unsupported by gnulib. */ struct siginfo_t { int si_signo; int si_code; int si_errno; pid_t si_pid; uid_t si_uid; void *si_addr; int si_status; long si_band; union sigval si_value; }; typedef struct siginfo_t siginfo_t; # define GNULIB_defined_siginfo_types 1 # endif # endif /* !@HAVE_SIGINFO_T@ */ /* We assume that platforms which lack the sigaction() function also lack the 'struct sigaction' type, and vice versa. */ # if !GNULIB_defined_struct_sigaction struct sigaction { union { void (*_sa_handler) (int); /* Present to allow compilation, but unsupported by gnulib. POSIX says that implementations may, but not must, make sa_sigaction overlap with sa_handler, but we know of no implementation where they do not overlap. */ void (*_sa_sigaction) (int, siginfo_t *, void *); } _sa_func; sigset_t sa_mask; /* Not all POSIX flags are supported. */ int sa_flags; }; # define sa_handler _sa_func._sa_handler # define sa_sigaction _sa_func._sa_sigaction /* Unsupported flags are not present. */ # define SA_RESETHAND 1 # define SA_NODEFER 2 # define SA_RESTART 4 # define GNULIB_defined_struct_sigaction 1 # endif _GL_FUNCDECL_SYS (sigaction, int, (int, const struct sigaction *restrict, struct sigaction *restrict)); # elif !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ # define sa_sigaction sa_handler # endif /* !@HAVE_SIGACTION@, !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ */ _GL_CXXALIAS_SYS (sigaction, int, (int, const struct sigaction *restrict, struct sigaction *restrict)); _GL_CXXALIASWARN (sigaction); #elif defined GNULIB_POSIXCHECK # undef sigaction # if HAVE_RAW_DECL_SIGACTION _GL_WARN_ON_USE (sigaction, "sigaction is unportable - " "use the gnulib module sigaction for portability"); # endif #endif /* Some systems don't have SA_NODEFER. */ #ifndef SA_NODEFER # define SA_NODEFER 0 #endif #endif /* _@GUARD_PREFIX@_SIGNAL_H */ #endif /* _@GUARD_PREFIX@_SIGNAL_H */ #endif gcal-4.1/lib/strerror_r.c0000664000000000000000000002274513041163523012302 00000000000000/* strerror_r.c --- POSIX compatible system error routine Copyright (C) 2010-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2010. */ #include /* Enable declaration of sys_nerr and sys_errlist in on NetBSD. */ #define _NETBSD_SOURCE 1 /* Specification. */ #include #include #include #include #include "strerror-override.h" #if (__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__) && HAVE___XPG_STRERROR_R /* glibc >= 2.3.4, cygwin >= 1.7.9 */ # define USE_XPG_STRERROR_R 1 extern #ifdef __cplusplus "C" #endif int __xpg_strerror_r (int errnum, char *buf, size_t buflen); #elif HAVE_DECL_STRERROR_R_ORIG && !(__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__) /* The system's strerror_r function is OK, except that its third argument is 'int', not 'size_t', or its return type is wrong. */ # include # define USE_SYSTEM_STRERROR_R 1 #else /* (__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__ ? !HAVE___XPG_STRERROR_R : !HAVE_DECL_STRERROR_R) */ /* Use the system's strerror(). Exclude glibc and cygwin because the system strerror_r has the wrong return type, and cygwin 1.7.9 strerror_r clobbers strerror. */ # undef strerror # define USE_SYSTEM_STRERROR 1 # if defined __NetBSD__ || defined __hpux || ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __sgi || (defined __sun && !defined _LP64) || defined __CYGWIN__ /* No locking needed. */ /* Get catgets internationalization functions. */ # if HAVE_CATGETS # include # endif #ifdef __cplusplus extern "C" { #endif /* Get sys_nerr, sys_errlist on HP-UX (otherwise only declared in C++ mode). Get sys_nerr, sys_errlist on IRIX (otherwise only declared with _SGIAPI). */ # if defined __hpux || defined __sgi extern int sys_nerr; extern char *sys_errlist[]; # endif /* Get sys_nerr on Solaris. */ # if defined __sun && !defined _LP64 extern int sys_nerr; # endif #ifdef __cplusplus } #endif # else # include "glthread/lock.h" /* This lock protects the buffer returned by strerror(). We assume that no other uses of strerror() exist in the program. */ gl_lock_define_initialized(static, strerror_lock) # endif #endif /* On MSVC, there is no snprintf() function, just a _snprintf(). It is of lower quality, but sufficient for the simple use here. We only have to make sure to NUL terminate the result (_snprintf does not NUL terminate, like strncpy). */ #if !HAVE_SNPRINTF static int local_snprintf (char *buf, size_t buflen, const char *format, ...) { va_list args; int result; va_start (args, format); result = _vsnprintf (buf, buflen, format, args); va_end (args); if (buflen > 0 && (result < 0 || result >= buflen)) buf[buflen - 1] = '\0'; return result; } # define snprintf local_snprintf #endif /* Copy as much of MSG into BUF as possible, without corrupting errno. Return 0 if MSG fit in BUFLEN, otherwise return ERANGE. */ static int safe_copy (char *buf, size_t buflen, const char *msg) { size_t len = strlen (msg); int ret; if (len < buflen) { /* Although POSIX allows memcpy() to corrupt errno, we don't know of any implementation where this is a real problem. */ memcpy (buf, msg, len + 1); ret = 0; } else { memcpy (buf, msg, buflen - 1); buf[buflen - 1] = '\0'; ret = ERANGE; } return ret; } int strerror_r (int errnum, char *buf, size_t buflen) #undef strerror_r { /* Filter this out now, so that rest of this replacement knows that there is room for a non-empty message and trailing NUL. */ if (buflen <= 1) { if (buflen) *buf = '\0'; return ERANGE; } *buf = '\0'; /* Check for gnulib overrides. */ { char const *msg = strerror_override (errnum); if (msg) return safe_copy (buf, buflen, msg); } { int ret; int saved_errno = errno; #if USE_XPG_STRERROR_R { ret = __xpg_strerror_r (errnum, buf, buflen); if (ret < 0) ret = errno; if (!*buf) { /* glibc 2.13 would not touch buf on err, so we have to fall back to GNU strerror_r which always returns a thread-safe untruncated string to (partially) copy into our buf. */ safe_copy (buf, buflen, strerror_r (errnum, buf, buflen)); } } #elif USE_SYSTEM_STRERROR_R if (buflen > INT_MAX) buflen = INT_MAX; # ifdef __hpux /* On HP-UX 11.31, strerror_r always fails when buflen < 80; it also fails to change buf on EINVAL. */ { char stackbuf[80]; if (buflen < sizeof stackbuf) { ret = strerror_r (errnum, stackbuf, sizeof stackbuf); if (ret == 0) ret = safe_copy (buf, buflen, stackbuf); } else ret = strerror_r (errnum, buf, buflen); } # else ret = strerror_r (errnum, buf, buflen); /* Some old implementations may return (-1, EINVAL) instead of EINVAL. */ if (ret < 0) ret = errno; # endif # ifdef _AIX /* AIX returns 0 rather than ERANGE when truncating strings; try again until we are sure we got the entire string. */ if (!ret && strlen (buf) == buflen - 1) { char stackbuf[STACKBUF_LEN]; size_t len; strerror_r (errnum, stackbuf, sizeof stackbuf); len = strlen (stackbuf); /* STACKBUF_LEN should have been large enough. */ if (len + 1 == sizeof stackbuf) abort (); if (buflen <= len) ret = ERANGE; } # else /* Solaris 10 does not populate buf on ERANGE. OpenBSD 4.7 truncates early on ERANGE rather than return a partial integer. We prefer the maximal string. We set buf[0] earlier, and we know of no implementation that modifies buf to be an unterminated string, so this strlen should be portable in practice (rather than pulling in a safer strnlen). */ if (ret == ERANGE && strlen (buf) < buflen - 1) { char stackbuf[STACKBUF_LEN]; /* STACKBUF_LEN should have been large enough. */ if (strerror_r (errnum, stackbuf, sizeof stackbuf) == ERANGE) abort (); safe_copy (buf, buflen, stackbuf); } # endif #else /* USE_SYSTEM_STRERROR */ /* Try to do what strerror (errnum) does, but without clobbering the buffer used by strerror(). */ # if defined __NetBSD__ || defined __hpux || ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __CYGWIN__ /* NetBSD, HP-UX, native Windows, Cygwin */ /* NetBSD: sys_nerr, sys_errlist are declared through _NETBSD_SOURCE and above. HP-UX: sys_nerr, sys_errlist are declared explicitly above. native Windows: sys_nerr, sys_errlist are declared in . Cygwin: sys_nerr, sys_errlist are declared in . */ if (errnum >= 0 && errnum < sys_nerr) { # if HAVE_CATGETS && (defined __NetBSD__ || defined __hpux) # if defined __NetBSD__ nl_catd catd = catopen ("libc", NL_CAT_LOCALE); const char *errmsg = (catd != (nl_catd)-1 ? catgets (catd, 1, errnum, sys_errlist[errnum]) : sys_errlist[errnum]); # endif # if defined __hpux nl_catd catd = catopen ("perror", NL_CAT_LOCALE); const char *errmsg = (catd != (nl_catd)-1 ? catgets (catd, 1, 1 + errnum, sys_errlist[errnum]) : sys_errlist[errnum]); # endif # else const char *errmsg = sys_errlist[errnum]; # endif if (errmsg == NULL || *errmsg == '\0') ret = EINVAL; else ret = safe_copy (buf, buflen, errmsg); # if HAVE_CATGETS && (defined __NetBSD__ || defined __hpux) if (catd != (nl_catd)-1) catclose (catd); # endif } else ret = EINVAL; # elif defined __sgi || (defined __sun && !defined _LP64) /* IRIX, Solaris <= 9 32-bit */ /* For a valid error number, the system's strerror() function returns a pointer to a not copied string, not to a buffer. */ if (errnum >= 0 && errnum < sys_nerr) { char *errmsg = strerror (errnum); if (errmsg == NULL || *errmsg == '\0') ret = EINVAL; else ret = safe_copy (buf, buflen, errmsg); } else ret = EINVAL; # else gl_lock_lock (strerror_lock); { char *errmsg = strerror (errnum); /* For invalid error numbers, strerror() on - IRIX 6.5 returns NULL, - HP-UX 11 returns an empty string. */ if (errmsg == NULL || *errmsg == '\0') ret = EINVAL; else ret = safe_copy (buf, buflen, errmsg); } gl_lock_unlock (strerror_lock); # endif #endif if (ret == EINVAL && !*buf) snprintf (buf, buflen, "Unknown error %d", errnum); errno = saved_errno; return ret; } } gcal-4.1/lib/floor.c0000664000000000000000000000644713041163522011220 00000000000000/* Round towards negative infinity. Copyright (C) 2007, 2010-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #if ! defined USE_LONG_DOUBLE # include #endif /* Specification. */ #include #include #ifdef USE_LONG_DOUBLE # define FUNC floorl # define DOUBLE long double # define MANT_DIG LDBL_MANT_DIG # define L_(literal) literal##L #elif ! defined USE_FLOAT # define FUNC floor # define DOUBLE double # define MANT_DIG DBL_MANT_DIG # define L_(literal) literal #else /* defined USE_FLOAT */ # define FUNC floorf # define DOUBLE float # define MANT_DIG FLT_MANT_DIG # define L_(literal) literal##f #endif /* MSVC with option -fp:strict refuses to compile constant initializers that contain floating-point operations. Pacify this compiler. */ #ifdef _MSC_VER # pragma fenv_access (off) #endif /* 2^(MANT_DIG-1). */ static const DOUBLE TWO_MANT_DIG = /* Assume MANT_DIG <= 5 * 31. Use the identity n = floor(n/5) + floor((n+1)/5) + ... + floor((n+4)/5). */ (DOUBLE) (1U << ((MANT_DIG - 1) / 5)) * (DOUBLE) (1U << ((MANT_DIG - 1 + 1) / 5)) * (DOUBLE) (1U << ((MANT_DIG - 1 + 2) / 5)) * (DOUBLE) (1U << ((MANT_DIG - 1 + 3) / 5)) * (DOUBLE) (1U << ((MANT_DIG - 1 + 4) / 5)); DOUBLE FUNC (DOUBLE x) { /* The use of 'volatile' guarantees that excess precision bits are dropped at each addition step and before the following comparison at the caller's site. It is necessary on x86 systems where double-floats are not IEEE compliant by default, to avoid that the results become platform and compiler option dependent. 'volatile' is a portable alternative to gcc's -ffloat-store option. */ volatile DOUBLE y = x; volatile DOUBLE z = y; if (z > L_(0.0)) { /* For 0 < x < 1, return +0.0 even if the current rounding mode is FE_DOWNWARD. */ if (z < L_(1.0)) z = L_(0.0); /* Avoid rounding errors for values near 2^k, where k >= MANT_DIG-1. */ else if (z < TWO_MANT_DIG) { /* Round to the next integer (nearest or up or down, doesn't matter). */ z += TWO_MANT_DIG; z -= TWO_MANT_DIG; /* Enforce rounding down. */ if (z > y) z -= L_(1.0); } } else if (z < L_(0.0)) { /* Avoid rounding errors for values near -2^k, where k >= MANT_DIG-1. */ if (z > - TWO_MANT_DIG) { /* Round to the next integer (nearest or up or down, doesn't matter). */ z -= TWO_MANT_DIG; z += TWO_MANT_DIG; /* Enforce rounding down. */ if (z > y) z -= L_(1.0); } } return z; } gcal-4.1/lib/pipe.h0000664000000000000000000000011613041163523011025 00000000000000/* Obsolete; consider using spawn-pipe.h instead. */ #include "spawn-pipe.h" gcal-4.1/lib/hard-locale.c0000664000000000000000000000414513041163522012243 00000000000000/* hard-locale.c -- Determine whether a locale is hard. Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include "hard-locale.h" #include #include #include #ifdef __GLIBC__ # define GLIBC_VERSION __GLIBC__ #elif defined __UCLIBC__ # define GLIBC_VERSION 2 #else # define GLIBC_VERSION 0 #endif /* Return true if the current CATEGORY locale is hard, i.e. if you can't get away with assuming traditional C or POSIX behavior. */ bool hard_locale (int category) { bool hard = true; char const *p = setlocale (category, NULL); if (p) { if (2 <= GLIBC_VERSION) { if (strcmp (p, "C") == 0 || strcmp (p, "POSIX") == 0) hard = false; } else { char *locale = strdup (p); if (locale) { /* Temporarily set the locale to the "C" and "POSIX" locales to find their names, so that we can determine whether one or the other is the caller's locale. */ if (((p = setlocale (category, "C")) && strcmp (p, locale) == 0) || ((p = setlocale (category, "POSIX")) && strcmp (p, locale) == 0)) hard = false; /* Restore the caller's locale. */ setlocale (category, locale); free (locale); } } } return hard; } gcal-4.1/lib/Makefile.in0000664000000000000000000052231313041163550011774 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2017 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: gnulib-tool --import --local-dir=gl --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl acos alloca asin assert atan atan2 ceil close cond cos dup2 error fclose fcntl fflush filename floor fopen free gettext-h git-version-gen iconv iconv-h ioctl langinfo link list locale log log10 maintainer-makefile malloc mkostemp nl_langinfo open perror pipe putenv realloc regex signal sin sqrt stat strcspn string strings strstr strtol tan time tmpdir unlink write VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = lib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acos.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asin.m4 \ $(top_srcdir)/m4/assert.m4 $(top_srcdir)/m4/atan.m4 \ $(top_srcdir)/m4/atan2.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/cond.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/cos.m4 $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/fatal-signal.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fflush.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/floor.m4 \ $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpurge.m4 \ $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fseek.m4 $(top_srcdir)/m4/fseeko.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftell.m4 \ $(top_srcdir)/m4/ftello.m4 $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/limits-h.m4 \ $(top_srcdir)/m4/link.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/log.m4 $(top_srcdir)/m4/log10.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mkostemp.m4 \ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \ $(top_srcdir)/m4/pipe2.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/posix_spawn.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/raise.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/realloc.m4 \ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/sched_h.m4 \ $(top_srcdir)/m4/secure_getenv.m4 \ $(top_srcdir)/m4/sig_atomic_t.m4 $(top_srcdir)/m4/sigaction.m4 \ $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sin.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/spawn-pipe.m4 \ $(top_srcdir)/m4/spawn_h.m4 $(top_srcdir)/m4/sqrt.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strcspn.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strstr.m4 \ $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tan.m4 \ $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/tmpdir.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/wait-process.m4 \ $(top_srcdir)/m4/waitpid.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libgnu_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = am__dirstamp = $(am__leading_dot)dirstamp am_libgnu_a_OBJECTS = binary-io.$(OBJEXT) cloexec.$(OBJEXT) \ glthread/cond.$(OBJEXT) dirname-lgpl.$(OBJEXT) \ basename-lgpl.$(OBJEXT) stripslash.$(OBJEXT) \ exitfail.$(OBJEXT) fatal-signal.$(OBJEXT) fd-hook.$(OBJEXT) \ fd-safer-flag.$(OBJEXT) dup-safer-flag.$(OBJEXT) \ freading.$(OBJEXT) getprogname.$(OBJEXT) hard-locale.$(OBJEXT) \ gl_list.$(OBJEXT) localcharset.$(OBJEXT) \ glthread/lock.$(OBJEXT) math.$(OBJEXT) pipe2.$(OBJEXT) \ pipe2-safer.$(OBJEXT) sig-handler.$(OBJEXT) \ spawn-pipe.$(OBJEXT) sys_socket.$(OBJEXT) tempname.$(OBJEXT) \ glthread/threadlib.$(OBJEXT) tmpdir.$(OBJEXT) unistd.$(OBJEXT) \ dup-safer.$(OBJEXT) fd-safer.$(OBJEXT) pipe-safer.$(OBJEXT) \ wait-process.$(OBJEXT) wctype-h.$(OBJEXT) xmalloc.$(OBJEXT) \ xalloc-die.$(OBJEXT) libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) LTLIBRARIES = $(noinst_LTLIBRARIES) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES) DIST_SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp alloca.c DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ACOS_LIBM = @ACOS_LIBM@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASIN_LIBM = @ASIN_LIBM@ ATAN2_LIBM = @ATAN2_LIBM@ ATAN_LIBM = @ATAN_LIBM@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CEIL_LIBM = @CEIL_LIBM@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ COS_LIBM = @COS_LIBM@ CP = @CP@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FLOAT_H = @FLOAT_H@ FLOOR_LIBM = @FLOOR_LIBM@ GCAL_HD_OBJS = @GCAL_HD_OBJS@ GCAL_RC_OBJS = @GCAL_RC_OBJS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ACOSF = @GNULIB_ACOSF@ GNULIB_ACOSL = @GNULIB_ACOSL@ GNULIB_ASINF = @GNULIB_ASINF@ GNULIB_ASINL = @GNULIB_ASINL@ GNULIB_ATAN2F = @GNULIB_ATAN2F@ GNULIB_ATANF = @GNULIB_ATANF@ GNULIB_ATANL = @GNULIB_ATANL@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CBRT = @GNULIB_CBRT@ GNULIB_CBRTF = @GNULIB_CBRTF@ GNULIB_CBRTL = @GNULIB_CBRTL@ GNULIB_CEIL = @GNULIB_CEIL@ GNULIB_CEILF = @GNULIB_CEILF@ GNULIB_CEILL = @GNULIB_CEILL@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ GNULIB_COSF = @GNULIB_COSF@ GNULIB_COSHF = @GNULIB_COSHF@ GNULIB_COSL = @GNULIB_COSL@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXP2 = @GNULIB_EXP2@ GNULIB_EXP2F = @GNULIB_EXP2F@ GNULIB_EXP2L = @GNULIB_EXP2L@ GNULIB_EXPF = @GNULIB_EXPF@ GNULIB_EXPL = @GNULIB_EXPL@ GNULIB_EXPM1 = @GNULIB_EXPM1@ GNULIB_EXPM1F = @GNULIB_EXPM1F@ GNULIB_EXPM1L = @GNULIB_EXPM1L@ GNULIB_FABSF = @GNULIB_FABSF@ GNULIB_FABSL = @GNULIB_FABSL@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ GNULIB_FMA = @GNULIB_FMA@ GNULIB_FMAF = @GNULIB_FMAF@ GNULIB_FMAL = @GNULIB_FMAL@ GNULIB_FMOD = @GNULIB_FMOD@ GNULIB_FMODF = @GNULIB_FMODF@ GNULIB_FMODL = @GNULIB_FMODL@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPF = @GNULIB_FREXPF@ GNULIB_FREXPL = @GNULIB_FREXPL@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_HYPOT = @GNULIB_HYPOT@ GNULIB_HYPOTF = @GNULIB_HYPOTF@ GNULIB_HYPOTL = @GNULIB_HYPOTL@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_ILOGB = @GNULIB_ILOGB@ GNULIB_ILOGBF = @GNULIB_ILOGBF@ GNULIB_ILOGBL = @GNULIB_ILOGBL@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPF = @GNULIB_LDEXPF@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOG = @GNULIB_LOG@ GNULIB_LOG10 = @GNULIB_LOG10@ GNULIB_LOG10F = @GNULIB_LOG10F@ GNULIB_LOG10L = @GNULIB_LOG10L@ GNULIB_LOG1P = @GNULIB_LOG1P@ GNULIB_LOG1PF = @GNULIB_LOG1PF@ GNULIB_LOG1PL = @GNULIB_LOG1PL@ GNULIB_LOG2 = @GNULIB_LOG2@ GNULIB_LOG2F = @GNULIB_LOG2F@ GNULIB_LOG2L = @GNULIB_LOG2L@ GNULIB_LOGB = @GNULIB_LOGB@ GNULIB_LOGBF = @GNULIB_LOGBF@ GNULIB_LOGBL = @GNULIB_LOGBL@ GNULIB_LOGF = @GNULIB_LOGF@ GNULIB_LOGL = @GNULIB_LOGL@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_MODF = @GNULIB_MODF@ GNULIB_MODFF = @GNULIB_MODFF@ GNULIB_MODFL = @GNULIB_MODFL@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@ GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@ GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@ GNULIB_POSIX_SPAWNATTR_GETPGROUP = @GNULIB_POSIX_SPAWNATTR_GETPGROUP@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_GETSIGMASK = @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@ GNULIB_POSIX_SPAWNATTR_INIT = @GNULIB_POSIX_SPAWNATTR_INIT@ GNULIB_POSIX_SPAWNATTR_SETFLAGS = @GNULIB_POSIX_SPAWNATTR_SETFLAGS@ GNULIB_POSIX_SPAWNATTR_SETPGROUP = @GNULIB_POSIX_SPAWNATTR_SETPGROUP@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_SETSIGMASK = @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@ GNULIB_POSIX_SPAWNP = @GNULIB_POSIX_SPAWNP@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT@ GNULIB_POWF = @GNULIB_POWF@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMAINDER = @GNULIB_REMAINDER@ GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RINT = @GNULIB_RINT@ GNULIB_RINTF = @GNULIB_RINTF@ GNULIB_RINTL = @GNULIB_RINTL@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_ROUND = @GNULIB_ROUND@ GNULIB_ROUNDF = @GNULIB_ROUNDF@ GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SINF = @GNULIB_SINF@ GNULIB_SINHF = @GNULIB_SINHF@ GNULIB_SINL = @GNULIB_SINL@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTF = @GNULIB_SQRTF@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TANF = @GNULIB_TANF@ GNULIB_TANHF = @GNULIB_TANHF@ GNULIB_TANL = @GNULIB_TANL@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ HAVE_ATAN2F = @HAVE_ATAN2F@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@ HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@ HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@ HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@ HAVE_DECL_LOGB = @HAVE_DECL_LOGB@ HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_REMAINDER = @HAVE_DECL_REMAINDER@ HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@ HAVE_DECL_RINTF = @HAVE_DECL_RINTF@ HAVE_DECL_ROUND = @HAVE_DECL_ROUND@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FMA = @HAVE_FMA@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LOG10F = @HAVE_LOG10F@ HAVE_LOG10L = @HAVE_LOG10L@ HAVE_LOG1P = @HAVE_LOG1P@ HAVE_LOG1PF = @HAVE_LOG1PF@ HAVE_LOG1PL = @HAVE_LOG1PL@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MODFF = @HAVE_MODFF@ HAVE_MODFL = @HAVE_MODFL@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@ HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@ HAVE_POSIX_SPAWN_FILE_ACTIONS_T = @HAVE_POSIX_SPAWN_FILE_ACTIONS_T@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RINT = @HAVE_RINT@ HAVE_RINTL = @HAVE_RINTL@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCHED_H = @HAVE_SCHED_H@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SINF = @HAVE_SINF@ HAVE_SINHF = @HAVE_SINHF@ HAVE_SINL = @HAVE_SINL@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_SPAWN_H = @HAVE_SPAWN_H@ HAVE_SQRTF = @HAVE_SQRTF@ HAVE_SQRTL = @HAVE_SQRTL@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SCHED_PARAM = @HAVE_STRUCT_SCHED_PARAM@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LIB_POSIX_SPAWN = @LIB_POSIX_SPAWN@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOG10_LIBM = @LOG10_LIBM@ LOG_LIBM = @LOG_LIBM@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_SCHED_H = @NEXT_SCHED_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_SPAWN_H = @NEXT_SPAWN_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PAGER1 = @PAGER1@ PAGER2 = @PAGER2@ PAGER3 = @PAGER3@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ POW_LIBM = @POW_LIBM@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACOSF = @REPLACE_ACOSF@ REPLACE_ASINF = @REPLACE_ASINF@ REPLACE_ATAN2F = @REPLACE_ATAN2F@ REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_COSF = @REPLACE_COSF@ REPLACE_COSHF = @REPLACE_COSHF@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ REPLACE_EXPF = @REPLACE_EXPF@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ REPLACE_FABSL = @REPLACE_FABSL@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ REPLACE_FMA = @REPLACE_FMA@ REPLACE_FMAF = @REPLACE_FMAF@ REPLACE_FMAL = @REPLACE_FMAL@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ REPLACE_LOG10F = @REPLACE_LOG10F@ REPLACE_LOG10L = @REPLACE_LOG10L@ REPLACE_LOG1P = @REPLACE_LOG1P@ REPLACE_LOG1PF = @REPLACE_LOG1PF@ REPLACE_LOG1PL = @REPLACE_LOG1PL@ REPLACE_LOG2 = @REPLACE_LOG2@ REPLACE_LOG2F = @REPLACE_LOG2F@ REPLACE_LOG2L = @REPLACE_LOG2L@ REPLACE_LOGB = @REPLACE_LOGB@ REPLACE_LOGBF = @REPLACE_LOGBF@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_SPAWN = @REPLACE_POSIX_SPAWN@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SINF = @REPLACE_SINF@ REPLACE_SINHF = @REPLACE_SINHF@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TANF = @REPLACE_TANF@ REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SCHED_H = @SCHED_H@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIN_LIBM = @SIN_LIBM@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ SQRT_LIBM = @SQRT_LIBM@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TAN_LIBM = @TAN_LIBM@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ZDUMP = @ZDUMP@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = libgnu.a noinst_LTLIBRARIES = EXTRA_DIST = alloca.c alloca.in.h btowc.c ceil.c cloexec.h close.c \ dirname.h dosname.h dup2.c errno.in.h error.c error.h \ exitfail.h fclose.c fcntl.c fcntl.in.h fd-hook.h fflush.c \ stdio-impl.h filename.h float.c float.in.h itold.c floor.c \ fopen.c fpurge.c stdio-impl.h freading.h stdio-impl.h free.c \ fseek.c fseeko.c stdio-impl.h fstat.c ftell.c ftello.c \ stdio-impl.h getdtablesize.c gettimeofday.c \ $(top_srcdir)/build-aux/git-version-gen \ $(top_srcdir)/GNUmakefile hard-locale.h \ $(top_srcdir)/build-aux/config.rpath iconv.in.h intprops.h \ ioctl.c w32sock.h langinfo.in.h limits.in.h link.c \ config.charset ref-add.sin ref-del.sin locale.in.h \ localeconv.c log.c log10.c lseek.c lstat.c \ $(top_srcdir)/maint.mk malloc.c malloc.c math.in.h mbrtowc.c \ mbsinit.c mbtowc-impl.h mbtowc.c memchr.c memchr.valgrind \ mkostemp.c msvc-inval.c msvc-inval.h msvc-nothrow.c \ msvc-nothrow.h nl_langinfo.c open.c pathmax.h perror.c pipe.h \ spawn_int.h spawni.c spawn_faction_addclose.c spawn_int.h \ spawn_faction_adddup2.c spawn_int.h spawn_faction_addopen.c \ spawn_int.h spawn_faction_destroy.c spawn_faction_init.c \ spawn_int.h spawnattr_destroy.c spawnattr_init.c \ spawnattr_setflags.c spawnattr_setsigmask.c spawnp.c putenv.c \ raise.c rawmemchr.c rawmemchr.valgrind realloc.c realloc.c \ regcomp.c regex.c regex.h regex_internal.c regex_internal.h \ regexec.c sched.in.h secure_getenv.c sig-handler.h sigaction.c \ signal.in.h sigprocmask.c \ $(top_srcdir)/build-aux/snippet/_Noreturn.h \ $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ $(top_srcdir)/build-aux/snippet/c++defs.h \ $(top_srcdir)/build-aux/snippet/unused-parameter.h \ $(top_srcdir)/build-aux/snippet/warn-on-use.h spawn.in.h \ stat.c stdalign.in.h stdbool.in.h stddef.in.h stdint.in.h \ stdio.in.h stdlib.in.h strchrnul.c strchrnul.valgrind \ strcspn.c strdup.c streq.h strerror.c strerror-override.c \ strerror-override.h strerror_r.c string.in.h strings.in.h \ str-two-way.h strstr.c strtol.c sys_ioctl.in.h sys_socket.in.h \ sys_stat.in.h sys_time.in.h sys_types.in.h sys_uio.in.h \ sys_wait.in.h tempname.h $(top_srcdir)/build-aux/config.rpath \ time.in.h unistd.in.h unistd--.h unistd-safer.h unlink.c \ $(top_srcdir)/build-aux/useless-if-before-free \ $(top_srcdir)/build-aux/vc-list-files verify.h waitpid.c \ wchar.in.h wcrtomb.c wctype.in.h write.c xalloc.h \ xalloc-oversized.h # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES = $(ALLOCA_H) configmake.h $(ERRNO_H) fcntl.h $(FLOAT_H) \ $(ICONV_H) langinfo.h $(LIMITS_H) locale.h math.h $(SCHED_H) \ signal.h arg-nonnull.h c++defs.h unused-parameter.h \ warn-on-use.h spawn.h $(STDALIGN_H) $(STDBOOL_H) $(STDDEF_H) \ $(STDINT_H) stdio.h stdlib.h string.h strings.h sys/ioctl.h \ sys/socket.h sys/stat.h sys/time.h sys/types.h sys/uio.h \ sys/wait.h time.h unistd.h wchar.h wctype.h SUFFIXES = .sed .sin MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t errno.h \ errno.h-t fcntl.h fcntl.h-t float.h float.h-t iconv.h \ iconv.h-t langinfo.h langinfo.h-t limits.h limits.h-t locale.h \ locale.h-t math.h math.h-t sched.h sched.h-t signal.h \ signal.h-t arg-nonnull.h arg-nonnull.h-t c++defs.h c++defs.h-t \ unused-parameter.h unused-parameter.h-t warn-on-use.h \ warn-on-use.h-t spawn.h spawn.h-t stdalign.h stdalign.h-t \ stdbool.h stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t \ stdio.h stdio.h-t stdlib.h stdlib.h-t string.h string.h-t \ strings.h strings.h-t sys/ioctl.h sys/ioctl.h-t sys/socket.h \ sys/socket.h-t sys/stat.h sys/stat.h-t sys/time.h sys/time.h-t \ sys/types.h sys/types.h-t sys/uio.h sys/uio.h-t sys/wait.h \ sys/wait.h-t time.h time.h-t unistd.h unistd.h-t wchar.h \ wchar.h-t wctype.h wctype.h-t MOSTLYCLEANDIRS = sys sys sys sys sys CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \ ref-del.sed DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = AM_CFLAGS = libgnu_a_SOURCES = binary-io.h binary-io.c cloexec.c glthread/cond.h \ glthread/cond.c dirname-lgpl.c basename-lgpl.c stripslash.c \ exitfail.c fatal-signal.h fatal-signal.c fd-hook.c \ fd-safer-flag.c dup-safer-flag.c freading.c getprogname.h \ getprogname.c gettext.h hard-locale.c gl_list.h gl_list.c \ localcharset.h localcharset.c glthread/lock.h glthread/lock.c \ math.c pipe2.c pipe2-safer.c sig-handler.c spawn-pipe.h \ spawn-pipe.c w32spawn.h sys_socket.c tempname.c \ glthread/threadlib.c tmpdir.h tmpdir.c unistd.c dup-safer.c \ fd-safer.c pipe-safer.c wait-process.h wait-process.c \ wctype-h.c xmalloc.c xalloc-die.c libgnu_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@ libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@ EXTRA_libgnu_a_SOURCES = alloca.c btowc.c ceil.c close.c dup2.c \ error.c fclose.c fcntl.c fflush.c float.c itold.c floor.c \ fopen.c fpurge.c free.c fseek.c fseeko.c fstat.c ftell.c \ ftello.c getdtablesize.c gettimeofday.c ioctl.c link.c \ localeconv.c log.c log10.c lseek.c lstat.c malloc.c malloc.c \ mbrtowc.c mbsinit.c mbtowc.c memchr.c mkostemp.c msvc-inval.c \ msvc-nothrow.c nl_langinfo.c open.c perror.c spawni.c \ spawn_faction_addclose.c spawn_faction_adddup2.c \ spawn_faction_addopen.c spawn_faction_destroy.c \ spawn_faction_init.c spawnattr_destroy.c spawnattr_init.c \ spawnattr_setflags.c spawnattr_setsigmask.c spawnp.c putenv.c \ raise.c rawmemchr.c realloc.c realloc.c regcomp.c regex.c \ regex_internal.c regexec.c secure_getenv.c sigaction.c \ sigprocmask.c stat.c strchrnul.c strcspn.c strdup.c strerror.c \ strerror-override.c strerror_r.c strstr.c strtol.c unlink.c \ waitpid.c wcrtomb.c write.c # Use this preprocessor expression to decide whether #include_next works. # Do not rely on a 'configure'-time test for this, since the expression # might appear in an installed header, which is used by some other compiler. HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER) charset_alias = $(DESTDIR)$(libdir)/charset.alias charset_tmp = $(DESTDIR)$(libdir)/charset.tmp # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all Makefile.am that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H = $(top_srcdir)/build-aux/snippet/_Noreturn.h ARG_NONNULL_H = arg-nonnull.h CXXDEFS_H = c++defs.h UNUSED_PARAMETER_H = unused-parameter.h WARN_ON_USE_H = warn-on-use.h all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .sed .sin .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits lib/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) glthread/$(am__dirstamp): @$(MKDIR_P) glthread @: > glthread/$(am__dirstamp) glthread/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) glthread/$(DEPDIR) @: > glthread/$(DEPDIR)/$(am__dirstamp) glthread/cond.$(OBJEXT): glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) glthread/lock.$(OBJEXT): glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) glthread/threadlib.$(OBJEXT): glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) $(EXTRA_libgnu_a_DEPENDENCIES) $(AM_V_at)-rm -f libgnu.a $(AM_V_AR)$(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS) $(libgnu_a_LIBADD) $(AM_V_at)$(RANLIB) libgnu.a clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f glthread/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename-lgpl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/binary-io.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btowc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ceil.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloexec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname-lgpl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-safer-flag.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-safer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fatal-signal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fclose.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-hook.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-safer-flag.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-safer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fopen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpurge.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freading.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/free.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseek.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseeko.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftell.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftello.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdtablesize.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getprogname.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hard-locale.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/itold.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localeconv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log10.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lseek.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/math.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbrtowc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsinit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbtowc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkostemp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-inval.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-nothrow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nl_langinfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perror.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe-safer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe2-safer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/putenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/raise.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rawmemchr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/realloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regcomp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex_internal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regexec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secure_getenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sig-handler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaction.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigprocmask.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawn-pipe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawn_faction_addclose.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawn_faction_adddup2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawn_faction_addopen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawn_faction_destroy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawn_faction_init.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawnattr_destroy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawnattr_init.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawnattr_setflags.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawnattr_setsigmask.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawni.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawnp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strchrnul.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcspn.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-override.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror_r.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strstr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtol.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sys_socket.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tempname.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tmpdir.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wait-process.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/waitpid.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctype-h.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/cond.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/lock.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/threadlib.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) all-local installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f glthread/$(DEPDIR)/$(am__dirstamp) -rm -f glthread/$(am__dirstamp) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-noinstLIBRARIES clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf $(DEPDIR) ./$(DEPDIR) glthread/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-local distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-exec-local install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf $(DEPDIR) ./$(DEPDIR) glthread/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-local pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-local .MAKE: $(am__recursive_targets) all check install install-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \ check check-am clean clean-generic clean-noinstLIBRARIES \ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-local \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-exec-local \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-local pdf pdf-am ps ps-am tags \ tags-am uninstall uninstall-am uninstall-local .PRECIOUS: Makefile # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ALLOCA_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_ALLOCA_H_TRUE@ cat $(srcdir)/alloca.in.h; \ @GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \ @GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@ @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@ # Listed in the same order as the GNU makefile conventions, and # provided by autoconf 2.59c+ or 2.70. # The Automake-defined pkg* macros are appended, in the order # listed in the Automake 1.10a+ documentation. configmake.h: Makefile $(AM_V_GEN)rm -f $@-t && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ echo '#define PREFIX "$(prefix)"'; \ echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ echo '#define BINDIR "$(bindir)"'; \ echo '#define SBINDIR "$(sbindir)"'; \ echo '#define LIBEXECDIR "$(libexecdir)"'; \ echo '#define DATAROOTDIR "$(datarootdir)"'; \ echo '#define DATADIR "$(datadir)"'; \ echo '#define SYSCONFDIR "$(sysconfdir)"'; \ echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ echo '#define RUNSTATEDIR "$(runstatedir)"'; \ echo '#define INCLUDEDIR "$(includedir)"'; \ echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ echo '#define DOCDIR "$(docdir)"'; \ echo '#define INFODIR "$(infodir)"'; \ echo '#define HTMLDIR "$(htmldir)"'; \ echo '#define DVIDIR "$(dvidir)"'; \ echo '#define PDFDIR "$(pdfdir)"'; \ echo '#define PSDIR "$(psdir)"'; \ echo '#define LIBDIR "$(libdir)"'; \ echo '#define LISPDIR "$(lispdir)"'; \ echo '#define LOCALEDIR "$(localedir)"'; \ echo '#define MANDIR "$(mandir)"'; \ echo '#define MANEXT "$(manext)"'; \ echo '#define PKGDATADIR "$(pkgdatadir)"'; \ echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ echo '#define PKGLIBDIR "$(pkglibdir)"'; \ echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ } | sed '/""/d' > $@-t && \ mv -f $@-t $@ # We need the following in order to create when the system # doesn't have one that is POSIX compliant. @GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ERRNO_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_ERRNO_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ < $(srcdir)/errno.in.h; \ @GL_GENERATE_ERRNO_H_TRUE@ } > $@-t && \ @GL_GENERATE_ERRNO_H_TRUE@ mv $@-t $@ @GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \ -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \ -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \ -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/fcntl.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_FLOAT_H_TRUE@float.h: float.in.h $(top_builddir)/config.status @GL_GENERATE_FLOAT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_FLOAT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_FLOAT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ @GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \ @GL_GENERATE_FLOAT_H_TRUE@ < $(srcdir)/float.in.h; \ @GL_GENERATE_FLOAT_H_TRUE@ } > $@-t && \ @GL_GENERATE_FLOAT_H_TRUE@ mv $@-t $@ @GL_GENERATE_FLOAT_H_FALSE@float.h: $(top_builddir)/config.status @GL_GENERATE_FLOAT_H_FALSE@ rm -f $@ distclean-local: clean-GNUmakefile clean-GNUmakefile: test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_ICONV_H_TRUE@iconv.h: iconv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) @GL_GENERATE_ICONV_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ICONV_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_ICONV_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''NEXT_ICONV_H''@|$(NEXT_ICONV_H)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's/@''GNULIB_ICONV''@/$(GNULIB_ICONV)/g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''REPLACE_ICONV_UTF''@|$(REPLACE_ICONV_UTF)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ @GL_GENERATE_ICONV_H_TRUE@ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ @GL_GENERATE_ICONV_H_TRUE@ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ @GL_GENERATE_ICONV_H_TRUE@ < $(srcdir)/iconv.in.h; \ @GL_GENERATE_ICONV_H_TRUE@ } > $@-t && \ @GL_GENERATE_ICONV_H_TRUE@ mv $@-t $@ @GL_GENERATE_ICONV_H_FALSE@iconv.h: $(top_builddir)/config.status @GL_GENERATE_ICONV_H_FALSE@ rm -f $@ # We need the following in order to create an empty placeholder for # when the system doesn't have one. langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \ -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \ -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \ -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|g' \ -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \ -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/langinfo.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that is compatible with GNU. @GL_GENERATE_LIMITS_H_TRUE@limits.h: limits.in.h $(top_builddir)/config.status @GL_GENERATE_LIMITS_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_LIMITS_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_LIMITS_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_LIMITS_H_TRUE@ -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \ @GL_GENERATE_LIMITS_H_TRUE@ < $(srcdir)/limits.in.h; \ @GL_GENERATE_LIMITS_H_TRUE@ } > $@-t && \ @GL_GENERATE_LIMITS_H_TRUE@ mv $@-t $@ @GL_GENERATE_LIMITS_H_FALSE@limits.h: $(top_builddir)/config.status @GL_GENERATE_LIMITS_H_FALSE@ rm -f $@ # We need the following in order to install a simple file in $(libdir) # which is shared with other installed packages. We use a list of referencing # packages so that "make uninstall" will remove the file if and only if it # is not used by another installed package. # On systems with glibc-2.1 or newer, the file is redundant, therefore we # avoid installing it. all-local: charset.alias ref-add.sed ref-del.sed install-exec-local: install-exec-localcharset install-exec-localcharset: all-local if test $(GLIBC21) = no; then \ case '$(host_os)' in \ darwin[56]*) \ need_charset_alias=true ;; \ darwin* | cygwin* | mingw* | pw32* | cegcc*) \ need_charset_alias=false ;; \ *) \ need_charset_alias=true ;; \ esac ; \ else \ need_charset_alias=false ; \ fi ; \ if $$need_charset_alias; then \ $(mkinstalldirs) $(DESTDIR)$(libdir) ; \ fi ; \ if test -f $(charset_alias); then \ sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ rm -f $(charset_tmp) ; \ else \ if $$need_charset_alias; then \ sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ rm -f $(charset_tmp) ; \ fi ; \ fi uninstall-local: uninstall-localcharset uninstall-localcharset: all-local if test -f $(charset_alias); then \ sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ if grep '^# Packages using this file: $$' $(charset_tmp) \ > /dev/null; then \ rm -f $(charset_alias); \ else \ $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ fi; \ rm -f $(charset_tmp); \ fi charset.alias: config.charset $(AM_V_GEN)rm -f t-$@ $@ && \ $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \ mv t-$@ $@ .sin.sed: $(AM_V_GEN)rm -f t-$@ $@ && \ sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \ mv t-$@ $@ # We need the following in order to create when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/locale.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \ -e 's/@''GNULIB_ACOSF''@/$(GNULIB_ACOSF)/g' \ -e 's/@''GNULIB_ACOSL''@/$(GNULIB_ACOSL)/g' \ -e 's/@''GNULIB_ASINF''@/$(GNULIB_ASINF)/g' \ -e 's/@''GNULIB_ASINL''@/$(GNULIB_ASINL)/g' \ -e 's/@''GNULIB_ATANF''@/$(GNULIB_ATANF)/g' \ -e 's/@''GNULIB_ATANL''@/$(GNULIB_ATANL)/g' \ -e 's/@''GNULIB_ATAN2F''@/$(GNULIB_ATAN2F)/g' \ -e 's/@''GNULIB_CBRT''@/$(GNULIB_CBRT)/g' \ -e 's/@''GNULIB_CBRTF''@/$(GNULIB_CBRTF)/g' \ -e 's/@''GNULIB_CBRTL''@/$(GNULIB_CBRTL)/g' \ -e 's/@''GNULIB_CEIL''@/$(GNULIB_CEIL)/g' \ -e 's/@''GNULIB_CEILF''@/$(GNULIB_CEILF)/g' \ -e 's/@''GNULIB_CEILL''@/$(GNULIB_CEILL)/g' \ -e 's/@''GNULIB_COPYSIGN''@/$(GNULIB_COPYSIGN)/g' \ -e 's/@''GNULIB_COPYSIGNF''@/$(GNULIB_COPYSIGNF)/g' \ -e 's/@''GNULIB_COPYSIGNL''@/$(GNULIB_COPYSIGNL)/g' \ -e 's/@''GNULIB_COSF''@/$(GNULIB_COSF)/g' \ -e 's/@''GNULIB_COSL''@/$(GNULIB_COSL)/g' \ -e 's/@''GNULIB_COSHF''@/$(GNULIB_COSHF)/g' \ -e 's/@''GNULIB_EXPF''@/$(GNULIB_EXPF)/g' \ -e 's/@''GNULIB_EXPL''@/$(GNULIB_EXPL)/g' \ -e 's/@''GNULIB_EXP2''@/$(GNULIB_EXP2)/g' \ -e 's/@''GNULIB_EXP2F''@/$(GNULIB_EXP2F)/g' \ -e 's/@''GNULIB_EXP2L''@/$(GNULIB_EXP2L)/g' \ -e 's/@''GNULIB_EXPM1''@/$(GNULIB_EXPM1)/g' \ -e 's/@''GNULIB_EXPM1F''@/$(GNULIB_EXPM1F)/g' \ -e 's/@''GNULIB_EXPM1L''@/$(GNULIB_EXPM1L)/g' \ -e 's/@''GNULIB_FABSF''@/$(GNULIB_FABSF)/g' \ -e 's/@''GNULIB_FABSL''@/$(GNULIB_FABSL)/g' \ -e 's/@''GNULIB_FLOOR''@/$(GNULIB_FLOOR)/g' \ -e 's/@''GNULIB_FLOORF''@/$(GNULIB_FLOORF)/g' \ -e 's/@''GNULIB_FLOORL''@/$(GNULIB_FLOORL)/g' \ -e 's/@''GNULIB_FMA''@/$(GNULIB_FMA)/g' \ -e 's/@''GNULIB_FMAF''@/$(GNULIB_FMAF)/g' \ -e 's/@''GNULIB_FMAL''@/$(GNULIB_FMAL)/g' \ -e 's/@''GNULIB_FMOD''@/$(GNULIB_FMOD)/g' \ -e 's/@''GNULIB_FMODF''@/$(GNULIB_FMODF)/g' \ -e 's/@''GNULIB_FMODL''@/$(GNULIB_FMODL)/g' \ -e 's/@''GNULIB_FREXPF''@/$(GNULIB_FREXPF)/g' \ -e 's/@''GNULIB_FREXP''@/$(GNULIB_FREXP)/g' \ -e 's/@''GNULIB_FREXPL''@/$(GNULIB_FREXPL)/g' \ -e 's/@''GNULIB_HYPOT''@/$(GNULIB_HYPOT)/g' \ -e 's/@''GNULIB_HYPOTF''@/$(GNULIB_HYPOTF)/g' \ -e 's/@''GNULIB_HYPOTL''@/$(GNULIB_HYPOTL)/g' \ < $(srcdir)/math.in.h | \ sed -e 's/@''GNULIB_ILOGB''@/$(GNULIB_ILOGB)/g' \ -e 's/@''GNULIB_ILOGBF''@/$(GNULIB_ILOGBF)/g' \ -e 's/@''GNULIB_ILOGBL''@/$(GNULIB_ILOGBL)/g' \ -e 's/@''GNULIB_ISFINITE''@/$(GNULIB_ISFINITE)/g' \ -e 's/@''GNULIB_ISINF''@/$(GNULIB_ISINF)/g' \ -e 's/@''GNULIB_ISNAN''@/$(GNULIB_ISNAN)/g' \ -e 's/@''GNULIB_ISNANF''@/$(GNULIB_ISNANF)/g' \ -e 's/@''GNULIB_ISNAND''@/$(GNULIB_ISNAND)/g' \ -e 's/@''GNULIB_ISNANL''@/$(GNULIB_ISNANL)/g' \ -e 's/@''GNULIB_LDEXPF''@/$(GNULIB_LDEXPF)/g' \ -e 's/@''GNULIB_LDEXPL''@/$(GNULIB_LDEXPL)/g' \ -e 's/@''GNULIB_LOG''@/$(GNULIB_LOG)/g' \ -e 's/@''GNULIB_LOGF''@/$(GNULIB_LOGF)/g' \ -e 's/@''GNULIB_LOGL''@/$(GNULIB_LOGL)/g' \ -e 's/@''GNULIB_LOG10''@/$(GNULIB_LOG10)/g' \ -e 's/@''GNULIB_LOG10F''@/$(GNULIB_LOG10F)/g' \ -e 's/@''GNULIB_LOG10L''@/$(GNULIB_LOG10L)/g' \ -e 's/@''GNULIB_LOG1P''@/$(GNULIB_LOG1P)/g' \ -e 's/@''GNULIB_LOG1PF''@/$(GNULIB_LOG1PF)/g' \ -e 's/@''GNULIB_LOG1PL''@/$(GNULIB_LOG1PL)/g' \ -e 's/@''GNULIB_LOG2''@/$(GNULIB_LOG2)/g' \ -e 's/@''GNULIB_LOG2F''@/$(GNULIB_LOG2F)/g' \ -e 's/@''GNULIB_LOG2L''@/$(GNULIB_LOG2L)/g' \ -e 's/@''GNULIB_LOGB''@/$(GNULIB_LOGB)/g' \ -e 's/@''GNULIB_LOGBF''@/$(GNULIB_LOGBF)/g' \ -e 's/@''GNULIB_LOGBL''@/$(GNULIB_LOGBL)/g' \ -e 's/@''GNULIB_MODF''@/$(GNULIB_MODF)/g' \ -e 's/@''GNULIB_MODFF''@/$(GNULIB_MODFF)/g' \ -e 's/@''GNULIB_MODFL''@/$(GNULIB_MODFL)/g' \ -e 's/@''GNULIB_POWF''@/$(GNULIB_POWF)/g' \ -e 's/@''GNULIB_REMAINDER''@/$(GNULIB_REMAINDER)/g' \ -e 's/@''GNULIB_REMAINDERF''@/$(GNULIB_REMAINDERF)/g' \ -e 's/@''GNULIB_REMAINDERL''@/$(GNULIB_REMAINDERL)/g' \ -e 's/@''GNULIB_RINT''@/$(GNULIB_RINT)/g' \ -e 's/@''GNULIB_RINTF''@/$(GNULIB_RINTF)/g' \ -e 's/@''GNULIB_RINTL''@/$(GNULIB_RINTL)/g' \ -e 's/@''GNULIB_ROUND''@/$(GNULIB_ROUND)/g' \ -e 's/@''GNULIB_ROUNDF''@/$(GNULIB_ROUNDF)/g' \ -e 's/@''GNULIB_ROUNDL''@/$(GNULIB_ROUNDL)/g' \ -e 's/@''GNULIB_SIGNBIT''@/$(GNULIB_SIGNBIT)/g' \ -e 's/@''GNULIB_SINF''@/$(GNULIB_SINF)/g' \ -e 's/@''GNULIB_SINL''@/$(GNULIB_SINL)/g' \ -e 's/@''GNULIB_SINHF''@/$(GNULIB_SINHF)/g' \ -e 's/@''GNULIB_SQRTF''@/$(GNULIB_SQRTF)/g' \ -e 's/@''GNULIB_SQRTL''@/$(GNULIB_SQRTL)/g' \ -e 's/@''GNULIB_TANF''@/$(GNULIB_TANF)/g' \ -e 's/@''GNULIB_TANL''@/$(GNULIB_TANL)/g' \ -e 's/@''GNULIB_TANHF''@/$(GNULIB_TANHF)/g' \ -e 's/@''GNULIB_TRUNC''@/$(GNULIB_TRUNC)/g' \ -e 's/@''GNULIB_TRUNCF''@/$(GNULIB_TRUNCF)/g' \ -e 's/@''GNULIB_TRUNCL''@/$(GNULIB_TRUNCL)/g' \ | \ sed -e 's|@''HAVE_ACOSF''@|$(HAVE_ACOSF)|g' \ -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \ -e 's|@''HAVE_ASINF''@|$(HAVE_ASINF)|g' \ -e 's|@''HAVE_ASINL''@|$(HAVE_ASINL)|g' \ -e 's|@''HAVE_ATANF''@|$(HAVE_ATANF)|g' \ -e 's|@''HAVE_ATANL''@|$(HAVE_ATANL)|g' \ -e 's|@''HAVE_ATAN2F''@|$(HAVE_ATAN2F)|g' \ -e 's|@''HAVE_CBRT''@|$(HAVE_CBRT)|g' \ -e 's|@''HAVE_CBRTF''@|$(HAVE_CBRTF)|g' \ -e 's|@''HAVE_CBRTL''@|$(HAVE_CBRTL)|g' \ -e 's|@''HAVE_COPYSIGN''@|$(HAVE_COPYSIGN)|g' \ -e 's|@''HAVE_COPYSIGNL''@|$(HAVE_COPYSIGNL)|g' \ -e 's|@''HAVE_COSF''@|$(HAVE_COSF)|g' \ -e 's|@''HAVE_COSL''@|$(HAVE_COSL)|g' \ -e 's|@''HAVE_COSHF''@|$(HAVE_COSHF)|g' \ -e 's|@''HAVE_EXPF''@|$(HAVE_EXPF)|g' \ -e 's|@''HAVE_EXPL''@|$(HAVE_EXPL)|g' \ -e 's|@''HAVE_EXPM1''@|$(HAVE_EXPM1)|g' \ -e 's|@''HAVE_EXPM1F''@|$(HAVE_EXPM1F)|g' \ -e 's|@''HAVE_FABSF''@|$(HAVE_FABSF)|g' \ -e 's|@''HAVE_FABSL''@|$(HAVE_FABSL)|g' \ -e 's|@''HAVE_FMA''@|$(HAVE_FMA)|g' \ -e 's|@''HAVE_FMAF''@|$(HAVE_FMAF)|g' \ -e 's|@''HAVE_FMAL''@|$(HAVE_FMAL)|g' \ -e 's|@''HAVE_FMODF''@|$(HAVE_FMODF)|g' \ -e 's|@''HAVE_FMODL''@|$(HAVE_FMODL)|g' \ -e 's|@''HAVE_FREXPF''@|$(HAVE_FREXPF)|g' \ -e 's|@''HAVE_HYPOTF''@|$(HAVE_HYPOTF)|g' \ -e 's|@''HAVE_HYPOTL''@|$(HAVE_HYPOTL)|g' \ -e 's|@''HAVE_ILOGB''@|$(HAVE_ILOGB)|g' \ -e 's|@''HAVE_ILOGBF''@|$(HAVE_ILOGBF)|g' \ -e 's|@''HAVE_ILOGBL''@|$(HAVE_ILOGBL)|g' \ -e 's|@''HAVE_ISNANF''@|$(HAVE_ISNANF)|g' \ -e 's|@''HAVE_ISNAND''@|$(HAVE_ISNAND)|g' \ -e 's|@''HAVE_ISNANL''@|$(HAVE_ISNANL)|g' \ -e 's|@''HAVE_LDEXPF''@|$(HAVE_LDEXPF)|g' \ -e 's|@''HAVE_LOGF''@|$(HAVE_LOGF)|g' \ -e 's|@''HAVE_LOGL''@|$(HAVE_LOGL)|g' \ -e 's|@''HAVE_LOG10F''@|$(HAVE_LOG10F)|g' \ -e 's|@''HAVE_LOG10L''@|$(HAVE_LOG10L)|g' \ -e 's|@''HAVE_LOG1P''@|$(HAVE_LOG1P)|g' \ -e 's|@''HAVE_LOG1PF''@|$(HAVE_LOG1PF)|g' \ -e 's|@''HAVE_LOG1PL''@|$(HAVE_LOG1PL)|g' \ -e 's|@''HAVE_LOGBF''@|$(HAVE_LOGBF)|g' \ -e 's|@''HAVE_LOGBL''@|$(HAVE_LOGBL)|g' \ -e 's|@''HAVE_MODFF''@|$(HAVE_MODFF)|g' \ -e 's|@''HAVE_MODFL''@|$(HAVE_MODFL)|g' \ -e 's|@''HAVE_POWF''@|$(HAVE_POWF)|g' \ -e 's|@''HAVE_REMAINDER''@|$(HAVE_REMAINDER)|g' \ -e 's|@''HAVE_REMAINDERF''@|$(HAVE_REMAINDERF)|g' \ -e 's|@''HAVE_RINT''@|$(HAVE_RINT)|g' \ -e 's|@''HAVE_RINTL''@|$(HAVE_RINTL)|g' \ -e 's|@''HAVE_SINF''@|$(HAVE_SINF)|g' \ -e 's|@''HAVE_SINL''@|$(HAVE_SINL)|g' \ -e 's|@''HAVE_SINHF''@|$(HAVE_SINHF)|g' \ -e 's|@''HAVE_SQRTF''@|$(HAVE_SQRTF)|g' \ -e 's|@''HAVE_SQRTL''@|$(HAVE_SQRTL)|g' \ -e 's|@''HAVE_TANF''@|$(HAVE_TANF)|g' \ -e 's|@''HAVE_TANL''@|$(HAVE_TANL)|g' \ -e 's|@''HAVE_TANHF''@|$(HAVE_TANHF)|g' \ -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \ -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \ -e 's|@''HAVE_DECL_ATANL''@|$(HAVE_DECL_ATANL)|g' \ -e 's|@''HAVE_DECL_CBRTF''@|$(HAVE_DECL_CBRTF)|g' \ -e 's|@''HAVE_DECL_CBRTL''@|$(HAVE_DECL_CBRTL)|g' \ -e 's|@''HAVE_DECL_CEILF''@|$(HAVE_DECL_CEILF)|g' \ -e 's|@''HAVE_DECL_CEILL''@|$(HAVE_DECL_CEILL)|g' \ -e 's|@''HAVE_DECL_COPYSIGNF''@|$(HAVE_DECL_COPYSIGNF)|g' \ -e 's|@''HAVE_DECL_COSL''@|$(HAVE_DECL_COSL)|g' \ -e 's|@''HAVE_DECL_EXPL''@|$(HAVE_DECL_EXPL)|g' \ -e 's|@''HAVE_DECL_EXP2''@|$(HAVE_DECL_EXP2)|g' \ -e 's|@''HAVE_DECL_EXP2F''@|$(HAVE_DECL_EXP2F)|g' \ -e 's|@''HAVE_DECL_EXP2L''@|$(HAVE_DECL_EXP2L)|g' \ -e 's|@''HAVE_DECL_EXPM1L''@|$(HAVE_DECL_EXPM1L)|g' \ -e 's|@''HAVE_DECL_FLOORF''@|$(HAVE_DECL_FLOORF)|g' \ -e 's|@''HAVE_DECL_FLOORL''@|$(HAVE_DECL_FLOORL)|g' \ -e 's|@''HAVE_DECL_FREXPL''@|$(HAVE_DECL_FREXPL)|g' \ -e 's|@''HAVE_DECL_LDEXPL''@|$(HAVE_DECL_LDEXPL)|g' \ -e 's|@''HAVE_DECL_LOGL''@|$(HAVE_DECL_LOGL)|g' \ -e 's|@''HAVE_DECL_LOG10L''@|$(HAVE_DECL_LOG10L)|g' \ -e 's|@''HAVE_DECL_LOG2''@|$(HAVE_DECL_LOG2)|g' \ -e 's|@''HAVE_DECL_LOG2F''@|$(HAVE_DECL_LOG2F)|g' \ -e 's|@''HAVE_DECL_LOG2L''@|$(HAVE_DECL_LOG2L)|g' \ -e 's|@''HAVE_DECL_LOGB''@|$(HAVE_DECL_LOGB)|g' \ -e 's|@''HAVE_DECL_REMAINDER''@|$(HAVE_DECL_REMAINDER)|g' \ -e 's|@''HAVE_DECL_REMAINDERL''@|$(HAVE_DECL_REMAINDERL)|g' \ -e 's|@''HAVE_DECL_RINTF''@|$(HAVE_DECL_RINTF)|g' \ -e 's|@''HAVE_DECL_ROUND''@|$(HAVE_DECL_ROUND)|g' \ -e 's|@''HAVE_DECL_ROUNDF''@|$(HAVE_DECL_ROUNDF)|g' \ -e 's|@''HAVE_DECL_ROUNDL''@|$(HAVE_DECL_ROUNDL)|g' \ -e 's|@''HAVE_DECL_SINL''@|$(HAVE_DECL_SINL)|g' \ -e 's|@''HAVE_DECL_SQRTL''@|$(HAVE_DECL_SQRTL)|g' \ -e 's|@''HAVE_DECL_TANL''@|$(HAVE_DECL_TANL)|g' \ -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \ -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \ -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \ | \ sed -e 's|@''REPLACE_ACOSF''@|$(REPLACE_ACOSF)|g' \ -e 's|@''REPLACE_ASINF''@|$(REPLACE_ASINF)|g' \ -e 's|@''REPLACE_ATANF''@|$(REPLACE_ATANF)|g' \ -e 's|@''REPLACE_ATAN2F''@|$(REPLACE_ATAN2F)|g' \ -e 's|@''REPLACE_CBRTF''@|$(REPLACE_CBRTF)|g' \ -e 's|@''REPLACE_CBRTL''@|$(REPLACE_CBRTL)|g' \ -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \ -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \ -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \ -e 's|@''REPLACE_COSF''@|$(REPLACE_COSF)|g' \ -e 's|@''REPLACE_COSHF''@|$(REPLACE_COSHF)|g' \ -e 's|@''REPLACE_EXPF''@|$(REPLACE_EXPF)|g' \ -e 's|@''REPLACE_EXPM1''@|$(REPLACE_EXPM1)|g' \ -e 's|@''REPLACE_EXPM1F''@|$(REPLACE_EXPM1F)|g' \ -e 's|@''REPLACE_EXP2''@|$(REPLACE_EXP2)|g' \ -e 's|@''REPLACE_EXP2L''@|$(REPLACE_EXP2L)|g' \ -e 's|@''REPLACE_FABSL''@|$(REPLACE_FABSL)|g' \ -e 's|@''REPLACE_FLOOR''@|$(REPLACE_FLOOR)|g' \ -e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \ -e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \ -e 's|@''REPLACE_FMA''@|$(REPLACE_FMA)|g' \ -e 's|@''REPLACE_FMAF''@|$(REPLACE_FMAF)|g' \ -e 's|@''REPLACE_FMAL''@|$(REPLACE_FMAL)|g' \ -e 's|@''REPLACE_FMOD''@|$(REPLACE_FMOD)|g' \ -e 's|@''REPLACE_FMODF''@|$(REPLACE_FMODF)|g' \ -e 's|@''REPLACE_FMODL''@|$(REPLACE_FMODL)|g' \ -e 's|@''REPLACE_FREXPF''@|$(REPLACE_FREXPF)|g' \ -e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \ -e 's|@''REPLACE_FREXPL''@|$(REPLACE_FREXPL)|g' \ -e 's|@''REPLACE_HUGE_VAL''@|$(REPLACE_HUGE_VAL)|g' \ -e 's|@''REPLACE_HYPOT''@|$(REPLACE_HYPOT)|g' \ -e 's|@''REPLACE_HYPOTF''@|$(REPLACE_HYPOTF)|g' \ -e 's|@''REPLACE_HYPOTL''@|$(REPLACE_HYPOTL)|g' \ -e 's|@''REPLACE_ILOGB''@|$(REPLACE_ILOGB)|g' \ -e 's|@''REPLACE_ILOGBF''@|$(REPLACE_ILOGBF)|g' \ -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \ -e 's|@''REPLACE_ISINF''@|$(REPLACE_ISINF)|g' \ -e 's|@''REPLACE_ISNAN''@|$(REPLACE_ISNAN)|g' \ -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \ -e 's|@''REPLACE_LDEXPL''@|$(REPLACE_LDEXPL)|g' \ -e 's|@''REPLACE_LOG''@|$(REPLACE_LOG)|g' \ -e 's|@''REPLACE_LOGF''@|$(REPLACE_LOGF)|g' \ -e 's|@''REPLACE_LOGL''@|$(REPLACE_LOGL)|g' \ -e 's|@''REPLACE_LOG10''@|$(REPLACE_LOG10)|g' \ -e 's|@''REPLACE_LOG10F''@|$(REPLACE_LOG10F)|g' \ -e 's|@''REPLACE_LOG10L''@|$(REPLACE_LOG10L)|g' \ -e 's|@''REPLACE_LOG1P''@|$(REPLACE_LOG1P)|g' \ -e 's|@''REPLACE_LOG1PF''@|$(REPLACE_LOG1PF)|g' \ -e 's|@''REPLACE_LOG1PL''@|$(REPLACE_LOG1PL)|g' \ -e 's|@''REPLACE_LOG2''@|$(REPLACE_LOG2)|g' \ -e 's|@''REPLACE_LOG2F''@|$(REPLACE_LOG2F)|g' \ -e 's|@''REPLACE_LOG2L''@|$(REPLACE_LOG2L)|g' \ -e 's|@''REPLACE_LOGB''@|$(REPLACE_LOGB)|g' \ -e 's|@''REPLACE_LOGBF''@|$(REPLACE_LOGBF)|g' \ -e 's|@''REPLACE_LOGBL''@|$(REPLACE_LOGBL)|g' \ -e 's|@''REPLACE_MODF''@|$(REPLACE_MODF)|g' \ -e 's|@''REPLACE_MODFF''@|$(REPLACE_MODFF)|g' \ -e 's|@''REPLACE_MODFL''@|$(REPLACE_MODFL)|g' \ -e 's|@''REPLACE_NAN''@|$(REPLACE_NAN)|g' \ -e 's|@''REPLACE_REMAINDER''@|$(REPLACE_REMAINDER)|g' \ -e 's|@''REPLACE_REMAINDERF''@|$(REPLACE_REMAINDERF)|g' \ -e 's|@''REPLACE_REMAINDERL''@|$(REPLACE_REMAINDERL)|g' \ -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \ -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \ -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \ -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \ -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \ -e 's|@''REPLACE_SINF''@|$(REPLACE_SINF)|g' \ -e 's|@''REPLACE_SINHF''@|$(REPLACE_SINHF)|g' \ -e 's|@''REPLACE_SQRTF''@|$(REPLACE_SQRTF)|g' \ -e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \ -e 's|@''REPLACE_TANF''@|$(REPLACE_TANF)|g' \ -e 's|@''REPLACE_TANHF''@|$(REPLACE_TANHF)|g' \ -e 's|@''REPLACE_TRUNC''@|$(REPLACE_TRUNC)|g' \ -e 's|@''REPLACE_TRUNCF''@|$(REPLACE_TRUNCF)|g' \ -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create a replacement for when # the system doesn't have one. @GL_GENERATE_SCHED_H_TRUE@sched.h: sched.in.h $(top_builddir)/config.status @GL_GENERATE_SCHED_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_SCHED_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_SCHED_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_SCHED_H_TRUE@ -e 's|@''HAVE_SCHED_H''@|$(HAVE_SCHED_H)|g' \ @GL_GENERATE_SCHED_H_TRUE@ -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \ @GL_GENERATE_SCHED_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_SCHED_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_SCHED_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_SCHED_H_TRUE@ -e 's|@''NEXT_SCHED_H''@|$(NEXT_SCHED_H)|g' \ @GL_GENERATE_SCHED_H_TRUE@ -e 's|@''HAVE_STRUCT_SCHED_PARAM''@|$(HAVE_STRUCT_SCHED_PARAM)|g' \ @GL_GENERATE_SCHED_H_TRUE@ < $(srcdir)/sched.in.h; \ @GL_GENERATE_SCHED_H_TRUE@ } > $@-t && \ @GL_GENERATE_SCHED_H_TRUE@ mv $@-t $@ @GL_GENERATE_SCHED_H_FALSE@sched.h: $(top_builddir)/config.status @GL_GENERATE_SCHED_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have a complete one. signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \ -e 's|@''GNULIB_PTHREAD_SIGMASK''@|$(GNULIB_PTHREAD_SIGMASK)|g' \ -e 's|@''GNULIB_RAISE''@|$(GNULIB_RAISE)|g' \ -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \ -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \ -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \ -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \ -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \ -e 's|@''HAVE_RAISE''@|$(HAVE_RAISE)|g' \ -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \ -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \ -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \ -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \ -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \ -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \ -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' \ -e 's|@''REPLACE_RAISE''@|$(REPLACE_RAISE)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/signal.in.h; \ } > $@-t && \ mv $@-t $@ # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut # off. arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_ARG_NONNULL/,$$p' \ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ > $@-t && \ mv $@-t $@ # The c++defs.h that gets inserted into generated .h files is the same as # build-aux/snippet/c++defs.h, except that it has the copyright header cut off. c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/_GL_CXXDEFS/,$$p' \ < $(top_srcdir)/build-aux/snippet/c++defs.h \ > $@-t && \ mv $@-t $@ # The unused-parameter.h that gets inserted into generated .h files is the same # as build-aux/snippet/unused-parameter.h, except that it has the copyright # header cut off. unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \ < $(top_srcdir)/build-aux/snippet/unused-parameter.h \ > $@-t && \ mv $@-t $@ # The warn-on-use.h that gets inserted into generated .h files is the same as # build-aux/snippet/warn-on-use.h, except that it has the copyright header cut # off. warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/^.ifndef/,$$p' \ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ > $@-t && \ mv $@-t $@ # We need the following in order to create a replacement for when # the system doesn't have one. spawn.h: spawn.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_SPAWN_H''@|$(HAVE_SPAWN_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SPAWN_H''@|$(NEXT_SPAWN_H)|g' \ -e 's/@''GNULIB_POSIX_SPAWN''@/$(GNULIB_POSIX_SPAWN)/g' \ -e 's/@''GNULIB_POSIX_SPAWNP''@/$(GNULIB_POSIX_SPAWNP)/g' \ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT)/g' \ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE)/g' \ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2)/g' \ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN)/g' \ -e 's/@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY''@/$(GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_INIT''@/$(GNULIB_POSIX_SPAWNATTR_INIT)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETFLAGS''@/$(GNULIB_POSIX_SPAWNATTR_GETFLAGS)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETFLAGS''@/$(GNULIB_POSIX_SPAWNATTR_SETFLAGS)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETPGROUP''@/$(GNULIB_POSIX_SPAWNATTR_GETPGROUP)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETPGROUP''@/$(GNULIB_POSIX_SPAWNATTR_SETPGROUP)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM''@/$(GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM''@/$(GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY''@/$(GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY''@/$(GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT''@/$(GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT''@/$(GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_GETSIGMASK''@/$(GNULIB_POSIX_SPAWNATTR_GETSIGMASK)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_SETSIGMASK''@/$(GNULIB_POSIX_SPAWNATTR_SETSIGMASK)/g' \ -e 's/@''GNULIB_POSIX_SPAWNATTR_DESTROY''@/$(GNULIB_POSIX_SPAWNATTR_DESTROY)/g' \ -e 's|@''HAVE_POSIX_SPAWN''@|$(HAVE_POSIX_SPAWN)|g' \ -e 's|@''HAVE_POSIX_SPAWNATTR_T''@|$(HAVE_POSIX_SPAWNATTR_T)|g' \ -e 's|@''HAVE_POSIX_SPAWN_FILE_ACTIONS_T''@|$(HAVE_POSIX_SPAWN_FILE_ACTIONS_T)|g' \ -e 's|@''REPLACE_POSIX_SPAWN''@|$(REPLACE_POSIX_SPAWN)|g' \ -e 's|@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE''@|$(REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE)|g' \ -e 's|@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2''@|$(REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2)|g' \ -e 's|@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN''@|$(REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/spawn.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works. @GL_GENERATE_STDALIGN_H_TRUE@stdalign.h: stdalign.in.h $(top_builddir)/config.status @GL_GENERATE_STDALIGN_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDALIGN_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDALIGN_H_TRUE@ cat $(srcdir)/stdalign.in.h; \ @GL_GENERATE_STDALIGN_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDALIGN_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDALIGN_H_FALSE@stdalign.h: $(top_builddir)/config.status @GL_GENERATE_STDALIGN_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works. @GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDBOOL_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDBOOL_H_TRUE@ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ @GL_GENERATE_STDBOOL_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDBOOL_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDDEF_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_STDDEF_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ < $(srcdir)/stddef.in.h; \ @GL_GENERATE_STDDEF_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDDEF_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status @GL_GENERATE_STDINT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDINT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDINT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ < $(srcdir)/stdint.in.h; \ @GL_GENERATE_STDINT_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDINT_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status @GL_GENERATE_STDINT_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \ -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_QSORT_R''@/$(GNULIB_QSORT_R)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_QSORT_R''@|$(HAVE_QSORT_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \ -e 's|@''GNULIB_FFS''@|$(GNULIB_FFS)|g' \ -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \ -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \ -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/strings.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # does not have a complete one. sys/ioctl.h: sys_ioctl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_SYS_IOCTL_H''@|$(HAVE_SYS_IOCTL_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_IOCTL_H''@|$(NEXT_SYS_IOCTL_H)|g' \ -e 's/@''GNULIB_IOCTL''@/$(GNULIB_IOCTL)/g' \ -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e 's|@''REPLACE_IOCTL''@|$(REPLACE_IOCTL)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_ioctl.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/socket.h: sys_socket.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \ -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_SOCKET''@/$(GNULIB_SOCKET)/g' \ -e 's/@''GNULIB_CONNECT''@/$(GNULIB_CONNECT)/g' \ -e 's/@''GNULIB_ACCEPT''@/$(GNULIB_ACCEPT)/g' \ -e 's/@''GNULIB_BIND''@/$(GNULIB_BIND)/g' \ -e 's/@''GNULIB_GETPEERNAME''@/$(GNULIB_GETPEERNAME)/g' \ -e 's/@''GNULIB_GETSOCKNAME''@/$(GNULIB_GETSOCKNAME)/g' \ -e 's/@''GNULIB_GETSOCKOPT''@/$(GNULIB_GETSOCKOPT)/g' \ -e 's/@''GNULIB_LISTEN''@/$(GNULIB_LISTEN)/g' \ -e 's/@''GNULIB_RECV''@/$(GNULIB_RECV)/g' \ -e 's/@''GNULIB_SEND''@/$(GNULIB_SEND)/g' \ -e 's/@''GNULIB_RECVFROM''@/$(GNULIB_RECVFROM)/g' \ -e 's/@''GNULIB_SENDTO''@/$(GNULIB_SENDTO)/g' \ -e 's/@''GNULIB_SETSOCKOPT''@/$(GNULIB_SETSOCKOPT)/g' \ -e 's/@''GNULIB_SHUTDOWN''@/$(GNULIB_SHUTDOWN)/g' \ -e 's/@''GNULIB_ACCEPT4''@/$(GNULIB_ACCEPT4)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \ -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY''@|$(HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY)|g' \ -e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \ -e 's|@''HAVE_ACCEPT4''@|$(HAVE_ACCEPT4)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_socket.in.h; \ } > $@-t && \ mv -f $@-t $@ # We need the following in order to create when the system # has one that is incomplete. sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_stat.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \ -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \ -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \ -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \ -e 's/@''REPLACE_STRUCT_TIMEVAL''@/$(REPLACE_STRUCT_TIMEVAL)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_time.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/uio.h: sys_uio.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_UIO_H''@|$(NEXT_SYS_UIO_H)|g' \ -e 's|@''HAVE_SYS_UIO_H''@|$(HAVE_SYS_UIO_H)|g' \ < $(srcdir)/sys_uio.in.h; \ } > $@-t && \ mv -f $@-t $@ # We need the following in order to create when the system # has one that is incomplete. sys/wait.h: sys_wait.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_WAIT_H''@|$(NEXT_SYS_WAIT_H)|g' \ -e 's/@''GNULIB_WAITPID''@/$(GNULIB_WAITPID)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_wait.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \ -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's/@''GNULIB_TIME_RZ''@/$(GNULIB_TIME_RZ)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \ -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/time.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create an empty placeholder for # when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \ -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \ -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \ -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \ -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \ -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \ -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/wctype.in.h; \ } > $@-t && \ mv $@-t $@ mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gcal-4.1/lib/msvc-nothrow.c0000664000000000000000000000243413041163522012535 00000000000000/* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 2011-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include /* Specification. */ #include "msvc-nothrow.h" /* Get declarations of the native Windows API functions. */ #define WIN32_LEAN_AND_MEAN #include #include "msvc-inval.h" #undef _get_osfhandle #if HAVE_MSVC_INVALID_PARAMETER_HANDLER intptr_t _gl_nothrow_get_osfhandle (int fd) { intptr_t result; TRY_MSVC_INVAL { result = _get_osfhandle (fd); } CATCH_MSVC_INVAL { result = (intptr_t) INVALID_HANDLE_VALUE; } DONE_MSVC_INVAL; return result; } #endif gcal-4.1/lib/ftello.c0000664000000000000000000000461013041163522011352 00000000000000/* An ftello() function that works around platform bugs. Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include /* Get lseek. */ #include #include "stdio-impl.h" off_t ftello (FILE *fp) #undef ftello #if !HAVE_FTELLO # undef ftell # define ftello ftell #endif #if _GL_WINDOWS_64_BIT_OFF_T # undef ftello # if HAVE__FTELLI64 /* msvc, mingw64 */ # define ftello _ftelli64 # else /* mingw */ # define ftello ftello64 # endif #endif { #if LSEEK_PIPE_BROKEN /* mingw gives bogus answers rather than failure on non-seekable files. */ if (lseek (fileno (fp), 0, SEEK_CUR) == -1) return -1; #endif #if FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE /* Solaris */ /* The Solaris stdio leaves the _IOREAD flag set after reading from a file reaches EOF and the program then starts writing to the file. ftello gets confused by this. */ if (fp_->_flag & _IOWRT) { off_t pos; /* Call ftello nevertheless, for the side effects that it does on fp. */ ftello (fp); /* Compute the file position ourselves. */ pos = lseek (fileno (fp), (off_t) 0, SEEK_CUR); if (pos >= 0) { if ((fp_->_flag & _IONBF) == 0 && fp_->_base != NULL) pos += fp_->_ptr - fp_->_base; } return pos; } #endif #if defined __SL64 && defined __SCLE /* Cygwin */ if ((fp->_flags & __SL64) == 0) { /* Cygwin 1.5.0 through 1.5.24 failed to open stdin in 64-bit mode; but has an ftello that requires 64-bit mode. */ FILE *tmp = fopen ("/dev/null", "r"); if (!tmp) return -1; fp->_flags |= __SL64; fp->_seek64 = tmp->_seek64; fclose (tmp); } #endif return ftello (fp); } gcal-4.1/lib/fd-safer.c0000664000000000000000000000300213041163522011546 00000000000000/* Return a safer copy of a file descriptor. Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert. */ #include #include "unistd-safer.h" #include #include /* Return FD, unless FD would be a copy of standard input, output, or error; in that case, return a duplicate of FD, closing FD. On failure to duplicate, close FD, set errno, and return -1. Preserve errno if FD is negative, so that the caller can always inspect errno when the returned value is negative. This function is usefully wrapped around functions that return file descriptors, e.g., fd_safer (open ("file", O_RDONLY)). */ int fd_safer (int fd) { if (STDIN_FILENO <= fd && fd <= STDERR_FILENO) { int f = dup_safer (fd); int e = errno; close (fd); errno = e; fd = f; } return fd; } gcal-4.1/lib/sys_socket.c0000664000000000000000000000015713041163523012256 00000000000000#include #define _GL_SYS_SOCKET_INLINE _GL_EXTERN_INLINE #include "sys/socket.h" typedef int dummy; gcal-4.1/lib/pathmax.h0000664000000000000000000000555613041163523011547 00000000000000/* Define PATH_MAX somehow. Requires sys/types.h. Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _PATHMAX_H # define _PATHMAX_H /* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename, including the terminating NUL byte. PATH_MAX is not defined on systems which have no limit on filename length, such as GNU/Hurd. This file does *not* define PATH_MAX always. Programs that use this file can handle the GNU/Hurd case in several ways: - Either with a package-wide handling, or with a per-file handling, - Either through a #ifdef PATH_MAX or through a fallback like #ifndef PATH_MAX # define PATH_MAX 8192 #endif or through a fallback like #ifndef PATH_MAX # define PATH_MAX pathconf ("/", _PC_PATH_MAX) #endif */ # include # include # ifndef _POSIX_PATH_MAX # define _POSIX_PATH_MAX 256 # endif /* Don't include sys/param.h if it already has been. */ # if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include # endif # if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN # endif # ifdef __hpux /* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename, *not* including the terminating NUL byte, and is set to 1023. Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is not defined at all any more. */ # undef PATH_MAX # define PATH_MAX 1024 # endif # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, section "Maximum Path Length Limitation", explains that the maximum size of a filename, including the terminating NUL byte, is 260 = 3 + 256 + 1. This is the same value as - FILENAME_MAX in , - _MAX_PATH in , - MAX_PATH in . Undefine the original value, because mingw's gets it wrong. */ # undef PATH_MAX # define PATH_MAX 260 # endif #endif /* _PATHMAX_H */ gcal-4.1/lib/wcrtomb.c0000664000000000000000000000271513041163523011547 00000000000000/* Convert wide character to multibyte character. Copyright (C) 2008-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps) { /* This implementation of wcrtomb on top of wctomb() supports only stateless encodings. ps must be in the initial state. */ if (ps != NULL && !mbsinit (ps)) { errno = EINVAL; return (size_t)(-1); } if (s == NULL) /* We know the NUL wide character corresponds to the NUL character. */ return 1; else { int ret = wctomb (s, wc); if (ret >= 0) return ret; else { errno = EILSEQ; return (size_t)(-1); } } } gcal-4.1/lib/localeconv.c0000664000000000000000000000656213041163522012222 00000000000000/* Query locale dependent information for formatting numbers. Copyright (C) 2012-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #if HAVE_STRUCT_LCONV_DECIMAL_POINT /* Override for platforms where 'struct lconv' lacks the int_p_*, int_n_* members. */ struct lconv * localeconv (void) { static struct lconv result; # undef lconv # undef localeconv struct lconv *sys_result = localeconv (); result.decimal_point = sys_result->decimal_point; result.thousands_sep = sys_result->thousands_sep; result.grouping = sys_result->grouping; result.mon_decimal_point = sys_result->mon_decimal_point; result.mon_thousands_sep = sys_result->mon_thousands_sep; result.mon_grouping = sys_result->mon_grouping; result.positive_sign = sys_result->positive_sign; result.negative_sign = sys_result->negative_sign; result.currency_symbol = sys_result->currency_symbol; result.frac_digits = sys_result->frac_digits; result.p_cs_precedes = sys_result->p_cs_precedes; result.p_sign_posn = sys_result->p_sign_posn; result.p_sep_by_space = sys_result->p_sep_by_space; result.n_cs_precedes = sys_result->n_cs_precedes; result.n_sign_posn = sys_result->n_sign_posn; result.n_sep_by_space = sys_result->n_sep_by_space; result.int_curr_symbol = sys_result->int_curr_symbol; result.int_frac_digits = sys_result->int_frac_digits; result.int_p_cs_precedes = sys_result->p_cs_precedes; result.int_p_sign_posn = sys_result->p_sign_posn; result.int_p_sep_by_space = sys_result->p_sep_by_space; result.int_n_cs_precedes = sys_result->n_cs_precedes; result.int_n_sign_posn = sys_result->n_sign_posn; result.int_n_sep_by_space = sys_result->n_sep_by_space; return &result; } #else /* Override for platforms where 'struct lconv' is a dummy. */ # include struct lconv * localeconv (void) { static /*const*/ struct lconv result = { /* decimal_point */ ".", /* thousands_sep */ "", /* grouping */ "", /* mon_decimal_point */ "", /* mon_thousands_sep */ "", /* mon_grouping */ "", /* positive_sign */ "", /* negative_sign */ "", /* currency_symbol */ "", /* frac_digits */ CHAR_MAX, /* p_cs_precedes */ CHAR_MAX, /* p_sign_posn */ CHAR_MAX, /* p_sep_by_space */ CHAR_MAX, /* n_cs_precedes */ CHAR_MAX, /* n_sign_posn */ CHAR_MAX, /* n_sep_by_space */ CHAR_MAX, /* int_curr_symbol */ "", /* int_frac_digits */ CHAR_MAX, /* int_p_cs_precedes */ CHAR_MAX, /* int_p_sign_posn */ CHAR_MAX, /* int_p_sep_by_space */ CHAR_MAX, /* int_n_cs_precedes */ CHAR_MAX, /* int_n_sign_posn */ CHAR_MAX, /* int_n_sep_by_space */ CHAR_MAX }; return &result; } #endif gcal-4.1/lib/hard-locale.h0000664000000000000000000000157113041163522012250 00000000000000/* Determine whether a locale is hard. Copyright (C) 1999, 2003-2004, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef HARD_LOCALE_H_ # define HARD_LOCALE_H_ 1 # include bool hard_locale (int); #endif /* HARD_LOCALE_H_ */ gcal-4.1/lib/btowc.c0000664000000000000000000000210713041163522011202 00000000000000/* Convert unibyte character to wide character. Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include wint_t btowc (int c) { if (c != EOF) { char buf[1]; wchar_t wc; buf[0] = c; if (mbtowc (&wc, buf, 1) >= 0) return wc; } return WEOF; } gcal-4.1/lib/sys_socket.in.h0000664000000000000000000005477713041163523012711 00000000000000/* Provide a sys/socket header file for systems lacking it (read: MinGW) and for systems where it is incomplete. Copyright (C) 2005-2017 Free Software Foundation, Inc. Written by Simon Josefsson. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* This file is supposed to be used on platforms that lack , on platforms where cannot be included standalone, and on platforms where does not provide all necessary definitions. It is intended to provide definitions and prototypes needed by an application. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined _GL_ALREADY_INCLUDING_SYS_SOCKET_H /* Special invocation convention: - On Cygwin 1.5.x we have a sequence of nested includes -> -> -> , and the latter includes . In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_SYS_SOCKET_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_SOCKET_H #if @HAVE_SYS_SOCKET_H@ # define _GL_ALREADY_INCLUDING_SYS_SOCKET_H /* On many platforms, assumes prior inclusion of . */ # include /* On FreeBSD 6.4, defines some macros that assume that NULL is defined. */ # include /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_SYS_SOCKET_H@ # undef _GL_ALREADY_INCLUDING_SYS_SOCKET_H #endif #ifndef _@GUARD_PREFIX@_SYS_SOCKET_H #define _@GUARD_PREFIX@_SYS_SOCKET_H #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_SYS_SOCKET_INLINE # define _GL_SYS_SOCKET_INLINE _GL_INLINE #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #if !@HAVE_SA_FAMILY_T@ # if !GNULIB_defined_sa_family_t /* On OS/2 kLIBC, sa_family_t is unsigned char unless TCPV40HDRS is defined. */ # if !defined __KLIBC__ || defined TCPV40HDRS typedef unsigned short sa_family_t; # else typedef unsigned char sa_family_t; # endif # define GNULIB_defined_sa_family_t 1 # endif #endif #if @HAVE_STRUCT_SOCKADDR_STORAGE@ /* Make the 'struct sockaddr_storage' field 'ss_family' visible on AIX 7.1. */ # if !@HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ # ifndef ss_family # define ss_family __ss_family # endif # endif #else # include /* Code taken from glibc sysdeps/unix/sysv/linux/bits/socket.h on 2009-05-08, licensed under LGPLv2.1+, plus portability fixes. */ # define __ss_aligntype unsigned long int # define _SS_SIZE 256 # define _SS_PADSIZE \ (_SS_SIZE - ((sizeof (sa_family_t) >= alignof (__ss_aligntype) \ ? sizeof (sa_family_t) \ : alignof (__ss_aligntype)) \ + sizeof (__ss_aligntype))) # if !GNULIB_defined_struct_sockaddr_storage struct sockaddr_storage { sa_family_t ss_family; /* Address family, etc. */ __ss_aligntype __ss_align; /* Force desired alignment. */ char __ss_padding[_SS_PADSIZE]; }; # define GNULIB_defined_struct_sockaddr_storage 1 # endif #endif /* Get struct iovec. */ /* But avoid namespace pollution on glibc systems. */ #if ! defined __GLIBC__ # include #endif #if @HAVE_SYS_SOCKET_H@ /* A platform that has . */ /* For shutdown(). */ # if !defined SHUT_RD # define SHUT_RD 0 # endif # if !defined SHUT_WR # define SHUT_WR 1 # endif # if !defined SHUT_RDWR # define SHUT_RDWR 2 # endif #else # ifdef __CYGWIN__ # error "Cygwin does have a sys/socket.h, doesn't it?!?" # endif /* A platform that lacks . Currently only MinGW is supported. See the gnulib manual regarding Windows sockets. MinGW has the header files winsock2.h and ws2tcpip.h that declare the sys/socket.h definitions we need. Note that you can influence which definitions you get by setting the WINVER symbol before including these two files. For example, getaddrinfo is only available if _WIN32_WINNT >= 0x0501 (that symbol is set indirectly through WINVER). You can set this by adding AC_DEFINE(WINVER, 0x0501) to configure.ac. Note that your code may not run on older Windows releases then. My Windows 2000 box was not able to run the code, for example. The situation is slightly confusing because suggests that getaddrinfo should be available on all Windows releases. */ # if @HAVE_WINSOCK2_H@ # include # endif # if @HAVE_WS2TCPIP_H@ # include # endif /* For shutdown(). */ # if !defined SHUT_RD && defined SD_RECEIVE # define SHUT_RD SD_RECEIVE # endif # if !defined SHUT_WR && defined SD_SEND # define SHUT_WR SD_SEND # endif # if !defined SHUT_RDWR && defined SD_BOTH # define SHUT_RDWR SD_BOTH # endif # if @HAVE_WINSOCK2_H@ /* Include headers needed by the emulation code. */ # include # include # if !GNULIB_defined_socklen_t typedef int socklen_t; # define GNULIB_defined_socklen_t 1 # endif # endif /* Rudimentary 'struct msghdr'; this works as long as you don't try to access msg_control or msg_controllen. */ struct msghdr { void *msg_name; socklen_t msg_namelen; struct iovec *msg_iov; int msg_iovlen; int msg_flags; }; #endif /* Fix some definitions from . */ #if @HAVE_WINSOCK2_H@ # if !GNULIB_defined_rpl_fd_isset /* Re-define FD_ISSET to avoid a WSA call while we are not using network sockets. */ _GL_SYS_SOCKET_INLINE int rpl_fd_isset (SOCKET fd, fd_set * set) { u_int i; if (set == NULL) return 0; for (i = 0; i < set->fd_count; i++) if (set->fd_array[i] == fd) return 1; return 0; } # define GNULIB_defined_rpl_fd_isset 1 # endif # undef FD_ISSET # define FD_ISSET(fd, set) rpl_fd_isset(fd, set) #endif /* Hide some function declarations from . */ #if @HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_UNISTD_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close close_used_without_including_unistd_h # else _GL_WARN_ON_USE (close, "close() used without including "); # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname gethostname_used_without_including_unistd_h # else _GL_WARN_ON_USE (gethostname, "gethostname() used without including "); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including "); # endif # endif #endif /* Wrap everything else to use libc file descriptors for sockets. */ #if @GNULIB_SOCKET@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket rpl_socket # endif _GL_FUNCDECL_RPL (socket, int, (int domain, int type, int protocol)); _GL_CXXALIAS_RPL (socket, int, (int domain, int type, int protocol)); # else _GL_CXXALIAS_SYS (socket, int, (int domain, int type, int protocol)); # endif _GL_CXXALIASWARN (socket); #elif @HAVE_WINSOCK2_H@ # undef socket # define socket socket_used_without_requesting_gnulib_module_socket #elif defined GNULIB_POSIXCHECK # undef socket # if HAVE_RAW_DECL_SOCKET _GL_WARN_ON_USE (socket, "socket is not always POSIX compliant - " "use gnulib module socket for portability"); # endif #endif #if @GNULIB_CONNECT@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef connect # define connect rpl_connect # endif _GL_FUNCDECL_RPL (connect, int, (int fd, const struct sockaddr *addr, socklen_t addrlen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (connect, int, (int fd, const struct sockaddr *addr, socklen_t addrlen)); # else /* Need to cast, because on NonStop Kernel, the third parameter is size_t addrlen. */ _GL_CXXALIAS_SYS_CAST (connect, int, (int fd, const struct sockaddr *addr, socklen_t addrlen)); # endif _GL_CXXALIASWARN (connect); #elif @HAVE_WINSOCK2_H@ # undef connect # define connect socket_used_without_requesting_gnulib_module_connect #elif defined GNULIB_POSIXCHECK # undef connect # if HAVE_RAW_DECL_CONNECT _GL_WARN_ON_USE (connect, "connect is not always POSIX compliant - " "use gnulib module connect for portability"); # endif #endif #if @GNULIB_ACCEPT@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef accept # define accept rpl_accept # endif _GL_FUNCDECL_RPL (accept, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); _GL_CXXALIAS_RPL (accept, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); # else /* Need to cast, because on Solaris 10 systems, the third parameter is void *addrlen. */ _GL_CXXALIAS_SYS_CAST (accept, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); # endif _GL_CXXALIASWARN (accept); #elif @HAVE_WINSOCK2_H@ # undef accept # define accept accept_used_without_requesting_gnulib_module_accept #elif defined GNULIB_POSIXCHECK # undef accept # if HAVE_RAW_DECL_ACCEPT _GL_WARN_ON_USE (accept, "accept is not always POSIX compliant - " "use gnulib module accept for portability"); # endif #endif #if @GNULIB_BIND@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef bind # define bind rpl_bind # endif _GL_FUNCDECL_RPL (bind, int, (int fd, const struct sockaddr *addr, socklen_t addrlen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (bind, int, (int fd, const struct sockaddr *addr, socklen_t addrlen)); # else /* Need to cast, because on NonStop Kernel, the third parameter is size_t addrlen. */ _GL_CXXALIAS_SYS_CAST (bind, int, (int fd, const struct sockaddr *addr, socklen_t addrlen)); # endif _GL_CXXALIASWARN (bind); #elif @HAVE_WINSOCK2_H@ # undef bind # define bind bind_used_without_requesting_gnulib_module_bind #elif defined GNULIB_POSIXCHECK # undef bind # if HAVE_RAW_DECL_BIND _GL_WARN_ON_USE (bind, "bind is not always POSIX compliant - " "use gnulib module bind for portability"); # endif #endif #if @GNULIB_GETPEERNAME@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getpeername # define getpeername rpl_getpeername # endif _GL_FUNCDECL_RPL (getpeername, int, (int fd, struct sockaddr *addr, socklen_t *addrlen) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (getpeername, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); # else /* Need to cast, because on Solaris 10 systems, the third parameter is void *addrlen. */ _GL_CXXALIAS_SYS_CAST (getpeername, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); # endif _GL_CXXALIASWARN (getpeername); #elif @HAVE_WINSOCK2_H@ # undef getpeername # define getpeername getpeername_used_without_requesting_gnulib_module_getpeername #elif defined GNULIB_POSIXCHECK # undef getpeername # if HAVE_RAW_DECL_GETPEERNAME _GL_WARN_ON_USE (getpeername, "getpeername is not always POSIX compliant - " "use gnulib module getpeername for portability"); # endif #endif #if @GNULIB_GETSOCKNAME@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getsockname # define getsockname rpl_getsockname # endif _GL_FUNCDECL_RPL (getsockname, int, (int fd, struct sockaddr *addr, socklen_t *addrlen) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (getsockname, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); # else /* Need to cast, because on Solaris 10 systems, the third parameter is void *addrlen. */ _GL_CXXALIAS_SYS_CAST (getsockname, int, (int fd, struct sockaddr *addr, socklen_t *addrlen)); # endif _GL_CXXALIASWARN (getsockname); #elif @HAVE_WINSOCK2_H@ # undef getsockname # define getsockname getsockname_used_without_requesting_gnulib_module_getsockname #elif defined GNULIB_POSIXCHECK # undef getsockname # if HAVE_RAW_DECL_GETSOCKNAME _GL_WARN_ON_USE (getsockname, "getsockname is not always POSIX compliant - " "use gnulib module getsockname for portability"); # endif #endif #if @GNULIB_GETSOCKOPT@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getsockopt # define getsockopt rpl_getsockopt # endif _GL_FUNCDECL_RPL (getsockopt, int, (int fd, int level, int optname, void *optval, socklen_t *optlen) _GL_ARG_NONNULL ((4, 5))); _GL_CXXALIAS_RPL (getsockopt, int, (int fd, int level, int optname, void *optval, socklen_t *optlen)); # else /* Need to cast, because on Solaris 10 systems, the fifth parameter is void *optlen. */ _GL_CXXALIAS_SYS_CAST (getsockopt, int, (int fd, int level, int optname, void *optval, socklen_t *optlen)); # endif _GL_CXXALIASWARN (getsockopt); #elif @HAVE_WINSOCK2_H@ # undef getsockopt # define getsockopt getsockopt_used_without_requesting_gnulib_module_getsockopt #elif defined GNULIB_POSIXCHECK # undef getsockopt # if HAVE_RAW_DECL_GETSOCKOPT _GL_WARN_ON_USE (getsockopt, "getsockopt is not always POSIX compliant - " "use gnulib module getsockopt for portability"); # endif #endif #if @GNULIB_LISTEN@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef listen # define listen rpl_listen # endif _GL_FUNCDECL_RPL (listen, int, (int fd, int backlog)); _GL_CXXALIAS_RPL (listen, int, (int fd, int backlog)); # else _GL_CXXALIAS_SYS (listen, int, (int fd, int backlog)); # endif _GL_CXXALIASWARN (listen); #elif @HAVE_WINSOCK2_H@ # undef listen # define listen listen_used_without_requesting_gnulib_module_listen #elif defined GNULIB_POSIXCHECK # undef listen # if HAVE_RAW_DECL_LISTEN _GL_WARN_ON_USE (listen, "listen is not always POSIX compliant - " "use gnulib module listen for portability"); # endif #endif #if @GNULIB_RECV@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef recv # define recv rpl_recv # endif _GL_FUNCDECL_RPL (recv, ssize_t, (int fd, void *buf, size_t len, int flags) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (recv, ssize_t, (int fd, void *buf, size_t len, int flags)); # else _GL_CXXALIAS_SYS (recv, ssize_t, (int fd, void *buf, size_t len, int flags)); # endif _GL_CXXALIASWARN (recv); #elif @HAVE_WINSOCK2_H@ # undef recv # define recv recv_used_without_requesting_gnulib_module_recv #elif defined GNULIB_POSIXCHECK # undef recv # if HAVE_RAW_DECL_RECV _GL_WARN_ON_USE (recv, "recv is not always POSIX compliant - " "use gnulib module recv for portability"); # endif #endif #if @GNULIB_SEND@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef send # define send rpl_send # endif _GL_FUNCDECL_RPL (send, ssize_t, (int fd, const void *buf, size_t len, int flags) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (send, ssize_t, (int fd, const void *buf, size_t len, int flags)); # else _GL_CXXALIAS_SYS (send, ssize_t, (int fd, const void *buf, size_t len, int flags)); # endif _GL_CXXALIASWARN (send); #elif @HAVE_WINSOCK2_H@ # undef send # define send send_used_without_requesting_gnulib_module_send #elif defined GNULIB_POSIXCHECK # undef send # if HAVE_RAW_DECL_SEND _GL_WARN_ON_USE (send, "send is not always POSIX compliant - " "use gnulib module send for portability"); # endif #endif #if @GNULIB_RECVFROM@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef recvfrom # define recvfrom rpl_recvfrom # endif _GL_FUNCDECL_RPL (recvfrom, ssize_t, (int fd, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (recvfrom, ssize_t, (int fd, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen)); # else /* Need to cast, because on Solaris 10 systems, the sixth parameter is void *fromlen. */ _GL_CXXALIAS_SYS_CAST (recvfrom, ssize_t, (int fd, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen)); # endif _GL_CXXALIASWARN (recvfrom); #elif @HAVE_WINSOCK2_H@ # undef recvfrom # define recvfrom recvfrom_used_without_requesting_gnulib_module_recvfrom #elif defined GNULIB_POSIXCHECK # undef recvfrom # if HAVE_RAW_DECL_RECVFROM _GL_WARN_ON_USE (recvfrom, "recvfrom is not always POSIX compliant - " "use gnulib module recvfrom for portability"); # endif #endif #if @GNULIB_SENDTO@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sendto # define sendto rpl_sendto # endif _GL_FUNCDECL_RPL (sendto, ssize_t, (int fd, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (sendto, ssize_t, (int fd, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)); # else /* Need to cast, because on NonStop Kernel, the sixth parameter is size_t tolen. */ _GL_CXXALIAS_SYS_CAST (sendto, ssize_t, (int fd, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)); # endif _GL_CXXALIASWARN (sendto); #elif @HAVE_WINSOCK2_H@ # undef sendto # define sendto sendto_used_without_requesting_gnulib_module_sendto #elif defined GNULIB_POSIXCHECK # undef sendto # if HAVE_RAW_DECL_SENDTO _GL_WARN_ON_USE (sendto, "sendto is not always POSIX compliant - " "use gnulib module sendto for portability"); # endif #endif #if @GNULIB_SETSOCKOPT@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setsockopt # define setsockopt rpl_setsockopt # endif _GL_FUNCDECL_RPL (setsockopt, int, (int fd, int level, int optname, const void * optval, socklen_t optlen) _GL_ARG_NONNULL ((4))); _GL_CXXALIAS_RPL (setsockopt, int, (int fd, int level, int optname, const void * optval, socklen_t optlen)); # else /* Need to cast, because on NonStop Kernel, the fifth parameter is size_t optlen. */ _GL_CXXALIAS_SYS_CAST (setsockopt, int, (int fd, int level, int optname, const void * optval, socklen_t optlen)); # endif _GL_CXXALIASWARN (setsockopt); #elif @HAVE_WINSOCK2_H@ # undef setsockopt # define setsockopt setsockopt_used_without_requesting_gnulib_module_setsockopt #elif defined GNULIB_POSIXCHECK # undef setsockopt # if HAVE_RAW_DECL_SETSOCKOPT _GL_WARN_ON_USE (setsockopt, "setsockopt is not always POSIX compliant - " "use gnulib module setsockopt for portability"); # endif #endif #if @GNULIB_SHUTDOWN@ # if @HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef shutdown # define shutdown rpl_shutdown # endif _GL_FUNCDECL_RPL (shutdown, int, (int fd, int how)); _GL_CXXALIAS_RPL (shutdown, int, (int fd, int how)); # else _GL_CXXALIAS_SYS (shutdown, int, (int fd, int how)); # endif _GL_CXXALIASWARN (shutdown); #elif @HAVE_WINSOCK2_H@ # undef shutdown # define shutdown shutdown_used_without_requesting_gnulib_module_shutdown #elif defined GNULIB_POSIXCHECK # undef shutdown # if HAVE_RAW_DECL_SHUTDOWN _GL_WARN_ON_USE (shutdown, "shutdown is not always POSIX compliant - " "use gnulib module shutdown for portability"); # endif #endif #if @GNULIB_ACCEPT4@ /* Accept a connection on a socket, with specific opening flags. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). See also the Linux man page at . */ # if @HAVE_ACCEPT4@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define accept4 rpl_accept4 # endif _GL_FUNCDECL_RPL (accept4, int, (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)); _GL_CXXALIAS_RPL (accept4, int, (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)); # else _GL_FUNCDECL_SYS (accept4, int, (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)); _GL_CXXALIAS_SYS (accept4, int, (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)); # endif _GL_CXXALIASWARN (accept4); #elif defined GNULIB_POSIXCHECK # undef accept4 # if HAVE_RAW_DECL_ACCEPT4 _GL_WARN_ON_USE (accept4, "accept4 is unportable - " "use gnulib module accept4 for portability"); # endif #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */ #endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */ #endif gcal-4.1/lib/strerror-override.c0000664000000000000000000002146513041163523013574 00000000000000/* strerror-override.c --- POSIX compatible system error routine Copyright (C) 2010-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2010. */ #include #include "strerror-override.h" #include #if GNULIB_defined_EWINSOCK /* native Windows platforms */ # if HAVE_WINSOCK2_H # include # endif #endif /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ const char * strerror_override (int errnum) { /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */ switch (errnum) { #if REPLACE_STRERROR_0 case 0: return "Success"; #endif #if GNULIB_defined_ESOCK /* native Windows platforms with older */ case EINPROGRESS: return "Operation now in progress"; case EALREADY: return "Operation already in progress"; case ENOTSOCK: return "Socket operation on non-socket"; case EDESTADDRREQ: return "Destination address required"; case EMSGSIZE: return "Message too long"; case EPROTOTYPE: return "Protocol wrong type for socket"; case ENOPROTOOPT: return "Protocol not available"; case EPROTONOSUPPORT: return "Protocol not supported"; case EOPNOTSUPP: return "Operation not supported"; case EAFNOSUPPORT: return "Address family not supported by protocol"; case EADDRINUSE: return "Address already in use"; case EADDRNOTAVAIL: return "Cannot assign requested address"; case ENETDOWN: return "Network is down"; case ENETUNREACH: return "Network is unreachable"; case ECONNRESET: return "Connection reset by peer"; case ENOBUFS: return "No buffer space available"; case EISCONN: return "Transport endpoint is already connected"; case ENOTCONN: return "Transport endpoint is not connected"; case ETIMEDOUT: return "Connection timed out"; case ECONNREFUSED: return "Connection refused"; case ELOOP: return "Too many levels of symbolic links"; case EHOSTUNREACH: return "No route to host"; case EWOULDBLOCK: return "Operation would block"; #endif #if GNULIB_defined_ESTREAMS /* native Windows platforms with older */ case ETXTBSY: return "Text file busy"; case ENODATA: return "No data available"; case ENOSR: return "Out of streams resources"; case ENOSTR: return "Device not a stream"; case ETIME: return "Timer expired"; case EOTHER: return "Other error"; #endif #if GNULIB_defined_EWINSOCK /* native Windows platforms */ case ESOCKTNOSUPPORT: return "Socket type not supported"; case EPFNOSUPPORT: return "Protocol family not supported"; case ESHUTDOWN: return "Cannot send after transport endpoint shutdown"; case ETOOMANYREFS: return "Too many references: cannot splice"; case EHOSTDOWN: return "Host is down"; case EPROCLIM: return "Too many processes"; case EUSERS: return "Too many users"; case EDQUOT: return "Disk quota exceeded"; case ESTALE: return "Stale NFS file handle"; case EREMOTE: return "Object is remote"; # if HAVE_WINSOCK2_H /* WSA_INVALID_HANDLE maps to EBADF */ /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */ /* WSA_INVALID_PARAMETER maps to EINVAL */ case WSA_OPERATION_ABORTED: return "Overlapped operation aborted"; case WSA_IO_INCOMPLETE: return "Overlapped I/O event object not in signaled state"; case WSA_IO_PENDING: return "Overlapped operations will complete later"; /* WSAEINTR maps to EINTR */ /* WSAEBADF maps to EBADF */ /* WSAEACCES maps to EACCES */ /* WSAEFAULT maps to EFAULT */ /* WSAEINVAL maps to EINVAL */ /* WSAEMFILE maps to EMFILE */ /* WSAEWOULDBLOCK maps to EWOULDBLOCK */ /* WSAEINPROGRESS maps to EINPROGRESS */ /* WSAEALREADY maps to EALREADY */ /* WSAENOTSOCK maps to ENOTSOCK */ /* WSAEDESTADDRREQ maps to EDESTADDRREQ */ /* WSAEMSGSIZE maps to EMSGSIZE */ /* WSAEPROTOTYPE maps to EPROTOTYPE */ /* WSAENOPROTOOPT maps to ENOPROTOOPT */ /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */ /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */ /* WSAEOPNOTSUPP maps to EOPNOTSUPP */ /* WSAEPFNOSUPPORT is EPFNOSUPPORT */ /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */ /* WSAEADDRINUSE maps to EADDRINUSE */ /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */ /* WSAENETDOWN maps to ENETDOWN */ /* WSAENETUNREACH maps to ENETUNREACH */ /* WSAENETRESET maps to ENETRESET */ /* WSAECONNABORTED maps to ECONNABORTED */ /* WSAECONNRESET maps to ECONNRESET */ /* WSAENOBUFS maps to ENOBUFS */ /* WSAEISCONN maps to EISCONN */ /* WSAENOTCONN maps to ENOTCONN */ /* WSAESHUTDOWN is ESHUTDOWN */ /* WSAETOOMANYREFS is ETOOMANYREFS */ /* WSAETIMEDOUT maps to ETIMEDOUT */ /* WSAECONNREFUSED maps to ECONNREFUSED */ /* WSAELOOP maps to ELOOP */ /* WSAENAMETOOLONG maps to ENAMETOOLONG */ /* WSAEHOSTDOWN is EHOSTDOWN */ /* WSAEHOSTUNREACH maps to EHOSTUNREACH */ /* WSAENOTEMPTY maps to ENOTEMPTY */ /* WSAEPROCLIM is EPROCLIM */ /* WSAEUSERS is EUSERS */ /* WSAEDQUOT is EDQUOT */ /* WSAESTALE is ESTALE */ /* WSAEREMOTE is EREMOTE */ case WSASYSNOTREADY: return "Network subsystem is unavailable"; case WSAVERNOTSUPPORTED: return "Winsock.dll version out of range"; case WSANOTINITIALISED: return "Successful WSAStartup not yet performed"; case WSAEDISCON: return "Graceful shutdown in progress"; case WSAENOMORE: case WSA_E_NO_MORE: return "No more results"; case WSAECANCELLED: case WSA_E_CANCELLED: return "Call was canceled"; case WSAEINVALIDPROCTABLE: return "Procedure call table is invalid"; case WSAEINVALIDPROVIDER: return "Service provider is invalid"; case WSAEPROVIDERFAILEDINIT: return "Service provider failed to initialize"; case WSASYSCALLFAILURE: return "System call failure"; case WSASERVICE_NOT_FOUND: return "Service not found"; case WSATYPE_NOT_FOUND: return "Class type not found"; case WSAEREFUSED: return "Database query was refused"; case WSAHOST_NOT_FOUND: return "Host not found"; case WSATRY_AGAIN: return "Nonauthoritative host not found"; case WSANO_RECOVERY: return "Nonrecoverable error"; case WSANO_DATA: return "Valid name, no data record of requested type"; /* WSA_QOS_* omitted */ # endif #endif #if GNULIB_defined_ENOMSG case ENOMSG: return "No message of desired type"; #endif #if GNULIB_defined_EIDRM case EIDRM: return "Identifier removed"; #endif #if GNULIB_defined_ENOLINK case ENOLINK: return "Link has been severed"; #endif #if GNULIB_defined_EPROTO case EPROTO: return "Protocol error"; #endif #if GNULIB_defined_EMULTIHOP case EMULTIHOP: return "Multihop attempted"; #endif #if GNULIB_defined_EBADMSG case EBADMSG: return "Bad message"; #endif #if GNULIB_defined_EOVERFLOW case EOVERFLOW: return "Value too large for defined data type"; #endif #if GNULIB_defined_ENOTSUP case ENOTSUP: return "Not supported"; #endif #if GNULIB_defined_ENETRESET case ENETRESET: return "Network dropped connection on reset"; #endif #if GNULIB_defined_ECONNABORTED case ECONNABORTED: return "Software caused connection abort"; #endif #if GNULIB_defined_ESTALE case ESTALE: return "Stale NFS file handle"; #endif #if GNULIB_defined_EDQUOT case EDQUOT: return "Disk quota exceeded"; #endif #if GNULIB_defined_ECANCELED case ECANCELED: return "Operation canceled"; #endif #if GNULIB_defined_EOWNERDEAD case EOWNERDEAD: return "Owner died"; #endif #if GNULIB_defined_ENOTRECOVERABLE case ENOTRECOVERABLE: return "State not recoverable"; #endif #if GNULIB_defined_EILSEQ case EILSEQ: return "Invalid or incomplete multibyte or wide character"; #endif default: return NULL; } } gcal-4.1/lib/filename.h0000664000000000000000000000365213041163522011657 00000000000000/* Basic filename support macros. Copyright (C) 2001-2004, 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _FILENAME_H #define _FILENAME_H #ifdef __cplusplus extern "C" { #endif /* Pathname support. ISSLASH(C) tests whether C is a directory separator character. IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not, it may be concatenated to a directory pathname. IS_PATH_WITH_DIR(P) tests whether P contains a directory specification. */ #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ /* Native Windows, Cygwin, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') # define HAS_DEVICE(P) \ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ && (P)[1] == ':') # define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P)) # define IS_PATH_WITH_DIR(P) \ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) # define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0) #else /* Unix */ # define ISSLASH(C) ((C) == '/') # define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0]) # define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL) # define FILE_SYSTEM_PREFIX_LEN(P) 0 #endif #ifdef __cplusplus } #endif #endif /* _FILENAME_H */ gcal-4.1/lib/strerror.c0000664000000000000000000000405213041163523011750 00000000000000/* strerror.c --- POSIX compatible system error routine Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include #include #include "intprops.h" #include "strerror-override.h" #include "verify.h" /* Use the system functions, not the gnulib overrides in this file. */ #undef sprintf char * strerror (int n) #undef strerror { static char buf[STACKBUF_LEN]; size_t len; /* Cast away const, due to the historical signature of strerror; callers should not be modifying the string. */ const char *msg = strerror_override (n); if (msg) return (char *) msg; msg = strerror (n); /* Our strerror_r implementation might use the system's strerror buffer, so all other clients of strerror have to see the error copied into a buffer that we manage. This is not thread-safe, even if the system strerror is, but portable programs shouldn't be using strerror if they care about thread-safety. */ if (!msg || !*msg) { static char const fmt[] = "Unknown error %d"; verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); sprintf (buf, fmt, n); errno = EINVAL; return buf; } /* Fix STACKBUF_LEN if this ever aborts. */ len = strlen (msg); if (sizeof buf <= len) abort (); memcpy (buf, msg, len + 1); return buf; } gcal-4.1/lib/dosname.h0000664000000000000000000000373313041163522011525 00000000000000/* File names on MS-DOS/Windows systems. Copyright (C) 2000-2001, 2004-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . From Paul Eggert and Jim Meyering. */ #ifndef _DOSNAME_H #define _DOSNAME_H #if (defined _WIN32 || defined __WIN32__ || \ defined __MSDOS__ || defined __CYGWIN__ || \ defined __EMX__ || defined __DJGPP__) /* This internal macro assumes ASCII, but all hosts that support drive letters use ASCII. */ # define _IS_DRIVE_LETTER(C) (((unsigned int) (C) | ('a' - 'A')) - 'a' \ <= 'z' - 'a') # define FILE_SYSTEM_PREFIX_LEN(Filename) \ (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0) # ifndef __CYGWIN__ # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 # endif # define ISSLASH(C) ((C) == '/' || (C) == '\\') #else # define FILE_SYSTEM_PREFIX_LEN(Filename) 0 # define ISSLASH(C) ((C) == '/') #endif #ifndef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 #endif #if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE # define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)]) # else # define IS_ABSOLUTE_FILE_NAME(F) \ (ISSLASH ((F)[0]) || FILE_SYSTEM_PREFIX_LEN (F) != 0) #endif #define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F)) #endif /* DOSNAME_H_ */ gcal-4.1/lib/spawn-pipe.h0000664000000000000000000001431613041163523012162 00000000000000/* Creation of subprocesses, communicating via pipes. Copyright (C) 2001-2003, 2006, 2008-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _SPAWN_PIPE_H #define _SPAWN_PIPE_H /* Get pid_t. */ #include #include #include #include #ifdef __cplusplus extern "C" { #endif /* All these functions create a subprocess and don't wait for its termination. They return the process id of the subprocess. They also return in fd[] one or two file descriptors for communication with the subprocess. If the subprocess creation fails: if exit_on_error is true, the main process exits with an error message; otherwise, an error message is given if null_stderr is false, then -1 is returned, with errno set, and fd[] remain uninitialized. After finishing communication, the caller should call wait_subprocess() to get rid of the subprocess in the process table. If slave_process is true, the child process will be terminated when its creator receives a catchable fatal signal or exits normally. If slave_process is false, the child process will continue running in this case, until it is lucky enough to attempt to communicate with its creator and thus get a SIGPIPE signal. If exit_on_error is false, a child process id of -1 should be treated the same way as a subprocess which accepts no input, produces no output and terminates with exit code 127. Why? Some errors during posix_spawnp() cause the function posix_spawnp() to return an error code; some other errors cause the subprocess to exit with return code 127. It is implementation dependent which error is reported which way. The caller must treat both cases as equivalent. It is recommended that no signal is blocked or ignored (i.e. have a signal handler with value SIG_IGN) while any of these functions is called. The reason is that child processes inherit the mask of blocked signals from their parent (both through posix_spawn() and fork()/exec()); likewise, signals ignored in the parent are also ignored in the child (except possibly for SIGCHLD). And POSIX:2001 says [in the description of exec()]: "it should be noted that many existing applications wrongly assume that they start with certain signals set to the default action and/or unblocked. In particular, applications written with a simpler signal model that does not include blocking of signals, such as the one in the ISO C standard, may not behave properly if invoked with some signals blocked. Therefore, it is best not to block or ignore signals across execs without explicit reason to do so, and especially not to block signals across execs of arbitrary (not closely co-operating) programs." */ /* Open a pipe for output to a child process. * The child's stdout goes to a file. * * write system read * parent -> fd[0] -> STDIN_FILENO -> child * * Note: When writing to a child process, it is useful to ignore the SIGPIPE * signal and the EPIPE error code. */ extern pid_t create_pipe_out (const char *progname, const char *prog_path, char **prog_argv, const char *prog_stdout, bool null_stderr, bool slave_process, bool exit_on_error, int fd[1]); /* Open a pipe for input from a child process. * The child's stdin comes from a file. * * read system write * parent <- fd[0] <- STDOUT_FILENO <- child * */ extern pid_t create_pipe_in (const char *progname, const char *prog_path, char **prog_argv, const char *prog_stdin, bool null_stderr, bool slave_process, bool exit_on_error, int fd[1]); /* Open a bidirectional pipe. * * write system read * parent -> fd[1] -> STDIN_FILENO -> child * parent <- fd[0] <- STDOUT_FILENO <- child * read system write * * Note: When writing to a child process, it is useful to ignore the SIGPIPE * signal and the EPIPE error code. * * Note: The parent process must be careful to avoid deadlock. * 1) If you write more than PIPE_MAX bytes or, more generally, if you write * more bytes than the subprocess can handle at once, the subprocess * may write its data and wait on you to read it, but you are currently * busy writing. * 2) When you don't know ahead of time how many bytes the subprocess * will produce, the usual technique of calling read (fd, buf, BUFSIZ) * with a fixed BUFSIZ will, on Linux 2.2.17 and on BSD systems, cause * the read() call to block until *all* of the buffer has been filled. * But the subprocess cannot produce more data until you gave it more * input. But you are currently busy reading from it. */ extern pid_t create_pipe_bidi (const char *progname, const char *prog_path, char **prog_argv, bool null_stderr, bool slave_process, bool exit_on_error, int fd[2]); /* The name of the "always silent" device. */ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Native Windows API. */ # define DEV_NULL "NUL" #else /* Unix API. */ # define DEV_NULL "/dev/null" #endif #ifdef __cplusplus } #endif #endif /* _SPAWN_PIPE_H */ gcal-4.1/lib/lseek.c0000664000000000000000000000343313041163522011172 00000000000000/* An lseek() function that detects pipes. Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include /* Specification. */ #include #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Windows platforms. */ /* Get GetFileType. */ # include /* Get _get_osfhandle. */ # include "msvc-nothrow.h" #else # include #endif #include #undef lseek off_t rpl_lseek (int fd, off_t offset, int whence) { #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* mingw lseek mistakenly succeeds on pipes, sockets, and terminals. */ HANDLE h = (HANDLE) _get_osfhandle (fd); if (h == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } if (GetFileType (h) != FILE_TYPE_DISK) { errno = ESPIPE; return -1; } #else /* BeOS lseek mistakenly succeeds on pipes... */ struct stat statbuf; if (fstat (fd, &statbuf) < 0) return -1; if (!S_ISREG (statbuf.st_mode)) { errno = ESPIPE; return -1; } #endif #if _GL_WINDOWS_64_BIT_OFF_T return _lseeki64 (fd, offset, whence); #else return lseek (fd, offset, whence); #endif } gcal-4.1/lib/spawn_int.h0000664000000000000000000000331413041163523012075 00000000000000/* Copyright (C) 2000, 2008-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Data structure to contain the action information. */ struct __spawn_action { enum { spawn_do_close, spawn_do_dup2, spawn_do_open } tag; union { struct { int fd; } close_action; struct { int fd; int newfd; } dup2_action; struct { int fd; const char *path; int oflag; mode_t mode; } open_action; } action; }; #if !_LIBC # define __posix_spawn_file_actions_realloc gl_posix_spawn_file_actions_realloc #endif extern int __posix_spawn_file_actions_realloc (posix_spawn_file_actions_t * file_actions); #if !_LIBC # define __spawni gl_posix_spawn_internal #endif extern int __spawni (pid_t *pid, const char *path, const posix_spawn_file_actions_t *file_actions, const posix_spawnattr_t *attrp, char *const argv[], char *const envp[], int use_path); gcal-4.1/lib/stripslash.c0000664000000000000000000000304113041163523012257 00000000000000/* stripslash.c -- remove redundant trailing slashes from a file name Copyright (C) 1990, 2001, 2003-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include "dirname.h" /* Remove trailing slashes from FILE. Return true if a trailing slash was removed. This is useful when using file name completion from a shell that adds a "/" after directory names (such as tcsh and bash), because on symlinks to directories, several system calls have different semantics according to whether a trailing slash is present. */ bool strip_trailing_slashes (char *file) { char *base = last_component (file); char *base_lim; bool had_slash; /* last_component returns "" for file system roots, but we need to turn "///" into "/". */ if (! *base) base = file; base_lim = base + base_len (base); had_slash = (*base_lim != '\0'); *base_lim = '\0'; return had_slash; } gcal-4.1/lib/spawni.c0000664000000000000000000002510613041163523011372 00000000000000/* Guts of POSIX spawn interface. Generic POSIX.1 version. Copyright (C) 2000-2006, 2008-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include "spawn_int.h" #include #include #include #ifndef O_LARGEFILE # define O_LARGEFILE 0 #endif #if _LIBC || HAVE_PATHS_H # include #else # define _PATH_BSHELL "/bin/sh" #endif #include #include #include #include #if _LIBC # include #else # define close_not_cancel close # define open_not_cancel open #endif #if _LIBC # include #else # if !HAVE_SETEUID # define seteuid(id) setresuid (-1, id, -1) # endif # if !HAVE_SETEGID # define setegid(id) setresgid (-1, id, -1) # endif # define local_seteuid(id) seteuid (id) # define local_setegid(id) setegid (id) #endif #if _LIBC # define alloca __alloca # define execve __execve # define dup2 __dup2 # define fork __fork # define getgid __getgid # define getuid __getuid # define sched_setparam __sched_setparam # define sched_setscheduler __sched_setscheduler # define setpgid __setpgid # define sigaction __sigaction # define sigismember __sigismember # define sigprocmask __sigprocmask # define strchrnul __strchrnul # define vfork __vfork #else # undef internal_function # define internal_function /* empty */ #endif /* The Unix standard contains a long explanation of the way to signal an error after the fork() was successful. Since no new wait status was wanted there is no way to signal an error using one of the available methods. The committee chose to signal an error by a normal program exit with the exit code 127. */ #define SPAWN_ERROR 127 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Native Windows API. */ int __spawni (pid_t *pid, const char *file, const posix_spawn_file_actions_t *file_actions, const posix_spawnattr_t *attrp, char *const argv[], char *const envp[], int use_path) { /* Not yet implemented. */ return ENOSYS; } #else /* The file is accessible but it is not an executable file. Invoke the shell to interpret it as a script. */ static void internal_function script_execute (const char *file, char *const argv[], char *const envp[]) { /* Count the arguments. */ int argc = 0; while (argv[argc++]) ; /* Construct an argument list for the shell. */ { char **new_argv = (char **) alloca ((argc + 1) * sizeof (char *)); new_argv[0] = (char *) _PATH_BSHELL; new_argv[1] = (char *) file; while (argc > 1) { new_argv[argc] = argv[argc - 1]; --argc; } /* Execute the shell. */ execve (new_argv[0], new_argv, envp); } } /* Spawn a new process executing PATH with the attributes describes in *ATTRP. Before running the process perform the actions described in FILE-ACTIONS. */ int __spawni (pid_t *pid, const char *file, const posix_spawn_file_actions_t *file_actions, const posix_spawnattr_t *attrp, char *const argv[], char *const envp[], int use_path) { pid_t new_pid; char *path, *p, *name; size_t len; size_t pathlen; /* Do this once. */ short int flags = attrp == NULL ? 0 : attrp->_flags; /* Avoid gcc warning "variable 'flags' might be clobbered by 'longjmp' or 'vfork'" */ (void) &flags; /* Generate the new process. */ #if HAVE_VFORK if ((flags & POSIX_SPAWN_USEVFORK) != 0 /* If no major work is done, allow using vfork. Note that we might perform the path searching. But this would be done by a call to execvp(), too, and such a call must be OK according to POSIX. */ || ((flags & (POSIX_SPAWN_SETSIGMASK | POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSCHEDPARAM | POSIX_SPAWN_SETSCHEDULER | POSIX_SPAWN_SETPGROUP | POSIX_SPAWN_RESETIDS)) == 0 && file_actions == NULL)) new_pid = vfork (); else #endif new_pid = fork (); if (new_pid != 0) { if (new_pid < 0) return errno; /* The call was successful. Store the PID if necessary. */ if (pid != NULL) *pid = new_pid; return 0; } /* Set signal mask. */ if ((flags & POSIX_SPAWN_SETSIGMASK) != 0 && sigprocmask (SIG_SETMASK, &attrp->_ss, NULL) != 0) _exit (SPAWN_ERROR); /* Set signal default action. */ if ((flags & POSIX_SPAWN_SETSIGDEF) != 0) { /* We have to iterate over all signals. This could possibly be done better but it requires system specific solutions since the sigset_t data type can be very different on different architectures. */ int sig; struct sigaction sa; memset (&sa, '\0', sizeof (sa)); sa.sa_handler = SIG_DFL; for (sig = 1; sig <= NSIG; ++sig) if (sigismember (&attrp->_sd, sig) != 0 && sigaction (sig, &sa, NULL) != 0) _exit (SPAWN_ERROR); } #if (_LIBC ? defined _POSIX_PRIORITY_SCHEDULING : HAVE_SCHED_SETPARAM && HAVE_SCHED_SETSCHEDULER) /* Set the scheduling algorithm and parameters. */ if ((flags & (POSIX_SPAWN_SETSCHEDPARAM | POSIX_SPAWN_SETSCHEDULER)) == POSIX_SPAWN_SETSCHEDPARAM) { if (sched_setparam (0, &attrp->_sp) == -1) _exit (SPAWN_ERROR); } else if ((flags & POSIX_SPAWN_SETSCHEDULER) != 0) { if (sched_setscheduler (0, attrp->_policy, (flags & POSIX_SPAWN_SETSCHEDPARAM) != 0 ? &attrp->_sp : NULL) == -1) _exit (SPAWN_ERROR); } #endif /* Set the process group ID. */ if ((flags & POSIX_SPAWN_SETPGROUP) != 0 && setpgid (0, attrp->_pgrp) != 0) _exit (SPAWN_ERROR); /* Set the effective user and group IDs. */ if ((flags & POSIX_SPAWN_RESETIDS) != 0 && (local_seteuid (getuid ()) != 0 || local_setegid (getgid ()) != 0)) _exit (SPAWN_ERROR); /* Execute the file actions. */ if (file_actions != NULL) { int cnt; for (cnt = 0; cnt < file_actions->_used; ++cnt) { struct __spawn_action *action = &file_actions->_actions[cnt]; switch (action->tag) { case spawn_do_close: if (close_not_cancel (action->action.close_action.fd) != 0) /* Signal the error. */ _exit (SPAWN_ERROR); break; case spawn_do_open: { int new_fd = open_not_cancel (action->action.open_action.path, action->action.open_action.oflag | O_LARGEFILE, action->action.open_action.mode); if (new_fd == -1) /* The 'open' call failed. */ _exit (SPAWN_ERROR); /* Make sure the desired file descriptor is used. */ if (new_fd != action->action.open_action.fd) { if (dup2 (new_fd, action->action.open_action.fd) != action->action.open_action.fd) /* The 'dup2' call failed. */ _exit (SPAWN_ERROR); if (close_not_cancel (new_fd) != 0) /* The 'close' call failed. */ _exit (SPAWN_ERROR); } } break; case spawn_do_dup2: if (dup2 (action->action.dup2_action.fd, action->action.dup2_action.newfd) != action->action.dup2_action.newfd) /* The 'dup2' call failed. */ _exit (SPAWN_ERROR); break; } } } if (! use_path || strchr (file, '/') != NULL) { /* The FILE parameter is actually a path. */ execve (file, argv, envp); if (errno == ENOEXEC) script_execute (file, argv, envp); /* Oh, oh. 'execve' returns. This is bad. */ _exit (SPAWN_ERROR); } /* We have to search for FILE on the path. */ path = getenv ("PATH"); if (path == NULL) { #if HAVE_CONFSTR /* There is no 'PATH' in the environment. The default search path is the current directory followed by the path 'confstr' returns for '_CS_PATH'. */ len = confstr (_CS_PATH, (char *) NULL, 0); path = (char *) alloca (1 + len); path[0] = ':'; (void) confstr (_CS_PATH, path + 1, len); #else /* Pretend that the PATH contains only the current directory. */ path = ""; #endif } len = strlen (file) + 1; pathlen = strlen (path); name = alloca (pathlen + len + 1); /* Copy the file name at the top. */ name = (char *) memcpy (name + pathlen + 1, file, len); /* And add the slash. */ *--name = '/'; p = path; do { char *startp; path = p; p = strchrnul (path, ':'); if (p == path) /* Two adjacent colons, or a colon at the beginning or the end of 'PATH' means to search the current directory. */ startp = name + 1; else startp = (char *) memcpy (name - (p - path), path, p - path); /* Try to execute this name. If it works, execv will not return. */ execve (startp, argv, envp); if (errno == ENOEXEC) script_execute (startp, argv, envp); switch (errno) { case EACCES: case ENOENT: case ESTALE: case ENOTDIR: /* Those errors indicate the file is missing or not executable by us, in which case we want to just try the next path directory. */ break; default: /* Some other error means we found an executable file, but something went wrong executing it; return the error to our caller. */ _exit (SPAWN_ERROR); } } while (*p++ != '\0'); /* Return with an error. */ _exit (SPAWN_ERROR); } #endif gcal-4.1/lib/stdbool.in.h0000664000000000000000000001177213041163523012155 00000000000000/* Copyright (C) 2001-2003, 2006-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _GL_STDBOOL_H #define _GL_STDBOOL_H /* ISO C 99 for platforms that lack it. */ /* Usage suggestions: Programs that use should be aware of some limitations and standards compliance issues. Standards compliance: - must be #included before 'bool', 'false', 'true' can be used. - You cannot assume that sizeof (bool) == 1. - Programs should not undefine the macros bool, true, and false, as C99 lists that as an "obsolescent feature". Limitations of this substitute, when used in a C89 environment: - must be #included before the '_Bool' type can be used. - You cannot assume that _Bool is a typedef; it might be a macro. - Bit-fields of type 'bool' are not supported. Portable code should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. - In C99, casts and automatic conversions to '_Bool' or 'bool' are performed in such a way that every nonzero value gets converted to 'true', and zero gets converted to 'false'. This doesn't work with this substitute. With this substitute, only the values 0 and 1 give the expected result when converted to _Bool' or 'bool'. - C99 allows the use of (_Bool)0.0 in constant expressions, but this substitute cannot always provide this property. Also, it is suggested that programs use 'bool' rather than '_Bool'; this isn't required, but 'bool' is more common. */ /* 7.16. Boolean type and values */ /* BeOS already #defines false 0, true 1. We use the same definitions below, but temporarily we have to #undef them. */ #if defined __BEOS__ && !defined __HAIKU__ # include /* defines bool but not _Bool */ # undef false # undef true #endif #ifdef __cplusplus # define _Bool bool # define bool bool #else # if defined __BEOS__ && !defined __HAIKU__ /* A compiler known to have 'bool'. */ /* If the compiler already has both 'bool' and '_Bool', we can assume they are the same types. */ # if !@HAVE__BOOL@ typedef bool _Bool; # endif # else # if !defined __GNUC__ /* If @HAVE__BOOL@: Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when the built-in _Bool type is used. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html Similar bugs are likely with other compilers as well; this file wouldn't be used if was working. So we override the _Bool type. If !@HAVE__BOOL@: Need to define _Bool ourselves. As 'signed char' or as an enum type? Use of a typedef, with SunPRO C, leads to a stupid "warning: _Bool is a keyword in ISO C99". Use of an enum type, with IRIX cc, leads to a stupid "warning(1185): enumerated type mixed with another type". Even the existence of an enum type, without a typedef, "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. The only benefit of the enum, debuggability, is not important with these compilers. So use 'signed char' and no enum. */ # define _Bool signed char # else /* With this compiler, trust the _Bool type if the compiler has it. */ # if !@HAVE__BOOL@ /* For the sake of symbolic names in gdb, define true and false as enum constants, not only as macros. It is tempting to write typedef enum { false = 0, true = 1 } _Bool; so that gdb prints values of type 'bool' symbolically. But then values of type '_Bool' might promote to 'int' or 'unsigned int' (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int' (see ISO C 99 6.3.1.1.(2)). So add a negative value to the enum; this ensures that '_Bool' promotes to 'int'. */ typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool; # endif # endif # endif # define bool _Bool #endif /* The other macros must be usable in preprocessor directives. */ #ifdef __cplusplus # define false false # define true true #else # define false 0 # define true 1 #endif #define __bool_true_false_are_defined 1 #endif /* _GL_STDBOOL_H */ gcal-4.1/lib/free.c0000664000000000000000000000163713041163522011014 00000000000000/* Work around incompatibility on older systems where free (NULL) fails. Copyright (C) 2003, 2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* written by Paul Eggert */ #include #undef free #include void rpl_free (void *p) { if (p) free (p); } gcal-4.1/lib/stddef.in.h0000664000000000000000000000726213041163523011757 00000000000000/* A substitute for POSIX 2008 , for platforms that have issues. Copyright (C) 2009-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Eric Blake. */ /* * POSIX 2008 for platforms that have issues. * */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_wchar_t || defined __need_size_t \ || defined __need_ptrdiff_t || defined __need_NULL \ || defined __need_wint_t /* Special invocation convention inside gcc header files. In particular, gcc provides a version of that blindly redefines NULL even when __need_wint_t was defined, even though wint_t is not normally provided by . Hence, we must remember if special invocation has ever been used to obtain wint_t, in which case we need to clean up NULL yet again. */ # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) # ifdef __need_wint_t # define _GL_STDDEF_WINT_T # endif # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ # endif #else /* Normal invocation convention. */ # ifndef _@GUARD_PREFIX@_STDDEF_H /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ # if (@REPLACE_NULL@ \ && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T)) # undef NULL # ifdef __cplusplus /* ISO C++ says that the macro NULL must expand to an integer constant expression, hence '((void *) 0)' is not allowed in C++. */ # if __GNUG__ >= 3 /* GNU C++ has a __null macro that behaves like an integer ('int' or 'long') but has the same size as a pointer. Use that, to avoid warnings. */ # define NULL __null # else # define NULL 0L # endif # else # define NULL ((void *) 0) # endif # endif # ifndef _@GUARD_PREFIX@_STDDEF_H # define _@GUARD_PREFIX@_STDDEF_H /* Some platforms lack wchar_t. */ #if !@HAVE_WCHAR_T@ # define wchar_t int #endif /* Some platforms lack max_align_t. The check for _GCC_MAX_ALIGN_T is a hack in case the configure-time test was done with g++ even though we are currently compiling with gcc. */ #if ! (@HAVE_MAX_ALIGN_T@ || defined _GCC_MAX_ALIGN_T) /* On the x86, the maximum storage alignment of double, long, etc. is 4, but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8, and the C11 standard allows this. Work around this problem by using __alignof__ (which returns 8 for double) rather than _Alignof (which returns 4), and align each union member accordingly. */ # ifdef __GNUC__ # define _GL_STDDEF_ALIGNAS(type) \ __attribute__ ((__aligned__ (__alignof__ (type)))) # else # define _GL_STDDEF_ALIGNAS(type) /* */ # endif typedef union { char *__p _GL_STDDEF_ALIGNAS (char *); double __d _GL_STDDEF_ALIGNAS (double); long double __ld _GL_STDDEF_ALIGNAS (long double); long int __i _GL_STDDEF_ALIGNAS (long int); } max_align_t; #endif # endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */ #endif /* __need_XXX */ gcal-4.1/lib/getprogname.h0000664000000000000000000000217313041163522012404 00000000000000/* Program name management. Copyright (C) 2016-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _GL_GETPROGNAME_H #define _GL_GETPROGNAME_H #include #ifdef __cplusplus extern "C" { #endif /* Return the base name of the executing program. On native Windows this will usually end in ".exe" or ".EXE". */ #ifndef HAVE_GETPROGNAME extern char const *getprogname (void) # ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME _GL_ATTRIBUTE_PURE # endif ; #endif #ifdef __cplusplus } #endif #endif gcal-4.1/lib/time.in.h0000664000000000000000000002564513041163523011451 00000000000000/* A more-standard . Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Don't get in the way of glibc when it includes time.h merely to declare a few standard symbols, rather than to declare all the symbols. (However, skip this for MinGW as it treats __need_time_t incompatibly.) Also, Solaris 8 eventually includes itself recursively; if that is happening, just include the system without adding our own declarations. */ #if (((defined __need_time_t || defined __need_clock_t \ || defined __need_timespec) \ && !defined __MINGW32__) \ || defined _@GUARD_PREFIX@_TIME_H) # @INCLUDE_NEXT@ @NEXT_TIME_H@ #else # define _@GUARD_PREFIX@_TIME_H # @INCLUDE_NEXT@ @NEXT_TIME_H@ /* NetBSD 5.0 mis-defines NULL. */ # include /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3). Or they define it with the wrong member names or define it in (e.g., FreeBSD circa 1997). Stock Mingw prior to 3.0 does not define it, but the pthreads-win32 library defines it in . */ # if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ # if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ # include # elif @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ # include # elif @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ # include # else # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_struct_timespec # undef timespec # define timespec rpl_timespec struct timespec { time_t tv_sec; long int tv_nsec; }; # define GNULIB_defined_struct_timespec 1 # endif # ifdef __cplusplus } # endif # endif # endif # if !GNULIB_defined_struct_time_t_must_be_integral /* Per http://austingroupbugs.net/view.php?id=327, POSIX requires time_t to be an integer type, even though C99 permits floating point. We don't know of any implementation that uses floating point, and it is much easier to write code that doesn't have to worry about that corner case, so we force the issue. */ struct __time_t_must_be_integral { unsigned int __floating_time_t_unsupported : (time_t) 1; }; # define GNULIB_defined_struct_time_t_must_be_integral 1 # endif /* Sleep for at least RQTP seconds unless interrupted, If interrupted, return -1 and store the remaining time into RMTP. See . */ # if @GNULIB_NANOSLEEP@ # if @REPLACE_NANOSLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define nanosleep rpl_nanosleep # endif _GL_FUNCDECL_RPL (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp)); # else # if ! @HAVE_NANOSLEEP@ _GL_FUNCDECL_SYS (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp)); # endif _GL_CXXALIASWARN (nanosleep); # endif /* Return the 'time_t' representation of TP and normalize TP. */ # if @GNULIB_MKTIME@ # if @REPLACE_MKTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mktime rpl_mktime # endif _GL_FUNCDECL_RPL (mktime, time_t, (struct tm *__tp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mktime, time_t, (struct tm *__tp)); # else _GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp)); # endif _GL_CXXALIASWARN (mktime); # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See and . */ # if @GNULIB_TIME_R@ # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localtime_r # define localtime_r rpl_localtime_r # endif _GL_FUNCDECL_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else # if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif # if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (localtime_r); # endif # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gmtime_r # define gmtime_r rpl_gmtime_r # endif _GL_FUNCDECL_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else # if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif # if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (gmtime_r); # endif # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See and . */ # if @GNULIB_GETTIMEOFDAY@ # if @REPLACE_LOCALTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localtime # define localtime rpl_localtime # endif _GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer)); # else _GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer)); # endif _GL_CXXALIASWARN (localtime); # endif # if @GNULIB_GETTIMEOFDAY@ # if @REPLACE_GMTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gmtime # define gmtime rpl_gmtime # endif _GL_FUNCDECL_RPL (gmtime, struct tm *, (time_t const *__timer) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gmtime, struct tm *, (time_t const *__timer)); # else _GL_CXXALIAS_SYS (gmtime, struct tm *, (time_t const *__timer)); # endif _GL_CXXALIASWARN (gmtime); # endif /* Parse BUF as a timestamp, assuming FORMAT specifies its layout, and store the resulting broken-down time into TM. See . */ # if @GNULIB_STRPTIME@ # if ! @HAVE_STRPTIME@ _GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm)); _GL_CXXALIASWARN (strptime); # endif # if defined _GNU_SOURCE && @GNULIB_TIME_RZ@ && ! @HAVE_TIMEZONE_T@ typedef struct tm_zone *timezone_t; _GL_FUNCDECL_SYS (tzalloc, timezone_t, (char const *__name)); _GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name)); _GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz)); _GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz)); _GL_FUNCDECL_SYS (localtime_rz, struct tm *, (timezone_t __tz, time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_SYS (localtime_rz, struct tm *, (timezone_t __tz, time_t const *restrict __timer, struct tm *restrict __result)); _GL_FUNCDECL_SYS (mktime_z, time_t, (timezone_t __tz, struct tm *restrict __result) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_SYS (mktime_z, time_t, (timezone_t __tz, struct tm *restrict __result)); # endif /* Convert TM to a time_t value, assuming UTC. */ # if @GNULIB_TIMEGM@ # if @REPLACE_TIMEGM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef timegm # define timegm rpl_timegm # endif _GL_FUNCDECL_RPL (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (timegm, time_t, (struct tm *__tm)); # else # if ! @HAVE_TIMEGM@ _GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm)); # endif _GL_CXXALIASWARN (timegm); # endif /* Encourage applications to avoid unsafe functions that can overrun buffers when given outlandish struct tm values. Portable applications should use strftime (or even sprintf) instead. */ # if defined GNULIB_POSIXCHECK # undef asctime _GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef asctime_r _GL_WARN_ON_USE (asctime, "asctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef ctime _GL_WARN_ON_USE (asctime, "ctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef ctime_r _GL_WARN_ON_USE (asctime, "ctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif #endif gcal-4.1/lib/sys_wait.in.h0000664000000000000000000000742313041163523012347 00000000000000/* A POSIX-like . Copyright (C) 2001-2003, 2005-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_SYS_WAIT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # @INCLUDE_NEXT@ @NEXT_SYS_WAIT_H@ #endif #ifndef _@GUARD_PREFIX@_SYS_WAIT_H #define _@GUARD_PREFIX@_SYS_WAIT_H /* Get pid_t. */ #include /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) /* Unix API. */ /* The following macros apply to an argument x, that is a status of a process, as returned by waitpid(). On nearly all systems, including Linux/x86, WEXITSTATUS are bits 15..8 and WTERMSIG are bits 7..0, while BeOS uses the opposite. Therefore programs have to use the abstract macros. */ /* For valid x, exactly one of WIFSIGNALED(x), WIFEXITED(x), WIFSTOPPED(x) is true. */ # ifndef WIFSIGNALED # define WIFSIGNALED(x) (WTERMSIG (x) != 0 && WTERMSIG(x) != 0x7f) # endif # ifndef WIFEXITED # define WIFEXITED(x) (WTERMSIG (x) == 0) # endif # ifndef WIFSTOPPED # define WIFSTOPPED(x) (WTERMSIG (x) == 0x7f) # endif /* The termination signal. Only to be accessed if WIFSIGNALED(x) is true. */ # ifndef WTERMSIG # define WTERMSIG(x) ((x) & 0x7f) # endif /* The exit status. Only to be accessed if WIFEXITED(x) is true. */ # ifndef WEXITSTATUS # define WEXITSTATUS(x) (((x) >> 8) & 0xff) # endif /* The stopping signal. Only to be accessed if WIFSTOPPED(x) is true. */ # ifndef WSTOPSIG # define WSTOPSIG(x) (((x) >> 8) & 0x7f) # endif /* True if the process dumped core. Not standardized by POSIX. */ # ifndef WCOREDUMP # define WCOREDUMP(x) ((x) & 0x80) # endif #else /* Native Windows API. */ # include /* for SIGTERM */ /* The following macros apply to an argument x, that is a status of a process, as returned by waitpid() or, equivalently, _cwait() or GetExitCodeProcess(). This value is simply an 'int', not composed of bit fields. */ /* When an unhandled fatal signal terminates a process, the exit code is 3. */ # define WIFSIGNALED(x) ((x) == 3) # define WIFEXITED(x) ((x) != 3) # define WIFSTOPPED(x) 0 /* The signal that terminated a process is not known posthum. */ # define WTERMSIG(x) SIGTERM # define WEXITSTATUS(x) (x) /* There are no stopping signals. */ # define WSTOPSIG(x) 0 /* There are no core dumps. */ # define WCOREDUMP(x) 0 #endif /* Declarations of functions. */ #if @GNULIB_WAITPID@ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ _GL_FUNCDECL_SYS (waitpid, pid_t, (pid_t pid, int *statusp, int options)); # endif _GL_CXXALIAS_SYS (waitpid, pid_t, (pid_t pid, int *statusp, int options)); _GL_CXXALIASWARN (waitpid); #elif defined GNULIB_POSIXCHECK # undef waitpid # if HAVE_RAW_DECL_WAITPID _GL_WARN_ON_USE (waitpid, "waitpid is unportable - " "use gnulib module sys_wait for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_SYS_WAIT_H */ #endif /* _@GUARD_PREFIX@_SYS_WAIT_H */ gcal-4.1/lib/fstat.c0000664000000000000000000000460513041163522011212 00000000000000/* fstat() replacement. Copyright (C) 2011-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_fstat doesn't recurse to rpl_fstat. */ #define __need_system_sys_stat_h #include /* Get the original definition of fstat. It might be defined as a macro. */ #include #include #if _GL_WINDOWS_64_BIT_ST_SIZE # undef stat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */ # define stat _stati64 # undef fstat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */ # define fstat _fstati64 #endif #undef __need_system_sys_stat_h static int orig_fstat (int fd, struct stat *buf) { return fstat (fd, buf); } /* Specification. */ /* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ #include "sys/stat.h" #include #include #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int fstat_nothrow (int fd, struct stat *buf) { int result; TRY_MSVC_INVAL { result = orig_fstat (fd, buf); } CATCH_MSVC_INVAL { result = -1; errno = EBADF; } DONE_MSVC_INVAL; return result; } #else # define fstat_nothrow orig_fstat #endif int rpl_fstat (int fd, struct stat *buf) { #if REPLACE_FCHDIR && REPLACE_OPEN_DIRECTORY /* Handle the case when rpl_open() used a dummy file descriptor to work around an open() that can't normally visit directories. */ const char *name = _gl_directory_name (fd); if (name != NULL) return stat (name, buf); #endif return fstat_nothrow (fd, buf); } gcal-4.1/lib/msvc-inval.h0000664000000000000000000002113513041163522012152 00000000000000/* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 2011-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _MSVC_INVAL_H #define _MSVC_INVAL_H /* With MSVC runtime libraries with the "invalid parameter handler" concept, functions like fprintf(), dup2(), or close() crash when the caller passes an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) instead. This file defines macros that turn such an invalid parameter notification into a non-local exit. An error code can then be produced at the target of this exit. You can thus write code like TRY_MSVC_INVAL { } CATCH_MSVC_INVAL { } DONE_MSVC_INVAL; This entire block expands to a single statement. The handling of invalid parameters can be done in three ways: * The default way, which is reasonable for programs (not libraries): AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING]) * The way for libraries that make "hairy" calls (like close(-1), or fclose(fp) where fileno(fp) is closed, or simply getdtablesize()): AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING]) * The way for libraries that make no "hairy" calls: AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING]) */ #define DEFAULT_HANDLING 0 #define HAIRY_LIBRARY_HANDLING 1 #define SANE_LIBRARY_HANDLING 2 #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) /* A native Windows platform with the "invalid parameter handler" concept, and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING. */ # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING /* Default handling. */ # ifdef __cplusplus extern "C" { # endif /* Ensure that the invalid parameter handler in installed that just returns. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ gl_msvc_inval_ensure_handler (); \ if (1) # define CATCH_MSVC_INVAL \ else # define DONE_MSVC_INVAL \ } \ while (0) # else /* Handling for hairy libraries. */ # include /* Gnulib can define its own status codes, as described in the page "Raising Software Exceptions" on microsoft.com . Our status codes are composed of - 0xE0000000, mandatory for all user-defined status codes, - 0x474E550, a API identifier ("GNU"), - 0, 1, 2, ..., used to distinguish different status codes from the same API. */ # define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0) # if defined _MSC_VER /* A compiler that supports __try/__except, as described in the page "try-except statement" on microsoft.com . With __try/__except, we can use the multithread-safe exception handling. */ # ifdef __cplusplus extern "C" { # endif /* Ensure that the invalid parameter handler in installed that raises a software exception with code STATUS_GNULIB_INVALID_PARAMETER. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ gl_msvc_inval_ensure_handler (); \ __try # define CATCH_MSVC_INVAL \ __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER \ ? EXCEPTION_EXECUTE_HANDLER \ : EXCEPTION_CONTINUE_SEARCH) # define DONE_MSVC_INVAL \ } \ while (0) # else /* Any compiler. We can only use setjmp/longjmp. */ # include # ifdef __cplusplus extern "C" { # endif struct gl_msvc_inval_per_thread { /* The restart that will resume execution at the code between CATCH_MSVC_INVAL and DONE_MSVC_INVAL. It is enabled only between TRY_MSVC_INVAL and CATCH_MSVC_INVAL. */ jmp_buf restart; /* Tells whether the contents of restart is valid. */ int restart_valid; }; /* Ensure that the invalid parameter handler in installed that passes control to the gl_msvc_inval_restart if it is valid, or raises a software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); /* Return a pointer to the per-thread data for the current thread. */ extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ struct gl_msvc_inval_per_thread *msvc_inval_current; \ gl_msvc_inval_ensure_handler (); \ msvc_inval_current = gl_msvc_inval_current (); \ /* First, initialize gl_msvc_inval_restart. */ \ if (setjmp (msvc_inval_current->restart) == 0) \ { \ /* Then, mark it as valid. */ \ msvc_inval_current->restart_valid = 1; # define CATCH_MSVC_INVAL \ /* Execution completed. \ Mark gl_msvc_inval_restart as invalid. */ \ msvc_inval_current->restart_valid = 0; \ } \ else \ { \ /* Execution triggered an invalid parameter notification. \ Mark gl_msvc_inval_restart as invalid. */ \ msvc_inval_current->restart_valid = 0; # define DONE_MSVC_INVAL \ } \ } \ while (0) # endif # endif #else /* A platform that does not need to the invalid parameter handler, or when SANE_LIBRARY_HANDLING is desired. */ /* The braces here avoid GCC warnings like "warning: suggest explicit braces to avoid ambiguous 'else'". */ # define TRY_MSVC_INVAL \ do \ { \ if (1) # define CATCH_MSVC_INVAL \ else # define DONE_MSVC_INVAL \ } \ while (0) #endif #endif /* _MSVC_INVAL_H */ gcal-4.1/lib/ref-add.sin0000664000000000000000000000175213041163523011743 00000000000000# Add this package to a list of references stored in a text file. # # Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, see . # # Written by Bruno Haible . # /^# Packages using this file: / { s/# Packages using this file:// ta :a s/ @PACKAGE@ / @PACKAGE@ / tb s/ $/ @PACKAGE@ / :b s/^/# Packages using this file:/ } gcal-4.1/lib/iconv.in.h0000664000000000000000000000674413041163522011627 00000000000000/* A GNU-like . Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_ICONV_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_ICONV_H@ #ifndef _@GUARD_PREFIX@_ICONV_H #define _@GUARD_PREFIX@_ICONV_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #if @GNULIB_ICONV@ # if @REPLACE_ICONV_OPEN@ /* An iconv_open wrapper that supports the IANA standardized encoding names ("ISO-8859-1" etc.) as far as possible. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iconv_open rpl_iconv_open # endif _GL_FUNCDECL_RPL (iconv_open, iconv_t, (const char *tocode, const char *fromcode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (iconv_open, iconv_t, (const char *tocode, const char *fromcode)); # else _GL_CXXALIAS_SYS (iconv_open, iconv_t, (const char *tocode, const char *fromcode)); # endif _GL_CXXALIASWARN (iconv_open); #endif #if @REPLACE_ICONV_UTF@ /* Special constants for supporting UTF-{16,32}{BE,LE} encodings. Not public. */ # define _ICONV_UTF8_UTF16BE (iconv_t)(-161) # define _ICONV_UTF8_UTF16LE (iconv_t)(-162) # define _ICONV_UTF8_UTF32BE (iconv_t)(-163) # define _ICONV_UTF8_UTF32LE (iconv_t)(-164) # define _ICONV_UTF16BE_UTF8 (iconv_t)(-165) # define _ICONV_UTF16LE_UTF8 (iconv_t)(-166) # define _ICONV_UTF32BE_UTF8 (iconv_t)(-167) # define _ICONV_UTF32LE_UTF8 (iconv_t)(-168) #endif #if @GNULIB_ICONV@ # if @REPLACE_ICONV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iconv rpl_iconv # endif _GL_FUNCDECL_RPL (iconv, size_t, (iconv_t cd, @ICONV_CONST@ char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)); _GL_CXXALIAS_RPL (iconv, size_t, (iconv_t cd, @ICONV_CONST@ char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)); # else _GL_CXXALIAS_SYS (iconv, size_t, (iconv_t cd, @ICONV_CONST@ char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)); # endif _GL_CXXALIASWARN (iconv); # ifndef ICONV_CONST # define ICONV_CONST @ICONV_CONST@ # endif #endif #if @GNULIB_ICONV@ # if @REPLACE_ICONV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iconv_close rpl_iconv_close # endif _GL_FUNCDECL_RPL (iconv_close, int, (iconv_t cd)); _GL_CXXALIAS_RPL (iconv_close, int, (iconv_t cd)); # else _GL_CXXALIAS_SYS (iconv_close, int, (iconv_t cd)); # endif _GL_CXXALIASWARN (iconv_close); #endif #endif /* _@GUARD_PREFIX@_ICONV_H */ #endif /* _@GUARD_PREFIX@_ICONV_H */ gcal-4.1/lib/cloexec.c0000664000000000000000000000442713041163522011515 00000000000000/* closexec.c - set or clear the close-on-exec descriptor flag Copyright (C) 1991, 2004-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . The code is taken from glibc/manual/llio.texi */ #include #include "cloexec.h" #include #include #include /* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, or clear the flag if VALUE is false. Return 0 on success, or -1 on error with 'errno' set. Note that on MingW, this function does NOT protect DESC from being inherited into spawned children. Instead, either use dup_cloexec followed by closing the original DESC, or use interfaces such as open or pipe2 that accept flags like O_CLOEXEC to create DESC non-inheritable in the first place. */ int set_cloexec_flag (int desc, bool value) { #ifdef F_SETFD int flags = fcntl (desc, F_GETFD, 0); if (0 <= flags) { int newflags = (value ? flags | FD_CLOEXEC : flags & ~FD_CLOEXEC); if (flags == newflags || fcntl (desc, F_SETFD, newflags) != -1) return 0; } return -1; #else /* !F_SETFD */ /* Use dup2 to reject invalid file descriptors; the cloexec flag will be unaffected. */ if (desc < 0) { errno = EBADF; return -1; } if (dup2 (desc, desc) < 0) /* errno is EBADF here. */ return -1; /* There is nothing we can do on this kind of platform. Punt. */ return 0; #endif /* !F_SETFD */ } /* Duplicates a file handle FD, while marking the copy to be closed prior to exec or spawn. Returns -1 and sets errno if FD could not be duplicated. */ int dup_cloexec (int fd) { return fcntl (fd, F_DUPFD_CLOEXEC, 0); } gcal-4.1/lib/unistd-safer.h0000664000000000000000000000203413041163523012475 00000000000000/* Invoke unistd-like functions, but avoid some glitches. Copyright (C) 2001, 2003, 2005, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert and Eric Blake. */ int dup_safer (int); int fd_safer (int); int pipe_safer (int[2]); #if GNULIB_FD_SAFER_FLAG int dup_safer_flag (int, int); int fd_safer_flag (int, int); #endif #if GNULIB_PIPE2_SAFER int pipe2_safer (int[2], int); #endif gcal-4.1/lib/gl_list.h0000664000000000000000000010617613041163522011541 00000000000000/* Abstract sequential list data type. -*- coding: utf-8 -*- Copyright (C) 2006-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2006. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _GL_LIST_H #define _GL_LIST_H #include #include #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef GL_LIST_INLINE # define GL_LIST_INLINE _GL_INLINE #endif #ifdef __cplusplus extern "C" { #endif /* gl_list is an abstract list data type. It can contain any number of objects ('void *' or 'const void *' pointers) in any given order. Duplicates are allowed, but can optionally be forbidden. There are several implementations of this list datatype, optimized for different operations or for memory. You can start using the simplest list implementation, GL_ARRAY_LIST, and switch to a different implementation later, when you realize which operations are performed the most frequently. The API of the different implementations is exactly the same; when switching to a different implementation, you only have to change the gl_list_create call. The implementations are: GL_ARRAY_LIST a growable array GL_CARRAY_LIST a growable circular array GL_LINKED_LIST a linked list GL_AVLTREE_LIST a binary tree (AVL tree) GL_RBTREE_LIST a binary tree (red-black tree) GL_LINKEDHASH_LIST a hash table with a linked list GL_AVLTREEHASH_LIST a hash table with a binary tree (AVL tree) GL_RBTREEHASH_LIST a hash table with a binary tree (red-black tree) The memory consumption is asymptotically the same: O(1) for every object in the list. When looking more closely at the average memory consumed for an object, GL_ARRAY_LIST is the most compact representation, and GL_LINKEDHASH_LIST and GL_TREEHASH_LIST need more memory. The guaranteed average performance of the operations is, for a list of n elements: Operation ARRAY LINKED TREE LINKEDHASH TREEHASH CARRAY with|without with|without duplicates duplicates gl_list_size O(1) O(1) O(1) O(1) O(1) gl_list_node_value O(1) O(1) O(1) O(1) O(1) gl_list_node_set_value O(1) O(1) O(1) O(1) O((log n)²)/O(1) gl_list_next_node O(1) O(1) O(log n) O(1) O(log n) gl_list_previous_node O(1) O(1) O(log n) O(1) O(log n) gl_list_get_at O(1) O(n) O(log n) O(n) O(log n) gl_list_set_at O(1) O(n) O(log n) O(n) O((log n)²)/O(log n) gl_list_search O(n) O(n) O(n) O(n)/O(1) O(log n)/O(1) gl_list_search_from O(n) O(n) O(n) O(n)/O(1) O((log n)²)/O(log n) gl_list_search_from_to O(n) O(n) O(n) O(n)/O(1) O((log n)²)/O(log n) gl_list_indexof O(n) O(n) O(n) O(n) O(log n) gl_list_indexof_from O(n) O(n) O(n) O(n) O((log n)²)/O(log n) gl_list_indexof_from_to O(n) O(n) O(n) O(n) O((log n)²)/O(log n) gl_list_add_first O(n)/O(1) O(1) O(log n) O(1) O((log n)²)/O(log n) gl_list_add_last O(1) O(1) O(log n) O(1) O((log n)²)/O(log n) gl_list_add_before O(n) O(1) O(log n) O(1) O((log n)²)/O(log n) gl_list_add_after O(n) O(1) O(log n) O(1) O((log n)²)/O(log n) gl_list_add_at O(n) O(n) O(log n) O(n) O((log n)²)/O(log n) gl_list_remove_node O(n) O(1) O(log n) O(n)/O(1) O((log n)²)/O(log n) gl_list_remove_at O(n) O(n) O(log n) O(n) O((log n)²)/O(log n) gl_list_remove O(n) O(n) O(n) O(n)/O(1) O((log n)²)/O(log n) gl_list_iterator O(1) O(1) O(log n) O(1) O(log n) gl_list_iterator_from_to O(1) O(n) O(log n) O(n) O(log n) gl_list_iterator_next O(1) O(1) O(log n) O(1) O(log n) gl_sortedlist_search O(log n) O(n) O(log n) O(n) O(log n) gl_sortedlist_search_from O(log n) O(n) O(log n) O(n) O(log n) gl_sortedlist_indexof O(log n) O(n) O(log n) O(n) O(log n) gl_sortedlist_indexof_fro O(log n) O(n) O(log n) O(n) O(log n) gl_sortedlist_add O(n) O(n) O(log n) O(n) O((log n)²)/O(log n) gl_sortedlist_remove O(n) O(n) O(log n) O(n) O((log n)²)/O(log n) */ /* -------------------------- gl_list_t Data Type -------------------------- */ /* Type of function used to compare two elements. NULL denotes pointer comparison. */ typedef bool (*gl_listelement_equals_fn) (const void *elt1, const void *elt2); /* Type of function used to compute a hash code. NULL denotes a function that depends only on the pointer itself. */ typedef size_t (*gl_listelement_hashcode_fn) (const void *elt); /* Type of function used to dispose an element once it's removed from a list. NULL denotes a no-op. */ typedef void (*gl_listelement_dispose_fn) (const void *elt); struct gl_list_impl; /* Type representing an entire list. */ typedef struct gl_list_impl * gl_list_t; struct gl_list_node_impl; /* Type representing the position of an element in the list, in a way that is more adapted to the list implementation than a plain index. Note: It is invalidated by insertions and removals! */ typedef struct gl_list_node_impl * gl_list_node_t; struct gl_list_implementation; /* Type representing a list datatype implementation. */ typedef const struct gl_list_implementation * gl_list_implementation_t; #if 0 /* Unless otherwise specified, these are defined inline below. */ /* Create an empty list. IMPLEMENTATION is one of GL_ARRAY_LIST, GL_CARRAY_LIST, GL_LINKED_LIST, GL_AVLTREE_LIST, GL_RBTREE_LIST, GL_LINKEDHASH_LIST, GL_AVLTREEHASH_LIST, GL_RBTREEHASH_LIST. EQUALS_FN is an element comparison function or NULL. HASHCODE_FN is an element hash code function or NULL. DISPOSE_FN is an element disposal function or NULL. ALLOW_DUPLICATES is false if duplicate elements shall not be allowed in the list. The implementation may verify this at runtime. */ /* declared in gl_xlist.h */ extern gl_list_t gl_list_create_empty (gl_list_implementation_t implementation, gl_listelement_equals_fn equals_fn, gl_listelement_hashcode_fn hashcode_fn, gl_listelement_dispose_fn dispose_fn, bool allow_duplicates); /* Likewise. Return NULL upon out-of-memory. */ extern gl_list_t gl_list_nx_create_empty (gl_list_implementation_t implementation, gl_listelement_equals_fn equals_fn, gl_listelement_hashcode_fn hashcode_fn, gl_listelement_dispose_fn dispose_fn, bool allow_duplicates); /* Create a list with given contents. IMPLEMENTATION is one of GL_ARRAY_LIST, GL_CARRAY_LIST, GL_LINKED_LIST, GL_AVLTREE_LIST, GL_RBTREE_LIST, GL_LINKEDHASH_LIST, GL_AVLTREEHASH_LIST, GL_RBTREEHASH_LIST. EQUALS_FN is an element comparison function or NULL. HASHCODE_FN is an element hash code function or NULL. DISPOSE_FN is an element disposal function or NULL. ALLOW_DUPLICATES is false if duplicate elements shall not be allowed in the list. The implementation may verify this at runtime. COUNT is the number of initial elements. CONTENTS[0..COUNT-1] is the initial contents. */ /* declared in gl_xlist.h */ extern gl_list_t gl_list_create (gl_list_implementation_t implementation, gl_listelement_equals_fn equals_fn, gl_listelement_hashcode_fn hashcode_fn, gl_listelement_dispose_fn dispose_fn, bool allow_duplicates, size_t count, const void **contents); /* Likewise. Return NULL upon out-of-memory. */ extern gl_list_t gl_list_nx_create (gl_list_implementation_t implementation, gl_listelement_equals_fn equals_fn, gl_listelement_hashcode_fn hashcode_fn, gl_listelement_dispose_fn dispose_fn, bool allow_duplicates, size_t count, const void **contents); /* Return the current number of elements in a list. */ extern size_t gl_list_size (gl_list_t list); /* Return the element value represented by a list node. */ extern const void * gl_list_node_value (gl_list_t list, gl_list_node_t node); /* Replace the element value represented by a list node. */ /* declared in gl_xlist.h */ extern void gl_list_node_set_value (gl_list_t list, gl_list_node_t node, const void *elt); /* Likewise. Return 0 upon success, -1 upon out-of-memory. */ extern int gl_list_node_nx_set_value (gl_list_t list, gl_list_node_t node, const void *elt) #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif ; /* Return the node immediately after the given node in the list, or NULL if the given node is the last (rightmost) one in the list. */ extern gl_list_node_t gl_list_next_node (gl_list_t list, gl_list_node_t node); /* Return the node immediately before the given node in the list, or NULL if the given node is the first (leftmost) one in the list. */ extern gl_list_node_t gl_list_previous_node (gl_list_t list, gl_list_node_t node); /* Return the element at a given position in the list. POSITION must be >= 0 and < gl_list_size (list). */ extern const void * gl_list_get_at (gl_list_t list, size_t position); /* Replace the element at a given position in the list. POSITION must be >= 0 and < gl_list_size (list). Return its node. */ /* declared in gl_xlist.h */ extern gl_list_node_t gl_list_set_at (gl_list_t list, size_t position, const void *elt); /* Likewise. Return NULL upon out-of-memory. */ extern gl_list_node_t gl_list_nx_set_at (gl_list_t list, size_t position, const void *elt) #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif ; /* Search whether an element is already in the list. Return its node if found, or NULL if not present in the list. */ extern gl_list_node_t gl_list_search (gl_list_t list, const void *elt); /* Search whether an element is already in the list, at a position >= START_INDEX. Return its node if found, or NULL if not present in the list. */ extern gl_list_node_t gl_list_search_from (gl_list_t list, size_t start_index, const void *elt); /* Search whether an element is already in the list, at a position >= START_INDEX and < END_INDEX. Return its node if found, or NULL if not present in the list. */ extern gl_list_node_t gl_list_search_from_to (gl_list_t list, size_t start_index, size_t end_index, const void *elt); /* Search whether an element is already in the list. Return its position if found, or (size_t)(-1) if not present in the list. */ extern size_t gl_list_indexof (gl_list_t list, const void *elt); /* Search whether an element is already in the list, at a position >= START_INDEX. Return its position if found, or (size_t)(-1) if not present in the list. */ extern size_t gl_list_indexof_from (gl_list_t list, size_t start_index, const void *elt); /* Search whether an element is already in the list, at a position >= START_INDEX and < END_INDEX. Return its position if found, or (size_t)(-1) if not present in the list. */ extern size_t gl_list_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index, const void *elt); /* Add an element as the first element of the list. Return its node. */ /* declared in gl_xlist.h */ extern gl_list_node_t gl_list_add_first (gl_list_t list, const void *elt); /* Likewise. Return NULL upon out-of-memory. */ extern gl_list_node_t gl_list_nx_add_first (gl_list_t list, const void *elt) #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif ; /* Add an element as the last element of the list. Return its node. */ /* declared in gl_xlist.h */ extern gl_list_node_t gl_list_add_last (gl_list_t list, const void *elt); /* Likewise. Return NULL upon out-of-memory. */ extern gl_list_node_t gl_list_nx_add_last (gl_list_t list, const void *elt) #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif ; /* Add an element before a given element node of the list. Return its node. */ /* declared in gl_xlist.h */ extern gl_list_node_t gl_list_add_before (gl_list_t list, gl_list_node_t node, const void *elt); /* Likewise. Return NULL upon out-of-memory. */ extern gl_list_node_t gl_list_nx_add_before (gl_list_t list, gl_list_node_t node, const void *elt) #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif ; /* Add an element after a given element node of the list. Return its node. */ /* declared in gl_xlist.h */ extern gl_list_node_t gl_list_add_after (gl_list_t list, gl_list_node_t node, const void *elt); /* Likewise. Return NULL upon out-of-memory. */ extern gl_list_node_t gl_list_nx_add_after (gl_list_t list, gl_list_node_t node, const void *elt) #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif ; /* Add an element at a given position in the list. POSITION must be >= 0 and <= gl_list_size (list). */ /* declared in gl_xlist.h */ extern gl_list_node_t gl_list_add_at (gl_list_t list, size_t position, const void *elt); /* Likewise. Return NULL upon out-of-memory. */ extern gl_list_node_t gl_list_nx_add_at (gl_list_t list, size_t position, const void *elt) #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif ; /* Remove an element from the list. Return true. */ extern bool gl_list_remove_node (gl_list_t list, gl_list_node_t node); /* Remove an element at a given position from the list. POSITION must be >= 0 and < gl_list_size (list). Return true. */ extern bool gl_list_remove_at (gl_list_t list, size_t position); /* Search and remove an element from the list. Return true if it was found and removed. */ extern bool gl_list_remove (gl_list_t list, const void *elt); /* Free an entire list. (But this call does not free the elements of the list.) */ extern void gl_list_free (gl_list_t list); #endif /* End of inline and gl_xlist.h-defined functions. */ /* --------------------- gl_list_iterator_t Data Type --------------------- */ /* Functions for iterating through a list. */ /* Type of an iterator that traverses a list. This is a fixed-size struct, so that creation of an iterator doesn't need memory allocation on the heap. */ typedef struct { /* For fast dispatch of gl_list_iterator_next. */ const struct gl_list_implementation *vtable; /* For detecting whether the last returned element was removed. */ gl_list_t list; size_t count; /* Other, implementation-private fields. */ void *p; void *q; size_t i; size_t j; } gl_list_iterator_t; #if 0 /* These are defined inline below. */ /* Create an iterator traversing a list. The list contents must not be modified while the iterator is in use, except for replacing or removing the last returned element. */ extern gl_list_iterator_t gl_list_iterator (gl_list_t list); /* Create an iterator traversing the element with indices i, start_index <= i < end_index, of a list. The list contents must not be modified while the iterator is in use, except for replacing or removing the last returned element. */ extern gl_list_iterator_t gl_list_iterator_from_to (gl_list_t list, size_t start_index, size_t end_index); /* If there is a next element, store the next element in *ELTP, store its node in *NODEP if NODEP is non-NULL, advance the iterator and return true. Otherwise, return false. */ extern bool gl_list_iterator_next (gl_list_iterator_t *iterator, const void **eltp, gl_list_node_t *nodep); /* Free an iterator. */ extern void gl_list_iterator_free (gl_list_iterator_t *iterator); #endif /* End of inline functions. */ /* ---------------------- Sorted gl_list_t Data Type ---------------------- */ /* The following functions are for lists without duplicates where the order is given by a sort criterion. */ /* Type of function used to compare two elements. Same as for qsort(). NULL denotes pointer comparison. */ typedef int (*gl_listelement_compar_fn) (const void *elt1, const void *elt2); #if 0 /* Unless otherwise specified, these are defined inline below. */ /* Search whether an element is already in the list. The list is assumed to be sorted with COMPAR. Return its node if found, or NULL if not present in the list. If the list contains several copies of ELT, the node of the leftmost one is returned. */ extern gl_list_node_t gl_sortedlist_search (gl_list_t list, gl_listelement_compar_fn compar, const void *elt); /* Search whether an element is already in the list. The list is assumed to be sorted with COMPAR. Only list elements with indices >= START_INDEX and < END_INDEX are considered; the implementation uses these bounds to minimize the number of COMPAR invocations. Return its node if found, or NULL if not present in the list. If the list contains several copies of ELT, the node of the leftmost one is returned. */ extern gl_list_node_t gl_sortedlist_search_from_to (gl_list_t list, gl_listelement_compar_fn compar, size_t start_index, size_t end_index, const void *elt); /* Search whether an element is already in the list. The list is assumed to be sorted with COMPAR. Return its position if found, or (size_t)(-1) if not present in the list. If the list contains several copies of ELT, the position of the leftmost one is returned. */ extern size_t gl_sortedlist_indexof (gl_list_t list, gl_listelement_compar_fn compar, const void *elt); /* Search whether an element is already in the list. The list is assumed to be sorted with COMPAR. Only list elements with indices >= START_INDEX and < END_INDEX are considered; the implementation uses these bounds to minimize the number of COMPAR invocations. Return its position if found, or (size_t)(-1) if not present in the list. If the list contains several copies of ELT, the position of the leftmost one is returned. */ extern size_t gl_sortedlist_indexof_from_to (gl_list_t list, gl_listelement_compar_fn compar, size_t start_index, size_t end_index, const void *elt); /* Add an element at the appropriate position in the list. The list is assumed to be sorted with COMPAR. Return its node. */ /* declared in gl_xlist.h */ extern gl_list_node_t gl_sortedlist_add (gl_list_t list, gl_listelement_compar_fn compar, const void *elt); /* Likewise. Return NULL upon out-of-memory. */ extern gl_list_node_t gl_sortedlist_nx_add (gl_list_t list, gl_listelement_compar_fn compar, const void *elt) #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif ; /* Search and remove an element from the list. The list is assumed to be sorted with COMPAR. Return true if it was found and removed. If the list contains several copies of ELT, only the leftmost one is removed. */ extern bool gl_sortedlist_remove (gl_list_t list, gl_listelement_compar_fn compar, const void *elt); #endif /* End of inline and gl_xlist.h-defined functions. */ /* ------------------------ Implementation Details ------------------------ */ struct gl_list_implementation { /* gl_list_t functions. */ gl_list_t (*nx_create_empty) (gl_list_implementation_t implementation, gl_listelement_equals_fn equals_fn, gl_listelement_hashcode_fn hashcode_fn, gl_listelement_dispose_fn dispose_fn, bool allow_duplicates); gl_list_t (*nx_create) (gl_list_implementation_t implementation, gl_listelement_equals_fn equals_fn, gl_listelement_hashcode_fn hashcode_fn, gl_listelement_dispose_fn dispose_fn, bool allow_duplicates, size_t count, const void **contents); size_t (*size) (gl_list_t list); const void * (*node_value) (gl_list_t list, gl_list_node_t node); int (*node_nx_set_value) (gl_list_t list, gl_list_node_t node, const void *elt); gl_list_node_t (*next_node) (gl_list_t list, gl_list_node_t node); gl_list_node_t (*previous_node) (gl_list_t list, gl_list_node_t node); const void * (*get_at) (gl_list_t list, size_t position); gl_list_node_t (*nx_set_at) (gl_list_t list, size_t position, const void *elt); gl_list_node_t (*search_from_to) (gl_list_t list, size_t start_index, size_t end_index, const void *elt); size_t (*indexof_from_to) (gl_list_t list, size_t start_index, size_t end_index, const void *elt); gl_list_node_t (*nx_add_first) (gl_list_t list, const void *elt); gl_list_node_t (*nx_add_last) (gl_list_t list, const void *elt); gl_list_node_t (*nx_add_before) (gl_list_t list, gl_list_node_t node, const void *elt); gl_list_node_t (*nx_add_after) (gl_list_t list, gl_list_node_t node, const void *elt); gl_list_node_t (*nx_add_at) (gl_list_t list, size_t position, const void *elt); bool (*remove_node) (gl_list_t list, gl_list_node_t node); bool (*remove_at) (gl_list_t list, size_t position); bool (*remove_elt) (gl_list_t list, const void *elt); void (*list_free) (gl_list_t list); /* gl_list_iterator_t functions. */ gl_list_iterator_t (*iterator) (gl_list_t list); gl_list_iterator_t (*iterator_from_to) (gl_list_t list, size_t start_index, size_t end_index); bool (*iterator_next) (gl_list_iterator_t *iterator, const void **eltp, gl_list_node_t *nodep); void (*iterator_free) (gl_list_iterator_t *iterator); /* Sorted gl_list_t functions. */ gl_list_node_t (*sortedlist_search) (gl_list_t list, gl_listelement_compar_fn compar, const void *elt); gl_list_node_t (*sortedlist_search_from_to) (gl_list_t list, gl_listelement_compar_fn compar, size_t start_index, size_t end_index, const void *elt); size_t (*sortedlist_indexof) (gl_list_t list, gl_listelement_compar_fn compar, const void *elt); size_t (*sortedlist_indexof_from_to) (gl_list_t list, gl_listelement_compar_fn compar, size_t start_index, size_t end_index, const void *elt); gl_list_node_t (*sortedlist_nx_add) (gl_list_t list, gl_listelement_compar_fn compar, const void *elt); bool (*sortedlist_remove) (gl_list_t list, gl_listelement_compar_fn compar, const void *elt); }; struct gl_list_impl_base { const struct gl_list_implementation *vtable; gl_listelement_equals_fn equals_fn; gl_listelement_hashcode_fn hashcode_fn; gl_listelement_dispose_fn dispose_fn; bool allow_duplicates; }; /* Define all functions of this file as accesses to the struct gl_list_implementation. */ GL_LIST_INLINE gl_list_t gl_list_nx_create_empty (gl_list_implementation_t implementation, gl_listelement_equals_fn equals_fn, gl_listelement_hashcode_fn hashcode_fn, gl_listelement_dispose_fn dispose_fn, bool allow_duplicates) { return implementation->nx_create_empty (implementation, equals_fn, hashcode_fn, dispose_fn, allow_duplicates); } GL_LIST_INLINE gl_list_t gl_list_nx_create (gl_list_implementation_t implementation, gl_listelement_equals_fn equals_fn, gl_listelement_hashcode_fn hashcode_fn, gl_listelement_dispose_fn dispose_fn, bool allow_duplicates, size_t count, const void **contents) { return implementation->nx_create (implementation, equals_fn, hashcode_fn, dispose_fn, allow_duplicates, count, contents); } GL_LIST_INLINE size_t gl_list_size (gl_list_t list) { return ((const struct gl_list_impl_base *) list)->vtable ->size (list); } GL_LIST_INLINE const void * gl_list_node_value (gl_list_t list, gl_list_node_t node) { return ((const struct gl_list_impl_base *) list)->vtable ->node_value (list, node); } GL_LIST_INLINE int #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif gl_list_node_nx_set_value (gl_list_t list, gl_list_node_t node, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->node_nx_set_value (list, node, elt); } GL_LIST_INLINE gl_list_node_t gl_list_next_node (gl_list_t list, gl_list_node_t node) { return ((const struct gl_list_impl_base *) list)->vtable ->next_node (list, node); } GL_LIST_INLINE gl_list_node_t gl_list_previous_node (gl_list_t list, gl_list_node_t node) { return ((const struct gl_list_impl_base *) list)->vtable ->previous_node (list, node); } GL_LIST_INLINE const void * gl_list_get_at (gl_list_t list, size_t position) { return ((const struct gl_list_impl_base *) list)->vtable ->get_at (list, position); } GL_LIST_INLINE gl_list_node_t #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif gl_list_nx_set_at (gl_list_t list, size_t position, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->nx_set_at (list, position, elt); } GL_LIST_INLINE gl_list_node_t gl_list_search (gl_list_t list, const void *elt) { size_t size = ((const struct gl_list_impl_base *) list)->vtable->size (list); return ((const struct gl_list_impl_base *) list)->vtable ->search_from_to (list, 0, size, elt); } GL_LIST_INLINE gl_list_node_t gl_list_search_from (gl_list_t list, size_t start_index, const void *elt) { size_t size = ((const struct gl_list_impl_base *) list)->vtable->size (list); return ((const struct gl_list_impl_base *) list)->vtable ->search_from_to (list, start_index, size, elt); } GL_LIST_INLINE gl_list_node_t gl_list_search_from_to (gl_list_t list, size_t start_index, size_t end_index, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->search_from_to (list, start_index, end_index, elt); } GL_LIST_INLINE size_t gl_list_indexof (gl_list_t list, const void *elt) { size_t size = ((const struct gl_list_impl_base *) list)->vtable->size (list); return ((const struct gl_list_impl_base *) list)->vtable ->indexof_from_to (list, 0, size, elt); } GL_LIST_INLINE size_t gl_list_indexof_from (gl_list_t list, size_t start_index, const void *elt) { size_t size = ((const struct gl_list_impl_base *) list)->vtable->size (list); return ((const struct gl_list_impl_base *) list)->vtable ->indexof_from_to (list, start_index, size, elt); } GL_LIST_INLINE size_t gl_list_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->indexof_from_to (list, start_index, end_index, elt); } GL_LIST_INLINE gl_list_node_t #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif gl_list_nx_add_first (gl_list_t list, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->nx_add_first (list, elt); } GL_LIST_INLINE gl_list_node_t #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif gl_list_nx_add_last (gl_list_t list, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->nx_add_last (list, elt); } GL_LIST_INLINE gl_list_node_t #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif gl_list_nx_add_before (gl_list_t list, gl_list_node_t node, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->nx_add_before (list, node, elt); } GL_LIST_INLINE gl_list_node_t #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif gl_list_nx_add_after (gl_list_t list, gl_list_node_t node, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->nx_add_after (list, node, elt); } GL_LIST_INLINE gl_list_node_t #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif gl_list_nx_add_at (gl_list_t list, size_t position, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->nx_add_at (list, position, elt); } GL_LIST_INLINE bool gl_list_remove_node (gl_list_t list, gl_list_node_t node) { return ((const struct gl_list_impl_base *) list)->vtable ->remove_node (list, node); } GL_LIST_INLINE bool gl_list_remove_at (gl_list_t list, size_t position) { return ((const struct gl_list_impl_base *) list)->vtable ->remove_at (list, position); } GL_LIST_INLINE bool gl_list_remove (gl_list_t list, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->remove_elt (list, elt); } GL_LIST_INLINE void gl_list_free (gl_list_t list) { ((const struct gl_list_impl_base *) list)->vtable->list_free (list); } GL_LIST_INLINE gl_list_iterator_t gl_list_iterator (gl_list_t list) { return ((const struct gl_list_impl_base *) list)->vtable ->iterator (list); } GL_LIST_INLINE gl_list_iterator_t gl_list_iterator_from_to (gl_list_t list, size_t start_index, size_t end_index) { return ((const struct gl_list_impl_base *) list)->vtable ->iterator_from_to (list, start_index, end_index); } GL_LIST_INLINE bool gl_list_iterator_next (gl_list_iterator_t *iterator, const void **eltp, gl_list_node_t *nodep) { return iterator->vtable->iterator_next (iterator, eltp, nodep); } GL_LIST_INLINE void gl_list_iterator_free (gl_list_iterator_t *iterator) { iterator->vtable->iterator_free (iterator); } GL_LIST_INLINE gl_list_node_t gl_sortedlist_search (gl_list_t list, gl_listelement_compar_fn compar, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->sortedlist_search (list, compar, elt); } GL_LIST_INLINE gl_list_node_t gl_sortedlist_search_from_to (gl_list_t list, gl_listelement_compar_fn compar, size_t start_index, size_t end_index, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->sortedlist_search_from_to (list, compar, start_index, end_index, elt); } GL_LIST_INLINE size_t gl_sortedlist_indexof (gl_list_t list, gl_listelement_compar_fn compar, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->sortedlist_indexof (list, compar, elt); } GL_LIST_INLINE size_t gl_sortedlist_indexof_from_to (gl_list_t list, gl_listelement_compar_fn compar, size_t start_index, size_t end_index, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->sortedlist_indexof_from_to (list, compar, start_index, end_index, elt); } GL_LIST_INLINE gl_list_node_t #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) __attribute__ ((__warn_unused_result__)) #endif gl_sortedlist_nx_add (gl_list_t list, gl_listelement_compar_fn compar, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->sortedlist_nx_add (list, compar, elt); } GL_LIST_INLINE bool gl_sortedlist_remove (gl_list_t list, gl_listelement_compar_fn compar, const void *elt) { return ((const struct gl_list_impl_base *) list)->vtable ->sortedlist_remove (list, compar, elt); } #ifdef __cplusplus } #endif _GL_INLINE_HEADER_END #endif /* _GL_LIST_H */ gcal-4.1/lib/glthread/0000775000000000000000000000000013041164074011575 500000000000000gcal-4.1/lib/glthread/cond.h0000664000000000000000000003221413041163522012610 00000000000000/* Condition variables for multithreading. Copyright (C) 2005-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Yoann Vandoorselaere , 2008. Based on Bruno Haible lock.h */ /* Condition variables can be used for waiting until a condition becomes true. In this respect, they are similar to wait queues. But contrary to wait queues, condition variables have different semantics that allows events to be lost when there is no thread waiting for them. Condition variable: Type: gl_cond_t Declaration: gl_cond_define(extern, name) Initializer: gl_cond_define_initialized(, name) Initialization: gl_cond_init (name); Waiting: gl_cond_wait (name, lock); Timed wait: bool timedout = gl_cond_timedwait (name, lock, abstime); where lock is a gl_lock_t variable (cf. ) Signaling: gl_cond_signal (name); Broadcasting: gl_cond_broadcast (name); De-initialization: gl_cond_destroy (name); Equivalent functions with control of error handling: Initialization: err = glthread_cond_init (&name); Waiting: err = glthread_cond_wait (&name); Timed wait: err = glthread_cond_timedwait (&name, &lock, abstime); Signaling: err = glthread_cond_signal (&name); Broadcasting: err = glthread_cond_broadcast (&name); De-initialization: err = glthread_cond_destroy (&name); */ #ifndef _GLTHREAD_COND_H #define _GLTHREAD_COND_H #include #include #include #include #include "glthread/lock.h" #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GLTHREAD_COND_INLINE # define _GLTHREAD_COND_INLINE _GL_INLINE #endif /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if PTHREAD_IN_USE_DETECTION_HARD /* The pthread_in_use() detection needs to be done at runtime. */ # define pthread_in_use() \ glthread_in_use () extern int glthread_in_use (void); # endif # if USE_POSIX_THREADS_WEAK /* Use weak references to the POSIX threads library. */ /* Weak references avoid dragging in external libraries if the other parts of the program don't use them. Here we use them, because we don't want every program that uses libintl to depend on libpthread. This assumes that libpthread would not be loaded after libintl; i.e. if libintl is loaded first, by an executable that does not depend on libpthread, and then a module is dynamically loaded that depends on libpthread, libintl will not be multithread-safe. */ /* The way to test at runtime whether libpthread is present is to test whether a function pointer's value, such as &pthread_mutex_init, is non-NULL. However, some versions of GCC have a bug through which, in PIC mode, &foo != NULL always evaluates to true if there is a direct call to foo(...) in the same function. To avoid this, we test the address of a function in libpthread that we don't use. */ # pragma weak pthread_cond_init # pragma weak pthread_cond_wait # pragma weak pthread_cond_timedwait # pragma weak pthread_cond_signal # pragma weak pthread_cond_broadcast # pragma weak pthread_cond_destroy # ifndef pthread_self # pragma weak pthread_self # endif # if !PTHREAD_IN_USE_DETECTION_HARD # pragma weak pthread_cancel # define pthread_in_use() (pthread_cancel != NULL) # endif # else # if !PTHREAD_IN_USE_DETECTION_HARD # define pthread_in_use() 1 # endif # endif /* -------------------------- gl_cond_t datatype -------------------------- */ typedef pthread_cond_t gl_cond_t; # define gl_cond_define(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME; # define gl_cond_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME = gl_cond_initializer; # define gl_cond_initializer \ PTHREAD_COND_INITIALIZER # define glthread_cond_init(COND) \ (pthread_in_use () ? pthread_cond_init (COND, NULL) : 0) # define glthread_cond_wait(COND, LOCK) \ (pthread_in_use () ? pthread_cond_wait (COND, LOCK) : 0) # define glthread_cond_timedwait(COND, LOCK, ABSTIME) \ (pthread_in_use () ? pthread_cond_timedwait (COND, LOCK, ABSTIME) : 0) # define glthread_cond_signal(COND) \ (pthread_in_use () ? pthread_cond_signal (COND) : 0) # define glthread_cond_broadcast(COND) \ (pthread_in_use () ? pthread_cond_broadcast (COND) : 0) # define glthread_cond_destroy(COND) \ (pthread_in_use () ? pthread_cond_destroy (COND) : 0) # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if USE_PTH_THREADS_WEAK /* Use weak references to the GNU Pth threads library. */ # pragma weak pth_cond_init # pragma weak pth_cond_await # pragma weak pth_cond_notify # pragma weak pth_event # pragma weak pth_timeout # pragma weak pth_cancel # define pth_in_use() (pth_cancel != NULL) # else # define pth_in_use() 1 # endif /* -------------------------- gl_cond_t datatype -------------------------- */ typedef pth_cond_t gl_cond_t; # define gl_cond_define(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME; # define gl_cond_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME = gl_cond_initializer; # define gl_cond_initializer \ PTH_COND_INIT # define glthread_cond_init(COND) \ (pth_in_use () && !pth_cond_init (COND) ? errno : 0) # define glthread_cond_wait(COND, LOCK) \ (pth_in_use () && !pth_cond_await (COND, LOCK, NULL) ? errno : 0) # define glthread_cond_timedwait(COND, LOCK, ABSTIME) \ (pth_in_use () ? glthread_cond_timedwait_multithreaded (COND, LOCK, ABSTIME) : 0) # define glthread_cond_signal(COND) \ (pth_in_use () && !pth_cond_notify (COND, FALSE) ? errno : 0) # define glthread_cond_broadcast(COND) \ (pth_in_use () && !pth_cond_notify (COND, TRUE) ? errno : 0) # define glthread_cond_destroy(COND) 0 extern int glthread_cond_timedwait_multithreaded (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ # include # include # ifdef __cplusplus extern "C" { # endif # if USE_SOLARIS_THREADS_WEAK /* Use weak references to the old Solaris threads library. */ # pragma weak cond_init # pragma weak cond_wait # pragma weak cond_timedwait # pragma weak cond_signal # pragma weak cond_broadcast # pragma weak cond_destroy # pragma weak thr_suspend # define thread_in_use() (thr_suspend != NULL) # else # define thread_in_use() 1 # endif /* -------------------------- gl_cond_t datatype -------------------------- */ typedef cond_t gl_cond_t; # define gl_cond_define(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME; # define gl_cond_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME = gl_cond_initializer; # define gl_cond_initializer \ DEFAULTCV # define glthread_cond_init(COND) \ (pthread_in_use () ? cond_init (COND, USYNC_THREAD, NULL) : 0) # define glthread_cond_wait(COND, LOCK) \ (pthread_in_use () ? cond_wait (COND, LOCK) : 0) # define glthread_cond_timedwait(COND, LOCK, ABSTIME) \ (pthread_in_use () ? glthread_cond_timedwait_multithreaded (COND, LOCK, ABSTIME) : 0) # define glthread_cond_signal(COND) \ (pthread_in_use () ? cond_signal (COND) : 0) # define glthread_cond_broadcast(COND) \ (pthread_in_use () ? cond_broadcast (COND) : 0) # define glthread_cond_destroy(COND) \ (pthread_in_use () ? cond_destroy (COND) : 0) extern int glthread_cond_timedwait_multithreaded (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # ifdef __cplusplus extern "C" { # endif /* -------------------------- gl_cond_t datatype -------------------------- */ struct gl_waitqueue_link { struct gl_waitqueue_link *wql_next; struct gl_waitqueue_link *wql_prev; }; typedef struct { struct gl_waitqueue_link wq_list; /* circular list of waiting threads */ } gl_linked_waitqueue_t; typedef struct { gl_spinlock_t guard; /* protects the initialization */ CRITICAL_SECTION lock; /* protects the remaining fields */ gl_linked_waitqueue_t waiters; /* waiting threads */ } gl_cond_t; # define gl_cond_define(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME; # define gl_cond_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_cond_t NAME = gl_cond_initializer; # define gl_cond_initializer \ { { 0, -1 } } # define glthread_cond_init(COND) \ glthread_cond_init_func (COND) # define glthread_cond_wait(COND, LOCK) \ glthread_cond_wait_func (COND, LOCK) # define glthread_cond_timedwait(COND, LOCK, ABSTIME) \ glthread_cond_timedwait_func (COND, LOCK, ABSTIME) # define glthread_cond_signal(COND) \ glthread_cond_signal_func (COND) # define glthread_cond_broadcast(COND) \ glthread_cond_broadcast_func (COND) # define glthread_cond_destroy(COND) \ glthread_cond_destroy_func (COND) extern int glthread_cond_init_func (gl_cond_t *cond); extern int glthread_cond_wait_func (gl_cond_t *cond, gl_lock_t *lock); extern int glthread_cond_timedwait_func (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime); extern int glthread_cond_signal_func (gl_cond_t *cond); extern int glthread_cond_broadcast_func (gl_cond_t *cond); extern int glthread_cond_destroy_func (gl_cond_t *cond); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS) /* Provide dummy implementation if threads are not supported. */ typedef int gl_cond_t; # define gl_cond_define(STORAGECLASS, NAME) # define gl_cond_define_initialized(STORAGECLASS, NAME) # define glthread_cond_init(COND) 0 # define glthread_cond_wait(COND, LOCK) 0 # define glthread_cond_timedwait(COND, LOCK, ABSTIME) 0 # define glthread_cond_signal(COND) 0 # define glthread_cond_broadcast(COND) 0 # define glthread_cond_destroy(COND) 0 #endif /* ========================================================================= */ /* Macros with built-in error handling. */ #ifdef __cplusplus extern "C" { #endif #define gl_cond_init(COND) \ do \ { \ if (glthread_cond_init (&COND)) \ abort (); \ } \ while (0) #define gl_cond_wait(COND, LOCK) \ do \ { \ if (glthread_cond_wait (&COND, &LOCK)) \ abort (); \ } \ while (0) #define gl_cond_timedwait(COND, LOCK, ABSTIME) \ gl_cond_timedwait_func (&COND, &LOCK, ABSTIME) _GLTHREAD_COND_INLINE bool gl_cond_timedwait_func (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime) { int err = glthread_cond_timedwait (cond, lock, abstime); if (err == ETIMEDOUT) return true; if (err != 0) abort (); return false; } #define gl_cond_signal(COND) \ do \ { \ if (glthread_cond_signal (&COND)) \ abort (); \ } \ while (0) #define gl_cond_broadcast(COND) \ do \ { \ if (glthread_cond_broadcast (&COND)) \ abort (); \ } \ while (0) #define gl_cond_destroy(COND) \ do \ { \ if (glthread_cond_destroy (&COND)) \ abort (); \ } \ while (0) #ifdef __cplusplus } #endif _GL_INLINE_HEADER_END #endif /* _GLTHREAD_COND_H */ gcal-4.1/lib/glthread/cond.c0000664000000000000000000003456113041163522012612 00000000000000/* Condition variables for multithreading. Copyright (C) 2008-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Yoann Vandoorselaere , 2008, and Bruno Haible , 2008. */ #include #define _GLTHREAD_COND_INLINE _GL_EXTERN_INLINE #include "glthread/cond.h" /* ========================================================================= */ #if USE_PTH_THREADS /* -------------------------- gl_cond_t datatype -------------------------- */ int glthread_cond_timedwait_multithreaded (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime) { int ret, status; pth_event_t ev; ev = pth_event (PTH_EVENT_TIME, pth_time (abstime->tv_sec, abstime->tv_nsec / 1000)); ret = pth_cond_await (cond, lock, ev); status = pth_event_status (ev); pth_event_free (ev, PTH_FREE_THIS); if (status == PTH_STATUS_OCCURRED) return ETIMEDOUT; return ret; } #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* -------------------------- gl_cond_t datatype -------------------------- */ int glthread_cond_timedwait_multithreaded (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime) { int ret; ret = cond_timedwait (cond, lock, abstime); if (ret == ETIME) return ETIMEDOUT; return ret; } #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS #include /* -------------------------- gl_cond_t datatype -------------------------- */ /* In this file, the waitqueues are implemented as linked lists. */ #define gl_waitqueue_t gl_linked_waitqueue_t /* All links of a circular list, except the anchor, are of this type, carrying a payload. */ struct gl_waitqueue_element { struct gl_waitqueue_link link; /* must be the first field! */ HANDLE event; /* Waiting thread, represented by an event. This field is immutable once initialized. */ }; static void gl_waitqueue_init (gl_waitqueue_t *wq) { wq->wq_list.wql_next = &wq->wq_list; wq->wq_list.wql_prev = &wq->wq_list; } /* Enqueues the current thread, represented by an event, in a wait queue. Returns NULL if an allocation failure occurs. */ static struct gl_waitqueue_element * gl_waitqueue_add (gl_waitqueue_t *wq) { struct gl_waitqueue_element *elt; HANDLE event; /* Allocate the memory for the waitqueue element on the heap, not on the thread's stack. If the thread exits unexpectedly, we prefer to leak some memory rather than to access unavailable memory and crash. */ elt = (struct gl_waitqueue_element *) malloc (sizeof (struct gl_waitqueue_element)); if (elt == NULL) /* No more memory. */ return NULL; /* Whether the created event is a manual-reset one or an auto-reset one, does not matter, since we will wait on it only once. */ event = CreateEvent (NULL, TRUE, FALSE, NULL); if (event == INVALID_HANDLE_VALUE) { /* No way to allocate an event. */ free (elt); return NULL; } elt->event = event; /* Insert elt at the end of the circular list. */ (elt->link.wql_prev = wq->wq_list.wql_prev)->wql_next = &elt->link; (elt->link.wql_next = &wq->wq_list)->wql_prev = &elt->link; return elt; } /* Removes the current thread, represented by a 'struct gl_waitqueue_element *', from a wait queue. Returns true if is was found and removed, false if it was not present. */ static bool gl_waitqueue_remove (gl_waitqueue_t *wq, struct gl_waitqueue_element *elt) { if (elt->link.wql_next != NULL && elt->link.wql_prev != NULL) { /* Remove elt from the circular list. */ struct gl_waitqueue_link *prev = elt->link.wql_prev; struct gl_waitqueue_link *next = elt->link.wql_next; prev->wql_next = next; next->wql_prev = prev; elt->link.wql_next = NULL; elt->link.wql_prev = NULL; return true; } else return false; } /* Notifies the first thread from a wait queue and dequeues it. */ static void gl_waitqueue_notify_first (gl_waitqueue_t *wq) { if (wq->wq_list.wql_next != &wq->wq_list) { struct gl_waitqueue_element *elt = (struct gl_waitqueue_element *) wq->wq_list.wql_next; struct gl_waitqueue_link *prev; struct gl_waitqueue_link *next; /* Remove elt from the circular list. */ prev = &wq->wq_list; /* = elt->link.wql_prev; */ next = elt->link.wql_next; prev->wql_next = next; next->wql_prev = prev; elt->link.wql_next = NULL; elt->link.wql_prev = NULL; SetEvent (elt->event); /* After the SetEvent, this thread cannot access *elt any more, because the woken-up thread will quickly call free (elt). */ } } /* Notifies all threads from a wait queue and dequeues them all. */ static void gl_waitqueue_notify_all (gl_waitqueue_t *wq) { struct gl_waitqueue_link *l; for (l = wq->wq_list.wql_next; l != &wq->wq_list; ) { struct gl_waitqueue_element *elt = (struct gl_waitqueue_element *) l; struct gl_waitqueue_link *prev; struct gl_waitqueue_link *next; /* Remove elt from the circular list. */ prev = &wq->wq_list; /* = elt->link.wql_prev; */ next = elt->link.wql_next; prev->wql_next = next; next->wql_prev = prev; elt->link.wql_next = NULL; elt->link.wql_prev = NULL; SetEvent (elt->event); /* After the SetEvent, this thread cannot access *elt any more, because the woken-up thread will quickly call free (elt). */ l = next; } if (!(wq->wq_list.wql_next == &wq->wq_list && wq->wq_list.wql_prev == &wq->wq_list)) abort (); } int glthread_cond_init_func (gl_cond_t *cond) { InitializeCriticalSection (&cond->lock); gl_waitqueue_init (&cond->waiters); cond->guard.done = 1; return 0; } int glthread_cond_wait_func (gl_cond_t *cond, gl_lock_t *lock) { if (!cond->guard.done) { if (InterlockedIncrement (&cond->guard.started) == 0) /* This thread is the first one to need this condition variable. Initialize it. */ glthread_cond_init (cond); else /* Yield the CPU while waiting for another thread to finish initializing this condition variable. */ while (!cond->guard.done) Sleep (0); } EnterCriticalSection (&cond->lock); { struct gl_waitqueue_element *elt = gl_waitqueue_add (&cond->waiters); LeaveCriticalSection (&cond->lock); if (elt == NULL) { /* Allocation failure. Weird. */ return EAGAIN; } else { HANDLE event = elt->event; int err; DWORD result; /* Now release the lock and let any other thread take it. */ err = glthread_lock_unlock (lock); if (err != 0) { EnterCriticalSection (&cond->lock); gl_waitqueue_remove (&cond->waiters, elt); LeaveCriticalSection (&cond->lock); CloseHandle (event); free (elt); return err; } /* POSIX says: "If another thread is able to acquire the mutex after the about-to-block thread has released it, then a subsequent call to pthread_cond_broadcast() or pthread_cond_signal() in that thread shall behave as if it were issued after the about-to-block thread has blocked." This is fulfilled here, because the thread signalling is done through SetEvent, not PulseEvent. */ /* Wait until another thread signals this event. */ result = WaitForSingleObject (event, INFINITE); if (result == WAIT_FAILED || result == WAIT_TIMEOUT) abort (); CloseHandle (event); free (elt); /* The thread which signalled the event already did the bookkeeping: removed us from the waiters. */ return glthread_lock_lock (lock); } } } int glthread_cond_timedwait_func (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime) { struct timeval currtime; gettimeofday (&currtime, NULL); if (currtime.tv_sec > abstime->tv_sec || (currtime.tv_sec == abstime->tv_sec && currtime.tv_usec * 1000 >= abstime->tv_nsec)) return ETIMEDOUT; if (!cond->guard.done) { if (InterlockedIncrement (&cond->guard.started) == 0) /* This thread is the first one to need this condition variable. Initialize it. */ glthread_cond_init (cond); else /* Yield the CPU while waiting for another thread to finish initializing this condition variable. */ while (!cond->guard.done) Sleep (0); } EnterCriticalSection (&cond->lock); { struct gl_waitqueue_element *elt = gl_waitqueue_add (&cond->waiters); LeaveCriticalSection (&cond->lock); if (elt == NULL) { /* Allocation failure. Weird. */ return EAGAIN; } else { HANDLE event = elt->event; int err; DWORD timeout; DWORD result; /* Now release the lock and let any other thread take it. */ err = glthread_lock_unlock (lock); if (err != 0) { EnterCriticalSection (&cond->lock); gl_waitqueue_remove (&cond->waiters, elt); LeaveCriticalSection (&cond->lock); CloseHandle (event); free (elt); return err; } /* POSIX says: "If another thread is able to acquire the mutex after the about-to-block thread has released it, then a subsequent call to pthread_cond_broadcast() or pthread_cond_signal() in that thread shall behave as if it were issued after the about-to-block thread has blocked." This is fulfilled here, because the thread signalling is done through SetEvent, not PulseEvent. */ /* Wait until another thread signals this event or until the abstime passes. */ gettimeofday (&currtime, NULL); if (currtime.tv_sec > abstime->tv_sec) timeout = 0; else { unsigned long seconds = abstime->tv_sec - currtime.tv_sec; timeout = seconds * 1000; if (timeout / 1000 != seconds) /* overflow? */ timeout = INFINITE; else { long milliseconds = abstime->tv_nsec / 1000000 - currtime.tv_usec / 1000; if (milliseconds >= 0) { timeout += milliseconds; if (timeout < milliseconds) /* overflow? */ timeout = INFINITE; } else { if (timeout >= - milliseconds) timeout -= (- milliseconds); else timeout = 0; } } } result = WaitForSingleObject (event, timeout); if (result == WAIT_FAILED) abort (); if (result == WAIT_TIMEOUT) { EnterCriticalSection (&cond->lock); if (gl_waitqueue_remove (&cond->waiters, elt)) { /* The event was not signaled between the WaitForSingleObject call and the EnterCriticalSection call. */ if (!(WaitForSingleObject (event, 0) == WAIT_TIMEOUT)) abort (); } else { /* The event was signaled between the WaitForSingleObject call and the EnterCriticalSection call. */ if (!(WaitForSingleObject (event, 0) == WAIT_OBJECT_0)) abort (); /* Produce the right return value. */ result = WAIT_OBJECT_0; } LeaveCriticalSection (&cond->lock); } else { /* The thread which signalled the event already did the bookkeeping: removed us from the waiters. */ } CloseHandle (event); free (elt); /* Take the lock again. It does not matter whether this is done before or after the bookkeeping for WAIT_TIMEOUT. */ err = glthread_lock_lock (lock); return (err ? err : result == WAIT_OBJECT_0 ? 0 : result == WAIT_TIMEOUT ? ETIMEDOUT : /* WAIT_FAILED shouldn't happen */ EAGAIN); } } } int glthread_cond_signal_func (gl_cond_t *cond) { if (!cond->guard.done) return EINVAL; EnterCriticalSection (&cond->lock); /* POSIX says: "The pthread_cond_broadcast() and pthread_cond_signal() functions shall have no effect if there are no threads currently blocked on cond." */ if (cond->waiters.wq_list.wql_next != &cond->waiters.wq_list) gl_waitqueue_notify_first (&cond->waiters); LeaveCriticalSection (&cond->lock); return 0; } int glthread_cond_broadcast_func (gl_cond_t *cond) { if (!cond->guard.done) return EINVAL; EnterCriticalSection (&cond->lock); /* POSIX says: "The pthread_cond_broadcast() and pthread_cond_signal() functions shall have no effect if there are no threads currently blocked on cond." gl_waitqueue_notify_all is a nop in this case. */ gl_waitqueue_notify_all (&cond->waiters); LeaveCriticalSection (&cond->lock); return 0; } int glthread_cond_destroy_func (gl_cond_t *cond) { if (!cond->guard.done) return EINVAL; if (cond->waiters.wq_list.wql_next != &cond->waiters.wq_list) return EBUSY; DeleteCriticalSection (&cond->lock); cond->guard.done = 0; return 0; } #endif /* ========================================================================= */ gcal-4.1/lib/glthread/threadlib.c0000664000000000000000000000353613041163522013623 00000000000000/* Multithreading primitives. Copyright (C) 2005-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. */ #include /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # include # if PTHREAD_IN_USE_DETECTION_HARD /* The function to be executed by a dummy thread. */ static void * dummy_thread_func (void *arg) { return arg; } int glthread_in_use (void) { static int tested; static int result; /* 1: linked with -lpthread, 0: only with libc */ if (!tested) { pthread_t thread; if (pthread_create (&thread, NULL, dummy_thread_func, NULL) != 0) /* Thread creation failed. */ result = 0; else { /* Thread creation works. */ void *retval; if (pthread_join (thread, &retval) != 0) abort (); result = 1; } tested = 1; } return result; } # endif #endif /* ========================================================================= */ /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; gcal-4.1/lib/glthread/lock.h0000664000000000000000000011311613041163522012616 00000000000000/* Locking in multithreaded situations. Copyright (C) 2005-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-win32.h. */ /* This file contains locking primitives for use with a given thread library. It does not contain primitives for creating threads or for other synchronization primitives. Normal (non-recursive) locks: Type: gl_lock_t Declaration: gl_lock_define(extern, name) Initializer: gl_lock_define_initialized(, name) Initialization: gl_lock_init (name); Taking the lock: gl_lock_lock (name); Releasing the lock: gl_lock_unlock (name); De-initialization: gl_lock_destroy (name); Equivalent functions with control of error handling: Initialization: err = glthread_lock_init (&name); Taking the lock: err = glthread_lock_lock (&name); Releasing the lock: err = glthread_lock_unlock (&name); De-initialization: err = glthread_lock_destroy (&name); Read-Write (non-recursive) locks: Type: gl_rwlock_t Declaration: gl_rwlock_define(extern, name) Initializer: gl_rwlock_define_initialized(, name) Initialization: gl_rwlock_init (name); Taking the lock: gl_rwlock_rdlock (name); gl_rwlock_wrlock (name); Releasing the lock: gl_rwlock_unlock (name); De-initialization: gl_rwlock_destroy (name); Equivalent functions with control of error handling: Initialization: err = glthread_rwlock_init (&name); Taking the lock: err = glthread_rwlock_rdlock (&name); err = glthread_rwlock_wrlock (&name); Releasing the lock: err = glthread_rwlock_unlock (&name); De-initialization: err = glthread_rwlock_destroy (&name); Recursive locks: Type: gl_recursive_lock_t Declaration: gl_recursive_lock_define(extern, name) Initializer: gl_recursive_lock_define_initialized(, name) Initialization: gl_recursive_lock_init (name); Taking the lock: gl_recursive_lock_lock (name); Releasing the lock: gl_recursive_lock_unlock (name); De-initialization: gl_recursive_lock_destroy (name); Equivalent functions with control of error handling: Initialization: err = glthread_recursive_lock_init (&name); Taking the lock: err = glthread_recursive_lock_lock (&name); Releasing the lock: err = glthread_recursive_lock_unlock (&name); De-initialization: err = glthread_recursive_lock_destroy (&name); Once-only execution: Type: gl_once_t Initializer: gl_once_define(extern, name) Execution: gl_once (name, initfunction); Equivalent functions with control of error handling: Execution: err = glthread_once (&name, initfunction); */ #ifndef _LOCK_H #define _LOCK_H #include #include /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if PTHREAD_IN_USE_DETECTION_HARD /* The pthread_in_use() detection needs to be done at runtime. */ # define pthread_in_use() \ glthread_in_use () extern int glthread_in_use (void); # endif # if USE_POSIX_THREADS_WEAK /* Use weak references to the POSIX threads library. */ /* Weak references avoid dragging in external libraries if the other parts of the program don't use them. Here we use them, because we don't want every program that uses libintl to depend on libpthread. This assumes that libpthread would not be loaded after libintl; i.e. if libintl is loaded first, by an executable that does not depend on libpthread, and then a module is dynamically loaded that depends on libpthread, libintl will not be multithread-safe. */ /* The way to test at runtime whether libpthread is present is to test whether a function pointer's value, such as &pthread_mutex_init, is non-NULL. However, some versions of GCC have a bug through which, in PIC mode, &foo != NULL always evaluates to true if there is a direct call to foo(...) in the same function. To avoid this, we test the address of a function in libpthread that we don't use. */ # pragma weak pthread_mutex_init # pragma weak pthread_mutex_lock # pragma weak pthread_mutex_unlock # pragma weak pthread_mutex_destroy # pragma weak pthread_rwlock_init # pragma weak pthread_rwlock_rdlock # pragma weak pthread_rwlock_wrlock # pragma weak pthread_rwlock_unlock # pragma weak pthread_rwlock_destroy # pragma weak pthread_once # pragma weak pthread_cond_init # pragma weak pthread_cond_wait # pragma weak pthread_cond_signal # pragma weak pthread_cond_broadcast # pragma weak pthread_cond_destroy # pragma weak pthread_mutexattr_init # pragma weak pthread_mutexattr_settype # pragma weak pthread_mutexattr_destroy # ifndef pthread_self # pragma weak pthread_self # endif # if !PTHREAD_IN_USE_DETECTION_HARD # pragma weak pthread_cancel # define pthread_in_use() (pthread_cancel != NULL) # endif # else # if !PTHREAD_IN_USE_DETECTION_HARD # define pthread_in_use() 1 # endif # endif /* -------------------------- gl_lock_t datatype -------------------------- */ typedef pthread_mutex_t gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME = gl_lock_initializer; # define gl_lock_initializer \ PTHREAD_MUTEX_INITIALIZER # define glthread_lock_init(LOCK) \ (pthread_in_use () ? pthread_mutex_init (LOCK, NULL) : 0) # define glthread_lock_lock(LOCK) \ (pthread_in_use () ? pthread_mutex_lock (LOCK) : 0) # define glthread_lock_unlock(LOCK) \ (pthread_in_use () ? pthread_mutex_unlock (LOCK) : 0) # define glthread_lock_destroy(LOCK) \ (pthread_in_use () ? pthread_mutex_destroy (LOCK) : 0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ # if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (__GNU_LIBRARY__ > 1)) # ifdef PTHREAD_RWLOCK_INITIALIZER typedef pthread_rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_rwlock_t NAME = gl_rwlock_initializer; # if HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER # define gl_rwlock_initializer \ PTHREAD_RWLOCK_INITIALIZER # define glthread_rwlock_init(LOCK) \ (pthread_in_use () ? pthread_rwlock_init (LOCK, NULL) : 0) # else /* glibc with bug https://sourceware.org/bugzilla/show_bug.cgi?id=13701 */ # define gl_rwlock_initializer \ PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP # define glthread_rwlock_init(LOCK) \ (pthread_in_use () ? glthread_rwlock_init_for_glibc (LOCK) : 0) extern int glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock); # endif # define glthread_rwlock_rdlock(LOCK) \ (pthread_in_use () ? pthread_rwlock_rdlock (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (pthread_in_use () ? pthread_rwlock_wrlock (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (pthread_in_use () ? pthread_rwlock_unlock (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (pthread_in_use () ? pthread_rwlock_destroy (LOCK) : 0) # else typedef struct { int initialized; pthread_mutex_t guard; /* protects the initialization */ pthread_rwlock_t rwlock; /* read-write lock */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { 0, PTHREAD_MUTEX_INITIALIZER } # define glthread_rwlock_init(LOCK) \ (pthread_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0) # define glthread_rwlock_rdlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (pthread_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0) extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock); # endif # else typedef struct { pthread_mutex_t lock; /* protects the remaining fields */ pthread_cond_t waiting_readers; /* waiting readers */ pthread_cond_t waiting_writers; /* waiting writers */ unsigned int waiting_writers_count; /* number of waiting writers */ int runcount; /* number of readers running, or -1 when a writer runs */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0 } # define glthread_rwlock_init(LOCK) \ (pthread_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0) # define glthread_rwlock_rdlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (pthread_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0) extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock); # endif /* --------------------- gl_recursive_lock_t datatype --------------------- */ # if HAVE_PTHREAD_MUTEX_RECURSIVE # if defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP typedef pthread_mutex_t gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME = gl_recursive_lock_initializer; # ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER # define gl_recursive_lock_initializer \ PTHREAD_RECURSIVE_MUTEX_INITIALIZER # else # define gl_recursive_lock_initializer \ PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP # endif # define glthread_recursive_lock_init(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) # define glthread_recursive_lock_lock(LOCK) \ (pthread_in_use () ? pthread_mutex_lock (LOCK) : 0) # define glthread_recursive_lock_unlock(LOCK) \ (pthread_in_use () ? pthread_mutex_unlock (LOCK) : 0) # define glthread_recursive_lock_destroy(LOCK) \ (pthread_in_use () ? pthread_mutex_destroy (LOCK) : 0) extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); # else typedef struct { pthread_mutex_t recmutex; /* recursive mutex */ pthread_mutex_t guard; /* protects the initialization */ int initialized; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { PTHREAD_MUTEX_INITIALIZER, PTHREAD_MUTEX_INITIALIZER, 0 } # define glthread_recursive_lock_init(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) # define glthread_recursive_lock_lock(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_unlock(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_destroy(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); # endif # else /* Old versions of POSIX threads on Solaris did not have recursive locks. We have to implement them ourselves. */ typedef struct { pthread_mutex_t mutex; pthread_t owner; unsigned long depth; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { PTHREAD_MUTEX_INITIALIZER, (pthread_t) 0, 0 } # define glthread_recursive_lock_init(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) # define glthread_recursive_lock_lock(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_unlock(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_destroy(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); # endif /* -------------------------- gl_once_t datatype -------------------------- */ typedef pthread_once_t gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_once_t NAME = PTHREAD_ONCE_INIT; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (pthread_in_use () \ ? pthread_once (ONCE_CONTROL, INITFUNCTION) \ : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) extern int glthread_once_singlethreaded (pthread_once_t *once_control); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if USE_PTH_THREADS_WEAK /* Use weak references to the GNU Pth threads library. */ # pragma weak pth_mutex_init # pragma weak pth_mutex_acquire # pragma weak pth_mutex_release # pragma weak pth_rwlock_init # pragma weak pth_rwlock_acquire # pragma weak pth_rwlock_release # pragma weak pth_once # pragma weak pth_cancel # define pth_in_use() (pth_cancel != NULL) # else # define pth_in_use() 1 # endif /* -------------------------- gl_lock_t datatype -------------------------- */ typedef pth_mutex_t gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME = gl_lock_initializer; # define gl_lock_initializer \ PTH_MUTEX_INIT # define glthread_lock_init(LOCK) \ (pth_in_use () && !pth_mutex_init (LOCK) ? errno : 0) # define glthread_lock_lock(LOCK) \ (pth_in_use () && !pth_mutex_acquire (LOCK, 0, NULL) ? errno : 0) # define glthread_lock_unlock(LOCK) \ (pth_in_use () && !pth_mutex_release (LOCK) ? errno : 0) # define glthread_lock_destroy(LOCK) \ ((void)(LOCK), 0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* Pth pth_rwlock_acquire always prefers readers. No autoconf test so far. */ # if HAVE_PTH_RWLOCK_ACQUIRE_PREFER_WRITER typedef pth_rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS pth_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pth_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ PTH_RWLOCK_INIT # define glthread_rwlock_init(LOCK) \ (pth_in_use () && !pth_rwlock_init (LOCK) ? errno : 0) # define glthread_rwlock_rdlock(LOCK) \ (pth_in_use () && !pth_rwlock_acquire (LOCK, PTH_RWLOCK_RD, 0, NULL) ? errno : 0) # define glthread_rwlock_wrlock(LOCK) \ (pth_in_use () && !pth_rwlock_acquire (LOCK, PTH_RWLOCK_RW, 0, NULL) ? errno : 0) # define glthread_rwlock_unlock(LOCK) \ (pth_in_use () && !pth_rwlock_release (LOCK) ? errno : 0) # define glthread_rwlock_destroy(LOCK) \ ((void)(LOCK), 0) # else typedef struct { int initialized; pth_mutex_t lock; /* protects the remaining fields */ pth_cond_t waiting_readers; /* waiting readers */ pth_cond_t waiting_writers; /* waiting writers */ unsigned int waiting_writers_count; /* number of waiting writers */ int runcount; /* number of readers running, or -1 when a writer runs */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { 0 } # define glthread_rwlock_init(LOCK) \ (pth_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0) # define glthread_rwlock_rdlock(LOCK) \ (pth_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (pth_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (pth_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (pth_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0) extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock); # endif /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* In Pth, mutexes are recursive by default. */ typedef pth_mutex_t gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ PTH_MUTEX_INIT # define glthread_recursive_lock_init(LOCK) \ (pth_in_use () && !pth_mutex_init (LOCK) ? errno : 0) # define glthread_recursive_lock_lock(LOCK) \ (pth_in_use () && !pth_mutex_acquire (LOCK, 0, NULL) ? errno : 0) # define glthread_recursive_lock_unlock(LOCK) \ (pth_in_use () && !pth_mutex_release (LOCK) ? errno : 0) # define glthread_recursive_lock_destroy(LOCK) \ ((void)(LOCK), 0) /* -------------------------- gl_once_t datatype -------------------------- */ typedef pth_once_t gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS pth_once_t NAME = PTH_ONCE_INIT; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (pth_in_use () \ ? glthread_once_multithreaded (ONCE_CONTROL, INITFUNCTION) \ : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) extern int glthread_once_multithreaded (pth_once_t *once_control, void (*initfunction) (void)); extern int glthread_once_singlethreaded (pth_once_t *once_control); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ # include # include # ifdef __cplusplus extern "C" { # endif # if USE_SOLARIS_THREADS_WEAK /* Use weak references to the old Solaris threads library. */ # pragma weak mutex_init # pragma weak mutex_lock # pragma weak mutex_unlock # pragma weak mutex_destroy # pragma weak rwlock_init # pragma weak rw_rdlock # pragma weak rw_wrlock # pragma weak rw_unlock # pragma weak rwlock_destroy # pragma weak thr_self # pragma weak thr_suspend # define thread_in_use() (thr_suspend != NULL) # else # define thread_in_use() 1 # endif /* -------------------------- gl_lock_t datatype -------------------------- */ typedef mutex_t gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS mutex_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS mutex_t NAME = gl_lock_initializer; # define gl_lock_initializer \ DEFAULTMUTEX # define glthread_lock_init(LOCK) \ (thread_in_use () ? mutex_init (LOCK, USYNC_THREAD, NULL) : 0) # define glthread_lock_lock(LOCK) \ (thread_in_use () ? mutex_lock (LOCK) : 0) # define glthread_lock_unlock(LOCK) \ (thread_in_use () ? mutex_unlock (LOCK) : 0) # define glthread_lock_destroy(LOCK) \ (thread_in_use () ? mutex_destroy (LOCK) : 0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ typedef rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ DEFAULTRWLOCK # define glthread_rwlock_init(LOCK) \ (thread_in_use () ? rwlock_init (LOCK, USYNC_THREAD, NULL) : 0) # define glthread_rwlock_rdlock(LOCK) \ (thread_in_use () ? rw_rdlock (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (thread_in_use () ? rw_wrlock (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (thread_in_use () ? rw_unlock (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (thread_in_use () ? rwlock_destroy (LOCK) : 0) /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* Old Solaris threads did not have recursive locks. We have to implement them ourselves. */ typedef struct { mutex_t mutex; thread_t owner; unsigned long depth; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { DEFAULTMUTEX, (thread_t) 0, 0 } # define glthread_recursive_lock_init(LOCK) \ (thread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) # define glthread_recursive_lock_lock(LOCK) \ (thread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_unlock(LOCK) \ (thread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_destroy(LOCK) \ (thread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); /* -------------------------- gl_once_t datatype -------------------------- */ typedef struct { volatile int inited; mutex_t mutex; } gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS gl_once_t NAME = { 0, DEFAULTMUTEX }; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (thread_in_use () \ ? glthread_once_multithreaded (ONCE_CONTROL, INITFUNCTION) \ : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) extern int glthread_once_multithreaded (gl_once_t *once_control, void (*initfunction) (void)); extern int glthread_once_singlethreaded (gl_once_t *once_control); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # ifdef __cplusplus extern "C" { # endif /* We can use CRITICAL_SECTION directly, rather than the native Windows Event, Mutex, Semaphore types, because - we need only to synchronize inside a single process (address space), not inter-process locking, - we don't need to support trylock operations. (TryEnterCriticalSection does not work on Windows 95/98/ME. Packages that need trylock usually define their own mutex type.) */ /* There is no way to statically initialize a CRITICAL_SECTION. It needs to be done lazily, once only. For this we need spinlocks. */ typedef struct { volatile int done; volatile long started; } gl_spinlock_t; /* -------------------------- gl_lock_t datatype -------------------------- */ typedef struct { gl_spinlock_t guard; /* protects the initialization */ CRITICAL_SECTION lock; } gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_lock_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_lock_t NAME = gl_lock_initializer; # define gl_lock_initializer \ { { 0, -1 } } # define glthread_lock_init(LOCK) \ (glthread_lock_init_func (LOCK), 0) # define glthread_lock_lock(LOCK) \ glthread_lock_lock_func (LOCK) # define glthread_lock_unlock(LOCK) \ glthread_lock_unlock_func (LOCK) # define glthread_lock_destroy(LOCK) \ glthread_lock_destroy_func (LOCK) extern void glthread_lock_init_func (gl_lock_t *lock); extern int glthread_lock_lock_func (gl_lock_t *lock); extern int glthread_lock_unlock_func (gl_lock_t *lock); extern int glthread_lock_destroy_func (gl_lock_t *lock); /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* It is impossible to implement read-write locks using plain locks, without introducing an extra thread dedicated to managing read-write locks. Therefore here we need to use the low-level Event type. */ typedef struct { HANDLE *array; /* array of waiting threads, each represented by an event */ unsigned int count; /* number of waiting threads */ unsigned int alloc; /* length of allocated array */ unsigned int offset; /* index of first waiting thread in array */ } gl_carray_waitqueue_t; typedef struct { gl_spinlock_t guard; /* protects the initialization */ CRITICAL_SECTION lock; /* protects the remaining fields */ gl_carray_waitqueue_t waiting_readers; /* waiting readers */ gl_carray_waitqueue_t waiting_writers; /* waiting writers */ int runcount; /* number of readers running, or -1 when a writer runs */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { { 0, -1 } } # define glthread_rwlock_init(LOCK) \ (glthread_rwlock_init_func (LOCK), 0) # define glthread_rwlock_rdlock(LOCK) \ glthread_rwlock_rdlock_func (LOCK) # define glthread_rwlock_wrlock(LOCK) \ glthread_rwlock_wrlock_func (LOCK) # define glthread_rwlock_unlock(LOCK) \ glthread_rwlock_unlock_func (LOCK) # define glthread_rwlock_destroy(LOCK) \ glthread_rwlock_destroy_func (LOCK) extern void glthread_rwlock_init_func (gl_rwlock_t *lock); extern int glthread_rwlock_rdlock_func (gl_rwlock_t *lock); extern int glthread_rwlock_wrlock_func (gl_rwlock_t *lock); extern int glthread_rwlock_unlock_func (gl_rwlock_t *lock); extern int glthread_rwlock_destroy_func (gl_rwlock_t *lock); /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* The native Windows documentation says that CRITICAL_SECTION already implements a recursive lock. But we need not rely on it: It's easy to implement a recursive lock without this assumption. */ typedef struct { gl_spinlock_t guard; /* protects the initialization */ DWORD owner; unsigned long depth; CRITICAL_SECTION lock; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { { 0, -1 }, 0, 0 } # define glthread_recursive_lock_init(LOCK) \ (glthread_recursive_lock_init_func (LOCK), 0) # define glthread_recursive_lock_lock(LOCK) \ glthread_recursive_lock_lock_func (LOCK) # define glthread_recursive_lock_unlock(LOCK) \ glthread_recursive_lock_unlock_func (LOCK) # define glthread_recursive_lock_destroy(LOCK) \ glthread_recursive_lock_destroy_func (LOCK) extern void glthread_recursive_lock_init_func (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_lock_func (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_unlock_func (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_destroy_func (gl_recursive_lock_t *lock); /* -------------------------- gl_once_t datatype -------------------------- */ typedef struct { volatile int inited; volatile long started; CRITICAL_SECTION lock; } gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS gl_once_t NAME = { -1, -1 }; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (glthread_once_func (ONCE_CONTROL, INITFUNCTION), 0) extern void glthread_once_func (gl_once_t *once_control, void (*initfunction) (void)); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS) /* Provide dummy implementation if threads are not supported. */ /* -------------------------- gl_lock_t datatype -------------------------- */ typedef int gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) # define gl_lock_define_initialized(STORAGECLASS, NAME) # define glthread_lock_init(NAME) 0 # define glthread_lock_lock(NAME) 0 # define glthread_lock_unlock(NAME) 0 # define glthread_lock_destroy(NAME) 0 /* ------------------------- gl_rwlock_t datatype ------------------------- */ typedef int gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) # define gl_rwlock_define_initialized(STORAGECLASS, NAME) # define glthread_rwlock_init(NAME) 0 # define glthread_rwlock_rdlock(NAME) 0 # define glthread_rwlock_wrlock(NAME) 0 # define glthread_rwlock_unlock(NAME) 0 # define glthread_rwlock_destroy(NAME) 0 /* --------------------- gl_recursive_lock_t datatype --------------------- */ typedef int gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) # define glthread_recursive_lock_init(NAME) 0 # define glthread_recursive_lock_lock(NAME) 0 # define glthread_recursive_lock_unlock(NAME) 0 # define glthread_recursive_lock_destroy(NAME) 0 /* -------------------------- gl_once_t datatype -------------------------- */ typedef int gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS gl_once_t NAME = 0; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (*(ONCE_CONTROL) == 0 ? (*(ONCE_CONTROL) = ~ 0, INITFUNCTION (), 0) : 0) #endif /* ========================================================================= */ /* Macros with built-in error handling. */ /* -------------------------- gl_lock_t datatype -------------------------- */ #define gl_lock_init(NAME) \ do \ { \ if (glthread_lock_init (&NAME)) \ abort (); \ } \ while (0) #define gl_lock_lock(NAME) \ do \ { \ if (glthread_lock_lock (&NAME)) \ abort (); \ } \ while (0) #define gl_lock_unlock(NAME) \ do \ { \ if (glthread_lock_unlock (&NAME)) \ abort (); \ } \ while (0) #define gl_lock_destroy(NAME) \ do \ { \ if (glthread_lock_destroy (&NAME)) \ abort (); \ } \ while (0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ #define gl_rwlock_init(NAME) \ do \ { \ if (glthread_rwlock_init (&NAME)) \ abort (); \ } \ while (0) #define gl_rwlock_rdlock(NAME) \ do \ { \ if (glthread_rwlock_rdlock (&NAME)) \ abort (); \ } \ while (0) #define gl_rwlock_wrlock(NAME) \ do \ { \ if (glthread_rwlock_wrlock (&NAME)) \ abort (); \ } \ while (0) #define gl_rwlock_unlock(NAME) \ do \ { \ if (glthread_rwlock_unlock (&NAME)) \ abort (); \ } \ while (0) #define gl_rwlock_destroy(NAME) \ do \ { \ if (glthread_rwlock_destroy (&NAME)) \ abort (); \ } \ while (0) /* --------------------- gl_recursive_lock_t datatype --------------------- */ #define gl_recursive_lock_init(NAME) \ do \ { \ if (glthread_recursive_lock_init (&NAME)) \ abort (); \ } \ while (0) #define gl_recursive_lock_lock(NAME) \ do \ { \ if (glthread_recursive_lock_lock (&NAME)) \ abort (); \ } \ while (0) #define gl_recursive_lock_unlock(NAME) \ do \ { \ if (glthread_recursive_lock_unlock (&NAME)) \ abort (); \ } \ while (0) #define gl_recursive_lock_destroy(NAME) \ do \ { \ if (glthread_recursive_lock_destroy (&NAME)) \ abort (); \ } \ while (0) /* -------------------------- gl_once_t datatype -------------------------- */ #define gl_once(NAME, INITFUNCTION) \ do \ { \ if (glthread_once (&NAME, INITFUNCTION)) \ abort (); \ } \ while (0) /* ========================================================================= */ #endif /* _LOCK_H */ gcal-4.1/lib/glthread/lock.c0000664000000000000000000007556013041163522012623 00000000000000/* Locking in multithreaded situations. Copyright (C) 2005-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-win32.h. */ #include #include "glthread/lock.h" /* ========================================================================= */ #if USE_POSIX_THREADS /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ # if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (__GNU_LIBRARY__ > 1)) # ifdef PTHREAD_RWLOCK_INITIALIZER # if !HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER /* glibc with bug https://sourceware.org/bugzilla/show_bug.cgi?id=13701 */ int glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock) { pthread_rwlockattr_t attributes; int err; err = pthread_rwlockattr_init (&attributes); if (err != 0) return err; /* Note: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP is the only value that causes the writer to be preferred. PTHREAD_RWLOCK_PREFER_WRITER_NP does not do this; see http://man7.org/linux/man-pages/man3/pthread_rwlockattr_setkind_np.3.html */ err = pthread_rwlockattr_setkind_np (&attributes, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP); if (err == 0) err = pthread_rwlock_init(lock, &attributes); /* pthread_rwlockattr_destroy always returns 0. It cannot influence the return value. */ pthread_rwlockattr_destroy (&attributes); return err; } # endif # else int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_rwlock_init (&lock->rwlock, NULL); if (err != 0) return err; lock->initialized = 1; return 0; } int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) { int err; err = pthread_mutex_lock (&lock->guard); if (err != 0) return err; if (!lock->initialized) { err = glthread_rwlock_init_multithreaded (lock); if (err != 0) { pthread_mutex_unlock (&lock->guard); return err; } } err = pthread_mutex_unlock (&lock->guard); if (err != 0) return err; } return pthread_rwlock_rdlock (&lock->rwlock); } int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) { int err; err = pthread_mutex_lock (&lock->guard); if (err != 0) return err; if (!lock->initialized) { err = glthread_rwlock_init_multithreaded (lock); if (err != 0) { pthread_mutex_unlock (&lock->guard); return err; } } err = pthread_mutex_unlock (&lock->guard); if (err != 0) return err; } return pthread_rwlock_wrlock (&lock->rwlock); } int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) return EINVAL; return pthread_rwlock_unlock (&lock->rwlock); } int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock) { int err; if (!lock->initialized) return EINVAL; err = pthread_rwlock_destroy (&lock->rwlock); if (err != 0) return err; lock->initialized = 0; return 0; } # endif # else int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_init (&lock->lock, NULL); if (err != 0) return err; err = pthread_cond_init (&lock->waiting_readers, NULL); if (err != 0) return err; err = pthread_cond_init (&lock->waiting_writers, NULL); if (err != 0) return err; lock->waiting_writers_count = 0; lock->runcount = 0; return 0; } int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_lock (&lock->lock); if (err != 0) return err; /* Test whether only readers are currently running, and whether the runcount field will not overflow, and whether no writer is waiting. The latter condition is because POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_readers. */ err = pthread_cond_wait (&lock->waiting_readers, &lock->lock); if (err != 0) { pthread_mutex_unlock (&lock->lock); return err; } } lock->runcount++; return pthread_mutex_unlock (&lock->lock); } int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_lock (&lock->lock); if (err != 0) return err; /* Test whether no readers or writers are currently running. */ while (!(lock->runcount == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_writers. */ lock->waiting_writers_count++; err = pthread_cond_wait (&lock->waiting_writers, &lock->lock); if (err != 0) { lock->waiting_writers_count--; pthread_mutex_unlock (&lock->lock); return err; } lock->waiting_writers_count--; } lock->runcount--; /* runcount becomes -1 */ return pthread_mutex_unlock (&lock->lock); } int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_lock (&lock->lock); if (err != 0) return err; if (lock->runcount < 0) { /* Drop a writer lock. */ if (!(lock->runcount == -1)) { pthread_mutex_unlock (&lock->lock); return EINVAL; } lock->runcount = 0; } else { /* Drop a reader lock. */ if (!(lock->runcount > 0)) { pthread_mutex_unlock (&lock->lock); return EINVAL; } lock->runcount--; } if (lock->runcount == 0) { /* POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ if (lock->waiting_writers_count > 0) { /* Wake up one of the waiting writers. */ err = pthread_cond_signal (&lock->waiting_writers); if (err != 0) { pthread_mutex_unlock (&lock->lock); return err; } } else { /* Wake up all waiting readers. */ err = pthread_cond_broadcast (&lock->waiting_readers); if (err != 0) { pthread_mutex_unlock (&lock->lock); return err; } } } return pthread_mutex_unlock (&lock->lock); } int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_destroy (&lock->lock); if (err != 0) return err; err = pthread_cond_destroy (&lock->waiting_readers); if (err != 0) return err; err = pthread_cond_destroy (&lock->waiting_writers); if (err != 0) return err; return 0; } # endif /* --------------------- gl_recursive_lock_t datatype --------------------- */ # if HAVE_PTHREAD_MUTEX_RECURSIVE # if defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) { pthread_mutexattr_t attributes; int err; err = pthread_mutexattr_init (&attributes); if (err != 0) return err; err = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE); if (err != 0) { pthread_mutexattr_destroy (&attributes); return err; } err = pthread_mutex_init (lock, &attributes); if (err != 0) { pthread_mutexattr_destroy (&attributes); return err; } err = pthread_mutexattr_destroy (&attributes); if (err != 0) return err; return 0; } # else int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) { pthread_mutexattr_t attributes; int err; err = pthread_mutexattr_init (&attributes); if (err != 0) return err; err = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE); if (err != 0) { pthread_mutexattr_destroy (&attributes); return err; } err = pthread_mutex_init (&lock->recmutex, &attributes); if (err != 0) { pthread_mutexattr_destroy (&attributes); return err; } err = pthread_mutexattr_destroy (&attributes); if (err != 0) return err; lock->initialized = 1; return 0; } int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock) { if (!lock->initialized) { int err; err = pthread_mutex_lock (&lock->guard); if (err != 0) return err; if (!lock->initialized) { err = glthread_recursive_lock_init_multithreaded (lock); if (err != 0) { pthread_mutex_unlock (&lock->guard); return err; } } err = pthread_mutex_unlock (&lock->guard); if (err != 0) return err; } return pthread_mutex_lock (&lock->recmutex); } int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock) { if (!lock->initialized) return EINVAL; return pthread_mutex_unlock (&lock->recmutex); } int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock) { int err; if (!lock->initialized) return EINVAL; err = pthread_mutex_destroy (&lock->recmutex); if (err != 0) return err; lock->initialized = 0; return 0; } # endif # else int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) { int err; err = pthread_mutex_init (&lock->mutex, NULL); if (err != 0) return err; lock->owner = (pthread_t) 0; lock->depth = 0; return 0; } int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock) { pthread_t self = pthread_self (); if (lock->owner != self) { int err; err = pthread_mutex_lock (&lock->mutex); if (err != 0) return err; lock->owner = self; } if (++(lock->depth) == 0) /* wraparound? */ { lock->depth--; return EAGAIN; } return 0; } int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock) { if (lock->owner != pthread_self ()) return EPERM; if (lock->depth == 0) return EINVAL; if (--(lock->depth) == 0) { lock->owner = (pthread_t) 0; return pthread_mutex_unlock (&lock->mutex); } else return 0; } int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock) { if (lock->owner != (pthread_t) 0) return EBUSY; return pthread_mutex_destroy (&lock->mutex); } # endif /* -------------------------- gl_once_t datatype -------------------------- */ static const pthread_once_t fresh_once = PTHREAD_ONCE_INIT; int glthread_once_singlethreaded (pthread_once_t *once_control) { /* We don't know whether pthread_once_t is an integer type, a floating-point type, a pointer type, or a structure type. */ char *firstbyte = (char *)once_control; if (*firstbyte == *(const char *)&fresh_once) { /* First time use of once_control. Invert the first byte. */ *firstbyte = ~ *(const char *)&fresh_once; return 1; } else return 0; } #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ # if !HAVE_PTH_RWLOCK_ACQUIRE_PREFER_WRITER int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock) { if (!pth_mutex_init (&lock->lock)) return errno; if (!pth_cond_init (&lock->waiting_readers)) return errno; if (!pth_cond_init (&lock->waiting_writers)) return errno; lock->waiting_writers_count = 0; lock->runcount = 0; lock->initialized = 1; return 0; } int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) glthread_rwlock_init_multithreaded (lock); if (!pth_mutex_acquire (&lock->lock, 0, NULL)) return errno; /* Test whether only readers are currently running, and whether the runcount field will not overflow, and whether no writer is waiting. The latter condition is because POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_readers. */ if (!pth_cond_await (&lock->waiting_readers, &lock->lock, NULL)) { int err = errno; pth_mutex_release (&lock->lock); return err; } } lock->runcount++; return (!pth_mutex_release (&lock->lock) ? errno : 0); } int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) glthread_rwlock_init_multithreaded (lock); if (!pth_mutex_acquire (&lock->lock, 0, NULL)) return errno; /* Test whether no readers or writers are currently running. */ while (!(lock->runcount == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_writers. */ lock->waiting_writers_count++; if (!pth_cond_await (&lock->waiting_writers, &lock->lock, NULL)) { int err = errno; lock->waiting_writers_count--; pth_mutex_release (&lock->lock); return err; } lock->waiting_writers_count--; } lock->runcount--; /* runcount becomes -1 */ return (!pth_mutex_release (&lock->lock) ? errno : 0); } int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock) { int err; if (!lock->initialized) return EINVAL; if (!pth_mutex_acquire (&lock->lock, 0, NULL)) return errno; if (lock->runcount < 0) { /* Drop a writer lock. */ if (!(lock->runcount == -1)) { pth_mutex_release (&lock->lock); return EINVAL; } lock->runcount = 0; } else { /* Drop a reader lock. */ if (!(lock->runcount > 0)) { pth_mutex_release (&lock->lock); return EINVAL; } lock->runcount--; } if (lock->runcount == 0) { /* POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ if (lock->waiting_writers_count > 0) { /* Wake up one of the waiting writers. */ if (!pth_cond_notify (&lock->waiting_writers, FALSE)) { int err = errno; pth_mutex_release (&lock->lock); return err; } } else { /* Wake up all waiting readers. */ if (!pth_cond_notify (&lock->waiting_readers, TRUE)) { int err = errno; pth_mutex_release (&lock->lock); return err; } } } return (!pth_mutex_release (&lock->lock) ? errno : 0); } int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock) { lock->initialized = 0; return 0; } # endif /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* -------------------------- gl_once_t datatype -------------------------- */ static void glthread_once_call (void *arg) { void (**gl_once_temp_addr) (void) = (void (**) (void)) arg; void (*initfunction) (void) = *gl_once_temp_addr; initfunction (); } int glthread_once_multithreaded (pth_once_t *once_control, void (*initfunction) (void)) { void (*temp) (void) = initfunction; return (!pth_once (once_control, glthread_once_call, &temp) ? errno : 0); } int glthread_once_singlethreaded (pth_once_t *once_control) { /* We know that pth_once_t is an integer type. */ if (*once_control == PTH_ONCE_INIT) { /* First time use of once_control. Invert the marker. */ *once_control = ~ PTH_ONCE_INIT; return 1; } else return 0; } #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* --------------------- gl_recursive_lock_t datatype --------------------- */ int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) { int err; err = mutex_init (&lock->mutex, USYNC_THREAD, NULL); if (err != 0) return err; lock->owner = (thread_t) 0; lock->depth = 0; return 0; } int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock) { thread_t self = thr_self (); if (lock->owner != self) { int err; err = mutex_lock (&lock->mutex); if (err != 0) return err; lock->owner = self; } if (++(lock->depth) == 0) /* wraparound? */ { lock->depth--; return EAGAIN; } return 0; } int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock) { if (lock->owner != thr_self ()) return EPERM; if (lock->depth == 0) return EINVAL; if (--(lock->depth) == 0) { lock->owner = (thread_t) 0; return mutex_unlock (&lock->mutex); } else return 0; } int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock) { if (lock->owner != (thread_t) 0) return EBUSY; return mutex_destroy (&lock->mutex); } /* -------------------------- gl_once_t datatype -------------------------- */ int glthread_once_multithreaded (gl_once_t *once_control, void (*initfunction) (void)) { if (!once_control->inited) { int err; /* Use the mutex to guarantee that if another thread is already calling the initfunction, this thread waits until it's finished. */ err = mutex_lock (&once_control->mutex); if (err != 0) return err; if (!once_control->inited) { once_control->inited = 1; initfunction (); } return mutex_unlock (&once_control->mutex); } else return 0; } int glthread_once_singlethreaded (gl_once_t *once_control) { /* We know that gl_once_t contains an integer type. */ if (!once_control->inited) { /* First time use of once_control. Invert the marker. */ once_control->inited = ~ 0; return 1; } else return 0; } #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS /* -------------------------- gl_lock_t datatype -------------------------- */ void glthread_lock_init_func (gl_lock_t *lock) { InitializeCriticalSection (&lock->lock); lock->guard.done = 1; } int glthread_lock_lock_func (gl_lock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_lock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } EnterCriticalSection (&lock->lock); return 0; } int glthread_lock_unlock_func (gl_lock_t *lock) { if (!lock->guard.done) return EINVAL; LeaveCriticalSection (&lock->lock); return 0; } int glthread_lock_destroy_func (gl_lock_t *lock) { if (!lock->guard.done) return EINVAL; DeleteCriticalSection (&lock->lock); lock->guard.done = 0; return 0; } /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* In this file, the waitqueues are implemented as circular arrays. */ #define gl_waitqueue_t gl_carray_waitqueue_t static void gl_waitqueue_init (gl_waitqueue_t *wq) { wq->array = NULL; wq->count = 0; wq->alloc = 0; wq->offset = 0; } /* Enqueues the current thread, represented by an event, in a wait queue. Returns INVALID_HANDLE_VALUE if an allocation failure occurs. */ static HANDLE gl_waitqueue_add (gl_waitqueue_t *wq) { HANDLE event; unsigned int index; if (wq->count == wq->alloc) { unsigned int new_alloc = 2 * wq->alloc + 1; HANDLE *new_array = (HANDLE *) realloc (wq->array, new_alloc * sizeof (HANDLE)); if (new_array == NULL) /* No more memory. */ return INVALID_HANDLE_VALUE; /* Now is a good opportunity to rotate the array so that its contents starts at offset 0. */ if (wq->offset > 0) { unsigned int old_count = wq->count; unsigned int old_alloc = wq->alloc; unsigned int old_offset = wq->offset; unsigned int i; if (old_offset + old_count > old_alloc) { unsigned int limit = old_offset + old_count - old_alloc; for (i = 0; i < limit; i++) new_array[old_alloc + i] = new_array[i]; } for (i = 0; i < old_count; i++) new_array[i] = new_array[old_offset + i]; wq->offset = 0; } wq->array = new_array; wq->alloc = new_alloc; } /* Whether the created event is a manual-reset one or an auto-reset one, does not matter, since we will wait on it only once. */ event = CreateEvent (NULL, TRUE, FALSE, NULL); if (event == INVALID_HANDLE_VALUE) /* No way to allocate an event. */ return INVALID_HANDLE_VALUE; index = wq->offset + wq->count; if (index >= wq->alloc) index -= wq->alloc; wq->array[index] = event; wq->count++; return event; } /* Notifies the first thread from a wait queue and dequeues it. */ static void gl_waitqueue_notify_first (gl_waitqueue_t *wq) { SetEvent (wq->array[wq->offset + 0]); wq->offset++; wq->count--; if (wq->count == 0 || wq->offset == wq->alloc) wq->offset = 0; } /* Notifies all threads from a wait queue and dequeues them all. */ static void gl_waitqueue_notify_all (gl_waitqueue_t *wq) { unsigned int i; for (i = 0; i < wq->count; i++) { unsigned int index = wq->offset + i; if (index >= wq->alloc) index -= wq->alloc; SetEvent (wq->array[index]); } wq->count = 0; wq->offset = 0; } void glthread_rwlock_init_func (gl_rwlock_t *lock) { InitializeCriticalSection (&lock->lock); gl_waitqueue_init (&lock->waiting_readers); gl_waitqueue_init (&lock->waiting_writers); lock->runcount = 0; lock->guard.done = 1; } int glthread_rwlock_rdlock_func (gl_rwlock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_rwlock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } EnterCriticalSection (&lock->lock); /* Test whether only readers are currently running, and whether the runcount field will not overflow, and whether no writer is waiting. The latter condition is because POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ if (!(lock->runcount + 1 > 0 && lock->waiting_writers.count == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_readers. */ HANDLE event = gl_waitqueue_add (&lock->waiting_readers); if (event != INVALID_HANDLE_VALUE) { DWORD result; LeaveCriticalSection (&lock->lock); /* Wait until another thread signals this event. */ result = WaitForSingleObject (event, INFINITE); if (result == WAIT_FAILED || result == WAIT_TIMEOUT) abort (); CloseHandle (event); /* The thread which signalled the event already did the bookkeeping: removed us from the waiting_readers, incremented lock->runcount. */ if (!(lock->runcount > 0)) abort (); return 0; } else { /* Allocation failure. Weird. */ do { LeaveCriticalSection (&lock->lock); Sleep (1); EnterCriticalSection (&lock->lock); } while (!(lock->runcount + 1 > 0)); } } lock->runcount++; LeaveCriticalSection (&lock->lock); return 0; } int glthread_rwlock_wrlock_func (gl_rwlock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_rwlock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } EnterCriticalSection (&lock->lock); /* Test whether no readers or writers are currently running. */ if (!(lock->runcount == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_writers. */ HANDLE event = gl_waitqueue_add (&lock->waiting_writers); if (event != INVALID_HANDLE_VALUE) { DWORD result; LeaveCriticalSection (&lock->lock); /* Wait until another thread signals this event. */ result = WaitForSingleObject (event, INFINITE); if (result == WAIT_FAILED || result == WAIT_TIMEOUT) abort (); CloseHandle (event); /* The thread which signalled the event already did the bookkeeping: removed us from the waiting_writers, set lock->runcount = -1. */ if (!(lock->runcount == -1)) abort (); return 0; } else { /* Allocation failure. Weird. */ do { LeaveCriticalSection (&lock->lock); Sleep (1); EnterCriticalSection (&lock->lock); } while (!(lock->runcount == 0)); } } lock->runcount--; /* runcount becomes -1 */ LeaveCriticalSection (&lock->lock); return 0; } int glthread_rwlock_unlock_func (gl_rwlock_t *lock) { if (!lock->guard.done) return EINVAL; EnterCriticalSection (&lock->lock); if (lock->runcount < 0) { /* Drop a writer lock. */ if (!(lock->runcount == -1)) abort (); lock->runcount = 0; } else { /* Drop a reader lock. */ if (!(lock->runcount > 0)) { LeaveCriticalSection (&lock->lock); return EPERM; } lock->runcount--; } if (lock->runcount == 0) { /* POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ if (lock->waiting_writers.count > 0) { /* Wake up one of the waiting writers. */ lock->runcount--; gl_waitqueue_notify_first (&lock->waiting_writers); } else { /* Wake up all waiting readers. */ lock->runcount += lock->waiting_readers.count; gl_waitqueue_notify_all (&lock->waiting_readers); } } LeaveCriticalSection (&lock->lock); return 0; } int glthread_rwlock_destroy_func (gl_rwlock_t *lock) { if (!lock->guard.done) return EINVAL; if (lock->runcount != 0) return EBUSY; DeleteCriticalSection (&lock->lock); if (lock->waiting_readers.array != NULL) free (lock->waiting_readers.array); if (lock->waiting_writers.array != NULL) free (lock->waiting_writers.array); lock->guard.done = 0; return 0; } /* --------------------- gl_recursive_lock_t datatype --------------------- */ void glthread_recursive_lock_init_func (gl_recursive_lock_t *lock) { lock->owner = 0; lock->depth = 0; InitializeCriticalSection (&lock->lock); lock->guard.done = 1; } int glthread_recursive_lock_lock_func (gl_recursive_lock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_recursive_lock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } { DWORD self = GetCurrentThreadId (); if (lock->owner != self) { EnterCriticalSection (&lock->lock); lock->owner = self; } if (++(lock->depth) == 0) /* wraparound? */ { lock->depth--; return EAGAIN; } } return 0; } int glthread_recursive_lock_unlock_func (gl_recursive_lock_t *lock) { if (lock->owner != GetCurrentThreadId ()) return EPERM; if (lock->depth == 0) return EINVAL; if (--(lock->depth) == 0) { lock->owner = 0; LeaveCriticalSection (&lock->lock); } return 0; } int glthread_recursive_lock_destroy_func (gl_recursive_lock_t *lock) { if (lock->owner != 0) return EBUSY; DeleteCriticalSection (&lock->lock); lock->guard.done = 0; return 0; } /* -------------------------- gl_once_t datatype -------------------------- */ void glthread_once_func (gl_once_t *once_control, void (*initfunction) (void)) { if (once_control->inited <= 0) { if (InterlockedIncrement (&once_control->started) == 0) { /* This thread is the first one to come to this once_control. */ InitializeCriticalSection (&once_control->lock); EnterCriticalSection (&once_control->lock); once_control->inited = 0; initfunction (); once_control->inited = 1; LeaveCriticalSection (&once_control->lock); } else { /* Undo last operation. */ InterlockedDecrement (&once_control->started); /* Some other thread has already started the initialization. Yield the CPU while waiting for the other thread to finish initializing and taking the lock. */ while (once_control->inited < 0) Sleep (0); if (once_control->inited <= 0) { /* Take the lock. This blocks until the other thread has finished calling the initfunction. */ EnterCriticalSection (&once_control->lock); LeaveCriticalSection (&once_control->lock); if (!(once_control->inited > 0)) abort (); } } } } #endif /* ========================================================================= */ gcal-4.1/lib/regex.c0000664000000000000000000000615313041163523011204 00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see . */ #ifndef _LIBC # include # if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__ # pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" # endif # if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__ # pragma GCC diagnostic ignored "-Wold-style-definition" # pragma GCC diagnostic ignored "-Wtype-limits" # endif #endif /* Make sure no one compiles this code with a C++ compiler. */ #if defined __cplusplus && defined _LIBC # error "This is C code, use a C compiler" #endif #ifdef _LIBC /* We have to keep the namespace clean. */ # define regfree(preg) __regfree (preg) # define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef) # define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags) # define regerror(errcode, preg, errbuf, errbuf_size) \ __regerror(errcode, preg, errbuf, errbuf_size) # define re_set_registers(bu, re, nu, st, en) \ __re_set_registers (bu, re, nu, st, en) # define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \ __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) # define re_match(bufp, string, size, pos, regs) \ __re_match (bufp, string, size, pos, regs) # define re_search(bufp, string, size, startpos, range, regs) \ __re_search (bufp, string, size, startpos, range, regs) # define re_compile_pattern(pattern, length, bufp) \ __re_compile_pattern (pattern, length, bufp) # define re_set_syntax(syntax) __re_set_syntax (syntax) # define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \ __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop) # define re_compile_fastmap(bufp) __re_compile_fastmap (bufp) # include "../locale/localeinfo.h" #endif /* On some systems, limits.h sets RE_DUP_MAX to a lower value than GNU regex allows. Include it before , which correctly #undefs RE_DUP_MAX and sets it to the right value. */ #include #include #include "regex_internal.h" #include "regex_internal.c" #include "regcomp.c" #include "regexec.c" /* Binary backward compatibility. */ #if _LIBC # include # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3) link_warning (re_max_failures, "the 're_max_failures' variable is obsolete and will go away.") int re_max_failures = 2000; # endif #endif gcal-4.1/lib/dirname-lgpl.c0000664000000000000000000000612013041163522012436 00000000000000/* dirname.c -- return all but the last element in a file name Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include "dirname.h" #include #include /* Return the length of the prefix of FILE that will be used by dir_name. If FILE is in the working directory, this returns zero even though 'dir_name (FILE)' will return ".". Works properly even if there are trailing slashes (by effectively ignoring them). */ size_t dir_len (char const *file) { size_t prefix_length = FILE_SYSTEM_PREFIX_LEN (file); size_t length; /* Advance prefix_length beyond important leading slashes. */ prefix_length += (prefix_length != 0 ? (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && ISSLASH (file[prefix_length])) : (ISSLASH (file[0]) ? ((DOUBLE_SLASH_IS_DISTINCT_ROOT && ISSLASH (file[1]) && ! ISSLASH (file[2]) ? 2 : 1)) : 0)); /* Strip the basename and any redundant slashes before it. */ for (length = last_component (file) - file; prefix_length < length; length--) if (! ISSLASH (file[length - 1])) break; return length; } /* In general, we can't use the builtin 'dirname' function if available, since it has different meanings in different environments. In some environments the builtin 'dirname' modifies its argument. Return the leading directories part of FILE, allocated with malloc. Works properly even if there are trailing slashes (by effectively ignoring them). Return NULL on failure. If lstat (FILE) would succeed, then { chdir (dir_name (FILE)); lstat (base_name (FILE)); } will access the same file. Likewise, if the sequence { chdir (dir_name (FILE)); rename (base_name (FILE), "foo"); } succeeds, you have renamed FILE to "foo" in the same directory FILE was in. */ char * mdir_name (char const *file) { size_t length = dir_len (file); bool append_dot = (length == 0 || (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && length == FILE_SYSTEM_PREFIX_LEN (file) && file[2] != '\0' && ! ISSLASH (file[2]))); char *dir = malloc (length + append_dot + 1); if (!dir) return NULL; memcpy (dir, file, length); if (append_dot) dir[length++] = '.'; dir[length] = '\0'; return dir; } gcal-4.1/lib/fd-hook.h0000664000000000000000000001135113041163522011421 00000000000000/* Hook for making making file descriptor functions close(), ioctl() extensible. Copyright (C) 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef FD_HOOK_H #define FD_HOOK_H #ifdef __cplusplus extern "C" { #endif /* Currently, this entire code is only needed for the handling of sockets on native Windows platforms. */ #if WINDOWS_SOCKETS /* Type of function that closes FD. */ typedef int (*gl_close_fn) (int fd); /* Type of function that applies a control request to FD. */ typedef int (*gl_ioctl_fn) (int fd, int request, void *arg); /* An element of the list of file descriptor hooks. In CLOS (Common Lisp Object System) speak, it consists of an "around" method for the close() function and an "around" method for the ioctl() function. The fields of this structure are considered private. */ struct fd_hook { /* Doubly linked list. */ struct fd_hook *private_next; struct fd_hook *private_prev; /* Function that treats the types of FD that it knows about and calls execute_close_hooks (REMAINING_LIST, PRIMARY, FD) as a fallback. */ int (*private_close_fn) (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Function that treats the types of FD that it knows about and calls execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) as a fallback. */ int (*private_ioctl_fn) (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); }; /* This type of function closes FD, applying special knowledge for the FD types it knows about, and calls execute_close_hooks (REMAINING_LIST, PRIMARY, FD) for the other FD types. In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, and PRIMARY is the "primary" method for close(). */ typedef int (*close_hook_fn) (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Execute the close hooks in REMAINING_LIST, with PRIMARY as "primary" method. Return 0 or -1, like close() would do. */ extern int execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Execute all close hooks, with PRIMARY as "primary" method. Return 0 or -1, like close() would do. */ extern int execute_all_close_hooks (gl_close_fn primary, int fd); /* This type of function applies a control request to FD, applying special knowledge for the FD types it knows about, and calls execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) for the other FD types. In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, and PRIMARY is the "primary" method for ioctl(). */ typedef int (*ioctl_hook_fn) (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); /* Execute the ioctl hooks in REMAINING_LIST, with PRIMARY as "primary" method. Return 0 or -1, like ioctl() would do. */ extern int execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); /* Execute all ioctl hooks, with PRIMARY as "primary" method. Return 0 or -1, like ioctl() would do. */ extern int execute_all_ioctl_hooks (gl_ioctl_fn primary, int fd, int request, void *arg); /* Add a function pair to the list of file descriptor hooks. CLOSE_HOOK and IOCTL_HOOK may be NULL, indicating no change. The LINK variable points to a piece of memory which is guaranteed to be accessible until the corresponding call to unregister_fd_hook. */ extern void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link); /* Removes a hook from the list of file descriptor hooks. */ extern void unregister_fd_hook (struct fd_hook *link); #endif #ifdef __cplusplus } #endif #endif /* FD_HOOK_H */ gcal-4.1/lib/fcntl.in.h0000664000000000000000000002355513041163522011616 00000000000000/* Like , but with non-working flags defined to 0. Copyright (C) 2006-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* written by Paul Eggert */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_fcntl_h /* Special invocation convention. */ /* Needed before . May also define off_t to a 64-bit type on native Windows. */ #include /* On some systems other than glibc, is a prerequisite of . On glibc systems, we would like to avoid namespace pollution. But on glibc systems, includes inside an extern "C" { ... } block, which leads to errors in C++ mode with the overridden from gnulib. These errors are known to be gone with g++ version >= 4.3. */ #if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) # include #endif #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_FCNTL_H /* Needed before . May also define off_t to a 64-bit type on native Windows. */ #include /* On some systems other than glibc, is a prerequisite of . On glibc systems, we would like to avoid namespace pollution. But on glibc systems, includes inside an extern "C" { ... } block, which leads to errors in C++ mode with the overridden from gnulib. These errors are known to be gone with g++ version >= 4.3. */ #if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) # include #endif /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ #ifndef _@GUARD_PREFIX@_FCNTL_H #define _@GUARD_PREFIX@_FCNTL_H #ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ # include #endif /* Native Windows platforms declare open(), creat() in . */ #if (@GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ #if @GNULIB_FCNTL@ # if @REPLACE_FCNTL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fcntl # define fcntl rpl_fcntl # endif _GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...)); _GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...)); # else # if !@HAVE_FCNTL@ _GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...)); # endif _GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...)); # endif _GL_CXXALIASWARN (fcntl); #elif defined GNULIB_POSIXCHECK # undef fcntl # if HAVE_RAW_DECL_FCNTL _GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " "use gnulib module fcntl for portability"); # endif #endif #if @GNULIB_OPEN@ # if @REPLACE_OPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef open # define open rpl_open # endif _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); # else _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); # endif /* On HP-UX 11, in C++ mode, open() is defined as an inline function with a default argument. _GL_CXXALIASWARN does not work in this case. */ # if !defined __hpux _GL_CXXALIASWARN (open); # endif #elif defined GNULIB_POSIXCHECK # undef open /* Assume open is always declared. */ _GL_WARN_ON_USE (open, "open is not always POSIX compliant - " "use gnulib module open for portability"); #endif #if @GNULIB_OPENAT@ # if @REPLACE_OPENAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef openat # define openat rpl_openat # endif _GL_FUNCDECL_RPL (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...)); # else # if !@HAVE_OPENAT@ _GL_FUNCDECL_SYS (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...)); # endif _GL_CXXALIASWARN (openat); #elif defined GNULIB_POSIXCHECK # undef openat # if HAVE_RAW_DECL_OPENAT _GL_WARN_ON_USE (openat, "openat is not portable - " "use gnulib module openat for portability"); # endif #endif /* Fix up the FD_* macros, only known to be missing on mingw. */ #ifndef FD_CLOEXEC # define FD_CLOEXEC 1 #endif /* Fix up the supported F_* macros. Intentionally leave other F_* macros undefined. Only known to be missing on mingw. */ #ifndef F_DUPFD_CLOEXEC # define F_DUPFD_CLOEXEC 0x40000000 /* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise. */ # define GNULIB_defined_F_DUPFD_CLOEXEC 1 #else # define GNULIB_defined_F_DUPFD_CLOEXEC 0 #endif #ifndef F_DUPFD # define F_DUPFD 1 #endif #ifndef F_GETFD # define F_GETFD 2 #endif /* Fix up the O_* macros. */ /* AIX 7.1 with XL C 12.1 defines O_CLOEXEC, O_NOFOLLOW, and O_TTY_INIT to values outside 'int' range, so omit these misdefinitions. But avoid namespace pollution on non-AIX systems. */ #ifdef _AIX # include # if defined O_CLOEXEC && ! (INT_MIN <= O_CLOEXEC && O_CLOEXEC <= INT_MAX) # undef O_CLOEXEC # endif # if defined O_NOFOLLOW && ! (INT_MIN <= O_NOFOLLOW && O_NOFOLLOW <= INT_MAX) # undef O_NOFOLLOW # endif # if defined O_TTY_INIT && ! (INT_MIN <= O_TTY_INIT && O_TTY_INIT <= INT_MAX) # undef O_TTY_INIT # endif #endif #if !defined O_DIRECT && defined O_DIRECTIO /* Tru64 spells it 'O_DIRECTIO'. */ # define O_DIRECT O_DIRECTIO #endif #if !defined O_CLOEXEC && defined O_NOINHERIT /* Mingw spells it 'O_NOINHERIT'. */ # define O_CLOEXEC O_NOINHERIT #endif #ifndef O_CLOEXEC # define O_CLOEXEC 0 #endif #ifndef O_DIRECT # define O_DIRECT 0 #endif #ifndef O_DIRECTORY # define O_DIRECTORY 0 #endif #ifndef O_DSYNC # define O_DSYNC 0 #endif #ifndef O_EXEC # define O_EXEC O_RDONLY /* This is often close enough in older systems. */ #endif #ifndef O_IGNORE_CTTY # define O_IGNORE_CTTY 0 #endif #ifndef O_NDELAY # define O_NDELAY 0 #endif #ifndef O_NOATIME # define O_NOATIME 0 #endif #ifndef O_NONBLOCK # define O_NONBLOCK O_NDELAY #endif /* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY or to 0 as fallback. */ #if @GNULIB_NONBLOCKING@ # if O_NONBLOCK # define GNULIB_defined_O_NONBLOCK 0 # else # define GNULIB_defined_O_NONBLOCK 1 # undef O_NONBLOCK # define O_NONBLOCK 0x40000000 # endif #endif #ifndef O_NOCTTY # define O_NOCTTY 0 #endif #ifndef O_NOFOLLOW # define O_NOFOLLOW 0 #endif #ifndef O_NOLINK # define O_NOLINK 0 #endif #ifndef O_NOLINKS # define O_NOLINKS 0 #endif #ifndef O_NOTRANS # define O_NOTRANS 0 #endif #ifndef O_RSYNC # define O_RSYNC 0 #endif #ifndef O_SEARCH # define O_SEARCH O_RDONLY /* This is often close enough in older systems. */ #endif #ifndef O_SYNC # define O_SYNC 0 #endif #ifndef O_TTY_INIT # define O_TTY_INIT 0 #endif #if ~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) # undef O_ACCMODE # define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) #endif /* For systems that distinguish between text and binary I/O. O_BINARY is usually declared in fcntl.h */ #if !defined O_BINARY && defined _O_BINARY /* For MSC-compatible compilers. */ # define O_BINARY _O_BINARY # define O_TEXT _O_TEXT #endif #if defined __BEOS__ || defined __HAIKU__ /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ # undef O_BINARY # undef O_TEXT #endif #ifndef O_BINARY # define O_BINARY 0 # define O_TEXT 0 #endif /* Fix up the AT_* macros. */ /* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its value exceeds INT_MAX, so its use as an int doesn't conform to the C standard, and GCC and Sun C complain in some cases. If the bug is present, undef AT_FDCWD here, so it can be redefined below. */ #if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 # undef AT_FDCWD #endif /* Use the same bit pattern as Solaris 9, but with the proper signedness. The bit pattern is important, in case this actually is Solaris with the above workaround. */ #ifndef AT_FDCWD # define AT_FDCWD (-3041965) #endif /* Use the same values as Solaris 9. This shouldn't matter, but there's no real reason to differ. */ #ifndef AT_SYMLINK_NOFOLLOW # define AT_SYMLINK_NOFOLLOW 4096 #endif #ifndef AT_REMOVEDIR # define AT_REMOVEDIR 1 #endif /* Solaris 9 lacks these two, so just pick unique values. */ #ifndef AT_SYMLINK_FOLLOW # define AT_SYMLINK_FOLLOW 2 #endif #ifndef AT_EACCESS # define AT_EACCESS 4 #endif #endif /* _@GUARD_PREFIX@_FCNTL_H */ #endif /* _@GUARD_PREFIX@_FCNTL_H */ #endif gcal-4.1/lib/realloc.c0000664000000000000000000000407013041163523011507 00000000000000/* realloc() function that is glibc compatible. Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* written by Jim Meyering and Bruno Haible */ #define _GL_USE_STDLIB_ALLOC 1 #include /* Only the AC_FUNC_REALLOC macro defines 'realloc' already in config.h. */ #ifdef realloc # define NEED_REALLOC_GNU 1 /* Whereas the gnulib module 'realloc-gnu' defines HAVE_REALLOC_GNU. */ #elif GNULIB_REALLOC_GNU && !HAVE_REALLOC_GNU # define NEED_REALLOC_GNU 1 #endif /* Infer the properties of the system's malloc function. The gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */ #if GNULIB_MALLOC_GNU && HAVE_MALLOC_GNU # define SYSTEM_MALLOC_GLIBC_COMPATIBLE 1 #endif #include #include /* Change the size of an allocated block of memory P to N bytes, with error checking. If N is zero, change it to 1. If P is NULL, use malloc. */ void * rpl_realloc (void *p, size_t n) { void *result; #if NEED_REALLOC_GNU if (n == 0) { n = 1; /* In theory realloc might fail, so don't rely on it to free. */ free (p); p = NULL; } #endif if (p == NULL) { #if GNULIB_REALLOC_GNU && !NEED_REALLOC_GNU && !SYSTEM_MALLOC_GLIBC_COMPATIBLE if (n == 0) n = 1; #endif result = malloc (n); } else result = realloc (p, n); #if !HAVE_REALLOC_POSIX if (result == NULL) errno = ENOMEM; #endif return result; } gcal-4.1/lib/spawn-pipe.c0000664000000000000000000003462213041163523012157 00000000000000/* Creation of subprocesses, communicating via pipes. Copyright (C) 2001-2004, 2006-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include "spawn-pipe.h" #include #include #include #include #include #include "error.h" #include "fatal-signal.h" #include "unistd-safer.h" #include "wait-process.h" #include "gettext.h" #define _(str) gettext (str) #if (((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ || defined __KLIBC__) /* Native Windows API. */ # include # include "w32spawn.h" #else /* Unix API. */ # include #endif #ifdef EINTR /* EINTR handling for close(). These functions can return -1/EINTR even though we don't have any signal handlers set up, namely when we get interrupted via SIGSTOP. */ static int nonintr_close (int fd) { int retval; do retval = close (fd); while (retval < 0 && errno == EINTR); return retval; } #define close nonintr_close #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ static int nonintr_open (const char *pathname, int oflag, mode_t mode) { int retval; do retval = open (pathname, oflag, mode); while (retval < 0 && errno == EINTR); return retval; } # undef open /* avoid warning on VMS */ # define open nonintr_open #endif #endif /* Open a pipe connected to a child process. * * write system read * parent -> fd[1] -> STDIN_FILENO -> child if pipe_stdin * parent <- fd[0] <- STDOUT_FILENO <- child if pipe_stdout * read system write * * At least one of pipe_stdin, pipe_stdout must be true. * pipe_stdin and prog_stdin together determine the child's standard input. * pipe_stdout and prog_stdout together determine the child's standard output. * If pipe_stdin is true, prog_stdin is ignored. * If pipe_stdout is true, prog_stdout is ignored. */ static pid_t create_pipe (const char *progname, const char *prog_path, char **prog_argv, bool pipe_stdin, bool pipe_stdout, const char *prog_stdin, const char *prog_stdout, bool null_stderr, bool slave_process, bool exit_on_error, int fd[2]) { #if (((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ || defined __KLIBC__) /* Native Windows API. This uses _pipe(), dup2(), and spawnv(). It could also be implemented using the low-level functions CreatePipe(), DuplicateHandle(), CreateProcess() and _open_osfhandle(); see the GNU make and GNU clisp and cvs source code. */ int ifd[2]; int ofd[2]; int orig_stdin; int orig_stdout; int orig_stderr; int child; int nulloutfd; int stdinfd; int stdoutfd; int saved_errno; /* FIXME: Need to free memory allocated by prepare_spawn. */ prog_argv = prepare_spawn (prog_argv); if (pipe_stdout) if (pipe2_safer (ifd, O_BINARY | O_CLOEXEC) < 0) error (EXIT_FAILURE, errno, _("cannot create pipe")); if (pipe_stdin) if (pipe2_safer (ofd, O_BINARY | O_CLOEXEC) < 0) error (EXIT_FAILURE, errno, _("cannot create pipe")); /* Data flow diagram: * * write system read * parent -> ofd[1] -> ofd[0] -> child if pipe_stdin * parent <- ifd[0] <- ifd[1] <- child if pipe_stdout * read system write * */ /* Save standard file handles of parent process. */ if (pipe_stdin || prog_stdin != NULL) orig_stdin = dup_safer_noinherit (STDIN_FILENO); if (pipe_stdout || prog_stdout != NULL) orig_stdout = dup_safer_noinherit (STDOUT_FILENO); if (null_stderr) orig_stderr = dup_safer_noinherit (STDERR_FILENO); child = -1; /* Create standard file handles of child process. */ nulloutfd = -1; stdinfd = -1; stdoutfd = -1; if ((!pipe_stdin || dup2 (ofd[0], STDIN_FILENO) >= 0) && (!pipe_stdout || dup2 (ifd[1], STDOUT_FILENO) >= 0) && (!null_stderr || ((nulloutfd = open ("NUL", O_RDWR, 0)) >= 0 && (nulloutfd == STDERR_FILENO || (dup2 (nulloutfd, STDERR_FILENO) >= 0 && close (nulloutfd) >= 0)))) && (pipe_stdin || prog_stdin == NULL || ((stdinfd = open (prog_stdin, O_RDONLY, 0)) >= 0 && (stdinfd == STDIN_FILENO || (dup2 (stdinfd, STDIN_FILENO) >= 0 && close (stdinfd) >= 0)))) && (pipe_stdout || prog_stdout == NULL || ((stdoutfd = open (prog_stdout, O_WRONLY, 0)) >= 0 && (stdoutfd == STDOUT_FILENO || (dup2 (stdoutfd, STDOUT_FILENO) >= 0 && close (stdoutfd) >= 0))))) /* The child process doesn't inherit ifd[0], ifd[1], ofd[0], ofd[1], but it inherits all open()ed or dup2()ed file handles (which is what we want in the case of STD*_FILENO). */ /* Use spawnvpe and pass the environment explicitly. This is needed if the program has modified the environment using putenv() or [un]setenv(). On Windows, programs have two environments, one in the "environment block" of the process and managed through SetEnvironmentVariable(), and one inside the process, in the location retrieved by the 'environ' macro. When using spawnvp() without 'e', the child process inherits a copy of the environment block - ignoring the effects of putenv() and [un]setenv(). */ { child = spawnvpe (P_NOWAIT, prog_path, (const char **) prog_argv, (const char **) environ); if (child < 0 && errno == ENOEXEC) { /* prog is not a native executable. Try to execute it as a shell script. Note that prepare_spawn() has already prepended a hidden element "sh.exe" to prog_argv. */ --prog_argv; child = spawnvpe (P_NOWAIT, prog_argv[0], (const char **) prog_argv, (const char **) environ); } } if (child == -1) saved_errno = errno; if (stdinfd >= 0) close (stdinfd); if (stdoutfd >= 0) close (stdoutfd); if (nulloutfd >= 0) close (nulloutfd); /* Restore standard file handles of parent process. */ if (null_stderr) undup_safer_noinherit (orig_stderr, STDERR_FILENO); if (pipe_stdout || prog_stdout != NULL) undup_safer_noinherit (orig_stdout, STDOUT_FILENO); if (pipe_stdin || prog_stdin != NULL) undup_safer_noinherit (orig_stdin, STDIN_FILENO); if (pipe_stdin) close (ofd[0]); if (pipe_stdout) close (ifd[1]); if (child == -1) { if (exit_on_error || !null_stderr) error (exit_on_error ? EXIT_FAILURE : 0, saved_errno, _("%s subprocess failed"), progname); if (pipe_stdout) close (ifd[0]); if (pipe_stdin) close (ofd[1]); errno = saved_errno; return -1; } if (pipe_stdout) fd[0] = ifd[0]; if (pipe_stdin) fd[1] = ofd[1]; return child; #else /* Unix API. */ int ifd[2]; int ofd[2]; sigset_t blocked_signals; posix_spawn_file_actions_t actions; bool actions_allocated; posix_spawnattr_t attrs; bool attrs_allocated; int err; pid_t child; if (pipe_stdout) if (pipe_safer (ifd) < 0) error (EXIT_FAILURE, errno, _("cannot create pipe")); if (pipe_stdin) if (pipe_safer (ofd) < 0) error (EXIT_FAILURE, errno, _("cannot create pipe")); /* Data flow diagram: * * write system read * parent -> ofd[1] -> ofd[0] -> child if pipe_stdin * parent <- ifd[0] <- ifd[1] <- child if pipe_stdout * read system write * */ if (slave_process) { sigprocmask (SIG_SETMASK, NULL, &blocked_signals); block_fatal_signals (); } actions_allocated = false; attrs_allocated = false; if ((err = posix_spawn_file_actions_init (&actions)) != 0 || (actions_allocated = true, (pipe_stdin && (err = posix_spawn_file_actions_adddup2 (&actions, ofd[0], STDIN_FILENO)) != 0) || (pipe_stdout && (err = posix_spawn_file_actions_adddup2 (&actions, ifd[1], STDOUT_FILENO)) != 0) || (pipe_stdin && (err = posix_spawn_file_actions_addclose (&actions, ofd[0])) != 0) || (pipe_stdout && (err = posix_spawn_file_actions_addclose (&actions, ifd[1])) != 0) || (pipe_stdin && (err = posix_spawn_file_actions_addclose (&actions, ofd[1])) != 0) || (pipe_stdout && (err = posix_spawn_file_actions_addclose (&actions, ifd[0])) != 0) || (null_stderr && (err = posix_spawn_file_actions_addopen (&actions, STDERR_FILENO, "/dev/null", O_RDWR, 0)) != 0) || (!pipe_stdin && prog_stdin != NULL && (err = posix_spawn_file_actions_addopen (&actions, STDIN_FILENO, prog_stdin, O_RDONLY, 0)) != 0) || (!pipe_stdout && prog_stdout != NULL && (err = posix_spawn_file_actions_addopen (&actions, STDOUT_FILENO, prog_stdout, O_WRONLY, 0)) != 0) || (slave_process && ((err = posix_spawnattr_init (&attrs)) != 0 || (attrs_allocated = true, (err = posix_spawnattr_setsigmask (&attrs, &blocked_signals)) != 0 || (err = posix_spawnattr_setflags (&attrs, POSIX_SPAWN_SETSIGMASK)) != 0))) || (err = posix_spawnp (&child, prog_path, &actions, attrs_allocated ? &attrs : NULL, prog_argv, environ)) != 0)) { if (actions_allocated) posix_spawn_file_actions_destroy (&actions); if (attrs_allocated) posix_spawnattr_destroy (&attrs); if (slave_process) unblock_fatal_signals (); if (exit_on_error || !null_stderr) error (exit_on_error ? EXIT_FAILURE : 0, err, _("%s subprocess failed"), progname); if (pipe_stdout) { close (ifd[0]); close (ifd[1]); } if (pipe_stdin) { close (ofd[0]); close (ofd[1]); } errno = err; return -1; } posix_spawn_file_actions_destroy (&actions); if (attrs_allocated) posix_spawnattr_destroy (&attrs); if (slave_process) { register_slave_subprocess (child); unblock_fatal_signals (); } if (pipe_stdin) close (ofd[0]); if (pipe_stdout) close (ifd[1]); if (pipe_stdout) fd[0] = ifd[0]; if (pipe_stdin) fd[1] = ofd[1]; return child; #endif } /* Open a bidirectional pipe. * * write system read * parent -> fd[1] -> STDIN_FILENO -> child * parent <- fd[0] <- STDOUT_FILENO <- child * read system write * */ pid_t create_pipe_bidi (const char *progname, const char *prog_path, char **prog_argv, bool null_stderr, bool slave_process, bool exit_on_error, int fd[2]) { pid_t result = create_pipe (progname, prog_path, prog_argv, true, true, NULL, NULL, null_stderr, slave_process, exit_on_error, fd); return result; } /* Open a pipe for input from a child process. * The child's stdin comes from a file. * * read system write * parent <- fd[0] <- STDOUT_FILENO <- child * */ pid_t create_pipe_in (const char *progname, const char *prog_path, char **prog_argv, const char *prog_stdin, bool null_stderr, bool slave_process, bool exit_on_error, int fd[1]) { int iofd[2]; pid_t result = create_pipe (progname, prog_path, prog_argv, false, true, prog_stdin, NULL, null_stderr, slave_process, exit_on_error, iofd); if (result != -1) fd[0] = iofd[0]; return result; } /* Open a pipe for output to a child process. * The child's stdout goes to a file. * * write system read * parent -> fd[0] -> STDIN_FILENO -> child * */ pid_t create_pipe_out (const char *progname, const char *prog_path, char **prog_argv, const char *prog_stdout, bool null_stderr, bool slave_process, bool exit_on_error, int fd[1]) { int iofd[2]; pid_t result = create_pipe (progname, prog_path, prog_argv, true, false, NULL, prog_stdout, null_stderr, slave_process, exit_on_error, iofd); if (result != -1) fd[0] = iofd[1]; return result; } gcal-4.1/lib/gettext.h0000664000000000000000000002364413041163522011566 00000000000000/* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option. */ #if ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include /* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by the gettext() and ngettext() macros. This is an alternative to calling textdomain(), and is useful for libraries. */ # ifdef DEFAULT_TEXT_DOMAIN # undef gettext # define gettext(Msgid) \ dgettext (DEFAULT_TEXT_DOMAIN, Msgid) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) # endif #else /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. We don't include as well because people using "gettext.h" will not include , and also including would fail on SunOS 4, whereas is OK. */ #if defined(__sun) # include #endif /* Many header files from the libstdc++ coming with g++ 3.3 or newer include , which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. */ #if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) # include # if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H # include # endif #endif /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ # undef gettext # define gettext(Msgid) ((const char *) (Msgid)) # undef dgettext # define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) # undef dcgettext # define dcgettext(Domainname, Msgid, Category) \ ((void) (Category), dgettext (Domainname, Msgid)) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 \ ? ((void) (Msgid2), (const char *) (Msgid1)) \ : ((void) (Msgid1), (const char *) (Msgid2))) # undef dngettext # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) # undef dcngettext # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N)) # undef textdomain # define textdomain(Domainname) ((const char *) (Domainname)) # undef bindtextdomain # define bindtextdomain(Domainname, Dirname) \ ((void) (Domainname), (const char *) (Dirname)) # undef bind_textdomain_codeset # define bind_textdomain_codeset(Domainname, Codeset) \ ((void) (Domainname), (const char *) (Codeset)) #endif /* Prefer gnulib's setlocale override over libintl's setlocale override. */ #ifdef GNULIB_defined_setlocale # undef setlocale # define setlocale rpl_setlocale #endif /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. The argument, String, should be a literal string. Concatenated strings and other string expressions won't work. The macro's expansion is not parenthesized, so that it is suitable as initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String /* The separator between msgctxt and msgid in a .mo file. */ #define GETTEXT_CONTEXT_GLUE "\004" /* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be short and rarely need to change. The letter 'p' stands for 'particular' or 'special'. */ #ifdef DEFAULT_TEXT_DOMAIN # define pgettext(Msgctxt, Msgid) \ pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #else # define pgettext(Msgctxt, Msgid) \ pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #endif #define dpgettext(Domainname, Msgctxt, Msgid) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) #ifdef DEFAULT_TEXT_DOMAIN # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #else # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #endif #define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * pgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, int category) { const char *translation = dcgettext (domain, msg_ctxt_id, category); if (translation == msg_ctxt_id) return msgid; else return translation; } #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * npgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { const char *translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); if (translation == msg_ctxt_id || translation == msgid_plural) return (n == 1 ? msgid : msgid_plural); else return translation; } /* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID can be arbitrary expressions. But for string literals these macros are less efficient than those above. */ #include #if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \ /* || __STDC_VERSION__ >= 199901L */ ) # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 #else # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 #endif #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS #include #endif #define pgettext_expr(Msgctxt, Msgid) \ dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) #define dpgettext_expr(Domainname, Msgctxt, Msgid) \ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { int found_translation; memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcgettext (domain, msg_ctxt_id, category); found_translation = (translation != msg_ctxt_id); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (found_translation) return translation; } return msgid; } #define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcnpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { int found_translation; memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); found_translation = !(translation == msg_ctxt_id || translation == msgid_plural); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (found_translation) return translation; } return (n == 1 ? msgid : msgid_plural); } #endif /* _LIBGETTEXT_H */ gcal-4.1/lib/wctype.in.h0000664000000000000000000003265413041163523012024 00000000000000/* A substitute for ISO C99 , for platforms that lack it. Copyright (C) 2006-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Bruno Haible and Paul Eggert. */ /* * ISO C 99 for platforms that lack it. * * * iswctype, towctrans, towlower, towupper, wctrans, wctype, * wctrans_t, and wctype_t are not yet implemented. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if (defined __MINGW32__ && defined __CTYPE_H_SOURCED__) /* Special invocation convention: - With MinGW 3.22, when includes , only some part of is being processed, which doesn't include the idempotency guard. */ #@INCLUDE_NEXT@ @NEXT_WCTYPE_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_WCTYPE_H #if @HAVE_WINT_T@ /* Solaris 2.5 has a bug: must be included before . Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ # include # include # include # include #endif /* mingw has declarations of towupper and towlower in as well . Include in advance to avoid rpl_ prefix being added to the declarations. */ #ifdef __MINGW32__ # include #endif /* Include the original if it exists. BeOS 5 has the functions but no . */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_WCTYPE_H@ # @INCLUDE_NEXT@ @NEXT_WCTYPE_H@ #endif #ifndef _@GUARD_PREFIX@_WCTYPE_H #define _@GUARD_PREFIX@_WCTYPE_H #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_WCTYPE_INLINE # define _GL_WCTYPE_INLINE _GL_INLINE #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Solaris 2.6 includes which includes which #defines a number of identifiers in the application namespace. Revert these #defines. */ #ifdef __sun # undef multibyte # undef eucw1 # undef eucw2 # undef eucw3 # undef scrw1 # undef scrw2 # undef scrw3 #endif /* Define wint_t and WEOF. (Also done in wchar.in.h.) */ #if !@HAVE_WINT_T@ && !defined wint_t # define wint_t int # ifndef WEOF # define WEOF -1 # endif #else /* mingw and MSVC define wint_t as 'unsigned short' in . This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be "unchanged by default argument promotions". Override it. */ # if @GNULIB_OVERRIDES_WINT_T@ # if !GNULIB_defined_wint_t # include typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t # define GNULIB_defined_wint_t 1 # endif # endif # ifndef WEOF # define WEOF ((wint_t) -1) # endif #endif #if !GNULIB_defined_wctype_functions /* FreeBSD 4.4 to 4.11 has but lacks the functions. Linux libc5 has and the functions but they are broken. Assume all 11 functions (all isw* except iswblank) are implemented the same way, or not at all. */ # if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@ /* IRIX 5.3 has macros but no functions, its isw* macros refer to an undefined variable _ctmp_ and to macros like _P, and they refer to system functions like _iswctype that are not in the standard C library. Rather than try to get ancient buggy implementations like this to work, just disable them. */ # undef iswalnum # undef iswalpha # undef iswblank # undef iswcntrl # undef iswdigit # undef iswgraph # undef iswlower # undef iswprint # undef iswpunct # undef iswspace # undef iswupper # undef iswxdigit # undef towlower # undef towupper /* Linux libc5 has and the functions but they are broken. */ # if @REPLACE_ISWCNTRL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iswalnum rpl_iswalnum # define iswalpha rpl_iswalpha # define iswblank rpl_iswblank # define iswcntrl rpl_iswcntrl # define iswdigit rpl_iswdigit # define iswgraph rpl_iswgraph # define iswlower rpl_iswlower # define iswprint rpl_iswprint # define iswpunct rpl_iswpunct # define iswspace rpl_iswspace # define iswupper rpl_iswupper # define iswxdigit rpl_iswxdigit # endif # endif # if @REPLACE_TOWLOWER@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towlower rpl_towlower # define towupper rpl_towupper # endif # endif _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswalnum # else iswalnum # endif (wint_t wc) { return ((wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')); } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswalpha # else iswalpha # endif (wint_t wc) { return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswblank # else iswblank # endif (wint_t wc) { return wc == ' ' || wc == '\t'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswcntrl # else iswcntrl # endif (wint_t wc) { return (wc & ~0x1f) == 0 || wc == 0x7f; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswdigit # else iswdigit # endif (wint_t wc) { return wc >= '0' && wc <= '9'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswgraph # else iswgraph # endif (wint_t wc) { return wc >= '!' && wc <= '~'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswlower # else iswlower # endif (wint_t wc) { return wc >= 'a' && wc <= 'z'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswprint # else iswprint # endif (wint_t wc) { return wc >= ' ' && wc <= '~'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswpunct # else iswpunct # endif (wint_t wc) { return (wc >= '!' && wc <= '~' && !((wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'))); } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswspace # else iswspace # endif (wint_t wc) { return (wc == ' ' || wc == '\t' || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r'); } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswupper # else iswupper # endif (wint_t wc) { return wc >= 'A' && wc <= 'Z'; } _GL_WCTYPE_INLINE int # if @REPLACE_ISWCNTRL@ rpl_iswxdigit # else iswxdigit # endif (wint_t wc) { return ((wc >= '0' && wc <= '9') || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F')); } _GL_WCTYPE_INLINE wint_t # if @REPLACE_TOWLOWER@ rpl_towlower # else towlower # endif (wint_t wc) { return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc); } _GL_WCTYPE_INLINE wint_t # if @REPLACE_TOWLOWER@ rpl_towupper # else towupper # endif (wint_t wc) { return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc); } # elif @GNULIB_ISWBLANK@ && (! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@) /* Only the iswblank function is missing. */ # if @REPLACE_ISWBLANK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iswblank rpl_iswblank # endif _GL_FUNCDECL_RPL (iswblank, int, (wint_t wc)); # else _GL_FUNCDECL_SYS (iswblank, int, (wint_t wc)); # endif # endif # if defined __MINGW32__ /* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t. The functions towlower and towupper are implemented in the MSVCRT library to take a wchar_t argument and return a wchar_t result. mingw declares these functions to take a wint_t argument and return a wint_t result. This means that: 1. When the user passes an argument outside the range 0x0000..0xFFFF, the function will look only at the lower 16 bits. This is allowed according to POSIX. 2. The return value is returned in the lower 16 bits of the result register. The upper 16 bits are random: whatever happened to be in that part of the result register. We need to fix this by adding a zero-extend from wchar_t to wint_t after the call. */ _GL_WCTYPE_INLINE wint_t rpl_towlower (wint_t wc) { return (wint_t) (wchar_t) towlower (wc); } # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towlower rpl_towlower # endif _GL_WCTYPE_INLINE wint_t rpl_towupper (wint_t wc) { return (wint_t) (wchar_t) towupper (wc); } # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define towupper rpl_towupper # endif # endif /* __MINGW32__ */ # define GNULIB_defined_wctype_functions 1 #endif #if @REPLACE_ISWCNTRL@ _GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswlower, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswprint, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswpunct, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswspace, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswupper, int, (wint_t wc)); _GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc)); #else _GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswlower, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswprint, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswpunct, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswspace, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswupper, int, (wint_t wc)); _GL_CXXALIAS_SYS (iswxdigit, int, (wint_t wc)); #endif _GL_CXXALIASWARN (iswalnum); _GL_CXXALIASWARN (iswalpha); _GL_CXXALIASWARN (iswcntrl); _GL_CXXALIASWARN (iswdigit); _GL_CXXALIASWARN (iswgraph); _GL_CXXALIASWARN (iswlower); _GL_CXXALIASWARN (iswprint); _GL_CXXALIASWARN (iswpunct); _GL_CXXALIASWARN (iswspace); _GL_CXXALIASWARN (iswupper); _GL_CXXALIASWARN (iswxdigit); #if @GNULIB_ISWBLANK@ # if @REPLACE_ISWCNTRL@ || @REPLACE_ISWBLANK@ _GL_CXXALIAS_RPL (iswblank, int, (wint_t wc)); # else _GL_CXXALIAS_SYS (iswblank, int, (wint_t wc)); # endif _GL_CXXALIASWARN (iswblank); #endif #if !@HAVE_WCTYPE_T@ # if !GNULIB_defined_wctype_t typedef void * wctype_t; # define GNULIB_defined_wctype_t 1 # endif #endif /* Get a descriptor for a wide character property. */ #if @GNULIB_WCTYPE@ # if !@HAVE_WCTYPE_T@ _GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name)); # endif _GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name)); _GL_CXXALIASWARN (wctype); #elif defined GNULIB_POSIXCHECK # undef wctype # if HAVE_RAW_DECL_WCTYPE _GL_WARN_ON_USE (wctype, "wctype is unportable - " "use gnulib module wctype for portability"); # endif #endif /* Test whether a wide character has a given property. The argument WC must be either a wchar_t value or WEOF. The argument DESC must have been returned by the wctype() function. */ #if @GNULIB_ISWCTYPE@ # if !@HAVE_WCTYPE_T@ _GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc)); # endif _GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc)); _GL_CXXALIASWARN (iswctype); #elif defined GNULIB_POSIXCHECK # undef iswctype # if HAVE_RAW_DECL_ISWCTYPE _GL_WARN_ON_USE (iswctype, "iswctype is unportable - " "use gnulib module iswctype for portability"); # endif #endif #if @REPLACE_TOWLOWER@ || defined __MINGW32__ _GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc)); _GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc)); #else _GL_CXXALIAS_SYS (towlower, wint_t, (wint_t wc)); _GL_CXXALIAS_SYS (towupper, wint_t, (wint_t wc)); #endif _GL_CXXALIASWARN (towlower); _GL_CXXALIASWARN (towupper); #if !@HAVE_WCTRANS_T@ # if !GNULIB_defined_wctrans_t typedef void * wctrans_t; # define GNULIB_defined_wctrans_t 1 # endif #endif /* Get a descriptor for a wide character case conversion. */ #if @GNULIB_WCTRANS@ # if !@HAVE_WCTRANS_T@ _GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name)); # endif _GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name)); _GL_CXXALIASWARN (wctrans); #elif defined GNULIB_POSIXCHECK # undef wctrans # if HAVE_RAW_DECL_WCTRANS _GL_WARN_ON_USE (wctrans, "wctrans is unportable - " "use gnulib module wctrans for portability"); # endif #endif /* Perform a given case conversion on a wide character. The argument WC must be either a wchar_t value or WEOF. The argument DESC must have been returned by the wctrans() function. */ #if @GNULIB_TOWCTRANS@ # if !@HAVE_WCTRANS_T@ _GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); # endif _GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); _GL_CXXALIASWARN (towctrans); #elif defined GNULIB_POSIXCHECK # undef towctrans # if HAVE_RAW_DECL_TOWCTRANS _GL_WARN_ON_USE (towctrans, "towctrans is unportable - " "use gnulib module towctrans for portability"); # endif #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_WCTYPE_H */ #endif /* _@GUARD_PREFIX@_WCTYPE_H */ #endif gcal-4.1/lib/lstat.c0000664000000000000000000000667413041163522011230 00000000000000/* Work around a bug of lstat on some systems Copyright (C) 1997-2006, 2008-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* written by Jim Meyering */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_lstat doesn't recurse to rpl_lstat. */ #define __need_system_sys_stat_h #include #if !HAVE_LSTAT /* On systems that lack symlinks, our replacement already defined lstat as stat, so there is nothing further to do other than avoid an empty file. */ typedef int dummy; #else /* HAVE_LSTAT */ /* Get the original definition of lstat. It might be defined as a macro. */ # include # include # undef __need_system_sys_stat_h static int orig_lstat (const char *filename, struct stat *buf) { return lstat (filename, buf); } /* Specification. */ /* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ # include "sys/stat.h" # include # include /* lstat works differently on Linux and Solaris systems. POSIX (see "pathname resolution" in the glossary) requires that programs like 'ls' take into consideration the fact that FILE has a trailing slash when FILE is a symbolic link. On Linux and Solaris 10 systems, the lstat function already has the desired semantics (in treating 'lstat ("symlink/", sbuf)' just like 'lstat ("symlink/.", sbuf)', but on Solaris 9 and earlier it does not. If FILE has a trailing slash and specifies a symbolic link, then use stat() to get more info on the referent of FILE. If the referent is a non-directory, then set errno to ENOTDIR and return -1. Otherwise, return stat's result. */ int rpl_lstat (const char *file, struct stat *sbuf) { size_t len; int lstat_result = orig_lstat (file, sbuf); if (lstat_result != 0) return lstat_result; /* This replacement file can blindly check against '/' rather than using the ISSLASH macro, because all platforms with '\\' either lack symlinks (mingw) or have working lstat (cygwin) and thus do not compile this file. 0 len should have already been filtered out above, with a failure return of ENOENT. */ len = strlen (file); if (file[len - 1] != '/' || S_ISDIR (sbuf->st_mode)) return 0; /* At this point, a trailing slash is only permitted on symlink-to-dir; but it should have found information on the directory, not the symlink. Call stat() to get info about the link's referent. Our replacement stat guarantees valid results, even if the symlink is not pointing to a directory. */ if (!S_ISLNK (sbuf->st_mode)) { errno = ENOTDIR; return -1; } return stat (file, sbuf); } #endif /* HAVE_LSTAT */ gcal-4.1/lib/stdio-impl.h0000664000000000000000000001174513041163523012163 00000000000000/* Implementation details of FILE streams. Copyright (C) 2007-2008, 2010-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Many stdio implementations have the same logic and therefore can share the same implementation of stdio extension API, except that some fields have different naming conventions, or their access requires some casts. */ /* BSD stdio derived implementations. */ #if defined __NetBSD__ /* NetBSD */ /* Get __NetBSD_Version__. */ # include #endif #include /* For detecting Plan9. */ #if defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ # if defined __DragonFly__ /* DragonFly */ /* See . */ # define fp_ ((struct { struct __FILE_public pub; \ struct { unsigned char *_base; int _size; } _bf; \ void *cookie; \ void *_close; \ void *_read; \ void *_seek; \ void *_write; \ struct { unsigned char *_base; int _size; } _ub; \ int _ur; \ unsigned char _ubuf[3]; \ unsigned char _nbuf[1]; \ struct { unsigned char *_base; int _size; } _lb; \ int _blksize; \ fpos_t _offset; \ /* More fields, not relevant here. */ \ } *) fp) /* See . */ # define _p pub._p # define _flags pub._flags # define _r pub._r # define _w pub._w # else # define fp_ fp # endif # if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ || defined __minix || defined __ANDROID__ /* NetBSD >= 1.5ZA, OpenBSD, Minix 3, Android */ /* See and */ struct __sfileext { struct __sbuf _ub; /* ungetc buffer */ /* More fields, not relevant here. */ }; # define fp_ub ((struct __sfileext *) fp->_ext._base)->_ub # else /* FreeBSD, NetBSD <= 1.5Z, DragonFly, Mac OS X, Cygwin, Android */ # define fp_ub fp_->_ub # endif # define HASUB(fp) (fp_ub._base != NULL) #endif /* SystemV derived implementations. */ #ifdef __TANDEM /* NonStop Kernel */ # ifndef _IOERR /* These values were determined by the program 'stdioext-flags' at . */ # define _IOERR 0x40 # define _IOREAD 0x80 # define _IOWRT 0x4 # define _IORW 0x100 # endif #endif #if defined _IOERR # if defined __sun && defined _LP64 /* Solaris/{SPARC,AMD64} 64-bit */ # define fp_ ((struct { unsigned char *_ptr; \ unsigned char *_base; \ unsigned char *_end; \ long _cnt; \ int _file; \ unsigned int _flag; \ } *) fp) # else # define fp_ fp # endif # if defined _SCO_DS /* OpenServer */ # define _cnt __cnt # define _ptr __ptr # define _base __base # define _flag __flag # endif #elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* newer Windows with MSVC */ /* does not define the innards of FILE any more. */ # define WINDOWS_OPAQUE_FILE struct _gl_real_FILE { /* Note: Compared to older Windows and to mingw, it has the fields _base and _cnt swapped. */ unsigned char *_ptr; unsigned char *_base; int _cnt; int _flag; int _file; int _charbuf; int _bufsiz; }; # define fp_ ((struct _gl_real_FILE *) fp) /* These values were determined by a program similar to the one at . */ # define _IOREAD 0x1 # define _IOWRT 0x2 # define _IORW 0x4 # define _IOEOF 0x8 # define _IOERR 0x10 #endif gcal-4.1/lib/fd-safer-flag.c0000664000000000000000000000335113041163522012464 00000000000000/* Adjust a file descriptor result so that it avoids clobbering STD{IN,OUT,ERR}_FILENO, with specific flags. Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert and Eric Blake. */ #include /* Specification. */ #include "unistd-safer.h" #include #include /* Return FD, unless FD would be a copy of standard input, output, or error; in that case, return a duplicate of FD, closing FD. If FLAG contains O_CLOEXEC, the returned FD will have close-on-exec semantics. On failure to duplicate, close FD, set errno, and return -1. Preserve errno if FD is negative, so that the caller can always inspect errno when the returned value is negative. This function is usefully wrapped around functions that return file descriptors, e.g., fd_safer_flag (open ("file", O_RDONLY | flag), flag). */ int fd_safer_flag (int fd, int flag) { if (STDIN_FILENO <= fd && fd <= STDERR_FILENO) { int f = dup_safer_flag (fd, flag); int e = errno; close (fd); errno = e; fd = f; } return fd; } gcal-4.1/lib/fcntl.c0000664000000000000000000002724313041163522011202 00000000000000/* Provide file descriptor control. Copyright (C) 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake . */ #include /* Specification. */ #include #include #include #include #include #if !HAVE_FCNTL # define rpl_fcntl fcntl #endif #undef fcntl #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include /* Get _get_osfhandle. */ # include "msvc-nothrow.h" /* Upper bound on getdtablesize(). See lib/getdtablesize.c. */ # define OPEN_MAX_MAX 0x10000 /* Duplicate OLDFD into the first available slot of at least NEWFD, which must be positive, with FLAGS determining whether the duplicate will be inheritable. */ static int dupfd (int oldfd, int newfd, int flags) { /* Mingw has no way to create an arbitrary fd. Iterate until all file descriptors less than newfd are filled up. */ HANDLE curr_process = GetCurrentProcess (); HANDLE old_handle = (HANDLE) _get_osfhandle (oldfd); unsigned char fds_to_close[OPEN_MAX_MAX / CHAR_BIT]; unsigned int fds_to_close_bound = 0; int result; BOOL inherit = flags & O_CLOEXEC ? FALSE : TRUE; int mode; if (newfd < 0 || getdtablesize () <= newfd) { errno = EINVAL; return -1; } if (old_handle == INVALID_HANDLE_VALUE || (mode = setmode (oldfd, O_BINARY)) == -1) { /* oldfd is not open, or is an unassigned standard file descriptor. */ errno = EBADF; return -1; } setmode (oldfd, mode); flags |= mode; for (;;) { HANDLE new_handle; int duplicated_fd; unsigned int index; if (!DuplicateHandle (curr_process, /* SourceProcessHandle */ old_handle, /* SourceHandle */ curr_process, /* TargetProcessHandle */ (PHANDLE) &new_handle, /* TargetHandle */ (DWORD) 0, /* DesiredAccess */ inherit, /* InheritHandle */ DUPLICATE_SAME_ACCESS)) /* Options */ { switch (GetLastError ()) { case ERROR_TOO_MANY_OPEN_FILES: errno = EMFILE; break; case ERROR_INVALID_HANDLE: case ERROR_INVALID_TARGET_HANDLE: case ERROR_DIRECT_ACCESS_HANDLE: errno = EBADF; break; case ERROR_INVALID_PARAMETER: case ERROR_INVALID_FUNCTION: case ERROR_INVALID_ACCESS: errno = EINVAL; break; default: errno = EACCES; break; } result = -1; break; } duplicated_fd = _open_osfhandle ((intptr_t) new_handle, flags); if (duplicated_fd < 0) { CloseHandle (new_handle); result = -1; break; } if (newfd <= duplicated_fd) { result = duplicated_fd; break; } /* Set the bit duplicated_fd in fds_to_close[]. */ index = (unsigned int) duplicated_fd / CHAR_BIT; if (fds_to_close_bound <= index) { if (sizeof fds_to_close <= index) /* Need to increase OPEN_MAX_MAX. */ abort (); memset (fds_to_close + fds_to_close_bound, '\0', index + 1 - fds_to_close_bound); fds_to_close_bound = index + 1; } fds_to_close[index] |= 1 << ((unsigned int) duplicated_fd % CHAR_BIT); } /* Close the previous fds that turned out to be too small. */ { int saved_errno = errno; unsigned int duplicated_fd; for (duplicated_fd = 0; duplicated_fd < fds_to_close_bound * CHAR_BIT; duplicated_fd++) if ((fds_to_close[duplicated_fd / CHAR_BIT] >> (duplicated_fd % CHAR_BIT)) & 1) close (duplicated_fd); errno = saved_errno; } # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (oldfd, result); # endif return result; } #endif /* W32 */ #ifdef __KLIBC__ # define INCL_DOS # include static int klibc_fcntl (int fd, int action, /* arg */...) { va_list arg_ptr; int arg; struct stat sbuf; int result = -1; va_start (arg_ptr, action); arg = va_arg (arg_ptr, int); result = fcntl (fd, action, arg); /* EPERM for F_DUPFD, ENOTSUP for others */ if (result == -1 && (errno == EPERM || errno == ENOTSUP) && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) { ULONG ulMode; switch (action) { case F_DUPFD: /* Find available fd */ while (fcntl (arg, F_GETFL) != -1 || errno != EBADF) arg++; result = dup2 (fd, arg); break; /* Using underlying APIs is right ? */ case F_GETFD: if (DosQueryFHState (fd, &ulMode)) break; result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0; break; case F_SETFD: if (arg & ~FD_CLOEXEC) break; if (DosQueryFHState (fd, &ulMode)) break; if (arg & FD_CLOEXEC) ulMode |= OPEN_FLAGS_NOINHERIT; else ulMode &= ~OPEN_FLAGS_NOINHERIT; /* Filter supported flags. */ ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT); if (DosSetFHState (fd, ulMode)) break; result = 0; break; case F_GETFL: result = 0; break; case F_SETFL: if (arg != 0) break; result = 0; break; default : errno = EINVAL; break; } } va_end (arg_ptr); return result; } # define fcntl klibc_fcntl #endif /* Perform the specified ACTION on the file descriptor FD, possibly using the argument ARG further described below. This replacement handles the following actions, and forwards all others on to the native fcntl. An unrecognized ACTION returns -1 with errno set to EINVAL. F_DUPFD - duplicate FD, with int ARG being the minimum target fd. If successful, return the duplicate, which will be inheritable; otherwise return -1 and set errno. F_DUPFD_CLOEXEC - duplicate FD, with int ARG being the minimum target fd. If successful, return the duplicate, which will not be inheritable; otherwise return -1 and set errno. F_GETFD - ARG need not be present. If successful, return a non-negative value containing the descriptor flags of FD (only FD_CLOEXEC is portable, but other flags may be present); otherwise return -1 and set errno. */ int rpl_fcntl (int fd, int action, /* arg */...) { va_list arg; int result = -1; va_start (arg, action); switch (action) { #if !HAVE_FCNTL case F_DUPFD: { int target = va_arg (arg, int); result = dupfd (fd, target, 0); break; } #elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR case F_DUPFD: { int target = va_arg (arg, int); /* Detect invalid target; needed for cygwin 1.5.x. */ if (target < 0 || getdtablesize () <= target) errno = EINVAL; else { /* Haiku alpha 2 loses fd flags on original. */ int flags = fcntl (fd, F_GETFD); if (flags < 0) { result = -1; break; } result = fcntl (fd, action, target); if (0 <= result && fcntl (fd, F_SETFD, flags) == -1) { int saved_errno = errno; close (result); result = -1; errno = saved_errno; } # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (fd, result); # endif } break; } /* F_DUPFD */ #endif /* FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR */ case F_DUPFD_CLOEXEC: { int target = va_arg (arg, int); #if !HAVE_FCNTL result = dupfd (fd, target, O_CLOEXEC); break; #else /* HAVE_FCNTL */ /* Try the system call first, if the headers claim it exists (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we may be running with a glibc that has the macro but with an older kernel that does not support it. Cache the information on whether the system call really works, but avoid caching failure if the corresponding F_DUPFD fails for any reason. 0 = unknown, 1 = yes, -1 = no. */ static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0; if (0 <= have_dupfd_cloexec) { result = fcntl (fd, action, target); if (0 <= result || errno != EINVAL) { have_dupfd_cloexec = 1; # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (fd, result); # endif } else { result = rpl_fcntl (fd, F_DUPFD, target); if (result < 0) break; have_dupfd_cloexec = -1; } } else result = rpl_fcntl (fd, F_DUPFD, target); if (0 <= result && have_dupfd_cloexec == -1) { int flags = fcntl (result, F_GETFD); if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1) { int saved_errno = errno; close (result); errno = saved_errno; result = -1; } } break; #endif /* HAVE_FCNTL */ } /* F_DUPFD_CLOEXEC */ #if !HAVE_FCNTL case F_GETFD: { # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ HANDLE handle = (HANDLE) _get_osfhandle (fd); DWORD flags; if (handle == INVALID_HANDLE_VALUE || GetHandleInformation (handle, &flags) == 0) errno = EBADF; else result = (flags & HANDLE_FLAG_INHERIT) ? 0 : FD_CLOEXEC; # else /* !W32 */ /* Use dup2 to reject invalid file descriptors. No way to access this information, so punt. */ if (0 <= dup2 (fd, fd)) result = 0; # endif /* !W32 */ break; } /* F_GETFD */ #endif /* !HAVE_FCNTL */ /* Implementing F_SETFD on mingw is not trivial - there is no API for changing the O_NOINHERIT bit on an fd, and merely changing the HANDLE_FLAG_INHERIT bit on the underlying handle can lead to odd state. It may be possible by duplicating the handle, using _open_osfhandle with the right flags, then using dup2 to move the duplicate onto the original, but that is not supported for now. */ default: { #if HAVE_FCNTL void *p = va_arg (arg, void *); result = fcntl (fd, action, p); #else errno = EINVAL; #endif break; } } va_end (arg); return result; } gcal-4.1/lib/nl_langinfo.c0000664000000000000000000002201713041163522012354 00000000000000/* nl_langinfo() replacement: query locale dependent information. Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # include #endif /* Return the codeset of the current locale, if this is easily deducible. Otherwise, return "". */ static char * ctype_codeset (void) { static char buf[2 + 10 + 1]; char const *locale = setlocale (LC_CTYPE, NULL); char *codeset = buf; size_t codesetlen; codeset[0] = '\0'; if (locale && locale[0]) { /* If the locale name contains an encoding after the dot, return it. */ char *dot = strchr (locale, '.'); if (dot) { /* Look for the possible @... trailer and remove it, if any. */ char *codeset_start = dot + 1; char const *modifier = strchr (codeset_start, '@'); if (! modifier) codeset = codeset_start; else { codesetlen = modifier - codeset_start; if (codesetlen < sizeof buf) { codeset = memcpy (buf, codeset_start, codesetlen); codeset[codesetlen] = '\0'; } } } } #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* If setlocale is successful, it returns the number of the codepage, as a string. Otherwise, fall back on Windows API GetACP, which returns the locale's codepage as a number (although this doesn't change according to what the 'setlocale' call specified). Either way, prepend "CP" to make it a valid codeset name. */ codesetlen = strlen (codeset); if (0 < codesetlen && codesetlen < sizeof buf - 2) memmove (buf + 2, codeset, codesetlen + 1); else sprintf (buf + 2, "%u", GetACP ()); codeset = memcpy (buf, "CP", 2); #endif return codeset; } #if REPLACE_NL_LANGINFO /* Override nl_langinfo with support for added nl_item values. */ # undef nl_langinfo char * rpl_nl_langinfo (nl_item item) { switch (item) { # if GNULIB_defined_CODESET case CODESET: return ctype_codeset (); # endif # if GNULIB_defined_T_FMT_AMPM case T_FMT_AMPM: return (char *) "%I:%M:%S %p"; # endif # if GNULIB_defined_ERA case ERA: /* The format is not standardized. In glibc it is a sequence of strings of the form "direction:offset:start_date:end_date:era_name:era_format" with an empty string at the end. */ return (char *) ""; case ERA_D_FMT: /* The %Ex conversion in strftime behaves like %x if the locale does not have an alternative time format. */ item = D_FMT; break; case ERA_D_T_FMT: /* The %Ec conversion in strftime behaves like %c if the locale does not have an alternative time format. */ item = D_T_FMT; break; case ERA_T_FMT: /* The %EX conversion in strftime behaves like %X if the locale does not have an alternative time format. */ item = T_FMT; break; case ALT_DIGITS: /* The format is not standardized. In glibc it is a sequence of 10 strings, appended in memory. */ return (char *) "\0\0\0\0\0\0\0\0\0\0"; # endif # if GNULIB_defined_YESEXPR || !FUNC_NL_LANGINFO_YESEXPR_WORKS case YESEXPR: return (char *) "^[yY]"; case NOEXPR: return (char *) "^[nN]"; # endif default: break; } return nl_langinfo (item); } #else /* Provide nl_langinfo from scratch, either for native MS-Windows, or for old Unix platforms without locales, such as Linux libc5 or BeOS. */ # include char * nl_langinfo (nl_item item) { static char nlbuf[100]; struct tm tmm = { 0 }; switch (item) { /* nl_langinfo items of the LC_CTYPE category */ case CODESET: { char *codeset = ctype_codeset (); if (*codeset) return codeset; } # ifdef __BEOS__ return (char *) "UTF-8"; # else return (char *) "ISO-8859-1"; # endif /* nl_langinfo items of the LC_NUMERIC category */ case RADIXCHAR: return localeconv () ->decimal_point; case THOUSEP: return localeconv () ->thousands_sep; case GROUPING: return localeconv () ->grouping; /* nl_langinfo items of the LC_TIME category. TODO: Really use the locale. */ case D_T_FMT: case ERA_D_T_FMT: return (char *) "%a %b %e %H:%M:%S %Y"; case D_FMT: case ERA_D_FMT: return (char *) "%m/%d/%y"; case T_FMT: case ERA_T_FMT: return (char *) "%H:%M:%S"; case T_FMT_AMPM: return (char *) "%I:%M:%S %p"; case AM_STR: if (!strftime (nlbuf, sizeof nlbuf, "%p", &tmm)) return (char *) "AM"; return nlbuf; case PM_STR: tmm.tm_hour = 12; if (!strftime (nlbuf, sizeof nlbuf, "%p", &tmm)) return (char *) "PM"; return nlbuf; case DAY_1: case DAY_2: case DAY_3: case DAY_4: case DAY_5: case DAY_6: case DAY_7: { static char const days[][sizeof "Wednesday"] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; tmm.tm_wday = item - DAY_1; if (!strftime (nlbuf, sizeof nlbuf, "%A", &tmm)) return (char *) days[item - DAY_1]; return nlbuf; } case ABDAY_1: case ABDAY_2: case ABDAY_3: case ABDAY_4: case ABDAY_5: case ABDAY_6: case ABDAY_7: { static char const abdays[][sizeof "Sun"] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; tmm.tm_wday = item - ABDAY_1; if (!strftime (nlbuf, sizeof nlbuf, "%a", &tmm)) return (char *) abdays[item - ABDAY_1]; return nlbuf; } case MON_1: case MON_2: case MON_3: case MON_4: case MON_5: case MON_6: case MON_7: case MON_8: case MON_9: case MON_10: case MON_11: case MON_12: { static char const months[][sizeof "September"] = { "January", "February", "March", "April", "May", "June", "July", "September", "October", "November", "December" }; tmm.tm_mon = item - MON_1; if (!strftime (nlbuf, sizeof nlbuf, "%B", &tmm)) return (char *) months[item - MON_1]; return nlbuf; } case ABMON_1: case ABMON_2: case ABMON_3: case ABMON_4: case ABMON_5: case ABMON_6: case ABMON_7: case ABMON_8: case ABMON_9: case ABMON_10: case ABMON_11: case ABMON_12: { static char const abmonths[][sizeof "Jan"] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Sep", "Oct", "Nov", "Dec" }; tmm.tm_mon = item - ABMON_1; if (!strftime (nlbuf, sizeof nlbuf, "%b", &tmm)) return (char *) abmonths[item - ABMON_1]; return nlbuf; } case ERA: return (char *) ""; case ALT_DIGITS: return (char *) "\0\0\0\0\0\0\0\0\0\0"; /* nl_langinfo items of the LC_MONETARY category. */ case CRNCYSTR: return localeconv () ->currency_symbol; case INT_CURR_SYMBOL: return localeconv () ->int_curr_symbol; case MON_DECIMAL_POINT: return localeconv () ->mon_decimal_point; case MON_THOUSANDS_SEP: return localeconv () ->mon_thousands_sep; case MON_GROUPING: return localeconv () ->mon_grouping; case POSITIVE_SIGN: return localeconv () ->positive_sign; case NEGATIVE_SIGN: return localeconv () ->negative_sign; case FRAC_DIGITS: return & localeconv () ->frac_digits; case INT_FRAC_DIGITS: return & localeconv () ->int_frac_digits; case P_CS_PRECEDES: return & localeconv () ->p_cs_precedes; case N_CS_PRECEDES: return & localeconv () ->n_cs_precedes; case P_SEP_BY_SPACE: return & localeconv () ->p_sep_by_space; case N_SEP_BY_SPACE: return & localeconv () ->n_sep_by_space; case P_SIGN_POSN: return & localeconv () ->p_sign_posn; case N_SIGN_POSN: return & localeconv () ->n_sign_posn; /* nl_langinfo items of the LC_MESSAGES category TODO: Really use the locale. */ case YESEXPR: return (char *) "^[yY]"; case NOEXPR: return (char *) "^[nN]"; default: return (char *) ""; } } #endif gcal-4.1/lib/pipe2.c0000664000000000000000000001034113041163523011103 00000000000000/* Create a pipe, with specific opening flags. Copyright (C) 2009-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include /* Specification. */ #include #include #include #include "binary-io.h" #include "verify.h" #if GNULIB_defined_O_NONBLOCK # include "nonblocking.h" #endif #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Native Windows API. */ # include #endif int pipe2 (int fd[2], int flags) { /* Mingw _pipe() corrupts fd on failure; also, if we succeed at creating the pipe but later fail at changing fcntl, we want to leave fd unchanged: http://austingroupbugs.net/view.php?id=467 */ int tmp[2]; tmp[0] = fd[0]; tmp[1] = fd[1]; #if HAVE_PIPE2 # undef pipe2 /* Try the system call first, if it exists. (We may be running with a glibc that has the function but with an older kernel that lacks it.) */ { /* Cache the information whether the system call really exists. */ static int have_pipe2_really; /* 0 = unknown, 1 = yes, -1 = no */ if (have_pipe2_really >= 0) { int result = pipe2 (fd, flags); if (!(result < 0 && errno == ENOSYS)) { have_pipe2_really = 1; return result; } have_pipe2_really = -1; } } #endif /* Check the supported flags. */ if ((flags & ~(O_CLOEXEC | O_NONBLOCK | O_BINARY | O_TEXT)) != 0) { errno = EINVAL; return -1; } #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Native Windows API. */ if (_pipe (fd, 4096, flags & ~O_NONBLOCK) < 0) { fd[0] = tmp[0]; fd[1] = tmp[1]; return -1; } /* O_NONBLOCK handling. On native Windows platforms, O_NONBLOCK is defined by gnulib. Use the functions defined by the gnulib module 'nonblocking'. */ # if GNULIB_defined_O_NONBLOCK if (flags & O_NONBLOCK) { if (set_nonblocking_flag (fd[0], true) != 0 || set_nonblocking_flag (fd[1], true) != 0) goto fail; } # else { verify (O_NONBLOCK == 0); } # endif return 0; #else /* Unix API. */ if (pipe (fd) < 0) return -1; /* POSIX says that initially, the O_NONBLOCK and FD_CLOEXEC flags are cleared on both fd[0] and fd[1]. */ /* O_NONBLOCK handling. On Unix platforms, O_NONBLOCK is defined by the system. Use fcntl(). */ if (flags & O_NONBLOCK) { int fcntl_flags; if ((fcntl_flags = fcntl (fd[1], F_GETFL, 0)) < 0 || fcntl (fd[1], F_SETFL, fcntl_flags | O_NONBLOCK) == -1 || (fcntl_flags = fcntl (fd[0], F_GETFL, 0)) < 0 || fcntl (fd[0], F_SETFL, fcntl_flags | O_NONBLOCK) == -1) goto fail; } if (flags & O_CLOEXEC) { int fcntl_flags; if ((fcntl_flags = fcntl (fd[1], F_GETFD, 0)) < 0 || fcntl (fd[1], F_SETFD, fcntl_flags | FD_CLOEXEC) == -1 || (fcntl_flags = fcntl (fd[0], F_GETFD, 0)) < 0 || fcntl (fd[0], F_SETFD, fcntl_flags | FD_CLOEXEC) == -1) goto fail; } # if O_BINARY if (flags & O_BINARY) { set_binary_mode (fd[1], O_BINARY); set_binary_mode (fd[0], O_BINARY); } else if (flags & O_TEXT) { set_binary_mode (fd[1], O_TEXT); set_binary_mode (fd[0], O_TEXT); } # endif return 0; #endif #if GNULIB_defined_O_NONBLOCK || \ !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) fail: { int saved_errno = errno; close (fd[0]); close (fd[1]); fd[0] = tmp[0]; fd[1] = tmp[1]; errno = saved_errno; return -1; } #endif } gcal-4.1/lib/error.h0000664000000000000000000000553213041163522011227 00000000000000/* Declaration for error-reporting function Copyright (C) 1995-1997, 2003, 2006, 2008-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _ERROR_H #define _ERROR_H 1 /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) #else # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ #endif /* On mingw, the flavor of printf depends on whether the extensions module * is in use; the check for determines the witness macro. */ #ifndef _GL_ATTRIBUTE_SPEC_PRINTF # if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU # define _GL_ATTRIBUTE_SPEC_PRINTF __gnu_printf__ # else # define _GL_ATTRIBUTE_SPEC_PRINTF __printf__ # endif #endif #ifdef __cplusplus extern "C" { #endif /* Print a message with 'fprintf (stderr, FORMAT, ...)'; if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ extern void error (int __status, int __errnum, const char *__format, ...) _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF, 3, 4)); extern void error_at_line (int __status, int __errnum, const char *__fname, unsigned int __lineno, const char *__format, ...) _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF, 5, 6)); /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this function without parameters instead. */ extern void (*error_print_progname) (void); /* This variable is incremented each time 'error' is called. */ extern unsigned int error_message_count; /* Sometimes we want to have at most one error per line. This variable controls whether this mode is selected or not. */ extern int error_one_per_line; #ifdef __cplusplus } #endif #endif /* error.h */ gcal-4.1/lib/localcharset.h0000664000000000000000000000243213041163522012536 00000000000000/* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2003, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU CHARSET Library. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _LOCALCHARSET_H #define _LOCALCHARSET_H #ifdef __cplusplus extern "C" { #endif /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed in config.charset. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ extern const char * locale_charset (void); #ifdef __cplusplus } #endif #endif /* _LOCALCHARSET_H */ gcal-4.1/lib/freading.c0000664000000000000000000000605213041163522011646 00000000000000/* Retrieve information about a FILE stream. Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include "freading.h" #include "stdio-impl.h" /* Don't use glibc's __freading function in glibc < 2.7, see */ #if !(HAVE___FREADING && (!defined __GLIBC__ || defined __UCLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7))) bool freading (FILE *fp) { /* Most systems provide FILE as a struct and the necessary bitmask in , because they need it for implementing getc() and putc() as fast macros. */ # if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ return ((fp->_flags & _IO_NO_WRITES) != 0 || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0 && fp->_IO_read_base != NULL)); # elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ return (fp_->_flags & __SRD) != 0; # elif defined __EMX__ /* emx+gcc */ return (fp->_flags & _IOREAD) != 0; # elif defined __minix /* Minix */ return (fp->_flags & _IOREADING) != 0; # elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, MSVC, NonStop Kernel */ # if defined __sun /* Solaris */ return (fp_->_flag & _IOREAD) != 0 && (fp_->_flag & _IOWRT) == 0; # else return (fp_->_flag & _IOREAD) != 0; # endif # elif defined __UCLIBC__ /* uClibc */ return (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) != 0; # elif defined __QNX__ /* QNX */ return ((fp->_Mode & 0x2 /* _MOPENW */) == 0 || (fp->_Mode & 0x1000 /* _MREAD */) != 0); # elif defined __MINT__ /* Atari FreeMiNT */ if (!fp->__mode.__write) return 1; if (!fp->__mode.__read) return 0; # ifdef _IO_CURRENTLY_GETTING /* Flag added on 2009-02-28 */ return (fp->__flags & _IO_CURRENTLY_GETTING) != 0; # else return (fp->__buffer < fp->__get_limit /*|| fp->__bufp == fp->__put_limit ??*/); # endif # elif defined EPLAN9 /* Plan9 */ if (fp->state == 0 /* CLOSED */ || fp->state == 4 /* WR */) return 0; return (fp->state == 3 /* RD */ && (fp->bufl == 0 || fp->rp < fp->wp)); # else # error "Please port gnulib freading.c to your platform!" # endif } #endif gcal-4.1/lib/spawnattr_destroy.c0000664000000000000000000000174413041163523013667 00000000000000/* Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include /* Initialize data structure for file attribute for 'spawn' call. */ int posix_spawnattr_destroy (posix_spawnattr_t *attr) { /* Nothing to do in the moment. */ return 0; } gcal-4.1/lib/math.in.h0000664000000000000000000020632413041163522011436 00000000000000/* A GNU-like . Copyright (C) 2002-2003, 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _@GUARD_PREFIX@_MATH_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ #ifndef _@GUARD_PREFIX@_MATH_H #define _@GUARD_PREFIX@_MATH_H #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_MATH_INLINE # define _GL_MATH_INLINE _GL_INLINE #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #ifdef __cplusplus /* Helper macros to define type-generic function FUNC as overloaded functions, rather than as macros like in C. POSIX declares these with an argument of real-floating (that is, one of float, double, or long double). */ # define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \ static inline int \ _gl_cxx_ ## func ## f (float f) \ { \ return func (f); \ } \ static inline int \ _gl_cxx_ ## func ## d (double d) \ { \ return func (d); \ } \ static inline int \ _gl_cxx_ ## func ## l (long double l) \ { \ return func (l); \ } # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func) \ _GL_BEGIN_NAMESPACE \ inline int \ func (float f) \ { \ return _gl_cxx_ ## func ## f (f); \ } \ inline int \ func (double d) \ { \ return _gl_cxx_ ## func ## d (d); \ } \ inline int \ func (long double l) \ { \ return _gl_cxx_ ## func ## l (l); \ } \ _GL_END_NAMESPACE #endif /* Helper macros to define a portability warning for the classification macro FUNC called with VALUE. POSIX declares the classification macros with an argument of real-floating (that is, one of float, double, or long double). */ #define _GL_WARN_REAL_FLOATING_DECL(func) \ _GL_MATH_INLINE int \ rpl_ ## func ## f (float f) \ { \ return func (f); \ } \ _GL_MATH_INLINE int \ rpl_ ## func ## d (double d) \ { \ return func (d); \ } \ _GL_MATH_INLINE int \ rpl_ ## func ## l (long double l) \ { \ return func (l); \ } \ _GL_WARN_ON_USE (rpl_ ## func ## f, #func " is unportable - " \ "use gnulib module " #func " for portability"); \ _GL_WARN_ON_USE (rpl_ ## func ## d, #func " is unportable - " \ "use gnulib module " #func " for portability"); \ _GL_WARN_ON_USE (rpl_ ## func ## l, #func " is unportable - " \ "use gnulib module " #func " for portability") #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \ (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value) \ : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value) \ : rpl_ ## func ## l (value)) #if @REPLACE_ITOLD@ /* Pull in a function that fixes the 'int' to 'long double' conversion of glibc 2.7. */ _GL_EXTERN_C void _Qp_itoq (long double *, int); static void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq; #endif /* POSIX allows platforms that don't support NAN. But all major machines in the past 15 years have supported something close to IEEE NaN, so we define this unconditionally. We also must define it on platforms like Solaris 10, where NAN is present but defined as a function pointer rather than a floating point constant. */ #if !defined NAN || @REPLACE_NAN@ # if !GNULIB_defined_NAN # undef NAN /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler choke on the expression 0.0 / 0.0. */ # if defined __DECC || defined _MSC_VER _GL_MATH_INLINE float _NaN () { static float zero = 0.0f; return zero / zero; } # define NAN (_NaN()) # else # define NAN (0.0f / 0.0f) # endif # define GNULIB_defined_NAN 1 # endif #endif /* Solaris 10 defines HUGE_VAL, but as a function pointer rather than a floating point constant. */ #if @REPLACE_HUGE_VAL@ # undef HUGE_VALF # define HUGE_VALF (1.0f / 0.0f) # undef HUGE_VAL # define HUGE_VAL (1.0 / 0.0) # undef HUGE_VALL # define HUGE_VALL (1.0L / 0.0L) #endif /* HUGE_VALF is a 'float' Infinity. */ #ifndef HUGE_VALF # if defined _MSC_VER /* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f. */ # define HUGE_VALF (1e25f * 1e25f) # else # define HUGE_VALF (1.0f / 0.0f) # endif #endif /* HUGE_VAL is a 'double' Infinity. */ #ifndef HUGE_VAL # if defined _MSC_VER /* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0. */ # define HUGE_VAL (1e250 * 1e250) # else # define HUGE_VAL (1.0 / 0.0) # endif #endif /* HUGE_VALL is a 'long double' Infinity. */ #ifndef HUGE_VALL # if defined _MSC_VER /* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L. */ # define HUGE_VALL (1e250L * 1e250L) # else # define HUGE_VALL (1.0L / 0.0L) # endif #endif /* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined. */ #if !(defined FP_ILOGB0 && defined FP_ILOGBNAN) # if defined __NetBSD__ || defined __sgi /* NetBSD, IRIX 6.5: match what ilogb() does */ # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */ # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */ # elif defined _AIX /* AIX 5.1: match what ilogb() does in AIX >= 5.2 */ # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */ # define FP_ILOGBNAN 2147483647 /* INT_MAX */ # elif defined __sun /* Solaris 9: match what ilogb() does */ # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */ # define FP_ILOGBNAN 2147483647 /* INT_MAX */ # else /* Gnulib defined values. */ # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */ # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */ # endif #endif #if @GNULIB_ACOSF@ # if @REPLACE_ACOSF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef acosf # define acosf rpl_acosf # endif _GL_FUNCDECL_RPL (acosf, float, (float x)); _GL_CXXALIAS_RPL (acosf, float, (float x)); # else # if !@HAVE_ACOSF@ # undef acosf _GL_FUNCDECL_SYS (acosf, float, (float x)); # endif _GL_CXXALIAS_SYS (acosf, float, (float x)); # endif _GL_CXXALIASWARN (acosf); #elif defined GNULIB_POSIXCHECK # undef acosf # if HAVE_RAW_DECL_ACOSF _GL_WARN_ON_USE (acosf, "acosf is unportable - " "use gnulib module acosf for portability"); # endif #endif #if @GNULIB_ACOSL@ # if !@HAVE_ACOSL@ || !@HAVE_DECL_ACOSL@ # undef acosl _GL_FUNCDECL_SYS (acosl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (acosl, long double, (long double x)); _GL_CXXALIASWARN (acosl); #elif defined GNULIB_POSIXCHECK # undef acosl # if HAVE_RAW_DECL_ACOSL _GL_WARN_ON_USE (acosl, "acosl is unportable - " "use gnulib module acosl for portability"); # endif #endif #if @GNULIB_ASINF@ # if @REPLACE_ASINF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef asinf # define asinf rpl_asinf # endif _GL_FUNCDECL_RPL (asinf, float, (float x)); _GL_CXXALIAS_RPL (asinf, float, (float x)); # else # if !@HAVE_ASINF@ # undef asinf _GL_FUNCDECL_SYS (asinf, float, (float x)); # endif _GL_CXXALIAS_SYS (asinf, float, (float x)); # endif _GL_CXXALIASWARN (asinf); #elif defined GNULIB_POSIXCHECK # undef asinf # if HAVE_RAW_DECL_ASINF _GL_WARN_ON_USE (asinf, "asinf is unportable - " "use gnulib module asinf for portability"); # endif #endif #if @GNULIB_ASINL@ # if !@HAVE_ASINL@ || !@HAVE_DECL_ASINL@ # undef asinl _GL_FUNCDECL_SYS (asinl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (asinl, long double, (long double x)); _GL_CXXALIASWARN (asinl); #elif defined GNULIB_POSIXCHECK # undef asinl # if HAVE_RAW_DECL_ASINL _GL_WARN_ON_USE (asinl, "asinl is unportable - " "use gnulib module asinl for portability"); # endif #endif #if @GNULIB_ATANF@ # if @REPLACE_ATANF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef atanf # define atanf rpl_atanf # endif _GL_FUNCDECL_RPL (atanf, float, (float x)); _GL_CXXALIAS_RPL (atanf, float, (float x)); # else # if !@HAVE_ATANF@ # undef atanf _GL_FUNCDECL_SYS (atanf, float, (float x)); # endif _GL_CXXALIAS_SYS (atanf, float, (float x)); # endif _GL_CXXALIASWARN (atanf); #elif defined GNULIB_POSIXCHECK # undef atanf # if HAVE_RAW_DECL_ATANF _GL_WARN_ON_USE (atanf, "atanf is unportable - " "use gnulib module atanf for portability"); # endif #endif #if @GNULIB_ATANL@ # if !@HAVE_ATANL@ || !@HAVE_DECL_ATANL@ # undef atanl _GL_FUNCDECL_SYS (atanl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (atanl, long double, (long double x)); _GL_CXXALIASWARN (atanl); #elif defined GNULIB_POSIXCHECK # undef atanl # if HAVE_RAW_DECL_ATANL _GL_WARN_ON_USE (atanl, "atanl is unportable - " "use gnulib module atanl for portability"); # endif #endif #if @GNULIB_ATAN2F@ # if @REPLACE_ATAN2F@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef atan2f # define atan2f rpl_atan2f # endif _GL_FUNCDECL_RPL (atan2f, float, (float y, float x)); _GL_CXXALIAS_RPL (atan2f, float, (float y, float x)); # else # if !@HAVE_ATAN2F@ # undef atan2f _GL_FUNCDECL_SYS (atan2f, float, (float y, float x)); # endif _GL_CXXALIAS_SYS (atan2f, float, (float y, float x)); # endif _GL_CXXALIASWARN (atan2f); #elif defined GNULIB_POSIXCHECK # undef atan2f # if HAVE_RAW_DECL_ATAN2F _GL_WARN_ON_USE (atan2f, "atan2f is unportable - " "use gnulib module atan2f for portability"); # endif #endif #if @GNULIB_CBRTF@ # if @REPLACE_CBRTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef cbrtf # define cbrtf rpl_cbrtf # endif _GL_FUNCDECL_RPL (cbrtf, float, (float x)); _GL_CXXALIAS_RPL (cbrtf, float, (float x)); # else # if !@HAVE_DECL_CBRTF@ _GL_FUNCDECL_SYS (cbrtf, float, (float x)); # endif _GL_CXXALIAS_SYS (cbrtf, float, (float x)); # endif _GL_CXXALIASWARN (cbrtf); #elif defined GNULIB_POSIXCHECK # undef cbrtf # if HAVE_RAW_DECL_CBRTF _GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - " "use gnulib module cbrtf for portability"); # endif #endif #if @GNULIB_CBRT@ # if !@HAVE_CBRT@ _GL_FUNCDECL_SYS (cbrt, double, (double x)); # endif _GL_CXXALIAS_SYS (cbrt, double, (double x)); _GL_CXXALIASWARN (cbrt); #elif defined GNULIB_POSIXCHECK # undef cbrt # if HAVE_RAW_DECL_CBRT _GL_WARN_ON_USE (cbrt, "cbrt is unportable - " "use gnulib module cbrt for portability"); # endif #endif #if @GNULIB_CBRTL@ # if @REPLACE_CBRTL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef cbrtl # define cbrtl rpl_cbrtl # endif _GL_FUNCDECL_RPL (cbrtl, long double, (long double x)); _GL_CXXALIAS_RPL (cbrtl, long double, (long double x)); # else # if !@HAVE_DECL_CBRTL@ _GL_FUNCDECL_SYS (cbrtl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (cbrtl, long double, (long double x)); # endif _GL_CXXALIASWARN (cbrtl); #elif defined GNULIB_POSIXCHECK # undef cbrtl # if HAVE_RAW_DECL_CBRTL _GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - " "use gnulib module cbrtl for portability"); # endif #endif #if @GNULIB_CEILF@ # if @REPLACE_CEILF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ceilf # define ceilf rpl_ceilf # endif _GL_FUNCDECL_RPL (ceilf, float, (float x)); _GL_CXXALIAS_RPL (ceilf, float, (float x)); # else # if !@HAVE_DECL_CEILF@ # undef ceilf _GL_FUNCDECL_SYS (ceilf, float, (float x)); # endif _GL_CXXALIAS_SYS (ceilf, float, (float x)); # endif _GL_CXXALIASWARN (ceilf); #elif defined GNULIB_POSIXCHECK # undef ceilf # if HAVE_RAW_DECL_CEILF _GL_WARN_ON_USE (ceilf, "ceilf is unportable - " "use gnulib module ceilf for portability"); # endif #endif #if @GNULIB_CEIL@ # if @REPLACE_CEIL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ceil # define ceil rpl_ceil # endif _GL_FUNCDECL_RPL (ceil, double, (double x)); _GL_CXXALIAS_RPL (ceil, double, (double x)); # else _GL_CXXALIAS_SYS (ceil, double, (double x)); # endif _GL_CXXALIASWARN (ceil); #endif #if @GNULIB_CEILL@ # if @REPLACE_CEILL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ceill # define ceill rpl_ceill # endif _GL_FUNCDECL_RPL (ceill, long double, (long double x)); _GL_CXXALIAS_RPL (ceill, long double, (long double x)); # else # if !@HAVE_DECL_CEILL@ # undef ceill _GL_FUNCDECL_SYS (ceill, long double, (long double x)); # endif _GL_CXXALIAS_SYS (ceill, long double, (long double x)); # endif _GL_CXXALIASWARN (ceill); #elif defined GNULIB_POSIXCHECK # undef ceill # if HAVE_RAW_DECL_CEILL _GL_WARN_ON_USE (ceill, "ceill is unportable - " "use gnulib module ceill for portability"); # endif #endif #if @GNULIB_COPYSIGNF@ # if !@HAVE_DECL_COPYSIGNF@ _GL_FUNCDECL_SYS (copysignf, float, (float x, float y)); # endif _GL_CXXALIAS_SYS (copysignf, float, (float x, float y)); _GL_CXXALIASWARN (copysignf); #elif defined GNULIB_POSIXCHECK # undef copysignf # if HAVE_RAW_DECL_COPYSIGNF _GL_WARN_ON_USE (copysignf, "copysignf is unportable - " "use gnulib module copysignf for portability"); # endif #endif #if @GNULIB_COPYSIGN@ # if !@HAVE_COPYSIGN@ _GL_FUNCDECL_SYS (copysign, double, (double x, double y)); # endif _GL_CXXALIAS_SYS (copysign, double, (double x, double y)); _GL_CXXALIASWARN (copysign); #elif defined GNULIB_POSIXCHECK # undef copysign # if HAVE_RAW_DECL_COPYSIGN _GL_WARN_ON_USE (copysign, "copysign is unportable - " "use gnulib module copysign for portability"); # endif #endif #if @GNULIB_COPYSIGNL@ # if !@HAVE_COPYSIGNL@ _GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y)); # endif _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y)); _GL_CXXALIASWARN (copysignl); #elif defined GNULIB_POSIXCHECK # undef copysignl # if HAVE_RAW_DECL_COPYSIGNL _GL_WARN_ON_USE (copysign, "copysignl is unportable - " "use gnulib module copysignl for portability"); # endif #endif #if @GNULIB_COSF@ # if @REPLACE_COSF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef cosf # define cosf rpl_cosf # endif _GL_FUNCDECL_RPL (cosf, float, (float x)); _GL_CXXALIAS_RPL (cosf, float, (float x)); # else # if !@HAVE_COSF@ # undef cosf _GL_FUNCDECL_SYS (cosf, float, (float x)); # endif _GL_CXXALIAS_SYS (cosf, float, (float x)); # endif _GL_CXXALIASWARN (cosf); #elif defined GNULIB_POSIXCHECK # undef cosf # if HAVE_RAW_DECL_COSF _GL_WARN_ON_USE (cosf, "cosf is unportable - " "use gnulib module cosf for portability"); # endif #endif #if @GNULIB_COSL@ # if !@HAVE_COSL@ || !@HAVE_DECL_COSL@ # undef cosl _GL_FUNCDECL_SYS (cosl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (cosl, long double, (long double x)); _GL_CXXALIASWARN (cosl); #elif defined GNULIB_POSIXCHECK # undef cosl # if HAVE_RAW_DECL_COSL _GL_WARN_ON_USE (cosl, "cosl is unportable - " "use gnulib module cosl for portability"); # endif #endif #if @GNULIB_COSHF@ # if @REPLACE_COSHF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef coshf # define coshf rpl_coshf # endif _GL_FUNCDECL_RPL (coshf, float, (float x)); _GL_CXXALIAS_RPL (coshf, float, (float x)); # else # if !@HAVE_COSHF@ # undef coshf _GL_FUNCDECL_SYS (coshf, float, (float x)); # endif _GL_CXXALIAS_SYS (coshf, float, (float x)); # endif _GL_CXXALIASWARN (coshf); #elif defined GNULIB_POSIXCHECK # undef coshf # if HAVE_RAW_DECL_COSHF _GL_WARN_ON_USE (coshf, "coshf is unportable - " "use gnulib module coshf for portability"); # endif #endif #if @GNULIB_EXPF@ # if @REPLACE_EXPF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef expf # define expf rpl_expf # endif _GL_FUNCDECL_RPL (expf, float, (float x)); _GL_CXXALIAS_RPL (expf, float, (float x)); # else # if !@HAVE_EXPF@ # undef expf _GL_FUNCDECL_SYS (expf, float, (float x)); # endif _GL_CXXALIAS_SYS (expf, float, (float x)); # endif _GL_CXXALIASWARN (expf); #elif defined GNULIB_POSIXCHECK # undef expf # if HAVE_RAW_DECL_EXPF _GL_WARN_ON_USE (expf, "expf is unportable - " "use gnulib module expf for portability"); # endif #endif #if @GNULIB_EXPL@ # if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@ # undef expl _GL_FUNCDECL_SYS (expl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (expl, long double, (long double x)); _GL_CXXALIASWARN (expl); #elif defined GNULIB_POSIXCHECK # undef expl # if HAVE_RAW_DECL_EXPL _GL_WARN_ON_USE (expl, "expl is unportable - " "use gnulib module expl for portability"); # endif #endif #if @GNULIB_EXP2F@ # if !@HAVE_DECL_EXP2F@ _GL_FUNCDECL_SYS (exp2f, float, (float x)); # endif _GL_CXXALIAS_SYS (exp2f, float, (float x)); _GL_CXXALIASWARN (exp2f); #elif defined GNULIB_POSIXCHECK # undef exp2f # if HAVE_RAW_DECL_EXP2F _GL_WARN_ON_USE (exp2f, "exp2f is unportable - " "use gnulib module exp2f for portability"); # endif #endif #if @GNULIB_EXP2@ # if @REPLACE_EXP2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef exp2 # define exp2 rpl_exp2 # endif _GL_FUNCDECL_RPL (exp2, double, (double x)); _GL_CXXALIAS_RPL (exp2, double, (double x)); # else # if !@HAVE_DECL_EXP2@ _GL_FUNCDECL_SYS (exp2, double, (double x)); # endif _GL_CXXALIAS_SYS (exp2, double, (double x)); # endif _GL_CXXALIASWARN (exp2); #elif defined GNULIB_POSIXCHECK # undef exp2 # if HAVE_RAW_DECL_EXP2 _GL_WARN_ON_USE (exp2, "exp2 is unportable - " "use gnulib module exp2 for portability"); # endif #endif #if @GNULIB_EXP2L@ # if @REPLACE_EXP2L@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef exp2l # define exp2l rpl_exp2l # endif _GL_FUNCDECL_RPL (exp2l, long double, (long double x)); _GL_CXXALIAS_RPL (exp2l, long double, (long double x)); # else # if !@HAVE_DECL_EXP2L@ # undef exp2l _GL_FUNCDECL_SYS (exp2l, long double, (long double x)); # endif _GL_CXXALIAS_SYS (exp2l, long double, (long double x)); # endif _GL_CXXALIASWARN (exp2l); #elif defined GNULIB_POSIXCHECK # undef exp2l # if HAVE_RAW_DECL_EXP2L _GL_WARN_ON_USE (exp2l, "exp2l is unportable - " "use gnulib module exp2l for portability"); # endif #endif #if @GNULIB_EXPM1F@ # if @REPLACE_EXPM1F@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef expm1f # define expm1f rpl_expm1f # endif _GL_FUNCDECL_RPL (expm1f, float, (float x)); _GL_CXXALIAS_RPL (expm1f, float, (float x)); # else # if !@HAVE_EXPM1F@ _GL_FUNCDECL_SYS (expm1f, float, (float x)); # endif _GL_CXXALIAS_SYS (expm1f, float, (float x)); # endif _GL_CXXALIASWARN (expm1f); #elif defined GNULIB_POSIXCHECK # undef expm1f # if HAVE_RAW_DECL_EXPM1F _GL_WARN_ON_USE (expm1f, "expm1f is unportable - " "use gnulib module expm1f for portability"); # endif #endif #if @GNULIB_EXPM1@ # if @REPLACE_EXPM1@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef expm1 # define expm1 rpl_expm1 # endif _GL_FUNCDECL_RPL (expm1, double, (double x)); _GL_CXXALIAS_RPL (expm1, double, (double x)); # else # if !@HAVE_EXPM1@ _GL_FUNCDECL_SYS (expm1, double, (double x)); # endif _GL_CXXALIAS_SYS (expm1, double, (double x)); # endif _GL_CXXALIASWARN (expm1); #elif defined GNULIB_POSIXCHECK # undef expm1 # if HAVE_RAW_DECL_EXPM1 _GL_WARN_ON_USE (expm1, "expm1 is unportable - " "use gnulib module expm1 for portability"); # endif #endif #if @GNULIB_EXPM1L@ # if !@HAVE_DECL_EXPM1L@ # undef expm1l _GL_FUNCDECL_SYS (expm1l, long double, (long double x)); # endif _GL_CXXALIAS_SYS (expm1l, long double, (long double x)); _GL_CXXALIASWARN (expm1l); #elif defined GNULIB_POSIXCHECK # undef expm1l # if HAVE_RAW_DECL_EXPM1L _GL_WARN_ON_USE (expm1l, "expm1l is unportable - " "use gnulib module expm1l for portability"); # endif #endif #if @GNULIB_FABSF@ # if !@HAVE_FABSF@ # undef fabsf _GL_FUNCDECL_SYS (fabsf, float, (float x)); # endif _GL_CXXALIAS_SYS (fabsf, float, (float x)); _GL_CXXALIASWARN (fabsf); #elif defined GNULIB_POSIXCHECK # undef fabsf # if HAVE_RAW_DECL_FABSF _GL_WARN_ON_USE (fabsf, "fabsf is unportable - " "use gnulib module fabsf for portability"); # endif #endif #if @GNULIB_FABSL@ # if @REPLACE_FABSL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fabsl # define fabsl rpl_fabsl # endif _GL_FUNCDECL_RPL (fabsl, long double, (long double x)); _GL_CXXALIAS_RPL (fabsl, long double, (long double x)); # else # if !@HAVE_FABSL@ # undef fabsl _GL_FUNCDECL_SYS (fabsl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (fabsl, long double, (long double x)); # endif _GL_CXXALIASWARN (fabsl); #elif defined GNULIB_POSIXCHECK # undef fabsl # if HAVE_RAW_DECL_FABSL _GL_WARN_ON_USE (fabsl, "fabsl is unportable - " "use gnulib module fabsl for portability"); # endif #endif #if @GNULIB_FLOORF@ # if @REPLACE_FLOORF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef floorf # define floorf rpl_floorf # endif _GL_FUNCDECL_RPL (floorf, float, (float x)); _GL_CXXALIAS_RPL (floorf, float, (float x)); # else # if !@HAVE_DECL_FLOORF@ # undef floorf _GL_FUNCDECL_SYS (floorf, float, (float x)); # endif _GL_CXXALIAS_SYS (floorf, float, (float x)); # endif _GL_CXXALIASWARN (floorf); #elif defined GNULIB_POSIXCHECK # undef floorf # if HAVE_RAW_DECL_FLOORF _GL_WARN_ON_USE (floorf, "floorf is unportable - " "use gnulib module floorf for portability"); # endif #endif #if @GNULIB_FLOOR@ # if @REPLACE_FLOOR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef floor # define floor rpl_floor # endif _GL_FUNCDECL_RPL (floor, double, (double x)); _GL_CXXALIAS_RPL (floor, double, (double x)); # else _GL_CXXALIAS_SYS (floor, double, (double x)); # endif _GL_CXXALIASWARN (floor); #endif #if @GNULIB_FLOORL@ # if @REPLACE_FLOORL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef floorl # define floorl rpl_floorl # endif _GL_FUNCDECL_RPL (floorl, long double, (long double x)); _GL_CXXALIAS_RPL (floorl, long double, (long double x)); # else # if !@HAVE_DECL_FLOORL@ # undef floorl _GL_FUNCDECL_SYS (floorl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (floorl, long double, (long double x)); # endif _GL_CXXALIASWARN (floorl); #elif defined GNULIB_POSIXCHECK # undef floorl # if HAVE_RAW_DECL_FLOORL _GL_WARN_ON_USE (floorl, "floorl is unportable - " "use gnulib module floorl for portability"); # endif #endif #if @GNULIB_FMAF@ # if @REPLACE_FMAF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fmaf # define fmaf rpl_fmaf # endif _GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z)); _GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z)); # else # if !@HAVE_FMAF@ _GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z)); # endif _GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z)); # endif _GL_CXXALIASWARN (fmaf); #elif defined GNULIB_POSIXCHECK # undef fmaf # if HAVE_RAW_DECL_FMAF _GL_WARN_ON_USE (fmaf, "fmaf is unportable - " "use gnulib module fmaf for portability"); # endif #endif #if @GNULIB_FMA@ # if @REPLACE_FMA@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fma # define fma rpl_fma # endif _GL_FUNCDECL_RPL (fma, double, (double x, double y, double z)); _GL_CXXALIAS_RPL (fma, double, (double x, double y, double z)); # else # if !@HAVE_FMA@ _GL_FUNCDECL_SYS (fma, double, (double x, double y, double z)); # endif _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z)); # endif _GL_CXXALIASWARN (fma); #elif defined GNULIB_POSIXCHECK # undef fma # if HAVE_RAW_DECL_FMA _GL_WARN_ON_USE (fma, "fma is unportable - " "use gnulib module fma for portability"); # endif #endif #if @GNULIB_FMAL@ # if @REPLACE_FMAL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fmal # define fmal rpl_fmal # endif _GL_FUNCDECL_RPL (fmal, long double, (long double x, long double y, long double z)); _GL_CXXALIAS_RPL (fmal, long double, (long double x, long double y, long double z)); # else # if !@HAVE_FMAL@ # undef fmal _GL_FUNCDECL_SYS (fmal, long double, (long double x, long double y, long double z)); # endif _GL_CXXALIAS_SYS (fmal, long double, (long double x, long double y, long double z)); # endif _GL_CXXALIASWARN (fmal); #elif defined GNULIB_POSIXCHECK # undef fmal # if HAVE_RAW_DECL_FMAL _GL_WARN_ON_USE (fmal, "fmal is unportable - " "use gnulib module fmal for portability"); # endif #endif #if @GNULIB_FMODF@ # if @REPLACE_FMODF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fmodf # define fmodf rpl_fmodf # endif _GL_FUNCDECL_RPL (fmodf, float, (float x, float y)); _GL_CXXALIAS_RPL (fmodf, float, (float x, float y)); # else # if !@HAVE_FMODF@ # undef fmodf _GL_FUNCDECL_SYS (fmodf, float, (float x, float y)); # endif _GL_CXXALIAS_SYS (fmodf, float, (float x, float y)); # endif _GL_CXXALIASWARN (fmodf); #elif defined GNULIB_POSIXCHECK # undef fmodf # if HAVE_RAW_DECL_FMODF _GL_WARN_ON_USE (fmodf, "fmodf is unportable - " "use gnulib module fmodf for portability"); # endif #endif #if @GNULIB_FMOD@ # if @REPLACE_FMOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fmod # define fmod rpl_fmod # endif _GL_FUNCDECL_RPL (fmod, double, (double x, double y)); _GL_CXXALIAS_RPL (fmod, double, (double x, double y)); # else _GL_CXXALIAS_SYS (fmod, double, (double x, double y)); # endif _GL_CXXALIASWARN (fmod); #elif defined GNULIB_POSIXCHECK # undef fmod # if HAVE_RAW_DECL_FMOD _GL_WARN_ON_USE (fmod, "fmod has portability problems - " "use gnulib module fmod for portability"); # endif #endif #if @GNULIB_FMODL@ # if @REPLACE_FMODL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fmodl # define fmodl rpl_fmodl # endif _GL_FUNCDECL_RPL (fmodl, long double, (long double x, long double y)); _GL_CXXALIAS_RPL (fmodl, long double, (long double x, long double y)); # else # if !@HAVE_FMODL@ # undef fmodl _GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y)); # endif _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y)); # endif _GL_CXXALIASWARN (fmodl); #elif defined GNULIB_POSIXCHECK # undef fmodl # if HAVE_RAW_DECL_FMODL _GL_WARN_ON_USE (fmodl, "fmodl is unportable - " "use gnulib module fmodl for portability"); # endif #endif /* Write x as x = mantissa * 2^exp where If x finite and nonzero: 0.5 <= |mantissa| < 1.0. If x is zero: mantissa = x, exp = 0. If x is infinite or NaN: mantissa = x, exp unspecified. Store exp in *EXPPTR and return mantissa. */ #if @GNULIB_FREXPF@ # if @REPLACE_FREXPF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef frexpf # define frexpf rpl_frexpf # endif _GL_FUNCDECL_RPL (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (frexpf, float, (float x, int *expptr)); # else # if !@HAVE_FREXPF@ # undef frexpf _GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr)); # endif _GL_CXXALIASWARN (frexpf); #elif defined GNULIB_POSIXCHECK # undef frexpf # if HAVE_RAW_DECL_FREXPF _GL_WARN_ON_USE (frexpf, "frexpf is unportable - " "use gnulib module frexpf for portability"); # endif #endif /* Write x as x = mantissa * 2^exp where If x finite and nonzero: 0.5 <= |mantissa| < 1.0. If x is zero: mantissa = x, exp = 0. If x is infinite or NaN: mantissa = x, exp unspecified. Store exp in *EXPPTR and return mantissa. */ #if @GNULIB_FREXP@ # if @REPLACE_FREXP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef frexp # define frexp rpl_frexp # endif _GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr)); # else _GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr)); # endif _GL_CXXALIASWARN1 (frexp, double, (double x, int *expptr)); #elif defined GNULIB_POSIXCHECK # undef frexp /* Assume frexp is always declared. */ _GL_WARN_ON_USE (frexp, "frexp is unportable - " "use gnulib module frexp for portability"); #endif /* Write x as x = mantissa * 2^exp where If x finite and nonzero: 0.5 <= |mantissa| < 1.0. If x is zero: mantissa = x, exp = 0. If x is infinite or NaN: mantissa = x, exp unspecified. Store exp in *EXPPTR and return mantissa. */ #if @GNULIB_FREXPL@ && @REPLACE_FREXPL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef frexpl # define frexpl rpl_frexpl # endif _GL_FUNCDECL_RPL (frexpl, long double, (long double x, int *expptr) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (frexpl, long double, (long double x, int *expptr)); #else # if !@HAVE_DECL_FREXPL@ _GL_FUNCDECL_SYS (frexpl, long double, (long double x, int *expptr) _GL_ARG_NONNULL ((2))); # endif # if @GNULIB_FREXPL@ _GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr)); # endif #endif #if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@) _GL_CXXALIASWARN (frexpl); #endif #if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK # undef frexpl # if HAVE_RAW_DECL_FREXPL _GL_WARN_ON_USE (frexpl, "frexpl is unportable - " "use gnulib module frexpl for portability"); # endif #endif /* Return sqrt(x^2+y^2). */ #if @GNULIB_HYPOTF@ # if @REPLACE_HYPOTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef hypotf # define hypotf rpl_hypotf # endif _GL_FUNCDECL_RPL (hypotf, float, (float x, float y)); _GL_CXXALIAS_RPL (hypotf, float, (float x, float y)); # else # if !@HAVE_HYPOTF@ _GL_FUNCDECL_SYS (hypotf, float, (float x, float y)); # endif _GL_CXXALIAS_SYS (hypotf, float, (float x, float y)); # endif _GL_CXXALIASWARN (hypotf); #elif defined GNULIB_POSIXCHECK # undef hypotf # if HAVE_RAW_DECL_HYPOTF _GL_WARN_ON_USE (hypotf, "hypotf is unportable - " "use gnulib module hypotf for portability"); # endif #endif /* Return sqrt(x^2+y^2). */ #if @GNULIB_HYPOT@ # if @REPLACE_HYPOT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef hypot # define hypot rpl_hypot # endif _GL_FUNCDECL_RPL (hypot, double, (double x, double y)); _GL_CXXALIAS_RPL (hypot, double, (double x, double y)); # else _GL_CXXALIAS_SYS (hypot, double, (double x, double y)); # endif _GL_CXXALIASWARN (hypot); #elif defined GNULIB_POSIXCHECK # undef hypot # if HAVE_RAW_DECL_HYPOT _GL_WARN_ON_USE (hypotf, "hypot has portability problems - " "use gnulib module hypot for portability"); # endif #endif /* Return sqrt(x^2+y^2). */ #if @GNULIB_HYPOTL@ # if @REPLACE_HYPOTL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef hypotl # define hypotl rpl_hypotl # endif _GL_FUNCDECL_RPL (hypotl, long double, (long double x, long double y)); _GL_CXXALIAS_RPL (hypotl, long double, (long double x, long double y)); # else # if !@HAVE_HYPOTL@ _GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y)); # endif _GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y)); # endif _GL_CXXALIASWARN (hypotl); #elif defined GNULIB_POSIXCHECK # undef hypotl # if HAVE_RAW_DECL_HYPOTL _GL_WARN_ON_USE (hypotl, "hypotl is unportable - " "use gnulib module hypotl for portability"); # endif #endif #if @GNULIB_ILOGBF@ # if @REPLACE_ILOGBF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ilogbf # define ilogbf rpl_ilogbf # endif _GL_FUNCDECL_RPL (ilogbf, int, (float x)); _GL_CXXALIAS_RPL (ilogbf, int, (float x)); # else # if !@HAVE_ILOGBF@ _GL_FUNCDECL_SYS (ilogbf, int, (float x)); # endif _GL_CXXALIAS_SYS (ilogbf, int, (float x)); # endif _GL_CXXALIASWARN (ilogbf); #elif defined GNULIB_POSIXCHECK # undef ilogbf # if HAVE_RAW_DECL_ILOGBF _GL_WARN_ON_USE (ilogbf, "ilogbf is unportable - " "use gnulib module ilogbf for portability"); # endif #endif #if @GNULIB_ILOGB@ # if @REPLACE_ILOGB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ilogb # define ilogb rpl_ilogb # endif _GL_FUNCDECL_RPL (ilogb, int, (double x)); _GL_CXXALIAS_RPL (ilogb, int, (double x)); # else # if !@HAVE_ILOGB@ _GL_FUNCDECL_SYS (ilogb, int, (double x)); # endif _GL_CXXALIAS_SYS (ilogb, int, (double x)); # endif _GL_CXXALIASWARN (ilogb); #elif defined GNULIB_POSIXCHECK # undef ilogb # if HAVE_RAW_DECL_ILOGB _GL_WARN_ON_USE (ilogb, "ilogb is unportable - " "use gnulib module ilogb for portability"); # endif #endif #if @GNULIB_ILOGBL@ # if !@HAVE_ILOGBL@ _GL_FUNCDECL_SYS (ilogbl, int, (long double x)); # endif _GL_CXXALIAS_SYS (ilogbl, int, (long double x)); _GL_CXXALIASWARN (ilogbl); #elif defined GNULIB_POSIXCHECK # undef ilogbl # if HAVE_RAW_DECL_ILOGBL _GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - " "use gnulib module ilogbl for portability"); # endif #endif /* Return x * 2^exp. */ #if @GNULIB_LDEXPF@ # if !@HAVE_LDEXPF@ # undef ldexpf _GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp)); # endif _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp)); _GL_CXXALIASWARN (ldexpf); #elif defined GNULIB_POSIXCHECK # undef ldexpf # if HAVE_RAW_DECL_LDEXPF _GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - " "use gnulib module ldexpf for portability"); # endif #endif /* Return x * 2^exp. */ #if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ldexpl # define ldexpl rpl_ldexpl # endif _GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp)); _GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp)); #else # if !@HAVE_DECL_LDEXPL@ _GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp)); # endif # if @GNULIB_LDEXPL@ _GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp)); # endif #endif #if @GNULIB_LDEXPL@ _GL_CXXALIASWARN (ldexpl); #endif #if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK # undef ldexpl # if HAVE_RAW_DECL_LDEXPL _GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - " "use gnulib module ldexpl for portability"); # endif #endif #if @GNULIB_LOGF@ # if @REPLACE_LOGF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef logf # define logf rpl_logf # endif _GL_FUNCDECL_RPL (logf, float, (float x)); _GL_CXXALIAS_RPL (logf, float, (float x)); # else # if !@HAVE_LOGF@ # undef logf _GL_FUNCDECL_SYS (logf, float, (float x)); # endif _GL_CXXALIAS_SYS (logf, float, (float x)); # endif _GL_CXXALIASWARN (logf); #elif defined GNULIB_POSIXCHECK # undef logf # if HAVE_RAW_DECL_LOGF _GL_WARN_ON_USE (logf, "logf is unportable - " "use gnulib module logf for portability"); # endif #endif #if @GNULIB_LOG@ # if @REPLACE_LOG@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef log # define log rpl_log # endif _GL_FUNCDECL_RPL (log, double, (double x)); _GL_CXXALIAS_RPL (log, double, (double x)); # else _GL_CXXALIAS_SYS (log, double, (double x)); # endif _GL_CXXALIASWARN (log); #elif defined GNULIB_POSIXCHECK # undef log # if HAVE_RAW_DECL_LOG _GL_WARN_ON_USE (log, "log has portability problems - " "use gnulib module log for portability"); # endif #endif #if @GNULIB_LOGL@ # if @REPLACE_LOGL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef logl # define logl rpl_logl # endif _GL_FUNCDECL_RPL (logl, long double, (long double x)); _GL_CXXALIAS_RPL (logl, long double, (long double x)); # else # if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@ # undef logl _GL_FUNCDECL_SYS (logl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (logl, long double, (long double x)); # endif _GL_CXXALIASWARN (logl); #elif defined GNULIB_POSIXCHECK # undef logl # if HAVE_RAW_DECL_LOGL _GL_WARN_ON_USE (logl, "logl is unportable - " "use gnulib module logl for portability"); # endif #endif #if @GNULIB_LOG10F@ # if @REPLACE_LOG10F@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef log10f # define log10f rpl_log10f # endif _GL_FUNCDECL_RPL (log10f, float, (float x)); _GL_CXXALIAS_RPL (log10f, float, (float x)); # else # if !@HAVE_LOG10F@ # undef log10f _GL_FUNCDECL_SYS (log10f, float, (float x)); # endif _GL_CXXALIAS_SYS (log10f, float, (float x)); # endif _GL_CXXALIASWARN (log10f); #elif defined GNULIB_POSIXCHECK # undef log10f # if HAVE_RAW_DECL_LOG10F _GL_WARN_ON_USE (log10f, "log10f is unportable - " "use gnulib module log10f for portability"); # endif #endif #if @GNULIB_LOG10@ # if @REPLACE_LOG10@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef log10 # define log10 rpl_log10 # endif _GL_FUNCDECL_RPL (log10, double, (double x)); _GL_CXXALIAS_RPL (log10, double, (double x)); # else _GL_CXXALIAS_SYS (log10, double, (double x)); # endif _GL_CXXALIASWARN (log10); #elif defined GNULIB_POSIXCHECK # undef log10 # if HAVE_RAW_DECL_LOG10 _GL_WARN_ON_USE (log10, "log10 has portability problems - " "use gnulib module log10 for portability"); # endif #endif #if @GNULIB_LOG10L@ # if @REPLACE_LOG10L@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef log10l # define log10l rpl_log10l # endif _GL_FUNCDECL_RPL (log10l, long double, (long double x)); _GL_CXXALIAS_RPL (log10l, long double, (long double x)); # else # if !@HAVE_LOG10L@ || !@HAVE_DECL_LOG10L@ # undef log10l _GL_FUNCDECL_SYS (log10l, long double, (long double x)); # endif _GL_CXXALIAS_SYS (log10l, long double, (long double x)); # endif _GL_CXXALIASWARN (log10l); #elif defined GNULIB_POSIXCHECK # undef log10l # if HAVE_RAW_DECL_LOG10L _GL_WARN_ON_USE (log10l, "log10l is unportable - " "use gnulib module log10l for portability"); # endif #endif #if @GNULIB_LOG1PF@ # if @REPLACE_LOG1PF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef log1pf # define log1pf rpl_log1pf # endif _GL_FUNCDECL_RPL (log1pf, float, (float x)); _GL_CXXALIAS_RPL (log1pf, float, (float x)); # else # if !@HAVE_LOG1PF@ _GL_FUNCDECL_SYS (log1pf, float, (float x)); # endif _GL_CXXALIAS_SYS (log1pf, float, (float x)); # endif _GL_CXXALIASWARN (log1pf); #elif defined GNULIB_POSIXCHECK # undef log1pf # if HAVE_RAW_DECL_LOG1PF _GL_WARN_ON_USE (log1pf, "log1pf is unportable - " "use gnulib module log1pf for portability"); # endif #endif #if @GNULIB_LOG1P@ # if @REPLACE_LOG1P@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef log1p # define log1p rpl_log1p # endif _GL_FUNCDECL_RPL (log1p, double, (double x)); _GL_CXXALIAS_RPL (log1p, double, (double x)); # else # if !@HAVE_LOG1P@ _GL_FUNCDECL_SYS (log1p, double, (double x)); # endif _GL_CXXALIAS_SYS (log1p, double, (double x)); # endif _GL_CXXALIASWARN (log1p); #elif defined GNULIB_POSIXCHECK # undef log1p # if HAVE_RAW_DECL_LOG1P _GL_WARN_ON_USE (log1p, "log1p has portability problems - " "use gnulib module log1p for portability"); # endif #endif #if @GNULIB_LOG1PL@ # if @REPLACE_LOG1PL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef log1pl # define log1pl rpl_log1pl # endif _GL_FUNCDECL_RPL (log1pl, long double, (long double x)); _GL_CXXALIAS_RPL (log1pl, long double, (long double x)); # else # if !@HAVE_LOG1PL@ _GL_FUNCDECL_SYS (log1pl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (log1pl, long double, (long double x)); # endif _GL_CXXALIASWARN (log1pl); #elif defined GNULIB_POSIXCHECK # undef log1pl # if HAVE_RAW_DECL_LOG1PL _GL_WARN_ON_USE (log1pl, "log1pl has portability problems - " "use gnulib module log1pl for portability"); # endif #endif #if @GNULIB_LOG2F@ # if @REPLACE_LOG2F@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef log2f # define log2f rpl_log2f # endif _GL_FUNCDECL_RPL (log2f, float, (float x)); _GL_CXXALIAS_RPL (log2f, float, (float x)); # else # if !@HAVE_DECL_LOG2F@ # undef log2f _GL_FUNCDECL_SYS (log2f, float, (float x)); # endif _GL_CXXALIAS_SYS (log2f, float, (float x)); # endif _GL_CXXALIASWARN (log2f); #elif defined GNULIB_POSIXCHECK # undef log2f # if HAVE_RAW_DECL_LOG2F _GL_WARN_ON_USE (log2f, "log2f is unportable - " "use gnulib module log2f for portability"); # endif #endif #if @GNULIB_LOG2@ # if @REPLACE_LOG2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef log2 # define log2 rpl_log2 # endif _GL_FUNCDECL_RPL (log2, double, (double x)); _GL_CXXALIAS_RPL (log2, double, (double x)); # else # if !@HAVE_DECL_LOG2@ # undef log2 _GL_FUNCDECL_SYS (log2, double, (double x)); # endif _GL_CXXALIAS_SYS (log2, double, (double x)); # endif _GL_CXXALIASWARN (log2); #elif defined GNULIB_POSIXCHECK # undef log2 # if HAVE_RAW_DECL_LOG2 _GL_WARN_ON_USE (log2, "log2 is unportable - " "use gnulib module log2 for portability"); # endif #endif #if @GNULIB_LOG2L@ # if @REPLACE_LOG2L@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef log2l # define log2l rpl_log2l # endif _GL_FUNCDECL_RPL (log2l, long double, (long double x)); _GL_CXXALIAS_RPL (log2l, long double, (long double x)); # else # if !@HAVE_DECL_LOG2L@ _GL_FUNCDECL_SYS (log2l, long double, (long double x)); # endif _GL_CXXALIAS_SYS (log2l, long double, (long double x)); # endif _GL_CXXALIASWARN (log2l); #elif defined GNULIB_POSIXCHECK # undef log2l # if HAVE_RAW_DECL_LOG2L _GL_WARN_ON_USE (log2l, "log2l is unportable - " "use gnulib module log2l for portability"); # endif #endif #if @GNULIB_LOGBF@ # if @REPLACE_LOGBF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef logbf # define logbf rpl_logbf # endif _GL_FUNCDECL_RPL (logbf, float, (float x)); _GL_CXXALIAS_RPL (logbf, float, (float x)); # else # if !@HAVE_LOGBF@ _GL_FUNCDECL_SYS (logbf, float, (float x)); # endif _GL_CXXALIAS_SYS (logbf, float, (float x)); # endif _GL_CXXALIASWARN (logbf); #elif defined GNULIB_POSIXCHECK # undef logbf # if HAVE_RAW_DECL_LOGBF _GL_WARN_ON_USE (logbf, "logbf is unportable - " "use gnulib module logbf for portability"); # endif #endif #if @GNULIB_LOGB@ # if @REPLACE_LOGB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef logb # define logb rpl_logb # endif _GL_FUNCDECL_RPL (logb, double, (double x)); _GL_CXXALIAS_RPL (logb, double, (double x)); # else # if !@HAVE_DECL_LOGB@ _GL_FUNCDECL_SYS (logb, double, (double x)); # endif _GL_CXXALIAS_SYS (logb, double, (double x)); # endif _GL_CXXALIASWARN (logb); #elif defined GNULIB_POSIXCHECK # undef logb # if HAVE_RAW_DECL_LOGB _GL_WARN_ON_USE (logb, "logb is unportable - " "use gnulib module logb for portability"); # endif #endif #if @GNULIB_LOGBL@ # if @REPLACE_LOGBL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef logbl # define logbl rpl_logbl # endif _GL_FUNCDECL_RPL (logbl, long double, (long double x)); _GL_CXXALIAS_RPL (logbl, long double, (long double x)); # else # if !@HAVE_LOGBL@ _GL_FUNCDECL_SYS (logbl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (logbl, long double, (long double x)); # endif _GL_CXXALIASWARN (logbl); #elif defined GNULIB_POSIXCHECK # undef logbl # if HAVE_RAW_DECL_LOGBL _GL_WARN_ON_USE (logbl, "logbl is unportable - " "use gnulib module logbl for portability"); # endif #endif #if @GNULIB_MODFF@ # if @REPLACE_MODFF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef modff # define modff rpl_modff # endif _GL_FUNCDECL_RPL (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (modff, float, (float x, float *iptr)); # else # if !@HAVE_MODFF@ # undef modff _GL_FUNCDECL_SYS (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (modff, float, (float x, float *iptr)); # endif _GL_CXXALIASWARN (modff); #elif defined GNULIB_POSIXCHECK # undef modff # if HAVE_RAW_DECL_MODFF _GL_WARN_ON_USE (modff, "modff is unportable - " "use gnulib module modff for portability"); # endif #endif #if @GNULIB_MODF@ # if @REPLACE_MODF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef modf # define modf rpl_modf # endif _GL_FUNCDECL_RPL (modf, double, (double x, double *iptr) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (modf, double, (double x, double *iptr)); # else _GL_CXXALIAS_SYS (modf, double, (double x, double *iptr)); # endif _GL_CXXALIASWARN (modf); #elif defined GNULIB_POSIXCHECK # undef modf # if HAVE_RAW_DECL_MODF _GL_WARN_ON_USE (modf, "modf has portability problems - " "use gnulib module modf for portability"); # endif #endif #if @GNULIB_MODFL@ # if @REPLACE_MODFL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef modfl # define modfl rpl_modfl # endif _GL_FUNCDECL_RPL (modfl, long double, (long double x, long double *iptr) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (modfl, long double, (long double x, long double *iptr)); # else # if !@HAVE_MODFL@ # undef modfl _GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr)); # endif _GL_CXXALIASWARN (modfl); #elif defined GNULIB_POSIXCHECK # undef modfl # if HAVE_RAW_DECL_MODFL _GL_WARN_ON_USE (modfl, "modfl is unportable - " "use gnulib module modfl for portability"); # endif #endif #if @GNULIB_POWF@ # if !@HAVE_POWF@ # undef powf _GL_FUNCDECL_SYS (powf, float, (float x, float y)); # endif _GL_CXXALIAS_SYS (powf, float, (float x, float y)); _GL_CXXALIASWARN (powf); #elif defined GNULIB_POSIXCHECK # undef powf # if HAVE_RAW_DECL_POWF _GL_WARN_ON_USE (powf, "powf is unportable - " "use gnulib module powf for portability"); # endif #endif #if @GNULIB_REMAINDERF@ # if @REPLACE_REMAINDERF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef remainderf # define remainderf rpl_remainderf # endif _GL_FUNCDECL_RPL (remainderf, float, (float x, float y)); _GL_CXXALIAS_RPL (remainderf, float, (float x, float y)); # else # if !@HAVE_REMAINDERF@ _GL_FUNCDECL_SYS (remainderf, float, (float x, float y)); # endif _GL_CXXALIAS_SYS (remainderf, float, (float x, float y)); # endif _GL_CXXALIASWARN (remainderf); #elif defined GNULIB_POSIXCHECK # undef remainderf # if HAVE_RAW_DECL_REMAINDERF _GL_WARN_ON_USE (remainderf, "remainderf is unportable - " "use gnulib module remainderf for portability"); # endif #endif #if @GNULIB_REMAINDER@ # if @REPLACE_REMAINDER@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef remainder # define remainder rpl_remainder # endif _GL_FUNCDECL_RPL (remainder, double, (double x, double y)); _GL_CXXALIAS_RPL (remainder, double, (double x, double y)); # else # if !@HAVE_REMAINDER@ || !@HAVE_DECL_REMAINDER@ _GL_FUNCDECL_SYS (remainder, double, (double x, double y)); # endif _GL_CXXALIAS_SYS (remainder, double, (double x, double y)); # endif _GL_CXXALIASWARN (remainder); #elif defined GNULIB_POSIXCHECK # undef remainder # if HAVE_RAW_DECL_REMAINDER _GL_WARN_ON_USE (remainder, "remainder is unportable - " "use gnulib module remainder for portability"); # endif #endif #if @GNULIB_REMAINDERL@ # if @REPLACE_REMAINDERL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef remainderl # define remainderl rpl_remainderl # endif _GL_FUNCDECL_RPL (remainderl, long double, (long double x, long double y)); _GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y)); # else # if !@HAVE_DECL_REMAINDERL@ # undef remainderl _GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y)); # endif _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y)); # endif _GL_CXXALIASWARN (remainderl); #elif defined GNULIB_POSIXCHECK # undef remainderl # if HAVE_RAW_DECL_REMAINDERL _GL_WARN_ON_USE (remainderl, "remainderl is unportable - " "use gnulib module remainderl for portability"); # endif #endif #if @GNULIB_RINTF@ # if !@HAVE_DECL_RINTF@ _GL_FUNCDECL_SYS (rintf, float, (float x)); # endif _GL_CXXALIAS_SYS (rintf, float, (float x)); _GL_CXXALIASWARN (rintf); #elif defined GNULIB_POSIXCHECK # undef rintf # if HAVE_RAW_DECL_RINTF _GL_WARN_ON_USE (rintf, "rintf is unportable - " "use gnulib module rintf for portability"); # endif #endif #if @GNULIB_RINT@ # if !@HAVE_RINT@ _GL_FUNCDECL_SYS (rint, double, (double x)); # endif _GL_CXXALIAS_SYS (rint, double, (double x)); _GL_CXXALIASWARN (rint); #elif defined GNULIB_POSIXCHECK # undef rint # if HAVE_RAW_DECL_RINT _GL_WARN_ON_USE (rint, "rint is unportable - " "use gnulib module rint for portability"); # endif #endif #if @GNULIB_RINTL@ # if !@HAVE_RINTL@ _GL_FUNCDECL_SYS (rintl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (rintl, long double, (long double x)); _GL_CXXALIASWARN (rintl); #elif defined GNULIB_POSIXCHECK # undef rintl # if HAVE_RAW_DECL_RINTL _GL_WARN_ON_USE (rintl, "rintl is unportable - " "use gnulib module rintl for portability"); # endif #endif #if @GNULIB_ROUNDF@ # if @REPLACE_ROUNDF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef roundf # define roundf rpl_roundf # endif _GL_FUNCDECL_RPL (roundf, float, (float x)); _GL_CXXALIAS_RPL (roundf, float, (float x)); # else # if !@HAVE_DECL_ROUNDF@ _GL_FUNCDECL_SYS (roundf, float, (float x)); # endif _GL_CXXALIAS_SYS (roundf, float, (float x)); # endif _GL_CXXALIASWARN (roundf); #elif defined GNULIB_POSIXCHECK # undef roundf # if HAVE_RAW_DECL_ROUNDF _GL_WARN_ON_USE (roundf, "roundf is unportable - " "use gnulib module roundf for portability"); # endif #endif #if @GNULIB_ROUND@ # if @REPLACE_ROUND@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef round # define round rpl_round # endif _GL_FUNCDECL_RPL (round, double, (double x)); _GL_CXXALIAS_RPL (round, double, (double x)); # else # if !@HAVE_DECL_ROUND@ _GL_FUNCDECL_SYS (round, double, (double x)); # endif _GL_CXXALIAS_SYS (round, double, (double x)); # endif _GL_CXXALIASWARN (round); #elif defined GNULIB_POSIXCHECK # undef round # if HAVE_RAW_DECL_ROUND _GL_WARN_ON_USE (round, "round is unportable - " "use gnulib module round for portability"); # endif #endif #if @GNULIB_ROUNDL@ # if @REPLACE_ROUNDL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef roundl # define roundl rpl_roundl # endif _GL_FUNCDECL_RPL (roundl, long double, (long double x)); _GL_CXXALIAS_RPL (roundl, long double, (long double x)); # else # if !@HAVE_DECL_ROUNDL@ # undef roundl _GL_FUNCDECL_SYS (roundl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (roundl, long double, (long double x)); # endif _GL_CXXALIASWARN (roundl); #elif defined GNULIB_POSIXCHECK # undef roundl # if HAVE_RAW_DECL_ROUNDL _GL_WARN_ON_USE (roundl, "roundl is unportable - " "use gnulib module roundl for portability"); # endif #endif #if @GNULIB_SINF@ # if @REPLACE_SINF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sinf # define sinf rpl_sinf # endif _GL_FUNCDECL_RPL (sinf, float, (float x)); _GL_CXXALIAS_RPL (sinf, float, (float x)); # else # if !@HAVE_SINF@ # undef sinf _GL_FUNCDECL_SYS (sinf, float, (float x)); # endif _GL_CXXALIAS_SYS (sinf, float, (float x)); # endif _GL_CXXALIASWARN (sinf); #elif defined GNULIB_POSIXCHECK # undef sinf # if HAVE_RAW_DECL_SINF _GL_WARN_ON_USE (sinf, "sinf is unportable - " "use gnulib module sinf for portability"); # endif #endif #if @GNULIB_SINL@ # if !@HAVE_SINL@ || !@HAVE_DECL_SINL@ # undef sinl _GL_FUNCDECL_SYS (sinl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (sinl, long double, (long double x)); _GL_CXXALIASWARN (sinl); #elif defined GNULIB_POSIXCHECK # undef sinl # if HAVE_RAW_DECL_SINL _GL_WARN_ON_USE (sinl, "sinl is unportable - " "use gnulib module sinl for portability"); # endif #endif #if @GNULIB_SINHF@ # if @REPLACE_SINHF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sinhf # define sinhf rpl_sinhf # endif _GL_FUNCDECL_RPL (sinhf, float, (float x)); _GL_CXXALIAS_RPL (sinhf, float, (float x)); # else # if !@HAVE_SINHF@ # undef sinhf _GL_FUNCDECL_SYS (sinhf, float, (float x)); # endif _GL_CXXALIAS_SYS (sinhf, float, (float x)); # endif _GL_CXXALIASWARN (sinhf); #elif defined GNULIB_POSIXCHECK # undef sinhf # if HAVE_RAW_DECL_SINHF _GL_WARN_ON_USE (sinhf, "sinhf is unportable - " "use gnulib module sinhf for portability"); # endif #endif #if @GNULIB_SQRTF@ # if @REPLACE_SQRTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sqrtf # define sqrtf rpl_sqrtf # endif _GL_FUNCDECL_RPL (sqrtf, float, (float x)); _GL_CXXALIAS_RPL (sqrtf, float, (float x)); # else # if !@HAVE_SQRTF@ # undef sqrtf _GL_FUNCDECL_SYS (sqrtf, float, (float x)); # endif _GL_CXXALIAS_SYS (sqrtf, float, (float x)); # endif _GL_CXXALIASWARN (sqrtf); #elif defined GNULIB_POSIXCHECK # undef sqrtf # if HAVE_RAW_DECL_SQRTF _GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - " "use gnulib module sqrtf for portability"); # endif #endif #if @GNULIB_SQRTL@ # if @REPLACE_SQRTL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sqrtl # define sqrtl rpl_sqrtl # endif _GL_FUNCDECL_RPL (sqrtl, long double, (long double x)); _GL_CXXALIAS_RPL (sqrtl, long double, (long double x)); # else # if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@ # undef sqrtl _GL_FUNCDECL_SYS (sqrtl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (sqrtl, long double, (long double x)); # endif _GL_CXXALIASWARN (sqrtl); #elif defined GNULIB_POSIXCHECK # undef sqrtl # if HAVE_RAW_DECL_SQRTL _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - " "use gnulib module sqrtl for portability"); # endif #endif #if @GNULIB_TANF@ # if @REPLACE_TANF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef tanf # define tanf rpl_tanf # endif _GL_FUNCDECL_RPL (tanf, float, (float x)); _GL_CXXALIAS_RPL (tanf, float, (float x)); # else # if !@HAVE_TANF@ # undef tanf _GL_FUNCDECL_SYS (tanf, float, (float x)); # endif _GL_CXXALIAS_SYS (tanf, float, (float x)); # endif _GL_CXXALIASWARN (tanf); #elif defined GNULIB_POSIXCHECK # undef tanf # if HAVE_RAW_DECL_TANF _GL_WARN_ON_USE (tanf, "tanf is unportable - " "use gnulib module tanf for portability"); # endif #endif #if @GNULIB_TANL@ # if !@HAVE_TANL@ || !@HAVE_DECL_TANL@ # undef tanl _GL_FUNCDECL_SYS (tanl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (tanl, long double, (long double x)); _GL_CXXALIASWARN (tanl); #elif defined GNULIB_POSIXCHECK # undef tanl # if HAVE_RAW_DECL_TANL _GL_WARN_ON_USE (tanl, "tanl is unportable - " "use gnulib module tanl for portability"); # endif #endif #if @GNULIB_TANHF@ # if @REPLACE_TANHF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef tanhf # define tanhf rpl_tanhf # endif _GL_FUNCDECL_RPL (tanhf, float, (float x)); _GL_CXXALIAS_RPL (tanhf, float, (float x)); # else # if !@HAVE_TANHF@ # undef tanhf _GL_FUNCDECL_SYS (tanhf, float, (float x)); # endif _GL_CXXALIAS_SYS (tanhf, float, (float x)); # endif _GL_CXXALIASWARN (tanhf); #elif defined GNULIB_POSIXCHECK # undef tanhf # if HAVE_RAW_DECL_TANHF _GL_WARN_ON_USE (tanhf, "tanhf is unportable - " "use gnulib module tanhf for portability"); # endif #endif #if @GNULIB_TRUNCF@ # if @REPLACE_TRUNCF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef truncf # define truncf rpl_truncf # endif _GL_FUNCDECL_RPL (truncf, float, (float x)); _GL_CXXALIAS_RPL (truncf, float, (float x)); # else # if !@HAVE_DECL_TRUNCF@ _GL_FUNCDECL_SYS (truncf, float, (float x)); # endif _GL_CXXALIAS_SYS (truncf, float, (float x)); # endif _GL_CXXALIASWARN (truncf); #elif defined GNULIB_POSIXCHECK # undef truncf # if HAVE_RAW_DECL_TRUNCF _GL_WARN_ON_USE (truncf, "truncf is unportable - " "use gnulib module truncf for portability"); # endif #endif #if @GNULIB_TRUNC@ # if @REPLACE_TRUNC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef trunc # define trunc rpl_trunc # endif _GL_FUNCDECL_RPL (trunc, double, (double x)); _GL_CXXALIAS_RPL (trunc, double, (double x)); # else # if !@HAVE_DECL_TRUNC@ _GL_FUNCDECL_SYS (trunc, double, (double x)); # endif _GL_CXXALIAS_SYS (trunc, double, (double x)); # endif _GL_CXXALIASWARN (trunc); #elif defined GNULIB_POSIXCHECK # undef trunc # if HAVE_RAW_DECL_TRUNC _GL_WARN_ON_USE (trunc, "trunc is unportable - " "use gnulib module trunc for portability"); # endif #endif #if @GNULIB_TRUNCL@ # if @REPLACE_TRUNCL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef truncl # define truncl rpl_truncl # endif _GL_FUNCDECL_RPL (truncl, long double, (long double x)); _GL_CXXALIAS_RPL (truncl, long double, (long double x)); # else # if !@HAVE_DECL_TRUNCL@ _GL_FUNCDECL_SYS (truncl, long double, (long double x)); # endif _GL_CXXALIAS_SYS (truncl, long double, (long double x)); # endif _GL_CXXALIASWARN (truncl); #elif defined GNULIB_POSIXCHECK # undef truncl # if HAVE_RAW_DECL_TRUNCL _GL_WARN_ON_USE (truncl, "truncl is unportable - " "use gnulib module truncl for portability"); # endif #endif /* Definitions of function-like macros come here, after the function declarations. */ #if @GNULIB_ISFINITE@ # if @REPLACE_ISFINITE@ _GL_EXTERN_C int gl_isfinitef (float x); _GL_EXTERN_C int gl_isfinited (double x); _GL_EXTERN_C int gl_isfinitel (long double x); # undef isfinite # define isfinite(x) \ (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \ sizeof (x) == sizeof (double) ? gl_isfinited (x) : \ gl_isfinitef (x)) # endif # ifdef __cplusplus # if defined isfinite || defined GNULIB_NAMESPACE _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite) # undef isfinite _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite) # endif # endif #elif defined GNULIB_POSIXCHECK # if defined isfinite _GL_WARN_REAL_FLOATING_DECL (isfinite); # undef isfinite # define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x) # endif #endif #if @GNULIB_ISINF@ # if @REPLACE_ISINF@ _GL_EXTERN_C int gl_isinff (float x); _GL_EXTERN_C int gl_isinfd (double x); _GL_EXTERN_C int gl_isinfl (long double x); # undef isinf # define isinf(x) \ (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \ sizeof (x) == sizeof (double) ? gl_isinfd (x) : \ gl_isinff (x)) # endif # ifdef __cplusplus # if defined isinf || defined GNULIB_NAMESPACE _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf) # undef isinf _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf) # endif # endif #elif defined GNULIB_POSIXCHECK # if defined isinf _GL_WARN_REAL_FLOATING_DECL (isinf); # undef isinf # define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x) # endif #endif #if @GNULIB_ISNANF@ /* Test for NaN for 'float' numbers. */ # if @HAVE_ISNANF@ /* The original included above provides a declaration of isnan macro or (older) isnanf function. */ # if __GNUC__ >= 4 /* GCC 4.0 and newer provides three built-ins for isnan. */ # undef isnanf # define isnanf(x) __builtin_isnanf ((float)(x)) # elif defined isnan # undef isnanf # define isnanf(x) isnan ((float)(x)) # endif # else /* Test whether X is a NaN. */ # undef isnanf # define isnanf rpl_isnanf _GL_EXTERN_C int isnanf (float x); # endif #endif #if @GNULIB_ISNAND@ /* Test for NaN for 'double' numbers. This function is a gnulib extension, unlike isnan() which applied only to 'double' numbers earlier but now is a type-generic macro. */ # if @HAVE_ISNAND@ /* The original included above provides a declaration of isnan macro. */ # if __GNUC__ >= 4 /* GCC 4.0 and newer provides three built-ins for isnan. */ # undef isnand # define isnand(x) __builtin_isnan ((double)(x)) # else # undef isnand # define isnand(x) isnan ((double)(x)) # endif # else /* Test whether X is a NaN. */ # undef isnand # define isnand rpl_isnand _GL_EXTERN_C int isnand (double x); # endif #endif #if @GNULIB_ISNANL@ /* Test for NaN for 'long double' numbers. */ # if @HAVE_ISNANL@ /* The original included above provides a declaration of isnan macro or (older) isnanl function. */ # if __GNUC__ >= 4 /* GCC 4.0 and newer provides three built-ins for isnan. */ # undef isnanl # define isnanl(x) __builtin_isnanl ((long double)(x)) # elif defined isnan # undef isnanl # define isnanl(x) isnan ((long double)(x)) # endif # else /* Test whether X is a NaN. */ # undef isnanl # define isnanl rpl_isnanl _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST; # endif #endif /* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL! */ #if @GNULIB_ISNAN@ # if @REPLACE_ISNAN@ /* We can't just use the isnanf macro (e.g.) as exposed by isnanf.h (e.g.) here, because those may end up being macros that recursively expand back to isnan. So use the gnulib replacements for them directly. */ # if @HAVE_ISNANF@ && __GNUC__ >= 4 # define gl_isnan_f(x) __builtin_isnanf ((float)(x)) # else _GL_EXTERN_C int rpl_isnanf (float x); # define gl_isnan_f(x) rpl_isnanf (x) # endif # if @HAVE_ISNAND@ && __GNUC__ >= 4 # define gl_isnan_d(x) __builtin_isnan ((double)(x)) # else _GL_EXTERN_C int rpl_isnand (double x); # define gl_isnan_d(x) rpl_isnand (x) # endif # if @HAVE_ISNANL@ && __GNUC__ >= 4 # define gl_isnan_l(x) __builtin_isnanl ((long double)(x)) # else _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST; # define gl_isnan_l(x) rpl_isnanl (x) # endif # undef isnan # define isnan(x) \ (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \ sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \ gl_isnan_f (x)) # elif __GNUC__ >= 4 # undef isnan # define isnan(x) \ (sizeof (x) == sizeof (long double) ? __builtin_isnanl ((long double)(x)) : \ sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \ __builtin_isnanf ((float)(x))) # endif # ifdef __cplusplus # if defined isnan || defined GNULIB_NAMESPACE _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan) # undef isnan _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan) # endif # else /* Ensure isnan is a macro. */ # ifndef isnan # define isnan isnan # endif # endif #elif defined GNULIB_POSIXCHECK # if defined isnan _GL_WARN_REAL_FLOATING_DECL (isnan); # undef isnan # define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x) # endif #endif #if @GNULIB_SIGNBIT@ # if (@REPLACE_SIGNBIT_USING_GCC@ \ && (!defined __cplusplus || __cplusplus < 201103)) # undef signbit /* GCC 4.0 and newer provides three built-ins for signbit. */ # define signbit(x) \ (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \ sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \ __builtin_signbitf (x)) # endif # if @REPLACE_SIGNBIT@ # undef signbit _GL_EXTERN_C int gl_signbitf (float arg); _GL_EXTERN_C int gl_signbitd (double arg); _GL_EXTERN_C int gl_signbitl (long double arg); # if __GNUC__ >= 2 && !defined __STRICT_ANSI__ # define _GL_NUM_UINT_WORDS(type) \ ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) # if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf # define gl_signbitf_OPTIMIZED_MACRO # define gl_signbitf(arg) \ ({ union { float _value; \ unsigned int _word[_GL_NUM_UINT_WORDS (float)]; \ } _m; \ _m._value = (arg); \ (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \ }) # endif # if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd # define gl_signbitd_OPTIMIZED_MACRO # define gl_signbitd(arg) \ ({ union { double _value; \ unsigned int _word[_GL_NUM_UINT_WORDS (double)]; \ } _m; \ _m._value = (arg); \ (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \ }) # endif # if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl # define gl_signbitl_OPTIMIZED_MACRO # define gl_signbitl(arg) \ ({ union { long double _value; \ unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \ } _m; \ _m._value = (arg); \ (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \ }) # endif # endif # define signbit(x) \ (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \ sizeof (x) == sizeof (double) ? gl_signbitd (x) : \ gl_signbitf (x)) # endif # ifdef __cplusplus # if defined signbit || defined GNULIB_NAMESPACE _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit) # undef signbit _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit) # endif # endif #elif defined GNULIB_POSIXCHECK # if defined signbit _GL_WARN_REAL_FLOATING_DECL (signbit); # undef signbit # define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x) # endif #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_MATH_H */ #endif /* _@GUARD_PREFIX@_MATH_H */ gcal-4.1/lib/spawn_faction_init.c0000664000000000000000000000327213041163523013747 00000000000000/* Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include #include "spawn_int.h" /* Function used to increase the size of the allocated array. This function is called from the 'add'-functions. */ int __posix_spawn_file_actions_realloc (posix_spawn_file_actions_t *file_actions) { int newalloc = file_actions->_allocated + 8; void *newmem = realloc (file_actions->_actions, newalloc * sizeof (struct __spawn_action)); if (newmem == NULL) /* Not enough memory. */ return ENOMEM; file_actions->_actions = (struct __spawn_action *) newmem; file_actions->_allocated = newalloc; return 0; } /* Initialize data structure for file attribute for 'spawn' call. */ int posix_spawn_file_actions_init (posix_spawn_file_actions_t *file_actions) { /* Simply clear all the elements. */ memset (file_actions, '\0', sizeof (*file_actions)); return 0; } gcal-4.1/lib/spawnattr_init.c0000664000000000000000000000213113041163523013130 00000000000000/* Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include /* Initialize data structure for file attribute for 'spawn' call. */ int posix_spawnattr_init (posix_spawnattr_t *attr) { /* All elements have to be initialized to the default values which is generally zero. */ memset (attr, '\0', sizeof (*attr)); return 0; } gcal-4.1/lib/w32spawn.h0000664000000000000000000001654413041163523011570 00000000000000/* Auxiliary functions for the creation of subprocesses. Native Windows API. Copyright (C) 2001, 2003-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2003. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef __KLIBC__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include #endif /* Get _open_osfhandle(). */ #include #include #include #include #include /* Get _get_osfhandle(). */ #include "msvc-nothrow.h" #include "cloexec.h" #include "xalloc.h" /* Duplicates a file handle, making the copy uninheritable. Returns -1 for a file handle that is equivalent to closed. */ static int dup_noinherit (int fd) { fd = dup_cloexec (fd); if (fd < 0 && errno == EMFILE) error (EXIT_FAILURE, errno, _("_open_osfhandle failed")); return fd; } /* Returns a file descriptor equivalent to FD, except that the resulting file descriptor is none of STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO. FD must be open and non-inheritable. The result will be non-inheritable as well. If FD < 0, FD itself is returned. */ static int fd_safer_noinherit (int fd) { if (STDIN_FILENO <= fd && fd <= STDERR_FILENO) { /* The recursion depth is at most 3. */ int nfd = fd_safer_noinherit (dup_noinherit (fd)); int saved_errno = errno; close (fd); errno = saved_errno; return nfd; } return fd; } /* Duplicates a file handle, making the copy uninheritable and ensuring the result is none of STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO. Returns -1 for a file handle that is equivalent to closed. */ static int dup_safer_noinherit (int fd) { return fd_safer_noinherit (dup_noinherit (fd)); } /* Undoes the effect of TEMPFD = dup_safer_noinherit (ORIGFD); */ static void undup_safer_noinherit (int tempfd, int origfd) { if (tempfd >= 0) { if (dup2 (tempfd, origfd) < 0) error (EXIT_FAILURE, errno, _("cannot restore fd %d: dup2 failed"), origfd); close (tempfd); } else { /* origfd was closed or open to no handle at all. Set it to a closed state. This is (nearly) equivalent to the original state. */ close (origfd); } } /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Windows CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" - '*', '?' characters may get expanded through wildcard expansion in the callee: By default, in the callee, the initialization code before main() takes the result of GetCommandLine(), wildcard-expands it, and passes it to main(). The exceptions to this rule are: - programs that inspect GetCommandLine() and ignore argv, - mingw programs that have a global variable 'int _CRT_glob = 0;', - Cygwin programs, when invoked from a Cygwin program. */ #ifndef __KLIBC__ # define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037*?" # define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #else # define SHELL_SPECIAL_CHARS "" # define SHELL_SPACE_CHARS "" #endif static char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XNMALLOC (1 + argc + 1, char *); /* Add an element upfront that can be used when argv[0] turns out to be a script, not a program. On Unix, this would be "/bin/sh". On native Windows, "sh" is actually "sh.exe". We have to omit the directory part and rely on the search in PATH, because the mingw "mount points" are not visible inside Windows CreateProcess(). */ *new_argv++ = "sh.exe"; /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { bool quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = (char *) xmalloc (length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } gcal-4.1/lib/dup2.c0000664000000000000000000001107513041163522010742 00000000000000/* Duplicate an open file descriptor to a specified file descriptor. Copyright (C) 1999, 2004-2007, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* written by Paul Eggert */ #include /* Specification. */ #include #include #include #if HAVE_DUP2 # undef dup2 # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include # include "msvc-inval.h" /* Get _get_osfhandle. */ # include "msvc-nothrow.h" static int ms_windows_dup2 (int fd, int desired_fd) { int result; /* If fd is closed, mingw hangs on dup2 (fd, fd). If fd is open, dup2 (fd, fd) returns 0, but all further attempts to use fd in future dup2 calls will hang. */ if (fd == desired_fd) { if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } return fd; } /* Wine 1.0.1 return 0 when desired_fd is negative but not -1: http://bugs.winehq.org/show_bug.cgi?id=21289 */ if (desired_fd < 0) { errno = EBADF; return -1; } TRY_MSVC_INVAL { result = dup2 (fd, desired_fd); } CATCH_MSVC_INVAL { errno = EBADF; result = -1; } DONE_MSVC_INVAL; if (result == 0) result = desired_fd; return result; } # define dup2 ms_windows_dup2 # elif defined __KLIBC__ # include static int klibc_dup2dirfd (int fd, int desired_fd) { int tempfd; int dupfd; tempfd = open ("NUL", O_RDONLY); if (tempfd == -1) return -1; if (tempfd == desired_fd) { close (tempfd); char path[_MAX_PATH]; if (__libc_Back_ioFHToPath (fd, path, sizeof (path))) return -1; return open(path, O_RDONLY); } dupfd = klibc_dup2dirfd (fd, desired_fd); close (tempfd); return dupfd; } static int klibc_dup2 (int fd, int desired_fd) { int dupfd; struct stat sbuf; dupfd = dup2 (fd, desired_fd); if (dupfd == -1 && errno == ENOTSUP \ && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) { close (desired_fd); return klibc_dup2dirfd (fd, desired_fd); } return dupfd; } # define dup2 klibc_dup2 # endif int rpl_dup2 (int fd, int desired_fd) { int result; # ifdef F_GETFL /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF. On Cygwin 1.5.x, dup2 (1, 1) returns 0. On Cygwin 1.7.17, dup2 (1, -1) dumps core. On Cygwin 1.7.25, dup2 (1, 256) can dump core. On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC. */ # if HAVE_SETDTABLESIZE setdtablesize (desired_fd + 1); # endif if (desired_fd < 0) fd = desired_fd; if (fd == desired_fd) return fcntl (fd, F_GETFL) == -1 ? -1 : fd; # endif result = dup2 (fd, desired_fd); /* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x. */ if (result == -1 && errno == EMFILE) errno = EBADF; # if REPLACE_FCHDIR if (fd != desired_fd && result != -1) result = _gl_register_dup (fd, result); # endif return result; } #else /* !HAVE_DUP2 */ /* On older platforms, dup2 did not exist. */ # ifndef F_DUPFD static int dupfd (int fd, int desired_fd) { int duplicated_fd = dup (fd); if (duplicated_fd < 0 || duplicated_fd == desired_fd) return duplicated_fd; else { int r = dupfd (fd, desired_fd); int e = errno; close (duplicated_fd); errno = e; return r; } } # endif int dup2 (int fd, int desired_fd) { int result = fcntl (fd, F_GETFL) < 0 ? -1 : fd; if (result == -1 || fd == desired_fd) return result; close (desired_fd); # ifdef F_DUPFD result = fcntl (fd, F_DUPFD, desired_fd); # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (fd, result); # endif # else result = dupfd (fd, desired_fd); # endif if (result == -1 && (errno == EMFILE || errno == EINVAL)) errno = EBADF; return result; } #endif /* !HAVE_DUP2 */ gcal-4.1/lib/pipe2-safer.c0000664000000000000000000000271013041163523012202 00000000000000/* Invoke pipe2, but avoid some glitches. Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake. */ #include /* Specification. */ #include "unistd-safer.h" #include #include /* Like pipe2, but ensure that neither of the file descriptors is STDIN_FILENO, STDOUT_FILENO, or STDERR_FILENO. */ int pipe2_safer (int fd[2], int flags) { /* This is a generalization of the pipe_safer implementation. */ if (pipe2 (fd, flags) == 0) { int i; for (i = 0; i < 2; i++) { fd[i] = fd_safer_flag (fd[i], flags); if (fd[i] < 0) { int e = errno; close (fd[1 - i]); errno = e; return -1; } } return 0; } return -1; } gcal-4.1/lib/gettimeofday.c0000664000000000000000000000775113041163522012557 00000000000000/* Provide gettimeofday for systems that don't have it or for which it's broken. Copyright (C) 2001-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* written by Jim Meyering */ #include /* Specification. */ #include #include #if HAVE_SYS_TIMEB_H # include #endif #if GETTIMEOFDAY_CLOBBERS_LOCALTIME || TZSET_CLOBBERS_LOCALTIME /* Work around the bug in some systems whereby gettimeofday clobbers the static buffer that localtime uses for its return value. The gettimeofday function from Mac OS X 10.0.4 (i.e., Darwin 1.3.7) has this problem. The tzset replacement is necessary for at least Solaris 2.5, 2.5.1, and 2.6. */ static struct tm tm_zero_buffer; static struct tm *localtime_buffer_addr = &tm_zero_buffer; # undef localtime extern struct tm *localtime (time_t const *); # undef gmtime extern struct tm *gmtime (time_t const *); /* This is a wrapper for localtime. It is used only on systems for which gettimeofday clobbers the static buffer used for localtime's result. On the first call, record the address of the static buffer that localtime uses for its result. */ struct tm * rpl_localtime (time_t const *timep) { struct tm *tm = localtime (timep); if (localtime_buffer_addr == &tm_zero_buffer) localtime_buffer_addr = tm; return tm; } /* Same as above, since gmtime and localtime use the same buffer. */ struct tm * rpl_gmtime (time_t const *timep) { struct tm *tm = gmtime (timep); if (localtime_buffer_addr == &tm_zero_buffer) localtime_buffer_addr = tm; return tm; } #endif /* GETTIMEOFDAY_CLOBBERS_LOCALTIME || TZSET_CLOBBERS_LOCALTIME */ #if TZSET_CLOBBERS_LOCALTIME # undef tzset extern void tzset (void); /* This is a wrapper for tzset, for systems on which tzset may clobber the static buffer used for localtime's result. */ void rpl_tzset (void) { /* Save and restore the contents of the buffer used for localtime's result around the call to tzset. */ struct tm save = *localtime_buffer_addr; tzset (); *localtime_buffer_addr = save; } #endif /* This is a wrapper for gettimeofday. It is used only on systems that lack this function, or whose implementation of this function causes problems. */ int gettimeofday (struct timeval *restrict tv, void *restrict tz) { #undef gettimeofday #if HAVE_GETTIMEOFDAY # if GETTIMEOFDAY_CLOBBERS_LOCALTIME /* Save and restore the contents of the buffer used for localtime's result around the call to gettimeofday. */ struct tm save = *localtime_buffer_addr; # endif # if defined timeval /* 'struct timeval' overridden by gnulib? */ # undef timeval struct timeval otv; int result = gettimeofday (&otv, (struct timezone *) tz); if (result == 0) { tv->tv_sec = otv.tv_sec; tv->tv_usec = otv.tv_usec; } # else int result = gettimeofday (tv, (struct timezone *) tz); # endif # if GETTIMEOFDAY_CLOBBERS_LOCALTIME *localtime_buffer_addr = save; # endif return result; #else # if HAVE__FTIME struct _timeb timebuf; _ftime (&timebuf); tv->tv_sec = timebuf.time; tv->tv_usec = timebuf.millitm * 1000; # else # if !defined OK_TO_USE_1S_CLOCK # error "Only 1-second nominal clock resolution found. Is that intended?" \ "If so, compile with the -DOK_TO_USE_1S_CLOCK option." # endif tv->tv_sec = time (NULL); tv->tv_usec = 0; # endif return 0; #endif } gcal-4.1/lib/ioctl.c0000664000000000000000000000425713041163522011206 00000000000000/* ioctl.c --- wrappers for Windows ioctl function Copyright (C) 2008-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paolo Bonzini */ #include #include #include #if HAVE_IOCTL /* Provide a wrapper with the POSIX prototype. */ # undef ioctl int rpl_ioctl (int fd, int request, ... /* {void *,char *} arg */) { void *buf; va_list args; va_start (args, request); buf = va_arg (args, void *); va_end (args); /* Cast 'request' so that when the system's ioctl function takes a 64-bit request argument, the value gets zero-extended, not sign-extended. */ return ioctl (fd, (unsigned int) request, buf); } #else /* mingw */ # include /* Get HANDLE. */ # define WIN32_LEAN_AND_MEAN # include # include "fd-hook.h" /* Get _get_osfhandle. */ # include "msvc-nothrow.h" static int primary_ioctl (int fd, int request, void *arg) { /* We don't support FIONBIO on pipes here. If you want to make pipe fds non-blocking, use the gnulib 'nonblocking' module, until gnulib implements fcntl F_GETFL / F_SETFL with O_NONBLOCK. */ if ((HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE) errno = ENOSYS; else errno = EBADF; return -1; } int ioctl (int fd, int request, ... /* {void *,char *} arg */) { void *arg; va_list args; va_start (args, request); arg = va_arg (args, void *); va_end (args); # if WINDOWS_SOCKETS return execute_all_ioctl_hooks (primary_ioctl, fd, request, arg); # else return primary_ioctl (fd, request, arg); # endif } #endif gcal-4.1/lib/raise.c0000664000000000000000000000317313041163523011174 00000000000000/* Provide a non-threads replacement for the POSIX raise function. Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* written by Jim Meyering and Bruno Haible */ #include /* Specification. */ #include #if HAVE_RAISE /* Native Windows platform. */ # include # include "msvc-inval.h" # undef raise # if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int raise_nothrow (int sig) { int result; TRY_MSVC_INVAL { result = raise (sig); } CATCH_MSVC_INVAL { result = -1; errno = EINVAL; } DONE_MSVC_INVAL; return result; } # else # define raise_nothrow raise # endif #else /* An old Unix platform. */ # include # define rpl_raise raise #endif int rpl_raise (int sig) { #if GNULIB_defined_signal_blocking && GNULIB_defined_SIGPIPE if (sig == SIGPIPE) return _gl_raise_SIGPIPE (); #endif #if HAVE_RAISE return raise_nothrow (sig); #else return kill (getpid (), sig); #endif } gcal-4.1/lib/tempname.c0000664000000000000000000002167713041163523011710 00000000000000/* tempname.c - generate the name of a temporary file. Copyright (C) 1991-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Extracted from glibc sysdeps/posix/tempname.c. See also tmpdir.c. */ #if !_LIBC # include # include "tempname.h" #endif #include #include #include #ifndef __set_errno # define __set_errno(Val) errno = (Val) #endif #include #ifndef P_tmpdir # define P_tmpdir "/tmp" #endif #ifndef TMP_MAX # define TMP_MAX 238328 #endif #ifndef __GT_FILE # define __GT_FILE 0 # define __GT_DIR 1 # define __GT_NOCREATE 2 #endif #if !_LIBC && (GT_FILE != __GT_FILE || GT_DIR != __GT_DIR \ || GT_NOCREATE != __GT_NOCREATE) # error report this to bug-gnulib@gnu.org #endif #include #include #include #include #include #include #include #include #if _LIBC # define struct_stat64 struct stat64 #else # define struct_stat64 struct stat # define __try_tempname try_tempname # define __gen_tempname gen_tempname # define __getpid getpid # define __gettimeofday gettimeofday # define __mkdir mkdir # define __open open # define __lxstat64(version, file, buf) lstat (file, buf) # define __secure_getenv secure_getenv #endif #ifdef _LIBC # include # if HP_TIMING_AVAIL # define RANDOM_BITS(Var) \ if (__builtin_expect (value == UINT64_C (0), 0)) \ { \ /* If this is the first time this function is used initialize \ the variable we accumulate the value in to some somewhat \ random value. If we'd not do this programs at startup time \ might have a reduced set of possible names, at least on slow \ machines. */ \ struct timeval tv; \ __gettimeofday (&tv, NULL); \ value = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec; \ } \ HP_TIMING_NOW (Var) # endif #endif /* Use the widest available unsigned type if uint64_t is not available. The algorithm below extracts a number less than 62**6 (approximately 2**35.725) from uint64_t, so ancient hosts where uintmax_t is only 32 bits lose about 3.725 bits of randomness, which is better than not having mkstemp at all. */ #if !defined UINT64_MAX && !defined uint64_t # define uint64_t uintmax_t #endif #if _LIBC /* Return nonzero if DIR is an existent directory. */ static int direxists (const char *dir) { struct_stat64 buf; return __xstat64 (_STAT_VER, dir, &buf) == 0 && S_ISDIR (buf.st_mode); } /* Path search algorithm, for tmpnam, tmpfile, etc. If DIR is non-null and exists, uses it; otherwise uses the first of $TMPDIR, P_tmpdir, /tmp that exists. Copies into TMPL a template suitable for use with mk[s]temp. Will fail (-1) if DIR is non-null and doesn't exist, none of the searched dirs exists, or there's not enough space in TMPL. */ int __path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx, int try_tmpdir) { const char *d; size_t dlen, plen; if (!pfx || !pfx[0]) { pfx = "file"; plen = 4; } else { plen = strlen (pfx); if (plen > 5) plen = 5; } if (try_tmpdir) { d = __secure_getenv ("TMPDIR"); if (d != NULL && direxists (d)) dir = d; else if (dir != NULL && direxists (dir)) /* nothing */ ; else dir = NULL; } if (dir == NULL) { if (direxists (P_tmpdir)) dir = P_tmpdir; else if (strcmp (P_tmpdir, "/tmp") != 0 && direxists ("/tmp")) dir = "/tmp"; else { __set_errno (ENOENT); return -1; } } dlen = strlen (dir); while (dlen > 1 && dir[dlen - 1] == '/') dlen--; /* remove trailing slashes */ /* check we have room for "${dir}/${pfx}XXXXXX\0" */ if (tmpl_len < dlen + 1 + plen + 6 + 1) { __set_errno (EINVAL); return -1; } sprintf (tmpl, "%.*s/%.*sXXXXXX", (int) dlen, dir, (int) plen, pfx); return 0; } #endif /* _LIBC */ /* These are the characters used in temporary file names. */ static const char letters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; int __try_tempname (char *tmpl, int suffixlen, void *args, int (*tryfunc) (char *, void *)) { int len; char *XXXXXX; static uint64_t value; uint64_t random_time_bits; unsigned int count; int fd = -1; int save_errno = errno; /* A lower bound on the number of temporary files to attempt to generate. The maximum total number of temporary file names that can exist for a given template is 62**6. It should never be necessary to try all of these combinations. Instead if a reasonable number of names is tried (we define reasonable as 62**3) fail to give the system administrator the chance to remove the problems. */ #define ATTEMPTS_MIN (62 * 62 * 62) /* The number of times to attempt to generate a temporary file. To conform to POSIX, this must be no smaller than TMP_MAX. */ #if ATTEMPTS_MIN < TMP_MAX unsigned int attempts = TMP_MAX; #else unsigned int attempts = ATTEMPTS_MIN; #endif len = strlen (tmpl); if (len < 6 + suffixlen || memcmp (&tmpl[len - 6 - suffixlen], "XXXXXX", 6)) { __set_errno (EINVAL); return -1; } /* This is where the Xs start. */ XXXXXX = &tmpl[len - 6 - suffixlen]; /* Get some more or less random data. */ #ifdef RANDOM_BITS RANDOM_BITS (random_time_bits); #else { struct timeval tv; __gettimeofday (&tv, NULL); random_time_bits = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec; } #endif value += random_time_bits ^ __getpid (); for (count = 0; count < attempts; value += 7777, ++count) { uint64_t v = value; /* Fill in the random bits. */ XXXXXX[0] = letters[v % 62]; v /= 62; XXXXXX[1] = letters[v % 62]; v /= 62; XXXXXX[2] = letters[v % 62]; v /= 62; XXXXXX[3] = letters[v % 62]; v /= 62; XXXXXX[4] = letters[v % 62]; v /= 62; XXXXXX[5] = letters[v % 62]; fd = tryfunc (tmpl, args); if (fd >= 0) { __set_errno (save_errno); return fd; } else if (errno != EEXIST) return -1; } /* We got out of the loop because we ran out of combinations to try. */ __set_errno (EEXIST); return -1; } static int try_file (char *tmpl, void *flags) { int *openflags = flags; return __open (tmpl, (*openflags & ~O_ACCMODE) | O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); } static int try_dir (char *tmpl, void *flags _GL_UNUSED) { return __mkdir (tmpl, S_IRUSR | S_IWUSR | S_IXUSR); } static int try_nocreate (char *tmpl, void *flags _GL_UNUSED) { struct_stat64 st; if (__lxstat64 (_STAT_VER, tmpl, &st) == 0) __set_errno (EEXIST); return errno == ENOENT ? 0 : -1; } /* Generate a temporary file name based on TMPL. TMPL must match the rules for mk[s]temp (i.e. end in "XXXXXX", possibly with a suffix). The name constructed does not exist at the time of the call to __gen_tempname. TMPL is overwritten with the result. KIND may be one of: __GT_NOCREATE: simply verify that the name does not exist at the time of the call. __GT_FILE: create the file using open(O_CREAT|O_EXCL) and return a read-write fd. The file is mode 0600. __GT_DIR: create a directory, which will be mode 0700. We use a clever algorithm to get hard-to-predict names. */ int __gen_tempname (char *tmpl, int suffixlen, int flags, int kind) { int (*tryfunc) (char *, void *); switch (kind) { case __GT_FILE: tryfunc = try_file; break; case __GT_DIR: tryfunc = try_dir; break; case __GT_NOCREATE: tryfunc = try_nocreate; break; default: assert (! "invalid KIND in __gen_tempname"); abort (); } return __try_tempname (tmpl, suffixlen, &flags, tryfunc); } gcal-4.1/lib/error.c0000664000000000000000000002431613041163522011223 00000000000000/* Error handler for noninteractive utilities Copyright (C) 1990-1998, 2000-2007, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by David MacKenzie . */ #if !_LIBC # include #endif #include "error.h" #include #include #include #include #if !_LIBC && ENABLE_NLS # include "gettext.h" # define _(msgid) gettext (msgid) #endif #ifdef _LIBC # include # include # include # include # define mbsrtowcs __mbsrtowcs # define USE_UNLOCKED_IO 0 # define _GL_ATTRIBUTE_FORMAT_PRINTF(a, b) # define _GL_ARG_NONNULL(a) #else # include "getprogname.h" #endif #if USE_UNLOCKED_IO # include "unlocked-io.h" #endif #ifndef _ # define _(String) String #endif /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this function without parameters instead. */ void (*error_print_progname) (void); /* This variable is incremented each time 'error' is called. */ unsigned int error_message_count; #ifdef _LIBC /* In the GNU C library, there is a predefined variable for this. */ # define program_name program_invocation_name # include # include # include /* In GNU libc we want do not want to use the common name 'error' directly. Instead make it a weak alias. */ extern void __error (int status, int errnum, const char *message, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern void __error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) __attribute__ ((__format__ (__printf__, 5, 6))); # define error __error # define error_at_line __error_at_line # include # define fflush(s) _IO_fflush (s) # undef putc # define putc(c, fp) _IO_putc (c, fp) # include #else /* not _LIBC */ # include # include # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include /* Get _get_osfhandle. */ # include "msvc-nothrow.h" # endif /* The gnulib override of fcntl is not needed in this file. */ # undef fcntl # if !HAVE_DECL_STRERROR_R # ifndef HAVE_DECL_STRERROR_R "this configure-time declaration test was not run" # endif # if STRERROR_R_CHAR_P char *strerror_r (); # else int strerror_r (); # endif # endif #define program_name getprogname () # if HAVE_STRERROR_R || defined strerror_r # define __strerror_r strerror_r # endif /* HAVE_STRERROR_R || defined strerror_r */ #endif /* not _LIBC */ #if !_LIBC /* Return non-zero if FD is open. */ static int is_open (int fd) { # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* On native Windows: The initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE. There is no fcntl, and the gnulib replacement fcntl does not support F_GETFL. */ return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE; # else # ifndef F_GETFL # error Please port fcntl to your platform # endif return 0 <= fcntl (fd, F_GETFL); # endif } #endif static void flush_stdout (void) { #if !_LIBC int stdout_fd; # if GNULIB_FREOPEN_SAFER /* Use of gnulib's freopen-safer module normally ensures that fileno (stdout) == 1 whenever stdout is open. */ stdout_fd = STDOUT_FILENO; # else /* POSIX states that fileno (stdout) after fclose is unspecified. But in practice it is not a problem, because stdout is statically allocated and the fd of a FILE stream is stored as a field in its allocated memory. */ stdout_fd = fileno (stdout); # endif /* POSIX states that fflush (stdout) after fclose is unspecified; it is safe in glibc, but not on all other platforms. fflush (NULL) is always defined, but too draconian. */ if (0 <= stdout_fd && is_open (stdout_fd)) #endif fflush (stdout); } static void print_errno_message (int errnum) { char const *s; #if defined HAVE_STRERROR_R || _LIBC char errbuf[1024]; # if _LIBC || STRERROR_R_CHAR_P s = __strerror_r (errnum, errbuf, sizeof errbuf); # else if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) s = errbuf; else s = 0; # endif #else s = strerror (errnum); #endif #if !_LIBC if (! s) s = _("Unknown system error"); #endif #if _LIBC __fxprintf (NULL, ": %s", s); #else fprintf (stderr, ": %s", s); #endif } static void _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3)) error_tail (int status, int errnum, const char *message, va_list args) { #if _LIBC if (_IO_fwide (stderr, 0) > 0) { size_t len = strlen (message) + 1; wchar_t *wmessage = NULL; mbstate_t st; size_t res; const char *tmp; bool use_malloc = false; while (1) { if (__libc_use_alloca (len * sizeof (wchar_t))) wmessage = (wchar_t *) alloca (len * sizeof (wchar_t)); else { if (!use_malloc) wmessage = NULL; wchar_t *p = (wchar_t *) realloc (wmessage, len * sizeof (wchar_t)); if (p == NULL) { free (wmessage); fputws_unlocked (L"out of memory\n", stderr); return; } wmessage = p; use_malloc = true; } memset (&st, '\0', sizeof (st)); tmp = message; res = mbsrtowcs (wmessage, &tmp, len, &st); if (res != len) break; if (__builtin_expect (len >= SIZE_MAX / sizeof (wchar_t) / 2, 0)) { /* This really should not happen if everything is fine. */ res = (size_t) -1; break; } len *= 2; } if (res == (size_t) -1) { /* The string cannot be converted. */ if (use_malloc) { free (wmessage); use_malloc = false; } wmessage = (wchar_t *) L"???"; } __vfwprintf (stderr, wmessage, args); if (use_malloc) free (wmessage); } else #endif vfprintf (stderr, message, args); va_end (args); ++error_message_count; if (errnum) print_errno_message (errnum); #if _LIBC __fxprintf (NULL, "\n"); #else putc ('\n', stderr); #endif fflush (stderr); if (status) exit (status); } /* Print the program name and error message MESSAGE, which is a printf-style format string with optional args. If ERRNUM is nonzero, print its corresponding system error message. Exit with status STATUS if it is nonzero. */ void error (int status, int errnum, const char *message, ...) { va_list args; #if defined _LIBC && defined __libc_ptf_call /* We do not want this call to be cut short by a thread cancellation. Therefore disable cancellation for now. */ int state = PTHREAD_CANCEL_ENABLE; __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), 0); #endif flush_stdout (); #ifdef _LIBC _IO_flockfile (stderr); #endif if (error_print_progname) (*error_print_progname) (); else { #if _LIBC __fxprintf (NULL, "%s: ", program_name); #else fprintf (stderr, "%s: ", program_name); #endif } va_start (args, message); error_tail (status, errnum, message, args); #ifdef _LIBC _IO_funlockfile (stderr); # ifdef __libc_ptf_call __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); # endif #endif } /* Sometimes we want to have at most one error per line. This variable controls whether this mode is selected or not. */ int error_one_per_line; void error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) { va_list args; if (error_one_per_line) { static const char *old_file_name; static unsigned int old_line_number; if (old_line_number == line_number && (file_name == old_file_name || (old_file_name != NULL && file_name != NULL && strcmp (old_file_name, file_name) == 0))) /* Simply return and print nothing. */ return; old_file_name = file_name; old_line_number = line_number; } #if defined _LIBC && defined __libc_ptf_call /* We do not want this call to be cut short by a thread cancellation. Therefore disable cancellation for now. */ int state = PTHREAD_CANCEL_ENABLE; __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), 0); #endif flush_stdout (); #ifdef _LIBC _IO_flockfile (stderr); #endif if (error_print_progname) (*error_print_progname) (); else { #if _LIBC __fxprintf (NULL, "%s:", program_name); #else fprintf (stderr, "%s:", program_name); #endif } #if _LIBC __fxprintf (NULL, file_name != NULL ? "%s:%u: " : " ", file_name, line_number); #else fprintf (stderr, file_name != NULL ? "%s:%u: " : " ", file_name, line_number); #endif va_start (args, message); error_tail (status, errnum, message, args); #ifdef _LIBC _IO_funlockfile (stderr); # ifdef __libc_ptf_call __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); # endif #endif } #ifdef _LIBC /* Make the weak alias. */ # undef error # undef error_at_line weak_alias (__error, error) weak_alias (__error_at_line, error_at_line) #endif gcal-4.1/lib/strchrnul.c0000664000000000000000000001301513041163523012111 00000000000000/* Searching in a string. Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include /* Find the first occurrence of C in S or the final NUL byte. */ char * strchrnul (const char *s, int c_in) { /* On 32-bit hardware, choosing longword to be a 32-bit unsigned long instead of a 64-bit uintmax_t tends to give better performance. On 64-bit hardware, unsigned long is generally 64 bits already. Change this typedef to experiment with performance. */ typedef unsigned long int longword; const unsigned char *char_ptr; const longword *longword_ptr; longword repeated_one; longword repeated_c; unsigned char c; c = (unsigned char) c_in; if (!c) return rawmemchr (s, 0); /* Handle the first few bytes by reading one byte at a time. Do this until CHAR_PTR is aligned on a longword boundary. */ for (char_ptr = (const unsigned char *) s; (size_t) char_ptr % sizeof (longword) != 0; ++char_ptr) if (!*char_ptr || *char_ptr == c) return (char *) char_ptr; longword_ptr = (const longword *) char_ptr; /* All these elucidatory comments refer to 4-byte longwords, but the theory applies equally well to any size longwords. */ /* Compute auxiliary longword values: repeated_one is a value which has a 1 in every byte. repeated_c has c in every byte. */ repeated_one = 0x01010101; repeated_c = c | (c << 8); repeated_c |= repeated_c << 16; if (0xffffffffU < (longword) -1) { repeated_one |= repeated_one << 31 << 1; repeated_c |= repeated_c << 31 << 1; if (8 < sizeof (longword)) { size_t i; for (i = 64; i < sizeof (longword) * 8; i *= 2) { repeated_one |= repeated_one << i; repeated_c |= repeated_c << i; } } } /* Instead of the traditional loop which tests each byte, we will test a longword at a time. The tricky part is testing if *any of the four* bytes in the longword in question are equal to NUL or c. We first use an xor with repeated_c. This reduces the task to testing whether *any of the four* bytes in longword1 or longword2 is zero. Let's consider longword1. We compute tmp = ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7). That is, we perform the following operations: 1. Subtract repeated_one. 2. & ~longword1. 3. & a mask consisting of 0x80 in every byte. Consider what happens in each byte: - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, and step 3 transforms it into 0x80. A carry can also be propagated to more significant bytes. - If a byte of longword1 is nonzero, let its lowest 1 bit be at position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, the byte ends in a single bit of value 0 and k bits of value 1. After step 2, the result is just k bits of value 1: 2^k - 1. After step 3, the result is 0. And no carry is produced. So, if longword1 has only non-zero bytes, tmp is zero. Whereas if longword1 has a zero byte, call j the position of the least significant zero byte. Then the result has a zero at positions 0, ..., j-1 and a 0x80 at position j. We cannot predict the result at the more significant bytes (positions j+1..3), but it does not matter since we already have a non-zero bit at position 8*j+7. The test whether any byte in longword1 or longword2 is zero is equivalent to testing whether tmp1 is nonzero or tmp2 is nonzero. We can combine this into a single test, whether (tmp1 | tmp2) is nonzero. This test can read more than one byte beyond the end of a string, depending on where the terminating NUL is encountered. However, this is considered safe since the initialization phase ensured that the read will be aligned, therefore, the read will not cross page boundaries and will not cause a fault. */ while (1) { longword longword1 = *longword_ptr ^ repeated_c; longword longword2 = *longword_ptr; if (((((longword1 - repeated_one) & ~longword1) | ((longword2 - repeated_one) & ~longword2)) & (repeated_one << 7)) != 0) break; longword_ptr++; } char_ptr = (const unsigned char *) longword_ptr; /* At this point, we know that one of the sizeof (longword) bytes starting at char_ptr is == 0 or == c. On little-endian machines, we could determine the first such byte without any further memory accesses, just by looking at the tmp result from the last loop iteration. But this does not work on big-endian machines. Choose code that works in both cases. */ char_ptr = (unsigned char *) longword_ptr; while (*char_ptr && (*char_ptr != c)) char_ptr++; return (char *) char_ptr; } gcal-4.1/lib/stdio.in.h0000664000000000000000000014433713041163523011635 00000000000000/* A GNU-like . Copyright (C) 2004, 2007-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H /* Special invocation convention: - Inside glibc header files. - On OSF/1 5.1 we have a sequence of nested includes -> -> -> -> -> -> -> . In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_STDIO_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDIO_H #define _GL_ALREADY_INCLUDING_STDIO_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDIO_H@ #undef _GL_ALREADY_INCLUDING_STDIO_H #ifndef _@GUARD_PREFIX@_STDIO_H #define _@GUARD_PREFIX@_STDIO_H /* Get va_list. Needed on many systems, including glibc 2.8. */ #include #include /* Get off_t and ssize_t. Needed on many systems, including glibc 2.8 and eglibc 2.11.2. May also define off_t to a 64-bit type on native Windows. */ #include /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) #else # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ #endif /* _GL_ATTRIBUTE_FORMAT_PRINTF indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument)) #else # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) #endif /* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF, except that it indicates to GCC that the supported format string directives are the ones of the system printf(), rather than the ones standardized by ISO C99 and POSIX. */ #if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU # define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT_PRINTF (formatstring_parameter, first_argument) #else # define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) #endif /* _GL_ATTRIBUTE_FORMAT_SCANF indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument)) #else # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) #endif /* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF, except that it indicates to GCC that the supported format string directives are the ones of the system scanf(), rather than the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) /* Solaris 10 declares renameat in , not in . */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \ && ! defined __GLIBC__ # include #endif /* MSVC declares 'perror' in , not in . We must include it before we #define perror rpl_perror. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include #endif /* MSVC declares 'remove' in , not in . We must include it before we #define remove rpl_remove. */ /* MSVC declares 'rename' in , not in . We must include it before we #define rename rpl_rename. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Macros for stringification. */ #define _GL_STDIO_STRINGIZE(token) #token #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) /* When also using extern inline, suppress the use of static inline in standard headers of problematic Apple configurations, as Libc at least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., . Perhaps Apple will fix this some day. */ #if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ && defined __GNUC__ && defined __STDC__) # undef putc_unlocked #endif #if @GNULIB_DPRINTF@ # if @REPLACE_DPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dprintf rpl_dprintf # endif _GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...)); # else # if !@HAVE_DPRINTF@ _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...)); # endif _GL_CXXALIASWARN (dprintf); #elif defined GNULIB_POSIXCHECK # undef dprintf # if HAVE_RAW_DECL_DPRINTF _GL_WARN_ON_USE (dprintf, "dprintf is unportable - " "use gnulib module dprintf for portability"); # endif #endif #if @GNULIB_FCLOSE@ /* Close STREAM and its underlying file descriptor. */ # if @REPLACE_FCLOSE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fclose rpl_fclose # endif _GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fclose, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); # endif _GL_CXXALIASWARN (fclose); #elif defined GNULIB_POSIXCHECK # undef fclose /* Assume fclose is always declared. */ _GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - " "use gnulib module fclose for portable POSIX compliance"); #endif #if @GNULIB_FDOPEN@ # if @REPLACE_FDOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdopen # define fdopen rpl_fdopen # endif _GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); # else _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); # endif _GL_CXXALIASWARN (fdopen); #elif defined GNULIB_POSIXCHECK # undef fdopen /* Assume fdopen is always declared. */ _GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " "use gnulib module fdopen for portability"); #endif #if @GNULIB_FFLUSH@ /* Flush all pending data on STREAM according to POSIX rules. Both output and seekable input streams are supported. Note! LOSS OF DATA can occur if fflush is applied on an input stream that is _not_seekable_ or on an update stream that is _not_seekable_ and in which the most recent operation was input. Seekability can be tested with lseek(fileno(fp),0,SEEK_CUR). */ # if @REPLACE_FFLUSH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fflush rpl_fflush # endif _GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream)); _GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream)); # else _GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); # endif _GL_CXXALIASWARN (fflush); #elif defined GNULIB_POSIXCHECK # undef fflush /* Assume fflush is always declared. */ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " "use gnulib module fflush for portable POSIX compliance"); #endif #if @GNULIB_FGETC@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fgetc # define fgetc rpl_fgetc # endif _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); # endif _GL_CXXALIASWARN (fgetc); #endif #if @GNULIB_FGETS@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fgets # define fgets rpl_fgets # endif _GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream) _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream)); # else _GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream)); # endif _GL_CXXALIASWARN (fgets); #endif #if @GNULIB_FOPEN@ # if @REPLACE_FOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fopen # define fopen rpl_fopen # endif _GL_FUNCDECL_RPL (fopen, FILE *, (const char *filename, const char *mode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fopen, FILE *, (const char *filename, const char *mode)); # else _GL_CXXALIAS_SYS (fopen, FILE *, (const char *filename, const char *mode)); # endif _GL_CXXALIASWARN (fopen); #elif defined GNULIB_POSIXCHECK # undef fopen /* Assume fopen is always declared. */ _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " "use gnulib module fopen for portability"); #endif #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ # if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \ || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fprintf rpl_fprintf # endif # define GNULIB_overrides_fprintf 1 # if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # else _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...)); # else _GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...)); # endif _GL_CXXALIASWARN (fprintf); #endif #if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_fprintf # undef fprintf # endif /* Assume fprintf is always declared. */ _GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - " "use gnulib module fprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_FPURGE@ /* Discard all pending buffered I/O data on STREAM. STREAM must not be wide-character oriented. When discarding pending output, the file position is set back to where it was before the write calls. When discarding pending input, the file position is advanced to match the end of the previously read input. Return 0 if successful. Upon error, return -1 and set errno. */ # if @REPLACE_FPURGE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fpurge rpl_fpurge # endif _GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream)); # else # if !@HAVE_DECL_FPURGE@ _GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream)); # endif _GL_CXXALIASWARN (fpurge); #elif defined GNULIB_POSIXCHECK # undef fpurge # if HAVE_RAW_DECL_FPURGE _GL_WARN_ON_USE (fpurge, "fpurge is not always present - " "use gnulib module fpurge for portability"); # endif #endif #if @GNULIB_FPUTC@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputc # define fputc rpl_fputc # endif _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); # endif _GL_CXXALIASWARN (fputc); #endif #if @GNULIB_FPUTS@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputs # define fputs rpl_fputs # endif _GL_FUNCDECL_RPL (fputs, int, (const char *string, FILE *stream) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fputs, int, (const char *string, FILE *stream)); # else _GL_CXXALIAS_SYS (fputs, int, (const char *string, FILE *stream)); # endif _GL_CXXALIASWARN (fputs); #endif #if @GNULIB_FREAD@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fread # define fread rpl_fread # endif _GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream) _GL_ARG_NONNULL ((4))); _GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); # else _GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); # endif _GL_CXXALIASWARN (fread); #endif #if @GNULIB_FREOPEN@ # if @REPLACE_FREOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef freopen # define freopen rpl_freopen # endif _GL_FUNCDECL_RPL (freopen, FILE *, (const char *filename, const char *mode, FILE *stream) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (freopen, FILE *, (const char *filename, const char *mode, FILE *stream)); # else _GL_CXXALIAS_SYS (freopen, FILE *, (const char *filename, const char *mode, FILE *stream)); # endif _GL_CXXALIASWARN (freopen); #elif defined GNULIB_POSIXCHECK # undef freopen /* Assume freopen is always declared. */ _GL_WARN_ON_USE (freopen, "freopen on native Windows platforms is not POSIX compliant - " "use gnulib module freopen for portability"); #endif #if @GNULIB_FSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fscanf # define fscanf rpl_fscanf # endif _GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...)); # else _GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...)); # endif _GL_CXXALIASWARN (fscanf); #endif /* Set up the following warnings, based on which modules are in use. GNU Coding Standards discourage the use of fseek, since it imposes an arbitrary limitation on some 32-bit hosts. Remember that the fseek module depends on the fseeko module, so we only have three cases to consider: 1. The developer is not using either module. Issue a warning under GNULIB_POSIXCHECK for both functions, to remind them that both functions have bugs on some systems. _GL_NO_LARGE_FILES has no impact on this warning. 2. The developer is using both modules. They may be unaware of the arbitrary limitations of fseek, so issue a warning under GNULIB_POSIXCHECK. On the other hand, they may be using both modules intentionally, so the developer can define _GL_NO_LARGE_FILES in the compilation units where the use of fseek is safe, to silence the warning. 3. The developer is using the fseeko module, but not fseek. Gnulib guarantees that fseek will still work around platform bugs in that case, but we presume that the developer is aware of the pitfalls of fseek and was trying to avoid it, so issue a warning even when GNULIB_POSIXCHECK is undefined. Again, _GL_NO_LARGE_FILES can be defined to silence the warning in particular compilation units. In C++ compilations with GNULIB_NAMESPACE, in order to avoid that fseek gets defined as a macro, it is recommended that the developer uses the fseek module, even if he is not calling the fseek function. Most gnulib clients that perform stream operations should fall into category 3. */ #if @GNULIB_FSEEK@ # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES # define _GL_FSEEK_WARN /* Category 2, above. */ # undef fseek # endif # if @REPLACE_FSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fseek # define fseek rpl_fseek # endif _GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence)); # else _GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); # endif _GL_CXXALIASWARN (fseek); #endif #if @GNULIB_FSEEKO@ # if !@GNULIB_FSEEK@ && !defined _GL_NO_LARGE_FILES # define _GL_FSEEK_WARN /* Category 3, above. */ # undef fseek # endif # if @REPLACE_FSEEKO@ /* Provide an fseeko function that is aware of a preceding fflush(), and which detects pipes. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fseeko # define fseeko rpl_fseeko # endif _GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)); # else # if ! @HAVE_DECL_FSEEKO@ _GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)); # endif _GL_CXXALIASWARN (fseeko); #elif defined GNULIB_POSIXCHECK # define _GL_FSEEK_WARN /* Category 1, above. */ # undef fseek # undef fseeko # if HAVE_RAW_DECL_FSEEKO _GL_WARN_ON_USE (fseeko, "fseeko is unportable - " "use gnulib module fseeko for portability"); # endif #endif #ifdef _GL_FSEEK_WARN # undef _GL_FSEEK_WARN /* Here, either fseek is undefined (but C89 guarantees that it is declared), or it is defined as rpl_fseek (declared above). */ _GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB " "on 32-bit platforms - " "use fseeko function for handling of large files"); #endif /* ftell, ftello. See the comments on fseek/fseeko. */ #if @GNULIB_FTELL@ # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES # define _GL_FTELL_WARN /* Category 2, above. */ # undef ftell # endif # if @REPLACE_FTELL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftell # define ftell rpl_ftell # endif _GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); # else _GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); # endif _GL_CXXALIASWARN (ftell); #endif #if @GNULIB_FTELLO@ # if !@GNULIB_FTELL@ && !defined _GL_NO_LARGE_FILES # define _GL_FTELL_WARN /* Category 3, above. */ # undef ftell # endif # if @REPLACE_FTELLO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftello # define ftello rpl_ftello # endif _GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp)); # else # if ! @HAVE_DECL_FTELLO@ _GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp)); # endif _GL_CXXALIASWARN (ftello); #elif defined GNULIB_POSIXCHECK # define _GL_FTELL_WARN /* Category 1, above. */ # undef ftell # undef ftello # if HAVE_RAW_DECL_FTELLO _GL_WARN_ON_USE (ftello, "ftello is unportable - " "use gnulib module ftello for portability"); # endif #endif #ifdef _GL_FTELL_WARN # undef _GL_FTELL_WARN /* Here, either ftell is undefined (but C89 guarantees that it is declared), or it is defined as rpl_ftell (declared above). */ _GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB " "on 32-bit platforms - " "use ftello function for handling of large files"); #endif #if @GNULIB_FWRITE@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fwrite # define fwrite rpl_fwrite # endif _GL_FUNCDECL_RPL (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream) _GL_ARG_NONNULL ((1, 4))); _GL_CXXALIAS_RPL (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream)); # else _GL_CXXALIAS_SYS (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream)); /* Work around bug 11959 when fortifying glibc 2.4 through 2.15 , which sometimes causes an unwanted diagnostic for fwrite calls. This affects only function declaration attributes under certain versions of gcc and clang, and is not needed for C++. */ # if (0 < __USE_FORTIFY_LEVEL \ && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \ && 3 < __GNUC__ + (4 <= __GNUC_MINOR__) \ && !defined __cplusplus) # undef fwrite # undef fwrite_unlocked extern size_t __REDIRECT (rpl_fwrite, (const void *__restrict, size_t, size_t, FILE *__restrict), fwrite); extern size_t __REDIRECT (rpl_fwrite_unlocked, (const void *__restrict, size_t, size_t, FILE *__restrict), fwrite_unlocked); # define fwrite rpl_fwrite # define fwrite_unlocked rpl_fwrite_unlocked # endif # endif _GL_CXXALIASWARN (fwrite); #endif #if @GNULIB_GETC@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getc # define getc rpl_fgetc # endif _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (getc, int, (FILE *stream)); # endif _GL_CXXALIASWARN (getc); #endif #if @GNULIB_GETCHAR@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getchar # define getchar rpl_getchar # endif _GL_FUNCDECL_RPL (getchar, int, (void)); _GL_CXXALIAS_RPL (getchar, int, (void)); # else _GL_CXXALIAS_SYS (getchar, int, (void)); # endif _GL_CXXALIASWARN (getchar); #endif #if @GNULIB_GETDELIM@ /* Read input, up to (and including) the next occurrence of DELIMITER, from STREAM, store it in *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE bytes of space. It is realloc'd as necessary. Return the number of bytes read and stored at *LINEPTR (not including the NUL terminator), or -1 on error or EOF. */ # if @REPLACE_GETDELIM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdelim # define getdelim rpl_getdelim # endif _GL_FUNCDECL_RPL (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream) _GL_ARG_NONNULL ((1, 2, 4))); _GL_CXXALIAS_RPL (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream)); # else # if !@HAVE_DECL_GETDELIM@ _GL_FUNCDECL_SYS (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream) _GL_ARG_NONNULL ((1, 2, 4))); # endif _GL_CXXALIAS_SYS (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream)); # endif _GL_CXXALIASWARN (getdelim); #elif defined GNULIB_POSIXCHECK # undef getdelim # if HAVE_RAW_DECL_GETDELIM _GL_WARN_ON_USE (getdelim, "getdelim is unportable - " "use gnulib module getdelim for portability"); # endif #endif #if @GNULIB_GETLINE@ /* Read a line, up to (and including) the next newline, from STREAM, store it in *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE bytes of space. It is realloc'd as necessary. Return the number of bytes read and stored at *LINEPTR (not including the NUL terminator), or -1 on error or EOF. */ # if @REPLACE_GETLINE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getline # define getline rpl_getline # endif _GL_FUNCDECL_RPL (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream) _GL_ARG_NONNULL ((1, 2, 3))); _GL_CXXALIAS_RPL (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream)); # else # if !@HAVE_DECL_GETLINE@ _GL_FUNCDECL_SYS (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream)); # endif # if @HAVE_DECL_GETLINE@ _GL_CXXALIASWARN (getline); # endif #elif defined GNULIB_POSIXCHECK # undef getline # if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is unportable - " "use gnulib module getline for portability"); # endif #endif /* It is very rare that the developer ever has full control of stdin, so any use of gets warrants an unconditional warning; besides, C11 removed it. */ #undef gets #if HAVE_RAW_DECL_GETS && !defined __cplusplus _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); #endif #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ struct obstack; /* Grow an obstack with formatted output. Return the number of bytes added to OBS. No trailing nul byte is added, and the object should be closed with obstack_finish before use. Upon memory allocation error, call obstack_alloc_failed_handler. Upon other error, return -1. */ # if @REPLACE_OBSTACK_PRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define obstack_printf rpl_obstack_printf # endif _GL_FUNCDECL_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...)); # else # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...)); # endif _GL_CXXALIASWARN (obstack_printf); # if @REPLACE_OBSTACK_PRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define obstack_vprintf rpl_obstack_vprintf # endif _GL_FUNCDECL_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); # else # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); # endif _GL_CXXALIASWARN (obstack_vprintf); #endif #if @GNULIB_PCLOSE@ # if !@HAVE_PCLOSE@ _GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pclose, int, (FILE *stream)); _GL_CXXALIASWARN (pclose); #elif defined GNULIB_POSIXCHECK # undef pclose # if HAVE_RAW_DECL_PCLOSE _GL_WARN_ON_USE (pclose, "pclose is unportable - " "use gnulib module pclose for more portability"); # endif #endif #if @GNULIB_PERROR@ /* Print a message to standard error, describing the value of ERRNO, (if STRING is not NULL and not empty) prefixed with STRING and ": ", and terminated with a newline. */ # if @REPLACE_PERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define perror rpl_perror # endif _GL_FUNCDECL_RPL (perror, void, (const char *string)); _GL_CXXALIAS_RPL (perror, void, (const char *string)); # else _GL_CXXALIAS_SYS (perror, void, (const char *string)); # endif _GL_CXXALIASWARN (perror); #elif defined GNULIB_POSIXCHECK # undef perror /* Assume perror is always declared. */ _GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " "use gnulib module perror for portability"); #endif #if @GNULIB_POPEN@ # if @REPLACE_POPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef popen # define popen rpl_popen # endif _GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); # else # if !@HAVE_POPEN@ _GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); # endif _GL_CXXALIASWARN (popen); #elif defined GNULIB_POSIXCHECK # undef popen # if HAVE_RAW_DECL_POPEN _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " "use gnulib module popen or pipe for more portability"); # endif #endif #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if defined __GNUC__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) /* Don't break __attribute__((format(printf,M,N))). */ # define printf __printf__ # endif # if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define printf rpl_printf # endif _GL_FUNCDECL_RPL (printf, int, (const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (printf, int, (const char *format, ...)); # endif # define GNULIB_overrides_printf 1 # else _GL_CXXALIAS_SYS (printf, int, (const char *format, ...)); # endif _GL_CXXALIASWARN (printf); #endif #if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_printf # undef printf # endif /* Assume printf is always declared. */ _GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - " "use gnulib module printf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_PUTC@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putc # define putc rpl_fputc # endif _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); # endif _GL_CXXALIASWARN (putc); #endif #if @GNULIB_PUTCHAR@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putchar # define putchar rpl_putchar # endif _GL_FUNCDECL_RPL (putchar, int, (int c)); _GL_CXXALIAS_RPL (putchar, int, (int c)); # else _GL_CXXALIAS_SYS (putchar, int, (int c)); # endif _GL_CXXALIASWARN (putchar); #endif #if @GNULIB_PUTS@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef puts # define puts rpl_puts # endif _GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (puts, int, (const char *string)); # else _GL_CXXALIAS_SYS (puts, int, (const char *string)); # endif _GL_CXXALIASWARN (puts); #endif #if @GNULIB_REMOVE@ # if @REPLACE_REMOVE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef remove # define remove rpl_remove # endif _GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (remove, int, (const char *name)); # else _GL_CXXALIAS_SYS (remove, int, (const char *name)); # endif _GL_CXXALIASWARN (remove); #elif defined GNULIB_POSIXCHECK # undef remove /* Assume remove is always declared. */ _GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - " "use gnulib module remove for more portability"); #endif #if @GNULIB_RENAME@ # if @REPLACE_RENAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef rename # define rename rpl_rename # endif _GL_FUNCDECL_RPL (rename, int, (const char *old_filename, const char *new_filename) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (rename, int, (const char *old_filename, const char *new_filename)); # else _GL_CXXALIAS_SYS (rename, int, (const char *old_filename, const char *new_filename)); # endif _GL_CXXALIASWARN (rename); #elif defined GNULIB_POSIXCHECK # undef rename /* Assume rename is always declared. */ _GL_WARN_ON_USE (rename, "rename is buggy on some platforms - " "use gnulib module rename for more portability"); #endif #if @GNULIB_RENAMEAT@ # if @REPLACE_RENAMEAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef renameat # define renameat rpl_renameat # endif _GL_FUNCDECL_RPL (renameat, int, (int fd1, char const *file1, int fd2, char const *file2) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (renameat, int, (int fd1, char const *file1, int fd2, char const *file2)); # else # if !@HAVE_RENAMEAT@ _GL_FUNCDECL_SYS (renameat, int, (int fd1, char const *file1, int fd2, char const *file2) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (renameat, int, (int fd1, char const *file1, int fd2, char const *file2)); # endif _GL_CXXALIASWARN (renameat); #elif defined GNULIB_POSIXCHECK # undef renameat # if HAVE_RAW_DECL_RENAMEAT _GL_WARN_ON_USE (renameat, "renameat is not portable - " "use gnulib module renameat for portability"); # endif #endif #if @GNULIB_SCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if defined __GNUC__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf /* Don't break __attribute__((format(scanf,M,N))). */ # define scanf __scanf__ # endif _GL_FUNCDECL_RPL_1 (__scanf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf # define scanf rpl_scanf # endif _GL_FUNCDECL_RPL (scanf, int, (const char *format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (scanf, int, (const char *format, ...)); # endif # else _GL_CXXALIAS_SYS (scanf, int, (const char *format, ...)); # endif _GL_CXXALIASWARN (scanf); #endif #if @GNULIB_SNPRINTF@ # if @REPLACE_SNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define snprintf rpl_snprintf # endif _GL_FUNCDECL_RPL (snprintf, int, (char *str, size_t size, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (snprintf, int, (char *str, size_t size, const char *format, ...)); # else # if !@HAVE_DECL_SNPRINTF@ _GL_FUNCDECL_SYS (snprintf, int, (char *str, size_t size, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (snprintf, int, (char *str, size_t size, const char *format, ...)); # endif _GL_CXXALIASWARN (snprintf); #elif defined GNULIB_POSIXCHECK # undef snprintf # if HAVE_RAW_DECL_SNPRINTF _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " "use gnulib module snprintf for portability"); # endif #endif /* Some people would argue that all sprintf uses should be warned about (for example, OpenBSD issues a link warning for it), since it can cause security holes due to buffer overruns. However, we believe that sprintf can be used safely, and is more efficient than snprintf in those safe cases; and as proof of our belief, we use sprintf in several gnulib modules. So this header intentionally avoids adding a warning to sprintf except when GNULIB_POSIXCHECK is defined. */ #if @GNULIB_SPRINTF_POSIX@ # if @REPLACE_SPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define sprintf rpl_sprintf # endif _GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...)); # else _GL_CXXALIAS_SYS (sprintf, int, (char *str, const char *format, ...)); # endif _GL_CXXALIASWARN (sprintf); #elif defined GNULIB_POSIXCHECK # undef sprintf /* Assume sprintf is always declared. */ _GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - " "use gnulib module sprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_TMPFILE@ # if @REPLACE_TMPFILE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define tmpfile rpl_tmpfile # endif _GL_FUNCDECL_RPL (tmpfile, FILE *, (void)); _GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); # else _GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); # endif _GL_CXXALIASWARN (tmpfile); #elif defined GNULIB_POSIXCHECK # undef tmpfile # if HAVE_RAW_DECL_TMPFILE _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " "use gnulib module tmpfile for portability"); # endif #endif #if @GNULIB_VASPRINTF@ /* Write formatted output to a string dynamically allocated with malloc(). If the memory allocation succeeds, store the address of the string in *RESULT and return the number of resulting bytes, excluding the trailing NUL. Upon memory allocation error, or some other error, return -1. */ # if @REPLACE_VASPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define asprintf rpl_asprintf # endif _GL_FUNCDECL_RPL (asprintf, int, (char **result, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (asprintf, int, (char **result, const char *format, ...)); # else # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (asprintf, int, (char **result, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (asprintf, int, (char **result, const char *format, ...)); # endif _GL_CXXALIASWARN (asprintf); # if @REPLACE_VASPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vasprintf rpl_vasprintf # endif _GL_FUNCDECL_RPL (vasprintf, int, (char **result, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vasprintf, int, (char **result, const char *format, va_list args)); # else # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (vasprintf, int, (char **result, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (vasprintf, int, (char **result, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vasprintf); #endif #if @GNULIB_VDPRINTF@ # if @REPLACE_VDPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vdprintf rpl_vdprintf # endif _GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args)); # else # if !@HAVE_VDPRINTF@ _GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((2))); # endif /* Need to cast, because on Solaris, the third parameter will likely be __va_list args. */ _GL_CXXALIAS_SYS_CAST (vdprintf, int, (int fd, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vdprintf); #elif defined GNULIB_POSIXCHECK # undef vdprintf # if HAVE_RAW_DECL_VDPRINTF _GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - " "use gnulib module vdprintf for portability"); # endif #endif #if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@ # if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \ || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vfprintf rpl_vfprintf # endif # define GNULIB_overrides_vfprintf 1 # if @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # else _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vfprintf, int, (FILE *fp, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vfprintf); #endif #if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vfprintf # undef vfprintf # endif /* Assume vfprintf is always declared. */ _GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - " "use gnulib module vfprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_VFSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef vfscanf # define vfscanf rpl_vfscanf # endif _GL_FUNCDECL_RPL (vfscanf, int, (FILE *stream, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vfscanf, int, (FILE *stream, const char *format, va_list args)); # else _GL_CXXALIAS_SYS (vfscanf, int, (FILE *stream, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vfscanf); #endif #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ # if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \ || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vprintf rpl_vprintf # endif # define GNULIB_overrides_vprintf 1 # if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args)); # else /* Need to cast, because on Solaris, the second parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vprintf, int, (const char *format, va_list args)); # endif _GL_CXXALIASWARN (vprintf); #endif #if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vprintf # undef vprintf # endif /* Assume vprintf is always declared. */ _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " "use gnulib module vprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_VSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef vscanf # define vscanf rpl_vscanf # endif _GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args)); # else _GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args)); # endif _GL_CXXALIASWARN (vscanf); #endif #if @GNULIB_VSNPRINTF@ # if @REPLACE_VSNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsnprintf rpl_vsnprintf # endif _GL_FUNCDECL_RPL (vsnprintf, int, (char *str, size_t size, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (vsnprintf, int, (char *str, size_t size, const char *format, va_list args)); # else # if !@HAVE_DECL_VSNPRINTF@ _GL_FUNCDECL_SYS (vsnprintf, int, (char *str, size_t size, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (vsnprintf, int, (char *str, size_t size, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vsnprintf); #elif defined GNULIB_POSIXCHECK # undef vsnprintf # if HAVE_RAW_DECL_VSNPRINTF _GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - " "use gnulib module vsnprintf for portability"); # endif #endif #if @GNULIB_VSPRINTF_POSIX@ # if @REPLACE_VSPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsprintf rpl_vsprintf # endif _GL_FUNCDECL_RPL (vsprintf, int, (char *str, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vsprintf, int, (char *str, const char *format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vsprintf, int, (char *str, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vsprintf); #elif defined GNULIB_POSIXCHECK # undef vsprintf /* Assume vsprintf is always declared. */ _GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - " "use gnulib module vsprintf-posix for portable " "POSIX compliance"); #endif #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif gcal-4.1/lib/mbsinit.c0000664000000000000000000000370313041163522011534 00000000000000/* Test for initial conversion state. Copyright (C) 2008-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2008. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include "verify.h" #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, 'mbstate_t' is defined as 'int'. */ int mbsinit (const mbstate_t *ps) { return ps == NULL || *ps == 0; } #else /* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs() and wcrtomb(), wcsrtombs(). We assume that - sizeof (mbstate_t) >= 4, - only stateless encodings are supported (such as UTF-8 and EUC-JP, but not ISO-2022 variants), - for each encoding, the number of bytes for a wide character is <= 4. (This maximum is attained for UTF-8, GB18030, EUC-TW.) We define the meaning of mbstate_t as follows: - In mb -> wc direction, mbstate_t's first byte contains the number of buffered bytes (in the range 0..3), followed by up to 3 buffered bytes. - In wc -> mb direction, mbstate_t contains no information. In other words, it is always in the initial state. */ verify (sizeof (mbstate_t) >= 4); int mbsinit (const mbstate_t *ps) { const char *pstate = (const char *)ps; return pstate == NULL || pstate[0] == 0; } #endif gcal-4.1/lib/streq.h0000664000000000000000000000763613041163523011244 00000000000000/* Optimized string comparison. Copyright (C) 2001-2002, 2007, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible . */ #ifndef _GL_STREQ_H #define _GL_STREQ_H #include /* STREQ_OPT allows to optimize string comparison with a small literal string. STREQ_OPT (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) is semantically equivalent to strcmp (s, "EUC-KR") == 0 just faster. */ /* Help GCC to generate good code for string comparisons with immediate strings. */ #if defined (__GNUC__) && defined (__OPTIMIZE__) static inline int streq9 (const char *s1, const char *s2) { return strcmp (s1 + 9, s2 + 9) == 0; } static inline int streq8 (const char *s1, const char *s2, char s28) { if (s1[8] == s28) { if (s28 == 0) return 1; else return streq9 (s1, s2); } else return 0; } static inline int streq7 (const char *s1, const char *s2, char s27, char s28) { if (s1[7] == s27) { if (s27 == 0) return 1; else return streq8 (s1, s2, s28); } else return 0; } static inline int streq6 (const char *s1, const char *s2, char s26, char s27, char s28) { if (s1[6] == s26) { if (s26 == 0) return 1; else return streq7 (s1, s2, s27, s28); } else return 0; } static inline int streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28) { if (s1[5] == s25) { if (s25 == 0) return 1; else return streq6 (s1, s2, s26, s27, s28); } else return 0; } static inline int streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28) { if (s1[4] == s24) { if (s24 == 0) return 1; else return streq5 (s1, s2, s25, s26, s27, s28); } else return 0; } static inline int streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[3] == s23) { if (s23 == 0) return 1; else return streq4 (s1, s2, s24, s25, s26, s27, s28); } else return 0; } static inline int streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[2] == s22) { if (s22 == 0) return 1; else return streq3 (s1, s2, s23, s24, s25, s26, s27, s28); } else return 0; } static inline int streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[1] == s21) { if (s21 == 0) return 1; else return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28); } else return 0; } static inline int streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) { if (s1[0] == s20) { if (s20 == 0) return 1; else return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28); } else return 0; } #define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28) #else #define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ (strcmp (s1, s2) == 0) #endif #endif /* _GL_STREQ_H */ gcal-4.1/lib/sys_time.in.h0000664000000000000000000001721513041163523012341 00000000000000/* Provide a more complete sys/time.h. Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Paul Eggert. */ #ifndef _@GUARD_PREFIX@_SYS_TIME_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* On Cygwin and on many BSDish systems, includes itself recursively via . Simply delegate to the system's header in this case; it is a no-op. Without this extra ifdef, the C++ gettimeofday declaration below would be a forward declaration in gnulib's nested . */ #if defined _CYGWIN_SYS_TIME_H || defined _SYS_TIME_H || defined _SYS_TIME_H_ # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ #else /* The include_next requires a split double-inclusion guard. */ #if @HAVE_SYS_TIME_H@ # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ #endif #ifndef _@GUARD_PREFIX@_SYS_TIME_H #define _@GUARD_PREFIX@_SYS_TIME_H #if ! @HAVE_SYS_TIME_H@ # include #endif /* On native Windows with MSVC, get the 'struct timeval' type. Also, on native Windows with a 64-bit time_t, where we are overriding the 'struct timeval' type, get all declarations of system functions whose signature contains 'struct timeval'. */ #if (defined _MSC_VER || @REPLACE_STRUCT_TIMEVAL@) && @HAVE_WINSOCK2_H@ && !defined _GL_INCLUDING_WINSOCK2_H # define _GL_INCLUDING_WINSOCK2_H # include # undef _GL_INCLUDING_WINSOCK2_H #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #ifdef __cplusplus extern "C" { #endif #if !@HAVE_STRUCT_TIMEVAL@ || @REPLACE_STRUCT_TIMEVAL@ # if @REPLACE_STRUCT_TIMEVAL@ # define timeval rpl_timeval # endif # if !GNULIB_defined_struct_timeval struct timeval { time_t tv_sec; long int tv_usec; }; # define GNULIB_defined_struct_timeval 1 # endif #endif #ifdef __cplusplus } #endif #if @GNULIB_GETTIMEOFDAY@ # if @REPLACE_GETTIMEOFDAY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gettimeofday # define gettimeofday rpl_gettimeofday # endif _GL_FUNCDECL_RPL (gettimeofday, int, (struct timeval *restrict, void *restrict) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gettimeofday, int, (struct timeval *restrict, void *restrict)); # else # if !@HAVE_GETTIMEOFDAY@ _GL_FUNCDECL_SYS (gettimeofday, int, (struct timeval *restrict, void *restrict) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on glibc systems, by default, the second argument is struct timezone *. */ _GL_CXXALIAS_SYS_CAST (gettimeofday, int, (struct timeval *restrict, void *restrict)); # endif _GL_CXXALIASWARN (gettimeofday); # if defined __cplusplus && defined GNULIB_NAMESPACE namespace GNULIB_NAMESPACE { typedef ::timeval #undef timeval timeval; } # endif #elif defined GNULIB_POSIXCHECK # undef gettimeofday # if HAVE_RAW_DECL_GETTIMEOFDAY _GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - " "use gnulib module gettimeofday for portability"); # endif #endif /* Hide some function declarations from . */ #if defined _MSC_VER && @HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_UNISTD_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef close # define close close_used_without_including_unistd_h # else _GL_WARN_ON_USE (close, "close() used without including "); # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname gethostname_used_without_including_unistd_h # else _GL_WARN_ON_USE (gethostname, "gethostname() used without including "); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h # undef connect # define connect connect_used_without_including_sys_socket_h # undef accept # define accept accept_used_without_including_sys_socket_h # undef bind # define bind bind_used_without_including_sys_socket_h # undef getpeername # define getpeername getpeername_used_without_including_sys_socket_h # undef getsockname # define getsockname getsockname_used_without_including_sys_socket_h # undef getsockopt # define getsockopt getsockopt_used_without_including_sys_socket_h # undef listen # define listen listen_used_without_including_sys_socket_h # undef recv # define recv recv_used_without_including_sys_socket_h # undef send # define send send_used_without_including_sys_socket_h # undef recvfrom # define recvfrom recvfrom_used_without_including_sys_socket_h # undef sendto # define sendto sendto_used_without_including_sys_socket_h # undef setsockopt # define setsockopt setsockopt_used_without_including_sys_socket_h # undef shutdown # define shutdown shutdown_used_without_including_sys_socket_h # else _GL_WARN_ON_USE (socket, "socket() used without including "); _GL_WARN_ON_USE (connect, "connect() used without including "); _GL_WARN_ON_USE (accept, "accept() used without including "); _GL_WARN_ON_USE (bind, "bind() used without including "); _GL_WARN_ON_USE (getpeername, "getpeername() used without including "); _GL_WARN_ON_USE (getsockname, "getsockname() used without including "); _GL_WARN_ON_USE (getsockopt, "getsockopt() used without including "); _GL_WARN_ON_USE (listen, "listen() used without including "); _GL_WARN_ON_USE (recv, "recv() used without including "); _GL_WARN_ON_USE (send, "send() used without including "); _GL_WARN_ON_USE (recvfrom, "recvfrom() used without including "); _GL_WARN_ON_USE (sendto, "sendto() used without including "); _GL_WARN_ON_USE (setsockopt, "setsockopt() used without including "); _GL_WARN_ON_USE (shutdown, "shutdown() used without including "); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including "); # endif # endif #endif #endif /* _@GUARD_PREFIX@_SYS_TIME_H */ #endif /* _CYGWIN_SYS_TIME_H */ #endif /* _@GUARD_PREFIX@_SYS_TIME_H */ gcal-4.1/lib/sigaction.c0000664000000000000000000001614313041163523012052 00000000000000/* POSIX compatible signal blocking. Copyright (C) 2008-2017 Free Software Foundation, Inc. Written by Eric Blake , 2008. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include /* This implementation of sigaction is tailored to native Windows behavior: signal() has SysV semantics (ie. the handler is uninstalled before it is invoked). This is an inherent data race if an asynchronous signal is sent twice in a row before we can reinstall our handler, but there's nothing we can do about it. Meanwhile, sigprocmask() is not present, and while we can use the gnulib replacement to provide critical sections, it too suffers from potential data races in the face of an ill-timed asynchronous signal. And we compound the situation by reading static storage in a signal handler, which POSIX warns is not generically async-signal-safe. Oh well. Additionally: - We don't implement SA_NOCLDSTOP or SA_NOCLDWAIT, because SIGCHLD is not defined. - We don't implement SA_ONSTACK, because sigaltstack() is not present. - We ignore SA_RESTART, because blocking native Windows API calls are not interrupted anyway when an asynchronous signal occurs, and the MSVCRT runtime never sets errno to EINTR. - We don't implement SA_SIGINFO because it is impossible to do so portably. POSIX states that an application should not mix signal() and sigaction(). We support the use of signal() within the gnulib sigprocmask() substitute, but all other application code linked with this module should stick with only sigaction(). */ /* Check some of our assumptions. */ #if defined SIGCHLD || defined HAVE_SIGALTSTACK || defined HAVE_SIGINTERRUPT # error "Revisit the assumptions made in the sigaction module" #endif /* Out-of-range substitutes make a good fallback for uncatchable signals. */ #ifndef SIGKILL # define SIGKILL (-1) #endif #ifndef SIGSTOP # define SIGSTOP (-1) #endif /* On native Windows, as of 2008, the signal SIGABRT_COMPAT is an alias for the signal SIGABRT. Only one signal handler is stored for both SIGABRT and SIGABRT_COMPAT. SIGABRT_COMPAT is not a signal of its own. */ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # undef SIGABRT_COMPAT # define SIGABRT_COMPAT 6 #endif /* A signal handler. */ typedef void (*handler_t) (int signal); /* Set of current actions. If sa_handler for an entry is NULL, then that signal is not currently handled by the sigaction handler. */ static struct sigaction volatile action_array[NSIG] /* = 0 */; /* Signal handler that is installed for signals. */ static void sigaction_handler (int sig) { handler_t handler; sigset_t mask; sigset_t oldmask; int saved_errno = errno; if (sig < 0 || NSIG <= sig || !action_array[sig].sa_handler) { /* Unexpected situation; be careful to avoid recursive abort. */ if (sig == SIGABRT) signal (SIGABRT, SIG_DFL); abort (); } /* Reinstall the signal handler when required; otherwise update the bookkeeping so that the user's handler may call sigaction and get accurate results. We know the signal isn't currently blocked, or we wouldn't be in its handler, therefore we know that we are not interrupting a sigaction() call. There is a race where any asynchronous instance of the same signal occurring before we reinstall the handler will trigger the default handler; oh well. */ handler = action_array[sig].sa_handler; if ((action_array[sig].sa_flags & SA_RESETHAND) == 0) signal (sig, sigaction_handler); else action_array[sig].sa_handler = NULL; /* Block appropriate signals. */ mask = action_array[sig].sa_mask; if ((action_array[sig].sa_flags & SA_NODEFER) == 0) sigaddset (&mask, sig); sigprocmask (SIG_BLOCK, &mask, &oldmask); /* Invoke the user's handler, then restore prior mask. */ errno = saved_errno; handler (sig); saved_errno = errno; sigprocmask (SIG_SETMASK, &oldmask, NULL); errno = saved_errno; } /* Change and/or query the action that will be taken on delivery of signal SIG. If not NULL, ACT describes the new behavior. If not NULL, OACT is set to the prior behavior. Return 0 on success, or set errno and return -1 on failure. */ int sigaction (int sig, const struct sigaction *restrict act, struct sigaction *restrict oact) { sigset_t mask; sigset_t oldmask; int saved_errno; if (sig < 0 || NSIG <= sig || sig == SIGKILL || sig == SIGSTOP || (act && act->sa_handler == SIG_ERR)) { errno = EINVAL; return -1; } #ifdef SIGABRT_COMPAT if (sig == SIGABRT_COMPAT) sig = SIGABRT; #endif /* POSIX requires sigaction() to be async-signal-safe. In other words, if an asynchronous signal can occur while we are anywhere inside this function, the user's handler could then call sigaction() recursively and expect consistent results. We meet this rule by using sigprocmask to block all signals before modifying any data structure that could be read from a signal handler; this works since we know that the gnulib sigprocmask replacement does not try to use sigaction() from its handler. */ if (!act && !oact) return 0; sigfillset (&mask); sigprocmask (SIG_BLOCK, &mask, &oldmask); if (oact) { if (action_array[sig].sa_handler) *oact = action_array[sig]; else { /* Safe to change the handler at will here, since all signals are currently blocked. */ oact->sa_handler = signal (sig, SIG_DFL); if (oact->sa_handler == SIG_ERR) goto failure; signal (sig, oact->sa_handler); oact->sa_flags = SA_RESETHAND | SA_NODEFER; sigemptyset (&oact->sa_mask); } } if (act) { /* Safe to install the handler before updating action_array, since all signals are currently blocked. */ if (act->sa_handler == SIG_DFL || act->sa_handler == SIG_IGN) { if (signal (sig, act->sa_handler) == SIG_ERR) goto failure; action_array[sig].sa_handler = NULL; } else { if (signal (sig, sigaction_handler) == SIG_ERR) goto failure; action_array[sig] = *act; } } sigprocmask (SIG_SETMASK, &oldmask, NULL); return 0; failure: saved_errno = errno; sigprocmask (SIG_SETMASK, &oldmask, NULL); errno = saved_errno; return -1; } gcal-4.1/lib/verify.h0000664000000000000000000002541213041163523011402 00000000000000/* Compile-time assert-like macros. Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ #ifndef _GL_VERIFY_H #define _GL_VERIFY_H /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11. This is supported by GCC 4.6.0 and later, in C mode, and its use here generates easier-to-read diagnostics when verify (R) fails. Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11. This will likely be supported by future GCC versions, in C++ mode. Use this only with GCC. If we were willing to slow 'configure' down we could also use it with other compilers, but since this affects only the quality of diagnostics, why bother? */ #if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \ && (201112L <= __STDC_VERSION__ || !defined __STRICT_ANSI__) \ && !defined __cplusplus) # define _GL_HAVE__STATIC_ASSERT 1 #endif /* The condition (99 < __GNUC__) is temporary, until we know about the first G++ release that supports static_assert. */ #if (99 < __GNUC__) && defined __cplusplus # define _GL_HAVE_STATIC_ASSERT 1 #endif /* FreeBSD 9.1 , included by and lots of other system headers, defines a conflicting _Static_assert that is no better than ours; override it. */ #ifndef _GL_HAVE_STATIC_ASSERT # include # undef _Static_assert #endif /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. If _Static_assert works, verify (R) uses it directly. Similarly, _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct that is an operand of sizeof. The code below uses several ideas for C++ compilers, and for C compilers that do not support _Static_assert: * The first step is ((R) ? 1 : -1). Given an expression R, of integral or boolean or floating-point type, this yields an expression of integral type, whose value is later verified to be constant and nonnegative. * Next this expression W is wrapped in a type struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: W; }. If W is negative, this yields a compile-time error. No compiler can deal with a bit-field of negative size. One might think that an array size check would have the same effect, that is, that the type struct { unsigned int dummy[W]; } would work as well. However, inside a function, some compilers (such as C++ compilers and GNU C) allow local parameters and variables inside array size expressions. With these compilers, an array size check would not properly diagnose this misuse of the verify macro: void function (int n) { verify (n < 0); } * For the verify macro, the struct _gl_verify_type will need to somehow be embedded into a declaration. To be portable, this declaration must declare an object, a constant, a function, or a typedef name. If the declared entity uses the type directly, such as in struct dummy {...}; typedef struct {...} dummy; extern struct {...} *dummy; extern void dummy (struct {...} *); extern struct {...} *dummy (void); two uses of the verify macro would yield colliding declarations if the entity names are not disambiguated. A workaround is to attach the current line number to the entity name: #define _GL_CONCAT0(x, y) x##y #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) extern struct {...} * _GL_CONCAT (dummy, __LINE__); But this has the problem that two invocations of verify from within the same macro would collide, since the __LINE__ value would be the same for both invocations. (The GCC __COUNTER__ macro solves this problem, but is not portable.) A solution is to use the sizeof operator. It yields a number, getting rid of the identity of the type. Declarations like extern int dummy [sizeof (struct {...})]; extern void dummy (int [sizeof (struct {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; can be repeated. * Should the implementation use a named struct or an unnamed struct? Which of the following alternatives can be used? extern int dummy [sizeof (struct {...})]; extern int dummy [sizeof (struct _gl_verify_type {...})]; extern void dummy (int [sizeof (struct {...})]); extern void dummy (int [sizeof (struct _gl_verify_type {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})]; In the second and sixth case, the struct type is exported to the outer scope; two such declarations therefore collide. GCC warns about the first, third, and fourth cases. So the only remaining possibility is the fifth case: extern int (*dummy (void)) [sizeof (struct {...})]; * GCC warns about duplicate declarations of the dummy function if -Wredundant-decls is used. GCC 4.3 and later have a builtin __COUNTER__ macro that can let us generate unique identifiers for each dummy function, to suppress this warning. * This implementation exploits the fact that older versions of GCC, which do not support _Static_assert, also do not warn about the last declaration mentioned above. * GCC warns if -Wnested-externs is enabled and verify() is used within a function body; but inside a function, you can always arrange to use verify_expr() instead. * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ /* Concatenate two preprocessor tokens. */ #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) #define _GL_CONCAT0(x, y) x##y /* _GL_COUNTER is an integer, preferably one that changes each time we use it. Use __COUNTER__ if it works, falling back on __LINE__ otherwise. __LINE__ isn't perfect, but it's better than a constant. */ #if defined __COUNTER__ && __COUNTER__ != __COUNTER__ # define _GL_COUNTER __COUNTER__ #else # define _GL_COUNTER __LINE__ #endif /* Generate a symbol with the given prefix, making it unique if possible. */ #define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) /* Verify requirement R at compile-time, as an integer constant expression that returns 1. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. */ #define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \ (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC))) #ifdef __cplusplus # if !GNULIB_defined_struct__gl_verify_type template struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: w; }; # define GNULIB_defined_struct__gl_verify_type 1 # endif # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ _gl_verify_type<(R) ? 1 : -1> #elif defined _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { \ _Static_assert (R, DIAGNOSTIC); \ int _gl_dummy; \ } #else # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; } #endif /* Verify requirement R at compile-time, as a declaration without a trailing ';'. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. Unfortunately, unlike C11, this implementation must appear as an ordinary declaration, and cannot appear inside struct { ... }. */ #ifdef _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY _Static_assert #else # define _GL_VERIFY(R, DIAGNOSTIC) \ extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] #endif /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ #ifdef _GL_STATIC_ASSERT_H # if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert # define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC) # endif # if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert # define static_assert _Static_assert /* C11 requires this #define. */ # endif #endif /* @assert.h omit start@ */ /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. There are two macros, since no single macro can be used in all contexts in C. verify_true (R) is for scalar contexts, including integer constant expression contexts. verify (R) is for declaration contexts, e.g., the top level. */ /* Verify requirement R at compile-time, as an integer constant expression. Return 1. This is equivalent to verify_expr (R, 1). verify_true is obsolescent; please use verify_expr instead. */ #define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")") /* Verify requirement R at compile-time. Return the value of the expression E. */ #define verify_expr(R, E) \ (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) /* Verify requirement R at compile-time, as a declaration without a trailing ';'. */ #define verify(R) _GL_VERIFY (R, "verify (" #R ")") #ifndef __has_builtin # define __has_builtin(x) 0 #endif /* Assume that R always holds. This lets the compiler optimize accordingly. R should not have side-effects; it may or may not be evaluated. Behavior is undefined if R is false. */ #if (__has_builtin (__builtin_unreachable) \ || 4 < __GNUC__ + (5 <= __GNUC_MINOR__)) # define assume(R) ((R) ? (void) 0 : __builtin_unreachable ()) #elif 1200 <= _MSC_VER # define assume(R) __assume (R) #elif ((defined GCC_LINT || defined lint) \ && (__has_builtin (__builtin_trap) \ || 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__)))) /* Doing it this way helps various packages when configured with --enable-gcc-warnings, which compiles with -Dlint. It's nicer when 'assume' silences warnings even with older GCCs. */ # define assume(R) ((R) ? (void) 0 : __builtin_trap ()) #else # define assume(R) ((void) (0 && (R))) #endif /* @assert.h omit end@ */ #endif gcal-4.1/lib/basename-lgpl.c0000664000000000000000000000406113041163522012574 00000000000000/* basename.c -- return the last element in a file name Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include "dirname.h" #include /* Return the address of the last file name component of NAME. If NAME has no relative file name components because it is a file system root, return the empty string. */ char * last_component (char const *name) { char const *base = name + FILE_SYSTEM_PREFIX_LEN (name); char const *p; bool saw_slash = false; while (ISSLASH (*base)) base++; for (p = base; *p; p++) { if (ISSLASH (*p)) saw_slash = true; else if (saw_slash) { base = p; saw_slash = false; } } return (char *) base; } /* Return the length of the basename NAME. Typically NAME is the value returned by base_name or last_component. Act like strlen (NAME), except omit all trailing slashes. */ size_t base_len (char const *name) { size_t len; size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name); for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--) continue; if (DOUBLE_SLASH_IS_DISTINCT_ROOT && len == 1 && ISSLASH (name[0]) && ISSLASH (name[1]) && ! name[2]) return 2; if (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && prefix_len && len == prefix_len && ISSLASH (name[prefix_len])) return prefix_len + 1; return len; } gcal-4.1/lib/spawnp.c0000664000000000000000000000240213041163523011373 00000000000000/* Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include "spawn_int.h" /* Spawn a new process executing FILE with the attributes describes in *ATTRP. Before running the process perform the actions described in FILE-ACTIONS. */ int posix_spawnp (pid_t *pid, const char *file, const posix_spawn_file_actions_t *file_actions, const posix_spawnattr_t *attrp, char *const argv[], char *const envp[]) { return __spawni (pid, file, file_actions, attrp, argv, envp, 1); } gcal-4.1/lib/strstr.c0000664000000000000000000000567313041163523011441 00000000000000/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* This particular implementation was written by Eric Blake, 2008. */ #ifndef _LIBC # include #endif /* Specification of strstr. */ #include #include #define RETURN_TYPE char * #define AVAILABLE(h, h_l, j, n_l) \ (!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l)) \ && ((h_l) = (j) + (n_l))) #include "str-two-way.h" /* Return the first occurrence of NEEDLE in HAYSTACK. Return HAYSTACK if NEEDLE is empty, otherwise NULL if NEEDLE is not found in HAYSTACK. */ char * strstr (const char *haystack_start, const char *needle_start) { const char *haystack = haystack_start; const char *needle = needle_start; size_t needle_len; /* Length of NEEDLE. */ size_t haystack_len; /* Known minimum length of HAYSTACK. */ bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */ /* Determine length of NEEDLE, and in the process, make sure HAYSTACK is at least as long (no point processing all of a long NEEDLE if HAYSTACK is too short). */ while (*haystack && *needle) ok &= *haystack++ == *needle++; if (*needle) return NULL; if (ok) return (char *) haystack_start; /* Reduce the size of haystack using strchr, since it has a smaller linear coefficient than the Two-Way algorithm. */ needle_len = needle - needle_start; haystack = strchr (haystack_start + 1, *needle_start); if (!haystack || __builtin_expect (needle_len == 1, 0)) return (char *) haystack; needle -= needle_len; haystack_len = (haystack > haystack_start + needle_len ? 1 : needle_len + haystack_start - haystack); /* Perform the search. Abstract memory is considered to be an array of 'unsigned char' values, not an array of 'char' values. See ISO C 99 section 6.2.6.1. */ if (needle_len < LONG_NEEDLE_THRESHOLD) return two_way_short_needle ((const unsigned char *) haystack, haystack_len, (const unsigned char *) needle, needle_len); return two_way_long_needle ((const unsigned char *) haystack, haystack_len, (const unsigned char *) needle, needle_len); } #undef LONG_NEEDLE_THRESHOLD gcal-4.1/lib/regex_internal.c0000664000000000000000000013651113041163523013102 00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see . */ static void re_string_construct_common (const char *str, Idx len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) internal_function; static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_hashval_t hash) internal_function; static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, re_hashval_t hash) internal_function; /* Functions for string operation. */ /* This function allocate the buffers. It is necessary to call re_string_reconstruct before using the object. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { reg_errcode_t ret; Idx init_buf_len; /* Ensure at least one character fits into the buffers. */ if (init_len < dfa->mb_cur_max) init_len = dfa->mb_cur_max; init_buf_len = (len + 1 < init_len) ? len + 1: init_len; re_string_construct_common (str, len, pstr, trans, icase, dfa); ret = re_string_realloc_buffers (pstr, init_buf_len); if (BE (ret != REG_NOERROR, 0)) return ret; pstr->word_char = dfa->word_char; pstr->word_ops_used = dfa->word_ops_used; pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; pstr->valid_len = (pstr->mbs_allocated || dfa->mb_cur_max > 1) ? 0 : len; pstr->valid_raw_len = pstr->valid_len; return REG_NOERROR; } /* This function allocate the buffers, and initialize them. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_string_construct (re_string_t *pstr, const char *str, Idx len, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { reg_errcode_t ret; memset (pstr, '\0', sizeof (re_string_t)); re_string_construct_common (str, len, pstr, trans, icase, dfa); if (len > 0) { ret = re_string_realloc_buffers (pstr, len + 1); if (BE (ret != REG_NOERROR, 0)) return ret; } pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; if (icase) { #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) { while (1) { ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; if (pstr->valid_raw_len >= len) break; if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max) break; ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2); if (BE (ret != REG_NOERROR, 0)) return ret; } } else #endif /* RE_ENABLE_I18N */ build_upper_buffer (pstr); } else { #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) build_wcs_buffer (pstr); else #endif /* RE_ENABLE_I18N */ { if (trans != NULL) re_string_translate_buffer (pstr); else { pstr->valid_len = pstr->bufs_len; pstr->valid_raw_len = pstr->bufs_len; } } } return REG_NOERROR; } /* Helper functions for re_string_allocate, and re_string_construct. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { wint_t *new_wcs; /* Avoid overflow in realloc. */ const size_t max_object_size = MAX (sizeof (wint_t), sizeof (Idx)); if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_buf_len, 0)) return REG_ESPACE; new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len); if (BE (new_wcs == NULL, 0)) return REG_ESPACE; pstr->wcs = new_wcs; if (pstr->offsets != NULL) { Idx *new_offsets = re_realloc (pstr->offsets, Idx, new_buf_len); if (BE (new_offsets == NULL, 0)) return REG_ESPACE; pstr->offsets = new_offsets; } } #endif /* RE_ENABLE_I18N */ if (pstr->mbs_allocated) { unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char, new_buf_len); if (BE (new_mbs == NULL, 0)) return REG_ESPACE; pstr->mbs = new_mbs; } pstr->bufs_len = new_buf_len; return REG_NOERROR; } static void internal_function re_string_construct_common (const char *str, Idx len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { pstr->raw_mbs = (const unsigned char *) str; pstr->len = len; pstr->raw_len = len; pstr->trans = trans; pstr->icase = icase; pstr->mbs_allocated = (trans != NULL || icase); pstr->mb_cur_max = dfa->mb_cur_max; pstr->is_utf8 = dfa->is_utf8; pstr->map_notascii = dfa->map_notascii; pstr->stop = pstr->len; pstr->raw_stop = pstr->stop; } #ifdef RE_ENABLE_I18N /* Build wide character buffer PSTR->WCS. If the byte sequence of the string are: (0), (1), (0), (1), Then wide character buffer will be: , WEOF , , WEOF , We use WEOF for padding, they indicate that the position isn't a first byte of a multibyte character. Note that this function assumes PSTR->VALID_LEN elements are already built and starts from PSTR->VALID_LEN. */ static void internal_function build_wcs_buffer (re_string_t *pstr) { #ifdef _LIBC unsigned char buf[MB_LEN_MAX]; assert (MB_LEN_MAX >= pstr->mb_cur_max); #else unsigned char buf[64]; #endif mbstate_t prev_st; Idx byte_idx, end_idx, remain_len; size_t mbclen; /* Build the buffers from pstr->valid_len to either pstr->len or pstr->bufs_len. */ end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; for (byte_idx = pstr->valid_len; byte_idx < end_idx;) { wchar_t wc; const char *p; remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; /* Apply the translation if we need. */ if (BE (pstr->trans != NULL, 0)) { int i, ch; for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) { ch = pstr->raw_mbs [pstr->raw_mbs_idx + byte_idx + i]; buf[i] = pstr->mbs[byte_idx + i] = pstr->trans[ch]; } p = (const char *) buf; } else p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx; mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); if (BE (mbclen == (size_t) -1 || mbclen == 0 || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len), 0)) { /* We treat these cases as a singlebyte character. */ mbclen = 1; wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; if (BE (pstr->trans != NULL, 0)) wc = pstr->trans[wc]; pstr->cur_state = prev_st; } else if (BE (mbclen == (size_t) -2, 0)) { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; break; } /* Write wide character and padding. */ pstr->wcs[byte_idx++] = wc; /* Write paddings. */ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) pstr->wcs[byte_idx++] = WEOF; } pstr->valid_len = byte_idx; pstr->valid_raw_len = byte_idx; } /* Build wide character buffer PSTR->WCS like build_wcs_buffer, but for REG_ICASE. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ build_wcs_upper_buffer (re_string_t *pstr) { mbstate_t prev_st; Idx src_idx, byte_idx, end_idx, remain_len; size_t mbclen; #ifdef _LIBC char buf[MB_LEN_MAX]; assert (MB_LEN_MAX >= pstr->mb_cur_max); #else char buf[64]; #endif byte_idx = pstr->valid_len; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; /* The following optimization assumes that ASCII characters can be mapped to wide characters with a simple cast. */ if (! pstr->map_notascii && pstr->trans == NULL && !pstr->offsets_needed) { while (byte_idx < end_idx) { wchar_t wc; if (isascii (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]) && mbsinit (&pstr->cur_state)) { /* In case of a singlebyte character. */ pstr->mbs[byte_idx] = toupper (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]); /* The next step uses the assumption that wchar_t is encoded ASCII-safe: all ASCII values can be converted like this. */ pstr->wcs[byte_idx] = (wchar_t) pstr->mbs[byte_idx]; ++byte_idx; continue; } remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; mbclen = __mbrtowc (&wc, ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx), remain_len, &pstr->cur_state); if (BE (mbclen < (size_t) -2, 1)) { wchar_t wcu = __towupper (wc); if (wcu != wc) { size_t mbcdlen; mbcdlen = __wcrtomb (buf, wcu, &prev_st); if (BE (mbclen == mbcdlen, 1)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else { src_idx = byte_idx; goto offsets_needed; } } else memcpy (pstr->mbs + byte_idx, pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx, mbclen); pstr->wcs[byte_idx++] = wcu; /* Write paddings. */ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) pstr->wcs[byte_idx++] = WEOF; } else if (mbclen == (size_t) -1 || mbclen == 0 || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len)) { /* It is an invalid character, an incomplete character at the end of the string, or '\0'. Just use the byte. */ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; pstr->mbs[byte_idx] = ch; /* And also cast it to wide char. */ pstr->wcs[byte_idx++] = (wchar_t) ch; if (BE (mbclen == (size_t) -1, 0)) pstr->cur_state = prev_st; } else { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; break; } } pstr->valid_len = byte_idx; pstr->valid_raw_len = byte_idx; return REG_NOERROR; } else for (src_idx = pstr->valid_raw_len; byte_idx < end_idx;) { wchar_t wc; const char *p; offsets_needed: remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; if (BE (pstr->trans != NULL, 0)) { int i, ch; for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) { ch = pstr->raw_mbs [pstr->raw_mbs_idx + src_idx + i]; buf[i] = pstr->trans[ch]; } p = (const char *) buf; } else p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx; mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); if (BE (mbclen < (size_t) -2, 1)) { wchar_t wcu = __towupper (wc); if (wcu != wc) { size_t mbcdlen; mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st); if (BE (mbclen == mbcdlen, 1)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else if (mbcdlen != (size_t) -1) { size_t i; if (byte_idx + mbcdlen > pstr->bufs_len) { pstr->cur_state = prev_st; break; } if (pstr->offsets == NULL) { pstr->offsets = re_malloc (Idx, pstr->bufs_len); if (pstr->offsets == NULL) return REG_ESPACE; } if (!pstr->offsets_needed) { for (i = 0; i < (size_t) byte_idx; ++i) pstr->offsets[i] = i; pstr->offsets_needed = 1; } memcpy (pstr->mbs + byte_idx, buf, mbcdlen); pstr->wcs[byte_idx] = wcu; pstr->offsets[byte_idx] = src_idx; for (i = 1; i < mbcdlen; ++i) { pstr->offsets[byte_idx + i] = src_idx + (i < mbclen ? i : mbclen - 1); pstr->wcs[byte_idx + i] = WEOF; } pstr->len += mbcdlen - mbclen; if (pstr->raw_stop > src_idx) pstr->stop += mbcdlen - mbclen; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; byte_idx += mbcdlen; src_idx += mbclen; continue; } else memcpy (pstr->mbs + byte_idx, p, mbclen); } else memcpy (pstr->mbs + byte_idx, p, mbclen); if (BE (pstr->offsets_needed != 0, 0)) { size_t i; for (i = 0; i < mbclen; ++i) pstr->offsets[byte_idx + i] = src_idx + i; } src_idx += mbclen; pstr->wcs[byte_idx++] = wcu; /* Write paddings. */ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) pstr->wcs[byte_idx++] = WEOF; } else if (mbclen == (size_t) -1 || mbclen == 0 || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len)) { /* It is an invalid character or '\0'. Just use the byte. */ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx]; if (BE (pstr->trans != NULL, 0)) ch = pstr->trans [ch]; pstr->mbs[byte_idx] = ch; if (BE (pstr->offsets_needed != 0, 0)) pstr->offsets[byte_idx] = src_idx; ++src_idx; /* And also cast it to wide char. */ pstr->wcs[byte_idx++] = (wchar_t) ch; if (BE (mbclen == (size_t) -1, 0)) pstr->cur_state = prev_st; } else { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; break; } } pstr->valid_len = byte_idx; pstr->valid_raw_len = src_idx; return REG_NOERROR; } /* Skip characters until the index becomes greater than NEW_RAW_IDX. Return the index. */ static Idx internal_function re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc) { mbstate_t prev_st; Idx rawbuf_idx; size_t mbclen; wint_t wc = WEOF; /* Skip the characters which are not necessary to check. */ for (rawbuf_idx = pstr->raw_mbs_idx + pstr->valid_raw_len; rawbuf_idx < new_raw_idx;) { wchar_t wc2; Idx remain_len = pstr->raw_len - rawbuf_idx; prev_st = pstr->cur_state; mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx, remain_len, &pstr->cur_state); if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0)) { /* We treat these cases as a single byte character. */ if (mbclen == 0 || remain_len == 0) wc = L'\0'; else wc = *(unsigned char *) (pstr->raw_mbs + rawbuf_idx); mbclen = 1; pstr->cur_state = prev_st; } else wc = wc2; /* Then proceed the next character. */ rawbuf_idx += mbclen; } *last_wc = wc; return rawbuf_idx; } #endif /* RE_ENABLE_I18N */ /* Build the buffer PSTR->MBS, and apply the translation if we need. This function is used in case of REG_ICASE. */ static void internal_function build_upper_buffer (re_string_t *pstr) { Idx char_idx, end_idx; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx) { int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx]; if (BE (pstr->trans != NULL, 0)) ch = pstr->trans[ch]; pstr->mbs[char_idx] = toupper (ch); } pstr->valid_len = char_idx; pstr->valid_raw_len = char_idx; } /* Apply TRANS to the buffer in PSTR. */ static void internal_function re_string_translate_buffer (re_string_t *pstr) { Idx buf_idx, end_idx; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; for (buf_idx = pstr->valid_len; buf_idx < end_idx; ++buf_idx) { int ch = pstr->raw_mbs[pstr->raw_mbs_idx + buf_idx]; pstr->mbs[buf_idx] = pstr->trans[ch]; } pstr->valid_len = buf_idx; pstr->valid_raw_len = buf_idx; } /* This function re-construct the buffers. Concretely, convert to wide character in case of pstr->mb_cur_max > 1, convert to upper case in case of REG_ICASE, apply translation. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) { Idx offset; if (BE (pstr->raw_mbs_idx <= idx, 0)) offset = idx - pstr->raw_mbs_idx; else { /* Reset buffer. */ #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); #endif /* RE_ENABLE_I18N */ pstr->len = pstr->raw_len; pstr->stop = pstr->raw_stop; pstr->valid_len = 0; pstr->raw_mbs_idx = 0; pstr->valid_raw_len = 0; pstr->offsets_needed = 0; pstr->tip_context = ((eflags & REG_NOTBOL) ? CONTEXT_BEGBUF : CONTEXT_NEWLINE | CONTEXT_BEGBUF); if (!pstr->mbs_allocated) pstr->mbs = (unsigned char *) pstr->raw_mbs; offset = idx; } if (BE (offset != 0, 1)) { /* Should the already checked characters be kept? */ if (BE (offset < pstr->valid_raw_len, 1)) { /* Yes, move them to the front of the buffer. */ #ifdef RE_ENABLE_I18N if (BE (pstr->offsets_needed, 0)) { Idx low = 0, high = pstr->valid_len, mid; do { mid = (high + low) / 2; if (pstr->offsets[mid] > offset) high = mid; else if (pstr->offsets[mid] < offset) low = mid + 1; else break; } while (low < high); if (pstr->offsets[mid] < offset) ++mid; pstr->tip_context = re_string_context_at (pstr, mid - 1, eflags); /* This can be quite complicated, so handle specially only the common and easy case where the character with different length representation of lower and upper case is present at or after offset. */ if (pstr->valid_len > offset && mid == offset && pstr->offsets[mid] == offset) { memmove (pstr->wcs, pstr->wcs + offset, (pstr->valid_len - offset) * sizeof (wint_t)); memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset); pstr->valid_len -= offset; pstr->valid_raw_len -= offset; for (low = 0; low < pstr->valid_len; low++) pstr->offsets[low] = pstr->offsets[low + offset] - offset; } else { /* Otherwise, just find out how long the partial multibyte character at offset is and fill it with WEOF/255. */ pstr->len = pstr->raw_len - idx + offset; pstr->stop = pstr->raw_stop - idx + offset; pstr->offsets_needed = 0; while (mid > 0 && pstr->offsets[mid - 1] == offset) --mid; while (mid < pstr->valid_len) if (pstr->wcs[mid] != WEOF) break; else ++mid; if (mid == pstr->valid_len) pstr->valid_len = 0; else { pstr->valid_len = pstr->offsets[mid] - offset; if (pstr->valid_len) { for (low = 0; low < pstr->valid_len; ++low) pstr->wcs[low] = WEOF; memset (pstr->mbs, 255, pstr->valid_len); } } pstr->valid_raw_len = pstr->valid_len; } } else #endif { pstr->tip_context = re_string_context_at (pstr, offset - 1, eflags); #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) memmove (pstr->wcs, pstr->wcs + offset, (pstr->valid_len - offset) * sizeof (wint_t)); #endif /* RE_ENABLE_I18N */ if (BE (pstr->mbs_allocated, 0)) memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset); pstr->valid_len -= offset; pstr->valid_raw_len -= offset; #if defined DEBUG && DEBUG assert (pstr->valid_len > 0); #endif } } else { #ifdef RE_ENABLE_I18N /* No, skip all characters until IDX. */ Idx prev_valid_len = pstr->valid_len; if (BE (pstr->offsets_needed, 0)) { pstr->len = pstr->raw_len - idx + offset; pstr->stop = pstr->raw_stop - idx + offset; pstr->offsets_needed = 0; } #endif pstr->valid_len = 0; #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { Idx wcs_idx; wint_t wc = WEOF; if (pstr->is_utf8) { const unsigned char *raw, *p, *end; /* Special case UTF-8. Multi-byte chars start with any byte other than 0x80 - 0xbf. */ raw = pstr->raw_mbs + pstr->raw_mbs_idx; end = raw + (offset - pstr->mb_cur_max); if (end < pstr->raw_mbs) end = pstr->raw_mbs; p = raw + offset - 1; #ifdef _LIBC /* We know the wchar_t encoding is UCS4, so for the simple case, ASCII characters, skip the conversion step. */ if (isascii (*p) && BE (pstr->trans == NULL, 1)) { memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); /* pstr->valid_len = 0; */ wc = (wchar_t) *p; } else #endif for (; p >= end; --p) if ((*p & 0xc0) != 0x80) { mbstate_t cur_state; wchar_t wc2; Idx mlen = raw + pstr->len - p; unsigned char buf[6]; size_t mbclen; const unsigned char *pp = p; if (BE (pstr->trans != NULL, 0)) { int i = mlen < 6 ? mlen : 6; while (--i >= 0) buf[i] = pstr->trans[p[i]]; pp = buf; } /* XXX Don't use mbrtowc, we know which conversion to use (UTF-8 -> UCS4). */ memset (&cur_state, 0, sizeof (cur_state)); mbclen = __mbrtowc (&wc2, (const char *) pp, mlen, &cur_state); if (raw + offset - p <= mbclen && mbclen < (size_t) -2) { memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); pstr->valid_len = mbclen - (raw + offset - p); wc = wc2; } break; } } if (wc == WEOF) pstr->valid_len = re_string_skip_chars (pstr, idx, &wc) - idx; if (wc == WEOF) pstr->tip_context = re_string_context_at (pstr, prev_valid_len - 1, eflags); else pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc)) ? CONTEXT_WORD : ((IS_WIDE_NEWLINE (wc) && pstr->newline_anchor) ? CONTEXT_NEWLINE : 0)); if (BE (pstr->valid_len, 0)) { for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx) pstr->wcs[wcs_idx] = WEOF; if (pstr->mbs_allocated) memset (pstr->mbs, 255, pstr->valid_len); } pstr->valid_raw_len = pstr->valid_len; } else #endif /* RE_ENABLE_I18N */ { int c = pstr->raw_mbs[pstr->raw_mbs_idx + offset - 1]; pstr->valid_raw_len = 0; if (pstr->trans) c = pstr->trans[c]; pstr->tip_context = (bitset_contain (pstr->word_char, c) ? CONTEXT_WORD : ((IS_NEWLINE (c) && pstr->newline_anchor) ? CONTEXT_NEWLINE : 0)); } } if (!BE (pstr->mbs_allocated, 0)) pstr->mbs += offset; } pstr->raw_mbs_idx = idx; pstr->len -= offset; pstr->stop -= offset; /* Then build the buffers. */ #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { if (pstr->icase) { reg_errcode_t ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; } else build_wcs_buffer (pstr); } else #endif /* RE_ENABLE_I18N */ if (BE (pstr->mbs_allocated, 0)) { if (pstr->icase) build_upper_buffer (pstr); else if (pstr->trans != NULL) re_string_translate_buffer (pstr); } else pstr->valid_len = pstr->len; pstr->cur_idx = 0; return REG_NOERROR; } static unsigned char internal_function __attribute__ ((pure)) re_string_peek_byte_case (const re_string_t *pstr, Idx idx) { int ch; Idx off; /* Handle the common (easiest) cases first. */ if (BE (!pstr->mbs_allocated, 1)) return re_string_peek_byte (pstr, idx); #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1 && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx)) return re_string_peek_byte (pstr, idx); #endif off = pstr->cur_idx + idx; #ifdef RE_ENABLE_I18N if (pstr->offsets_needed) off = pstr->offsets[off]; #endif ch = pstr->raw_mbs[pstr->raw_mbs_idx + off]; #ifdef RE_ENABLE_I18N /* Ensure that e.g. for tr_TR.UTF-8 BACKSLASH DOTLESS SMALL LETTER I this function returns CAPITAL LETTER I instead of first byte of DOTLESS SMALL LETTER I. The latter would confuse the parser, since peek_byte_case doesn't advance cur_idx in any way. */ if (pstr->offsets_needed && !isascii (ch)) return re_string_peek_byte (pstr, idx); #endif return ch; } static unsigned char internal_function re_string_fetch_byte_case (re_string_t *pstr) { if (BE (!pstr->mbs_allocated, 1)) return re_string_fetch_byte (pstr); #ifdef RE_ENABLE_I18N if (pstr->offsets_needed) { Idx off; int ch; /* For tr_TR.UTF-8 [[:islower:]] there is [[: CAPITAL LETTER I WITH DOT lower:]] in mbs. Skip in that case the whole multi-byte character and return the original letter. On the other side, with [[: DOTLESS SMALL LETTER I return [[:I, as doing anything else would complicate things too much. */ if (!re_string_first_byte (pstr, pstr->cur_idx)) return re_string_fetch_byte (pstr); off = pstr->offsets[pstr->cur_idx]; ch = pstr->raw_mbs[pstr->raw_mbs_idx + off]; if (! isascii (ch)) return re_string_fetch_byte (pstr); re_string_skip_bytes (pstr, re_string_char_size_at (pstr, pstr->cur_idx)); return ch; } #endif return pstr->raw_mbs[pstr->raw_mbs_idx + pstr->cur_idx++]; } static void internal_function re_string_destruct (re_string_t *pstr) { #ifdef RE_ENABLE_I18N re_free (pstr->wcs); re_free (pstr->offsets); #endif /* RE_ENABLE_I18N */ if (pstr->mbs_allocated) re_free (pstr->mbs); } /* Return the context at IDX in INPUT. */ static unsigned int internal_function re_string_context_at (const re_string_t *input, Idx idx, int eflags) { int c; if (BE (idx < 0, 0)) /* In this case, we use the value stored in input->tip_context, since we can't know the character in input->mbs[-1] here. */ return input->tip_context; if (BE (idx == input->len, 0)) return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF : CONTEXT_NEWLINE | CONTEXT_ENDBUF); #ifdef RE_ENABLE_I18N if (input->mb_cur_max > 1) { wint_t wc; Idx wc_idx = idx; while(input->wcs[wc_idx] == WEOF) { #if defined DEBUG && DEBUG /* It must not happen. */ assert (wc_idx >= 0); #endif --wc_idx; if (wc_idx < 0) return input->tip_context; } wc = input->wcs[wc_idx]; if (BE (input->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc)) return CONTEXT_WORD; return (IS_WIDE_NEWLINE (wc) && input->newline_anchor ? CONTEXT_NEWLINE : 0); } else #endif { c = re_string_byte_at (input, idx); if (bitset_contain (input->word_char, c)) return CONTEXT_WORD; return IS_NEWLINE (c) && input->newline_anchor ? CONTEXT_NEWLINE : 0; } } /* Functions for set operation. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_alloc (re_node_set *set, Idx size) { set->alloc = size; set->nelem = 0; set->elems = re_malloc (Idx, size); if (BE (set->elems == NULL, 0) && (MALLOC_0_IS_NONNULL || size != 0)) return REG_ESPACE; return REG_NOERROR; } static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_init_1 (re_node_set *set, Idx elem) { set->alloc = 1; set->nelem = 1; set->elems = re_malloc (Idx, 1); if (BE (set->elems == NULL, 0)) { set->alloc = set->nelem = 0; return REG_ESPACE; } set->elems[0] = elem; return REG_NOERROR; } static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2) { set->alloc = 2; set->elems = re_malloc (Idx, 2); if (BE (set->elems == NULL, 0)) return REG_ESPACE; if (elem1 == elem2) { set->nelem = 1; set->elems[0] = elem1; } else { set->nelem = 2; if (elem1 < elem2) { set->elems[0] = elem1; set->elems[1] = elem2; } else { set->elems[0] = elem2; set->elems[1] = elem1; } } return REG_NOERROR; } static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_init_copy (re_node_set *dest, const re_node_set *src) { dest->nelem = src->nelem; if (src->nelem > 0) { dest->alloc = dest->nelem; dest->elems = re_malloc (Idx, dest->alloc); if (BE (dest->elems == NULL, 0)) { dest->alloc = dest->nelem = 0; return REG_ESPACE; } memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx)); } else re_node_set_init_empty (dest); return REG_NOERROR; } /* Calculate the intersection of the sets SRC1 and SRC2. And merge it to DEST. Return value indicate the error code or REG_NOERROR if succeeded. Note: We assume dest->elems is NULL, when dest->alloc is 0. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { Idx i1, i2, is, id, delta, sbase; if (src1->nelem == 0 || src2->nelem == 0) return REG_NOERROR; /* We need dest->nelem + 2 * elems_in_intersection; this is a conservative estimate. */ if (src1->nelem + src2->nelem + dest->nelem > dest->alloc) { Idx new_alloc = src1->nelem + src2->nelem + dest->alloc; Idx *new_elems = re_realloc (dest->elems, Idx, new_alloc); if (BE (new_elems == NULL, 0)) return REG_ESPACE; dest->elems = new_elems; dest->alloc = new_alloc; } /* Find the items in the intersection of SRC1 and SRC2, and copy into the top of DEST those that are not already in DEST itself. */ sbase = dest->nelem + src1->nelem + src2->nelem; i1 = src1->nelem - 1; i2 = src2->nelem - 1; id = dest->nelem - 1; for (;;) { if (src1->elems[i1] == src2->elems[i2]) { /* Try to find the item in DEST. Maybe we could binary search? */ while (id >= 0 && dest->elems[id] > src1->elems[i1]) --id; if (id < 0 || dest->elems[id] != src1->elems[i1]) dest->elems[--sbase] = src1->elems[i1]; if (--i1 < 0 || --i2 < 0) break; } /* Lower the highest of the two items. */ else if (src1->elems[i1] < src2->elems[i2]) { if (--i2 < 0) break; } else { if (--i1 < 0) break; } } id = dest->nelem - 1; is = dest->nelem + src1->nelem + src2->nelem - 1; delta = is - sbase + 1; /* Now copy. When DELTA becomes zero, the remaining DEST elements are already in place; this is more or less the same loop that is in re_node_set_merge. */ dest->nelem += delta; if (delta > 0 && id >= 0) for (;;) { if (dest->elems[is] > dest->elems[id]) { /* Copy from the top. */ dest->elems[id + delta--] = dest->elems[is--]; if (delta == 0) break; } else { /* Slide from the bottom. */ dest->elems[id + delta] = dest->elems[id]; if (--id < 0) break; } } /* Copy remaining SRC elements. */ memcpy (dest->elems, dest->elems + sbase, delta * sizeof (Idx)); return REG_NOERROR; } /* Calculate the union set of the sets SRC1 and SRC2. And store it to DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_init_union (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { Idx i1, i2, id; if (src1 != NULL && src1->nelem > 0 && src2 != NULL && src2->nelem > 0) { dest->alloc = src1->nelem + src2->nelem; dest->elems = re_malloc (Idx, dest->alloc); if (BE (dest->elems == NULL, 0)) return REG_ESPACE; } else { if (src1 != NULL && src1->nelem > 0) return re_node_set_init_copy (dest, src1); else if (src2 != NULL && src2->nelem > 0) return re_node_set_init_copy (dest, src2); else re_node_set_init_empty (dest); return REG_NOERROR; } for (i1 = i2 = id = 0 ; i1 < src1->nelem && i2 < src2->nelem ;) { if (src1->elems[i1] > src2->elems[i2]) { dest->elems[id++] = src2->elems[i2++]; continue; } if (src1->elems[i1] == src2->elems[i2]) ++i2; dest->elems[id++] = src1->elems[i1++]; } if (i1 < src1->nelem) { memcpy (dest->elems + id, src1->elems + i1, (src1->nelem - i1) * sizeof (Idx)); id += src1->nelem - i1; } else if (i2 < src2->nelem) { memcpy (dest->elems + id, src2->elems + i2, (src2->nelem - i2) * sizeof (Idx)); id += src2->nelem - i2; } dest->nelem = id; return REG_NOERROR; } /* Calculate the union set of the sets DEST and SRC. And store it to DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t internal_function __attribute_warn_unused_result__ re_node_set_merge (re_node_set *dest, const re_node_set *src) { Idx is, id, sbase, delta; if (src == NULL || src->nelem == 0) return REG_NOERROR; if (dest->alloc < 2 * src->nelem + dest->nelem) { Idx new_alloc = 2 * (src->nelem + dest->alloc); Idx *new_buffer = re_realloc (dest->elems, Idx, new_alloc); if (BE (new_buffer == NULL, 0)) return REG_ESPACE; dest->elems = new_buffer; dest->alloc = new_alloc; } if (BE (dest->nelem == 0, 0)) { dest->nelem = src->nelem; memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx)); return REG_NOERROR; } /* Copy into the top of DEST the items of SRC that are not found in DEST. Maybe we could binary search in DEST? */ for (sbase = dest->nelem + 2 * src->nelem, is = src->nelem - 1, id = dest->nelem - 1; is >= 0 && id >= 0; ) { if (dest->elems[id] == src->elems[is]) is--, id--; else if (dest->elems[id] < src->elems[is]) dest->elems[--sbase] = src->elems[is--]; else /* if (dest->elems[id] > src->elems[is]) */ --id; } if (is >= 0) { /* If DEST is exhausted, the remaining items of SRC must be unique. */ sbase -= is + 1; memcpy (dest->elems + sbase, src->elems, (is + 1) * sizeof (Idx)); } id = dest->nelem - 1; is = dest->nelem + 2 * src->nelem - 1; delta = is - sbase + 1; if (delta == 0) return REG_NOERROR; /* Now copy. When DELTA becomes zero, the remaining DEST elements are already in place. */ dest->nelem += delta; for (;;) { if (dest->elems[is] > dest->elems[id]) { /* Copy from the top. */ dest->elems[id + delta--] = dest->elems[is--]; if (delta == 0) break; } else { /* Slide from the bottom. */ dest->elems[id + delta] = dest->elems[id]; if (--id < 0) { /* Copy remaining SRC elements. */ memcpy (dest->elems, dest->elems + sbase, delta * sizeof (Idx)); break; } } } return REG_NOERROR; } /* Insert the new element ELEM to the re_node_set* SET. SET should not already have ELEM. Return true if successful. */ static bool internal_function __attribute_warn_unused_result__ re_node_set_insert (re_node_set *set, Idx elem) { Idx idx; /* In case the set is empty. */ if (set->alloc == 0) return BE (re_node_set_init_1 (set, elem) == REG_NOERROR, 1); if (BE (set->nelem, 0) == 0) { /* We already guaranteed above that set->alloc != 0. */ set->elems[0] = elem; ++set->nelem; return true; } /* Realloc if we need. */ if (set->alloc == set->nelem) { Idx *new_elems; set->alloc = set->alloc * 2; new_elems = re_realloc (set->elems, Idx, set->alloc); if (BE (new_elems == NULL, 0)) return false; set->elems = new_elems; } /* Move the elements which follows the new element. Test the first element separately to skip a check in the inner loop. */ if (elem < set->elems[0]) { idx = 0; for (idx = set->nelem; idx > 0; idx--) set->elems[idx] = set->elems[idx - 1]; } else { for (idx = set->nelem; set->elems[idx - 1] > elem; idx--) set->elems[idx] = set->elems[idx - 1]; } /* Insert the new element. */ set->elems[idx] = elem; ++set->nelem; return true; } /* Insert the new element ELEM to the re_node_set* SET. SET should not already have any element greater than or equal to ELEM. Return true if successful. */ static bool internal_function __attribute_warn_unused_result__ re_node_set_insert_last (re_node_set *set, Idx elem) { /* Realloc if we need. */ if (set->alloc == set->nelem) { Idx *new_elems; set->alloc = (set->alloc + 1) * 2; new_elems = re_realloc (set->elems, Idx, set->alloc); if (BE (new_elems == NULL, 0)) return false; set->elems = new_elems; } /* Insert the new element. */ set->elems[set->nelem++] = elem; return true; } /* Compare two node sets SET1 and SET2. Return true if SET1 and SET2 are equivalent. */ static bool internal_function __attribute__ ((pure)) re_node_set_compare (const re_node_set *set1, const re_node_set *set2) { Idx i; if (set1 == NULL || set2 == NULL || set1->nelem != set2->nelem) return false; for (i = set1->nelem ; --i >= 0 ; ) if (set1->elems[i] != set2->elems[i]) return false; return true; } /* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise. */ static Idx internal_function __attribute__ ((pure)) re_node_set_contains (const re_node_set *set, Idx elem) { __re_size_t idx, right, mid; if (set->nelem <= 0) return 0; /* Binary search the element. */ idx = 0; right = set->nelem - 1; while (idx < right) { mid = (idx + right) / 2; if (set->elems[mid] < elem) idx = mid + 1; else right = mid; } return set->elems[idx] == elem ? idx + 1 : 0; } static void internal_function re_node_set_remove_at (re_node_set *set, Idx idx) { if (idx < 0 || idx >= set->nelem) return; --set->nelem; for (; idx < set->nelem; idx++) set->elems[idx] = set->elems[idx + 1]; } /* Add the token TOKEN to dfa->nodes, and return the index of the token. Or return -1 if an error occurred. */ static Idx internal_function re_dfa_add_node (re_dfa_t *dfa, re_token_t token) { if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0)) { size_t new_nodes_alloc = dfa->nodes_alloc * 2; Idx *new_nexts, *new_indices; re_node_set *new_edests, *new_eclosures; re_token_t *new_nodes; /* Avoid overflows in realloc. */ const size_t max_object_size = MAX (sizeof (re_token_t), MAX (sizeof (re_node_set), sizeof (Idx))); if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_nodes_alloc, 0)) return -1; new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc); if (BE (new_nodes == NULL, 0)) return -1; dfa->nodes = new_nodes; new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc); new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc); new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc); new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc); if (BE (new_nexts == NULL || new_indices == NULL || new_edests == NULL || new_eclosures == NULL, 0)) { re_free (new_nexts); re_free (new_indices); re_free (new_edests); re_free (new_eclosures); return -1; } dfa->nexts = new_nexts; dfa->org_indices = new_indices; dfa->edests = new_edests; dfa->eclosures = new_eclosures; dfa->nodes_alloc = new_nodes_alloc; } dfa->nodes[dfa->nodes_len] = token; dfa->nodes[dfa->nodes_len].constraint = 0; #ifdef RE_ENABLE_I18N dfa->nodes[dfa->nodes_len].accept_mb = ((token.type == OP_PERIOD && dfa->mb_cur_max > 1) || token.type == COMPLEX_BRACKET); #endif dfa->nexts[dfa->nodes_len] = -1; re_node_set_init_empty (dfa->edests + dfa->nodes_len); re_node_set_init_empty (dfa->eclosures + dfa->nodes_len); return dfa->nodes_len++; } static re_hashval_t internal_function calc_state_hash (const re_node_set *nodes, unsigned int context) { re_hashval_t hash = nodes->nelem + context; Idx i; for (i = 0 ; i < nodes->nelem ; i++) hash += nodes->elems[i]; return hash; } /* Search for the state whose node_set is equivalent to NODES. Return the pointer to the state, if we found it in the DFA. Otherwise create the new one and return it. In case of an error return NULL and set the error code in ERR. Note: - We assume NULL as the invalid state, then it is possible that return value is NULL and ERR is REG_NOERROR. - We never return non-NULL value in case of any errors, it is for optimization. */ static re_dfastate_t * internal_function __attribute_warn_unused_result__ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes) { re_hashval_t hash; re_dfastate_t *new_state; struct re_state_table_entry *spot; Idx i; #if defined GCC_LINT || defined lint /* Suppress bogus uninitialized-variable warnings. */ *err = REG_NOERROR; #endif if (BE (nodes->nelem == 0, 0)) { *err = REG_NOERROR; return NULL; } hash = calc_state_hash (nodes, 0); spot = dfa->state_table + (hash & dfa->state_hash_mask); for (i = 0 ; i < spot->num ; i++) { re_dfastate_t *state = spot->array[i]; if (hash != state->hash) continue; if (re_node_set_compare (&state->nodes, nodes)) return state; } /* There are no appropriate state in the dfa, create the new one. */ new_state = create_ci_newstate (dfa, nodes, hash); if (BE (new_state == NULL, 0)) *err = REG_ESPACE; return new_state; } /* Search for the state whose node_set is equivalent to NODES and whose context is equivalent to CONTEXT. Return the pointer to the state, if we found it in the DFA. Otherwise create the new one and return it. In case of an error return NULL and set the error code in ERR. Note: - We assume NULL as the invalid state, then it is possible that return value is NULL and ERR is REG_NOERROR. - We never return non-NULL value in case of any errors, it is for optimization. */ static re_dfastate_t * internal_function __attribute_warn_unused_result__ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context) { re_hashval_t hash; re_dfastate_t *new_state; struct re_state_table_entry *spot; Idx i; #if defined GCC_LINT || defined lint /* Suppress bogus uninitialized-variable warnings. */ *err = REG_NOERROR; #endif if (nodes->nelem == 0) { *err = REG_NOERROR; return NULL; } hash = calc_state_hash (nodes, context); spot = dfa->state_table + (hash & dfa->state_hash_mask); for (i = 0 ; i < spot->num ; i++) { re_dfastate_t *state = spot->array[i]; if (state->hash == hash && state->context == context && re_node_set_compare (state->entrance_nodes, nodes)) return state; } /* There are no appropriate state in 'dfa', create the new one. */ new_state = create_cd_newstate (dfa, nodes, context, hash); if (BE (new_state == NULL, 0)) *err = REG_ESPACE; return new_state; } /* Finish initialization of the new state NEWSTATE, and using its hash value HASH put in the appropriate bucket of DFA's state table. Return value indicates the error code if failed. */ static reg_errcode_t __attribute_warn_unused_result__ register_state (const re_dfa_t *dfa, re_dfastate_t *newstate, re_hashval_t hash) { struct re_state_table_entry *spot; reg_errcode_t err; Idx i; newstate->hash = hash; err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem); if (BE (err != REG_NOERROR, 0)) return REG_ESPACE; for (i = 0; i < newstate->nodes.nelem; i++) { Idx elem = newstate->nodes.elems[i]; if (!IS_EPSILON_NODE (dfa->nodes[elem].type)) if (! re_node_set_insert_last (&newstate->non_eps_nodes, elem)) return REG_ESPACE; } spot = dfa->state_table + (hash & dfa->state_hash_mask); if (BE (spot->alloc <= spot->num, 0)) { Idx new_alloc = 2 * spot->num + 2; re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *, new_alloc); if (BE (new_array == NULL, 0)) return REG_ESPACE; spot->array = new_array; spot->alloc = new_alloc; } spot->array[spot->num++] = newstate; return REG_NOERROR; } static void free_state (re_dfastate_t *state) { re_node_set_free (&state->non_eps_nodes); re_node_set_free (&state->inveclosure); if (state->entrance_nodes != &state->nodes) { re_node_set_free (state->entrance_nodes); re_free (state->entrance_nodes); } re_node_set_free (&state->nodes); re_free (state->word_trtable); re_free (state->trtable); re_free (state); } /* Create the new state which is independent of contexts. Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * internal_function __attribute_warn_unused_result__ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_hashval_t hash) { Idx i; reg_errcode_t err; re_dfastate_t *newstate; newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); if (BE (newstate == NULL, 0)) return NULL; err = re_node_set_init_copy (&newstate->nodes, nodes); if (BE (err != REG_NOERROR, 0)) { re_free (newstate); return NULL; } newstate->entrance_nodes = &newstate->nodes; for (i = 0 ; i < nodes->nelem ; i++) { re_token_t *node = dfa->nodes + nodes->elems[i]; re_token_type_t type = node->type; if (type == CHARACTER && !node->constraint) continue; #ifdef RE_ENABLE_I18N newstate->accept_mb |= node->accept_mb; #endif /* RE_ENABLE_I18N */ /* If the state has the halt node, the state is a halt state. */ if (type == END_OF_RE) newstate->halt = 1; else if (type == OP_BACK_REF) newstate->has_backref = 1; else if (type == ANCHOR || node->constraint) newstate->has_constraint = 1; } err = register_state (dfa, newstate, hash); if (BE (err != REG_NOERROR, 0)) { free_state (newstate); newstate = NULL; } return newstate; } /* Create the new state which is depend on the context CONTEXT. Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * internal_function __attribute_warn_unused_result__ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, re_hashval_t hash) { Idx i, nctx_nodes = 0; reg_errcode_t err; re_dfastate_t *newstate; newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); if (BE (newstate == NULL, 0)) return NULL; err = re_node_set_init_copy (&newstate->nodes, nodes); if (BE (err != REG_NOERROR, 0)) { re_free (newstate); return NULL; } newstate->context = context; newstate->entrance_nodes = &newstate->nodes; for (i = 0 ; i < nodes->nelem ; i++) { re_token_t *node = dfa->nodes + nodes->elems[i]; re_token_type_t type = node->type; unsigned int constraint = node->constraint; if (type == CHARACTER && !constraint) continue; #ifdef RE_ENABLE_I18N newstate->accept_mb |= node->accept_mb; #endif /* RE_ENABLE_I18N */ /* If the state has the halt node, the state is a halt state. */ if (type == END_OF_RE) newstate->halt = 1; else if (type == OP_BACK_REF) newstate->has_backref = 1; if (constraint) { if (newstate->entrance_nodes == &newstate->nodes) { newstate->entrance_nodes = re_malloc (re_node_set, 1); if (BE (newstate->entrance_nodes == NULL, 0)) { free_state (newstate); return NULL; } if (re_node_set_init_copy (newstate->entrance_nodes, nodes) != REG_NOERROR) return NULL; nctx_nodes = 0; newstate->has_constraint = 1; } if (NOT_SATISFY_PREV_CONSTRAINT (constraint,context)) { re_node_set_remove_at (&newstate->nodes, i - nctx_nodes); ++nctx_nodes; } } } err = register_state (dfa, newstate, hash); if (BE (err != REG_NOERROR, 0)) { free_state (newstate); newstate = NULL; } return newstate; } gcal-4.1/lib/freading.h0000664000000000000000000000364113041163522011654 00000000000000/* Retrieve information about a FILE stream. Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include /* Return true if the stream STREAM is opened read-only, or if the last operation on the stream was a read operation. Return false if the stream is opened write-only or append-only, or if it supports writing and there is no current read operation (such as fgetc). freading and fwriting will never both be true. If STREAM supports both reads and writes, then: - both freading and fwriting might be false when the stream is first opened, after read encounters EOF, or after fflush, - freading might be false or true and fwriting might be false after repositioning (such as fseek, fsetpos, or rewind), depending on the underlying implementation. STREAM must not be wide-character oriented. */ #if HAVE___FREADING && (!defined __GLIBC__ || defined __UCLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7)) /* Solaris >= 7, not glibc >= 2.2, but glibc >= 2.7, or musl libc */ # include # define freading(stream) (__freading (stream) != 0) #else # ifdef __cplusplus extern "C" { # endif extern bool freading (FILE *stream) _GL_ATTRIBUTE_PURE; # ifdef __cplusplus } # endif #endif gcal-4.1/lib/fclose.c0000664000000000000000000000551213041163522011342 00000000000000/* fclose replacement. Copyright (C) 2008-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include "freading.h" #include "msvc-inval.h" #undef fclose #if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int fclose_nothrow (FILE *fp) { int result; TRY_MSVC_INVAL { result = fclose (fp); } CATCH_MSVC_INVAL { result = EOF; errno = EBADF; } DONE_MSVC_INVAL; return result; } #else # define fclose_nothrow fclose #endif /* Override fclose() to call the overridden fflush() or close(). */ int rpl_fclose (FILE *fp) { int saved_errno = 0; int fd; int result = 0; /* Don't change behavior on memstreams. */ fd = fileno (fp); if (fd < 0) return fclose_nothrow (fp); /* We only need to flush the file if it is not reading or if it is seekable. This only guarantees the file position of input files if the fflush module is also in use. */ if ((!freading (fp) || lseek (fileno (fp), 0, SEEK_CUR) != -1) && fflush (fp)) saved_errno = errno; /* fclose() calls close(), but we need to also invoke all hooks that our overridden close() function invokes. See lib/close.c. */ #if WINDOWS_SOCKETS /* Call the overridden close(), then the original fclose(). Note about multithread-safety: There is a race condition where some other thread could open fd between our close and fclose. */ if (close (fd) < 0 && saved_errno == 0) saved_errno = errno; fclose_nothrow (fp); /* will fail with errno = EBADF, if we did not lose a race */ #else /* !WINDOWS_SOCKETS */ /* Call fclose() and invoke all hooks of the overridden close(). */ # if REPLACE_FCHDIR /* Note about multithread-safety: There is a race condition here as well. Some other thread could open fd between our calls to fclose and _gl_unregister_fd. */ result = fclose_nothrow (fp); if (result == 0) _gl_unregister_fd (fd); # else /* No race condition here. */ result = fclose_nothrow (fp); # endif #endif /* !WINDOWS_SOCKETS */ if (saved_errno != 0) { errno = saved_errno; result = EOF; } return result; } gcal-4.1/lib/fpurge.c0000664000000000000000000001156413041163522011363 00000000000000/* Flushing buffers of a FILE stream. Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7 */ # include #endif #include #include "stdio-impl.h" int fpurge (FILE *fp) { #if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7, musl libc */ __fpurge (fp); /* The __fpurge function does not have a return value. */ return 0; #elif HAVE_FPURGE /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin 1.7 */ /* Call the system's fpurge function. */ # undef fpurge # if !HAVE_DECL_FPURGE extern int fpurge (FILE *); # endif int result = fpurge (fp); # if defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ if (result == 0) /* Correct the invariants that fpurge broke. on BSD systems says: "The following always hold: if _flags & __SRD, _w is 0." If this invariant is not fulfilled and the stream is read-write but currently reading, subsequent putc or fputc calls will write directly into the buffer, although they shouldn't be allowed to. */ if ((fp_->_flags & __SRD) != 0) fp_->_w = 0; # endif return result; #else /* Most systems provide FILE as a struct and the necessary bitmask in , because they need it for implementing getc() and putc() as fast macros. */ # if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ fp->_IO_read_end = fp->_IO_read_ptr; fp->_IO_write_ptr = fp->_IO_write_base; /* Avoid memory leak when there is an active ungetc buffer. */ if (fp->_IO_save_base != NULL) { free (fp->_IO_save_base); fp->_IO_save_base = NULL; } return 0; # elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ fp_->_p = fp_->_bf._base; fp_->_r = 0; fp_->_w = ((fp_->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */ ? fp_->_bf._size : 0); /* Avoid memory leak when there is an active ungetc buffer. */ if (fp_ub._base != NULL) { if (fp_ub._base != fp_->_ubuf) free (fp_ub._base); fp_ub._base = NULL; } return 0; # elif defined __EMX__ /* emx+gcc */ fp->_ptr = fp->_buffer; fp->_rcount = 0; fp->_wcount = 0; fp->_ungetc_count = 0; return 0; # elif defined __minix /* Minix */ fp->_ptr = fp->_buf; if (fp->_ptr != NULL) fp->_count = 0; return 0; # elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, MSVC, NonStop Kernel */ fp_->_ptr = fp_->_base; if (fp_->_ptr != NULL) fp_->_cnt = 0; return 0; # elif defined __UCLIBC__ /* uClibc */ # ifdef __STDIO_BUFFERS if (fp->__modeflags & __FLAG_WRITING) fp->__bufpos = fp->__bufstart; else if (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) fp->__bufpos = fp->__bufread; # endif return 0; # elif defined __QNX__ /* QNX */ fp->_Rback = fp->_Back + sizeof (fp->_Back); fp->_Rsave = NULL; if (fp->_Mode & 0x2000 /* _MWRITE */) /* fp->_Buf <= fp->_Next <= fp->_Wend */ fp->_Next = fp->_Buf; else /* fp->_Buf <= fp->_Next <= fp->_Rend */ fp->_Rend = fp->_Next; return 0; # elif defined __MINT__ /* Atari FreeMiNT */ if (fp->__pushed_back) { fp->__bufp = fp->__pushback_bufp; fp->__pushed_back = 0; } /* Preserve the current file position. */ if (fp->__target != -1) fp->__target += fp->__bufp - fp->__buffer; fp->__bufp = fp->__buffer; /* Nothing in the buffer, next getc is nontrivial. */ fp->__get_limit = fp->__bufp; /* Nothing in the buffer, next putc is nontrivial. */ fp->__put_limit = fp->__buffer; return 0; # elif defined EPLAN9 /* Plan9 */ fp->rp = fp->wp = fp->lp = fp->buf; return 0; # else # error "Please port gnulib fpurge.c to your platform! Look at the definitions of fflush, setvbuf and ungetc on your system, then report this to bug-gnulib." # endif #endif } gcal-4.1/lib/tmpdir.h0000664000000000000000000000235713041163523011400 00000000000000/* Determine a temporary directory. Copyright (C) 2001-2002, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include /* Path search algorithm, for tmpnam, tmpfile, etc. If DIR is non-null and exists, uses it; otherwise uses the first of $TMPDIR, P_tmpdir, /tmp that exists. Copies into TMPL a template suitable for use with mk[s]temp. Will fail (-1) if DIR is non-null and doesn't exist, none of the searched dirs exists, or there's not enough space in TMPL. */ extern int path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx, bool try_tmpdir); gcal-4.1/lib/unistd.in.h0000664000000000000000000015141213041163523012011 00000000000000/* Substitute for and wrapper around . Copyright (C) 2003-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_UNISTD_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #ifdef _GL_INCLUDING_UNISTD_H /* Special invocation convention: - On Mac OS X 10.3.9 we have a sequence of nested includes -> -> -> In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_UNISTD_H@ #else /* Normal invocation convention. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ # define _GL_INCLUDING_UNISTD_H # @INCLUDE_NEXT@ @NEXT_UNISTD_H@ # undef _GL_INCLUDING_UNISTD_H #endif /* Get all possible declarations of gethostname(). */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \ && !defined _GL_INCLUDING_WINSOCK2_H # define _GL_INCLUDING_WINSOCK2_H # include # undef _GL_INCLUDING_WINSOCK2_H #endif #if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H #define _@GUARD_PREFIX@_UNISTD_H /* NetBSD 5.0 mis-defines NULL. Also get size_t. */ #include /* mingw doesn't define the SEEK_* or *_FILENO macros in . */ /* MSVC declares 'unlink' in , not in . We must include it before we #define unlink rpl_unlink. */ /* Cygwin 1.7.1 declares symlinkat in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ || ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) \ || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ && defined __CYGWIN__)) \ && ! defined __GLIBC__ # include #endif /* Cygwin 1.7.1 declares unlinkat in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && defined __CYGWIN__ \ && ! defined __GLIBC__ # include #endif /* mingw fails to declare _exit in . */ /* mingw, MSVC, BeOS, Haiku declare environ in , not in . */ /* Solaris declares getcwd not only in but also in . */ /* OSF Tru64 Unix cannot see gnulib rpl_strtod when system is included here. */ /* But avoid namespace pollution on glibc systems. */ #if !defined __GLIBC__ && !defined __osf__ # define __need_system_stdlib_h # include # undef __need_system_stdlib_h #endif /* Native Windows platforms declare chdir, getcwd, rmdir in and/or , not in . They also declare access(), chmod(), close(), dup(), dup2(), isatty(), lseek(), read(), unlink(), write() in . */ #if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) # include /* mingw32, mingw64 */ # include /* mingw64, MSVC 9 */ #elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \ || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include #endif /* AIX and OSF/1 5.1 declare getdomainname in , not in . NonStop Kernel declares gethostname in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \ || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \ && !defined __GLIBC__ # include #endif /* MSVC defines off_t in . May also define off_t to a 64-bit type on native Windows. */ #if !@HAVE_UNISTD_H@ || @WINDOWS_64_BIT_OFF_T@ /* Get off_t. */ # include #endif #if (@GNULIB_READ@ || @GNULIB_WRITE@ \ || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \ || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK) /* Get ssize_t. */ # include #endif /* Get getopt(), optarg, optind, opterr, optopt. But avoid namespace pollution on glibc systems. */ #if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT # define __need_getopt # include #endif #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_UNISTD_INLINE # define _GL_UNISTD_INLINE _GL_INLINE #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Hide some function declarations from . */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h # undef connect # define connect connect_used_without_including_sys_socket_h # undef accept # define accept accept_used_without_including_sys_socket_h # undef bind # define bind bind_used_without_including_sys_socket_h # undef getpeername # define getpeername getpeername_used_without_including_sys_socket_h # undef getsockname # define getsockname getsockname_used_without_including_sys_socket_h # undef getsockopt # define getsockopt getsockopt_used_without_including_sys_socket_h # undef listen # define listen listen_used_without_including_sys_socket_h # undef recv # define recv recv_used_without_including_sys_socket_h # undef send # define send send_used_without_including_sys_socket_h # undef recvfrom # define recvfrom recvfrom_used_without_including_sys_socket_h # undef sendto # define sendto sendto_used_without_including_sys_socket_h # undef setsockopt # define setsockopt setsockopt_used_without_including_sys_socket_h # undef shutdown # define shutdown shutdown_used_without_including_sys_socket_h # else _GL_WARN_ON_USE (socket, "socket() used without including "); _GL_WARN_ON_USE (connect, "connect() used without including "); _GL_WARN_ON_USE (accept, "accept() used without including "); _GL_WARN_ON_USE (bind, "bind() used without including "); _GL_WARN_ON_USE (getpeername, "getpeername() used without including "); _GL_WARN_ON_USE (getsockname, "getsockname() used without including "); _GL_WARN_ON_USE (getsockopt, "getsockopt() used without including "); _GL_WARN_ON_USE (listen, "listen() used without including "); _GL_WARN_ON_USE (recv, "recv() used without including "); _GL_WARN_ON_USE (send, "send() used without including "); _GL_WARN_ON_USE (recvfrom, "recvfrom() used without including "); _GL_WARN_ON_USE (sendto, "sendto() used without including "); _GL_WARN_ON_USE (setsockopt, "setsockopt() used without including "); _GL_WARN_ON_USE (shutdown, "shutdown() used without including "); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including "); # endif # endif #endif /* OS/2 EMX lacks these macros. */ #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif /* Ensure *_OK macros exist. */ #ifndef F_OK # define F_OK 0 # define X_OK 1 # define W_OK 2 # define R_OK 4 #endif /* Declare overridden functions. */ #if defined GNULIB_POSIXCHECK /* The access() function is a security risk. */ _GL_WARN_ON_USE (access, "the access function is a security risk - " "use the gnulib module faccessat instead"); #endif #if @GNULIB_CHDIR@ _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIASWARN (chdir); #elif defined GNULIB_POSIXCHECK # undef chdir # if HAVE_RAW_DECL_CHDIR _GL_WARN_ON_USE (chown, "chdir is not always in - " "use gnulib module chdir for portability"); # endif #endif #if @GNULIB_CHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_DUP2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup2 rpl_dup2 # endif _GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd)); _GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); # else # if !@HAVE_DUP2@ _GL_FUNCDECL_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIASWARN (dup2); #elif defined GNULIB_POSIXCHECK # undef dup2 # if HAVE_RAW_DECL_DUP2 _GL_WARN_ON_USE (dup2, "dup2 is unportable - " "use gnulib module dup2 for portability"); # endif #endif #if @GNULIB_DUP3@ /* Copy the file descriptor OLDFD into file descriptor NEWFD, with the specified flags. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). Close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the Linux man page at . */ # if @HAVE_DUP3@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup3 rpl_dup3 # endif _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); # else _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); # endif _GL_CXXALIASWARN (dup3); #elif defined GNULIB_POSIXCHECK # undef dup3 # if HAVE_RAW_DECL_DUP3 _GL_WARN_ON_USE (dup3, "dup3 is unportable - " "use gnulib module dup3 for portability"); # endif #endif #if @GNULIB_ENVIRON@ # if !@HAVE_DECL_ENVIRON@ /* Set of environment variables and values. An array of strings of the form "VARIABLE=VALUE", terminated with a NULL. */ # if defined __APPLE__ && defined __MACH__ # include # if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR # define _GL_USE_CRT_EXTERNS # endif # endif # ifdef _GL_USE_CRT_EXTERNS # include # define environ (*_NSGetEnviron ()) # else # ifdef __cplusplus extern "C" { # endif extern char **environ; # ifdef __cplusplus } # endif # endif # endif #elif defined GNULIB_POSIXCHECK # if HAVE_RAW_DECL_ENVIRON _GL_UNISTD_INLINE char *** rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is unportable - " "use gnulib module environ for portability"); # undef environ # define environ (*rpl_environ ()) # endif #endif #if @GNULIB_EUIDACCESS@ /* Like access(), except that it uses the effective user id and group id of the current process. */ # if !@HAVE_EUIDACCESS@ _GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode)); _GL_CXXALIASWARN (euidaccess); # if defined GNULIB_POSIXCHECK /* Like access(), this function is a security risk. */ _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - " "use the gnulib module faccessat instead"); # endif #elif defined GNULIB_POSIXCHECK # undef euidaccess # if HAVE_RAW_DECL_EUIDACCESS _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " "use gnulib module euidaccess for portability"); # endif #endif #if @GNULIB_FACCESSAT@ # if !@HAVE_FACCESSAT@ _GL_FUNCDECL_SYS (faccessat, int, (int fd, char const *file, int mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (faccessat, int, (int fd, char const *file, int mode, int flag)); _GL_CXXALIASWARN (faccessat); #elif defined GNULIB_POSIXCHECK # undef faccessat # if HAVE_RAW_DECL_FACCESSAT _GL_WARN_ON_USE (faccessat, "faccessat is not portable - " "use gnulib module faccessat for portability"); # endif #endif #if @GNULIB_FCHDIR@ /* Change the process' current working directory to the directory on which the given file descriptor is open. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if ! @HAVE_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); /* Gnulib internal hooks needed to maintain the fchdir metadata. */ _GL_EXTERN_C int _gl_register_fd (int fd, const char *filename) _GL_ARG_NONNULL ((2)); _GL_EXTERN_C void _gl_unregister_fd (int fd); _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd); _GL_EXTERN_C const char *_gl_directory_name (int fd); # else # if !@HAVE_DECL_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); # endif # endif _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); _GL_CXXALIASWARN (fchdir); #elif defined GNULIB_POSIXCHECK # undef fchdir # if HAVE_RAW_DECL_FCHDIR _GL_WARN_ON_USE (fchdir, "fchdir is unportable - " "use gnulib module fchdir for portability"); # endif #endif #if @GNULIB_FCHOWNAT@ # if @REPLACE_FCHOWNAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fchownat # define fchownat rpl_fchownat # endif _GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # else # if !@HAVE_FCHOWNAT@ _GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # endif _GL_CXXALIASWARN (fchownat); #elif defined GNULIB_POSIXCHECK # undef fchownat # if HAVE_RAW_DECL_FCHOWNAT _GL_WARN_ON_USE (fchownat, "fchownat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FDATASYNC@ /* Synchronize changes to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@ _GL_FUNCDECL_SYS (fdatasync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fdatasync, int, (int fd)); _GL_CXXALIASWARN (fdatasync); #elif defined GNULIB_POSIXCHECK # undef fdatasync # if HAVE_RAW_DECL_FDATASYNC _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " "use gnulib module fdatasync for portability"); # endif #endif #if @GNULIB_FSYNC@ /* Synchronize changes, including metadata, to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if !@HAVE_FSYNC@ _GL_FUNCDECL_SYS (fsync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fsync, int, (int fd)); _GL_CXXALIASWARN (fsync); #elif defined GNULIB_POSIXCHECK # undef fsync # if HAVE_RAW_DECL_FSYNC _GL_WARN_ON_USE (fsync, "fsync is unportable - " "use gnulib module fsync for portability"); # endif #endif #if @GNULIB_FTRUNCATE@ /* Change the size of the file to which FD is opened to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_FTRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftruncate # define ftruncate rpl_ftruncate # endif _GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length)); _GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length)); # else # if !@HAVE_FTRUNCATE@ _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIASWARN (ftruncate); #elif defined GNULIB_POSIXCHECK # undef ftruncate # if HAVE_RAW_DECL_FTRUNCATE _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " "use gnulib module ftruncate for portability"); # endif #endif #if @GNULIB_GETCWD@ /* Get the name of the current working directory, and put it in SIZE bytes of BUF. Return BUF if successful, or NULL if the directory couldn't be determined or SIZE was too small. See the POSIX:2008 specification . Additionally, the gnulib module 'getcwd' guarantees the following GNU extension: If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ # if @REPLACE_GETCWD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getcwd rpl_getcwd # endif _GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); # else /* Need to cast, because on mingw, the second parameter is int size. */ _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); # endif _GL_CXXALIASWARN (getcwd); #elif defined GNULIB_POSIXCHECK # undef getcwd # if HAVE_RAW_DECL_GETCWD _GL_WARN_ON_USE (getcwd, "getcwd is unportable - " "use gnulib module getcwd for portability"); # endif #endif #if @GNULIB_GETDOMAINNAME@ /* Return the NIS domain name of the machine. WARNING! The NIS domain name is unrelated to the fully qualified host name of the machine. It is also unrelated to email addresses. WARNING! The NIS domain name is usually the empty string or "(none)" when not using NIS. Put up to LEN bytes of the NIS domain name into NAME. Null terminate it if the name is shorter than LEN. If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @REPLACE_GETDOMAINNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdomainname # define getdomainname rpl_getdomainname # endif _GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len)); # else # if !@HAVE_DECL_GETDOMAINNAME@ _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (getdomainname); #elif defined GNULIB_POSIXCHECK # undef getdomainname # if HAVE_RAW_DECL_GETDOMAINNAME _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " "use gnulib module getdomainname for portability"); # endif #endif #if @GNULIB_GETDTABLESIZE@ /* Return the maximum number of file descriptors in the current process. In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ # if @REPLACE_GETDTABLESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdtablesize # define getdtablesize rpl_getdtablesize # endif _GL_FUNCDECL_RPL (getdtablesize, int, (void)); _GL_CXXALIAS_RPL (getdtablesize, int, (void)); # else # if !@HAVE_GETDTABLESIZE@ _GL_FUNCDECL_SYS (getdtablesize, int, (void)); # endif _GL_CXXALIAS_SYS (getdtablesize, int, (void)); # endif _GL_CXXALIASWARN (getdtablesize); #elif defined GNULIB_POSIXCHECK # undef getdtablesize # if HAVE_RAW_DECL_GETDTABLESIZE _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " "use gnulib module getdtablesize for portability"); # endif #endif #if @GNULIB_GETGROUPS@ /* Return the supplemental groups that the current process belongs to. It is unspecified whether the effective group id is in the list. If N is 0, return the group count; otherwise, N describes how many entries are available in GROUPS. Return -1 and set errno if N is not 0 and not large enough. Fails with ENOSYS on some systems. */ # if @REPLACE_GETGROUPS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getgroups # define getgroups rpl_getgroups # endif _GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups)); _GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups)); # else # if !@HAVE_GETGROUPS@ _GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIASWARN (getgroups); #elif defined GNULIB_POSIXCHECK # undef getgroups # if HAVE_RAW_DECL_GETGROUPS _GL_WARN_ON_USE (getgroups, "getgroups is unportable - " "use gnulib module getgroups for portability"); # endif #endif #if @GNULIB_GETHOSTNAME@ /* Return the standard host name of the machine. WARNING! The host name may or may not be fully qualified. Put up to LEN bytes of the host name into NAME. Null terminate it if the name is shorter than LEN. If the host name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @UNISTD_H_HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname rpl_gethostname # endif _GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len)); # else # if !@HAVE_GETHOSTNAME@ _GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second parameter is int len. */ _GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (gethostname); #elif @UNISTD_H_HAVE_WINSOCK2_H@ # undef gethostname # define gethostname gethostname_used_without_requesting_gnulib_module_gethostname #elif defined GNULIB_POSIXCHECK # undef gethostname # if HAVE_RAW_DECL_GETHOSTNAME _GL_WARN_ON_USE (gethostname, "gethostname is unportable - " "use gnulib module gethostname for portability"); # endif #endif #if @GNULIB_GETLOGIN@ /* Returns the user's login name, or NULL if it cannot be found. Upon error, returns NULL with errno set. See . Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if !@HAVE_DECL_GETLOGIN@ _GL_FUNCDECL_SYS (getlogin, char *, (void)); # endif _GL_CXXALIAS_SYS (getlogin, char *, (void)); _GL_CXXALIASWARN (getlogin); #elif defined GNULIB_POSIXCHECK # undef getlogin # if HAVE_RAW_DECL_GETLOGIN _GL_WARN_ON_USE (getlogin, "getlogin is unportable - " "use gnulib module getlogin for portability"); # endif #endif #if @GNULIB_GETLOGIN_R@ /* Copies the user's login name to NAME. The array pointed to by NAME has room for SIZE bytes. Returns 0 if successful. Upon error, an error number is returned, or -1 in the case that the login name cannot be found but no specific error is provided (this case is hopefully rare but is left open by the POSIX spec). See . Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if @REPLACE_GETLOGIN_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getlogin_r rpl_getlogin_r # endif _GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size)); # else # if !@HAVE_DECL_GETLOGIN_R@ _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 systems, the second argument is int size. */ _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); # endif _GL_CXXALIASWARN (getlogin_r); #elif defined GNULIB_POSIXCHECK # undef getlogin_r # if HAVE_RAW_DECL_GETLOGIN_R _GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " "use gnulib module getlogin_r for portability"); # endif #endif #if @GNULIB_GETPAGESIZE@ # if @REPLACE_GETPAGESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize rpl_getpagesize # endif _GL_FUNCDECL_RPL (getpagesize, int, (void)); _GL_CXXALIAS_RPL (getpagesize, int, (void)); # else # if !@HAVE_GETPAGESIZE@ # if !defined getpagesize /* This is for POSIX systems. */ # if !defined _gl_getpagesize && defined _SC_PAGESIZE # if ! (defined __VMS && __VMS_VER < 70000000) # define _gl_getpagesize() sysconf (_SC_PAGESIZE) # endif # endif /* This is for older VMS. */ # if !defined _gl_getpagesize && defined __VMS # ifdef __ALPHA # define _gl_getpagesize() 8192 # else # define _gl_getpagesize() 512 # endif # endif /* This is for BeOS. */ # if !defined _gl_getpagesize && @HAVE_OS_H@ # include # if defined B_PAGE_SIZE # define _gl_getpagesize() B_PAGE_SIZE # endif # endif /* This is for AmigaOS4.0. */ # if !defined _gl_getpagesize && defined __amigaos4__ # define _gl_getpagesize() 2048 # endif /* This is for older Unix systems. */ # if !defined _gl_getpagesize && @HAVE_SYS_PARAM_H@ # include # ifdef EXEC_PAGESIZE # define _gl_getpagesize() EXEC_PAGESIZE # else # ifdef NBPG # ifndef CLSIZE # define CLSIZE 1 # endif # define _gl_getpagesize() (NBPG * CLSIZE) # else # ifdef NBPC # define _gl_getpagesize() NBPC # endif # endif # endif # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize() _gl_getpagesize () # else # if !GNULIB_defined_getpagesize_function _GL_UNISTD_INLINE int getpagesize () { return _gl_getpagesize (); } # define GNULIB_defined_getpagesize_function 1 # endif # endif # endif # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t. */ _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void)); # endif # if @HAVE_DECL_GETPAGESIZE@ _GL_CXXALIASWARN (getpagesize); # endif #elif defined GNULIB_POSIXCHECK # undef getpagesize # if HAVE_RAW_DECL_GETPAGESIZE _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " "use gnulib module getpagesize for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Return the next valid login shell on the system, or NULL when the end of the list has been reached. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (getusershell, char *, (void)); # endif _GL_CXXALIAS_SYS (getusershell, char *, (void)); _GL_CXXALIASWARN (getusershell); #elif defined GNULIB_POSIXCHECK # undef getusershell # if HAVE_RAW_DECL_GETUSERSHELL _GL_WARN_ON_USE (getusershell, "getusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Rewind to pointer that is advanced at each getusershell() call. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (setusershell, void, (void)); # endif _GL_CXXALIAS_SYS (setusershell, void, (void)); _GL_CXXALIASWARN (setusershell); #elif defined GNULIB_POSIXCHECK # undef setusershell # if HAVE_RAW_DECL_SETUSERSHELL _GL_WARN_ON_USE (setusershell, "setusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Free the pointer that is advanced at each getusershell() call and associated resources. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (endusershell, void, (void)); # endif _GL_CXXALIAS_SYS (endusershell, void, (void)); _GL_CXXALIASWARN (endusershell); #elif defined GNULIB_POSIXCHECK # undef endusershell # if HAVE_RAW_DECL_ENDUSERSHELL _GL_WARN_ON_USE (endusershell, "endusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GROUP_MEMBER@ /* Determine whether group id is in calling user's group list. */ # if !@HAVE_GROUP_MEMBER@ _GL_FUNCDECL_SYS (group_member, int, (gid_t gid)); # endif _GL_CXXALIAS_SYS (group_member, int, (gid_t gid)); _GL_CXXALIASWARN (group_member); #elif defined GNULIB_POSIXCHECK # undef group_member # if HAVE_RAW_DECL_GROUP_MEMBER _GL_WARN_ON_USE (group_member, "group_member is unportable - " "use gnulib module group-member for portability"); # endif #endif #if @GNULIB_ISATTY@ # if @REPLACE_ISATTY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty rpl_isatty # endif _GL_FUNCDECL_RPL (isatty, int, (int fd)); _GL_CXXALIAS_RPL (isatty, int, (int fd)); # else _GL_CXXALIAS_SYS (isatty, int, (int fd)); # endif _GL_CXXALIASWARN (isatty); #elif defined GNULIB_POSIXCHECK # undef isatty # if HAVE_RAW_DECL_ISATTY _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " "use gnulib module isatty for portability"); # endif #endif #if @GNULIB_LCHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Do not follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_LCHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lchown # define lchown rpl_lchown # endif _GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); # else # if !@HAVE_LCHOWN@ _GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); # endif _GL_CXXALIASWARN (lchown); #elif defined GNULIB_POSIXCHECK # undef lchown # if HAVE_RAW_DECL_LCHOWN _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " "use gnulib module lchown for portability"); # endif #endif #if @GNULIB_LINK@ /* Create a new hard link for an existing file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if @REPLACE_LINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define link rpl_link # endif _GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); # else # if !@HAVE_LINK@ _GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); # endif _GL_CXXALIASWARN (link); #elif defined GNULIB_POSIXCHECK # undef link # if HAVE_RAW_DECL_LINK _GL_WARN_ON_USE (link, "link is unportable - " "use gnulib module link for portability"); # endif #endif #if @GNULIB_LINKAT@ /* Create a new hard link for an existing file, relative to two directories. FLAG controls whether symlinks are followed. Return 0 if successful, otherwise -1 and errno set. */ # if @REPLACE_LINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef linkat # define linkat rpl_linkat # endif _GL_FUNCDECL_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # else # if !@HAVE_LINKAT@ _GL_FUNCDECL_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # endif _GL_CXXALIASWARN (linkat); #elif defined GNULIB_POSIXCHECK # undef linkat # if HAVE_RAW_DECL_LINKAT _GL_WARN_ON_USE (linkat, "linkat is unportable - " "use gnulib module linkat for portability"); # endif #endif #if @GNULIB_LSEEK@ /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. Return the new offset if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_LSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lseek rpl_lseek # endif _GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence)); _GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); # else _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); # endif _GL_CXXALIASWARN (lseek); #elif defined GNULIB_POSIXCHECK # undef lseek # if HAVE_RAW_DECL_LSEEK _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " "systems - use gnulib module lseek for portability"); # endif #endif #if @GNULIB_PIPE@ /* Create a pipe, defaulting to O_BINARY mode. Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. */ # if !@HAVE_PIPE@ _GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pipe, int, (int fd[2])); _GL_CXXALIASWARN (pipe); #elif defined GNULIB_POSIXCHECK # undef pipe # if HAVE_RAW_DECL_PIPE _GL_WARN_ON_USE (pipe, "pipe is unportable - " "use gnulib module pipe-posix for portability"); # endif #endif #if @GNULIB_PIPE2@ /* Create a pipe, applying the given flags when opening the read-end of the pipe and the write-end of the pipe. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. See also the Linux man page at . */ # if @HAVE_PIPE2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define pipe2 rpl_pipe2 # endif _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); # else _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); # endif _GL_CXXALIASWARN (pipe2); #elif defined GNULIB_POSIXCHECK # undef pipe2 # if HAVE_RAW_DECL_PIPE2 _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " "use gnulib module pipe2 for portability"); # endif #endif #if @GNULIB_PREAD@ /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET. Return the number of bytes placed into BUF if successful, otherwise set errno and return -1. 0 indicates EOF. See the POSIX:2008 specification . */ # if @REPLACE_PREAD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pread # define pread rpl_pread # endif _GL_FUNCDECL_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PREAD@ _GL_FUNCDECL_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pread); #elif defined GNULIB_POSIXCHECK # undef pread # if HAVE_RAW_DECL_PREAD _GL_WARN_ON_USE (pread, "pread is unportable - " "use gnulib module pread for portability"); # endif #endif #if @GNULIB_PWRITE@ /* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET. Return the number of bytes written if successful, otherwise set errno and return -1. 0 indicates nothing written. See the POSIX:2008 specification . */ # if @REPLACE_PWRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pwrite # define pwrite rpl_pwrite # endif _GL_FUNCDECL_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PWRITE@ _GL_FUNCDECL_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pwrite); #elif defined GNULIB_POSIXCHECK # undef pwrite # if HAVE_RAW_DECL_PWRITE _GL_WARN_ON_USE (pwrite, "pwrite is unportable - " "use gnulib module pwrite for portability"); # endif #endif #if @GNULIB_READ@ /* Read up to COUNT bytes from file descriptor FD into the buffer starting at BUF. See the POSIX:2008 specification . */ # if @REPLACE_READ@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read rpl_read # endif _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); # else /* Need to cast, because on mingw, the third parameter is unsigned int count and the return type is 'int'. */ _GL_CXXALIAS_SYS_CAST (read, ssize_t, (int fd, void *buf, size_t count)); # endif _GL_CXXALIASWARN (read); #endif #if @GNULIB_READLINK@ /* Read the contents of the symbolic link FILE and place the first BUFSIZE bytes of it into BUF. Return the number of bytes placed into BUF if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_READLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlink rpl_readlink # endif _GL_FUNCDECL_RPL (readlink, ssize_t, (const char *file, char *buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (readlink, ssize_t, (const char *file, char *buf, size_t bufsize)); # else # if !@HAVE_READLINK@ _GL_FUNCDECL_SYS (readlink, ssize_t, (const char *file, char *buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (readlink, ssize_t, (const char *file, char *buf, size_t bufsize)); # endif _GL_CXXALIASWARN (readlink); #elif defined GNULIB_POSIXCHECK # undef readlink # if HAVE_RAW_DECL_READLINK _GL_WARN_ON_USE (readlink, "readlink is unportable - " "use gnulib module readlink for portability"); # endif #endif #if @GNULIB_READLINKAT@ # if @REPLACE_READLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlinkat rpl_readlinkat # endif _GL_FUNCDECL_RPL (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len)); # else # if !@HAVE_READLINKAT@ _GL_FUNCDECL_SYS (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len)); # endif _GL_CXXALIASWARN (readlinkat); #elif defined GNULIB_POSIXCHECK # undef readlinkat # if HAVE_RAW_DECL_READLINKAT _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " "use gnulib module readlinkat for portability"); # endif #endif #if @GNULIB_RMDIR@ /* Remove the directory DIR. */ # if @REPLACE_RMDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define rmdir rpl_rmdir # endif _GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (rmdir, int, (char const *name)); # else _GL_CXXALIAS_SYS (rmdir, int, (char const *name)); # endif _GL_CXXALIASWARN (rmdir); #elif defined GNULIB_POSIXCHECK # undef rmdir # if HAVE_RAW_DECL_RMDIR _GL_WARN_ON_USE (rmdir, "rmdir is unportable - " "use gnulib module rmdir for portability"); # endif #endif #if @GNULIB_SETHOSTNAME@ /* Set the host name of the machine. The host name may or may not be fully qualified. Put LEN bytes of NAME into the host name. Return 0 if successful, otherwise, set errno and return -1. Platforms with no ability to set the hostname return -1 and set errno = ENOSYS. */ # if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@ _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 and FreeBSD 6.4 the second parameter is int. On Solaris 11 2011-10, the first parameter is not const. */ _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); _GL_CXXALIASWARN (sethostname); #elif defined GNULIB_POSIXCHECK # undef sethostname # if HAVE_RAW_DECL_SETHOSTNAME _GL_WARN_ON_USE (sethostname, "sethostname is unportable - " "use gnulib module sethostname for portability"); # endif #endif #if @GNULIB_SLEEP@ /* Pause the execution of the current thread for N seconds. Returns the number of seconds left to sleep. See the POSIX:2008 specification . */ # if @REPLACE_SLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sleep # define sleep rpl_sleep # endif _GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n)); _GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n)); # else # if !@HAVE_SLEEP@ _GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIASWARN (sleep); #elif defined GNULIB_POSIXCHECK # undef sleep # if HAVE_RAW_DECL_SLEEP _GL_WARN_ON_USE (sleep, "sleep is unportable - " "use gnulib module sleep for portability"); # endif #endif #if @GNULIB_SYMLINK@ # if @REPLACE_SYMLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlink # define symlink rpl_symlink # endif _GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file)); # else # if !@HAVE_SYMLINK@ _GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file)); # endif _GL_CXXALIASWARN (symlink); #elif defined GNULIB_POSIXCHECK # undef symlink # if HAVE_RAW_DECL_SYMLINK _GL_WARN_ON_USE (symlink, "symlink is not portable - " "use gnulib module symlink for portability"); # endif #endif #if @GNULIB_SYMLINKAT@ # if @REPLACE_SYMLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlinkat # define symlinkat rpl_symlinkat # endif _GL_FUNCDECL_RPL (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (symlinkat, int, (char const *contents, int fd, char const *file)); # else # if !@HAVE_SYMLINKAT@ _GL_FUNCDECL_SYS (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (symlinkat, int, (char const *contents, int fd, char const *file)); # endif _GL_CXXALIASWARN (symlinkat); #elif defined GNULIB_POSIXCHECK # undef symlinkat # if HAVE_RAW_DECL_SYMLINKAT _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " "use gnulib module symlinkat for portability"); # endif #endif #if @GNULIB_TTYNAME_R@ /* Store at most BUFLEN characters of the pathname of the terminal FD is open on in BUF. Return 0 on success, otherwise an error number. */ # if @REPLACE_TTYNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ttyname_r # define ttyname_r rpl_ttyname_r # endif _GL_FUNCDECL_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen)); # else # if !@HAVE_DECL_TTYNAME_R@ _GL_FUNCDECL_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen)); # endif _GL_CXXALIASWARN (ttyname_r); #elif defined GNULIB_POSIXCHECK # undef ttyname_r # if HAVE_RAW_DECL_TTYNAME_R _GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - " "use gnulib module ttyname_r for portability"); # endif #endif #if @GNULIB_UNLINK@ # if @REPLACE_UNLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink rpl_unlink # endif _GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unlink, int, (char const *file)); # else _GL_CXXALIAS_SYS (unlink, int, (char const *file)); # endif _GL_CXXALIASWARN (unlink); #elif defined GNULIB_POSIXCHECK # undef unlink # if HAVE_RAW_DECL_UNLINK _GL_WARN_ON_USE (unlink, "unlink is not portable - " "use gnulib module unlink for portability"); # endif #endif #if @GNULIB_UNLINKAT@ # if @REPLACE_UNLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlinkat # define unlinkat rpl_unlinkat # endif _GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag)); # else # if !@HAVE_UNLINKAT@ _GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag)); # endif _GL_CXXALIASWARN (unlinkat); #elif defined GNULIB_POSIXCHECK # undef unlinkat # if HAVE_RAW_DECL_UNLINKAT _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_USLEEP@ /* Pause the execution of the current thread for N microseconds. Returns 0 on completion, or -1 on range error. See the POSIX:2001 specification . */ # if @REPLACE_USLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef usleep # define usleep rpl_usleep # endif _GL_FUNCDECL_RPL (usleep, int, (useconds_t n)); _GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); # else # if !@HAVE_USLEEP@ _GL_FUNCDECL_SYS (usleep, int, (useconds_t n)); # endif _GL_CXXALIAS_SYS (usleep, int, (useconds_t n)); # endif _GL_CXXALIASWARN (usleep); #elif defined GNULIB_POSIXCHECK # undef usleep # if HAVE_RAW_DECL_USLEEP _GL_WARN_ON_USE (usleep, "usleep is unportable - " "use gnulib module usleep for portability"); # endif #endif #if @GNULIB_WRITE@ /* Write up to COUNT bytes starting at BUF to file descriptor FD. See the POSIX:2008 specification . */ # if @REPLACE_WRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write rpl_write # endif _GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); # else /* Need to cast, because on mingw, the third parameter is unsigned int count and the return type is 'int'. */ _GL_CXXALIAS_SYS_CAST (write, ssize_t, (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_UNISTD_H */ #endif /* _GL_INCLUDING_UNISTD_H */ #endif /* _@GUARD_PREFIX@_UNISTD_H */ gcal-4.1/lib/dirname.h0000664000000000000000000000277713041163522011525 00000000000000/* Take file names apart into directory and base names. Copyright (C) 1998, 2001, 2003-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef DIRNAME_H_ # define DIRNAME_H_ 1 # include # include # include "dosname.h" # ifndef DIRECTORY_SEPARATOR # define DIRECTORY_SEPARATOR '/' # endif # ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT # define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 # endif #ifdef __cplusplus extern "C" { #endif # if GNULIB_DIRNAME char *base_name (char const *file); char *dir_name (char const *file); # endif char *mdir_name (char const *file); size_t base_len (char const *file) _GL_ATTRIBUTE_PURE; size_t dir_len (char const *file) _GL_ATTRIBUTE_PURE; char *last_component (char const *file) _GL_ATTRIBUTE_PURE; bool strip_trailing_slashes (char *file); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* not DIRNAME_H_ */ gcal-4.1/lib/sched.in.h0000664000000000000000000000332713041163523011572 00000000000000/* A GNU-like . Copyright (C) 2008-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _@GUARD_PREFIX@_SCHED_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_SCHED_H@ # if @HAVE_SYS_CDEFS_H@ # include # endif # @INCLUDE_NEXT@ @NEXT_SCHED_H@ #endif #ifndef _@GUARD_PREFIX@_SCHED_H #define _@GUARD_PREFIX@_SCHED_H /* Get pid_t. This is needed on glibc 2.11 (see glibc bug ) and Mac OS X 10.5. */ #include #ifdef __KLIBC__ /* On OS/2 kLIBC, struct sched_param is in spawn.h */ # include #endif #if !@HAVE_STRUCT_SCHED_PARAM@ # if !GNULIB_defined_struct_sched_param struct sched_param { int sched_priority; }; # define GNULIB_defined_struct_sched_param 1 # endif #endif #if !(defined SCHED_FIFO && defined SCHED_RR && defined SCHED_OTHER) # define SCHED_FIFO 1 # define SCHED_RR 2 # define SCHED_OTHER 0 #endif #endif /* _@GUARD_PREFIX@_SCHED_H */ #endif /* _@GUARD_PREFIX@_SCHED_H */ gcal-4.1/lib/binary-io.h0000664000000000000000000000472413041163522011771 00000000000000/* Binary mode I/O. Copyright (C) 2001, 2003, 2005, 2008-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _BINARY_H #define _BINARY_H /* For systems that distinguish between text and binary I/O. O_BINARY is guaranteed by the gnulib . */ #include /* The MSVC7 doesn't like to be included after '#define fileno ...', so we include it here first. */ #include #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." #endif _GL_INLINE_HEADER_BEGIN #ifndef BINARY_IO_INLINE # define BINARY_IO_INLINE _GL_INLINE #endif /* set_binary_mode (fd, mode) sets the binary/text I/O mode of file descriptor fd to the given mode (must be O_BINARY or O_TEXT) and returns the previous mode. */ #if O_BINARY # if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__ # include /* declares setmode() */ # define set_binary_mode setmode # else # define set_binary_mode _setmode # undef fileno # define fileno _fileno # endif #else /* On reasonable systems, binary I/O is the only choice. */ /* Use a function rather than a macro, to avoid gcc warnings "warning: statement with no effect". */ BINARY_IO_INLINE int set_binary_mode (int fd, int mode) { (void) fd; (void) mode; return O_BINARY; } #endif /* SET_BINARY (fd); changes the file descriptor fd to perform binary I/O. */ #if defined __DJGPP__ || defined __EMX__ # include /* declares isatty() */ /* Avoid putting stdin/stdout in binary mode if it is connected to the console, because that would make it impossible for the user to interrupt the program through Ctrl-C or Ctrl-Break. */ # define SET_BINARY(fd) ((void) (!isatty (fd) ? (set_binary_mode (fd, O_BINARY), 0) : 0)) #else # define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY)) #endif _GL_INLINE_HEADER_END #endif /* _BINARY_H */ gcal-4.1/lib/waitpid.c0000664000000000000000000000175413041163523011535 00000000000000/* Wait for process state change. Copyright (C) 2001-2003, 2005-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include /* Specification. */ #include /* Implementation for native Windows systems. */ #include /* for _cwait, WAIT_CHILD */ pid_t waitpid (pid_t pid, int *statusp, int options) { return _cwait (statusp, pid, WAIT_CHILD); } gcal-4.1/lib/sys_ioctl.in.h0000664000000000000000000000470713041163523012517 00000000000000/* Substitute for and wrapper around . Copyright (C) 2008-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_SYS_IOCTL_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_SYS_IOCTL_H@ # @INCLUDE_NEXT@ @NEXT_SYS_IOCTL_H@ #endif #ifndef _@GUARD_PREFIX@_SYS_IOCTL_H #define _@GUARD_PREFIX@_SYS_IOCTL_H /* AIX 5.1 and Solaris 10 declare ioctl() in and in , but not in . But avoid namespace pollution on glibc systems. */ #ifndef __GLIBC__ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ #if @GNULIB_IOCTL@ # if @REPLACE_IOCTL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ioctl # define ioctl rpl_ioctl # endif _GL_FUNCDECL_RPL (ioctl, int, (int fd, int request, ... /* {void *,char *} arg */)); _GL_CXXALIAS_RPL (ioctl, int, (int fd, int request, ... /* {void *,char *} arg */)); # else # if @SYS_IOCTL_H_HAVE_WINSOCK2_H@ || 1 _GL_FUNCDECL_SYS (ioctl, int, (int fd, int request, ... /* {void *,char *} arg */)); # endif _GL_CXXALIAS_SYS (ioctl, int, (int fd, int request, ... /* {void *,char *} arg */)); # endif _GL_CXXALIASWARN (ioctl); #elif @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ # undef ioctl # define ioctl ioctl_used_without_requesting_gnulib_module_ioctl #elif defined GNULIB_POSIXCHECK # undef ioctl # if HAVE_RAW_DECL_IOCTL _GL_WARN_ON_USE (ioctl, "ioctl does not portably work on sockets - " "use gnulib module ioctl for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_SYS_IOCTL_H */ #endif /* _@GUARD_PREFIX@_SYS_IOCTL_H */ gcal-4.1/lib/wchar.in.h0000664000000000000000000010315313041163523011606 00000000000000/* A substitute for ISO C99 , for platforms that have issues. Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Eric Blake. */ /* * ISO C 99 for platforms that have issues. * * * For now, this just ensures proper prerequisite inclusion order and * the declaration of wcwidth(). */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if (((defined __need_mbstate_t || defined __need_wint_t) \ && !defined __MINGW32__ && !defined __KLIBC__) \ || (defined __hpux \ && ((defined _INTTYPES_INCLUDED && !defined strtoimax) \ || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) \ || (defined __MINGW32__ && defined __STRING_H_SOURCED__) \ || defined _GL_ALREADY_INCLUDING_WCHAR_H) /* Special invocation convention: - Inside glibc and uClibc header files, but not MinGW. - On HP-UX 11.00 we have a sequence of nested includes -> -> , and the latter includes , once indirectly -> -> -> and once directly. In both situations 'wint_t' is not yet defined, therefore we cannot provide the function overrides; instead include only the system's . - With MinGW 3.22, when includes , only some part of is actually processed, and that doesn't include 'mbstate_t'. - On IRIX 6.5, similarly, we have an include -> , and the latter includes . But here, we have no way to detect whether is completely included or is still being included. */ #@INCLUDE_NEXT@ @NEXT_WCHAR_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_WCHAR_H #define _GL_ALREADY_INCLUDING_WCHAR_H #if @HAVE_FEATURES_H@ # include /* for __GLIBC__ */ #endif /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . In some builds of uClibc, is nonexistent and wchar_t is defined by . But avoid namespace pollution on glibc systems. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include #endif #ifndef __GLIBC__ # include # include #endif /* Include the original if it exists. Some builds of uClibc lack it. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_WCHAR_H@ # @INCLUDE_NEXT@ @NEXT_WCHAR_H@ #endif #undef _GL_ALREADY_INCLUDING_WCHAR_H #ifndef _@GUARD_PREFIX@_WCHAR_H #define _@GUARD_PREFIX@_WCHAR_H /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Define wint_t and WEOF. (Also done in wctype.in.h.) */ #if !@HAVE_WINT_T@ && !defined wint_t # define wint_t int # ifndef WEOF # define WEOF -1 # endif #else /* mingw and MSVC define wint_t as 'unsigned short' in . This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be "unchanged by default argument promotions". Override it. */ # if @GNULIB_OVERRIDES_WINT_T@ # if !GNULIB_defined_wint_t # include typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t # define GNULIB_defined_wint_t 1 # endif # endif # ifndef WEOF # define WEOF ((wint_t) -1) # endif #endif /* Override mbstate_t if it is too small. On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for implementing mbrtowc for encodings like UTF-8. */ #if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@ # if !GNULIB_defined_mbstate_t typedef int rpl_mbstate_t; # undef mbstate_t # define mbstate_t rpl_mbstate_t # define GNULIB_defined_mbstate_t 1 # endif #endif /* Convert a single-byte character to a wide character. */ #if @GNULIB_BTOWC@ # if @REPLACE_BTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef btowc # define btowc rpl_btowc # endif _GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (btowc, wint_t, (int c)); # else # if !@HAVE_BTOWC@ _GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (btowc, wint_t, (int c)); # endif _GL_CXXALIASWARN (btowc); #elif defined GNULIB_POSIXCHECK # undef btowc # if HAVE_RAW_DECL_BTOWC _GL_WARN_ON_USE (btowc, "btowc is unportable - " "use gnulib module btowc for portability"); # endif #endif /* Convert a wide character to a single-byte character. */ #if @GNULIB_WCTOB@ # if @REPLACE_WCTOB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctob # define wctob rpl_wctob # endif _GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wctob, int, (wint_t wc)); # else # if !defined wctob && !@HAVE_DECL_WCTOB@ /* wctob is provided by gnulib, or wctob exists but is not declared. */ _GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wctob, int, (wint_t wc)); # endif _GL_CXXALIASWARN (wctob); #elif defined GNULIB_POSIXCHECK # undef wctob # if HAVE_RAW_DECL_WCTOB _GL_WARN_ON_USE (wctob, "wctob is unportable - " "use gnulib module wctob for portability"); # endif #endif /* Test whether *PS is in the initial state. */ #if @GNULIB_MBSINIT@ # if @REPLACE_MBSINIT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsinit # define mbsinit rpl_mbsinit # endif _GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps)); _GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps)); # else # if !@HAVE_MBSINIT@ _GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsinit); #elif defined GNULIB_POSIXCHECK # undef mbsinit # if HAVE_RAW_DECL_MBSINIT _GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - " "use gnulib module mbsinit for portability"); # endif #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBRTOWC@ # if @REPLACE_MBRTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbrtowc # define mbrtowc rpl_mbrtowc # endif _GL_FUNCDECL_RPL (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); _GL_CXXALIAS_RPL (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # else # if !@HAVE_MBRTOWC@ _GL_FUNCDECL_SYS (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbrtowc); #elif defined GNULIB_POSIXCHECK # undef mbrtowc # if HAVE_RAW_DECL_MBRTOWC _GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - " "use gnulib module mbrtowc for portability"); # endif #endif /* Recognize a multibyte character. */ #if @GNULIB_MBRLEN@ # if @REPLACE_MBRLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbrlen # define mbrlen rpl_mbrlen # endif _GL_FUNCDECL_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); _GL_CXXALIAS_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # else # if !@HAVE_MBRLEN@ _GL_FUNCDECL_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbrlen); #elif defined GNULIB_POSIXCHECK # undef mbrlen # if HAVE_RAW_DECL_MBRLEN _GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - " "use gnulib module mbrlen for portability"); # endif #endif /* Convert a string to a wide string. */ #if @GNULIB_MBSRTOWCS@ # if @REPLACE_MBSRTOWCS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsrtowcs # define mbsrtowcs rpl_mbsrtowcs # endif _GL_FUNCDECL_RPL (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)); # else # if !@HAVE_MBSRTOWCS@ _GL_FUNCDECL_SYS (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsrtowcs); #elif defined GNULIB_POSIXCHECK # undef mbsrtowcs # if HAVE_RAW_DECL_MBSRTOWCS _GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - " "use gnulib module mbsrtowcs for portability"); # endif #endif /* Convert a string to a wide string. */ #if @GNULIB_MBSNRTOWCS@ # if @REPLACE_MBSNRTOWCS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsnrtowcs # define mbsnrtowcs rpl_mbsnrtowcs # endif _GL_FUNCDECL_RPL (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)); # else # if !@HAVE_MBSNRTOWCS@ _GL_FUNCDECL_SYS (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsnrtowcs); #elif defined GNULIB_POSIXCHECK # undef mbsnrtowcs # if HAVE_RAW_DECL_MBSNRTOWCS _GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - " "use gnulib module mbsnrtowcs for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCRTOMB@ # if @REPLACE_WCRTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcrtomb # define wcrtomb rpl_wcrtomb # endif _GL_FUNCDECL_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); _GL_CXXALIAS_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # else # if !@HAVE_WCRTOMB@ _GL_FUNCDECL_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcrtomb); #elif defined GNULIB_POSIXCHECK # undef wcrtomb # if HAVE_RAW_DECL_WCRTOMB _GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - " "use gnulib module wcrtomb for portability"); # endif #endif /* Convert a wide string to a string. */ #if @GNULIB_WCSRTOMBS@ # if @REPLACE_WCSRTOMBS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsrtombs # define wcsrtombs rpl_wcsrtombs # endif _GL_FUNCDECL_RPL (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)); # else # if !@HAVE_WCSRTOMBS@ _GL_FUNCDECL_SYS (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcsrtombs); #elif defined GNULIB_POSIXCHECK # undef wcsrtombs # if HAVE_RAW_DECL_WCSRTOMBS _GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - " "use gnulib module wcsrtombs for portability"); # endif #endif /* Convert a wide string to a string. */ #if @GNULIB_WCSNRTOMBS@ # if @REPLACE_WCSNRTOMBS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsnrtombs # define wcsnrtombs rpl_wcsnrtombs # endif _GL_FUNCDECL_RPL (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps)); # else # if !@HAVE_WCSNRTOMBS@ _GL_FUNCDECL_SYS (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcsnrtombs); #elif defined GNULIB_POSIXCHECK # undef wcsnrtombs # if HAVE_RAW_DECL_WCSNRTOMBS _GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - " "use gnulib module wcsnrtombs for portability"); # endif #endif /* Return the number of screen columns needed for WC. */ #if @GNULIB_WCWIDTH@ # if @REPLACE_WCWIDTH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcwidth # define wcwidth rpl_wcwidth # endif _GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); # else # if !@HAVE_DECL_WCWIDTH@ /* wcwidth exists but is not declared. */ _GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); # elif defined __KLIBC__ /* On OS/2 kLIBC, wcwidth is a macro that expands to the name of a static inline function. The implementation of wcwidth in wcwidth.c causes a "conflicting types" error. */ # undef wcwidth # endif _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); # endif _GL_CXXALIASWARN (wcwidth); #elif defined GNULIB_POSIXCHECK # undef wcwidth # if HAVE_RAW_DECL_WCWIDTH _GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - " "use gnulib module wcwidth for portability"); # endif #endif /* Search N wide characters of S for C. */ #if @GNULIB_WMEMCHR@ # if !@HAVE_WMEMCHR@ _GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t); wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (wmemchr, wchar_t *, (const wchar_t *, wchar_t, size_t), const wchar_t *, (const wchar_t *, wchar_t, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN1 (wmemchr, const wchar_t *, (const wchar_t *s, wchar_t c, size_t n)); # else _GL_CXXALIASWARN (wmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef wmemchr # if HAVE_RAW_DECL_WMEMCHR _GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - " "use gnulib module wmemchr for portability"); # endif #endif /* Compare N wide characters of S1 and S2. */ #if @GNULIB_WMEMCMP@ # if !@HAVE_WMEMCMP@ _GL_FUNCDECL_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wmemcmp); #elif defined GNULIB_POSIXCHECK # undef wmemcmp # if HAVE_RAW_DECL_WMEMCMP _GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - " "use gnulib module wmemcmp for portability"); # endif #endif /* Copy N wide characters of SRC to DEST. */ #if @GNULIB_WMEMCPY@ # if !@HAVE_WMEMCPY@ _GL_FUNCDECL_SYS (wmemcpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemcpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wmemcpy); #elif defined GNULIB_POSIXCHECK # undef wmemcpy # if HAVE_RAW_DECL_WMEMCPY _GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - " "use gnulib module wmemcpy for portability"); # endif #endif /* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for overlapping memory areas. */ #if @GNULIB_WMEMMOVE@ # if !@HAVE_WMEMMOVE@ _GL_FUNCDECL_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wmemmove); #elif defined GNULIB_POSIXCHECK # undef wmemmove # if HAVE_RAW_DECL_WMEMMOVE _GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - " "use gnulib module wmemmove for portability"); # endif #endif /* Set N wide characters of S to C. */ #if @GNULIB_WMEMSET@ # if !@HAVE_WMEMSET@ _GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); # endif _GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN (wmemset); #elif defined GNULIB_POSIXCHECK # undef wmemset # if HAVE_RAW_DECL_WMEMSET _GL_WARN_ON_USE (wmemset, "wmemset is unportable - " "use gnulib module wmemset for portability"); # endif #endif /* Return the number of wide characters in S. */ #if @GNULIB_WCSLEN@ # if !@HAVE_WCSLEN@ _GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s)); _GL_CXXALIASWARN (wcslen); #elif defined GNULIB_POSIXCHECK # undef wcslen # if HAVE_RAW_DECL_WCSLEN _GL_WARN_ON_USE (wcslen, "wcslen is unportable - " "use gnulib module wcslen for portability"); # endif #endif /* Return the number of wide characters in S, but at most MAXLEN. */ #if @GNULIB_WCSNLEN@ # if !@HAVE_WCSNLEN@ _GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)); _GL_CXXALIASWARN (wcsnlen); #elif defined GNULIB_POSIXCHECK # undef wcsnlen # if HAVE_RAW_DECL_WCSNLEN _GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - " "use gnulib module wcsnlen for portability"); # endif #endif /* Copy SRC to DEST. */ #if @GNULIB_WCSCPY@ # if !@HAVE_WCSCPY@ _GL_FUNCDECL_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcscpy); #elif defined GNULIB_POSIXCHECK # undef wcscpy # if HAVE_RAW_DECL_WCSCPY _GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - " "use gnulib module wcscpy for portability"); # endif #endif /* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */ #if @GNULIB_WCPCPY@ # if !@HAVE_WCPCPY@ _GL_FUNCDECL_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcpcpy); #elif defined GNULIB_POSIXCHECK # undef wcpcpy # if HAVE_RAW_DECL_WCPCPY _GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - " "use gnulib module wcpcpy for portability"); # endif #endif /* Copy no more than N wide characters of SRC to DEST. */ #if @GNULIB_WCSNCPY@ # if !@HAVE_WCSNCPY@ _GL_FUNCDECL_SYS (wcsncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcsncpy); #elif defined GNULIB_POSIXCHECK # undef wcsncpy # if HAVE_RAW_DECL_WCSNCPY _GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - " "use gnulib module wcsncpy for portability"); # endif #endif /* Copy no more than N characters of SRC to DEST, returning the address of the last character written into DEST. */ #if @GNULIB_WCPNCPY@ # if !@HAVE_WCPNCPY@ _GL_FUNCDECL_SYS (wcpncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcpncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcpncpy); #elif defined GNULIB_POSIXCHECK # undef wcpncpy # if HAVE_RAW_DECL_WCPNCPY _GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - " "use gnulib module wcpncpy for portability"); # endif #endif /* Append SRC onto DEST. */ #if @GNULIB_WCSCAT@ # if !@HAVE_WCSCAT@ _GL_FUNCDECL_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcscat); #elif defined GNULIB_POSIXCHECK # undef wcscat # if HAVE_RAW_DECL_WCSCAT _GL_WARN_ON_USE (wcscat, "wcscat is unportable - " "use gnulib module wcscat for portability"); # endif #endif /* Append no more than N wide characters of SRC onto DEST. */ #if @GNULIB_WCSNCAT@ # if !@HAVE_WCSNCAT@ _GL_FUNCDECL_SYS (wcsncat, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncat, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcsncat); #elif defined GNULIB_POSIXCHECK # undef wcsncat # if HAVE_RAW_DECL_WCSNCAT _GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - " "use gnulib module wcsncat for portability"); # endif #endif /* Compare S1 and S2. */ #if @GNULIB_WCSCMP@ # if !@HAVE_WCSCMP@ _GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscmp); #elif defined GNULIB_POSIXCHECK # undef wcscmp # if HAVE_RAW_DECL_WCSCMP _GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - " "use gnulib module wcscmp for portability"); # endif #endif /* Compare no more than N wide characters of S1 and S2. */ #if @GNULIB_WCSNCMP@ # if !@HAVE_WCSNCMP@ _GL_FUNCDECL_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsncmp); #elif defined GNULIB_POSIXCHECK # undef wcsncmp # if HAVE_RAW_DECL_WCSNCMP _GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - " "use gnulib module wcsncmp for portability"); # endif #endif /* Compare S1 and S2, ignoring case. */ #if @GNULIB_WCSCASECMP@ # if !@HAVE_WCSCASECMP@ _GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscasecmp); #elif defined GNULIB_POSIXCHECK # undef wcscasecmp # if HAVE_RAW_DECL_WCSCASECMP _GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - " "use gnulib module wcscasecmp for portability"); # endif #endif /* Compare no more than N chars of S1 and S2, ignoring case. */ #if @GNULIB_WCSNCASECMP@ # if !@HAVE_WCSNCASECMP@ _GL_FUNCDECL_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsncasecmp); #elif defined GNULIB_POSIXCHECK # undef wcsncasecmp # if HAVE_RAW_DECL_WCSNCASECMP _GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - " "use gnulib module wcsncasecmp for portability"); # endif #endif /* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE category of the current locale. */ #if @GNULIB_WCSCOLL@ # if !@HAVE_WCSCOLL@ _GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); # endif _GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscoll); #elif defined GNULIB_POSIXCHECK # undef wcscoll # if HAVE_RAW_DECL_WCSCOLL _GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - " "use gnulib module wcscoll for portability"); # endif #endif /* Transform S2 into array pointed to by S1 such that if wcscmp is applied to two transformed strings the result is the as applying 'wcscoll' to the original strings. */ #if @GNULIB_WCSXFRM@ # if !@HAVE_WCSXFRM@ _GL_FUNCDECL_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); # endif _GL_CXXALIAS_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsxfrm); #elif defined GNULIB_POSIXCHECK # undef wcsxfrm # if HAVE_RAW_DECL_WCSXFRM _GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - " "use gnulib module wcsxfrm for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_WCSDUP@ # if !@HAVE_WCSDUP@ _GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s)); # endif _GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); _GL_CXXALIASWARN (wcsdup); #elif defined GNULIB_POSIXCHECK # undef wcsdup # if HAVE_RAW_DECL_WCSDUP _GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - " "use gnulib module wcsdup for portability"); # endif #endif /* Find the first occurrence of WC in WCS. */ #if @GNULIB_WCSCHR@ # if !@HAVE_WCSCHR@ _GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcschr (const wchar_t *, wchar_t); wchar_t * std::wcschr (wchar_t *, wchar_t); } */ _GL_CXXALIAS_SYS_CAST2 (wcschr, wchar_t *, (const wchar_t *, wchar_t), const wchar_t *, (const wchar_t *, wchar_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); # else _GL_CXXALIASWARN (wcschr); # endif #elif defined GNULIB_POSIXCHECK # undef wcschr # if HAVE_RAW_DECL_WCSCHR _GL_WARN_ON_USE (wcschr, "wcschr is unportable - " "use gnulib module wcschr for portability"); # endif #endif /* Find the last occurrence of WC in WCS. */ #if @GNULIB_WCSRCHR@ # if !@HAVE_WCSRCHR@ _GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcsrchr (const wchar_t *, wchar_t); wchar_t * std::wcsrchr (wchar_t *, wchar_t); } */ _GL_CXXALIAS_SYS_CAST2 (wcsrchr, wchar_t *, (const wchar_t *, wchar_t), const wchar_t *, (const wchar_t *, wchar_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); # else _GL_CXXALIASWARN (wcsrchr); # endif #elif defined GNULIB_POSIXCHECK # undef wcsrchr # if HAVE_RAW_DECL_WCSRCHR _GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - " "use gnulib module wcsrchr for portability"); # endif #endif /* Return the length of the initial segmet of WCS which consists entirely of wide characters not in REJECT. */ #if @GNULIB_WCSCSPN@ # if !@HAVE_WCSCSPN@ _GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)); _GL_CXXALIASWARN (wcscspn); #elif defined GNULIB_POSIXCHECK # undef wcscspn # if HAVE_RAW_DECL_WCSCSPN _GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - " "use gnulib module wcscspn for portability"); # endif #endif /* Return the length of the initial segmet of WCS which consists entirely of wide characters in ACCEPT. */ #if @GNULIB_WCSSPN@ # if !@HAVE_WCSSPN@ _GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN (wcsspn); #elif defined GNULIB_POSIXCHECK # undef wcsspn # if HAVE_RAW_DECL_WCSSPN _GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - " "use gnulib module wcsspn for portability"); # endif #endif /* Find the first occurrence in WCS of any character in ACCEPT. */ #if @GNULIB_WCSPBRK@ # if !@HAVE_WCSPBRK@ _GL_FUNCDECL_SYS (wcspbrk, wchar_t *, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *); wchar_t * std::wcspbrk (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcspbrk, wchar_t *, (const wchar_t *, const wchar_t *), const wchar_t *, (const wchar_t *, const wchar_t *)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcspbrk, wchar_t *, (wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN1 (wcspbrk, const wchar_t *, (const wchar_t *wcs, const wchar_t *accept)); # else _GL_CXXALIASWARN (wcspbrk); # endif #elif defined GNULIB_POSIXCHECK # undef wcspbrk # if HAVE_RAW_DECL_WCSPBRK _GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - " "use gnulib module wcspbrk for portability"); # endif #endif /* Find the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_WCSSTR@ # if !@HAVE_WCSSTR@ _GL_FUNCDECL_SYS (wcsstr, wchar_t *, (const wchar_t *haystack, const wchar_t *needle) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *); wchar_t * std::wcsstr (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcsstr, wchar_t *, (const wchar_t *, const wchar_t *), const wchar_t *, (const wchar_t *, const wchar_t *)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsstr, wchar_t *, (wchar_t *haystack, const wchar_t *needle)); _GL_CXXALIASWARN1 (wcsstr, const wchar_t *, (const wchar_t *haystack, const wchar_t *needle)); # else _GL_CXXALIASWARN (wcsstr); # endif #elif defined GNULIB_POSIXCHECK # undef wcsstr # if HAVE_RAW_DECL_WCSSTR _GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - " "use gnulib module wcsstr for portability"); # endif #endif /* Divide WCS into tokens separated by characters in DELIM. */ #if @GNULIB_WCSTOK@ # if !@HAVE_WCSTOK@ _GL_FUNCDECL_SYS (wcstok, wchar_t *, (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); # endif _GL_CXXALIAS_SYS (wcstok, wchar_t *, (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); _GL_CXXALIASWARN (wcstok); #elif defined GNULIB_POSIXCHECK # undef wcstok # if HAVE_RAW_DECL_WCSTOK _GL_WARN_ON_USE (wcstok, "wcstok is unportable - " "use gnulib module wcstok for portability"); # endif #endif /* Determine number of column positions required for first N wide characters (or fewer if S ends before this) in S. */ #if @GNULIB_WCSWIDTH@ # if @REPLACE_WCSWIDTH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcswidth # define wcswidth rpl_wcswidth # endif _GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n)); # else # if !@HAVE_WCSWIDTH@ _GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n)); # endif _GL_CXXALIASWARN (wcswidth); #elif defined GNULIB_POSIXCHECK # undef wcswidth # if HAVE_RAW_DECL_WCSWIDTH _GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - " "use gnulib module wcswidth for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif gcal-4.1/lib/sys_uio.in.h0000664000000000000000000000317413041163523012176 00000000000000/* Substitute for . Copyright (C) 2011-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ # if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ # endif @PRAGMA_COLUMNS@ #ifndef _@GUARD_PREFIX@_SYS_UIO_H #if @HAVE_SYS_UIO_H@ /* On OpenBSD 4.4, assumes prior inclusion of . */ # include /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_SYS_UIO_H@ #endif #ifndef _@GUARD_PREFIX@_SYS_UIO_H #define _@GUARD_PREFIX@_SYS_UIO_H #if !@HAVE_SYS_UIO_H@ /* A platform that lacks . */ /* Get 'size_t' and 'ssize_t'. */ # include # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_struct_iovec /* All known platforms that lack also lack any declaration of struct iovec in any other header. */ struct iovec { void *iov_base; size_t iov_len; }; # define GNULIB_defined_struct_iovec 1 # endif # ifdef __cplusplus } # endif #endif #endif /* _@GUARD_PREFIX@_SYS_UIO_H */ #endif /* _@GUARD_PREFIX@_SYS_UIO_H */ gcal-4.1/lib/putenv.c0000664000000000000000000001176313041163523011416 00000000000000/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2017 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include /* Include errno.h *after* sys/types.h to work around header problems on AIX 3.2.5. */ #include #ifndef __set_errno # define __set_errno(ev) ((errno) = (ev)) #endif #include #include #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include #endif #if _LIBC # if HAVE_GNU_LD # define environ __environ # else extern char **environ; # endif #endif #if _LIBC /* This lock protects against simultaneous modifications of 'environ'. */ # include __libc_lock_define_initialized (static, envlock) # define LOCK __libc_lock_lock (envlock) # define UNLOCK __libc_lock_unlock (envlock) #else # define LOCK # define UNLOCK #endif static int _unsetenv (const char *name) { size_t len; #if !HAVE_DECL__PUTENV char **ep; #endif if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) { __set_errno (EINVAL); return -1; } len = strlen (name); #if HAVE_DECL__PUTENV { int putenv_result, putenv_errno; char *name_ = malloc (len + 2); memcpy (name_, name, len); name_[len] = '='; name_[len + 1] = 0; putenv_result = _putenv (name_); putenv_errno = errno; free (name_); __set_errno (putenv_errno); return putenv_result; } #else LOCK; ep = environ; while (*ep != NULL) if (!strncmp (*ep, name, len) && (*ep)[len] == '=') { /* Found it. Remove this pointer by moving later ones back. */ char **dp = ep; do dp[0] = dp[1]; while (*dp++); /* Continue the loop in case NAME appears again. */ } else ++ep; UNLOCK; return 0; #endif } /* Put STRING, which is of the form "NAME=VALUE", in the environment. If STRING contains no '=', then remove STRING from the environment. */ int putenv (char *string) { const char *name_end = strchr (string, '='); char **ep; if (name_end == NULL) { /* Remove the variable from the environment. */ return _unsetenv (string); } #if HAVE_DECL__PUTENV /* Rely on _putenv to allocate the new environment. If other parts of the application use _putenv, the !HAVE_DECL__PUTENV code would fight over who owns the environ vector, causing a crash. */ if (name_end[1]) return _putenv (string); else { /* _putenv ("NAME=") unsets NAME, so invoke _putenv ("NAME= ") to allocate the environ vector and then replace the new entry with "NAME=". */ int putenv_result, putenv_errno; char *name_x = malloc (name_end - string + sizeof "= "); if (!name_x) return -1; memcpy (name_x, string, name_end - string + 1); name_x[name_end - string + 1] = ' '; name_x[name_end - string + 2] = 0; putenv_result = _putenv (name_x); putenv_errno = errno; for (ep = environ; *ep; ep++) if (strcmp (*ep, name_x) == 0) { *ep = string; break; } # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ if (putenv_result == 0) { /* _putenv propagated "NAME= " into the subprocess environment; fix that by calling SetEnvironmentVariable directly. */ name_x[name_end - string] = 0; putenv_result = SetEnvironmentVariable (name_x, "") ? 0 : -1; putenv_errno = ENOMEM; /* ENOMEM is the only way to fail. */ } # endif free (name_x); __set_errno (putenv_errno); return putenv_result; } #else for (ep = environ; *ep; ep++) if (strncmp (*ep, string, name_end - string) == 0 && (*ep)[name_end - string] == '=') break; if (*ep) *ep = string; else { static char **last_environ = NULL; size_t size = ep - environ; char **new_environ = malloc ((size + 2) * sizeof *new_environ); if (! new_environ) return -1; new_environ[0] = string; memcpy (new_environ + 1, environ, (size + 1) * sizeof *new_environ); free (last_environ); last_environ = new_environ; environ = new_environ; } return 0; #endif } gcal-4.1/lib/spawnattr_setflags.c0000664000000000000000000000320013041163523013773 00000000000000/* Copyright (C) 2000, 2004, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #define ALL_FLAGS (POSIX_SPAWN_RESETIDS \ | POSIX_SPAWN_SETPGROUP \ | POSIX_SPAWN_SETSIGDEF \ | POSIX_SPAWN_SETSIGMASK \ | POSIX_SPAWN_SETSCHEDPARAM \ | POSIX_SPAWN_SETSCHEDULER \ | POSIX_SPAWN_USEVFORK) /* Store flags in the attribute structure. */ int posix_spawnattr_setflags (posix_spawnattr_t *attr, short int flags) { /* Check no invalid bits are set. */ if (flags & ~ALL_FLAGS) return EINVAL; /* Store the flag word. */ attr->_flags = flags; return 0; } gcal-4.1/lib/alloca.in.h0000664000000000000000000000400113041163522011724 00000000000000/* Memory allocation on the stack. Copyright (C) 1995, 1999, 2001-2004, 2006-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H means there is a real alloca function. */ #ifndef _GL_ALLOCA_H #define _GL_ALLOCA_H /* alloca (N) returns a pointer to N bytes of memory allocated on the stack, which will last until the function returns. Use of alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns, - for huge N (say, N >= 65536) - you never know how large (or small) the stack is, and when the stack cannot fulfill the memory allocation request, the program just crashes. */ #ifndef alloca # ifdef __GNUC__ # define alloca __builtin_alloca # elif defined _AIX # define alloca __alloca # elif defined _MSC_VER # include # define alloca _alloca # elif defined __DECC && defined __VMS # define alloca __ALLOCA # elif defined __TANDEM && defined _TNS_E_TARGET # ifdef __cplusplus extern "C" # endif void *_alloca (unsigned short); # pragma intrinsic (_alloca) # define alloca _alloca # elif defined __MVS__ # include # else # include # ifdef __cplusplus extern "C" # endif void *alloca (size_t); # endif #endif #endif /* _GL_ALLOCA_H */ gcal-4.1/lib/dup-safer.c0000664000000000000000000000202613041163522011752 00000000000000/* Invoke dup, but avoid some glitches. Copyright (C) 2001, 2004-2006, 2009-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert. */ #include #include "unistd-safer.h" #include #include /* Like dup, but do not return STDIN_FILENO, STDOUT_FILENO, or STDERR_FILENO. */ int dup_safer (int fd) { return fcntl (fd, F_DUPFD, STDERR_FILENO + 1); } gcal-4.1/lib/wait-process.c0000664000000000000000000002607413041163523012516 00000000000000/* Waiting for a subprocess to finish. Copyright (C) 2001-2003, 2005-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include "wait-process.h" #include #include #include #include #include #include #include "error.h" #include "fatal-signal.h" #include "xalloc.h" #include "gettext.h" #define _(str) gettext (str) #define SIZEOF(a) (sizeof(a) / sizeof(a[0])) #if defined _MSC_VER || defined __MINGW32__ #define WIN32_LEAN_AND_MEAN #include /* The return value of spawnvp() is really a process handle as returned by CreateProcess(). Therefore we can kill it using TerminateProcess. */ #define kill(pid,sig) TerminateProcess ((HANDLE) (pid), sig) #endif /* Type of an entry in the slaves array. The 'used' bit determines whether this entry is currently in use. (If pid_t was an atomic type like sig_atomic_t, we could just set the 'child' field to 0 when unregistering a slave process, and wouldn't need the 'used' field.) The 'used' and 'child' fields are accessed from within the cleanup_slaves() action, therefore we mark them as 'volatile'. */ typedef struct { volatile sig_atomic_t used; volatile pid_t child; } slaves_entry_t; /* The registered slave subprocesses. */ static slaves_entry_t static_slaves[32]; static slaves_entry_t * volatile slaves = static_slaves; static sig_atomic_t volatile slaves_count = 0; static size_t slaves_allocated = SIZEOF (static_slaves); /* The termination signal for slave subprocesses. 2003-10-07: Terminator becomes Governator. */ #ifdef SIGHUP # define TERMINATOR SIGHUP #else # define TERMINATOR SIGTERM #endif /* The cleanup action. It gets called asynchronously. */ static void cleanup_slaves (void) { for (;;) { /* Get the last registered slave. */ size_t n = slaves_count; if (n == 0) break; n--; slaves_count = n; /* Skip unused entries in the slaves array. */ if (slaves[n].used) { pid_t slave = slaves[n].child; /* Kill the slave. */ kill (slave, TERMINATOR); } } } /* Register a subprocess as being a slave process. This means that the subprocess will be terminated when its creator receives a catchable fatal signal or exits normally. Registration ends when wait_subprocess() notices that the subprocess has exited. */ void register_slave_subprocess (pid_t child) { static bool cleanup_slaves_registered = false; if (!cleanup_slaves_registered) { atexit (cleanup_slaves); at_fatal_signal (cleanup_slaves); cleanup_slaves_registered = true; } /* Try to store the new slave in an unused entry of the slaves array. */ { slaves_entry_t *s = slaves; slaves_entry_t *s_end = s + slaves_count; for (; s < s_end; s++) if (!s->used) { /* The two uses of 'volatile' in the slaves_entry_t type above (and ISO C 99 section 5.1.2.3.(5)) ensure that we mark the entry as used only after the child pid has been written to the memory location s->child. */ s->child = child; s->used = 1; return; } } if (slaves_count == slaves_allocated) { /* Extend the slaves array. Note that we cannot use xrealloc(), because then the cleanup_slaves() function could access an already deallocated array. */ slaves_entry_t *old_slaves = slaves; size_t new_slaves_allocated = 2 * slaves_allocated; slaves_entry_t *new_slaves = (slaves_entry_t *) malloc (new_slaves_allocated * sizeof (slaves_entry_t)); if (new_slaves == NULL) { /* xalloc_die() will call exit() which will invoke cleanup_slaves(). Additionally we need to kill child, because it's not yet among the slaves list. */ kill (child, TERMINATOR); xalloc_die (); } memcpy (new_slaves, old_slaves, slaves_allocated * sizeof (slaves_entry_t)); slaves = new_slaves; slaves_allocated = new_slaves_allocated; /* Now we can free the old slaves array. */ if (old_slaves != static_slaves) free (old_slaves); } /* The three uses of 'volatile' in the types above (and ISO C 99 section 5.1.2.3.(5)) ensure that we increment the slaves_count only after the new slave and its 'used' bit have been written to the memory locations that make up slaves[slaves_count]. */ slaves[slaves_count].child = child; slaves[slaves_count].used = 1; slaves_count++; } /* Unregister a child from the list of slave subprocesses. */ static void unregister_slave_subprocess (pid_t child) { /* The easiest way to remove an entry from a list that can be used by an asynchronous signal handler is just to mark it as unused. For this, we rely on sig_atomic_t. */ slaves_entry_t *s = slaves; slaves_entry_t *s_end = s + slaves_count; for (; s < s_end; s++) if (s->used && s->child == child) s->used = 0; } /* Wait for a subprocess to finish. Return its exit code. If it didn't terminate correctly, exit if exit_on_error is true, otherwise return 127. */ int wait_subprocess (pid_t child, const char *progname, bool ignore_sigpipe, bool null_stderr, bool slave_process, bool exit_on_error, int *termsigp) { #if HAVE_WAITID && defined WNOWAIT && 0 /* Commented out because waitid() without WEXITED and with WNOWAIT doesn't work: On Solaris 7 and OSF/1 4.0, it returns -1 and sets errno = ECHILD, and on HP-UX 10.20 it just hangs. */ /* Use of waitid() with WNOWAIT avoids a race condition: If slave_process is true, and this process sleeps a very long time between the return from waitpid() and the execution of unregister_slave_subprocess(), and meanwhile another process acquires the same PID as child, and then - still before unregister_slave_subprocess() - this process gets a fatal signal, it would kill the other totally unrelated process. */ siginfo_t info; if (termsigp != NULL) *termsigp = 0; for (;;) { if (waitid (P_PID, child, &info, WEXITED | (slave_process ? WNOWAIT : 0)) < 0) { # ifdef EINTR if (errno == EINTR) continue; # endif if (exit_on_error || !null_stderr) error (exit_on_error ? EXIT_FAILURE : 0, errno, _("%s subprocess"), progname); return 127; } /* info.si_code is set to one of CLD_EXITED, CLD_KILLED, CLD_DUMPED, CLD_TRAPPED, CLD_STOPPED, CLD_CONTINUED. Loop until the program terminates. */ if (info.si_code == CLD_EXITED || info.si_code == CLD_KILLED || info.si_code == CLD_DUMPED) break; } /* The child process has exited or was signalled. */ if (slave_process) { /* Unregister the child from the list of slave subprocesses, so that later, when we exit, we don't kill a totally unrelated process which may have acquired the same pid. */ unregister_slave_subprocess (child); /* Now remove the zombie from the process list. */ for (;;) { if (waitid (P_PID, child, &info, WEXITED) < 0) { # ifdef EINTR if (errno == EINTR) continue; # endif if (exit_on_error || !null_stderr) error (exit_on_error ? EXIT_FAILURE : 0, errno, _("%s subprocess"), progname); return 127; } break; } } switch (info.si_code) { case CLD_KILLED: case CLD_DUMPED: if (termsigp != NULL) *termsigp = info.si_status; /* TODO: or info.si_signo? */ # ifdef SIGPIPE if (info.si_status == SIGPIPE && ignore_sigpipe) return 0; # endif if (exit_on_error || (!null_stderr && termsigp == NULL)) error (exit_on_error ? EXIT_FAILURE : 0, 0, _("%s subprocess got fatal signal %d"), progname, info.si_status); return 127; case CLD_EXITED: if (info.si_status == 127) { if (exit_on_error || !null_stderr) error (exit_on_error ? EXIT_FAILURE : 0, 0, _("%s subprocess failed"), progname); return 127; } return info.si_status; default: abort (); } #else /* waitpid() is just as portable as wait() nowadays. */ int status; if (termsigp != NULL) *termsigp = 0; status = 0; for (;;) { int result = waitpid (child, &status, 0); if (result != child) { # ifdef EINTR if (errno == EINTR) continue; # endif # if 0 /* defined ECHILD */ if (errno == ECHILD) { /* Child process nonexistent?! Assume it terminated successfully. */ status = 0; break; } # endif if (exit_on_error || !null_stderr) error (exit_on_error ? EXIT_FAILURE : 0, errno, _("%s subprocess"), progname); return 127; } /* One of WIFSIGNALED (status), WIFEXITED (status), WIFSTOPPED (status) must always be true, since we did not specify WCONTINUED in the waitpid() call. Loop until the program terminates. */ if (!WIFSTOPPED (status)) break; } /* The child process has exited or was signalled. */ if (slave_process) /* Unregister the child from the list of slave subprocesses, so that later, when we exit, we don't kill a totally unrelated process which may have acquired the same pid. */ unregister_slave_subprocess (child); if (WIFSIGNALED (status)) { if (termsigp != NULL) *termsigp = WTERMSIG (status); # ifdef SIGPIPE if (WTERMSIG (status) == SIGPIPE && ignore_sigpipe) return 0; # endif if (exit_on_error || (!null_stderr && termsigp == NULL)) error (exit_on_error ? EXIT_FAILURE : 0, 0, _("%s subprocess got fatal signal %d"), progname, (int) WTERMSIG (status)); return 127; } if (!WIFEXITED (status)) abort (); if (WEXITSTATUS (status) == 127) { if (exit_on_error || !null_stderr) error (exit_on_error ? EXIT_FAILURE : 0, 0, _("%s subprocess failed"), progname); return 127; } return WEXITSTATUS (status); #endif } gcal-4.1/lib/open.c0000664000000000000000000001375513041163522011040 00000000000000/* Open a descriptor to a file. Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_open doesn't recurse to rpl_open. */ #define __need_system_fcntl_h #include /* Get the original definition of open. It might be defined as a macro. */ #include #include #undef __need_system_fcntl_h static int orig_open (const char *filename, int flags, mode_t mode) { return open (filename, flags, mode); } /* Specification. */ /* Write "fcntl.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ #include "fcntl.h" #include #include #include #include #include #include #ifndef REPLACE_OPEN_DIRECTORY # define REPLACE_OPEN_DIRECTORY 0 #endif int open (const char *filename, int flags, ...) { mode_t mode; int fd; mode = 0; if (flags & O_CREAT) { va_list arg; va_start (arg, flags); /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 creates crashing code when 'mode_t' is smaller than 'int'. */ mode = va_arg (arg, PROMOTED_MODE_T); va_end (arg); } #if GNULIB_defined_O_NONBLOCK /* The only known platform that lacks O_NONBLOCK is mingw, but it also lacks named pipes and Unix sockets, which are the only two file types that require non-blocking handling in open(). Therefore, it is safe to ignore O_NONBLOCK here. It is handy that mingw also lacks openat(), so that is also covered here. */ flags &= ~O_NONBLOCK; #endif #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ if (strcmp (filename, "/dev/null") == 0) filename = "NUL"; #endif #if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and one of O_CREAT, O_WRONLY, O_RDWR is specified, then fail. Rationale: POSIX says that "A pathname that contains at least one non-slash character and that ends with one or more trailing slashes shall be resolved as if a single dot character ( '.' ) were appended to the pathname." and "The special filename dot shall refer to the directory specified by its predecessor." If the named file already exists as a directory, then - if O_CREAT is specified, open() must fail because of the semantics of O_CREAT, - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX says that it fails with errno = EISDIR in this case. If the named file does not exist or does not name a directory, then - if O_CREAT is specified, open() must fail since open() cannot create directories, - if O_WRONLY or O_RDWR is specified, open() must fail because the file does not contain a '.' directory. */ if (flags & (O_CREAT | O_WRONLY | O_RDWR)) { size_t len = strlen (filename); if (len > 0 && filename[len - 1] == '/') { errno = EISDIR; return -1; } } #endif fd = orig_open (filename, flags, mode); #if REPLACE_FCHDIR /* Implementing fchdir and fdopendir requires the ability to open a directory file descriptor. If open doesn't support that (as on mingw), we use a dummy file that behaves the same as directories on Linux (ie. always reports EOF on attempts to read()), and override fstat() in fchdir.c to hide the fact that we have a dummy. */ if (REPLACE_OPEN_DIRECTORY && fd < 0 && errno == EACCES && ((flags & O_ACCMODE) == O_RDONLY || (O_SEARCH != O_RDONLY && (flags & O_ACCMODE) == O_SEARCH))) { struct stat statbuf; if (stat (filename, &statbuf) == 0 && S_ISDIR (statbuf.st_mode)) { /* Maximum recursion depth of 1. */ fd = open ("/dev/null", flags, mode); if (0 <= fd) fd = _gl_register_fd (fd, filename); } else errno = EACCES; } #endif #if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and fd does not refer to a directory, then fail. Rationale: POSIX says that "A pathname that contains at least one non-slash character and that ends with one or more trailing slashes shall be resolved as if a single dot character ( '.' ) were appended to the pathname." and "The special filename dot shall refer to the directory specified by its predecessor." If the named file without the slash is not a directory, open() must fail with ENOTDIR. */ if (fd >= 0) { /* We know len is positive, since open did not fail with ENOENT. */ size_t len = strlen (filename); if (filename[len - 1] == '/') { struct stat statbuf; if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) { close (fd); errno = ENOTDIR; return -1; } } } #endif #if REPLACE_FCHDIR if (!REPLACE_OPEN_DIRECTORY && 0 <= fd) fd = _gl_register_fd (fd, filename); #endif return fd; } gcal-4.1/lib/float.c0000664000000000000000000000250413041163522011172 00000000000000/* Auxiliary definitions for . Copyright (C) 2011-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2011. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__ const union gl_long_double_union gl_LDBL_MAX = { { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL } }; #elif defined __i386__ const union gl_long_double_union gl_LDBL_MAX = { { 0xFFFFFFFF, 0xFFFFFFFF, 32766 } }; #else /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; #endif gcal-4.1/lib/ref-del.sin0000664000000000000000000000167513041163523011763 00000000000000# Remove this package from a list of references stored in a text file. # # Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, see . # # Written by Bruno Haible . # /^# Packages using this file: / { s/# Packages using this file:// s/ @PACKAGE@ / / s/^/# Packages using this file:/ } gcal-4.1/lib/fatal-signal.h0000664000000000000000000000640313041163522012436 00000000000000/* Emergency actions in case of a fatal signal. Copyright (C) 2003-2004, 2009-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2003. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifdef __cplusplus extern "C" { #endif /* It is often useful to do some cleanup action when a usually fatal signal terminates the process, like removing a temporary file or killing a subprocess that may be stuck waiting for a device, pipe or network input. Such signals are SIGHUP, SIGINT, SIGPIPE, SIGTERM, and possibly others. The limitation of this facility is that it cannot work for SIGKILL. Signals with a SIG_IGN handler are considered to be non-fatal. The functions in this file assume that when a SIG_IGN handler is installed for a signal, it was installed before any functions in this file were called and it stays so for the whole lifetime of the process. */ /* Register a cleanup function to be executed when a catchable fatal signal occurs. Restrictions for the cleanup function: - The cleanup function can do all kinds of system calls. - It can also access application dependent memory locations and data structures provided they are in a consistent state. One way to ensure this is through block_fatal_signals()/unblock_fatal_signals(), see below. Another - more tricky - way to ensure this is the careful use of 'volatile'. However, - malloc() and similarly complex facilities are not safe to be called because they are not guaranteed to be in a consistent state. - Also, the cleanup function must not block the catchable fatal signals and leave them blocked upon return. The cleanup function is executed asynchronously. It is unspecified whether during its execution the catchable fatal signals are blocked or not. */ extern void at_fatal_signal (void (*function) (void)); /* Sometimes it is necessary to block the usually fatal signals while the data structures being accessed by the cleanup action are being built or reorganized. This is the case, for example, when a temporary file or directory is created through mkstemp() or mkdtemp(), because these functions create the temporary file or directory _before_ returning its name to the application. */ /* Temporarily delay the catchable fatal signals. The signals will be blocked (= delayed) until the next call to unblock_fatal_signals(). If the signals are already blocked, a further call to block_fatal_signals() has no effect. */ extern void block_fatal_signals (void); /* Stop delaying the catchable fatal signals. */ extern void unblock_fatal_signals (void); #ifdef __cplusplus } #endif gcal-4.1/lib/config.charset0000664000000000000000000005473613041163522012557 00000000000000#! /bin/sh # Output a system dependent table of character encoding aliases. # # Copyright (C) 2000-2004, 2006-2017 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, see . # # The table consists of lines of the form # ALIAS CANONICAL # # ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". # ALIAS is compared in a case sensitive way. # # CANONICAL is the GNU canonical name for this character encoding. # It must be an encoding supported by libiconv. Support by GNU libc is # also desirable. CANONICAL is case insensitive. Usually an upper case # MIME charset name is preferred. # The current list of GNU canonical charset names is as follows. # # name MIME? used by which systems # (darwin = Mac OS X, woe32 = native Windows) # # ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin cygwin # ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin # ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin # ISO-8859-3 Y glibc solaris cygwin # ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin # ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin # ISO-8859-6 Y glibc aix hpux solaris cygwin # ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin cygwin # ISO-8859-8 Y glibc aix hpux osf solaris cygwin # ISO-8859-9 Y glibc aix hpux irix osf solaris darwin cygwin # ISO-8859-13 glibc netbsd openbsd darwin cygwin # ISO-8859-14 glibc cygwin # ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin cygwin # KOI8-R Y glibc solaris freebsd netbsd openbsd darwin # KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin # KOI8-T glibc # CP437 dos # CP775 dos # CP850 aix osf dos # CP852 dos # CP855 dos # CP856 aix # CP857 dos # CP861 dos # CP862 dos # CP864 dos # CP865 dos # CP866 freebsd netbsd openbsd darwin dos # CP869 dos # CP874 woe32 dos # CP922 aix # CP932 aix cygwin woe32 dos # CP943 aix # CP949 osf darwin woe32 dos # CP950 woe32 dos # CP1046 aix # CP1124 aix # CP1125 dos # CP1129 aix # CP1131 darwin # CP1250 woe32 # CP1251 glibc solaris netbsd openbsd darwin cygwin woe32 # CP1252 aix woe32 # CP1253 woe32 # CP1254 woe32 # CP1255 glibc woe32 # CP1256 woe32 # CP1257 woe32 # GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin # EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin # EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin # EUC-TW glibc aix hpux irix osf solaris netbsd # BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin # BIG5-HKSCS glibc solaris darwin # GBK glibc aix osf solaris darwin cygwin woe32 dos # GB18030 glibc solaris netbsd darwin # SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin # JOHAB glibc solaris woe32 # TIS-620 glibc aix hpux osf solaris cygwin # VISCII Y glibc # TCVN5712-1 glibc # ARMSCII-8 glibc darwin # GEORGIAN-PS glibc cygwin # PT154 glibc # HP-ROMAN8 hpux # HP-ARABIC8 hpux # HP-GREEK8 hpux # HP-HEBREW8 hpux # HP-TURKISH8 hpux # HP-KANA8 hpux # DEC-KANJI osf # DEC-HANYU osf # UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin # # Note: Names which are not marked as being a MIME name should not be used in # Internet protocols for information interchange (mail, news, etc.). # # Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications # must understand both names and treat them as equivalent. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM host="$1" os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` echo "# This file contains a table of character encoding aliases," echo "# suitable for operating system '${os}'." echo "# It was automatically generated from config.charset." # List of references, updated during installation: echo "# Packages using this file: " case "$os" in linux-gnulibc1*) # Linux libc5 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "C ASCII" echo "POSIX ASCII" for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \ en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \ en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \ es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \ et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \ fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \ it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \ sv_FI sv_SE; do echo "$l ISO-8859-1" echo "$l.iso-8859-1 ISO-8859-1" echo "$l.iso-8859-15 ISO-8859-15" echo "$l.iso-8859-15@euro ISO-8859-15" echo "$l@euro ISO-8859-15" echo "$l.cp-437 CP437" echo "$l.cp-850 CP850" echo "$l.cp-1252 CP1252" echo "$l.cp-1252@euro CP1252" #echo "$l.atari-st ATARI-ST" # not a commonly used encoding echo "$l.utf-8 UTF-8" echo "$l.utf-8@euro UTF-8" done for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \ sl_SI sr sr_CS sr_YU; do echo "$l ISO-8859-2" echo "$l.iso-8859-2 ISO-8859-2" echo "$l.cp-852 CP852" echo "$l.cp-1250 CP1250" echo "$l.utf-8 UTF-8" done for l in mk mk_MK ru ru_RU; do echo "$l ISO-8859-5" echo "$l.iso-8859-5 ISO-8859-5" echo "$l.koi8-r KOI8-R" echo "$l.cp-866 CP866" echo "$l.cp-1251 CP1251" echo "$l.utf-8 UTF-8" done for l in ar ar_SA; do echo "$l ISO-8859-6" echo "$l.iso-8859-6 ISO-8859-6" echo "$l.cp-864 CP864" #echo "$l.cp-868 CP868" # not a commonly used encoding echo "$l.cp-1256 CP1256" echo "$l.utf-8 UTF-8" done for l in el el_GR gr gr_GR; do echo "$l ISO-8859-7" echo "$l.iso-8859-7 ISO-8859-7" echo "$l.cp-869 CP869" echo "$l.cp-1253 CP1253" echo "$l.cp-1253@euro CP1253" echo "$l.utf-8 UTF-8" echo "$l.utf-8@euro UTF-8" done for l in he he_IL iw iw_IL; do echo "$l ISO-8859-8" echo "$l.iso-8859-8 ISO-8859-8" echo "$l.cp-862 CP862" echo "$l.cp-1255 CP1255" echo "$l.utf-8 UTF-8" done for l in tr tr_TR; do echo "$l ISO-8859-9" echo "$l.iso-8859-9 ISO-8859-9" echo "$l.cp-857 CP857" echo "$l.cp-1254 CP1254" echo "$l.utf-8 UTF-8" done for l in lt lt_LT lv lv_LV; do #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name echo "$l ISO-8859-13" done for l in ru_UA uk uk_UA; do echo "$l KOI8-U" done for l in zh zh_CN; do #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name echo "$l GB2312" done for l in ja ja_JP ja_JP.EUC; do echo "$l EUC-JP" done for l in ko ko_KR; do echo "$l EUC-KR" done for l in th th_TH; do echo "$l TIS-620" done for l in fa fa_IR; do #echo "$l ISIRI-3342" # a broken encoding echo "$l.utf-8 UTF-8" done ;; linux* | *-gnu*) # With glibc-2.1 or newer, we don't need any canonicalization, # because glibc has iconv and both glibc and libiconv support all # GNU canonical names directly. Therefore, the Makefile does not # need to install the alias file at all. # The following applies only to glibc-2.0.x and older libcs. echo "ISO_646.IRV:1983 ASCII" ;; aix*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-6 ISO-8859-6" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "IBM-850 CP850" echo "IBM-856 CP856" echo "IBM-921 ISO-8859-13" echo "IBM-922 CP922" echo "IBM-932 CP932" echo "IBM-943 CP943" echo "IBM-1046 CP1046" echo "IBM-1124 CP1124" echo "IBM-1129 CP1129" echo "IBM-1252 CP1252" echo "IBM-eucCN GB2312" echo "IBM-eucJP EUC-JP" echo "IBM-eucKR EUC-KR" echo "IBM-eucTW EUC-TW" echo "big5 BIG5" echo "GBK GBK" echo "TIS-620 TIS-620" echo "UTF-8 UTF-8" ;; hpux*) echo "iso88591 ISO-8859-1" echo "iso88592 ISO-8859-2" echo "iso88595 ISO-8859-5" echo "iso88596 ISO-8859-6" echo "iso88597 ISO-8859-7" echo "iso88598 ISO-8859-8" echo "iso88599 ISO-8859-9" echo "iso885915 ISO-8859-15" echo "roman8 HP-ROMAN8" echo "arabic8 HP-ARABIC8" echo "greek8 HP-GREEK8" echo "hebrew8 HP-HEBREW8" echo "turkish8 HP-TURKISH8" echo "kana8 HP-KANA8" echo "tis620 TIS-620" echo "big5 BIG5" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "hp15CN GB2312" #echo "ccdc ?" # what is this? echo "SJIS SHIFT_JIS" echo "utf8 UTF-8" ;; irix*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-9 ISO-8859-9" echo "eucCN GB2312" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" ;; osf*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "cp850 CP850" echo "big5 BIG5" echo "dechanyu DEC-HANYU" echo "dechanzi GB2312" echo "deckanji DEC-KANJI" echo "deckorean EUC-KR" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "GBK GBK" echo "KSC5601 CP949" echo "sdeckanji EUC-JP" echo "SJIS SHIFT_JIS" echo "TACTIS TIS-620" echo "UTF-8 UTF-8" ;; solaris*) echo "646 ASCII" echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-3 ISO-8859-3" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-6 ISO-8859-6" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "koi8-r KOI8-R" echo "ansi-1251 CP1251" echo "BIG5 BIG5" echo "Big5-HKSCS BIG5-HKSCS" echo "gb2312 GB2312" echo "GBK GBK" echo "GB18030 GB18030" echo "cns11643 EUC-TW" echo "5601 EUC-KR" echo "ko_KR.johap92 JOHAB" echo "eucJP EUC-JP" echo "PCK SHIFT_JIS" echo "TIS620.2533 TIS-620" #echo "sun_eu_greek ?" # what is this? echo "UTF-8 UTF-8" ;; freebsd*) # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "C ASCII" echo "US-ASCII ASCII" for l in la_LN lt_LN; do echo "$l.ASCII ASCII" done for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do echo "$l.ISO_8859-1 ISO-8859-1" echo "$l.DIS_8859-15 ISO-8859-15" done for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do echo "$l.ISO_8859-2 ISO-8859-2" done for l in la_LN lt_LT; do echo "$l.ISO_8859-4 ISO-8859-4" done for l in ru_RU ru_SU; do echo "$l.KOI8-R KOI8-R" echo "$l.ISO_8859-5 ISO-8859-5" echo "$l.CP866 CP866" done echo "uk_UA.KOI8-U KOI8-U" echo "zh_TW.BIG5 BIG5" echo "zh_TW.Big5 BIG5" echo "zh_CN.EUC GB2312" echo "ja_JP.EUC EUC-JP" echo "ja_JP.SJIS SHIFT_JIS" echo "ja_JP.Shift_JIS SHIFT_JIS" echo "ko_KR.EUC EUC-KR" ;; netbsd*) echo "646 ASCII" echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-13 ISO-8859-13" echo "ISO8859-15 ISO-8859-15" echo "eucCN GB2312" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "BIG5 BIG5" echo "SJIS SHIFT_JIS" ;; openbsd*) echo "646 ASCII" echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-13 ISO-8859-13" echo "ISO8859-15 ISO-8859-15" ;; darwin[56]*) # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "C ASCII" for l in en_AU en_CA en_GB en_US la_LN; do echo "$l.US-ASCII ASCII" done for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \ nl_NL no_NO pt_PT sv_SE; do echo "$l ISO-8859-1" echo "$l.ISO8859-1 ISO-8859-1" echo "$l.ISO8859-15 ISO-8859-15" done for l in la_LN; do echo "$l.ISO8859-1 ISO-8859-1" echo "$l.ISO8859-15 ISO-8859-15" done for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do echo "$l.ISO8859-2 ISO-8859-2" done for l in la_LN lt_LT; do echo "$l.ISO8859-4 ISO-8859-4" done for l in ru_RU; do echo "$l.KOI8-R KOI8-R" echo "$l.ISO8859-5 ISO-8859-5" echo "$l.CP866 CP866" done for l in bg_BG; do echo "$l.CP1251 CP1251" done echo "uk_UA.KOI8-U KOI8-U" echo "zh_TW.BIG5 BIG5" echo "zh_TW.Big5 BIG5" echo "zh_CN.EUC GB2312" echo "ja_JP.EUC EUC-JP" echo "ja_JP.SJIS SHIFT_JIS" echo "ko_KR.EUC EUC-KR" ;; darwin*) # Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is # useless: # - It returns the empty string when LANG is set to a locale of the # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 # LC_CTYPE file. # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. # - The documentation says: # "... all code that calls BSD system routines should ensure # that the const *char parameters of these routines are in UTF-8 # encoding. All BSD system functions expect their string # parameters to be in UTF-8 encoding and nothing else." # It also says # "An additional caveat is that string parameters for files, # paths, and other file-system entities must be in canonical # UTF-8. In a canonical UTF-8 Unicode string, all decomposable # characters are decomposed ..." # but this is not true: You can pass non-decomposed UTF-8 strings # to file system functions, and it is the OS which will convert # them to decomposed UTF-8 before accessing the file system. # - The Apple Terminal application displays UTF-8 by default. # - However, other applications are free to use different encodings: # - xterm uses ISO-8859-1 by default. # - TextEdit uses MacRoman by default. # We prefer UTF-8 over decomposed UTF-8-MAC because one should # minimize the use of decomposed Unicode. Unfortunately, through the # Darwin file system, decomposed UTF-8 strings are leaked into user # space nevertheless. # Then there are also the locales with encodings other than US-ASCII # and UTF-8. These locales can be occasionally useful to users (e.g. # when grepping through ISO-8859-1 encoded text files), when all their # file names are in US-ASCII. echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-13 ISO-8859-13" echo "ISO8859-15 ISO-8859-15" echo "KOI8-R KOI8-R" echo "KOI8-U KOI8-U" echo "CP866 CP866" echo "CP949 CP949" echo "CP1131 CP1131" echo "CP1251 CP1251" echo "eucCN GB2312" echo "GB2312 GB2312" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "Big5 BIG5" echo "Big5HKSCS BIG5-HKSCS" echo "GBK GBK" echo "GB18030 GB18030" echo "SJIS SHIFT_JIS" echo "ARMSCII-8 ARMSCII-8" echo "PT154 PT154" #echo "ISCII-DEV ?" echo "* UTF-8" ;; beos* | haiku*) # BeOS and Haiku have a single locale, and it has UTF-8 encoding. echo "* UTF-8" ;; msdosdjgpp*) # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "#" echo "# The encodings given here may not all be correct." echo "# If you find that the encoding given for your language and" echo "# country is not the one your DOS machine actually uses, just" echo "# correct it in this file, and send a mail to" echo "# Juan Manuel Guerrero " echo "# and Bruno Haible ." echo "#" echo "C ASCII" # ISO-8859-1 languages echo "ca CP850" echo "ca_ES CP850" echo "da CP865" # not CP850 ?? echo "da_DK CP865" # not CP850 ?? echo "de CP850" echo "de_AT CP850" echo "de_CH CP850" echo "de_DE CP850" echo "en CP850" echo "en_AU CP850" # not CP437 ?? echo "en_CA CP850" echo "en_GB CP850" echo "en_NZ CP437" echo "en_US CP437" echo "en_ZA CP850" # not CP437 ?? echo "es CP850" echo "es_AR CP850" echo "es_BO CP850" echo "es_CL CP850" echo "es_CO CP850" echo "es_CR CP850" echo "es_CU CP850" echo "es_DO CP850" echo "es_EC CP850" echo "es_ES CP850" echo "es_GT CP850" echo "es_HN CP850" echo "es_MX CP850" echo "es_NI CP850" echo "es_PA CP850" echo "es_PY CP850" echo "es_PE CP850" echo "es_SV CP850" echo "es_UY CP850" echo "es_VE CP850" echo "et CP850" echo "et_EE CP850" echo "eu CP850" echo "eu_ES CP850" echo "fi CP850" echo "fi_FI CP850" echo "fr CP850" echo "fr_BE CP850" echo "fr_CA CP850" echo "fr_CH CP850" echo "fr_FR CP850" echo "ga CP850" echo "ga_IE CP850" echo "gd CP850" echo "gd_GB CP850" echo "gl CP850" echo "gl_ES CP850" echo "id CP850" # not CP437 ?? echo "id_ID CP850" # not CP437 ?? echo "is CP861" # not CP850 ?? echo "is_IS CP861" # not CP850 ?? echo "it CP850" echo "it_CH CP850" echo "it_IT CP850" echo "lt CP775" echo "lt_LT CP775" echo "lv CP775" echo "lv_LV CP775" echo "nb CP865" # not CP850 ?? echo "nb_NO CP865" # not CP850 ?? echo "nl CP850" echo "nl_BE CP850" echo "nl_NL CP850" echo "nn CP865" # not CP850 ?? echo "nn_NO CP865" # not CP850 ?? echo "no CP865" # not CP850 ?? echo "no_NO CP865" # not CP850 ?? echo "pt CP850" echo "pt_BR CP850" echo "pt_PT CP850" echo "sv CP850" echo "sv_SE CP850" # ISO-8859-2 languages echo "cs CP852" echo "cs_CZ CP852" echo "hr CP852" echo "hr_HR CP852" echo "hu CP852" echo "hu_HU CP852" echo "pl CP852" echo "pl_PL CP852" echo "ro CP852" echo "ro_RO CP852" echo "sk CP852" echo "sk_SK CP852" echo "sl CP852" echo "sl_SI CP852" echo "sq CP852" echo "sq_AL CP852" echo "sr CP852" # CP852 or CP866 or CP855 ?? echo "sr_CS CP852" # CP852 or CP866 or CP855 ?? echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? # ISO-8859-3 languages echo "mt CP850" echo "mt_MT CP850" # ISO-8859-5 languages echo "be CP866" echo "be_BE CP866" echo "bg CP866" # not CP855 ?? echo "bg_BG CP866" # not CP855 ?? echo "mk CP866" # not CP855 ?? echo "mk_MK CP866" # not CP855 ?? echo "ru CP866" echo "ru_RU CP866" echo "uk CP1125" echo "uk_UA CP1125" # ISO-8859-6 languages echo "ar CP864" echo "ar_AE CP864" echo "ar_DZ CP864" echo "ar_EG CP864" echo "ar_IQ CP864" echo "ar_IR CP864" echo "ar_JO CP864" echo "ar_KW CP864" echo "ar_MA CP864" echo "ar_OM CP864" echo "ar_QA CP864" echo "ar_SA CP864" echo "ar_SY CP864" # ISO-8859-7 languages echo "el CP869" echo "el_GR CP869" # ISO-8859-8 languages echo "he CP862" echo "he_IL CP862" # ISO-8859-9 languages echo "tr CP857" echo "tr_TR CP857" # Japanese echo "ja CP932" echo "ja_JP CP932" # Chinese echo "zh_CN GBK" echo "zh_TW CP950" # not CP938 ?? # Korean echo "kr CP949" # not CP934 ?? echo "kr_KR CP949" # not CP934 ?? # Thai echo "th CP874" echo "th_TH CP874" # Other echo "eo CP850" echo "eo_EO CP850" ;; esac gcal-4.1/lib/spawn_faction_addclose.c0000664000000000000000000000400513041163523014555 00000000000000/* Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #if !_LIBC # define __sysconf(open_max) getdtablesize () #endif #if !HAVE_WORKING_POSIX_SPAWN # include "spawn_int.h" #endif /* Add an action to FILE-ACTIONS which tells the implementation to call 'close' for the given file descriptor during the 'spawn' call. */ int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *file_actions, int fd) #undef posix_spawn_file_actions_addclose { int maxfd = __sysconf (_SC_OPEN_MAX); /* Test for the validity of the file descriptor. */ if (fd < 0 || fd >= maxfd) return EBADF; #if HAVE_WORKING_POSIX_SPAWN return posix_spawn_file_actions_addclose (file_actions, fd); #else /* Allocate more memory if needed. */ if (file_actions->_used == file_actions->_allocated && __posix_spawn_file_actions_realloc (file_actions) != 0) /* This can only mean we ran out of memory. */ return ENOMEM; { struct __spawn_action *rec; /* Add the new value. */ rec = &file_actions->_actions[file_actions->_used]; rec->tag = spawn_do_close; rec->action.open_action.fd = fd; /* Account for the new entry. */ ++file_actions->_used; return 0; } #endif } gcal-4.1/lib/regex_internal.h0000664000000000000000000006173713041163523013116 00000000000000/* Extended regular expression matching and search library. Copyright (C) 2002-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with the GNU C Library; if not, see . */ #ifndef _REGEX_INTERNAL_H #define _REGEX_INTERNAL_H 1 #include #include #include #include #include #include #include #include #include #include #include #include "intprops.h" #ifdef _LIBC # include # define lock_define(name) __libc_lock_define (, name) # define lock_init(lock) (__libc_lock_init (lock), 0) # define lock_fini(lock) 0 # define lock_lock(lock) __libc_lock_lock (lock) # define lock_unlock(lock) __libc_lock_unlock (lock) #elif defined GNULIB_LOCK && !defined USE_UNLOCKED_IO # include "glthread/lock.h" /* Use gl_lock_define if empty macro arguments are known to work. Otherwise, fall back on less-portable substitutes. */ # if ((defined __GNUC__ && !defined __STRICT_ANSI__) \ || (defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__)) # define lock_define(name) gl_lock_define (, name) # elif USE_POSIX_THREADS # define lock_define(name) pthread_mutex_t name; # elif USE_PTH_THREADS # define lock_define(name) pth_mutex_t name; # elif USE_SOLARIS_THREADS # define lock_define(name) mutex_t name; # elif USE_WINDOWS_THREADS # define lock_define(name) gl_lock_t name; # else # define lock_define(name) # endif # define lock_init(lock) glthread_lock_init (&(lock)) # define lock_fini(lock) glthread_lock_destroy (&(lock)) # define lock_lock(lock) glthread_lock_lock (&(lock)) # define lock_unlock(lock) glthread_lock_unlock (&(lock)) #elif defined GNULIB_PTHREAD && !defined USE_UNLOCKED_IO # include # define lock_define(name) pthread_mutex_t name; # define lock_init(lock) pthread_mutex_init (&(lock), 0) # define lock_fini(lock) pthread_mutex_destroy (&(lock)) # define lock_lock(lock) pthread_mutex_lock (&(lock)) # define lock_unlock(lock) pthread_mutex_unlock (&(lock)) #else # define lock_define(name) # define lock_init(lock) 0 # define lock_fini(lock) ((void) 0) /* The 'dfa' avoids an "unused variable 'dfa'" warning from GCC. */ # define lock_lock(lock) ((void) dfa) # define lock_unlock(lock) ((void) 0) #endif /* In case that the system doesn't have isblank(). */ #if !defined _LIBC && ! (defined isblank || (HAVE_ISBLANK && HAVE_DECL_ISBLANK)) # define isblank(ch) ((ch) == ' ' || (ch) == '\t') #endif #ifdef _LIBC # ifndef _RE_DEFINE_LOCALE_FUNCTIONS # define _RE_DEFINE_LOCALE_FUNCTIONS 1 # include # include # endif #endif /* This is for other GNU distributions with internationalized messages. */ #if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC # include # ifdef _LIBC # undef gettext # define gettext(msgid) \ __dcgettext (_libc_intl_domainname, msgid, LC_MESSAGES) # endif #else # define gettext(msgid) (msgid) #endif #ifndef gettext_noop /* This define is so xgettext can find the internationalizable strings. */ # define gettext_noop(String) String #endif #if (defined MB_CUR_MAX && HAVE_WCTYPE_H && HAVE_ISWCTYPE) || _LIBC # define RE_ENABLE_I18N #endif #define BE(expr, val) __builtin_expect (expr, val) /* Number of ASCII characters. */ #define ASCII_CHARS 0x80 /* Number of single byte characters. */ #define SBC_MAX (UCHAR_MAX + 1) #define COLL_ELEM_LEN_MAX 8 /* The character which represents newline. */ #define NEWLINE_CHAR '\n' #define WIDE_NEWLINE_CHAR L'\n' /* Rename to standard API for using out of glibc. */ #ifndef _LIBC # undef __wctype # undef __iswctype # define __wctype wctype # define __iswalnum iswalnum # define __iswctype iswctype # define __towlower towlower # define __towupper towupper # define __btowc btowc # define __mbrtowc mbrtowc # define __wcrtomb wcrtomb # define __regfree regfree # define attribute_hidden #endif /* not _LIBC */ #if __GNUC__ < 3 + (__GNUC_MINOR__ < 1) # define __attribute__(arg) #endif #ifndef SSIZE_MAX # define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) #endif /* The type of indexes into strings. This is signed, not size_t, since the API requires indexes to fit in regoff_t anyway, and using signed integers makes the code a bit smaller and presumably faster. The traditional GNU regex implementation uses int for indexes. The POSIX-compatible implementation uses a possibly-wider type. The name 'Idx' is three letters to minimize the hassle of reindenting a lot of regex code that formerly used 'int'. */ typedef regoff_t Idx; #ifdef _REGEX_LARGE_OFFSETS # define IDX_MAX SSIZE_MAX #else # define IDX_MAX INT_MAX #endif /* A hash value, suitable for computing hash tables. */ typedef __re_size_t re_hashval_t; /* An integer used to represent a set of bits. It must be unsigned, and must be at least as wide as unsigned int. */ typedef unsigned long int bitset_word_t; /* All bits set in a bitset_word_t. */ #define BITSET_WORD_MAX ULONG_MAX /* Number of bits in a bitset_word_t. For portability to hosts with padding bits, do not use '(sizeof (bitset_word_t) * CHAR_BIT)'; instead, deduce it directly from BITSET_WORD_MAX. Avoid greater-than-32-bit integers and unconditional shifts by more than 31 bits, as they're not portable. */ #if BITSET_WORD_MAX == 0xffffffffUL # define BITSET_WORD_BITS 32 #elif BITSET_WORD_MAX >> 31 >> 4 == 1 # define BITSET_WORD_BITS 36 #elif BITSET_WORD_MAX >> 31 >> 16 == 1 # define BITSET_WORD_BITS 48 #elif BITSET_WORD_MAX >> 31 >> 28 == 1 # define BITSET_WORD_BITS 60 #elif BITSET_WORD_MAX >> 31 >> 31 >> 1 == 1 # define BITSET_WORD_BITS 64 #elif BITSET_WORD_MAX >> 31 >> 31 >> 9 == 1 # define BITSET_WORD_BITS 72 #elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 3 == 1 # define BITSET_WORD_BITS 128 #elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 == 1 # define BITSET_WORD_BITS 256 #elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 > 1 # define BITSET_WORD_BITS 257 /* any value > SBC_MAX will do here */ # if BITSET_WORD_BITS <= SBC_MAX # error "Invalid SBC_MAX" # endif #else # error "Add case for new bitset_word_t size" #endif /* Number of bitset_word_t values in a bitset_t. */ #define BITSET_WORDS ((SBC_MAX + BITSET_WORD_BITS - 1) / BITSET_WORD_BITS) typedef bitset_word_t bitset_t[BITSET_WORDS]; typedef bitset_word_t *re_bitset_ptr_t; typedef const bitset_word_t *re_const_bitset_ptr_t; #define PREV_WORD_CONSTRAINT 0x0001 #define PREV_NOTWORD_CONSTRAINT 0x0002 #define NEXT_WORD_CONSTRAINT 0x0004 #define NEXT_NOTWORD_CONSTRAINT 0x0008 #define PREV_NEWLINE_CONSTRAINT 0x0010 #define NEXT_NEWLINE_CONSTRAINT 0x0020 #define PREV_BEGBUF_CONSTRAINT 0x0040 #define NEXT_ENDBUF_CONSTRAINT 0x0080 #define WORD_DELIM_CONSTRAINT 0x0100 #define NOT_WORD_DELIM_CONSTRAINT 0x0200 typedef enum { INSIDE_WORD = PREV_WORD_CONSTRAINT | NEXT_WORD_CONSTRAINT, WORD_FIRST = PREV_NOTWORD_CONSTRAINT | NEXT_WORD_CONSTRAINT, WORD_LAST = PREV_WORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT, INSIDE_NOTWORD = PREV_NOTWORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT, LINE_FIRST = PREV_NEWLINE_CONSTRAINT, LINE_LAST = NEXT_NEWLINE_CONSTRAINT, BUF_FIRST = PREV_BEGBUF_CONSTRAINT, BUF_LAST = NEXT_ENDBUF_CONSTRAINT, WORD_DELIM = WORD_DELIM_CONSTRAINT, NOT_WORD_DELIM = NOT_WORD_DELIM_CONSTRAINT } re_context_type; typedef struct { Idx alloc; Idx nelem; Idx *elems; } re_node_set; typedef enum { NON_TYPE = 0, /* Node type, These are used by token, node, tree. */ CHARACTER = 1, END_OF_RE = 2, SIMPLE_BRACKET = 3, OP_BACK_REF = 4, OP_PERIOD = 5, #ifdef RE_ENABLE_I18N COMPLEX_BRACKET = 6, OP_UTF8_PERIOD = 7, #endif /* RE_ENABLE_I18N */ /* We define EPSILON_BIT as a macro so that OP_OPEN_SUBEXP is used when the debugger shows values of this enum type. */ #define EPSILON_BIT 8 OP_OPEN_SUBEXP = EPSILON_BIT | 0, OP_CLOSE_SUBEXP = EPSILON_BIT | 1, OP_ALT = EPSILON_BIT | 2, OP_DUP_ASTERISK = EPSILON_BIT | 3, ANCHOR = EPSILON_BIT | 4, /* Tree type, these are used only by tree. */ CONCAT = 16, SUBEXP = 17, /* Token type, these are used only by token. */ OP_DUP_PLUS = 18, OP_DUP_QUESTION, OP_OPEN_BRACKET, OP_CLOSE_BRACKET, OP_CHARSET_RANGE, OP_OPEN_DUP_NUM, OP_CLOSE_DUP_NUM, OP_NON_MATCH_LIST, OP_OPEN_COLL_ELEM, OP_CLOSE_COLL_ELEM, OP_OPEN_EQUIV_CLASS, OP_CLOSE_EQUIV_CLASS, OP_OPEN_CHAR_CLASS, OP_CLOSE_CHAR_CLASS, OP_WORD, OP_NOTWORD, OP_SPACE, OP_NOTSPACE, BACK_SLASH } re_token_type_t; #ifdef RE_ENABLE_I18N typedef struct { /* Multibyte characters. */ wchar_t *mbchars; /* Collating symbols. */ # ifdef _LIBC int32_t *coll_syms; # endif /* Equivalence classes. */ # ifdef _LIBC int32_t *equiv_classes; # endif /* Range expressions. */ # ifdef _LIBC uint32_t *range_starts; uint32_t *range_ends; # else /* not _LIBC */ wchar_t *range_starts; wchar_t *range_ends; # endif /* not _LIBC */ /* Character classes. */ wctype_t *char_classes; /* If this character set is the non-matching list. */ unsigned int non_match : 1; /* # of multibyte characters. */ Idx nmbchars; /* # of collating symbols. */ Idx ncoll_syms; /* # of equivalence classes. */ Idx nequiv_classes; /* # of range expressions. */ Idx nranges; /* # of character classes. */ Idx nchar_classes; } re_charset_t; #endif /* RE_ENABLE_I18N */ typedef struct { union { unsigned char c; /* for CHARACTER */ re_bitset_ptr_t sbcset; /* for SIMPLE_BRACKET */ #ifdef RE_ENABLE_I18N re_charset_t *mbcset; /* for COMPLEX_BRACKET */ #endif /* RE_ENABLE_I18N */ Idx idx; /* for BACK_REF */ re_context_type ctx_type; /* for ANCHOR */ } opr; #if __GNUC__ >= 2 && !defined __STRICT_ANSI__ re_token_type_t type : 8; #else re_token_type_t type; #endif unsigned int constraint : 10; /* context constraint */ unsigned int duplicated : 1; unsigned int opt_subexp : 1; #ifdef RE_ENABLE_I18N unsigned int accept_mb : 1; /* These 2 bits can be moved into the union if needed (e.g. if running out of bits; move opr.c to opr.c.c and move the flags to opr.c.flags). */ unsigned int mb_partial : 1; #endif unsigned int word_char : 1; } re_token_t; #define IS_EPSILON_NODE(type) ((type) & EPSILON_BIT) struct re_string_t { /* Indicate the raw buffer which is the original string passed as an argument of regexec(), re_search(), etc.. */ const unsigned char *raw_mbs; /* Store the multibyte string. In case of "case insensitive mode" like REG_ICASE, upper cases of the string are stored, otherwise MBS points the same address that RAW_MBS points. */ unsigned char *mbs; #ifdef RE_ENABLE_I18N /* Store the wide character string which is corresponding to MBS. */ wint_t *wcs; Idx *offsets; mbstate_t cur_state; #endif /* Index in RAW_MBS. Each character mbs[i] corresponds to raw_mbs[raw_mbs_idx + i]. */ Idx raw_mbs_idx; /* The length of the valid characters in the buffers. */ Idx valid_len; /* The corresponding number of bytes in raw_mbs array. */ Idx valid_raw_len; /* The length of the buffers MBS and WCS. */ Idx bufs_len; /* The index in MBS, which is updated by re_string_fetch_byte. */ Idx cur_idx; /* length of RAW_MBS array. */ Idx raw_len; /* This is RAW_LEN - RAW_MBS_IDX + VALID_LEN - VALID_RAW_LEN. */ Idx len; /* End of the buffer may be shorter than its length in the cases such as re_match_2, re_search_2. Then, we use STOP for end of the buffer instead of LEN. */ Idx raw_stop; /* This is RAW_STOP - RAW_MBS_IDX adjusted through OFFSETS. */ Idx stop; /* The context of mbs[0]. We store the context independently, since the context of mbs[0] may be different from raw_mbs[0], which is the beginning of the input string. */ unsigned int tip_context; /* The translation passed as a part of an argument of re_compile_pattern. */ RE_TRANSLATE_TYPE trans; /* Copy of re_dfa_t's word_char. */ re_const_bitset_ptr_t word_char; /* true if REG_ICASE. */ unsigned char icase; unsigned char is_utf8; unsigned char map_notascii; unsigned char mbs_allocated; unsigned char offsets_needed; unsigned char newline_anchor; unsigned char word_ops_used; int mb_cur_max; }; typedef struct re_string_t re_string_t; struct re_dfa_t; typedef struct re_dfa_t re_dfa_t; #ifndef _LIBC # define internal_function # define IS_IN(libc) false #endif static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) internal_function; #ifdef RE_ENABLE_I18N static void build_wcs_buffer (re_string_t *pstr) internal_function; static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr) internal_function; #endif /* RE_ENABLE_I18N */ static void build_upper_buffer (re_string_t *pstr) internal_function; static void re_string_translate_buffer (re_string_t *pstr) internal_function; static unsigned int re_string_context_at (const re_string_t *input, Idx idx, int eflags) internal_function __attribute__ ((pure)); #define re_string_peek_byte(pstr, offset) \ ((pstr)->mbs[(pstr)->cur_idx + offset]) #define re_string_fetch_byte(pstr) \ ((pstr)->mbs[(pstr)->cur_idx++]) #define re_string_first_byte(pstr, idx) \ ((idx) == (pstr)->valid_len || (pstr)->wcs[idx] != WEOF) #define re_string_is_single_byte_char(pstr, idx) \ ((pstr)->wcs[idx] != WEOF && ((pstr)->valid_len == (idx) + 1 \ || (pstr)->wcs[(idx) + 1] != WEOF)) #define re_string_eoi(pstr) ((pstr)->stop <= (pstr)->cur_idx) #define re_string_cur_idx(pstr) ((pstr)->cur_idx) #define re_string_get_buffer(pstr) ((pstr)->mbs) #define re_string_length(pstr) ((pstr)->len) #define re_string_byte_at(pstr,idx) ((pstr)->mbs[idx]) #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx)) #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx)) #if defined _LIBC || HAVE_ALLOCA # include #endif #ifndef _LIBC # if HAVE_ALLOCA /* The OS usually guarantees only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely allocate anything larger than 4096 bytes. Also care for the possibility of a few compiler-allocated temporary stack slots. */ # define __libc_use_alloca(n) ((n) < 4032) # else /* alloca is implemented with malloc, so just use malloc. */ # define __libc_use_alloca(n) 0 # undef alloca # define alloca(n) malloc (n) # endif #endif #ifdef _LIBC # define MALLOC_0_IS_NONNULL 1 #elif !defined MALLOC_0_IS_NONNULL # define MALLOC_0_IS_NONNULL 0 #endif #ifndef MAX # define MAX(a,b) ((a) < (b) ? (b) : (a)) #endif #ifndef MIN # define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif #define re_malloc(t,n) ((t *) malloc ((n) * sizeof (t))) #define re_realloc(p,t,n) ((t *) realloc (p, (n) * sizeof (t))) #define re_free(p) free (p) struct bin_tree_t { struct bin_tree_t *parent; struct bin_tree_t *left; struct bin_tree_t *right; struct bin_tree_t *first; struct bin_tree_t *next; re_token_t token; /* 'node_idx' is the index in dfa->nodes, if 'type' == 0. Otherwise 'type' indicate the type of this node. */ Idx node_idx; }; typedef struct bin_tree_t bin_tree_t; #define BIN_TREE_STORAGE_SIZE \ ((1024 - sizeof (void *)) / sizeof (bin_tree_t)) struct bin_tree_storage_t { struct bin_tree_storage_t *next; bin_tree_t data[BIN_TREE_STORAGE_SIZE]; }; typedef struct bin_tree_storage_t bin_tree_storage_t; #define CONTEXT_WORD 1 #define CONTEXT_NEWLINE (CONTEXT_WORD << 1) #define CONTEXT_BEGBUF (CONTEXT_NEWLINE << 1) #define CONTEXT_ENDBUF (CONTEXT_BEGBUF << 1) #define IS_WORD_CONTEXT(c) ((c) & CONTEXT_WORD) #define IS_NEWLINE_CONTEXT(c) ((c) & CONTEXT_NEWLINE) #define IS_BEGBUF_CONTEXT(c) ((c) & CONTEXT_BEGBUF) #define IS_ENDBUF_CONTEXT(c) ((c) & CONTEXT_ENDBUF) #define IS_ORDINARY_CONTEXT(c) ((c) == 0) #define IS_WORD_CHAR(ch) (isalnum (ch) || (ch) == '_') #define IS_NEWLINE(ch) ((ch) == NEWLINE_CHAR) #define IS_WIDE_WORD_CHAR(ch) (__iswalnum (ch) || (ch) == L'_') #define IS_WIDE_NEWLINE(ch) ((ch) == WIDE_NEWLINE_CHAR) #define NOT_SATISFY_PREV_CONSTRAINT(constraint,context) \ ((((constraint) & PREV_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \ || ((constraint & PREV_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \ || ((constraint & PREV_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context))\ || ((constraint & PREV_BEGBUF_CONSTRAINT) && !IS_BEGBUF_CONTEXT (context))) #define NOT_SATISFY_NEXT_CONSTRAINT(constraint,context) \ ((((constraint) & NEXT_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \ || (((constraint) & NEXT_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \ || (((constraint) & NEXT_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context)) \ || (((constraint) & NEXT_ENDBUF_CONSTRAINT) && !IS_ENDBUF_CONTEXT (context))) struct re_dfastate_t { re_hashval_t hash; re_node_set nodes; re_node_set non_eps_nodes; re_node_set inveclosure; re_node_set *entrance_nodes; struct re_dfastate_t **trtable, **word_trtable; unsigned int context : 4; unsigned int halt : 1; /* If this state can accept "multi byte". Note that we refer to multibyte characters, and multi character collating elements as "multi byte". */ unsigned int accept_mb : 1; /* If this state has backreference node(s). */ unsigned int has_backref : 1; unsigned int has_constraint : 1; }; typedef struct re_dfastate_t re_dfastate_t; struct re_state_table_entry { Idx num; Idx alloc; re_dfastate_t **array; }; /* Array type used in re_sub_match_last_t and re_sub_match_top_t. */ typedef struct { Idx next_idx; Idx alloc; re_dfastate_t **array; } state_array_t; /* Store information about the node NODE whose type is OP_CLOSE_SUBEXP. */ typedef struct { Idx node; Idx str_idx; /* The position NODE match at. */ state_array_t path; } re_sub_match_last_t; /* Store information about the node NODE whose type is OP_OPEN_SUBEXP. And information about the node, whose type is OP_CLOSE_SUBEXP, corresponding to NODE is stored in LASTS. */ typedef struct { Idx str_idx; Idx node; state_array_t *path; Idx alasts; /* Allocation size of LASTS. */ Idx nlasts; /* The number of LASTS. */ re_sub_match_last_t **lasts; } re_sub_match_top_t; struct re_backref_cache_entry { Idx node; Idx str_idx; Idx subexp_from; Idx subexp_to; char more; char unused; unsigned short int eps_reachable_subexps_map; }; typedef struct { /* The string object corresponding to the input string. */ re_string_t input; #if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) const re_dfa_t *const dfa; #else const re_dfa_t *dfa; #endif /* EFLAGS of the argument of regexec. */ int eflags; /* Where the matching ends. */ Idx match_last; Idx last_node; /* The state log used by the matcher. */ re_dfastate_t **state_log; Idx state_log_top; /* Back reference cache. */ Idx nbkref_ents; Idx abkref_ents; struct re_backref_cache_entry *bkref_ents; int max_mb_elem_len; Idx nsub_tops; Idx asub_tops; re_sub_match_top_t **sub_tops; } re_match_context_t; typedef struct { re_dfastate_t **sifted_states; re_dfastate_t **limited_states; Idx last_node; Idx last_str_idx; re_node_set limits; } re_sift_context_t; struct re_fail_stack_ent_t { Idx idx; Idx node; regmatch_t *regs; re_node_set eps_via_nodes; }; struct re_fail_stack_t { Idx num; Idx alloc; struct re_fail_stack_ent_t *stack; }; struct re_dfa_t { re_token_t *nodes; size_t nodes_alloc; size_t nodes_len; Idx *nexts; Idx *org_indices; re_node_set *edests; re_node_set *eclosures; re_node_set *inveclosures; struct re_state_table_entry *state_table; re_dfastate_t *init_state; re_dfastate_t *init_state_word; re_dfastate_t *init_state_nl; re_dfastate_t *init_state_begbuf; bin_tree_t *str_tree; bin_tree_storage_t *str_tree_storage; re_bitset_ptr_t sb_char; int str_tree_storage_idx; /* number of subexpressions 're_nsub' is in regex_t. */ re_hashval_t state_hash_mask; Idx init_node; Idx nbackref; /* The number of backreference in this dfa. */ /* Bitmap expressing which backreference is used. */ bitset_word_t used_bkref_map; bitset_word_t completed_bkref_map; unsigned int has_plural_match : 1; /* If this dfa has "multibyte node", which is a backreference or a node which can accept multibyte character or multi character collating element. */ unsigned int has_mb_node : 1; unsigned int is_utf8 : 1; unsigned int map_notascii : 1; unsigned int word_ops_used : 1; int mb_cur_max; bitset_t word_char; reg_syntax_t syntax; Idx *subexp_map; #ifdef DEBUG char* re_str; #endif lock_define (lock) }; #define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set)) #define re_node_set_remove(set,id) \ (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1)) #define re_node_set_empty(p) ((p)->nelem = 0) #define re_node_set_free(set) re_free ((set)->elems) typedef enum { SB_CHAR, MB_CHAR, EQUIV_CLASS, COLL_SYM, CHAR_CLASS } bracket_elem_type; typedef struct { bracket_elem_type type; union { unsigned char ch; unsigned char *name; wchar_t wch; } opr; } bracket_elem_t; /* Functions for bitset_t operation. */ static void bitset_set (bitset_t set, Idx i) { set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS; } static void bitset_clear (bitset_t set, Idx i) { set[i / BITSET_WORD_BITS] &= ~ ((bitset_word_t) 1 << i % BITSET_WORD_BITS); } static bool bitset_contain (const bitset_t set, Idx i) { return (set[i / BITSET_WORD_BITS] >> i % BITSET_WORD_BITS) & 1; } static void bitset_empty (bitset_t set) { memset (set, '\0', sizeof (bitset_t)); } static void bitset_set_all (bitset_t set) { memset (set, -1, sizeof (bitset_word_t) * (SBC_MAX / BITSET_WORD_BITS)); if (SBC_MAX % BITSET_WORD_BITS != 0) set[BITSET_WORDS - 1] = ((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1; } static void bitset_copy (bitset_t dest, const bitset_t src) { memcpy (dest, src, sizeof (bitset_t)); } static void __attribute__ ((unused)) bitset_not (bitset_t set) { int bitset_i; for (bitset_i = 0; bitset_i < SBC_MAX / BITSET_WORD_BITS; ++bitset_i) set[bitset_i] = ~set[bitset_i]; if (SBC_MAX % BITSET_WORD_BITS != 0) set[BITSET_WORDS - 1] = ((((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1) & ~set[BITSET_WORDS - 1]); } static void __attribute__ ((unused)) bitset_merge (bitset_t dest, const bitset_t src) { int bitset_i; for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) dest[bitset_i] |= src[bitset_i]; } static void __attribute__ ((unused)) bitset_mask (bitset_t dest, const bitset_t src) { int bitset_i; for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) dest[bitset_i] &= src[bitset_i]; } #ifdef RE_ENABLE_I18N /* Functions for re_string. */ static int internal_function __attribute__ ((pure, unused)) re_string_char_size_at (const re_string_t *pstr, Idx idx) { int byte_idx; if (pstr->mb_cur_max == 1) return 1; for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx) if (pstr->wcs[idx + byte_idx] != WEOF) break; return byte_idx; } static wint_t internal_function __attribute__ ((pure, unused)) re_string_wchar_at (const re_string_t *pstr, Idx idx) { if (pstr->mb_cur_max == 1) return (wint_t) pstr->mbs[idx]; return (wint_t) pstr->wcs[idx]; } # ifdef _LIBC # include # endif static int internal_function __attribute__ ((pure, unused)) re_string_elem_size_at (const re_string_t *pstr, Idx idx) { # ifdef _LIBC const unsigned char *p, *extra; const int32_t *table, *indirect; uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); p = pstr->mbs + idx; findidx (table, indirect, extra, &p, pstr->len - idx); return p - pstr->mbs - idx; } else # endif /* _LIBC */ return 1; } #endif /* RE_ENABLE_I18N */ #ifndef __GNUC_PREREQ # if defined __GNUC__ && defined __GNUC_MINOR__ # define __GNUC_PREREQ(maj, min) \ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) # else # define __GNUC_PREREQ(maj, min) 0 # endif #endif #if __GNUC_PREREQ (3,4) # undef __attribute_warn_unused_result__ # define __attribute_warn_unused_result__ \ __attribute__ ((__warn_unused_result__)) #else # define __attribute_warn_unused_result__ /* empty */ #endif #endif /* _REGEX_INTERNAL_H */ gcal-4.1/lib/limits.in.h0000664000000000000000000000540313041163522012001 00000000000000/* A GNU-like . Copyright 2016-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_LIMITS_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_LIMITS_H@ #ifndef _@GUARD_PREFIX@_LIMITS_H #define _@GUARD_PREFIX@_LIMITS_H /* The number of usable bits in an unsigned or signed integer type with minimum value MIN and maximum value MAX, as an int expression suitable in #if. Cover all known practical hosts. This implementation exploits the fact that MAX is 1 less than a power of 2, and merely counts the number of 1 bits in MAX; "COBn" means "count the number of 1 bits in the low-order n bits"). */ #define _GL_INTEGER_WIDTH(min, max) (((min) < 0) + _GL_COB128 (max)) #define _GL_COB128(n) (_GL_COB64 ((n) >> 31 >> 31 >> 2) + _GL_COB64 (n)) #define _GL_COB64(n) (_GL_COB32 ((n) >> 31 >> 1) + _GL_COB32 (n)) #define _GL_COB32(n) (_GL_COB16 ((n) >> 16) + _GL_COB16 (n)) #define _GL_COB16(n) (_GL_COB8 ((n) >> 8) + _GL_COB8 (n)) #define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n)) #define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1)) /* Macros specified by ISO/IEC TS 18661-1:2014. */ #if (! defined ULLONG_WIDTH \ && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) # define CHAR_WIDTH _GL_INTEGER_WIDTH (CHAR_MIN, CHAR_MAX) # define SCHAR_WIDTH _GL_INTEGER_WIDTH (SCHAR_MIN, SCHAR_MAX) # define UCHAR_WIDTH _GL_INTEGER_WIDTH (0, UCHAR_MAX) # define SHRT_WIDTH _GL_INTEGER_WIDTH (SHRT_MIN, SHRT_MAX) # define USHRT_WIDTH _GL_INTEGER_WIDTH (0, USHRT_MAX) # define INT_WIDTH _GL_INTEGER_WIDTH (INT_MIN, INT_MAX) # define UINT_WIDTH _GL_INTEGER_WIDTH (0, UINT_MAX) # define LONG_WIDTH _GL_INTEGER_WIDTH (LONG_MIN, LONG_MAX) # define ULONG_WIDTH _GL_INTEGER_WIDTH (0, ULONG_MAX) # define LLONG_WIDTH _GL_INTEGER_WIDTH (LLONG_MIN, LLONG_MAX) # define ULLONG_WIDTH _GL_INTEGER_WIDTH (0, ULLONG_MAX) #endif /* !ULLONG_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ #endif /* _@GUARD_PREFIX@_LIMITS_H */ #endif /* _@GUARD_PREFIX@_LIMITS_H */ gcal-4.1/lib/fatal-signal.c0000664000000000000000000001722413041163522012434 00000000000000/* Emergency actions in case of a fatal signal. Copyright (C) 2003-2004, 2006-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2003. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include "fatal-signal.h" #include #include #include #include #include "sig-handler.h" #include "xalloc.h" #define SIZEOF(a) (sizeof(a) / sizeof(a[0])) /* ========================================================================= */ /* The list of fatal signals. These are those signals whose default action is to terminate the process without a core dump, except SIGKILL - because it cannot be caught, SIGALRM SIGUSR1 SIGUSR2 SIGPOLL SIGIO SIGLOST - because applications often use them for their own purpose, SIGPROF SIGVTALRM - because they are used for profiling, SIGSTKFLT - because it is more similar to SIGFPE, SIGSEGV, SIGBUS, SIGSYS - because it is more similar to SIGABRT, SIGSEGV, SIGPWR - because it of too special use, SIGRTMIN...SIGRTMAX - because they are reserved for application use. plus SIGXCPU, SIGXFSZ - because they are quite similar to SIGTERM. */ static int fatal_signals[] = { /* ISO C 99 signals. */ #ifdef SIGINT SIGINT, #endif #ifdef SIGTERM SIGTERM, #endif /* POSIX:2001 signals. */ #ifdef SIGHUP SIGHUP, #endif #ifdef SIGPIPE SIGPIPE, #endif /* BSD signals. */ #ifdef SIGXCPU SIGXCPU, #endif #ifdef SIGXFSZ SIGXFSZ, #endif /* Native Windows signals. */ #ifdef SIGBREAK SIGBREAK, #endif 0 }; #define num_fatal_signals (SIZEOF (fatal_signals) - 1) /* Eliminate signals whose signal handler is SIG_IGN. */ static void init_fatal_signals (void) { static bool fatal_signals_initialized = false; if (!fatal_signals_initialized) { size_t i; for (i = 0; i < num_fatal_signals; i++) { struct sigaction action; if (sigaction (fatal_signals[i], NULL, &action) >= 0 && get_handler (&action) == SIG_IGN) fatal_signals[i] = -1; } fatal_signals_initialized = true; } } /* ========================================================================= */ typedef void (*action_t) (void); /* Type of an entry in the actions array. The 'action' field is accessed from within the fatal_signal_handler(), therefore we mark it as 'volatile'. */ typedef struct { volatile action_t action; } actions_entry_t; /* The registered cleanup actions. */ static actions_entry_t static_actions[32]; static actions_entry_t * volatile actions = static_actions; static sig_atomic_t volatile actions_count = 0; static size_t actions_allocated = SIZEOF (static_actions); /* The saved signal handlers. Size 32 would not be sufficient: On HP-UX, SIGXCPU = 33, SIGXFSZ = 34. */ static struct sigaction saved_sigactions[64]; /* Uninstall the handlers. */ static void uninstall_handlers (void) { size_t i; for (i = 0; i < num_fatal_signals; i++) if (fatal_signals[i] >= 0) { int sig = fatal_signals[i]; if (saved_sigactions[sig].sa_handler == SIG_IGN) saved_sigactions[sig].sa_handler = SIG_DFL; sigaction (sig, &saved_sigactions[sig], NULL); } } /* The signal handler. It gets called asynchronously. */ static void fatal_signal_handler (int sig) { for (;;) { /* Get the last registered cleanup action, in a reentrant way. */ action_t action; size_t n = actions_count; if (n == 0) break; n--; actions_count = n; action = actions[n].action; /* Execute the action. */ action (); } /* Now execute the signal's default action. If the signal being delivered was blocked, the re-raised signal would be delivered when this handler returns. But the way we install this handler, no signal is blocked, and the re-raised signal is delivered already during raise(). */ uninstall_handlers (); raise (sig); } /* Install the handlers. */ static void install_handlers (void) { size_t i; struct sigaction action; action.sa_handler = &fatal_signal_handler; /* If we get a fatal signal while executing fatal_signal_handler, enter fatal_signal_handler recursively, since it is reentrant. Hence no SA_RESETHAND. */ action.sa_flags = SA_NODEFER; sigemptyset (&action.sa_mask); for (i = 0; i < num_fatal_signals; i++) if (fatal_signals[i] >= 0) { int sig = fatal_signals[i]; if (!(sig < sizeof (saved_sigactions) / sizeof (saved_sigactions[0]))) abort (); sigaction (sig, &action, &saved_sigactions[sig]); } } /* Register a cleanup function to be executed when a catchable fatal signal occurs. */ void at_fatal_signal (action_t action) { static bool cleanup_initialized = false; if (!cleanup_initialized) { init_fatal_signals (); install_handlers (); cleanup_initialized = true; } if (actions_count == actions_allocated) { /* Extend the actions array. Note that we cannot use xrealloc(), because then the cleanup() function could access an already deallocated array. */ actions_entry_t *old_actions = actions; size_t old_actions_allocated = actions_allocated; size_t new_actions_allocated = 2 * actions_allocated; actions_entry_t *new_actions = XNMALLOC (new_actions_allocated, actions_entry_t); size_t k; /* Don't use memcpy() here, because memcpy takes non-volatile arguments and is therefore not guaranteed to complete all memory stores before the next statement. */ for (k = 0; k < old_actions_allocated; k++) new_actions[k] = old_actions[k]; actions = new_actions; actions_allocated = new_actions_allocated; /* Now we can free the old actions array. */ if (old_actions != static_actions) free (old_actions); } /* The two uses of 'volatile' in the types above (and ISO C 99 section 5.1.2.3.(5)) ensure that we increment the actions_count only after the new action has been written to the memory location actions[actions_count]. */ actions[actions_count].action = action; actions_count++; } /* ========================================================================= */ static sigset_t fatal_signal_set; static void init_fatal_signal_set (void) { static bool fatal_signal_set_initialized = false; if (!fatal_signal_set_initialized) { size_t i; init_fatal_signals (); sigemptyset (&fatal_signal_set); for (i = 0; i < num_fatal_signals; i++) if (fatal_signals[i] >= 0) sigaddset (&fatal_signal_set, fatal_signals[i]); fatal_signal_set_initialized = true; } } /* Temporarily delay the catchable fatal signals. */ void block_fatal_signals (void) { init_fatal_signal_set (); sigprocmask (SIG_BLOCK, &fatal_signal_set, NULL); } /* Stop delaying the catchable fatal signals. */ void unblock_fatal_signals (void) { init_fatal_signal_set (); sigprocmask (SIG_UNBLOCK, &fatal_signal_set, NULL); } gcal-4.1/lib/fseeko.c0000664000000000000000000001356113041163522011346 00000000000000/* An fseeko() function that, together with fflush(), is POSIX compliant. Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include /* Specification. */ #include /* Get off_t, lseek, _POSIX_VERSION. */ #include #include "stdio-impl.h" int fseeko (FILE *fp, off_t offset, int whence) #undef fseeko #if !HAVE_FSEEKO # undef fseek # define fseeko fseek #endif #if _GL_WINDOWS_64_BIT_OFF_T # undef fseeko # if HAVE__FSEEKI64 /* msvc, mingw64 */ # define fseeko _fseeki64 # else /* mingw */ # define fseeko fseeko64 # endif #endif { #if LSEEK_PIPE_BROKEN /* mingw gives bogus answers rather than failure on non-seekable files. */ if (lseek (fileno (fp), 0, SEEK_CUR) == -1) return EOF; #endif /* These tests are based on fpurge.c. */ #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ if (fp->_IO_read_end == fp->_IO_read_ptr && fp->_IO_write_ptr == fp->_IO_write_base && fp->_IO_save_base == NULL) #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ # if defined __SL64 && defined __SCLE /* Cygwin */ if ((fp->_flags & __SL64) == 0) { /* Cygwin 1.5.0 through 1.5.24 failed to open stdin in 64-bit mode; but has an fseeko that requires 64-bit mode. */ FILE *tmp = fopen ("/dev/null", "r"); if (!tmp) return -1; fp->_flags |= __SL64; fp->_seek64 = tmp->_seek64; fclose (tmp); } # endif if (fp_->_p == fp_->_bf._base && fp_->_r == 0 && fp_->_w == ((fp_->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */ ? fp_->_bf._size : 0) && fp_ub._base == NULL) #elif defined __EMX__ /* emx+gcc */ if (fp->_ptr == fp->_buffer && fp->_rcount == 0 && fp->_wcount == 0 && fp->_ungetc_count == 0) #elif defined __minix /* Minix */ if (fp_->_ptr == fp_->_buf && (fp_->_ptr == NULL || fp_->_count == 0)) #elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, MSVC, NonStop Kernel */ if (fp_->_ptr == fp_->_base && (fp_->_ptr == NULL || fp_->_cnt == 0)) #elif defined __UCLIBC__ /* uClibc */ if (((fp->__modeflags & __FLAG_WRITING) == 0 || fp->__bufpos == fp->__bufstart) && ((fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) == 0 || fp->__bufpos == fp->__bufread)) #elif defined __QNX__ /* QNX */ if ((fp->_Mode & 0x2000 /* _MWRITE */ ? fp->_Next == fp->_Buf : fp->_Next == fp->_Rend) && fp->_Rback == fp->_Back + sizeof (fp->_Back) && fp->_Rsave == NULL) #elif defined __MINT__ /* Atari FreeMiNT */ if (fp->__bufp == fp->__buffer && fp->__get_limit == fp->__bufp && fp->__put_limit == fp->__bufp && !fp->__pushed_back) #elif defined EPLAN9 /* Plan9 */ if (fp->rp == fp->buf && fp->wp == fp->buf) #elif FUNC_FFLUSH_STDIN < 0 && 200809 <= _POSIX_VERSION /* Cross-compiling to some other system advertising conformance to POSIX.1-2008 or later. Assume fseeko and fflush work as advertised. If this assumption is incorrect, please report the bug to bug-gnulib. */ if (0) #else #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib." #endif { /* We get here when an fflush() call immediately preceded this one (or if ftell() has created buffers but no I/O has occurred on a newly-opened stream). We know there are no buffers. */ off_t pos = lseek (fileno (fp), offset, whence); if (pos == -1) { #if defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ fp_->_flags &= ~__SOFF; #endif return -1; } #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ fp->_flags &= ~_IO_EOF_SEEN; fp->_offset = pos; #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ # if defined __CYGWIN__ || (defined __NetBSD__ && __NetBSD_Version__ >= 600000000) || defined __minix /* fp_->_offset is typed as an integer. */ fp_->_offset = pos; # else /* fp_->_offset is an fpos_t. */ { /* Use a union, since on NetBSD, the compilation flags determine whether fpos_t is typedef'd to off_t or a struct containing a single off_t member. */ union { fpos_t f; off_t o; } u; u.o = pos; fp_->_offset = u.f; } # endif fp_->_flags |= __SOFF; fp_->_flags &= ~__SEOF; #elif defined __EMX__ /* emx+gcc */ fp->_flags &= ~_IOEOF; #elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, MSVC, NonStop Kernel */ fp_->_flag &= ~_IOEOF; #elif defined __MINT__ /* Atari FreeMiNT */ fp->__offset = pos; fp->__eof = 0; #endif return 0; } return fseeko (fp, offset, whence); } gcal-4.1/lib/wait-process.h0000664000000000000000000000570613041163523012522 00000000000000/* Waiting for a subprocess to finish. Copyright (C) 2001-2003, 2006, 2008-2017 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _WAIT_PROCESS_H #define _WAIT_PROCESS_H /* Get pid_t. */ #include #include #include #include #ifdef __cplusplus extern "C" { #endif /* Wait for a subprocess to finish. Return its exit code. If it didn't terminate correctly, exit if exit_on_error is true, otherwise return 127. Arguments: - child is the pid of the subprocess. - progname is the name of the program executed by the subprocess, used for error messages. - If ignore_sigpipe is true, consider a subprocess termination due to SIGPIPE as equivalent to a success. This is suitable for processes whose only purpose is to write to standard output. This flag can be safely set to false when the process' standard output is known to go to DEV_NULL. - If null_stderr is true, the usual error message to stderr will be omitted. This is suitable when the subprocess does not fulfill an important task. - slave_process should be set to true if the process has been launched as a slave process. - If exit_on_error is true, any error will cause the main process to exit with an error status. - If termsigp is not NULL: *termsig will be set to the signal that terminated the subprocess (if supported by the platform: not on native Windows platforms), otherwise 0, and the error message about the signal that terminated the subprocess will be omitted. Prerequisites: The signal handler for SIGCHLD should not be set to SIG_IGN, otherwise this function will not work. */ extern int wait_subprocess (pid_t child, const char *progname, bool ignore_sigpipe, bool null_stderr, bool slave_process, bool exit_on_error, int *termsigp); /* Register a subprocess as being a slave process. This means that the subprocess will be terminated when its creator receives a catchable fatal signal or exits normally. Registration ends when wait_subprocess() notices that the subprocess has exited. */ extern void register_slave_subprocess (pid_t child); #ifdef __cplusplus } #endif #endif /* _WAIT_PROCESS_H */ gcal-4.1/lib/spawn_faction_addopen.c0000664000000000000000000000432013041163523014411 00000000000000/* Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #if !_LIBC # define __sysconf(open_max) getdtablesize () #endif #if !HAVE_WORKING_POSIX_SPAWN # include "spawn_int.h" #endif /* Add an action to FILE-ACTIONS which tells the implementation to call 'open' for the given file during the 'spawn' call. */ int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *file_actions, int fd, const char *path, int oflag, mode_t mode) #undef posix_spawn_file_actions_addopen { int maxfd = __sysconf (_SC_OPEN_MAX); /* Test for the validity of the file descriptor. */ if (fd < 0 || fd >= maxfd) return EBADF; #if HAVE_WORKING_POSIX_SPAWN return posix_spawn_file_actions_addopen (file_actions, fd, path, oflag, mode); #else /* Allocate more memory if needed. */ if (file_actions->_used == file_actions->_allocated && __posix_spawn_file_actions_realloc (file_actions) != 0) /* This can only mean we ran out of memory. */ return ENOMEM; { struct __spawn_action *rec; /* Add the new value. */ rec = &file_actions->_actions[file_actions->_used]; rec->tag = spawn_do_open; rec->action.open_action.fd = fd; rec->action.open_action.path = path; rec->action.open_action.oflag = oflag; rec->action.open_action.mode = mode; /* Account for the new entry. */ ++file_actions->_used; return 0; } #endif } gcal-4.1/lib/w32sock.h0000664000000000000000000000634113041163523011371 00000000000000/* w32sock.h --- internal auxiliary functions for Windows socket functions Copyright (C) 2008-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paolo Bonzini */ #include /* Get O_RDWR and O_BINARY. */ #include /* Get _open_osfhandle(). */ #include /* Get _get_osfhandle(). */ #include "msvc-nothrow.h" #define FD_TO_SOCKET(fd) ((SOCKET) _get_osfhandle ((fd))) #define SOCKET_TO_FD(fh) (_open_osfhandle ((intptr_t) (fh), O_RDWR | O_BINARY)) static inline void set_winsock_errno (void) { int err = WSAGetLastError (); /* Map some WSAE* errors to the runtime library's error codes. */ switch (err) { case WSA_INVALID_HANDLE: errno = EBADF; break; case WSA_NOT_ENOUGH_MEMORY: errno = ENOMEM; break; case WSA_INVALID_PARAMETER: errno = EINVAL; break; case WSAENAMETOOLONG: errno = ENAMETOOLONG; break; case WSAENOTEMPTY: errno = ENOTEMPTY; break; case WSAEWOULDBLOCK: errno = EWOULDBLOCK; break; case WSAEINPROGRESS: errno = EINPROGRESS; break; case WSAEALREADY: errno = EALREADY; break; case WSAENOTSOCK: errno = ENOTSOCK; break; case WSAEDESTADDRREQ: errno = EDESTADDRREQ; break; case WSAEMSGSIZE: errno = EMSGSIZE; break; case WSAEPROTOTYPE: errno = EPROTOTYPE; break; case WSAENOPROTOOPT: errno = ENOPROTOOPT; break; case WSAEPROTONOSUPPORT: errno = EPROTONOSUPPORT; break; case WSAEOPNOTSUPP: errno = EOPNOTSUPP; break; case WSAEAFNOSUPPORT: errno = EAFNOSUPPORT; break; case WSAEADDRINUSE: errno = EADDRINUSE; break; case WSAEADDRNOTAVAIL: errno = EADDRNOTAVAIL; break; case WSAENETDOWN: errno = ENETDOWN; break; case WSAENETUNREACH: errno = ENETUNREACH; break; case WSAENETRESET: errno = ENETRESET; break; case WSAECONNABORTED: errno = ECONNABORTED; break; case WSAECONNRESET: errno = ECONNRESET; break; case WSAENOBUFS: errno = ENOBUFS; break; case WSAEISCONN: errno = EISCONN; break; case WSAENOTCONN: errno = ENOTCONN; break; case WSAETIMEDOUT: errno = ETIMEDOUT; break; case WSAECONNREFUSED: errno = ECONNREFUSED; break; case WSAELOOP: errno = ELOOP; break; case WSAEHOSTUNREACH: errno = EHOSTUNREACH; break; default: errno = (err > 10000 && err < 10025) ? err - 10000 : err; break; } } gcal-4.1/lib/strdup.c0000664000000000000000000000247013041163523011411 00000000000000/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _LIBC # include #endif /* Get specification. */ #include #include #undef __strdup #ifdef _LIBC # undef strdup #endif #ifndef weak_alias # define __strdup strdup #endif /* Duplicate S, returning an identical malloc'd string. */ char * __strdup (const char *s) { size_t len = strlen (s) + 1; void *new = malloc (len); if (new == NULL) return NULL; return (char *) memcpy (new, s, len); } #ifdef libc_hidden_def libc_hidden_def (__strdup) #endif #ifdef weak_alias weak_alias (__strdup, strdup) #endif gcal-4.1/lib/getprogname.c0000664000000000000000000001335313041163522012401 00000000000000/* Program name management. Copyright (C) 2016-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include "getprogname.h" #include /* get program_invocation_name declaration */ #include /* get __argv declaration */ #ifdef _AIX # include # include # include #endif #ifdef __MVS__ # ifndef _OPEN_SYS # define _OPEN_SYS # endif # include # include #endif #ifdef __hpux # include # include # include # include #endif #ifdef __sgi # include # include # include # include # include #endif #include "dirname.h" #ifndef HAVE_GETPROGNAME /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Cygwin */ char const * getprogname (void) { # if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* glibc, BeOS */ /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */ return program_invocation_short_name; # elif HAVE_DECL_PROGRAM_INVOCATION_NAME /* glibc, BeOS */ /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */ return last_component (program_invocation_name); # elif HAVE_GETEXECNAME /* Solaris */ /* http://docs.oracle.com/cd/E19253-01/816-5168/6mbb3hrb1/index.html */ const char *p = getexecname (); if (!p) p = "?"; return last_component (p); # elif HAVE_DECL___ARGV /* mingw, MSVC */ /* https://msdn.microsoft.com/en-us/library/dn727674.aspx */ const char *p = __argv && __argv[0] ? __argv[0] : "?"; return last_component (p); # elif HAVE_VAR___PROGNAME /* OpenBSD, QNX */ /* http://man.openbsd.org/style.9 */ /* http://www.qnx.de/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_lib_ref%2Fp%2F__progname.html */ /* Be careful to declare this only when we absolutely need it (OpenBSD 5.1), rather than when it's available. Otherwise, its mere declaration makes program_invocation_short_name malfunction (have zero length) with Fedora 25's glibc. */ extern char *__progname; const char *p = __progname; return p && p[0] ? p : "?"; # elif _AIX /* AIX */ /* Idea by Bastien ROUCARIˆS, http://lists.gnu.org/archive/html/bug-gnulib/2010-12/msg00095.html Reference: http:// ibm.biz/knowctr#ssw_aix_53/com.ibm.aix.basetechref/doc/basetrf1/getprocs.htm */ static char *p; static int first = 1; if (first) { first = 0; pid_t pid = getpid (); struct procentry64 procs; p = (0 < getprocs64 (&procs, sizeof procs, NULL, 0, &pid, 1) ? strdup (procs.pi_comm) : NULL); if (!p) p = "?"; } return p; # elif defined __hpux static char *p; static int first = 1; if (first) { first = 0; pid_t pid = getpid (); struct pst_status status; p = (0 < pstat_getproc (&status, sizeof status, 0, pid) ? strdup (status.pst_ucomm) : NULL); if (!p) p = "?"; } return p; # elif __MVS__ /* z/OS */ /* https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/rtwgetp.htm */ static char *p = "?"; static int first = 1; if (first) { pid_t pid = getpid (); int token; W_PSPROC buf; first = 0; memset (&buf, 0, sizeof(buf)); buf.ps_cmdptr = (char *) malloc (buf.ps_cmdlen = PS_CMDBLEN_LONG); buf.ps_conttyptr = (char *) malloc (buf.ps_conttylen = PS_CONTTYBLEN); buf.ps_pathptr = (char *) malloc (buf.ps_pathlen = PS_PATHBLEN); if (buf.ps_cmdptr && buf.ps_conttyptr && buf.ps_pathptr) { for (token = 0; token >= 0; token = w_getpsent (token, &buf, sizeof(buf))) { if (token > 0 && buf.ps_pid == pid) { char *s = strdup (last_component (buf.ps_pathptr)); if (s) p = s; break; } } } free (buf.ps_cmdptr); free (buf.ps_conttyptr); free (buf.ps_pathptr); } return p; # elif defined __sgi /* IRIX */ char filename[50]; int fd; sprintf (filename, "/proc/pinfo/%d", (int) getpid ()); fd = open (filename, O_RDONLY); if (0 <= fd) { prpsinfo_t buf; int ioctl_ok = 0 <= ioctl (fd, PIOCPSINFO, &buf); close (fd); if (ioctl_ok) { char *name = buf.pr_fname; char *namesize = sizeof buf.pr_fname; char *namenul = memchr (name, '\0', namesize); size_t namelen = namenul ? namenul - name : namesize; char *namecopy = malloc (namelen + 1); if (namecopy) { namecopy[namelen] = 0; return memcpy (namecopy, name, namelen); } } } return NULL; # else # error "getprogname module not ported to this OS" # endif } #endif gcal-4.1/lib/stdlib.in.h0000664000000000000000000010371213041163523011764 00000000000000/* A GNU-like . Copyright (C) 1995, 2001-2004, 2006-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_stdlib_h || defined __need_malloc_and_calloc /* Special invocation conventions inside some gnulib header files, and inside some glibc header files, respectively. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDLIB_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #ifndef _@GUARD_PREFIX@_STDLIB_H #define _@GUARD_PREFIX@_STDLIB_H /* NetBSD 5.0 mis-defines NULL. */ #include /* MirBSD 10 defines WEXITSTATUS in , not in . */ #if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS # include #endif /* Solaris declares getloadavg() in . */ #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@ # include #endif /* Native Windows platforms declare mktemp() in . */ #if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include #endif #if @GNULIB_RANDOM_R@ /* OSF/1 5.1 declares 'struct random_data' in , which is included from if _REENTRANT is defined. Include it whenever we need 'struct random_data'. */ # if @HAVE_RANDOM_H@ # include # endif # if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@ # include # endif # if !@HAVE_STRUCT_RANDOM_DATA@ /* Define 'struct random_data'. But allow multiple gnulib generated replacements to coexist. */ # if !GNULIB_defined_struct_random_data struct random_data { int32_t *fptr; /* Front pointer. */ int32_t *rptr; /* Rear pointer. */ int32_t *state; /* Array of state values. */ int rand_type; /* Type of random number generator. */ int rand_deg; /* Degree of random number generator. */ int rand_sep; /* Distance between front and rear. */ int32_t *end_ptr; /* Pointer behind state table. */ }; # define GNULIB_defined_struct_random_data 1 # endif # endif #endif #if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) /* On Mac OS X 10.3, only declares mkstemp. */ /* On Mac OS X 10.5, only declares mkstemps. */ /* On Cygwin 1.7.1, only declares getsubopt. */ /* But avoid namespace pollution on glibc systems and native Windows. */ # include #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The definition of _Noreturn is copied here. */ /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems do not define EXIT_*, despite otherwise supporting C89. */ #ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 #endif /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere with proper operation of xargs. */ #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #elif EXIT_FAILURE != 1 # undef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #if @GNULIB__EXIT@ /* Terminate the current process with the given return code, without running the 'atexit' handlers. */ # if !@HAVE__EXIT@ _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); # endif _GL_CXXALIAS_SYS (_Exit, void, (int status)); _GL_CXXALIASWARN (_Exit); #elif defined GNULIB_POSIXCHECK # undef _Exit # if HAVE_RAW_DECL__EXIT _GL_WARN_ON_USE (_Exit, "_Exit is unportable - " "use gnulib module _Exit for portability"); # endif #endif #if @GNULIB_ATOLL@ /* Parse a signed decimal integer. Returns the value of the integer. Errors are not detected. */ # if !@HAVE_ATOLL@ _GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (atoll, long long, (const char *string)); _GL_CXXALIASWARN (atoll); #elif defined GNULIB_POSIXCHECK # undef atoll # if HAVE_RAW_DECL_ATOLL _GL_WARN_ON_USE (atoll, "atoll is unportable - " "use gnulib module atoll for portability"); # endif #endif #if @GNULIB_CALLOC_POSIX@ # if @REPLACE_CALLOC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef calloc # define calloc rpl_calloc # endif _GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size)); _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); # else _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); # endif _GL_CXXALIASWARN (calloc); #elif defined GNULIB_POSIXCHECK # undef calloc /* Assume calloc is always declared. */ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " "use gnulib module calloc-posix for portability"); #endif #if @GNULIB_CANONICALIZE_FILE_NAME@ # if @REPLACE_CANONICALIZE_FILE_NAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define canonicalize_file_name rpl_canonicalize_file_name # endif _GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); # else # if !@HAVE_CANONICALIZE_FILE_NAME@ _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); # endif _GL_CXXALIASWARN (canonicalize_file_name); #elif defined GNULIB_POSIXCHECK # undef canonicalize_file_name # if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME _GL_WARN_ON_USE (canonicalize_file_name, "canonicalize_file_name is unportable - " "use gnulib module canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_GETLOADAVG@ /* Store max(NELEM,3) load average numbers in LOADAVG[]. The three numbers are the load average of the last 1 minute, the last 5 minutes, and the last 15 minutes, respectively. LOADAVG is an array of NELEM numbers. */ # if !@HAVE_DECL_GETLOADAVG@ _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); _GL_CXXALIASWARN (getloadavg); #elif defined GNULIB_POSIXCHECK # undef getloadavg # if HAVE_RAW_DECL_GETLOADAVG _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " "use gnulib module getloadavg for portability"); # endif #endif #if @GNULIB_GETSUBOPT@ /* Assuming *OPTIONP is a comma separated list of elements of the form "token" or "token=value", getsubopt parses the first of these elements. If the first element refers to a "token" that is member of the given NULL-terminated array of tokens: - It replaces the comma with a NUL byte, updates *OPTIONP to point past the first option and the comma, sets *VALUEP to the value of the element (or NULL if it doesn't contain an "=" sign), - It returns the index of the "token" in the given array of tokens. Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. For more details see the POSIX:2001 specification. http://www.opengroup.org/susv3xsh/getsubopt.html */ # if !@HAVE_GETSUBOPT@ _GL_FUNCDECL_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep)); _GL_CXXALIASWARN (getsubopt); #elif defined GNULIB_POSIXCHECK # undef getsubopt # if HAVE_RAW_DECL_GETSUBOPT _GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - " "use gnulib module getsubopt for portability"); # endif #endif #if @GNULIB_GRANTPT@ /* Change the ownership and access permission of the slave side of the pseudo-terminal whose master side is specified by FD. */ # if !@HAVE_GRANTPT@ _GL_FUNCDECL_SYS (grantpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (grantpt, int, (int fd)); _GL_CXXALIASWARN (grantpt); #elif defined GNULIB_POSIXCHECK # undef grantpt # if HAVE_RAW_DECL_GRANTPT _GL_WARN_ON_USE (grantpt, "grantpt is not portable - " "use gnulib module grantpt for portability"); # endif #endif /* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not rely on GNU or POSIX semantics for malloc and realloc (for example, by never specifying a zero size), so it does not need malloc or realloc to be redefined. */ #if @GNULIB_MALLOC_POSIX@ # if @REPLACE_MALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef malloc # define malloc rpl_malloc # endif _GL_FUNCDECL_RPL (malloc, void *, (size_t size)); _GL_CXXALIAS_RPL (malloc, void *, (size_t size)); # else _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); # endif _GL_CXXALIASWARN (malloc); #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef malloc /* Assume malloc is always declared. */ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " "use gnulib module malloc-posix for portability"); #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBTOWC@ # if @REPLACE_MBTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbtowc # define mbtowc rpl_mbtowc # endif _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # else _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # endif _GL_CXXALIASWARN (mbtowc); #endif #if @GNULIB_MKDTEMP@ /* Create a unique temporary directory from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the directory name unique. Returns TEMPLATE, or a null pointer if it cannot get a unique name. The directory is created mode 700. */ # if !@HAVE_MKDTEMP@ _GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/)); _GL_CXXALIASWARN (mkdtemp); #elif defined GNULIB_POSIXCHECK # undef mkdtemp # if HAVE_RAW_DECL_MKDTEMP _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " "use gnulib module mkdtemp for portability"); # endif #endif #if @GNULIB_MKOSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKOSTEMP@ _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); _GL_CXXALIASWARN (mkostemp); #elif defined GNULIB_POSIXCHECK # undef mkostemp # if HAVE_RAW_DECL_MKOSTEMP _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " "use gnulib module mkostemp for portability"); # endif #endif #if @GNULIB_MKOSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE before a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKOSTEMPS@ _GL_FUNCDECL_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/)); _GL_CXXALIASWARN (mkostemps); #elif defined GNULIB_POSIXCHECK # undef mkostemps # if HAVE_RAW_DECL_MKOSTEMPS _GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - " "use gnulib module mkostemps for portability"); # endif #endif #if @GNULIB_MKSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if @REPLACE_MKSTEMP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mkstemp rpl_mkstemp # endif _GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/)); # else # if ! @HAVE_MKSTEMP@ _GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/)); # endif _GL_CXXALIASWARN (mkstemp); #elif defined GNULIB_POSIXCHECK # undef mkstemp # if HAVE_RAW_DECL_MKSTEMP _GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - " "use gnulib module mkstemp for portability"); # endif #endif #if @GNULIB_MKSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE prior to a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKSTEMPS@ _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)); _GL_CXXALIASWARN (mkstemps); #elif defined GNULIB_POSIXCHECK # undef mkstemps # if HAVE_RAW_DECL_MKSTEMPS _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - " "use gnulib module mkstemps for portability"); # endif #endif #if @GNULIB_POSIX_OPENPT@ /* Return an FD open to the master side of a pseudo-terminal. Flags should include O_RDWR, and may also include O_NOCTTY. */ # if !@HAVE_POSIX_OPENPT@ _GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); # endif _GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); _GL_CXXALIASWARN (posix_openpt); #elif defined GNULIB_POSIXCHECK # undef posix_openpt # if HAVE_RAW_DECL_POSIX_OPENPT _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " "use gnulib module posix_openpt for portability"); # endif #endif #if @GNULIB_PTSNAME@ /* Return the pathname of the pseudo-terminal slave associated with the master FD is open on, or NULL on errors. */ # if @REPLACE_PTSNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname # define ptsname rpl_ptsname # endif _GL_FUNCDECL_RPL (ptsname, char *, (int fd)); _GL_CXXALIAS_RPL (ptsname, char *, (int fd)); # else # if !@HAVE_PTSNAME@ _GL_FUNCDECL_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIAS_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIASWARN (ptsname); #elif defined GNULIB_POSIXCHECK # undef ptsname # if HAVE_RAW_DECL_PTSNAME _GL_WARN_ON_USE (ptsname, "ptsname is not portable - " "use gnulib module ptsname for portability"); # endif #endif #if @GNULIB_PTSNAME_R@ /* Set the pathname of the pseudo-terminal slave associated with the master FD is open on and return 0, or set errno and return non-zero on errors. */ # if @REPLACE_PTSNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname_r # define ptsname_r rpl_ptsname_r # endif _GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); _GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); # else # if !@HAVE_PTSNAME_R@ _GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIASWARN (ptsname_r); #elif defined GNULIB_POSIXCHECK # undef ptsname_r # if HAVE_RAW_DECL_PTSNAME_R _GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " "use gnulib module ptsname_r for portability"); # endif #endif #if @GNULIB_PUTENV@ # if @REPLACE_PUTENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putenv # define putenv rpl_putenv # endif _GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (putenv, int, (char *string)); # else _GL_CXXALIAS_SYS (putenv, int, (char *string)); # endif _GL_CXXALIASWARN (putenv); #endif #if @GNULIB_QSORT_R@ /* Sort an array of NMEMB elements, starting at address BASE, each element occupying SIZE bytes, in ascending order according to the comparison function COMPARE. */ # if @REPLACE_QSORT_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef qsort_r # define qsort_r rpl_qsort_r # endif _GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, int (*compare) (void const *, void const *, void *), void *arg) _GL_ARG_NONNULL ((1, 4))); _GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, int (*compare) (void const *, void const *, void *), void *arg)); # else # if !@HAVE_QSORT_R@ _GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, int (*compare) (void const *, void const *, void *), void *arg) _GL_ARG_NONNULL ((1, 4))); # endif _GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, int (*compare) (void const *, void const *, void *), void *arg)); # endif _GL_CXXALIASWARN (qsort_r); #elif defined GNULIB_POSIXCHECK # undef qsort_r # if HAVE_RAW_DECL_QSORT_R _GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - " "use gnulib module qsort_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if !@HAVE_RANDOM_R@ # ifndef RAND_MAX # define RAND_MAX 2147483647 # endif # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (random, long, (void)); # endif _GL_CXXALIAS_SYS (random, long, (void)); _GL_CXXALIASWARN (random); #elif defined GNULIB_POSIXCHECK # undef random # if HAVE_RAW_DECL_RANDOM _GL_WARN_ON_USE (random, "random is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); # endif _GL_CXXALIAS_SYS (srandom, void, (unsigned int seed)); _GL_CXXALIASWARN (srandom); #elif defined GNULIB_POSIXCHECK # undef srandom # if HAVE_RAW_DECL_SRANDOM _GL_WARN_ON_USE (srandom, "srandom is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size)); _GL_CXXALIASWARN (initstate); #elif defined GNULIB_POSIXCHECK # undef initstate # if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate, "initstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (setstate, char *, (char *arg_state)); _GL_CXXALIASWARN (setstate); #elif defined GNULIB_POSIXCHECK # undef setstate # if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate, "setstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef random_r # define random_r rpl_random_r # endif _GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result)); # endif _GL_CXXALIASWARN (random_r); #elif defined GNULIB_POSIXCHECK # undef random_r # if HAVE_RAW_DECL_RANDOM_R _GL_WARN_ON_USE (random_r, "random_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef srandom_r # define srandom_r rpl_srandom_r # endif _GL_FUNCDECL_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (srandom_r); #elif defined GNULIB_POSIXCHECK # undef srandom_r # if HAVE_RAW_DECL_SRANDOM_R _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef initstate_r # define initstate_r rpl_initstate_r # endif _GL_FUNCDECL_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (initstate_r); #elif defined GNULIB_POSIXCHECK # undef initstate_r # if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setstate_r # define setstate_r rpl_setstate_r # endif _GL_FUNCDECL_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (setstate_r); #elif defined GNULIB_POSIXCHECK # undef setstate_r # if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_REALLOC_POSIX@ # if @REPLACE_REALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef realloc # define realloc rpl_realloc # endif _GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)); _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); # else _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); # endif _GL_CXXALIASWARN (realloc); #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef realloc /* Assume realloc is always declared. */ _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " "use gnulib module realloc-posix for portability"); #endif #if @GNULIB_REALPATH@ # if @REPLACE_REALPATH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define realpath rpl_realpath # endif _GL_FUNCDECL_RPL (realpath, char *, (const char *name, char *resolved) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (realpath, char *, (const char *name, char *resolved)); # else # if !@HAVE_REALPATH@ _GL_FUNCDECL_SYS (realpath, char *, (const char *name, char *resolved) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (realpath, char *, (const char *name, char *resolved)); # endif _GL_CXXALIASWARN (realpath); #elif defined GNULIB_POSIXCHECK # undef realpath # if HAVE_RAW_DECL_REALPATH _GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module " "canonicalize or canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_RPMATCH@ /* Test a user response to a question. Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ # if !@HAVE_RPMATCH@ _GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (rpmatch, int, (const char *response)); _GL_CXXALIASWARN (rpmatch); #elif defined GNULIB_POSIXCHECK # undef rpmatch # if HAVE_RAW_DECL_RPMATCH _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - " "use gnulib module rpmatch for portability"); # endif #endif #if @GNULIB_SECURE_GETENV@ /* Look up NAME in the environment, returning 0 in insecure situations. */ # if !@HAVE_SECURE_GETENV@ _GL_FUNCDECL_SYS (secure_getenv, char *, (char const *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name)); _GL_CXXALIASWARN (secure_getenv); #elif defined GNULIB_POSIXCHECK # undef secure_getenv # if HAVE_RAW_DECL_SECURE_GETENV _GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - " "use gnulib module secure_getenv for portability"); # endif #endif #if @GNULIB_SETENV@ /* Set NAME to VALUE in the environment. If REPLACE is nonzero, overwrite an existing value. */ # if @REPLACE_SETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setenv # define setenv rpl_setenv # endif _GL_FUNCDECL_RPL (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (setenv, int, (const char *name, const char *value, int replace)); # else # if !@HAVE_DECL_SETENV@ _GL_FUNCDECL_SYS (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (setenv, int, (const char *name, const char *value, int replace)); # endif # if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@) _GL_CXXALIASWARN (setenv); # endif #elif defined GNULIB_POSIXCHECK # undef setenv # if HAVE_RAW_DECL_SETENV _GL_WARN_ON_USE (setenv, "setenv is unportable - " "use gnulib module setenv for portability"); # endif #endif #if @GNULIB_STRTOD@ /* Parse a double from STRING, updating ENDP if appropriate. */ # if @REPLACE_STRTOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtod rpl_strtod # endif _GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp)); # else # if !@HAVE_STRTOD@ _GL_FUNCDECL_SYS (strtod, double, (const char *str, char **endp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtod, double, (const char *str, char **endp)); # endif _GL_CXXALIASWARN (strtod); #elif defined GNULIB_POSIXCHECK # undef strtod # if HAVE_RAW_DECL_STRTOD _GL_WARN_ON_USE (strtod, "strtod is unportable - " "use gnulib module strtod for portability"); # endif #endif #if @GNULIB_STRTOLL@ /* Parse a signed integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set to ERANGE. */ # if !@HAVE_STRTOLL@ _GL_FUNCDECL_SYS (strtoll, long long, (const char *string, char **endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoll, long long, (const char *string, char **endptr, int base)); _GL_CXXALIASWARN (strtoll); #elif defined GNULIB_POSIXCHECK # undef strtoll # if HAVE_RAW_DECL_STRTOLL _GL_WARN_ON_USE (strtoll, "strtoll is unportable - " "use gnulib module strtoll for portability"); # endif #endif #if @GNULIB_STRTOULL@ /* Parse an unsigned integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is ULLONG_MAX, and errno is set to ERANGE. */ # if !@HAVE_STRTOULL@ _GL_FUNCDECL_SYS (strtoull, unsigned long long, (const char *string, char **endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoull, unsigned long long, (const char *string, char **endptr, int base)); _GL_CXXALIASWARN (strtoull); #elif defined GNULIB_POSIXCHECK # undef strtoull # if HAVE_RAW_DECL_STRTOULL _GL_WARN_ON_USE (strtoull, "strtoull is unportable - " "use gnulib module strtoull for portability"); # endif #endif #if @GNULIB_UNLOCKPT@ /* Unlock the slave side of the pseudo-terminal whose master side is specified by FD, so that it can be opened. */ # if !@HAVE_UNLOCKPT@ _GL_FUNCDECL_SYS (unlockpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (unlockpt, int, (int fd)); _GL_CXXALIASWARN (unlockpt); #elif defined GNULIB_POSIXCHECK # undef unlockpt # if HAVE_RAW_DECL_UNLOCKPT _GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - " "use gnulib module unlockpt for portability"); # endif #endif #if @GNULIB_UNSETENV@ /* Remove the variable NAME from the environment. */ # if @REPLACE_UNSETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unsetenv # define unsetenv rpl_unsetenv # endif _GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unsetenv, int, (const char *name)); # else # if !@HAVE_DECL_UNSETENV@ _GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (unsetenv, int, (const char *name)); # endif # if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@) _GL_CXXALIASWARN (unsetenv); # endif #elif defined GNULIB_POSIXCHECK # undef unsetenv # if HAVE_RAW_DECL_UNSETENV _GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - " "use gnulib module unsetenv for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCTOMB@ # if @REPLACE_WCTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctomb # define wctomb rpl_wctomb # endif _GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc)); _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc)); # else _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc)); # endif _GL_CXXALIASWARN (wctomb); #endif #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif gcal-4.1/lib/fopen.c0000664000000000000000000000664513041163522011206 00000000000000/* Open a stream to a file. Copyright (C) 2007-2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_fopen doesn't recurse to rpl_fopen. */ #define __need_FILE #include /* Get the original definition of fopen. It might be defined as a macro. */ #include #undef __need_FILE static FILE * orig_fopen (const char *filename, const char *mode) { return fopen (filename, mode); } /* Specification. */ /* Write "stdio.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ #include "stdio.h" #include #include #include #include #include #include FILE * rpl_fopen (const char *filename, const char *mode) { #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ if (strcmp (filename, "/dev/null") == 0) filename = "NUL"; #endif #if FOPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and a mode that requires write access is specified, then fail. Rationale: POSIX says that "A pathname that contains at least one non-slash character and that ends with one or more trailing slashes shall be resolved as if a single dot character ( '.' ) were appended to the pathname." and "The special filename dot shall refer to the directory specified by its predecessor." If the named file already exists as a directory, then if a mode that requires write access is specified, fopen() must fail because POSIX says that it fails with errno = EISDIR in this case. If the named file does not exist or does not name a directory, then fopen() must fail since the file does not contain a '.' directory. */ { size_t len = strlen (filename); if (len > 0 && filename[len - 1] == '/') { int fd; struct stat statbuf; FILE *fp; if (mode[0] == 'w' || mode[0] == 'a') { errno = EISDIR; return NULL; } fd = open (filename, O_RDONLY); if (fd < 0) return NULL; if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) { close (fd); errno = ENOTDIR; return NULL; } fp = fdopen (fd, mode); if (fp == NULL) { int saved_errno = errno; close (fd); errno = saved_errno; } return fp; } } # endif return orig_fopen (filename, mode); } gcal-4.1/lib/strtol.c0000664000000000000000000002521213041163523011416 00000000000000/* Convert string representation of a number into an integer value. Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@gnu.org. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifdef _LIBC # define USE_NUMBER_GROUPING #else # include #endif #include #include #ifndef __set_errno # define __set_errno(Val) errno = (Val) #endif #include #include #include #include #ifdef USE_NUMBER_GROUPING # include "../locale/localeinfo.h" #endif /* Nonzero if we are defining 'strtoul' or 'strtoull', operating on unsigned integers. */ #ifndef UNSIGNED # define UNSIGNED 0 # define INT LONG int #else # define INT unsigned LONG int #endif /* Determine the name. */ #ifdef USE_IN_EXTENDED_LOCALE_MODEL # if UNSIGNED # ifdef USE_WIDE_CHAR # ifdef QUAD # define strtol __wcstoull_l # else # define strtol __wcstoul_l # endif # else # ifdef QUAD # define strtol __strtoull_l # else # define strtol __strtoul_l # endif # endif # else # ifdef USE_WIDE_CHAR # ifdef QUAD # define strtol __wcstoll_l # else # define strtol __wcstol_l # endif # else # ifdef QUAD # define strtol __strtoll_l # else # define strtol __strtol_l # endif # endif # endif #else # if UNSIGNED # ifdef USE_WIDE_CHAR # ifdef QUAD # define strtol wcstoull # else # define strtol wcstoul # endif # else # ifdef QUAD # define strtol strtoull # else # define strtol strtoul # endif # endif # else # ifdef USE_WIDE_CHAR # ifdef QUAD # define strtol wcstoll # else # define strtol wcstol # endif # else # ifdef QUAD # define strtol strtoll # endif # endif # endif #endif /* If QUAD is defined, we are defining 'strtoll' or 'strtoull', operating on 'long long int's. */ #ifdef QUAD # define LONG long long # define STRTOL_LONG_MIN LLONG_MIN # define STRTOL_LONG_MAX LLONG_MAX # define STRTOL_ULONG_MAX ULLONG_MAX /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ /* True if the arithmetic type T is signed. */ # define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* Minimum and maximum values for integer types. These macros have undefined behavior for signed types that either have padding bits or do not use two's complement. If this is a problem for you, please let us know how to fix it for your host. */ /* The maximum and minimum values for the integer type T. */ # define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) # define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) # ifndef ULLONG_MAX # define ULLONG_MAX TYPE_MAXIMUM (unsigned long long) # endif # ifndef LLONG_MAX # define LLONG_MAX TYPE_MAXIMUM (long long int) # endif # ifndef LLONG_MIN # define LLONG_MIN TYPE_MINIMUM (long long int) # endif # if __GNUC__ == 2 && __GNUC_MINOR__ < 7 /* Work around gcc bug with using this constant. */ static const unsigned long long int maxquad = ULLONG_MAX; # undef STRTOL_ULONG_MAX # define STRTOL_ULONG_MAX maxquad # endif #else # define LONG long # define STRTOL_LONG_MIN LONG_MIN # define STRTOL_LONG_MAX LONG_MAX # define STRTOL_ULONG_MAX ULONG_MAX #endif /* We use this code also for the extended locale handling where the function gets as an additional argument the locale which has to be used. To access the values we have to redefine the _NL_CURRENT macro. */ #ifdef USE_IN_EXTENDED_LOCALE_MODEL # undef _NL_CURRENT # define _NL_CURRENT(category, item) \ (current->values[_NL_ITEM_INDEX (item)].string) # define LOCALE_PARAM , loc # define LOCALE_PARAM_PROTO , __locale_t loc #else # define LOCALE_PARAM # define LOCALE_PARAM_PROTO #endif #ifdef USE_WIDE_CHAR # include # include # define L_(Ch) L##Ch # define UCHAR_TYPE wint_t # define STRING_TYPE wchar_t # ifdef USE_IN_EXTENDED_LOCALE_MODEL # define ISSPACE(Ch) __iswspace_l ((Ch), loc) # define ISALPHA(Ch) __iswalpha_l ((Ch), loc) # define TOUPPER(Ch) __towupper_l ((Ch), loc) # else # define ISSPACE(Ch) iswspace (Ch) # define ISALPHA(Ch) iswalpha (Ch) # define TOUPPER(Ch) towupper (Ch) # endif #else # define L_(Ch) Ch # define UCHAR_TYPE unsigned char # define STRING_TYPE char # ifdef USE_IN_EXTENDED_LOCALE_MODEL # define ISSPACE(Ch) __isspace_l ((Ch), loc) # define ISALPHA(Ch) __isalpha_l ((Ch), loc) # define TOUPPER(Ch) __toupper_l ((Ch), loc) # else # define ISSPACE(Ch) isspace (Ch) # define ISALPHA(Ch) isalpha (Ch) # define TOUPPER(Ch) toupper (Ch) # endif #endif #define INTERNAL(X) INTERNAL1(X) #define INTERNAL1(X) __##X##_internal #define WEAKNAME(X) WEAKNAME1(X) #ifdef USE_NUMBER_GROUPING /* This file defines a function to check for correct grouping. */ # include "grouping.h" #endif /* Convert NPTR to an 'unsigned long int' or 'long int' in base BASE. If BASE is 0 the base is determined by the presence of a leading zero, indicating octal or a leading "0x" or "0X", indicating hexadecimal. If BASE is < 2 or > 36, it is reset to 10. If ENDPTR is not NULL, a pointer to the character after the last one converted is stored in *ENDPTR. */ INT INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr, int base, int group LOCALE_PARAM_PROTO) { int negative; register unsigned LONG int cutoff; register unsigned int cutlim; register unsigned LONG int i; register const STRING_TYPE *s; register UCHAR_TYPE c; const STRING_TYPE *save, *end; int overflow; #ifdef USE_NUMBER_GROUPING # ifdef USE_IN_EXTENDED_LOCALE_MODEL struct locale_data *current = loc->__locales[LC_NUMERIC]; # endif /* The thousands character of the current locale. */ wchar_t thousands = L'\0'; /* The numeric grouping specification of the current locale, in the format described in . */ const char *grouping; if (group) { grouping = _NL_CURRENT (LC_NUMERIC, GROUPING); if (*grouping <= 0 || *grouping == CHAR_MAX) grouping = NULL; else { /* Figure out the thousands separator character. */ # if defined _LIBC || defined _HAVE_BTOWC thousands = __btowc (*_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP)); if (thousands == WEOF) thousands = L'\0'; # endif if (thousands == L'\0') grouping = NULL; } } else grouping = NULL; #endif if (base < 0 || base == 1 || base > 36) { __set_errno (EINVAL); return 0; } save = s = nptr; /* Skip white space. */ while (ISSPACE (*s)) ++s; if (*s == L_('\0')) goto noconv; /* Check for a sign. */ if (*s == L_('-')) { negative = 1; ++s; } else if (*s == L_('+')) { negative = 0; ++s; } else negative = 0; /* Recognize number prefix and if BASE is zero, figure it out ourselves. */ if (*s == L_('0')) { if ((base == 0 || base == 16) && TOUPPER (s[1]) == L_('X')) { s += 2; base = 16; } else if (base == 0) base = 8; } else if (base == 0) base = 10; /* Save the pointer so we can check later if anything happened. */ save = s; #ifdef USE_NUMBER_GROUPING if (group) { /* Find the end of the digit string and check its grouping. */ end = s; for (c = *end; c != L_('\0'); c = *++end) if ((wchar_t) c != thousands && ((wchar_t) c < L_('0') || (wchar_t) c > L_('9')) && (!ISALPHA (c) || (int) (TOUPPER (c) - L_('A') + 10) >= base)) break; if (*s == thousands) end = s; else end = correctly_grouped_prefix (s, end, thousands, grouping); } else #endif end = NULL; cutoff = STRTOL_ULONG_MAX / (unsigned LONG int) base; cutlim = STRTOL_ULONG_MAX % (unsigned LONG int) base; overflow = 0; i = 0; for (c = *s; c != L_('\0'); c = *++s) { if (s == end) break; if (c >= L_('0') && c <= L_('9')) c -= L_('0'); else if (ISALPHA (c)) c = TOUPPER (c) - L_('A') + 10; else break; if ((int) c >= base) break; /* Check for overflow. */ if (i > cutoff || (i == cutoff && c > cutlim)) overflow = 1; else { i *= (unsigned LONG int) base; i += c; } } /* Check if anything actually happened. */ if (s == save) goto noconv; /* Store in ENDPTR the address of one character past the last character we converted. */ if (endptr != NULL) *endptr = (STRING_TYPE *) s; #if !UNSIGNED /* Check for a value that is within the range of 'unsigned LONG int', but outside the range of 'LONG int'. */ if (overflow == 0 && i > (negative ? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1 : (unsigned LONG int) STRTOL_LONG_MAX)) overflow = 1; #endif if (overflow) { __set_errno (ERANGE); #if UNSIGNED return STRTOL_ULONG_MAX; #else return negative ? STRTOL_LONG_MIN : STRTOL_LONG_MAX; #endif } /* Return the result of the appropriate sign. */ return negative ? -i : i; noconv: /* We must handle a special case here: the base is 0 or 16 and the first two characters are '0' and 'x', but the rest are no hexadecimal digits. This is no error case. We return 0 and ENDPTR points to the 'x'. */ if (endptr != NULL) { if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X') && save[-2] == L_('0')) *endptr = (STRING_TYPE *) &save[-1]; else /* There was no number to convert. */ *endptr = (STRING_TYPE *) nptr; } return 0L; } /* External user entry point. */ INT #ifdef weak_function weak_function #endif strtol (const STRING_TYPE *nptr, STRING_TYPE **endptr, int base LOCALE_PARAM_PROTO) { return INTERNAL (strtol) (nptr, endptr, base, 0 LOCALE_PARAM); } gcal-4.1/INSTALL0000664000000000000000000003661413041163305010214 00000000000000Installation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell command './configure && make && make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the 'README' file for instructions specific to this package. Some packages provide this 'INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The 'configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a 'Makefile' in each directory of the package. It may also create one or more '.h' files containing system-dependent definitions. Finally, it creates a shell script 'config.status' that you can run in the future to recreate the current configuration, and a file 'config.log' containing compiler output (useful mainly for debugging 'configure'). It can also use an optional file (typically called 'config.cache' and enabled with '--cache-file=config.cache' or simply '-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how 'configure' could check whether to do them, and mail diffs or instructions to the address given in the 'README' so they can be considered for the next release. If you are using the cache, and at some point 'config.cache' contains results you don't want to keep, you may remove or edit it. The file 'configure.ac' (or 'configure.in') is used to create 'configure' by a program called 'autoconf'. You need 'configure.ac' if you want to change it or regenerate 'configure' using a newer version of 'autoconf'. The simplest way to compile this package is: 1. 'cd' to the directory containing the package's source code and type './configure' to configure the package for your system. Running 'configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type 'make' to compile the package. 3. Optionally, type 'make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type 'make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the 'make install' phase executed with root privileges. 5. Optionally, type 'make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior 'make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing 'make clean'. To also remove the files that 'configure' created (so you can compile the package for a different kind of computer), type 'make distclean'. There is also a 'make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type 'make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide 'make distcheck', which can by used by developers to test that all other targets like 'make install' and 'make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the 'configure' script does not know about. Run './configure --help' for details on some of the pertinent environment variables. You can give 'configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU 'make'. 'cd' to the directory where you want the object files and executables to go and run the 'configure' script. 'configure' automatically checks for the source code in the directory that 'configure' is in and in '..'. This is known as a "VPATH" build. With a non-GNU 'make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use 'make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple '-arch' options to the compiler but only a single '-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the 'lipo' tool if you have problems. Installation Names ================== By default, 'make install' installs the package's commands under '/usr/local/bin', include files under '/usr/local/include', etc. You can specify an installation prefix other than '/usr/local' by giving 'configure' the option '--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option '--exec-prefix=PREFIX' to 'configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like '--bindir=DIR' to specify different values for particular kinds of files. Run 'configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of '${prefix}', so that specifying just '--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to 'configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the 'make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, 'make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of '${prefix}'. Any directories that were specified during 'configure', but not in terms of '${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the 'DESTDIR' variable. For example, 'make install DESTDIR=/alternate/directory' will prepend '/alternate/directory' before all installation names. The approach of 'DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of '${prefix}' at 'configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving 'configure' the option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. Some packages pay attention to '--enable-FEATURE' options to 'configure', where FEATURE indicates an optional part of the package. They may also pay attention to '--with-PACKAGE' options, where PACKAGE is something like 'gnu-as' or 'x' (for the X Window System). The 'README' should mention any '--enable-' and '--with-' options that the package recognizes. For packages that use the X Window System, 'configure' can usually find the X include and library files automatically, but if it doesn't, you can use the 'configure' options '--x-includes=DIR' and '--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of 'make' will be. For these packages, running './configure --enable-silent-rules' sets the default to minimal output, which can be overridden with 'make V=1'; while running './configure --disable-silent-rules' sets the default to verbose, which can be overridden with 'make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. HP-UX 'make' updates targets which have the same time stamps as their prerequisites, which makes it generally unusable when shipped generated files such as 'configure' are involved. Use GNU 'make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its '' header file. The option '-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put '/usr/ucb' early in your 'PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in '/usr/bin'. So, if you need '/usr/ucb' in your 'PATH', put it _after_ '/usr/bin'. On Haiku, software installed for all users goes in '/boot/common', not '/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features 'configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, 'configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the '--build=TYPE' option. TYPE can either be a short name for the system type, such as 'sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file 'config.sub' for the possible values of each field. If 'config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option '--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with '--host=TYPE'. Sharing Defaults ================ If you want to set default values for 'configure' scripts to share, you can create a site shell script called 'config.site' that gives default values for variables like 'CC', 'cache_file', and 'prefix'. 'configure' looks for 'PREFIX/share/config.site' if it exists, then 'PREFIX/etc/config.site' if it exists. Or, you can set the 'CONFIG_SITE' environment variable to the location of the site script. A warning: not all 'configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to 'configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the 'configure' command line, using 'VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified 'gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an Autoconf limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash 'configure' Invocation ====================== 'configure' recognizes the following options to control how it operates. '--help' '-h' Print a summary of all of the options to 'configure', and exit. '--help=short' '--help=recursive' Print a summary of the options unique to this package's 'configure', and exit. The 'short' variant lists options used only in the top level, while the 'recursive' variant lists options also present in any nested packages. '--version' '-V' Print the version of Autoconf used to generate the 'configure' script, and exit. '--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally 'config.cache'. FILE defaults to '/dev/null' to disable caching. '--config-cache' '-C' Alias for '--cache-file=config.cache'. '--quiet' '--silent' '-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to '/dev/null' (any error messages will still be shown). '--srcdir=DIR' Look for the package's source code in directory DIR. Usually 'configure' can determine that directory automatically. '--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. '--no-create' '-n' Run the configure checks, but stop before creating any output files. 'configure' also accepts some other, not widely useful, options. Run 'configure --help' for more details. gcal-4.1/aclocal.m40000664000000000000000000014135613041163545011031 00000000000000# generated automatically by aclocal 1.15 -*- Autoconf -*- # Copyright (C) 1996-2014 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 2002-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.15' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.15], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.15])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # Copyright (C) 2011-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_AR([ACT-IF-FAIL]) # ------------------------- # Try to determine the archiver interface, and trigger the ar-lib wrapper # if it is needed. If the detection of archiver interface fails, run # ACT-IF-FAIL (default is to abort configure with a proper error message). AC_DEFUN([AM_PROG_AR], [AC_BEFORE([$0], [LT_INIT])dnl AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([ar-lib])dnl AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) : ${AR=ar} AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], [AC_LANG_PUSH([C]) am_cv_ar_interface=ar AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a ]) AC_LANG_POP([C])]) case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) m4_default([$1], [AC_MSG_ERROR([could not determine $AR interface])]) ;; esac AC_SUBST([AR])dnl ]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Copyright (C) 2003-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for 'mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl FIXME we are no longer going to remove this! adjust warning dnl FIXME message accordingly. AC_DIAGNOSE([obsolete], [$0: this macro is deprecated, and will soon be removed. You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead, and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.]) dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/00gnulib.m4]) m4_include([m4/absolute-header.m4]) m4_include([m4/acos.m4]) m4_include([m4/alloca.m4]) m4_include([m4/asin.m4]) m4_include([m4/assert.m4]) m4_include([m4/atan.m4]) m4_include([m4/atan2.m4]) m4_include([m4/btowc.m4]) m4_include([m4/builtin-expect.m4]) m4_include([m4/ceil.m4]) m4_include([m4/close.m4]) m4_include([m4/codeset.m4]) m4_include([m4/cond.m4]) m4_include([m4/configmake.m4]) m4_include([m4/cos.m4]) m4_include([m4/dirname.m4]) m4_include([m4/double-slash-root.m4]) m4_include([m4/dup2.m4]) m4_include([m4/eealloc.m4]) m4_include([m4/environ.m4]) m4_include([m4/errno_h.m4]) m4_include([m4/error.m4]) m4_include([m4/extensions.m4]) m4_include([m4/extern-inline.m4]) m4_include([m4/fatal-signal.m4]) m4_include([m4/fclose.m4]) m4_include([m4/fcntl-o.m4]) m4_include([m4/fcntl.m4]) m4_include([m4/fcntl_h.m4]) m4_include([m4/fflush.m4]) m4_include([m4/float_h.m4]) m4_include([m4/floor.m4]) m4_include([m4/fopen.m4]) m4_include([m4/fpurge.m4]) m4_include([m4/freading.m4]) m4_include([m4/free.m4]) m4_include([m4/fseek.m4]) m4_include([m4/fseeko.m4]) m4_include([m4/fstat.m4]) m4_include([m4/ftell.m4]) m4_include([m4/ftello.m4]) m4_include([m4/getdtablesize.m4]) m4_include([m4/getprogname.m4]) m4_include([m4/gettext.m4]) m4_include([m4/gettimeofday.m4]) m4_include([m4/glibc21.m4]) m4_include([m4/gnulib-common.m4]) m4_include([m4/gnulib-comp.m4]) m4_include([m4/hard-locale.m4]) m4_include([m4/iconv.m4]) m4_include([m4/iconv_h.m4]) m4_include([m4/include_next.m4]) m4_include([m4/intlmacosx.m4]) m4_include([m4/ioctl.m4]) m4_include([m4/langinfo_h.m4]) m4_include([m4/largefile.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) m4_include([m4/limits-h.m4]) m4_include([m4/link.m4]) m4_include([m4/localcharset.m4]) m4_include([m4/locale-fr.m4]) m4_include([m4/locale-ja.m4]) m4_include([m4/locale-zh.m4]) m4_include([m4/locale_h.m4]) m4_include([m4/localeconv.m4]) m4_include([m4/lock.m4]) m4_include([m4/log.m4]) m4_include([m4/log10.m4]) m4_include([m4/longlong.m4]) m4_include([m4/lseek.m4]) m4_include([m4/lstat.m4]) m4_include([m4/malloc.m4]) m4_include([m4/math_h.m4]) m4_include([m4/mathfunc.m4]) m4_include([m4/mbrtowc.m4]) m4_include([m4/mbsinit.m4]) m4_include([m4/mbstate_t.m4]) m4_include([m4/mbtowc.m4]) m4_include([m4/memchr.m4]) m4_include([m4/mkostemp.m4]) m4_include([m4/mmap-anon.m4]) m4_include([m4/mode_t.m4]) m4_include([m4/msvc-inval.m4]) m4_include([m4/msvc-nothrow.m4]) m4_include([m4/multiarch.m4]) m4_include([m4/nl_langinfo.m4]) m4_include([m4/nls.m4]) m4_include([m4/off_t.m4]) m4_include([m4/open.m4]) m4_include([m4/pathmax.m4]) m4_include([m4/perror.m4]) m4_include([m4/pipe2.m4]) m4_include([m4/po.m4]) m4_include([m4/posix_spawn.m4]) m4_include([m4/progtest.m4]) m4_include([m4/pthread_rwlock_rdlock.m4]) m4_include([m4/putenv.m4]) m4_include([m4/raise.m4]) m4_include([m4/rawmemchr.m4]) m4_include([m4/realloc.m4]) m4_include([m4/regex.m4]) m4_include([m4/sched_h.m4]) m4_include([m4/secure_getenv.m4]) m4_include([m4/sig_atomic_t.m4]) m4_include([m4/sigaction.m4]) m4_include([m4/signal_h.m4]) m4_include([m4/signalblocking.m4]) m4_include([m4/sin.m4]) m4_include([m4/socklen.m4]) m4_include([m4/spawn-pipe.m4]) m4_include([m4/spawn_h.m4]) m4_include([m4/sqrt.m4]) m4_include([m4/ssize_t.m4]) m4_include([m4/stat.m4]) m4_include([m4/stdalign.m4]) m4_include([m4/stdbool.m4]) m4_include([m4/stddef_h.m4]) m4_include([m4/stdint.m4]) m4_include([m4/stdio_h.m4]) m4_include([m4/stdlib_h.m4]) m4_include([m4/strchrnul.m4]) m4_include([m4/strcspn.m4]) m4_include([m4/strdup.m4]) m4_include([m4/strerror.m4]) m4_include([m4/strerror_r.m4]) m4_include([m4/string_h.m4]) m4_include([m4/strings_h.m4]) m4_include([m4/strstr.m4]) m4_include([m4/strtol.m4]) m4_include([m4/sys_ioctl_h.m4]) m4_include([m4/sys_socket_h.m4]) m4_include([m4/sys_stat_h.m4]) m4_include([m4/sys_time_h.m4]) m4_include([m4/sys_types_h.m4]) m4_include([m4/sys_uio_h.m4]) m4_include([m4/sys_wait_h.m4]) m4_include([m4/tan.m4]) m4_include([m4/tempname.m4]) m4_include([m4/threadlib.m4]) m4_include([m4/time_h.m4]) m4_include([m4/tmpdir.m4]) m4_include([m4/unistd-safer.m4]) m4_include([m4/unistd_h.m4]) m4_include([m4/unlink.m4]) m4_include([m4/wait-process.m4]) m4_include([m4/waitpid.m4]) m4_include([m4/warn-on-use.m4]) m4_include([m4/wchar_h.m4]) m4_include([m4/wchar_t.m4]) m4_include([m4/wcrtomb.m4]) m4_include([m4/wctype_h.m4]) m4_include([m4/wint_t.m4]) m4_include([m4/write.m4]) m4_include([m4/xalloc.m4]) gcal-4.1/GNUmakefile0000664000000000000000000001073513041163522011232 00000000000000# Having a separate GNUmakefile lets me 'include' the dynamically # generated rules created via cfg.mk (package-local configuration) # as well as maint.mk (generic maintainer rules). # This makefile is used only if you run GNU Make. # It is necessary if you want to build targets usually of interest # only to the maintainer. # Copyright (C) 2001, 2003, 2006-2017 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # If the user runs GNU make but has not yet run ./configure, # give them a diagnostic. _gl-Makefile := $(wildcard [M]akefile) ifneq ($(_gl-Makefile),) # Make tar archive easier to reproduce. export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner # Allow the user to add to this in the Makefile. ALL_RECURSIVE_TARGETS = include Makefile # Some projects override e.g., _autoreconf here. -include $(srcdir)/cfg.mk # Allow cfg.mk to override these. _build-aux ?= build-aux _autoreconf ?= autoreconf -v include $(srcdir)/maint.mk # Ensure that $(VERSION) is up to date for dist-related targets, but not # for others: rerunning autoreconf and recompiling everything isn't cheap. _have-git-version-gen := \ $(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes) ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL)) _is-dist-target ?= $(filter-out %clean, \ $(filter maintainer-% dist% alpha beta stable,$(MAKECMDGOALS))) _is-install-target ?= $(filter-out %check, $(filter install%,$(MAKECMDGOALS))) ifneq (,$(_is-dist-target)$(_is-install-target)) _curr-ver := $(shell cd $(srcdir) \ && $(_build-aux)/git-version-gen \ .tarball-version \ $(git-version-gen-tag-sed-script)) ifneq ($(_curr-ver),$(VERSION)) ifeq ($(_curr-ver),UNKNOWN) $(info WARNING: unable to verify if $(VERSION) is the correct version) else ifneq (,$(_is-install-target)) # GNU Coding Standards state that 'make install' should not cause # recompilation after 'make all'. But as long as changing the version # string alters config.h, the cost of having 'make all' always have an # up-to-date version is prohibitive. So, as a compromise, we merely # warn when installing a version string that is out of date; the user # should run 'autoreconf' (or something like 'make distcheck') to # fix the version, 'make all' to propagate it, then 'make install'. $(info WARNING: version string $(VERSION) is out of date;) $(info run '$(MAKE) _version' to fix it) else $(info INFO: running autoreconf for new version string: $(_curr-ver)) GNUmakefile: _version touch GNUmakefile endif endif endif endif endif .PHONY: _version _version: cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf) $(MAKE) $(AM_MAKEFLAGS) Makefile else .DEFAULT_GOAL := abort-due-to-no-makefile srcdir = . # The package can override .DEFAULT_GOAL to run actions like autoreconf. -include ./cfg.mk # Allow cfg.mk to override these. _build-aux ?= build-aux _autoreconf ?= autoreconf -v include ./maint.mk ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile) $(MAKECMDGOALS): abort-due-to-no-makefile endif abort-due-to-no-makefile: @echo There seems to be no Makefile in this directory. 1>&2 @echo "You must run ./configure before running 'make'." 1>&2 @exit 1 endif # Tell version 3.79 and up of GNU make to not build goals in this # directory in parallel, in case someone tries to build multiple # targets, and one of them can cause a recursive target to be invoked. # Only set this if Automake doesn't provide it. AM_RECURSIVE_TARGETS ?= $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) \ dist distcheck tags ctags ALL_RECURSIVE_TARGETS += $(AM_RECURSIVE_TARGETS) ifneq ($(word 2, $(MAKECMDGOALS)), ) ifneq ($(filter $(ALL_RECURSIVE_TARGETS), $(MAKECMDGOALS)), ) .NOTPARALLEL: endif endif gcal-4.1/configure.ac0000664000000000000000000005242512366001664011457 00000000000000dnl Template file for GNU Autoconf dnl dnl Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. dnl Copyright (c) 1995, 96, 97, 2000 Thomas Esken dnl dnl This software doesn't claim completeness, correctness or usability. dnl On principle I will not be liable for ANY damages or losses (implicit dnl or explicit), which result from using or handling my software. dnl If you use this software, you agree without any exception to this dnl agreement, which binds you LEGALLY !! dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the `GNU General Public License' as published by dnl the `Free Software Foundation'; either version 3, or (at your option) dnl any later version. dnl dnl You should have received a copy of the `GNU General Public License' dnl along with this program; if not, write to the: dnl dnl Process this file with autoconf to produce a configure script for Gcal. dnl dnl dnl Starting operations. dnl AC_INIT([gcal], m4_esyscmd([build-aux/git-version-gen .tarball-version]), [bug-gcal@gnu.org]) AC_PREREQ(2.65) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([1.9]) AC_CONFIG_SRCDIR([src/gcal.c]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_USE_SYSTEM_EXTENSIONS dnl dnl Emit some text. (I know that some people dislike a talkative `configure' dnl script, but those persons should really use the `--quiet' option instead dnl of writing me that I have to remove this behavior, because I like it!) dnl AC_MSG_RESULT() AC_MSG_RESULT(this is the automatical configuration step of $PACKAGE-$VERSION) AC_MSG_RESULT() AC_MSG_RESULT(please wait...) AC_MSG_RESULT() dnl dnl Checks for C compiler. dnl if test -z "$CFLAGS"; then gcal_possibly_adjust_cflags=yes fi AC_MSG_RESULT() AC_CHECKING(for C compiler) dnl AC_PROG_CC AM_PROG_CC_C_O AC_PROG_RANLIB gl_EARLY AC_FUNC_ALLOCA dnl dnl Support transforming of program names. dnl AC_ARG_PROGRAM dnl dnl Check if the build environment is sane. dnl AM_SANITY_CHECK dnl dnl Checks for Gcal specific package options. dnl AC_MSG_RESULT() AC_CHECKING(for $PACKAGE specific package options) dnl AC_MSG_CHECKING(whether unicode support is required) AC_ARG_ENABLE(unicode, [ --enable-unicode use unicode], gcal_cv_use_unicode=$enableval, gcal_cv_use_unicode=no) AC_MSG_RESULT($gcal_cv_use_unicode) if test "$gcal_cv_use_unicode" = yes; then AC_DEFINE([USE_UNICODE], [1], [Enable unicode.]) fi dnl AC_MSG_CHECKING(whether extended ASCII character set is required) AC_ARG_ENABLE(easc, [ --enable-easc use extended ASCII character set], gcal_cv_use_easc=$enableval, gcal_cv_use_easc=no) AC_MSG_RESULT($gcal_cv_use_easc) if test "$gcal_cv_use_easc" = yes; then AC_DEFINE([USE_EASC], [1], [Enable displaying using the extended ASCII character set.]) fi dnl AC_MSG_CHECKING(whether all available country specific holidays are required) AC_ARG_ENABLE(cc-holidays, [ --disable-cc-holidays do not use all available country specific holidays], gcal_cv_use_cc_holidays=$enableval, gcal_cv_use_cc_holidays=yes) AC_MSG_RESULT($gcal_cv_use_cc_holidays) if test "$gcal_cv_use_cc_holidays" = yes; then GCAL_HD_OBJS="\$(GCAL_HD_OBJS)" else AC_DEFINE([HD_TOP20CC], [1], [Enable a small selection of country specific holidays only.]) fi AC_SUBST(GCAL_HD_OBJS) dnl AC_MSG_CHECKING(whether highlighting sequences are required) AC_ARG_ENABLE(hls, [ --disable-hls do not use highlighting sequences], gcal_cv_use_hls=$enableval, gcal_cv_use_hls=yes) AC_MSG_RESULT($gcal_cv_use_hls) if test "$gcal_cv_use_hls" = yes; then AC_DEFINE([USE_HLS], [1], [Enable highlighting sequences.]) fi dnl AC_MSG_CHECKING(whether pager feature is required) AC_ARG_ENABLE(pager, [ --disable-pager do not use external or simple internal pager feature], gcal_cv_use_pager=$enableval, gcal_cv_use_pager=yes) AC_MSG_RESULT($gcal_cv_use_pager) if test "$gcal_cv_use_pager" = yes; then AC_DEFINE([USE_PAGER], [1], [Enable simple internal pager feature.]) fi dnl AC_MSG_CHECKING(whether fixed date feature is required) AC_ARG_ENABLE(rc, [ --disable-rc do not use fixed date feature], gcal_cv_use_rc=$enableval, gcal_cv_use_rc=yes) AC_MSG_RESULT($gcal_cv_use_rc) if test "$gcal_cv_use_rc" = yes; then GCAL_RC_OBJS="\$(GCAL_RC_OBJS)" AC_DEFINE([USE_RC], [1], [Enable fixed date feature.]) fi AC_SUBST(GCAL_RC_OBJS) dnl AC_MSG_CHECKING(whether terminal libraries are required) AC_ARG_ENABLE(term, [ --disable-term do not use libncurses/libtermcap/libtermlib], gcal_cv_use_term=$enableval, gcal_cv_use_term=yes) AC_MSG_RESULT($gcal_cv_use_term) dnl dnl Checks for programs. dnl AC_MSG_RESULT() AC_CHECKING(for programs) dnl dnl Checks for make. dnl AC_PROG_MAKE_SET dnl dnl Checks for text converters/interpreters (perl, awk). dnl AC_CHECK_PROG(PERL, perl, perl) AC_PROG_AWK if test -z "$ac_cv_prog_AWK"; then dnl dnl Previous AC_PROG_AWK has already checked for `gawk'. dnl AC_CHECK_PROG(AWK, gnuawk, gnuawk) if test -z "$ac_cv_prog_AWK"; then AC_MSG_RESULT() AC_MSG_WARN(no automatic installation of dates files!) AC_MSG_WARN(Makefile target *installdates* will never be executed) AC_MSG_WARN(and some other targets will create useless script files.) AC_MSG_RESULT() fi fi dnl dnl Checks for zdump. dnl AC_PATH_PROG(ZDUMP, zdump, , $PATH:\ /sbin:\ /usr/sbin:\ /usr/local/sbin:\ /usr/etc:\ /usr/etc/zoneinfo:\ /usr/lib:\ /usr/lib/zoneinfo:\ /usr/share:\ /usr/share/zoneinfo:\ /usr/share/lib:\ /usr/share/lib/zoneinfo:\ /usr/share/etc:\ /usr/share/etc/zoneinfo:\ /usr/local/etc:\ /usr/local/etc/zoneinfo:\ /usr/local/lib:\ /usr/local/lib/zoneinfo:\ /usr/local/share:\ /usr/local/share/zoneinfo:\ /usr/local/share/lib:\ /usr/local/share/lib/zoneinfo:\ /usr/local/share/etc:\ /usr/local/share/etc/zoneinfo:\ /opt/gnu/sbin:\ /opt/gnu/usr/sbin:\ /opt/gnu/usr/local/sbin:\ /opt/gnu/etc:\ /opt/gnu/etc/zoneinfo:\ /opt/gnu/lib:\ /opt/gnu/lib/zoneinfo:\ /opt/gnu/share:\ /opt/gnu/share/zoneinfo:\ /opt/gnu/share/lib:\ /opt/gnu/share/lib/zoneinfo:\ /opt/gnu/share/etc:\ /opt/gnu/share/etc/zoneinfo) if test -z "$ac_cv_path_ZDUMP"; then AC_MSG_RESULT() AC_MSG_WARN(Ask your sysadmin for the ZONEINFO time zone dumping program!) AC_MSG_WARN(Makefile target *dst* will produce a useless script file.) AC_MSG_RESULT() fi if test "$gcal_cv_use_pager" = yes; then dnl dnl Checks for ``external'' pager programs (less, more, pg). dnl AC_CHECK_PROG(PAGER1, less, less) AC_DEFINE_UNQUOTED([PAGER1_PROG], "$PAGER1", [Enable preferred external pager program (`less').]) AC_CHECK_PROG(PAGER2, more, more) AC_DEFINE_UNQUOTED([PAGER2_PROG], "$PAGER2", [Enable alternative external pager program (`more').]) AC_CHECK_PROG(PAGER3, pg, pg) AC_DEFINE_UNQUOTED([PAGER3_PROG], "$PAGER3", [Enable second alternative external pager program (`pg').]) fi dnl dnl Checks for cp. dnl AC_CHECK_PROGS(CP, cp copy) if test -n "$ac_cv_prog_CP"; then if test "$ac_cv_prog_CP" = cp; then CP="cp -p" else if test "$ac_cv_prog_CP" != "cp -p"; then if test "$ac_cv_prog_CP" != "copy -m"; then dnl dnl Assume `copy -m' on SCO 3.2v4 which does not have `cp -p'. dnl CP="copy -m" fi fi fi AC_SUBST(CP) fi dnl dnl Checks whether `ln -s' works. dnl AC_PROG_LN_S dnl AC_PROG_GCC_TRADITIONAL dnl dnl Set some warning flags in CFLAGS if this environment variable was either dnl undefined or not set before previous COMPILER test, and `gcc' is found. dnl if test "$gcal_possibly_adjust_cflags" = yes && test -n "$GCC"; then CFLAGS="$CFLAGS -Wall" fi dnl dnl Checks for operating system variants. dnl AC_MSG_RESULT() AC_CHECKING(for operating system variants) dnl AC_AIX AC_MINIX AC_ISC_POSIX dnl dnl Checks for libraries. dnl AC_MSG_RESULT() AC_CHECKING(for libraries) dnl dnl Checks for terminal libraries. dnl if test "$gcal_cv_use_term" = yes; then gcal_ttylibs_ok=no gcal_libtermlib_ok=no TTYLIBS= AC_CHECK_LIB(ncurses, initscr, [TTYLIBS="-lncurses"]) if test -z "$TTYLIBS"; then AC_CHECK_LIB(termcap, tgetent, [TTYLIBS="-ltermcap"]) AC_CHECK_LIB(termlib, tgetent, [have_libtermlib=yes], [have_libtermlib=no]) fi dnl dnl Solaris has termcap, but it don't work without libucb dnl which is broken, so we use termlib. dnl AC_MSG_CHECKING(for working terminal libraries) SAVE_LIBS=$LIBS LIBS="$LIBS $TTYLIBS" AC_TRY_LINK(, [tgetent(0); tgetflag(0); tgetnum(0); tgetstr(0);], [gcal_ttylibs_ok=yes]) if test "$gcal_ttylibs_ok" = yes; then AC_DEFINE([HAVE_TTYLIBS], [1], [Link -lncurses or -ltermcap or -ltermlib to executable.]) AC_MSG_RESULT(using $TTYLIBS) else if test "$TTYLIBS" = "-lncurses"; then AC_MSG_RESULT(using $TTYLIBS fails) LIBS="$SAVE_LIBS" AC_CHECK_LIB(termcap, tgetent, [TTYLIBS="-ltermcap"]) AC_MSG_CHECKING(for working terminal libraries again) LIBS="$LIBS $TTYLIBS" AC_TRY_LINK(, [tgetent(0); tgetflag(0); tgetnum(0); tgetstr(0);], [gcal_ttylibs_ok=yes]) if test "$gcal_ttylibs_ok" = yes; then AC_DEFINE([HAVE_TTYLIBS], [1], [Link -lncurses or -ltermcap or -ltermlib to executable.]) AC_MSG_RESULT(using $TTYLIBS) else AC_MSG_RESULT(using $TTYLIBS fails) LIBS="$SAVE_LIBS" AC_CHECK_LIB(termlib, tgetent, [have_libtermlib=yes], [have_libtermlib=no]) TTYLIBS="-ltermlib" LIBS="$LIBS $TTYLIBS" if test "$have_libtermlib" = yes; then AC_MSG_CHECKING(for working terminal libraries again) AC_TRY_LINK(, [tgetent(0); tgetflag(0); tgetnum(0); tgetstr(0);], [gcal_libtermlib_ok=yes]) if test "$gcal_libtermlib_ok" = yes; then AC_DEFINE([HAVE_TTYLIBS], [1], [Link -lncurses or -ltermcap or -ltermlib to executable.]) AC_MSG_RESULT(using $TTYLIBS) fi fi fi else if test "$have_libtermlib" = yes; then TTYLIBS="-ltermlib" LIBS="$SAVE_LIBS $TTYLIBS" AC_TRY_LINK(, [tgetent(0); tgetflag(0); tgetnum(0); tgetstr(0);], [gcal_libtermlib_ok=yes]) if test "$gcal_libtermlib_ok" = yes; then AC_DEFINE([HAVE_TTYLIBS], [1], [Link -lncurses or -ltermcap or -ltermlib to executable.]) AC_MSG_RESULT(using $TTYLIBS) fi fi fi fi if test "$gcal_ttylibs_ok" = no && test "$gcal_libtermlib_ok" = no; then LIBS="$SAVE_LIBS" AC_MSG_RESULT(hmm... whats this??) AC_MSG_RESULT() AC_MSG_WARN(no terminal libraries available) AC_MSG_WARN() AC_MSG_WARN(this means $PACKAGE-$VERSION will use its defaults now) AC_MSG_WARN(and is unable to support several terminal types!) AC_MSG_WARN(note: $PACKAGE-$VERSION would work more flexible if libncurses.a) AC_MSG_WARN(libtermcap.a or libtermlib.a are installed.) AC_MSG_RESULT() fi fi dnl dnl Check for mathematical library. dnl AC_CHECK_LIB(m, cos, [LIBM="-lm" AC_DEFINE([HAVE_LIBM], [1], [Define if you have the m library (-lm)]) have_libm=yes], [have_libm=no]) AC_SUBST(LIBM) dnl dnl Checks for header files. dnl AC_MSG_RESULT() AC_CHECKING(for header files) dnl AC_STDC_HEADERS AC_CHECK_HEADERS(stdio.h stdlib.h string.h unistd.h ctype.h errno.h limits.h) AC_CHECK_HEADERS(assert.h signal.h termio.h termios.h sgtty.h langinfo.h) AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY]) AC_TRY_LINK([#include ], [ char c; c = *((unsigned char *) nl_langinfo(_NL_TIME_FIRST_WEEKDAY)); ], nl_res=yes, nl_res=no) AC_MSG_RESULT($nl_res) if test "$nl_res" = "yes"; then AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1], [Define if _NL_TIME_FIRST_WEEKDAY is available]) fi if test "$gcal_cv_use_term" = yes; then if test "$gcal_ttylibs_ok" = yes || test "$gcal_libtermlib_ok" = yes; then AC_CHECK_HEADERS(termcap.h) fi fi if test "$have_libm" = yes; then AC_CHECK_HEADERS(math.h) fi if test "$gcal_cv_use_included_regexps" = no; then AC_CHECK_HEADERS(regex.h) fi if test "$gcal_cv_use_pager" = yes; then AC_CHECK_HEADERS(fcntl.h) AC_HEADER_SYS_WAIT fi AC_CHECK_HEADERS(sys/ioctl.h sys/stream.h sys/ptem.h sys/stat.h sys/types.h sys/time.h) dnl dnl Checks for typedefs and structures. dnl AC_MSG_RESULT() AC_CHECKING(for typedefs and structures) dnl if test "$gcal_cv_use_pager" = yes; then AC_TYPE_PID_T fi AC_TYPE_SIGNAL AC_HEADER_TIME AC_MSG_CHECKING(for time_t) AC_CACHE_VAL(gcal_cv_type_time_t, AC_TRY_COMPILE([ # if TIME_WITH_SYS_TIME # include # include # else # if HAVE_SYS_TIME_H # include # else # include # endif # endif], [time_t t = 0;], [gcal_cv_type_time_t=yes], [gcal_cv_type_time_t=no])) if test "$gcal_cv_type_time_t" = yes; then AC_DEFINE([HAVE_TIME_T], [1], [Type time_t is predefined.]) fi AC_MSG_RESULT($gcal_cv_type_time_t) dnl dnl Checks for compiler characteristics. dnl AC_MSG_RESULT() AC_CHECKING(for compiler characteristics) dnl AC_C_CONST dnl AC_MSG_CHECKING(for void) AC_CACHE_VAL(gcal_cv_c_void, AC_TRY_COMPILE(, [void *foo = 0;], [gcal_cv_c_void=yes], [gcal_cv_c_void=no])) if test "$gcal_cv_c_void" = yes; then AC_DEFINE([HAVE_VOID], [1], [Identifier void exists.]) fi AC_MSG_RESULT($gcal_cv_c_void) dnl dnl Checks for library functions. dnl AC_MSG_RESULT() AC_CHECKING(for library functions) dnl if test "$gcal_cv_use_pager" = yes; then AC_CHECK_FUNCS([dup dup2]) fi AC_CHECK_FUNCS([signal strtol strstr strchr strrchr strcspn strcasecmp strncasecmp setlocale]) dnl dnl Some systems have termios.h but not the corresponding functions. dnl AC_CHECK_FUNC(tcgetattr, AC_DEFINE([HAVE_TERMIOS_FUNCS], [1], [All termios functions are available.])) dnl dnl Check for working system() function. dnl AC_MSG_CHECKING(for working system function) AC_CACHE_VAL(gcal_cv_func_system_ok, AC_TRY_RUN([ # if STDC_HEADERS # include # endif int main() { int i; i = system(NULL); if (!i) exit(1); exit(0); }], gcal_cv_func_system_ok=yes, gcal_cv_func_system_ok=no, gcal_cv_func_system_ok=no)) AC_MSG_RESULT($gcal_cv_func_system_ok) if test "$gcal_cv_func_system_ok" = yes; then AC_DEFINE([HAVE_SYSTEM], [1], [Define if you have a working system function]) fi if test "$gcal_cv_use_included_regexps" = no; then dnl dnl Checks for regular expression functions. dnl have_regexp=no AC_MSG_RESULT() AC_CHECKING(for regular expression functions) dnl dnl Are the preferred GNU regexp functions available? dnl AC_CHECK_FUNC(re_compile_pattern, AC_MSG_RESULT(using GNU re_compile_pattern) AC_DEFINE([HAVE_GNU_RE_COMPILE_PATTERN], [1], [GNU re_compile_pattern() and regex.h]) have_regexp=yes) if test "$have_regexp" = no; then have_posix_regexp=unknown dnl dnl Some versions of Solaris have a regcomp() function, but it doesn't work! dnl So we run a test program. If we're cross-compiling, do it the old way. dnl AC_TRY_RUN([ # if HAVE_SYS_TYPES_H # include # endif # if HAVE_REGEX_H # include # endif int main() { regex_t r; regmatch_t rm; if (regcomp(&r, "abc", 0)) exit(1); if (regexec(&r, "xabcy", 1, &rm, 0)) exit(1); exit(0); }], have_posix_regexp=yes, have_posix_regexp=no, have_posix_regexp=unknown) if test "$have_posix_regexp" = yes; then AC_MSG_RESULT(using POSIX regcomp) AC_DEFINE([HAVE_POSIX_REGCOMP], [1], [POSIX regcomp() and regex.h]) have_regexp=yes else if test "$have_posix_regexp" = unknown; then AC_TRY_LINK([ # if HAVE_SYS_TYPES_H # include # endif # if HAVE_REGEX_H # include # endif], [regex_t *r; regfree(r);], AC_MSG_RESULT(using POSIX regcomp) AC_DEFINE([HAVE_POSIX_REGCOMP], [1], [POSIX regcomp() and regex.]) have_regexp=yes) fi fi if test "$have_regexp" = no; then AC_CHECK_FUNC(re_comp, AC_MSG_RESULT(using BSD re_comp) AC_DEFINE([HAVE_RE_COMP], [1], [BSD re_comp()]) have_regexp=yes) fi fi fi dnl dnl Checks for ctype functions. dnl AC_MSG_RESULT() AC_CHECKING(for ctype library functions) dnl AC_MSG_CHECKING(for upper/lower) AC_CACHE_VAL(gcal_cv_func_upper_lower, AC_TRY_LINK([ # if HAVE_CTYPE_H # include # endif], [static int x; x = tolower(x); x = toupper(x); x = islower(x); x = isupper(x);], [gcal_cv_func_upper_lower=yes], [gcal_cv_func_upper_lower=no])) if test "$gcal_cv_func_upper_lower" = yes; then AC_DEFINE([HAVE_UPPER_LOWER], [1], [Functions/macros toupper(), tolower(), isupper() and islower() are found.]) fi AC_MSG_RESULT($gcal_cv_func_upper_lower) dnl AC_MSG_CHECKING(for isdigit) AC_CACHE_VAL(gcal_cv_func_isdigit, AC_TRY_LINK([ # if HAVE_CTYPE_H # include # endif], [static int x; x = isdigit(x);], [gcal_cv_func_isdigit=yes], [gcal_cv_func_isdigit=no])) if test "$gcal_cv_func_isdigit" = yes; then AC_DEFINE([HAVE_ISDIGIT], [1], [Function/macro isdigit() is found.]) fi AC_MSG_RESULT($gcal_cv_func_isdigit) dnl AC_MSG_CHECKING(for isalpha) AC_CACHE_VAL(gcal_cv_func_isalpha, AC_TRY_LINK([ # if HAVE_CTYPE_H # include # endif], [static int x; x = isalpha(x);], [gcal_cv_func_isalpha=yes], [gcal_cv_func_isalpha=no])) if test "$gcal_cv_func_isalpha" = yes; then AC_DEFINE([HAVE_ISALPHA], [1], [Have isalpha]) fi AC_MSG_RESULT($gcal_cv_func_isalpha) dnl AC_MSG_CHECKING(for isalnum) AC_CACHE_VAL(gcal_cv_func_isalnum, AC_TRY_LINK([ # if HAVE_CTYPE_H # include # endif], [static int x; x = isalnum(x);], [gcal_cv_func_isalnum=yes], [gcal_cv_func_isalnum=no])) if test "$gcal_cv_func_isalnum" = yes; then AC_DEFINE([HAVE_ISALNUM], [1], [Have isalnum]) fi AC_MSG_RESULT($gcal_cv_func_isalnum) dnl AC_MSG_CHECKING(for isspace) AC_CACHE_VAL(gcal_cv_func_isspace, AC_TRY_LINK([ # if HAVE_CTYPE_H # include # endif], [static int x; x = isspace(x);], [gcal_cv_func_isspace=yes], [gcal_cv_func_isspace=no])) if test "$gcal_cv_func_isspace" = yes; then AC_DEFINE([HAVE_ISSPACE], [1], [Have isspace]) fi AC_MSG_RESULT($gcal_cv_func_isspace) dnl dnl Checks for external variable `ospeed' in the ncurses/termcap/termlib library. dnl if test "$gcal_cv_use_term" = yes; then if test "$gcal_ttylibs_ok" = yes || test "$gcal_libtermlib_ok" = yes; then AC_MSG_RESULT() AC_CHECKING(for external variables) dnl AC_MSG_CHECKING(terminal library for ospeed) AC_CACHE_VAL(gcal_cv_var_ospeed_test_1, AC_TRY_LINK([ # if HAVE_SYS_TYPES_H # include # endif # if HAVE_TERMIOS_H # include # endif # if HAVE_TERMCAP_H # include # endif], [ospeed = 0;], [gcal_cv_var_ospeed_test_1=yes], [gcal_cv_var_ospeed_test_1=no])) if test "$gcal_cv_var_ospeed_test_1" = no; then AC_CACHE_VAL(gcal_cv_var_ospeed_test_2, AC_TRY_LINK(, [extern short ospeed; ospeed = 0;], [gcal_cv_var_ospeed_test_2=yes], [gcal_cv_var_ospeed_test_2=no])) fi if test "$gcal_cv_var_ospeed_test_1" = yes || test "$gcal_cv_var_ospeed_test_2" = yes; then AC_DEFINE([HAVE_OSPEED], [1], [The ospeed variable is defined in -lncurses or -ltermcap or -ltermlib]) if test "$gcal_cv_var_ospeed_test_2" = yes; then AC_DEFINE([MUST_DCL_OSPEED], [1], [We must declare the ospeed variable]) fi AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi fi fi dnl dnl Checks for system services. dnl AC_MSG_RESULT() AC_CHECKING(for system services) dnl AC_EXEEXT AC_OBJEXT AC_SYS_INTERPRETER if test "$ac_cv_sys_interpreter" = yes; then AC_DEFINE([HAVE_SYS_INTERPRETER], [1], [Shell can interpret `#!' in first line of a shell script.]) fi AM_GNU_GETTEXT_VERSION([0.17]) AM_GNU_GETTEXT([external]) gl_INIT dnl dnl Ending operations. dnl AC_SUBST(CFLAGS)dnl dnl changequote(<<, >>)dnl dnl dnl Transform the `$srcdir/doc/mks?sed.in' SED scripts while copying dnl because some dumb SEDs cannot handle comments. dnl if test -s "$srcdir/doc/mks1sed.in"; then sed -e '/^#.*[^\\]$/d' -e '/^#$/d' $srcdir/doc/mks1sed.in > $srcdir/doc/mksamp-1.sed fi if test -s "$srcdir/doc/mks2sed.in"; then sed -e '/^#.*[^\\]$/d' -e '/^#$/d' $srcdir/doc/mks2sed.in > $srcdir/doc/mksamp-2.sed fi dnl changequote([, ])dnl dnl AC_MSG_RESULT() AC_CONFIG_HEADERS([config.h]) AC_OUTPUT([Makefile \ install-inf \ data/Makefile \ doc/Makefile \ doc/en/Makefile \ doc/en/examples/Makefile \ doc/mksamp \ lib/Makefile \ misc/Makefile \ misc/daily/daily \ misc/ddiff/ddiff \ misc/ddiff/ddiffdrv \ misc/dst/dst \ misc/gcalltx/gcalltx \ misc/gcalltx/gcalltxp \ misc/moon/moon \ misc/mrms/mrms \ misc/srss/srss \ misc/wloc/wlocdrv \ po/Makefile.in \ src/Makefile])dnl dnl dnl Emit some final text. dnl AC_MSG_RESULT() AC_MSG_RESULT(Bored? Fallen asleep?? All checks done!) AC_MSG_RESULT() AC_MSG_RESULT(Perhaps you might want to inspect the created) AC_MSG_RESULT(Makefiles now for tuning some settings...) AC_MSG_RESULT() gcal-4.1/m4/0000775000000000000000000000000013041164074007555 500000000000000gcal-4.1/m4/fseek.m40000664000000000000000000000100513041163523011026 00000000000000# fseek.m4 serial 4 dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FSEEK], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_FSEEKO]) dnl When fseeko needs fixes, fseek needs them too. if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then REPLACE_FSEEK=1 fi ]) gcal-4.1/m4/log10.m40000664000000000000000000000552113041163523010662 00000000000000# log10.m4 serial 4 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_LOG10], [ m4_divert_text([DEFAULTS], [gl_log10_required=plain]) AC_REQUIRE([gl_MATH_H_DEFAULTS]) dnl Determine LOG10_LIBM. gl_COMMON_DOUBLE_MATHFUNC([log10]) save_LIBS="$LIBS" LIBS="$LIBS $LOG10_LIBM" gl_FUNC_LOG10_WORKS LIBS="$save_LIBS" case "$gl_cv_func_log10_works" in *yes) ;; *) REPLACE_LOG10=1 ;; esac m4_ifdef([gl_FUNC_LOG10_IEEE], [ if test $gl_log10_required = ieee && test $REPLACE_LOG10 = 0; then AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether log10 works according to ISO C 99 with IEC 60559], [gl_cv_func_log10_ieee], [ save_LIBS="$LIBS" LIBS="$LIBS $LOG10_LIBM" AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include /* Compare two numbers with ==. This is a separate function because IRIX 6.5 "cc -O" miscompiles an 'x == x' test. */ static int numeric_equal (double x, double y) { return x == y; } static double dummy (double x) { return 0; } int main (int argc, char *argv[]) { double (*my_log10) (double) = argc ? log10 : dummy; /* Test log10(negative). This test fails on NetBSD 5.1, Solaris 11 2011-11. */ double y = my_log10 (-1.0); if (numeric_equal (y, y)) return 1; return 0; } ]])], [gl_cv_func_log10_ieee=yes], [gl_cv_func_log10_ieee=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_log10_ieee="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_log10_ieee="guessing no" ;; esac ]) LIBS="$save_LIBS" ]) case "$gl_cv_func_log10_ieee" in *yes) ;; *) REPLACE_LOG10=1 ;; esac fi ]) ]) dnl Test whether log10() works. dnl On OSF/1 5.1, log10(-0.0) is NaN. AC_DEFUN([gl_FUNC_LOG10_WORKS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether log10 works], [gl_cv_func_log10_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include volatile double x; double y; int main () { x = -0.0; y = log10 (x); if (!(y + y == y)) return 1; return 0; } ]])], [gl_cv_func_log10_works=yes], [gl_cv_func_log10_works=no], [case "$host_os" in osf*) gl_cv_func_log10_works="guessing no";; *) gl_cv_func_log10_works="guessing yes";; esac ]) ]) ]) gcal-4.1/m4/extern-inline.m40000664000000000000000000001042013041163523012513 00000000000000dnl 'extern inline' a la ISO C99. dnl Copyright 2012-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_EXTERN_INLINE], [ AH_VERBATIM([extern_inline], [/* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see . Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f (void) { } inline void g (void) { f (); }', c99 incorrectly complains 'reference to static identifier "f" in extern inline function'. This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) on configurations that mistakenly use 'static inline' to implement functions or macros in standard C headers like . For example, if isdigit is mistakenly implemented via a static inline function, a program containing an extern inline function that calls isdigit may not work since the C standard prohibits extern inline functions from calling static functions. This bug is known to occur on: OS X 10.8 and earlier; see: http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html DragonFly; see http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log FreeBSD; see: http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and for clang but remains for g++; see . Assume DragonFly and FreeBSD will be similar. */ #if (((defined __APPLE__ && defined __MACH__) \ || defined __DragonFly__ || defined __FreeBSD__) \ && (defined __header_inline \ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ && ! defined __clang__) \ : ((! defined _DONT_USE_CTYPE_INLINE_ \ && (defined __GNUC__ || defined __cplusplus)) \ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ && defined __GNUC__ && ! defined __cplusplus)))) # define _GL_EXTERN_INLINE_STDHEADER_BUG #endif #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ && !defined __PGI \ && !(defined __SUNPRO_C && __STDC__))) \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline # define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern # define _GL_EXTERN_INLINE_IN_USE #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED #endif /* In GCC 4.6 (inclusive) to 5.1 (exclusive), suppress bogus "no previous prototype for 'FOO'" and "no previous declaration for 'FOO'" diagnostics, when FOO is an inline function in the header; see and . */ #if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ _GL_INLINE_HEADER_CONST_PRAGMA # define _GL_INLINE_HEADER_END \ _Pragma ("GCC diagnostic pop") #else # define _GL_INLINE_HEADER_BEGIN # define _GL_INLINE_HEADER_END #endif]) ]) gcal-4.1/m4/fflush.m40000664000000000000000000000551413041163523011231 00000000000000# fflush.m4 serial 15 # Copyright (C) 2007-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Eric Blake dnl Find out how to obey POSIX semantics of fflush(stdin) discarding dnl unread input on seekable streams, rather than C99 undefined semantics. AC_DEFUN([gl_FUNC_FFLUSH], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_FUNC_FFLUSH_STDIN if test $gl_cv_func_fflush_stdin != yes; then REPLACE_FFLUSH=1 fi ]) dnl Determine whether fflush works on input streams. dnl Sets gl_cv_func_fflush_stdin. AC_DEFUN([gl_FUNC_FFLUSH_STDIN], [ AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CACHE_CHECK([whether fflush works on input streams], [gl_cv_func_fflush_stdin], [echo hello world > conftest.txt AC_RUN_IFELSE([AC_LANG_PROGRAM( [[ #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif ]], [[FILE *f = fopen ("conftest.txt", "r"); char buffer[10]; int fd; int c; if (f == NULL) return 1; fd = fileno (f); if (fd < 0 || fread (buffer, 1, 5, f) != 5) return 2; /* For deterministic results, ensure f read a bigger buffer. */ if (lseek (fd, 0, SEEK_CUR) == 5) return 3; /* POSIX requires fflush-fseek to set file offset of fd. This fails on BSD systems and on mingw. */ if (fflush (f) != 0 || fseek (f, 0, SEEK_CUR) != 0) return 4; if (lseek (fd, 0, SEEK_CUR) != 5) return 5; /* Verify behaviour of fflush after ungetc. See */ /* Verify behaviour of fflush after a backup ungetc. This fails on mingw. */ c = fgetc (f); ungetc (c, f); fflush (f); if (fgetc (f) != c) return 6; /* Verify behaviour of fflush after a non-backup ungetc. This fails on glibc 2.8 and on BSD systems. */ c = fgetc (f); ungetc ('@', f); fflush (f); if (fgetc (f) != c) return 7; return 0; ]])], [gl_cv_func_fflush_stdin=yes], [gl_cv_func_fflush_stdin=no], [gl_cv_func_fflush_stdin=cross]) rm conftest.txt ]) case $gl_cv_func_fflush_stdin in yes) gl_func_fflush_stdin=1 ;; no) gl_func_fflush_stdin=0 ;; *) gl_func_fflush_stdin='(-1)' ;; esac AC_DEFINE_UNQUOTED([FUNC_FFLUSH_STDIN], [$gl_func_fflush_stdin], [Define to 1 if fflush is known to work on stdin as per POSIX.1-2008, 0 if fflush is known to not work, -1 if unknown.]) ]) # Prerequisites of lib/fflush.c. AC_DEFUN([gl_PREREQ_FFLUSH], [:]) gcal-4.1/m4/pathmax.m40000664000000000000000000000220413041163523011375 00000000000000# pathmax.m4 serial 10 dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_PATHMAX], [ dnl Prerequisites of lib/pathmax.h. AC_CHECK_HEADERS_ONCE([sys/param.h]) ]) # Expands to a piece of C program that defines PATH_MAX in the same way as # "pathmax.h" will do. AC_DEFUN([gl_PATHMAX_SNIPPET], [[ /* Arrange to define PATH_MAX, like "pathmax.h" does. */ #if HAVE_UNISTD_H # include #endif #include #if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include #endif #if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN #endif #ifdef __hpux # undef PATH_MAX # define PATH_MAX 1024 #endif #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # undef PATH_MAX # define PATH_MAX 260 #endif ]]) # Prerequisites of gl_PATHMAX_SNIPPET. AC_DEFUN([gl_PATHMAX_SNIPPET_PREREQ], [ AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h]) ]) gcal-4.1/m4/sys_stat_h.m40000664000000000000000000000723613041163523012125 00000000000000# sys_stat_h.m4 serial 28 -*- Autoconf -*- dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Eric Blake. dnl Provide a GNU-like . AC_DEFUN([gl_HEADER_SYS_STAT_H], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl Check for broken stat macros. AC_REQUIRE([AC_HEADER_STAT]) gl_CHECK_NEXT_HEADERS([sys/stat.h]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Whether to override 'struct stat'. m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([gl_LARGEFILE]) ], [ WINDOWS_64_BIT_ST_SIZE=0 ]) AC_SUBST([WINDOWS_64_BIT_ST_SIZE]) if test $WINDOWS_64_BIT_ST_SIZE = 1; then AC_DEFINE([_GL_WINDOWS_64_BIT_ST_SIZE], [1], [Define to 1 if Gnulib overrides 'struct stat' on Windows so that struct stat.st_size becomes 64-bit.]) fi dnl Define types that are supposed to be defined in or dnl . AC_CHECK_TYPE([nlink_t], [], [AC_DEFINE([nlink_t], [int], [Define to the type of st_nlink in struct stat, or a supertype.])], [#include #include ]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat]) ]) # gl_HEADER_SYS_STAT_H AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_STAT_H_DEFAULTS], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR GNULIB_FCHMODAT=0; AC_SUBST([GNULIB_FCHMODAT]) GNULIB_FSTAT=0; AC_SUBST([GNULIB_FSTAT]) GNULIB_FSTATAT=0; AC_SUBST([GNULIB_FSTATAT]) GNULIB_FUTIMENS=0; AC_SUBST([GNULIB_FUTIMENS]) GNULIB_LCHMOD=0; AC_SUBST([GNULIB_LCHMOD]) GNULIB_LSTAT=0; AC_SUBST([GNULIB_LSTAT]) GNULIB_MKDIRAT=0; AC_SUBST([GNULIB_MKDIRAT]) GNULIB_MKFIFO=0; AC_SUBST([GNULIB_MKFIFO]) GNULIB_MKFIFOAT=0; AC_SUBST([GNULIB_MKFIFOAT]) GNULIB_MKNOD=0; AC_SUBST([GNULIB_MKNOD]) GNULIB_MKNODAT=0; AC_SUBST([GNULIB_MKNODAT]) GNULIB_STAT=0; AC_SUBST([GNULIB_STAT]) GNULIB_UTIMENSAT=0; AC_SUBST([GNULIB_UTIMENSAT]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FCHMODAT=1; AC_SUBST([HAVE_FCHMODAT]) HAVE_FSTATAT=1; AC_SUBST([HAVE_FSTATAT]) HAVE_FUTIMENS=1; AC_SUBST([HAVE_FUTIMENS]) HAVE_LCHMOD=1; AC_SUBST([HAVE_LCHMOD]) HAVE_LSTAT=1; AC_SUBST([HAVE_LSTAT]) HAVE_MKDIRAT=1; AC_SUBST([HAVE_MKDIRAT]) HAVE_MKFIFO=1; AC_SUBST([HAVE_MKFIFO]) HAVE_MKFIFOAT=1; AC_SUBST([HAVE_MKFIFOAT]) HAVE_MKNOD=1; AC_SUBST([HAVE_MKNOD]) HAVE_MKNODAT=1; AC_SUBST([HAVE_MKNODAT]) HAVE_UTIMENSAT=1; AC_SUBST([HAVE_UTIMENSAT]) REPLACE_FSTAT=0; AC_SUBST([REPLACE_FSTAT]) REPLACE_FSTATAT=0; AC_SUBST([REPLACE_FSTATAT]) REPLACE_FUTIMENS=0; AC_SUBST([REPLACE_FUTIMENS]) REPLACE_LSTAT=0; AC_SUBST([REPLACE_LSTAT]) REPLACE_MKDIR=0; AC_SUBST([REPLACE_MKDIR]) REPLACE_MKFIFO=0; AC_SUBST([REPLACE_MKFIFO]) REPLACE_MKNOD=0; AC_SUBST([REPLACE_MKNOD]) REPLACE_STAT=0; AC_SUBST([REPLACE_STAT]) REPLACE_UTIMENSAT=0; AC_SUBST([REPLACE_UTIMENSAT]) ]) gcal-4.1/m4/stddef_h.m40000664000000000000000000000321613041163523011517 00000000000000dnl A placeholder for , for platforms that have issues. # stddef_h.m4 serial 5 dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_STDDEF_H], [ AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) AC_REQUIRE([gt_TYPE_WCHAR_T]) STDDEF_H= AC_CHECK_TYPE([max_align_t], [], [HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h], [[#include ]]) if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions], [gl_cv_decl_null_works], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include int test[2 * (sizeof NULL == sizeof (void *)) -1]; ]])], [gl_cv_decl_null_works=yes], [gl_cv_decl_null_works=no])]) if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi AC_SUBST([STDDEF_H]) AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"]) if test -n "$STDDEF_H"; then gl_NEXT_HEADERS([stddef.h]) fi ]) AC_DEFUN([gl_STDDEF_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_STDDEF_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. REPLACE_NULL=0; AC_SUBST([REPLACE_NULL]) HAVE_MAX_ALIGN_T=1; AC_SUBST([HAVE_MAX_ALIGN_T]) HAVE_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T]) ]) gcal-4.1/m4/sig_atomic_t.m40000664000000000000000000000110313041163523012371 00000000000000# sig_atomic_t.m4 serial 3 dnl Copyright (C) 2003, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gt_TYPE_SIG_ATOMIC_T], [ AC_CHECK_TYPES([sig_atomic_t], , [AC_DEFINE([sig_atomic_t], [int], [Define as an integer type suitable for memory locations that can be accessed atomically even in the presence of asynchronous signals.])], [#include ]) ]) gcal-4.1/m4/wint_t.m40000664000000000000000000000405113041163524011242 00000000000000# wint_t.m4 serial 6 dnl Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether has the 'wint_t' type and whether gnulib's dnl or would, if present, override 'wint_t'. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WINT_T], [ AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include wint_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wint_t=yes], [gt_cv_c_wint_t=no])]) if test $gt_cv_c_wint_t = yes; then AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.]) dnl Determine whether gnulib's or would, if present, dnl override 'wint_t'. AC_CACHE_CHECK([whether wint_t is too small], [gl_cv_type_wint_t_too_small], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include #endif #include int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1]; ]])], [gl_cv_type_wint_t_too_small=no], [gl_cv_type_wint_t_too_small=yes])]) if test $gl_cv_type_wint_t_too_small = yes; then GNULIB_OVERRIDES_WINT_T=1 else GNULIB_OVERRIDES_WINT_T=0 fi else GNULIB_OVERRIDES_WINT_T=0 fi AC_SUBST([GNULIB_OVERRIDES_WINT_T]) ]) gcal-4.1/m4/waitpid.m40000664000000000000000000000064013041163524011377 00000000000000# waitpid.m4 serial 2 dnl Copyright (C) 2010-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_WAITPID], [ AC_REQUIRE([AC_CANONICAL_HOST]) HAVE_WAITPID=1 case $host_os in mingw*) HAVE_WAITPID=0 ;; esac ]) gcal-4.1/m4/cos.m40000664000000000000000000000055213041163523010523 00000000000000# cos.m4 serial 1 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_COS], [ dnl Determine COS_LIBM. gl_COMMON_DOUBLE_MATHFUNC([cos]) ]) gcal-4.1/m4/lseek.m40000664000000000000000000000436113041163523011044 00000000000000# lseek.m4 serial 10 dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_LSEEK], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_CC]) AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CACHE_CHECK([whether lseek detects pipes], [gl_cv_func_lseek_pipe], [case "$host_os" in mingw*) dnl Native Windows. dnl The result of lseek (fd, (off_t)0, SEEK_CUR) or dnl SetFilePointer(handle, 0, NULL, FILE_CURRENT) dnl for a pipe depends on the environment: In a Cygwin 1.5 dnl environment it succeeds (wrong); in a Cygwin 1.7 environment dnl it fails with a wrong errno value. gl_cv_func_lseek_pipe=no ;; *) if test $cross_compiling = no; then AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include /* for off_t */ #include /* for SEEK_CUR */ #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif ]], [[ /* Exit with success only if stdin is seekable. */ return lseek (0, (off_t)0, SEEK_CUR) < 0; ]])], [if test -s conftest$ac_exeext \ && ./conftest$ac_exeext < conftest.$ac_ext \ && test 1 = "`echo hi \ | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then gl_cv_func_lseek_pipe=yes else gl_cv_func_lseek_pipe=no fi ], [gl_cv_func_lseek_pipe=no]) else AC_COMPILE_IFELSE( [AC_LANG_SOURCE([[ #if defined __BEOS__ /* BeOS mistakenly return 0 when trying to seek on pipes. */ Choke me. #endif]])], [gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no]) fi ;; esac ]) if test $gl_cv_func_lseek_pipe = no; then REPLACE_LSEEK=1 AC_DEFINE([LSEEK_PIPE_BROKEN], [1], [Define to 1 if lseek does not detect pipes.]) fi AC_REQUIRE([gl_SYS_TYPES_H]) if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_LSEEK=1 fi ]) gcal-4.1/m4/sin.m40000664000000000000000000000055213041163523010530 00000000000000# sin.m4 serial 1 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_SIN], [ dnl Determine SIN_LIBM. gl_COMMON_DOUBLE_MATHFUNC([sin]) ]) gcal-4.1/m4/secure_getenv.m40000664000000000000000000000152413041163523012575 00000000000000# Look up an environment variable more securely. dnl Copyright 2013-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_SECURE_GETENV], [ dnl Persuade glibc to declare secure_getenv(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([secure_getenv]) if test $ac_cv_func_secure_getenv = no; then HAVE_SECURE_GETENV=0 fi ]) # Prerequisites of lib/secure_getenv.c. AC_DEFUN([gl_PREREQ_SECURE_GETENV], [ AC_CHECK_FUNCS([__secure_getenv]) if test $ac_cv_func___secure_getenv = no; then AC_CHECK_FUNCS([issetugid]) fi AC_CHECK_FUNCS_ONCE([getuid geteuid getgid getegid]) ]) gcal-4.1/m4/stdio_h.m40000664000000000000000000002525613041163523011400 00000000000000# stdio_h.m4 serial 48 dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_STDIO_H], [ AH_VERBATIM([MINGW_ANSI_STDIO], [/* Use GNU style printf and scanf. */ #ifndef __USE_MINGW_ANSI_STDIO # undef __USE_MINGW_ANSI_STDIO #endif ]) AC_DEFINE([__USE_MINGW_ANSI_STDIO]) AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_NEXT_HEADERS([stdio.h]) dnl Determine whether __USE_MINGW_ANSI_STDIO makes printf and dnl inttypes.h behave like gnu instead of system; we must give our dnl printf wrapper the right attribute to match. AC_CACHE_CHECK([which flavor of printf attribute matches inttypes macros], [gl_cv_func_printf_attribute_flavor], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #define __STDC_FORMAT_MACROS 1 #include #include /* For non-mingw systems, compilation will trivially succeed. For mingw, compilation will succeed for older mingw (system printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; #endif ]])], [gl_cv_func_printf_attribute_flavor=system], [gl_cv_func_printf_attribute_flavor=gnu])]) if test "$gl_cv_func_printf_attribute_flavor" = gnu; then AC_DEFINE([GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU], [1], [Define to 1 if printf and friends should be labeled with attribute "__gnu_printf__" instead of "__printf__"]) fi dnl No need to create extra modules for these functions. Everyone who uses dnl likely needs them. GNULIB_FSCANF=1 gl_MODULE_INDICATOR([fscanf]) GNULIB_SCANF=1 gl_MODULE_INDICATOR([scanf]) GNULIB_FGETC=1 GNULIB_GETC=1 GNULIB_GETCHAR=1 GNULIB_FGETS=1 GNULIB_FREAD=1 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING dnl or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_READ_FUNCS=1 AC_LIBOBJ([stdio-read]) fi ]) dnl No need to create extra modules for these functions. Everyone who uses dnl likely needs them. GNULIB_FPRINTF=1 GNULIB_PRINTF=1 GNULIB_VFPRINTF=1 GNULIB_VPRINTF=1 GNULIB_FPUTC=1 GNULIB_PUTC=1 GNULIB_PUTCHAR=1 GNULIB_FPUTS=1 GNULIB_PUTS=1 GNULIB_FWRITE=1 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or dnl GNULIB_SIGPIPE redundant. m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then REPLACE_STDIO_WRITE_FUNCS=1 AC_LIBOBJ([stdio-write]) fi ]) dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING dnl or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_WRITE_FUNCS=1 AC_LIBOBJ([stdio-write]) fi ]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by both C89 and C11. gl_WARN_ON_USE_PREPARE([[#include ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf]) ]) AC_DEFUN([gl_STDIO_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_STDIO_H_DEFAULTS], [ GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF]) GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE]) GNULIB_FDOPEN=0; AC_SUBST([GNULIB_FDOPEN]) GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH]) GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC]) GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS]) GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN]) GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF]) GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX]) GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE]) GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC]) GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS]) GNULIB_FREAD=0; AC_SUBST([GNULIB_FREAD]) GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN]) GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF]) GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK]) GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO]) GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL]) GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO]) GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE]) GNULIB_GETC=0; AC_SUBST([GNULIB_GETC]) GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR]) GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM]) GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE]) GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF]) GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX]) GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE]) GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR]) GNULIB_POPEN=0; AC_SUBST([GNULIB_POPEN]) GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF]) GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX]) GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC]) GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR]) GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS]) GNULIB_REMOVE=0; AC_SUBST([GNULIB_REMOVE]) GNULIB_RENAME=0; AC_SUBST([GNULIB_RENAME]) GNULIB_RENAMEAT=0; AC_SUBST([GNULIB_RENAMEAT]) GNULIB_SCANF=0; AC_SUBST([GNULIB_SCANF]) GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF]) GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX]) GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING]) GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE]) GNULIB_TMPFILE=0; AC_SUBST([GNULIB_TMPFILE]) GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF]) GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF]) GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF]) GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF]) GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF]) GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX]) GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF]) GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX]) GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF]) GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE]) HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO]) HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO]) HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM]) HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE]) HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF]) HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF]) HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF]) HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF]) HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO]) HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO]) HAVE_PCLOSE=1; AC_SUBST([HAVE_PCLOSE]) HAVE_POPEN=1; AC_SUBST([HAVE_POPEN]) HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT]) HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF]) HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF]) REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF]) REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE]) REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN]) REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN]) REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE]) REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN]) REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK]) REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO]) REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL]) REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO]) REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM]) REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE]) REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF]) REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR]) REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN]) REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF]) REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE]) REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME]) REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT]) REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF]) REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF]) REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS]) REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS]) REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE]) REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF]) REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF]) REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF]) REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF]) REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF]) ]) gcal-4.1/m4/dirname.m40000664000000000000000000000105413041163523011354 00000000000000#serial 10 -*- autoconf -*- dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_DIRNAME], [ AC_REQUIRE([gl_DIRNAME_LGPL]) ]) AC_DEFUN([gl_DIRNAME_LGPL], [ dnl Prerequisites of lib/dirname.h. AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) dnl No prerequisites of lib/basename-lgpl.c, lib/dirname-lgpl.c, dnl lib/stripslash.c. ]) gcal-4.1/m4/msvc-nothrow.m40000664000000000000000000000053013041163523012401 00000000000000# msvc-nothrow.m4 serial 1 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MSVC_NOTHROW], [ AC_REQUIRE([gl_MSVC_INVAL]) ]) gcal-4.1/m4/fcntl.m40000664000000000000000000001035113041163523011043 00000000000000# fcntl.m4 serial 9 dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # For now, this module ensures that fcntl() # - supports F_DUPFD correctly # - supports or emulates F_DUPFD_CLOEXEC # - supports F_GETFD # Still to be ported to mingw: # - F_SETFD # - F_GETFL, F_SETFL # - F_GETOWN, F_SETOWN # - F_GETLK, F_SETLK, F_SETLKW AC_DEFUN([gl_FUNC_FCNTL], [ dnl Persuade glibc to expose F_DUPFD_CLOEXEC. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([fcntl]) if test $ac_cv_func_fcntl = no; then gl_REPLACE_FCNTL else dnl cygwin 1.5.x F_DUPFD has wrong errno, and allows negative target dnl haiku alpha 2 F_DUPFD has wrong errno AC_CACHE_CHECK([whether fcntl handles F_DUPFD correctly], [gl_cv_func_fcntl_f_dupfd_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include #include #include #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif ]], [[int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; if (fcntl (0, F_DUPFD, -1) != -1) result |= 1; if (errno != EINVAL) result |= 2; if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4; if (errno != EINVAL) result |= 8; /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */ { int fd; fd = open (".", O_RDONLY); if (fd == -1) result |= 16; else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1) result |= 32; close (fd); } return result;]])], [gl_cv_func_fcntl_f_dupfd_works=yes], [gl_cv_func_fcntl_f_dupfd_works=no], [case $host_os in aix* | cygwin* | haiku*) gl_cv_func_fcntl_f_dupfd_works="guessing no" ;; *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;; esac])]) case $gl_cv_func_fcntl_f_dupfd_works in *yes) ;; *) gl_REPLACE_FCNTL AC_DEFINE([FCNTL_DUPFD_BUGGY], [1], [Define this to 1 if F_DUPFD behavior does not match POSIX]) ;; esac dnl Many systems lack F_DUPFD_CLOEXEC AC_CACHE_CHECK([whether fcntl understands F_DUPFD_CLOEXEC], [gl_cv_func_fcntl_f_dupfd_cloexec], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #ifndef F_DUPFD_CLOEXEC choke me #endif ]])], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #ifdef __linux__ /* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace it to support the semantics on older kernels that failed with EINVAL. */ choke me #endif ]])], [gl_cv_func_fcntl_f_dupfd_cloexec=yes], [gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"])], [gl_cv_func_fcntl_f_dupfd_cloexec=no])]) if test "$gl_cv_func_fcntl_f_dupfd_cloexec" != yes; then gl_REPLACE_FCNTL dnl No witness macro needed for this bug. fi fi dnl Replace fcntl() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then gl_REPLACE_FCNTL fi ]) ]) AC_DEFUN([gl_REPLACE_FCNTL], [ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([fcntl]) if test $ac_cv_func_fcntl = no; then HAVE_FCNTL=0 else REPLACE_FCNTL=1 fi ]) gcal-4.1/m4/assert.m40000664000000000000000000000166013041163523011241 00000000000000#serial 7 # Copyright (C) 1998-1999, 2001, 2004, 2008-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl based on code from Eleftherios Gkioulekas dnl Autoconf 2.60 provides AC_HEADER_ASSERT for the same purpose, but dnl it has broken semantics for --enable-assert until 2.64. AC_DEFUN([gl_ASSERT], [ AC_MSG_CHECKING([whether to enable assertions]) AC_ARG_ENABLE([assert], [AS_HELP_STRING([--disable-assert], [turn off assertions])], [AS_IF([test "x$enableval" = xno], [AC_DEFINE([NDEBUG], [1], [Define to 1 if assertions should be disabled.])], [test "x$enableval" != xyes], [AC_MSG_WARN([invalid argument supplied to --enable-assert]) enable_assert=yes])], [enable_assert=yes]) AC_MSG_RESULT([$enable_assert]) ]) gcal-4.1/m4/regex.m40000664000000000000000000002726713041163523011065 00000000000000# serial 66 # Copyright (C) 1996-2001, 2003-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl Initially derived from code in GNU grep. dnl Mostly written by Jim Meyering. AC_PREREQ([2.50]) AC_DEFUN([gl_REGEX], [ AC_ARG_WITH([included-regex], [AS_HELP_STRING([--without-included-regex], [don't compile regex; this is the default on systems with recent-enough versions of the GNU C Library (use with caution on other systems).])]) case $with_included_regex in #( yes|no) ac_use_included_regex=$with_included_regex ;; '') # If the system regex support is good enough that it passes the # following run test, then default to *not* using the included regex.c. # If cross compiling, assume the test would fail and use the included # regex.c. AC_CHECK_DECLS_ONCE([alarm]) AC_CHECK_HEADERS_ONCE([malloc.h]) AC_CACHE_CHECK([for working re_compile_pattern], [gl_cv_func_re_compile_pattern_working], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include #include #if defined M_CHECK_ACTION || HAVE_DECL_ALARM # include # include #endif #if HAVE_MALLOC_H # include #endif #ifdef M_CHECK_ACTION /* Exit with distinguishable exit code. */ static void sigabrt_no_core (int sig) { raise (SIGTERM); } #endif ]], [[int result = 0; static struct re_pattern_buffer regex; unsigned char folded_chars[UCHAR_MAX + 1]; int i; const char *s; struct re_registers regs; /* Some builds of glibc go into an infinite loop on this test. Use alarm to force death, and mallopt to avoid malloc recursion in diagnosing the corrupted heap. */ #if HAVE_DECL_ALARM signal (SIGALRM, SIG_DFL); alarm (2); #endif #ifdef M_CHECK_ACTION signal (SIGABRT, sigabrt_no_core); mallopt (M_CHECK_ACTION, 2); #endif if (setlocale (LC_ALL, "en_US.UTF-8")) { { /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html This test needs valgrind to catch the bug on Debian GNU/Linux 3.1 x86, but it might catch the bug better on other platforms and it shouldn't hurt to try the test here. */ static char const pat[] = "insert into"; static char const data[] = "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else if (re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, ®s) != -1) result |= 1; regfree (®ex); } { /* This test is from glibc bug 15078. The test case is from Andreas Schwab in . */ static char const pat[] = "[^x]x"; static char const data[] = /* */ "\xe1\x80\x80" "\xe1\x80\xbb" "\xe1\x80\xbd" "\xe1\x80\x94" "\xe1\x80\xba" "\xe1\x80\xaf" "\xe1\x80\x95" "\xe1\x80\xba" "x"; re_set_syntax (0); memset (®ex, 0, sizeof regex); s = re_compile_pattern (pat, sizeof pat - 1, ®ex); if (s) result |= 1; else { i = re_search (®ex, data, sizeof data - 1, 0, sizeof data - 1, 0); if (i != 0 && i != 21) result |= 1; } regfree (®ex); } if (! setlocale (LC_ALL, "C")) return 1; } /* This test is from glibc bug 3957, reported by Andrew Mackey. */ re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[^x]b", 6, ®ex); if (s) result |= 2; /* This should fail, but succeeds for glibc-2.5. */ else if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) result |= 2; /* This regular expression is from Spencer ere test number 75 in grep-2.3. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP); memset (®ex, 0, sizeof regex); for (i = 0; i <= UCHAR_MAX; i++) folded_chars[i] = i; regex.translate = folded_chars; s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, ®ex); /* This should fail with _Invalid character class name_ error. */ if (!s) result |= 4; /* Ensure that [b-a] is diagnosed as invalid, when using RE_NO_EMPTY_RANGES. */ re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("a[b-a]", 6, ®ex); if (s == 0) result |= 8; /* This should succeed, but does not for glibc-2.1.3. */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("{1", 2, ®ex); if (s) result |= 8; /* The following example is derived from a problem report against gawk from Jorge Stolfi . */ memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[an\371]*n", 7, ®ex); if (s) result |= 8; /* This should match, but does not for glibc-2.2.1. */ else if (re_match (®ex, "an", 2, 0, ®s) != 2) result |= 8; memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 8; /* glibc-2.2.93 does not work with a negative RANGE argument. */ else if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) result |= 8; /* The version of regex.c in older versions of gnulib ignored RE_ICASE. Detect that problem too. */ re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("x", 1, ®ex); if (s) result |= 16; else if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) result |= 16; /* Catch a bug reported by Vin Shelton in http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html */ re_set_syntax (RE_SYNTAX_POSIX_BASIC & ~RE_CONTEXT_INVALID_DUP & ~RE_NO_EMPTY_RANGES); memset (®ex, 0, sizeof regex); s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); if (s) result |= 32; /* REG_STARTEND was added to glibc on 2004-01-15. Reject older versions. */ if (! REG_STARTEND) result |= 64; #if 0 /* It would be nice to reject hosts whose regoff_t values are too narrow (including glibc on hosts with 64-bit ptrdiff_t and 32-bit int), but we should wait until glibc implements this feature. Otherwise, support for equivalence classes and multibyte collation symbols would always be broken except when compiling --without-included-regex. */ if (sizeof (regoff_t) < sizeof (ptrdiff_t) || sizeof (regoff_t) < sizeof (ssize_t)) result |= 64; #endif return result; ]])], [gl_cv_func_re_compile_pattern_working=yes], [gl_cv_func_re_compile_pattern_working=no], dnl When crosscompiling, assume it is not working. [gl_cv_func_re_compile_pattern_working=no])]) case $gl_cv_func_re_compile_pattern_working in #( yes) ac_use_included_regex=no;; #( no) ac_use_included_regex=yes;; esac ;; *) AC_MSG_ERROR([Invalid value for --with-included-regex: $with_included_regex]) ;; esac if test $ac_use_included_regex = yes; then AC_DEFINE([_REGEX_INCLUDE_LIMITS_H], [1], [Define if you want to include , so that it consistently overrides 's RE_DUP_MAX.]) AC_DEFINE([_REGEX_LARGE_OFFSETS], [1], [Define if you want regoff_t to be at least as wide POSIX requires.]) AC_DEFINE([re_syntax_options], [rpl_re_syntax_options], [Define to rpl_re_syntax_options if the replacement should be used.]) AC_DEFINE([re_set_syntax], [rpl_re_set_syntax], [Define to rpl_re_set_syntax if the replacement should be used.]) AC_DEFINE([re_compile_pattern], [rpl_re_compile_pattern], [Define to rpl_re_compile_pattern if the replacement should be used.]) AC_DEFINE([re_compile_fastmap], [rpl_re_compile_fastmap], [Define to rpl_re_compile_fastmap if the replacement should be used.]) AC_DEFINE([re_search], [rpl_re_search], [Define to rpl_re_search if the replacement should be used.]) AC_DEFINE([re_search_2], [rpl_re_search_2], [Define to rpl_re_search_2 if the replacement should be used.]) AC_DEFINE([re_match], [rpl_re_match], [Define to rpl_re_match if the replacement should be used.]) AC_DEFINE([re_match_2], [rpl_re_match_2], [Define to rpl_re_match_2 if the replacement should be used.]) AC_DEFINE([re_set_registers], [rpl_re_set_registers], [Define to rpl_re_set_registers if the replacement should be used.]) AC_DEFINE([re_comp], [rpl_re_comp], [Define to rpl_re_comp if the replacement should be used.]) AC_DEFINE([re_exec], [rpl_re_exec], [Define to rpl_re_exec if the replacement should be used.]) AC_DEFINE([regcomp], [rpl_regcomp], [Define to rpl_regcomp if the replacement should be used.]) AC_DEFINE([regexec], [rpl_regexec], [Define to rpl_regexec if the replacement should be used.]) AC_DEFINE([regerror], [rpl_regerror], [Define to rpl_regerror if the replacement should be used.]) AC_DEFINE([regfree], [rpl_regfree], [Define to rpl_regfree if the replacement should be used.]) fi ]) # Prerequisites of lib/regex.c and lib/regex_internal.c. AC_DEFUN([gl_PREREQ_REGEX], [ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_C_INLINE]) AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) AC_REQUIRE([gl_EEMALLOC]) AC_REQUIRE([gl_GLIBC21]) AC_CHECK_HEADERS([libintl.h]) AC_CHECK_FUNCS_ONCE([isblank iswctype]) AC_CHECK_DECLS([isblank], [], [], [[#include ]]) ]) gcal-4.1/m4/rawmemchr.m40000664000000000000000000000117213041163523011723 00000000000000# rawmemchr.m4 serial 2 dnl Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_RAWMEMCHR], [ dnl Persuade glibc to declare rawmemchr(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_CHECK_FUNCS([rawmemchr]) if test $ac_cv_func_rawmemchr = no; then HAVE_RAWMEMCHR=0 fi ]) # Prerequisites of lib/strchrnul.c. AC_DEFUN([gl_PREREQ_RAWMEMCHR], [:]) gcal-4.1/m4/getprogname.m40000664000000000000000000000263313041163523012251 00000000000000# getprogname.m4 - check for getprogname or replacements for it # Copyright (C) 2016-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 AC_DEFUN([gl_FUNC_GETPROGNAME], [ AC_CHECK_FUNCS_ONCE([getprogname getexecname]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) ac_found=0 AC_CHECK_DECLS([program_invocation_name], [ac_found=1], [], [#include ]) AC_CHECK_DECLS([program_invocation_short_name], [ac_found=1], [], [#include ]) AC_CHECK_DECLS([__argv], [ac_found=1], [], [#include ]) # Incur the cost of this test only if none of the above worked. if test $ac_found = 0; then # On OpenBSD 5.1, using the global __progname variable appears to be # the only way to implement getprogname. AC_CACHE_CHECK([whether __progname is defined in default libraries], [gl_cv_var___progname], [ gl_cv_var___progname= AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[extern char *__progname;]], [[return *__progname;]] )], [gl_cv_var___progname=yes] ) ] ) if test "$gl_cv_var___progname" = yes; then AC_DEFINE([HAVE_VAR___PROGNAME], 1, [Define if you have a global __progname variable]) fi fi ]) gcal-4.1/m4/write.m40000664000000000000000000000175513041163524011100 00000000000000# write.m4 serial 5 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_WRITE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_WRITE=1 fi dnl This ifdef is just an optimization, to avoid performing a configure dnl check whose result is not used. It does not make the test of dnl GNULIB_UNISTD_H_SIGPIPE or GNULIB_SIGPIPE redundant. m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then REPLACE_WRITE=1 fi ]) m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_WRITE=1 fi ]) ]) # Prerequisites of lib/write.c. AC_DEFUN([gl_PREREQ_WRITE], [:]) gcal-4.1/m4/include_next.m40000664000000000000000000002077313041163523012427 00000000000000# include_next.m4 serial 23 dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Derek Price. dnl Sets INCLUDE_NEXT and PRAGMA_SYSTEM_HEADER. dnl dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or to dnl 'include' otherwise. dnl dnl INCLUDE_NEXT_AS_FIRST_DIRECTIVE expands to 'include_next' if the compiler dnl supports it in the special case that it is the first include directive in dnl the given file, or to 'include' otherwise. dnl dnl PRAGMA_SYSTEM_HEADER can be used in files that contain #include_next, dnl so as to avoid GCC warnings when the gcc option -pedantic is used. dnl '#pragma GCC system_header' has the same effect as if the file was found dnl through the include search path specified with '-isystem' options (as dnl opposed to the search path specified with '-I' options). Namely, gcc dnl does not warn about some things, and on some systems (Solaris and Interix) dnl __STDC__ evaluates to 0 instead of to 1. The latter is an undesired side dnl effect; we are therefore careful to use 'defined __STDC__' or '1' instead dnl of plain '__STDC__'. dnl dnl PRAGMA_COLUMNS can be used in files that override system header files, so dnl as to avoid compilation errors on HP NonStop systems when the gnulib file dnl is included by a system header file that does a "#pragma COLUMNS 80" (which dnl has the effect of truncating the lines of that file and all files that it dnl includes to 80 columns) and the gnulib file has lines longer than 80 dnl columns. AC_DEFUN([gl_INCLUDE_NEXT], [ AC_LANG_PREPROC_REQUIRE() AC_CACHE_CHECK([whether the preprocessor supports include_next], [gl_cv_have_include_next], [rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 dnl IBM C 9.0, 10.1 (original versions, prior to the 2009-01 updates) on dnl AIX 6.1 support include_next when used as first preprocessor directive dnl in a file, but not when preceded by another include directive. Check dnl for this bug by including . dnl Additionally, with this same compiler, include_next is a no-op when dnl used in a header file that was included by specifying its absolute dnl file name. Despite these two bugs, include_next is used in the dnl compiler's . By virtue of the second bug, we need to use dnl include_next as well in this case. cat < conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd1b/conftest.h #define DEFINED_IN_CONFTESTD1 #include #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd2/conftest.h #ifndef DEFINED_IN_CONFTESTD1 #error "include_next test doesn't work" #endif #define DEFINED_IN_CONFTESTD2 EOF gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" dnl We intentionally avoid using AC_LANG_SOURCE here. AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include ]], [gl_cv_have_include_next=yes], [CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include ]], [gl_cv_have_include_next=buggy], [gl_cv_have_include_next=no]) ]) CPPFLAGS="$gl_save_CPPFLAGS" rm -rf conftestd1a conftestd1b conftestd2 ]) PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next if test -n "$GCC"; then PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' fi else if test $gl_cv_have_include_next = buggy; then INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next else INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include fi fi AC_SUBST([INCLUDE_NEXT]) AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE]) AC_SUBST([PRAGMA_SYSTEM_HEADER]) AC_CACHE_CHECK([whether system header files limit the line length], [gl_cv_pragma_columns], [dnl HP NonStop systems, which define __TANDEM, have this misfeature. AC_EGREP_CPP([choke me], [ #ifdef __TANDEM choke me #endif ], [gl_cv_pragma_columns=yes], [gl_cv_pragma_columns=no]) ]) if test $gl_cv_pragma_columns = yes; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= fi AC_SUBST([PRAGMA_COLUMNS]) ]) # gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...) # ------------------------------------------ # For each arg foo.h, if #include_next works, define NEXT_FOO_H to be # ''; otherwise define it to be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # Also, if #include_next works as first preprocessing directive in a file, # define NEXT_AS_FIRST_DIRECTIVE_FOO_H to be ''; otherwise define it to # be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # That way, a header file with the following line: # #@INCLUDE_NEXT@ @NEXT_FOO_H@ # or # #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_FOO_H@ # behaves (after sed substitution) as if it contained # #include_next # even if the compiler does not support include_next. # The three "///" are to pacify Sun C 5.8, which otherwise would say # "warning: #include of /usr/include/... may be non-portable". # Use '""', not '<>', so that the /// cannot be confused with a C99 comment. # Note: This macro assumes that the header file is not empty after # preprocessing, i.e. it does not only define preprocessor macros but also # provides some type/enum definitions or function/variable declarations. # # This macro also checks whether each header exists, by invoking # AC_CHECK_HEADERS_ONCE or AC_CHECK_HEADERS on each argument. AC_DEFUN([gl_CHECK_NEXT_HEADERS], [ gl_NEXT_HEADERS_INTERNAL([$1], [check]) ]) # gl_NEXT_HEADERS(HEADER1 HEADER2 ...) # ------------------------------------ # Like gl_CHECK_NEXT_HEADERS, except do not check whether the headers exist. # This is suitable for headers like that are standardized by C89 # and therefore can be assumed to exist. AC_DEFUN([gl_NEXT_HEADERS], [ gl_NEXT_HEADERS_INTERNAL([$1], [assume]) ]) # The guts of gl_CHECK_NEXT_HEADERS and gl_NEXT_HEADERS. AC_DEFUN([gl_NEXT_HEADERS_INTERNAL], [ AC_REQUIRE([gl_INCLUDE_NEXT]) AC_REQUIRE([AC_CANONICAL_HOST]) m4_if([$2], [check], [AC_CHECK_HEADERS_ONCE([$1]) ]) dnl FIXME: gl_next_header and gl_header_exists must be used unquoted dnl until we can assume autoconf 2.64 or newer. m4_foreach_w([gl_HEADER_NAME], [$1], [AS_VAR_PUSHDEF([gl_next_header], [gl_cv_next_]m4_defn([gl_HEADER_NAME])) if test $gl_cv_have_include_next = yes; then AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>']) else AC_CACHE_CHECK( [absolute name of <]m4_defn([gl_HEADER_NAME])[>], m4_defn([gl_next_header]), [m4_if([$2], [check], [AS_VAR_PUSHDEF([gl_header_exists], [ac_cv_header_]m4_defn([gl_HEADER_NAME])) if test AS_VAR_GET(gl_header_exists) = yes; then AS_VAR_POPDEF([gl_header_exists]) ]) gl_ABSOLUTE_HEADER_ONE(gl_HEADER_NAME) AS_VAR_COPY([gl_header], [gl_cv_absolute_]AS_TR_SH(gl_HEADER_NAME)) AS_VAR_SET(gl_next_header, ['"'$gl_header'"']) m4_if([$2], [check], [else AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>']) fi ]) ]) fi AC_SUBST( AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])), [AS_VAR_GET(gl_next_header)]) if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'gl_HEADER_NAME'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=AS_VAR_GET(gl_next_header) fi AC_SUBST( AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])), [$gl_next_as_first_directive]) AS_VAR_POPDEF([gl_next_header])]) ]) # Autoconf 2.68 added warnings for our use of AC_COMPILE_IFELSE; # this fallback is safe for all earlier autoconf versions. m4_define_default([AC_LANG_DEFINES_PROVIDED]) gcal-4.1/m4/unistd-safer.m40000664000000000000000000000053013041163523012337 00000000000000#serial 9 dnl Copyright (C) 2002, 2005-2006, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_UNISTD_SAFER], [ AC_CHECK_FUNCS_ONCE([pipe]) ]) gcal-4.1/m4/cond.m40000664000000000000000000000050713041163523010662 00000000000000# cond.m4 serial 2 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_COND], [ AC_REQUIRE([gl_THREADLIB]) ]) gcal-4.1/m4/environ.m40000664000000000000000000000261613041163523011422 00000000000000# environ.m4 serial 6 dnl Copyright (C) 2001-2004, 2006-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_ENVIRON], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl Persuade glibc to declare environ. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([unistd.h]) gt_CHECK_VAR_DECL( [#if HAVE_UNISTD_H #include #endif /* mingw, BeOS, Haiku declare environ in , not in . */ #include ], [environ]) if test $gt_cv_var_environ_declaration != yes; then HAVE_DECL_ENVIRON=0 fi ]) # Check if a variable is properly declared. # gt_CHECK_VAR_DECL(includes,variable) AC_DEFUN([gt_CHECK_VAR_DECL], [ define([gt_cv_var], [gt_cv_var_]$2[_declaration]) AC_MSG_CHECKING([if $2 is properly declared]) AC_CACHE_VAL([gt_cv_var], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[$1 extern struct { int foo; } $2;]], [[$2.foo = 1;]])], [gt_cv_var=no], [gt_cv_var=yes])]) AC_MSG_RESULT([$gt_cv_var]) if test $gt_cv_var = yes; then AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1, [Define if you have the declaration of $2.]) fi undefine([gt_cv_var]) ]) gcal-4.1/m4/strings_h.m40000664000000000000000000000316313041163523011740 00000000000000# Configure a replacement for . # serial 6 # Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_HEADER_STRINGS_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_HEADER_STRINGS_H_BODY]) ]) AC_DEFUN([gl_HEADER_STRINGS_H_BODY], [ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([strings.h]) if test $ac_cv_header_strings_h = yes; then HAVE_STRINGS_H=1 else HAVE_STRINGS_H=0 fi AC_SUBST([HAVE_STRINGS_H]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Minix 3.1.8 has a bug: must be included before . */ #include #include ]], [ffs strcasecmp strncasecmp]) ]) AC_DEFUN([gl_STRINGS_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_HEADER_STRINGS_H_DEFAULTS], [ GNULIB_FFS=0; AC_SUBST([GNULIB_FFS]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FFS=1; AC_SUBST([HAVE_FFS]) HAVE_STRCASECMP=1; AC_SUBST([HAVE_STRCASECMP]) HAVE_DECL_STRNCASECMP=1; AC_SUBST([HAVE_DECL_STRNCASECMP]) ]) gcal-4.1/m4/tmpdir.m40000664000000000000000000000054113041163523011234 00000000000000# tmpdir.m4 serial 4 dnl Copyright (C) 2001-2002, 2006, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Prerequisites for lib/tmpdir.c AC_DEFUN([gt_TMPDIR], [:]) gcal-4.1/m4/sched_h.m40000664000000000000000000000335113041163523011334 00000000000000# sched_h.m4 serial 9 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Bruno Haible. AC_DEFUN([gl_SCHED_H], [ AC_CHECK_HEADERS_ONCE([sys/cdefs.h]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #include struct sched_param a; int b[] = { SCHED_FIFO, SCHED_RR, SCHED_OTHER }; pid_t t1; ]])], [SCHED_H=''], [SCHED_H='sched.h' AC_CHECK_HEADERS([sched.h], [], [], [[#if HAVE_SYS_CDEFS_H #include #endif ]]) gl_NEXT_HEADERS([sched.h]) if test "$ac_cv_header_sched_h" = yes; then HAVE_SCHED_H=1 else HAVE_SCHED_H=0 fi AC_SUBST([HAVE_SCHED_H]) if test "$HAVE_SCHED_H" = 1; then AC_CHECK_TYPE([struct sched_param], [HAVE_STRUCT_SCHED_PARAM=1], [HAVE_STRUCT_SCHED_PARAM=0], [[#if HAVE_SYS_CDEFS_H #include #endif #include ]]) else dnl On OS/2 kLIBC, struct sched_param is in spawn.h. AC_CHECK_TYPE([struct sched_param], [HAVE_STRUCT_SCHED_PARAM=1], [HAVE_STRUCT_SCHED_PARAM=0], [#include ]) fi AC_SUBST([HAVE_STRUCT_SCHED_PARAM]) if test "$ac_cv_header_sys_cdefs_h" = yes; then HAVE_SYS_CDEFS_H=1 else HAVE_SYS_CDEFS_H=0 fi AC_SUBST([HAVE_SYS_CDEFS_H]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) ]) AC_SUBST([SCHED_H]) AM_CONDITIONAL([GL_GENERATE_SCHED_H], [test -n "$SCHED_H"]) ]) gcal-4.1/m4/xalloc.m40000664000000000000000000000047213041163524011223 00000000000000# xalloc.m4 serial 18 dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_XALLOC], [:]) gcal-4.1/m4/locale-ja.m40000664000000000000000000001260313041163523011566 00000000000000# locale-ja.m4 serial 12 dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a japanese locale with EUC-JP encoding. AC_DEFUN([gt_LOCALE_JA], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { const char *p; /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_JA=$gt_cv_locale_ja AC_SUBST([LOCALE_JA]) ]) gcal-4.1/m4/ftello.m40000664000000000000000000000732713041163523011233 00000000000000# ftello.m4 serial 11 dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FTELLO], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gl_STDIN_LARGE_OFFSET]) AC_REQUIRE([gl_SYS_TYPES_H]) dnl Persuade glibc to declare ftello(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_DECLS_ONCE([ftello]) if test $ac_cv_have_decl_ftello = no; then HAVE_DECL_FTELLO=0 fi AC_CACHE_CHECK([for ftello], [gl_cv_func_ftello], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[ftello (stdin);]])], [gl_cv_func_ftello=yes], [gl_cv_func_ftello=no]) ]) if test $gl_cv_func_ftello = no; then HAVE_FTELLO=0 else if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_FTELLO=1 fi if test $gl_cv_var_stdin_large_offset = no; then REPLACE_FTELLO=1 fi if test $REPLACE_FTELLO = 0; then dnl Detect bug on Solaris. dnl ftell and ftello produce incorrect results after putc that followed a dnl getc call that reached EOF on Solaris. This is because the _IOREAD dnl flag does not get cleared in this case, even though _IOWRT gets set, dnl and ftell and ftello look whether the _IOREAD flag is set. AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether ftello works], [gl_cv_func_ftello_works], [ dnl Initial guess, used when cross-compiling or when /dev/tty cannot dnl be opened. changequote(,)dnl case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_ftello_works="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_ftello_works="guessing yes" ;; esac changequote([,])dnl AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #define TESTFILE "conftest.tmp" int main (void) { FILE *fp; /* Create a file with some contents. */ fp = fopen (TESTFILE, "w"); if (fp == NULL) return 70; if (fwrite ("foogarsh", 1, 8, fp) < 8) return 71; if (fclose (fp)) return 72; /* The file's contents is now "foogarsh". */ /* Try writing after reading to EOF. */ fp = fopen (TESTFILE, "r+"); if (fp == NULL) return 73; if (fseek (fp, -1, SEEK_END)) return 74; if (!(getc (fp) == 'h')) return 1; if (!(getc (fp) == EOF)) return 2; if (!(ftell (fp) == 8)) return 3; if (!(ftell (fp) == 8)) return 4; if (!(putc ('!', fp) == '!')) return 5; if (!(ftell (fp) == 9)) return 6; if (!(fclose (fp) == 0)) return 7; fp = fopen (TESTFILE, "r"); if (fp == NULL) return 75; { char buf[10]; if (!(fread (buf, 1, 10, fp) == 9)) return 10; if (!(memcmp (buf, "foogarsh!", 9) == 0)) return 11; } if (!(fclose (fp) == 0)) return 12; /* The file's contents is now "foogarsh!". */ return 0; }]])], [gl_cv_func_ftello_works=yes], [gl_cv_func_ftello_works=no], [:]) ]) case "$gl_cv_func_ftello_works" in *yes) ;; *) REPLACE_FTELLO=1 AC_DEFINE([FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE], [1], [Define to 1 if the system's ftello function has the Solaris bug.]) ;; esac fi fi ]) # Prerequisites of lib/ftello.c. AC_DEFUN([gl_PREREQ_FTELLO], [ dnl Native Windows has the function _ftelli64. mingw hides it, but mingw64 dnl makes it usable again. AC_CHECK_FUNCS([_ftelli64]) ]) gcal-4.1/m4/mbrtowc.m40000664000000000000000000004725013041163523011422 00000000000000# mbrtowc.m4 serial 27 -*- coding: utf-8 -*- dnl Copyright (C) 2001-2002, 2004-2005, 2008-2017 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MBRTOWC], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN AC_CHECK_FUNCS_ONCE([mbrtowc]) if test $ac_cv_func_mbrtowc = no; then HAVE_MBRTOWC=0 AC_CHECK_DECLS([mbrtowc],,, [[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include ]]) if test $ac_cv_have_decl_mbrtowc = yes; then dnl On Minix 3.1.8, the system's declares mbrtowc() although dnl it does not have the function. Avoid a collision with gnulib's dnl replacement. REPLACE_MBRTOWC=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBRTOWC=1 else gl_MBRTOWC_NULL_ARG1 gl_MBRTOWC_NULL_ARG2 gl_MBRTOWC_RETVAL gl_MBRTOWC_NUL_RETVAL gl_MBRTOWC_EMPTY_INPUT gl_MBRTOWC_C_LOCALE case "$gl_cv_func_mbrtowc_null_arg1" in *yes) ;; *) AC_DEFINE([MBRTOWC_NULL_ARG1_BUG], [1], [Define if the mbrtowc function has the NULL pwc argument bug.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_null_arg2" in *yes) ;; *) AC_DEFINE([MBRTOWC_NULL_ARG2_BUG], [1], [Define if the mbrtowc function has the NULL string argument bug.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_retval" in *yes) ;; *) AC_DEFINE([MBRTOWC_RETVAL_BUG], [1], [Define if the mbrtowc function returns a wrong return value.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_nul_retval" in *yes) ;; *) AC_DEFINE([MBRTOWC_NUL_RETVAL_BUG], [1], [Define if the mbrtowc function does not return 0 for a NUL character.]) REPLACE_MBRTOWC=1 ;; esac case "$gl_cv_func_mbrtowc_empty_input" in *yes) ;; *) AC_DEFINE([MBRTOWC_EMPTY_INPUT_BUG], [1], [Define if the mbrtowc function does not return (size_t) -2 for empty input.]) REPLACE_MBRTOWC=1 ;; esac case $gl_cv_C_locale_sans_EILSEQ in *yes) ;; *) AC_DEFINE([C_LOCALE_MAYBE_EILSEQ], [1], [Define to 1 if the C locale may have encoding errors.]) REPLACE_MBRTOWC=1 ;; esac fi fi ]) dnl Test whether mbsinit() and mbrtowc() need to be overridden in a way that dnl redefines the semantics of the given mbstate_t type. dnl Result is REPLACE_MBSTATE_T. dnl When this is set to 1, we replace both mbsinit() and mbrtowc(), in order to dnl avoid inconsistencies. AC_DEFUN([gl_MBSTATE_T_BROKEN], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) AC_CHECK_FUNCS_ONCE([mbsinit]) AC_CHECK_FUNCS_ONCE([mbrtowc]) if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then gl_MBRTOWC_INCOMPLETE_STATE gl_MBRTOWC_SANITYCHECK REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 fi ]) dnl Test whether mbrtowc puts the state into non-initial state when parsing an dnl incomplete multibyte character. dnl Result is gl_cv_func_mbrtowc_incomplete_state. AC_DEFUN([gl_MBRTOWC_INCOMPLETE_STATE], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles incomplete characters], [gl_cv_func_mbrtowc_incomplete_state], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on AIX and OSF/1. aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_JA != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { const char input[] = "B\217\253\344\217\251\316er"; /* "BĵŸer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) if (mbsinit (&state)) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_incomplete_state=yes], [gl_cv_func_mbrtowc_incomplete_state=no], [:]) fi ]) ]) dnl Test whether mbrtowc works not worse than mbtowc. dnl Result is gl_cv_func_mbrtowc_sanitycheck. AC_DEFUN([gl_MBRTOWC_SANITYCHECK], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc works as well as mbtowc], [gl_cv_func_mbrtowc_sanitycheck], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris 8. solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { /* This fails on Solaris 8: mbrtowc returns 2, and sets wc to 0x00F0. mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { char input[] = "B\250\271\201\060\211\070er"; /* "BĵŸer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 6, &state) != 4 && mbtowc (&wc, input + 3, 6) == 4) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_sanitycheck=yes], [gl_cv_func_mbrtowc_sanitycheck=no], [:]) fi ]) ]) dnl Test whether mbrtowc supports a NULL pwc argument correctly. dnl Result is gl_cv_func_mbrtowc_null_arg1. AC_DEFUN([gl_MBRTOWC_NULL_ARG1], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles a NULL pwc argument], [gl_cv_func_mbrtowc_null_arg1], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris. solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR_UTF8 != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "\303\237er"; mbstate_t state; wchar_t wc; size_t ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; ret = mbrtowc (&wc, input, 5, &state); if (ret != 2) result |= 1; if (!mbsinit (&state)) result |= 2; memset (&state, '\0', sizeof (mbstate_t)); ret = mbrtowc (NULL, input, 5, &state); if (ret != 2) /* Solaris 7 fails here: ret is -1. */ result |= 4; if (!mbsinit (&state)) result |= 8; } return result; }]])], [gl_cv_func_mbrtowc_null_arg1=yes], [gl_cv_func_mbrtowc_null_arg1=no], [:]) fi ]) ]) dnl Test whether mbrtowc supports a NULL string argument correctly. dnl Result is gl_cv_func_mbrtowc_null_arg2. AC_DEFUN([gl_MBRTOWC_NULL_ARG2], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc handles a NULL string argument], [gl_cv_func_mbrtowc_null_arg2], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on OSF/1. osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR_UTF8 != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { mbstate_t state; wchar_t wc; int ret; memset (&state, '\0', sizeof (mbstate_t)); wc = (wchar_t) 0xBADFACE; mbrtowc (&wc, NULL, 5, &state); /* Check that wc was not modified. */ if (wc != (wchar_t) 0xBADFACE) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_null_arg2=yes], [gl_cv_func_mbrtowc_null_arg2=no], [:]) fi ]) ]) dnl Test whether mbrtowc, when parsing the end of a multibyte character, dnl correctly returns the number of bytes that were needed to complete the dnl character (not the total number of bytes of the multibyte character). dnl Result is gl_cv_func_mbrtowc_retval. AC_DEFUN([gl_MBRTOWC_RETVAL], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether mbrtowc has a correct return value], [gl_cv_func_mbrtowc_retval], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on HP-UX, Solaris, native Windows. hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { int result = 0; int found_some_locale = 0; /* This fails on Solaris. */ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { char input[] = "B\303\274\303\237er"; /* "BĵŸer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 1) result |= 1; } found_some_locale = 1; } /* This fails on HP-UX 11.11. */ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { char input[] = "B\217\253\344\217\251\316er"; /* "BĵŸer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) { input[1] = '\0'; if (mbrtowc (&wc, input + 2, 5, &state) != 2) result |= 2; } found_some_locale = 1; } /* This fails on native Windows. */ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) { char input[] = "<\223\372\226\173\214\352>"; /* "<ĉ—ĉœĴèŞž>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 4; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) { char input[] = "<\244\351\245\273\273\171>"; /* "<ĉ—ĉœĴèŞž>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 8; } found_some_locale = 1; } if (setlocale (LC_ALL, "Chinese_China.936") != NULL) { char input[] = "<\310\325\261\276\325\132>"; /* "<ĉ—ĉœĴèŞž>" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) { input[3] = '\0'; if (mbrtowc (&wc, input + 4, 4, &state) != 1) result |= 16; } found_some_locale = 1; } return (found_some_locale ? result : 77); }]])], [gl_cv_func_mbrtowc_retval=yes], [if test $? != 77; then gl_cv_func_mbrtowc_retval=no fi ], [:]) fi ]) ]) dnl Test whether mbrtowc, when parsing a NUL character, correctly returns 0. dnl Result is gl_cv_func_mbrtowc_nul_retval. AC_DEFUN([gl_MBRTOWC_NUL_RETVAL], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc returns 0 when parsing a NUL character], [gl_cv_func_mbrtowc_nul_retval], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on Solaris 8 and 9. solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { /* This fails on Solaris 8 and 9. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, "", 1, &state) != 0) return 2; } return 0; }]])], [gl_cv_func_mbrtowc_nul_retval=yes], [gl_cv_func_mbrtowc_nul_retval=no], [:]) fi ]) ]) dnl Test whether mbrtowc returns the correct value on empty input. AC_DEFUN([gl_MBRTOWC_EMPTY_INPUT], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether mbrtowc works on empty input], [gl_cv_func_mbrtowc_empty_input], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on AIX and glibc systems. aix* | *-gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; esac changequote([,])dnl AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include static wchar_t wc; static mbstate_t mbs; int main (void) { return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2; }]])], [gl_cv_func_mbrtowc_empty_input=yes], [gl_cv_func_mbrtowc_empty_input=no], [:]) ]) ]) dnl Test whether mbrtowc reports encoding errors in the C locale. dnl Although POSIX was never intended to allow this, the GNU C Library dnl and other implementations do it. See: dnl https://sourceware.org/bugzilla/show_bug.cgi?id=19932 AC_DEFUN([gl_MBRTOWC_C_LOCALE], [ AC_CACHE_CHECK([whether the C locale is free of encoding errors], [gl_cv_C_locale_sans_EILSEQ], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. gl_cv_C_locale_sans_EILSEQ="guessing no" AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include ]], [[ int i; char *locale = setlocale (LC_ALL, "C"); if (! locale) return 2; for (i = CHAR_MIN; i <= CHAR_MAX; i++) { char c = i; wchar_t wc; mbstate_t mbs = { 0, }; size_t ss = mbrtowc (&wc, &c, 1, &mbs); if (1 < ss) return 3; } return 0; ]])], [gl_cv_C_locale_sans_EILSEQ=yes], [gl_cv_C_locale_sans_EILSEQ=no], [:])]) ]) # Prerequisites of lib/mbrtowc.c. AC_DEFUN([gl_PREREQ_MBRTOWC], [ : ]) dnl From Paul Eggert dnl This is an override of an autoconf macro. AC_DEFUN([AC_FUNC_MBRTOWC], [ dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60. AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared], gl_cv_func_mbrtowc, [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[/* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include ]], [[wchar_t wc; char const s[] = ""; size_t n = 1; mbstate_t state; return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])], gl_cv_func_mbrtowc=yes, gl_cv_func_mbrtowc=no)]) if test $gl_cv_func_mbrtowc = yes; then AC_DEFINE([HAVE_MBRTOWC], [1], [Define to 1 if mbrtowc and mbstate_t are properly declared.]) fi ]) gcal-4.1/m4/localcharset.m40000664000000000000000000000112513041163523012400 00000000000000# localcharset.m4 serial 7 dnl Copyright (C) 2002, 2004, 2006, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_LOCALCHARSET], [ dnl Prerequisites of lib/localcharset.c. AC_REQUIRE([AM_LANGINFO_CODESET]) AC_REQUIRE([gl_FCNTL_O_FLAGS]) AC_CHECK_DECLS_ONCE([getc_unlocked]) dnl Prerequisites of the lib/Makefile.am snippet. AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_GLIBC21]) ]) gcal-4.1/m4/dup2.m40000664000000000000000000001013413041163523010606 00000000000000#serial 25 dnl Copyright (C) 2002, 2005, 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_DUP2], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) m4_ifdef([gl_FUNC_DUP2_OBSOLETE], [ AC_CHECK_FUNCS_ONCE([dup2]) if test $ac_cv_func_dup2 = no; then HAVE_DUP2=0 fi ], [ AC_DEFINE([HAVE_DUP2], [1], [Define to 1 if you have the 'dup2' function.]) ]) if test $HAVE_DUP2 = 1; then AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], [AC_RUN_IFELSE([ AC_LANG_PROGRAM( [[#include #include #include #include #include #ifndef RLIM_SAVED_CUR # define RLIM_SAVED_CUR RLIM_INFINITY #endif #ifndef RLIM_SAVED_MAX # define RLIM_SAVED_MAX RLIM_INFINITY #endif ]], [[int result = 0; int bad_fd = INT_MAX; struct rlimit rlim; if (getrlimit (RLIMIT_NOFILE, &rlim) == 0 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX && rlim.rlim_cur != RLIM_INFINITY && rlim.rlim_cur != RLIM_SAVED_MAX && rlim.rlim_cur != RLIM_SAVED_CUR) bad_fd = rlim.rlim_cur; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) != 1) result |= 2; #ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif close (0); if (dup2 (0, 0) != -1) result |= 8; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, bad_fd) == -1 && errno != EBADF) result |= 16; /* Flush out some cygwin core dumps. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; dup2 (2, 255); dup2 (2, 256); /* On OS/2 kLIBC, dup2() does not work on a directory fd. */ { int fd = open (".", O_RDONLY); if (fd == -1) result |= 64; else if (dup2 (fd, fd + 1) == -1) result |= 128; close (fd); } return result;]]) ], [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no], [case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 gl_cv_func_dup2_works="guessing no" ;; aix* | freebsd*) # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE, # not EBADF. gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. gl_cv_func_dup2_works="guessing no" ;; *-android*) # implemented using dup3(), which fails if oldfd == newfd gl_cv_func_dup2_works="guessing no" ;; os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd. gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac]) ]) case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 AC_CHECK_FUNCS([setdtablesize]) ;; esac fi dnl Replace dup2() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then if test $HAVE_DUP2 = 1; then REPLACE_DUP2=1 fi fi ]) ]) # Prerequisites of lib/dup2.c. AC_DEFUN([gl_PREREQ_DUP2], []) gcal-4.1/m4/mathfunc.m40000664000000000000000000001543213041163523011547 00000000000000# mathfunc.m4 serial 11 dnl Copyright (C) 2010-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_MATHFUNC(FUNC, RETTYPE, PARAMTYPES [, INCLUDES] [, EXTRA-CODE]) # ------------------------------------------------------------------ # tests whether the function FUNC is available in libc or libm. # RETTYPE is the return type. PARAMTYPES is a parameter list, with parentheses. # It sets FUNC_LIBM to empty or "-lm" accordingly. AC_DEFUN([gl_MATHFUNC], [ dnl We need the RETTYPE and PARAMTYPES in order to force linking with the dnl function. dnl 1) With gcc >= 4.3 on glibc/x86_64, calls to the 'fabs' function dnl are inlined by the compiler, therefore linking of these calls does dnl not require -lm, but taking the function pointer of 'fabs' does. dnl 2) On MSVC 9, many math functions exist only as macros with arguments, dnl whereas the function pointer is undefined. dnl On the other hand, taking just the function pointer is not enough. dnl 1) On AIX 7.1, when 'long double' is 128 bit large ("xlc -qldbl128" or dnl "xlc -qlongdouble" or "gcc -mlong-double-128") many math functions dnl exist as macros with arguments, that may reference libm or even dnl completely undefined functions such as __rint128. dnl 2) In AIX 7.1 with gcc 4.2, when optimization is turned on, calls to dnl rint() with simple arguments are turned into rintf() calls by the dnl compiler. But while rint() is resides in libc, rintf() is in libm. m4_pushdef([func], [$1]) m4_pushdef([FUNC], [m4_translit([$1],[abcdefghijklmnopqrstuvwxyz], [ABCDEFGHIJKLMNOPQRSTUVWXYZ])]) m4_pushdef([ARGS], [m4_bpatsubst( [m4_bpatsubst( [m4_bpatsubst( [m4_bpatsubst( [m4_bpatsubst( [m4_bpatsubst( [m4_bpatsubst( [m4_bpatsubst( [m4_bpatsubst( [$3], [int \*], [&i_ret])], [float \*], [&f_ret])], [double \*], [&d_ret])], [long double \*], [&l_ret])], [int], [2])], [float], [1.618034f])], [long double], [1.618033988749894848L])], [double], [1.6180339887])], [void], [])]) FUNC[]_LIBM= AC_CACHE_CHECK([whether func() can be used without linking with libm], [gl_cv_func_]func[_no_libm], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include $4 $2 (*funcptr) $3 = ]func[; int i_ret; float f_ret; double d_ret; long double l_ret;]], [[$2 y = funcptr ]ARGS[ + ]func[ ]ARGS[; $5 return y < 0.3 || y > 1.7; ]])], [gl_cv_func_]func[_no_libm=yes], [gl_cv_func_]func[_no_libm=no]) ]) if test $gl_cv_func_[]func[]_no_libm = no; then AC_CACHE_CHECK([whether func() can be used with libm], [gl_cv_func_]func[_in_libm], [ save_LIBS="$LIBS" LIBS="$LIBS -lm" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include $4 $2 (*funcptr) $3 = ]func[; int i_ret; float f_ret; double d_ret; long double l_ret;]], [[$2 y = funcptr ]ARGS[ + ]func[ ]ARGS[; $5 return y < 0.3 || y > 1.7; ]])], [gl_cv_func_]func[_in_libm=yes], [gl_cv_func_]func[_in_libm=no]) LIBS="$save_LIBS" ]) if test $gl_cv_func_[]func[]_in_libm = yes; then FUNC[]_LIBM=-lm fi fi AC_SUBST(FUNC[_LIBM]) m4_popdef([ARGS]) m4_popdef([FUNC]) m4_popdef([func]) ]) # gl_COMMON_DOUBLE_MATHFUNC(FUNC) # ------------------------------- # tests whether the function FUNC is available in libc or libm. # It sets FUNC_LIBM to empty or "-lm" accordingly. # FUNC must be one of the following functions, that are present on all systems # and provided by libm on all systems except Mac OS X, BeOS, Haiku: # acos asin atan atan2 cbrt cos cosh erf erfc exp fmod hypot j0 j1 jn lgamma # log log10 log1p pow remainder sin sinh sqrt tan tanh y0 y1 yn AC_DEFUN([gl_COMMON_DOUBLE_MATHFUNC], [ AC_REQUIRE([gl_COMMON_DOUBLE_MATHFUNC_TEST]) m4_pushdef([FUNC], [m4_translit([$1],[abcdefghijklmnopqrstuvwxyz], [ABCDEFGHIJKLMNOPQRSTUVWXYZ])]) FUNC[]_LIBM="$POW_LIBM" AC_SUBST(FUNC[_LIBM]) m4_popdef([FUNC]) ]) AC_DEFUN([gl_COMMON_DOUBLE_MATHFUNC_TEST], [ dnl We could use any of the following: dnl gl_MATHFUNC([acos], [double], [(double)]) dnl gl_MATHFUNC([asin], [double], [(double)]) dnl gl_MATHFUNC([atan], [double], [(double)]) dnl gl_MATHFUNC([atan2], [double], [(double, double)]) dnl gl_MATHFUNC([cbrt], [double], [(double)]) dnl gl_MATHFUNC([cos], [double], [(double)]) dnl gl_MATHFUNC([cosh], [double], [(double)]) dnl gl_MATHFUNC([erf], [double], [(double)]) dnl gl_MATHFUNC([erfc], [double], [(double)]) dnl gl_MATHFUNC([exp], [double], [(double)]) dnl gl_MATHFUNC([fmod], [double], [(double, double)]) dnl gl_MATHFUNC([hypot], [double], [(double, double)]) dnl gl_MATHFUNC([j0], [double], [(double)]) dnl gl_MATHFUNC([j1], [double], [(double)]) dnl gl_MATHFUNC([jn], [double], [(int, double)]) dnl gl_MATHFUNC([lgamma], [double], [(double)]) dnl gl_MATHFUNC([log], [double], [(double)]) dnl gl_MATHFUNC([log10], [double], [(double)]) dnl gl_MATHFUNC([log1p], [double], [(double)]) dnl gl_MATHFUNC([pow], [double], [(double, double)]) dnl gl_MATHFUNC([remainder], [double], [(double, double)]) dnl gl_MATHFUNC([sin], [double], [(double)]) dnl gl_MATHFUNC([sinh], [double], [(double)]) dnl gl_MATHFUNC([sqrt], [double], [(double)]) dnl gl_MATHFUNC([tan], [double], [(double)]) dnl gl_MATHFUNC([tanh], [double], [(double)]) dnl gl_MATHFUNC([y0], [double], [(double)]) dnl gl_MATHFUNC([y1], [double], [(double)]) dnl gl_MATHFUNC([yn], [double], [(int, double)]) gl_MATHFUNC([pow], [double], [(double, double)]) ]) gcal-4.1/m4/eealloc.m40000664000000000000000000000166713041163523011353 00000000000000# eealloc.m4 serial 3 dnl Copyright (C) 2003, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_EEALLOC], [ AC_REQUIRE([gl_EEMALLOC]) AC_REQUIRE([gl_EEREALLOC]) ]) AC_DEFUN([gl_EEMALLOC], [ _AC_FUNC_MALLOC_IF( [gl_cv_func_malloc_0_nonnull=1], [gl_cv_func_malloc_0_nonnull=0]) AC_DEFINE_UNQUOTED([MALLOC_0_IS_NONNULL], [$gl_cv_func_malloc_0_nonnull], [If malloc(0) is != NULL, define this to 1. Otherwise define this to 0.]) ]) AC_DEFUN([gl_EEREALLOC], [ _AC_FUNC_REALLOC_IF( [gl_cv_func_realloc_0_nonnull=1], [gl_cv_func_realloc_0_nonnull=0]) AC_DEFINE_UNQUOTED([REALLOC_0_IS_NONNULL], [$gl_cv_func_realloc_0_nonnull], [If realloc(NULL,0) is != NULL, define this to 1. Otherwise define this to 0.]) ]) gcal-4.1/m4/atan.m40000664000000000000000000000055613041163523010666 00000000000000# atan.m4 serial 1 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ATAN], [ dnl Determine ATAN_LIBM. gl_COMMON_DOUBLE_MATHFUNC([atan]) ]) gcal-4.1/m4/mbsinit.m40000664000000000000000000000276313041163523011412 00000000000000# mbsinit.m4 serial 8 dnl Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MBSINIT], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN AC_CHECK_FUNCS_ONCE([mbsinit]) if test $ac_cv_func_mbsinit = no; then HAVE_MBSINIT=0 AC_CHECK_DECLS([mbsinit],,, [[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include ]]) if test $ac_cv_have_decl_mbsinit = yes; then dnl On Minix 3.1.8, the system's declares mbsinit() although dnl it does not have the function. Avoid a collision with gnulib's dnl replacement. REPLACE_MBSINIT=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_MBSINIT=1 else dnl On mingw, mbsinit() always returns 1, which is inappropriate for dnl states produced by mbrtowc() for an incomplete multibyte character dnl in multibyte locales. case "$host_os" in mingw*) REPLACE_MBSINIT=1 ;; esac fi fi ]) # Prerequisites of lib/mbsinit.c. AC_DEFUN([gl_PREREQ_MBSINIT], [ : ]) gcal-4.1/m4/wchar_t.m40000664000000000000000000000146213041163524011370 00000000000000# wchar_t.m4 serial 4 (gettext-0.18.2) dnl Copyright (C) 2002-2003, 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether has the 'wchar_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WCHAR_T], [ AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include wchar_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wchar_t=yes], [gt_cv_c_wchar_t=no])]) if test $gt_cv_c_wchar_t = yes; then AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.]) fi ]) gcal-4.1/m4/fatal-signal.m40000664000000000000000000000065613041163523012306 00000000000000# fatal-signal.m4 serial 9 dnl Copyright (C) 2003-2004, 2006, 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FATAL_SIGNAL], [ AC_REQUIRE([gt_TYPE_SIG_ATOMIC_T]) AC_CHECK_HEADERS_ONCE([unistd.h]) gl_PREREQ_SIG_HANDLER_H ]) gcal-4.1/m4/pipe2.m40000664000000000000000000000102313041163523010750 00000000000000# pipe2.m4 serial 2 dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_PIPE2], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl Persuade glibc to declare pipe2(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_FUNCS_ONCE([pipe2]) if test $ac_cv_func_pipe2 != yes; then HAVE_PIPE2=0 fi ]) gcal-4.1/m4/gettext.m40000644000000000000000000003457013041163512011426 00000000000000# gettext.m4 serial 60 (gettext-0.17) dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2006. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST(INTLOBJS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST(INTLLIBS) dnl Make all documented variables known to autoconf. AC_SUBST(LIBINTL) AC_SUBST(LTLIBINTL) AC_SUBST(POSUB) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) gcal-4.1/m4/sqrt.m40000664000000000000000000000052313041163523010726 00000000000000# sqrt.m4 serial 3 dnl Copyright (C) 2010-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_SQRT], [ gl_COMMON_DOUBLE_MATHFUNC([sqrt]) ]) gcal-4.1/m4/freading.m40000664000000000000000000000054113041163523011514 00000000000000# freading.m4 serial 1 dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FREADING], [ AC_CHECK_FUNCS_ONCE([__freading]) ]) gcal-4.1/m4/sys_socket_h.m40000664000000000000000000001416313041163523012437 00000000000000# sys_socket_h.m4 serial 23 dnl Copyright (C) 2005-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson. AC_DEFUN([gl_HEADER_SYS_SOCKET], [ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have dnl old-style declarations (with return type 'int' instead of 'ssize_t') dnl unless _POSIX_PII_SOCKET is defined. case "$host_os" in osf*) AC_DEFINE([_POSIX_PII_SOCKET], [1], [Define to 1 in order to get the POSIX compatible declarations of socket functions.]) ;; esac AC_CACHE_CHECK([whether is self-contained], [gl_cv_header_sys_socket_h_selfcontained], [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[]])], [gl_cv_header_sys_socket_h_selfcontained=yes], [gl_cv_header_sys_socket_h_selfcontained=no]) ]) if test $gl_cv_header_sys_socket_h_selfcontained = yes; then dnl If the shutdown function exists, should define dnl SHUT_RD, SHUT_WR, SHUT_RDWR. AC_CHECK_FUNCS([shutdown]) if test $ac_cv_func_shutdown = yes; then AC_CACHE_CHECK([whether defines the SHUT_* macros], [gl_cv_header_sys_socket_h_shut], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])], [gl_cv_header_sys_socket_h_shut=yes], [gl_cv_header_sys_socket_h_shut=no]) ]) if test $gl_cv_header_sys_socket_h_shut = no; then SYS_SOCKET_H='sys/socket.h' fi fi fi # We need to check for ws2tcpip.h now. gl_PREREQ_SYS_H_SOCKET AC_CHECK_TYPES([struct sockaddr_storage, sa_family_t],,,[ /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif ]) if test $ac_cv_type_struct_sockaddr_storage = no; then HAVE_STRUCT_SOCKADDR_STORAGE=0 fi if test $ac_cv_type_sa_family_t = no; then HAVE_SA_FAMILY_T=0 fi if test $ac_cv_type_struct_sockaddr_storage != no; then AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family], [], [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0], [#include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif ]) fi if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then SYS_SOCKET_H='sys/socket.h' fi gl_PREREQ_SYS_H_WINSOCK2 dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Some systems require prerequisite headers. */ #include #include ]], [socket connect accept bind getpeername getsockname getsockopt listen recv send recvfrom sendto setsockopt shutdown accept4]) ]) AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], [ dnl Check prerequisites of the replacement. AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) gl_CHECK_NEXT_HEADERS([sys/socket.h]) if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 HAVE_WS2TCPIP_H=0 else HAVE_SYS_SOCKET_H=0 if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else HAVE_WS2TCPIP_H=0 fi fi AC_SUBST([HAVE_SYS_SOCKET_H]) AC_SUBST([HAVE_WS2TCPIP_H]) ]) # Common prerequisites of the replacement and of the # replacement. # Sets and substitutes HAVE_WINSOCK2_H. AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2], [ m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])]) m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])]) AC_CHECK_HEADERS_ONCE([sys/socket.h]) if test $ac_cv_header_sys_socket_h != yes; then dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make dnl the check for those headers unconditional; yet cygwin reports dnl that the headers are present but cannot be compiled (since on dnl cygwin, all socket information should come from sys/socket.h). AC_CHECK_HEADERS([winsock2.h]) fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi AC_SUBST([HAVE_WINSOCK2_H]) ]) AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS], [ GNULIB_SOCKET=0; AC_SUBST([GNULIB_SOCKET]) GNULIB_CONNECT=0; AC_SUBST([GNULIB_CONNECT]) GNULIB_ACCEPT=0; AC_SUBST([GNULIB_ACCEPT]) GNULIB_BIND=0; AC_SUBST([GNULIB_BIND]) GNULIB_GETPEERNAME=0; AC_SUBST([GNULIB_GETPEERNAME]) GNULIB_GETSOCKNAME=0; AC_SUBST([GNULIB_GETSOCKNAME]) GNULIB_GETSOCKOPT=0; AC_SUBST([GNULIB_GETSOCKOPT]) GNULIB_LISTEN=0; AC_SUBST([GNULIB_LISTEN]) GNULIB_RECV=0; AC_SUBST([GNULIB_RECV]) GNULIB_SEND=0; AC_SUBST([GNULIB_SEND]) GNULIB_RECVFROM=0; AC_SUBST([GNULIB_RECVFROM]) GNULIB_SENDTO=0; AC_SUBST([GNULIB_SENDTO]) GNULIB_SETSOCKOPT=0; AC_SUBST([GNULIB_SETSOCKOPT]) GNULIB_SHUTDOWN=0; AC_SUBST([GNULIB_SHUTDOWN]) GNULIB_ACCEPT4=0; AC_SUBST([GNULIB_ACCEPT4]) HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE]) HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY]) HAVE_SA_FAMILY_T=1; AC_SUBST([HAVE_SA_FAMILY_T]) HAVE_ACCEPT4=1; AC_SUBST([HAVE_ACCEPT4]) ]) gcal-4.1/m4/extensions.m40000664000000000000000000001476513041163523012151 00000000000000# serial 15 -*- Autoconf -*- # Enable extensions on systems that normally disable them. # Copyright (C) 2003, 2006-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from git # Autoconf. Perhaps we can remove this once we can assume Autoconf # 2.70 or later everywhere, but since Autoconf mutates rapidly # enough in this area it's likely we'll need to redefine # AC_USE_SYSTEM_EXTENSIONS for quite some time. # If autoconf reports a warning # warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS # or warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS # the fix is # 1) to ensure that AC_USE_SYSTEM_EXTENSIONS is never directly invoked # but always AC_REQUIREd, # 2) to ensure that for each occurrence of # AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) # or # AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # the corresponding gnulib module description has 'extensions' among # its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS # invocation occurs in gl_EARLY, not in gl_INIT. # AC_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. # # Remember that #undef in AH_VERBATIM gets replaced with #define by # AC_DEFINE. The goal here is to define all known feature-enabling # macros, then, if reports of conflicts are made, disable macros that # cause problems on some platforms (such as __EXTENSIONS__). AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS], [AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl AC_BEFORE([$0], [AC_RUN_IFELSE])dnl AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=]) if test "$MINIX" = yes; then AC_DEFINE([_POSIX_SOURCE], [1], [Define to 1 if you need to in order for 'stat' and other things to work.]) AC_DEFINE([_POSIX_1_SOURCE], [2], [Define to 2 if the system does not provide POSIX.1 features except with this defined.]) AC_DEFINE([_MINIX], [1], [Define to 1 if on MINIX.]) AC_DEFINE([_NETBSD_SOURCE], [1], [Define to 1 to make NetBSD features available. MINIX 3 needs this.]) fi dnl Use a different key than __EXTENSIONS__, as that name broke existing dnl configure.ac when using autoheader 2.62. AH_VERBATIM([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on macOS. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ #ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ # undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ # undef __STDC_WANT_IEC_60559_BFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__ # undef __STDC_WANT_IEC_60559_DFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # undef __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ # undef __STDC_WANT_IEC_60559_TYPES_EXT__ #endif /* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ #ifndef __STDC_WANT_LIB_EXT2__ # undef __STDC_WANT_LIB_EXT2__ #endif /* Enable extensions specified by ISO/IEC 24747:2009. */ #ifndef __STDC_WANT_MATH_SPEC_FUNCS__ # undef __STDC_WANT_MATH_SPEC_FUNCS__ #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions if necessary. HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif ]) AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], [ac_cv_safe_to_define___extensions__], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ # define __EXTENSIONS__ 1 ]AC_INCLUDES_DEFAULT])], [ac_cv_safe_to_define___extensions__=yes], [ac_cv_safe_to_define___extensions__=no])]) test $ac_cv_safe_to_define___extensions__ = yes && AC_DEFINE([__EXTENSIONS__]) AC_DEFINE([_ALL_SOURCE]) AC_DEFINE([_DARWIN_C_SOURCE]) AC_DEFINE([_GNU_SOURCE]) AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) AC_DEFINE([__STDC_WANT_IEC_60559_ATTRIBS_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_BFP_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_DFP_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_FUNCS_EXT__]) AC_DEFINE([__STDC_WANT_IEC_60559_TYPES_EXT__]) AC_DEFINE([__STDC_WANT_LIB_EXT2__]) AC_DEFINE([__STDC_WANT_MATH_SPEC_FUNCS__]) AC_DEFINE([_TANDEM_SOURCE]) AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined], [ac_cv_should_define__xopen_source], [ac_cv_should_define__xopen_source=no AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #include mbstate_t x;]])], [], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #define _XOPEN_SOURCE 500 #include mbstate_t x;]])], [ac_cv_should_define__xopen_source=yes])])]) test $ac_cv_should_define__xopen_source = yes && AC_DEFINE([_XOPEN_SOURCE], [500]) ])# AC_USE_SYSTEM_EXTENSIONS # gl_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS], [ dnl Require this macro before AC_USE_SYSTEM_EXTENSIONS. dnl gnulib does not need it. But if it gets required by third-party macros dnl after AC_USE_SYSTEM_EXTENSIONS is required, autoconf 2.62..2.63 emit a dnl warning: "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS". dnl Note: We can do this only for one of the macros AC_AIX, AC_GNU_SOURCE, dnl AC_MINIX. If people still use AC_AIX or AC_MINIX, they are out of luck. AC_REQUIRE([AC_GNU_SOURCE]) AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) ]) gcal-4.1/m4/nls.m40000644000000000000000000000226613041163512010533 00000000000000# nls.m4 serial 3 (gettext-0.15) dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ(2.50) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ]) gcal-4.1/m4/socklen.m40000664000000000000000000000623613041163523011402 00000000000000# socklen.m4 serial 10 dnl Copyright (C) 2005-2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Albert Chin, Windows fixes from Simon Josefsson. dnl Check for socklen_t: historically on BSD it is an int, and in dnl POSIX 1g it is a type of its own, but some platforms use different dnl types for the argument to getsockopt, getpeername, etc.: dnl HP-UX 10.20, IRIX 6.5, OSF/1 4.0, Interix 3.5, BeOS. dnl So we have to test to find something that will work. AC_DEFUN([gl_TYPE_SOCKLEN_T], [AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])dnl AC_CHECK_TYPE([socklen_t], , [AC_MSG_CHECKING([for socklen_t equivalent]) AC_CACHE_VAL([gl_cv_socklen_t_equiv], [# Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername gl_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void; do for t in int size_t "unsigned int" "long int" "unsigned long int"; do AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[#include #include int getpeername (int, $arg2 *, $t *);]], [[$t len; getpeername (0, 0, &len);]])], [gl_cv_socklen_t_equiv="$t"]) test "$gl_cv_socklen_t_equiv" != "" && break done test "$gl_cv_socklen_t_equiv" != "" && break done ]) if test "$gl_cv_socklen_t_equiv" = ""; then AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) fi AC_MSG_RESULT([$gl_cv_socklen_t_equiv]) AC_DEFINE_UNQUOTED([socklen_t], [$gl_cv_socklen_t_equiv], [type to use in place of socklen_t if not defined])], [gl_SOCKET_HEADERS])]) dnl On mingw32, socklen_t is in ws2tcpip.h ('int'), so we try to find dnl it there too. But on Cygwin, wc2tcpip.h must not be included. Users dnl of this module should use the same include pattern as gl_SOCKET_HEADERS. dnl When you change this macro, keep also in sync: dnl - gl_CHECK_SOCKET_HEADERS, dnl - the Include section of modules/socklen. AC_DEFUN([gl_SOCKET_HEADERS], [ /* is not needed according to POSIX, but the in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #if HAVE_SYS_SOCKET_H # include #elif HAVE_WS2TCPIP_H # include #endif ]) dnl Tests for the existence of the header for socket facilities. dnl Defines the C macros HAVE_SYS_SOCKET_H, HAVE_WS2TCPIP_H. dnl This macro must match gl_SOCKET_HEADERS. AC_DEFUN([gl_CHECK_SOCKET_HEADERS], [AC_CHECK_HEADERS_ONCE([sys/socket.h]) if test $ac_cv_header_sys_socket_h = no; then dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make dnl the check for those headers unconditional; yet cygwin reports dnl that the headers are present but cannot be compiled (since on dnl cygwin, all socket information should come from sys/socket.h). AC_CHECK_HEADERS([ws2tcpip.h]) fi ]) gcal-4.1/m4/strdup.m40000664000000000000000000000165713041163523011267 00000000000000# strdup.m4 serial 13 dnl Copyright (C) 2002-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRDUP], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([strdup]) AC_CHECK_DECLS_ONCE([strdup]) if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi ]) AC_DEFUN([gl_FUNC_STRDUP_POSIX], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) AC_CHECK_FUNCS_ONCE([strdup]) if test $ac_cv_func_strdup = yes; then if test $gl_cv_func_malloc_posix != yes; then REPLACE_STRDUP=1 fi fi AC_CHECK_DECLS_ONCE([strdup]) if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi ]) # Prerequisites of lib/strdup.c. AC_DEFUN([gl_PREREQ_STRDUP], [:]) gcal-4.1/m4/tan.m40000664000000000000000000000055213041163523010521 00000000000000# tan.m4 serial 1 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_TAN], [ dnl Determine TAN_LIBM. gl_COMMON_DOUBLE_MATHFUNC([tan]) ]) gcal-4.1/m4/locale-fr.m40000664000000000000000000002422513041163523011606 00000000000000# locale-fr.m4 serial 17 dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a french locale with traditional encoding. AC_DEFUN([gt_LOCALE_FR], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_FR=$gt_cv_locale_fr AC_SUBST([LOCALE_FR]) ]) dnl Determine the name of a french locale with UTF-8 encoding. AC_DEFUN([gt_LOCALE_FR_UTF8], [ AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 AC_SUBST([LOCALE_FR_UTF8]) ]) gcal-4.1/m4/spawn_h.m40000664000000000000000000001322213041163523011374 00000000000000# spawn_h.m4 serial 16 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Bruno Haible. AC_DEFUN([gl_SPAWN_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_SPAWN_H_DEFAULTS]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([spawn.h]) if test $ac_cv_header_spawn_h = yes; then HAVE_SPAWN_H=1 AC_CHECK_TYPES([posix_spawnattr_t], [], [HAVE_POSIX_SPAWNATTR_T=0], [[ #include ]]) AC_CHECK_TYPES([posix_spawn_file_actions_t], [], [HAVE_POSIX_SPAWN_FILE_ACTIONS_T=0], [[ #include ]]) else HAVE_SPAWN_H=0 HAVE_POSIX_SPAWNATTR_T=0 HAVE_POSIX_SPAWN_FILE_ACTIONS_T=0 fi AC_SUBST([HAVE_SPAWN_H]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) AC_REQUIRE([gl_HAVE_POSIX_SPAWN]) AC_REQUIRE([AC_C_RESTRICT]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [posix_spawn posix_spawnp posix_spawnattr_init posix_spawnattr_destroy posix_spawnattr_getsigdefault posix_spawnattr_setsigdefault posix_spawnattr_getsigmask posix_spawnattr_setsigmask posix_spawnattr_getflags posix_spawnattr_setflags posix_spawnattr_getpgroup posix_spawnattr_setpgroup posix_spawnattr_getschedpolicy posix_spawnattr_setschedpolicy posix_spawnattr_getschedparam posix_spawnattr_setschedparam posix_spawn_file_actions_init posix_spawn_file_actions_destroy posix_spawn_file_actions_addopen posix_spawn_file_actions_addclose posix_spawn_file_actions_adddup2]) ]) dnl Checks whether the system has the functions posix_spawn. dnl Sets ac_cv_func_posix_spawn and HAVE_POSIX_SPAWN. AC_DEFUN([gl_HAVE_POSIX_SPAWN], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_SPAWN_H_DEFAULTS]) LIB_POSIX_SPAWN= AC_SUBST([LIB_POSIX_SPAWN]) gl_saved_libs=$LIBS AC_SEARCH_LIBS([posix_spawn], [rt], [test "$ac_cv_search_posix_spawn" = "none required" || LIB_POSIX_SPAWN=$ac_cv_search_posix_spawn]) AC_CHECK_FUNCS([posix_spawn]) LIBS=$gl_saved_libs if test $ac_cv_func_posix_spawn != yes; then HAVE_POSIX_SPAWN=0 fi ]) AC_DEFUN([gl_SPAWN_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SPAWN_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SPAWN_H_DEFAULTS], [ GNULIB_POSIX_SPAWN=0; AC_SUBST([GNULIB_POSIX_SPAWN]) GNULIB_POSIX_SPAWNP=0; AC_SUBST([GNULIB_POSIX_SPAWNP]) GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT=0; AC_SUBST([GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT]) GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE=0; AC_SUBST([GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE]) GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2=0; AC_SUBST([GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2]) GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN=0; AC_SUBST([GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN]) GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY=0; AC_SUBST([GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY]) GNULIB_POSIX_SPAWNATTR_INIT=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_INIT]) GNULIB_POSIX_SPAWNATTR_GETFLAGS=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_GETFLAGS]) GNULIB_POSIX_SPAWNATTR_SETFLAGS=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_SETFLAGS]) GNULIB_POSIX_SPAWNATTR_GETPGROUP=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_GETPGROUP]) GNULIB_POSIX_SPAWNATTR_SETPGROUP=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_SETPGROUP]) GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM]) GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM]) GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY]) GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY]) GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT]) GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT]) GNULIB_POSIX_SPAWNATTR_GETSIGMASK=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_GETSIGMASK]) GNULIB_POSIX_SPAWNATTR_SETSIGMASK=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_SETSIGMASK]) GNULIB_POSIX_SPAWNATTR_DESTROY=0; AC_SUBST([GNULIB_POSIX_SPAWNATTR_DESTROY]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_POSIX_SPAWN=1; AC_SUBST([HAVE_POSIX_SPAWN]) HAVE_POSIX_SPAWNATTR_T=1; AC_SUBST([HAVE_POSIX_SPAWNATTR_T]) HAVE_POSIX_SPAWN_FILE_ACTIONS_T=1; AC_SUBST([HAVE_POSIX_SPAWN_FILE_ACTIONS_T]) REPLACE_POSIX_SPAWN=0; AC_SUBST([REPLACE_POSIX_SPAWN]) REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE=0; AC_SUBST([REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE]) REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2=0; AC_SUBST([REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2]) REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN=0; AC_SUBST([REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN]) ]) gcal-4.1/m4/lstat.m40000664000000000000000000000457713041163523011101 00000000000000# serial 27 # Copyright (C) 1997-2001, 2003-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Jim Meyering. AC_DEFUN([gl_FUNC_LSTAT], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl If lstat does not exist, the replacement does dnl "#define lstat stat", and lstat.c is a no-op. AC_CHECK_FUNCS_ONCE([lstat]) if test $ac_cv_func_lstat = yes; then AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *no) REPLACE_LSTAT=1 ;; esac else HAVE_LSTAT=0 fi ]) # Prerequisites of lib/lstat.c. AC_DEFUN([gl_PREREQ_LSTAT], [:]) AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK], [ dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ. AC_CACHE_CHECK([whether lstat correctly handles trailing slash], [gl_cv_func_lstat_dereferences_slashed_symlink], [rm -f conftest.sym conftest.file echo >conftest.file AC_RUN_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT], [[struct stat sbuf; if (symlink ("conftest.file", "conftest.sym") != 0) return 1; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ]])], [gl_cv_func_lstat_dereferences_slashed_symlink=yes], [gl_cv_func_lstat_dereferences_slashed_symlink=no], [case "$host_os" in *-gnu*) # Guess yes on glibc systems. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; *) # If we don't know, assume the worst. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; esac ]) rm -f conftest.sym conftest.file ]) case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *yes) AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1], [Define to 1 if 'lstat' dereferences a symlink specified with a trailing slash.]) ;; esac ]) gcal-4.1/m4/msvc-inval.m40000664000000000000000000000133413041163523012015 00000000000000# msvc-inval.m4 serial 1 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MSVC_INVAL], [ AC_CHECK_FUNCS_ONCE([_set_invalid_parameter_handler]) if test $ac_cv_func__set_invalid_parameter_handler = yes; then HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 AC_DEFINE([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [1], [Define to 1 on MSVC platforms that have the "invalid parameter handler" concept.]) else HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 fi AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER]) ]) gcal-4.1/m4/mbtowc.m40000664000000000000000000000071413041163523011232 00000000000000# mbtowc.m4 serial 2 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MBTOWC], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) if false; then REPLACE_MBTOWC=1 fi ]) # Prerequisites of lib/mbtowc.c. AC_DEFUN([gl_PREREQ_MBTOWC], [ : ]) gcal-4.1/m4/btowc.m40000664000000000000000000000613313041163523011056 00000000000000# btowc.m4 serial 10 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_BTOWC], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) dnl Check whether is usable at all, first. Otherwise the test dnl program below may lead to an endless loop. See dnl . AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) AC_CHECK_FUNCS_ONCE([btowc]) if test $ac_cv_func_btowc = no; then HAVE_BTOWC=0 else AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Cygwin 1.7.2 btowc('\0') is WEOF, not 0. AC_CACHE_CHECK([whether btowc(0) is correct], [gl_cv_func_btowc_nul], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (btowc ('\0') != 0) return 1; return 0; }]])], [gl_cv_func_btowc_nul=yes], [gl_cv_func_btowc_nul=no], [ changequote(,)dnl case "$host_os" in # Guess no on Cygwin. cygwin*) gl_cv_func_btowc_nul="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_btowc_nul="guessing yes" ;; esac changequote([,])dnl ]) ]) dnl IRIX 6.5 btowc(EOF) is 0xFF, not WEOF. AC_CACHE_CHECK([whether btowc(EOF) is correct], [gl_cv_func_btowc_eof], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on IRIX. irix*) gl_cv_func_btowc_eof="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_btowc_eof="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { if (btowc (EOF) != WEOF) return 1; } return 0; }]])], [gl_cv_func_btowc_eof=yes], [gl_cv_func_btowc_eof=no], [:]) fi ]) case "$gl_cv_func_btowc_nul" in *yes) ;; *) REPLACE_BTOWC=1 ;; esac case "$gl_cv_func_btowc_eof" in *yes) ;; *) REPLACE_BTOWC=1 ;; esac fi ]) # Prerequisites of lib/btowc.c. AC_DEFUN([gl_PREREQ_BTOWC], [ : ]) gcal-4.1/m4/ssize_t.m40000664000000000000000000000146313041163523011421 00000000000000# ssize_t.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2001-2003, 2006, 2010-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether ssize_t is defined. AC_DEFUN([gt_TYPE_SSIZE_T], [ AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x;]])], [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])]) if test $gt_cv_ssize_t = no; then AC_DEFINE([ssize_t], [int], [Define as a signed type of the same size as size_t.]) fi ]) gcal-4.1/m4/mkostemp.m40000664000000000000000000000115513041163523011576 00000000000000# mkostemp.m4 serial 2 dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MKOSTEMP], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) dnl Persuade glibc to declare mkostemp(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_FUNCS_ONCE([mkostemp]) if test $ac_cv_func_mkostemp != yes; then HAVE_MKOSTEMP=0 fi ]) # Prerequisites of lib/mkostemp.c. AC_DEFUN([gl_PREREQ_MKOSTEMP], [ ]) gcal-4.1/m4/errno_h.m40000664000000000000000000000623413041163523011376 00000000000000# errno_h.m4 serial 12 dnl Copyright (C) 2004, 2006, 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_HEADER_ERRNO_H], [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [ AC_EGREP_CPP([booboo],[ #include #if !defined ETXTBSY booboo #endif #if !defined ENOMSG booboo #endif #if !defined EIDRM booboo #endif #if !defined ENOLINK booboo #endif #if !defined EPROTO booboo #endif #if !defined EMULTIHOP booboo #endif #if !defined EBADMSG booboo #endif #if !defined EOVERFLOW booboo #endif #if !defined ENOTSUP booboo #endif #if !defined ENETRESET booboo #endif #if !defined ECONNABORTED booboo #endif #if !defined ESTALE booboo #endif #if !defined EDQUOT booboo #endif #if !defined ECANCELED booboo #endif #if !defined EOWNERDEAD booboo #endif #if !defined ENOTRECOVERABLE booboo #endif #if !defined EILSEQ booboo #endif ], [gl_cv_header_errno_h_complete=no], [gl_cv_header_errno_h_complete=yes]) ]) if test $gl_cv_header_errno_h_complete = yes; then ERRNO_H='' else gl_NEXT_HEADERS([errno.h]) ERRNO_H='errno.h' fi AC_SUBST([ERRNO_H]) AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"]) gl_REPLACE_ERRNO_VALUE([EMULTIHOP]) gl_REPLACE_ERRNO_VALUE([ENOLINK]) gl_REPLACE_ERRNO_VALUE([EOVERFLOW]) ]) # Assuming $1 = EOVERFLOW. # The EOVERFLOW errno value ought to be defined in , according to # POSIX. But some systems (like OpenBSD 4.0 or AIX 3) don't define it, and # some systems (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined. # Check for the value of EOVERFLOW. # Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE. AC_DEFUN([gl_REPLACE_ERRNO_VALUE], [ if test -n "$ERRNO_H"; then AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [ AC_EGREP_CPP([yes],[ #include #ifdef ]$1[ yes #endif ], [gl_cv_header_errno_h_]$1[=yes], [gl_cv_header_errno_h_]$1[=no]) if test $gl_cv_header_errno_h_]$1[ = no; then AC_EGREP_CPP([yes],[ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef ]$1[ yes #endif ], [gl_cv_header_errno_h_]$1[=hidden]) if test $gl_cv_header_errno_h_]$1[ = hidden; then dnl The macro exists but is hidden. dnl Define it to the same value. AC_COMPUTE_INT([gl_cv_header_errno_h_]$1, $1, [ #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include ]) fi fi ]) case $gl_cv_header_errno_h_]$1[ in yes | no) ]$1[_HIDDEN=0; ]$1[_VALUE= ;; *) ]$1[_HIDDEN=1; ]$1[_VALUE="$gl_cv_header_errno_h_]$1[" ;; esac AC_SUBST($1[_HIDDEN]) AC_SUBST($1[_VALUE]) fi ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. dnl Remove this when we can assume autoconf >= 2.61. m4_ifdef([AC_COMPUTE_INT], [], [ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) ]) gcal-4.1/m4/link.m40000664000000000000000000000342713041163523010700 00000000000000# link.m4 serial 8 dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_LINK], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_FUNCS_ONCE([link]) if test $ac_cv_func_link = no; then HAVE_LINK=0 else AC_CACHE_CHECK([whether link obeys POSIX], [gl_cv_func_link_works], [touch conftest.a # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.a conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include ]], [[int result = 0; if (!link ("conftest.a", "conftest.b/")) result |= 1; #if HAVE_LSTAT if (!link ("conftest.lnk/", "conftest.b")) result |= 2; if (rename ("conftest.a", "conftest.b")) result |= 4; if (!link ("conftest.b", "conftest.lnk")) result |= 8; #endif return result; ]])], [gl_cv_func_link_works=yes], [gl_cv_func_link_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_link_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_link_works="guessing no" ;; esac ]) rm -f conftest.a conftest.b conftest.lnk]) case "$gl_cv_func_link_works" in *yes) ;; *) REPLACE_LINK=1 ;; esac fi ]) gcal-4.1/m4/realloc.m40000664000000000000000000000510013041163523011352 00000000000000# realloc.m4 serial 14 dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. m4_version_prereq([2.70], [] ,[ # This is adapted with modifications from upstream Autoconf here: # http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=04be2b7a29d65d9a08e64e8e56e594c91749598c AC_DEFUN([_AC_FUNC_REALLOC_IF], [ AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles AC_CHECK_HEADERS([stdlib.h]) AC_CACHE_CHECK([for GNU libc compatible realloc], [ac_cv_func_realloc_0_nonnull], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *realloc (); #endif ]], [[char *p = realloc (0, 0); int result = !p; free (p); return result;]]) ], [ac_cv_func_realloc_0_nonnull=yes], [ac_cv_func_realloc_0_nonnull=no], [case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_realloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_realloc_0_nonnull=no ;; esac ]) ]) AS_IF([test $ac_cv_func_realloc_0_nonnull = yes], [$1], [$2]) ])# AC_FUNC_REALLOC ]) # gl_FUNC_REALLOC_GNU # ------------------- # Test whether 'realloc (0, 0)' is handled like in GNU libc, and replace # realloc if it is not. AC_DEFUN([gl_FUNC_REALLOC_GNU], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) dnl _AC_FUNC_REALLOC_IF is defined in Autoconf. _AC_FUNC_REALLOC_IF( [AC_DEFINE([HAVE_REALLOC_GNU], [1], [Define to 1 if your system has a GNU libc compatible 'realloc' function, and to 0 otherwise.])], [AC_DEFINE([HAVE_REALLOC_GNU], [0]) REPLACE_REALLOC=1 ]) ])# gl_FUNC_REALLOC_GNU # gl_FUNC_REALLOC_POSIX # --------------------- # Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it # fails), and replace realloc if it is not. AC_DEFUN([gl_FUNC_REALLOC_POSIX], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) if test $gl_cv_func_malloc_posix = yes; then AC_DEFINE([HAVE_REALLOC_POSIX], [1], [Define if the 'realloc' function is POSIX compliant.]) else REPLACE_REALLOC=1 fi ]) gcal-4.1/m4/unistd_h.m40000664000000000000000000002200313041163523011547 00000000000000# unistd_h.m4 serial 69 dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Simon Josefsson, Bruno Haible. AC_DEFUN([gl_UNISTD_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([unistd.h]) if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi AC_SUBST([HAVE_UNISTD_H]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Determine WINDOWS_64_BIT_OFF_T. AC_REQUIRE([gl_TYPE_OFF_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ #if HAVE_UNISTD_H # include #endif /* Some systems declare various items in the wrong headers. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include # endif #endif ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r unlink unlinkat usleep]) ]) AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_UNISTD_H_DEFAULTS], [ GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR]) GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) GNULIB_DUP=0; AC_SUBST([GNULIB_DUP]) GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) GNULIB_ENVIRON=0; AC_SUBST([GNULIB_ENVIRON]) GNULIB_EUIDACCESS=0; AC_SUBST([GNULIB_EUIDACCESS]) GNULIB_FACCESSAT=0; AC_SUBST([GNULIB_FACCESSAT]) GNULIB_FCHDIR=0; AC_SUBST([GNULIB_FCHDIR]) GNULIB_FCHOWNAT=0; AC_SUBST([GNULIB_FCHOWNAT]) GNULIB_FDATASYNC=0; AC_SUBST([GNULIB_FDATASYNC]) GNULIB_FSYNC=0; AC_SUBST([GNULIB_FSYNC]) GNULIB_FTRUNCATE=0; AC_SUBST([GNULIB_FTRUNCATE]) GNULIB_GETCWD=0; AC_SUBST([GNULIB_GETCWD]) GNULIB_GETDOMAINNAME=0; AC_SUBST([GNULIB_GETDOMAINNAME]) GNULIB_GETDTABLESIZE=0; AC_SUBST([GNULIB_GETDTABLESIZE]) GNULIB_GETGROUPS=0; AC_SUBST([GNULIB_GETGROUPS]) GNULIB_GETHOSTNAME=0; AC_SUBST([GNULIB_GETHOSTNAME]) GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN]) GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) GNULIB_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER]) GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY]) GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN]) GNULIB_LINK=0; AC_SUBST([GNULIB_LINK]) GNULIB_LINKAT=0; AC_SUBST([GNULIB_LINKAT]) GNULIB_LSEEK=0; AC_SUBST([GNULIB_LSEEK]) GNULIB_PIPE=0; AC_SUBST([GNULIB_PIPE]) GNULIB_PIPE2=0; AC_SUBST([GNULIB_PIPE2]) GNULIB_PREAD=0; AC_SUBST([GNULIB_PREAD]) GNULIB_PWRITE=0; AC_SUBST([GNULIB_PWRITE]) GNULIB_READ=0; AC_SUBST([GNULIB_READ]) GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK]) GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT]) GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR]) GNULIB_SETHOSTNAME=0; AC_SUBST([GNULIB_SETHOSTNAME]) GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP]) GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK]) GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT]) GNULIB_TTYNAME_R=0; AC_SUBST([GNULIB_TTYNAME_R]) GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING]) GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE]) GNULIB_UNLINK=0; AC_SUBST([GNULIB_UNLINK]) GNULIB_UNLINKAT=0; AC_SUBST([GNULIB_UNLINKAT]) GNULIB_USLEEP=0; AC_SUBST([GNULIB_USLEEP]) GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) HAVE_DUP2=1; AC_SUBST([HAVE_DUP2]) HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) HAVE_FACCESSAT=1; AC_SUBST([HAVE_FACCESSAT]) HAVE_FCHDIR=1; AC_SUBST([HAVE_FCHDIR]) HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT]) HAVE_FDATASYNC=1; AC_SUBST([HAVE_FDATASYNC]) HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC]) HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE]) HAVE_GETDTABLESIZE=1; AC_SUBST([HAVE_GETDTABLESIZE]) HAVE_GETGROUPS=1; AC_SUBST([HAVE_GETGROUPS]) HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) HAVE_LINK=1; AC_SUBST([HAVE_LINK]) HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT]) HAVE_PIPE=1; AC_SUBST([HAVE_PIPE]) HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2]) HAVE_PREAD=1; AC_SUBST([HAVE_PREAD]) HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE]) HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT]) HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME]) HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR]) HAVE_DECL_FDATASYNC=1; AC_SUBST([HAVE_DECL_FDATASYNC]) HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME]) HAVE_DECL_GETLOGIN=1; AC_SUBST([HAVE_DECL_GETLOGIN]) HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE]) REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME]) REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE]) REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) REPLACE_READ=0; AC_SUBST([REPLACE_READ]) REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) REPLACE_READLINKAT=0; AC_SUBST([REPLACE_READLINKAT]) REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) REPLACE_SYMLINKAT=0; AC_SUBST([REPLACE_SYMLINKAT]) REPLACE_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R]) REPLACE_UNLINK=0; AC_SUBST([REPLACE_UNLINK]) REPLACE_UNLINKAT=0; AC_SUBST([REPLACE_UNLINKAT]) REPLACE_USLEEP=0; AC_SUBST([REPLACE_USLEEP]) REPLACE_WRITE=0; AC_SUBST([REPLACE_WRITE]) UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H]) UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) ]) gcal-4.1/m4/string_h.m40000664000000000000000000001271413041163523011557 00000000000000# Configure a GNU-like replacement for . # Copyright (C) 2007-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 21 # Written by Paul Eggert. AC_DEFUN([gl_HEADER_STRING_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_HEADER_STRING_H_BODY]) ]) AC_DEFUN([gl_HEADER_STRING_H_BODY], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_NEXT_HEADERS([string.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include ]], [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp]) ]) AC_DEFUN([gl_STRING_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], [ GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL]) GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL]) GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR]) GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM]) GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY]) GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR]) GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR]) GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY]) GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY]) GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL]) GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP]) GNULIB_STRNCAT=0; AC_SUBST([GNULIB_STRNCAT]) GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP]) GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN]) GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK]) GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP]) GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR]) GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR]) GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R]) GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN]) GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN]) GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR]) GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR]) GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR]) GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP]) GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP]) GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP]) GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR]) GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN]) GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK]) GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN]) GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP]) GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R]) GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR]) GNULIB_STRERROR_R=0; AC_SUBST([GNULIB_STRERROR_R]) GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL]) GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP]) HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FFSL=1; AC_SUBST([HAVE_FFSL]) HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL]) HAVE_MEMCHR=1; AC_SUBST([HAVE_MEMCHR]) HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM]) HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY]) HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR]) HAVE_RAWMEMCHR=1; AC_SUBST([HAVE_RAWMEMCHR]) HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY]) HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY]) HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL]) HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP]) HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP]) HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN]) HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK]) HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP]) HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR]) HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R]) HAVE_DECL_STRERROR_R=1; AC_SUBST([HAVE_DECL_STRERROR_R]) HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL]) HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP]) REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR]) REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY]) REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL]) REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R]) REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT]) REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP]) REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN]) REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R]) UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R]) ]) gcal-4.1/m4/double-slash-root.m40000664000000000000000000000312513041163523013301 00000000000000# double-slash-root.m4 serial 4 -*- Autoconf -*- dnl Copyright (C) 2006, 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_DOUBLE_SLASH_ROOT], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether // is distinct from /], [gl_cv_double_slash_root], [ if test x"$cross_compiling" = xyes ; then # When cross-compiling, there is no way to tell whether // is special # short of a list of hosts. However, the only known hosts to date # that have a distinct // are Apollo DomainOS (too old to port to), # Cygwin, and z/OS. If anyone knows of another system for which // has # special semantics and is distinct from /, please report it to # . case $host in *-cygwin | i370-ibm-openedition) gl_cv_double_slash_root=yes ;; *) # Be optimistic and assume that / and // are the same when we # don't know. gl_cv_double_slash_root='unknown, assuming no' ;; esac else set x `ls -di / // 2>/dev/null` if test "$[2]" = "$[4]" && wc //dev/null >/dev/null 2>&1; then gl_cv_double_slash_root=no else gl_cv_double_slash_root=yes fi fi]) if test "$gl_cv_double_slash_root" = yes; then AC_DEFINE([DOUBLE_SLASH_IS_DISTINCT_ROOT], [1], [Define to 1 if // is a file system root distinct from /.]) fi ]) gcal-4.1/m4/stat.m40000664000000000000000000000521413041163523010712 00000000000000# serial 11 # Copyright (C) 2009-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STAT], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([lstat]) dnl mingw is the only known platform where stat(".") and stat("./") differ AC_CACHE_CHECK([whether stat handles trailing slashes on directories], [gl_cv_func_stat_dir_slash], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[struct stat st; return stat (".", &st) != stat ("./", &st);]])], [gl_cv_func_stat_dir_slash=yes], [gl_cv_func_stat_dir_slash=no], [case $host_os in mingw*) gl_cv_func_stat_dir_slash="guessing no";; *) gl_cv_func_stat_dir_slash="guessing yes";; esac])]) dnl AIX 7.1, Solaris 9, mingw64 mistakenly succeed on stat("file/"). dnl (For mingw, this is due to a broken stat() override in libmingwex.a.) dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/"). AC_CACHE_CHECK([whether stat handles trailing slashes on files], [gl_cv_func_stat_file_slash], [touch conftest.tmp # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.tmp conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[int result = 0; struct stat st; if (!stat ("conftest.tmp/", &st)) result |= 1; #if HAVE_LSTAT if (!stat ("conftest.lnk/", &st)) result |= 2; #endif return result; ]])], [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_stat_file_slash="guessing no" ;; esac ]) rm -f conftest.tmp conftest.lnk]) case $gl_cv_func_stat_dir_slash in *no) REPLACE_STAT=1 AC_DEFINE([REPLACE_FUNC_STAT_DIR], [1], [Define to 1 if stat needs help when passed a directory name with a trailing slash]);; esac case $gl_cv_func_stat_file_slash in *no) REPLACE_STAT=1 AC_DEFINE([REPLACE_FUNC_STAT_FILE], [1], [Define to 1 if stat needs help when passed a file name with a trailing slash]);; esac ]) # Prerequisites of lib/stat.c. AC_DEFUN([gl_PREREQ_STAT], [:]) gcal-4.1/m4/multiarch.m40000664000000000000000000000367413041163523011737 00000000000000# multiarch.m4 serial 7 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Determine whether the compiler is or may be producing universal binaries. # # On Mac OS X 10.5 and later systems, the user can create libraries and # executables that work on multiple system types--known as "fat" or # "universal" binaries--by specifying multiple '-arch' options to the # compiler but only a single '-arch' option to the preprocessor. Like # this: # # ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ # CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ # CPP="gcc -E" CXXCPP="g++ -E" # # Detect this situation and set APPLE_UNIVERSAL_BUILD accordingly. AC_DEFUN_ONCE([gl_MULTIARCH], [ dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN. gl_cv_c_multiarch=no AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; ]])], [ dnl Check for potential -arch flags. It is not universal unless dnl there are at least two -arch flags with different values. arch= prev= for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do if test -n "$prev"; then case $word in i?86 | x86_64 | ppc | ppc64) if test -z "$arch" || test "$arch" = "$word"; then arch="$word" else gl_cv_c_multiarch=yes fi ;; esac prev= else if test "x$word" = "x-arch"; then prev=arch fi fi done ]) if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 else APPLE_UNIVERSAL_BUILD=0 fi AC_SUBST([APPLE_UNIVERSAL_BUILD]) ]) gcal-4.1/m4/absolute-header.m40000664000000000000000000001034713041163523013006 00000000000000# absolute-header.m4 serial 16 dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Derek Price. # gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...) # --------------------------------------- # Find the absolute name of a header file, testing first if the header exists. # If the header were sys/inttypes.h, this macro would define # ABSOLUTE_SYS_INTTYPES_H to the '""' quoted absolute name of sys/inttypes.h # in config.h # (e.g. '#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"'). # The three "///" are to pacify Sun C 5.8, which otherwise would say # "warning: #include of /usr/include/... may be non-portable". # Use '""', not '<>', so that the /// cannot be confused with a C99 comment. # Note: This macro assumes that the header file is not empty after # preprocessing, i.e. it does not only define preprocessor macros but also # provides some type/enum definitions or function/variable declarations. AC_DEFUN([gl_ABSOLUTE_HEADER], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_PREPROC_REQUIRE()dnl dnl FIXME: gl_absolute_header and ac_header_exists must be used unquoted dnl until we can assume autoconf 2.64 or newer. m4_foreach_w([gl_HEADER_NAME], [$1], [AS_VAR_PUSHDEF([gl_absolute_header], [gl_cv_absolute_]m4_defn([gl_HEADER_NAME]))dnl AC_CACHE_CHECK([absolute name of <]m4_defn([gl_HEADER_NAME])[>], m4_defn([gl_absolute_header]), [AS_VAR_PUSHDEF([ac_header_exists], [ac_cv_header_]m4_defn([gl_HEADER_NAME]))dnl AC_CHECK_HEADERS_ONCE(m4_defn([gl_HEADER_NAME]))dnl if test AS_VAR_GET(ac_header_exists) = yes; then gl_ABSOLUTE_HEADER_ONE(m4_defn([gl_HEADER_NAME])) fi AS_VAR_POPDEF([ac_header_exists])dnl ])dnl AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_defn([gl_HEADER_NAME])), ["AS_VAR_GET(gl_absolute_header)"], [Define this to an absolute name of <]m4_defn([gl_HEADER_NAME])[>.]) AS_VAR_POPDEF([gl_absolute_header])dnl ])dnl ])# gl_ABSOLUTE_HEADER # gl_ABSOLUTE_HEADER_ONE(HEADER) # ------------------------------ # Like gl_ABSOLUTE_HEADER, except that: # - it assumes that the header exists, # - it uses the current CPPFLAGS, # - it does not cache the result, # - it is silent. AC_DEFUN([gl_ABSOLUTE_HEADER_ONE], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote([$1])[[>]])]) dnl AIX "xlc -E" and "cc -E" omit #line directives for header files dnl that contain only a #include of other header files and no dnl non-comment tokens of their own. This leads to a failure to dnl detect the absolute name of , , dnl and others. The workaround is to force preservation of comments dnl through option -C. This ensures all necessary #line directives dnl are present. GCC supports option -C as well. case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac changequote(,) case "$host_os" in mingw*) dnl For the sake of native Windows compilers (excluding gcc), dnl treat backslash as a directory separator, like /. dnl Actually, these compilers use a double-backslash as dnl directory separator, inside the dnl # line "filename" dnl directives. gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac dnl A sed expression that turns a string into a basic regular dnl expression, for use within "/.../". gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo '$1' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' changequote([,]) dnl eval is necessary to expand gl_absname_cpp. dnl Ultrix and Pyramid sh refuse to redirect output of eval, dnl so use subshell. AS_VAR_SET([gl_cv_absolute_]AS_TR_SH([[$1]]), [`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | sed -n "$gl_absolute_header_sed"`]) ]) gcal-4.1/m4/lib-ld.m40000664000000000000000000000714313041163523011105 00000000000000# lib-ld.m4 serial 6 dnl Copyright (C) 1996-2003, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid dnl collision with libtool.m4. dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], [# I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 /dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL([acl_cv_path_LD], [if test -z "$LD"; then acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([sys/wait.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [waitpid]) ]) AC_DEFUN([gl_SYS_WAIT_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_WAIT_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_WAIT_H_DEFAULTS], [ GNULIB_WAITPID=0; AC_SUBST([GNULIB_WAITPID]) dnl Assume proper GNU behavior unless another module says otherwise. ]) gcal-4.1/m4/fseeko.m40000664000000000000000000000435713041163523011222 00000000000000# fseeko.m4 serial 17 dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FSEEKO], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([gl_STDIN_LARGE_OFFSET]) AC_REQUIRE([gl_SYS_TYPES_H]) AC_REQUIRE([AC_PROG_CC]) dnl Persuade glibc to declare fseeko(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CACHE_CHECK([for fseeko], [gl_cv_func_fseeko], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [fseeko (stdin, 0, 0);])], [gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no]) ]) AC_CHECK_DECLS_ONCE([fseeko]) if test $ac_cv_have_decl_fseeko = no; then HAVE_DECL_FSEEKO=0 fi if test $gl_cv_func_fseeko = no; then HAVE_FSEEKO=0 else if test $WINDOWS_64_BIT_OFF_T = 1; then REPLACE_FSEEKO=1 fi if test $gl_cv_var_stdin_large_offset = no; then REPLACE_FSEEKO=1 fi m4_ifdef([gl_FUNC_FFLUSH_STDIN], [ gl_FUNC_FFLUSH_STDIN if test $gl_cv_func_fflush_stdin != yes; then REPLACE_FSEEKO=1 fi ]) fi ]) dnl Code shared by fseeko and ftello. Determine if large files are supported, dnl but stdin does not start as a large file by default. AC_DEFUN([gl_STDIN_LARGE_OFFSET], [ AC_CACHE_CHECK([whether stdin defaults to large file offsets], [gl_cv_var_stdin_large_offset], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[#if defined __SL64 && defined __SCLE /* cygwin */ /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and it is easier to do a version check than building a runtime test. */ # include # if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25) choke me # endif #endif]])], [gl_cv_var_stdin_large_offset=yes], [gl_cv_var_stdin_large_offset=no])]) ]) # Prerequisites of lib/fseeko.c. AC_DEFUN([gl_PREREQ_FSEEKO], [ dnl Native Windows has the function _fseeki64. mingw hides it, but mingw64 dnl makes it usable again. AC_CHECK_FUNCS([_fseeki64]) ]) gcal-4.1/m4/strstr.m40000664000000000000000000001034013041163523011274 00000000000000# strstr.m4 serial 17 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Check that strstr works. AC_DEFUN([gl_FUNC_STRSTR_SIMPLE], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_MEMCHR]) if test "$gl_cv_func_memchr_works" != yes; then REPLACE_STRSTR=1 else dnl Detect http://sourceware.org/bugzilla/show_bug.cgi?id=12092. AC_CACHE_CHECK([whether strstr works], [gl_cv_func_strstr_works_always], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include /* for strstr */ #define P "_EF_BF_BD" #define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P #define NEEDLE P P P P P ]], [[return !!strstr (HAYSTACK, NEEDLE); ]])], [gl_cv_func_strstr_works_always=yes], [gl_cv_func_strstr_works_always=no], [dnl glibc 2.12 and cygwin 1.7.7 have a known bug. uClibc is not dnl affected, since it uses different source code for strstr than dnl glibc. dnl Assume that it works on all other platforms, even if it is not dnl linear. AC_EGREP_CPP([Lucky user], [ #ifdef __GNU_LIBRARY__ #include #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ || defined __UCLIBC__ Lucky user #endif #elif defined __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #else Lucky user #endif ], [gl_cv_func_strstr_works_always="guessing yes"], [gl_cv_func_strstr_works_always="guessing no"]) ]) ]) case "$gl_cv_func_strstr_works_always" in *yes) ;; *) REPLACE_STRSTR=1 ;; esac fi ]) # gl_FUNC_STRSTR_SIMPLE dnl Additionally, check that strstr is efficient. AC_DEFUN([gl_FUNC_STRSTR], [ AC_REQUIRE([gl_FUNC_STRSTR_SIMPLE]) if test $REPLACE_STRSTR = 0; then AC_CACHE_CHECK([whether strstr works in linear time], [gl_cv_func_strstr_linear], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #ifdef __MVS__ /* z/OS does not deliver signals while strstr() is running (thanks to restrictions on its LE runtime), which prevents us from limiting the running time of this test. */ # error "This test does not work properly on z/OS" #endif #include /* for signal */ #include /* for strstr */ #include /* for malloc */ #include /* for alarm */ static void quit (int sig) { _exit (sig + 128); } ]], [[ int result = 0; size_t m = 1000000; char *haystack = (char *) malloc (2 * m + 2); char *needle = (char *) malloc (m + 2); /* Failure to compile this test due to missing alarm is okay, since all such platforms (mingw) also have quadratic strstr. */ signal (SIGALRM, quit); alarm (5); /* Check for quadratic performance. */ if (haystack && needle) { memset (haystack, 'A', 2 * m); haystack[2 * m] = 'B'; haystack[2 * m + 1] = 0; memset (needle, 'A', m); needle[m] = 'B'; needle[m + 1] = 0; if (!strstr (haystack, needle)) result |= 1; } return result; ]])], [gl_cv_func_strstr_linear=yes], [gl_cv_func_strstr_linear=no], [dnl Only glibc > 2.12 on processors without SSE 4.2 instructions and dnl cygwin > 1.7.7 are known to have a bug-free strstr that works in dnl linear time. AC_EGREP_CPP([Lucky user], [ #include #ifdef __GNU_LIBRARY__ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \ && !(defined __i386__ || defined __x86_64__) \ && !defined __UCLIBC__ Lucky user #endif #endif #ifdef __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7) Lucky user #endif #endif ], [gl_cv_func_strstr_linear="guessing yes"], [gl_cv_func_strstr_linear="guessing no"]) ]) ]) case "$gl_cv_func_strstr_linear" in *yes) ;; *) REPLACE_STRSTR=1 ;; esac fi ]) # gl_FUNC_STRSTR gcal-4.1/m4/nl_langinfo.m40000664000000000000000000000352413041163523012227 00000000000000# nl_langinfo.m4 serial 5 dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_NL_LANGINFO], [ AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) AC_REQUIRE([gl_LANGINFO_H]) AC_CHECK_FUNCS_ONCE([nl_langinfo]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles if test $ac_cv_func_nl_langinfo = yes; then # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken. AC_CACHE_CHECK([whether YESEXPR works], [gl_cv_func_nl_langinfo_yesexpr_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[return !*nl_langinfo(YESEXPR); ]])], [gl_cv_func_nl_langinfo_yesexpr_works=yes], [gl_cv_func_nl_langinfo_yesexpr_works=no], [ case "$host_os" in # Guess no on irix systems. irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";; # Guess yes elsewhere. *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";; esac ]) ]) case $gl_cv_func_nl_langinfo_yesexpr_works in *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;; *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;; esac AC_DEFINE_UNQUOTED([FUNC_NL_LANGINFO_YESEXPR_WORKS], [$FUNC_NL_LANGINFO_YESEXPR_WORKS], [Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string.]) if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then : else REPLACE_NL_LANGINFO=1 AC_DEFINE([REPLACE_NL_LANGINFO], [1], [Define if nl_langinfo exists but is overridden by gnulib.]) fi else HAVE_NL_LANGINFO=0 fi ]) gcal-4.1/m4/math_h.m40000664000000000000000000004336213041163523011205 00000000000000# math_h.m4 serial 115 dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MATH_H], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([math.h]) AC_CACHE_CHECK([whether NAN macro works], [gl_cv_header_math_nan_works], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], [[/* Solaris 10 has a broken definition of NAN. Other platforms fail to provide NAN, or provide it only in C99 mode; this test only needs to fail when NAN is provided but wrong. */ float f = 1.0f; #ifdef NAN f = NAN; #endif return f == 0;]])], [gl_cv_header_math_nan_works=yes], [gl_cv_header_math_nan_works=no])]) if test $gl_cv_header_math_nan_works = no; then REPLACE_NAN=1 fi AC_CACHE_CHECK([whether HUGE_VAL works], [gl_cv_header_math_huge_val_works], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], [[/* Solaris 10 has a broken definition of HUGE_VAL. */ double d = HUGE_VAL; return d == 0;]])], [gl_cv_header_math_huge_val_works=yes], [gl_cv_header_math_huge_val_works=no])]) if test $gl_cv_header_math_huge_val_works = no; then REPLACE_HUGE_VAL=1 fi dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [acosf acosl asinf asinl atanf atanl cbrt cbrtf cbrtl ceilf ceill copysign copysignf copysignl cosf cosl coshf expf expl exp2 exp2f exp2l expm1 expm1f expm1l fabsf fabsl floorf floorl fma fmaf fmal fmod fmodf fmodl frexpf frexpl hypotf hypotl ilogb ilogbf ilogbl ldexpf ldexpl log logf logl log10 log10f log10l log1p log1pf log1pl log2 log2f log2l logb logbf logbl modf modff modfl powf remainder remainderf remainderl rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl tanf tanl tanhf trunc truncf truncl]) ]) AC_DEFUN([gl_MATH_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_MATH_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_MATH_H_DEFAULTS], [ GNULIB_ACOSF=0; AC_SUBST([GNULIB_ACOSF]) GNULIB_ACOSL=0; AC_SUBST([GNULIB_ACOSL]) GNULIB_ASINF=0; AC_SUBST([GNULIB_ASINF]) GNULIB_ASINL=0; AC_SUBST([GNULIB_ASINL]) GNULIB_ATANF=0; AC_SUBST([GNULIB_ATANF]) GNULIB_ATANL=0; AC_SUBST([GNULIB_ATANL]) GNULIB_ATAN2F=0; AC_SUBST([GNULIB_ATAN2F]) GNULIB_CBRT=0; AC_SUBST([GNULIB_CBRT]) GNULIB_CBRTF=0; AC_SUBST([GNULIB_CBRTF]) GNULIB_CBRTL=0; AC_SUBST([GNULIB_CBRTL]) GNULIB_CEIL=0; AC_SUBST([GNULIB_CEIL]) GNULIB_CEILF=0; AC_SUBST([GNULIB_CEILF]) GNULIB_CEILL=0; AC_SUBST([GNULIB_CEILL]) GNULIB_COPYSIGN=0; AC_SUBST([GNULIB_COPYSIGN]) GNULIB_COPYSIGNF=0; AC_SUBST([GNULIB_COPYSIGNF]) GNULIB_COPYSIGNL=0; AC_SUBST([GNULIB_COPYSIGNL]) GNULIB_COSF=0; AC_SUBST([GNULIB_COSF]) GNULIB_COSL=0; AC_SUBST([GNULIB_COSL]) GNULIB_COSHF=0; AC_SUBST([GNULIB_COSHF]) GNULIB_EXPF=0; AC_SUBST([GNULIB_EXPF]) GNULIB_EXPL=0; AC_SUBST([GNULIB_EXPL]) GNULIB_EXP2=0; AC_SUBST([GNULIB_EXP2]) GNULIB_EXP2F=0; AC_SUBST([GNULIB_EXP2F]) GNULIB_EXP2L=0; AC_SUBST([GNULIB_EXP2L]) GNULIB_EXPM1=0; AC_SUBST([GNULIB_EXPM1]) GNULIB_EXPM1F=0; AC_SUBST([GNULIB_EXPM1F]) GNULIB_EXPM1L=0; AC_SUBST([GNULIB_EXPM1L]) GNULIB_FABSF=0; AC_SUBST([GNULIB_FABSF]) GNULIB_FABSL=0; AC_SUBST([GNULIB_FABSL]) GNULIB_FLOOR=0; AC_SUBST([GNULIB_FLOOR]) GNULIB_FLOORF=0; AC_SUBST([GNULIB_FLOORF]) GNULIB_FLOORL=0; AC_SUBST([GNULIB_FLOORL]) GNULIB_FMA=0; AC_SUBST([GNULIB_FMA]) GNULIB_FMAF=0; AC_SUBST([GNULIB_FMAF]) GNULIB_FMAL=0; AC_SUBST([GNULIB_FMAL]) GNULIB_FMOD=0; AC_SUBST([GNULIB_FMOD]) GNULIB_FMODF=0; AC_SUBST([GNULIB_FMODF]) GNULIB_FMODL=0; AC_SUBST([GNULIB_FMODL]) GNULIB_FREXPF=0; AC_SUBST([GNULIB_FREXPF]) GNULIB_FREXP=0; AC_SUBST([GNULIB_FREXP]) GNULIB_FREXPL=0; AC_SUBST([GNULIB_FREXPL]) GNULIB_HYPOT=0; AC_SUBST([GNULIB_HYPOT]) GNULIB_HYPOTF=0; AC_SUBST([GNULIB_HYPOTF]) GNULIB_HYPOTL=0; AC_SUBST([GNULIB_HYPOTL]) GNULIB_ILOGB=0; AC_SUBST([GNULIB_ILOGB]) GNULIB_ILOGBF=0; AC_SUBST([GNULIB_ILOGBF]) GNULIB_ILOGBL=0; AC_SUBST([GNULIB_ILOGBL]) GNULIB_ISFINITE=0; AC_SUBST([GNULIB_ISFINITE]) GNULIB_ISINF=0; AC_SUBST([GNULIB_ISINF]) GNULIB_ISNAN=0; AC_SUBST([GNULIB_ISNAN]) GNULIB_ISNANF=0; AC_SUBST([GNULIB_ISNANF]) GNULIB_ISNAND=0; AC_SUBST([GNULIB_ISNAND]) GNULIB_ISNANL=0; AC_SUBST([GNULIB_ISNANL]) GNULIB_LDEXPF=0; AC_SUBST([GNULIB_LDEXPF]) GNULIB_LDEXPL=0; AC_SUBST([GNULIB_LDEXPL]) GNULIB_LOG=0; AC_SUBST([GNULIB_LOG]) GNULIB_LOGF=0; AC_SUBST([GNULIB_LOGF]) GNULIB_LOGL=0; AC_SUBST([GNULIB_LOGL]) GNULIB_LOG10=0; AC_SUBST([GNULIB_LOG10]) GNULIB_LOG10F=0; AC_SUBST([GNULIB_LOG10F]) GNULIB_LOG10L=0; AC_SUBST([GNULIB_LOG10L]) GNULIB_LOG1P=0; AC_SUBST([GNULIB_LOG1P]) GNULIB_LOG1PF=0; AC_SUBST([GNULIB_LOG1PF]) GNULIB_LOG1PL=0; AC_SUBST([GNULIB_LOG1PL]) GNULIB_LOG2=0; AC_SUBST([GNULIB_LOG2]) GNULIB_LOG2F=0; AC_SUBST([GNULIB_LOG2F]) GNULIB_LOG2L=0; AC_SUBST([GNULIB_LOG2L]) GNULIB_LOGB=0; AC_SUBST([GNULIB_LOGB]) GNULIB_LOGBF=0; AC_SUBST([GNULIB_LOGBF]) GNULIB_LOGBL=0; AC_SUBST([GNULIB_LOGBL]) GNULIB_MODF=0; AC_SUBST([GNULIB_MODF]) GNULIB_MODFF=0; AC_SUBST([GNULIB_MODFF]) GNULIB_MODFL=0; AC_SUBST([GNULIB_MODFL]) GNULIB_POWF=0; AC_SUBST([GNULIB_POWF]) GNULIB_REMAINDER=0; AC_SUBST([GNULIB_REMAINDER]) GNULIB_REMAINDERF=0; AC_SUBST([GNULIB_REMAINDERF]) GNULIB_REMAINDERL=0; AC_SUBST([GNULIB_REMAINDERL]) GNULIB_RINT=0; AC_SUBST([GNULIB_RINT]) GNULIB_RINTF=0; AC_SUBST([GNULIB_RINTF]) GNULIB_RINTL=0; AC_SUBST([GNULIB_RINTL]) GNULIB_ROUND=0; AC_SUBST([GNULIB_ROUND]) GNULIB_ROUNDF=0; AC_SUBST([GNULIB_ROUNDF]) GNULIB_ROUNDL=0; AC_SUBST([GNULIB_ROUNDL]) GNULIB_SIGNBIT=0; AC_SUBST([GNULIB_SIGNBIT]) GNULIB_SINF=0; AC_SUBST([GNULIB_SINF]) GNULIB_SINL=0; AC_SUBST([GNULIB_SINL]) GNULIB_SINHF=0; AC_SUBST([GNULIB_SINHF]) GNULIB_SQRTF=0; AC_SUBST([GNULIB_SQRTF]) GNULIB_SQRTL=0; AC_SUBST([GNULIB_SQRTL]) GNULIB_TANF=0; AC_SUBST([GNULIB_TANF]) GNULIB_TANL=0; AC_SUBST([GNULIB_TANL]) GNULIB_TANHF=0; AC_SUBST([GNULIB_TANHF]) GNULIB_TRUNC=0; AC_SUBST([GNULIB_TRUNC]) GNULIB_TRUNCF=0; AC_SUBST([GNULIB_TRUNCF]) GNULIB_TRUNCL=0; AC_SUBST([GNULIB_TRUNCL]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_ACOSF=1; AC_SUBST([HAVE_ACOSF]) HAVE_ACOSL=1; AC_SUBST([HAVE_ACOSL]) HAVE_ASINF=1; AC_SUBST([HAVE_ASINF]) HAVE_ASINL=1; AC_SUBST([HAVE_ASINL]) HAVE_ATANF=1; AC_SUBST([HAVE_ATANF]) HAVE_ATANL=1; AC_SUBST([HAVE_ATANL]) HAVE_ATAN2F=1; AC_SUBST([HAVE_ATAN2F]) HAVE_CBRT=1; AC_SUBST([HAVE_CBRT]) HAVE_CBRTF=1; AC_SUBST([HAVE_CBRTF]) HAVE_CBRTL=1; AC_SUBST([HAVE_CBRTL]) HAVE_COPYSIGN=1; AC_SUBST([HAVE_COPYSIGN]) HAVE_COPYSIGNL=1; AC_SUBST([HAVE_COPYSIGNL]) HAVE_COSF=1; AC_SUBST([HAVE_COSF]) HAVE_COSL=1; AC_SUBST([HAVE_COSL]) HAVE_COSHF=1; AC_SUBST([HAVE_COSHF]) HAVE_EXPF=1; AC_SUBST([HAVE_EXPF]) HAVE_EXPL=1; AC_SUBST([HAVE_EXPL]) HAVE_EXPM1=1; AC_SUBST([HAVE_EXPM1]) HAVE_EXPM1F=1; AC_SUBST([HAVE_EXPM1F]) HAVE_FABSF=1; AC_SUBST([HAVE_FABSF]) HAVE_FABSL=1; AC_SUBST([HAVE_FABSL]) HAVE_FMA=1; AC_SUBST([HAVE_FMA]) HAVE_FMAF=1; AC_SUBST([HAVE_FMAF]) HAVE_FMAL=1; AC_SUBST([HAVE_FMAL]) HAVE_FMODF=1; AC_SUBST([HAVE_FMODF]) HAVE_FMODL=1; AC_SUBST([HAVE_FMODL]) HAVE_FREXPF=1; AC_SUBST([HAVE_FREXPF]) HAVE_HYPOTF=1; AC_SUBST([HAVE_HYPOTF]) HAVE_HYPOTL=1; AC_SUBST([HAVE_HYPOTL]) HAVE_ILOGB=1; AC_SUBST([HAVE_ILOGB]) HAVE_ILOGBF=1; AC_SUBST([HAVE_ILOGBF]) HAVE_ILOGBL=1; AC_SUBST([HAVE_ILOGBL]) HAVE_ISNANF=1; AC_SUBST([HAVE_ISNANF]) HAVE_ISNAND=1; AC_SUBST([HAVE_ISNAND]) HAVE_ISNANL=1; AC_SUBST([HAVE_ISNANL]) HAVE_LDEXPF=1; AC_SUBST([HAVE_LDEXPF]) HAVE_LOGF=1; AC_SUBST([HAVE_LOGF]) HAVE_LOGL=1; AC_SUBST([HAVE_LOGL]) HAVE_LOG10F=1; AC_SUBST([HAVE_LOG10F]) HAVE_LOG10L=1; AC_SUBST([HAVE_LOG10L]) HAVE_LOG1P=1; AC_SUBST([HAVE_LOG1P]) HAVE_LOG1PF=1; AC_SUBST([HAVE_LOG1PF]) HAVE_LOG1PL=1; AC_SUBST([HAVE_LOG1PL]) HAVE_LOGBF=1; AC_SUBST([HAVE_LOGBF]) HAVE_LOGBL=1; AC_SUBST([HAVE_LOGBL]) HAVE_MODFF=1; AC_SUBST([HAVE_MODFF]) HAVE_MODFL=1; AC_SUBST([HAVE_MODFL]) HAVE_POWF=1; AC_SUBST([HAVE_POWF]) HAVE_REMAINDER=1; AC_SUBST([HAVE_REMAINDER]) HAVE_REMAINDERF=1; AC_SUBST([HAVE_REMAINDERF]) HAVE_RINT=1; AC_SUBST([HAVE_RINT]) HAVE_RINTL=1; AC_SUBST([HAVE_RINTL]) HAVE_SINF=1; AC_SUBST([HAVE_SINF]) HAVE_SINL=1; AC_SUBST([HAVE_SINL]) HAVE_SINHF=1; AC_SUBST([HAVE_SINHF]) HAVE_SQRTF=1; AC_SUBST([HAVE_SQRTF]) HAVE_SQRTL=1; AC_SUBST([HAVE_SQRTL]) HAVE_TANF=1; AC_SUBST([HAVE_TANF]) HAVE_TANL=1; AC_SUBST([HAVE_TANL]) HAVE_TANHF=1; AC_SUBST([HAVE_TANHF]) HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL]) HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL]) HAVE_DECL_ATANL=1; AC_SUBST([HAVE_DECL_ATANL]) HAVE_DECL_CBRTF=1; AC_SUBST([HAVE_DECL_CBRTF]) HAVE_DECL_CBRTL=1; AC_SUBST([HAVE_DECL_CBRTL]) HAVE_DECL_CEILF=1; AC_SUBST([HAVE_DECL_CEILF]) HAVE_DECL_CEILL=1; AC_SUBST([HAVE_DECL_CEILL]) HAVE_DECL_COPYSIGNF=1; AC_SUBST([HAVE_DECL_COPYSIGNF]) HAVE_DECL_COSL=1; AC_SUBST([HAVE_DECL_COSL]) HAVE_DECL_EXPL=1; AC_SUBST([HAVE_DECL_EXPL]) HAVE_DECL_EXP2=1; AC_SUBST([HAVE_DECL_EXP2]) HAVE_DECL_EXP2F=1; AC_SUBST([HAVE_DECL_EXP2F]) HAVE_DECL_EXP2L=1; AC_SUBST([HAVE_DECL_EXP2L]) HAVE_DECL_EXPM1L=1; AC_SUBST([HAVE_DECL_EXPM1L]) HAVE_DECL_FLOORF=1; AC_SUBST([HAVE_DECL_FLOORF]) HAVE_DECL_FLOORL=1; AC_SUBST([HAVE_DECL_FLOORL]) HAVE_DECL_FREXPL=1; AC_SUBST([HAVE_DECL_FREXPL]) HAVE_DECL_LDEXPL=1; AC_SUBST([HAVE_DECL_LDEXPL]) HAVE_DECL_LOGL=1; AC_SUBST([HAVE_DECL_LOGL]) HAVE_DECL_LOG10L=1; AC_SUBST([HAVE_DECL_LOG10L]) HAVE_DECL_LOG2=1; AC_SUBST([HAVE_DECL_LOG2]) HAVE_DECL_LOG2F=1; AC_SUBST([HAVE_DECL_LOG2F]) HAVE_DECL_LOG2L=1; AC_SUBST([HAVE_DECL_LOG2L]) HAVE_DECL_LOGB=1; AC_SUBST([HAVE_DECL_LOGB]) HAVE_DECL_REMAINDER=1; AC_SUBST([HAVE_DECL_REMAINDER]) HAVE_DECL_REMAINDERL=1; AC_SUBST([HAVE_DECL_REMAINDERL]) HAVE_DECL_RINTF=1; AC_SUBST([HAVE_DECL_RINTF]) HAVE_DECL_ROUND=1; AC_SUBST([HAVE_DECL_ROUND]) HAVE_DECL_ROUNDF=1; AC_SUBST([HAVE_DECL_ROUNDF]) HAVE_DECL_ROUNDL=1; AC_SUBST([HAVE_DECL_ROUNDL]) HAVE_DECL_SINL=1; AC_SUBST([HAVE_DECL_SINL]) HAVE_DECL_SQRTL=1; AC_SUBST([HAVE_DECL_SQRTL]) HAVE_DECL_TANL=1; AC_SUBST([HAVE_DECL_TANL]) HAVE_DECL_TRUNC=1; AC_SUBST([HAVE_DECL_TRUNC]) HAVE_DECL_TRUNCF=1; AC_SUBST([HAVE_DECL_TRUNCF]) HAVE_DECL_TRUNCL=1; AC_SUBST([HAVE_DECL_TRUNCL]) REPLACE_ACOSF=0; AC_SUBST([REPLACE_ACOSF]) REPLACE_ASINF=0; AC_SUBST([REPLACE_ASINF]) REPLACE_ATANF=0; AC_SUBST([REPLACE_ATANF]) REPLACE_ATAN2F=0; AC_SUBST([REPLACE_ATAN2F]) REPLACE_CBRTF=0; AC_SUBST([REPLACE_CBRTF]) REPLACE_CBRTL=0; AC_SUBST([REPLACE_CBRTL]) REPLACE_CEIL=0; AC_SUBST([REPLACE_CEIL]) REPLACE_CEILF=0; AC_SUBST([REPLACE_CEILF]) REPLACE_CEILL=0; AC_SUBST([REPLACE_CEILL]) REPLACE_COSF=0; AC_SUBST([REPLACE_COSF]) REPLACE_COSHF=0; AC_SUBST([REPLACE_COSHF]) REPLACE_EXPF=0; AC_SUBST([REPLACE_EXPF]) REPLACE_EXPM1=0; AC_SUBST([REPLACE_EXPM1]) REPLACE_EXPM1F=0; AC_SUBST([REPLACE_EXPM1F]) REPLACE_EXP2=0; AC_SUBST([REPLACE_EXP2]) REPLACE_EXP2L=0; AC_SUBST([REPLACE_EXP2L]) REPLACE_FABSL=0; AC_SUBST([REPLACE_FABSL]) REPLACE_FLOOR=0; AC_SUBST([REPLACE_FLOOR]) REPLACE_FLOORF=0; AC_SUBST([REPLACE_FLOORF]) REPLACE_FLOORL=0; AC_SUBST([REPLACE_FLOORL]) REPLACE_FMA=0; AC_SUBST([REPLACE_FMA]) REPLACE_FMAF=0; AC_SUBST([REPLACE_FMAF]) REPLACE_FMAL=0; AC_SUBST([REPLACE_FMAL]) REPLACE_FMOD=0; AC_SUBST([REPLACE_FMOD]) REPLACE_FMODF=0; AC_SUBST([REPLACE_FMODF]) REPLACE_FMODL=0; AC_SUBST([REPLACE_FMODL]) REPLACE_FREXPF=0; AC_SUBST([REPLACE_FREXPF]) REPLACE_FREXP=0; AC_SUBST([REPLACE_FREXP]) REPLACE_FREXPL=0; AC_SUBST([REPLACE_FREXPL]) REPLACE_HUGE_VAL=0; AC_SUBST([REPLACE_HUGE_VAL]) REPLACE_HYPOT=0; AC_SUBST([REPLACE_HYPOT]) REPLACE_HYPOTF=0; AC_SUBST([REPLACE_HYPOTF]) REPLACE_HYPOTL=0; AC_SUBST([REPLACE_HYPOTL]) REPLACE_ILOGB=0; AC_SUBST([REPLACE_ILOGB]) REPLACE_ILOGBF=0; AC_SUBST([REPLACE_ILOGBF]) REPLACE_ISFINITE=0; AC_SUBST([REPLACE_ISFINITE]) REPLACE_ISINF=0; AC_SUBST([REPLACE_ISINF]) REPLACE_ISNAN=0; AC_SUBST([REPLACE_ISNAN]) REPLACE_LDEXPL=0; AC_SUBST([REPLACE_LDEXPL]) REPLACE_LOG=0; AC_SUBST([REPLACE_LOG]) REPLACE_LOGF=0; AC_SUBST([REPLACE_LOGF]) REPLACE_LOGL=0; AC_SUBST([REPLACE_LOGL]) REPLACE_LOG10=0; AC_SUBST([REPLACE_LOG10]) REPLACE_LOG10F=0; AC_SUBST([REPLACE_LOG10F]) REPLACE_LOG10L=0; AC_SUBST([REPLACE_LOG10L]) REPLACE_LOG1P=0; AC_SUBST([REPLACE_LOG1P]) REPLACE_LOG1PF=0; AC_SUBST([REPLACE_LOG1PF]) REPLACE_LOG1PL=0; AC_SUBST([REPLACE_LOG1PL]) REPLACE_LOG2=0; AC_SUBST([REPLACE_LOG2]) REPLACE_LOG2F=0; AC_SUBST([REPLACE_LOG2F]) REPLACE_LOG2L=0; AC_SUBST([REPLACE_LOG2L]) REPLACE_LOGB=0; AC_SUBST([REPLACE_LOGB]) REPLACE_LOGBF=0; AC_SUBST([REPLACE_LOGBF]) REPLACE_LOGBL=0; AC_SUBST([REPLACE_LOGBL]) REPLACE_MODF=0; AC_SUBST([REPLACE_MODF]) REPLACE_MODFF=0; AC_SUBST([REPLACE_MODFF]) REPLACE_MODFL=0; AC_SUBST([REPLACE_MODFL]) REPLACE_NAN=0; AC_SUBST([REPLACE_NAN]) REPLACE_REMAINDER=0; AC_SUBST([REPLACE_REMAINDER]) REPLACE_REMAINDERF=0; AC_SUBST([REPLACE_REMAINDERF]) REPLACE_REMAINDERL=0; AC_SUBST([REPLACE_REMAINDERL]) REPLACE_ROUND=0; AC_SUBST([REPLACE_ROUND]) REPLACE_ROUNDF=0; AC_SUBST([REPLACE_ROUNDF]) REPLACE_ROUNDL=0; AC_SUBST([REPLACE_ROUNDL]) REPLACE_SIGNBIT=0; AC_SUBST([REPLACE_SIGNBIT]) REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC]) REPLACE_SINF=0; AC_SUBST([REPLACE_SINF]) REPLACE_SINHF=0; AC_SUBST([REPLACE_SINHF]) REPLACE_SQRTF=0; AC_SUBST([REPLACE_SQRTF]) REPLACE_SQRTL=0; AC_SUBST([REPLACE_SQRTL]) REPLACE_TANF=0; AC_SUBST([REPLACE_TANF]) REPLACE_TANHF=0; AC_SUBST([REPLACE_TANHF]) REPLACE_TRUNC=0; AC_SUBST([REPLACE_TRUNC]) REPLACE_TRUNCF=0; AC_SUBST([REPLACE_TRUNCF]) REPLACE_TRUNCL=0; AC_SUBST([REPLACE_TRUNCL]) ]) # gl_LONG_DOUBLE_VS_DOUBLE # determines whether 'long double' and 'double' have the same representation. # Sets variable HAVE_SAME_LONG_DOUBLE_AS_DOUBLE to 0 or 1, and defines # HAVE_SAME_LONG_DOUBLE_AS_DOUBLE accordingly. # The currently known platforms where this is the case are: # Linux/HPPA, Minix 3.1.8, AIX 5, AIX 6 and 7 with xlc, MSVC 9. AC_DEFUN([gl_LONG_DOUBLE_VS_DOUBLE], [ AC_CACHE_CHECK([whether long double and double are the same], [gl_cv_long_double_equals_double], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[typedef int check[sizeof (long double) == sizeof (double) && LDBL_MANT_DIG == DBL_MANT_DIG && LDBL_MAX_EXP == DBL_MAX_EXP && LDBL_MIN_EXP == DBL_MIN_EXP ? 1 : -1]; ]])], [gl_cv_long_double_equals_double=yes], [gl_cv_long_double_equals_double=no]) ]) if test $gl_cv_long_double_equals_double = yes; then AC_DEFINE([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE], [1], [Define to 1 if 'long double' and 'double' have the same representation.]) HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=1 else HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=0 fi AC_SUBST([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]) ]) gcal-4.1/m4/strchrnul.m40000664000000000000000000000276613041163523011774 00000000000000# strchrnul.m4 serial 9 dnl Copyright (C) 2003, 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRCHRNUL], [ dnl Persuade glibc to declare strchrnul(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_CHECK_FUNCS([strchrnul]) if test $ac_cv_func_strchrnul = no; then HAVE_STRCHRNUL=0 else AC_CACHE_CHECK([whether strchrnul works], [gl_cv_func_strchrnul_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include /* for strchrnul */ ]], [[const char *buf = "a"; return strchrnul (buf, 'b') != buf + 1; ]])], [gl_cv_func_strchrnul_works=yes], [gl_cv_func_strchrnul_works=no], [dnl Cygwin 1.7.9 introduced strchrnul, but it was broken until 1.7.10 AC_EGREP_CPP([Lucky user], [ #if defined __CYGWIN__ #include #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9) Lucky user #endif #else Lucky user #endif ], [gl_cv_func_strchrnul_works="guessing yes"], [gl_cv_func_strchrnul_works="guessing no"]) ]) ]) case "$gl_cv_func_strchrnul_works" in *yes) ;; *) REPLACE_STRCHRNUL=1 ;; esac fi ]) # Prerequisites of lib/strchrnul.c. AC_DEFUN([gl_PREREQ_STRCHRNUL], [:]) gcal-4.1/m4/signalblocking.m40000664000000000000000000000164113041163523012725 00000000000000# signalblocking.m4 serial 14 dnl Copyright (C) 2001-2002, 2006-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Determine available signal blocking primitives. Three different APIs exist: # 1) POSIX: sigemptyset, sigaddset, sigprocmask # 2) SYSV: sighold, sigrelse # 3) BSD: sigblock, sigsetmask # For simplicity, here we check only for the POSIX signal blocking. AC_DEFUN([gl_SIGNALBLOCKING], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T]) if test $gl_cv_type_sigset_t = yes; then AC_CHECK_FUNC([sigprocmask], [gl_cv_func_sigprocmask=1]) fi if test -z "$gl_cv_func_sigprocmask"; then HAVE_POSIX_SIGNALBLOCKING=0 fi ]) # Prerequisites of lib/sigprocmask.c. AC_DEFUN([gl_PREREQ_SIGPROCMASK], [:]) gcal-4.1/m4/strcspn.m40000664000000000000000000000064213041163523011433 00000000000000# strcspn.m4 serial 4 dnl Copyright (C) 2002-2003, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRCSPN], [ AC_CHECK_FUNCS([strcspn]) ]) # Prerequisites of lib/strcspn.c. AC_DEFUN([gl_PREREQ_STRCSPN], [:]) gcal-4.1/m4/log.m40000664000000000000000000000541313041163523010521 00000000000000# log.m4 serial 4 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_LOG], [ m4_divert_text([DEFAULTS], [gl_log_required=plain]) AC_REQUIRE([gl_MATH_H_DEFAULTS]) dnl Determine LOG_LIBM. gl_COMMON_DOUBLE_MATHFUNC([log]) save_LIBS="$LIBS" LIBS="$LIBS $LOG_LIBM" gl_FUNC_LOG_WORKS LIBS="$save_LIBS" case "$gl_cv_func_log_works" in *yes) ;; *) REPLACE_LOG=1 ;; esac m4_ifdef([gl_FUNC_LOG_IEEE], [ if test $gl_log_required = ieee && test $REPLACE_LOG = 0; then AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether log works according to ISO C 99 with IEC 60559], [gl_cv_func_log_ieee], [ save_LIBS="$LIBS" LIBS="$LIBS $LOG_LIBM" AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include /* Compare two numbers with ==. This is a separate function because IRIX 6.5 "cc -O" miscompiles an 'x == x' test. */ static int numeric_equal (double x, double y) { return x == y; } static double dummy (double x) { return 0; } int main (int argc, char *argv[]) { double (*my_log) (double) = argc ? log : dummy; /* Test log(negative). This test fails on NetBSD 5.1, Solaris 11 2011-11. */ double y = my_log (-1.0); if (numeric_equal (y, y)) return 1; return 0; } ]])], [gl_cv_func_log_ieee=yes], [gl_cv_func_log_ieee=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_log_ieee="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_log_ieee="guessing no" ;; esac ]) LIBS="$save_LIBS" ]) case "$gl_cv_func_log_ieee" in *yes) ;; *) REPLACE_LOG=1 ;; esac fi ]) ]) dnl Test whether log() works. dnl On OSF/1 5.1, log(-0.0) is NaN. AC_DEFUN([gl_FUNC_LOG_WORKS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether log works], [gl_cv_func_log_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include volatile double x; double y; int main () { x = -0.0; y = log (x); if (!(y + y == y)) return 1; return 0; } ]])], [gl_cv_func_log_works=yes], [gl_cv_func_log_works=no], [case "$host_os" in osf*) gl_cv_func_log_works="guessing no";; *) gl_cv_func_log_works="guessing yes";; esac ]) ]) ]) gcal-4.1/m4/posix_spawn.m40000664000000000000000000003732013041163523012314 00000000000000# posix_spawn.m4 serial 11 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Tests whether the entire posix_spawn facility is available. AC_DEFUN([gl_POSIX_SPAWN], [ AC_REQUIRE([gl_POSIX_SPAWN_BODY]) ]) AC_DEFUN([gl_POSIX_SPAWN_BODY], [ AC_REQUIRE([gl_SPAWN_H_DEFAULTS]) AC_REQUIRE([gl_HAVE_POSIX_SPAWN]) dnl Assume that when the main function exists, all the others, dnl except posix_spawnattr_{get,set}sched*, are available as well. dnl AC_CHECK_FUNCS_ONCE([posix_spawnp]) dnl AC_CHECK_FUNCS_ONCE([posix_spawn_file_actions_init]) dnl AC_CHECK_FUNCS_ONCE([posix_spawn_file_actions_addclose]) dnl AC_CHECK_FUNCS_ONCE([posix_spawn_file_actions_adddup2]) dnl AC_CHECK_FUNCS_ONCE([posix_spawn_file_actions_addopen]) dnl AC_CHECK_FUNCS_ONCE([posix_spawn_file_actions_destroy]) dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_init]) dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_getflags]) dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_setflags]) dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_getpgroup]) dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_setpgroup]) dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_getsigdefault]) dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_setsigdefault]) dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_getsigmask]) dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_setsigmask]) dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_destroy]) if test $ac_cv_func_posix_spawn = yes; then gl_POSIX_SPAWN_WORKS case "$gl_cv_func_posix_spawn_works" in *yes) AC_DEFINE([HAVE_WORKING_POSIX_SPAWN], [1], [Define if you have the posix_spawn and posix_spawnp functions and they work.]) dnl Assume that these functions are available if POSIX_SPAWN_SETSCHEDULER dnl evaluates to nonzero. dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_getschedpolicy]) dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_setschedpolicy]) AC_CACHE_CHECK([whether posix_spawnattr_setschedpolicy is supported], [gl_cv_func_spawnattr_setschedpolicy], [AC_EGREP_CPP([POSIX scheduling supported], [ #include #if POSIX_SPAWN_SETSCHEDULER POSIX scheduling supported #endif ], [gl_cv_func_spawnattr_setschedpolicy=yes], [gl_cv_func_spawnattr_setschedpolicy=no]) ]) dnl Assume that these functions are available if POSIX_SPAWN_SETSCHEDPARAM dnl evaluates to nonzero. dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_getschedparam]) dnl AC_CHECK_FUNCS_ONCE([posix_spawnattr_setschedparam]) AC_CACHE_CHECK([whether posix_spawnattr_setschedparam is supported], [gl_cv_func_spawnattr_setschedparam], [AC_EGREP_CPP([POSIX scheduling supported], [ #include #if POSIX_SPAWN_SETSCHEDPARAM POSIX scheduling supported #endif ], [gl_cv_func_spawnattr_setschedparam=yes], [gl_cv_func_spawnattr_setschedparam=no]) ]) ;; *) REPLACE_POSIX_SPAWN=1 ;; esac fi ]) dnl Test whether posix_spawn actually works. dnl posix_spawn on AIX 5.3..6.1 has two bugs: dnl 1) When it fails to execute the program, the child process exits with dnl exit() rather than _exit(), which causes the stdio buffers to be dnl flushed. Reported by Rainer Tammer. dnl 2) The posix_spawn_file_actions_addopen function does not support file dnl names that contain a '*'. dnl posix_spawn on AIX 5.3..6.1 has also a third bug: It does not work dnl when POSIX threads are used. But we don't test against this bug here. AC_DEFUN([gl_POSIX_SPAWN_WORKS], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether posix_spawn works], [gl_cv_func_posix_spawn_works], [if test $cross_compiling = no; then AC_LINK_IFELSE([AC_LANG_SOURCE([[ #include #include #include #include #include #include #include #include #include #include #include extern char **environ; #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif #ifndef WTERMSIG # define WTERMSIG(x) ((x) & 0x7f) #endif #ifndef WIFEXITED # define WIFEXITED(x) (WTERMSIG (x) == 0) #endif #ifndef WEXITSTATUS # define WEXITSTATUS(x) (((x) >> 8) & 0xff) #endif #define CHILD_PROGRAM_FILENAME "/non/exist/ent" static int fd_safer (int fd) { if (0 <= fd && fd <= 2) { int f = fd_safer (dup (fd)); int e = errno; close (fd); errno = e; fd = f; } return fd; } int main () { char *argv[2] = { CHILD_PROGRAM_FILENAME, NULL }; int ofd[2]; sigset_t blocked_signals; sigset_t fatal_signal_set; posix_spawn_file_actions_t actions; bool actions_allocated; posix_spawnattr_t attrs; bool attrs_allocated; int err; pid_t child; int status; int exitstatus; setvbuf (stdout, NULL, _IOFBF, 0); puts ("This should be seen only once."); if (pipe (ofd) < 0 || (ofd[1] = fd_safer (ofd[1])) < 0) { perror ("cannot create pipe"); exit (1); } sigprocmask (SIG_SETMASK, NULL, &blocked_signals); sigemptyset (&fatal_signal_set); sigaddset (&fatal_signal_set, SIGINT); sigaddset (&fatal_signal_set, SIGTERM); sigaddset (&fatal_signal_set, SIGHUP); sigaddset (&fatal_signal_set, SIGPIPE); sigprocmask (SIG_BLOCK, &fatal_signal_set, NULL); actions_allocated = false; attrs_allocated = false; if ((err = posix_spawn_file_actions_init (&actions)) != 0 || (actions_allocated = true, (err = posix_spawn_file_actions_adddup2 (&actions, ofd[0], STDIN_FILENO)) != 0 || (err = posix_spawn_file_actions_addclose (&actions, ofd[0])) != 0 || (err = posix_spawn_file_actions_addclose (&actions, ofd[1])) != 0 || (err = posix_spawnattr_init (&attrs)) != 0 || (attrs_allocated = true, (err = posix_spawnattr_setsigmask (&attrs, &blocked_signals)) != 0 || (err = posix_spawnattr_setflags (&attrs, POSIX_SPAWN_SETSIGMASK)) != 0) || (err = posix_spawnp (&child, CHILD_PROGRAM_FILENAME, &actions, &attrs, argv, environ)) != 0)) { if (actions_allocated) posix_spawn_file_actions_destroy (&actions); if (attrs_allocated) posix_spawnattr_destroy (&attrs); sigprocmask (SIG_UNBLOCK, &fatal_signal_set, NULL); if (err == ENOENT) return 0; else { errno = err; perror ("subprocess failed"); exit (1); } } posix_spawn_file_actions_destroy (&actions); posix_spawnattr_destroy (&attrs); sigprocmask (SIG_UNBLOCK, &fatal_signal_set, NULL); close (ofd[0]); close (ofd[1]); status = 0; while (waitpid (child, &status, 0) != child) ; if (!WIFEXITED (status)) { fprintf (stderr, "subprocess terminated with unexpected wait status %d\n", status); exit (1); } exitstatus = WEXITSTATUS (status); if (exitstatus != 127) { fprintf (stderr, "subprocess terminated with unexpected exit status %d\n", exitstatus); exit (1); } return 0; } ]])], [if test -s conftest$ac_exeext \ && ./conftest$ac_exeext > conftest.out \ && echo 'This should be seen only once.' > conftest.ok \ && cmp conftest.out conftest.ok > /dev/null; then gl_cv_func_posix_spawn_works=yes else gl_cv_func_posix_spawn_works=no fi], [gl_cv_func_posix_spawn_works=no]) if test $gl_cv_func_posix_spawn_works = yes; then AC_RUN_IFELSE([AC_LANG_SOURCE([[ /* Test whether posix_spawn_file_actions_addopen supports filename arguments that contain special characters such as '*'. */ #include #include #include #include #include #include #include #include #include #include extern char **environ; #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif #ifndef WTERMSIG # define WTERMSIG(x) ((x) & 0x7f) #endif #ifndef WIFEXITED # define WIFEXITED(x) (WTERMSIG (x) == 0) #endif #ifndef WEXITSTATUS # define WEXITSTATUS(x) (((x) >> 8) & 0xff) #endif #define CHILD_PROGRAM_FILENAME "conftest" #define DATA_FILENAME "conftest%=*#?" static int parent_main (void) { FILE *fp; char *argv[3] = { CHILD_PROGRAM_FILENAME, "-child", NULL }; posix_spawn_file_actions_t actions; bool actions_allocated; int err; pid_t child; int status; int exitstatus; /* Create a data file with specific contents. */ fp = fopen (DATA_FILENAME, "wb"); if (fp == NULL) { perror ("cannot create data file"); return 1; } fwrite ("Halle Potta", 1, 11, fp); if (fflush (fp) || fclose (fp)) { perror ("cannot prepare data file"); return 2; } /* Avoid reading from our stdin, as it could block. */ freopen ("/dev/null", "rb", stdin); /* Test whether posix_spawn_file_actions_addopen with this file name actually works, but spawning a child that reads from this file. */ actions_allocated = false; if ((err = posix_spawn_file_actions_init (&actions)) != 0 || (actions_allocated = true, (err = posix_spawn_file_actions_addopen (&actions, STDIN_FILENO, DATA_FILENAME, O_RDONLY, 0600)) != 0 || (err = posix_spawn (&child, CHILD_PROGRAM_FILENAME, &actions, NULL, argv, environ)) != 0)) { if (actions_allocated) posix_spawn_file_actions_destroy (&actions); errno = err; perror ("subprocess failed"); return 3; } posix_spawn_file_actions_destroy (&actions); status = 0; while (waitpid (child, &status, 0) != child) ; if (!WIFEXITED (status)) { fprintf (stderr, "subprocess terminated with unexpected wait status %d\n", status); return 4; } exitstatus = WEXITSTATUS (status); if (exitstatus != 0) { fprintf (stderr, "subprocess terminated with unexpected exit status %d\n", exitstatus); return 5; } return 0; } static int child_main (void) { char buf[1024]; /* See if reading from STDIN_FILENO yields the expected contents. */ if (fread (buf, 1, sizeof (buf), stdin) == 11 && memcmp (buf, "Halle Potta", 11) == 0) return 0; else return 8; } static void cleanup_then_die (int sig) { /* Clean up data file. */ unlink (DATA_FILENAME); /* Re-raise the signal and die from it. */ signal (sig, SIG_DFL); raise (sig); } int main (int argc, char *argv[]) { int exitstatus; if (!(argc > 1 && strcmp (argv[1], "-child") == 0)) { /* This is the parent process. */ signal (SIGINT, cleanup_then_die); signal (SIGTERM, cleanup_then_die); #ifdef SIGHUP signal (SIGHUP, cleanup_then_die); #endif exitstatus = parent_main (); } else { /* This is the child process. */ exitstatus = child_main (); } unlink (DATA_FILENAME); return exitstatus; } ]])], [], [gl_cv_func_posix_spawn_works=no]) fi else case "$host_os" in aix*) gl_cv_func_posix_spawn_works="guessing no";; *) gl_cv_func_posix_spawn_works="guessing yes";; esac fi ]) ]) # Prerequisites of lib/spawni.c. AC_DEFUN([gl_PREREQ_POSIX_SPAWN_INTERNAL], [ AC_CHECK_HEADERS([paths.h]) AC_CHECK_FUNCS([confstr sched_setparam sched_setscheduler setegid seteuid vfork]) ]) AC_DEFUN([gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE], [ AC_REQUIRE([gl_SPAWN_H_DEFAULTS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles gl_POSIX_SPAWN if test $REPLACE_POSIX_SPAWN = 1; then REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE=1 else dnl On Solaris 11 2011-11, posix_spawn_file_actions_addclose succeeds even dnl if the fd argument is out of range. AC_CACHE_CHECK([whether posix_spawn_file_actions_addclose works], [gl_cv_func_posix_spawn_file_actions_addclose_works], [AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include int main () { posix_spawn_file_actions_t actions; if (posix_spawn_file_actions_init (&actions) != 0) return 1; if (posix_spawn_file_actions_addclose (&actions, 10000000) == 0) return 2; return 0; }]])], [gl_cv_func_posix_spawn_file_actions_addclose_works=yes], [gl_cv_func_posix_spawn_file_actions_addclose_works=no], [# Guess no on Solaris, yes otherwise. case "$host_os" in solaris*) gl_cv_func_posix_spawn_file_actions_addclose_works="guessing no";; *) gl_cv_func_posix_spawn_file_actions_addclose_works="guessing yes";; esac ]) ]) case "$gl_cv_func_posix_spawn_file_actions_addclose_works" in *yes) ;; *) REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE=1 ;; esac fi ]) AC_DEFUN([gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2], [ AC_REQUIRE([gl_SPAWN_H_DEFAULTS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles gl_POSIX_SPAWN if test $REPLACE_POSIX_SPAWN = 1; then REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2=1 else dnl On Solaris 11 2011-11, posix_spawn_file_actions_adddup2 succeeds even dnl if the fd argument is out of range. AC_CACHE_CHECK([whether posix_spawn_file_actions_adddup2 works], [gl_cv_func_posix_spawn_file_actions_adddup2_works], [AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include int main () { posix_spawn_file_actions_t actions; if (posix_spawn_file_actions_init (&actions) != 0) return 1; if (posix_spawn_file_actions_adddup2 (&actions, 10000000, 2) == 0) return 2; return 0; }]])], [gl_cv_func_posix_spawn_file_actions_adddup2_works=yes], [gl_cv_func_posix_spawn_file_actions_adddup2_works=no], [# Guess no on Solaris, yes otherwise. case "$host_os" in solaris*) gl_cv_func_posix_spawn_file_actions_adddup2_works="guessing no";; *) gl_cv_func_posix_spawn_file_actions_adddup2_works="guessing yes";; esac ]) ]) case "$gl_cv_func_posix_spawn_file_actions_adddup2_works" in *yes) ;; *) REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2=1 ;; esac fi ]) AC_DEFUN([gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN], [ AC_REQUIRE([gl_SPAWN_H_DEFAULTS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles gl_POSIX_SPAWN if test $REPLACE_POSIX_SPAWN = 1; then REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN=1 else dnl On Solaris 11 2011-11, posix_spawn_file_actions_addopen succeeds even dnl if the fd argument is out of range. AC_CACHE_CHECK([whether posix_spawn_file_actions_addopen works], [gl_cv_func_posix_spawn_file_actions_addopen_works], [AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include int main () { posix_spawn_file_actions_t actions; if (posix_spawn_file_actions_init (&actions) != 0) return 1; if (posix_spawn_file_actions_addopen (&actions, 10000000, "foo", 0, O_RDONLY) == 0) return 2; return 0; }]])], [gl_cv_func_posix_spawn_file_actions_addopen_works=yes], [gl_cv_func_posix_spawn_file_actions_addopen_works=no], [# Guess no on Solaris, yes otherwise. case "$host_os" in solaris*) gl_cv_func_posix_spawn_file_actions_addopen_works="guessing no";; *) gl_cv_func_posix_spawn_file_actions_addopen_works="guessing yes";; esac ]) ]) case "$gl_cv_func_posix_spawn_file_actions_addopen_works" in *yes) ;; *) REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN=1 ;; esac fi ]) gcal-4.1/m4/asin.m40000664000000000000000000000055613041163523010675 00000000000000# asin.m4 serial 1 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ASIN], [ dnl Determine ASIN_LIBM. gl_COMMON_DOUBLE_MATHFUNC([asin]) ]) gcal-4.1/m4/raise.m40000664000000000000000000000171013041163523011037 00000000000000# raise.m4 serial 3 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_RAISE], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_MSVC_INVAL]) AC_CHECK_FUNCS([raise]) if test $ac_cv_func_raise = no; then HAVE_RAISE=0 else if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_RAISE=1 fi m4_ifdef([gl_SIGNALBLOCKING], [ gl_SIGNALBLOCKING if test $HAVE_POSIX_SIGNALBLOCKING = 0; then m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then REPLACE_RAISE=1 fi ], [:]) fi ]) fi ]) # Prerequisites of lib/raise.c. AC_DEFUN([gl_PREREQ_RAISE], [:]) gcal-4.1/m4/iconv.m40000664000000000000000000002231013041163523011051 00000000000000# iconv.m4 serial 20 dnl Copyright (C) 2000-2002, 2007-2014, 2016 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_func_iconv=yes]) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_lib_iconv=yes] [am_cv_func_iconv=yes]) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, dnl Solaris 10. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi am_cv_func_iconv_works=no for ac_iconv_const in '' 'const'; do AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[ #include #include #ifndef ICONV_CONST # define ICONV_CONST $ac_iconv_const #endif ]], [[int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\263"; char buf[10]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; ICONV_CONST char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) result |= 16; return result; ]])], [am_cv_func_iconv_works=yes], , [case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac]) test "$am_cv_func_iconv_works" = no || break done LIBS="$am_save_LIBS" ]) case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then AC_DEFINE([HAVE_ICONV], [1], [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST([LIBICONV]) AC_SUBST([LTLIBICONV]) ]) dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to dnl avoid warnings like dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". dnl This is tricky because of the way 'aclocal' is implemented: dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. dnl Otherwise aclocal's initial scan pass would miss the macro definition. dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. dnl Otherwise aclocal would emit many "Use of uninitialized value $1" dnl warnings. m4_define([gl_iconv_AC_DEFUN], m4_version_prereq([2.64], [[AC_DEFUN_ONCE( [$1], [$2])]], [m4_ifdef([gl_00GNULIB], [[AC_DEFUN_ONCE( [$1], [$2])]], [[AC_DEFUN( [$1], [$2])]])])) gl_iconv_AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL([am_cv_proto_iconv], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ]], [[]])], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"]) am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([ $am_cv_proto_iconv]) else dnl When compiling GNU libiconv on a system that does not have iconv yet, dnl pick the POSIX compliant declaration without 'const'. am_cv_proto_iconv_arg1="" fi AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], [Define as const if the declaration of iconv() needs const.]) dnl Also substitute ICONV_CONST in the gnulib generated . m4_ifdef([gl_ICONV_H_DEFAULTS], [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) if test -n "$am_cv_proto_iconv_arg1"; then ICONV_CONST="const" fi ]) ]) gcal-4.1/m4/unlink.m40000664000000000000000000001107613041163523011242 00000000000000# unlink.m4 serial 11 dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_UNLINK], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_HEADERS_ONCE([unistd.h]) dnl Detect FreeBSD 7.2, AIX 7.1, Solaris 9 bug. AC_CACHE_CHECK([whether unlink honors trailing slashes], [gl_cv_func_unlink_honors_slashes], [touch conftest.file # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.file conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include #endif #include ]], [[int result = 0; if (!unlink ("conftest.file/")) result |= 1; else if (errno != ENOTDIR) result |= 2; #if HAVE_LSTAT if (!unlink ("conftest.lnk/")) result |= 4; else if (errno != ENOTDIR) result |= 8; #endif return result; ]])], [gl_cv_func_unlink_honors_slashes=yes], [gl_cv_func_unlink_honors_slashes=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_unlink_honors_slashes="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_unlink_honors_slashes="guessing no" ;; esac ]) rm -f conftest.file conftest.lnk]) case "$gl_cv_func_unlink_honors_slashes" in *no) REPLACE_UNLINK=1 ;; esac dnl Detect Mac OS X 10.5.6 bug: On read-write HFS mounts, unlink("..") or dnl unlink("../..") succeeds without doing anything. AC_CACHE_CHECK([whether unlink of a parent directory fails as it should], [gl_cv_func_unlink_parent_fails], [case "$host_os" in darwin*) dnl Try to unlink a subdirectory of /tmp, because /tmp is usually on a dnl HFS mount on Mac OS X. Use a subdirectory, owned by the current dnl user, because otherwise unlink() may fail due to permissions dnl reasons, and because when running as root we don't want to risk dnl destroying the entire /tmp. if { # Use the mktemp program if available. If not available, hide the error # message. tmp=`(umask 077 && mktemp -d /tmp/gtXXXXXX) 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { # Use a simple mkdir command. It is guaranteed to fail if the directory # already exists. $RANDOM is bash specific and expands to empty in shells # other than bash, ksh and zsh. Its use does not increase security; # rather, it minimizes the probability of failure in a very cluttered /tmp # directory. tmp=/tmp/gt$$-$RANDOM (umask 077 && mkdir "$tmp") }; then mkdir "$tmp/subdir" GL_SUBDIR_FOR_UNLINK="$tmp/subdir" export GL_SUBDIR_FOR_UNLINK AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include # include #endif int main () { int result = 0; if (chdir (getenv ("GL_SUBDIR_FOR_UNLINK")) != 0) result |= 1; else if (unlink ("..") == 0) result |= 2; return result; } ]])], [gl_cv_func_unlink_parent_fails=yes], [gl_cv_func_unlink_parent_fails=no], [# If we don't know, assume the worst. gl_cv_func_unlink_parent_fails="guessing no" ]) unset GL_SUBDIR_FOR_UNLINK rm -rf "$tmp" else gl_cv_func_unlink_parent_fails="guessing no" fi ;; *) gl_cv_func_unlink_parent_fails="guessing yes" ;; esac ]) case "$gl_cv_func_unlink_parent_fails" in *no) REPLACE_UNLINK=1 AC_DEFINE([UNLINK_PARENT_BUG], [1], [Define to 1 if unlink() on a parent directory may succeed]) ;; esac ]) gcal-4.1/m4/time_h.m40000664000000000000000000001253713041163523011212 00000000000000# Configure a more-standard replacement for . # Copyright (C) 2000-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc. # serial 9 # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert and Jim Meyering. AC_DEFUN([gl_HEADER_TIME_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_HEADER_TIME_H_BODY]) ]) AC_DEFUN([gl_HEADER_TIME_H_BODY], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) gl_NEXT_HEADERS([time.h]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) ]) dnl Check whether 'struct timespec' is declared dnl in time.h, sys/time.h, pthread.h, or unistd.h. AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], [ AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CACHE_CHECK([for struct timespec in ], [gl_cv_sys_struct_timespec_in_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_time_h=yes], [gl_cv_sys_struct_timespec_in_time_h=no])]) TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 UNISTD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in ], [gl_cv_sys_struct_timespec_in_sys_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_sys_time_h=yes], [gl_cv_sys_struct_timespec_in_sys_time_h=no])]) if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in ], [gl_cv_sys_struct_timespec_in_pthread_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_pthread_h=yes], [gl_cv_sys_struct_timespec_in_pthread_h=no])]) if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in ], [gl_cv_sys_struct_timespec_in_unistd_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_unistd_h=yes], [gl_cv_sys_struct_timespec_in_unistd_h=no])]) if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then UNISTD_H_DEFINES_STRUCT_TIMESPEC=1 fi fi fi fi AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([UNISTD_H_DEFINES_STRUCT_TIMESPEC]) ]) AC_DEFUN([gl_TIME_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS], [ GNULIB_MKTIME=0; AC_SUBST([GNULIB_MKTIME]) GNULIB_NANOSLEEP=0; AC_SUBST([GNULIB_NANOSLEEP]) GNULIB_STRPTIME=0; AC_SUBST([GNULIB_STRPTIME]) GNULIB_TIMEGM=0; AC_SUBST([GNULIB_TIMEGM]) GNULIB_TIME_R=0; AC_SUBST([GNULIB_TIME_R]) GNULIB_TIME_RZ=0; AC_SUBST([GNULIB_TIME_RZ]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R]) HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP]) HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME]) HAVE_TIMEGM=1; AC_SUBST([HAVE_TIMEGM]) dnl If another module says to replace or to not replace, do that. dnl Otherwise, replace only if someone compiles with -DGNULIB_PORTCHECK; dnl this lets maintainers check for portability. REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; AC_SUBST([REPLACE_LOCALTIME_R]) REPLACE_MKTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_MKTIME]) REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP]) REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM]) dnl Hack so that the time module doesn't depend on the sys_time module. dnl First, default GNULIB_GETTIMEOFDAY to 0 if sys_time is absent. : ${GNULIB_GETTIMEOFDAY=0}; AC_SUBST([GNULIB_GETTIMEOFDAY]) dnl Second, it's OK to not use GNULIB_PORTCHECK for REPLACE_GMTIME dnl and REPLACE_LOCALTIME, as portability to Solaris 2.6 and earlier dnl is no longer a big deal. REPLACE_GMTIME=0; AC_SUBST([REPLACE_GMTIME]) REPLACE_LOCALTIME=0; AC_SUBST([REPLACE_LOCALTIME]) ]) gcal-4.1/m4/strerror.m40000664000000000000000000000623613041163523011626 00000000000000# strerror.m4 serial 17 dnl Copyright (C) 2002, 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRERROR], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) ]) if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then AC_CACHE_CHECK([for working strerror function], [gl_cv_func_working_strerror], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[if (!*strerror (-2)) return 1;]])], [gl_cv_func_working_strerror=yes], [gl_cv_func_working_strerror=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_working_strerror="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_working_strerror="guessing no" ;; esac ]) ]) case "$gl_cv_func_working_strerror" in *yes) ;; *) dnl The system's strerror() fails to return a string for out-of-range dnl integers. Replace it. REPLACE_STRERROR=1 ;; esac m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's dnl buffer, we must replace strerror. case "$gl_cv_func_strerror_r_works" in *no) REPLACE_STRERROR=1 ;; esac ]) else dnl The system's strerror() cannot know about the new errno values we add dnl to , or any fix for strerror(0). Replace it. REPLACE_STRERROR=1 fi ]) dnl Detect if strerror(0) passes (that is, does not set errno, and does not dnl return a string that matches strerror(-1)). AC_DEFUN([gl_FUNC_STRERROR_0], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles REPLACE_STRERROR_0=0 AC_CACHE_CHECK([whether strerror(0) succeeds], [gl_cv_func_strerror_0_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include ]], [[int result = 0; char *str; errno = 0; str = strerror (0); if (!*str) result |= 1; if (errno) result |= 2; if (strstr (str, "nknown") || strstr (str, "ndefined")) result |= 4; return result;]])], [gl_cv_func_strerror_0_works=yes], [gl_cv_func_strerror_0_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_strerror_0_works="guessing no" ;; esac ]) ]) case "$gl_cv_func_strerror_0_works" in *yes) ;; *) REPLACE_STRERROR_0=1 AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0) does not return a message implying success.]) ;; esac ]) gcal-4.1/m4/gnulib-common.m40000664000000000000000000004261213041163523012510 00000000000000# gnulib-common.m4 serial 36 dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_COMMON # is expanded unconditionally through gnulib-tool magic. AC_DEFUN([gl_COMMON], [ dnl Use AC_REQUIRE here, so that the code is expanded once only. AC_REQUIRE([gl_00GNULIB]) AC_REQUIRE([gl_COMMON_BODY]) ]) AC_DEFUN([gl_COMMON_BODY], [ AH_VERBATIM([_Noreturn], [/* The _Noreturn keyword of C11. */ #if ! (defined _Noreturn \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif ]) AH_VERBATIM([isoc99_inline], [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. __APPLE__ && __MACH__ test for Mac OS X. __APPLE_CC__ tests for the Apple compiler and its version. __STDC_VERSION__ tests for the C99 mode. */ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif]) AH_VERBATIM([unused_parameter], [/* Define as a marker that can be attached to declarations that might not be used. This helps to reduce warnings, such as from GCC -Wunused-parameter. */ #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_UNUSED __attribute__ ((__unused__)) #else # define _GL_UNUSED #endif /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name is a misnomer outside of parameter lists. */ #define _UNUSED_PARAMETER_ _GL_UNUSED /* gcc supports the "unused" attribute on possibly unused labels, and g++ has since version 4.5. Note to support C++ as well as C, _GL_UNUSED_LABEL should be used with a trailing ; */ #if !defined __cplusplus || __GNUC__ > 4 \ || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) # define _GL_UNUSED_LABEL _GL_UNUSED #else # define _GL_UNUSED_LABEL #endif /* The __pure__ attribute was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The __const__ attribute was added in gcc 2.95. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) #else # define _GL_ATTRIBUTE_CONST /* empty */ #endif ]) dnl Preparation for running test programs: dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not dnl to /dev/tty, so they can be redirected to log files. Such diagnostics dnl arise e.g., in the macros gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N. LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ ]) # gl_MODULE_INDICATOR_CONDITION # expands to a C preprocessor expression that evaluates to 1 or 0, depending # whether a gnulib module that has been requested shall be considered present # or not. m4_define([gl_MODULE_INDICATOR_CONDITION], [1]) # gl_MODULE_INDICATOR_SET_VARIABLE([modulename]) # sets the shell variable that indicates the presence of the given module to # a C preprocessor expression that will evaluate to 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], [ gl_MODULE_INDICATOR_SET_VARIABLE_AUX( [GNULIB_[]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION]) ]) # gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable]) # modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION. # The shell variable's value is a C preprocessor expression that evaluates # to 0 or 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX], [ m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1], [ dnl Simplify the expression VALUE || 1 to 1. $1=1 ], [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1], [gl_MODULE_INDICATOR_CONDITION])]) ]) # gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition]) # modifies the shell variable to include the given condition. The shell # variable's value is a C preprocessor expression that evaluates to 0 or 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR], [ dnl Simplify the expression 1 || CONDITION to 1. if test "$[]$1" != 1; then dnl Simplify the expression 0 || CONDITION to CONDITION. if test "$[]$1" = 0; then $1=$2 else $1="($[]$1 || $2)" fi fi ]) # gl_MODULE_INDICATOR([modulename]) # defines a C macro indicating the presence of the given module # in a location where it can be used. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 0 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR], [ AC_DEFINE_UNQUOTED([GNULIB_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [gl_MODULE_INDICATOR_CONDITION], [Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module $1 shall be considered present.]) ]) # gl_MODULE_INDICATOR_FOR_TESTS([modulename]) # defines a C macro indicating the presence of the given module # in lib or tests. This is useful to determine whether the module # should be tested. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [ AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1], [Define to 1 when the gnulib module $1 should be tested.]) ]) # gl_ASSERT_NO_GNULIB_POSIXCHECK # asserts that there will never be a need to #define GNULIB_POSIXCHECK. # and thereby enables an optimization of configure and config.h. # Used by Emacs. AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK], [ dnl Override gl_WARN_ON_USE_PREPARE. dnl But hide this definition from 'aclocal'. AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], []) ]) # gl_ASSERT_NO_GNULIB_TESTS # asserts that there will be no gnulib tests in the scope of the configure.ac # and thereby enables an optimization of config.h. # Used by Emacs. AC_DEFUN([gl_ASSERT_NO_GNULIB_TESTS], [ dnl Override gl_MODULE_INDICATOR_FOR_TESTS. AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], []) ]) # Test whether exists. # Set HAVE_FEATURES_H. AC_DEFUN([gl_FEATURES_H], [ AC_CHECK_HEADERS_ONCE([features.h]) if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else HAVE_FEATURES_H=0 fi AC_SUBST([HAVE_FEATURES_H]) ]) # m4_foreach_w # is a backport of autoconf-2.59c's m4_foreach_w. # Remove this macro when we can assume autoconf >= 2.60. m4_ifndef([m4_foreach_w], [m4_define([m4_foreach_w], [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])]) # AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH]) # ---------------------------------------------------- # Backport of autoconf-2.63b's macro. # Remove this macro when we can assume autoconf >= 2.64. m4_ifndef([AS_VAR_IF], [m4_define([AS_VAR_IF], [AS_IF([test x"AS_VAR_GET([$1])" = x""$2], [$3], [$4])])]) # gl_PROG_CC_C99 # Modifies the value of the shell variable CC in an attempt to make $CC # understand ISO C99 source code. # This is like AC_PROG_CC_C99, except that # - AC_PROG_CC_C99 did not exist in Autoconf versions < 2.60, # - AC_PROG_CC_C99 does not mix well with AC_PROG_CC_STDC # , # but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99 # . # Remaining problems: # - When AC_PROG_CC_STDC is invoked twice, it adds the C99 enabling options # to CC twice # . # - AC_PROG_CC_STDC is likely to change now that C11 is an ISO standard. AC_DEFUN([gl_PROG_CC_C99], [ dnl Change that version number to the minimum Autoconf version that supports dnl mixing AC_PROG_CC_C99 calls with AC_PROG_CC_STDC calls. m4_version_prereq([9.0], [AC_REQUIRE([AC_PROG_CC_C99])], [AC_REQUIRE([AC_PROG_CC_STDC])]) ]) # gl_PROG_AR_RANLIB # Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler. # The user can set the variables AR, ARFLAGS, RANLIB if he wants to override # the values. AC_DEFUN([gl_PROG_AR_RANLIB], [ dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler dnl as "cc", and GCC as "gcc". They have different object file formats and dnl library formats. In particular, the GNU binutils programs ar and ranlib dnl produce libraries that work only with gcc, not with cc. AC_REQUIRE([AC_PROG_CC]) AC_BEFORE([$0], [AM_PROG_AR]) AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler], [ AC_EGREP_CPP([Amsterdam], [ #ifdef __ACK__ Amsterdam #endif ], [gl_cv_c_amsterdam_compiler=yes], [gl_cv_c_amsterdam_compiler=no]) ]) dnl Don't compete with AM_PROG_AR's decision about AR/ARFLAGS if we are not dnl building with __ACK__. if test $gl_cv_c_amsterdam_compiler = yes; then if test -z "$AR"; then AR='cc -c.a' fi if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else dnl AM_PROG_AR was added in automake v1.11.2. AM_PROG_AR does not AC_SUBST dnl ARFLAGS variable (it is filed into Makefile.in directly by automake dnl script on-demand, if not specified by ./configure of course). dnl Don't AC_REQUIRE the AM_PROG_AR otherwise the code for __ACK__ above dnl will be ignored. Also, pay attention to call AM_PROG_AR in else block dnl because AM_PROG_AR is written so it could re-set AR variable even for dnl __ACK__. It may seem like its easier to avoid calling the macro here, dnl but we need to AC_SUBST both AR/ARFLAGS (thus those must have some good dnl default value and automake should usually know them). m4_ifdef([AM_PROG_AR], [AM_PROG_AR], [:]) fi dnl In case the code above has not helped with setting AR/ARFLAGS, use dnl Automake-documented default values for AR and ARFLAGS, but prefer dnl ${host}-ar over ar (useful for cross-compiling). AC_CHECK_TOOL([AR], [ar], [ar]) if test -z "$ARFLAGS"; then ARFLAGS='cr' fi AC_SUBST([AR]) AC_SUBST([ARFLAGS]) if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' else dnl Use the ranlib program if it is available. AC_PROG_RANLIB fi fi AC_SUBST([RANLIB]) ]) # AC_PROG_MKDIR_P # is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix # for interoperability with automake-1.9.6 from autoconf-2.62. # Remove this macro when we can assume autoconf >= 2.62 or # autoconf >= 2.60 && automake >= 1.10. # AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness. m4_ifndef([AC_AUTOCONF_VERSION],[ m4_ifdef([AC_PROG_MKDIR_P], [ dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed. m4_define([AC_PROG_MKDIR_P], m4_defn([AC_PROG_MKDIR_P])[ AC_SUBST([MKDIR_P])])], [ dnl For autoconf < 2.60: Backport of AC_PROG_MKDIR_P. AC_DEFUN_ONCE([AC_PROG_MKDIR_P], [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake MKDIR_P='$(mkdir_p)' AC_SUBST([MKDIR_P])])]) ]) # AC_C_RESTRICT # This definition is copied from post-2.69 Autoconf and overrides the # AC_C_RESTRICT macro from autoconf 2.60..2.69. It can be removed # once autoconf >= 2.70 can be assumed. It's painful to check version # numbers, and in practice this macro is more up-to-date than Autoconf # is, so override Autoconf unconditionally. AC_DEFUN([AC_C_RESTRICT], [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict], [ac_cv_c_restrict=no # The order here caters to the fact that C++ does not require restrict. for ac_kw in __restrict __restrict__ _Restrict restrict; do AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[typedef int *int_ptr; int foo (int_ptr $ac_kw ip) { return ip[0]; } int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ int bar (int ip[$ac_kw]) { return ip[0]; } ]], [[int s[1]; int *$ac_kw t = s; t[0] = 0; return foo (t) + bar (t); ]])], [ac_cv_c_restrict=$ac_kw]) test "$ac_cv_c_restrict" != no && break done ]) AH_VERBATIM([restrict], [/* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported directly. */ #undef restrict /* Work around a bug in Sun C++: it does not support _Restrict or __restrict__, even though the corresponding Sun C compiler ends up with "#define restrict _Restrict" or "#define restrict __restrict__" in the previous line. Perhaps some future version of Sun C++ will work with restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ #if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict # define __restrict__ #endif]) case $ac_cv_c_restrict in restrict) ;; no) AC_DEFINE([restrict], []) ;; *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; esac ])# AC_C_RESTRICT # gl_BIGENDIAN # is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd. # Note that AC_REQUIRE([AC_C_BIGENDIAN]) does not work reliably because some # macros invoke AC_C_BIGENDIAN with arguments. AC_DEFUN([gl_BIGENDIAN], [ AC_C_BIGENDIAN ]) # gl_CACHE_VAL_SILENT(cache-id, command-to-set-it) # is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not # output a spurious "(cached)" mark in the midst of other configure output. # This macro should be used instead of AC_CACHE_VAL when it is not surrounded # by an AC_MSG_CHECKING/AC_MSG_RESULT pair. AC_DEFUN([gl_CACHE_VAL_SILENT], [ saved_as_echo_n="$as_echo_n" as_echo_n=':' AC_CACHE_VAL([$1], [$2]) as_echo_n="$saved_as_echo_n" ]) # AS_VAR_COPY was added in autoconf 2.63b m4_define_default([AS_VAR_COPY], [AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])]) # AC_PROG_SED was added in autoconf 2.59b m4_ifndef([AC_PROG_SED], [AC_DEFUN([AC_PROG_SED], [AC_CACHE_CHECK([for a sed that does not truncate output], ac_cv_path_SED, [dnl ac_script should not contain more than 99 commands (for HP-UX sed), dnl but more than about 7000 bytes, to catch a limit in Solaris 8 /usr/ucb/sed. ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed AS_UNSET([ac_script]) if test -z "$SED"; then ac_path_SED_found=false _AS_PATH_WALK([], [ for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" AS_EXECUTABLE_P(["$ac_path_SED"]) || continue case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED=$ac_path_SED ac_path_SED_found=:;; *) ac_count=0 _AS_ECHO_N([0123456789]) >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >> conftest.nl "$ac_path_SED" -f conftest.sed conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_SED_max-0}; then # Best so far, but keep looking for better ac_cv_path_SED=$ac_path_SED ac_path_SED_max=$ac_count fi test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done]) if test -z "$ac_cv_path_SED"; then AC_ERROR([no acceptable sed could be found in \$PATH]) fi else ac_cv_path_SED=$SED fi SED="$ac_cv_path_SED" AC_SUBST([SED])dnl rm -f conftest.sed ])])]) gcal-4.1/m4/builtin-expect.m40000664000000000000000000000302313041163523012667 00000000000000dnl Check for __builtin_expect. dnl Copyright 2016-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. AC_DEFUN([gl___BUILTIN_EXPECT], [ AC_CACHE_CHECK([for __builtin_expect], [gl_cv___builtin_expect], [AC_LINK_IFELSE( [AC_LANG_SOURCE([[ int main (int argc, char **argv) { argc = __builtin_expect (argc, 100); return argv[argc != 100][0]; }]])], [gl_cv___builtin_expect=yes], [AC_LINK_IFELSE( [AC_LANG_SOURCE([[ #include int main (int argc, char **argv) { argc = __builtin_expect (argc, 100); return argv[argc != 100][0]; }]])], [gl_cv___builtin_expect="in "], [gl_cv___builtin_expect=no])])]) if test "$gl_cv___builtin_expect" = yes; then AC_DEFINE([HAVE___BUILTIN_EXPECT], [1]) elif test "$gl_cv___builtin_expect" = "in "; then AC_DEFINE([HAVE___BUILTIN_EXPECT], [2]) fi AH_VERBATIM([HAVE___BUILTIN_EXPECT], [/* Define to 1 if the compiler supports __builtin_expect, and to 2 if does. */ #undef HAVE___BUILTIN_EXPECT #ifndef HAVE___BUILTIN_EXPECT # define __builtin_expect(e, c) (e) #elif HAVE___BUILTIN_EXPECT == 2 # include #endif ]) ]) gcal-4.1/m4/signal_h.m40000664000000000000000000000604213041163523011523 00000000000000# signal_h.m4 serial 18 dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_SIGNAL_H], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T]) gl_NEXT_HEADERS([signal.h]) # AIX declares sig_atomic_t to already include volatile, and C89 compilers # then choke on 'volatile sig_atomic_t'. C99 requires that it compile. AC_CHECK_TYPE([volatile sig_atomic_t], [], [HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0], [[ #include ]]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) AC_REQUIRE([AC_TYPE_UID_T]) dnl Persuade glibc to define sighandler_t. AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_CHECK_TYPE([sighandler_t], [], [HAVE_SIGHANDLER_T=0], [[ #include ]]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [pthread_sigmask sigaction sigaddset sigdelset sigemptyset sigfillset sigismember sigpending sigprocmask]) ]) AC_DEFUN([gl_CHECK_TYPE_SIGSET_T], [ AC_CHECK_TYPES([sigset_t], [gl_cv_type_sigset_t=yes], [gl_cv_type_sigset_t=no], [[ #include /* Mingw defines sigset_t not in , but in . */ #include ]]) if test $gl_cv_type_sigset_t != yes; then HAVE_SIGSET_T=0 fi ]) AC_DEFUN([gl_SIGNAL_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SIGNAL_H_DEFAULTS], [ GNULIB_PTHREAD_SIGMASK=0; AC_SUBST([GNULIB_PTHREAD_SIGMASK]) GNULIB_RAISE=0; AC_SUBST([GNULIB_RAISE]) GNULIB_SIGNAL_H_SIGPIPE=0; AC_SUBST([GNULIB_SIGNAL_H_SIGPIPE]) GNULIB_SIGPROCMASK=0; AC_SUBST([GNULIB_SIGPROCMASK]) GNULIB_SIGACTION=0; AC_SUBST([GNULIB_SIGACTION]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_POSIX_SIGNALBLOCKING=1; AC_SUBST([HAVE_POSIX_SIGNALBLOCKING]) HAVE_PTHREAD_SIGMASK=1; AC_SUBST([HAVE_PTHREAD_SIGMASK]) HAVE_RAISE=1; AC_SUBST([HAVE_RAISE]) HAVE_SIGSET_T=1; AC_SUBST([HAVE_SIGSET_T]) HAVE_SIGINFO_T=1; AC_SUBST([HAVE_SIGINFO_T]) HAVE_SIGACTION=1; AC_SUBST([HAVE_SIGACTION]) HAVE_STRUCT_SIGACTION_SA_SIGACTION=1; AC_SUBST([HAVE_STRUCT_SIGACTION_SA_SIGACTION]) HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1; AC_SUBST([HAVE_TYPE_VOLATILE_SIG_ATOMIC_T]) HAVE_SIGHANDLER_T=1; AC_SUBST([HAVE_SIGHANDLER_T]) REPLACE_PTHREAD_SIGMASK=0; AC_SUBST([REPLACE_PTHREAD_SIGMASK]) REPLACE_RAISE=0; AC_SUBST([REPLACE_RAISE]) ]) gcal-4.1/m4/gnulib-comp.m40000664000000000000000000010050213041163531012146 00000000000000# DO NOT EDIT! GENERATED AUTOMATICALLY! # Copyright (C) 2002-2017 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the compiled summary of the specification in # gnulib-cache.m4. It lists the computed macro invocations that need # to be invoked from configure.ac. # In projects that use version control, this file can be treated like # other built files. # This macro should be invoked from ./configure.ac, in the section # "Checks for programs", right after AC_PROG_CC, and certainly before # any checks for libraries, header files, types and library functions. AC_DEFUN([gl_EARLY], [ m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace m4_pattern_allow([^gl_ES$])dnl a valid locale name m4_pattern_allow([^gl_LIBOBJS$])dnl a variable m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable # Pre-early section. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_PROG_AR_RANLIB]) AC_REQUIRE([AM_PROG_CC_C_O]) # Code from module absolute-header: # Code from module acos: # Code from module alloca: # Code from module alloca-opt: # Code from module asin: # Code from module assert: # Code from module atan: # Code from module atan2: # Code from module binary-io: # Code from module btowc: # Code from module builtin-expect: # Code from module ceil: # Code from module cloexec: # Code from module close: # Code from module cond: # Code from module configmake: # Code from module cos: # Code from module dirname-lgpl: # Code from module dosname: # Code from module double-slash-root: # Code from module dup2: # Code from module environ: # Code from module errno: # Code from module error: # Code from module exitfail: # Code from module extensions: # Code from module extern-inline: # Code from module fatal-signal: # Code from module fclose: # Code from module fcntl: # Code from module fcntl-h: # Code from module fd-hook: # Code from module fd-safer-flag: # Code from module fflush: AC_REQUIRE([AC_FUNC_FSEEKO]) # Code from module filename: # Code from module float: # Code from module floor: # Code from module fopen: # Code from module fpurge: # Code from module freading: # Code from module free: # Code from module fseek: # Code from module fseeko: AC_REQUIRE([AC_FUNC_FSEEKO]) # Code from module fstat: # Code from module ftell: # Code from module ftello: AC_REQUIRE([AC_FUNC_FSEEKO]) # Code from module getdtablesize: # Code from module getprogname: # Code from module gettext-h: # Code from module gettimeofday: # Code from module git-version-gen: # Code from module gnumakefile: # Code from module hard-locale: # Code from module havelib: # Code from module iconv: # Code from module iconv-h: # Code from module include_next: # Code from module intprops: # Code from module ioctl: # Code from module langinfo: # Code from module largefile: AC_REQUIRE([AC_SYS_LARGEFILE]) # Code from module limits-h: # Code from module link: # Code from module list: # Code from module localcharset: # Code from module locale: # Code from module localeconv: # Code from module lock: # Code from module log: # Code from module log10: # Code from module lseek: # Code from module lstat: # Code from module maintainer-makefile: # Code from module malloc: # Code from module malloc-gnu: # Code from module malloc-posix: # Code from module math: # Code from module mbrtowc: # Code from module mbsinit: # Code from module mbtowc: # Code from module memchr: # Code from module mkostemp: # Code from module msvc-inval: # Code from module msvc-nothrow: # Code from module multiarch: # Code from module nl_langinfo: # Code from module open: # Code from module pathmax: # Code from module perror: # Code from module pipe: # Code from module pipe2: # Code from module pipe2-safer: # Code from module posix_spawn-internal: # Code from module posix_spawn_file_actions_addclose: # Code from module posix_spawn_file_actions_adddup2: # Code from module posix_spawn_file_actions_addopen: # Code from module posix_spawn_file_actions_destroy: # Code from module posix_spawn_file_actions_init: # Code from module posix_spawnattr_destroy: # Code from module posix_spawnattr_init: # Code from module posix_spawnattr_setflags: # Code from module posix_spawnattr_setsigmask: # Code from module posix_spawnp: # Code from module putenv: # Code from module raise: # Code from module rawmemchr: # Code from module realloc: # Code from module realloc-gnu: # Code from module realloc-posix: # Code from module regex: # Code from module sched: # Code from module secure_getenv: # Code from module sigaction: # Code from module signal: # Code from module signal-h: # Code from module sigprocmask: # Code from module sin: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/unused-parameter: # Code from module snippet/warn-on-use: # Code from module socklen: # Code from module spawn: # Code from module spawn-pipe: # Code from module sqrt: # Code from module ssize_t: # Code from module stat: # Code from module stdalign: # Code from module stdbool: # Code from module stddef: # Code from module stdint: # Code from module stdio: # Code from module stdlib: # Code from module strchrnul: # Code from module strcspn: # Code from module strdup-posix: # Code from module streq: # Code from module strerror: # Code from module strerror-override: # Code from module strerror_r-posix: # Code from module string: # Code from module strings: # Code from module strstr: # Code from module strstr-simple: # Code from module strtol: # Code from module sys_ioctl: # Code from module sys_socket: # Code from module sys_stat: # Code from module sys_time: # Code from module sys_types: # Code from module sys_uio: # Code from module sys_wait: # Code from module tan: # Code from module tempname: # Code from module threadlib: gl_THREADLIB_EARLY # Code from module time: # Code from module tmpdir: # Code from module unistd: # Code from module unistd-safer: # Code from module unlink: # Code from module useless-if-before-free: # Code from module vc-list-files: # Code from module verify: # Code from module wait-process: # Code from module waitpid: # Code from module wchar: # Code from module wcrtomb: # Code from module wctype-h: # Code from module write: # Code from module xalloc: # Code from module xalloc-die: # Code from module xalloc-oversized: ]) # This macro should be invoked from ./configure.ac, in the section # "Check for header files, types and library functions". AC_DEFUN([gl_INIT], [ AM_CONDITIONAL([GL_COND_LIBTOOL], [false]) gl_cond_libtool=false gl_libdeps= gl_ltlibdeps= gl_m4_base='m4' m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES])) m4_pushdef([gl_LIBSOURCES_LIST], []) m4_pushdef([gl_LIBSOURCES_DIR], []) gl_COMMON gl_source_base='lib' gl_FUNC_ACOS gl_FUNC_ALLOCA gl_FUNC_ASIN gl_ASSERT gl_FUNC_ATAN gl_FUNC_ATAN2 gl_FUNC_BTOWC if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then AC_LIBOBJ([btowc]) gl_PREREQ_BTOWC fi gl_WCHAR_MODULE_INDICATOR([btowc]) gl___BUILTIN_EXPECT gl_FUNC_CEIL if test $REPLACE_CEIL = 1; then AC_LIBOBJ([ceil]) fi gl_MATH_MODULE_INDICATOR([ceil]) gl_MODULE_INDICATOR_FOR_TESTS([cloexec]) gl_FUNC_CLOSE if test $REPLACE_CLOSE = 1; then AC_LIBOBJ([close]) fi gl_UNISTD_MODULE_INDICATOR([close]) gl_COND gl_CONFIGMAKE_PREP gl_FUNC_COS gl_DIRNAME_LGPL gl_DOUBLE_SLASH_ROOT gl_FUNC_DUP2 if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then AC_LIBOBJ([dup2]) gl_PREREQ_DUP2 fi gl_UNISTD_MODULE_INDICATOR([dup2]) gl_ENVIRON gl_UNISTD_MODULE_INDICATOR([environ]) gl_HEADER_ERRNO_H gl_ERROR if test $ac_cv_lib_error_at_line = no; then AC_LIBOBJ([error]) gl_PREREQ_ERROR fi m4_ifdef([AM_XGETTEXT_OPTION], [AM_][XGETTEXT_OPTION([--flag=error:3:c-format]) AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) AC_REQUIRE([gl_EXTERN_INLINE]) gl_FATAL_SIGNAL gl_FUNC_FCLOSE if test $REPLACE_FCLOSE = 1; then AC_LIBOBJ([fclose]) fi gl_STDIO_MODULE_INDICATOR([fclose]) gl_FUNC_FCNTL if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then AC_LIBOBJ([fcntl]) fi gl_FCNTL_MODULE_INDICATOR([fcntl]) gl_FCNTL_H gl_MODULE_INDICATOR([fd-safer-flag]) gl_FUNC_FFLUSH if test $REPLACE_FFLUSH = 1; then AC_LIBOBJ([fflush]) gl_PREREQ_FFLUSH fi gl_MODULE_INDICATOR([fflush]) gl_STDIO_MODULE_INDICATOR([fflush]) gl_FLOAT_H if test $REPLACE_FLOAT_LDBL = 1; then AC_LIBOBJ([float]) fi if test $REPLACE_ITOLD = 1; then AC_LIBOBJ([itold]) fi gl_FUNC_FLOOR if test $REPLACE_FLOOR = 1; then AC_LIBOBJ([floor]) fi gl_MATH_MODULE_INDICATOR([floor]) gl_FUNC_FOPEN if test $REPLACE_FOPEN = 1; then AC_LIBOBJ([fopen]) gl_PREREQ_FOPEN fi gl_STDIO_MODULE_INDICATOR([fopen]) gl_FUNC_FPURGE if test $HAVE_FPURGE = 0 || test $REPLACE_FPURGE = 1; then AC_LIBOBJ([fpurge]) fi gl_STDIO_MODULE_INDICATOR([fpurge]) gl_FUNC_FREADING gl_FUNC_FREE if test $gl_cv_func_free = no; then AC_LIBOBJ([free]) gl_PREREQ_FREE fi gl_FUNC_FSEEK if test $REPLACE_FSEEK = 1; then AC_LIBOBJ([fseek]) fi gl_STDIO_MODULE_INDICATOR([fseek]) gl_FUNC_FSEEKO if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then AC_LIBOBJ([fseeko]) gl_PREREQ_FSEEKO fi gl_STDIO_MODULE_INDICATOR([fseeko]) gl_FUNC_FSTAT if test $REPLACE_FSTAT = 1; then AC_LIBOBJ([fstat]) gl_PREREQ_FSTAT fi gl_SYS_STAT_MODULE_INDICATOR([fstat]) gl_FUNC_FTELL if test $REPLACE_FTELL = 1; then AC_LIBOBJ([ftell]) fi gl_STDIO_MODULE_INDICATOR([ftell]) gl_FUNC_FTELLO if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then AC_LIBOBJ([ftello]) gl_PREREQ_FTELLO fi gl_STDIO_MODULE_INDICATOR([ftello]) gl_FUNC_GETDTABLESIZE if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then AC_LIBOBJ([getdtablesize]) gl_PREREQ_GETDTABLESIZE fi gl_UNISTD_MODULE_INDICATOR([getdtablesize]) gl_FUNC_GETPROGNAME AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) gl_FUNC_GETTIMEOFDAY if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then AC_LIBOBJ([gettimeofday]) gl_PREREQ_GETTIMEOFDAY fi gl_SYS_TIME_MODULE_INDICATOR([gettimeofday]) # Autoconf 2.61a.99 and earlier don't support linking a file only # in VPATH builds. But since GNUmakefile is for maintainer use # only, it does not matter if we skip the link with older autoconf. # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH # builds, so use a shell variable to bypass this. GNUmakefile=GNUmakefile m4_if(m4_version_compare([2.61a.100], m4_defn([m4_PACKAGE_VERSION])), [1], [], [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [], [GNUmakefile=$GNUmakefile])]) gl_HARD_LOCALE AM_ICONV m4_ifdef([gl_ICONV_MODULE_INDICATOR], [gl_ICONV_MODULE_INDICATOR([iconv])]) gl_ICONV_H gl_FUNC_IOCTL if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then AC_LIBOBJ([ioctl]) fi gl_SYS_IOCTL_MODULE_INDICATOR([ioctl]) gl_LANGINFO_H AC_REQUIRE([gl_LARGEFILE]) gl_LIMITS_H gl_FUNC_LINK if test $HAVE_LINK = 0 || test $REPLACE_LINK = 1; then AC_LIBOBJ([link]) fi gl_UNISTD_MODULE_INDICATOR([link]) gl_LOCALCHARSET LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\"" AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT]) gl_LOCALE_H gl_FUNC_LOCALECONV if test $REPLACE_LOCALECONV = 1; then AC_LIBOBJ([localeconv]) gl_PREREQ_LOCALECONV fi gl_LOCALE_MODULE_INDICATOR([localeconv]) gl_LOCK gl_MODULE_INDICATOR([lock]) AC_REQUIRE([gl_FUNC_LOG]) if test $REPLACE_LOG = 1; then AC_LIBOBJ([log]) fi gl_MATH_MODULE_INDICATOR([log]) gl_FUNC_LOG10 if test $REPLACE_LOG10 = 1; then AC_LIBOBJ([log10]) fi gl_MATH_MODULE_INDICATOR([log10]) gl_FUNC_LSEEK if test $REPLACE_LSEEK = 1; then AC_LIBOBJ([lseek]) fi gl_UNISTD_MODULE_INDICATOR([lseek]) gl_FUNC_LSTAT if test $REPLACE_LSTAT = 1; then AC_LIBOBJ([lstat]) gl_PREREQ_LSTAT fi gl_SYS_STAT_MODULE_INDICATOR([lstat]) AC_CONFIG_COMMANDS_PRE([m4_ifdef([AH_HEADER], [AC_SUBST([CONFIG_INCLUDE], m4_defn([AH_HEADER]))])]) AC_REQUIRE([AC_PROG_SED]) gl_FUNC_MALLOC_GNU if test $REPLACE_MALLOC = 1; then AC_LIBOBJ([malloc]) fi gl_MODULE_INDICATOR([malloc-gnu]) gl_FUNC_MALLOC_POSIX if test $REPLACE_MALLOC = 1; then AC_LIBOBJ([malloc]) fi gl_STDLIB_MODULE_INDICATOR([malloc-posix]) gl_MATH_H gl_FUNC_MBRTOWC if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then AC_LIBOBJ([mbrtowc]) gl_PREREQ_MBRTOWC fi gl_WCHAR_MODULE_INDICATOR([mbrtowc]) gl_FUNC_MBSINIT if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then AC_LIBOBJ([mbsinit]) gl_PREREQ_MBSINIT fi gl_WCHAR_MODULE_INDICATOR([mbsinit]) gl_FUNC_MBTOWC if test $REPLACE_MBTOWC = 1; then AC_LIBOBJ([mbtowc]) gl_PREREQ_MBTOWC fi gl_STDLIB_MODULE_INDICATOR([mbtowc]) gl_FUNC_MEMCHR if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then AC_LIBOBJ([memchr]) gl_PREREQ_MEMCHR fi gl_STRING_MODULE_INDICATOR([memchr]) gl_FUNC_MKOSTEMP if test $HAVE_MKOSTEMP = 0; then AC_LIBOBJ([mkostemp]) gl_PREREQ_MKOSTEMP fi gl_MODULE_INDICATOR([mkostemp]) gl_STDLIB_MODULE_INDICATOR([mkostemp]) AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then AC_LIBOBJ([msvc-inval]) fi AC_REQUIRE([gl_MSVC_NOTHROW]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then AC_LIBOBJ([msvc-nothrow]) fi gl_MULTIARCH gl_FUNC_NL_LANGINFO if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then AC_LIBOBJ([nl_langinfo]) fi gl_LANGINFO_MODULE_INDICATOR([nl_langinfo]) gl_FUNC_OPEN if test $REPLACE_OPEN = 1; then AC_LIBOBJ([open]) gl_PREREQ_OPEN fi gl_FCNTL_MODULE_INDICATOR([open]) gl_PATHMAX gl_FUNC_PERROR if test $REPLACE_PERROR = 1; then AC_LIBOBJ([perror]) fi gl_STRING_MODULE_INDICATOR([perror]) gl_FUNC_PIPE2 gl_UNISTD_MODULE_INDICATOR([pipe2]) gl_MODULE_INDICATOR([pipe2-safer]) gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = 1; then AC_LIBOBJ([spawn_faction_addclose]) fi gl_SPAWN_MODULE_INDICATOR([posix_spawn_file_actions_addclose]) gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = 1; then AC_LIBOBJ([spawn_faction_adddup2]) fi gl_SPAWN_MODULE_INDICATOR([posix_spawn_file_actions_adddup2]) gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = 1; then AC_LIBOBJ([spawn_faction_addopen]) fi gl_SPAWN_MODULE_INDICATOR([posix_spawn_file_actions_addopen]) gl_POSIX_SPAWN if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then AC_LIBOBJ([spawn_faction_destroy]) fi gl_SPAWN_MODULE_INDICATOR([posix_spawn_file_actions_destroy]) gl_POSIX_SPAWN if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then AC_LIBOBJ([spawn_faction_init]) fi gl_SPAWN_MODULE_INDICATOR([posix_spawn_file_actions_init]) gl_POSIX_SPAWN if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then AC_LIBOBJ([spawnattr_destroy]) fi gl_SPAWN_MODULE_INDICATOR([posix_spawnattr_destroy]) gl_POSIX_SPAWN if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then AC_LIBOBJ([spawnattr_init]) fi gl_SPAWN_MODULE_INDICATOR([posix_spawnattr_init]) gl_POSIX_SPAWN if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then AC_LIBOBJ([spawnattr_setflags]) fi gl_SPAWN_MODULE_INDICATOR([posix_spawnattr_setflags]) gl_POSIX_SPAWN if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then AC_LIBOBJ([spawnattr_setsigmask]) fi gl_SPAWN_MODULE_INDICATOR([posix_spawnattr_setsigmask]) gl_POSIX_SPAWN if test $HAVE_POSIX_SPAWN = 0 || test $REPLACE_POSIX_SPAWN = 1; then AC_LIBOBJ([spawnp]) AC_LIBOBJ([spawni]) gl_PREREQ_POSIX_SPAWN_INTERNAL fi gl_SPAWN_MODULE_INDICATOR([posix_spawnp]) gl_FUNC_PUTENV if test $REPLACE_PUTENV = 1; then AC_LIBOBJ([putenv]) gl_PREREQ_PUTENV fi gl_STDLIB_MODULE_INDICATOR([putenv]) gl_FUNC_RAISE if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then AC_LIBOBJ([raise]) gl_PREREQ_RAISE fi gl_SIGNAL_MODULE_INDICATOR([raise]) gl_FUNC_RAWMEMCHR if test $HAVE_RAWMEMCHR = 0; then AC_LIBOBJ([rawmemchr]) gl_PREREQ_RAWMEMCHR fi gl_STRING_MODULE_INDICATOR([rawmemchr]) gl_FUNC_REALLOC_GNU if test $REPLACE_REALLOC = 1; then AC_LIBOBJ([realloc]) fi gl_MODULE_INDICATOR([realloc-gnu]) gl_FUNC_REALLOC_POSIX if test $REPLACE_REALLOC = 1; then AC_LIBOBJ([realloc]) fi gl_STDLIB_MODULE_INDICATOR([realloc-posix]) gl_REGEX if test $ac_use_included_regex = yes; then AC_LIBOBJ([regex]) gl_PREREQ_REGEX fi gl_SCHED_H gl_FUNC_SECURE_GETENV if test $HAVE_SECURE_GETENV = 0; then AC_LIBOBJ([secure_getenv]) gl_PREREQ_SECURE_GETENV fi gl_STDLIB_MODULE_INDICATOR([secure_getenv]) gl_SIGACTION if test $HAVE_SIGACTION = 0; then AC_LIBOBJ([sigaction]) gl_PREREQ_SIGACTION fi gl_SIGNAL_MODULE_INDICATOR([sigaction]) gl_SIGNAL_H gl_SIGNALBLOCKING if test $HAVE_POSIX_SIGNALBLOCKING = 0; then AC_LIBOBJ([sigprocmask]) gl_PREREQ_SIGPROCMASK fi gl_SIGNAL_MODULE_INDICATOR([sigprocmask]) gl_FUNC_SIN gl_TYPE_SOCKLEN_T gl_SPAWN_H gl_SPAWN_PIPE gl_FUNC_SQRT gt_TYPE_SSIZE_T gl_FUNC_STAT if test $REPLACE_STAT = 1; then AC_LIBOBJ([stat]) gl_PREREQ_STAT fi gl_SYS_STAT_MODULE_INDICATOR([stat]) gl_STDALIGN_H AM_STDBOOL_H gl_STDDEF_H gl_STDINT_H gl_STDIO_H gl_STDLIB_H gl_FUNC_STRCHRNUL if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then AC_LIBOBJ([strchrnul]) gl_PREREQ_STRCHRNUL fi gl_STRING_MODULE_INDICATOR([strchrnul]) gl_FUNC_STRCSPN if test $ac_cv_func_strcspn = no; then AC_LIBOBJ([strcspn]) gl_PREREQ_STRCSPN fi gl_FUNC_STRDUP_POSIX if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then AC_LIBOBJ([strdup]) gl_PREREQ_STRDUP fi gl_STRING_MODULE_INDICATOR([strdup]) gl_FUNC_STRERROR if test $REPLACE_STRERROR = 1; then AC_LIBOBJ([strerror]) fi gl_MODULE_INDICATOR([strerror]) gl_STRING_MODULE_INDICATOR([strerror]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then AC_LIBOBJ([strerror-override]) gl_PREREQ_SYS_H_WINSOCK2 fi gl_FUNC_STRERROR_R if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then AC_LIBOBJ([strerror_r]) gl_PREREQ_STRERROR_R fi gl_STRING_MODULE_INDICATOR([strerror_r]) gl_HEADER_STRING_H gl_HEADER_STRINGS_H gl_FUNC_STRSTR if test $REPLACE_STRSTR = 1; then AC_LIBOBJ([strstr]) fi gl_FUNC_STRSTR_SIMPLE if test $REPLACE_STRSTR = 1; then AC_LIBOBJ([strstr]) fi gl_STRING_MODULE_INDICATOR([strstr]) gl_FUNC_STRTOL if test $ac_cv_func_strtol = no; then AC_LIBOBJ([strtol]) fi gl_SYS_IOCTL_H AC_PROG_MKDIR_P AC_REQUIRE([gl_HEADER_SYS_SOCKET]) AC_PROG_MKDIR_P gl_HEADER_SYS_STAT_H AC_PROG_MKDIR_P gl_HEADER_SYS_TIME_H AC_PROG_MKDIR_P gl_SYS_TYPES_H AC_PROG_MKDIR_P gl_HEADER_SYS_UIO AC_PROG_MKDIR_P gl_SYS_WAIT_H AC_PROG_MKDIR_P gl_FUNC_TAN gl_FUNC_GEN_TEMPNAME gl_THREADLIB gl_HEADER_TIME_H gt_TMPDIR gl_UNISTD_H gl_UNISTD_SAFER gl_FUNC_UNLINK if test $REPLACE_UNLINK = 1; then AC_LIBOBJ([unlink]) fi gl_UNISTD_MODULE_INDICATOR([unlink]) gl_WAIT_PROCESS gl_FUNC_WAITPID if test $HAVE_WAITPID = 0; then AC_LIBOBJ([waitpid]) fi gl_SYS_WAIT_MODULE_INDICATOR([waitpid]) gl_WCHAR_H gl_FUNC_WCRTOMB if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then AC_LIBOBJ([wcrtomb]) gl_PREREQ_WCRTOMB fi gl_WCHAR_MODULE_INDICATOR([wcrtomb]) gl_WCTYPE_H gl_FUNC_WRITE if test $REPLACE_WRITE = 1; then AC_LIBOBJ([write]) gl_PREREQ_WRITE fi gl_UNISTD_MODULE_INDICATOR([write]) gl_XALLOC # End of code from modules m4_ifval(gl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || for gl_file in ]gl_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([gl_LIBSOURCES_DIR]) m4_popdef([gl_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ gl_libobjs= gl_ltlibobjs= if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" done fi AC_SUBST([gl_LIBOBJS], [$gl_libobjs]) AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs]) ]) gltests_libdeps= gltests_ltlibdeps= m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES])) m4_pushdef([gltests_LIBSOURCES_LIST], []) m4_pushdef([gltests_LIBSOURCES_DIR], []) gl_COMMON gl_source_base='tests' changequote(,)dnl gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS changequote([, ])dnl AC_SUBST([gltests_WITNESS]) gl_module_indicator_condition=$gltests_WITNESS m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition]) m4_popdef([gl_MODULE_INDICATOR_CONDITION]) m4_ifval(gltests_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ || for gl_file in ]gltests_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([gltests_LIBSOURCES_DIR]) m4_popdef([gltests_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ gltests_libobjs= gltests_ltlibobjs= if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" done fi AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs]) AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs]) ]) LIBGNU_LIBDEPS="$gl_libdeps" AC_SUBST([LIBGNU_LIBDEPS]) LIBGNU_LTLIBDEPS="$gl_ltlibdeps" AC_SUBST([LIBGNU_LTLIBDEPS]) ]) # Like AC_LIBOBJ, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gl_LIBOBJ], [ AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gl_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([gl_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([gl_LIBSOURCES_DIR], [lib]) m4_append([gl_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # Like AC_LIBOBJ, except that the module name goes # into gltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gltests_LIBOBJ], [ AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gltests_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([gltests_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([gltests_LIBSOURCES_DIR], [tests]) m4_append([gltests_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # This macro records the list of files which have been installed by # gnulib-tool and may be removed by future gnulib-tool invocations. AC_DEFUN([gl_FILE_LIST], [ build-aux/config.rpath build-aux/git-version-gen build-aux/snippet/_Noreturn.h build-aux/snippet/arg-nonnull.h build-aux/snippet/c++defs.h build-aux/snippet/unused-parameter.h build-aux/snippet/warn-on-use.h build-aux/useless-if-before-free build-aux/vc-list-files lib/alloca.c lib/alloca.in.h lib/basename-lgpl.c lib/binary-io.c lib/binary-io.h lib/btowc.c lib/ceil.c lib/cloexec.c lib/cloexec.h lib/close.c lib/config.charset lib/dirname-lgpl.c lib/dirname.h lib/dosname.h lib/dup-safer-flag.c lib/dup-safer.c lib/dup2.c lib/errno.in.h lib/error.c lib/error.h lib/exitfail.c lib/exitfail.h lib/fatal-signal.c lib/fatal-signal.h lib/fclose.c lib/fcntl.c lib/fcntl.in.h lib/fd-hook.c lib/fd-hook.h lib/fd-safer-flag.c lib/fd-safer.c lib/fflush.c lib/filename.h lib/float.c lib/float.in.h lib/floor.c lib/fopen.c lib/fpurge.c lib/freading.c lib/freading.h lib/free.c lib/fseek.c lib/fseeko.c lib/fstat.c lib/ftell.c lib/ftello.c lib/getdtablesize.c lib/getprogname.c lib/getprogname.h lib/gettext.h lib/gettimeofday.c lib/gl_list.c lib/gl_list.h lib/glthread/cond.c lib/glthread/cond.h lib/glthread/lock.c lib/glthread/lock.h lib/glthread/threadlib.c lib/hard-locale.c lib/hard-locale.h lib/iconv.in.h lib/intprops.h lib/ioctl.c lib/itold.c lib/langinfo.in.h lib/limits.in.h lib/link.c lib/localcharset.c lib/localcharset.h lib/locale.in.h lib/localeconv.c lib/log.c lib/log10.c lib/lseek.c lib/lstat.c lib/malloc.c lib/math.c lib/math.in.h lib/mbrtowc.c lib/mbsinit.c lib/mbtowc-impl.h lib/mbtowc.c lib/memchr.c lib/memchr.valgrind lib/mkostemp.c lib/msvc-inval.c lib/msvc-inval.h lib/msvc-nothrow.c lib/msvc-nothrow.h lib/nl_langinfo.c lib/open.c lib/pathmax.h lib/perror.c lib/pipe-safer.c lib/pipe.h lib/pipe2-safer.c lib/pipe2.c lib/putenv.c lib/raise.c lib/rawmemchr.c lib/rawmemchr.valgrind lib/realloc.c lib/ref-add.sin lib/ref-del.sin lib/regcomp.c lib/regex.c lib/regex.h lib/regex_internal.c lib/regex_internal.h lib/regexec.c lib/sched.in.h lib/secure_getenv.c lib/sig-handler.c lib/sig-handler.h lib/sigaction.c lib/signal.in.h lib/sigprocmask.c lib/spawn-pipe.c lib/spawn-pipe.h lib/spawn.in.h lib/spawn_faction_addclose.c lib/spawn_faction_adddup2.c lib/spawn_faction_addopen.c lib/spawn_faction_destroy.c lib/spawn_faction_init.c lib/spawn_int.h lib/spawnattr_destroy.c lib/spawnattr_init.c lib/spawnattr_setflags.c lib/spawnattr_setsigmask.c lib/spawni.c lib/spawnp.c lib/stat.c lib/stdalign.in.h lib/stdbool.in.h lib/stddef.in.h lib/stdint.in.h lib/stdio-impl.h lib/stdio.in.h lib/stdlib.in.h lib/str-two-way.h lib/strchrnul.c lib/strchrnul.valgrind lib/strcspn.c lib/strdup.c lib/streq.h lib/strerror-override.c lib/strerror-override.h lib/strerror.c lib/strerror_r.c lib/string.in.h lib/strings.in.h lib/stripslash.c lib/strstr.c lib/strtol.c lib/sys_ioctl.in.h lib/sys_socket.c lib/sys_socket.in.h lib/sys_stat.in.h lib/sys_time.in.h lib/sys_types.in.h lib/sys_uio.in.h lib/sys_wait.in.h lib/tempname.c lib/tempname.h lib/time.in.h lib/tmpdir.c lib/tmpdir.h lib/unistd--.h lib/unistd-safer.h lib/unistd.c lib/unistd.in.h lib/unlink.c lib/verify.h lib/w32sock.h lib/w32spawn.h lib/wait-process.c lib/wait-process.h lib/waitpid.c lib/wchar.in.h lib/wcrtomb.c lib/wctype-h.c lib/wctype.in.h lib/write.c lib/xalloc-die.c lib/xalloc-oversized.h lib/xalloc.h lib/xmalloc.c m4/00gnulib.m4 m4/absolute-header.m4 m4/acos.m4 m4/alloca.m4 m4/asin.m4 m4/assert.m4 m4/atan.m4 m4/atan2.m4 m4/btowc.m4 m4/builtin-expect.m4 m4/ceil.m4 m4/close.m4 m4/codeset.m4 m4/cond.m4 m4/configmake.m4 m4/cos.m4 m4/dirname.m4 m4/double-slash-root.m4 m4/dup2.m4 m4/eealloc.m4 m4/environ.m4 m4/errno_h.m4 m4/error.m4 m4/extensions.m4 m4/extern-inline.m4 m4/fatal-signal.m4 m4/fclose.m4 m4/fcntl-o.m4 m4/fcntl.m4 m4/fcntl_h.m4 m4/fflush.m4 m4/float_h.m4 m4/floor.m4 m4/fopen.m4 m4/fpurge.m4 m4/freading.m4 m4/free.m4 m4/fseek.m4 m4/fseeko.m4 m4/fstat.m4 m4/ftell.m4 m4/ftello.m4 m4/getdtablesize.m4 m4/getprogname.m4 m4/gettimeofday.m4 m4/glibc21.m4 m4/gnulib-common.m4 m4/hard-locale.m4 m4/iconv.m4 m4/iconv_h.m4 m4/include_next.m4 m4/ioctl.m4 m4/langinfo_h.m4 m4/largefile.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/limits-h.m4 m4/link.m4 m4/localcharset.m4 m4/locale-fr.m4 m4/locale-ja.m4 m4/locale-zh.m4 m4/locale_h.m4 m4/localeconv.m4 m4/lock.m4 m4/log.m4 m4/log10.m4 m4/longlong.m4 m4/lseek.m4 m4/lstat.m4 m4/malloc.m4 m4/math_h.m4 m4/mathfunc.m4 m4/mbrtowc.m4 m4/mbsinit.m4 m4/mbstate_t.m4 m4/mbtowc.m4 m4/memchr.m4 m4/mkostemp.m4 m4/mmap-anon.m4 m4/mode_t.m4 m4/msvc-inval.m4 m4/msvc-nothrow.m4 m4/multiarch.m4 m4/nl_langinfo.m4 m4/off_t.m4 m4/open.m4 m4/pathmax.m4 m4/perror.m4 m4/pipe2.m4 m4/posix_spawn.m4 m4/pthread_rwlock_rdlock.m4 m4/putenv.m4 m4/raise.m4 m4/rawmemchr.m4 m4/realloc.m4 m4/regex.m4 m4/sched_h.m4 m4/secure_getenv.m4 m4/sig_atomic_t.m4 m4/sigaction.m4 m4/signal_h.m4 m4/signalblocking.m4 m4/sin.m4 m4/socklen.m4 m4/sockpfaf.m4 m4/spawn-pipe.m4 m4/spawn_h.m4 m4/sqrt.m4 m4/ssize_t.m4 m4/stat.m4 m4/stdalign.m4 m4/stdbool.m4 m4/stddef_h.m4 m4/stdint.m4 m4/stdio_h.m4 m4/stdlib_h.m4 m4/strchrnul.m4 m4/strcspn.m4 m4/strdup.m4 m4/strerror.m4 m4/strerror_r.m4 m4/string_h.m4 m4/strings_h.m4 m4/strstr.m4 m4/strtol.m4 m4/sys_ioctl_h.m4 m4/sys_socket_h.m4 m4/sys_stat_h.m4 m4/sys_time_h.m4 m4/sys_types_h.m4 m4/sys_uio_h.m4 m4/sys_wait_h.m4 m4/tan.m4 m4/tempname.m4 m4/threadlib.m4 m4/time_h.m4 m4/tmpdir.m4 m4/unistd-safer.m4 m4/unistd_h.m4 m4/unlink.m4 m4/wait-process.m4 m4/waitpid.m4 m4/warn-on-use.m4 m4/wchar_h.m4 m4/wchar_t.m4 m4/wcrtomb.m4 m4/wctype_h.m4 m4/wint_t.m4 m4/write.m4 m4/xalloc.m4 top/GNUmakefile top/maint.mk ]) gcal-4.1/m4/stdalign.m40000664000000000000000000000437413041163523011552 00000000000000# Check for stdalign.h that conforms to C11. dnl Copyright 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Prepare for substituting if it is not supported. AC_DEFUN([gl_STDALIGN_H], [ AC_CACHE_CHECK([for working stdalign.h], [gl_cv_header_working_stdalign_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include #include /* Test that alignof yields a result consistent with offsetof. This catches GCC bug 52023 . */ #ifdef __cplusplus template struct alignof_helper { char a; t b; }; # define ao(type) offsetof (alignof_helper, b) #else # define ao(type) offsetof (struct { char a; type b; }, b) #endif char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1]; char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; /* Test _Alignas only on platforms where gnulib can help. */ #if \ ((defined __cplusplus && 201103 <= __cplusplus) \ || (defined __APPLE__ && defined __MACH__ \ ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ : __GNUC__) \ || __HP_cc || __HP_aCC || __IBMC__ || __IBMCPP__ \ || __ICC || 0x5110 <= __SUNPRO_C \ || 1300 <= _MSC_VER) struct alignas_test { char c; char alignas (8) alignas_8; }; char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 ? 1 : -1]; #endif ]])], [gl_cv_header_working_stdalign_h=yes], [gl_cv_header_working_stdalign_h=no])]) if test $gl_cv_header_working_stdalign_h = yes; then STDALIGN_H='' else STDALIGN_H='stdalign.h' fi AC_SUBST([STDALIGN_H]) AM_CONDITIONAL([GL_GENERATE_STDALIGN_H], [test -n "$STDALIGN_H"]) ]) gcal-4.1/m4/glibc21.m40000664000000000000000000000161313041163523011161 00000000000000# glibc21.m4 serial 5 dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2017 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Test for the GNU C Library, version 2.1 or newer, or uClibc. # From Bruno Haible. AC_DEFUN([gl_GLIBC21], [ AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc], [ac_cv_gnu_library_2_1], [AC_EGREP_CPP([Lucky], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif #ifdef __UCLIBC__ Lucky user #endif ], [ac_cv_gnu_library_2_1=yes], [ac_cv_gnu_library_2_1=no]) ] ) AC_SUBST([GLIBC21]) GLIBC21="$ac_cv_gnu_library_2_1" ] ) gcal-4.1/m4/free.m40000664000000000000000000000303013041163523010652 00000000000000# Check whether free (NULL) is supposed to work. # Copyright (C) 2003-2005, 2009-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert. # We can't test for free (NULL) even at runtime, since it might # happen to "work" for our test program, but not in general. So, be # conservative and use feature tests for relatively modern hosts, # where free (NULL) is known to work. This costs a bit of # performance on some older hosts, but we can fix that later if # needed. AC_DEFUN([gl_FUNC_FREE], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether free (NULL) is known to work], [gl_cv_func_free], [case "$host_os" in mingw*) gl_cv_func_free=yes ;; *) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[@%:@include ]], [[@%:@if _POSIX_VERSION < 199009L && \ (defined unix || defined _unix || defined _unix_ \ || defined __unix || defined __unix__) @%:@error "'free (NULL)' is not known to work" @%:@endif]])], [gl_cv_func_free=yes], [gl_cv_func_free=no]) esac ]) if test $gl_cv_func_free = no; then AC_DEFINE([free], [rpl_free], [Define to rpl_free if the replacement function should be used.]) fi ]) # Prerequisites of lib/free.c. AC_DEFUN([gl_PREREQ_FREE], [:]) gcal-4.1/m4/fstat.m40000664000000000000000000000164613041163523011065 00000000000000# fstat.m4 serial 4 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FSTAT], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_FSTAT=1 fi AC_REQUIRE([gl_HEADER_SYS_STAT_H]) if test $WINDOWS_64_BIT_ST_SIZE = 1; then REPLACE_FSTAT=1 fi dnl Replace fstat() for supporting the gnulib-defined open() on directories. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then case "$gl_cv_func_open_directory_works" in *yes) ;; *) REPLACE_FSTAT=1 ;; esac fi ]) ]) # Prerequisites of lib/fstat.c. AC_DEFUN([gl_PREREQ_FSTAT], [:]) gcal-4.1/m4/lib-prefix.m40000664000000000000000000002042213041163523011776 00000000000000# lib-prefix.m4 serial 7 (gettext-0.18) dnl Copyright (C) 2001-2005, 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates dnl - a variable acl_libdirstem, containing the basename of the libdir, either dnl "lib" or "lib64" or "lib/64", dnl - a variable acl_libdirstem2, as a secondary possible value for dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or dnl "lib/amd64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. dnl On glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine dnl the compiler's default mode by looking at the compiler's library search dnl path. If at least one of its elements ends in /lib64 or points to a dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. dnl Otherwise we use the default, namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment dnl . dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], [AC_EGREP_CPP([sixtyfour bits], [ #ifdef _LP64 sixtyfour bits #endif ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) ]) if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" ]) gcal-4.1/m4/threadlib.m40000664000000000000000000003572413041163523011706 00000000000000# threadlib.m4 serial 12 dnl Copyright (C) 2005-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl gl_THREADLIB dnl ------------ dnl Tests for a multithreading library to be used. dnl If the configure.ac contains a definition of the gl_THREADLIB_DEFAULT_NO dnl (it must be placed before the invocation of gl_THREADLIB_EARLY!), then the dnl default is 'no', otherwise it is system dependent. In both cases, the user dnl can change the choice through the options --enable-threads=choice or dnl --disable-threads. dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, dnl USE_PTH_THREADS, USE_WINDOWS_THREADS dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with dnl libtool). dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for dnl programs that really need multithread functionality. The difference dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak dnl symbols, typically LIBTHREAD is empty whereas LIBMULTITHREAD is not. dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for dnl multithread-safe programs. AC_DEFUN([gl_THREADLIB_EARLY], [ AC_REQUIRE([gl_THREADLIB_EARLY_BODY]) ]) dnl The guts of gl_THREADLIB_EARLY. Needs to be expanded only once. AC_DEFUN([gl_THREADLIB_EARLY_BODY], [ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that dnl influences the result of the autoconf tests that test for *_unlocked dnl declarations, on AIX 5 at least. Therefore it must come early. AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl AC_BEFORE([$0], [gl_ARGP])dnl AC_REQUIRE([AC_CANONICAL_HOST]) dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems. dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes dnl AC_GNU_SOURCE. m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], [AC_REQUIRE([AC_GNU_SOURCE])]) dnl Check for multithreading. m4_ifdef([gl_THREADLIB_DEFAULT_NO], [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])], [m4_divert_text([DEFAULTS], [gl_use_threads_default=])]) AC_ARG_ENABLE([threads], AC_HELP_STRING([--enable-threads={posix|solaris|pth|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [ AC_HELP_STRING([--disable-threads], [build without multithread safety])]), [gl_use_threads=$enableval], [if test -n "$gl_use_threads_default"; then gl_use_threads="$gl_use_threads_default" else changequote(,)dnl case "$host_os" in dnl Disable multithreading by default on OSF/1, because it interferes dnl with fork()/exec(): When msgexec is linked with -lpthread, its dnl child process gets an endless segmentation fault inside execvp(). dnl Disable multithreading by default on Cygwin 1.5.x, because it has dnl bugs that lead to endless loops or crashes. See dnl . osf*) gl_use_threads=no ;; cygwin*) case `uname -r` in 1.[0-5].*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ;; *) gl_use_threads=yes ;; esac changequote([,])dnl fi ]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # For using : case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks . cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_LINK_IFELSE test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in . case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac fi ]) dnl The guts of gl_THREADLIB. Needs to be expanded only once. AC_DEFUN([gl_THREADLIB_BODY], [ AC_REQUIRE([gl_THREADLIB_EARLY_BODY]) gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then dnl Check whether the compiler and linker support weak declarations. AC_CACHE_CHECK([whether imported symbols can be declared weak], [gl_cv_have_weak], [gl_cv_have_weak=no dnl First, test whether the compiler accepts it syntactically. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[extern void xyzzy (); #pragma weak xyzzy]], [[xyzzy();]])], [gl_cv_have_weak=maybe]) if test $gl_cv_have_weak = maybe; then dnl Second, test whether it actually works. On Cygwin 1.7.2, with dnl gcc 4.3, symbols declared weak always evaluate to the address 0. AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #pragma weak fputs int main () { return (fputs == NULL); }]])], [gl_cv_have_weak=yes], [gl_cv_have_weak=no], [dnl When cross-compiling, assume that only ELF platforms support dnl weak symbols. AC_EGREP_CPP([Extensible Linking Format], [#ifdef __ELF__ Extensible Linking Format #endif ], [gl_cv_have_weak="guessing yes"], [gl_cv_have_weak="guessing no"]) ]) fi ]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks . It's added above, in gl_THREADLIB_EARLY_BODY. AC_CHECK_HEADER([pthread.h], [gl_have_pthread_h=yes], [gl_have_pthread_h=no]) if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. # # If -pthread works, prefer it to -lpthread, since Ubuntu 14.04 # needs -pthread for some reason. See: # http://lists.gnu.org/archive/html/bug-gnulib/2014-09/msg00023.html save_LIBS=$LIBS for gl_pthread in '' '-pthread'; do LIBS="$LIBS $gl_pthread" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include pthread_mutex_t m; pthread_mutexattr_t ma; ]], [[pthread_mutex_lock (&m); pthread_mutexattr_init (&ma);]])], [gl_have_pthread=yes LIBTHREAD=$gl_pthread LTLIBTHREAD=$gl_pthread LIBMULTITHREAD=$gl_pthread LTLIBMULTITHREAD=$gl_pthread]) LIBS=$save_LIBS test -n "$gl_have_pthread" && break done # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test -n "$gl_have_pthread" && test -z "$LIBTHREAD"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. AC_CHECK_LIB([pthread], [pthread_kill], [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. # On Solaris 10 or newer, this test is no longer needed, because # libc contains the fully functional pthread functions. case "$host_os" in solaris | solaris2.[1-9] | solaris2.[1-9].* | hpux*) AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1], [Define if the pthread_in_use() detection is hard.]) esac ]) elif test -z "$gl_have_pthread"; then # Some library is needed. Try libpthread and libc_r. AC_CHECK_LIB([pthread], [pthread_kill], [gl_have_pthread=yes LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) if test -z "$gl_have_pthread"; then # For FreeBSD 4. AC_CHECK_LIB([c_r], [pthread_kill], [gl_have_pthread=yes LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) fi fi if test -n "$gl_have_pthread"; then gl_threads_api=posix AC_DEFINE([USE_POSIX_THREADS], [1], [Define if the POSIX multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_POSIX_THREADS_WEAK], [1], [Define if references to the POSIX multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi fi fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then gl_have_solaristhread= gl_save_LIBS="$LIBS" LIBS="$LIBS -lthread" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[thr_self();]])], [gl_have_solaristhread=yes]) LIBS="$gl_save_LIBS" if test -n "$gl_have_solaristhread"; then gl_threads_api=solaris LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_SOLARIS_THREADS], [1], [Define if the old Solaris multithreading library can be used.]) if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_SOLARIS_THREADS_WEAK], [1], [Define if references to the old Solaris multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi fi fi if test "$gl_use_threads" = pth; then gl_save_CPPFLAGS="$CPPFLAGS" AC_LIB_LINKFLAGS([pth]) gl_have_pth= gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBPTH" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[pth_self();]])], [gl_have_pth=yes]) LIBS="$gl_save_LIBS" if test -n "$gl_have_pth"; then gl_threads_api=pth LIBTHREAD="$LIBPTH" LTLIBTHREAD="$LTLIBPTH" LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_PTH_THREADS], [1], [Define if the GNU Pth multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_PTH_THREADS_WEAK], [1], [Define if references to the GNU Pth multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi else CPPFLAGS="$gl_save_CPPFLAGS" fi fi if test -z "$gl_have_pthread"; then case "$gl_use_threads" in yes | windows | win32) # The 'win32' is for backward compatibility. if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=windows AC_DEFINE([USE_WINDOWS_THREADS], [1], [Define if the native Windows multithreading API can be used.]) fi ;; esac fi fi AC_MSG_CHECKING([for multithread API to use]) AC_MSG_RESULT([$gl_threads_api]) AC_SUBST([LIBTHREAD]) AC_SUBST([LTLIBTHREAD]) AC_SUBST([LIBMULTITHREAD]) AC_SUBST([LTLIBMULTITHREAD]) ]) AC_DEFUN([gl_THREADLIB], [ AC_REQUIRE([gl_THREADLIB_EARLY]) AC_REQUIRE([gl_THREADLIB_BODY]) ]) dnl gl_DISABLE_THREADS dnl ------------------ dnl Sets the gl_THREADLIB default so that threads are not used by default. dnl The user can still override it at installation time, by using the dnl configure option '--enable-threads'. AC_DEFUN([gl_DISABLE_THREADS], [ m4_divert_text([INIT_PREPARE], [gl_use_threads_default=no]) ]) dnl Survey of platforms: dnl dnl Platform Available Compiler Supports test-lock dnl flavours option weak result dnl --------------- --------- --------- -------- --------- dnl Linux 2.4/glibc posix -lpthread Y OK dnl dnl GNU Hurd/glibc posix dnl dnl Ubuntu 14.04 posix -pthread Y OK dnl dnl FreeBSD 5.3 posix -lc_r Y dnl posix -lkse ? Y dnl posix -lpthread ? Y dnl posix -lthr Y dnl dnl FreeBSD 5.2 posix -lc_r Y dnl posix -lkse Y dnl posix -lthr Y dnl dnl FreeBSD 4.0,4.10 posix -lc_r Y OK dnl dnl NetBSD 1.6 -- dnl dnl OpenBSD 3.4 posix -lpthread Y OK dnl dnl Mac OS X 10.[123] posix -lpthread Y OK dnl dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK dnl dnl HP-UX 11 posix -lpthread N (cc) OK dnl Y (gcc) dnl dnl IRIX 6.5 posix -lpthread Y 0.5 dnl dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK dnl dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK dnl -lpthread (gcc) Y dnl dnl Cygwin posix -lpthread Y OK dnl dnl Any of the above pth -lpth 0.0 dnl dnl Mingw windows N OK dnl dnl BeOS 5 -- dnl dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is dnl turned off: dnl OK if all three tests terminate OK, dnl 0.5 if the first test terminates OK but the second one loops endlessly, dnl 0.0 if the first test already loops endlessly. gcal-4.1/m4/putenv.m40000664000000000000000000000317513041163523011264 00000000000000# putenv.m4 serial 20 dnl Copyright (C) 2002-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Jim Meyering. dnl dnl Check whether putenv ("FOO") removes FOO from the environment. dnl The putenv in libc on at least SunOS 4.1.4 does *not* do that. AC_DEFUN([gl_FUNC_PUTENV], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([for putenv compatible with GNU and SVID], [gl_cv_func_svid_putenv], [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],[[ /* Put it in env. */ if (putenv ("CONFTEST_putenv=val")) return 1; /* Try to remove it. */ if (putenv ("CONFTEST_putenv")) return 2; /* Make sure it was deleted. */ if (getenv ("CONFTEST_putenv") != 0) return 3; return 0; ]])], gl_cv_func_svid_putenv=yes, gl_cv_func_svid_putenv=no, dnl When crosscompiling, assume putenv is broken. [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_svid_putenv="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_svid_putenv="guessing no" ;; esac ]) ]) case "$gl_cv_func_svid_putenv" in *yes) ;; *) REPLACE_PUTENV=1 ;; esac ]) # Prerequisites of lib/putenv.c. AC_DEFUN([gl_PREREQ_PUTENV], [ AC_CHECK_DECLS([_putenv]) ]) gcal-4.1/m4/fclose.m40000664000000000000000000000117113041163523011210 00000000000000# fclose.m4 serial 7 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FCLOSE], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) gl_FUNC_FFLUSH_STDIN if test $gl_cv_func_fflush_stdin != yes; then REPLACE_FCLOSE=1 fi AC_REQUIRE([gl_FUNC_CLOSE]) if test $REPLACE_CLOSE = 1; then REPLACE_FCLOSE=1 fi case "$host_os" in openedition) REPLACE_FCLOSE=1 ;; esac ]) gcal-4.1/m4/malloc.m40000664000000000000000000000642313041163523011211 00000000000000# malloc.m4 serial 15 dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. m4_version_prereq([2.70], [] ,[ # This is adapted with modifications from upstream Autoconf here: # http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=04be2b7a29d65d9a08e64e8e56e594c91749598c AC_DEFUN([_AC_FUNC_MALLOC_IF], [ AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles AC_CHECK_HEADERS([stdlib.h]) AC_CACHE_CHECK([for GNU libc compatible malloc], [ac_cv_func_malloc_0_nonnull], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif ]], [[char *p = malloc (0); int result = !p; free (p); return result;]]) ], [ac_cv_func_malloc_0_nonnull=yes], [ac_cv_func_malloc_0_nonnull=no], [case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_malloc_0_nonnull=no ;; esac ]) ]) AS_IF([test $ac_cv_func_malloc_0_nonnull = yes], [$1], [$2]) ])# _AC_FUNC_MALLOC_IF ]) # gl_FUNC_MALLOC_GNU # ------------------ # Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if # it is not. AC_DEFUN([gl_FUNC_MALLOC_GNU], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) dnl _AC_FUNC_MALLOC_IF is defined in Autoconf. _AC_FUNC_MALLOC_IF( [AC_DEFINE([HAVE_MALLOC_GNU], [1], [Define to 1 if your system has a GNU libc compatible 'malloc' function, and to 0 otherwise.])], [AC_DEFINE([HAVE_MALLOC_GNU], [0]) REPLACE_MALLOC=1 ]) ]) # gl_FUNC_MALLOC_POSIX # -------------------- # Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it # fails), and replace malloc if it is not. AC_DEFUN([gl_FUNC_MALLOC_POSIX], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) if test $gl_cv_func_malloc_posix = yes; then AC_DEFINE([HAVE_MALLOC_POSIX], [1], [Define if the 'malloc' function is POSIX compliant.]) else REPLACE_MALLOC=1 fi ]) # Test whether malloc, realloc, calloc are POSIX compliant, # Set gl_cv_func_malloc_posix to yes or no accordingly. AC_DEFUN([gl_CHECK_MALLOC_POSIX], [ AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant], [gl_cv_func_malloc_posix], [ dnl It is too dangerous to try to allocate a large amount of memory: dnl some systems go to their knees when you do that. So assume that dnl all Unix implementations of the function are POSIX compliant. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[]], [[#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ choke me #endif ]])], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no]) ]) ]) gcal-4.1/m4/alloca.m40000664000000000000000000001037213041163523011173 00000000000000# alloca.m4 serial 14 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2017 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ALLOCA], [ AC_REQUIRE([AC_FUNC_ALLOCA]) if test $ac_cv_func_alloca_works = no; then gl_PREREQ_ALLOCA fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then AC_CACHE_CHECK([for alloca as a compiler built-in], [gl_cv_rpl_alloca], [ AC_EGREP_CPP([Need own alloca], [ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif ], [gl_cv_rpl_alloca=yes], [gl_cv_rpl_alloca=no]) ]) if test $gl_cv_rpl_alloca = yes; then dnl OK, alloca can be implemented through a compiler built-in. AC_DEFINE([HAVE_ALLOCA], [1], [Define to 1 if you have 'alloca' after including , a header that may be supplied by this distribution.]) ALLOCA_H=alloca.h else dnl alloca exists as a library function, i.e. it is slow and probably dnl a memory leak. Don't define HAVE_ALLOCA in this case. ALLOCA_H= fi else ALLOCA_H=alloca.h fi AC_SUBST([ALLOCA_H]) AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"]) ]) # Prerequisites of lib/alloca.c. # STACK_DIRECTION is already handled by AC_FUNC_ALLOCA. AC_DEFUN([gl_PREREQ_ALLOCA], [:]) # This works around a bug in autoconf <= 2.68. # See . m4_version_prereq([2.69], [] ,[ # This is taken from the following Autoconf patch: # http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497 # _AC_LIBOBJ_ALLOCA # ----------------- # Set up the LIBOBJ replacement of 'alloca'. Well, not exactly # AC_LIBOBJ since we actually set the output variable 'ALLOCA'. # Nevertheless, for Automake, AC_LIBSOURCES it. m4_define([_AC_LIBOBJ_ALLOCA], [# The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. AC_LIBSOURCES(alloca.c) AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using 'alloca.c'.]) AC_CACHE_CHECK(whether 'alloca.c' needs Cray hooks, ac_cv_os_cray, [AC_EGREP_CPP(webecray, [#if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif ], ac_cv_os_cray=yes, ac_cv_os_cray=no)]) if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do AC_CHECK_FUNC($ac_func, [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func, [Define to one of '_getb67', 'GETB67', 'getb67' for Cray-2 and Cray-YMP systems. This function is required for 'alloca.c' support on those systems.]) break]) done fi AC_CACHE_CHECK([stack direction for C alloca], [ac_cv_c_stack_direction], [AC_RUN_IFELSE([AC_LANG_SOURCE( [AC_INCLUDES_DEFAULT int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; }])], [ac_cv_c_stack_direction=1], [ac_cv_c_stack_direction=-1], [ac_cv_c_stack_direction=0])]) AH_VERBATIM([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ @%:@undef STACK_DIRECTION])dnl AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) ])# _AC_LIBOBJ_ALLOCA ]) gcal-4.1/m4/progtest.m40000644000000000000000000000555013041163512011605 00000000000000# progtest.m4 serial 4 (gettext-0.14.2) dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. AC_PREREQ(2.50) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) gcal-4.1/m4/wchar_h.m40000664000000000000000000002322613041163524011356 00000000000000dnl A placeholder for ISO C99 , for platforms that have issues. dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Eric Blake. # wchar_h.m4 serial 40 AC_DEFUN([gl_WCHAR_H], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) dnl Prepare for creating substitute . dnl Check for (missing in Linux uClibc when built without wide dnl character support). dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([wchar.h]) if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi AC_SUBST([HAVE_WCHAR_H]) AC_REQUIRE([gl_FEATURES_H]) AC_REQUIRE([gt_TYPE_WINT_T]) if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi AC_SUBST([HAVE_WINT_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include #endif #include ]], [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth ]) ]) dnl Check whether is usable at all. AC_DEFUN([gl_WCHAR_H_INLINE_OK], [ dnl Test whether suffers due to the transition from '__inline' to dnl 'gnu_inline'. See dnl and . In summary, dnl glibc version 2.5 or older, together with gcc version 4.3 or newer and dnl the option -std=c99 or -std=gnu99, leads to a broken . AC_CACHE_CHECK([whether uses 'inline' correctly], [gl_cv_header_wchar_h_correct_inline], [gl_cv_header_wchar_h_correct_inline=yes AC_LANG_CONFTEST([ AC_LANG_SOURCE([[#define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include extern int zero (void); int main () { return zero(); } ]])]) dnl Do not rename the object file from conftest.$ac_objext to dnl conftest1.$ac_objext, as this will cause the link to fail on dnl z/OS when using the XPLINK object format (due to duplicate dnl CSECT names). Instead, temporarily redefine $ac_compile so dnl that the object file has the latter name from the start. save_ac_compile="$ac_compile" ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` if AC_TRY_EVAL([ac_compile]); then AC_LANG_CONFTEST([ AC_LANG_SOURCE([[#define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int zero (void) { return 0; } ]])]) dnl See note above about renaming object files. ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` if AC_TRY_EVAL([ac_compile]); then if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD 2>&1; then : else gl_cv_header_wchar_h_correct_inline=no fi fi fi ac_compile="$save_ac_compile" rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext ]) if test $gl_cv_header_wchar_h_correct_inline = no; then AC_MSG_ERROR([ cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of , or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted.]) fi ]) AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_WCHAR_H_DEFAULTS], [ GNULIB_BTOWC=0; AC_SUBST([GNULIB_BTOWC]) GNULIB_WCTOB=0; AC_SUBST([GNULIB_WCTOB]) GNULIB_MBSINIT=0; AC_SUBST([GNULIB_MBSINIT]) GNULIB_MBRTOWC=0; AC_SUBST([GNULIB_MBRTOWC]) GNULIB_MBRLEN=0; AC_SUBST([GNULIB_MBRLEN]) GNULIB_MBSRTOWCS=0; AC_SUBST([GNULIB_MBSRTOWCS]) GNULIB_MBSNRTOWCS=0; AC_SUBST([GNULIB_MBSNRTOWCS]) GNULIB_WCRTOMB=0; AC_SUBST([GNULIB_WCRTOMB]) GNULIB_WCSRTOMBS=0; AC_SUBST([GNULIB_WCSRTOMBS]) GNULIB_WCSNRTOMBS=0; AC_SUBST([GNULIB_WCSNRTOMBS]) GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH]) GNULIB_WMEMCHR=0; AC_SUBST([GNULIB_WMEMCHR]) GNULIB_WMEMCMP=0; AC_SUBST([GNULIB_WMEMCMP]) GNULIB_WMEMCPY=0; AC_SUBST([GNULIB_WMEMCPY]) GNULIB_WMEMMOVE=0; AC_SUBST([GNULIB_WMEMMOVE]) GNULIB_WMEMSET=0; AC_SUBST([GNULIB_WMEMSET]) GNULIB_WCSLEN=0; AC_SUBST([GNULIB_WCSLEN]) GNULIB_WCSNLEN=0; AC_SUBST([GNULIB_WCSNLEN]) GNULIB_WCSCPY=0; AC_SUBST([GNULIB_WCSCPY]) GNULIB_WCPCPY=0; AC_SUBST([GNULIB_WCPCPY]) GNULIB_WCSNCPY=0; AC_SUBST([GNULIB_WCSNCPY]) GNULIB_WCPNCPY=0; AC_SUBST([GNULIB_WCPNCPY]) GNULIB_WCSCAT=0; AC_SUBST([GNULIB_WCSCAT]) GNULIB_WCSNCAT=0; AC_SUBST([GNULIB_WCSNCAT]) GNULIB_WCSCMP=0; AC_SUBST([GNULIB_WCSCMP]) GNULIB_WCSNCMP=0; AC_SUBST([GNULIB_WCSNCMP]) GNULIB_WCSCASECMP=0; AC_SUBST([GNULIB_WCSCASECMP]) GNULIB_WCSNCASECMP=0; AC_SUBST([GNULIB_WCSNCASECMP]) GNULIB_WCSCOLL=0; AC_SUBST([GNULIB_WCSCOLL]) GNULIB_WCSXFRM=0; AC_SUBST([GNULIB_WCSXFRM]) GNULIB_WCSDUP=0; AC_SUBST([GNULIB_WCSDUP]) GNULIB_WCSCHR=0; AC_SUBST([GNULIB_WCSCHR]) GNULIB_WCSRCHR=0; AC_SUBST([GNULIB_WCSRCHR]) GNULIB_WCSCSPN=0; AC_SUBST([GNULIB_WCSCSPN]) GNULIB_WCSSPN=0; AC_SUBST([GNULIB_WCSSPN]) GNULIB_WCSPBRK=0; AC_SUBST([GNULIB_WCSPBRK]) GNULIB_WCSSTR=0; AC_SUBST([GNULIB_WCSSTR]) GNULIB_WCSTOK=0; AC_SUBST([GNULIB_WCSTOK]) GNULIB_WCSWIDTH=0; AC_SUBST([GNULIB_WCSWIDTH]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_BTOWC=1; AC_SUBST([HAVE_BTOWC]) HAVE_MBSINIT=1; AC_SUBST([HAVE_MBSINIT]) HAVE_MBRTOWC=1; AC_SUBST([HAVE_MBRTOWC]) HAVE_MBRLEN=1; AC_SUBST([HAVE_MBRLEN]) HAVE_MBSRTOWCS=1; AC_SUBST([HAVE_MBSRTOWCS]) HAVE_MBSNRTOWCS=1; AC_SUBST([HAVE_MBSNRTOWCS]) HAVE_WCRTOMB=1; AC_SUBST([HAVE_WCRTOMB]) HAVE_WCSRTOMBS=1; AC_SUBST([HAVE_WCSRTOMBS]) HAVE_WCSNRTOMBS=1; AC_SUBST([HAVE_WCSNRTOMBS]) HAVE_WMEMCHR=1; AC_SUBST([HAVE_WMEMCHR]) HAVE_WMEMCMP=1; AC_SUBST([HAVE_WMEMCMP]) HAVE_WMEMCPY=1; AC_SUBST([HAVE_WMEMCPY]) HAVE_WMEMMOVE=1; AC_SUBST([HAVE_WMEMMOVE]) HAVE_WMEMSET=1; AC_SUBST([HAVE_WMEMSET]) HAVE_WCSLEN=1; AC_SUBST([HAVE_WCSLEN]) HAVE_WCSNLEN=1; AC_SUBST([HAVE_WCSNLEN]) HAVE_WCSCPY=1; AC_SUBST([HAVE_WCSCPY]) HAVE_WCPCPY=1; AC_SUBST([HAVE_WCPCPY]) HAVE_WCSNCPY=1; AC_SUBST([HAVE_WCSNCPY]) HAVE_WCPNCPY=1; AC_SUBST([HAVE_WCPNCPY]) HAVE_WCSCAT=1; AC_SUBST([HAVE_WCSCAT]) HAVE_WCSNCAT=1; AC_SUBST([HAVE_WCSNCAT]) HAVE_WCSCMP=1; AC_SUBST([HAVE_WCSCMP]) HAVE_WCSNCMP=1; AC_SUBST([HAVE_WCSNCMP]) HAVE_WCSCASECMP=1; AC_SUBST([HAVE_WCSCASECMP]) HAVE_WCSNCASECMP=1; AC_SUBST([HAVE_WCSNCASECMP]) HAVE_WCSCOLL=1; AC_SUBST([HAVE_WCSCOLL]) HAVE_WCSXFRM=1; AC_SUBST([HAVE_WCSXFRM]) HAVE_WCSDUP=1; AC_SUBST([HAVE_WCSDUP]) HAVE_WCSCHR=1; AC_SUBST([HAVE_WCSCHR]) HAVE_WCSRCHR=1; AC_SUBST([HAVE_WCSRCHR]) HAVE_WCSCSPN=1; AC_SUBST([HAVE_WCSCSPN]) HAVE_WCSSPN=1; AC_SUBST([HAVE_WCSSPN]) HAVE_WCSPBRK=1; AC_SUBST([HAVE_WCSPBRK]) HAVE_WCSSTR=1; AC_SUBST([HAVE_WCSSTR]) HAVE_WCSTOK=1; AC_SUBST([HAVE_WCSTOK]) HAVE_WCSWIDTH=1; AC_SUBST([HAVE_WCSWIDTH]) HAVE_DECL_WCTOB=1; AC_SUBST([HAVE_DECL_WCTOB]) HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH]) REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T]) REPLACE_BTOWC=0; AC_SUBST([REPLACE_BTOWC]) REPLACE_WCTOB=0; AC_SUBST([REPLACE_WCTOB]) REPLACE_MBSINIT=0; AC_SUBST([REPLACE_MBSINIT]) REPLACE_MBRTOWC=0; AC_SUBST([REPLACE_MBRTOWC]) REPLACE_MBRLEN=0; AC_SUBST([REPLACE_MBRLEN]) REPLACE_MBSRTOWCS=0; AC_SUBST([REPLACE_MBSRTOWCS]) REPLACE_MBSNRTOWCS=0; AC_SUBST([REPLACE_MBSNRTOWCS]) REPLACE_WCRTOMB=0; AC_SUBST([REPLACE_WCRTOMB]) REPLACE_WCSRTOMBS=0; AC_SUBST([REPLACE_WCSRTOMBS]) REPLACE_WCSNRTOMBS=0; AC_SUBST([REPLACE_WCSNRTOMBS]) REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH]) REPLACE_WCSWIDTH=0; AC_SUBST([REPLACE_WCSWIDTH]) ]) gcal-4.1/m4/codeset.m40000664000000000000000000000151213041163523011362 00000000000000# codeset.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[char* cs = nl_langinfo(CODESET); return !cs;]])], [am_cv_langinfo_codeset=yes], [am_cv_langinfo_codeset=no]) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE([HAVE_LANGINFO_CODESET], [1], [Define if you have and nl_langinfo(CODESET).]) fi ]) gcal-4.1/m4/mmap-anon.m40000664000000000000000000000373313041163523011626 00000000000000# mmap-anon.m4 serial 10 dnl Copyright (C) 2005, 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Detect how mmap can be used to create anonymous (not file-backed) memory # mappings. # - On Linux, AIX, OSF/1, Solaris, Cygwin, Interix, Haiku, both MAP_ANONYMOUS # and MAP_ANON exist and have the same value. # - On HP-UX, only MAP_ANONYMOUS exists. # - On Mac OS X, FreeBSD, NetBSD, OpenBSD, only MAP_ANON exists. # - On IRIX, neither exists, and a file descriptor opened to /dev/zero must be # used. AC_DEFUN([gl_FUNC_MMAP_ANON], [ dnl Persuade glibc to define MAP_ANONYMOUS. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is # irrelevant for anonymous mappings. AC_CHECK_FUNC([mmap], [gl_have_mmap=yes], [gl_have_mmap=no]) # Try to allow MAP_ANONYMOUS. gl_have_mmap_anonymous=no if test $gl_have_mmap = yes; then AC_MSG_CHECKING([for MAP_ANONYMOUS]) AC_EGREP_CPP([I cannot identify this map], [ #include #ifdef MAP_ANONYMOUS I cannot identify this map #endif ], [gl_have_mmap_anonymous=yes]) if test $gl_have_mmap_anonymous != yes; then AC_EGREP_CPP([I cannot identify this map], [ #include #ifdef MAP_ANON I cannot identify this map #endif ], [AC_DEFINE([MAP_ANONYMOUS], [MAP_ANON], [Define to a substitute value for mmap()'s MAP_ANONYMOUS flag.]) gl_have_mmap_anonymous=yes]) fi AC_MSG_RESULT([$gl_have_mmap_anonymous]) if test $gl_have_mmap_anonymous = yes; then AC_DEFINE([HAVE_MAP_ANONYMOUS], [1], [Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including config.h and .]) fi fi ]) gcal-4.1/m4/getdtablesize.m40000664000000000000000000000324513041163523012567 00000000000000# getdtablesize.m4 serial 6 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_GETDTABLESIZE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([getdtablesize]) AC_CHECK_DECLS_ONCE([getdtablesize]) if test $ac_cv_func_getdtablesize = yes && test $ac_cv_have_decl_getdtablesize = yes; then # Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft limit # up to an unchangeable hard limit; all other platforms correctly # require setrlimit before getdtablesize() can report a larger value. AC_CACHE_CHECK([whether getdtablesize works], [gl_cv_func_getdtablesize_works], [AC_RUN_IFELSE([ AC_LANG_PROGRAM([[#include ]], [int size = getdtablesize(); if (dup2 (0, getdtablesize()) != -1) return 1; if (size != getdtablesize()) return 2; ])], [gl_cv_func_getdtablesize_works=yes], [gl_cv_func_getdtablesize_works=no], [case "$host_os" in cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows gl_cv_func_getdtablesize_works="guessing no" ;; *) gl_cv_func_getdtablesize_works="guessing yes" ;; esac]) ]) case "$gl_cv_func_getdtablesize_works" in *yes) ;; *) REPLACE_GETDTABLESIZE=1 ;; esac else HAVE_GETDTABLESIZE=0 fi ]) # Prerequisites of lib/getdtablesize.c. AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [:]) gcal-4.1/m4/wait-process.m40000664000000000000000000000065313041163523012361 00000000000000# wait-process.m4 serial 6 dnl Copyright (C) 2003, 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_WAIT_PROCESS], [ dnl Prerequisites of lib/wait-process.c. AC_REQUIRE([gt_TYPE_SIG_ATOMIC_T]) AC_CHECK_FUNCS([waitid]) ]) gcal-4.1/m4/sys_ioctl_h.m40000664000000000000000000000460613041163523012262 00000000000000# sys_ioctl_h.m4 serial 10 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Bruno Haible. AC_DEFUN([gl_SYS_IOCTL_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS]) AC_CHECK_HEADERS_ONCE([sys/ioctl.h]) if test $ac_cv_header_sys_ioctl_h = yes; then HAVE_SYS_IOCTL_H=1 dnl Test whether declares ioctl(), or whether some other dnl header file, such as or , is needed for that. AC_CACHE_CHECK([whether declares ioctl], [gl_cv_decl_ioctl_in_sys_ioctl_h], [dnl We cannot use AC_CHECK_DECL because it produces its own messages. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT([#include ])], [(void) ioctl;])], [gl_cv_decl_ioctl_in_sys_ioctl_h=yes], [gl_cv_decl_ioctl_in_sys_ioctl_h=no]) ]) else HAVE_SYS_IOCTL_H=0 fi AC_SUBST([HAVE_SYS_IOCTL_H]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([sys/ioctl.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include /* Some platforms declare ioctl in the wrong header. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include #endif ]], [ioctl]) ]) AC_DEFUN([gl_SYS_IOCTL_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_IOCTL_H_DEFAULTS], [ GNULIB_IOCTL=0; AC_SUBST([GNULIB_IOCTL]) dnl Assume proper GNU behavior unless another module says otherwise. SYS_IOCTL_H_HAVE_WINSOCK2_H=0; AC_SUBST([SYS_IOCTL_H_HAVE_WINSOCK2_H]) SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; AC_SUBST([SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) REPLACE_IOCTL=0; AC_SUBST([REPLACE_IOCTL]) ]) gcal-4.1/m4/fpurge.m40000664000000000000000000000320713041163523011227 00000000000000# fpurge.m4 serial 7 dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FPURGE], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([fpurge]) AC_CHECK_FUNCS_ONCE([__fpurge]) AC_CHECK_DECLS([fpurge], , , [[#include ]]) if test "x$ac_cv_func_fpurge" = xyes; then HAVE_FPURGE=1 # Detect BSD bug. Only cygwin 1.7 is known to be immune. AC_CACHE_CHECK([whether fpurge works], [gl_cv_func_fpurge_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include ]], [FILE *f = fopen ("conftest.txt", "w+"); if (!f) return 1; if (fputc ('a', f) != 'a') return 2; rewind (f); if (fgetc (f) != 'a') return 3; if (fgetc (f) != EOF) return 4; if (fpurge (f) != 0) return 5; if (putc ('b', f) != 'b') return 6; if (fclose (f) != 0) return 7; if ((f = fopen ("conftest.txt", "r")) == NULL) return 8; if (fgetc (f) != 'a') return 9; if (fgetc (f) != 'b') return 10; if (fgetc (f) != EOF) return 11; if (fclose (f) != 0) return 12; if (remove ("conftest.txt") != 0) return 13; return 0;])], [gl_cv_func_fpurge_works=yes], [gl_cv_func_fpurge_works=no], [gl_cv_func_fpurge_works='guessing no'])]) if test "x$gl_cv_func_fpurge_works" != xyes; then REPLACE_FPURGE=1 fi else HAVE_FPURGE=0 fi if test "x$ac_cv_have_decl_fpurge" = xno; then HAVE_DECL_FPURGE=0 fi ]) gcal-4.1/m4/strerror_r.m40000664000000000000000000001644513041163523012152 00000000000000# strerror_r.m4 serial 18 dnl Copyright (C) 2002, 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRERROR_R], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) dnl Persuade Solaris to declare strerror_r(). AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl Some systems don't declare strerror_r() if _THREAD_SAFE and _REENTRANT dnl are not defined. AC_CHECK_DECL([strerror_r], [HAVE_DECL_STRERROR_R=1], [HAVE_DECL_STRERROR_R=0]) AC_DEFINE_UNQUOTED([HAVE_DECL_STRERROR_R_ORIG], [$HAVE_DECL_STRERROR_R], [Define to 1 if you have the declaration of 'strerror_r' in the system include files, or to 0 otherwise.]) if test $ac_cv_func_strerror_r = yes; then if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then if test $gl_cv_func_strerror_r_posix_signature = yes; then case "$gl_cv_func_strerror_r_works" in dnl The system's strerror_r has bugs. Replace it. *no) REPLACE_STRERROR_R=1 ;; esac else dnl The system's strerror_r() has a wrong signature. Replace it. REPLACE_STRERROR_R=1 fi else dnl The system's strerror_r() cannot know about the new errno values we dnl add to , or any fix for strerror(0). Replace it. REPLACE_STRERROR_R=1 fi fi # Overwrite the findings of AC_FUNC_STRERROR_R (for code that uses that). AC_REQUIRE([AC_FUNC_STRERROR_R]) ]) # If this module is in use, we unconditionally want POSIX semantics; so # replace autoconf's macro with a version that does not probe AC_DEFUN([AC_FUNC_STRERROR_R], [ AC_DEFINE([HAVE_DECL_STRERROR_R], [1], [Define to 1, since you should have the declaration of strerror_r.]) AC_DEFINE([HAVE_STRERROR_R], [1], [Define to 1, since you should have the function strerror_r.]) AC_DEFINE([STRERROR_R_CHAR_P], [0], [Define to 0, since strerror_r should not return char *.]) ]) # Prerequisites of lib/strerror_r.c. AC_DEFUN([gl_PREREQ_STRERROR_R], [ dnl glibc >= 2.3.4 and cygwin 1.7.9 have a function __xpg_strerror_r. AC_CHECK_FUNCS_ONCE([__xpg_strerror_r]) AC_CHECK_FUNCS_ONCE([catgets]) AC_CHECK_FUNCS_ONCE([snprintf]) ]) # Detect if strerror_r works, but without affecting whether a replacement # strerror_r will be used. AC_DEFUN([gl_FUNC_STRERROR_R_WORKS], [ AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_FUNC_STRERROR_0]) AC_CHECK_FUNC([strerror_r]) if test $ac_cv_func_strerror_r = yes; then if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then dnl The POSIX prototype is: int strerror_r (int, char *, size_t); dnl glibc, Cygwin: char *strerror_r (int, char *, size_t); dnl AIX 5.1, OSF/1 5.1: int strerror_r (int, char *, int); AC_CACHE_CHECK([for strerror_r with POSIX signature], [gl_cv_func_strerror_r_posix_signature], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include int strerror_r (int, char *, size_t); ]], [])], [gl_cv_func_strerror_r_posix_signature=yes], [gl_cv_func_strerror_r_posix_signature=no]) ]) if test $gl_cv_func_strerror_r_posix_signature = yes; then dnl AIX 6.1 strerror_r fails by returning -1, not an error number. dnl HP-UX 11.31 strerror_r always fails when the buffer length argument dnl is less than 80. dnl FreeBSD 8.s strerror_r claims failure on 0 dnl Mac OS X 10.5 strerror_r treats 0 like -1 dnl Solaris 10 strerror_r corrupts errno on failure AC_CACHE_CHECK([whether strerror_r works], [gl_cv_func_strerror_r_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include ]], [[int result = 0; char buf[79]; if (strerror_r (EACCES, buf, 0) < 0) result |= 1; errno = 0; if (strerror_r (EACCES, buf, sizeof buf) != 0) result |= 2; strcpy (buf, "Unknown"); if (strerror_r (0, buf, sizeof buf) != 0) result |= 4; if (errno) result |= 8; if (strstr (buf, "nknown") || strstr (buf, "ndefined")) result |= 0x10; errno = 0; *buf = 0; if (strerror_r (-3, buf, sizeof buf) < 0) result |= 0x20; if (errno) result |= 0x40; if (!*buf) result |= 0x80; return result; ]])], [gl_cv_func_strerror_r_works=yes], [gl_cv_func_strerror_r_works=no], [ changequote(,)dnl case "$host_os" in # Guess no on AIX. aix*) gl_cv_func_strerror_r_works="guessing no";; # Guess no on HP-UX. hpux*) gl_cv_func_strerror_r_works="guessing no";; # Guess no on BSD variants. *bsd*) gl_cv_func_strerror_r_works="guessing no";; # Guess yes otherwise. *) gl_cv_func_strerror_r_works="guessing yes";; esac changequote([,])dnl ]) ]) else dnl The system's strerror() has a wrong signature. dnl glibc >= 2.3.4 and cygwin 1.7.9 have a function __xpg_strerror_r. AC_CHECK_FUNCS_ONCE([__xpg_strerror_r]) dnl In glibc < 2.14, __xpg_strerror_r does not populate buf on failure. dnl In cygwin < 1.7.10, __xpg_strerror_r clobbers strerror's buffer. if test $ac_cv_func___xpg_strerror_r = yes; then AC_CACHE_CHECK([whether __xpg_strerror_r works], [gl_cv_func_strerror_r_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include extern #ifdef __cplusplus "C" #endif int __xpg_strerror_r(int, char *, size_t); ]], [[int result = 0; char buf[256] = "^"; char copy[256]; char *str = strerror (-1); strcpy (copy, str); if (__xpg_strerror_r (-2, buf, 1) == 0) result |= 1; if (*buf) result |= 2; __xpg_strerror_r (-2, buf, 256); if (strcmp (str, copy)) result |= 4; return result; ]])], [gl_cv_func_strerror_r_works=yes], [gl_cv_func_strerror_r_works=no], [dnl Guess no on all platforms that have __xpg_strerror_r, dnl at least until fixed glibc and cygwin are more common. gl_cv_func_strerror_r_works="guessing no" ]) ]) fi fi fi fi ]) gcal-4.1/m4/spawn-pipe.m40000664000000000000000000000060413041163523012020 00000000000000# spawn-pipe.m4 serial 2 dnl Copyright (C) 2004, 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_SPAWN_PIPE], [ dnl Prerequisites of lib/spawn-pipe.c. AC_REQUIRE([AC_TYPE_MODE_T]) ]) gcal-4.1/m4/largefile.m40000664000000000000000000001233213041163523011670 00000000000000# Enable large files on systems where this is not the default. # Copyright 1992-1996, 1998-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # The following implementation works around a problem in autoconf <= 2.69; # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5, # or configures them incorrectly in some cases. m4_version_prereq([2.70], [] ,[ # _AC_SYS_LARGEFILE_TEST_INCLUDES # ------------------------------- m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], [@%:@include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ @%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]];[]dnl ]) # _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, # CACHE-VAR, # DESCRIPTION, # PROLOGUE, [FUNCTION-BODY]) # -------------------------------------------------------- m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE], [AC_CACHE_CHECK([for $1 value needed for large files], [$3], [while :; do m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( [AC_LANG_PROGRAM([$5], [$6])], [$3=no; break]) m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( [AC_LANG_PROGRAM([@%:@define $1 $2 $5], [$6])], [$3=$2; break]) $3=unknown break done]) case $$3 in #( no | unknown) ;; *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);; esac rm -rf conftest*[]dnl ])# _AC_SYS_LARGEFILE_MACRO_VALUE # AC_SYS_LARGEFILE # ---------------- # By default, many hosts won't let programs access large files; # one must use special compiler options to get large-file access to work. # For more details about this brain damage please see: # http://www.unix-systems.org/version2/whatsnew/lfs20mar.html AC_DEFUN([AC_SYS_LARGEFILE], [AC_ARG_ENABLE(largefile, [ --disable-largefile omit support for large files]) if test "$enable_largefile" != no; then AC_CACHE_CHECK([for special C compiler options needed for large files], ac_cv_sys_largefile_CC, [ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])]) AC_COMPILE_IFELSE([], [break]) CC="$CC -n32" AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break]) break done CC=$ac_save_CC rm -f conftest.$ac_ext fi]) if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits, [Number of bits in a file offset, on hosts where this is settable.], [_AC_SYS_LARGEFILE_TEST_INCLUDES]) if test $ac_cv_sys_file_offset_bits = unknown; then _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files, [Define for large files, on AIX-style hosts.], [_AC_SYS_LARGEFILE_TEST_INCLUDES]) fi AC_DEFINE([_DARWIN_USE_64_BIT_INODE], [1], [Enable large inode numbers on Mac OS X 10.5.]) fi ])# AC_SYS_LARGEFILE ])# m4_version_prereq 2.70 # Enable large files on systems where this is implemented by Gnulib, not by the # system headers. # Set the variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE if Gnulib # overrides ensure that off_t or 'struct size.st_size' are 64-bit, respectively. AC_DEFUN([gl_LARGEFILE], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw*) dnl Native Windows. dnl mingw64 defines off_t to a 64-bit type already, if dnl _FILE_OFFSET_BITS=64, which is ensured by AC_SYS_LARGEFILE. AC_CACHE_CHECK([for 64-bit off_t], [gl_cv_type_off_t_64], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; ]], [[]])], [gl_cv_type_off_t_64=yes], [gl_cv_type_off_t_64=no]) ]) if test $gl_cv_type_off_t_64 = no; then WINDOWS_64_BIT_OFF_T=1 else WINDOWS_64_BIT_OFF_T=0 fi dnl But all native Windows platforms (including mingw64) have a 32-bit dnl st_size member in 'struct stat'. WINDOWS_64_BIT_ST_SIZE=1 ;; *) dnl Nothing to do on gnulib's side. dnl A 64-bit off_t is dnl - already the default on Mac OS X, FreeBSD, NetBSD, OpenBSD, IRIX, dnl OSF/1, Cygwin, dnl - enabled by _FILE_OFFSET_BITS=64 (ensured by AC_SYS_LARGEFILE) on dnl glibc, HP-UX, Solaris, dnl - enabled by _LARGE_FILES=1 (ensured by AC_SYS_LARGEFILE) on AIX, dnl - impossible to achieve on Minix 3.1.8. WINDOWS_64_BIT_OFF_T=0 WINDOWS_64_BIT_ST_SIZE=0 ;; esac ]) gcal-4.1/m4/iconv_h.m40000664000000000000000000000254113041163523011364 00000000000000# iconv_h.m4 serial 8 dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_ICONV_H], [ AC_REQUIRE([gl_ICONV_H_DEFAULTS]) dnl Execute this unconditionally, because ICONV_H may be set by other dnl modules, after this code is executed. gl_CHECK_NEXT_HEADERS([iconv.h]) ]) dnl Unconditionally enables the replacement of . AC_DEFUN([gl_REPLACE_ICONV_H], [ AC_REQUIRE([gl_ICONV_H_DEFAULTS]) ICONV_H='iconv.h' AM_CONDITIONAL([GL_GENERATE_ICONV_H], [test -n "$ICONV_H"]) ]) AC_DEFUN([gl_ICONV_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_ICONV_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_ICONV_H_DEFAULTS], [ GNULIB_ICONV=0; AC_SUBST([GNULIB_ICONV]) dnl Assume proper GNU behavior unless another module says otherwise. ICONV_CONST=; AC_SUBST([ICONV_CONST]) REPLACE_ICONV=0; AC_SUBST([REPLACE_ICONV]) REPLACE_ICONV_OPEN=0; AC_SUBST([REPLACE_ICONV_OPEN]) REPLACE_ICONV_UTF=0; AC_SUBST([REPLACE_ICONV_UTF]) ICONV_H=''; AC_SUBST([ICONV_H]) AM_CONDITIONAL([GL_GENERATE_ICONV_H], [test -n "$ICONV_H"]) ]) gcal-4.1/m4/fopen.m40000664000000000000000000000325213041163523011046 00000000000000# fopen.m4 serial 9 dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FOPEN], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw* | pw*) dnl Replace fopen, for handling of "/dev/null". REPLACE_FOPEN=1 dnl fopen on mingw also has the trailing slash bug. gl_cv_func_fopen_slash="guessing no" ;; *) dnl fopen("foo/", "w") should not create a file when the file name has a dnl trailing slash. AC_CACHE_CHECK([whether fopen recognizes a trailing slash], [gl_cv_func_fopen_slash], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include int main () { return fopen ("conftest.sl/", "w") != NULL; }]])], [gl_cv_func_fopen_slash=yes], [gl_cv_func_fopen_slash=no], [ changequote(,)dnl case "$host_os" in aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_fopen_slash="guessing no" ;; *) gl_cv_func_fopen_slash="guessing yes" ;; esac changequote([,])dnl ]) rm -f conftest.sl ]) ;; esac case "$gl_cv_func_fopen_slash" in *no) AC_DEFINE([FOPEN_TRAILING_SLASH_BUG], [1], [Define to 1 if fopen() fails to recognize a trailing slash.]) REPLACE_FOPEN=1 ;; esac ]) # Prerequisites of lib/fopen.c. AC_DEFUN([gl_PREREQ_FOPEN], [:]) gcal-4.1/m4/wctype_h.m40000664000000000000000000001543513041163524011570 00000000000000# wctype_h.m4 serial 18 dnl A placeholder for ISO C99 , for platforms that lack it. dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. AC_DEFUN([gl_WCTYPE_H], [ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([iswcntrl]) if test $ac_cv_func_iswcntrl = yes; then HAVE_ISWCNTRL=1 else HAVE_ISWCNTRL=0 fi AC_SUBST([HAVE_ISWCNTRL]) AC_REQUIRE([gt_TYPE_WINT_T]) if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi AC_SUBST([HAVE_WINT_T]) gl_CHECK_NEXT_HEADERS([wctype.h]) if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then dnl Linux libc5 has an iswprint function that returns 0 for all arguments. dnl The other functions are likely broken in the same way. AC_CACHE_CHECK([whether iswcntrl works], [gl_cv_func_iswcntrl_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #include int main () { return iswprint ('x') == 0; } ]])], [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include #if __GNU_LIBRARY__ == 1 Linux libc5 i18n is broken. #endif]], [])], [gl_cv_func_iswcntrl_works="guessing yes"], [gl_cv_func_iswcntrl_works="guessing no"]) ]) ]) fi HAVE_WCTYPE_H=1 else HAVE_WCTYPE_H=0 fi AC_SUBST([HAVE_WCTYPE_H]) case "$gl_cv_func_iswcntrl_works" in *yes) REPLACE_ISWCNTRL=0 ;; *) REPLACE_ISWCNTRL=1 ;; esac AC_SUBST([REPLACE_ISWCNTRL]) if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then dnl Redefine all of iswcntrl, ..., iswxdigit in . : fi if test $REPLACE_ISWCNTRL = 1; then REPLACE_TOWLOWER=1 else AC_CHECK_FUNCS([towlower]) if test $ac_cv_func_towlower = yes; then REPLACE_TOWLOWER=0 else AC_CHECK_DECLS([towlower],,, [[/* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #if HAVE_WCTYPE_H # include #endif ]]) if test $ac_cv_have_decl_towlower = yes; then dnl On Minix 3.1.8, the system's declares towlower() and dnl towupper() although it does not have the functions. Avoid a dnl collision with gnulib's replacement. REPLACE_TOWLOWER=1 else REPLACE_TOWLOWER=0 fi fi fi AC_SUBST([REPLACE_TOWLOWER]) if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then dnl Redefine towlower, towupper in . : fi dnl We assume that the wctype() and iswctype() functions exist if and only dnl if the type wctype_t is defined in or in if that dnl exists. dnl HP-UX 11.00 declares all these in and lacks . AC_CACHE_CHECK([for wctype_t], [gl_cv_type_wctype_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[/* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #if HAVE_WCTYPE_H # include #endif wctype_t a; ]], [[]])], [gl_cv_type_wctype_t=yes], [gl_cv_type_wctype_t=no]) ]) if test $gl_cv_type_wctype_t = no; then HAVE_WCTYPE_T=0 fi dnl We assume that the wctrans() and towctrans() functions exist if and only dnl if the type wctrans_t is defined in . AC_CACHE_CHECK([for wctrans_t], [gl_cv_type_wctrans_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[/* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include #include wctrans_t a; ]], [[]])], [gl_cv_type_wctrans_t=yes], [gl_cv_type_wctrans_t=no]) ]) if test $gl_cv_type_wctrans_t = no; then HAVE_WCTRANS_T=0 fi dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include # include #endif #include ]], [wctype iswctype wctrans towctrans ]) ]) AC_DEFUN([gl_WCTYPE_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_WCTYPE_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_WCTYPE_H_DEFAULTS], [ GNULIB_ISWBLANK=0; AC_SUBST([GNULIB_ISWBLANK]) GNULIB_WCTYPE=0; AC_SUBST([GNULIB_WCTYPE]) GNULIB_ISWCTYPE=0; AC_SUBST([GNULIB_ISWCTYPE]) GNULIB_WCTRANS=0; AC_SUBST([GNULIB_WCTRANS]) GNULIB_TOWCTRANS=0; AC_SUBST([GNULIB_TOWCTRANS]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_ISWBLANK=1; AC_SUBST([HAVE_ISWBLANK]) HAVE_WCTYPE_T=1; AC_SUBST([HAVE_WCTYPE_T]) HAVE_WCTRANS_T=1; AC_SUBST([HAVE_WCTRANS_T]) REPLACE_ISWBLANK=0; AC_SUBST([REPLACE_ISWBLANK]) ]) gcal-4.1/m4/error.m40000664000000000000000000000151013041163523011063 00000000000000#serial 14 # Copyright (C) 1996-1998, 2001-2004, 2009-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_ERROR], [ dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer dnl maintained in Autoconf and because it invokes AC_LIBOBJ. AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[error_at_line (0, 0, "", 0, "an error occurred");]])], [ac_cv_lib_error_at_line=yes], [ac_cv_lib_error_at_line=no])]) ]) # Prerequisites of lib/error.c. AC_DEFUN([gl_PREREQ_ERROR], [ AC_REQUIRE([AC_FUNC_STRERROR_R]) : ]) gcal-4.1/m4/open.m40000664000000000000000000000504613041163523010703 00000000000000# open.m4 serial 14 dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_OPEN], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw* | pw*) REPLACE_OPEN=1 ;; *) dnl open("foo/") should not create a file when the file name has a dnl trailing slash. FreeBSD only has the problem on symlinks. AC_CHECK_FUNCS_ONCE([lstat]) AC_CACHE_CHECK([whether open recognizes a trailing slash], [gl_cv_func_open_slash], [# Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then touch conftest.tmp ln -s conftest.tmp conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #if HAVE_UNISTD_H # include #endif int main () { int result = 0; #if HAVE_LSTAT if (open ("conftest.lnk/", O_RDONLY) != -1) result |= 1; #endif if (open ("conftest.sl/", O_CREAT, 0600) >= 0) result |= 2; return result; }]])], [gl_cv_func_open_slash=yes], [gl_cv_func_open_slash=no], [ changequote(,)dnl case "$host_os" in freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; esac changequote([,])dnl ]) rm -f conftest.sl conftest.tmp conftest.lnk ]) case "$gl_cv_func_open_slash" in *no) AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1], [Define to 1 if open() fails to recognize a trailing slash.]) REPLACE_OPEN=1 ;; esac ;; esac dnl Replace open() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ if test $REPLACE_OPEN = 0; then gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_OPEN=1 fi fi ]) dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag. m4_ifdef([gl_NONBLOCKING_IO], [ if test $REPLACE_OPEN = 0; then gl_NONBLOCKING_IO if test $gl_cv_have_open_O_NONBLOCK != yes; then REPLACE_OPEN=1 fi fi ]) ]) # Prerequisites of lib/open.c. AC_DEFUN([gl_PREREQ_OPEN], [ AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T]) : ]) gcal-4.1/m4/locale_h.m40000664000000000000000000001040113041163523011477 00000000000000# locale_h.m4 serial 19 dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_LOCALE_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) dnl Persuade glibc to define locale_t and the int_p_*, int_n_* dnl members of 'struct lconv'. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl If is replaced, then must also be replaced. AC_REQUIRE([gl_STDDEF_H]) dnl Solaris 11 2011-11 defines the int_p_*, int_n_* members of 'struct lconv' dnl only if _LCONV_C99 is defined. AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in solaris*) AC_DEFINE([_LCONV_C99], [1], [Define to 1 on Solaris.]) ;; esac AC_CACHE_CHECK([whether locale.h conforms to POSIX:2001], [gl_cv_header_locale_h_posix2001], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include int x = LC_MESSAGES; int y = sizeof (((struct lconv *) 0)->decimal_point);]], [[]])], [gl_cv_header_locale_h_posix2001=yes], [gl_cv_header_locale_h_posix2001=no])]) dnl Check for . AC_CHECK_HEADERS_ONCE([xlocale.h]) if test $ac_cv_header_xlocale_h = yes; then HAVE_XLOCALE_H=1 dnl Check whether use of locale_t requires inclusion of , dnl e.g. on Mac OS X 10.5. If does not define locale_t by dnl itself, we assume that will do so. AC_CACHE_CHECK([whether locale.h defines locale_t], [gl_cv_header_locale_has_locale_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include locale_t x;]], [[]])], [gl_cv_header_locale_has_locale_t=yes], [gl_cv_header_locale_has_locale_t=no]) ]) if test $gl_cv_header_locale_has_locale_t = yes; then gl_cv_header_locale_h_needs_xlocale_h=no else gl_cv_header_locale_h_needs_xlocale_h=yes fi else HAVE_XLOCALE_H=0 gl_cv_header_locale_h_needs_xlocale_h=no fi AC_SUBST([HAVE_XLOCALE_H]) dnl Check whether 'struct lconv' is complete. dnl Bionic libc's 'struct lconv' is just a dummy. dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, dnl mingw, MSVC 9, it lacks the int_p_* and int_n_* members. AC_CACHE_CHECK([whether struct lconv is properly defined], [gl_cv_sys_struct_lconv_ok], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include struct lconv l; int x = sizeof (l.decimal_point); int y = sizeof (l.int_p_cs_precedes);]], [[]])], [gl_cv_sys_struct_lconv_ok=yes], [gl_cv_sys_struct_lconv_ok=no]) ]) if test $gl_cv_sys_struct_lconv_ok = no; then REPLACE_STRUCT_LCONV=1 fi dnl is always overridden, because of GNULIB_POSIXCHECK. gl_NEXT_HEADERS([locale.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include /* Some systems provide declarations in a non-standard header. */ #if HAVE_XLOCALE_H # include #endif ]], [setlocale duplocale]) ]) AC_DEFUN([gl_LOCALE_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_LOCALE_H_DEFAULTS], [ GNULIB_LOCALECONV=0; AC_SUBST([GNULIB_LOCALECONV]) GNULIB_SETLOCALE=0; AC_SUBST([GNULIB_SETLOCALE]) GNULIB_DUPLOCALE=0; AC_SUBST([GNULIB_DUPLOCALE]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE]) REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV]) REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE]) REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE]) REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV]) ]) gcal-4.1/m4/tempname.m40000664000000000000000000000103213041163523011537 00000000000000#serial 5 # Copyright (C) 2006-2007, 2009-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # glibc provides __gen_tempname as a wrapper for mk[ds]temp. Expose # it as a public API, and provide it on systems that are lacking. AC_DEFUN([gl_FUNC_GEN_TEMPNAME], [ gl_PREREQ_TEMPNAME ]) # Prerequisites of lib/tempname.c. AC_DEFUN([gl_PREREQ_TEMPNAME], [ : ]) gcal-4.1/m4/atan2.m40000664000000000000000000000056213041163523010745 00000000000000# atan2.m4 serial 1 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ATAN2], [ dnl Determine ATAN2_LIBM. gl_COMMON_DOUBLE_MATHFUNC([atan2]) ]) gcal-4.1/m4/warn-on-use.m40000664000000000000000000000415413041163524012115 00000000000000# warn-on-use.m4 serial 5 dnl Copyright (C) 2010-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES) # --------------------------------------- # For each whitespace-separated element in the list of NAMES, define # HAVE_RAW_DECL_name if the function has a declaration among INCLUDES # even after being undefined as a macro. # # See warn-on-use.h for some hints on how to poison function names, as # well as ideas on poisoning global variables and macros. NAMES may # include global variables, but remember that only functions work with # _GL_WARN_ON_USE. Typically, INCLUDES only needs to list a single # header, but if the replacement header pulls in other headers because # some systems declare functions in the wrong header, then INCLUDES # should do likewise. # # It is generally safe to assume declarations for functions declared # in the intersection of C89 and C11 (such as printf) without # needing gl_WARN_ON_USE_PREPARE. AC_DEFUN([gl_WARN_ON_USE_PREPARE], [ m4_foreach_w([gl_decl], [$2], [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])), [Define to 1 if ]m4_defn([gl_decl])[ is declared even after undefining macros.])])dnl dnl FIXME: gl_Symbol must be used unquoted until we can assume dnl autoconf 2.64 or newer. for gl_func in m4_flatten([$2]); do AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl AC_CACHE_CHECK([whether $gl_func is declared without a macro], gl_Symbol, [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], [@%:@undef $gl_func (void) $gl_func;])], [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])]) AS_VAR_IF(gl_Symbol, [yes], [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1]) dnl shortcut - if the raw declaration exists, then set a cache dnl variable to allow skipping any later AC_CHECK_DECL efforts eval ac_cv_have_decl_$gl_func=yes]) AS_VAR_POPDEF([gl_Symbol])dnl done ]) gcal-4.1/m4/wcrtomb.m40000664000000000000000000000661013041163524011416 00000000000000# wcrtomb.m4 serial 11 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_WCRTOMB], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) gl_MBSTATE_T_BROKEN AC_CHECK_FUNCS_ONCE([wcrtomb]) if test $ac_cv_func_wcrtomb = no; then HAVE_WCRTOMB=0 AC_CHECK_DECLS([wcrtomb],,, [[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include ]]) if test $ac_cv_have_decl_wcrtomb = yes; then dnl On Minix 3.1.8, the system's declares wcrtomb() although dnl it does not have the function. Avoid a collision with gnulib's dnl replacement. REPLACE_WCRTOMB=1 fi else if test $REPLACE_MBSTATE_T = 1; then REPLACE_WCRTOMB=1 else dnl On AIX 4.3, OSF/1 5.1 and Solaris 10, wcrtomb (NULL, 0, NULL) sometimes dnl returns 0 instead of 1. AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) AC_REQUIRE([gt_LOCALE_JA]) AC_REQUIRE([gt_LOCALE_ZH_CN]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether wcrtomb return value is correct], [gl_cv_func_wcrtomb_retval], [ dnl Initial guess, used when cross-compiling or when no suitable locale dnl is present. changequote(,)dnl case "$host_os" in # Guess no on AIX 4, OSF/1 and Solaris. aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;; # Guess yes otherwise. *) gl_cv_func_wcrtomb_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int main () { int result = 0; if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 1; } if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 2; } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 4; } if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { if (wcrtomb (NULL, 0, NULL) != 1) result |= 8; } return result; }]])], [gl_cv_func_wcrtomb_retval=yes], [gl_cv_func_wcrtomb_retval=no], [:]) fi ]) case "$gl_cv_func_wcrtomb_retval" in *yes) ;; *) REPLACE_WCRTOMB=1 ;; esac fi fi ]) # Prerequisites of lib/wcrtomb.c. AC_DEFUN([gl_PREREQ_WCRTOMB], [ : ]) gcal-4.1/m4/fcntl-o.m40000664000000000000000000001107413041163523011302 00000000000000# fcntl-o.m4 serial 4 dnl Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. # Test whether the flags O_NOATIME and O_NOFOLLOW actually work. # Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise. # Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise. AC_DEFUN([gl_FCNTL_O_FLAGS], [ dnl Persuade glibc to define O_NOATIME and O_NOFOLLOW. dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes dnl AC_GNU_SOURCE. m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], [AC_REQUIRE([AC_GNU_SOURCE])]) AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_FUNCS_ONCE([symlink]) AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include # include # defined sleep(n) _sleep ((n) * 1000) #endif #include #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; ]], [[ int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result;]])], [gl_cv_header_working_fcntl_h=yes], [case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac], [gl_cv_header_working_fcntl_h=cross-compiling])]) case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val], [Define to 1 if O_NOATIME works.]) case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val], [Define to 1 if O_NOFOLLOW works.]) ]) gcal-4.1/m4/stdint.m40000664000000000000000000004315513041163523011252 00000000000000# stdint.m4 serial 50 dnl Copyright (C) 2001-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Bruno Haible. dnl Test whether is supported or must be substituted. AC_DEFUN_ONCE([gl_STDINT_H], [ AC_PREREQ([2.59])dnl AC_REQUIRE([gl_LIMITS_H]) AC_REQUIRE([gt_TYPE_WINT_T]) dnl Check for long long int and unsigned long long int. AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) if test $ac_cv_type_long_long_int = yes; then HAVE_LONG_LONG_INT=1 else HAVE_LONG_LONG_INT=0 fi AC_SUBST([HAVE_LONG_LONG_INT]) AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) if test $ac_cv_type_unsigned_long_long_int = yes; then HAVE_UNSIGNED_LONG_LONG_INT=1 else HAVE_UNSIGNED_LONG_LONG_INT=0 fi AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT]) dnl Check for , in the same way as gl_WCHAR_H does. AC_CHECK_HEADERS_ONCE([wchar.h]) if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi AC_SUBST([HAVE_WCHAR_H]) dnl Check for . dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h. if test $ac_cv_header_inttypes_h = yes; then HAVE_INTTYPES_H=1 else HAVE_INTTYPES_H=0 fi AC_SUBST([HAVE_INTTYPES_H]) dnl Check for . dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h. if test $ac_cv_header_sys_types_h = yes; then HAVE_SYS_TYPES_H=1 else HAVE_SYS_TYPES_H=0 fi AC_SUBST([HAVE_SYS_TYPES_H]) gl_CHECK_NEXT_HEADERS([stdint.h]) if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else HAVE_STDINT_H=0 fi AC_SUBST([HAVE_STDINT_H]) dnl Now see whether we need a substitute . if test $ac_cv_header_stdint_h = yes; then AC_CACHE_CHECK([whether stdint.h conforms to C99], [gl_cv_header_working_stdint_h], [gl_cv_header_working_stdint_h=no AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) #error "WCHAR_MIN, WCHAR_MAX not defined in " #endif ] gl_STDINT_INCLUDES [ #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; #endif #ifdef INT16_MAX int16_t a2 = INT16_MAX; int16_t a2min = INT16_MIN; #endif #ifdef INT32_MAX int32_t a3 = INT32_MAX; int32_t a3min = INT32_MIN; #endif #ifdef INT64_MAX int64_t a4 = INT64_MAX; int64_t a4min = INT64_MIN; #endif #ifdef UINT8_MAX uint8_t b1 = UINT8_MAX; #else typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; #endif #ifdef UINT16_MAX uint16_t b2 = UINT16_MAX; #endif #ifdef UINT32_MAX uint32_t b3 = UINT32_MAX; #endif #ifdef UINT64_MAX uint64_t b4 = UINT64_MAX; #endif int_least8_t c1 = INT8_C (0x7f); int_least8_t c1max = INT_LEAST8_MAX; int_least8_t c1min = INT_LEAST8_MIN; int_least16_t c2 = INT16_C (0x7fff); int_least16_t c2max = INT_LEAST16_MAX; int_least16_t c2min = INT_LEAST16_MIN; int_least32_t c3 = INT32_C (0x7fffffff); int_least32_t c3max = INT_LEAST32_MAX; int_least32_t c3min = INT_LEAST32_MIN; int_least64_t c4 = INT64_C (0x7fffffffffffffff); int_least64_t c4max = INT_LEAST64_MAX; int_least64_t c4min = INT_LEAST64_MIN; uint_least8_t d1 = UINT8_C (0xff); uint_least8_t d1max = UINT_LEAST8_MAX; uint_least16_t d2 = UINT16_C (0xffff); uint_least16_t d2max = UINT_LEAST16_MAX; uint_least32_t d3 = UINT32_C (0xffffffff); uint_least32_t d3max = UINT_LEAST32_MAX; uint_least64_t d4 = UINT64_C (0xffffffffffffffff); uint_least64_t d4max = UINT_LEAST64_MAX; int_fast8_t e1 = INT_FAST8_MAX; int_fast8_t e1min = INT_FAST8_MIN; int_fast16_t e2 = INT_FAST16_MAX; int_fast16_t e2min = INT_FAST16_MIN; int_fast32_t e3 = INT_FAST32_MAX; int_fast32_t e3min = INT_FAST32_MIN; int_fast64_t e4 = INT_FAST64_MAX; int_fast64_t e4min = INT_FAST64_MIN; uint_fast8_t f1 = UINT_FAST8_MAX; uint_fast16_t f2 = UINT_FAST16_MAX; uint_fast32_t f3 = UINT_FAST32_MAX; uint_fast64_t f4 = UINT_FAST64_MAX; #ifdef INTPTR_MAX intptr_t g = INTPTR_MAX; intptr_t gmin = INTPTR_MIN; #endif #ifdef UINTPTR_MAX uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; /* Check that SIZE_MAX has the correct type, if possible. */ #if 201112 <= __STDC_VERSION__ int k = _Generic (SIZE_MAX, size_t: 0); #elif (2 <= __GNUC__ || defined __IBM__TYPEOF__ \ || (0x5110 <= __SUNPRO_C && !__STDC__)) extern size_t k; extern __typeof__ (SIZE_MAX) k; #endif #include /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) ((t) 0 < (t) -1 \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) struct s { int check_PTRDIFF: PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; /* Detect bug in FreeBSD 6.0 / ia64. */ int check_SIG_ATOMIC: SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ? 1 : -1; int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; int check_WCHAR: WCHAR_MIN == TYPE_MINIMUM (wchar_t) && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ? 1 : -1; /* Detect bug in mingw. */ int check_WINT: WINT_MIN == TYPE_MINIMUM (wint_t) && WINT_MAX == TYPE_MAXIMUM (wint_t) ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; int check_UINT16_C: (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; /* Detect bugs in OpenBSD 3.9 stdint.h. */ #ifdef UINT8_MAX int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; #endif #ifdef UINT16_MAX int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; #endif #ifdef UINT32_MAX int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; #endif #ifdef UINT64_MAX int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; #endif int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; ]])], [dnl Determine whether the various *_MIN, *_MAX macros are usable dnl in preprocessor expression. We could do it by compiling a test dnl program for each of these macros. It is faster to run a program dnl that inspects the macro expansion. dnl This detects a bug on HP-UX 11.23/ia64. AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #define __STDC_CONSTANT_MACROS 1 #define __STDC_LIMIT_MACROS 1 #include ] gl_STDINT_INCLUDES [ #include #include #define MVAL(macro) MVAL1(macro) #define MVAL1(expression) #expression static const char *macro_values[] = { #ifdef INT8_MAX MVAL (INT8_MAX), #endif #ifdef INT16_MAX MVAL (INT16_MAX), #endif #ifdef INT32_MAX MVAL (INT32_MAX), #endif #ifdef INT64_MAX MVAL (INT64_MAX), #endif #ifdef UINT8_MAX MVAL (UINT8_MAX), #endif #ifdef UINT16_MAX MVAL (UINT16_MAX), #endif #ifdef UINT32_MAX MVAL (UINT32_MAX), #endif #ifdef UINT64_MAX MVAL (UINT64_MAX), #endif NULL }; ]], [[ const char **mv; for (mv = macro_values; *mv != NULL; mv++) { const char *value = *mv; /* Test whether it looks like a cast expression. */ if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 || strncmp (value, "((int)"/*)*/, 6) == 0 || strncmp (value, "((signed short)"/*)*/, 15) == 0 || strncmp (value, "((signed char)"/*)*/, 14) == 0) return mv - macro_values + 1; } return 0; ]])], [gl_cv_header_working_stdint_h=yes], [], [dnl When cross-compiling, assume it works. gl_cv_header_working_stdint_h=yes ]) ]) ]) fi HAVE_C99_STDINT_H=0 HAVE_SYS_BITYPES_H=0 HAVE_SYS_INTTYPES_H=0 STDINT_H=stdint.h if test "$gl_cv_header_working_stdint_h" = yes; then HAVE_C99_STDINT_H=1 dnl Now see whether the system works without dnl __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS defined. AC_CACHE_CHECK([whether stdint.h predates C++11], [gl_cv_header_stdint_predates_cxx11_h], [gl_cv_header_stdint_predates_cxx11_h=yes AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include ] gl_STDINT_INCLUDES [ intmax_t im = INTMAX_MAX; int32_t i32 = INT32_C (0x7fffffff); ]])], [gl_cv_header_stdint_predates_cxx11_h=no])]) if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then AC_DEFINE([__STDC_CONSTANT_MACROS], [1], [Define to 1 if the system predates C++11.]) AC_DEFINE([__STDC_LIMIT_MACROS], [1], [Define to 1 if the system predates C++11.]) fi AC_CACHE_CHECK([whether stdint.h has UINTMAX_WIDTH etc.], [gl_cv_header_stdint_width], [gl_cv_header_stdint_width=no AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #endif #include ]gl_STDINT_INCLUDES[ int iw = UINTMAX_WIDTH; ]])], [gl_cv_header_stdint_width=yes])]) if test "$gl_cv_header_stdint_width" = yes; then STDINT_H= fi else dnl Check for , and for dnl (used in Linux libc4 >= 4.6.7 and libc5). AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h]) if test $ac_cv_header_sys_inttypes_h = yes; then HAVE_SYS_INTTYPES_H=1 fi if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 fi gl_STDINT_TYPE_PROPERTIES fi dnl The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH. LIMITS_H=limits.h AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) AC_SUBST([HAVE_C99_STDINT_H]) AC_SUBST([HAVE_SYS_BITYPES_H]) AC_SUBST([HAVE_SYS_INTTYPES_H]) AC_SUBST([STDINT_H]) AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"]) ]) dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES) dnl Determine the size of each of the given types in bits. AC_DEFUN([gl_STDINT_BITSIZEOF], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), [Define to the number of bits in type ']gltype['.])]) for gltype in $1 ; do AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}], [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT], [$2 #include ], [result=unknown]) eval gl_cv_bitsizeof_${gltype}=\$result ]) eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then dnl Use a nonempty default, because some compilers, such as IRIX 5 cc, dnl do a syntax check even on unused #if conditions and give an error dnl on valid C code like this: dnl #if 0 dnl # if > 32 dnl # endif dnl #endif result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result]) eval BITSIZEOF_${GLTYPE}=\$result done m4_foreach_w([gltype], [$1], [AC_SUBST([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) ]) dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES) dnl Determine the signedness of each of the given types. dnl Define HAVE_SIGNED_TYPE if type is signed. AC_DEFUN([gl_CHECK_TYPES_SIGNED], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), [Define to 1 if ']gltype[' is a signed integer type.])]) for gltype in $1 ; do AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([$2[ int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])], result=yes, result=no) eval gl_cv_type_${gltype}_signed=\$result ]) eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], [1]) eval HAVE_SIGNED_${GLTYPE}=1 else eval HAVE_SIGNED_${GLTYPE}=0 fi done m4_foreach_w([gltype], [$1], [AC_SUBST([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) ]) dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES) dnl Determine the suffix to use for integer constants of the given types. dnl Define t_SUFFIX for each such type. AC_DEFUN([gl_INTEGER_TYPE_SUFFIX], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX], [Define to l, ll, u, ul, ull, etc., as suitable for constants of type ']gltype['.])]) for gltype in $1 ; do AC_CACHE_CHECK([for $gltype integer literal suffix], [gl_cv_type_${gltype}_suffix], [eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([$2[ extern $gltype foo; extern $gltype1 foo;]])], [eval gl_cv_type_${gltype}_suffix=\$glsuf]) eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done]) GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result]) done m4_foreach_w([gltype], [$1], [AC_SUBST(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])]) ]) dnl gl_STDINT_INCLUDES AC_DEFUN([gl_STDINT_INCLUDES], [[ /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif ]]) dnl gl_STDINT_TYPE_PROPERTIES dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t dnl of interest to stdint.in.h. AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], [ AC_REQUIRE([gl_MULTIARCH]) if test $APPLE_UNIVERSAL_BUILD = 0; then gl_STDINT_BITSIZEOF([ptrdiff_t size_t], [gl_STDINT_INCLUDES]) fi gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t], [gl_STDINT_INCLUDES]) fi gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99 dnl requirement that wint_t is "unchanged by default argument promotions". dnl In this case gnulib's and override wint_t. dnl Set the variable BITSIZEOF_WINT_T accordingly. if test $GNULIB_OVERRIDES_WINT_T = 1; then BITSIZEOF_WINT_T=32 fi ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. dnl Remove this when we can assume autoconf >= 2.61. m4_ifdef([AC_COMPUTE_INT], [], [ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) ]) gcal-4.1/m4/mode_t.m40000664000000000000000000000234213041163523011205 00000000000000# mode_t.m4 serial 2 dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # For using mode_t, it's sufficient to use AC_TYPE_MODE_T and # include . # Define PROMOTED_MODE_T to the type that is the result of "default argument # promotion" (ISO C 6.5.2.2.(6)) of the type mode_t. AC_DEFUN([gl_PROMOTED_TYPE_MODE_T], [ AC_REQUIRE([AC_TYPE_MODE_T]) AC_CACHE_CHECK([for promoted mode_t type], [gl_cv_promoted_mode_t], [ dnl Assume mode_t promotes to 'int' if and only if it is smaller than 'int', dnl and to itself otherwise. This assumption is not guaranteed by the ISO C dnl standard, but we don't know of any real-world counterexamples. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];]])], [gl_cv_promoted_mode_t='int'], [gl_cv_promoted_mode_t='mode_t']) ]) AC_DEFINE_UNQUOTED([PROMOTED_MODE_T], [$gl_cv_promoted_mode_t], [Define to the type that is the result of default argument promotions of type mode_t.]) ]) gcal-4.1/m4/stdlib_h.m40000664000000000000000000001335513041163523011534 00000000000000# stdlib_h.m4 serial 43 dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_STDLIB_H], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_NEXT_HEADERS([stdlib.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include #if HAVE_SYS_LOADAVG_H # include #endif #if HAVE_RANDOM_H # include #endif ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r qsort_r random random_r realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv]) ]) AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_STDLIB_H_DEFAULTS], [ GNULIB__EXIT=0; AC_SUBST([GNULIB__EXIT]) GNULIB_ATOLL=0; AC_SUBST([GNULIB_ATOLL]) GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX]) GNULIB_CANONICALIZE_FILE_NAME=0; AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME]) GNULIB_GETLOADAVG=0; AC_SUBST([GNULIB_GETLOADAVG]) GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT]) GNULIB_GRANTPT=0; AC_SUBST([GNULIB_GRANTPT]) GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX]) GNULIB_MBTOWC=0; AC_SUBST([GNULIB_MBTOWC]) GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP]) GNULIB_MKOSTEMP=0; AC_SUBST([GNULIB_MKOSTEMP]) GNULIB_MKOSTEMPS=0; AC_SUBST([GNULIB_MKOSTEMPS]) GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP]) GNULIB_MKSTEMPS=0; AC_SUBST([GNULIB_MKSTEMPS]) GNULIB_POSIX_OPENPT=0; AC_SUBST([GNULIB_POSIX_OPENPT]) GNULIB_PTSNAME=0; AC_SUBST([GNULIB_PTSNAME]) GNULIB_PTSNAME_R=0; AC_SUBST([GNULIB_PTSNAME_R]) GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV]) GNULIB_QSORT_R=0; AC_SUBST([GNULIB_QSORT_R]) GNULIB_RANDOM=0; AC_SUBST([GNULIB_RANDOM]) GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R]) GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX]) GNULIB_REALPATH=0; AC_SUBST([GNULIB_REALPATH]) GNULIB_RPMATCH=0; AC_SUBST([GNULIB_RPMATCH]) GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV]) GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV]) GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD]) GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL]) GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL]) GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX]) GNULIB_UNLOCKPT=0; AC_SUBST([GNULIB_UNLOCKPT]) GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV]) GNULIB_WCTOMB=0; AC_SUBST([GNULIB_WCTOMB]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE__EXIT=1; AC_SUBST([HAVE__EXIT]) HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL]) HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME]) HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT]) HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP]) HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP]) HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS]) HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP]) HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS]) HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT]) HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME]) HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R]) HAVE_QSORT_R=1; AC_SUBST([HAVE_QSORT_R]) HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM]) HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H]) HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R]) HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH]) HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH]) HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV]) HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV]) HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL]) HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL]) HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA]) HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H]) HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT]) HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC]) REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC]) REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME]) REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) REPLACE_QSORT_R=0; AC_SUBST([REPLACE_QSORT_R]) REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC]) REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) ]) gcal-4.1/m4/ioctl.m40000664000000000000000000000265613041163523011060 00000000000000# ioctl.m4 serial 4 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_IOCTL], [ AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_SYS_SOCKET]) HAVE_IOCTL=1 if test "$ac_cv_header_winsock2_h" = yes; then dnl Even if the 'socket' module is not used here, another part of the dnl application may use it and pass file descriptors that refer to dnl sockets to the ioctl() function. So enable the support for sockets. HAVE_IOCTL=0 else AC_CHECK_FUNCS([ioctl]) dnl On glibc systems, the second parameter is 'unsigned long int request', dnl not 'int request'. We cannot simply cast the function pointer, but dnl instead need a wrapper. AC_CACHE_CHECK([for ioctl with POSIX signature], [gl_cv_func_ioctl_posix_signature], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[extern #ifdef __cplusplus "C" #endif int ioctl (int, int, ...); ]]) ], [gl_cv_func_ioctl_posix_signature=yes], [gl_cv_func_ioctl_posix_signature=no]) ]) if test $gl_cv_func_ioctl_posix_signature != yes; then REPLACE_IOCTL=1 fi fi ]) gcal-4.1/m4/mbstate_t.m40000664000000000000000000000256713041163523011731 00000000000000# mbstate_t.m4 serial 13 dnl Copyright (C) 2000-2002, 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # From Paul Eggert. # BeOS 5 has but does not define mbstate_t, # so you can't declare an object of that type. # Check for this incompatibility with Standard C. # AC_TYPE_MBSTATE_T # ----------------- AC_DEFUN([AC_TYPE_MBSTATE_T], [ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl for HP-UX 11.11 AC_CACHE_CHECK([for mbstate_t], [ac_cv_type_mbstate_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include ]], [[mbstate_t x; return sizeof x;]])], [ac_cv_type_mbstate_t=yes], [ac_cv_type_mbstate_t=no])]) if test $ac_cv_type_mbstate_t = yes; then AC_DEFINE([HAVE_MBSTATE_T], [1], [Define to 1 if declares mbstate_t.]) else AC_DEFINE([mbstate_t], [int], [Define to a type if does not define.]) fi ]) gcal-4.1/m4/locale-zh.m40000664000000000000000000001222613041163523011616 00000000000000# locale-zh.m4 serial 12 dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a chinese locale with GB18030 encoding. AC_DEFUN([gt_LOCALE_ZH_CN], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { const char *p; /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* ]) LOCALE_ZH_CN=$gt_cv_locale_zh_CN AC_SUBST([LOCALE_ZH_CN]) ]) gcal-4.1/m4/gettimeofday.m40000664000000000000000000001143513041163523012422 00000000000000# serial 21 # Copyright (C) 2001-2003, 2005, 2007, 2009-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Jim Meyering. AC_DEFUN([gl_FUNC_GETTIMEOFDAY], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_SYS_TIME_H]) AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([gettimeofday]) gl_gettimeofday_timezone=void if test $ac_cv_func_gettimeofday != yes; then HAVE_GETTIMEOFDAY=0 else gl_FUNC_GETTIMEOFDAY_CLOBBER AC_CACHE_CHECK([for gettimeofday with POSIX signature], [gl_cv_func_gettimeofday_posix_signature], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include struct timeval c; int gettimeofday (struct timeval *restrict, void *restrict); ]], [[/* glibc uses struct timezone * rather than the POSIX void * if _GNU_SOURCE is defined. However, since the only portable use of gettimeofday uses NULL as the second parameter, and since the glibc definition is actually more typesafe, it is not worth wrapping this to get a compliant signature. */ int (*f) (struct timeval *restrict, void *restrict) = gettimeofday; int x = f (&c, 0); return !(x | c.tv_sec | c.tv_usec); ]])], [gl_cv_func_gettimeofday_posix_signature=yes], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include int gettimeofday (struct timeval *restrict, struct timezone *restrict); ]])], [gl_cv_func_gettimeofday_posix_signature=almost], [gl_cv_func_gettimeofday_posix_signature=no])])]) if test $gl_cv_func_gettimeofday_posix_signature = almost; then gl_gettimeofday_timezone='struct timezone' elif test $gl_cv_func_gettimeofday_posix_signature != yes; then REPLACE_GETTIMEOFDAY=1 fi dnl If we override 'struct timeval', we also have to override gettimeofday. if test $REPLACE_STRUCT_TIMEVAL = 1; then REPLACE_GETTIMEOFDAY=1 fi m4_ifdef([gl_FUNC_TZSET_CLOBBER], [ gl_FUNC_TZSET_CLOBBER case "$gl_cv_func_tzset_clobber" in *yes) REPLACE_GETTIMEOFDAY=1 gl_GETTIMEOFDAY_REPLACE_LOCALTIME AC_DEFINE([tzset], [rpl_tzset], [Define to rpl_tzset if the wrapper function should be used.]) AC_DEFINE([TZSET_CLOBBERS_LOCALTIME], [1], [Define if tzset clobbers localtime's static buffer.]) ;; esac ]) fi AC_DEFINE_UNQUOTED([GETTIMEOFDAY_TIMEZONE], [$gl_gettimeofday_timezone], [Define this to 'void' or 'struct timezone' to match the system's declaration of the second argument to gettimeofday.]) ]) dnl See if gettimeofday clobbers the static buffer that localtime uses dnl for its return value. The gettimeofday function from Mac OS X 10.0.4 dnl (i.e., Darwin 1.3.7) has this problem. dnl dnl If it does, then arrange to use gettimeofday and localtime only via dnl the wrapper functions that work around the problem. AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER], [ AC_REQUIRE([gl_HEADER_SYS_TIME_H]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether gettimeofday clobbers localtime buffer], [gl_cv_func_gettimeofday_clobber], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include #include ]], [[ time_t t = 0; struct tm *lt; struct tm saved_lt; struct timeval tv; lt = localtime (&t); saved_lt = *lt; gettimeofday (&tv, NULL); return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0; ]])], [gl_cv_func_gettimeofday_clobber=no], [gl_cv_func_gettimeofday_clobber=yes], [# When cross-compiling: case "$host_os" in # Guess all is fine on glibc systems. *-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;; # If we don't know, assume the worst. *) gl_cv_func_gettimeofday_clobber="guessing yes" ;; esac ])]) case "$gl_cv_func_gettimeofday_clobber" in *yes) REPLACE_GETTIMEOFDAY=1 gl_GETTIMEOFDAY_REPLACE_LOCALTIME AC_DEFINE([GETTIMEOFDAY_CLOBBERS_LOCALTIME], [1], [Define if gettimeofday clobbers the localtime buffer.]) ;; esac ]) AC_DEFUN([gl_GETTIMEOFDAY_REPLACE_LOCALTIME], [ REPLACE_GMTIME=1 REPLACE_LOCALTIME=1 ]) # Prerequisites of lib/gettimeofday.c. AC_DEFUN([gl_PREREQ_GETTIMEOFDAY], [ AC_CHECK_HEADERS([sys/timeb.h]) AC_CHECK_FUNCS([_ftime]) ]) gcal-4.1/m4/sys_uio_h.m40000664000000000000000000000165413041163523011744 00000000000000# sys_uio_h.m4 serial 1 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_HEADER_SYS_UIO], [ AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([sys/uio.h]) if test $ac_cv_header_sys_uio_h = yes; then HAVE_SYS_UIO_H=1 else HAVE_SYS_UIO_H=0 fi AC_SUBST([HAVE_SYS_UIO_H]) ]) AC_DEFUN([gl_SYS_UIO_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_UIO_H_DEFAULTS], [ ]) gcal-4.1/m4/perror.m40000664000000000000000000000440213041163523011246 00000000000000# perror.m4 serial 6 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_PERROR], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_R]) AC_REQUIRE([gl_FUNC_STRERROR_0]) dnl We intentionally do not check for the broader REPLACE_STRERROR_R, dnl since on glibc systems, strerror_r is replaced only for signature dnl issues, and perror is just fine. Rather, we only want to dnl replace perror if strerror_r was replaced for a content fix. if test "$ERRNO_H:$REPLACE_STRERROR_0" != :0; then dnl The system's perror() cannot know about the new errno values we add dnl to , or any fix for strerror(0). Replace it. REPLACE_PERROR=1 fi case ${gl_cv_func_strerror_r_works-unset} in unset|*yes) AC_CACHE_CHECK([whether perror matches strerror], [gl_cv_func_perror_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include #include ]], [[char *str = strerror (-1); if (!getenv("CONFTEST_OUTPUT")) return 0; if (!str) str = ""; puts (str); errno = -1; perror (""); return 0; ]])], [if CONFTEST_OUTPUT=1 ./conftest$EXEEXT >conftest.txt1 2>conftest.txt2 \ && cmp conftest.txt1 conftest.txt2 >/dev/null; then gl_cv_func_perror_works=yes else gl_cv_func_perror_works=no fi rm -rf conftest.txt1 conftest.txt2], [gl_cv_func_perror_works=no], [dnl Guess no when cross-compiling. gl_cv_func_perror_works="guessing no" ]) ]) if test "$gl_cv_func_perror_works" != yes; then REPLACE_PERROR=1 fi ;; *) dnl The system's perror() probably inherits the bugs in the dnl system's strerror_r(). Replace it. REPLACE_PERROR=1 ;; esac ]) gcal-4.1/m4/localeconv.m40000664000000000000000000000114713041163523012065 00000000000000# localeconv.m4 serial 1 dnl Copyright (C) 2012-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_LOCALECONV], [ AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) AC_REQUIRE([gl_LOCALE_H]) if test $REPLACE_STRUCT_LCONV = 1; then REPLACE_LOCALECONV=1 fi ]) # Prerequisites of lib/localeconv.c. AC_DEFUN([gl_PREREQ_LOCALECONV], [ AC_CHECK_MEMBERS([struct lconv.decimal_point], [], [], [[#include ]]) ]) gcal-4.1/m4/sigaction.m40000664000000000000000000000232513041163523011717 00000000000000# sigaction.m4 serial 7 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Determine if sigaction interface is present. AC_DEFUN([gl_SIGACTION], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([sigaction]) if test $ac_cv_func_sigaction = yes; then AC_CHECK_MEMBERS([struct sigaction.sa_sigaction], , , [[#include ]]) if test $ac_cv_member_struct_sigaction_sa_sigaction = no; then HAVE_STRUCT_SIGACTION_SA_SIGACTION=0 fi else HAVE_SIGACTION=0 fi ]) # Prerequisites of the part of lib/signal.in.h and of lib/sigaction.c. AC_DEFUN([gl_PREREQ_SIGACTION], [ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([AC_TYPE_UID_T]) AC_REQUIRE([gl_PREREQ_SIG_HANDLER_H]) AC_CHECK_FUNCS_ONCE([sigaltstack siginterrupt]) AC_CHECK_TYPES([siginfo_t], [], [], [[ #include ]]) if test $ac_cv_type_siginfo_t = no; then HAVE_SIGINFO_T=0 fi ]) # Prerequisites of lib/sig-handler.h. AC_DEFUN([gl_PREREQ_SIG_HANDLER_H], [:]) gcal-4.1/m4/lib-link.m40000664000000000000000000010044313041163523011440 00000000000000# lib-link.m4 serial 26 (gettext-0.18.2) dnl Copyright (C) 2001-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.54]) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[m4_translit([$1],[./+-], [____])]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes popdef([NAME]) popdef([Name]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. The missing-message dnl defaults to 'no' and may contain additional hints for the user. dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[m4_translit([$1],[./+-], [____])]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, dnl because these -l options might require -L options that are present in dnl LIBS. -l options benefit only from the -L options listed before it. dnl Otherwise, add it to the front of LIBS, because it may be a static dnl library that depends on another static library that is present in LIBS. dnl Static libraries benefit only from the static libraries listed after dnl it. case " $LIB[]NAME" in *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; *) LIBS="$LIB[]NAME $LIBS" ;; esac AC_LINK_IFELSE( [AC_LANG_PROGRAM([[$3]], [[$4]])], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= LIB[]NAME[]_PREFIX= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) popdef([NAME]) popdef([Name]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl acl_libext, dnl acl_shlibext, dnl acl_libname_spec, dnl acl_library_names_spec, dnl acl_hardcode_libdir_flag_spec, dnl acl_hardcode_libdir_separator, dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Tell automake >= 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE([rpath], [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_FROMPACKAGE(name, package) dnl declares that libname comes from the given package. The configure file dnl will then not have a --with-libname-prefix option but a dnl --with-package-prefix option. Several libraries can come from the same dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar dnl macro call that searches for libname. AC_DEFUN([AC_LIB_FROMPACKAGE], [ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_frompackage_]NAME, [$2]) popdef([NAME]) pushdef([PACK],[$2]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_libsinpackage_]PACKUP, m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) popdef([PACKUP]) popdef([PACK]) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) dnl Autoconf >= 2.61 supports dots in --with options. pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH(P_A_C_K[-prefix], [[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been dnl computed. So it has to be reset here. HAVE_LIB[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) popdef([NAME]) ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) gcal-4.1/m4/ftell.m40000664000000000000000000000100513041163523011037 00000000000000# ftell.m4 serial 3 dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FTELL], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_FTELLO]) dnl When ftello needs fixes, ftell needs them too. if test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1; then REPLACE_FTELL=1 fi ]) gcal-4.1/m4/strtol.m40000664000000000000000000000053713041163523011271 00000000000000# strtol.m4 serial 6 dnl Copyright (C) 2002-2003, 2006, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRTOL], [ AC_CHECK_FUNCS([strtol]) ]) gcal-4.1/m4/sys_types_h.m40000664000000000000000000000261213041163523012307 00000000000000# sys_types_h.m4 serial 6 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_SYS_TYPES_H], [ AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) gl_NEXT_HEADERS([sys/types.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Whether to override the 'off_t' type. AC_REQUIRE([gl_TYPE_OFF_T]) ]) AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS], [ ]) # This works around a buggy version in autoconf <= 2.69. # See m4_version_prereq([2.70], [], [ # This is taken from the following Autoconf patch: # http://git.sv.gnu.org/cgit/autoconf.git/commit/?id=e17a30e98 m4_undefine([AC_HEADER_MAJOR]) AC_DEFUN([AC_HEADER_MAJOR], [AC_CHECK_HEADERS_ONCE([sys/types.h]) AC_CHECK_HEADER([sys/mkdev.h], [AC_DEFINE([MAJOR_IN_MKDEV], [1], [Define to 1 if `major', `minor', and `makedev' are declared in .])]) if test $ac_cv_header_sys_mkdev_h = no; then AC_CHECK_HEADER([sys/sysmacros.h], [AC_DEFINE([MAJOR_IN_SYSMACROS], [1], [Define to 1 if `major', `minor', and `makedev' are declared in .])]) fi ]) ]) gcal-4.1/m4/langinfo_h.m40000664000000000000000000000672113041163523012047 00000000000000# langinfo_h.m4 serial 7 dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_LANGINFO_H], [ AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) dnl Persuade glibc-2.0.6 to define CODESET. AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([langinfo.h]) dnl Determine whether exists. It is missing on mingw and BeOS. HAVE_LANGINFO_CODESET=0 HAVE_LANGINFO_T_FMT_AMPM=0 HAVE_LANGINFO_ERA=0 HAVE_LANGINFO_YESEXPR=0 AC_CHECK_HEADERS_ONCE([langinfo.h]) if test $ac_cv_header_langinfo_h = yes; then HAVE_LANGINFO_H=1 dnl Determine what defines. CODESET and ERA etc. are missing dnl on OpenBSD 3.8. T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3. AC_CACHE_CHECK([whether langinfo.h defines CODESET], [gl_cv_header_langinfo_codeset], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = CODESET; ]])], [gl_cv_header_langinfo_codeset=yes], [gl_cv_header_langinfo_codeset=no]) ]) if test $gl_cv_header_langinfo_codeset = yes; then HAVE_LANGINFO_CODESET=1 fi AC_CACHE_CHECK([whether langinfo.h defines T_FMT_AMPM], [gl_cv_header_langinfo_t_fmt_ampm], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = T_FMT_AMPM; ]])], [gl_cv_header_langinfo_t_fmt_ampm=yes], [gl_cv_header_langinfo_t_fmt_ampm=no]) ]) if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then HAVE_LANGINFO_T_FMT_AMPM=1 fi AC_CACHE_CHECK([whether langinfo.h defines ERA], [gl_cv_header_langinfo_era], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = ERA; ]])], [gl_cv_header_langinfo_era=yes], [gl_cv_header_langinfo_era=no]) ]) if test $gl_cv_header_langinfo_era = yes; then HAVE_LANGINFO_ERA=1 fi AC_CACHE_CHECK([whether langinfo.h defines YESEXPR], [gl_cv_header_langinfo_yesexpr], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include int a = YESEXPR; ]])], [gl_cv_header_langinfo_yesexpr=yes], [gl_cv_header_langinfo_yesexpr=no]) ]) if test $gl_cv_header_langinfo_yesexpr = yes; then HAVE_LANGINFO_YESEXPR=1 fi else HAVE_LANGINFO_H=0 fi AC_SUBST([HAVE_LANGINFO_H]) AC_SUBST([HAVE_LANGINFO_CODESET]) AC_SUBST([HAVE_LANGINFO_T_FMT_AMPM]) AC_SUBST([HAVE_LANGINFO_ERA]) AC_SUBST([HAVE_LANGINFO_YESEXPR]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [nl_langinfo]) ]) AC_DEFUN([gl_LANGINFO_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_LANGINFO_H_DEFAULTS], [ GNULIB_NL_LANGINFO=0; AC_SUBST([GNULIB_NL_LANGINFO]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_NL_LANGINFO=1; AC_SUBST([HAVE_NL_LANGINFO]) REPLACE_NL_LANGINFO=0; AC_SUBST([REPLACE_NL_LANGINFO]) ]) gcal-4.1/m4/stdbool.m40000664000000000000000000000672713041163523011417 00000000000000# Check for stdbool.h that conforms to C99. dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #serial 7 # Prepare for substituting if it is not supported. AC_DEFUN([AM_STDBOOL_H], [ AC_REQUIRE([AC_CHECK_HEADER_STDBOOL]) # Define two additional variables used in the Makefile substitution. if test "$ac_cv_header_stdbool_h" = yes; then STDBOOL_H='' else STDBOOL_H='stdbool.h' fi AC_SUBST([STDBOOL_H]) AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"]) if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 else HAVE__BOOL=0 fi AC_SUBST([HAVE__BOOL]) ]) # AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future. AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H]) # This version of the macro is needed in autoconf <= 2.68. AC_DEFUN([AC_CHECK_HEADER_STDBOOL], [AC_CACHE_CHECK([for stdbool.h that conforms to C99], [ac_cv_header_stdbool_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #ifdef __cplusplus typedef bool Bool; #else typedef _Bool Bool; #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { Bool s: 1; Bool t; bool u: 1; bool v; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ Bool q = true; Bool *pq = &q; bool *qq = &q; ]], [[ bool e = &s; *pq |= q; *pq |= ! q; *qq |= q; *qq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq + !qq); ]])], [ac_cv_header_stdbool_h=yes], [ac_cv_header_stdbool_h=no])]) AC_CHECK_TYPES([_Bool]) ]) gcal-4.1/m4/00gnulib.m40000664000000000000000000000415213041163523011357 00000000000000# 00gnulib.m4 serial 3 dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This file must be named something that sorts before all other dnl gnulib-provided .m4 files. It is needed until such time as we can dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE and dnl m4_divert semantics. # Until autoconf 2.63, handling of the diversion stack required m4_init # to be called first; but this does not happen with aclocal. Wrapping # the entire execution in another layer of the diversion stack fixes this. # Worse, prior to autoconf 2.62, m4_wrap depended on the underlying m4 # for whether it was FIFO or LIFO; in order to properly balance with # m4_init, we need to undo our push just before anything wrapped within # the m4_init body. The way to ensure this is to wrap both sides of # m4_init with a one-shot macro that does the pop at the right time. m4_ifndef([_m4_divert_diversion], [m4_divert_push([KILL]) m4_define([gl_divert_fixup], [m4_divert_pop()m4_define([$0])]) m4_define([m4_init], [gl_divert_fixup()]m4_defn([m4_init])[gl_divert_fixup()])]) # AC_DEFUN_ONCE([NAME], VALUE) # ---------------------------- # Define NAME to expand to VALUE on the first use (whether by direct # expansion, or by AC_REQUIRE), and to nothing on all subsequent uses. # Avoid bugs in AC_REQUIRE in Autoconf 2.63 and earlier. This # definition is slower than the version in Autoconf 2.64, because it # can only use interfaces that existed since 2.59; but it achieves the # same effect. Quoting is necessary to avoid confusing Automake. m4_version_prereq([2.63.263], [], [m4_define([AC][_DEFUN_ONCE], [AC][_DEFUN([$1], [AC_REQUIRE([_gl_DEFUN_ONCE([$1])], [m4_indir([_gl_DEFUN_ONCE([$1])])])])]dnl [AC][_DEFUN([_gl_DEFUN_ONCE([$1])], [$2])])]) # gl_00GNULIB # ----------- # Witness macro that this file has been included. Needed to force # Automake to include this file prior to all other gnulib .m4 files. AC_DEFUN([gl_00GNULIB]) gcal-4.1/m4/memchr.m40000664000000000000000000000534013041163523011212 00000000000000# memchr.m4 serial 12 dnl Copyright (C) 2002-2004, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_FUNC_MEMCHR], [ dnl Check for prerequisites for memory fence checks. gl_FUNC_MMAP_ANON AC_CHECK_HEADERS_ONCE([sys/mman.h]) AC_CHECK_FUNCS_ONCE([mprotect]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) m4_ifdef([gl_FUNC_MEMCHR_OBSOLETE], [ dnl These days, we assume memchr is present. But if support for old dnl platforms is desired: AC_CHECK_FUNCS_ONCE([memchr]) if test $ac_cv_func_memchr = no; then HAVE_MEMCHR=0 fi ]) if test $HAVE_MEMCHR = 1; then # Detect platform-specific bugs in some versions of glibc: # memchr should not dereference anything with length 0 # http://bugzilla.redhat.com/499689 # memchr should not dereference overestimated length after a match # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 # http://sourceware.org/bugzilla/show_bug.cgi?id=10162 # Assume that memchr works on platforms that lack mprotect. AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include #if HAVE_SYS_MMAN_H # include # include # include # include # ifndef MAP_FILE # define MAP_FILE 0 # endif #endif ]], [[ int result = 0; char *fence = NULL; #if HAVE_SYS_MMAN_H && HAVE_MPROTECT # if HAVE_MAP_ANONYMOUS const int flags = MAP_ANONYMOUS | MAP_PRIVATE; const int fd = -1; # else /* !HAVE_MAP_ANONYMOUS */ const int flags = MAP_FILE | MAP_PRIVATE; int fd = open ("/dev/zero", O_RDONLY, 0666); if (fd >= 0) # endif { int pagesize = getpagesize (); char *two_pages = (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, flags, fd, 0); if (two_pages != (char *)(-1) && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) fence = two_pages + pagesize; } #endif if (fence) { if (memchr (fence, 0, 0)) result |= 1; strcpy (fence - 9, "12345678"); if (memchr (fence - 9, 0, 79) != fence - 1) result |= 2; if (memchr (fence - 1, 0, 3) != fence - 1) result |= 4; } return result; ]])], [gl_cv_func_memchr_works=yes], [gl_cv_func_memchr_works=no], [dnl Be pessimistic for now. gl_cv_func_memchr_works="guessing no"])]) if test "$gl_cv_func_memchr_works" != yes; then REPLACE_MEMCHR=1 fi fi ]) # Prerequisites of lib/memchr.c. AC_DEFUN([gl_PREREQ_MEMCHR], [ AC_CHECK_HEADERS([bp-sym.h]) ]) gcal-4.1/m4/floor.m40000664000000000000000000000564513041163523011070 00000000000000# floor.m4 serial 8 dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FLOOR], [ m4_divert_text([DEFAULTS], [gl_floor_required=plain]) AC_REQUIRE([gl_MATH_H_DEFAULTS]) dnl Test whether floor() can be used without libm. gl_FUNC_FLOOR_LIBS if test "$FLOOR_LIBM" = "?"; then FLOOR_LIBM= fi m4_ifdef([gl_FUNC_FLOOR_IEEE], [ if test $gl_floor_required = ieee && test $REPLACE_FLOOR = 0; then AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether floor works according to ISO C 99 with IEC 60559], [gl_cv_func_floor_ieee], [ save_LIBS="$LIBS" LIBS="$LIBS $FLOOR_LIBM" AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include ]gl_DOUBLE_MINUS_ZERO_CODE[ ]gl_DOUBLE_SIGNBIT_CODE[ static double dummy (double f) { return 0; } int main (int argc, char *argv[]) { double (*my_floor) (double) = argc ? floor : dummy; /* Test whether floor (-0.0) is -0.0. */ if (signbitd (minus_zerod) && !signbitd (my_floor (minus_zerod))) return 1; return 0; } ]])], [gl_cv_func_floor_ieee=yes], [gl_cv_func_floor_ieee=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_floor_ieee="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_floor_ieee="guessing no" ;; esac ]) LIBS="$save_LIBS" ]) case "$gl_cv_func_floor_ieee" in *yes) ;; *) REPLACE_FLOOR=1 ;; esac fi ]) if test $REPLACE_FLOOR = 1; then dnl No libraries are needed to link lib/floor.c. FLOOR_LIBM= fi AC_SUBST([FLOOR_LIBM]) ]) # Determines the libraries needed to get the floor() function. # Sets FLOOR_LIBM. AC_DEFUN([gl_FUNC_FLOOR_LIBS], [ gl_CACHE_VAL_SILENT([gl_cv_func_floor_libm], [ gl_cv_func_floor_libm=? AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include double x;]], [[x = floor(x);]])], [gl_cv_func_floor_libm=]) if test "$gl_cv_func_floor_libm" = "?"; then save_LIBS="$LIBS" LIBS="$LIBS -lm" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include double x;]], [[x = floor(x);]])], [gl_cv_func_floor_libm="-lm"]) LIBS="$save_LIBS" fi ]) FLOOR_LIBM="$gl_cv_func_floor_libm" ]) gcal-4.1/m4/hard-locale.m40000664000000000000000000000056213041163523012113 00000000000000# hard-locale.m4 serial 8 dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl No prerequisites of lib/hard-locale.c. AC_DEFUN([gl_HARD_LOCALE], [ : ]) gcal-4.1/m4/close.m40000664000000000000000000000214613041163523011045 00000000000000# close.m4 serial 8 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_CLOSE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_CLOSE=1 fi m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [ gl_PREREQ_SYS_H_WINSOCK2 if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then dnl Even if the 'socket' module is not used here, another part of the dnl application may use it and pass file descriptors that refer to dnl sockets to the close() function. So enable the support for sockets. REPLACE_CLOSE=1 fi ]) dnl Replace close() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ if test $REPLACE_CLOSE = 0; then gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_CLOSE=1 fi fi ]) ]) gcal-4.1/m4/acos.m40000664000000000000000000000055613041163523010670 00000000000000# acos.m4 serial 1 dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ACOS], [ dnl Determine ACOS_LIBM. gl_COMMON_DOUBLE_MATHFUNC([acos]) ]) gcal-4.1/m4/longlong.m40000664000000000000000000001120313041163523011551 00000000000000# longlong.m4 serial 17 dnl Copyright (C) 1999-2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_LONG_LONG_INT if 'long long int' works. # This fixes a bug in Autoconf 2.61, and can be faster # than what's in Autoconf 2.62 through 2.68. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), HAVE_LONG_LONG_INT will not be # defined. In this case you can treat 'long long int' like 'long int'. AC_DEFUN([AC_TYPE_LONG_LONG_INT], [ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], [ac_cv_type_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_long_long_int = yes; then dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. dnl If cross compiling, assume the bug is not important, since dnl nobody cross compiles for this platform as far as we know. AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[@%:@include @%:@ifndef LLONG_MAX @%:@ define HALF \ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) @%:@ define LLONG_MAX (HALF - 1 + HALF) @%:@endif]], [[long long int n = 1; int i; for (i = 0; ; i++) { long long int m = n << i; if (m >> i != n) return 1; if (LLONG_MAX / 2 < m) break; } return 0;]])], [], [ac_cv_type_long_long_int=no], [:]) fi fi]) if test $ac_cv_type_long_long_int = yes; then AC_DEFINE([HAVE_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'long long int'.]) fi ]) # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. # This fixes a bug in Autoconf 2.61, and can be faster # than what's in Autoconf 2.62 through 2.68. # Note: If the type 'unsigned long long int' exists but is only 32 bits # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT # will not be defined. In this case you can treat 'unsigned long long int' # like 'unsigned long int'. AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], [ AC_CACHE_CHECK([for unsigned long long int], [ac_cv_type_unsigned_long_long_int], [ac_cv_type_unsigned_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then AC_LINK_IFELSE( [_AC_TYPE_LONG_LONG_SNIPPET], [], [ac_cv_type_unsigned_long_long_int=no]) fi]) if test $ac_cv_type_unsigned_long_long_int = yes; then AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'unsigned long long int'.]) fi ]) # Expands to a C program that can be used to test for simultaneous support # of 'long long' and 'unsigned long long'. We don't want to say that # 'long long' is available if 'unsigned long long' is not, or vice versa, # because too many programs rely on the symmetry between signed and unsigned # integer types (excluding 'bool'). AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], [ AC_LANG_PROGRAM( [[/* For now, do not test the preprocessor; as of 2007 there are too many implementations with broken preprocessors. Perhaps this can be revisited in 2012. In the meantime, code should not expect #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63;]], [[/* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull));]]) ]) gcal-4.1/m4/intlmacosx.m40000644000000000000000000000456513041163512012124 00000000000000# intlmacosx.m4 serial 1 (gettext-0.17) dnl Copyright (C) 2004-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Checks for special options needed on MacOS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in MacOS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], gt_cv_func_CFPreferencesCopyAppValue, [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_TRY_LINK([#include ], [CFPreferencesCopyAppValue(NULL, NULL)], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in MacOS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) gcal-4.1/m4/ceil.m40000664000000000000000000000601113041163523010647 00000000000000# ceil.m4 serial 9 dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_CEIL], [ m4_divert_text([DEFAULTS], [gl_ceil_required=plain]) AC_REQUIRE([gl_MATH_H_DEFAULTS]) dnl Test whether ceil() can be used without libm. gl_FUNC_CEIL_LIBS if test "$CEIL_LIBM" = "?"; then CEIL_LIBM= fi m4_ifdef([gl_FUNC_CEIL_IEEE], [ if test $gl_ceil_required = ieee && test $REPLACE_CEIL = 0; then AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether ceil works according to ISO C 99 with IEC 60559], [gl_cv_func_ceil_ieee], [ save_LIBS="$LIBS" LIBS="$LIBS $CEIL_LIBM" AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include ]gl_DOUBLE_MINUS_ZERO_CODE[ ]gl_DOUBLE_SIGNBIT_CODE[ static double dummy (double f) { return 0; } int main (int argc, char *argv[]) { double (*my_ceil) (double) = argc ? ceil : dummy; int result = 0; /* Test whether ceil (-0.0) is -0.0. */ if (signbitd (minus_zerod) && !signbitd (my_ceil (minus_zerod))) result |= 1; /* Test whether ceil (-0.3) is -0.0. */ if (signbitd (-0.3) && !signbitd (my_ceil (-0.3))) result |= 2; return result; } ]])], [gl_cv_func_ceil_ieee=yes], [gl_cv_func_ceil_ieee=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_ceil_ieee="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_ceil_ieee="guessing no" ;; esac ]) LIBS="$save_LIBS" ]) case "$gl_cv_func_ceil_ieee" in *yes) ;; *) REPLACE_CEIL=1 ;; esac fi ]) if test $REPLACE_CEIL = 1; then dnl No libraries are needed to link lib/ceil.c. CEIL_LIBM= fi AC_SUBST([CEIL_LIBM]) ]) # Determines the libraries needed to get the ceil() function. # Sets CEIL_LIBM. AC_DEFUN([gl_FUNC_CEIL_LIBS], [ gl_CACHE_VAL_SILENT([gl_cv_func_ceil_libm], [ gl_cv_func_ceil_libm=? AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include double x;]], [[x = ceil(x);]])], [gl_cv_func_ceil_libm=]) if test "$gl_cv_func_ceil_libm" = "?"; then save_LIBS="$LIBS" LIBS="$LIBS -lm" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include double x;]], [[x = ceil(x);]])], [gl_cv_func_ceil_libm="-lm"]) LIBS="$save_LIBS" fi ]) CEIL_LIBM="$gl_cv_func_ceil_libm" ]) gcal-4.1/m4/configmake.m40000664000000000000000000000402113041163523012035 00000000000000# configmake.m4 serial 2 dnl Copyright (C) 2010-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_CONFIGMAKE_PREP # ------------------ # Guarantee all of the standard directory variables, even when used with # autoconf 2.59 (datarootdir wasn't supported until 2.59c, and runstatedir # in 2.70) or automake 1.9.6 (pkglibexecdir wasn't supported until 1.10b, # and runstatedir in 1.14.1). AC_DEFUN([gl_CONFIGMAKE_PREP], [ dnl Technically, datadir should default to datarootdir. But if dnl autoconf is too old to provide datarootdir, then reversing the dnl definition is a reasonable compromise. Only AC_SUBST a variable dnl if it was not already defined earlier by autoconf. if test "x$datarootdir" = x; then AC_SUBST([datarootdir], ['${datadir}']) fi dnl Copy the approach used in autoconf 2.60. if test "x$docdir" = x; then AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], ['${datarootdir}/doc/${PACKAGE_TARNAME}'], ['${datarootdir}/doc/${PACKAGE}'])]) fi dnl The remaining variables missing from autoconf 2.59 are easier. if test "x$htmldir" = x; then AC_SUBST([htmldir], ['${docdir}']) fi if test "x$dvidir" = x; then AC_SUBST([dvidir], ['${docdir}']) fi if test "x$pdfdir" = x; then AC_SUBST([pdfdir], ['${docdir}']) fi if test "x$psdir" = x; then AC_SUBST([psdir], ['${docdir}']) fi if test "x$lispdir" = x; then AC_SUBST([lispdir], ['${datarootdir}/emacs/site-lisp']) fi if test "x$localedir" = x; then AC_SUBST([localedir], ['${datarootdir}/locale']) fi dnl Added in autoconf 2.70 if test "x$runstatedir" = x; then AC_SUBST([runstatedir], ['${localstatedir}/run']) fi dnl Automake 1.9.6 only lacks pkglibexecdir; and since 1.11 merely dnl provides it without AC_SUBST, this blind use of AC_SUBST is safe. AC_SUBST([pkglibexecdir], ['${libexecdir}/${PACKAGE}']) ]) gcal-4.1/m4/lock.m40000664000000000000000000000303713041163523010670 00000000000000# lock.m4 serial 14 dnl Copyright (C) 2005-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([gl_LOCK], [ AC_REQUIRE([gl_THREADLIB]) if test "$gl_threads_api" = posix; then # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. has_rwlock=false AC_CHECK_TYPE([pthread_rwlock_t], [has_rwlock=true AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1], [Define if the POSIX multithreading library has read/write locks.])], [], [#include ]) if $has_rwlock; then gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER fi # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. AC_COMPILE_IFELSE([ AC_LANG_PROGRAM( [[#include ]], [[ #if __FreeBSD__ == 4 error "No, in FreeBSD 4.0 recursive mutexes actually don't work." #elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." #else int x = (int)PTHREAD_MUTEX_RECURSIVE; return !x; #endif ]])], [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], [1], [Define if the defines PTHREAD_MUTEX_RECURSIVE.])]) fi gl_PREREQ_LOCK ]) # Prerequisites of lib/glthread/lock.c. AC_DEFUN([gl_PREREQ_LOCK], [:]) gcal-4.1/m4/off_t.m40000664000000000000000000000100613041163523011027 00000000000000# off_t.m4 serial 1 dnl Copyright (C) 2012-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Check whether to override the 'off_t' type. dnl Set WINDOWS_64_BIT_OFF_T. AC_DEFUN([gl_TYPE_OFF_T], [ m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([gl_LARGEFILE]) ], [ WINDOWS_64_BIT_OFF_T=0 ]) AC_SUBST([WINDOWS_64_BIT_OFF_T]) ]) gcal-4.1/m4/pthread_rwlock_rdlock.m40000664000000000000000000001274313041163523014312 00000000000000# pthread_rwlock_rdlock.m4 serial 1 dnl Copyright (C) 2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Inspired by dnl https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/2-2.c dnl by Intel Corporation. dnl Test whether in a situation where dnl - an rwlock is taken by a reader and has a writer waiting, dnl - an additional reader requests the lock, dnl - the waiting writer and the requesting reader threads have the same dnl priority, dnl the requesting reader thread gets blocked, so that at some point the dnl waiting writer can acquire the lock. dnl Without such a guarantee, when there a N readers and each of the readers dnl spends more than 1/Nth of the time with the lock held, there is a high dnl probability that the waiting writer will not get the lock in a given finite dnl time, a phenomenon called "writer starvation". dnl Without such a guarantee, applications have a hard time avoiding writer dnl starvation. dnl dnl POSIX:2008 makes this requirement only for implementations that support TPS dnl (Thread Priority Scheduling) and only for the scheduling policies SCHED_FIFO dnl and SCHED_RR, see dnl http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_rdlock.html dnl but test verifies the guarantee regardless of TPS and regardless of dnl scheduling policy. AC_DEFUN([gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER], [ AC_REQUIRE([gl_THREADLIB_EARLY]) AC_CACHE_CHECK([whether pthread_rwlock_rdlock prefers a writer to a reader], [gl_cv_pthread_rwlock_rdlock_prefer_writer], [save_LIBS="$LIBS" LIBS="$LIBS $LIBMULTITHREAD" AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include #include #define SUCCEED() exit (0) #define FAILURE() exit (1) #define UNEXPECTED(n) (exit (10 + (n))) /* The main thread creates the waiting writer and the requesting reader threads in the default way; this guarantees that they have the same priority. We can reuse the main thread as first reader thread. */ static pthread_rwlock_t lock; static pthread_t reader1; static pthread_t writer; static pthread_t reader2; static pthread_t timer; /* Used to pass control from writer to reader2 and from reader2 to timer, as in a relay race. Passing control from one running thread to another running thread is most likely faster than to create the second thread. */ static pthread_mutex_t baton; static void * timer_func (void *ignored) { /* Step 13 (can be before or after step 12): The timer thread takes the baton, then waits a moment to make sure it can tell whether the second reader thread is blocked at step 12. */ if (pthread_mutex_lock (&baton)) UNEXPECTED (13); usleep (100000); /* By the time we get here, it's clear that the second reader thread is blocked at step 12. This is the desired behaviour. */ SUCCEED (); } static void * reader2_func (void *ignored) { int err; /* Step 8 (can be before or after step 7): The second reader thread takes the baton, then waits a moment to make sure the writer thread has reached step 7. */ if (pthread_mutex_lock (&baton)) UNEXPECTED (8); usleep (100000); /* Step 9: The second reader thread requests the lock. */ err = pthread_rwlock_tryrdlock (&lock); if (err == 0) FAILURE (); else if (err != EBUSY) UNEXPECTED (9); /* Step 10: Launch a timer, to test whether the next call blocks. */ if (pthread_create (&timer, NULL, timer_func, NULL)) UNEXPECTED (10); /* Step 11: Release the baton. */ if (pthread_mutex_unlock (&baton)) UNEXPECTED (11); /* Step 12: The second reader thread requests the lock. */ err = pthread_rwlock_rdlock (&lock); if (err == 0) FAILURE (); else UNEXPECTED (12); } static void * writer_func (void *ignored) { /* Step 4: Take the baton, so that the second reader thread does not go ahead too early. */ if (pthread_mutex_lock (&baton)) UNEXPECTED (4); /* Step 5: Create the second reader thread. */ if (pthread_create (&reader2, NULL, reader2_func, NULL)) UNEXPECTED (5); /* Step 6: Release the baton. */ if (pthread_mutex_unlock (&baton)) UNEXPECTED (6); /* Step 7: The writer thread requests the lock. */ if (pthread_rwlock_wrlock (&lock)) UNEXPECTED (7); return NULL; } int main () { reader1 = pthread_self (); /* Step 1: The main thread initializes the lock and the baton. */ if (pthread_rwlock_init (&lock, NULL)) UNEXPECTED (1); if (pthread_mutex_init (&baton, NULL)) UNEXPECTED (1); /* Step 2: The main thread acquires the lock as a reader. */ if (pthread_rwlock_rdlock (&lock)) UNEXPECTED (2); /* Step 3: Create the writer thread. */ if (pthread_create (&writer, NULL, writer_func, NULL)) UNEXPECTED (3); /* Job done. Go to sleep. */ for (;;) { sleep (1); } } ]])], [gl_cv_pthread_rwlock_rdlock_prefer_writer=yes], [gl_cv_pthread_rwlock_rdlock_prefer_writer=no], [gl_cv_pthread_rwlock_rdlock_prefer_writer="guessing yes"]) LIBS="$save_LIBS" ]) case "$gl_cv_pthread_rwlock_rdlock_prefer_writer" in *yes) AC_DEFINE([HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER], [1], [Define if the 'pthread_rwlock_rdlock' function prefers a writer to a reader.]) ;; esac ]) gcal-4.1/m4/fcntl_h.m40000664000000000000000000000327113041163523011355 00000000000000# serial 15 # Configure fcntl.h. dnl Copyright (C) 2006-2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. AC_DEFUN([gl_FCNTL_H], [ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_REQUIRE([gl_FCNTL_O_FLAGS]) gl_NEXT_HEADERS([fcntl.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, if it is not common dnl enough to be declared everywhere. gl_WARN_ON_USE_PREPARE([[#include ]], [fcntl openat]) ]) AC_DEFUN([gl_FCNTL_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_FCNTL_H_DEFAULTS], [ GNULIB_FCNTL=0; AC_SUBST([GNULIB_FCNTL]) GNULIB_NONBLOCKING=0; AC_SUBST([GNULIB_NONBLOCKING]) GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN]) GNULIB_OPENAT=0; AC_SUBST([GNULIB_OPENAT]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL]) REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT]) ]) gcal-4.1/m4/po.m40000644000000000000000000004460613041163512010361 00000000000000# po.m4 serial 15 (gettext-0.17) dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ(2.50) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake AC_REQUIRE([AM_NLS])dnl dnl Release version of the gettext macros. This is used to ensure that dnl the gettext macros and po/Makefile.in.in are in sync. AC_SUBST([GETTEXT_MACRO_VERSION], [0.17]) dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat < "$ac_file.tmp" if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" < /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <> "$ac_file.tmp" < int ullw = ULLONG_WIDTH;]])], [gl_cv_header_limits_width=yes], [gl_cv_header_limits_width=no])]) if test "$gl_cv_header_limits_width" = yes; then LIMITS_H= else LIMITS_H=limits.h fi AC_SUBST([LIMITS_H]) AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) ]) gcal-4.1/m4/sys_time_h.m40000664000000000000000000000743213041163523012106 00000000000000# Configure a replacement for . # serial 8 # Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert and Martin Lambers. AC_DEFUN([gl_HEADER_SYS_TIME_H], [ dnl Use AC_REQUIRE here, so that the REPLACE_GETTIMEOFDAY=0 statement dnl below is expanded once only, before all REPLACE_GETTIMEOFDAY=1 dnl statements that occur in other macros. AC_REQUIRE([gl_HEADER_SYS_TIME_H_BODY]) ]) AC_DEFUN([gl_HEADER_SYS_TIME_H_BODY], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS]) AC_CHECK_HEADERS_ONCE([sys/time.h]) gl_CHECK_NEXT_HEADERS([sys/time.h]) if test $ac_cv_header_sys_time_h != yes; then HAVE_SYS_TIME_H=0 fi dnl On native Windows with MSVC, 'struct timeval' is defined in dnl only. So include that header in the list. gl_PREREQ_SYS_H_WINSOCK2 AC_CACHE_CHECK([for struct timeval], [gl_cv_sys_struct_timeval], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#if HAVE_SYS_TIME_H #include #endif #include #if HAVE_WINSOCK2_H # include #endif ]], [[static struct timeval x; x.tv_sec = x.tv_usec;]])], [gl_cv_sys_struct_timeval=yes], [gl_cv_sys_struct_timeval=no]) ]) if test $gl_cv_sys_struct_timeval != yes; then HAVE_STRUCT_TIMEVAL=0 else dnl On native Windows with a 64-bit 'time_t', 'struct timeval' is defined dnl (in and for mingw64, in only dnl for MSVC) with a tv_sec field of type 'long' (32-bit!), which is dnl smaller than the 'time_t' type mandated by POSIX. dnl On OpenBSD 5.1 amd64, tv_sec is 64 bits and time_t 32 bits, but dnl that is good enough. AC_CACHE_CHECK([for wide-enough struct timeval.tv_sec member], [gl_cv_sys_struct_timeval_tv_sec], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#if HAVE_SYS_TIME_H #include #endif #include #if HAVE_WINSOCK2_H # include #endif ]], [[static struct timeval x; typedef int verify_tv_sec_type[ sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1 ]; ]])], [gl_cv_sys_struct_timeval_tv_sec=yes], [gl_cv_sys_struct_timeval_tv_sec=no]) ]) if test $gl_cv_sys_struct_timeval_tv_sec != yes; then REPLACE_STRUCT_TIMEVAL=1 fi fi dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ #if HAVE_SYS_TIME_H # include #endif #include ]], [gettimeofday]) ]) AC_DEFUN([gl_SYS_TIME_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_SYS_TIME_H_DEFAULTS], [ GNULIB_GETTIMEOFDAY=0; AC_SUBST([GNULIB_GETTIMEOFDAY]) dnl Assume POSIX behavior unless another module says otherwise. HAVE_GETTIMEOFDAY=1; AC_SUBST([HAVE_GETTIMEOFDAY]) HAVE_STRUCT_TIMEVAL=1; AC_SUBST([HAVE_STRUCT_TIMEVAL]) HAVE_SYS_TIME_H=1; AC_SUBST([HAVE_SYS_TIME_H]) HAVE_TIMEZONE_T=0; AC_SUBST([HAVE_TIMEZONE_T]) REPLACE_GETTIMEOFDAY=0; AC_SUBST([REPLACE_GETTIMEOFDAY]) REPLACE_STRUCT_TIMEVAL=0; AC_SUBST([REPLACE_STRUCT_TIMEVAL]) ]) gcal-4.1/m4/float_h.m40000664000000000000000000000466313041163523011362 00000000000000# float_h.m4 serial 9 dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FLOAT_H], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) FLOAT_H= REPLACE_FLOAT_LDBL=0 case "$host_os" in aix* | beos* | openbsd* | mirbsd* | irix*) FLOAT_H=float.h ;; freebsd*) case "$host_cpu" in changequote(,)dnl i[34567]86 ) changequote([,])dnl FLOAT_H=float.h ;; x86_64 ) # On x86_64 systems, the C compiler may still be generating # 32-bit code. AC_EGREP_CPP([yes], [#if defined __LP64__ || defined __x86_64__ || defined __amd64__ yes #endif], [], [FLOAT_H=float.h]) ;; esac ;; linux*) case "$host_cpu" in powerpc*) FLOAT_H=float.h ;; esac ;; esac case "$host_os" in aix* | freebsd* | linux*) if test -n "$FLOAT_H"; then REPLACE_FLOAT_LDBL=1 fi ;; esac dnl Test against glibc-2.7 Linux/SPARC64 bug. REPLACE_ITOLD=0 AC_CACHE_CHECK([whether conversion from 'int' to 'long double' works], [gl_cv_func_itold_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ int i = -1; volatile long double ld; int main () { ld += i * 1.0L; if (ld > 0) return 1; return 0; }]])], [gl_cv_func_itold_works=yes], [gl_cv_func_itold_works=no], [case "$host" in sparc*-*-linux*) AC_EGREP_CPP([yes], [#if defined __LP64__ || defined __arch64__ yes #endif], [gl_cv_func_itold_works="guessing no"], [gl_cv_func_itold_works="guessing yes"]) ;; *) gl_cv_func_itold_works="guessing yes" ;; esac ]) ]) case "$gl_cv_func_itold_works" in *no) REPLACE_ITOLD=1 dnl We add the workaround to but also to , dnl to increase the chances that the fix function gets pulled in. FLOAT_H=float.h ;; esac if test -n "$FLOAT_H"; then gl_NEXT_HEADERS([float.h]) fi AC_SUBST([FLOAT_H]) AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"]) AC_SUBST([REPLACE_ITOLD]) ]) gcal-4.1/doc/0000775000000000000000000000000013041164076010004 500000000000000gcal-4.1/doc/GREG-REFORM0000664000000000000000000000526012353520433011364 00000000000000Chronology of Introduction of the Gregorian calendar. Country Last day of First day of Gcal option Julian Gregorian calendar calendar ------------------------------------------------------------------------------ Italy 04-Oct-1582 15-Oct-1582 `--gregorian-reform=1582,10,05,14' Spain 04-Oct-1582 15-Oct-1582 `--gregorian-reform=1582,10,05,14' Portugal 04-Oct-1582 15-Oct-1582 `--gregorian-reform=1582,10,05,14' Poland 04-Oct-1582 15-Oct-1582 `--gregorian-reform=1582,10,05,14' France 09-Dec-1582 20-Dec-1582 `--gregorian-reform=1582,12,10,19' Luxembourg 21-Dec-1582 01-Jan-1583 `--gregorian-reform=1582,12,22,31' Netherlands 21-Dec-1582 01-Jan-1583 `--gregorian-reform=1582,12,22,31' Bavaria 05-Oct-1583 16-Oct-1583 `--gregorian-reform=1583,10,06,15' Austria 06-Jan-1584 17-Jan-1584 `--gregorian-reform=1584,01,07,16' Switzerland 11-Jan-1584 22-Jan-1584 `--gregorian-reform=1584,01,12,21' Hungary 21-Oct-1587 01-Nov-1587 `--gregorian-reform=1587,10,22,31' Germany 18-Feb-1700 01-Mar-1700 `--gregorian-reform=1700,02,19,28' (1) Norway 18-Feb-1700 01-Mar-1700 `--gregorian-reform=1700,02,19,28' Denmark 18-Feb-1700 01-Mar-1700 `--gregorian-reform=1700,02,19,28' Great Britain 02-Sep-1752 14-Sep-1752 `--gregorian-reform=1752,09,03,13' Sweden 17-Feb-1753 01-Mar-1753 `--gregorian-reform=1753,02,18,28' Finland 17-Feb-1753 01-Mar-1753 `--gregorian-reform=1753,02,18,28' Japan -- 01-Jan-1873 `--gregorian-reform=1872,12,20,31' China -- 20-Nov-1911 `--gregorian-reform=1911,11,07,19' Bulgaria 31-Mar-1916 14-Apr-1916 `--gregorian-reform=1916,04,01,13' U.S.S.R. 31-Jan-1918 14-Feb-1918 `--gregorian-reform=1918,02,01,13' Serbia 18-Jan-1919 01-Feb-1919 `--gregorian-reform=1919,01,19,31' Romania 18-Jan-1919 01-Feb-1919 `--gregorian-reform=1919,01,19,31' Greece 09-Mar-1924 23-Mar-1924 `--gregorian-reform=1924,03,10,22' Turkey 18-Dec-1925 01-Jan-1926 `--gregorian-reform=1925,12,19,31' Egypt 17-Sep-1928 01-Oct-1928 `--gregorian-reform=1928,09,18,30' Reference: S.J. Seleschnikow, "Wieviele Monde hat das Jahr?" (Kleine Kalenderkunde), Aulis-Verlag Deubner & Co. KG, K"oln, 1'te Auflage 1981, ISBN 3-7516-060-2 ---------- Footnotes ---------- (1) In protestant parts of Germany. In some catholic minor states (Westfalen, W"urzburg, Mainz, Freiburg etc.), the new calendar was introduced during the years 1583/1584. gcal-4.1/doc/mksamp.in0000664000000000000000000002675012353516507011563 00000000000000#! /bin/sh # # @configure_input@ # # $Id: mksamp.in 0.06 2000/06/21 00:00:06 tom Exp $ # # mksamp.in: When listing example programm calls in a Texinfo document, # the author normally has to write down the call of the program # (the shell prompt, the command name and the options passed # to it), and the result this call creates. Of course this # can be done by redirecting the output of such a call into # a file and inserting it into the Texinfo document source # (or by means of directly including this data stream into # the document if the used editor allows this operation), # providing each line of this output with the proper Texinfo # command(s). # But at last, it's not very convenient to work like this. # It would be much better, if, on the one hand, there would be a # shell script file which allows the user to ``test'' this program # example by himself. And, on the other hand, it would be also # very fine to insert all the required texts (which are Texinfo # commands, the above mentioned shell prompt line and the created # output) only by using a simple `@include FILE.texi' command into # the document. # This shell script can help you to solve this task! It comes # along with two small SED script files, `mks1sed.in' (expanded to # `mksamp-1.sed'), and `mks2sed.in' (expanded to `mksamp-2.sed'). # It processes an input file, typically a `FILE.in' file, which # contains all the necessary definitions for the example, and # generates a resulting Texinfo file `FILE.texi' from that file. # Moreover, a shell script file `FILE.sh', a data file --here: # a Gcal resource file-- `FILE.rc', which serves as input for # the commands that are run by the created shell script file, # are created. If no data file is needed, it will not be created. # In the input file `FILE.in', some special character sequences # must be used to mark the different classes of action, which # should all be given in this required order: # * The command(s) used within the example are # either prefixed with `%%%' for using the '$ ' shell # primary prompt character # or prefixed with `%%>' for using the '> ' shell # secondary prompt character, # and the real call(s) of these command(s) are # prefixed with `***'. # * The data/resource file line(s) used within the example are # prefixed with `:::'. # * Additionally leading Texinfo commands are # prefixed with `+++'. # * Additionally trailing Texinfo commands are # prefixed with `---'. # # Usage: mksamp --help | --version # Usage: mksamp [--debug] [--verbose] FILE... # # `--debug': Turn on shell debugging. # `--verbose': Report on what is done. # # UN*X solution. # # Needs `test', `echo', `expr', `eval', `/bin/sh', `cd', `rm', `pwd', `chmod' # and `sed' for processing! # # Returns 0 if processing was successfully. # Returns 1 in case an error occured while processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Shell=/bin/sh Cd=cd Rm=rm Sed=sed Set=set Pwd=pwd Test=test Echo=echo Expr=expr Chmod=chmod # # Basically used texts. # PACKAGE=@PACKAGE@ VERSION=@VERSION@ # mydefaultname=mksamp # srcdir=@srcdir@ oldwd=`$Pwd` # Sed_script1=mksamp-1.sed Sed_script2=mksamp-2.sed # myname=`$Echo "$0" | $Sed -e 's,.*/,,'` myversion=0.06 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # shellscriptfile_suffix=.sh datafile_suffix=.rc texifile_suffix=.texi tmpfile_suffix=.tmp # info1="$myname: Generates progamm call examples which can be easily" info2="$myname: inserted in a Texinfo document by using \`@include FILE""$texifile_suffix'." info3="$myname: Creates a legal Texinfo include file \`FILE""$texifile_suffix'," info4="$myname: a data file \`FILE""$datafile_suffix' and a shell script file" info5="$myname: \`FILE""$shellscriptfile_suffix' from each \`DEFINITION-FILE' processed." info6="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--verbose] DEFINITION-FILE..." # # Some constant values. # EXIT_SUCCESS=0 EXIT_FAILURE=1 # # The used programs. # Eval=eval # # Let's check for command line arguments. # debug=no verbose=no commands="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel | -he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$info5" $Echo "$info6" $Echo "$usage1" $Echo "$usage2" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | \ -version | -versio | -versi | -vers | \ --version=* | --versio=* | --versi=* | --vers=* | \ --version | --versio | --versi | --vers) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -verbose=* | -verbos=* | -verbo=* | -verb=* | \ -verbose | -verbos | -verbo | -verb | \ --verbose=* | --verbos=* | --verbo=* | --verb=* | \ --verbose | --verbos | --verbo | --verb) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi verbose=yes shift ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -*) $Echo "$myname: error: $option: invalid option, use --help to show usage" 1>&2 exit $EXIT_FAILURE ;; *) if $Test -z "$commands"; then commands="$option" else commands="$commands $option" fi esac done # # Get the number of commands given. # cmd_number=0 for cmd in $commands do cmd_number=`$Expr $cmd_number + 1` done # # Enable tracing. # if $Test "$debug" = yes; then $Set -x fi # # Let's start processing now. # if $Test "$cmd_number" -eq 0; then $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$info5" $Echo "$info6" $Echo "$usage1" $Echo "$usage2" exit $EXIT_FAILURE else if $Test ! -s "$srcdir/$Sed_script1"; then $Echo "$myname: error: file \`$srcdir/$Sed_script1' is missing" 1>&2 exit $EXIT_FAILURE fi if $Test ! -s "$srcdir/$Sed_script2"; then $Echo "$myname: error: file \`$srcdir/$Sed_script2' is missing" 1>&2 exit $EXIT_FAILURE fi for inputfile in $commands do if $Test ! -s "$inputfile"; then $Echo "$myname: error: file \`$inputfile' not found" 1>&2 exit $EXIT_FAILURE fi # # Get the basedir, the basename and the basename prefix of the inputfile. # inputfile_basedir=`$Echo "$inputfile" | $Sed -e "s,[^/][^/]*\$,,"` if $Test -n "$inputfile_basedir"; then inputfile_basename=`$Echo "$inputfile" | $Sed -e "s,$inputfile_basedir,,"` else inputfile_basename=$inputfile fi inputfile_prefix=`$Echo "$inputfile_basename" | $Sed -e "s,\.[^.]*\$,,"` # if $Test "$srcdir" = "."; then sedscriptdir=`$Pwd` else sedscriptdir="$srcdir" fi # if $Test -n "$inputfile_basedir"; then oldwd=`$Pwd` $Cd `$Echo "$inputfile_basedir" | $Sed -e "s,/\$,,"` fi # # Set the file names properly. # shellscriptfile=$inputfile_prefix""$shellscriptfile_suffix datafile=$inputfile_prefix""$datafile_suffix texifile=$inputfile_prefix""$texifile_suffix tmpfile=$inputfile_prefix""$tmpfile_suffix # if $Test "$debug" = no; then trap "$Rm -f $shellscriptfile $datafile $texifile $tmpfile;exit $EXIT_FAILURE" 1 2 15 fi # # Report if verbose is set. # if $Test "$verbose" = yes; then $Echo "$myname: creating \`$inputfile_basedir""$inputfile_prefix($datafile_suffix "\ "$shellscriptfile_suffix $texifile_suffix)' from \`$inputfile'..." fi # # Generate the data file. # $Sed -e '/^:::/!d' -e 's/^::://' $inputfile_basename > $datafile # # Delete the data file if it is empty. # if $Test ! -s "$datafile"; then $Rm -f $datafile fi # # Generate the Texinfo starting commands. # $Echo "; Automatically generated by $mydefaultname from $inputfile_basename." > $tmpfile $Echo ";" >> $tmpfile $Sed -e '/^\+\+\+/!d' $inputfile_basename >> $tmpfile # # Generate the shell script file which runs the commands of this example. # $Sed -f $sedscriptdir/$Sed_script1 $inputfile_basename | \ $Sed -e "s,@DEFINITION_FILE@,$inputfile_basename," > $shellscriptfile $Chmod u+x $shellscriptfile # # Generate the Texinfo output of the commands run by the created shell script. # $Shell $shellscriptfile >> $tmpfile # # Generate the Texinfo ending commands. # $Sed -e '/^\-\-\-/!d' $inputfile_basename >> $tmpfile # # Convert the tmpfile to a legal Texinfo file that we can @include. # $Sed -f $sedscriptdir/$Sed_script2 $tmpfile | \ $Sed -e "s,@DEFINITION_FILE@,$inputfile_basename," \ -e "s,@PACKAGE_TEXIFILE@,$PACKAGE""$texifile_suffix," > $texifile # # And delete the tmpfile. # if $Test "$debug" = no; then $Rm -f $tmpfile fi # if $Test -n "$inputfile_basedir"; then $Cd $oldwd oldwd=$srcdir fi done exit $EXIT_SUCCESS fi gcal-4.1/doc/Makefile.am0000664000000000000000000000156712353315047011772 00000000000000# GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = en EXTRA_DIST = GREG-REFORM all-data-local: chmod u+x mksamp gcal-4.1/doc/Makefile.in0000664000000000000000000017257413041163550012005 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acos.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asin.m4 \ $(top_srcdir)/m4/assert.m4 $(top_srcdir)/m4/atan.m4 \ $(top_srcdir)/m4/atan2.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/cond.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/cos.m4 $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/fatal-signal.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fflush.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/floor.m4 \ $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpurge.m4 \ $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fseek.m4 $(top_srcdir)/m4/fseeko.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftell.m4 \ $(top_srcdir)/m4/ftello.m4 $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/limits-h.m4 \ $(top_srcdir)/m4/link.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/log.m4 $(top_srcdir)/m4/log10.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mkostemp.m4 \ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \ $(top_srcdir)/m4/pipe2.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/posix_spawn.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/raise.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/realloc.m4 \ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/sched_h.m4 \ $(top_srcdir)/m4/secure_getenv.m4 \ $(top_srcdir)/m4/sig_atomic_t.m4 $(top_srcdir)/m4/sigaction.m4 \ $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sin.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/spawn-pipe.m4 \ $(top_srcdir)/m4/spawn_h.m4 $(top_srcdir)/m4/sqrt.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strcspn.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strstr.m4 \ $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tan.m4 \ $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/tmpdir.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/wait-process.m4 \ $(top_srcdir)/m4/waitpid.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = mksamp CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/mksamp.in \ texinfo.tex DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ACOS_LIBM = @ACOS_LIBM@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASIN_LIBM = @ASIN_LIBM@ ATAN2_LIBM = @ATAN2_LIBM@ ATAN_LIBM = @ATAN_LIBM@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CEIL_LIBM = @CEIL_LIBM@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ COS_LIBM = @COS_LIBM@ CP = @CP@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FLOAT_H = @FLOAT_H@ FLOOR_LIBM = @FLOOR_LIBM@ GCAL_HD_OBJS = @GCAL_HD_OBJS@ GCAL_RC_OBJS = @GCAL_RC_OBJS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ACOSF = @GNULIB_ACOSF@ GNULIB_ACOSL = @GNULIB_ACOSL@ GNULIB_ASINF = @GNULIB_ASINF@ GNULIB_ASINL = @GNULIB_ASINL@ GNULIB_ATAN2F = @GNULIB_ATAN2F@ GNULIB_ATANF = @GNULIB_ATANF@ GNULIB_ATANL = @GNULIB_ATANL@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CBRT = @GNULIB_CBRT@ GNULIB_CBRTF = @GNULIB_CBRTF@ GNULIB_CBRTL = @GNULIB_CBRTL@ GNULIB_CEIL = @GNULIB_CEIL@ GNULIB_CEILF = @GNULIB_CEILF@ GNULIB_CEILL = @GNULIB_CEILL@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ GNULIB_COSF = @GNULIB_COSF@ GNULIB_COSHF = @GNULIB_COSHF@ GNULIB_COSL = @GNULIB_COSL@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXP2 = @GNULIB_EXP2@ GNULIB_EXP2F = @GNULIB_EXP2F@ GNULIB_EXP2L = @GNULIB_EXP2L@ GNULIB_EXPF = @GNULIB_EXPF@ GNULIB_EXPL = @GNULIB_EXPL@ GNULIB_EXPM1 = @GNULIB_EXPM1@ GNULIB_EXPM1F = @GNULIB_EXPM1F@ GNULIB_EXPM1L = @GNULIB_EXPM1L@ GNULIB_FABSF = @GNULIB_FABSF@ GNULIB_FABSL = @GNULIB_FABSL@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ GNULIB_FMA = @GNULIB_FMA@ GNULIB_FMAF = @GNULIB_FMAF@ GNULIB_FMAL = @GNULIB_FMAL@ GNULIB_FMOD = @GNULIB_FMOD@ GNULIB_FMODF = @GNULIB_FMODF@ GNULIB_FMODL = @GNULIB_FMODL@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPF = @GNULIB_FREXPF@ GNULIB_FREXPL = @GNULIB_FREXPL@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_HYPOT = @GNULIB_HYPOT@ GNULIB_HYPOTF = @GNULIB_HYPOTF@ GNULIB_HYPOTL = @GNULIB_HYPOTL@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_ILOGB = @GNULIB_ILOGB@ GNULIB_ILOGBF = @GNULIB_ILOGBF@ GNULIB_ILOGBL = @GNULIB_ILOGBL@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPF = @GNULIB_LDEXPF@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOG = @GNULIB_LOG@ GNULIB_LOG10 = @GNULIB_LOG10@ GNULIB_LOG10F = @GNULIB_LOG10F@ GNULIB_LOG10L = @GNULIB_LOG10L@ GNULIB_LOG1P = @GNULIB_LOG1P@ GNULIB_LOG1PF = @GNULIB_LOG1PF@ GNULIB_LOG1PL = @GNULIB_LOG1PL@ GNULIB_LOG2 = @GNULIB_LOG2@ GNULIB_LOG2F = @GNULIB_LOG2F@ GNULIB_LOG2L = @GNULIB_LOG2L@ GNULIB_LOGB = @GNULIB_LOGB@ GNULIB_LOGBF = @GNULIB_LOGBF@ GNULIB_LOGBL = @GNULIB_LOGBL@ GNULIB_LOGF = @GNULIB_LOGF@ GNULIB_LOGL = @GNULIB_LOGL@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_MODF = @GNULIB_MODF@ GNULIB_MODFF = @GNULIB_MODFF@ GNULIB_MODFL = @GNULIB_MODFL@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@ GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@ GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@ GNULIB_POSIX_SPAWNATTR_GETPGROUP = @GNULIB_POSIX_SPAWNATTR_GETPGROUP@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_GETSIGMASK = @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@ GNULIB_POSIX_SPAWNATTR_INIT = @GNULIB_POSIX_SPAWNATTR_INIT@ GNULIB_POSIX_SPAWNATTR_SETFLAGS = @GNULIB_POSIX_SPAWNATTR_SETFLAGS@ GNULIB_POSIX_SPAWNATTR_SETPGROUP = @GNULIB_POSIX_SPAWNATTR_SETPGROUP@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_SETSIGMASK = @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@ GNULIB_POSIX_SPAWNP = @GNULIB_POSIX_SPAWNP@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT@ GNULIB_POWF = @GNULIB_POWF@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMAINDER = @GNULIB_REMAINDER@ GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RINT = @GNULIB_RINT@ GNULIB_RINTF = @GNULIB_RINTF@ GNULIB_RINTL = @GNULIB_RINTL@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_ROUND = @GNULIB_ROUND@ GNULIB_ROUNDF = @GNULIB_ROUNDF@ GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SINF = @GNULIB_SINF@ GNULIB_SINHF = @GNULIB_SINHF@ GNULIB_SINL = @GNULIB_SINL@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTF = @GNULIB_SQRTF@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TANF = @GNULIB_TANF@ GNULIB_TANHF = @GNULIB_TANHF@ GNULIB_TANL = @GNULIB_TANL@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ HAVE_ATAN2F = @HAVE_ATAN2F@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@ HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@ HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@ HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@ HAVE_DECL_LOGB = @HAVE_DECL_LOGB@ HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_REMAINDER = @HAVE_DECL_REMAINDER@ HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@ HAVE_DECL_RINTF = @HAVE_DECL_RINTF@ HAVE_DECL_ROUND = @HAVE_DECL_ROUND@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FMA = @HAVE_FMA@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LOG10F = @HAVE_LOG10F@ HAVE_LOG10L = @HAVE_LOG10L@ HAVE_LOG1P = @HAVE_LOG1P@ HAVE_LOG1PF = @HAVE_LOG1PF@ HAVE_LOG1PL = @HAVE_LOG1PL@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MODFF = @HAVE_MODFF@ HAVE_MODFL = @HAVE_MODFL@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@ HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@ HAVE_POSIX_SPAWN_FILE_ACTIONS_T = @HAVE_POSIX_SPAWN_FILE_ACTIONS_T@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RINT = @HAVE_RINT@ HAVE_RINTL = @HAVE_RINTL@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCHED_H = @HAVE_SCHED_H@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SINF = @HAVE_SINF@ HAVE_SINHF = @HAVE_SINHF@ HAVE_SINL = @HAVE_SINL@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_SPAWN_H = @HAVE_SPAWN_H@ HAVE_SQRTF = @HAVE_SQRTF@ HAVE_SQRTL = @HAVE_SQRTL@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SCHED_PARAM = @HAVE_STRUCT_SCHED_PARAM@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LIB_POSIX_SPAWN = @LIB_POSIX_SPAWN@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOG10_LIBM = @LOG10_LIBM@ LOG_LIBM = @LOG_LIBM@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_SCHED_H = @NEXT_SCHED_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_SPAWN_H = @NEXT_SPAWN_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PAGER1 = @PAGER1@ PAGER2 = @PAGER2@ PAGER3 = @PAGER3@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ POW_LIBM = @POW_LIBM@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACOSF = @REPLACE_ACOSF@ REPLACE_ASINF = @REPLACE_ASINF@ REPLACE_ATAN2F = @REPLACE_ATAN2F@ REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_COSF = @REPLACE_COSF@ REPLACE_COSHF = @REPLACE_COSHF@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ REPLACE_EXPF = @REPLACE_EXPF@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ REPLACE_FABSL = @REPLACE_FABSL@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ REPLACE_FMA = @REPLACE_FMA@ REPLACE_FMAF = @REPLACE_FMAF@ REPLACE_FMAL = @REPLACE_FMAL@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ REPLACE_LOG10F = @REPLACE_LOG10F@ REPLACE_LOG10L = @REPLACE_LOG10L@ REPLACE_LOG1P = @REPLACE_LOG1P@ REPLACE_LOG1PF = @REPLACE_LOG1PF@ REPLACE_LOG1PL = @REPLACE_LOG1PL@ REPLACE_LOG2 = @REPLACE_LOG2@ REPLACE_LOG2F = @REPLACE_LOG2F@ REPLACE_LOG2L = @REPLACE_LOG2L@ REPLACE_LOGB = @REPLACE_LOGB@ REPLACE_LOGBF = @REPLACE_LOGBF@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_SPAWN = @REPLACE_POSIX_SPAWN@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SINF = @REPLACE_SINF@ REPLACE_SINHF = @REPLACE_SINHF@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TANF = @REPLACE_TANF@ REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SCHED_H = @SCHED_H@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIN_LIBM = @SIN_LIBM@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ SQRT_LIBM = @SQRT_LIBM@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TAN_LIBM = @TAN_LIBM@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ZDUMP = @ZDUMP@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = en EXTRA_DIST = GREG-REFORM all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mksamp: $(top_builddir)/config.status $(srcdir)/mksamp.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile all-data-local: chmod u+x mksamp # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gcal-4.1/doc/texinfo.tex0000664000000000000000000060747212353516530012143 00000000000000% texinfo.tex -- TeX macros to handle Texinfo files. % % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % \def\texinfoversion{2014-06-28.12} % % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2010, 2011, 2013, 2014 Free Software Foundation, % Inc. % % This texinfo.tex file is free software; you can redistribute it and/or % modify it under the terms of the GNU General Public License as % published by the Free Software Foundation; either version 3, or (at % your option) any later version. % % This texinfo.tex file is distributed in the hope that it will be % useful, but WITHOUT ANY WARRANTY; without even the implied warranty % of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU % General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this texinfo.tex file; see the file COPYING. If not, write % to the Free Software Foundation, Inc. % % In other words, you are welcome to use, share and improve this program. % You are forbidden to forbid anyone else to use, share and improve % what you give them. Help stamp out software-hoarding! % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: % ftp://ftp.gnu.org/gnu/texinfo.tex % (and all GNU mirrors, see http://www.gnu.org/order/ftp.html) % ftp://texinfo.org/tex/texinfo.tex % ftp://us.ctan.org/macros/texinfo/texinfo.tex % (and all CTAN mirrors, finger ctan@us.ctan.org for a list). % /home/gd/gnu/doc/texinfo.tex on the GNU machines. % The texinfo.tex in any given Texinfo distribution could well be out % of date, so if that's what you're using, please check. % Texinfo has a small home page at http://texinfo.org/. % % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the % problem. Patches are, of course, greatly appreciated. % % To process a Texinfo manual with TeX, it's most reliable to use the % texi2dvi shell script that comes with the distribution. For a simple % manual foo.texi, however, you can get away with this: % tex foo.texi % texindex foo.?? % tex foo.texi % tex foo.texi % dvips foo.dvi -o # or whatever, to process the dvi file; this makes foo.ps. % The extra runs of TeX get the cross-reference information correct. % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. % % It is possible to adapt texinfo.tex for other languages. You can get % the existing language-specific files from ftp://ftp.gnu.org/gnu/texinfo/. \message{Loading texinfo [version \texinfoversion]:} % If in a .fmt file, print the version number % and turn on active characters that we couldn't do earlier because % they might have appeared in the input file name. \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} % Save some parts of plain tex whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c \let\ptexcomma=\, \let\ptexdot=\. \let\ptexdots=\dots \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! \let\ptexi=\i \let\ptexlbrace=\{ \let\ptexrbrace=\} \let\ptexstar=\* \let\ptext=\t % We never want plain's outer \+ definition in Texinfo. % For @tex, we can use \tabalign. \let\+ = \relax \message{Basics,} \chardef\other=12 % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi \ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi \ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi \ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi \ifx\putwordof\undefined \gdef\putwordof{of}\fi \ifx\putwordon\undefined \gdef\putwordon{on}\fi \ifx\putwordpage\undefined \gdef\putwordpage{page}\fi \ifx\putwordsection\undefined \gdef\putwordsection{section}\fi \ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi \ifx\putwordsee\undefined \gdef\putwordsee{see}\fi \ifx\putwordSee\undefined \gdef\putwordSee{See}\fi \ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi \ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi % \ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi \ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi \ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi \ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi \ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi \ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi \ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi \ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi \ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi \ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi \ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi \ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi % \ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi \ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi \ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi \ifx\putwordDeftypevar\undefined\gdef\putwordDeftypevar{Variable}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi \ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi % Ignore a token. % \def\gobble#1{} \hyphenation{ap-pen-dix} \hyphenation{mini-buf-fer mini-buf-fers} \hyphenation{eshell} \hyphenation{white-space} % Margin to add to right of even pages, to left of odd pages. \newdimen \bindingoffset \newdimen \normaloffset \newdimen\pagewidth \newdimen\pageheight % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, % since that produces some useless output on the terminal. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% \ifx\eTeXversion\undefined \def\loggingall{\tracingcommands2 \tracingstats2 \tracingpages1 \tracingoutput1 \tracinglostchars1 \tracingmacros2 \tracingparagraphs1 \tracingrestores1 \showboxbreadth\maxdimen\showboxdepth\maxdimen }% \else \def\loggingall{\tracingcommands3 \tracingstats2 \tracingpages1 \tracingoutput1 \tracinglostchars1 \tracingmacros2 \tracingparagraphs1 \tracingrestores1 \tracingscantokens1 \tracingassigns1 \tracingifs1 \tracinggroups1 \tracingnesting2 \showboxbreadth\maxdimen\showboxdepth\maxdimen }% \fi % For @cropmarks command. % Do @cropmarks to get crop marks. % \newif\ifcropmarks \let\cropmarks = \cropmarkstrue % % Dimensions to add cropmarks at corners. % Added by P. A. MacKay, 12 Nov. 1986 % \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines \newdimen\cornerlong \cornerlong=1pc \newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in % Main output routine. \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} \newbox\headlinebox \newbox\footlinebox % \onepageout takes a vbox as an argument. Note that \pagecontents % does insertions, but you have to call it yourself. \def\onepageout#1{% \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi % % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% % {% % Have to do this stuff outside the \shipout because we want it to % take effect in \write's, yet the group defined by the \vbox ends % before the \shipout runs. % \escapechar = `\\ % use backslash in output files. \indexdummies % don't expand commands in the output. \normalturnoffactive % \ in index entries must not stay \, e.g., if % the page break happens to be in the middle of an example. \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi % \ifcropmarks \vbox to \outervsize\bgroup \hsize = \outerhsize \vskip-\topandbottommargin \vtop to0pt{% \line{\ewtop\hfil\ewtop}% \nointerlineskip \line{% \vbox{\moveleft\cornerthick\nstop}% \hfill \vbox{\moveright\cornerthick\nstop}% }% \vss}% \vskip\topandbottommargin \line\bgroup \hfil % center the page within the outer (page) hsize. \ifodd\pageno\hskip\bindingoffset\fi \vbox\bgroup \fi % \unvbox\headlinebox \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. % (We lessened \vsize for it in \oddfootingxxx.) % The \baselineskip=24pt in plain's \makefootline has no effect. \vskip 2\baselineskip \unvbox\footlinebox \fi % \ifcropmarks \egroup % end of \vbox\bgroup \hfil\egroup % end of (centering) \line\bgroup \vskip\topandbottommargin plus1fill minus1fill \boxmaxdepth = \cornerthick \vbox to0pt{\vss \line{% \vbox{\moveleft\cornerthick\nsbot}% \hfill \vbox{\moveright\cornerthick\nsbot}% }% \nointerlineskip \line{\ewbot\hfil\ewbot}% }% \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox }% end of group with \turnoffactive \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } \newinsert\margin \dimen\margin=\maxdimen \def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}} {\catcode`\@ =11 \gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi % marginal hacks, juha@viisa.uucp (Juha Takala) \ifvoid\margin\else % marginal info is present \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi \dimen@=\dp#1 \unvbox#1 \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } % Here are the rules for the cropmarks. Note that they are % offset so that the space between them is truly \outerhsize or \outervsize % (P. A. MacKay, 12 November, 1986) % \def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} \def\nstop{\vbox {\hrule height\cornerthick depth\cornerlong width\cornerthick}} \def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} \def\nsbot{\vbox {\hrule height\cornerlong depth\cornerthick width\cornerthick}} % Parse an argument, then pass it to #1. The argument is the rest of % the input line (except we remove a trailing comment). #1 should be a % macro which expects an ordinary undelimited TeX argument. % \def\parsearg#1{% \let\next = #1% \begingroup \obeylines \futurelet\temp\parseargx } % If the next token is an obeyed space (from an @example environment or % the like), remove it and recurse. Otherwise, we're done. \def\parseargx{% % \obeyedspace is defined far below, after the definition of \sepspaces. \ifx\obeyedspace\temp \expandafter\parseargdiscardspace \else \expandafter\parseargline \fi } % Remove a single space (as the delimiter token to the macro call). {\obeyspaces % \gdef\parseargdiscardspace {\futurelet\temp\parseargx}} {\obeylines % \gdef\parseargline#1^^M{% \endgroup % End of the group started in \parsearg. % % First remove any @c comment, then any @comment. % Result of each macro is put in \toks0. \argremovec #1\c\relax % \expandafter\argremovecomment \the\toks0 \comment\relax % % % Call the caller's macro, saved as \next in \parsearg. \expandafter\next\expandafter{\the\toks0}% }% } % Since all \c{,omment} does is throw away the argument, we can let TeX % do that for us. The \relax here is matched by the \relax in the call % in \parseargline; it could be more or less anything, its purpose is % just to delimit the argument to the \c. \def\argremovec#1\c#2\relax{\toks0 = {#1}} \def\argremovecomment#1\comment#2\relax{\toks0 = {#1}} % \argremovec{,omment} might leave us with trailing spaces, though; e.g., % @end itemize @c foo % will have two active spaces as part of the argument with the % `itemize'. Here we remove all active spaces from #1, and assign the % result to \toks0. % % This loses if there are any *other* active characters besides spaces % in the argument -- _ ^ +, for example -- since they get expanded. % Fortunately, Texinfo does not define any such commands. (If it ever % does, the catcode of the characters in questionwill have to be changed % here.) But this means we cannot call \removeactivespaces as part of % \argremovec{,omment}, since @c uses \parsearg, and thus the argument % that \parsearg gets might well have any character at all in it. % \def\removeactivespaces#1{% \begingroup \ignoreactivespaces \edef\temp{#1}% \global\toks0 = \expandafter{\temp}% \endgroup } % Change the active space to expand to nothing. % \begingroup \obeyspaces \gdef\ignoreactivespaces{\obeyspaces\let =\empty} \endgroup \def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} %% These are used to keep @begin/@end levels from running away %% Call \inENV within environments (after a \begingroup) \newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi} \def\ENVcheck{% \ifENV\errmessage{Still within an environment; press RETURN to continue} \endgroup\fi} % This is not perfect, but it should reduce lossage % @begin foo is the same as @foo, for now. \newhelp\EMsimple{Press RETURN to continue.} \outer\def\begin{\parsearg\beginxxx} \def\beginxxx #1{% \expandafter\ifx\csname #1\endcsname\relax {\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else \csname #1\endcsname\fi} % @end foo executes the definition of \Efoo. % \def\end{\parsearg\endxxx} \def\endxxx #1{% \removeactivespaces{#1}% \edef\endthing{\the\toks0}% % \expandafter\ifx\csname E\endthing\endcsname\relax \expandafter\ifx\csname \endthing\endcsname\relax % There's no \foo, i.e., no ``environment'' foo. \errhelp = \EMsimple \errmessage{Undefined command `@end \endthing'}% \else \unmatchedenderror\endthing \fi \else % Everything's ok; the right environment has been started. \csname E\endthing\endcsname \fi } % There is an environment #1, but it hasn't been started. Give an error. % \def\unmatchedenderror#1{% \errhelp = \EMsimple \errmessage{This `@end #1' doesn't have a matching `@#1'}% } % Define the control sequence \E#1 to give an unmatched @end error. % \def\defineunmatchedend#1{% \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}% } % Single-spacing is done by various environments (specifically, in % \nonfillstart and \quotations). \newskip\singlespaceskip \singlespaceskip = 12.5pt \def\singlespace{% % Why was this kern here? It messes up equalizing space above and below % environments. --karl, 6may93 %{\advance \baselineskip by -\singlespaceskip %\kern \baselineskip}% \setleading \singlespaceskip } %% Simple single-character @ commands % @@ prints an @ % Kludge this until the fonts are right (grr). \def\@{{\tt\char64}} % This is turned off because it was never documented % and you can use @w{...} around a quote to suppress ligatures. %% Define @` and @' to be the same as ` and ' %% but suppressing ligatures. %\def\`{{`}} %\def\'{{'}} % Used to generate quoted braces. \def\mylbrace {{\tt\char123}} \def\myrbrace {{\tt\char125}} \let\{=\mylbrace \let\}=\myrbrace \begingroup % Definitions to produce actual \{ & \} command in an index. \catcode`\{ = 12 \catcode`\} = 12 \catcode`\[ = 1 \catcode`\] = 2 \catcode`\@ = 0 \catcode`\\ = 12 @gdef@lbracecmd[\{]% @gdef@rbracecmd[\}]% @endgroup % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent % Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H. \let\, = \c \let\dotaccent = \. \def\ringaccent#1{{\accent23 #1}} \let\tieaccent = \t \let\ubaraccent = \b \let\udotaccent = \d % Other special characters: @questiondown @exclamdown % Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} % Dotless i and dotless j, used for accents. \def\imacro{i} \def\jmacro{j} \def\dotless#1{% \def\temp{#1}% \ifx\temp\imacro \ptexi \else\ifx\temp\jmacro \j \else \errmessage{@dotless can be used only with i or j}% \fi\fi } % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and % since \penalty is valid in vertical mode, we'd end up putting the % penalty on the vertical list instead of in the new paragraph. {\catcode`@ = 11 % Avoid using \@M directly, because that causes trouble % if the definition is written into an index file. \global\let\tiepenalty = \@M \gdef\tie{\leavevmode\penalty\tiepenalty\ } } % @: forces normal size whitespace following. \def\:{\spacefactor=1000 } % @* forces a line break. \def\*{\hfil\break\hbox{}\ignorespaces} % @. is an end-of-sentence period. \def\.{.\spacefactor=3000 } % @! is an end-of-sentence bang. \def\!{!\spacefactor=3000 } % @? is an end-of-sentence query. \def\?{?\spacefactor=3000 } % @w prevents a word break. Without the \leavevmode, @w at the % beginning of a paragraph, when TeX is still in vertical mode, would % produce a whole line of output instead of starting the paragraph. \def\w#1{\leavevmode\hbox{#1}} % @group ... @end group forces ... to be all on one page, by enclosing % it in a TeX vbox. We use \vtop instead of \vbox to construct the box % to keep its height that of a normal line. According to the rules for % \topskip (p.114 of the TeXbook), the glue inserted is % max (\topskip - \ht (first item), 0). If that height is large, % therefore, no glue is inserted, and the space between the headline and % the text is small, which looks bad. % \def\group{\begingroup \ifnum\catcode13=\active \else \errhelp = \groupinvalidhelp \errmessage{@group invalid in context where filling is enabled}% \fi % % The \vtop we start below produces a box with normal height and large % depth; thus, TeX puts \baselineskip glue before it, and (when the % next line of text is done) \lineskip glue after it. (See p.82 of % the TeXbook.) Thus, space below is not quite equal to space % above. But it's pretty close. \def\Egroup{% \egroup % End the \vtop. \endgroup % End the \group. }% % \vtop\bgroup % We have to put a strut on the last line in case the @group is in % the midst of an example, rather than completely enclosing it. % Otherwise, the interline space between the last line of the group % and the first line afterwards is too small. But we can't put the % strut in \Egroup, since there it would be on a line by itself. % Hence this just inserts a strut at the beginning of each line. \everypar = {\strut}% % % Since we have a strut on every line, we don't need any of TeX's % normal interline spacing. \offinterlineskip % % OK, but now we have to do something about blank % lines in the input in @example-like environments, which normally % just turn into \lisppar, which will insert no space now that we've % turned off the interline space. Simplest is to make them be an % empty paragraph. \ifx\par\lisppar \edef\par{\leavevmode \par}% % % Reset ^^M's definition to new definition of \par. \obeylines \fi % % Do @comment since we are called inside an environment such as % @example, where each end-of-line in the input causes an % end-of-line in the output. We don't want the end-of-line after % the `@group' to put extra space in the output. Since @group % should appear on a line by itself (according to the Texinfo % manual), we don't worry about eating any user text. \comment } % % TeX puts in an \escapechar (i.e., `@') at the beginning of the help % message, so this ends up printing `@group can only ...'. % \newhelp\groupinvalidhelp{% group can only be used in environments such as @example,^^J% where each line of input produces a line of output.} % @need space-in-mils % forces a page break if there is not space-in-mils remaining. \newdimen\mil \mil=0.001in \def\need{\parsearg\needx} % Old definition--didn't work. %\def\needx #1{\par % %% This method tries to make TeX break the page naturally %% if the depth of the box does not fit. %{\baselineskip=0pt% %\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak %\prevdepth=-1000pt %}} \def\needx#1{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. \par % % If the @need value is less than one line space, it's useless. \dimen0 = #1\mil \dimen2 = \ht\strutbox \advance\dimen2 by \dp\strutbox \ifdim\dimen0 > \dimen2 % % Do a \strut just to make the height of this box be normal, so the % normal leading is inserted relative to the preceding line. % And a page break here is fine. \vtop to #1\mil{\strut\vfil}% % % TeX does not even consider page breaks if a penalty added to the % main vertical list is 10000 or more. But in order to see if the % empty box we just added fits on the page, we must make it consider % page breaks. On the other hand, we don't want to actually break the % page after the empty box. So we use a penalty of 9999. % % There is an extremely small chance that TeX will actually break the % page at this \penalty, if there are no other feasible breakpoints in % sight. (If the user is using lots of big @group commands, which % almost-but-not-quite fill up a page, TeX will have a hard time doing % good page breaking, for example.) However, I could not construct an % example where a page broke at this \penalty; if it happens in a real % document, then we can reconsider our strategy. \penalty9999 % % Back up by the size of the box, whether we did a page break or not. \kern -#1\mil % % Do not allow a page break right after this kern. \nobreak \fi } % @br forces paragraph break \let\br = \par % @dots{} output an ellipsis using the current font. % We do .5em per period so that it has the same spacing in a typewriter % font as three actual period characters. % \def\dots{% \leavevmode \hbox to 1.5em{% \hskip 0pt plus 0.25fil minus 0.25fil .\hss.\hss.% \hskip 0pt plus 0.5fil minus 0.5fil }% } % @enddots{} is an end-of-sentence ellipsis. % \def\enddots{% \leavevmode \hbox to 2em{% \hskip 0pt plus 0.25fil minus 0.25fil .\hss.\hss.\hss.% \hskip 0pt plus 0.5fil minus 0.5fil }% \spacefactor=3000 } % @page forces the start of a new page % \def\page{\par\vfill\supereject} % @exdent text.... % outputs text on separate line in roman font, starting at standard page margin % This records the amount of indent in the innermost environment. % That's how much \exdent should take out. \newskip\exdentamount % This defn is used inside fill environments such as @defun. \def\exdent{\parsearg\exdentyyy} \def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}} % This defn is used inside nofill environments such as @example. \def\nofillexdent{\parsearg\nofillexdentyyy} \def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount \leftline{\hskip\leftskip{\rm#1}}}} % @inmargin{TEXT} puts TEXT in the margin next to the current paragraph. \def\inmargin#1{% \strut\vadjust{\nobreak\kern-\strutdepth \vtop to \strutdepth{\baselineskip\strutdepth\vss \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}} \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} %\hbox{{\rm#1}}\hfil\break}} % @include file insert text of that file as input. % Allow normal characters that we make active in the argument (a file name). \def\include{\begingroup \catcode`\\=12 \catcode`~=12 \catcode`^=12 \catcode`_=12 \catcode`|=12 \catcode`<=12 \catcode`>=12 \catcode`+=12 \parsearg\includezzz} % Restore active chars for included file. \def\includezzz#1{\endgroup\begingroup % Read the included file in a group so nested @include's work. \def\thisfile{#1}% \input\thisfile \endgroup} \def\thisfile{} % @center line outputs that line, centered \def\center{\parsearg\centerzzz} \def\centerzzz #1{{\advance\hsize by -\leftskip \advance\hsize by -\rightskip \centerline{#1}}} % @sp n outputs n lines of vertical space \def\sp{\parsearg\spxxx} \def\spxxx #1{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment % @ignore ... @end ignore is another way to write a comment \def\comment{\begingroup \catcode`\^^M=\other% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% \commentxxx} {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} \let\c=\comment % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. % We cannot implement @paragraphindent asis, though. % \def\asisword{asis} % no translation, these are keywords \def\noneword{none} % \def\paragraphindent{\parsearg\doparagraphindent} \def\doparagraphindent#1{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \defaultparindent = 0pt \else \defaultparindent = #1em \fi \fi \parindent = \defaultparindent } % @exampleindent NCHARS % We'll use ems for NCHARS like @paragraphindent. % It seems @exampleindent asis isn't necessary, but % I preserve it to make it similar to @paragraphindent. \def\exampleindent{\parsearg\doexampleindent} \def\doexampleindent#1{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \lispnarrowing = 0pt \else \lispnarrowing = #1em \fi \fi } % @asis just yields its argument. Used with @table, for example. % \def\asis#1{#1} % @math means output in math mode. % We don't use $'s directly in the definition of \math because control % sequences like \math are expanded when the toc file is written. Then, % we read the toc file back, the $'s will be normal characters (as they % should be, according to the definition of Texinfo). So we must use a % control sequence to switch into and out of math mode. % % This isn't quite enough for @math to work properly in indices, but it % seems unlikely it will ever be needed there. % \let\implicitmath = $ \def\math#1{\implicitmath #1\implicitmath} % @bullet and @minus need the same treatment as @math, just above. \def\bullet{\implicitmath\ptexbullet\implicitmath} \def\minus{\implicitmath-\implicitmath} % @refill is a no-op. \let\refill=\relax % If working on a large document in chapters, it is convenient to % be able to disable indexing, cross-referencing, and contents, for test runs. % This is done with @novalidate (before @setfilename). % \newif\iflinks \linkstrue % by default we want the aux files. \let\novalidate = \linksfalse % @setfilename is done at the beginning of every texinfo file. % So open here the files we need to have open while reading the input. % This makes it possible to make a .fmt file for texinfo. \def\setfilename{% \iflinks \readauxfile \fi % \openindices needs to do some work in any case. \openindices \fixbackslash % Turn off hack to swallow `\input texinfo'. \global\let\setfilename=\comment % Ignore extra @setfilename cmds. % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. % Just to be on the safe side, close the input stream before the \input. \openin 1 texinfo.cnf \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi \closein1 \temp % \comment % Ignore the actual filename. } % Called from \setfilename. % \def\openindices{% \newindex{cp}% \newcodeindex{fn}% \newcodeindex{vr}% \newcodeindex{tp}% \newcodeindex{ky}% \newcodeindex{pg}% } % @bye. \outer\def\bye{\pagealignmacro\tracingstats=1\ptexend} \message{pdf,} % adobe `portable' document format \newcount\tempnum \newcount\lnkcount \newtoks\filename \newcount\filenamelength \newcount\pgn \newtoks\toksA \newtoks\toksB \newtoks\toksC \newtoks\toksD \newbox\boxA \newcount\countA \newif\ifpdf \newif\ifpdfmakepagedest \ifx\pdfoutput\undefined \pdffalse \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax \let\linkcolor = \relax \let\pdfmakeoutlines = \relax \else \pdftrue \pdfoutput = 1 \input pdfcolor \def\dopdfimage#1#2#3{% \def\imagewidth{#2}% \def\imageheight{#3}% \ifnum\pdftexversion < 14 \pdfimage \else \pdfximage \fi \ifx\empty\imagewidth\else width \imagewidth \fi \ifx\empty\imageheight\else height \imageheight \fi {#1.pdf}% \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} \def\pdfmkdest#1{\pdfdest name{#1@} xyz} \def\pdfmkpgn#1{#1@} \let\linkcolor = \Blue % was Cyan, but that seems light? \def\endlink{\Black\pdfendlink} % Adding outlines to PDF; macros for calculating structure of outlines % come from Petr Olsak \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% \else \csname#1\endcsname \fi} \def\advancenumber#1{\tempnum=\expnumber{#1}\relax \advance\tempnum by1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} \def\pdfmakeoutlines{{% \openin 1 \jobname.toc \ifeof 1\else\bgroup \closein 1 \indexnofonts \def\tt{} \let\_ = \normalunderscore % Thanh's hack / proper braces in bookmarks \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace % \def\chapentry ##1##2##3{} \def\unnumbchapentry ##1##2{} \def\secentry ##1##2##3##4{\advancenumber{chap##2}} \def\unnumbsecentry ##1##2{} \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} \def\unnumbsubsecentry ##1##2{} \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} \def\unnumbsubsubsecentry ##1##2{} \input \jobname.toc \def\chapentry ##1##2##3{% \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} \def\unnumbchapentry ##1##2{% \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} \def\secentry ##1##2##3##4{% \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} \def\unnumbsecentry ##1##2{% \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} \def\subsecentry ##1##2##3##4##5{% \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} \def\unnumbsubsecentry ##1##2{% \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} \def\subsubsecentry ##1##2##3##4##5##6{% \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} \def\unnumbsubsubsecentry ##1##2{% \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} \input \jobname.toc \egroup\fi }} \def\makelinks #1,{% \def\params{#1}\def\E{END}% \ifx\params\E \let\nextmakelinks=\relax \else \let\nextmakelinks=\makelinks \ifnum\lnkcount>0,\fi \picknum{#1}% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{\the\pgn}}% \linkcolor #1% \advance\lnkcount by 1% \endlink \fi \nextmakelinks } \def\picknum#1{\expandafter\pn#1} \def\pn#1{% \def\p{#1}% \ifx\p\lbrace \let\nextpn=\ppn \else \let\nextpn=\ppnn \def\first{#1} \fi \nextpn } \def\ppn#1{\pgn=#1\gobble} \def\ppnn{\pgn=\first} \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces \ifx\p\space\else\addtokens{\filename}{\PP}% \advance\filenamelength by 1 \fi \fi \nextsp} \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax} \ifnum\pdftexversion < 14 \let \startlink \pdfannotlink \else \let \startlink \pdfstartlink \fi \def\pdfurl#1{% \begingroup \normalturnoffactive\def\@{@}% \leavevmode\Red \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% % #1 \endgroup} \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% \expandafter\poptoks\the\toksA|ENDTOKS| \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else \let\next=\maketoks \addtokens{\toksB}{\the\toksD} \ifx\first,\addtokens{\toksB}{\space}\fi \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \startlink attr{/Border [0 0 0]} goto name{\mkpgn{#1}} \linkcolor #1\endlink} \def\mkpgn#1{#1@} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \fi % \ifx\pdfoutput \message{fonts,} % Font-change commands. % Texinfo sort of supports the sans serif font style, which plain TeX does not. % So we set up a \sf analogous to plain's \rm, etc. \newfam\sffam \def\sf{\fam=\sffam \tensf} \let\li = \sf % Sometimes we call it \li, not \sf. % We don't need math for this one. \def\ttsl{\tenttsl} % Use Computer Modern fonts at \magstephalf (11pt). \newcount\mainmagstep \mainmagstep=\magstephalf % Set the font macro #1 to the font named #2, adding on the % specified font prefix (normally `cm'). % #3 is the font's design size, #4 is a scale factor \def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4} % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. \ifx\fontprefix\undefined \def\fontprefix{cm} \fi % Support font families that don't use the same naming scheme as CM. \def\rmshape{r} \def\rmbshape{bx} %where the normal face is bold \def\bfshape{b} \def\bxshape{bx} \def\ttshape{tt} \def\ttbshape{tt} \def\ttslshape{sltt} \def\itshape{ti} \def\itbshape{bxti} \def\slshape{sl} \def\slbshape{bxsl} \def\sfshape{ss} \def\sfbshape{ss} \def\scshape{csc} \def\scbshape{csc} \ifx\bigger\relax \let\mainmagstep=\magstep1 \setfont\textrm\rmshape{12}{1000} \setfont\texttt\ttshape{12}{1000} \else \setfont\textrm\rmshape{10}{\mainmagstep} \setfont\texttt\ttshape{10}{\mainmagstep} \fi % Instead of cmb10, you many want to use cmbx10. % cmbx10 is a prettier font on its own, but cmb10 % looks better when embedded in a line with cmr10. \setfont\textbf\bfshape{10}{\mainmagstep} \setfont\textit\itshape{10}{\mainmagstep} \setfont\textsl\slshape{10}{\mainmagstep} \setfont\textsf\sfshape{10}{\mainmagstep} \setfont\textsc\scshape{10}{\mainmagstep} \setfont\textttsl\ttslshape{10}{\mainmagstep} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep % A few fonts for @defun, etc. \setfont\defbf\bxshape{10}{\magstep1} %was 1314 \setfont\deftt\ttshape{10}{\magstep1} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf} % Fonts for indices, footnotes, small examples (9pt). \setfont\smallrm\rmshape{9}{1000} \setfont\smalltt\ttshape{9}{1000} \setfont\smallbf\bfshape{10}{900} \setfont\smallit\itshape{9}{1000} \setfont\smallsl\slshape{9}{1000} \setfont\smallsf\sfshape{9}{1000} \setfont\smallsc\scshape{10}{900} \setfont\smallttsl\ttslshape{10}{900} \font\smalli=cmmi9 \font\smallsy=cmsy9 % Fonts for title page: \setfont\titlerm\rmbshape{12}{\magstep3} \setfont\titleit\itbshape{10}{\magstep4} \setfont\titlesl\slbshape{10}{\magstep4} \setfont\titlett\ttbshape{12}{\magstep3} \setfont\titlettsl\ttslshape{10}{\magstep4} \setfont\titlesf\sfbshape{17}{\magstep1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\authorrm{\secrm} % Chapter (and unnumbered) fonts (17.28pt). \setfont\chaprm\rmbshape{12}{\magstep2} \setfont\chapit\itbshape{10}{\magstep3} \setfont\chapsl\slbshape{10}{\magstep3} \setfont\chaptt\ttbshape{12}{\magstep2} \setfont\chapttsl\ttslshape{10}{\magstep3} \setfont\chapsf\sfbshape{17}{1000} \let\chapbf=\chaprm \setfont\chapsc\scbshape{10}{\magstep3} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 % Section fonts (14.4pt). \setfont\secrm\rmbshape{12}{\magstep1} \setfont\secit\itbshape{10}{\magstep2} \setfont\secsl\slbshape{10}{\magstep2} \setfont\sectt\ttbshape{12}{\magstep1} \setfont\secttsl\ttslshape{10}{\magstep2} \setfont\secsf\sfbshape{12}{\magstep1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep2} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 % \setfont\ssecrm\bxshape{10}{\magstep1} % This size an font looked bad. % \setfont\ssecit\itshape{10}{\magstep1} % The letters were too crowded. % \setfont\ssecsl\slshape{10}{\magstep1} % \setfont\ssectt\ttshape{10}{\magstep1} % \setfont\ssecsf\sfshape{10}{\magstep1} %\setfont\ssecrm\bfshape{10}{1315} % Note the use of cmb rather than cmbx. %\setfont\ssecit\itshape{10}{1315} % Also, the size is a little larger than %\setfont\ssecsl\slshape{10}{1315} % being scaled magstep1. %\setfont\ssectt\ttshape{10}{1315} %\setfont\ssecsf\sfshape{10}{1315} %\let\ssecbf=\ssecrm % Subsection fonts (13.15pt). \setfont\ssecrm\rmbshape{12}{\magstephalf} \setfont\ssecit\itbshape{10}{1315} \setfont\ssecsl\slbshape{10}{1315} \setfont\ssectt\ttbshape{12}{\magstephalf} \setfont\ssecttsl\ttslshape{10}{1315} \setfont\ssecsf\sfbshape{12}{\magstephalf} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{\magstep1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 % The smallcaps and symbol fonts should actually be scaled \magstep1.5, % but that is not a standard magnification. % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since % texinfo doesn't allow for producing subscripts and superscripts, we % don't bother to reset \scriptfont and \scriptscriptfont (which would % also require loading a lot more fonts). % \def\resetmathfonts{% \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf \textfont\ttfam = \tentt \textfont\sffam = \tensf } % The font-changing commands redefine the meanings of \tenSTYLE, instead % of just \STYLE. We do this so that font changes will continue to work % in math mode, where it is the current \fam that is relevant in most % cases, not the current font. Plain TeX does \def\bf{\fam=\bffam % \tenbf}, for example. By redefining \tenbf, we obviate the need to % redefine \bf itself. \def\textfonts{% \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl \resetmathfonts} \def\titlefonts{% \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy \let\tenttsl=\titlettsl \resetmathfonts \setleading{25pt}} \def\titlefont#1{{\titlefonts\rm #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl \resetmathfonts \setleading{19pt}} \def\secfonts{% \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl \resetmathfonts \setleading{16pt}} \def\subsecfonts{% \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl \resetmathfonts \setleading{15pt}} \let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf? \def\smallfonts{% \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy \let\tenttsl=\smallttsl \resetmathfonts \setleading{11pt}} % Set up the default fonts, so we can use them for creating boxes. % \textfonts % Define these so they can be easily changed for other fonts. \def\angleleft{$\langle$} \def\angleright{$\rangle$} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 % Fonts for short table of contents. \setfont\shortcontrm\rmshape{12}{1000} \setfont\shortcontbf\bxshape{12}{1000} \setfont\shortcontsl\slshape{12}{1000} %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic % \smartitalic{ARG} outputs arg in italics, followed by an italic correction % unless the following character is such as not to need one. \def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi} \def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx} \def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx} \let\i=\smartitalic \let\var=\smartslanted \let\dfn=\smartslanted \let\emph=\smartitalic \let\cite=\smartslanted \def\b#1{{\bf #1}} \let\strong=\b % We can't just use \exhyphenpenalty, because that only has effect at % the end of a paragraph. Restore normal hyphenation at the end of the % group within which \nohyphenation is presumably called. % \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} \def\restorehyphenation{\hyphenchar\font = `- } \def\t#1{% {\tt \rawbackslash \frenchspacing #1}% \null } \let\ttfont=\t \def\samp#1{`\tclose{#1}'\null} \setfont\keyrm\rmshape{8}{1000} \font\keysy=cmsy9 \def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% \vbox{\hrule\kern-0.4pt \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% \kern-0.4pt\hrule}% \kern-.06em\raise0.4pt\hbox{\angleright}}}} % The old definition, with no lozenge: %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} \def\ctrl #1{{\tt \rawbackslash \hat}#1} % @file, @option are the same as @samp. \let\file=\samp \let\option=\samp % @code is a modification of @t, % which makes spaces the same size as normal in the surrounding text. \def\tclose#1{% {% % Change normal interword space to be same as for the current font. \spaceskip = \fontdimen2\font % % Switch to typewriter. \tt % % But `\ ' produces the large typewriter interword space. \def\ {{\spaceskip = 0pt{} }}% % % Turn off hyphenation. \nohyphenation % \rawbackslash \frenchspacing #1% }% \null } % We *must* turn on hyphenation at `-' and `_' in \code. % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. % Unfortunately, TeX uses one parameter (\hyphenchar) to control % both hyphenation at - and hyphenation within words. % We must therefore turn them both off (\tclose does that) % and arrange explicitly to hyphenate at a dash. % -- rms. { \catcode`\-=\active \catcode`\_=\active % \global\def\code{\begingroup \catcode`\-=\active \let-\codedash \catcode`\_=\active \let_\codeunder \codex } % % If we end up with any active - characters when handling the index, % just treat them as a normal -. \global\def\indexbreaks{\catcode`\-=\active \let-\realdash} } \def\realdash{-} \def\codedash{-\discretionary{}{}{}} \def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}} \def\codex #1{\tclose{#1}\endgroup} %\let\exp=\tclose %Was temporary % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). \def\kbdinputstyle{\parsearg\kbdinputstylexxx} \def\kbdinputstylexxx#1{% \def\arg{#1}% \ifx\arg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% \else\ifx\arg\wordexample \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\arg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} % Default is kbdinputdistinct. (Too much of a hassle to call the macro, % the catcodes are wrong for parsearg to work.) \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl} \def\xkey{\key} \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% \ifx\one\xkey\ifx\threex\three \key{#2}% \else{\tclose{\kbdfont\look}}\fi \else{\tclose{\kbdfont\look}}\fi} % For @url, @env, @command quotes seem unnecessary, so use \code. \let\url=\code \let\env=\code \let\command=\code % @uref (abbreviation for `urlref') takes an optional (comma-separated) % second argument specifying the text to display and an optional third % arg as text to display instead of (rather than in addition to) the url % itself. First (mandatory) arg is the url. Perhaps eventually put in % a hypertex \special here. % \def\uref#1{\douref #1,,,\finish} \def\douref#1,#2,#3,#4\finish{\begingroup \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \ifpdf \unhbox0 % PDF: 2nd arg given, show only it \else \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url \fi \else \code{#1}% only url given, so show it \fi \fi \endlink \endgroup} % rms does not like angle brackets --karl, 17may97. % So now @email is just like @uref, unless we are pdf. % %\def\email#1{\angleleft{\tt #1}\angleright} \ifpdf \def\email#1{\doemail#1,,\finish} \def\doemail#1,#2,#3\finish{\begingroup \unsepspaces \pdfurl{mailto:#1}% \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi \endlink \endgroup} \else \let\email=\uref \fi % Check if we are currently using a typewriter font. Since all the % Computer Modern typewriter fonts have zero interword stretch (and % shrink), and it is reasonable to expect all typewriter fonts to have % this property, we can check that font parameter. % \def\ifmonospace{\ifdim\fontdimen3\font=0pt } % Typeset a dimension, e.g., `in' or `pt'. The only reason for the % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % \def\dmn#1{\thinspace #1} \def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par} % @l was never documented to mean ``switch to the Lisp font'', % and it is not used as such in any manual I can find. We need it for % Polish suppressed-l. --karl, 22sep96. %\def\l#1{{\li #1}\null} % Explicit font changes: @r, @sc, undocumented @ii. \def\r#1{{\rm #1}} % roman font \def\sc#1{{\smallcaps#1}} % smallcaps font \def\ii#1{{\it #1}} % italic font % @acronym downcases the argument and prints in smallcaps. \def\acronym#1{{\smallcaps \lowercase{#1}}} % @pounds{} is a sterling sign. \def\pounds{{\it\$}} \message{page headings,} \newskip\titlepagetopglue \titlepagetopglue = 1.5in \newskip\titlepagebottomglue \titlepagebottomglue = 2pc % First the title page. Must do @settitle before @titlepage. \newif\ifseenauthor \newif\iffinishedtitlepage % Do an implicit @contents or @shortcontents after @end titlepage if the % user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage. % \newif\ifsetcontentsaftertitlepage \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue \newif\ifsetshortcontentsaftertitlepage \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue \def\shorttitlepage{\parsearg\shorttitlepagezzz} \def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% \endgroup\page\hbox{}\page} \def\titlepage{\begingroup \parindent=0pt \textfonts \let\subtitlerm=\tenrm \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% % \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}% % % Leave some space at the very top of the page. \vglue\titlepagetopglue % % Now you can print the title using @title. \def\title{\parsearg\titlezzz}% \def\titlezzz##1{\leftline{\titlefonts\rm ##1} % print a rule at the page bottom also. \finishedtitlepagefalse \vskip4pt \hrule height 4pt width \hsize \vskip4pt}% % No rule at page bottom unless we print one at the top with @title. \finishedtitlepagetrue % % Now you can put text using @subtitle. \def\subtitle{\parsearg\subtitlezzz}% \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}% % % @author should come last, but may come many times. \def\author{\parsearg\authorzzz}% \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi {\authorfont \leftline{##1}}}% % % Most title ``pages'' are actually two pages long, with space % at the top of the second. We don't want the ragged left on the second. \let\oldpage = \page \def\page{% \iffinishedtitlepage\else \finishtitlepage \fi \oldpage \let\page = \oldpage \hbox{}}% % \def\page{\oldpage \hbox{}} } \def\Etitlepage{% \iffinishedtitlepage\else \finishtitlepage \fi % It is important to do the page break before ending the group, % because the headline and footline are only empty inside the group. % If we use the new definition of \page, we always get a blank page % after the title page, which we certainly don't want. \oldpage \endgroup % % If they want short, they certainly want long too. \ifsetshortcontentsaftertitlepage \shortcontents \contents \global\let\shortcontents = \relax \global\let\contents = \relax \fi % \ifsetcontentsaftertitlepage \contents \global\let\contents = \relax \global\let\shortcontents = \relax \fi % \ifpdf \pdfmakepagedesttrue \fi % \HEADINGSon } \def\finishtitlepage{% \vskip4pt \hrule height 2pt width \hsize \vskip\titlepagebottomglue \finishedtitlepagetrue } %%% Set up page headings and footings. \let\thispage=\folio \newtoks\evenheadline % headline on even pages \newtoks\oddheadline % headline on odd pages \newtoks\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages % Now make Tex use those variables \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline \else \the\evenheadline \fi}} \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline \else \the\evenfootline \fi}\HEADINGShook} \let\HEADINGShook=\relax % Commands to set those variables. % For example, this is what @headings on does % @evenheading @thistitle|@thispage|@thischapter % @oddheading @thischapter|@thispage|@thistitle % @evenfooting @thisfile|| % @oddfooting ||@thisfile \def\evenheading{\parsearg\evenheadingxxx} \def\oddheading{\parsearg\oddheadingxxx} \def\everyheading{\parsearg\everyheadingxxx} \def\evenfooting{\parsearg\evenfootingxxx} \def\oddfooting{\parsearg\oddfootingxxx} \def\everyfooting{\parsearg\everyfootingxxx} {\catcode`\@=0 % \gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish} \gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{% \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish} \gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{% \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}% \gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish} \gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{% \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish} \gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{% \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. \global\advance\pageheight by -\baselineskip \global\advance\vsize by -\baselineskip } \gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}} % }% unbind the catcode of @. % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. % @headings off turns them off. % @headings on same as @headings double, retained for compatibility. % @headings after turns on double-sided headings after this page. % @headings doubleafter turns on double-sided headings after this page. % @headings singleafter turns on single-sided headings after this page. % By default, they are off at the start of a document, % and turned `on' after @end titlepage. \def\headings #1 {\csname HEADINGS#1\endcsname} \def\HEADINGSoff{ \global\evenheadline={\hfil} \global\evenfootline={\hfil} \global\oddheadline={\hfil} \global\oddfootline={\hfil}} \HEADINGSoff % When we turn headings on, set the page number to 1. % For double-sided printing, put current file name in lower left corner, % chapter name on inside top of right hand pages, document % title on inside top of left hand pages, and page numbers on outside top % edge of all pages. \def\HEADINGSdouble{ \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \let\contentsalignmacro = \chappager % For single-sided printing, chapter title goes across top left of page, % page number on top right. \def\HEADINGSsingle{ \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chappager } \def\HEADINGSon{\HEADINGSdouble} \def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} \let\HEADINGSdoubleafter=\HEADINGSafter \def\HEADINGSdoublex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex} \def\HEADINGSsinglex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chappager } % Subroutines used in generating headings % This produces Day Month Year style of output. % Only define if not already defined, in case a txi-??.tex file has set % up a different format (e.g., txi-cs.tex does this). \ifx\today\undefined \def\today{% \number\day\space \ifcase\month \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec \fi \space\number\year} \fi % @settitle line... specifies the title of the document, for headings. % It generates no output of its own. \def\thistitle{\putwordNoTitle} \def\settitle{\parsearg\settitlezzz} \def\settitlezzz #1{\gdef\thistitle{#1}} \message{tables,} % Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x). % default indentation of table text \newdimen\tableindent \tableindent=.8in % default indentation of @itemize and @enumerate text \newdimen\itemindent \itemindent=.3in % margin between end of table item and start of table text. \newdimen\itemmargin \itemmargin=.1in % used internally for \itemindent minus \itemmargin \newdimen\itemmax % Note @table, @vtable, and @vtable define @item, @itemx, etc., with % these defs. % They also define \itemindex % to index the item name in whatever manner is desired (perhaps none). \newif\ifitemxneedsnegativevskip \def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi} \def\internalBitem{\smallbreak \parsearg\itemzzz} \def\internalBitemx{\itemxpar \parsearg\itemzzz} \def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz} \def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz} \def\internalBkitem{\smallbreak \parsearg\kitemzzz} \def\internalBkitemx{\itemxpar \parsearg\kitemzzz} \def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}% \itemzzz {#1}} \def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}% \itemzzz {#1}} \def\itemzzz #1{\begingroup % \advance\hsize by -\rightskip \advance\hsize by -\tableindent \setbox0=\hbox{\itemfont{#1}}% \itemindex{#1}% \nobreak % This prevents a break before @itemx. % % If the item text does not fit in the space we have, put it on a line % by itself, and do not allow a page break either before or after that % line. We do not start a paragraph here because then if the next % command is, e.g., @kindex, the whatsit would get put into the % horizontal list on a line by itself, resulting in extra blank space. \ifdim \wd0>\itemmax % % Make this a paragraph so we get the \parskip glue and wrapping, % but leave it ragged-right. \begingroup \advance\leftskip by-\tableindent \advance\hsize by\tableindent \advance\rightskip by0pt plus1fil \leavevmode\unhbox0\par \endgroup % % We're going to be starting a paragraph, but we don't want the % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % % Stop a page break at the \parskip glue coming up. Unfortunately % we can't prevent a possible page break at the following % \baselineskip glue. \nobreak \endgroup \itemxneedsnegativevskipfalse \else % The item text fits into the space. Start a paragraph, so that the % following text (if any) will end up on the same line. \noindent % Do this with kerns and \unhbox so that if there is a footnote in % the item text, it can migrate to the main vertical list and % eventually be printed. \nobreak\kern-\tableindent \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0 \unhbox0 \nobreak\kern\dimen0 \endgroup \itemxneedsnegativevskiptrue \fi } \def\item{\errmessage{@item while not in a table}} \def\itemx{\errmessage{@itemx while not in a table}} \def\kitem{\errmessage{@kitem while not in a table}} \def\kitemx{\errmessage{@kitemx while not in a table}} \def\xitem{\errmessage{@xitem while not in a table}} \def\xitemx{\errmessage{@xitemx while not in a table}} % Contains a kludge to get @end[description] to work. \def\description{\tablez{\dontindex}{1}{}{}{}{}} % @table, @ftable, @vtable. \def\table{\begingroup\inENV\obeylines\obeyspaces\tablex} {\obeylines\obeyspaces% \gdef\tablex #1^^M{% \tabley\dontindex#1 \endtabley}} \def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex} {\obeylines\obeyspaces% \gdef\ftablex #1^^M{% \tabley\fnitemindex#1 \endtabley \def\Eftable{\endgraf\afterenvbreak\endgroup}% \let\Etable=\relax}} \def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex} {\obeylines\obeyspaces% \gdef\vtablex #1^^M{% \tabley\vritemindex#1 \endtabley \def\Evtable{\endgraf\afterenvbreak\endgroup}% \let\Etable=\relax}} \def\dontindex #1{} \def\fnitemindex #1{\doind {fn}{\code{#1}}}% \def\vritemindex #1{\doind {vr}{\code{#1}}}% {\obeyspaces % \gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup% \tablez{#1}{#2}{#3}{#4}{#5}{#6}}} \def\tablez #1#2#3#4#5#6{% \aboveenvbreak % \begingroup % \def\Edescription{\Etable}% Necessary kludge. \let\itemindex=#1% \ifnum 0#3>0 \advance \leftskip by #3\mil \fi % \ifnum 0#4>0 \tableindent=#4\mil \fi % \ifnum 0#5>0 \advance \rightskip by #5\mil \fi % \def\itemfont{#2}% \itemmax=\tableindent % \advance \itemmax by -\itemmargin % \advance \leftskip by \tableindent % \exdentamount=\tableindent \parindent = 0pt \parskip = \smallskipamount \ifdim \parskip=0pt \parskip=2pt \fi% \def\Etable{\endgraf\afterenvbreak\endgroup}% \let\item = \internalBitem % \let\itemx = \internalBitemx % \let\kitem = \internalBkitem % \let\kitemx = \internalBkitemx % \let\xitem = \internalBxitem % \let\xitemx = \internalBxitemx % } % This is the counter used by @enumerate, which is really @itemize \newcount \itemno \def\itemize{\parsearg\itemizezzz} \def\itemizezzz #1{% \begingroup % ended by the @end itemize \itemizey {#1}{\Eitemize} } \def\itemizey #1#2{% \aboveenvbreak % \itemmax=\itemindent % \advance \itemmax by -\itemmargin % \advance \leftskip by \itemindent % \exdentamount=\itemindent \parindent = 0pt % \parskip = \smallskipamount % \ifdim \parskip=0pt \parskip=2pt \fi% \def#2{\endgraf\afterenvbreak\endgroup}% \def\itemcontents{#1}% \let\item=\itemizeitem} % Set sfcode to normal for the chars that usually have another value. % These are `.?!:;,' \def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000 \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 } % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. % \def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}% % Allow an optional argument of an uppercase letter, lowercase letter, % or number, to specify the first label in the enumerated list. No % argument is the same as `1'. % \def\enumerate{\parsearg\enumeratezzz} \def\enumeratezzz #1{\enumeratey #1 \endenumeratey} \def\enumeratey #1 #2\endenumeratey{% \begingroup % ended by the @end enumerate % % If we were given no argument, pretend we were given `1'. \def\thearg{#1}% \ifx\thearg\empty \def\thearg{1}\fi % % Detect if the argument is a single token. If so, it might be a % letter. Otherwise, the only valid thing it can be is a number. % (We will always have one token, because of the test we just made. % This is a good thing, since \splitoff doesn't work given nothing at % all -- the first parameter is undelimited.) \expandafter\splitoff\thearg\endmark \ifx\rest\empty % Only one token in the argument. It could still be anything. % A ``lowercase letter'' is one whose \lccode is nonzero. % An ``uppercase letter'' is one whose \lccode is both nonzero, and % not equal to itself. % Otherwise, we assume it's a number. % % We need the \relax at the end of the \ifnum lines to stop TeX from % continuing to look for a . % \ifnum\lccode\expandafter`\thearg=0\relax \numericenumerate % a number (we hope) \else % It's a letter. \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax \lowercaseenumerate % lowercase letter \else \uppercaseenumerate % uppercase letter \fi \fi \else % Multiple tokens in the argument. We hope it's a number. \numericenumerate \fi } % An @enumerate whose labels are integers. The starting integer is % given in \thearg. % \def\numericenumerate{% \itemno = \thearg \startenumeration{\the\itemno}% } % The starting (lowercase) letter is in \thearg. \def\lowercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more lowercase letters in @enumerate; get a bigger alphabet}% \fi \char\lccode\itemno }% } % The starting (uppercase) letter is in \thearg. \def\uppercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more uppercase letters in @enumerate; get a bigger alphabet} \fi \char\uccode\itemno }% } % Call itemizey, adding a period to the first argument and supplying the % common last two arguments. Also subtract one from the initial value in % \itemno, since @item increments \itemno. % \def\startenumeration#1{% \advance\itemno by -1 \itemizey{#1.}\Eenumerate\flushcr } % @alphaenumerate and @capsenumerate are abbreviations for giving an arg % to @enumerate. % \def\alphaenumerate{\enumerate{a}} \def\capsenumerate{\enumerate{A}} \def\Ealphaenumerate{\Eenumerate} \def\Ecapsenumerate{\Eenumerate} % Definition of @item while inside @itemize. \def\itemizeitem{% \advance\itemno by 1 {\let\par=\endgraf \smallbreak}% \ifhmode \errmessage{In hmode at itemizeitem}\fi {\parskip=0in \hskip 0pt \hbox to 0pt{\hss \itemcontents\hskip \itemmargin}% \vadjust{\penalty 1200}}% \flushcr} % @multitable macros % Amy Hendrickson, 8/18/94, 3/6/96 % % @multitable ... @end multitable will make as many columns as desired. % Contents of each column will wrap at width given in preamble. Width % can be specified either with sample text given in a template line, % or in percent of \hsize, the current width of text on page. % Table can continue over pages but will only break between lines. % To make preamble: % % Either define widths of columns in terms of percent of \hsize: % @multitable @columnfractions .25 .3 .45 % @item ... % % Numbers following @columnfractions are the percent of the total % current hsize to be used for each column. You may use as many % columns as desired. % Or use a template: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item ... % using the widest term desired in each column. % % For those who want to use more than one line's worth of words in % the preamble, break the line within one argument and it % will parse correctly, i.e., % % @multitable {Column 1 template} {Column 2 template} {Column 3 % template} % Not: % @multitable {Column 1 template} {Column 2 template} % {Column 3 template} % Each new table line starts with @item, each subsequent new column % starts with @tab. Empty columns may be produced by supplying @tab's % with nothing between them for as many times as empty columns are needed, % ie, @tab@tab@tab will produce two empty columns. % @item, @tab, @multitable or @end multitable do not need to be on their % own lines, but it will not hurt if they are. % Sample multitable: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item first col stuff @tab second col stuff @tab third col % @item % first col stuff % @tab % second col stuff % @tab % third col % @item first col stuff @tab second col stuff % @tab Many paragraphs of text may be used in any column. % % They will wrap at the width determined by the template. % @item@tab@tab This will be in third column. % @end multitable % Default dimensions may be reset by user. % @multitableparskip is vertical space between paragraphs in table. % @multitableparindent is paragraph indent in table. % @multitablecolmargin is horizontal space to be left between columns. % @multitablelinespace is space to leave between table items, baseline % to baseline. % 0pt means it depends on current normal line spacing. % \newskip\multitableparskip \newskip\multitableparindent \newdimen\multitablecolspace \newskip\multitablelinespace \multitableparskip=0pt \multitableparindent=6pt \multitablecolspace=12pt \multitablelinespace=0pt % Macros used to set up halign preamble: % \let\endsetuptable\relax \def\xendsetuptable{\endsetuptable} \let\columnfractions\relax \def\xcolumnfractions{\columnfractions} \newif\ifsetpercent % #1 is the part of the @columnfraction before the decimal point, which % is presumably either 0 or the empty string (but we don't check, we % just throw it away). #2 is the decimal part, which we use as the % percent of \hsize for this column. \def\pickupwholefraction#1.#2 {% \global\advance\colcount by 1 \expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize}% \setuptable } \newcount\colcount \def\setuptable#1{% \def\firstarg{#1}% \ifx\firstarg\xendsetuptable \let\go = \relax \else \ifx\firstarg\xcolumnfractions \global\setpercenttrue \else \ifsetpercent \let\go\pickupwholefraction \else \global\advance\colcount by 1 \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator; % typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi \fi \ifx\go\pickupwholefraction % Put the argument back for the \pickupwholefraction call, so % we'll always have a period there to be parsed. \def\go{\pickupwholefraction#1}% \else \let\go = \setuptable \fi% \fi \go } % This used to have \hskip1sp. But then the space in a template line is % not enough. That is bad. So let's go back to just & until we % encounter the problem it was intended to solve again. % --karl, nathan@acm.org, 20apr99. \def\tab{&} % @multitable ... @end multitable definitions: % \def\multitable{\parsearg\dotable} \def\dotable#1{\bgroup \vskip\parskip \let\item\crcr \tolerance=9500 \hbadness=9500 \setmultitablespacing \parskip=\multitableparskip \parindent=\multitableparindent \overfullrule=0pt \global\colcount=0 \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}% % % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable % % \everycr will reset column counter, \colcount, at the end of % each line. Every column entry will cause \colcount to advance by one. % The table preamble % looks at the current \colcount to find the correct column width. \everycr{\noalign{% % % \filbreak%% keeps underfull box messages off when table breaks over pages. % Maybe so, but it also creates really weird page breaks when the table % breaks over pages. Wouldn't \vfil be better? Wait until the problem % manifests itself, so it can be fixed for real --karl. \global\colcount=0\relax}}% % % This preamble sets up a generic column definition, which will % be used as many times as user calls for columns. % \vtop will set a single line and will also let text wrap and % continue for many paragraphs if desired. \halign\bgroup&\global\advance\colcount by 1\relax \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname % % In order to keep entries from bumping into each other % we will add a \leftskip of \multitablecolspace to all columns after % the first one. % % If a template has been used, we will add \multitablecolspace % to the width of each template entry. % % If the user has set preamble in terms of percent of \hsize we will % use that dimension as the width of the column, and the \leftskip % will keep entries from bumping into each other. Table will start at % left margin and final column will justify at right margin. % % Make sure we don't inherit \rightskip from the outer environment. \rightskip=0pt \ifnum\colcount=1 % The first column will be indented with the surrounding text. \advance\hsize by\leftskip \else \ifsetpercent \else % If user has not set preamble in terms of percent of \hsize % we will advance \hsize by \multitablecolspace. \advance\hsize by \multitablecolspace \fi % In either case we will make \leftskip=\multitablecolspace: \leftskip=\multitablecolspace \fi % Ignoring space at the beginning and end avoids an occasional spurious % blank line, when TeX decides to break the line at the space before the % box from the multistrut, so the strut ends up on a line by itself. % For example: % @multitable @columnfractions .11 .89 % @item @code{#} % @tab Legal holiday which is valid in major parts of the whole country. % Is automatically provided with highlighting sequences respectively marking % characters. \noindent\ignorespaces##\unskip\multistrut}\cr } \def\setmultitablespacing{% test to see if user has set \multitablelinespace. % If so, do nothing. If not, give it an appropriate dimension based on % current baselineskip. \ifdim\multitablelinespace=0pt \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip \global\advance\multitablelinespace by-\ht0 %% strut to put in table in case some entry doesn't have descenders, %% to keep lines equally spaced \let\multistrut = \strut \else %% FIXME: what is \box0 supposed to be? \gdef\multistrut{\vrule height\multitablelinespace depth\dp0 width0pt\relax} \fi %% Test to see if parskip is larger than space between lines of %% table. If not, do nothing. %% If so, set to same dimension as multitablelinespace. \ifdim\multitableparskip>\multitablelinespace \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller %% than skip between lines in the table. \fi% \ifdim\multitableparskip=0pt \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller %% than skip between lines in the table. \fi} \message{conditionals,} % Prevent errors for section commands. % Used in @ignore and in failing conditionals. \def\ignoresections{% \let\chapter=\relax \let\unnumbered=\relax \let\top=\relax \let\unnumberedsec=\relax \let\unnumberedsection=\relax \let\unnumberedsubsec=\relax \let\unnumberedsubsection=\relax \let\unnumberedsubsubsec=\relax \let\unnumberedsubsubsection=\relax \let\section=\relax \let\subsec=\relax \let\subsubsec=\relax \let\subsection=\relax \let\subsubsection=\relax \let\appendix=\relax \let\appendixsec=\relax \let\appendixsection=\relax \let\appendixsubsec=\relax \let\appendixsubsection=\relax \let\appendixsubsubsec=\relax \let\appendixsubsubsection=\relax \let\contents=\relax \let\smallbook=\relax \let\titlepage=\relax } % Used in nested conditionals, where we have to parse the Texinfo source % and so want to turn off most commands, in case they are used % incorrectly. % \def\ignoremorecommands{% \let\defcodeindex = \relax \let\defcv = \relax \let\deffn = \relax \let\deffnx = \relax \let\defindex = \relax \let\defivar = \relax \let\defmac = \relax \let\defmethod = \relax \let\defop = \relax \let\defopt = \relax \let\defspec = \relax \let\deftp = \relax \let\deftypefn = \relax \let\deftypefun = \relax \let\deftypeivar = \relax \let\deftypeop = \relax \let\deftypevar = \relax \let\deftypevr = \relax \let\defun = \relax \let\defvar = \relax \let\defvr = \relax \let\ref = \relax \let\xref = \relax \let\printindex = \relax \let\pxref = \relax \let\settitle = \relax \let\setchapternewpage = \relax \let\setchapterstyle = \relax \let\everyheading = \relax \let\evenheading = \relax \let\oddheading = \relax \let\everyfooting = \relax \let\evenfooting = \relax \let\oddfooting = \relax \let\headings = \relax \let\include = \relax \let\lowersections = \relax \let\down = \relax \let\raisesections = \relax \let\up = \relax \let\set = \relax \let\clear = \relax \let\item = \relax } % Ignore @ignore ... @end ignore. % \def\ignore{\doignore{ignore}} % Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text. % \def\ifinfo{\doignore{ifinfo}} \def\ifhtml{\doignore{ifhtml}} \def\ifnottex{\doignore{ifnottex}} \def\html{\doignore{html}} \def\menu{\doignore{menu}} \def\direntry{\doignore{direntry}} % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. \let\dircategory = \comment % Ignore text until a line `@end #1'. % \def\doignore#1{\begingroup % Don't complain about control sequences we have declared \outer. \ignoresections % % Define a command to swallow text until we reach `@end #1'. % This @ is a catcode 12 token (that is the normal catcode of @ in % this texinfo.tex file). We change the catcode of @ below to match. \long\def\doignoretext##1@end #1{\enddoignore}% % % Make sure that spaces turn into tokens that match what \doignoretext wants. \catcode32 = 10 % % Ignore braces, too, so mismatched braces don't cause trouble. \catcode`\{ = 9 \catcode`\} = 9 % % We must not have @c interpreted as a control sequence. \catcode`\@ = 12 % % Make the letter c a comment character so that the rest of the line % will be ignored. This way, the document can have (for example) % @c @end ifinfo % and the @end ifinfo will be properly ignored. % (We've just changed @ to catcode 12.) \catcode`\c = 14 % % And now expand that command. \doignoretext } % What we do to finish off ignored text. % \def\enddoignore{\endgroup\ignorespaces}% \newif\ifwarnedobs\warnedobsfalse \def\obstexwarn{% \ifwarnedobs\relax\else % We need to warn folks that they may have trouble with TeX 3.0. % This uses \immediate\write16 rather than \message to get newlines. \immediate\write16{} \immediate\write16{WARNING: for users of Unix TeX 3.0!} \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).} \immediate\write16{If you are running another version of TeX, relax.} \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.} \immediate\write16{ Then upgrade your TeX installation if you can.} \immediate\write16{ (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)} \immediate\write16{If you are stuck with version 3.0, run the} \immediate\write16{ script ``tex3patch'' from the Texinfo distribution} \immediate\write16{ to use a workaround.} \immediate\write16{} \global\warnedobstrue \fi } % **In TeX 3.0, setting text in \nullfont hangs tex. For a % workaround (which requires the file ``dummy.tfm'' to be installed), % uncomment the following line: %%%%%\font\nullfont=dummy\let\obstexwarn=\relax % Ignore text, except that we keep track of conditional commands for % purposes of nesting, up to an `@end #1' command. % \def\nestedignore#1{% \obstexwarn % We must actually expand the ignored text to look for the @end % command, so that nested ignore constructs work. Thus, we put the % text into a \vbox and then do nothing with the result. To minimize % the change of memory overflow, we follow the approach outlined on % page 401 of the TeXbook: make the current font be a dummy font. % \setbox0 = \vbox\bgroup % Don't complain about control sequences we have declared \outer. \ignoresections % % Define `@end #1' to end the box, which will in turn undefine the % @end command again. \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}% % % We are going to be parsing Texinfo commands. Most cause no % trouble when they are used incorrectly, but some commands do % complicated argument parsing or otherwise get confused, so we % undefine them. % % We can't do anything about stray @-signs, unfortunately; % they'll produce `undefined control sequence' errors. \ignoremorecommands % % Set the current font to be \nullfont, a TeX primitive, and define % all the font commands to also use \nullfont. We don't use % dummy.tfm, as suggested in the TeXbook, because not all sites % might have that installed. Therefore, math mode will still % produce output, but that should be an extremely small amount of % stuff compared to the main input. % \nullfont \let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont \let\tensf=\nullfont % Similarly for index fonts (mostly for their use in smallexample). \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont \let\smallsf=\nullfont % % Don't complain when characters are missing from the fonts. \tracinglostchars = 0 % % Don't bother to do space factor calculations. \frenchspacing % % Don't report underfull hboxes. \hbadness = 10000 % % Do minimal line-breaking. \pretolerance = 10000 % % Do not execute instructions in @tex \def\tex{\doignore{tex}}% % Do not execute macro definitions. % `c' is a comment character, so the word `macro' will get cut off. \def\macro{\doignore{ma}}% } % @set VAR sets the variable VAR to an empty value. % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. % % Since we want to separate VAR from REST-OF-LINE (which might be % empty), we can't just use \parsearg; we have to insert a space of our % own to delimit the rest of the line, and then take it out again if we % didn't need it. Make sure the catcode of space is correct to avoid % losing inside @example, for instance. % \def\set{\begingroup\catcode` =10 \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR. \parsearg\setxxx} \def\setxxx#1{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% \def\temp{#2}% \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted. \fi \endgroup } % Can't use \xdef to pre-expand #2 and save some time, since \temp or % \next or other control sequences that we've defined might get us into % an infinite loop. Consider `@set foo @cite{bar}'. \def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}} % @clear VAR clears (i.e., unsets) the variable VAR. % \def\clear{\parsearg\clearxxx} \def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax} % @value{foo} gets the text saved in variable foo. { \catcode`\_ = \active % % We might end up with active _ or - characters in the argument if % we're called from @code, as @code{@value{foo-bar_}}. So \let any % such active characters to their normal equivalents. \gdef\value{\begingroup \catcode`\-=12 \catcode`\_=12 \indexbreaks \let_\normalunderscore \valuexxx} } \def\valuexxx#1{\expandablevalue{#1}\endgroup} % We have this subroutine so that we can handle at least some @value's % properly in indexes (we \let\value to this in \indexdummies). Ones % whose names contain - or _ still won't work, but we can't do anything % about that. The command has to be fully expandable, since the result % winds up in the index file. This means that if the variable's value % contains other Texinfo commands, it's almost certain it will fail % (although perhaps we could fix that with sufficient work to do a % one-level expansion on the result, instead of complete). % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% \else \csname SET#1\endcsname \fi } % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % \def\ifset{\parsearg\ifsetxxx} \def\ifsetxxx #1{% \expandafter\ifx\csname SET#1\endcsname\relax \expandafter\ifsetfail \else \expandafter\ifsetsucceed \fi } \def\ifsetsucceed{\conditionalsucceed{ifset}} \def\ifsetfail{\nestedignore{ifset}} \defineunmatchedend{ifset} % @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % \def\ifclear{\parsearg\ifclearxxx} \def\ifclearxxx #1{% \expandafter\ifx\csname SET#1\endcsname\relax \expandafter\ifclearsucceed \else \expandafter\ifclearfail \fi } \def\ifclearsucceed{\conditionalsucceed{ifclear}} \def\ifclearfail{\nestedignore{ifclear}} \defineunmatchedend{ifclear} % @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text % following, through the first @end iftex (etc.). Make `@end iftex' % (etc.) valid only after an @iftex. % \def\iftex{\conditionalsucceed{iftex}} \def\ifnothtml{\conditionalsucceed{ifnothtml}} \def\ifnotinfo{\conditionalsucceed{ifnotinfo}} \defineunmatchedend{iftex} \defineunmatchedend{ifnothtml} \defineunmatchedend{ifnotinfo} % We can't just want to start a group at @iftex (for example) and end it % at @end iftex, since then @set commands inside the conditional have no % effect (they'd get reverted at the end of the group). So we must % define \Eiftex to redefine itself to be its previous value. (We can't % just define it to fail again with an ``unmatched end'' error, since % the @ifset might be nested.) % \def\conditionalsucceed#1{% \edef\temp{% % Remember the current value of \E#1. \let\nece{prevE#1} = \nece{E#1}% % % At the `@end #1', redefine \E#1 to be its previous value. \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}% }% \temp } % We need to expand lots of \csname's, but we don't want to expand the % control sequences after we've constructed them. % \def\nece#1{\expandafter\noexpand\csname#1\endcsname} % @defininfoenclose. \let\definfoenclose=\comment \message{indexing,} % Index generation facilities % Define \newwrite to be identical to plain tex's \newwrite % except not \outer, so it can be used within \newindex. {\catcode`\@=11 \gdef\newwrite{\alloc@7\write\chardef\sixt@@n}} % \newindex {foo} defines an index named foo. % It automatically defines \fooindex such that % \fooindex ...rest of line... puts an entry in the index foo. % It also defines \fooindfile to be the number of the output channel for % the file that accumulates this index. The file's extension is foo. % The name of an index should be no more than 2 characters long % for the sake of vms. % \def\newindex#1{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 % Open the file \fi \expandafter\xdef\csname#1index\endcsname{% % Define @#1index \noexpand\doindex{#1}} } % @defindex foo == \newindex{foo} \def\defindex{\parsearg\newindex} % Define @defcodeindex, like @defindex except put all entries in @code. \def\newcodeindex#1{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 \fi \expandafter\xdef\csname#1index\endcsname{% \noexpand\docodeindex{#1}} } \def\defcodeindex{\parsearg\newcodeindex} % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. % The \closeout helps reduce unnecessary open files; the limit on the % Acorn RISC OS is a mere 16 files. \def\synindex#1 #2 {% \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname \expandafter\closeout\csname#1indfile\endcsname \expandafter\let\csname#1indfile\endcsname=\synindexfoo \expandafter\xdef\csname#1index\endcsname{% define \xxxindex \noexpand\doindex{#2}}% } % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. \def\syncodeindex#1 #2 {% \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname \expandafter\closeout\csname#1indfile\endcsname \expandafter\let\csname#1indfile\endcsname=\synindexfoo \expandafter\xdef\csname#1index\endcsname{% define \xxxindex \noexpand\docodeindex{#2}}% } % Define \doindex, the driver for all \fooindex macros. % Argument #1 is generated by the calling \fooindex macro, % and it is "foo", the name of the index. % \doindex just uses \parsearg; it calls \doind for the actual work. % This is because \doind is more useful to call from other macros. % There is also \dosubind {index}{topic}{subtopic} % which makes an entry in a two-level index such as the operation index. \def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer} \def\singleindexer #1{\doind{\indexname}{#1}} % like the previous two, but they put @code around the argument. \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} \def\indexdummies{% \def\ { }% % Take care of the plain tex accent commands. \def\"{\realbackslash "}% \def\`{\realbackslash `}% \def\'{\realbackslash '}% \def\^{\realbackslash ^}% \def\~{\realbackslash ~}% \def\={\realbackslash =}% \def\b{\realbackslash b}% \def\c{\realbackslash c}% \def\d{\realbackslash d}% \def\u{\realbackslash u}% \def\v{\realbackslash v}% \def\H{\realbackslash H}% % Take care of the plain tex special European modified letters. \def\oe{\realbackslash oe}% \def\ae{\realbackslash ae}% \def\aa{\realbackslash aa}% \def\OE{\realbackslash OE}% \def\AE{\realbackslash AE}% \def\AA{\realbackslash AA}% \def\o{\realbackslash o}% \def\O{\realbackslash O}% \def\l{\realbackslash l}% \def\L{\realbackslash L}% \def\ss{\realbackslash ss}% % Take care of texinfo commands likely to appear in an index entry. % (Must be a way to avoid doing expansion at all, and thus not have to % laboriously list every single command here.) \def\@{@}% will be @@ when we switch to @ as escape char. % Need these in case \tex is in effect and \{ is a \delimiter again. % But can't use \lbracecmd and \rbracecmd because texindex assumes % braces and backslashes are used only as delimiters. \let\{ = \mylbrace \let\} = \myrbrace \def\_{{\realbackslash _}}% \def\w{\realbackslash w }% \def\bf{\realbackslash bf }% %\def\rm{\realbackslash rm }% \def\sl{\realbackslash sl }% \def\sf{\realbackslash sf}% \def\tt{\realbackslash tt}% \def\gtr{\realbackslash gtr}% \def\less{\realbackslash less}% \def\hat{\realbackslash hat}% \def\TeX{\realbackslash TeX}% \def\dots{\realbackslash dots }% \def\result{\realbackslash result}% \def\equiv{\realbackslash equiv}% \def\expansion{\realbackslash expansion}% \def\print{\realbackslash print}% \def\error{\realbackslash error}% \def\point{\realbackslash point}% \def\copyright{\realbackslash copyright}% \def\tclose##1{\realbackslash tclose {##1}}% \def\code##1{\realbackslash code {##1}}% \def\uref##1{\realbackslash uref {##1}}% \def\url##1{\realbackslash url {##1}}% \def\env##1{\realbackslash env {##1}}% \def\command##1{\realbackslash command {##1}}% \def\option##1{\realbackslash option {##1}}% \def\dotless##1{\realbackslash dotless {##1}}% \def\samp##1{\realbackslash samp {##1}}% \def\,##1{\realbackslash ,{##1}}% \def\t##1{\realbackslash t {##1}}% \def\r##1{\realbackslash r {##1}}% \def\i##1{\realbackslash i {##1}}% \def\b##1{\realbackslash b {##1}}% \def\sc##1{\realbackslash sc {##1}}% \def\cite##1{\realbackslash cite {##1}}% \def\key##1{\realbackslash key {##1}}% \def\file##1{\realbackslash file {##1}}% \def\var##1{\realbackslash var {##1}}% \def\kbd##1{\realbackslash kbd {##1}}% \def\dfn##1{\realbackslash dfn {##1}}% \def\emph##1{\realbackslash emph {##1}}% \def\acronym##1{\realbackslash acronym {##1}}% % % Handle some cases of @value -- where the variable name does not % contain - or _, and the value does not contain any % (non-fully-expandable) commands. \let\value = \expandablevalue % \unsepspaces % Turn off macro expansion \turnoffmacros } % If an index command is used in an @example environment, any spaces % therein should become regular spaces in the raw index file, not the % expansion of \tie (\\leavevmode \penalty \@M \ ). {\obeyspaces \gdef\unsepspaces{\obeyspaces\let =\space}} % \indexnofonts no-ops all font-change commands. % This is used when outputting the strings to sort the index by. \def\indexdummyfont#1{#1} \def\indexdummytex{TeX} \def\indexdummydots{...} \def\indexnofonts{% % Just ignore accents. \let\,=\indexdummyfont \let\"=\indexdummyfont \let\`=\indexdummyfont \let\'=\indexdummyfont \let\^=\indexdummyfont \let\~=\indexdummyfont \let\==\indexdummyfont \let\b=\indexdummyfont \let\c=\indexdummyfont \let\d=\indexdummyfont \let\u=\indexdummyfont \let\v=\indexdummyfont \let\H=\indexdummyfont \let\dotless=\indexdummyfont % Take care of the plain tex special European modified letters. \def\oe{oe}% \def\ae{ae}% \def\aa{aa}% \def\OE{OE}% \def\AE{AE}% \def\AA{AA}% \def\o{o}% \def\O{O}% \def\l{l}% \def\L{L}% \def\ss{ss}% \let\w=\indexdummyfont \let\t=\indexdummyfont \let\r=\indexdummyfont \let\i=\indexdummyfont \let\b=\indexdummyfont \let\emph=\indexdummyfont \let\strong=\indexdummyfont \let\cite=\indexdummyfont \let\sc=\indexdummyfont %Don't no-op \tt, since it isn't a user-level command % and is used in the definitions of the active chars like <, >, |... %\let\tt=\indexdummyfont \let\tclose=\indexdummyfont \let\code=\indexdummyfont \let\url=\indexdummyfont \let\uref=\indexdummyfont \let\env=\indexdummyfont \let\acronym=\indexdummyfont \let\command=\indexdummyfont \let\option=\indexdummyfont \let\file=\indexdummyfont \let\samp=\indexdummyfont \let\kbd=\indexdummyfont \let\key=\indexdummyfont \let\var=\indexdummyfont \let\TeX=\indexdummytex \let\dots=\indexdummydots \def\@{@}% } % To define \realbackslash, we must make \ not be an escape. % We must first make another character (@) an escape % so we do not become unable to do a definition. {\catcode`\@=0 \catcode`\\=\other @gdef@realbackslash{\}} \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? % For \ifx comparisons. \def\emptymacro{\empty} % Most index entries go through here, but \dosubind is the general case. % \def\doind#1#2{\dosubind{#1}{#2}\empty} % Workhorse for all \fooindexes. % #1 is name of index, #2 is stuff to put there, #3 is subentry -- % \empty if called from \doind, as we usually are. The main exception % is with defuns, which call us directly. % \def\dosubind#1#2#3{% % Put the index entry in the margin if desired. \ifx\SETmarginindex\relax\else \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}% \fi {% \count255=\lastpenalty {% \indexdummies % Must do this here, since \bf, etc expand at this stage \escapechar=`\\ {% \let\folio = 0% We will expand all macros now EXCEPT \folio. \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % \def\thirdarg{#3}% % % If third arg is present, precede it with space in sort key. \ifx\thirdarg\emptymacro \let\subentry = \empty \else \def\subentry{ #3}% \fi % % First process the index entry with all font commands turned % off to get the string to sort by. {\indexnofonts \xdef\indexsorttmp{#2\subentry}}% % % Now the real index entry with the fonts. \toks0 = {#2}% % % If third (subentry) arg is present, add it to the index % string. And include a space. \ifx\thirdarg\emptymacro \else \toks0 = \expandafter{\the\toks0 \space #3}% \fi % % Set up the complete index entry, with both the sort key % and the original text, including any font commands. We write % three arguments to \entry to the .?? file, texindex reduces to % two when writing the .??s sorted result. \edef\temp{% \write\csname#1indfile\endcsname{% \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}% }% % % If a skip is the last thing on the list now, preserve it % by backing up by \lastskip, doing the \write, then inserting % the skip again. Otherwise, the whatsit generated by the % \write will make \lastskip zero. The result is that sequences % like this: % @end defun % @tindex whatever % @defun ... % will have extra space inserted, because the \medbreak in the % start of the @defun won't see the skip inserted by the @end of % the previous defun. % % But don't do any of this if we're not in vertical mode. We % don't want to do a \vskip and prematurely end a paragraph. % % Avoid page breaks due to these extra skips, too. % \iflinks \ifvmode \skip0 = \lastskip \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi \fi % \temp % do the write % % \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi \fi }% }% \penalty\count255 }% } % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} % or % \entry {sortstring}{page}{topic}{subtopic} % The texindex program reads in these files and writes files % containing these kinds of lines: % \initial {c} % before the first topic whose initial is c % \entry {topic}{pagelist} % for a topic that is used without subtopics % \primary {topic} % for the beginning of a topic that is used with subtopics % \secondary {subtopic}{pagelist} % for each subtopic. % Define the user-accessible indexing commands % @findex, @vindex, @kindex, @cindex. \def\findex {\fnindex} \def\kindex {\kyindex} \def\cindex {\cpindex} \def\vindex {\vrindex} \def\tindex {\tpindex} \def\pindex {\pgindex} \def\cindexsub {\begingroup\obeylines\cindexsub} {\obeylines % \gdef\cindexsub "#1" #2^^M{\endgroup % \dosubind{cp}{#2}{#1}}} % Define the macros used in formatting output of the sorted index material. % @printindex causes a particular index (the ??s file) to get printed. % It does not print any chapter heading (usually an @unnumbered). % \def\printindex{\parsearg\doprintindex} \def\doprintindex#1{\begingroup \dobreak \chapheadingskip{10000}% % \smallfonts \rm \tolerance = 9500 \indexbreaks % % See if the index file exists and is nonempty. % Change catcode of @ here so that if the index file contains % \initial {@} % as its first line, TeX doesn't complain about mismatched braces % (because it thinks @} is a control sequence). \catcode`\@ = 11 \openin 1 \jobname.#1s \ifeof 1 % \enddoublecolumns gets confused if there is no text in the index, % and it loses the chapter title and the aux file entries for the % index. The easiest way to prevent this problem is to make sure % there is some text. \putwordIndexNonexistent \else % % If the index file exists but is empty, then \openin leaves \ifeof % false. We have to make TeX try to read something from the file, so % it can discover if there is anything in it. \read 1 to \temp \ifeof 1 \putwordIndexIsEmpty \else % Index files are almost Texinfo source, but we use \ as the escape % character. It would be better to use @, but that's too big a change % to make right now. \def\indexbackslash{\rawbackslashxx}% \catcode`\\ = 0 \escapechar = `\\ \begindoublecolumns \input \jobname.#1s \enddoublecolumns \fi \fi \closein 1 \endgroup} % These macros are used by the sorted index file itself. % Change them to control the appearance of the index. \def\initial#1{{% % Some minor font changes for the special characters. \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt % % Remove any glue we may have, we'll be inserting our own. \removelastskip % % We like breaks before the index initials, so insert a bonus. \penalty -300 % % Typeset the initial. Making this add up to a whole number of % baselineskips increases the chance of the dots lining up from column % to column. It still won't often be perfect, because of the stretch % we need before each entry, but it's better. % % No shrink because it confuses \balancecolumns. \vskip 1.67\baselineskip plus .5\baselineskip \leftline{\secbf #1}% \vskip .33\baselineskip plus .1\baselineskip % % Do our best not to break after the initial. \nobreak }} % This typesets a paragraph consisting of #1, dot leaders, and then #2 % flush to the right margin. It is used for index and table of contents % entries. The paragraph is indented by \leftskip. % \def\entry#1#2{\begingroup % % Start a new paragraph if necessary, so our assignments below can't % affect previous text. \par % % Do not fill out the last line with white space. \parfillskip = 0in % % No extra space above this paragraph. \parskip = 0in % % Do not prefer a separate line ending with a hyphen to fewer lines. \finalhyphendemerits = 0 % % \hangindent is only relevant when the entry text and page number % don't both fit on one line. In that case, bob suggests starting the % dots pretty far over on the line. Unfortunately, a large % indentation looks wrong when the entry text itself is broken across % lines. So we use a small indentation and put up with long leaders. % % \hangafter is reset to 1 (which is the value we want) at the start % of each paragraph, so we need not do anything with that. \hangindent = 2em % % When the entry text needs to be broken, just fill out the first line % with blank space. \rightskip = 0pt plus1fil % % A bit of stretch before each entry for the benefit of balancing columns. \vskip 0pt plus1pt % % Start a ``paragraph'' for the index entry so the line breaking % parameters we've set above will have an effect. \noindent % % Insert the text of the index entry. TeX will do line-breaking on it. #1% % The following is kludged to not output a line of dots in the index if % there are no page numbers. The next person who breaks this will be % cursed by a Unix daemon. \def\tempa{{\rm }}% \def\tempb{#2}% \edef\tempc{\tempa}% \edef\tempd{\tempb}% \ifx\tempc\tempd\ \else% % % If we must, put the page number on a line of its own, and fill out % this line with blank space. (The \hfil is overwhelmed with the % fill leaders glue in \indexdotfill if the page number does fit.) \hfil\penalty50 \null\nobreak\indexdotfill % Have leaders before the page number. % % The `\ ' here is removed by the implicit \unskip that TeX does as % part of (the primitive) \par. Without it, a spurious underfull % \hbox ensues. \ifpdf \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. \else \ #2% The page number ends the paragraph. \fi \fi% \par \endgroup} % Like \dotfill except takes at least 1 em. \def\indexdotfill{\cleaders \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill} \def\primary #1{\line{#1\hfil}} \newskip\secondaryindent \secondaryindent=0.5cm \def\secondary #1#2{ {\parfillskip=0in \parskip=0in \hangindent =1in \hangafter=1 \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par }} % Define two-column mode, which we use to typeset indexes. % Adapted from the TeXbook, page 416, which is to say, % the manmac.tex format used to print the TeXbook itself. \catcode`\@=11 \newbox\partialpage \newdimen\doublecolumnhsize \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns % Grab any single-column material above us. \output = {% % % Here is a possibility not foreseen in manmac: if we accumulate a % whole lot of material, we might end up calling this \output % routine twice in a row (see the doublecol-lose test, which is % essentially a couple of indexes with @setchapternewpage off). In % that case we just ship out what is in \partialpage with the normal % output routine. Generally, \partialpage will be empty when this % runs and this will be a no-op. See the indexspread.tex test case. \ifvoid\partialpage \else \onepageout{\pagecontents\partialpage}% \fi % \global\setbox\partialpage = \vbox{% % Unvbox the main output page. \unvbox\PAGE \kern-\topskip \kern\baselineskip }% }% \eject % run that output routine to set \partialpage % % Use the double-column output routine for subsequent pages. \output = {\doublecolumnout}% % % Change the page size parameters. We could do this once outside this % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 % format, but then we repeat the same computation. Repeating a couple % of assignments once per index is clearly meaningless for the % execution time, so we may as well do it in one place. % % First we halve the line length, less a little for the gutter between % the columns. We compute the gutter based on the line length, so it % changes automatically with the paper format. The magic constant % below is chosen so that the gutter has the same value (well, +-<1pt) % as it did when we hard-coded it. % % We put the result in a separate register, \doublecolumhsize, so we % can restore it in \pagesofar, after \hsize itself has (potentially) % been clobbered. % \doublecolumnhsize = \hsize \advance\doublecolumnhsize by -.04154\hsize \divide\doublecolumnhsize by 2 \hsize = \doublecolumnhsize % % Double the \vsize as well. (We don't need a separate register here, % since nobody clobbers \vsize.) \advance\vsize by -\ht\partialpage \vsize = 2\vsize } % The double-column output routine for all double-column pages except % the last. % \def\doublecolumnout{% \splittopskip=\topskip \splitmaxdepth=\maxdepth % Get the available space for the double columns -- the normal % (undoubled) page height minus any material left over from the % previous page. \dimen@ = \vsize \divide\dimen@ by 2 % % box0 will be the left-hand column, box2 the right. \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ \onepageout\pagesofar \unvbox255 \penalty\outputpenalty } \def\pagesofar{% % Re-output the contents of the output page -- any previous material, % followed by the two boxes we just split, in box0 and box2. \unvbox\partialpage % \hsize = \doublecolumnhsize \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}% } \def\enddoublecolumns{% \output = {% % Split the last of the double-column material. Leave it on the % current page, no automatic page break. \balancecolumns % % If we end up splitting too much material for the current page, % though, there will be another page break right after this \output % invocation ends. Having called \balancecolumns once, we do not % want to call it again. Therefore, reset \output to its normal % definition right away. (We hope \balancecolumns will never be % called on to balance too much material, but if it is, this makes % the output somewhat more palatable.) \global\output = {\onepageout{\pagecontents\PAGE}}% }% \eject \endgroup % started in \begindoublecolumns % % \pagegoal was set to the doubled \vsize above, since we restarted % the current page. We're now back to normal single-column % typesetting, so reset \pagegoal to the normal \vsize (after the % \endgroup where \vsize got restored). \pagegoal = \vsize } \def\balancecolumns{% % Called at the end of the double column material. \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 \advance\dimen@ by \topskip \advance\dimen@ by-\baselineskip \divide\dimen@ by 2 % target to split to %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}% \splittopskip = \topskip % Loop until we get a decent breakpoint. {% \vbadness = 10000 \loop \global\setbox3 = \copy0 \global\setbox1 = \vsplit3 to \dimen@ \ifdim\ht3>\dimen@ \global\advance\dimen@ by 1pt \repeat }% %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}% \setbox0=\vbox to\dimen@{\unvbox1}% \setbox2=\vbox to\dimen@{\unvbox3}% % \pagesofar } \catcode`\@ = \other \message{sectioning,} % Chapters, sections, etc. \newcount\chapno \newcount\secno \secno=0 \newcount\subsecno \subsecno=0 \newcount\subsubsecno \subsubsecno=0 % This counter is funny since it counts through charcodes of letters A, B, ... \newcount\appendixno \appendixno = `\@ % \def\appendixletter{\char\the\appendixno} % We do the following for the sake of pdftex, which needs the actual % letter in the expansion, not just typeset. \def\appendixletter{% \ifnum\appendixno=`A A% \else\ifnum\appendixno=`B B% \else\ifnum\appendixno=`C C% \else\ifnum\appendixno=`D D% \else\ifnum\appendixno=`E E% \else\ifnum\appendixno=`F F% \else\ifnum\appendixno=`G G% \else\ifnum\appendixno=`H H% \else\ifnum\appendixno=`I I% \else\ifnum\appendixno=`J J% \else\ifnum\appendixno=`K K% \else\ifnum\appendixno=`L L% \else\ifnum\appendixno=`M M% \else\ifnum\appendixno=`N N% \else\ifnum\appendixno=`O O% \else\ifnum\appendixno=`P P% \else\ifnum\appendixno=`Q Q% \else\ifnum\appendixno=`R R% \else\ifnum\appendixno=`S S% \else\ifnum\appendixno=`T T% \else\ifnum\appendixno=`U U% \else\ifnum\appendixno=`V V% \else\ifnum\appendixno=`W W% \else\ifnum\appendixno=`X X% \else\ifnum\appendixno=`Y Y% \else\ifnum\appendixno=`Z Z% % The \the is necessary, despite appearances, because \appendixletter is % expanded while writing the .toc file. \char\appendixno is not % expandable, thus it is written literally, thus all appendixes come out % with the same letter (or @) in the toc without it. \else\char\the\appendixno \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} % Each @chapter defines this as the name of the chapter. % page headings and footings can use it. @section does likewise. \def\thischapter{} \def\thissection{} \newcount\absseclevel % used to calculate proper heading level \newcount\secbase\secbase=0 % @raise/lowersections modify this count % @raisesections: treat @section as chapter, @subsection as section, etc. \def\raisesections{\global\advance\secbase by -1} \let\up=\raisesections % original BFox name % @lowersections: treat @chapter as section, @section as subsection, etc. \def\lowersections{\global\advance\secbase by 1} \let\down=\lowersections % original BFox name % Choose a numbered-heading macro % #1 is heading level if unmodified by @raisesections or @lowersections % #2 is text for heading \def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 \ifcase\absseclevel \chapterzzz{#2} \or \seczzz{#2} \or \numberedsubseczzz{#2} \or \numberedsubsubseczzz{#2} \else \ifnum \absseclevel<0 \chapterzzz{#2} \else \numberedsubsubseczzz{#2} \fi \fi } % like \numhead, but chooses appendix heading levels \def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 \ifcase\absseclevel \appendixzzz{#2} \or \appendixsectionzzz{#2} \or \appendixsubseczzz{#2} \or \appendixsubsubseczzz{#2} \else \ifnum \absseclevel<0 \appendixzzz{#2} \else \appendixsubsubseczzz{#2} \fi \fi } % like \numhead, but chooses numberless heading levels \def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 \ifcase\absseclevel \unnumberedzzz{#2} \or \unnumberedseczzz{#2} \or \unnumberedsubseczzz{#2} \or \unnumberedsubsubseczzz{#2} \else \ifnum \absseclevel<0 \unnumberedzzz{#2} \else \unnumberedsubsubseczzz{#2} \fi \fi } % @chapter, @appendix, @unnumbered. \def\thischaptername{No Chapter Title} \outer\def\chapter{\parsearg\chapteryyy} \def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz \def\chapterzzz #1{% \secno=0 \subsecno=0 \subsubsecno=0 \global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}% \chapmacro {#1}{\the\chapno}% \gdef\thissection{#1}% \gdef\thischaptername{#1}% % We don't substitute the actual chapter name into \thischapter % because we don't want its macros evaluated now. \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}% {\the\chapno}}}% \temp \donoderef \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec \global\let\subsubsection = \numberedsubsubsec } \outer\def\appendix{\parsearg\appendixyyy} \def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz \def\appendixzzz #1{% \secno=0 \subsecno=0 \subsubsecno=0 \global\advance \appendixno by 1 \message{\putwordAppendix\space \appendixletter}% \chapmacro {#1}{\putwordAppendix{} \appendixletter}% \gdef\thissection{#1}% \gdef\thischaptername{#1}% \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}% {\putwordAppendix{} \appendixletter}}}% \temp \appendixnoderef \global\let\section = \appendixsec \global\let\subsection = \appendixsubsec \global\let\subsubsection = \appendixsubsubsec } % @centerchap is like @unnumbered, but the heading is centered. \outer\def\centerchap{\parsearg\centerchapyyy} \def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}} % @top is like @unnumbered. \outer\def\top{\parsearg\unnumberedyyy} \outer\def\unnumbered{\parsearg\unnumberedyyy} \def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz \def\unnumberedzzz #1{% \secno=0 \subsecno=0 \subsubsecno=0 % % This used to be simply \message{#1}, but TeX fully expands the % argument to \message. Therefore, if #1 contained @-commands, TeX % expanded them. For example, in `@unnumbered The @cite{Book}', TeX % expanded @cite (which turns out to cause errors because \cite is meant % to be executed, not expanded). % % Anyway, we don't want the fully-expanded definition of @cite to appear % as a result of the \message, we just want `@cite' itself. We use % \the to achieve this: TeX expands \the only once, % simply yielding the contents of . (We also do this for % the toc entries.) \toks0 = {#1}\message{(\the\toks0)}% % \unnumbchapmacro {#1}% \gdef\thischapter{#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}% \temp \unnumbnoderef \global\let\section = \unnumberedsec \global\let\subsection = \unnumberedsubsec \global\let\subsubsection = \unnumberedsubsubsec } % Sections. \outer\def\numberedsec{\parsearg\secyyy} \def\secyyy #1{\numhead1{#1}} % normally calls seczzz \def\seczzz #1{% \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% {\the\chapno}{\the\secno}}}% \temp \donoderef \nobreak } \outer\def\appendixsection{\parsearg\appendixsecyyy} \outer\def\appendixsec{\parsearg\appendixsecyyy} \def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz \def\appendixsectionzzz #1{% \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% {\appendixletter}{\the\secno}}}% \temp \appendixnoderef \nobreak } \outer\def\unnumberedsec{\parsearg\unnumberedsecyyy} \def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz \def\unnumberedseczzz #1{% \plainsecheading {#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}% \temp \unnumbnoderef \nobreak } % Subsections. \outer\def\numberedsubsec{\parsearg\numberedsubsecyyy} \def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz \def\numberedsubseczzz #1{% \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% {\the\chapno}{\the\secno}{\the\subsecno}}}% \temp \donoderef \nobreak } \outer\def\appendixsubsec{\parsearg\appendixsubsecyyy} \def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz \def\appendixsubseczzz #1{% \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% {\appendixletter}{\the\secno}{\the\subsecno}}}% \temp \appendixnoderef \nobreak } \outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy} \def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz \def\unnumberedsubseczzz #1{% \plainsubsecheading {#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry% {\the\toks0}}}% \temp \unnumbnoderef \nobreak } % Subsubsections. \outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy} \def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz \def\numberedsubsubseczzz #1{% \gdef\thissection{#1}\global\advance \subsubsecno by 1 % \subsubsecheading {#1} {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% \temp \donoderef \nobreak } \outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy} \def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz \def\appendixsubsubseczzz #1{% \gdef\thissection{#1}\global\advance \subsubsecno by 1 % \subsubsecheading {#1} {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% \temp \appendixnoderef \nobreak } \outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy} \def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz \def\unnumberedsubsubseczzz #1{% \plainsubsubsecheading {#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry% {\the\toks0}}}% \temp \unnumbnoderef \nobreak } % These are variants which are not "outer", so they can appear in @ifinfo. % Actually, they should now be obsolete; ordinary section commands should work. \def\infotop{\parsearg\unnumberedzzz} \def\infounnumbered{\parsearg\unnumberedzzz} \def\infounnumberedsec{\parsearg\unnumberedseczzz} \def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz} \def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz} \def\infoappendix{\parsearg\appendixzzz} \def\infoappendixsec{\parsearg\appendixseczzz} \def\infoappendixsubsec{\parsearg\appendixsubseczzz} \def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz} \def\infochapter{\parsearg\chapterzzz} \def\infosection{\parsearg\sectionzzz} \def\infosubsection{\parsearg\subsectionzzz} \def\infosubsubsection{\parsearg\subsubsectionzzz} % These macros control what the section commands do, according % to what kind of chapter we are in (ordinary, appendix, or unnumbered). % Define them by default for a numbered chapter. \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec \global\let\subsubsection = \numberedsubsubsec % Define @majorheading, @heading and @subheading % NOTE on use of \vbox for chapter headings, section headings, and such: % 1) We use \vbox rather than the earlier \line to permit % overlong headings to fold. % 2) \hyphenpenalty is set to 10000 because hyphenation in a % heading is obnoxious; this forbids it. % 3) Likewise, headings look best if no \parindent is used, and % if justification is not attempted. Hence \raggedright. \def\majorheading{\parsearg\majorheadingzzz} \def\majorheadingzzz #1{% {\advance\chapheadingskip by 10pt \chapbreak }% {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\raggedright \rm #1\hfill}}\bigskip \par\penalty 200} \def\chapheading{\parsearg\chapheadingzzz} \def\chapheadingzzz #1{\chapbreak % {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\raggedright \rm #1\hfill}}\bigskip \par\penalty 200} % @heading, @subheading, @subsubheading. \def\heading{\parsearg\plainsecheading} \def\subheading{\parsearg\plainsubsecheading} \def\subsubheading{\parsearg\plainsubsubsecheading} % These macros generate a chapter, section, etc. heading only % (including whitespace, linebreaking, etc. around it), % given all the information in convenient, parsed form. %%% Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} %%% Define plain chapter starts, and page on/off switching for it % Parameter controlling skip before chapter headings (if needed) \newskip\chapheadingskip \def\chapbreak{\dobreak \chapheadingskip {-4000}} \def\chappager{\par\vfill\supereject} \def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} \def\CHAPPAGoff{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chapbreak \global\let\pagealignmacro=\chappager} \def\CHAPPAGon{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chappager \global\let\pagealignmacro=\chappager \global\def\HEADINGSon{\HEADINGSsingle}} \def\CHAPPAGodd{ \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\let\pagealignmacro=\chapoddpage \global\def\HEADINGSon{\HEADINGSdouble}} \CHAPPAGon \def\CHAPFplain{ \global\let\chapmacro=\chfplain \global\let\unnumbchapmacro=\unnchfplain \global\let\centerchapmacro=\centerchfplain} % Plain chapter opening. % #1 is the text, #2 the chapter number or empty if unnumbered. \def\chfplain#1#2{% \pchapsepmacro {% \chapfonts \rm \def\chapnum{#2}% \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}% \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \hangindent = \wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title \nobreak } % Plain opening for unnumbered. \def\unnchfplain#1{\chfplain{#1}{}} % @centerchap -- centered and unnumbered. \let\centerparametersmaybe = \relax \def\centerchfplain#1{{% \def\centerparametersmaybe{% \advance\rightskip by 3\rightskip \leftskip = \rightskip \parfillskip = 0pt }% \chfplain{#1}{}% }} \CHAPFplain % The default \def\unnchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\raggedright \rm #1\hfill}}\bigskip \par\nobreak } \def\chfopen #1#2{\chapoddpage {\chapfonts \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% \par\penalty 5000 % } \def\centerchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt \hfill {\rm #1}\hfill}}\bigskip \par\nobreak } \def\CHAPFopen{ \global\let\chapmacro=\chfopen \global\let\unnumbchapmacro=\unnchfopen \global\let\centerchapmacro=\centerchfopen} % Section titles. \newskip\secheadingskip \def\secheadingbreak{\dobreak \secheadingskip {-1000}} \def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}} \def\plainsecheading#1{\sectionheading{sec}{}{#1}} % Subsection titles. \newskip \subsecheadingskip \def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}} \def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}} \def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}} % Subsubsection titles. \let\subsubsecheadingskip = \subsecheadingskip \let\subsubsecheadingbreak = \subsecheadingbreak \def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}} \def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}} % Print any size section title. % % #1 is the section type (sec/subsec/subsubsec), #2 is the section % number (maybe empty), #3 the text. \def\sectionheading#1#2#3{% {% \expandafter\advance\csname #1headingskip\endcsname by \parskip \csname #1headingbreak\endcsname }% {% % Switch to the right set of fonts. \csname #1fonts\endcsname \rm % % Only insert the separating space if we have a section number. \def\secnum{#2}% \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}% % \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \hangindent = \wd0 % zero if no section number \unhbox0 #3}% }% \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak } \message{toc,} % Table of contents. \newwrite\tocfile % Write an entry to the toc file, opening it if necessary. % Called from @chapter, etc. We supply {\folio} at the end of the % argument, which will end up as the last argument to the \...entry macro. % % We open the .toc file here instead of at @setfilename or any other % given time so that @contents can be put in the document anywhere. % \newif\iftocfileopened \def\writetocentry#1{% \iftocfileopened\else \immediate\openout\tocfile = \jobname.toc \global\tocfileopenedtrue \fi \iflinks \write\tocfile{#1{\folio}}\fi } \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 % Finish up the main text and prepare to read what we've written % to \tocfile. % \def\startcontents#1{% % If @setchapternewpage on, and @headings double, the contents should % start on an odd page, unlike chapters. Thus, we maintain % \contentsalignmacro in parallel with \pagealignmacro. % From: Torbjorn Granlund \contentsalignmacro \immediate\closeout\tocfile % % Don't need to put `Contents' or `Short Contents' in the headline. % It is abundantly clear what they are. \unnumbchapmacro{#1}\def\thischapter{}% \savepageno = \pageno \begingroup % Set up to handle contents files properly. \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 % We can't do this, because then an actual ^ in a section % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97. %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi \raggedbottom % Worry more about breakpoints than the bottom. \advance\hsize by -\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. \ifnum \pageno>0 \pageno = \lastnegativepageno \fi } % Normal (long) toc. \def\contents{% \startcontents{\putwordTOC}% \openin 1 \jobname.toc \ifeof 1 \else \closein 1 \input \jobname.toc \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \pdfmakeoutlines \endgroup \lastnegativepageno = \pageno \pageno = \savepageno } % And just the chapters. \def\summarycontents{% \startcontents{\putwordShortTOC}% % \let\chapentry = \shortchapentry \let\unnumbchapentry = \shortunnumberedentry % We want a true roman here for the page numbers. \secfonts \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl \rm \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\secentry ##1##2##3##4{} \def\unnumbsecentry ##1##2{} \def\subsecentry ##1##2##3##4##5{} \def\unnumbsubsecentry ##1##2{} \def\subsubsecentry ##1##2##3##4##5##6{} \def\unnumbsubsubsecentry ##1##2{} \openin 1 \jobname.toc \ifeof 1 \else \closein 1 \input \jobname.toc \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \endgroup \lastnegativepageno = \pageno \pageno = \savepageno } \let\shortcontents = \summarycontents \ifpdf \pdfcatalog{/PageMode /UseOutlines}% \fi % These macros generate individual entries in the table of contents. % The first argument is the chapter or section name. % The last argument is the page number. % The arguments in between are the chapter number, section number, ... % Chapter-level things, for both the long and short contents. \def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}} % See comments in \dochapentry re vbox and related settings \def\shortchapentry#1#2#3{% \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}% } % Typeset the label for a chapter or appendix for the short contents. % The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter. % We could simplify the code here by writing out an \appendixentry % command in the toc file for appendices, instead of using \chapentry % for both, but it doesn't seem worth it. % \newdimen\shortappendixwidth % \def\shortchaplabel#1{% % Compute width of word "Appendix", may change with language. \setbox0 = \hbox{\shortcontrm \putwordAppendix}% \shortappendixwidth = \wd0 % % We typeset #1 in a box of constant width, regardless of the text of % #1, so the chapter titles will come out aligned. \setbox0 = \hbox{#1}% \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi % % This space should be plenty, since a single number is .5em, and the % widest letter (M) is 1em, at least in the Computer Modern fonts. % (This space doesn't include the extra space that gets added after % the label; that gets put in by \shortchapentry above.) \advance\dimen0 by 1.1em \hbox to \dimen0{#1\hfil}% } \def\unnumbchapentry#1#2{\dochapentry{#1}{#2}} \def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}} % Sections. \def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} \def\unnumbsecentry#1#2{\dosecentry{#1}{#2}} % Subsections. \def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} \def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}} % And subsubsections. \def\subsubsecentry#1#2#3#4#5#6{% \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} \def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}} % This parameter controls the indentation of the various levels. \newdimen\tocindent \tocindent = 3pc % Now for the actual typesetting. In all these, #1 is the text and #2 is the % page number. % % If the toc has to be broken over pages, we want it to be at chapters % if at all possible; hence the \penalty. \def\dochapentry#1#2{% \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip \begingroup \chapentryfonts \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup \nobreak\vskip .25\baselineskip plus.1\baselineskip } \def\dosecentry#1#2{\begingroup \secentryfonts \leftskip=\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsecentry#1#2{\begingroup \subsecentryfonts \leftskip=2\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsubsecentry#1#2{\begingroup \subsubsecentryfonts \leftskip=3\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} % Final typesetting of a toc entry; we use the same \entry macro as for % the index entries, but we want to suppress hyphenation here. (We % can't do that in the \entry macro, since index entries might consist % of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.) \def\tocentry#1#2{\begingroup \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks % Do not use \turnoffactive in these arguments. Since the toc is % typeset in cmr, so characters such as _ would come out wrong; we % have to do the usual translation tricks. \entry{#1}{#2}% \endgroup} % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} \def\dopageno#1{{\rm #1}} \def\doshortpageno#1{{\rm #1}} \def\chapentryfonts{\secfonts \rm} \def\secentryfonts{\textfonts} \let\subsecentryfonts = \textfonts \let\subsubsecentryfonts = \textfonts \message{environments,} % @foo ... @end foo. % Since these characters are used in examples, it should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % Furthermore, these definitions must come after we define our fonts. \newbox\dblarrowbox \newbox\longdblarrowbox \newbox\pushcharbox \newbox\bullbox \newbox\equivbox \newbox\errorbox %{\tentt %\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil} %\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil} %\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil} %\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil} % Adapted from the manmac format (p.420 of TeXbook) %\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex % depth .1ex\hfil} %} % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. \def\point{$\star$} \def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} \def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} \def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} % Adapted from the TeXbook's \boxit. {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} \global\setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. \advance\hsize by -2\dimen2 % Rules. \vbox{ \hrule height\dimen2 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. \kern3pt\vrule width\dimen2}% Space to right. \hrule height\dimen2} \hfil} % The @error{} command. \def\error{\leavevmode\lower.7ex\copy\errorbox} % @tex ... @end tex escapes into raw Tex temporarily. % One exception: @ is still an escape character, so that @end tex works. % But \@ or @@ will get a plain tex @ character. \def\tex{\begingroup \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie \catcode `\%=14 \catcode 43=12 % plus \catcode`\"=12 \catcode`\==12 \catcode`\|=12 \catcode`\<=12 \catcode`\>=12 \escapechar=`\\ % \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc \let\,=\ptexcomma \let\.=\ptexdot \let\dots=\ptexdots \let\equiv=\ptexequiv \let\!=\ptexexclam \let\i=\ptexi \let\{=\ptexlbrace \let\+=\tabalign \let\}=\ptexrbrace \let\*=\ptexstar \let\t=\ptext % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% \let\Etex=\endgroup} % Define @lisp ... @endlisp. % @lisp does a \begingroup so it can rebind things, % including the definition of @endlisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. \newskip\lispnarrowing \lispnarrowing=0.4in % This is the definition that ^^M gets inside @lisp, @example, and other % such environments. \null is better than a space, since it doesn't % have any width. \def\lisppar{\null\endgraf} % Make each space character in the input produce a normal interword % space in the output. Don't allow a line break at this space, as this % is used only in environments like @example, where each line of input % should produce a line of output anyway. % {\obeyspaces % \gdef\sepspaces{\obeyspaces\let =\tie}} % Define \obeyedspace to be our active space, whatever it is. This is % for use in \parsearg. {\sepspaces% \global\let\obeyedspace= } % This space is always present above and below environments. \newskip\envskipamount \envskipamount = 0pt % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the % start of the next paragraph will insert \parskip % \def\aboveenvbreak{{\advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip \penalty-50 \vskip\envskipamount \fi}} \let\afterenvbreak = \aboveenvbreak % \nonarrowing is a flag. If "set", @lisp etc don't narrow margins. \let\nonarrowing=\relax % @cartouche ... @end cartouche: draw rectangle w/rounded corners around % environment contents. \font\circle=lcircle10 \newdimen\circthick \newdimen\cartouter\newdimen\cartinner \newskip\normbskip\newskip\normpskip\newskip\normlskip \circthick=\fontdimen8\circle % \def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth \def\ctr{{\hskip 6pt\circle\char'010}} \def\cbl{{\circle\char'012\hskip -6pt}} \def\cbr{{\hskip 6pt\circle\char'011}} \def\carttop{\hbox to \cartouter{\hskip\lskip \ctl\leaders\hrule height\circthick\hfil\ctr \hskip\rskip}} \def\cartbot{\hbox to \cartouter{\hskip\lskip \cbl\leaders\hrule height\circthick\hfil\cbr \hskip\rskip}} % \newskip\lskip\newskip\rskip \long\def\cartouche{% \begingroup \lskip=\leftskip \rskip=\rightskip \leftskip=0pt\rightskip=0pt %we want these *outside*. \cartinner=\hsize \advance\cartinner by-\lskip \advance\cartinner by-\rskip \cartouter=\hsize \advance\cartouter by 18.4pt % allow for 3pt kerns on either % side, and for 6pt waste from % each corner char, and rule thickness \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % Flag to tell @lisp, etc., not to narrow margin. \let\nonarrowing=\comment \vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop \hbox\bgroup \hskip\lskip \vrule\kern3pt \vbox\bgroup \hsize=\cartinner \kern3pt \begingroup \baselineskip=\normbskip \lineskip=\normlskip \parskip=\normpskip \vskip -\parskip \def\Ecartouche{% \endgroup \kern3pt \egroup \kern3pt\vrule \hskip\rskip \egroup \cartbot \egroup \endgroup }} % This macro is called at the beginning of all the @example variants, % inside a group. \def\nonfillstart{% \aboveenvbreak \inENV % This group ends at the end of the body \hfuzz = 12pt % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. \singlespace \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt \parindent = 0pt \emergencystretch = 0pt % don't try to avoid overfull boxes % @cartouche defines \nonarrowing to inhibit narrowing % at next level down. \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing \let\exdent=\nofillexdent \let\nonarrowing=\relax \fi } % Define the \E... control sequence only if we are inside the particular % environment, so the error checking in \end will work. % % To end an @example-like environment, we first end the paragraph (via % \afterenvbreak's vertical glue), and then the group. That way we keep % the zero \parskip that the environments set -- \parskip glue will be % inserted at the beginning of the next paragraph in the document, after % the environment. % \def\nonfillfinish{\afterenvbreak\endgroup} % @lisp: indented, narrowed, typewriter font. \def\lisp{\begingroup \nonfillstart \let\Elisp = \nonfillfinish \tt \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. \gobble % eat return } % @example: Same as @lisp. \def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp} % @small... is usually equivalent to the non-small (@smallbook % redefines). We must call \example (or whatever) last in the % definition, since it reads the return following the @example (or % whatever) command. % % This actually allows (for example) @end display inside an % @smalldisplay. Too bad, but makeinfo will catch the error anyway. % \def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display} \def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp} \def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format} \def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp} % Real @smallexample and @smalllisp (when @smallbook): use smaller fonts. % Originally contributed by Pavel@xerox. \def\smalllispx{\begingroup \def\Esmalllisp{\nonfillfinish\endgroup}% \def\Esmallexample{\nonfillfinish\endgroup}% \smallfonts \lisp } % @display: same as @lisp except keep current font. % \def\display{\begingroup \nonfillstart \let\Edisplay = \nonfillfinish \gobble } % @smalldisplay (when @smallbook): @display plus smaller fonts. % \def\smalldisplayx{\begingroup \def\Esmalldisplay{\nonfillfinish\endgroup}% \smallfonts \rm \display } % @format: same as @display except don't narrow margins. % \def\format{\begingroup \let\nonarrowing = t \nonfillstart \let\Eformat = \nonfillfinish \gobble } % @smallformat (when @smallbook): @format plus smaller fonts. % \def\smallformatx{\begingroup \def\Esmallformat{\nonfillfinish\endgroup}% \smallfonts \rm \format } % @flushleft (same as @format). % \def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format} % @flushright. % \def\flushright{\begingroup \let\nonarrowing = t \nonfillstart \let\Eflushright = \nonfillfinish \advance\leftskip by 0pt plus 1fill \gobble } % @quotation does normal linebreaking (hence we can't use \nonfillstart) % and narrows the margins. % \def\quotation{% \begingroup\inENV %This group ends at the end of the @quotation body {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip \singlespace \parindent=0pt % We have retained a nonzero parskip for the environment, since we're % doing normal filling. So to avoid extra space below the environment... \def\Equotation{\parskip = 0pt \nonfillfinish}% % % @cartouche defines \nonarrowing to inhibit narrowing at next level down. \ifx\nonarrowing\relax \advance\leftskip by \lispnarrowing \advance\rightskip by \lispnarrowing \exdentamount = \lispnarrowing \let\nonarrowing = \relax \fi } \message{defuns,} % @defun etc. % Allow user to change definition object font (\df) internally \def\setdeffont #1 {\csname DEF#1\endcsname} \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deftypemargin \deftypemargin=12pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\parencount % define \functionparens, which makes ( and ) and & do special things. % \functionparens affects the group it is contained in. \def\activeparens{% \catcode`\(=\active \catcode`\)=\active \catcode`\&=\active \catcode`\[=\active \catcode`\]=\active} % Make control sequences which act like normal parenthesis chars. \let\lparen = ( \let\rparen = ) {\activeparens % Now, smart parens don't turn on until &foo (see \amprm) % Be sure that we always have a definition for `(', etc. For example, % if the fn name has parens in it, \boldbrax will not be in effect yet, % so TeX would otherwise complain about undefined control sequence. \global\let(=\lparen \global\let)=\rparen \global\let[=\lbrack \global\let]=\rbrack \gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 } \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} % This is used to turn on special parens % but make & act ordinary (given that it's active). \gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr} % Definitions of (, ) and & used in args for functions. % This is the definition of ( outside of all parentheses. \gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested \global\advance\parencount by 1 } % % This is the definition of ( when already inside a level of parens. \gdef\opnested{\char`\(\global\advance\parencount by 1 } % \gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0. % also in that case restore the outer-level definition of (. \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi \global\advance \parencount by -1 } % If we encounter &foo, then turn on ()-hacking afterwards \gdef\amprm#1 {{\rm\}\let(=\oprm \let)=\clrm\ } % \gdef\normalparens{\boldbrax\let&=\ampnr} } % End of definition inside \activeparens %% These parens (in \boldbrax) actually are a little bolder than the %% contained text. This is especially needed for [ and ] \def\opnr{{\sf\char`\(}\global\advance\parencount by 1 } \def\clnr{{\sf\char`\)}\global\advance\parencount by -1 } \let\ampnr = \& \def\lbrb{{\bf\char`\[}} \def\rbrb{{\bf\char`\]}} % Active &'s sneak into the index arguments, so make sure it's defined. { \catcode`& = 13 \global\let& = \ampnr } % First, defname, which formats the header line itself. % #1 should be the function name. % #2 should be the type of definition, such as "Function". \def\defname #1#2{% % Get the values of \leftskip and \rightskip as they were % outside the @def... \dimen2=\leftskip \advance\dimen2 by -\defbodyindent \noindent \setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}% \dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line \dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations \parshape 2 0in \dimen0 \defargsindent \dimen1 % Now output arg 2 ("Function" or some such) % ending at \deftypemargin from the right margin, % but stuck inside a box of width 0 so it does not interfere with linebreaking {% Adjust \hsize to exclude the ambient margins, % so that \rightline will obey them. \advance \hsize by -\dimen2 \rlap{\rightline{{\rm #2}\hskip -1.25pc }}}% % Make all lines underfull and no complaints: \tolerance=10000 \hbadness=10000 \advance\leftskip by -\defbodyindent \exdentamount=\defbodyindent {\df #1}\enskip % Generate function name } % Actually process the body of a definition % #1 should be the terminating control sequence, such as \Edefun. % #2 should be the "another name" control sequence, such as \defunx. % #3 should be the control sequence that actually processes the header, % such as \defunheader. \def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2{\begingroup\obeylines\activeparens\spacesplit#3}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup % \catcode 61=\active % 61 is `=' \obeylines\activeparens\spacesplit#3} % #1 is the \E... control sequence to end the definition (which we define). % #2 is the \...x control sequence for consecutive fns (which we define). % #3 is the control sequence to call to resume processing. % #4, delimited by the space, is the class name. % \def\defmethparsebody#1#2#3#4 {\begingroup\inENV % \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup\obeylines\activeparens\spacesplit{#3{#4}}} % Used for @deftypemethod and @deftypeivar. % #1 is the \E... control sequence to end the definition (which we define). % #2 is the \...x control sequence for consecutive fns (which we define). % #3 is the control sequence to call to resume processing. % #4, delimited by a space, is the class name. % #5 is the method's return type. % \def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV \medbreak \def#1{\endgraf\endgroup\medbreak}% \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}} % Used for @deftypeop. The change from \deftypemethparsebody is an % extra argument at the beginning which is the `category', instead of it % being the hardwired string `Method' or `Instance Variable'. We have % to account for this both in the \...x definition and in parsing the % input at hand. Thus also need a control sequence (passed as #5) for % the \E... definition to assign the category name to. % \def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV \medbreak \def#1{\endgraf\endgroup\medbreak}% \def#2##1 ##2 ##3 {% \def#4{##1}% \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup\obeylines\activeparens\spacesplit{#3{#5}{#6}}} \def\defopparsebody #1#2#3#4#5 {\begingroup\inENV % \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2##1 ##2 {\def#4{##1}% \begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup\obeylines\activeparens\spacesplit{#3{#5}}} % These parsing functions are similar to the preceding ones % except that they do not make parens into active characters. % These are used for "variables" since they have no arguments. \def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2{\begingroup\obeylines\spacesplit#3}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup % \catcode 61=\active % \obeylines\spacesplit#3} % This is used for \def{tp,vr}parsebody. It could probably be used for % some of the others, too, with some judicious conditionals. % \def\parsebodycommon#1#2#3{% \begingroup\inENV % \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup\obeylines } \def\defvrparsebody#1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% \spacesplit{#3{#4}}% } % This loses on `@deftp {Data Type} {struct termios}' -- it thinks the % type is just `struct', because we lose the braces in `{struct % termios}' when \spacesplit reads its undelimited argument. Sigh. % \let\deftpparsebody=\defvrparsebody % % So, to get around this, we put \empty in with the type name. That % way, TeX won't find exactly `{...}' as an undelimited argument, and % won't strip off the braces. % \def\deftpparsebody #1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% \spacesplit{\parsetpheaderline{#3{#4}}}\empty } % Fine, but then we have to eventually remove the \empty *and* the % braces (if any). That's what this does. % \def\removeemptybraces\empty#1\relax{#1} % After \spacesplit has done its work, this is called -- #1 is the final % thing to call, #2 the type name (which starts with \empty), and #3 % (which might be empty) the arguments. % \def\parsetpheaderline#1#2#3{% #1{\removeemptybraces#2\relax}{#3}% }% \def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV % \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2##1 ##2 {\def#4{##1}% \begingroup\obeylines\spacesplit{#3{##2}}}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup\obeylines\spacesplit{#3{#5}}} % Split up #2 at the first space token. % call #1 with two arguments: % the first is all of #2 before the space token, % the second is all of #2 after that space token. % If #2 contains no space token, all of it is passed as the first arg % and the second is passed as empty. {\obeylines \gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% \long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% \ifx\relax #3% #1{#2}{}\else #1{#2}{#3#4}\fi}} % So much for the things common to all kinds of definitions. % Define @defun. % First, define the processing that is wanted for arguments of \defun % Use this to expand the args and terminate the paragraph they make up \def\defunargs#1{\functionparens \sl % Expand, preventing hyphenation at `-' chars. % Note that groups don't affect changes in \hyphenchar. % Set the font temporarily and use \font in case \setfont made \tensl a macro. {\tensl\hyphenchar\font=0}% #1% {\tensl\hyphenchar\font=45}% \ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi% \interlinepenalty=10000 \advance\rightskip by 0pt plus 1fil \endgraf\nobreak\vskip -\parskip\nobreak } \def\deftypefunargs #1{% % Expand, preventing hyphenation at `-' chars. % Note that groups don't affect changes in \hyphenchar. % Use \boldbraxnoamp, not \functionparens, so that & is not special. \boldbraxnoamp \tclose{#1}% avoid \code because of side effects on active chars \interlinepenalty=10000 \advance\rightskip by 0pt plus 1fil \endgraf\nobreak\vskip -\parskip\nobreak } % Do complete processing of one @defun or @defunx line already parsed. % @deffn Command forward-char nchars \def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader} \def\deffnheader #1#2#3{\doind {fn}{\code{#2}}% \begingroup\defname {#2}{#1}\defunargs{#3}\endgroup % \catcode 61=\other % Turn off change made in \defparsebody } % @defun == @deffn Function \def\defun{\defparsebody\Edefun\defunx\defunheader} \def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index \begingroup\defname {#1}{\putwordDeffunc}% \defunargs {#2}\endgroup % \catcode 61=\other % Turn off change made in \defparsebody } % @deftypefun int foobar (int @var{foo}, float @var{bar}) \def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader} % #1 is the data type. #2 is the name and args. \def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax} % #1 is the data type, #2 the name, #3 the args. \def\deftypefunheaderx #1#2 #3\relax{% \doind {fn}{\code{#2}}% Make entry in function index \begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypefun}% \deftypefunargs {#3}\endgroup % \catcode 61=\other % Turn off change made in \defparsebody } % @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar}) \def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader} % \defheaderxcond#1\relax$$$ % puts #1 in @code, followed by a space, but does nothing if #1 is null. \def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi} % #1 is the classification. #2 is the data type. #3 is the name and args. \def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax} % #1 is the classification, #2 the data type, #3 the name, #4 the args. \def\deftypefnheaderx #1#2#3 #4\relax{% \doind {fn}{\code{#3}}% Make entry in function index \begingroup \normalparens % notably, turn off `&' magic, which prevents % at least some C++ text from working \defname {\defheaderxcond#2\relax$$$#3}{#1}% \deftypefunargs {#4}\endgroup % \catcode 61=\other % Turn off change made in \defparsebody } % @defmac == @deffn Macro \def\defmac{\defparsebody\Edefmac\defmacx\defmacheader} \def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index \begingroup\defname {#1}{\putwordDefmac}% \defunargs {#2}\endgroup % \catcode 61=\other % Turn off change made in \defparsebody } % @defspec == @deffn Special Form \def\defspec{\defparsebody\Edefspec\defspecx\defspecheader} \def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index \begingroup\defname {#1}{\putwordDefspec}% \defunargs {#2}\endgroup % \catcode 61=\other % Turn off change made in \defparsebody } % @defop CATEGORY CLASS OPERATION ARG... % \def\defop #1 {\def\defoptype{#1}% \defopparsebody\Edefop\defopx\defopheader\defoptype} % \def\defopheader#1#2#3{% \dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index \begingroup\defname {#2}{\defoptype\ \putwordon\ #1}% \defunargs {#3}\endgroup % } % @deftypeop CATEGORY CLASS TYPE OPERATION ARG... % \def\deftypeop #1 {\def\deftypeopcategory{#1}% \deftypeopparsebody\Edeftypeop\deftypeopx\deftypeopheader \deftypeopcategory} % % #1 is the class name, #2 the data type, #3 the operation name, #4 the args. \def\deftypeopheader#1#2#3#4{% \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index \begingroup \defname{\defheaderxcond#2\relax$$$#3} {\deftypeopcategory\ \putwordon\ \code{#1}}% \deftypefunargs{#4}% \endgroup } % @deftypemethod CLASS TYPE METHOD ARG... % \def\deftypemethod{% \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader} % % #1 is the class name, #2 the data type, #3 the method name, #4 the args. \def\deftypemethodheader#1#2#3#4{% \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index \begingroup \defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}% \deftypefunargs{#4}% \endgroup } % @deftypeivar CLASS TYPE VARNAME % \def\deftypeivar{% \deftypemethparsebody\Edeftypeivar\deftypeivarx\deftypeivarheader} % % #1 is the class name, #2 the data type, #3 the variable name. \def\deftypeivarheader#1#2#3{% \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index \begingroup \defname{\defheaderxcond#2\relax$$$#3} {\putwordInstanceVariableof\ \code{#1}}% \defvarargs{#3}% \endgroup } % @defmethod == @defop Method % \def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader} % % #1 is the class name, #2 the method name, #3 the args. \def\defmethodheader#1#2#3{% \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index \begingroup \defname{#2}{\putwordMethodon\ \code{#1}}% \defunargs{#3}% \endgroup } % @defcv {Class Option} foo-class foo-flag \def\defcv #1 {\def\defcvtype{#1}% \defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype} \def\defcvarheader #1#2#3{% \dosubind {vr}{\code{#2}}{\putwordof\ #1}% Make entry in var index \begingroup\defname {#2}{\defcvtype\ \putwordof\ #1}% \defvarargs {#3}\endgroup % } % @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME % \def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader} % \def\defivarheader#1#2#3{% \dosubind {vr}{\code{#2}}{\putwordof\ #1}% entry in var index \begingroup \defname{#2}{\putwordInstanceVariableof\ #1}% \defvarargs{#3}% \endgroup } % @defvar % First, define the processing that is wanted for arguments of @defvar. % This is actually simple: just print them in roman. % This must expand the args and terminate the paragraph they make up \def\defvarargs #1{\normalparens #1% \interlinepenalty=10000 \endgraf\nobreak\vskip -\parskip\nobreak} % @defvr Counter foo-count \def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader} \def\defvrheader #1#2#3{\doind {vr}{\code{#2}}% \begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup} % @defvar == @defvr Variable \def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader} \def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index \begingroup\defname {#1}{\putwordDefvar}% \defvarargs {#2}\endgroup % } % @defopt == @defvr {User Option} \def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader} \def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index \begingroup\defname {#1}{\putwordDefopt}% \defvarargs {#2}\endgroup % } % @deftypevar int foobar \def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader} % #1 is the data type. #2 is the name, perhaps followed by text that % is actually part of the data type, which should not be put into the index. \def\deftypevarheader #1#2{% \dovarind#2 \relax% Make entry in variables index \begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypevar}% \interlinepenalty=10000 \endgraf\nobreak\vskip -\parskip\nobreak \endgroup} \def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}} % @deftypevr {Global Flag} int enable \def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader} \def\deftypevrheader #1#2#3{\dovarind#3 \relax% \begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1} \interlinepenalty=10000 \endgraf\nobreak\vskip -\parskip\nobreak \endgroup} % Now define @deftp % Args are printed in bold, a slight difference from @defvar. \def\deftpargs #1{\bf \defvarargs{#1}} % @deftp Class window height width ... \def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader} \def\deftpheader #1#2#3{\doind {tp}{\code{#2}}% \begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup} % These definitions are used if you use @defunx (etc.) % anywhere other than immediately after a @defun or @defunx. % \def\defcvx#1 {\errmessage{@defcvx in invalid context}} \def\deffnx#1 {\errmessage{@deffnx in invalid context}} \def\defivarx#1 {\errmessage{@defivarx in invalid context}} \def\defmacx#1 {\errmessage{@defmacx in invalid context}} \def\defmethodx#1 {\errmessage{@defmethodx in invalid context}} \def\defoptx #1 {\errmessage{@defoptx in invalid context}} \def\defopx#1 {\errmessage{@defopx in invalid context}} \def\defspecx#1 {\errmessage{@defspecx in invalid context}} \def\deftpx#1 {\errmessage{@deftpx in invalid context}} \def\deftypefnx#1 {\errmessage{@deftypefnx in invalid context}} \def\deftypefunx#1 {\errmessage{@deftypefunx in invalid context}} \def\deftypeivarx#1 {\errmessage{@deftypeivarx in invalid context}} \def\deftypemethodx#1 {\errmessage{@deftypemethodx in invalid context}} \def\deftypeopx#1 {\errmessage{@deftypeopx in invalid context}} \def\deftypevarx#1 {\errmessage{@deftypevarx in invalid context}} \def\deftypevrx#1 {\errmessage{@deftypevrx in invalid context}} \def\defunx#1 {\errmessage{@defunx in invalid context}} \def\defvarx#1 {\errmessage{@defvarx in invalid context}} \def\defvrx#1 {\errmessage{@defvrx in invalid context}} \message{macros,} % @macro. % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. \ifx\eTeXversion\undefined \newwrite\macscribble \def\scanmacro#1{% \begingroup \newlinechar`\^^M % Undo catcode changes of \startcontents and \doprintindex \catcode`\@=0 \catcode`\\=12 \escapechar=`\@ % Append \endinput to make sure that TeX does not see the ending newline. \toks0={#1\endinput}% \immediate\openout\macscribble=\jobname.tmp \immediate\write\macscribble{\the\toks0}% \immediate\closeout\macscribble \let\xeatspaces\eatspaces \input \jobname.tmp \endgroup } \else \def\scanmacro#1{% \begingroup \newlinechar`\^^M % Undo catcode changes of \startcontents and \doprintindex \catcode`\@=0 \catcode`\\=12 \escapechar=`\@ \let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup} \fi \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? \def\macrolist{} % List of all defined macros in the form % \do\macro1\do\macro2... % Utility routines. % Thisdoes \let #1 = #2, except with \csnames. \def\cslet#1#2{% \expandafter\expandafter \expandafter\let \expandafter\expandafter \csname#1\endcsname \csname#2\endcsname} % Trim leading and trailing spaces off a string. % Concepts from aro-bend problem 15 (see CTAN). {\catcode`\@=11 \gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }} \gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@} \gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @} \def\unbrace#1{#1} \unbrace{\gdef\trim@@@ #1 } #2@{#1} } % Trim a single trailing ^^M off a string. {\catcode`\^^M=12\catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% \gdef\eatcrb#1Q#2Q{#1}% } % Macro bodies are absorbed as an argument in a context where % all characters are catcode 10, 11 or 12, except \ which is active % (as in normal texinfo). It is necessary to change the definition of \. % It's necessary to have hard CRs when the macro is executed. This is % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. \def\macrobodyctxt{% \catcode`\~=12 \catcode`\^=12 \catcode`\_=12 \catcode`\|=12 \catcode`\<=12 \catcode`\>=12 \catcode`\+=12 \catcode`\{=12 \catcode`\}=12 \catcode`\@=12 \catcode`\^^M=12 \usembodybackslash} \def\macroargctxt{% \catcode`\~=12 \catcode`\^=12 \catcode`\_=12 \catcode`\|=12 \catcode`\<=12 \catcode`\>=12 \catcode`\+=12 \catcode`\@=12 \catcode`\\=12} % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. % We define \csname macarg.\endcsname to be \realbackslash, so % \\ in macro replacement text gets you a backslash. {\catcode`@=0 @catcode`@\=@active @gdef@usembodybackslash{@let\=@mbodybackslash} @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} } \expandafter\def\csname macarg.\endcsname{\realbackslash} \def\macro{\recursivefalse\parsearg\macroxxx} \def\rmacro{\recursivetrue\parsearg\macroxxx} \def\macroxxx#1{% \getargs{#1}% now \macname is the macname and \argl the arglist \ifx\argl\empty % no arguments \paramno=0% \else \expandafter\parsemargdef \argl;% \fi \if1\csname ismacro.\the\macname\endcsname \message{Warning: redefining \the\macname}% \else \expandafter\ifx\csname \the\macname\endcsname \relax \else \errmessage{The name \the\macname\space is reserved}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% % Add the macroname to \macrolist \toks0 = \expandafter{\macrolist\do}% \xdef\macrolist{\the\toks0 \expandafter\noexpand\csname\the\macname\endcsname}% \fi \begingroup \macrobodyctxt \ifrecursive \expandafter\parsermacbody \else \expandafter\parsemacbody \fi} \def\unmacro{\parsearg\unmacroxxx} \def\unmacroxxx#1{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% % Remove the macro name from \macrolist \begingroup \edef\tempa{\expandafter\noexpand\csname#1\endcsname}% \def\do##1{% \def\tempb{##1}% \ifx\tempa\tempb % remove this \else \toks0 = \expandafter{\newmacrolist\do}% \edef\newmacrolist{\the\toks0\expandafter\noexpand\tempa}% \fi}% \def\newmacrolist{}% % Execute macro list to define \newmacrolist \macrolist \global\let\macrolist\newmacrolist \endgroup \else \errmessage{Macro #1 not defined}% \fi } % This makes use of the obscure feature that if the last token of a % is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} \def\getmacname #1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} % Parse the optional {params} list. Set up \paramno and \paramlist % so \defmacro knows what to do. Define \macarg.blah for each blah % in the params list, to be ##N where N is the position in that list. % That gets used by \mbodybackslash (above). % We need to get `macro parameter char #' into several definitions. % The technique used is stolen from LaTeX: let \hash be something % unexpandable, insert that wherever you need a #, and then redefine % it to # just before using the token list produced. % % The same technique is used to protect \eatspaces till just before % the macro is used. \def\parsemargdef#1;{\paramno=0\def\paramlist{}% \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,} \def\parsemargdefxxx#1,{% \if#1;\let\next=\relax \else \let\next=\parsemargdefxxx \advance\paramno by 1% \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname {\xeatspaces{\hash\the\paramno}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} % These two commands read recursive and nonrecursive macro bodies. % (They're different since rec and nonrec macros end differently.) \long\def\parsemacbody#1@end macro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \long\def\parsermacbody#1@end rmacro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% % This defines the macro itself. There are six cases: recursive and % nonrecursive macros of zero, one, and many arguments. % Much magic with \expandafter here. % \xdef is used so that macro definitions will survive the file % they're defined in; @include reads the file inside a group. \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars \ifrecursive \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\scanmacro{\temp}}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\braceorline \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup\noexpand\scanmacro{\temp}}% \else % many \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\csname\the\macname xx\endcsname}% \expandafter\xdef\csname\the\macname xx\endcsname##1{% \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{\egroup\noexpand\scanmacro{\temp}}% \fi \else \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\braceorline \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \else % many \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \expandafter\noexpand\csname\the\macname xx\endcsname}% \expandafter\xdef\csname\the\macname xx\endcsname##1{% \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{% \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \fi \fi} \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} % \braceorline decides whether the next nonwhitespace character is a % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence % as an argument (by \parsebrace or \parsearg) \def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \expandafter\parsearg \fi \next} % We mant to disable all macros during \shipout so that they are not % expanded by \write. \def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}% \edef\next{\macrolist}\expandafter\endgroup\next} % @alias. % We need some trickery to remove the optional spaces around the equal % sign. Just make them active and then expand them all to nothing. \def\alias{\begingroup\obeyspaces\parsearg\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} \def\aliasyyy #1=#2\relax{\ignoreactivespaces \edef\next{\global\let\expandafter\noexpand\csname#1\endcsname=% \expandafter\noexpand\csname#2\endcsname}% \expandafter\endgroup\next} \message{cross references,} % @xref etc. \newwrite\auxfile \newif\ifhavexrefs % True if xref values are known. \newif\ifwarnedxrefs % True if we warned once that they aren't known. % @inforef is relatively simple. \def\inforef #1{\inforefzzz #1,,,,**} \def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} % @node's job is to define \lastnode. \def\node{\ENVcheck\parsearg\nodezzz} \def\nodezzz#1{\nodexxx [#1,]} \def\nodexxx[#1,#2]{\gdef\lastnode{#1}} \let\nwnode=\node \let\lastnode=\relax % The sectioning commands (@chapter, etc.) call these. \def\donoderef{% \ifx\lastnode\relax\else \expandafter\expandafter\expandafter\setref{\lastnode}% {Ysectionnumberandtype}% \global\let\lastnode=\relax \fi } \def\unnumbnoderef{% \ifx\lastnode\relax\else \expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing}% \global\let\lastnode=\relax \fi } \def\appendixnoderef{% \ifx\lastnode\relax\else \expandafter\expandafter\expandafter\setref{\lastnode}% {Yappendixletterandtype}% \global\let\lastnode=\relax \fi } % @anchor{NAME} -- define xref target at arbitrary point. % \newcount\savesfregister \gdef\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} \gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} \gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} % \setref{NAME}{SNT} defines a cross-reference point NAME, namely % NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have % to set \indexdummies so commands such as @code in a section title % aren't expanded. It would be nicer not to expand the titles in the % first place, but there's so many layers that that is hard to do. % \def\setref#1#2{{% \indexdummies \pdfmkdest{#1}% \dosetq{#1-title}{Ytitle}% \dosetq{#1-pg}{Ypagenumber}% \dosetq{#1-snt}{#2}% }} % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed % manual. All but the node name can be omitted. % \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} \def\ref#1{\xrefX[#1,,,,,,,]} \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces \def\printedmanual{\ignorespaces #5}% \def\printednodename{\ignorespaces #3}% \setbox1=\hbox{\printedmanual}% \setbox0=\hbox{\printednodename}% \ifdim \wd0 = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax % Use the node name inside the square brackets. \def\printednodename{\ignorespaces #1}% \else % Use the actual chapter/section title appear inside % the square brackets. Use the real section title if we have it. \ifdim \wd1 > 0pt % It is in another manual, so we don't have it. \def\printednodename{\ignorespaces #1}% \else \ifhavexrefs % We know the real title if we have the xref values. \def\printednodename{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. \def\printednodename{\ignorespaces #1}% \fi% \fi \fi \fi % % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not % insert empty discretionaries after hyphens, which means that it will % not find a line break at a hyphen in a node names. Since some manuals % are best written with fairly long node names, containing hyphens, this % is a loss. Therefore, we give the text of the node name again, so it % is as if TeX is seeing it for the first time. \ifpdf \leavevmode \getfilename{#4}% \ifnum\filenamelength>0 \startlink attr{/Border [0 0 0]}% goto file{\the\filename.pdf} name{#1@}% \else \startlink attr{/Border [0 0 0]}% goto name{#1@}% \fi \linkcolor \fi % \ifdim \wd1 > 0pt \putwordsection{} ``\printednodename'' \putwordin{} \cite{\printedmanual}% \else % _ (for example) has to be the character _ for the purposes of the % control sequence corresponding to the node, but it has to expand % into the usual \leavevmode...\vrule stuff for purposes of % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. {\normalturnoffactive % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi }% % [mynode], [\printednodename],\space % page 3 \turnoffactive \putwordpage\tie\refx{#1-pg}{}% \fi \endlink \endgroup} % \dosetq is the interface for calls from other macros % Use \normalturnoffactive so that punctuation chars such as underscore % and backslash work in node names. (\turnoffactive doesn't do \.) \def\dosetq#1#2{% {\let\folio=0% \normalturnoffactive \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}% \iflinks \next \fi }% } % \internalsetq {foo}{page} expands into % CHARACTERS 'xrdef {foo}{...expansion of \Ypage...} % When the aux file is read, ' is the escape character \def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}} % Things to be expanded by \internalsetq \def\Ypagenumber{\folio} \def\Ytitle{\thissection} \def\Ynothing{} \def\Ysectionnumberandtype{% \ifnum\secno=0 \putwordChapter\xreftie\the\chapno % \else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno % \else \ifnum \subsubsecno=0 % \putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno % \else % \putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno % \fi \fi \fi } \def\Yappendixletterandtype{% \ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}% \else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno % \else \ifnum \subsubsecno=0 % \putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno % \else % \putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % \fi \fi \fi } \gdef\xreftie{'tie} % Use TeX 3.0's \inputlineno to get the line number, for better error % messages, but if we're using an old version of TeX, don't do anything. % \ifx\inputlineno\thisisundefined \let\linenumber = \empty % Non-3.0. \else \def\linenumber{\the\inputlineno:\space} \fi % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. \def\refx#1#2{% \expandafter\ifx\csname X#1\endcsname\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright \iflinks \ifhavexrefs \message{\linenumber Undefined cross reference `#1'.}% \else \ifwarnedxrefs\else \global\warnedxrefstrue \message{Cross reference values unknown; you must run TeX again.}% \fi \fi \fi \else % It's defined, so just use it. \csname X#1\endcsname \fi #2% Output the suffix in any case. } % This is the macro invoked by entries in the aux file. % \def\xrdef#1{\begingroup % Reenable \ as an escape while reading the second argument. \catcode`\\ = 0 \afterassignment\endgroup \expandafter\gdef\csname X#1\endcsname } % Read the last existing aux file, if any. No error if none exists. \def\readauxfile{\begingroup \catcode`\^^@=\other \catcode`\^^A=\other \catcode`\^^B=\other \catcode`\^^C=\other \catcode`\^^D=\other \catcode`\^^E=\other \catcode`\^^F=\other \catcode`\^^G=\other \catcode`\^^H=\other \catcode`\^^K=\other \catcode`\^^L=\other \catcode`\^^N=\other \catcode`\^^P=\other \catcode`\^^Q=\other \catcode`\^^R=\other \catcode`\^^S=\other \catcode`\^^T=\other \catcode`\^^U=\other \catcode`\^^V=\other \catcode`\^^W=\other \catcode`\^^X=\other \catcode`\^^Z=\other \catcode`\^^[=\other \catcode`\^^\=\other \catcode`\^^]=\other \catcode`\^^^=\other \catcode`\^^_=\other \catcode`\@=\other \catcode`\^=\other % It was suggested to define this as 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, % that is not enough: for node names that actually contain a ^ % character, we would end up writing a line like this: 'xrdef {'hat % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first % argument, and \hat is not an expandable control sequence. It could % all be worked out, but why? Either we support ^^ or we don't. % % The other change necessary for this was to define \auxhat: % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter % and then to call \auxhat in \setq. % \catcode`\~=\other \catcode`\[=\other \catcode`\]=\other \catcode`\"=\other \catcode`\_=\other \catcode`\|=\other \catcode`\<=\other \catcode`\>=\other \catcode`\$=\other \catcode`\#=\other \catcode`\&=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off % Make the characters 128-255 be printing characters {% \count 1=128 \def\loop{% \catcode\count 1=\other \advance\count 1 by 1 \ifnum \count 1<256 \loop \fi }% }% % The aux file uses ' as the escape (for now). % Turn off \ as an escape so we do not lose on % entries which were dumped with control sequences in their names. % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^ % Reference to such entries still does not work the way one would wish, % but at least they do not bomb out when the aux file is read in. \catcode`\{=1 \catcode`\}=2 \catcode`\%=\other \catcode`\'=0 \catcode`\\=\other % \openin 1 \jobname.aux \ifeof 1 \else \closein 1 \input \jobname.aux \global\havexrefstrue \global\warnedobstrue \fi % Open the new aux file. TeX will close it automatically at exit. \openout\auxfile=\jobname.aux \endgroup} % Footnotes. \newcount \footnoteno % The trailing space in the following definition for supereject is % vital for proper filling; pages come out unaligned when you do a % pagealignmacro call if that space before the closing brace is % removed. (Generally, numeric constants should always be followed by a % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } % @footnotestyle is meaningful for info output only. \let\footnotestyle=\comment \let\ptexfootnote=\footnote {\catcode `\@=11 % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip \thisfootno\@sf \footnotezzz }% % Don't bother with the trickery in plain.tex to not require the % footnote text as a parameter. Our footnotes don't need to be so general. % % Oh yes, they do; otherwise, @ifset and anything else that uses % \parseargline fail inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % \long\gdef\footnotezzz{\insert\footins\bgroup % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes \splitmaxdepth\dp\strutbox \floatingpenalty\@MM \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip \parindent\defaultparindent % \smallfonts \rm % % Hang the footnote text off the number. \hang \textindent{\thisfootno}% % % Don't crash into the line above the footnote text. Since this % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut \futurelet\next\fo@t } \def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t \else\let\next\f@t\fi \next} \def\f@@t{\bgroup\aftergroup\@foot\let\next} \def\f@t#1{#1\@foot} \def\@foot{\strut\par\egroup} }%end \catcode `\@=11 % Set the baselineskip to #1, and the lineskip and strut size % correspondingly. There is no deep meaning behind these magic numbers % used as factors; they just match (closely enough) what Knuth defined. % \def\lineskipfactor{.08333} \def\strutheightpercent{.70833} \def\strutdepthpercent {.29167} % \def\setleading#1{% \normalbaselineskip = #1\relax \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% \vrule width0pt height\strutheightpercent\baselineskip depth \strutdepthpercent \baselineskip }% } % @| inserts a changebar to the left of the current line. It should % surround any changed text. This approach does *not* work if the % change spans more than two lines of output. To handle that, we would % have adopt a much more difficult approach (putting marks into the main % vertical list for the beginning and end of each change). % \def\|{% % \vadjust can only be used in horizontal mode. \leavevmode % % Append this vertical mode material after the current line in the output. \vadjust{% % We want to insert a rule with the height and depth of the current % leading; that is exactly what \strutbox is supposed to record. \vskip-\baselineskip % % \vadjust-items are inserted at the left edge of the type. So % the \llap here moves out into the left-hand margin. \llap{% % % For a thicker or thinner bar, change the `1pt'. \vrule height\baselineskip width1pt % % This is the space between the bar and the text. \hskip 12pt }% }% } % For a final copy, take out the rectangles % that mark overfull boxes (in case you have decided % that the text looks ok even though it passes the margin). % \def\finalout{\overfullrule=0pt} % @image. We use the macros from epsf.tex to support this. % If epsf.tex is not installed and @image is used, we complain. % % Check for and read epsf.tex up front. If we read it only at @image % time, we might be inside a group, and then its definitions would get % undone and the next image would fail. \openin 1 = epsf.tex \ifeof 1 \else \closein 1 % Do not bother showing banner with post-v2.7 epsf.tex (available in % doc/epsf.tex until it shows up on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi % % We will only complain once about lack of epsf.tex. \newif\ifwarnednoepsf \newhelp\noepsfhelp{epsf.tex must be installed for images to work. It is also included in the Texinfo distribution, or you can get it from ftp://tug.org/tex/epsf.tex.} % \def\image#1{% \ifx\epsfbox\undefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% \global\warnednoepsftrue \fi \else \imagexxx #1,,,\finish \fi } % % Arguments to @image: % #1 is (mandatory) image filename; we tack on .eps extension. % #2 is (optional) width, #3 is (optional) height. % #4 is just the usual extra ignored arg for parsing this stuff. \def\imagexxx#1,#2,#3,#4\finish{% \ifpdf \centerline{\dopdfimage{#1}{#2}{#3}}% \else % \epsfbox itself resets \epsf?size at each figure. \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi \begingroup \catcode`\^^M = 5 % in case we're inside an example % If the image is by itself, center it. \ifvmode \nobreak\bigskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space % above and below. \nobreak\vskip\parskip \nobreak \centerline{\epsfbox{#1.eps}}% \bigbreak \else % In the middle of a paragraph, no extra space. \epsfbox{#1.eps}% \fi \endgroup \fi } \message{localization,} % and i18n. % @documentlanguage is usually given very early, just after % @setfilename. If done too late, it may not override everything % properly. Single argument is the language abbreviation. % It would be nice if we could set up a hyphenation file here. % \def\documentlanguage{\parsearg\dodocumentlanguage} \def\dodocumentlanguage#1{% \tex % read txi-??.tex file in plain TeX. % Read the file if it exists. \openin 1 txi-#1.tex \ifeof1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% \let\temp = \relax \else \def\temp{\input txi-#1.tex }% \fi \temp \endgroup } \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? In the current directory should work if nowhere else does.} % @documentencoding should change something in TeX eventually, most % likely, but for now just recognize it. \let\documentencoding = \comment % Page size parameters. % \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt \secheadingskip = 12pt plus 3pt minus 2pt \subsecheadingskip = 9pt plus 2pt minus 2pt % Prevent underfull vbox error messages. \vbadness = 10000 % Don't be so finicky about underfull hboxes, either. \hbadness = 2000 % Following George Bush, just get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 % Use TeX 3.0's \emergencystretch to help line breaking, but if we're % using an old version of TeX, don't do anything. We want the amount of % stretch added to depend on the line length, hence the dependence on % \hsize. We call this whenever the paper size is set. % \def\setemergencystretch{% \ifx\emergencystretch\thisisundefined % Allow us to assign to \emergencystretch anyway. \def\emergencystretch{\dimen0}% \else \emergencystretch = .15\hsize \fi } % Parameters in order: 1) textheight; 2) textwidth; 3) voffset; % 4) hoffset; 5) binding offset; 6) topskip. Then whoever calls us can % set \parskip and call \setleading for \baselineskip. % \def\internalpagesizes#1#2#3#4#5#6{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip % \vsize = #1\relax \advance\vsize by \topskip \outervsize = \vsize \advance\outervsize by 2\topandbottommargin \pageheight = \vsize % \hsize = #2\relax \outerhsize = \hsize \advance\outerhsize by 0.5in \pagewidth = \hsize % \normaloffset = #4\relax \bindingoffset = #5\relax % \parindent = \defaultparindent \setemergencystretch } % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \setleading{13.2pt}% % % If page is nothing but text, make it come out even. \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}% }} % Use @smallbook to reset parameters for 7x9.5 (or so) format. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \setleading{12pt}% % \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}% % \lispnarrowing = 0.3in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \deftypemargin = 0pt \defbodyindent = .5cm % \let\smalldisplay = \smalldisplayx \let\smallexample = \smalllispx \let\smallformat = \smallformatx \let\smalllisp = \smalllispx }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \setleading{12pt}% \parskip = 3pt plus 2pt minus 1pt % \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}% % \tolerance = 700 \hfuzz = 1pt }} % A specific text layout, 24x15cm overall, intended for A4 paper. Top margin % 29mm, hence bottom margin 28mm, nominal side margin 3cm. \def\afourlatex{{\globaldefs = 1 \setleading{13.6pt}% % \afourpaper \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}% % \globaldefs = 0 }} % Use @afourwide to print on European A4 paper in wide format. \def\afourwide{% \afourpaper \internalpagesizes{6.5in}{9.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}% % \globaldefs = 0 } % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, % and/or leading, also. Or perhaps we should compute them somehow. % \def\pagesizes{\parsearg\pagesizesxxx} \def\pagesizesxxx#1{\pagesizesyyy #1,,\finish} \def\pagesizesyyy#1,#2,#3\finish{{% \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi \globaldefs = 1 % \parskip = 3pt plus 2pt minus 1pt \setleading{13.2pt}% % \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}% }} % Set default to letter. % \letterpaper \message{and turning on texinfo input format.} % Define macros to output various characters with catcode for normal text. \catcode`\"=\other \catcode`\~=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other \catcode`\<=\other \catcode`\>=\other \catcode`\+=\other \catcode`\$=\other \def\normaldoublequote{"} \def\normaltilde{~} \def\normalcaret{^} \def\normalunderscore{_} \def\normalverticalbar{|} \def\normalless{<} \def\normalgreater{>} \def\normalplus{+} \def\normaldollar{$} % This macro is used to make a character print one way in ttfont % where it can probably just be output, and another way in other fonts, % where something hairier probably needs to be done. % % #1 is what to print if we are indeed using \tt; #2 is what to print % otherwise. Since all the Computer Modern typewriter fonts have zero % interword stretch (and shrink), and it is reasonable to expect all % typewriter fonts to have this, we can check that font parameter. % \def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi} % Same as above, but check for italic font. Actually this also catches % non-italic slanted fonts since it is impossible to distinguish them from % italic fonts. But since this is only used by $ and it uses \sl anyway % this is not a problem. \def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi} % Turn off all special characters except @ % (and those which the user can use as if they were ordinary). % Most of these we simply print from the \tt font, but for some, we can % use math or other variants that look better in normal text. \catcode`\"=\active \def\activedoublequote{{\tt\char34}} \let"=\activedoublequote \catcode`\~=\active \def~{{\tt\char126}} \chardef\hat=`\^ \catcode`\^=\active \def^{{\tt \hat}} \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} % Subroutine for the previous macro. \def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}} \catcode`\|=\active \def|{{\tt\char124}} \chardef \less=`\< \catcode`\<=\active \def<{{\tt \less}} \chardef \gtr=`\> \catcode`\>=\active \def>{{\tt \gtr}} \catcode`\+=\active \def+{{\tt \char 43}} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar} %\catcode 27=\active %\def^^[{$\diamondsuit$} % Set up an active definition for =, but don't enable it most of the time. {\catcode`\==\active \global\def={{\tt \char 61}}} \catcode`+=\active \catcode`\_=\active % If a .fmt file is being used, characters that might appear in a file % name cannot be active until we have parsed the command line. % So turn them off again, and have \everyjob (or @setfilename) turn them on. % \otherifyactive is called near the end of this file. \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} \catcode`\@=0 % \rawbackslashxx output one backslash character in current font \global\chardef\rawbackslashxx=`\\ %{\catcode`\\=\other %@gdef@rawbackslashxx{\}} % \rawbackslash redefines \ as input to do \rawbackslashxx. {\catcode`\\=\active @gdef@rawbackslash{@let\=@rawbackslashxx }} % \normalbackslash outputs one backslash in fixed width font. \def\normalbackslash{{\tt\rawbackslashxx}} % \catcode 17=0 % Define control-q \catcode`\\=\active % Used sometimes to turn off (effectively) the active characters % even after parsing them. @def@turnoffactive{@let"=@normaldoublequote @let\=@realbackslash @let~=@normaltilde @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let<=@normalless @let>=@normalgreater @let+=@normalplus @let$=@normaldollar} @def@normalturnoffactive{@let"=@normaldoublequote @let\=@normalbackslash @let~=@normaltilde @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let<=@normalless @let>=@normalgreater @let+=@normalplus @let$=@normaldollar} % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @otherifyactive % If a .fmt file is being used, we don't want the `\input texinfo' to show up. % That is what \eatinput is for; after that, the `\' should revert to printing % a backslash. % @gdef@eatinput input texinfo{@fixbackslash} @global@let\ = @eatinput % On the other hand, perhaps the file did not have a `\input texinfo'. Then % the first `\{ in the file would cause an error. This macro tries to fix % that, assuming it is called before the first `\' could plausibly occur. % Also back turn on active characters that might appear in the input % file name, in case not using a pre-dumped format. % @gdef@fixbackslash{% @ifx\@eatinput @let\ = @normalbackslash @fi @catcode`+=@active @catcode`@_=@active } % Say @foo, not \foo, in error messages. @escapechar = `@@ % These look ok in all fonts, so just make them not special. @catcode`@& = @other @catcode`@# = @other @catcode`@% = @other @c Set initial fonts. @textfonts @rm @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) @c page-delimiter: "^\\\\message" @c time-stamp-start: "def\\\\texinfoversion{" @c time-stamp-format: "%:y-%02m-%02d.%02H" @c time-stamp-end: "}" @c End: gcal-4.1/doc/en/0000775000000000000000000000000013041164076010406 500000000000000gcal-4.1/doc/en/gcal.info0000664000000000000000000423303213041164044012113 00000000000000This is gcal.info, produced by makeinfo version 6.1 from gcal.texi. INFO-DIR-SECTION GNU packages START-INFO-DIR-ENTRY * Gcal: (gcal). GNU calendar program. * Tcal: (gcal)Invoking tcal. Run Gcal with tomorrow's date. * Txt2gcal: (gcal)Invoking txt2gcal. Calendar text to resource file. * Gcal2txt: (gcal)Invoking gcal2txt. Calendar resource to text file. END-INFO-DIR-ENTRY This file documents Gcal, a program for calculating and printing calendars. Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. This edition is for Gcal version 4.1. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Any suggestions, improvements, extensions, bug reports, donations, proposals for contract work, and so forth are welcome! Please send them directly to my eMail address or to . If you like my work, I'd appreciate a postcard from you! ----------------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: Top, Next: Preface, Prev: (dir), Up: (dir) Gcal **** This file documents 'gcal', a program for calculating and printing calendars. Gcal displays hybrid and proleptic Julian and Gregorian calendar sheets, respectively, for one month, three months or a whole year. It also displays eternal holiday lists for many countries around the globe, and features a very powerful creation of fixed date lists that can be used for reminding purposes. Gcal can calculate various astronomical data and times of the Sun and the Moon for at pleasure any location, precisely enough for most civil purposes. Gcal supports some other calendar systems, for example the Chinese calendar, the Hebrew calendar and the civil Islamic calendar, too. This is Edition 4.1 of 'Gcal, an Extended Calendar Program', 24 June 2000, for the 4.1 version of the GNU implementation of 'cal' and 'calendar'. 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@gmx.net Im Hagenfeld 84 (( ^ )) Phone: +49 251 232585 D-48147 Muenster; Germany \____) ~ (____/ MotD : 2old2live, 2young2die * Menu: * Preface:: Preliminary remarks to Gcal. * Gcal Introduction:: Gcal in brief. * Invoking Gcal:: How to run and use the 'gcal' program. * Eternal Holidays:: How to create an Eternal Holiday list. * Fixed Dates:: How to create a Fixed Date list. Appendices * Todays Calendar:: Genesis of the Gregorian Calendar. * Gcal Utilities:: Utility programs which are part of the distribution. * Internationalization:: Aspects of Internationalization been made. * Metasymbols:: Metasymbols used in this manual. * Regular Expressions:: Description of all Regular Expressions. * Regexp Summary:: Summary of all Regular Expressions. * Special Texts:: Description of all '%?'... Special Texts. * Special Texts Summary:: Summary of all '%?'... Special Texts. * Obsolete Special Texts:: Tables of obsolete Special Texts et cetera. * Format Instruction:: Description of the Format Instruction components. * Coding Scheme:: Coding Scheme of date part in resource file. * Environment Variables:: Used Environment Variables. * Error Codes:: Which Error Codes does Gcal return? * Glossary:: Short descriptions of the terms used here. Indices * Argument Index:: Index of Command line arguments respected. * Variable Index:: Index of Environment Variables used. * Table Index:: Index of Tables that can be found in this manual. * GNU Free Documentation License:: Copying and sharing this manual. * Concept Index:: A menu covering many topics. -- The Detailed Node Listing -- Invoking Gcal * Command line arguments:: Command line arguments. * The GCAL environment variable:: How to use the 'GCAL' environment variable. Command line arguments * Options:: How to use Options. * Response file:: How to use a '@FILE' Response file. * Actual date modifier:: How to use a '%DATE' Actual date modifier. * Commands:: How to use Commands. Options * Common options:: How to use Common options. * Global options:: How to use Global options. * Calendar options:: How to use Calendar options. * Fixed date options:: How to use Fixed date options. Commands * Single commands:: How to use a Single command. * 3-Month mode commands:: How to use a 3-Month mode command. * Lists of commands:: How to use a List of commands. * Ranges of commands:: How to use a Range of commands. Fixed Dates * Resource file:: How to use a Resource file. * Resource file examples:: Examples of Resource file entries. Resource file * Structure of resource file:: How to write a Resource file. * Date part of a line:: How to write the Date part. * Further date part attributes:: What are Further date part attributes? * Text part of a line:: How to write the Text part. * Special Texts processed:: What are '%?'... Special Texts? * Comment line:: What is a Comment line? * Include directives:: What are Include directives? * Date variables:: How Date variables can be used. * Text variables:: How Text variables can be used. Further date part attributes * Lists of days:: How Lists of days can be used. * Ranges of days:: How Ranges of days can be used. * Repetition factor of days:: How to use such a factor. * Appearance factor of days:: How to use such a factor. Gcal Utilities * Invoking tcal:: How to run 'tcal' and a summary of its options. * Invoking txt2gcal:: How to run 'txt2gcal' and a summary of its options. * Invoking gcal2txt:: How to run 'gcal2txt' and a summary of its options. Regular Expressions * Regexp Usage:: How to Use Regular Expressions. * Regexp Operators:: Regular Expression Operators. Special Texts * Exclusions:: How to Exclude dates. * Replacements:: How to Replace texts. * Shell Command:: How to run a Shell Command. Exclusions * Exclusions with date argument:: * Exclusions without any argument:: Exclusions with date argument * Inclusive date period:: * Exclusive date period:: Exclusions without any argument * Inclusive day period:: * Exclusive day period:: Replacements * Replacements with date argument:: * Replacements with other argument:: * Replacements without any argument:: Replacements with date argument * Weekday name:: * Weekday number:: * Day-of-year number:: * Day number:: * Week number:: * Month name:: * Month number:: * Year number:: * Moon phase:: * Biorhythm:: * Difference value:: Replacements with other argument * Actual clocktime:: * Textual date:: * Julian day number:: * Geographical distance and course angle:: * Sun data:: * Moon data:: * Contents of Environment variable:: Replacements without any argument * Other difference values:: * Highlighting:: Obsolete Special Texts * Table of Obsolete Special Texts:: * Table of Obsolete Date Format Elements:: * Table of Obsolete Date Formats:: Coding Scheme * Coding Scheme Table 1:: * Coding Scheme Table 2::  File: gcal.info, Node: Preface, Next: Gcal Introduction, Prev: Top, Up: Top 1 Preface ********* The reason why I have written Gcal was mainly to have an _off-line_ tool(1) (*note Preface-Footnote-1::) which is able to display Julian and Gregorian calendar sheets in a highly flexible and internationalized manner, fixed date lists for reminding purposes and country respectively territory specific holiday lists. At a later stage, Gcal was extended in the way to perform some basic astronomical calculations like Moon phase, moonrise, moonset and other Moon based data, sunset, sunrise, different twilight times and other Sun based data, zodiacal markers, solar and lunar eclipses, equinoxes and solstices. Other gimmicks like biorhythm calculation and the computation of a distance between two geographical point locations and their course angles (true tracks) are also done by it now, plus a lot more. The accuracy of most of the astronomical calculations done by Gcal is low because it is really hard to perform accurate astronomical predictions more that 100 years ahead. Of course, this also has consequences for some country specific holidays which are based on such astronomical calculations. So it is really possible that some output may differ from the real astronomical date and time of the event calculated, and that by one or more minutes/hours/days. This can happen when the date of a real astronomical event occurs near around midnight. So don't be surprised! Strictly speaking, take all such astronomically based output as a more or less good approximation of the true value, but do not rely on it! Because Gcal is not primarily designed for the purpose of having a high precision astronomical calculation tool, the world currently has to live with these limitations. But if *you* have C source code functions, which * perform the astronomical calculations more precise for the period that is respected by Gcal, * have the similar or faster processing speed than Gcal's actual functions, * are either put into the public domain or are covered by the GPL(2) (*note Preface-Footnote-2::), * have the same calling conventions and return types like Gcal's actual functions, * conform to the GNU coding standard and are therefore easy to maintain and extend, * do not break Gcal internal limitations and concepts, and you want to grant them to the public, I would be very pleased if you would contact me so I am able to implement your result to a next release of this software. Some words to the build-in country specific holidays now... As you certainly know, there are several other calendar systems actually existing around the world among the Gregorian calendar. The Gregorian calendar that Gcal mainly represents as a software is only one calendar of many others, but it is that one which is most respected around the world today. Even countries which use another calendar system officially mostly respect the Gregorian calendar for civil and administrative purposes. But when Gcal offers the ability to include holidays from a definite country into its eternal holiday list, it is possible that not all holidays are displayed which are respected in that country. One reason is that my various sources simply don't tell me about the existence of a holiday. A second reason is that the holiday is just designed or changed or removed by political or society reality during Gcal's development phase. And another reason is that the method to calculate a holiday is not build-in Gcal yet. This case is marked by a '#' character behind the country name in the list of countries, which are respected by Gcal. *Note Calendar option '--cc-holidays=CC[_TT][+...]': x-cc-holidays, for the above mentioned list. The holidays of "early" years that are included into the eternal holiday list --i.e. those within the period AD 30 until the midth of the 20th century-- are certainly not accomplishing the requirements of historians to such a list. Gcal cannot be understood as a complete and historically correct data base, and it is not designed for that purpose! This is caused by the fact that the territorial borders and names of the national structures and the settlement in earlier times was partly quite different as it is nowadays. Moreover, I am yet lacking reliable information that tells me the precise date of the introduction of a holiday in a region. Here I appeal to the historians to support me with the concrete country and culture based data if they are bothered by this fact and they want to have it removed. Still unsupported *alive* and *major* calendar systems, respectively methods to derive country specific holidays from them, are: * Religious Islamic lunar calendar * Hindu solar and lunar calendars * Buddhist calendar * Sikh calendar * Jain calendar Even if the list of supported countries seems to be almost complete if you compare it with the actual list of all nations existing around the world, you should note that there are still some countries missing! If you can grant me support to complete Gcal's list of respected countries, or if you would work out or have C functions which manage the missing calendar systems, I also would be very pleased about if you would contact me. I have recorded the country specific holiday dates as good as I can, but I cannot guarantee that I did not made any mistakes while I hacked them in. So it is possible that some country specific holiday lists contain errors. Well, if you think that I forgot to provide Gcal with the specific holidays of a/your country, or you think that a country specific holiday list is incomplete, or you think that some of the already implemented holidays are wrong, please feel free to send me a complete list of all the holidays which are celebrated in this country respectively to give me hints how to correct or to complete them! Such a list should ideally include the following information: * The English name of the holiday. * The rule how it is built (like 10th October each year, or 47 days after Easter Sunday's date, or three Fridays before the last Saturday in June...). If there are any exceptions from such a general rule, please state them in a detailed manner. And please tell me the date since what time the holiday is or was celebrated for the first time, respectively. By the way, if the holiday is tied to the Easter Sunday's date, please tell me whether you mean the Easter Sunday of the Christian Western churches or the Easter Sunday of the Orthodox Christian Eastern churches. * Whether it is a "legal holiday" which is respected in the whole country. (Use a '+' character for marking this case.) In this sense, a legal holiday means a day people don't have to work -- as in most companies, and businesses are closed; like 'New Year's Day' on January 1st. * Whether it is a legal holiday in some parts of your country only. Please tell me whether such a holiday is valid in major parts of the country or not, try to express that by using percent points. (If such a holiday is celebrated in more than 70% of the country, use a '#' character for marking this case, otherwise use a '*' character.) * Whether it is a day only used for memorial or remembering purposes. (Use a '-' character for marking this case.) Like 'All Fool's Day' on April 1st is not a holiday in the sense that anyone has a day off from school or work, just a _play jokes_ day, pretty ordinary. Other holidays may be celebrated with cards or presents etc. -- but they are working days such as: Valentine's day, Father's day, Mother's day. The Islamic holidays inserted into the country specific holiday list are calculated arithmetically, not astronomically. This is what people call the "civil" Islamic lunar calendar. This type of calendar is just a rough estimate of the religious Islamic lunar calendar, which is determined quite astronomically. So don't be surprised too much if some holiday dates differ from the religious Islamic calendar about +/- 1...2 days in some years. The main difficulty to implement the religious Islamic calendar correctly into Gcal are the several different criteria that are existing for the first sighting of the crescent Moon after a New Moon phase -- that event, which defines the beginning of a new (lunar) month in the religious oriented Islamic calendar. So on the one hand, there are quite astronomically-based criteria, and on the other hand, there are also quite religiously-based criteria. Furthermore, the local predominant weather conditions, the geographical co-ordinate of the observer's location and the kind of the observance method used also affect these criteria. Moreover, to render all more difficult, I as yet do not have any reliable information that tells me which kind of criteria is used in the countries (around 60 world-wide) which respect this religious Islamic calendar. So due to all the above mentioned facts of problematic nature, this religious Islamic calendar is not included into Gcal yet. The Chinese (and Japanese) holidays also inserted into the country specific holiday list are calculated by using that algorithm as it is used by the Purple Mountain Observatory in Nanjing to determine the astronomical lunisolar Chinese calendar. This calendar is obligatory for (the Peoples Republic of) China since 1929 and is determined annually always new. Nevertheless and strictly speaking, in the historic reality and depending on the region, the Chinese calendar, especially in the 17th and 18th century, was either calculated using this _modern_ algorithm, or by the use of a different method, so that a different calendar structure for one and the same year was possibly calculated as result. And last... This manual shows the possible use of the Gcal program only briefly and deliberately renounces to present the topics that are covered by this software arranged in a novel-like style. The use of Gcal is illustrated in an exemplary manner only! A detailed description of all possible use is inexpedient here because there are simply too many of such possibilities which are caused by the existing variety of combinations of all useable modes of operation. Furthermore, this manual does not contain detailed explanations about the calendar systems supported by Gcal, nor it can be understood as a reference-book for the basics in celestial mechanics or spherical trigonometry! A detailed discussion of the above topics is completely beyond the scope of this manual. If you are interested to learn more about these subjects, you unfortunately have to read the specific pertinent literature. Any further errors occurring in the output of the above mentioned holiday lists and in the astronomical calculations are my own fault, and are not intended to offend members of any culture, religion or profession!  File: gcal.info, Node: Preface-Footnotes, Up: Preface (1) I.e. no need to search for calendar information in the net so phone and Internet Service Provider (ISP) costs are reduced, and furthermore, neither searching for such information in books or data files nor the need to use several other software which altogether do what Gcal actually also does. (2) The "General Public License" of the Free Software Foundation.  File: gcal.info, Node: Gcal Introduction, Next: Invoking Gcal, Prev: Preface, Up: Top 2 Gcal Introduction ******************* Apart from the usual and well known calendar functions like the output of a month or a year calendar sheet, or the output of an eternal holiday list, Gcal, the Gregorian calendar program of the Free Software Foundation, offers the facility to display fixed dates on the day of their occurrence and to remind or inform the user about them. So it is imaginable after booting the computer or starting the work session, that the user is informed on screen or by means of electronic mail about all holidays or appointments which are observed or scheduled for that day. The period, for which Gcal respects occurring fixed dates, may be freely selected by the user. So it is possible that Gcal displays all fixed dates which occur on tomorrow's date, the whole week, the whole month or in the whole year. Fixed dates which occur on a selected date of the year, and those that occur relative to another given date, are displayed either related to this single date only, or in listed manner starting on this date and ending on the actual date(1) (*note Gcal Introduction-Footnote-1::). There are two methods to display a preview of fixed dates(2) (*note Gcal Introduction-Footnote-2::) or retrospective view of fixed dates(3) (*note Gcal Introduction-Footnote-3::). On the one hand, Gcal can be started by using an option that sets the system date of the computer to the given date during the time of the program execution with the result, the program assumes the system date is set to this given date and the user can define any needed period that should be respected by an option. On the other hand, Gcal can be started with a command which forces the program to use a different year instead of the actual year, so Gcal will display all occurring fixed dates for this particular year. But this limits the user in that it disables defining any needed period by an option, because the period is always set to the whole year by default. Gcal isn't only able to display fixed dates which are stored for a concrete date, e.g. 'Fixed date on 1st December 1995', rather than fixed dates occurring periodically again and again. So it is possible to define repeated events like 'This fixed date occurs every day in May 1995' or 'Every 15th November in any years'. These fixed date definitions are stored in resource files and whenever Gcal is started, an option to evaluate the necessary resource files can be given. Once the user has set his/her preferred command line arguments for querying the fixed dates data base, it is possible to store them in a response file or shell script file. A response file contains all arguments delivered to Gcal, but unlike a shell script file, such a response file isn't executable; it is only a pool of command line arguments which can be preloaded if needed. A shell script file can be started and calls Gcal directly with all arguments stored in it and all arguments which are given further in the command line. A list of all usable command line arguments and their descriptions can be found in the next chapter, which helps one to use Gcal in the most efficient and productive way possible. After it follows the description how to use the eternal holiday list, and in the succeeding chapter, how to use the fixed date list. Comprehensive explanations respectively summaries and tables to definite details or themes from other disciplines can be found in the numerous appendices.  File: gcal.info, Node: Gcal Introduction-Footnotes, Up: Gcal Introduction (1) Inclusive or exclusive. (2) Future years. (3) Past years.  File: gcal.info, Node: Invoking Gcal, Next: Eternal Holidays, Prev: Gcal Introduction, Up: Top 3 Invoking 'gcal' ***************** * Menu: * Command line arguments:: Command line arguments. * The GCAL environment variable:: How to use the 'GCAL' environment variable. Gcal is a command line oriented program. It is usually called from the "shell"(1) (*note Invoking Gcal-Footnote-1::) and processes given arguments that are options and commands. Options must be given before commands, i.e. you must call Gcal like this: gcal [ [OPTION...] [%DATE] [@FILE...] ] [COMMAND] If Gcal is started without any options or commands, a calendar of the current month is displayed. If the calendar of a definite year is wanted, the year must be fully specified, e.g. 'gcal 94' displays a year calendar of the year 94, not of the year 1994. If two arguments are given in the command part, the *first* argument denotes the month, and the *second* argument denotes the year. In case any incorrect commands are given running Gcal, the program will use internal defaults. In the English program version, Gcal assumes the Gregorian Reformation has occurred in 1752 on the 3rd of September. *Note Genesis of the Gregorian Calendar: Todays Calendar, and *note Aspects in Internationalization: Internationalization, for further details.  File: gcal.info, Node: Invoking Gcal-Footnotes, Up: Invoking Gcal (1) This is an operating system program which interprets and runs given command lines.  File: gcal.info, Node: Command line arguments, Next: The GCAL environment variable, Prev: Invoking Gcal, Up: Invoking Gcal 3.1 Command line arguments ========================== * Menu: * Options:: How to use Options. * Response file:: How to use a '@FILE' Response file. * Actual date modifier:: How to use a '%DATE' Actual date modifier. * Commands:: How to use Commands. This section describes all command line arguments processed by Gcal. Four different types of command line arguments exists. One important type of arguments are the "options" which control how Gcal behaves. Other types of arguments are the '%DATE' and the '@FILE' options. The '%DATE' option sets the period Gcal shall work on to any starting date; the '@FILE' option preloads options and commands from a response file. The most important arguments are the "commands" which control the periods Gcal respects. An option is defined by a leading "switch" character; either the '-' (dash) or the '/' (slash) character for traditional short-style options, or '--' for mnemonic long-style options; a command may not have a leading switch character. Options(1) (*note Command line arguments-Footnote-1::) *must* be given before commands! Depending on operating system and used shell, some of the arguments and texts given in command line must be quoted by '"' or ''' characters respectively protected or depreciated by a '\' character to avoid expansion by the shell. Here is an incomplete list of characters which must potentially be protected: '(', ')', '<', '>', '[', ']', '{', '}', '\', '|', '$', '@', '!', '&', '~', '"', ''', '`', ';'  File: gcal.info, Node: Command line arguments-Footnotes, Up: Command line arguments (1) Inclusive '%DATE' and '@FILE'.  File: gcal.info, Node: Options, Next: Response file, Prev: Command line arguments, Up: Command line arguments 3.1.1 Options ------------- * Menu: * Common options:: How to use Common options. * Global options:: How to use Global options. * Calendar options:: How to use Calendar options. * Fixed date options:: How to use Fixed date options. The options processed by Gcal can be grouped into four major option classes. The options of the "common option class" are the standard options all GNU software should implement at least partially. The "global option class" contains options which affect the program output. The options of the "calendar option class" control the calendar layout, and the options of the "fixed date option class" control the fixed date layout and intensity. Gcal supports both short-style options and GNU long-style options. Traditional short-style options are indicated by a single switch character, and trailed by the option character itself and perhaps a modifier or an argument. The most single character options(1) (*note Options-Footnote-1::) can be composed into a single command line word: '-Ax' is equivalent to '-A -x'. GNU long-style options are indicated with '--', and trailed by the mnemonic option name itself and perhaps an argument. Long-style options and their arguments may be abbreviated if done unambiguously. When a long-style option takes an argument, connect the option name and the argument with '='. Brackets ([ and ]) indicate in the following tables, that an option takes an optional argument. The '|' character is used to separate several arguments from each other. Gcal processes the GNU long-style options in a special, non-standard way. There are five different types of long-style options: 1. '--foo' Enables option '--foo'. 2. '--foo=BAR' Enables option '--foo' with the required argument BAR. 3. '--foo[=BAR[|...|BAR]]' Option '--foo' may have one BAR argument. If no argument list is given, any argument can be given to this option. If an argument list is given, exactly one BAR argument may be selected from the given list. If there is no argument chosen in this case, the first BAR argument of the argument list is preselected by default. 4. '--foo=BAR|...|BAR' Option '--foo' requires exactly one BAR argument which must be selected from the given argument list. 5. '--foo=BAR|...|BAR|BAZ' Option '--foo' requires exactly one BAR argument which must be selected from the given BAR argument list, or the alternative BAZ argument. Traditional short-style options differ as follows: 1. '-x' Enables option '-x'. 2. '-x BAR' Enables option '-x' with the required argument BAR. The BAR argument may be separated by a leading _whitespace_ character from the short-style option character 'x'. This means, the following notations are valid for giving an argument, namely '-x BAR' or '-xBAR'. 3. '-x[BAR|...|BAR]' Option '-x' may have one or more BAR "modifier". In this sense, modifiers are one or more characters which define a special mode of operation enabled by the '-x' option. A modifier may not be separated by a leading _whitespace_ character from the short-style option character.  File: gcal.info, Node: Options-Footnotes, Up: Options (1) Unless they take an argument.  File: gcal.info, Node: Common options, Next: Global options, Prev: Options, Up: Options 3.1.1.1 Common options ...................... '-?' '-h' '--help' Print a short usage message listing only some few of all available options, then exit successfully. '-??' '-hh' '--usage[=ARGUMENT]' '--long-help[=ARGUMENT]' Print an extended usage message listing all available options, then exit successfully. If an ARGUMENT is given and it is a valid long-style option name, an extended help text related to the given long-style option name is displayed only, e.g.: --long-help=long-help displays the extended help text for the long option '--long-help'. If the ARGUMENT only consists of the single '?' character or is no valid long-style option name, a list of all valid long-style option names is displayed. '-L' '--license' '--copyleft' '--copyright' Print the software license message, then exit successfully. '-V' '--version' Print the version number and compilation options, then exit successfully. '--exit-status-help-non-zero' Set the exit state of program to 127 instead to 0, if one of the other options of the _common option class_ is used.  File: gcal.info, Node: Global options, Next: Calendar options, Prev: Common options, Up: Options 3.1.1.2 Global options ...................... '-R NAME' '--response-file=NAME' Write the contents of the environment variable 'GCAL' (*note Environment Variable 'GCAL': x-GCAL.), and then the arguments of command line (in the given order) to file NAME, i.e. create response file 'name'. *Note Response file::, for more details. '-S NAME' '--shell-script=NAME' Write the contents of the environment variable 'GCAL' (*note Environment Variable 'GCAL': x-GCAL.), and then the arguments of command line (in the given order) to file NAME, i.e. create shell script file 'name'. An automatically created shell script file is executable and calls Gcal directly with the arguments stored in it. You may start the shell script with other command line arguments which are directed to Gcal, too. '--debug[=internal|handled|unhandled|all|abort]' Display some debug information. '--debug=internal' Display informational texts if program internal maxima are reached or other conditions occurred, respectively. '--debug=handled' Like '--debug=internal', additionally display the file names which can be processed respectively handled. '--debug=unhandled' Like '--debug=internal', additionally display file names which cannot be processed respectively handled. '--debug=all' Like '--debug=handled' and '--debug=unhandled' together. '--debug=abort' Like '--debug=all' and abort program with an error code if the file name cannot be handled or other unmanageable conditions occurred, respectively. *Note Error Codes::. '-p' '--pager' Enables either an _external_ pager or a simple, _internal_ pager. If an environment variable 'PAGER' is set, its contents will be used for detecting the external pager program. *Note Environment Variable 'PAGER': x-PAGER, for more information. If no 'PAGER' environment variable is set or if its contents is invalid, Gcal tries to use the 'less' pager; if this program cannot be found during scanning the 'PATH' environment variable, Gcal tries to use the 'more' pager, if this program cannot be found, the 'pg' pager in the same way(1) (*note Global options-Footnote-1::). *Note Environment Variable 'PATH': x-PATH. If all these actions fail, Gcal will use its simple, built-in pager. If the internal pager is used, Gcal detects the number of lines shown before it prompts and waits for user input by using these methods: 1. Gcal respects the values set in the environment variables 'GCAL_LINES' and 'GCAL_COLUMNS'. *Note Environment Variable 'GCAL_LINES': x-GCAL_LINES, and *note Environment Variable 'GCAL_COLUMNS': x-GCAL_COLUMNS, for further information. 2. If above action fails, Gcal respects the values set in the environment variables 'LINES' and 'COLUMNS'. *Note Environment Variable 'LINES': x-LINES, and *note Environment Variable 'COLUMNS': x-COLUMNS, for more details. 3. If above action fails, Gcal respects the values set in the 'termcap'(2) (*note Global options-Footnote-2::) file which refers to the terminal used (*note Environment Variable 'TERM': x-TERM.). This step is only done on systems which support the use of Termcap by default. On MS-DOS, OS/2 and some other operating systems, Gcal uses a system dependent _low-level_ function and respects the reported values. 4. If all above actions have failed, Gcal uses default values(3) (*note Global options-Footnote-3::). '-H yes' '--force-highlighting' '--highlighting=yes' If the output of the program is redirected(4) (*note Global options-Footnote-4::) or piped(5) (*note Global options-Footnote-5::), the highlighting sequences are *not* automatically converted into the according marking characters, they remain unchanged. This option takes no effect if the output of the program is sent by means of electronic mail. *Note Global option '--mail[=ADDRESS]': x-mail. '-H no' '--disable-highlighting' '--highlighting=no' Disable highlighting sequence / marking character pairs of current day, holiday or text explicitly. '-H TEXT' '--highlighting=TEXT' Set highlighting sequence / marking character pairs explicitly. In this sense, "highlighting" sequences are control character sequences which cause a color or intensity switch in output text. Typical control character sequences are the ANSI escape sequences which have a leading escape character, and trailing more characters that define the type of the ANSI escape sequence. In this sense, "marking" characters are single, printable characters which lead and trail the output text. The TEXT argument must be a (':') colon-separated text which is structured in this way: SEQ1_START:SEQ1_END:SEQ2_START:SEQ2_END. The *first* sequence is used for highlighting/marking an actual day, the *second* for a holiday. The sequences must be given in form of a sequence pair; SEQ?_START enables the highlighting/marking, SEQ?_END disables it. Only two sequence pairs will be processed, others are ignored. Either highlighting sequence pairs or marking character pairs may be defined, i.e. using them both in a mixed couple is not permitted! For example: '-H \x20:\x20:\x1:#' respectively '--highlighting=\x20:\x20:\x1:#' marks the actual day like '\x20ACTUAL DATE\x20'(6) (*note Global options-Footnote-6::) and the holiday date like '\x1HOLIDAY DATE#' using the given marking characters. '-H \x1b[34;42m:\x1b[0;40m' or '-H \033[34;42m:\033[0;40m' or '-H \E[34;42m:\E[0;40m' defines a starting ANSI escape highlighting sequence '\x1b[34;42m' used for actual day and ending ANSI escape highlighting sequence '\x1b[0;40m' with no given highlighting sequence for holidays, so default highlighting sequences for holidays are used (non-given entries are always skipped). Please note the last abstract of this text part which informs you more detailed of this context. *Note Environment Variable 'GCALANSI': x-GCALANSI, too. Control code definitions may contain any printable characters. Non-printable characters may be encoded in octal or hexadecimal notation. The abbreviation '\E' directly encodes the escape character (octal '\033' respectively hexadecimal '\x1B'). A character can be encoded octal by typing '\NNN' (backslash-octal digit(s)), where N must be a valid octal digit (0...7). Normally, three octal digits must be given. If the octal character code consists of one or two octal digits, leading zeroes must be added, except the case, where the encoded octal character is given at last in the single sequence. A character can be encoded hexadecimal by typing '\xNN' (backslash-x hexadecimal digit(s)), where N must be a valid hexadecimal digit (0...9A...Fa...f). Normally, two hexadecimal digits must be given. If the hexadecimal character code consists of one hexadecimal digit, a leading zero must be added, except the case, where the encoded hexadecimal character is given at last in the single sequence. If the sequence separator character, thus the ':' (colon) character itself, is used as a marking character, it must be encoded either octal by '\072' or hexadecimal by '\x3A'. If the C Preprocessor symbol 'USE_PAGER' was defined and the output of the program is redirected or used in a pipeline, the highlighting sequences are automatically converted into the according marking characters; if 'USE_PAGER' was not defined, they remain untouched. Incomplete or non-given highlighting sequences will be replaced by internal default ANSI escape highlighting sequences if a 'GCALANSI' environment variable is defined; otherwise completely replaced by their according marking characters. *Note Environment Variable 'GCALANSI': x-GCALANSI. '--mail[=ADDRESS]' Send Gcal's output via 'mail'(7) (*note Global options-Footnote-7::) program to the given ADDRESS, e.g.: --mail=esken@gmx.net If no ADDRESS is given, Gcal tries to send the eMail by using the following methods: 1. If an environment variable 'MAILTO' is defined and set, the eMail is send to the address which is listed in this environment variable. *Note Environment Variable 'MAILTO': x-MAILTO, for more information. 2. If above action fails, and if an environment variable 'USER' is defined and set, the eMail is send to the address which is listed in this environment variable. *Note Environment Variable 'USER': x-USER, for more information. 3. If above action fails, and if an environment variable 'LOGNAME' is defined and set, the eMail is send to the address which is listed in this environment variable. *Note Environment Variable 'LOGNAME': x-LOGNAME, for more information. 4. If all above actions have failed, no eMail is send. Generally, Gcal does not send electronic Mails whose message body is empty! An informational message will be shown on the _standard error channel_ if this case occurs. All highlighting sequences produced by Gcal itself are always disabled respectively automatically converted into the according marking characters if an eMail must be send; no matter if the '--force-highlighting' option was given or not. This behavior of Gcal is an imperative necessity, because it is possible that the 'mail' program cannot perform the mailing correctly. Please pay attention in this context to the further explanations concerning the limitations of the _text part_ of a resource file line (*note Text part of a line::). If an environment variable 'MAILPROG' is defined and set, its contents will be used as the program name of the mailer instead of the standard name 'mail'. *Note Environment Variable 'MAILPROG': x-MAILPROG, for more information.  File: gcal.info, Node: Global options-Footnotes, Up: Global options (1) See the standard manual pages for 'less', 'more' and 'pg'. (2) See the standard manual pages for Termcap. (3) Either 23 or 24 lines, and 80 columns. (4) This means, sent to another device. (5) This means, used as an input data stream for another program. (6) This means with a leading and a trailing blank. (7) See the standard manual pages for 'mail'.  File: gcal.info, Node: Calendar options, Next: Fixed date options, Prev: Global options, Up: Options 3.1.1.3 Calendar options ........................ '-n|N[-]' '--holiday-list[=long|short]' '--descending-holiday-list[=long|short]' Display the eternal holiday list. By default, there are no entries in the eternal holiday list. You have to choose country specific holidays or holidays from other calendar systems to provide the eternal holiday list with entries. *Note Eternal Holidays::, and *note Calendar option '--cc-holidays=CC[+...]': x-cc-holidays, for additional information. '-n' '--holiday-list=long' Display all holidays of eternal holiday list --this means, all legal holidays and all further memorial days-- sorted in ascending order. '-n-' '--descending-holiday-list=long' Display all holidays of eternal holiday list --this means, all legal holidays and all further memorial days-- sorted in descending order. '-N' '--holiday-list=short' Display legal holidays only of eternal holiday list, sorted in ascending order. '-N-' '--descending-holiday-list=short' Display legal holidays only of eternal holiday list, sorted in descending order. '-G' '--suppress-holiday-list-separator' Suppress displaying of the blank line which is always leading an eternal holiday list. '-X' '--exclude-holiday-list-title' Suppress the title text line of the eternal holiday list. '--astronomical-holidays' Provide the eternal holiday list additionally with some astronomical data, and that the Full and New Moon phases, waning and waxing Half Moon phases, solar and lunar eclipses, and the solstices and equinoxes. *Note Calendar option '--time-offset=ARGUMENT': x-time-offset, how to change the timezone respectively base time for which the astronomical data is calculated. '--bahai-holidays' Provide the eternal holiday list additionally with Baha''i` holidays (only for dates after AD 1843). '--celtic-holidays' Provide the eternal holiday list additionally with Celtic holidays. *Note Calendar option '--time-offset=ARGUMENT': x-time-offset, how to change the timezone for which the Celtic holidays are calculated. '--chinese-flexible-holidays' Provide the eternal holiday list additionally with Chinese holidays, that are determined in a flexible manner (only for dates after AD 1644). *Note Calendar option '--time-offset=ARGUMENT': x-time-offset, how to change the timezone for which the Chinese holidays are calculated in a flexible manner. *Note Preface::, for further details. '--chinese-holidays' Provide the eternal holiday list additionally with Chinese holidays (only for dates after AD 1644). For dates until AD 1928 all computations done are depending fixed on Beijing local time, for later dates fixed on the timezone GMT-8. *Note Preface::, for further details. '--christian-holidays' Provide the eternal holiday list additionally with Christian holidays. '--hebrew-holidays' Provide the eternal holiday list additionally with Hebrew holidays. '--islamic-civil-holidays' Provide the eternal holiday list additionally with Islamic holidays (only for dates after AD 621), that are based on the civil Islamic calendar. *Note Preface::, for further details. '--japanese-flexible-holidays' Provide the eternal holiday list additionally with Japanese holidays, that are determined in a flexible manner (only for dates after AD 1644). *Note Calendar option '--time-offset=ARGUMENT': x-time-offset, how to change the timezone for which the Japanese holidays are calculated in a flexible manner. '--japanese-holidays' Provide the eternal holiday list additionally with Japanese holidays (only for dates after AD 1644). For dates until AD 1887 all computations done are depending fixed on Beijing local time, for later dates fixed on the timezone GMT-9. '--multicultural-new-year-holidays' Provide the eternal holiday list additionally with multicultural New Year holidays. *Note Calendar option '--time-offset=ARGUMENT': x-time-offset, how to change the timezone for which the multicultural New Year holidays are calculated. '--orthodox-new-holidays' Provide the eternal holiday list additionally with Orthodox new calendar holidays, and it is assumed that the Gregorian Reformation has occurred from 10th till 22nd March 1924. *Note Calendar option '--orthodox-calendar': x-orthodox-calendar, for further details. '--orthodox-old-holidays' Provide the eternal holiday list additionally with Orthodox new calendar holidays, and it is assumed that the Gregorian Reformation has occurred from 10th till 22nd March 1924. *Note Calendar option '--orthodox-calendar': x-orthodox-calendar, for further details. '--persian-jalaali-holidays' Provide the eternal holiday list additionally with Persian holidays (only for dates after AD 621), which are based on the Persian _Jalaali_ calendar. All computations done are depending on the timezone GMT-3.5. '--zodiacal-marker-holidays' Provide the eternal holiday list additionally with zodiacal marker holidays, i.e. the dates when the Sun enters a zodiac sign or when the Sun reaches the turning-point in the zodiac sign. *Note Calendar option '--time-offset=ARGUMENT': x-time-offset, how to change the timezone for which the zodiacal marker holidays are calculated. '-q CC[_TT][+...]' '--cc-holidays=CC[_TT][+...]' Provide the eternal holiday list additionally with country specific holidays. Furthermore, all additionally highlighted days of the eternal holiday list are highlighted in the calendar sheets, too. The CC argument is a two-letter country code as defined by the ISO-3166(1) (*note Calendar options-Footnote-1::) like 'BE' for Belgium or 'ES' for Spain. See the pertinent literature for more details. In some cases, such a country code may be trailed by a two-letter territory code TT for better specification, which is separated by a '_' character from the country code. You can use more than one country code CC[_TT] by connecting them with a '+' character, e.g.: '--cc-holidays=be+Fr+IT' resp., '-q be+Fr+IT' includes all the country specific holidays given in the preceding argument into the eternal holiday list, i.e. Belgian, French and Italian holidays. Actually, Gcal respects the following country codes, at which countries marked by a '#' character have only an incomplete recording of holidays: 'AD' Andorra 'AE' United Arab Emirates 'AF' Afghanistan 'AG' Antigua and Barbuda 'AI' Anguilla 'AL' Albania 'AM' Armenia 'AN_BO' Netherlands Antilles/Bonaire 'AN_CU' Netherlands Antilles/Curac,ao 'AN_MA' Netherlands Antilles/St Maarten 'AN_SA' Netherlands Antilles/Saba and Statia 'AO' Angola # 'AR' Argentina 'AS' American Samoa 'AT' Austria 'AU_CT' Australia/Canberra 'AU_NT' Australia/Northern Territory 'AU_QU' Australia/Queensland 'AU_SA' Australia/Southern Australia 'AU_SW' Australia/New South Wales 'AU_TA' Australia/Tasmania 'AU_VI' Australia/Victoria 'AU_WA' Australia/Western Australia 'AW' Aruba 'AZ' Azerbaijan 'BA' Bosnia-Herzegovina 'BB' Barbados 'BD' Bangladesh # 'BE' Belgium 'BF' Burkina Faso 'BG' Bulgaria 'BH' Bahrain 'BI' Burundi # 'BJ' Benin # 'BM' Bermuda 'BN' Brunei 'BO' Bolivia 'BR' Brazil 'BS' Bahamas 'BT' Bhutan # 'BV' Bouvet Island 'BW' Botswana 'BY' Belarus 'BZ' Belize 'CA_AL' Canada/Alberta 'CA_BC' Canada/British Columbia 'CA_MA' Canada/Manitoba 'CA_NB' Canada/New Brunswick 'CA_NF' Canada/Newfoundland and Labrador 'CA_NS' Canada/Nova Scotia 'CA_NW' Canada/Northwest Territories 'CA_ON' Canada/Ontario 'CA_PE' Canada/Prince Edward Island 'CA_QU' Canada/Que'bec 'CA_SA' Canada/Saskatchewan 'CA_YU' Canada/Yukon 'CC' Cocos Islands (Keeling) 'CD' Democratic Republic of Congo # 'CF' Central African Republic # 'CG' Republic of Congo # 'CH_AG' Switzerland/Aargau 'CH_AI' Switzerland/Appenzell Innerrhoden 'CH_AR' Switzerland/Appenzell Ausserrhoden 'CH_BE' Switzerland/Bern 'CH_BL' Switzerland/Basel-Land 'CH_BS' Switzerland/Basel-Stadt 'CH_FR' Switzerland/Fribourg 'CH_GE' Switzerland/Gene`ve 'CH_GL' Switzerland/Glarus 'CH_GR' Switzerland/Graubu"nden 'CH_JU' Switzerland/Jura 'CH_LU' Switzerland/Luzern 'CH_NE' Switzerland/Neucha^tel 'CH_NW' Switzerland/Nidwalden 'CH_OW' Switzerland/Obwalden 'CH_SG' Switzerland/St Gallen 'CH_SH' Switzerland/Schaffhausen 'CH_SO' Switzerland/Solothurn 'CH_SZ' Switzerland/Schwyz 'CH_TG' Switzerland/Thurgau 'CH_TI' Switzerland/Ticino 'CH_UR' Switzerland/Uri 'CH_VD' Switzerland/Vaud 'CH_VS' Switzerland/Valais 'CH_ZG' Switzerland/Zug 'CH_ZH' Switzerland/Zu"rich 'CI' Co^te d'Ivoire 'CK' Cook Islands 'CL' Chile 'CM' Cameroon 'CN' China 'CO' Colombia 'CR' Costa Rica 'CU' Cuba 'CV' Cape Verde 'CX' Christmas Islands 'CY' Cyprus 'CZ' Czech Republic 'DE_BB' Germany/Brandenburg 'DE_BE' Germany/Berlin 'DE_BW' Germany/Baden-Wu"rttemberg 'DE_BY' Germany/Bavaria 'DE_HB' Germany/Bremen 'DE_HE' Germany/Hesse 'DE_HH' Germany/Hamburg 'DE_MV' Germany/Mecklenburg-West Pomerania 'DE_NI' Germany/Lower Saxony 'DE_NW' Germany/North Rhine-Westphalia 'DE_RP' Germany/Rhineland Palatinate 'DE_SH' Germany/Schleswig-Holstein 'DE_SL' Germany/Saar 'DE_SN' Germany/Saxony 'DE_ST' Germany/Saxony-Anhalt 'DE_TH' Germany/Thuringia 'DJ' Djibouti 'DK' Denmark 'DM' Dominica 'DO' Dominican Republic 'DZ' Algeria 'EC' Ecuador 'EE' Estonia 'EG' Egypt 'EH' Western Sahara 'ER' Eritrea 'ES' Spain 'ET' Ethiopia 'FI' Finland 'FJ' Fiji # 'FK' Falkland Islands (Malvinas) 'FM' Federated States of Micronesia 'FO' Faroes 'FR' France 'GA' Gabon # 'GB_EN' Great Britain/England and Wales 'GB_NI' Great Britain/Northern Ireland 'GB_SL' Great Britain/Scotland 'GD' Grenada 'GE' Georgia 'GF' French Guiana 'GH' Ghana 'GI' Gibraltar 'GL' Greenland 'GM' Gambia 'GN' Guinea 'GP' Guadeloupe 'GQ' Equatorial Guinea 'GR' Greece 'GS' South Georgia and South Sandwich Islands 'GT' Guatemala 'GU' Guam 'GW' Guinea-Bissau # 'GY' Guyana # 'HK' Hong Kong 'HM' Heard and Mc Donald Islands 'HN' Honduras 'HR' Croatia 'HT' Haiti 'HU' Hungary 'ID' Indonesia # 'IE' Ireland 'IL' Israel 'IN' India # 'IQ' Iraq 'IR' Islamic Republic of Iran 'IS' Iceland 'IT' Italy 'JM' Jamaica 'JO' Jordan 'JP' Japan 'KE' Kenya # 'KG' Kyrgyzstan 'KH' Cambodia # 'KI' Kiribati # 'KM' Comoros 'KN' St Kitts and Nevis 'KP' Democratic People's Republic of Korea # 'KR' Republic of Korea 'KW' Kuwait 'KY' Cayman Islands 'KZ' Kazakhstan 'LA' Laos People's Democratic Republic # 'LB' Lebanon 'LC' St Lucia 'LI' Liechtenstein 'LK' Sri Lanka # 'LR' Liberia 'LS' Lesotho 'LT' Lithuania 'LU' Luxembourg 'LV' Latvia 'LY' Libyan Arab Jamahiriya (Libya) 'MA' Morocco 'MC' Monaco 'MD' Republic of Moldova 'MG' Madagascar # 'MH' Marshall Islands 'MK' Former Yugoslav Republic of Macedonia 'ML' Mali 'MN' Mongolia # 'MO' Macau 'MP' Northern Marian Islands (Saipan) 'MQ' Martinique 'MR' Mauritania 'MS' Montserrat 'MT' Malta 'MU' Mauritius 'MV' Maldives 'MW' Malawi 'MX' Mexico 'MY' Malaysia # 'MZ' Mozambique 'NA' Namibia 'NC' New Caledonia 'NE' Niger 'NF' Norfolk Island 'NG' Nigeria 'NI' Nicaragua 'NL' Netherlands 'NM' Myanmar (Burma) # 'NO' Norway 'NP' Nepal # 'NR' Nauru 'NU' Niue 'NZ' New Zealand 'OM' Oman 'PA' Panama 'PE' Peru 'PF' French Polynesia 'PG' Papua New Guinea 'PH' Philippines 'PK' Pakistan 'PL' Poland 'PM' Saint-Pierre and Miquelon 'PN' Pitcairn 'PR' Puerto Rico 'PT' Portugal 'PW' Palau 'PY' Paraguay 'QA' Qatar 'RE' Re'union 'RO' Romania 'RU' Russian Federation 'RW' Rwanda 'SA' Saudi Arabia 'SB' Solomon Islands 'SC' Seychellen 'SD' Sudan 'SE' Sweden 'SG' Singapore # 'SH' St Helena 'SI' Slovenia 'SJ' Svalbard and Jan Mayen Islands 'SK' Slovakia 'SL' Sierra Leone 'SM' San Marino 'SN' Senegal 'SO' Somalia 'SR' Suriname # 'ST' Sao Tome' and Principe 'SV' El Salvador 'SY' Syrian Arab Republic (Syria) 'SZ' Swaziland 'TC' Turks and Caicos Islands 'TD' Chad 'TG' Togo # 'TH' Thailand # 'TJ' Tajikistan 'TK' Tokelau 'TM' Turkmenistan 'TN' Tunisia 'TO' Tonga 'TR' Turkey 'TT' Trinidad and Tobago # 'TV' Tuvalu 'TW' Taiwan 'TZ' Tanzania 'UA' Ukraine 'UG' Uganda 'US_AK' United States/Alaska 'US_AL' United States/Alabama 'US_AR' United States/Arkansas 'US_AZ' United States/Arizona 'US_CA' United States/California 'US_CO' United States/Colorado 'US_CT' United States/Connecticut 'US_DC' United States/District of Columbia 'US_DE' United States/Delaware 'US_FL' United States/Florida 'US_GA' United States/Georgia 'US_HI' United States/Hawaii 'US_IA' United States/Iowa 'US_ID' United States/Idaho 'US_IL' United States/Illinois 'US_IN' United States/Indiana 'US_KS' United States/Kansas 'US_KY' United States/Kentucky 'US_LA' United States/Louisiana 'US_MA' United States/Massachusetts 'US_MD' United States/Maryland 'US_ME' United States/Maine 'US_MI' United States/Michigan 'US_MN' United States/Minnesota 'US_MO' United States/Missouri 'US_MS' United States/Mississippi 'US_MT' United States/Montana 'US_NC' United States/North Carolina 'US_ND' United States/North Dakota 'US_NE' United States/Nebraska 'US_NH' United States/New Hampshire 'US_NJ' United States/New Jersey 'US_NM' United States/New Mexico 'US_NV' United States/Nevada 'US_NY' United States/New York 'US_OH' United States/Ohio 'US_OK' United States/Oklahoma 'US_OR' United States/Oregon 'US_PA' United States/Pennsylvania 'US_RI' United States/Rhode Island 'US_SC' United States/South Carolina 'US_SD' United States/South Dakota 'US_TN' United States/Tennessee 'US_TX' United States/Texas 'US_UT' United States/Utah 'US_VA' United States/Virginia 'US_VT' United States/Vermont 'US_WA' United States/Washington 'US_WI' United States/Wisconsin 'US_WV' United States/West Virginia 'US_WY' United States/Wyoming 'UY' Uruguay 'UZ' Uzbekistan 'VC' St Vincent and Grenadines 'VE' Venezuela 'VG' British Virgin Islands 'VI' U.S. Virgin Islands 'VN' Viet Nam 'VU' Vanuatu 'WF' Wallis and Futuna Islands 'WS' Samoa 'YE' Yemen 'YT' Mayotte 'YU' Serbia and Montenegro 'ZA' South Africa 'ZM' Zambia 'ZW' Zimbabwe '--bahai-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Baha''i` calendar. *Note Calendar option '--bahai-holidays': x-bahai-holidays, for further details. '--chinese-flexible-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Chinese calendar, that is determined in a flexible manner. *Note Calendar option '--chinese-flexible-holidays': x-chinese-flexible-holidays, for further details. '--chinese-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Chinese calendar. *Note Calendar option '--chinese-holidays': x-chinese-holidays, for further details. '--coptic-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Coptic calendar (only for dates after AD 283). '--ethiopic-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Ethiopic calendar. '--french-revolutionary-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the French Revolutionary calendar (only for dates after AD 1791). '--hebrew-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Hebrew calendar. '--indian-civil-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the civil Indian calendar (only for dates after AD 1956). '--islamic-civil-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the civil Islamic calendar. *Note Calendar option '--islamic-civil-holidays': x-islamic-civil-holidays, for further details. '--japanese-flexible-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Japanese calendar, that is determined in a flexible manner. *Note Calendar option '--japanese-flexible-holidays': x-japanese-flexible-holidays, for further details. '--japanese-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Japanese calendar. *Note Calendar option '--japanese-holidays': x-japanese-holidays, for further details. '--old-armenic-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Old-Armenic calendar (only for dates after AD 551). '--old-egyptic-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Old-Egyptic calendar. '--persian-jalaali-months' Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Persian _Jalaali_ calendar. *Note Calendar option '--persian-jalaali-holidays': x-persian-jalaali-holidays, for further details. '-i[-]' '--type=special|standard' To obtain the "standard calendar format"(2) (*note Calendar options-Footnote-2::), either start Gcal omitting the '-i[-]' option because it is set by default, *note Aspects in Internationalization: Internationalization, or start Gcal with the '-i-' respectively '--type=standard' option: $ gcal -i- -| -| September 1994 -| Su Mo Tu We Th Fr Sa -| 1 2 3 -| 4 5 6 7 8 9 10 -| 11 12 13 14 15 16 17 -| 18 19 20 21 22 23 24 -| 25 26 27 28 29 30 To obtain the "special calendar format", start Gcal with the '-i' respectively '--type=special' option: $ gcal -i -| -| September 1994 -| -| Sunday 4 11 18 25 -| Monday 5 12 19 26 -| Tuesday 6 13 20 27 -| Wednesday 7 14 21 28 -| Thursday 1 8 15 22 29 -| Friday 2 9 16 23 30 -| Saturday 3 10 17 24 '-O' '--orthodox-calendar' Use the leap year rule as used by the Eastern Orthodox churches. Without specifying the '--orthodox-calendar' option, Gcal is unable to display Gregorian years later than 2799 in the correct way for the Eastern churches, because they use a different scheme for calculating the leap years. The method for computing leap years within the common Gregorian calendar, which Gcal uses by default, is as follows: A leap year is any year which number can be divided by 4 without a remainder, and years ending in hundreds are no leap years unless they are divisible by 400. But the Eastern Orthodox churches compute leap years within the Gregorian calendar by using another rule: A leap year is any year which number can be divided by 4 without a remainder, and years ending in hundreds are leap years, if a remainder of 2 or 6 occurs when such a year is divided by 9. The first difference therefore occurs in the year 2800 which is a leap year in the common Gregorian calendar, but an ordinary year only in the calendar as used by the Eastern Orthodox churches. '-K' '--with-week-number' Provide the calendar sheet with week numbers. *Note Calendar option '--starting-day=ARGUMENT': x-starting-day, *note Calendar option '--iso-week-number=yes|no': x-iso-week-number, and *note Aspects in Internationalization: Internationalization, for further details. '--iso-week-number=yes|no' Determine the type of week numbers which are used in the calendar sheet, in the fixed date list and by the '%DATE' actual date modifier. *Note Calendar option '--starting-day=ARGUMENT': x-starting-day, and *note Aspects in Internationalization: Internationalization, for more details. '--iso-week-number=yes' The methods of the ISO-8601:1988 are used for detecting week numbers; this means a week starts on Mondays, and the first week of a year is the one which includes the first Thursday; equivalently, the one which includes the 4th January. This method is called "ISO week number" in the further context. If the starting day of the week is not set to Monday, the week numbers are not represented correctly in most cases. If you use this option, you should take care of setting Monday as the starting day of the week! '--iso-week-number=no' Weeks start on the respective starting day of the week, and the days in a new year that are preceding the first starting day of the week are in the last week of the previous year, respectively in week zero of the new year. This method is called "standard week number" in the further context. '-u' '--suppress-calendar' Suppress output of calendar sheet explicitly. '-b NUMBER' '--blocks=NUMBER' Set NUMBER of calendar sheet blocks (valid arguments: '1|2|3|4|6|12'). The default NUMBER for the _standard calendar format_ is '-b4 ' respectively '--blocks=4', and for the _special calendar format_ '-b 3' respectively '--blocks=3'. If this option is found, the program sees that a year calendar output is desired! '-b 1' '--blocks=1' Displays one block with twelve months at a time. '-b 2' '--blocks=2' Displays two blocks with six months at a time. '-b 3' '--blocks=3' Displays three blocks with four months at a time. '-b 4' '--blocks=4' Displays four blocks with three months at a time. '-b 6' '--blocks=6' Displays six blocks with two months at a time. '-b 12' '--blocks=12' Displays twelve blocks with one month at a time. '-j[b]' '--calendar-dates=special|both' Use alternative date format in calendar sheet instead of the default standard format which displays the days of month in consecutive manner. '-j' '--calendar-dates=special' Display the calendar sheet by using the special date format. This means, the days of year are displayed in consecutive manner instead of the days of month. '-jb' '--calendar-dates=both' Display the calendar sheet by using both the standard date format and special date format. '-jn[b]' '--holiday-dates=special|both' Use alternative date format in eternal holiday list instead of the default standard format which displays the days of month in consecutive manner. *Note Calendar option '--holiday-list[=long|short]': x-holiday-list. '-jn' '--holiday-dates=special' Display the eternal holiday list by using the special date format. This means, the days of year are displayed in consecutive manner instead of the days of month. '-jnb' '--holiday-dates=both' Display the eternal holiday list by using both the standard date format and special date format. '-jc[b]' '--fixed-dates=special|both' Use alternative date format in fixed date list instead of the default standard format which displays the days of month in consecutive manner. *Note Fixed date option '--list-of-fixed-dates[=short|long]': x-list-of-fixed-dates. '-jc' '--fixed-dates=special' Display the fixed date list by using the special date format. This means, the days of year are displayed in consecutive manner instead of the days of month. '-jcb' '--fixed-dates=both' Display the fixed date list by using both the standard date format and special date format. '-s ARGUMENT' '--starting-day=ARGUMENT' Set the starting day of the week (valid ARGUMENT: '0, 1...7 | today | WEEKDAY NAME'). For example: --starting-day=Sunday or --starting-day=7 or -s SUNDAY or -s sund or -sSu or -s 7 thus all specifies the Sunday (1==Mon, 2==Tue ... 7==Sun). If the '-s today' option (or '--starting-day=today') or the '-s 0' option (or '--starting-day=0') is given, the starting day of the week is set to the actual weekday as it is delivered by the system date. *Note Aspects in Internationalization: Internationalization, for more details. '--time-offset=ARGUMENT' Change the base time of the astronomical functions (valid ARGUMENT: 't|@|[t|@][+|-]MMMM|HH:[MM]'). If no '--time-offset=ARGUMENT' option is given, the astronomical data that is inserted into the eternal holiday list by the '--astronomical-holidays' option (*note Calendar option '--astronomical-holidays': x-astronomical-holidays.), and all Sun and Moon related special texts are always calculated for 0 o'clock Universal time (UTC/GMT), thus "civil midnight time". *Note Sun data::, and *note Moon data::, likewise *note Moon phase::, for further information. The ARGUMENT is either the 't' or the '@' character --where 't' means a relation to the actual local time(3) (*note Calendar options-Footnote-3::) and '@' denotes a relation to the actual Universal time--, or one of these characters followed by a displacement value, or only a displacement value which has to be specified either by using the '[+|-]MMMM' format or the '[+|-]HH:[MM]' format. '[+|-]MMMM' adds respectively subtracts the specified amount of minutes MMMM from the base time value 0 o'clock Universal time (range '0...9999'), while '[+|-]HH:[MM]' adds respectively subtracts the given amount of hours HH (range '0...99') and minutes MM (range '0...59') from the base time value 0 o'clock Universal time. The displacement value is always added to the base time value 0 o'clock Universal time in case it is specified without a '+|-' sign. For example, the '--time-offset=+1:' option causes that while displaying eternal holiday lists and fixed date lists, the time 0 o'clock of the timezone GMT-1 (== CET) is used as the base time by the astronomical functions instead of the base time 0 o'clock Universal time (== GMT). For example, the '--time-offset=t-2:' option causes that while displaying eternal holiday lists and fixed date lists, the time that is two hours earlier than the actual local time is used as the base time by the astronomical functions instead of the base time 0 o'clock Universal time (== GMT). For such a kind of relation, the term "relative time offset value" will be used in the further context. '--transform-year=ARGUMENT' Change the base year of calendar (valid ARGUMENT: '-9999...[+]9999'). For example, the '--transform-year=-543' option causes that while displaying calendar sheets, eternal holiday lists and fixed date lists, the year 543 BC is used as the base year of the calendar instead of the year AD 1. This results in the case that --for example-- for the year 1999 (Christian era), the year number 1999 is not used in the above mentioned outputs, but the year number 2542 which is used in the western oriented Thai calendar. Nevertheless, Gcal does not respect the '--transform-year=ARGUMENT' option when using the actual date modifier '%DATE' (*note Actual date modifier::), the commands (*note Commands::), and the fixed date entries in a resource file (*note Date part of a line::). There, all references made to a definite year are always treated in the way that the year AD 1 is the base year of the calendar, so in fact it is *only* possible to use references based on the Christian era. '--gregorian-reform=1582|1700|1752|1753|ARGUMENT' Set the period which was skipped during the Gregorian Reformation. By default, Gcal runs in the "hybrid" calendar mode, i.e. Gcal automatically changes from the Julian calendar system to the Gregorian calendar system if output is related to dates after the Gregorian Reformation has happened. *Note Aspects in Internationalization: Internationalization, for more details. Actually, four fixed default periods are supported, and that of the year 1582, of the year 1700, of the year 1752 and of the year 1753. If Gcal is called with the '--gregorian-reform=1582' option, it assumes the Gregorian Reformation has occurred from 5th till 14th October 1582. If Gcal is called with the '--gregorian-reform=1700' option, it assumes the Gregorian Reformation has occurred from 19th till 28th February 1700. If Gcal is called with the '--gregorian-reform=1752' option, it assumes the Gregorian Reformation has occurred from 3rd till 13th September 1752. If Gcal is called with the '--gregorian-reform=1753' option, it assumes the Gregorian Reformation has occurred from 18th till 28th February 1753. In case another period shall be respected, it can be arranged by the option ARGUMENT like 'YYYYY,MM,FIRST-DAY,LAST-DAY'. If the Gregorian Reformation has occurred for example on the 7th till the 17th April 1802, this can be arranged as follows: --gregorian-reform=1802,4,7,17 Gcal is able to represent so-called "proleptic" calendars of a definite calendar system. This means, Gcal only uses a definite calendar system during a definite period, although there was a change to another calendar system in the historic reality during this definite period. The following proleptic calendar systems are actually supported by Gcal: * Proleptic Gregorian calendars can be created from AD 302 until AD 9999 if '--gregorian-reform=301,12,31,31' is used. Unfortunately, Gcal actually cannot represent years before AD 302 in a proleptic-Gregorian manner. * Proleptic Julian calendars can be created from AD 1 until AD 9999 if '--gregorian-reform=10002,12,31,31' is used. In this case, the actual system date that is normally based on the Gregorian calendar and that is used by Gcal, is internally and automatically converted into the according Julian date(4) (*note Calendar options-Footnote-4::). The same happens if the actual system date is modified by using the actual date modifier '%DATE'. In such a case, Gcal also assumes that the given date is a Gregorian date, and converts it automatically into the according Julian date internally. *Note Actual date modifier::, for further details. Please note that it is possible to corrupt the calendars likewise the fixed date feature logically (which works correctly now for the year in which the Gregorian Reformation has occurred) if the argument of the '--gregorian-reform' option is not used with care. '--date-format=de|us|gb|TEXT' Set the date format which affects the ordering and representation of a displayed date. *Note Aspects in Internationalization: Internationalization, for more details. The date format text is respected by Gcal in the eternal holiday list, in the fixed date list and the calendar sheets. Moreover, Gcal internally tries to obtain the best representation of a displayed date in case the day-of-year numbers instead of the day-of-month numbers must be displayed, or both types of numbers are used in a combined manner. Actually, three fixed default date formats are supported, and that for German users, U.S. American users and for users in Great Britain. If Gcal is called with the '--date-format=de' option, the '%<2#K, %1%>2*D%2 %<3#U %>04*Y' date format text is used. This result in that a date is displayed by using the 'WW, DD MMM YYYY' ordering, for example 'Sa, 28 Aug 1999'. If Gcal is called with the '--date-format=us' option, the '%<3#K, %<3#U %1%>2&*D%2 %>04*Y' date format text is used. This result in that a date is displayed by using the 'WWW, MMM DD YYYY' ordering, for example 'Sat, Aug 28th 1999'. If Gcal is called with the '--date-format=gb' option, the '%<3#K, %1%>2&*D%2 %<3#U %>04*Y' date format text is used. This result in that a date is displayed by using the 'WWW, DD MMM YYYY' ordering, for example 'Sat, 28th Aug 1999'. In case another format text shall be respected, this format text can either be set in the 'GCAL_DATE_FORMAT' environment variable(5) (*note Calendar options-Footnote-5::), or it can be arranged by the option argument TEXT. For example, '--date-format='%Y %D %>02*M ; %1(%>5u#K)%2'' displays a date by using the '[[[Y]Y]Y]Y [D]D MM ; (WWWWW)' ordering, thus for example '1999 28 08 ; (SATUR)'. *Note Environment Variable 'GCAL_DATE_FORMAT': x-GCAL_DATE_FORMAT, for further information. The format text may contain on the one hand all characters which can be managed by Gcal, and on the other hand character replacement instructions and format elements which are transformed into their according values at run-time. Some format elements may have a format instruction which is called FORMAT in the further context. *Note Format Instruction::, for the detailed description of the format instruction and its components. A minimum date format text must contain the following format elements minimum: The day number, one component of the month group, the year number and both components of the highlighting group. A weekday name format element may be included optionally into the date format text. The following format elements and character replacement instructions are currently supported: '%[FORMAT]D' Day number (must be defined) '%[FORMAT]Y' Year number (must be defined) '%[FORMAT]K' Weekday name (may be defined) Month group (exactly one member must be defined): '%[FORMAT]M' Month number '%[FORMAT]U' Month name Highlighting group (all members must be defined and '%1' must be specified before '%2'): '%1' Start of highlighting sequence / marking character '%2' End of highlighting sequence / marking character Character replacement instructions: '_' Space/blank character ' ' '\_' Underscore character '_' '\%' Percent character '%' '\\' Backslash character '\' *Note Table of Obsolete Date Formats::, and *note Table of Obsolete Date Format Elements::, for further information. '--translate-string=TEXT' Define the country specific special character pairs which are respected or translated by a STYLE format instruction component, respectively. *Note Format Instruction::, for the detailed description of the format instruction and its components. The country specific special character pairs are arranged by the TEXT option argument as a sequence of single character pairs, and that in any number and order. The upper-case representation of the country specific special character has to be specified at first, and after that its lower-case representation. Country specific special characters which do not have an upper-case resp., lower-case representation in the character set used, like e.g. the 'ss'-character which is very usual in the German character set, are also specified as a special character pair (here: 'ssss'), otherwise these special characters are not recognized and they are converted incorrectly by the STYLE format instruction component. In case the lower-case representation of the country specific special character is specified at first, and after that its upper-case representation, this option does not cause any further affects to the STYLE format instruction component; resulting, the country specific special characters specified are not recognized as such and they remain untranslated therefore. For example, a 'A"a"O"o"U"u"ssss' option argument causes the correct conversion of the preceding special characters in an individual date format, which has a STYLE format instruction component, and that, how they are used by the character set used in Germany.  File: gcal.info, Node: Calendar options-Footnotes, Up: Calendar options (1) ISO is the abbreviation of 'International Organization for Standardization'. (2) Similar the BSD-'cal' program. (3) The time which is set as system time in the computer's clock. (4) The automatical conversion into the according Julian date is always done if the actual system date, that is based on the Gregorian calendar, is before the date of the Gregorian Reformation. (5) But 'GCAL_DATE_FORMAT' is only used in case no '--date-format=de|us|gb|TEXT' option is given.  File: gcal.info, Node: Fixed date options, Prev: Calendar options, Up: Options 3.1.1.4 Fixed date options .......................... '-v ARGUMENT' '--date-variable=ARGUMENT' Define "global" date variable which is visible in all referenced resource files (*note 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) (*note Fixed date options-Footnote-1::). In a definition, this name is trailed 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) (*note Fixed date options-Footnote-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' Causes the export of local date variables from one resource file to another resource file. *Note Date variables::, for more details. '-r ARGUMENT' '--text-variable=ARGUMENT' Define "global" text variable which is visible in all referenced resource files (*note 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. A text variable is defined as follows: * If the name of a text variable is trailed by the assignment operator character '=', all the text which appears at the right side of this assignment operator is assigned to this text variable. * If the name of a text variable is trailed by the assignment operator character '?', all the text which appears at the right side of this assignment operator is assumed as an external command and executed by Gcal. The output, which is created on the _standard output channel_ by the command run, is assigned to this text variable; and that in an interpreted manner. This means, Gcal interprets all special texts and references to other text variables which are contained in this output. *Note Text variables::, and *note Special Texts processed::, for further information. * If the name of a text variable is trailed by the assignment operator character ':', all the text which appears at the right side of this assignment operator is assumed as an external command and executed by Gcal. The output, which is created on the _standard output channel_ by the command run, is assigned to this text variable; and that in an uninterpreted manner. This means, Gcal does not interpret any special texts and references to other text variables which are contained in this output. See also *note Text variables::, and *note Special Texts processed::, for further details. Indeed, Gcal executes external commands only if the '--execute-command' option is given at program start-up. *Note Fixed date option '--execute-command': x-execute-command, for more details. The text which appears at the right side of one of the valid assignment operator characters may reference names of already defined global text variables. These references are converted to the according textual values just before the assignment is performed by Gcal. A global text variable is defined with an _empty contents_ in case no text appears at the right side of one of the valid assignment operator characters. For example: '--text-variable=$a=foo:$c=$a' respectively '-r $a=foo:$c=$a' stores the 'foo' text into the global text variable $A and into the global text variable $C. '--text-variable=$a\:foo:$c?bar' respectively '-r $a\:foo:$c?bar' stores the uninterpreted output of the 'foo' command into the global text variable $A, and the interpreted output of the 'bar' command into 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 another '\' (backslash) character, 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 another '\' (backslash) character, 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 another '\' (backslash) character, e.g. '\\_'. '--export-text-variables' Causes the export of local text variables from one resource file to another resource file. *Note Text variables::, for more details. '--adjust-value=ARGUMENT' Causes on the one hand, that the number given as ARGUMENT to the '--adjust-value' option is used as reference altitude to calculate the rise and set times by the Sun and Moon oriented special texts. The option argument must be a rational number in range -90.0...+90.0, which declares the angle distance in decimal degrees from the center of astronomical object to the horizon. For example, you can detect the time when the center of the Sun or the Moon is 20.5 decimal degrees below the horizon if you use '--adjust-value=-20.5'. And causes on the other hand, that the number that is given as ARGUMENT is used as factor for computing the shadow length of a vertical pole by the Sun oriented special texts. The option argument must be a rational number in range 0.0...+90.0, which declares the shadow length. For example, you can detect the time when the shadow length of vertical pole is three and a half times longer than the shadow length that appears at astronomical noon if you use '--adjust-value=3.5'. *Note Sun data::, and *note Moon data::, for further information. '--atmosphere=AIR-PRESSURE[,TEMPERATURE]' Set the base data of the Earth's atmosphere that is necessary to calculate the amount of "refraction"(3) (*note Fixed date options-Footnote-3::), that is used by the Sun and Moon oriented special texts. The option argument consists of one or two rational numbers, which are separated by a ',' character. The first number denotes the air pressure in millibar, and the second number specifies the air temperature in degree Celsius. The default value for the air pressure is 1013.25 millibar, and the default value for the temperature is 15.0 degree Celsius. For example, if you use '--atmosphere=1010,10', you define atmospheric conditions as they are existing for an air pressure of 1010 millibar and a temperature of 10 degree Celsius. If you set an air pressure value less or equal zero, no atmospheric refraction will be respected by the Sun and Moon oriented special texts, as for example done by '--atmosphere=0'. *Note Sun data::, and *note Moon data::, for further information. '--limit' Causes when calculating the rise and set times by the Sun oriented special texts for high latitudes, that a rise or set event which possibly occurs on a previous or next day, is not displayed as occurring on the actual day as it is done by default. At high latitudes, i.e. above the solar Arctic Circle, it is fact that no, or more than one sunrise or sunset happens during a day at definite dates of the year. As a special text basically leads in a single, atomical output, even it should result in several output in reality, Gcal puts such an event on a previous or next day. Then, data represented in this manner could be misinterpreted very easily. The following example is used to explain this. It calculates the time the astronomical twilight ends for the location Mu"nster, Germany, during some days in May 2000, and that with and without the '--limit' option in each case: $ gcal %20000506 -f/dev/null -cxl4+ \ > -#'0*d1#999_%s9+5158+00738,120' -| -| Sun, May 7th 2000: 23:52 -| Mon, May 8th 2000: 23:57 -| Tue, May 9th 2000: 00:01 -| Wed, May 10th 2000: 00:06 $ gcal %20000506 -f/dev/null -cxl4+ --limit \ > -#'0*d1#999_%s9+5158+00738,120' -| -| Sun, May 7th 2000: 23:52 -| Mon, May 8th 2000: 23:57 -| Tue, May 9th 2000: **:** -| Wed, May 10th 2000: **:** As one can see well in the above example, the output for the days since 9th May differs in that the times shown without the '--limit' option obviously exceeded the civil midnight time and actually cannot happen during these days, whereas no times are shown for the days since 9th May if the '--limit' option is used because the time circle is exceeded. Astronomically seen, it is the case that the end of the astronomical twilight is at 23:57 o'clock local time on 8th May, no end of astronomical twilight happens on 9th May because the center of the Sun's disk is always above 18 degrees (the reference altitude of the astronomical twilight) below a geometric horizon, but on 10th May at 00:01 o'clock local time, this reference altitude is passed again. Thus, the time that is detected for the 9th May has properly to be moved to the 10th May, et cetera, as it is expressed by the output that is created by using the '--limit' option. *Note Sun data::, for further information. '--cycle-end=ARGUMENT' Calculates the Sun and Moon oriented special texts that are dynamical, i.e. depending on the respective clocktime, for a series of clocktimes for the current day, i.e. determination is done for any time interval that can be individually defined by the user. Gcal is always put into such a "cycle mode" if the '--cycle-end' option is given at program start-up. The ARGUMENT of the '--cycle-end' option is syntactically according to the argument which may be given to the '--time-offset' option, thus 't|@|[t|@][+|-]MMMM|HH:[MM]'. *Note Calendar option '--time-offset=ARGUMENT': x-time-offset, for the detailed explanation of the preceding option argument. Thus, the '--cycle-end' option is used to fix the ending time of the time interval, whereas the '--time-offset' option is *implicitly* used to fix the starting time of the time interval, that is 0 o'clock by default(4) (*note Fixed date options-Footnote-4::). If values for the time interval are given to both above mentioned options that fall short of 0 o'clock, these values are automatically set to 0 o'clock. If values for the time interval are given that exceed 23:39 o'clock, these values are automatically set to 23:59 o'clock. The timestep value between the starting and the ending time of the time interval that is respected by Gcal is one minute by default. This value can at pleasure be changed by using the '--cycle-step' option. *Note Fixed date option '--cycle-step=ARGUMENT': x-cycle-step, for more details. You should always keep in mind that the use of the cycle mode is efficient only if the current time of the time interval is also part of that resource file line that has to be evaluated in this manner. Otherwise, it is difficult to find out unobjectionably lateron when displaying the data and times, which Sun or Moon oriented value resulted in what time. The following example shows how the topocentric elevation angle of the Sun for the location Mu"nster, Germany, is calculated during two days in April 2000, and that for the time interval 12:00 o'clock until 12:05 o'clock local time in each case: $ gcal %20000420 -Hno -f/dev/null -xdt -g::: \ > --here='0*d1#999_%ot+00+000_:_%oa+5158+00738,120' \ > --cycle-end=12:05 --time=12:00 -| -| Thu, Apr 20th 2000: +12h00': +045d58' -| Thu, Apr 20th 2000: +12h01': +046d03' -| Thu, Apr 20th 2000: +12h02': +046d07' -| Thu, Apr 20th 2000: +12h03': +046d12' -| Thu, Apr 20th 2000: +12h04': +046d17' -| Thu, Apr 20th 2000: +12h05': +046d22' -| ::: -| Fri, Apr 21st 2000: +12h00': +046d18' -| Fri, Apr 21st 2000: +12h01': +046d23' -| Fri, Apr 21st 2000: +12h02': +046d28' -| Fri, Apr 21st 2000: +12h03': +046d32' -| Fri, Apr 21st 2000: +12h04': +046d37' -| Fri, Apr 21st 2000: +12h05': +046d42' *Note Sun data::, and *note Moon data::, for further information. '--cycle-step=ARGUMENT' Changes the timestep value that is used between the starting and ending clocktime of the time interval, in which the Sun and Moon oriented special texts are calculated, that are dynamical, i.e. depending on the respective clocktime. *Note Fixed date option '--cycle-end=ARGUMENT': x-cycle-end, how to define such a time interval. Without the '--cycle-end' option, a '--cycle-step' option is completely ignored. It also does not enable Gcal's cycle mode. The ARGUMENT of the '--cycle-step' option is by change syntactically according to the argument which may be given to the '--time-offset' option, and that relative time offset value references based on the actual local time and Universal time cannot be made, respectively. Gcal always uses the amount of the given timestep value. Thus, the template for the argument that may be given to the '--cycle-step' option is '[+|-]MMMM|HH:[MM]'. *Note Calendar option '--time-offset=ARGUMENT': x-time-offset, for the detailed explanation of the preceding option argument. The timestep value between the starting and the ending time of the time interval that is respected by Gcal is one minute by default. The following example shows how the topocentric elevation angle of the Sun for the location Mu"nster, Germany, is calculated during two days in April 2000, and that for the time interval 10:00 o'clock until 17:00 o'clock local time with a timestep value of one hour and 15 minutes in each case: $ gcal %20000420 -Hno -f/dev/null -xdt -g::: \ > --here='0*d1#999_%ot+00+000_:_%o*a+5158+00738,120' \ > --cycle-end=10:00 --time=17:00 --cycle-step=1:15 -| -| Thu, Apr 20th 2000: +10h45': +38.038 -| Thu, Apr 20th 2000: +12h00': +45.962 -| Thu, Apr 20th 2000: +13h15': +49.665 -| Thu, Apr 20th 2000: +14h30': +47.882 -| Thu, Apr 20th 2000: +15h45': +41.267 -| Thu, Apr 20th 2000: +17h00': +31.633 -| ::: -| Fri, Apr 21st 2000: +10h45': +38.355 -| Fri, Apr 21st 2000: +12h00': +46.299 -| Fri, Apr 21st 2000: +13h15': +50.006 -| Fri, Apr 21st 2000: +14h30': +48.198 -| Fri, Apr 21st 2000: +15h45': +41.545 -| Fri, Apr 21st 2000: +17h00': +31.881 *Note Sun data::, and *note Moon data::, for further information. '--precise' The astronomical data and times that are created by the Sun and Moon oriented special texts, and the geographical data that is created by the distance and course angle oriented special text, respectively, are displayed by using a higher precision, i.e. according to the mode or style of representation and the type of special text, decimal values are displayed with more decimal places, or output of the time seconds part or the arcseconds part. *Note Sun data::, and *note Moon data::, likewise *note Geographical distance and course angle::, for further information. '--execute-command' Causes on the one hand, that shell command '%![ARGUMENT]' special texts are executed, and not displayed textually only. *Note Shell command '%![ARGUMENT]' special text: Shell Command, for more details. And causes on the other hand, that 'TVAR?[COMMAND]' and 'TVAR:[COMMAND]' text variable definitions is assigned the output of an external command, and not the text which contains the call of the external command. *Note Text variables::, for further information. '-D ARGUMENT' '--filter-day=ARGUMENT' Displays only those fixed dates, whose date is not excluded by the given ARGUMENT. *Note Date part of a line::, and likewise *note Exclusions without any argument '%?' special texts: Exclusions without any argument.. 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. *Note Date part of a line::, and likewise *note Exclusions with date argument '%?[DATE]' special texts: Exclusions with date argument.. 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(5) (*note Fixed date options-Footnote-5::) is matched by the given PATTERN. *Note Text part of a line::, and *note '%?'... special texts for text replacement: Replacements.. The PATTERN is a _regular expression_, as recognized by the Unix 'ed' line-editor. *Note Regular Expressions::, for further 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 another '\' (backslash) character, e.g. '\\_'. '--ignore-case' Ignores all case distinctions in both the completely expanded text and the PATTERN of the '--filter-text=PATTERN' option. *Note Fixed date option '--filter-text=PATTERN': x-filter-text. '--revert-match' Displays all those fixed dates, whose completely expanded text does not match the PATTERN of the '--filter-text=PATTERN' option. *Note Fixed date option '--filter-text=PATTERN': x-filter-text. '-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. *Note Error Code 1: x-1-Error-code. '-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. *Note Error Code 1: x-1-Error-code. '-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 is displayed which is only consisting of the date. '-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 is displayed which is only consisting of the date. '-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. *Note Error Code 1: x-1-Error-code. 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 is displayed which is only consisting of the date. 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 by using a special file search mechanism. *Note File searching mechanism: x-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_. If a single '-' character is given as file NAME, like '--resource-file=./foo+-+xyz' or '-F-', but not '-F -', Gcal reads and processes all input received from the _standard input channel_. 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 another '\' (backslash) character, 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 another '\' (backslash) character, 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 line as it may occur in a Gcal resource file (*note Structure of resource file::), and is always evaluated last *after* the processing of all resource files, so dealing with references to exported local date or text variables is enabled. 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. *Note Error Code 1: x-1-Error-code. For example, the call: gcal -# "0*d1su#99su.7 ^%Z" --here="#include " -y causes the implicit processing of the standard resource file just before the further resource file line '0*d1su#99su.7 ^%Z' and following '#include ' 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 another '\' (backslash) character, 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', 'e|E', 'J', 'k', 'o', 'Q', '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- -CZdekloQUzJaxA12+ and only *one* period defining fixed date period modifier may be given(6) (*note Fixed date options-Footnote-6::). 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'(7) (*note Fixed date options-Footnote-7::) must be given like: -c -t -w- -c -a -Ad -e -kloQUxz -C12+ -F foo.bar -dJZA -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(8) (*note Fixed date options-Footnote-8::), it is unnecessary to give a '-c|C[-]' respectively '-f|F NAME[+...]' short-style option(9) (*note Fixed date options-Footnote-9::) to activate the fixed date function of Gcal, because it is triggered implicitly by means of these modifiers / alias names. *Note 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 -fbio.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 *Note Biorhythm '%?[DATE]' special texts: Biorhythm, for more details. '--moonimage-lines=NUMBER' The height of the Moon phase text graphics --which can be created by means of the Moon phase text graphics '%Z[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_%Z__%O %19950407 -x --moon=8 -| -| Fri, Apr < 7th>1995: ( @@@@@ -| ( @@@@@@@@ -| ( @@@@@@@@@@@ -| ( @@@@@@@@@@@@ -| ( @@@@@@@@@@@@ -| ( @@@@@@@@@@@ -| ( @@@@@@@@@@ -| ( @@@@@@@ 42%+ *Note Moon phase '%[FORMAT]?[DATE]' special texts: Moon phase, for more details. 'a' '--include-resource-file-name' Extend fixed date text by the name of the resource file and the line number which the fixed date text comes from, e.g.: Mon, Jan 1st 1995: (`Eternal holiday list'#00003) New Year's day Mon, Jan 1st 1995: (.gcalrc#00987) 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 ... '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 by using the TEXT separator. If TEXT is not given, the built-in TEXT(10) (*note Fixed date options-Footnote-10::) is used for grouping, e.g.: $ gcal -Cxw -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 -Cxw -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 ... The TEXT may contain references to global date and text variables (*note Fixed date option '--date-variable=ARGUMENT': x-date-variable, and *note Fixed date option '--date-variable=ARGUMENT': x-text-variable.). Furthermore, all special texts which cause a text replacement may be used in the TEXT (*note '%?'... special texts for text replacement: Replacements.). Each time a '~' (tilde) or '^' (caret) 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 another '\' (backslash) character, e.g. '\\_'. All above mentioned facts are also valid for the '^' (caret) character. 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 another '\' (backslash) character, e.g. '\\_'. 'k' '--include-week-number' The leading date of a fixed date message is either extended by the ISO week number or the standard week number. *Note Calendar option '--starting-day=ARGUMENT': x-starting-day, *note Calendar option '--iso-week-number=yes|no': x-iso-week-number, and *note Aspects in Internationalization: Internationalization, for further details. '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(11) (*note Fixed date options-Footnote-11::), e.g.: $ gcal -cxo -| -| Sun, Nov 6th 1994: Text 1 -| Text 2 ... 'Q' '--suppress-fixed-dates-list-separator' Suppress displaying of the blank line which is always leading a fixed date list. For example, to cause Gcal to print only the number of days between 1st January 1970 and 1st January 1980, you can call the program like this: $ gcal -f /dev/null -QUx %19800101 -#0_%j-2440588 -| 3652 'U' '--suppress-date-part' Suppress displaying the leading date of a fixed date message, e.g.: $ gcal -cxU -| -| Text 1 -| Text 2 ... 'J' '--suppress-text-part' Suppress displaying the text part of a fixed date message, e.g.: $ gcal -cxJ -| -| Sun, Nov 6th 1994: -| Sun, Nov 6th 1994: ... 'x' '--exclude-fixed-dates-list-title' Suppress the title text line of the fixed date list. '--heading-text=TEXT' Changes the title text line of the fixed date list. Instead of displaying the default 'Fixed date list:' text, any other text can be used as heading text of the fixed date list, e.g.: $ gcal -cUJ --heading-text=Hello,_it_is_%K_,~%t__o'clock -| -| Hello, it is Sunday, -| 14:32 o'clock -| -| Sun, Nov 6th 1994: ... The TEXT may contain references to global date and text variables (*note Fixed date option '--date-variable=ARGUMENT': x-date-variable, and *note Fixed date option '--date-variable=ARGUMENT': x-text-variable.). Furthermore, all special texts which cause a text replacement may be used in the TEXT (*note '%?'... special texts for text replacement: Replacements.). Each time a '~' (tilde) or '^' (caret) 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 another '\' (backslash) character, e.g. '\\_'. All above mentioned facts are also valid for the '^' (caret) character. 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 another '\' (backslash) character, e.g. '\\_'. 'z' '--include-consecutive-number' Display consecutive numbers of fixed date messages. 'Z' '--zero-dates-only' Display only those dates, for which fixed dates do not 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"(12) (*note Fixed date options-Footnote-12::) 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. *Note Fixed date option '--list-mode': x-list-mode, 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), weeks start on Mondays and ISO week numbers are used! '--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 the given day number N) and ending on the 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 the 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 on _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. *Note Calendar option '--starting-day=ARGUMENT': x-starting-day, *note Calendar option '--iso-week-number=yes|no': x-iso-week-number, and *note Aspects in Internationalization: Internationalization, for more details. * E.g. 'gcal -c0w' displays all fixed dates which occur in the 53rd week of the previous year, in case the previous year has a 53rd week. If the previous year has no 53rd week, all fixed dates occurring in the 1st week of the actual year are displayed. * E.g. 'gcal -c6w' displays all fixed dates which occur in the 6th week of year. * E.g. 'gcal -c52w' displays all fixed dates which occur in the 52nd week of year. * E.g. 'gcal -c53w' displays all fixed dates which occur in the 53rd week of the actual year, in case the actual year has a 53rd week. If the actual year has no 53rd week, no fixed date messages are displayed and the program is terminated with an error code. *Note Error Code 126: x-126-Error-code. * E.g. 'gcal -c99w' displays all fixed dates which occur in the last week of the actual year, i.e. either the 52nd or the 53rd week. 'lNw' List dates starting yesterday or tomorrow (depending on the given week number N) and ending on the first respectively last day of given week number N == '0|1...52|53|99' of the actual year; the intensity level is the same as the '-cy' option. *Note Calendar option '--starting-day=ARGUMENT': x-starting-day, *note Calendar option '--iso-week-number=yes|no': x-iso-week-number, and *note Aspects in Internationalization: Internationalization, for further details. * 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 week. * E.g. 'gcal -cl3w' displays a list of all fixed dates which start on the first day of the 3rd 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 on 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 on 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. *Note Error Code 126: x-126-Error-code. * 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. *Note Error Code 126: x-126-Error-code. * E.g. 'gcal -c*d99sun' displays all fixed dates which occur on the last Sunday(13) (*note Fixed date options-Footnote-13::) of the actual year. 'l*dNWWW' List dates starting yesterday or tomorrow (depending on the value given in N) and ending on 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. *Note Error Code 126: x-126-Error-code. * 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. *Note Error Code 126: x-126-Error-code. * E.g. 'gcal -cl*d99sun' displays a list of all fixed dates which start on the 18th February and end on the last Sunday(14) (*note Fixed date options-Footnote-14::) of the actual year. '*wN[WWW]' Single date of weekday WWW of N'th == '0|1...52|53|99' week of the actual year; the intensity level is the same as the simple '-c' option. If no weekday WWW is given, the starting day of the week is assumed for the weekday WWW. *Note Calendar option '--starting-day=ARGUMENT': x-starting-day, *note Calendar option '--iso-week-number=yes|no': x-iso-week-number, and *note Aspects in Internationalization: Internationalization, for more details. * E.g. 'gcal -c*w0sun' displays all fixed dates which occur on the Sunday of the 52nd respectively 53rd week of the previous year. In case such a Sunday does not exist, no fixed date messages are displayed and the program is terminated with an error code. *Note Error Code 126: x-126-Error-code. * E.g. 'gcal -c*w16sun' displays all fixed dates which occur on the Sunday of the 16th week of the actual year. * E.g. 'gcal -c*w52sun' displays all fixed dates which occur on the Sunday of the 52nd week of the actual year. If the actual year has no Sunday of the 52nd week, no fixed date messages are displayed and the program is terminated with an error code. *Note Error Code 126: x-126-Error-code. * E.g. 'gcal -c*w53sun' displays all fixed dates which occur on the Sunday of the 53rd week of the actual year. If the actual year has no Sunday of the 53rd week, no fixed date messages are displayed and the program is terminated with an error code. *Note Error Code 126: x-126-Error-code. * E.g. 'gcal -c*w99sun' displays all fixed dates which occur on the last Sunday(15) (*note Fixed date options-Footnote-15::) of the actual year. 'l*wN[WWW]' List dates starting yesterday or tomorrow (depending on the value given in N) and ending on weekday WWW of N'th == '0|1...52|53|99' week of the actual year; the intensity level is the same as the '-cy' option. If no weekday WWW is given, the starting day of the week is assumed for the weekday WWW. *Note Calendar option '--starting-day=ARGUMENT': x-starting-day, *note Calendar option '--iso-week-number=yes|no': x-iso-week-number, and *note Aspects in Internationalization: Internationalization, for further details. * E.g. 'gcal -cl*w0sun' displays a list of all fixed dates which start on the Sunday of the 52nd respectively 53rd week of the previous year and end on the 16th February. In case such a Sunday does not exist, no fixed date messages are displayed and the program is terminated with an error code. *Note Error Code 126: x-126-Error-code. * E.g. 'gcal -cl*w16sun' displays a list of all fixed dates which start on the 18th February and end on the Sunday of the 16th week of the actual year. * E.g. 'gcal -cl*w52sun' displays a list of all fixed dates which start on the 18th February and end on the Sunday of the 52nd week of the actual year. If the actual year has no Sunday of the 52nd week, no fixed date messages are displayed and the program is terminated with an error code. *Note Error Code 126: x-126-Error-code. * E.g. 'gcal -cl*w53sun' displays a list of all fixed dates which start on the 18th February and end on the Sunday of the 53rd week of the actual year. If the actual year has no Sunday of the 53rd week, no fixed date messages are displayed and the program is terminated with an error code. *Note Error Code 126: x-126-Error-code. * E.g. 'gcal -cl*w99sun' displays a list of all fixed dates which start on the 18th February and end on the last Sunday(16) (*note Fixed date options-Footnote-16::) 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 on 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 on 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 on 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 on 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 the day N relative to that date of the actual year, which is referenced by the date variable DVAR; 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 on the N'th day relative to that date of the actual year, which is referenced by the date variable DVAR; 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' Single date of the N'th weekday WWW relative to that date of the actual year, which is referenced by the date variable DVAR; 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 on the N'th weekday WWW relative to that date of the actual year, which is referenced by the date variable DVAR; 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. *Note Calendar option '--starting-day=ARGUMENT': x-starting-day. * 'w' or '--week' long-style option List dates between the _starting day_ of the current week and the last day of the 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 the day after the current day of the current week and the last day of the 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 the _starting day_ of the current week and the day before the current day of the 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 the first day of the current month and the last day of the 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 the day after the current day of the current month and the last day of the 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 the first day of the current month and the day before the current day of the 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 the first day of the current year and the last day of the 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 the day after the current day of the current year and the last day of the 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 the first day of the current year and the day before the current day of the 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).  File: gcal.info, Node: Fixed date options-Footnotes, Up: Fixed date options (1) Except the date variable E which is internally reserved for the Easter Sunday's date, so it cannot be assigned or operated therefore. And except the date variable T which is internally reserved for today's date, so it likewise cannot be assigned or operated. (2) Or another global date variable name which is already defined, but *no* date given in the 'e|t|DVAR[+|-]N[WWW]', 'MMWWWN', or the '*d|wN[WWW]' format. (3) Refraction is an optical phenomenon caused by the Earth's atmosphere, which leads to an apparent raising of the location of a celestial body. The amount of refraction increases with growing air pressure and sinking temperature and vice-versa. (4) Correct, the '--time-offset' option has multiple modes of operation that are depending on the context of its use! (5) 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. (6) This means, exclusive the '--include-today' option respectively 'd' modifier, the '--list-mode' option or the 'l' modifier, and the '--leap-day=february|march' option. (7) Respectively their according long-style options. (8) Or their according alias names, like '--today', '--tomorrow'... (9) Or their according long-style options. (10) 'RC_GROUP_SEP' "" == empty line only. (11) Only if the '--alternative-format' option or the 'A' modifier is not given. (12) The 29th February. (13) That is either the 51st, 52nd or 53rd Sunday. (14) That is either the 51st, 52nd or 53rd Sunday. (15) That is either the Sunday of the 51st, 52nd or 53rd week. (16) That is either the Sunday of the 51st, 52nd or 53rd week.  File: gcal.info, Node: Response file, Next: Actual date modifier, Prev: Options, Up: Command line arguments 3.1.2 Response file ------------------- If a '@FILE' command line argument is given, 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* references to further response files. If such references to further response files are found, they are ignored. *Note Global option '--response-file=NAME': x-response-file, 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. *Note File searching mechanism: x-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 (*note 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  File: gcal.info, Node: Actual date modifier, Next: Commands, Prev: Response file, Up: Command line arguments 3.1.3 Actual date modifier -------------------------- It is allowed to use that date --instead of the actual system date-- which is defined by the '%DATE' command line argument. This means, fixed dates can be checked for *any* year and are respected in the same way, as if they would be fixed dates of the actual year. The date must be denoted in one of these formats: * 'YYYY[MM[DD|WWWN]]' * 'YYYY*d|wN[WWW]' * 'YYYY@e|t|DVAR[[+|-]N[WWW]]' * 'MONTH NAME[DD]' * 'WEEKDAY NAME[N]' * DD Some examples to this: *Please note:* The following examples assumes the actual system date is *Wednesday, the 17th February 1993* (19930217), weeks start on Mondays and ISO week numbers are used! The 'YYYY[MM[DD|WWWN]]' format: * 'gcal %1994' (== YYYY) The actual date is set to the date 17th February 1994 => 19940217. * 'gcal %1994Mar' * 'gcal %19943' * 'gcal %199403' (== YYYYMM) The actual date is set to the date 17th March 1994 => 19940317. * 'gcal %1994Mar3' * 'gcal %1994033' * 'gcal %19940303' (== YYYYMMDD) The actual date is set to the date 3rd March 1994 => 19940303. * 'gcal %1994MarWed3' * 'gcal %199403wed3' (== YYYYMMWWWN) The actual date is set to the date 3rd Wednesday in March 1994 (N == '1...5|9') => 19940316. * 'gcal %0' * 'gcal %00' * 'gcal %000' * 'gcal %0000' (== YYYY) The actual date remains unchanged => 19930217. * 'gcal %0000Mar' * 'gcal %00003' * 'gcal %000003' (== YYYYMM) The actual date is set to the date 17th March 1993 => 19930317. * 'gcal %0000Mar3' * 'gcal %0000033' * 'gcal %00000303' (== YYYYMMDD) The actual date is set to the date 3rd March 1993 => 19930303. * 'gcal %0000MarWed3' * 'gcal %000003wed3' (== YYYYMMWWWN) The actual date is set to the date 3rd Wednesday in March 1993 (N == '1...5|9') => 19930317. The 'YYYY*d|wN[WWW]' format: * 'gcal %1994*d10' (== 'YYYY*dN') The actual date is set to the date 10th absolute day in 1994 (N == '1...365|366|999') => 19940110. * 'gcal %1994*d10sun' (== 'YYYY*dNWWW') The actual date is set to the date 10th Sunday in 1994 (N == '1...51|52|53|99') => 19940306. * 'gcal %0*d10' (== 'YYYY*dN') The actual date is set to the date 10th absolute day in 1993 => 19930110. * 'gcal %0*d10sun' (== 'YYYY*dNWWW') The actual date is set to the date 10th Sunday in 1993 => 19930307. * 'gcal %1994*w10' (== 'YYYY*wN') The actual date is set to the date Monday of the 10th week in 1994 (N == '0|1...52|53|99') => 19940307. * 'gcal %1994*w10sun' (== 'YYYY*wNWWW') The actual date is set to the date Sunday of the 10th week in 1994 => 19940313. * 'gcal %0*w10' (== 'YYYY*wN') The actual date is set to the date Monday of the 10th week in 1993 => 19930308. * 'gcal %0*w10sun' (== 'YYYY*wNWWW') The actual date is set to the date Sunday of the 10th week in 1993 => 19930314. The 'YYYY@e|t|DVAR[[+|-]N[WWW]]' format: * 'gcal %1994@e' (== 'YYYY@e') The actual date is set to the date Easter Sunday 1994 => 19940403. * 'gcal %1994@e10' * 'gcal %1994@e+10' (== 'YYYY@e[+]N') The actual date is set to the date 10 days after Easter Sunday 1994 => 19940413. * 'gcal %1994@e-10' (== 'YYYY@e-N') The actual date is set to the date 10 days before Easter Sunday 1994 => 19940324. * 'gcal %0@e' * 'gcal %00@e' * 'gcal %000@e' * 'gcal %0000@e' (== 'YYYY@e') The actual date is set to the date Easter Sunday 1993 => 19930411. * 'gcal %0@e10' * 'gcal %0@e+10' (== 'YYYY@e[|]N') The actual date is set to the date 10 days after Easter Sunday 1993 => 19930421. * 'gcal %0@e-10' (== 'YYYY@e-N') The actual date is set to the date 10 days before Easter Sunday 1993 => 19930401. * 'gcal %1994@e3Wed' * 'gcal %1994@e+3Wed' (== 'YYYY@e[+]NWWW') The actual date is set to the date 3rd Wednesday after Easter Sunday 1994 => 19940420. * 'gcal %1994@e-3wed' (== 'YYYY@e-NWWW') The actual date is set to the date 3rd Wednesday before Easter Sunday 1994 => 19940316. * 'gcal %0@e3wed' * 'gcal %0@e+3wed' (== 'YYYY@e[+]NWWW') The actual date is set to the date 3rd Wednesday after Easter Sunday 1993 => 19930428. * 'gcal %0@e-3we' (== 'YYYY@e-NWWW') The actual date is set to the date 3rd Wednesday before Easter Sunday 1993 => 19930324. * 'gcal %1994@t' (== 'YYYY@t') The actual date is set to today's date in 1994 => 199400217. * 'gcal %1994@t10' * 'gcal %1994@t+10' (== 'YYYY@t[+]N') The actual date is set to the date 10 days after today's date in 1994 => 19940227. * 'gcal %1994@t-10' (== 'YYYY@e-N') The actual date is set to the date 10 days before today's date in 1994 => 19940207. * 'gcal %0@t' * 'gcal %00@t' * 'gcal %000@t' * 'gcal %0000@t' (== 'YYYY@t') The actual date is set to today's date => 19930217. * 'gcal %0@t10' * 'gcal %0@t+10' (== 'YYYY@t[|]N') The actual date is set to the date 10 days after today's date => 19930227. * 'gcal %0@t-10' (== 'YYYY@t-N') The actual date is set to the date 10 days before today's date => 19930207. * 'gcal %1994@t3Wed' * 'gcal %1994@t+3Wed' (== 'YYYY@t[+]NWWW') The actual date is set to the date 3rd Wednesday after today's date in 1994 => 19940309. * 'gcal %1994@t-3wed' (== 'YYYY@t-NWWW') The actual date is set to the date 3rd Wednesday before today's date in 1994 => 19940302. * 'gcal %0@t3wed' * 'gcal %0@t+3wed' (== 'YYYY@t[+]NWWW') The actual date is set to the date 3rd Wednesday after today's date => 19930310. * 'gcal %0@t-3we' (== 'YYYY@t-NWWW') The actual date is set to the date 3rd Wednesday before today's date => 19930127. * 'gcal -v a=0303 %1994@a' (== 'YYYY@DVAR') The actual date is set to the date 3rd March 1994 => 19940303. * 'gcal -v a=0303 %1994@a10' * 'gcal -v a=0303 %1994@a+10' (== 'YYYY@DVAR[+]N') The actual date is set to the date 10 days after 3rd March 1994 => 19940313. * 'gcal -v a=0303 %1994@a-10' (== 'YYYY@DVAR-N') The actual date is set to the date 10 days before 3rd March 1994 => 19940221. * 'gcal -v a=0303 %0@a' (== 'YYYY@DVAR') The actual date is set to the date 3rd March 1993 => 19930303. * 'gcal -v a=0303 %0@a10' * 'gcal -v a=0303 %0@a+10' (== 'YYYY@DVAR[+]N') The actual date is set to the date 10 days after 3rd March 1993 => 19930313. * 'gcal -v a=0303 %0@a-10' (== 'YYYY@DVAR-N') The actual date is set to the date 10 days before 3rd March 1993 => 19930221. * 'gcal -v a=0303 %1994@a3wed' * 'gcal -v a=0303 %1994@a+3wed' (== 'YYYY@DVAR[+]NWWW') The actual date is set to the date 3rd Wednesday after 3rd March 1994 => 19940323. * 'gcal -v a=0303 %1994@a-3wed' (== 'YYYY@DVAR-NWWW') The actual date is set to the date 3rd Wednesday before 3rd March 1994 => 19940216. * 'gcal -v a=0303 %0@a3wed' * 'gcal -v a=0303 %0@a+3wed' (== 'YYYY@DVAR[+]NWWW') The actual date is set to the date 3rd Wednesday after 3rd March 1993 => 19930324. * 'gcal -v a=0303 %0@a-3wed' (== 'YYYY@DVAR-NWWW') The actual date is set to the date 3rd Wednesday before 3rd March 1993 => 19930210. The 'MONTH NAME[DD]' format: * 'gcal %April' (== MONTH NAME) The actual date is set to the date 17th April 1993 => 19930417. * 'gcal %april3' * 'gcal %april03' (== MONTH NAME DD) The actual date is set to the date 3rd April 1993 => 19930403. The 'WEEKDAY NAME[N]' format: * 'gcal %Friday' (== WEEKDAY NAME) The actual date is set to the date Friday of current week in February 1993 => 19930219. * 'gcal %Friday2' * 'gcal %Friday02' (== WEEKDAY NAME N) The actual date is set to the date 2nd Friday in February 1993 (N == '1...5|9') => 19930212. The DD format: * 'gcal %3' * 'gcal %03' (== DD) The actual date is set to the date 3rd February 1993 => 19930203.  File: gcal.info, Node: Commands, Prev: Actual date modifier, Up: Command line arguments 3.1.4 Commands -------------- * Menu: * Single commands:: How to use a Single command. * 3-Month mode commands:: How to use a 3-Month mode command. * Lists of commands:: How to use a List of commands. * Ranges of commands:: How to use a Range of commands. The commands control the periods Gcal respects. They can be partitioned into four major classes, namely "single" commands, special "3-Month mode" commands, "lists" of commands and "ranges" of commands. Single commands and special 3-Month mode commands only create *one* calendar sheet, ranges of commands or list of commands create *more than one* calendar sheet per program run. If a list of commands is given, Gcal works sequentially on each single command given in the list, one by one. A range of commands is expanded first by Gcal and after expansion is done, Gcal works sequentially on each single command produced during the internal expansion step. For understanding the notation used in the text below, MM is either a number, a month name or one of the special 3-Month mode commands '.', '..', '.+' and '.-'. No lists or ranges of months or years can be created in case a special 3-Month mode command is given. The range of MM is valid from 1 to 12 or valid from January to December. Both notations may be mixed. Month names may be abbreviated up to their first three characters. YYYY is a number. The range of YYYY is valid from 1 to 9999. A range ('MM-MM' or 'YYYY+YYYY' or ...) must consist of two elements. A list ('MM,...,MM' or 'YYYY;...;YYYY' or ...) must contain two elements minimum and may have any number of elements. Here is a list of all ranges of commands, lists of commands and other command separator characters: * The '-' character is the _range of months_ separator. * The ',' character is the _list of months_ separator. * The '+' character is the _range of years_ separator. * The ';' character is the _list of years_ separator. * The '/' character is the _month of year_ separator. * The ':' character is the _fiscal year_ separator.  File: gcal.info, Node: Single commands, Next: 3-Month mode commands, Prev: Commands, Up: Commands 3.1.4.1 Single commands ....................... 'NOTHING' Current month of current year, called "single month mode" in the further context. 'MONTH NAME' Selected month of current year, e.g.: gcal may gcal OCTOBER gcal ja 'YYYY' Selected year, called "single year mode" in the further context, e.g.: gcal 1992 But there is an exception of this general rule. If the specified year number is less or equal twelve, Gcal assumes that a selected month of the current year is wanted. If you want to have a selected year less or equal twelve, call Gcal like this gcal 1:6 or like this gcal 6+6 to obtain the year AD 6. 'MM YYYY' 'MM/YYYY' Single month of selected year, e.g.: gcal 9 1992 gcal 9/1992 gcal Nov 1777 gcal Nov/1777 ':' Single fiscal year, starting on the _actual month_ of the _actual year_ and ending on month _actual month_-1 of the _actual year_+1, called "implicit fiscal year" in the further context, e.g.: gcal : 'MM:' Single fiscal year, starting on month MM of the _actual year_ and ending on month MM-1 of the _actual year_+1, called "explicit fiscal year" in the further context, e.g.: gcal 6: gcal feb: gcal NOVEMBER: ':YYYY' Single fiscal year, starting on the _actual month_ of year YYYY and ending on month _actual month_-1 of year YYYY+1, also called "explicit fiscal year" in the further context, e.g.: gcal :1999 'MM:YYYY' Single fiscal year, starting on month MM of year YYYY and ending at month MM-1 of year YYYY+1, called "explicit fiscal year" too in the further context, e.g.: gcal 7:1999 gcal oct:1992 gcal February:1777  File: gcal.info, Node: 3-Month mode commands, Next: Lists of commands, Prev: Single commands, Up: Commands 3.1.4.2 3-Month mode commands ............................. '.' Previous, actual and next month of the current year, e.g.: gcal . '. YYYY' Previous, actual and next month of selected year, e.g.: gcal . 1992 '..' Actual quarter of the current year, e.g.: gcal .. '.. YYYY' Actual quarter of selected year, e.g.: gcal .. 1992 '.+' Actual and next two months of the current year, e.g.: gcal .+ '.+ YYYY' Actual and next two months of selected year, e.g.: gcal .+ 1992 '.-' Actual and previous two months of the current year, e.g.: gcal .- '.- YYYY' Actual and previous two months of selected year, e.g.: gcal .- 1992  File: gcal.info, Node: Lists of commands, Next: Ranges of commands, Prev: 3-Month mode commands, Up: Commands 3.1.4.3 Lists of commands ......................... 'MM,...,MM' List of specified months of the current year, e.g.: gcal 1,5,12 gcal 3,1,5,3 gcal june,9,jan 'MM/YYYY,...,MM/YYYY' List of months in specified year, e.g.: gcal 1/1992,5,12/2001 gcal june/1991,9/1801,jan 'MM,...,MM YYYY' List of specified months of selected year, e.g.: gcal 3,7 1999 gcal 1,dec,july 1777 'YYYY;...;YYYY' List of specified years, e.g.: gcal 1992;1777;1899 'MM:YYYY;...;MM:YYYY' List of specified fiscal years, e.g.: gcal 7:1999;8:1992;April:3 *Other valid lists:* 'MM,MM/YYYY,...' Mixed list of months consisting of: 'MM MM/YYYY' gcal 6,8,3/1999,feb/3,january 'MM:;MM:YYYY;...' Mixed list of fiscal years of the given / actual year consisting of: 'MM: :YYYY MM:YYYY YYYY' gcal 3:;1994;february:1999;:1777;JAN: 'MM:;MM:;...' List of fiscal years of the actual year consisting of: 'MM:' gcal 3:;august:;DEC:  File: gcal.info, Node: Ranges of commands, Prev: Lists of commands, Up: Commands 3.1.4.4 Ranges of commands .......................... 'MM-MM' Range of current months, e.g.: gcal 3-7 gcal 11-8 gcal MAY-dec gcal 12-aug 'MM/YYYY-MM/YYYY' Range of months of year, e.g.: gcal 3/1991-july/1992 gcal dec/1994-3 gcal sep-dec/2000 'MM-MM YYYY' Range of specified months of selected year, e.g.: gcal 3-7 1999 gcal nov-3 1777 gcal aug-dec 1992 'MM-MM YYYY+YYYY' Range of specified months of selected years, e.g.: gcal 3-7 1999+2001 gcal nov-3 1777+1600 gcal aug-dec 1992+1994 'MM YYYY-YYYY' 'MM/YYYY-YYYY' Range of specified month of selected years, e.g.: gcal AUGUST 1494-1497 gcal 3/1993-1999 gcal nov/3-1777 'YYYY+YYYY' Range of specified years, e.g.: gcal 1992+1994 'MM:YYYY+MM:YYYY' Range of specified fiscal years, e.g.: gcal 7:1999+8:1992 gcal aug:1992+july:1999  File: gcal.info, Node: The GCAL environment variable, Prev: Command line arguments, Up: Invoking Gcal 3.2 The 'GCAL' environment variable =================================== The environment variable 'GCAL' can hold a set of default options for Gcal (*note Environment Variable 'GCAL': x-GCAL.). These options are interpreted first at program start-up, and some can be overwritten by explicit command line arguments or values found in a '@FILE' response file. *Note Command line arguments::, and *note Response file::, for further information. For example: * for *sh*: GCAL="-i @color -b 3"; export GCAL * for *csh*: setenv GCAL "-i @color -b 3" * for *MS-DOS*: set GCAL=-i @color -b 3 On Vax/VMS, the name of the environment variable is 'GCAL_OPT', to avoid a conflict with the symbol 'GCAL' set for invocation of the program. For example: * for *VMS*: define GCAL_OPT "-i @color -b 3"  File: gcal.info, Node: Eternal Holidays, Next: Fixed Dates, Prev: Invoking Gcal, Up: Top 4 Eternal Holidays ****************** The _eternal holiday list_ is created only for dates after AD 29. It is assumed that the Gregorian Reformation has occurred from 10th till 22nd March 1924 for all Christian-Orthodox holidays, which are inserted into the _eternal holiday list_. The _eternal holiday list_ can be displayed in different ways: If you start Gcal without an explicit (fiscal) date and the _eternal holiday list_ argument (*note Calendar option '--holiday-list[=long|short]': x-holiday-list.), e.g.: gcal -qfr --holiday-list gcal -qfr -n gcal -qfr -n : Gcal displays all holidays of the eternal holiday list that refer to the actual / fiscal year, without a leading calendar sheet. In case you start Gcal with the _eternal holiday list_ argument and a month (plus an additional year), e.g.: gcal -qbe --holiday-list july gcal -qbe -n july gcal -qbe -n 7 1993 gcal -qbe -n 7/1993 Gcal displays a month calendar sheet of the specified month (of year), and trailing those holidays of the eternal holiday list that refer to the given month (of the given year). If you start Gcal with the _eternal holiday list_ argument and a simple year (or an explicit fiscal year), e.g.: gcal -qbe --holiday-list 1993 gcal -qbe -n 1993 gcal -qbe -n july: gcal -qbe -n :1993 gcal -qbe -n 7:1993 Gcal displays a year calendar sheet of the specified year or fiscal year, and trailing all holidays of the eternal holiday list that refer to the given year or fiscal year. In case you start Gcal with the _eternal holiday list_ argument and a special 3-Month mode command (*note 3-Month mode commands::), e.g.: gcal -qbe --holiday-list . gcal -qbe -n . gcal -qbe -n .. gcal -qbe -n .+ gcal -qbe -n .- Gcal displays the according three months by using a fixed-style year calendar sheet, and trailing all holidays of the eternal holiday list that refer to these months. In case you start Gcal with the _eternal holiday list_ argument and a _list_ or _range_ of commands, it produces the according series of eternal holiday lists. *Note Lists of commands::, and *note Ranges of commands::, for further details. Some annotations: The following table lists all those characters which are used for marking an entry in the eternal holiday list, i.e. directly lead its date: *Character* *Description* '+' Legal holiday which is valid in the whole country. Is automatically provided with highlighting sequences respectively marking characters. '#' Legal holiday which is valid in major parts of the whole country. Is automatically provided with highlighting sequences respectively marking characters. '*' Legal holiday which is valid in minor parts of the whole country. Is not provided with highlighting sequences respectively marking characters. '-' Other holiday which serves for memorial or remarking purposes only. Is not provided with highlighting sequences respectively marking characters. By using the '--cc-holidays=CC[+...]' option, it is possible to provide the eternal holiday list with additional country specific holidays. Thereafter, those country specific holidays are part of the list. *Note Calendar option '--cc-holidays=CC[+...]': x-cc-holidays. For example: --cc-holidays=be+fr causes the inclusion of Belgian and French holidays into the eternal holiday list. The inclusion of country specific holidays is not coupled to Gcal's internationalization (*note Aspects in Internationalization: Internationalization.). This means, no country specific holidays are automatically respected at program start-up for a definite territory or country. So it is up to the user to decide which country specific holidays are included into the eternal holiday list. *Note The 'GCAL' environment variable: The GCAL environment variable, for information how Gcal can be induced to include the country specific holidays automatically into the eternal holiday list at program start-up. The free selection of the different country specific holidays can be used very ingenious in case information of a definite territory or country is required. Assuming a business man from Germany proposes to travel to Italy in November and needs the information which legal holidays are celebrated there on working days so he is able to plan his dates. This can be determined as follows: gcal -f /dev/null -q IT -D r -cE nov  File: gcal.info, Node: Fixed Dates, Next: Todays Calendar, Prev: Eternal Holidays, Up: Top 5 Fixed Dates ************* * Menu: * Resource file:: How to use a Resource file. * Resource file examples:: Examples of Resource file entries. This chapter describes how to use the _fixed date_ feature of Gcal. Normally, the fixed dates are stored line by line in a so-called resource file (*note Resource file::). On request, Gcal searches any of such resource files for those fixed dates, that are happening in the period for which a fixed date list is wanted. If Gcal has found any fixed dates that are happening in the requested period, the program displays them collectively as a fixed date list. Thus, each time you execute Gcal in simple single month mode, i.e. no explicit month, year or fiscal year is given in the command line, but the _fixed date_ argument, e.g.: gcal --list-of-fixed-dates gcal -c it checks the resource file for dates and processes those that refer to the actual system date (==today). Then Gcal displays all fixed dates found in the resource file which refer to the actual day (week/month/year) of the actual year, without a leading calendar sheet. Some more examples: gcal --ast -ce gcal -cw- gcal -c-m gcal -c-y- gcal -qbe -jcb -c-et gcal --zod -cey- gcal -qfr -jc -cey The fixed date list can be embraced by different other leading and trailing output, respectively, that is also created by Gcal: In case you start Gcal with the _fixed date_ argument and/or a month and/or an explicit year or fiscal year; respectively with the special 3-Month mode command, e.g.: gcal -c july gcal -qfr -ce 7 1994 gcal -c-y 7/1994 gcal -c 7:1993 gcal -c 1993 gcal -c . gcal -c .+ Gcal displays a (three) month / year calendar sheet of the specified respectively actual month / year, and trailing those fixed dates found in the resource file that refer to the given period; the intensity level is the same as the '-cy' option if the period refers to a year or fiscal year or to a three month period, respectively, is the same as the '-cm' option if the period refers to a month. If you start Gcal without an explicit date and the _fixed date_ argument *in connection with* the _eternal holiday list_ argument, e.g.: gcal -qbe -n -c gcal -qbe -n -Cm gcal -qbe -n -Cl1224 gcal -qbe -n -cl3+ gcal -qbe -n -4- then Gcal displays all fixed dates found in the resource file that refer to the requested period, and after that all holidays of the eternal holiday list that refer to the whole actual year, without a leading calendar sheet. *Note Eternal Holidays::, for more details how to use an _eternal holiday list_. Annotation to previous examples: Each time you execute Gcal in simple single year mode, i.e. no explicit month, year or fiscal year is given in the command line, but the _fixed date_ argument (with optional modifiers) and the _number of blocks_ argument (*note Calendar option '--blocks=NUMBER': x-blocks.), e.g.: gcal -c --blocks=3 gcal -C-em -b 3 --cc-holidays=be gcal -c-t -b 6 -jc it checks the resource file for dates and processes those that refer to the actual system date (==today). Gcal displays a leading year calendar sheet, and all fixed dates found in the resource file that refer to the actual day (week/month/year) of the actual year. You can list fixed dates of past, present or future month/years, too. This can be done on the one hand, if you use the '%DATE' option in the way you require (*note Actual date modifier::), and on the other hand, if a command respectively a _list_ or _range_ of commands is used. For example: 'gcal -qbe -c -n- 1993' Lists all fixed dates of entire 1993 in ascending order, and the eternal holiday list of entire 1993 in descending order; the intensity level is the same as the '-cy' option. 'gcal -c- july:1993' Lists all fixed dates of fiscal year --starting in July 1993 and ending in June 1994-- in descending order; the intensity level is the same as the '-cy' option. 'gcal -qbe -ce july 1993' Lists all fixed dates of July 1993 inclusive all eternal holidays merged into this list in ascending order; the intensity level is the same as the '-cm' option. 'gcal -qbe -c-e -n 1993+1996' Lists all fixed dates of entire 1993, 1994, 1995 and 1996 (series of years) inclusive all eternal holidays merged into this list in descending order, and the eternal holiday list related to all above years in ascending order; the intensity level is the same as the '-cy' option. 'gcal -cm %19920317' Lists all fixed dates of March 1992 in ascending order. 'gcal -qbe %1994@e -n -c' Lists all fixed dates of Easter Sunday 1994 in ascending order, and the eternal holiday list of entire 1994 in ascending order.  File: gcal.info, Node: Resource file, Next: Resource file examples, Prev: Fixed Dates, Up: Fixed Dates 5.1 Resource file ================= * Menu: * Structure of resource file:: How to write a Resource file. * Date part of a line:: How to write the Date part. * Further date part attributes:: What are Further date part attributes? * Text part of a line:: How to write the Text part. * Special Texts processed:: What are '%?'... Special Texts? * Comment line:: What is a Comment line? * Include directives:: What are Include directives. * Date variables:: How Date variables can be used. * Text variables:: How Text variables can be used. This section describes how to use a "resource file" that contains fixed dates and appointments. The name of the standard resource file is 'HOME/.gcalrc'(1) (*note Resource file-Footnote-1::). Gcal uses a special file searching mechanism: 1. The Gcal program scans the file directories which are referenced in the environment variable 'GCALPATH' (*note Environment Variable 'GCALPATH': x-GCALPATH.) to find the standard resource file. The 'GCALPATH' environment variable contains a (':') colon-separated(2) (*note Resource file-Footnote-2::) list of file directories. If no such environment variable is defined and set, Gcal omits this step. 2. If the above action fails, Gcal looks for the standard resource file in the file directory which is referenced in the environment variable 'HOME'. If no 'HOME' environment variable is defined and set, Gcal also omits this step. *Note Environment Variable 'HOME': x-HOME. 3. If the above action fails, Gcal inspects the _user data_ file directory(3) (*note Resource file-Footnote-3::) to find the standard resource file. This file directory is a file directory relative to the 'HOME' file directory. If an environment variable 'GCAL_USR_DATADIR' is set, Gcal appends the contents of this environment variable to the contents of the 'HOME' environment variable, and tries to use this file directory instead of using the burned-in default name of this file directory (*note Environment Variable 'GCAL_USR_DATADIR': x-GCAL_USR_DATADIR.). If no 'HOME' environment variable is defined and set, Gcal of course also omits this step. 4. If all above actions fail, Gcal inspects the _system data_ file directory(4) (*note Resource file-Footnote-4::) to find the standard resource file. This file directory is a file directory absolute to the _root_/$PREFIX file directory. If an environment variable 'GCAL_SYS_DATADIR' is set, Gcal tries to use this file directory instead of using the burned-in default name of this file directory (*note Environment Variable 'GCAL_SYS_DATADIR': x-GCAL_SYS_DATADIR.). If the standard resource file is not found during the steps 1...4 of the file searching mechanism, no fixed date messages will be created! In case the '--debug=abort' option is given and no standard resource file is found during the steps 1...4 of the file searching mechanism, the Gcal program will be aborted with an error code. *Note Error Code 118: x-118-Error-code, and *note Global option '--debug=abort': x-debug-abort, for more information. If a '-f|F NAME[+...]' respectively '--resource-file=NAME' command line argument is given, a file NAME will be used for the resource file instead of the standard resource file. *Note Fixed date option '--resource-file=NAME': x-resource-file. Annotation: An "extended file name" contains one ore more '/' (slash) characters(5) (*note Resource file-Footnote-5::) and denotes a file, whose fixed access path either starts from the root file directory, like '/foo/bar/file', or from the actual file directory, like './bar/file' or '../bar/file'. If NAME is an extended file name: * In case file NAME is found, Gcal will use it. * In case file NAME is not found, Gcal will not use it. A "simple file name" denotes a file, whose access-path either does not start from the root file directory or from the actual file directory, like 'file' or 'bar/file'. If NAME is a simple file name: * Gcal tries to find this file NAME by using the previously explained file searching mechanism.  File: gcal.info, Node: Resource file-Footnotes, Up: Resource file (1) On MS-DOS, OS/2 and some other operating systems, the name of the _standard resource file_ is 'HOME/gcalrc' (without a leading '.'). (2) On MS-DOS, OS/2 and some other operating systems, another character will be used, e.g. ';' on MS-DOS and OS/2. (3) Normally 'HOME/share/gcal'. (4) Normally '/usr/local/share/gcal' or '$PREFIX/share/gcal'. (5) Operating systems like MS-DOS or OS/2 use the '\' (Backslash) character for separating a file directory from a file name.  File: gcal.info, Node: Structure of resource file, Next: Date part of a line, Prev: Resource file, Up: Resource file 5.1.1 Structure of resource file -------------------------------- First of all, a Gcal resource file is a plain ASCII text file. This text file may be created by any text editor or by redirecting the _standard output channel_ to a file, e.g.: $ echo '19930217 Text'>> resource-file A special --but simple-- line structure is required so Gcal is able to interpret its contents. Each fixed date entry in a resource file must be split into two parts, namely a _date part_ and an optional _text part_ which *must* be separated by *one* "whitespace"(1) (*note Structure of resource file-Footnote-1::) character minimum. It is unnecessary to give a whitespace separator character if no _text part_ is specified. A line must always end with a '\n' (newline) character, except it is the last line of a resource file. The maximum length of a line is limited to 'INT_MAX'(2) (*note Structure of resource file-Footnote-2::) characters. A newline character is automatically appended to the line if the _standard output channel_ is directed to a file. A newline character is appended to the typed line in a text editor window if it is completed by pressing the key. In case the used text editor does not generate the newline character in this way, it should be set to this mode of operation, otherwise this text editor is useless for creating Gcal resource files. The line structure of fixed date entries is: DATE PART [ _whitespace_ TEXT PART ] _newline_ or more concrete, e.g.: YYYY[MM[DD|WWWN]] [ _whitespace_ TEXT ] _newline_ or much more concrete, e.g.: 19940217 Hi, I'm the text! Besides fixed date entries, a resource file may contain further entries like: Comments... ; A remarked line ; A formatted and multi-line \ remark Include directives... #include #include "FILE NAME" Date variable assignments respectively operations... DVAR=NOTHING DVAR=MMDD DVAR=MMWWWN DVAR=*dN[WWW] DVAR=*wN[WWW] DVAR=DVAR[[+|-]N[WWW]] DVAR++ DVAR-- DVAR+=[+|-]N DVAR-=[+|-]N DVAR+=NWWW DVAR-=NWWW Text variable assignments respectively operations... TVAR=[TEXT] TVAR?[COMMAND] TVAR:[COMMAND] TVAR++ TVAR-- TVAR+=[+|-]N TVAR-=[+|-]N Text variable references... TVAR Text variable references at the beginning of a Gcal resource file line may only be used if it is ensured that they are expanded to a valid Gcal resource file line.  File: gcal.info, Node: Structure of resource file-Footnotes, Up: Structure of resource file (1) For example _Tab_, _Space_, _Form-feed_ and similar characters. (2) Normally, this is for example equivalent to a value of 32,767 == (2^15)-1 on a 16-Bit machine architecture; to a value of 2,147,483,648 == (2^31)-1 on a 32-Bit machine architecture etc.  File: gcal.info, Node: Date part of a line, Next: Further date part attributes, Prev: Structure of resource file, Up: Resource file 5.1.2 Date part of a line ------------------------- The structure of a "date part" --which gives Gcal the information at which date a fixed date happens-- of a line in the resource file is *either*: 'YYYY[MM[DD|WWWN]]' 'YYYY' (4 digits), is the year including the century (range '0000...9999'). Leading zeroes are required in case the defined year is less than '1000' and other components of the date part are trailing the year. 'MM' (2 digits or 3 characters), is the month (range '00...12' or '99', respectively 'Jan', 'Feb'...). A given '99' for the month means the last month of the year (== December). Leading zeroes are required in case the defined month is less than '10' and other components of the date part are trailing the month. 'DD' (2 digits), is the day (range '00...31' or '99'). A given '99' for the day means the last day of the month. Leading zeroes are required in case the defined day is less than '10' and other components of the date part are trailing the day. 'WWW' (2...3 characters), is a short weekday name (range 'Mon...Sun'). 'N' (1 digit), is the N'th weekday WWW of month (range '1...5' or '9'). * N == '1...5' N'th weekday WWW of month. * N == '9' Last weekday WWW of month. *or*: 'YYYY*d|wN[WWW]' 'YYYY' (4 digits), is the year including the century (range '0000...9999'). Leading zeroes are required in case the defined year is less than '1000' and other components of the date part are trailing the year. '*d' (2 characters), is the reference to an ordinary date. '*w' (2 characters), is either the reference to a date of an ISO week or the reference to a date of a standard week. 'N' (1...3 digits), is the value in days or in weeks, the fixed date occurs. A given '99' connected with a short weekday name means the last weekday WWW of the year. A given '999' connected with '*d' means the last day of a year, i.e. the 31st December. If the computed date does not occur in the year, i.e. exceeds the year bounds, the fixed date message is suppressed. 'WWW' (2...3 characters), is a short weekday name (range 'Mon...Sun'). *or*: 'YYYY@e|t|DVAR[[+|-]N]' 'YYYY' (4 digits), is the year including the century (range '0000...9999'). Leading zeroes are required in case the defined year is less than '1000' and other components of the date part are trailing the year. '@e' (2 characters), is the reference to the Easter Sunday's date. '@t' (2 characters), is the reference to today's date. '@DVAR' (2 characters), is the reference to a date variable. '[+|-]N' (1...4 alphanumeric characters), is the optional displacement value in days, the fixed date occurs relative to the Easter Sunday's date, relative to today's date, or relative to a date variables date. A given '-999' means the first day of a year, i.e. the 1st January. A given '+999' or '999' means the last day of a year, i.e. the 31st December. If the computed date does not occur in the year, i.e. exceeds the year bounds, the fixed date message is suppressed. *or*: 'YYYY@e|t|DVAR[+|-]NWWW' 'YYYY' (4 digits), is the year including the century (range '0000...9999'). Leading zeroes are required in case the defined year is less than '1000' and other components of the date part are trailing the year. '@e' (2 characters), is the reference to the Easter Sunday's date. '@t' (2 characters), is the reference to today's date. '@DVAR' (2 characters), is the reference to a date variable. '[+|-]NWWW' (3...7 alphanumeric characters), is the optional displacement value in weekdays, the fixed date occurs relative to the Easter Sunday's date, relative to today's date, or relative to a date variables date. A given '-99' means the first weekday WWW of the year. A given '+99' or '99' means the last weekday WWW of the year. If the computed date does not occur in the year, i.e. exceeds the year bounds, the fixed date message is suppressed. *Please note:* * If YYYY is specified as '0000', '000', '00' or '0': The month and day are assumed to be annual events and the _text part_ will be displayed for any year. * If MM is not defined or specified as '00' or '0': The day is assumed to be a monthly event for the specified year and the _text part_ will be displayed for any month. * If DD is not defined or specified as '00' or '0': Each day is assumed to be a daily event for the specified year and month and the _text part_ will be displayed for any day. * If WWW is specified as a short (2...3 characters) weekday name: The given weekday name is assumed to be a weekly event for the specified year and month and the _text part_ will be displayed for any week. *Hint:* Preceding table ease misleading assumption that a fixed date, which shall be valid for any days of the year, can be defined with a date part only consisting of a '0'. But that is only correct in that the so-defined fixed date is respected in some few fixed date periods only (*note Coding Scheme::). If a fixed date is defined which shall be respected for any days of the year, it must be designed with a '0*d1#999' date part. For example, the same is likewise valid for fixed dates which represent a weekly event, and that shall be valid during all the year. Instead of creating such a fixed date with a '000000WWW' date part (that is likewise respected in some few fixed date periods only), it should be defined with a date part like '0*d1WWW#99WWW.7'. *Note Ranges of days::, and *note Appearance factor of days::, for further information.  File: gcal.info, Node: Further date part attributes, Next: Text part of a line, Prev: Date part of a line, Up: Resource file 5.1.3 Further date part attributes ---------------------------------- * Menu: * Lists of days:: How Lists of days can be used. * Ranges of days:: How Ranges of days can be used. * Repetition factor of days:: How to use such a factor. * Appearance factor of days:: How to use such a factor. The date part --which is leading a fixed date text of a Gcal resource file line-- may be provided with further attributes, that are either specifications of lists of days or ranges of days, which provide the information at which date a fixed date happens. More further attributes are the repetition factor as well as the appearance factor. All of those date parts in a Gcal resource file line, which are structured as follows, may generally be provided with further attributes: * 'YYYYMM...' * 'YYYY*d|w...' * 'YYYY@e|t|DVAR...' *Attention:* If the date part is supplied with further attributes and the year of the fixed date is not given in a concrete manner, i.e. the year YYYY is set to zero, such kinds of fixed dates are *only* computed correctly in simple year bounds --which means during a current year-- and not in fixed dates shown after the current year has changed, e.g. in *fiscal years*.  File: gcal.info, Node: Lists of days, Next: Ranges of days, Prev: Further date part attributes, Up: Further date part attributes 5.1.3.1 Lists of days ..................... A list of days is used to define recurrent fixed dates and to use only one line in the resource file for them, instead of using several lines in a resource file needed for defining these recurrent fixed dates separately. A list of days is specified by a ',' separator character; it must contain two elements minimum and may have any number of elements. A single element of the list may not be set to a zero value and be not concrete therefore. (This would not make any sense in this context.) Assuming a fixed date shall always occur on the 1st and the 15th day in every month of the year 1996, e.g. 'Tax returns', one solution would be on the one hand a fixed date entry in the resource file for the 1st of the month and another entry for the 15th of the month, which would be a total of two entries in the resource file for such a fixed date. On the other hand, this expense can be reduced to a total of only one entry in the resource file by using a list of days, which is likewise valid for the 1st and the 15th day in every month, that is 19960001,15 Tax returns The use of lists of days in the date part is permitted as follows: * 'YYYYMMDD|WWW|WWWN,[MM]DD|[MM]WWW|[MM]WWWN ...' * 'YYYY*d|wN|NWWW,N|NWWW ...' * 'YYYY@e|t|DVAR,|[+|-]N[WWW],[+|-]N[WWW] ...' Some examples to this: '000001fr3,12,99,mon,apr14,993,julfri3,08fr' In every year in January: on the 3rd Friday, on the 12th, on the last day of the month and on every Monday. And in every year: on the 14th April, on the 3rd December, on the 3rd Friday in July and on every Friday in August. '199600mon,fr,12' In the year 1996 in every month: on every Monday, on every Friday and on the 12th. '0*d1,1fr,999,17mo' In every year: on the first day of the year, on the 1st Friday of the year, on the last day of the year and on the 17th Monday of the year. '1996*w1fr,1,17mo,99fr' In the year 1996: on Friday of the 1st week, on Monday of the first week, on Monday of the 17th week and on Friday of the last week. '0@a,+1,-3,5,+4fr,2fr,-10sa' In every year: on the date of the date variable A, one day after the date of A, three days before the date of A, five days after the date of A, four Fridays after the date of A, two Fridays after the date of A and ten Saturdays before the date of A. '1996@e+1,-3,5,+4fr,2fr,-10sa' In the year 1996: one day after the Easter Sunday's date, three days before the Easter Sunday's date, five days after the Easter Sunday's date, four Fridays after the Easter Sunday's date, two Fridays after the Easter Sunday's date and ten Saturdays before the Easter Sunday's date. '1996@t+1,-3,5,+4fr,2fr,-10sa' In the year 1996: one day after today's date, three days before today's date, five days after today's date, four Fridays after the today's date, two Fridays after today's date and ten Saturdays before today's date.  File: gcal.info, Node: Ranges of days, Next: Repetition factor of days, Prev: Lists of days, Up: Further date part attributes 5.1.3.2 Ranges of days ...................... A range of days just as a list of days is used to define recurrent fixed dates and to use only one line in the resource file for them, instead of using several lines in a resource file needed for defining these recurrent fixed dates separately. A range of days is specified by a '#' separator character and must consist of two elements, namely the starting day and the final day. The starting day and likewise the final day of the range may not be set to a zero value and be not concrete therefore. (This would not make any sense in this context.) Assuming a fixed date shall always occur during the 1st and the 15th day (inclusive) in every month of the year 1996, e.g. 'Inside work', one solution would be on the one hand a fixed date entry in the resource file for the 1st of the month, another one for the 2nd of the month until the 15th of the month, which would be a total of 15 entries in the resource file for such a fixed date(1) (*note Ranges of days-Footnote-1::). On the other hand, this expense can be reduced to a total of only one entry in the resource file by using a range of days, which is likewise valid for the 1st until the 15th day in every month, that is 19960001#15 Inside work The use of ranges of days in the date part is permitted as follows: * 'YYYYMMWWW#WWW' * 'YYYYMMDD|WWWN#[MM]DD|[MM]WWWN' * 'YYYY*d|wN[WWW]#N[WWW]' * 'YYYY@e|t|DVAR[[+|-]N[WWW]]#[+|-]N[WWW]' Preceding table shows that the starting and ending day can only be specified by using date formats of the same type left and right the '#' separator character. Thus, it is not explicitly possible to define a range of days by using different types of date formats, means, fixed date entries like: 1996@e+3fr#1012 In the year 1996: every day that appears within the\ period of the date 3 Fridays after Easter Sunday's\ date until the 12th October. cannot be defined like this. But this problem can be solved by using an inclusive date period '%i[DATE][#[DATE]]' special text for defining the ending day of the range(2) (*note Ranges of days-Footnote-2::), and the fixed dates are simply produced until the last day of the year, e.g.: 1996@e+3fr#+999 In the year 1996: every day that appears within the\ period of the date 3 Fridays after Easter Sunday's\ date until the 12th October.%i0#19961012 *Note Inclusive date period '%i[DATE][#[DATE]]' special text: Inclusive date period, for more details. Some examples to this: '199600mon#fr' In the year 1996 in every month: every day that appears within the day sequence 'mon, tue, wed, thu, fri'. '000000fr#mon' In every year in every month: every day that appears within the day sequence 'fri, sat, sun, mon'. '000001fr3#12' In every year in January: every day that appears within the period of the 3rd Friday of the month until the 12th of the month. '00000112#fr3' In every year in January: every day that appears within the period of the 12th of the month until the 3rd Friday of the month. '00000112#augfri3' In every year: every day that appears within the period of the 12th January until the 3rd Friday of August. '0000sep13#99fr9' In every year: every day that appears within the period of the 13th September until the last Friday of December. '0*d1#1fr' In every year: every day that appears within the period of the 1st day of the year until the 1rd Friday of the year. '0*d99fr#333' In every year: every day that appears within the period of the last Friday of the year until the 333rd day of the year. '1996*w1fr#17mo' In the year 1996: every day that appears within the period of the Friday of the 1st week until the Monday of the 17th week. '0@a#+4fr' In every year: every day that appears within the period of the date of the date variable A until the 4th Friday after the date of the date variable A. '1996@e-3#+9fr' In the year 1996: every day that appears within the period of the date three days before the Easter Sunday's date until the 9th Friday after the date of the Easter Sunday's date. '1996@t-3#+99fr' In the year 1996: every day that appears within the period of the date three days before today's date until the last Friday of the year.  File: gcal.info, Node: Ranges of days-Footnotes, Up: Ranges of days (1) Apart from the possibility, that a list of days can be used in such a case. (2) Implicit solution.  File: gcal.info, Node: Repetition factor of days, Next: Appearance factor of days, Prev: Ranges of days, Up: Further date part attributes 5.1.3.3 Repetition factor of days ................................. A repetition factor of days is used to define recurrent fixed dates and to use only one line in the resource file for them, instead of using several lines in a resource file needed for defining these recurrent fixed dates separately. A repetition factor of days (':N') is specified by a ':' character and must trail the day field --which must have a concrete value in a date part of a Gcal resource file and has not been set to a zero value-- respectively either lead or trail an appearance factor of days. Except ranges of days or fixed dates which occur only on a definite weekday like '199600mon Every Monday 1996', such a repetition factor may be specified in all possible codings of date parts of a Gcal resource file. This factor may have values in range '1...999'. Values greater than the real difference between the date of the first occurrence of the fixed date and the last day of the year are always reduced to this real difference. In this sense, any value greater '365'(1) (*note Repetition factor of days-Footnote-1::) means a repetition factor until the last day of the year. Assuming a fixed date shall always occur on the 15th day in every month of the year 1996 and covers a period of four days (inclusive the 15th itself), e.g. 'Co-workers training', one solution would be on the one hand a fixed date entry in the resource file for the 15th of the month and the succeeding three days, which would be a total of four entries in the resource file for such a fixed date(2) (*note Repetition factor of days-Footnote-2::). On the other hand, this expense can be reduced to a total of only one entry in the resource file by using a repetition factor of days, which is likewise valid for the 15th and the three days which succeed the 15th in every month, namely 19960015:4 Co-workers training The use of repetition factors of days in the date part is permitted as follows: * 'YYYYMMDD:N|WWWN:N' * 'YYYY*d|wN:N|NWWW:N' * 'YYYY@e|t|DVAR[[+|-]N[WWW]]:N' * 'YYYYMMDD:N|WWWN:N,[MM]DD:N|[MM]WWWN:N ...' * 'YYYY*d|wN:N|NWWW:N,N:N|NWWW:N ...' * 'YYYY@e|t|DVAR:N,|[+|-]N[WWW]:N,[+|-]N[WWW]:N ...' Some examples to this: '000001fr3:11' In every year in January: every day that appears within the period of the 3rd Friday of the month and the succeeding ten days. '00000112:3' In every year in January: every day that appears within the period of the 12th of the month and the succeeding two days. '00000112:3,fr3:5' In every year in January: every day that appears within the period of the 12th of the month and the succeeding two days, and that appears within the period of the 3rd Friday of the month and the succeeding four days. '0*d1:1' In every year: every day that appears within the period of the 1st day of the year and no succeeding day. '0*d1:2' In every year: every day that appears within the period of the 1st day of the year and the succeeding day. '0*d99fr:333' In every year: every day that appears within the period of the last Friday of the year and the succeeding 332 days. Well, in cases a fixed date exceeds the year bounds, it will only be produced until the last day of the year. '1996*w1fr:17' In the year 1996: every day that appears within the period of the Friday of the 1st week and the succeeding 16 days. '0@a:4' In every year: every day that appears within the period of the date of the date variable A and the succeeding three days. '1996@e-3:9' In the year 1996: every day that appears within the period of the date three days before the Easter Sunday's date and the succeeding eight days. '1996@t-3:9' In the year 1996: every day that appears within the period of the date three days before today's date and the succeeding eight days.  File: gcal.info, Node: Repetition factor of days-Footnotes, Up: Repetition factor of days (1) Or '366' in leap years. (2) Apart from the possibility, that a list or a range of days can be used in such a case.  File: gcal.info, Node: Appearance factor of days, Prev: Repetition factor of days, Up: Further date part attributes 5.1.3.4 Appearance factor of days ................................. An appearance factor of days is used to define a concrete displacement of recurrent fixed dates. An appearance factor of days ('.N') is specified by a '.' character and must trail the day field --which must have a concrete value in a date part of a Gcal resource file and has not been set to a zero value-- respectively either lead or trail a repetition factor of days. Except fixed dates which occur only on a definite weekday and are not specified by using a range of days, like '199600mon Every Monday 1996', such an appearance factor may be specified in all possible codings of date parts of a Gcal resource file. This factor may be specified with each single element of lists of days, but in a range of days, this factor may trail *only* the final day of the range. Well, the use of such an appearance factor is only helpful if it is either given in a range of days, or if it is given together with a repetition factor. This factor may have values in range '1...999'. Fixed dates will be ignored if the factor takes values greater than the real difference between the date of the occurrence of the fixed date and the last day of the year, respectively the end of the period, for which the fixed dates shall either be produced or respected. Assuming a fixed date shall always occur on the 15th day in every month of the year 1996 and covers a period of seven days (inclusive the 15th itself), but shall only be respected every third day (i.e. two days have to be skipped at a time) within this period, e.g. 'Training-college', one solution would be on the one hand a fixed date entry in the resource file for the 15th of the month, for the 18th and for the 21st of the month, which would be a total of three entries in the resource file for such a fixed date(1) (*note Appearance factor of days-Footnote-1::). On the other hand, this expense can be reduced to a total of only one entry in the resource file by using an appearance factor of days, which is likewise valid for the 15th, the 18th and the 21st in every month, namely on the one hand by the use of a repetition factor 19960015:7.3 Training-college or on the other hand by the use of a range of days 19960015#21.3 Training-college The use of appearance factors of days in the date part is permitted as follows: * 'YYYYMMDD:N.N|DD.N:N' * 'YYYYMMWWWN:N.N|WWWN.N:N' * 'YYYY*d|wN:N.N|N.N:N' * 'YYYY*d|wNWWW:N.N|NWWW.N:N' * 'YYYY@e|t|DVAR[[+|-]N[WWW]]:N.N' * 'YYYY@e|t|DVAR[[+|-]N[WWW]].N:N' * 'YYYYMMDD:N.N|WWWN:N.N,[MM]DD:N.N|[MM]WWWN:N.N ...' * 'YYYYMMDD.N:N|WWWN.N:N,[MM]DD:N.N|[MM]WWWN.N:N ...' * 'YYYY*d|wN:N.N|NWWW:N.N,N:N.N|NWWW:N.N ...' * 'YYYY*d|wN.N:N|NWWW.N:N,N.N:N|NWWW.N:N ...' * 'YYYY@e|t|DVAR:N.N,|[+|-]N[WWW]:N.N,[+|-]N[WWW]:N.N ...' * 'YYYY@e|t|DVAR.N:N,|[+|.]N[WWW].N:N,[+|.]N[WWW].N:N ...' * 'YYYYMMWWW#WWW.N' * 'YYYYMMDD|WWWN#[MM]DD|[MM]WWWN.N' * 'YYYY*d|wN[WWW]#N[WWW].N' * 'YYYY@e|t|DVAR[[+|-]N[WWW]]#[+|-]N[WWW].N' Some examples to this: '000001fr3:11.3' In every year in January: every day that appears within the period of the 3rd Friday of the month and the succeeding ten days, but only every 3rd day within this period (skip two days at a time). '00000112:3.2' In every year in January: every day that appears within the period of the 12th of the month and the succeeding two days, but only every 2nd day within this period (skip one day at a time). '00000112:3.2,fr3:5.3' In every year in January: every day that appears within the period of the 12th of the month and the succeeding two days, but only every 2nd day within this period (skip one day at a time), and that appears within the period of the 3rd Friday of the month and the succeeding four days, but only every 3rd day within this period (skip two days at a time). '0*d1:10.1' In every year: every day that appears within the period of the 1st day of the year and the succeeding nine days, and this for any day within this period (skip zero days at a time). '0*d1:2.5' In every year: every day that appears within the period of the 1st day of the year and the succeeding day, but only every 5th day within this period (skip four days at a time). Well, the succeeding days (only one in this example) of the starting day (1st day of year) are not respected, because the next day resulted by the appearance factor exceeds the final day (resulted by the repetition factor) of the period. '0*d99fr:333.61' In every year: every day that appears within the period of the last Friday of the year and the succeeding 332 days, but only every 61st day within this period (skip 60 days at a time). Well, in cases a fixed date exceeds the year bounds, it will only be produced until the last day of the year. No succeeding day (332 in this example) of the starting day (last Friday of the year) is respected by reason of the displacement value of 60 days, because the next day resulted by the appearance factor exceeds the final day (resulted by the repetition factor) of the period (the last day of the year). '1996*w1fr:17.8' In the year 1996: every day that appears within the period of the Friday of the 1st week and the succeeding 16 days, but only every 8th day within this period (skip seven days at a time). '0@a:4.3' In every year: every day that appears within the period of the date of the date variable A and the succeeding three days, but only every 3rd day within this period (skip two days at a time). '1996@e-3:9.4' In the year 1996: every day that appears within the period of the date three days before the Easter Sunday's date and the succeeding eight days, but only every 4th day within this period (skip three days at a time). '1996@e3#-20sun.15' In the year 1996: every day that appears within the period of the date three days after the Easter Sunday's date until the 20th Sunday before the Easter Sunday's date, but only every 15th day within this period (skip 14 days at a time). '1996@t3#-20sun.15' In the year 1996: every day that appears within the period of the date three days after today's date until the 20th Sunday before today's date, but only every 15th day within this period (skip 14 days at a time).  File: gcal.info, Node: Appearance factor of days-Footnotes, Up: Appearance factor of days (1) Apart from the possibility, that a list of days can be used in such a case.  File: gcal.info, Node: Text part of a line, Next: Special Texts processed, Prev: Further date part attributes, Up: Resource file 5.1.4 Text part of a line ------------------------- The "text part" of a line in a resource file can be any text you like. Indeed, some characters have a special meaning ('%', '$', '~', '^' and '\') and must be protected should the occasion arise that special character combinations are formed with them(1) (*note Text part of a line-Footnote-1::) which might be used only textually. If the text part contains characters that are used for highlighting the text or format it for a printer, or characters with decimal values above 127 in the code table of the used character set(2) (*note Text part of a line-Footnote-2::) not produced by Gcal itself, such characters respectively sequences are displayed by Gcal in an *uninterpreted* manner! For that very reason, it can happen that the output of such characters can potentially create problems with the used screen device driver software and/or the external pager program, likewise mailing of such texts by means of electronic mail. So-called 'NUL' characters(3) (*note Text part of a line-Footnote-3::) may also occur in the text part, but they only cause the suppression of all succeeding characters in the line. In my opinion, it makes no perceptible sense to output these 'NUL' characters uninterpreted, so they are used for remarking purposes only; besides, the 'NUL' characters would lead to the same problems as already mentioned above. A line of the resource file is continued on the next line if a '\-\n' (backslash-newline) character sequence is found, e.g.: The line: 000000Mo Every Monday and the lines: 000000Mo \ Every \ Monday produce the same output and are essentially equivalent. Furthermore, you can break-up the text of a "long text part" at any place you like. The term _long_ means in this context, that the text displayed by Gcal would override the right text margin of the screen respectively break-up at that margin. Each time a '~' (tilde) character is found in the text part, this character is replaced by a real '\n' (newline) character. Such texts will be displayed by Gcal in a formatted manner at a left margin, this means, they are lead by a definite number of space characters. 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 another '\' (backslash) character, e.g. '\\~'. Each time a '^' (caret) character is found in the text part, this character is also replaced by a real '\n' (newline) character. Such texts will be displayed by Gcal at column 1, this means, they are not lead by space characters. The rules for protecting the '^' character are the same as the rules used for protecting the '~' character. The resource file 'lbrk-1.rc' $ cat lbrk-1.rc -| ; Hi, I'm `lbrk-1.rc' and alive now -| ; -| 0 I know I'm a short text -| 0 I hope I'm long enough~here, a line break-up~\ -| and again~and now for the last time... -| 0 I hope I'm also long enough^here, a line break-up\ -| ~and again^and now for the last time... -| 0 Am I another short text? Dunno... is displayed as follows: $ gcal %00000101 --resource-file=./lbrk-1.rc --disable-highlighting -| -| Fixed date list: -| -| Sat, Jan 1st 2000: Am I another short text? Dunno... -| Sat, Jan 1st 2000: I hope I'm also long enough -| here, a line break-up -| and again -| and now for the last time... -| Sat, Jan 1st 2000: I hope I'm long enough -| here, a line break-up -| and again -| and now for the last time... -| Sat, Jan 1st 2000: I know I'm a short text Because _whitespace_ characters are used to separate the date part from the text part(4) (*note Text part of a line-Footnote-4::), it is not possible to supply the text part with leading _whitespace_ characters without further ado. If one or more _whitespace_ characters shall lead the text part, this can be arranged by protecting the *first* of these _whitespace_ characters (and that by placing a '\' (backslash) character before it), e.g. '\ ' if it is a space character. By means of such a character sequence, Gcal notices that the text trailing the '\' character is no longer used for separating purposes, but is member of the text part. Gcal skips this specific, marking backslash character (avoids its output) and processes the rest of the line as usual. The following example should be enough to elucidate the above facts. The resource file 'wspc-1.rc' $ cat wspc-1.rc -| 0 BANG BANG -| 0 bogus -| 0 bogomips -| 0 \hello world -| 0 \ main(){for(;;)fork();} -| 0 \ sh $0 & $0 & -| 0 \ a \ b \\ c \\\ d -| 0 What happens now?\ -| ~0 \ This! -| 0 What happens now?\\ -| ~0 \ That! is displayed as follows: $ gcal --resource-file=./wspc-1.rc --disable-highlighting -| -| Fixed date list: -| -| Wed, Jun 14th 2000: sh $0 & $0 & -| Wed, Jun 14th 2000: a \ b \\ c \\\ d -| Wed, Jun 14th 2000: main(){for(;;)fork();} -| Wed, Jun 14th 2000: BANG BANG -| Wed, Jun 14th 2000: What happens now?~0 \ That! -| Wed, Jun 14th 2000: What happens now? -| 0 \ This! -| Wed, Jun 14th 2000: \hello world -| Wed, Jun 14th 2000: bogomips -| Wed, Jun 14th 2000: bogus  File: gcal.info, Node: Text part of a line-Footnotes, Up: Text part of a line (1) Like '%i', '$a'... (2) These are potentially non-printable. (3) That is the character with the value zero in the code table of the used character set. (4) These are internally skipped and remain undisplayed therefore.  File: gcal.info, Node: Special Texts processed, Next: Comment line, Prev: Text part of a line, Up: Resource file 5.1.5 '%?'... Special Texts --------------------------- The text part of a resource file line may be provided with different special texts which may occur in any(1) (*note Special Texts processed-Footnote-1::) number and order. All these texts start with a '%' (percent) character which may be protected by a leading '\' (backslash) character if the '%' (percent) character itself is wanted to be used in the text part, e.g. '\%'. The '%' character is mostly trailed by an optional format instruction, (see *note Format Instruction::, for the detailed description of the format instruction and its components), and then trailed by a distinguishing mark --which defines the kind of the special text to be used-- and if it is a letter, Gcal accepts it *case-sensitive*. The purpose of these special texts is mainly to suppress output of fixed dates in definite cases, either, or to provide them with particular texts respectively to start external commands. *Note Description of all '%?'... Special Texts: Special Texts, for a complete description of all usable special texts, and *note Summary of all '%?'... Special Texts: Special Texts Summary, for an according short-list of them. For example, the resource file 'speci-1.rc' $ cat speci-1.rc -| ; I'm veracious very special :) -| ; -| 0 1. Today is %>1u*K , %>02&*D %U %Y ! -| 0 2. It's the %>03&*N day of the year. -| 0 3. The actual week number is: %k . -| 0 4. Currently, it's %t* o'clock, Mr. %-USER . -| 0 5. Hurry up with your work~\ -| by reason sunrise is at %o+5158+00738+61,2: . is displayed as follows (in case today's date is the 4th October 1996): $ gcal --resource-file=speci-1.rc -H no -ox -| -| Mon, Oct 4th 1999: 1. Today is MONDAY, 04th October 1999! -| 2. It's the 277th day of the year. -| 3. The actual week number is: 40. -| 4. Currently, it's 06:53pm o'clock, Mr. esken. -| 5. Hurry up with your work -| by reason sunrise is at 07:33.  File: gcal.info, Node: Special Texts processed-Footnotes, Up: Special Texts processed (1) Rational!  File: gcal.info, Node: Comment line, Next: Include directives, Prev: Special Texts processed, Up: Resource file 5.1.6 Comment line ------------------ A line(1) (*note Comment line-Footnote-1::) beginning with a ';' (semicolon) character in the resource file is treated as a remark and will not be used by Gcal! Any _whitespace_ characters may lead the remark character. *Note Text part of a line::, for information how a 'NUL' character can be used for remarking purposes in a text part. The following example of the 'remark.rc' resource file --which *only* consists of remarks-- should be enough to elucidate the above facts: $ cat remark.rc -| ;00001031 ^\ -| .......^\ -| ;::;::,^\ -| ;::;::;,^\ -| ;;::;;:;;,^\ -| .vmnv\%vnv\%,.;;;:::;;:;;, .,vnmv\%vnn,^\ -| vmmmn\%vmmnv\%vnmmnv\%;;;;;;\%nmmmnv\%vnmv\%vmmv^\ -| vmmnv\%vmmmnv\%vnmmmmmnv\%;:\%nmmmmmmnv\%vnm\%vnmmmv^\ -| vmmnv\%vmmmnv\%vnmmmmmmmmnv\%nmmmmmmmmnv\%vnmm\%vnmmmv^\ -| vmmnv\%vmmmnv\%vnmmmmmmmmnv\%vmmmmmmmmmmnv\%vnmv\%vnmmmv^\ -| vmmnv\%vmmmnv\%vnmm;mmmmmmnv\%vmmmmmmmm;mmnv\%vnmv\%vnmmmv,^\ -| vmmnv\%vmmmnv\%vnmm;' mmmmmnv\%vmmmmmmm;' mmnv\%vnmv\%vnmmmv,^\ -| vmmnv\%vmmmnv\%vn;; mmmmnv\%vmmmmmm;; nv\%vnmmv\%vnmmmv^\ -| vmmnv\%vmmmmnv\%v;; mmmnv\%vmmmmm;; v\%vnmmmv\%vnmmmv^\ -| vmmnv\%vmmmmnv\%vnmmmmmmmmm;; mmmmmmmmmnv\%vnmmmmv\%vnmmmv^\ -| vmmnv\%vmmmmnv\%vnmmmmmmmmmm;; mmmmmmmmmmnv\%vnmmmmv\%vnmmmv^\ -| vmmnv\%vmmmmnv\%vnmmmmmmmmmmnv;,mmmmmmmmmmmmnv\%vn;mmmv\%vnmmmv^\ -| vmmnv\%vmmm. nv\%vnmmmmmmmmmnv\%;mmmmmmmmmmmnv\%vn; mmmv\%vnmmmv^\ -| `vmmnv\%vmm, v\%vnmmmmmmmmmmnv\%nmmmmmmmmmmnv\%v; mmv\%vnnmmv'^\ -| vmmnv\%vmm;, \%vnmmmmmmmmmnv\%nmmmmmmmmmnv\%;' mv\%vnmmmmv^\ -| vmmnv\%vmm;;, nmmm;' mmmm;;' mv\%vnmmmmv'^\ -| `vmmnv\%vmmm;;,. mmnvv;, mmv\%vnmmmmv'^\ -| `vmmnv\%vmmmmnv\%vnmmmmmmmmnvvnmmmmmmnv\%vnmmmv\%vnmmmmv'^\ -| `vmvn\%vmmmmnv\%vnmmmmmmmnvvnmmmmmnv\%vnmmmm\%vnmmmv'^\ -| `v\%mmmmmn%:\%vnmnmmmmn\%vnmmmnv%:\%vnmv\%nmv' -| -| ; A remarked line -| ; Also a remarked line -| ; A \ -| formatted and multi-line \ -| remark  File: gcal.info, Node: Comment line-Footnotes, Up: Comment line (1) Physically and logically.  File: gcal.info, Node: Include directives, Next: Date variables, Prev: Comment line, Up: Resource file 5.1.7 Include directives ------------------------ You may add '#include' directives in a resource file for searching and loading further resource files(1) (*note Include directives-Footnote-1::). An '#include' directive tells Gcal to suspend reading the current resource file and read one other resource file before continuing. The directive is a line in the resource file that looks like this template: #include _whitespace_ ARGUMENT [_whitespace_] _newline_ The ARGUMENT can either be "FILE NAME" or(2) (*note Include directives-Footnote-2::) One _whitespace_ character minimum is required between '#include' and the ARGUMENT. The ARGUMENT may be trailed by extra _whitespace_ characters and the line must always end with a '\n' (newline) character, except it is the last line of a resource file. Let us inspect a example which is a bit more concrete: 1. #include "foo/bar" 2. #include The first '#include' directive tells Gcal to load the file 'bar' in the file directory 'foo' from the actual file directory. If this fails, Gcal tries to load this file by using steps 1...4 of the previously explained mechanism used for searching files (*note File searching mechanism: x-File-searching-mechanism.). The second '#include' directive tells Gcal to load the file 'bar' from the user respectively system data file directory by using steps 3...4 of the previously explained mechanism used for searching files. It is not allowed to include files which have a fixed access path starting from the root file directory by such an '#include' directive like '#include ' or '#include '; just as the specification of a single or an extended file name containing a disk/drive specifier(3) (*note Include directives-Footnote-3::), because the resulting path name(4) (*note Include directives-Footnote-4::) would not be a valid file name any longer. Included files may include other files again. But the nesting level of included files is limited on the one hand by the amount of usable working storage of the computer, and on the other hand by the value which is given by the operating system respectively the compiler for the number of files which can be opened simultaneously. Recursive includes(5) (*note Include directives-Footnote-5::) or cyclic includes(6) (*note Include directives-Footnote-6::) are not permitted, because such backward references would produce an infinite loop in the program internally! Gcal recognizes such situations and terminates immediately with a fatal error. *Note Error Code 119: x-119-Error-code, for more information. If an included resource file cannot be found and no '--debug=abort' option is given, processing of the resource file containing the '#include' continues.  File: gcal.info, Node: Include directives-Footnotes, Up: Include directives (1) A mechanism similar the method which is used by the C Preprocessor. (2) Thus, a file name which is embraced by '""' or '<>'. (3) Even if operating systems like MS-DOS or OS/2 permits such a disk/drive specification on principle. (4) A path name lead by the user respectively system data file directory name. (5) The included file tries to include itself again. (6) The included file is included again by another file that occurs at a deeper place in such a chain.  File: gcal.info, Node: Date variables, Next: Text variables, Prev: Include directives, Up: Resource file 5.1.8 Date variables -------------------- Gcal respects _global_ and/or _local_ date variables which may be used either in the date part of a Gcal resource file line, or which may be part of a special text in the text part of a Gcal resource file line. This means, up to *24* user-defined date variables can be set and referenced during program execution. *Note Fixed date option '--date-variable=ARGUMENT': x-date-variable, for more information how global date variables can be used. A date variable name DVAR consists of a single, case-insensitive letter(1) (*note Date variables-Footnote-1::). In a definition, this name is trailed 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) (*note Date variables-Footnote-2::), e.g.: a=1127 c=a stores the 27th November into the local date variable A and into the local date variable C. You should always remember that date variables can only be referenced in a line if they are already defined, because Gcal processes a resource file line by line. Only local date variables can store dynamical dates given in the 'MMWWWN', 'DVAR[+|-]N[WWW]' or '*d|wN[WWW]' format, e.g.: a=03su2 b=JunMon9 c=b-3 d=c+4Sa x=*d10 y=*d10fri z=*w3Su which means, date variable A stores the date of second Sunday in March and B stores date of last Monday in June. The date variable C stores the date which is three days before the date of the last Monday in June and this date is set in the date variable D to that date which is four Saturdays after the date of C. The date variable X stores the date of the 10th absolute day of the year (== 10th January). Y stores the date of the 10th Friday of the year, and the assignment to Z is the date of the Sunday which occurs in the 3rd week of the year. *Caution:* These kinds of assignments to date variables are *only* computed correctly in simple year bounds --which means during a current year-- and not in fixed dates shown after the current year has changed, e.g. in *fiscal years*. Date variables which are defined in a resource file are always local and only respected in this specific file, and that file which is included by it. This means for the included file, that *all* local variables of the caller are visible. The included file itself may define its own local variables in its own name-space, which are not exported to caller on return. All other definitions of date variables(3) (*note Date variables-Footnote-3::) are always global. If a resource file line contains a reference to a date variable which is not locally defined in that file, Gcal will try to use the global values held by this variable. If this fails because no global definition of this date variable is given, Gcal will not process this line. If the simple '--debug' respectively '--debug=internal' option is given, informational messages for each undefined date variable will be shown on the _standard error channel_ (*note Global option '--debug=internal': x-debug-internal.). If the '--debug=abort' option is given, the Gcal program will be aborted with an error code when the first undefined global date variable reference occurs. *Note Error Code 113: x-113-Error-code, and *note Global option '--debug=abort': x-debug-abort, for further information. A local date variable can be deleted. This means, that this date variable is no longer valid in its local scope and be undefined therefore. So it is possible to use its potentially defined global value in succeeding lines if this date variable is referenced there. The following example of the resource file 'dvar-1.rc' elucidates these facts: $ cat dvar-1.rc -| ; dvar-1.rc -| ; -| z=0202 -| 0@z The local assigned date to `z' -| z= -| 0@z The global assigned date to `z' -| z=0404 -| 0@z The local assigned date to `z' So Gcal creates the following output: $ gcal %1777 -H no -x -v z=1212 -f ./dvar-1.rc -y -| -| Sun, Feb 2nd 1777: The local assigned date to `z' -| Fri, Apr 4th 1777: The local assigned date to `z' -| Fri, Dec 12th 1777: The global assigned date to `z' $ gcal %1777 -H no -x -f ./dvar-1.rc -y -| -| Sun, Feb 2nd 1777: The local assigned date to `z' -| Fri, Apr 4th 1777: The local assigned date to `z' Only advanced users should apply the '--export-date-variables' option which causes that the actual incarnation of a local date variable --which was previously defined in a resource file and not in an included file-- is being exported to further resource files instead of using its global value, in case that date variable is not locally defined in that further resource file. *Note Include directives::, for more details. But be aware, the use of this option could create unwanted results, because the order of processing the resource files is an important entity in managing the '--export-date-variables' option, so it is not recommended to use it. You, the user, must exactly know what you are doing when applying this option; *you are expressively warned now!* Some basic operations can be performed on date variables. These are: *Operation* *Description* 'DVAR++' Simple increment by one day. 'DVAR--' Simple decrement by one day. 'DVAR+=[+|-]N' Addition of a constant numerical day factor [+|-]N. 'DVAR-=[+|-]N' Subtraction of a constant numerical day factor [+|-]N. 'DVAR+=NWWW' Addition of N weekdays WWW. 'DVAR-=NWWW' Subtraction of N weekdays WWW. The scope of the operations which are done on a local date variable, is that resource or include file, where the local date variable is defined. If operations on a global date variable are performed in a resource file or that file which is included by it, these operations are only valid in that specific file(4) (*note Date variables-Footnote-4::), not in further resource files processed. This means, the initial values of global date variables are always restored if the resource file changes. Please finally note, that each date variable assignment/operation must be given separately on a single line in the resource file.  File: gcal.info, Node: Date variables-Footnotes, Up: Date variables (1) Except the date variable E which is internally reserved for the Easter Sunday's date, so it cannot be assigned or operated therefore. And except the date variable T which is internally reserved for today's date, so it likewise cannot be assigned or operated. (2) Or the name of another date variable, which is already defined. (3) In the command line, environment variable 'GCAL' or response file. (4) They are only done locally.  File: gcal.info, Node: Text variables, Prev: Date variables, Up: Resource file 5.1.9 Text variables -------------------- Gcal respects _global_ and/or _local_ text variables which may be used anywhere in a line of a Gcal resource file. This means, up to *26* user-defined text variables can be set and referenced during program execution. *Note Fixed date option '--text-variable=ARGUMENT': x-text-variable, for more information how global text variables can be used. A text variable name TVAR consists of the '$' prefix and a single, case-insensitive letter. A text variable is defined as follows: * If the name of a text variable is trailed by the assignment operator character '=', all the text which appears at the right side of this assignment operator is assigned to this text variable. * If the name of a text variable is trailed by the assignment operator character '?', all the text which appears at the right side of this assignment operator is assumed as an external command and executed by Gcal. The output which is created on the _standard output channel_ by the command run is assigned to this text variable; and that in an interpreted manner. This means, Gcal interprets all special texts and references to other text variables that are contained in this output. *Note Special Texts processed::, for further information. * If the name of a text variable is trailed by the assignment operator character ':', all the text which appears at the right side of this assignment operator is assumed as an external command and executed by Gcal. The output which is created on the _standard output channel_ by the command run is assigned to this text variable; and that in an uninterpreted manner. This means, Gcal does not interpret any special texts and references to other text variables that are contained in this output. See also *note Special Texts processed::, for further details. Indeed, Gcal executes external commands only if the '--execute-command' option is given at program start-up. *Note Fixed date option '--execute-command': x-execute-command, for more details. The text which appears at the right side of one of the valid assignment operator characters may reference names of already defined text variables. These references are converted to the according textual values just before the assignment is performed by Gcal. You should always remember that text variables can only be referenced in a line if they are already defined, because Gcal processes a resource file line by line. Gcal always expands text variable references recursively until all sub-references to other text variables are resolved. Local text variables are set to an _empty value_ and thus defined in a special mode in case no text appears at the right side of one of the valid assignment operator characters. If a text variable is referenced, an optional format instruction may be specified between the '$' prefix and the single letter (here: the variable name), which makes it possible to modify the representation of the text (here: the contents) at which the text variable points to. Let us assume a resource file by the name of 'tvarf-1.rc' exists with the following contents: $ cat tvarf-1.rc -| ; tvarf-1.rc -| ; -| $a=123 -| $b=$:010*a -| $c=$b -| $b= -| 0 1. \$c=.$c. -| 0 2. \$c=.$:20*c. -| 0 3. \$b=.$>1w*b. -| 0 4. \$a=.$>5#a. So Gcal creates the following output: $ gcal -Ux --text-variable='$b=XXX YY' --resource-file=./tvarf-1.rc -| -| 1. $c=.0000000123. -| 2. $c=. 0000000123 . -| 3. $b=.Xxx Yy. -| 4. $a=. 123. *Note Format Instruction::, for the detailed description of the format instruction and its components. 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 another '\' (backslash) character, e.g. '\\$'. External commands are not directly executed by Gcal, they are executed by means of the command line interpreter of the operating system, the shell. As consequence to this, of course the commands have to be specified according to the syntax conventions of the used shell, concerning the grouping conventions, list processing conventions, redirection conventions et cetera! For example, it is possible that you have to write '$a?(cat text)' instead of the simple '$a?cat text'. See the pertinent literature for more details. If the output of external commands, which appears on the _standard output channel_, is assigned to text variables in an interpreted manner, this output is internally directed by Gcal into a temporary file. Thereafter, the contents of the temporary file is transfered to the text variable and the temporary file is removed. If the output of external commands, which appears on the _standard output channel_, is assigned to text variables in an uninterpreted manner, this output is internally processed by the Txt2gcal program first (*note Invoking 'txt2gcal': Invoking txt2gcal.), and then this output is directed by Gcal into a temporary file. Thereafter, the contents of the temporary file is transfered to the text variable and the temporary file is removed. In case a 'TXT2GCALPROG' environment variable (*note Environment Variable 'TXT2GCALPROG': x-TXT2GCALPROG.) is defined and set with the file name of the executable Txt2gcal program, Gcal will use this file name for calling Txt2gcal. Otherwise, the file name 'txt2gcal' --which is burned-in during the compilation step of the Gcal program-- is used for calling the Txt2gcal program. The 'TXT2GCALPROG' environment variable must always be set if the Txt2gcal program is installed under another name than the standard name 'txt2gcal', otherwise Gcal is unable to execute the Txt2gcal program automatically! If the simple '--debug' respectively '--debug=internal' option is given at program start-up, informational messages about the executed command and its _exit code_ will be shown on the _standard error channel_ (*note Global option '--debug=internal': x-debug-internal.). If the '--debug=abort' option is given, the Gcal program will be aborted with an error code in case an _exit code_ not equal zero occurred during the execution of the command. *Note Error Code 2: x-2-Error-code, and *note Global option '--debug=abort': x-debug-abort, for further information. Here is an example which explains how the output of external commands can be assigned to text variables. Supposing there is a resource file by the name of 'tvarc-1.rc' with the following contents: $ cat tvarc-1.rc -| %t $a $>+06*b $>1u*c This file is used in the resource file 'tvarc-1a.rc' and processed by Gcal as follows: $ cat tvarc-1a.rc -| ; tvarc-1a.rc -| ; -| $a=bonjour -| $b=123 -| $c=bonsoir -| $x?cat $f -| 0 \$x=---$:30*x--- -| $y:cat $f -| 0 \$y=---$y--- -| 0 \$y=:::$>1u*y::: $ gcal -f tvarc-1a.rc -QUx --exe -r'$f=./tvarc-1.rc' -| $x=--- 18:54 bonjour +00123 BONSOIR --- -| $y=---%t $a $>+06*b $>1u*c--- -| $y=:::%T $A $>+06*B $>1U*C::: Here are some more examples showing how Gcal processes text variables. Let us assume a resource file by the name of 'tvar-1.rc' exists with the following contents: $ cat tvar-1.rc -| ; tvar-1.rc -| ; -| $a=foo -| 0 \$a:1=$a -| $c=$a -| 0 \$c=$c -| $b=$c bar $a -| 0 \$b=$b -| $a=bar $b baz $a booz -| 0 \$a:2=$a -| $a= -| $b=0 $b $c frozz $a frozz -| $b ->That's \$b -| 0 \$x='$x' and \$d is undefined: $d... -| $a= 0 ~ 1~2~\$3~%n~$c~\ -| now it's enough! -| 0 \$a=---$a--- -| $a=0 \ \ \\ And this... -| $a works too! So Gcal creates the following output: $ gcal %19960101 -H no -x -r '$A=FROBOZZ:$x=' -f ./tvar-1.rc -| -| Mon, Jan 1st 1996: \ \\ And this... works too! -| Mon, Jan 1st 1996: $a:1=foo -| Mon, Jan 1st 1996: $a:2=bar foo bar foo baz foo booz -| Mon, Jan 1st 1996: $a=--- 0 -| 1 -| 2 -| $3 -| 01-Jan-1996 -| foo -| now it's enough!--- -| Mon, Jan 1st 1996: $b=foo bar foo -| Mon, Jan 1st 1996: $c=foo -| Mon, Jan 1st 1996: $x='' and $d is undefined: $d... -| Mon, Jan 1st 1996: foo bar foo foo frozz FROBOZZ frozz ->That's $b Or a resource file by the name of 'tvar-2.rc' exists with the following contents: $ cat tvar-2.rc -| ; tvar-2.rc -| ; -| $a=$b foo -| $b=0@e -| $a bar -| $b \$b -| 0 \$a:$a -| 0 \$b:$b So Gcal creates the following output: $ gcal %19960101 -H no -x -f ./tvar-2.rc -| -| Mon, Jan 1st 1996: $a:0@e foo -| Mon, Jan 1st 1996: $b:0@e $ gcal %19960101 -H no -x -f ./tvar-2.rc -y -| -| Sun, Apr 7th 1996: $b -| Sun, Apr 7th 1996: foo bar As seen before, it is allowed to store complete (or partial) date parts (*note Date part of a line::), likewise special texts (*note '%?'... Special Texts: Special Texts processed.) into text variables or references to other text variables, which are processed by Gcal after their expansion. *Note Description of all '%?'... Special Texts: Special Texts, for limitations concerning the assignment of special texts to text variables. Text variables which are defined in a resource file are always local and only respected in this specific file, and that file which is included by it. This means for the included file, that *all* local variables of the caller are visible. The included file itself may define its own local variables in its own name-space, which are not exported to caller on return. All other definitions of text variables(1) (*note Text variables-Footnote-1::) are always global. If a resource file line contains a reference to a text variable which is not locally defined in that file, Gcal will try to use the global values held by this variable. If this fails because no global definition of this text variable is given, Gcal keeps the name of this text variable untouched in this line, except this text variable held an _empty value_. In such a case, Gcal completely ignores this text variable while processing and displaying instead of keeping its name untouched in this line. An example to this. Supposing a resource file by the name of 'tvar-3.rc' exists with the following contents: $ cat tvar-3.rc -| ; tvar-3.rc -| ; -| $c=+00+000 -| $h= -| $d=$c$h -| 0 %o$d %s$d -| 0 \$c=$c \$h=$h \$d=$d \$x=$x So Gcal creates the following output: $ gcal -QUx -f ./tvar-3.rc -| $c=+00+000 $h= $d=+00+000 $x=$x -| 05:57 18:04 $ gcal -QUx -r '$h=+1000:$x=' -f ./tvar-3.rc -| $c=+00+000 $h=+1000 $d=+00+000+1000 $x= -| 05:52 18:09 Only advanced users should apply the '--export-text-variables' option which causes that the actual incarnation of a local text variable --which was previously defined in a resource file and not in an included file-- is being exported to further resource files instead of using its global value, in case that text variable is not locally defined in that further resource file. *Note Include directives::, for more details. But be aware, the use of this option could create unwanted results, because the order of processing the resource files is an important entity in managing the '--export-text-variables' option, so it is not recommended to use it. You, the user, must exactly know what you are doing when applying this option; *you are expressively warned now!* Some basic operations can be performed on text variables in case they contain integer values. These are: *Operation* *Description* 'TVAR++' Simple increment by one. 'TVAR--' Simple decrement by one. 'TVAR+=[+|-]N' Addition of a constant numerical factor [+|-]N. 'TVAR-=[+|-]N' Subtraction of a constant numerical factor [+|-]N. Here is an example showing how Gcal processes text variable operations. Let us assume a resource file by the name of 'tvaro-1.rc' exists with the following contents: $ cat tvaro-1.rc -| ; tvaro-1.rc -| ; -| $a=130 -| $b=2 -| 0 1. \$b=$b -| $b++ -| 0 2. \$b=$b -| $b+=7 -| 0 3. \$b=$b -| $b-- -| 0 4. \$b=$b -| $b-=-5 -| 0 5. \$b=$b -| $b+=123 -| 0 6. \$b=$b -| $b-=$a -| 0 7. \$b=$b -| $b-=10000 -| 0 8. \$b=$b -| $b+=10000 -| 0 9. \$b=$b -| $b=02 -| 0 a. \$b=$b -| $b++ -| 0 b. \$b=$b So Gcal creates the following output: $ gcal -QUx -f ./tvaro-1.rc -| 1. $b=2 -| 2. $b=3 -| 3. $b=10 -| 4. $b=09 -| 5. $b=14 -| 6. $b=137 -| 7. $b=007 -| 8. $b=-9993 -| 9. $b=00007 -| a. $b=02 -| b. $b=03 As you can see in the former example, if operations are made like these, the default behavior of Gcal is to fill with leading zeroes to preserve a former length of a text variable, in case a carry into one of the next decimal places has happened and is taken back by an operation at a later place in the resource file. But this default behavior can be disabled respectively changed by using the already above mentioned format instruction. The scope of the definitions which are done on a local text variable, is that resource or include file, where the local text variable is defined. If a global text variable is redefined in a resource file or that file which is included by it, these redefinitions are only valid in that specific file(2) (*note Text variables-Footnote-2::), not in further resource files processed. This means, the initial values of global text variables are always restored if the resource file changes. Please finally note, that each text variable assignment/operation must be given separately on a single line in the resource file.  File: gcal.info, Node: Text variables-Footnotes, Up: Text variables (1) In the command line, environment variable 'GCAL' or response file. (2) They are only done locally.  File: gcal.info, Node: Resource file examples, Prev: Resource file, Up: Fixed Dates 5.2 Resource file examples ========================== Here are some examples of problem oriented resource files which might be useful to get a deeper impression about the attributes of Gcal's fixed date feature. Let us begin with a common example, the resource file 'common.rc': $ cat common.rc -| ; common.rc, a common example of a resource file. -| ; -| 19940715 Local time: %t --> Dentist at 10:00 -| 00000921 My %B1962 birthday%i1952#2062 -| 0000093 Gregorian~Reformation\~is %y1752 years ago -| 0000Sep03 Gregorian~Reformation\~is %y1752 years ago -| 0 Every day in every month in every year -| 0000 Every day in every month in every year -| 00000000 Every day in every month in every year -| 199400fri Every Friday in 1994 -| 000007mo3 Every third Monday~in July every year less 1980%i#1979 -| 0000@e-10 Easter Sunday-10 days every year -| 0@e-10 Easter Sunday-10 days every year -| 0000@e+10 Easter Sunday+10 days every year -| a=1127 -| 0@a+20 20 days after date of date variable `a' -| a=*W10FR -| 0@a-1 The Thursday of the 10th week every year -| 0@a The Friday of the 10th week every year -| 0@a1 The Saturday of the 10th week every year -| 1995*d10 The 10th absolute day in 1995 -| 1995*d99tue The last Tuesday in 1995 -| 0*w99su The Sunday of the last week every year -| ; -| ; Next entry is respected by ALL fixed date period modifiers. -| ; -| 1994*d1sun#99SUN.7 Each Sunday in 1994 -| ; -| ; Day of Prayer & Repentance is Wednesday before the Sunday, -| ; which is before the 1st Advent's Sunday. -| ; -| a=1225 -| a=a-5sun -| 0@a-4 Day of Prayer & Repentance -| ; or -| 0@a-1wed Day of Prayer & Repentance And here is a resource file by the name of 'demo-1.rc', used to detect all Fridays the 13th of a year: $ cat demo-1.rc -| ; demo-1.rc -| ; -| $a=Friday the 13th%i0000 -| $b=#0000 -| $c=fri2 -| $d=fri3 -| 00000113 $a01$c$b01$c -| 00000113 $a01$d$b01$d -| 00000213 $a02$c$b02$c -| 00000213 $a02$d$b02$d -| 00000313 $a03$c$b03$c -| 00000313 $a03$d$b03$d -| 00000413 $a04$c$b04$c -| 00000413 $a04$d$b04$d -| 00000513 $a05$c$b05$c -| 00000513 $a05$d$b05$d -| 00000613 $a06$c$b06$c -| 00000613 $a06$d$b06$d -| 00000713 $a07$c$b07$c -| 00000713 $a07$d$b07$d -| 00000813 $a08$c$b08$c -| 00000813 $a08$d$b08$d -| 00000913 $a09$c$b09$c -| 00000913 $a09$d$b09$d -| 00001013 $a10$c$b10$c -| 00001013 $a10$d$b10$d -| 00001113 $a11$c$b11$c -| 00001113 $a11$d$b11$d -| 00001213 $a12$c$b12$c -| 00001213 $a12$d$b12$d The result for the years 1996...2002 is as follows: $ gcal -H no -u -x -f ./demo-1.rc 1996+2002 -| -| Fri, Sep 13th 1996: Friday the 13th -| Fri, Dec 13th 1996: Friday the 13th -| -| Fri, Jun 13th 1997: Friday the 13th -| -| Fri, Feb 13th 1998: Friday the 13th -| Fri, Mar 13th 1998: Friday the 13th -| Fri, Nov 13th 1998: Friday the 13th -| -| Fri, Aug 13th 1999: Friday the 13th -| -| Fri, Oct 13th 2000: Friday the 13th -| -| Fri, Apr 13th 2001: Friday the 13th -| Fri, Jul 13th 2001: Friday the 13th -| -| Fri, Sep 13th 2002: Friday the 13th -| Fri, Dec 13th 2002: Friday the 13th Or a bit shorter version of the resource file 'demo-1.rc' by the name of 'demo-2.rc', likewise used to detect all Fridays the 13th of a year, and that by using the fact, that a Friday the 13th only occurs if the first day of a month is a Sunday: $ cat demo-2.rc -| ; demo-2.rc -| ; -| $a=%n+12 is a Friday%i0000 -| $b=#0000 -| $c=sun1 -| 00000101 $a01$c$b01$c -| 00000201 $a02$c$b02$c -| 00000301 $a03$c$b03$c -| 00000401 $a04$c$b04$c -| 00000501 $a05$c$b05$c -| 00000601 $a06$c$b06$c -| 00000701 $a07$c$b07$c -| 00000801 $a08$c$b08$c -| 00000901 $a09$c$b09$c -| 00001001 $a10$c$b10$c -| 00001101 $a11$c$b11$c -| 00001201 $a12$c$b12$c The result for the years 1996...2002 is as follows: $ gcal -H no -u -x -f ./demo-2.rc 1996+2002 -| -| Sun, Sep 1st 1996: 13-Sep-1996 is a Friday -| Sun, Dec 1st 1996: 13-Dec-1996 is a Friday -| -| Sun, Jun 1st 1997: 13-Jun-1997 is a Friday -| -| Sun, Feb 1st 1998: 13-Feb-1998 is a Friday -| Sun, Mar 1st 1998: 13-Mar-1998 is a Friday -| Sun, Nov 1st 1998: 13-Nov-1998 is a Friday -| -| Sun, Aug 1st 1999: 13-Aug-1999 is a Friday -| -| Sun, Oct 1st 2000: 13-Oct-2000 is a Friday -| -| Sun, Apr 1st 2001: 13-Apr-2001 is a Friday -| Sun, Jul 1st 2001: 13-Jul-2001 is a Friday -| -| Sun, Sep 1st 2002: 13-Sep-2002 is a Friday -| Sun, Dec 1st 2002: 13-Dec-2002 is a Friday Of course, preceding textual expense for the purpose of detecting all Fridays the 13th of a year can be dramatically reduced by simply using of 0*d1fri#99fri.7 Friday the 13th%i00000013#00000013 in the resource file 'demo-1.rc', respectively, 0*d1sun#99sun.7 %n+12 is a Friday%i00000001#00000001 in the 'demo-2.rc' resource file. On the one hand, preceding _one-liners_ reduce the coding expense quite considerably --from 28 respectively 15 lines to 1 line in each case--, but on the other hand, this partly increases the checking expense of these _one-liners_ considerably and result in a longer program run-time therefore. Both _one-liners_ produce about 52 internal productions respectively effective fixed date entries of themselves for each year checked by Gcal, at which the 'demo-1.rc' and 'demo-2.rc' resource files cause 24 respectively 12 effective fixed date entries only. And here is a resource file by the name of 'demo-3.rc', used to detect all working-days of any month: $ cat demo-3.rc -| ; demo-3.rc -| ; -| $a=%VWork day -| $c=%i#0000$b99 -| a=$bmon1 -| 0@a#+4 $a -| a=$btue1 -| 0@a#+3 $a -| a=$bwed1 -| 0@a#+2 $a -| a=$bthu1 -| 0@a#+1 $a -| a=$bfri1 -| 0@a $a -| a=$bmon2 -| 0@a#+4 $a -| a=$bmon3 -| 0@a#+4 $a -| a=$bmon4 -| 0@a#+4 $a$c -| a=$bmon9 -| 0@a#+4 $a$c Respectively a bit shorter version of the resource file 'demo-3.rc': ; demo-3.rc ; $a=%VWork day $c=%i#0000$b99 0000$bmon1:5 $a 0000$btue1:4 $a 0000$bwed1:3 $a 0000$bthu1:2 $a 0000$bfri1:1 $a 0000$bmon2:5 $a 0000$bmon3:5 $a 0000$bmon4:5 $a$c 0000$bmon9:5 $a$c And a resource file by the name of 'include.rc' exists which is only used to include one given resource file: $ cat include.rc -| #include "$f" Then the result for the month August 1996 is as follows: $ gcal -H no -u -x -r '$b=08:$f=demo-3.rc' -f ./include.rc Aug 1996 -| -| Thu, Aug 1st 1996: Work day -| Fri, Aug 2nd 1996: Work day -| Mon, Aug 5th 1996: Work day -| Tue, Aug 6th 1996: Work day -| Wed, Aug 7th 1996: Work day -| Thu, Aug 8th 1996: Work day -| Fri, Aug 9th 1996: Work day -| Mon, Aug 12th 1996: Work day -| Tue, Aug 13th 1996: Work day -| Wed, Aug 14th 1996: Work day -| Thu, Aug 15th 1996: Work day -| Fri, Aug 16th 1996: Work day -| Mon, Aug 19th 1996: Work day -| Tue, Aug 20th 1996: Work day -| Wed, Aug 21st 1996: Work day -| Thu, Aug 22nd 1996: Work day -| Fri, Aug 23rd 1996: Work day -| Mon, Aug 26th 1996: Work day -| Tue, Aug 27th 1996: Work day -| Wed, Aug 28th 1996: Work day -| Thu, Aug 29th 1996: Work day -| Fri, Aug 30th 1996: Work day And of course, the preceding textual expense for the purpose of detecting all work days of any month can be dramatically reduced by simply using of 00000001#0099 %V%rWork day in the resource file 'demo-3.rc'. And next the resource file by the name of 'sun-1.rc' which detects the actual local time, the approximate time of sunrise and sunset, day and night length of two geographic locations: $ cat sun-1.rc -| ; sun-1.rc, comparison of sunrise / sunset, day length and night -| ; length of two locations, namely: Muenster.DE / Bangkok.TH -| ; All references are based on Muenster.DE ! -| ; -| ; Common definitions -| $p=0*d1#999 -| $v=%2%4 for that places local time -| $z=actual local time in -| ; Definitions for winter time -| $a=%e#1980 %e0@a#0@b-1 -| $x=Sun:~%o$c,$w rise, %s$c,$w set, %u$c,$w day, %z$c,$w night~$l -| ; Winter time in Germany == CEWT/GMT-1 (+60 minutes) -| $w=+60 -| ; Starting date of winter time in Germany -| b=10sun9 -| ; Definitions for summer time (daylight-saving time) -| $b=%e#1980 %i0@a#0@b-1 -| $y=Sun:~%o$c,$s rise, %s$c,$s set, %u$c,$s day, %z$c,$s night~$l -| ; Summer time in Germany == CEST/GMT-2 (+120 minutes) -| $s=+120 -| ; Starting date of summer time in Germany -| a=03sun9 -| ; Geographic co-ordinate and name of the location Muenster, Germany -| $c=+5158+00738+61 -| $l=%1Muenster -| ; Muenster's local time sunrise etc. for that places local time -| $p $a $x$v -| $p $b $y$v -| ; Muenster's actual local time -| 0 $a %1%@$w %2 $z $l -| 0 $b %1%@$s %2 $z $l -| ; Geographic co-ordinate and name of the location Bangkok, Thailand -| $c=+1345+10031+10 -| $l=%3Bangkok%4-time converted to $l's%2 local time -| ; Bangkok's sunrise etc. based on Muenster's local time -| $p $a $x -| $p $b $y -| ; Bangkok's local time == WAST/GMT-7 (+420 minutes) -| $t=+420 -| $w=$t -| ; Bangkok's actual local time -| $l=%3Bangkok -| 0 $a %3%@$t %4 $z $l -| 0 $b %3%@$t %4 $z $l -| ; Bangkok's sunrise etc. for that places local time -| $l=$l$v -| $p $x The result for the 12th September 1999 is as follows: $ gcal -fsun-1.rc -Ux -Hno -| -| 18:53/12-Sep-1999 actual local time in Muenster -| 23:53/12-Sep-1999 actual local time in Bangkok -| Sun: -| 01:06rise, 13:22set, 12h16'day, 11h44'night -| Bangkok-time converted to Muenster's local time -| Sun: -| 06:06rise, 18:22set, 12h16'day, 11h44'night -| Bangkok for that places local time -| Sun: -| 06:56rise, 19:54set, 12h58'day, 11h02'night -| Muenster for that places local time The next example is the resource file 'redir-1.rc' which demonstrates the use of the shell command '%![ARGUMENT]' special text: $ cat redir-1.rc -| ; redir.rc, run shell command $c and redirect it to $f -| ; -| $p=0*d1#999 -| $c=$p %!$c -| $g=|txt2gcal - $p -| ; -| $c $g>$f The result of succeeding call of Gcal, to which you can also add the '--debug=all' option for a better understanding of the execution methods, is as follows: $ gcal --exe -QUx -f./redir-1.rc+XX -r'$f=XX:$c=echo $f' -#'0 %!rm $f' -| XX And finally a resource file by the name of 'swtim-1.rc' which produces fixed date messages reminding Daylight Saving that are valid since 1981 for the Federal Republic of Germany(1) (*note Resource file examples-Footnote-1::). $ cat swtim-1.rc -| ; swtim-1.rc, daylight-saving time BRD -| ; -| $a=daylight-saving time starts Sunday -| ; -| a=03sun9 -| 0@a-2#+2 Summer $a~+1 hrs. (02:00 --> 03:00 h.)%i1981 -| ; -| a=09sun9 -| 0@a-2#+2 Winter $a~-1 hrs. (03:00 --> 02:00 h.)%i1981#1995 -| ; -| a=10sun9 -| 0@a-2#+2 Winter $a~-1 hrs. (03:00 --> 02:00 h.)%i1996 The result for the year 1998 is as follows: $ gcal %1998 -Hno -xy -f ./swtim-1.rc -| -| Fri, Mar 27th 1998: Summer daylight-saving time starts Sunday -| +1 hrs. (02:00 --> 03:00 h.) -| Sat, Mar 28th 1998: Summer daylight-saving time starts Sunday -| +1 hrs. (02:00 --> 03:00 h.) -| Sun, Mar 29th 1998: Summer daylight-saving time starts Sunday -| +1 hrs. (02:00 --> 03:00 h.) -| Mon, Mar 30th 1998: Summer daylight-saving time starts Sunday -| +1 hrs. (02:00 --> 03:00 h.) -| Tue, Mar 31st 1998: Summer daylight-saving time starts Sunday -| +1 hrs. (02:00 --> 03:00 h.) -| Fri, Oct 23rd 1998: Winter daylight-saving time starts Sunday -| -1 hrs. (03:00 --> 02:00 h.) -| Sat, Oct 24th 1998: Winter daylight-saving time starts Sunday -| -1 hrs. (03:00 --> 02:00 h.) -| Sun, Oct 25th 1998: Winter daylight-saving time starts Sunday -| -1 hrs. (03:00 --> 02:00 h.) -| Mon, Oct 26th 1998: Winter daylight-saving time starts Sunday -| -1 hrs. (03:00 --> 02:00 h.) -| Tue, Oct 27th 1998: Winter daylight-saving time starts Sunday -| -1 hrs. (03:00 --> 02:00 h.)  File: gcal.info, Node: Resource file examples-Footnotes, Up: Resource file examples (1) Two days before adaptation till two days after adaptation.  File: gcal.info, Node: Todays Calendar, Next: Gcal Utilities, Prev: Fixed Dates, Up: Top Appendix A Genesis of the Gregorian Calendar ******************************************** The nowadays calendar was first formulated in several inaccurate variations by the Romans based on methods developed by the Babylonians and Egyptians. The aim of all these calendars was to harmonize the cycles of the Moon and the Sun. During Julius Caesar's reign, January was falling in autumn so he ordered Sosigenes to make changes to the calendar. He added 90 days to the year 46 BC to make up for the seasonal drift and adjusted the lengths of the months similarly as we know them to be today. He introduced the leap year by adding one day to February every four years. For the present, the leap year regulation was made in the way that all four years after the 23rd day in February a leap day was laid in, so the 24th February occurred twice. The use of the leap year was an improvement but not entirely accurate. But in the later years, the leap rule was used in the wrong way so that the errors are corrected by emperor Augustus in the year 8 BC. A curious sequel happened on this occasion. Because Augustus reacted with great jealousy to all things previously made and propagated by Julius Caesar, he did not like Caesar's name in the calendar, namely the today's month of *July*. Offhandedly he ordered to name another month to himself and so the month name *August* arose. Furthermore, Augustus did not tolerate the fact that his month of birth (the August) was shorter than Caesar's month in the sense of the periodical sequence of months with 30 and 31 days. Consequently, the month of August got 31 days, too. Due to this modification, the number of days in February were reduced to 28 and 29 days, respectively, so the 29th February was designed to be the leap day now. This calendar is well known under the term "Julian calendar" and is based on a plain solar year. The nominal length of a solar year (respectively a so-called tropical year) is 365 days, 5 hours, 48 minutes, and 46 seconds. One 366-day year every four years equates to an average Julian year of 365 days and 6 hours, consequently to 365.25 days. This means, every four years, an error of 44 minutes, 56 seconds was accumulated by this kind of calendar calculation. Because of this counting method, the length of the years becomes a bit too long, by more than 11 minutes. By the 16th century, the vernal equinox occurred around March 11, rather than March 21, by reason of an accumulated error of ten days. The feast of Easter shifted away more and more from the habitual vernal date, which must have always been celebrated on an earlier date. So Pope Gregory XIII introduced the new style calendar in 1582. Thursday, the 4th October 1582, was followed by Friday, the 15th October, by suppressing the ten days between both dates. Moreover, he ordained that years ending in hundreds should not be leap years unless they are divisible by 400. Incidentally, the Gregorian reform compensates by 72 hours (3 days) every 400 years. The actual excess accumulated is 74 hours, 53 minutes and 20 seconds. The error of 2 hours, 53 minutes and 20 seconds every 400 years accumulates to one day in about 3300 years. Thereby, the Gregorian year has an average length of 365.2425 days. But this "Gregorian calendar" was accepted very slowly by others. Catholic countries adopted the Gregorian calendar almost immediately. Most Protestant countries on the Continent adopted the new calendar around 1700. England and the American colonies changed in 1752, by act of Parliament. Orthodox Christian countries adopted the Gregorian calendar later. Russia was the last European country to do so, after the communist revolution of 1917. As a result, the former U.S.S.R. celebrated the October Revolution (happened on October 25th, 1917) in the old style calendar on November 7th. The era of a world wide uniform calendar is already part of history today. The Iran returned to the traditional Mohammedan lunar calendar in 1979 after removal of the Shah reign. There are some efforts to improve our currently valid Gregorian calendar. Its disadvantages are the reason why an appointed day is not always on the same week day. Besides, the month lengths are not equal and the holidays, which have relations to the feast of Easter, are moved within the calendar from one year to another. A very sophisticated suggestion was proposed by the United Nations, but the international establishment of this suggestions has failed, since it was resisted by some countries as well as the churches.  File: gcal.info, Node: Gcal Utilities, Next: Internationalization, Prev: Todays Calendar, Up: Top Appendix B Gcal Utilities ************************* * Menu: * Invoking tcal:: How to run 'tcal' and a summary of its options. * Invoking txt2gcal:: How to run 'txt2gcal' and a summary of its options. * Invoking gcal2txt:: How to run 'gcal2txt' and a summary of its options. Three small utility programs are part of the Gcal 4.1 package. The Tcal program runs the Gcal program with the date set one day ahead. The Txt2gcal program creates a verbatim Gcal resource file from a text file, and in contrast to this, the Gcal2txt program creates a verbatim text file from a Gcal resource file.  File: gcal.info, Node: Invoking tcal, Next: Invoking txt2gcal, Prev: Gcal Utilities, Up: Gcal Utilities B.1 Invoking 'tcal' =================== The Tcal program runs the Gcal program with the date of tomorrow's day(1) (*note Invoking tcal-Footnote-1::). Its arguments are as follows: tcal [--help | --version] | [--shift=[+|-]NUMBER] [ARGUMENT...] All given ARGUMENTS are passed unmodified to the Gcal program. If the Gcal program shall be called with another date than tomorrow's date, this desired date can be selected by using the '--shift=[+|-]NUMBER' option, in which '[+|-]NUMBER' is the distance of days the desired date is distant from the actual system date (==today). (Works only for Gregorian years.) The '--shift' option must be given before all other ARGUMENTS that are passed to the Gcal program. In case a 'GCALPROG' environment variable (*note Environment Variable 'GCALPROG': x-GCALPROG.) is defined and set with the file name of the executable Gcal program, Tcal will use this file name for calling Gcal. Otherwise, the file name 'gcal' --which is burned-in during the compilation step of the Tcal program-- is used for calling the Gcal program. The 'GCALPROG' environment variable must always be set if the Gcal program is installed under another name than the standard name 'gcal', otherwise Tcal is unable to execute the Gcal program automatically! An exit status of 0 means all processing is successfully done, any other value means an error has occurred. The program accepts the following options: '--help' Print a usage message listing all available options, then exit successfully. '--version' Print the version number, then exit successfully. '--shift=[+|-]NUMBER' Define the displacement in '[+|-]NUMBER' days the desired date is distant from the actual date.  File: gcal.info, Node: Invoking tcal-Footnotes, Up: Invoking tcal (1) This is equivalent the '--shift=1' option.  File: gcal.info, Node: Invoking txt2gcal, Next: Invoking gcal2txt, Prev: Invoking tcal, Up: Gcal Utilities B.2 Invoking 'txt2gcal' ======================= The Txt2gcal program creates a verbatim Gcal resource file from a text file. Its arguments are as follows: txt2gcal [--help | --version] | [TEXT-FILE|-] [DATE-PART] If no TEXT-FILE argument is given or/but a single '-' character, the program reads and processes all input received from the _standard input channel_. If no DATE-PART argument is given, Txt2gcal creates a '0' for the date part. All results are always shown on the _standard output channel_. An exit status of 0 means all processing is successfully done, any other value means an error has occurred. The program accepts the following options: '--help' Print a usage message listing all available options, then exit successfully. '--version' Print the version number, then exit successfully. Here comes an example how to use Txt2gcal. Let us suppose there is a text file by the name of 'tdemo-1.txt' with the following contents: $ cat tdemo-1.txt -| Hi friends, -| -| I'm the demo text containing funny characters and character -| sequences like ~~ \~ % %% $a $1 %%%\ -| %\ %s %%foo %bar \%Baz \\~ \~\ and so on... -| I'm be anxious how I'll be transformed by `txt2gcal'. -| and Txt2gcal processes this file, redirecting the output to 'tdemo-1.rc': $ txt2gcal tdemo-1.txt 0*d1#999 > tdemo-1.rc $ cat tdemo-1.rc -| 0*d1#999 \ Hi friends,~\ -| ~\ -| I'm the demo text containing funny characters and character~\ -| sequences like \~\~ \\~ % %% \$a $1 %%%\ ~\ -| %\ \%s %\%foo \%bar \\%Baz \\\~ \\~\ and so on...~\ -| I'm be anxious how I'll be transformed by `txt2gcal'.~\ then Txt2gcal has now created a new Gcal resource file 'tdemo-1.rc' from the text file 'tdemo-1.txt'. Let us finally see, how Gcal will interpret this new resource file: $ gcal %19960101 -H no -Ax -f ./tdemo-1.rc -| -| Mon, Jan 1st 1996: -| Hi friends, -| -| I'm the demo text containing funny characters and character -| sequences like ~~ \~ % %% $a $1 %%%\ -| %\ %s %%foo %bar \%Baz \\~ \~\ and so on... -| I'm be anxious how I'll be transformed by `txt2gcal'. -|  File: gcal.info, Node: Invoking gcal2txt, Prev: Invoking txt2gcal, Up: Gcal Utilities B.3 Invoking 'gcal2txt' ======================= The Gcal2txt program creates a verbatim text file from a Gcal resource file. Its arguments are as follows: gcal2txt [--help | --version] | [RESOURCE-FILE|-] If no RESOURCE-FILE argument is given or/but a single '-' character, the program reads and processes all input received from the _standard input channel_. All results are always shown on the _standard output channel_. An exit status of 0 means all processing is successfully done, any other value means an error has occurred. The sense and purpose of Gcal2txt is to retrieve all additional texts, which are put into the output by means of the Txt2gcal program. The program accepts the following options: '--help' Print a usage message listing all available options, then exit successfully. '--version' Print the version number, then exit successfully. Here comes an example how to use Gcal2txt. For that purpose, let us use the resource file 'tdemo-1.rc' of the previous section (*note Invoking 'txt2gcal': Invoking txt2gcal.), which was created by means of the Txt2gcal program from a text file and which looks like this: $ txt2gcal tdemo-1.txt 0*d1#999 > tdemo-1.rc $ cat tdemo-1.rc -| 0*d1#999 \ Hi friends,~\ -| ~\ -| I'm the demo text containing funny characters and character~\ -| sequences like \~\~ \\~ % %% \$a $1 %%%\ ~\ -| %\ \%s %\%foo \%bar \\%Baz \\\~ \\~\ and so on...~\ -| I'm be anxious how I'll be transformed by `txt2gcal'.~\ Now let us see, how this resource file will be processed by Gcal2txt: $ gcal2txt tdemo-1.rc -| Hi friends, -| -| I'm the demo text containing funny characters and character -| sequences like ~~ \~ % %% $a $1 %%%\ -| %\ %s %%foo %bar \%Baz \\~ \~\ and so on... -| I'm be anxious how I'll be transformed by `txt2gcal'.  File: gcal.info, Node: Internationalization, Next: Metasymbols, Prev: Gcal Utilities, Up: Top Appendix C Aspects in Internationalization ****************************************** Starting with version 2.00, Gcal is able to display message texts using any native languages instead of using the English language only, because parts of the GNU 'gettext' package are integrated into the Software. *Note Introduction: (gettext)Top, for more details. By default, Gcal displays all message texts using the English native language in case no other native language is wanted. A so-called _message catalog_ is read by Gcal at run-time if message texts from another native language are required. Gcal 4.1 supports the following native languages: *Native Language* *Language Code* English 'en' German 'de' French 'fr' Dutch 'nl' Polish 'pl' Russian 'ru' Swedish 'sv' It is only necessary to set one of the environment variables(1) (*note Internationalization-Footnote-1::): 1. 'LANGUAGE' 2. 'LC_ALL' 3. 'LC_MESSAGES' 4. 'LANG' with a language code to select another native language instead of the English native language. Normally, users only have to set the 'LANG' environment variable to tell Gcal the native language to use at run-time level. Presuming users want to run Gcal using the German native language for displaying message texts, they merely have to execute 'setenv LANG de' (in 'csh') or 'export LANG; LANG=de' (in 'sh') at the shell prompt. Of course they could even do this from their '.login' or '.profile' file. *Note The User's View: (gettext)Users, for more details. As shown above, a simple setting of 'de' in the environment variable 'LANG' is sufficient to enable German message texts. 'de' is the two-letter language code for the German language defined in the ISO-639:1988, and is called "simple language code information" in the further context. Other language codes can be taken from this ISO-document(2) (*note Internationalization-Footnote-2::). Because Gcal as calendar program must also comply the specifics of a used native language concerning the ordering of day, month and year (and further things) of a displayed date, the period of Gregorian Reformation, the type of week number and the representation of calendar sheets, these criteria are likewise bound to the language code(3) (*note Internationalization-Footnote-3::). A 'en' language code causes the following internal defaults of above criteria: * U.S. American date format * Gregorian Reformation has occurred 1752 * Week starts on Sunday * Standard week numbers * Representation of calendar sheet September 1994 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 And a 'de' language code(4) (*note Internationalization-Footnote-4::) causes the following internal defaults: * German date format * Gregorian Reformation has occurred 1582 * Week starts on Monday * ISO-8601:1988 week numbers * Representation of calendar sheet September 1994 Monday 5 12 19 26 Tuesday 6 13 20 27 Wednesday 7 14 21 28 Thursday 1 8 15 22 29 Friday 2 9 16 23 30 Saturday 3 10 17 24 Sunday 4 11 18 25 Remember, all these internal defaults are modifiable by the options '--date-format', '--gregorian-reform', '--starting-day', '--iso-week-number' and '--type'. If no language code is detected, Gcal takes the internal defaults of the 'en' language code(5) (*note Internationalization-Footnote-5::). If a language code is specified for which no _message catalog_ is installed, Gcal takes the internal defaults of the 'de' language code, but displays the message texts using the English native language. Actually, this behavior seems to me the most proper solution in such a case. The English native language is spoken all over the world unlike the German or other native languages, so it is wise to use it here. But the other criteria bound to the English native language are so special for users of other native languages, that it is wise to use the criteria taken for internal defaults of the 'de' language code, because most European countries (taken as standard) essentially use them. Now British users will certainly ask whether they could use their date format as an internal default(6) (*note Internationalization-Footnote-6::). The answer to this is a simple 'yes', nevertheless, these users have to set the environment variable 'LANG' with an "extended language code information" instead of a simple language code information. The usual template of an extended language code information is as follows: * For XPG syntax (X/Open Portability Guide): LANGUAGE[_TERRITORY][.CODESET][@MODIFIER] * For CEN syntax (Comite' Europe'n de Normalisation): LANGUAGE[_TERRITORY][+AUDIENCE][+SPECIAL][,SPONSOR][_REVISION] Both syntaxes contain the LANGUAGE and TERRITORY components, which are used by Gcal to select the native language and the other criteria. The LANGUAGE component is equivalent to the simple language code information and the TERRITORY component is a two-letter territory or country code as defined by the ISO-3166 like 'GB' for Great Britain or 'US' for the U.S.A. See the pertinent literature for more details. So British users only have to set the 'LANG' environment variable with a 'en_GB' contents, and after that, they can use the British date format as an internal default.  File: gcal.info, Node: Internationalization-Footnotes, Up: Internationalization (1) Listed in decreasing priority as they are respected. (2) For example 'fr' for French, 'es' for Spanish... (3) Strictly speaking, an extended language code information. (4) Or other language codes, for which a _message catalog_ will be created and distributed in future. (5) Or to be more precise, of the extended language code information 'en_US'. (6) All other internal defaults of the simple 'en' language code information just meet their criteria.  File: gcal.info, Node: Metasymbols, Next: Regular Expressions, Prev: Internationalization, Up: Top Appendix D Metasymbols ********************** Within this document, the following _metasyntactic_ conventions will be used when discussing command line options, commands, arguments and templates: 'N' Argument is not optional and N must be a valid number. 'e|t|DVAR' Argument is not optional and must be a single alphabetic character. '$TVAR' Argument is not optional and must be a single alphabetic character, that is lead by a '$' character. '[TEXT]' Argument is optional and TEXT is a valid string of text. '[AB]' Arguments are optional, any number may be used in any order, e.g.: NOTHING, A, B, AB, BA ... '{AB}' Arguments are not optional, minimum one up to any number may be used in any order, e.g.: A, B, AB, BA ... '[A|B]' Arguments are optional, select either A or B, but not both. 'A|B' Arguments are not optional, select either A or B, but not both. '[A[B]]' Arguments are optional, select either A or AB, but not B. '[A|B[C]]' Arguments are optional, select A or B or AC or BC, but not C. '[A|BC]' Arguments are optional, select either AC or BC, but not A or B or C. '[A]|[B]' Argument _lists_ are optional, select either list A or list B, but not both. '[...]' Additional arguments/files may be specified and are optional.  File: gcal.info, Node: Regular Expressions, Next: Regexp Summary, Prev: Metasymbols, Up: Top Appendix E Regular Expressions ****************************** * Menu: * Regexp Usage:: How to Use Regular Expressions. * Regexp Operators:: Regular Expression Operators. This appendix is derived from the 'gawk-3.0.0' and 'regex-0.12' manuals. A "regular expression", or "regexp", is a way of describing a set of strings. The simplest regular expression is a sequence of letters, numbers, or both. Such a regexp matches any string that contains that sequence. Thus, the regexp 'foo' matches any string containing 'foo'. Other kinds of regular expressions let you specify more complicated classes of strings. Gcal uses exactly one of the following regular expression programming libraries respectively methods, and that in the decreasing priority how it is chosen at configuration time, or better, compile time of the software: *No.**Function* *Symbol* 1. GNU 're_compile_pattern()' and 'regex.h' 'GNU-REGEX' 2. POSIX 'regcomp()' and 'regex.h' 'POSIX-REGEX' 3. BSD 're_comp()' 'BSD-REGEX' 4. System V 'regcmp()' 'SysV-REGEX' 5. Henry Spencer V8 'regcomp()' and 'regexp.h' 'V8-REGEX' 6. Pattern matching is supported, but without 'NO-REGEX' metacharacters Try 'gcal --version' for detecting the kind of regular expression programming library respectively method that is burned in your Gcal program!  File: gcal.info, Node: Regexp Usage, Next: Regexp Operators, Prev: Regular Expressions, Up: Regular Expressions E.1 How to Use Regular Expressions ================================== A regular expression can be used as a pattern if Gcal's '--filter-text=PATTERN' option is specified at program start-up. *Note Fixed date option '--filter-text=PATTERN': x-filter-text, for more details. Then the regular expression is tested against the entire, completely expanded text of each *valid* fixed date, and the fixed date is only displayed in case the pattern matches the text(1) (*note Regexp Usage-Footnote-1::).  File: gcal.info, Node: Regexp Usage-Footnotes, Up: Regexp Usage (1) Normally, it only needs to match some part of the text in order to succeed.  File: gcal.info, Node: Regexp Operators, Prev: Regexp Usage, Up: Regular Expressions E.2 Regular Expression Operators ================================ You can combine regular expressions with the following characters, called "regular expression operators", or "metacharacters", to increase the power and versatility of regular expressions. Here is a table of these metacharacters. All characters that are not listed in the table stand for themselves. '\' This is used to suppress the special meaning of a character when matching. For example: \$ matches the character '$'. '^' This matches the beginning of a string. For example: ^@chapter matches the '@chapter' at the beginning of a string, and can be used to identify chapter beginnings in Texinfo source files. The '^' is known as an "anchor", since it anchors the pattern to matching only at the beginning of the string. '$' This is similar to '^', but it matches only at the end of a string. For example: p$ matches a string that ends with a 'p'. The '$' is also an anchor. '.' The period, or dot, matches any single character. For example: .P matches any single character followed by a 'P' in a string. Using concatenation we can make a regular expression like 'U.A', which matches any three-character sequence that begins with 'U' and ends with 'A'. '[...]' This is called a "character list". It matches any _one_ of the characters that are enclosed in the square brackets. For example: [MVX] matches any one of the characters 'M', 'V', or 'X' in a string. Ranges of characters are indicated by using a hyphen between the beginning and ending characters, and enclosing the whole thing in brackets. For example: [0-9] matches any digit. Multiple ranges are allowed. E.g., the list '[A-Za-z0-9]' is a common way to express the idea of "all alphanumeric characters." To include one of the characters '\', ']', '-' or '^' in a character list, put a '\' in front of it. For example: [d\]] matches either 'd', or ']'. "Character classes" are a new feature introduced in the POSIX standard. A character class is a special notation for describing lists of characters that have a specific attribute, but where the actual characters themselves can vary from country to country and/or from character set to character set. For example, the notion of what is an alphabetic character differs in the U.S.A. and in France. A character class is only valid in a regexp _inside_ the brackets of a character list. Character classes consist of '[:', a keyword denoting the class, and ':]'. Here are the character classes defined by the POSIX standard: '[:alnum:]' Alphanumeric characters. '[:alpha:]' Alphabetic characters. '[:blank:]' Space and tab characters. '[:cntrl:]' Control characters. '[:digit:]' Numeric characters. '[:graph:]' Characters that are printable and are also visible(1) (*note Regexp Operators-Footnote-1::). '[:lower:]' Lower-case alphabetic characters. '[:print:]' Printable characters(2) (*note Regexp Operators-Footnote-2::). '[:punct:]' Punctuation characters(3) (*note Regexp Operators-Footnote-3::). '[:space:]' Space characters(4) (*note Regexp Operators-Footnote-4::). '[:upper:]' Upper-case alphabetic characters. '[:xdigit:]' Characters that are hexadecimal digits. For example, before the POSIX standard, to match alphanumeric characters, you had to write '[A-Za-z0-9]'. If your character set had other alphabetic characters in it, this would not match them. With the POSIX character classes, you can write '[[:alnum:]]', and this will match _all_ the alphabetic and numeric characters in your character set. Two additional special sequences can appear in character lists. These apply to non-ASCII character sets, which can have single symbols (called "collating elements") that are represented with more than one character, as well as several characters that are equivalent for collating, or sorting, purposes. (E.g., in French, a plain 'e' and a grave-accented 'e`' are equivalent.) Collating Symbols A "collating symbol" is a multi-character collating element enclosed in '[.' and '.]'. For example, if 'ch' is a collating element, then '[[.ch.]]' is a regexp that matches this collating element, while '[ch]' is a regexp that matches either 'c' or 'h'. Equivalence Classes An "equivalence class" is a list of equivalent characters enclosed in '[=' and '=]'. Thus, '[[=ee`=]]' is a regexp that matches either 'e' or 'e`'. These features are very valuable in non-English speaking locales. *Caution:* The library functions that Gcal uses for regular expression matching currently only recognize POSIX character classes (possibly); they do not recognize collating symbols or equivalence classes. '[^ ...]' This is a "negated character list" respectively "complemented character list". The first character after the '[' _must_ be a '^'. It matches any characters _except_ those in the square brackets. For example: [^0-9] matches any character that is not a digit. '|' This is the "alternation operator", and it is used to specify alternatives. For example: ^P|[0-9] matches any string that matches either '^P' or '[0-9]'. This means it matches any string that starts with 'P' or contains a digit. The alternation applies to the largest possible regexps on either side. In other words, '|' has the lowest precedence of all the regular expression operators. '(...)' Parentheses are used for grouping in regular expressions as in arithmetic. They can be used to concatenate regular expressions containing the alternation operator, '|'. For example, '@(samp|code)\{[^}]+\}' matches both '@code{foo}' and '@samp{bar}'. (These are Texinfo formatting control sequences.) '*' This symbol means that the preceding regular expression is to be repeated as many times as necessary to find a match. For example: ph* applies the '*' symbol to the preceding 'h' and looks for matches of one 'p' followed by any number of 'h's. This will also match just 'p' if no 'h's are present. The '*' repeats the _smallest_ possible preceding expression. (Use parentheses if you wish to repeat a larger expression.) It finds as many repetitions as possible. For example: gcal --filter-text='\(c[ad][ad]*r x\)' -f sample.rc -y prints every fixed date in 'sample.rc' containing a fixed date text of the form '(car x)', '(cdr x)', '(cadr x)', and so on. Notice the escaping of the parentheses by preceding them with backslashes. '+' This symbol is similar to '*', but the preceding expression must be matched at least once. This means that: wh+y would match 'why' and 'whhy' but not 'wy', whereas 'wh*y' would match all three of these strings. This is a simpler way of writing the last '*' example: gcal --filter-text='\(c[ad]+r x\)' -f sample.rc -y '?' This symbol is similar to '*', but the preceding expression can be matched either once or not at all. For example: fe?d will match 'fed' and 'fd', but nothing else. '{N}' '{N,}' '{N,M}' One or two numbers inside braces denote an "interval expression" which is available in the POSIX standard. If there is one number in the braces, the preceding regexp is repeated N times. If there are two numbers separated by a comma, the preceding regexp is repeated N to M times. If there is one number followed by a comma, then the preceding regexp is repeated at least N times. 'wh{3}y' matches 'whhhy' but not 'why' or 'whhhhy'. 'wh{3,5}y' matches 'whhhy' or 'whhhhy' or 'whhhhhy', only. 'wh{2,}y' matches 'whhy' or 'whhhy', and so on. GNU software that deals with regular expressions provides a number of additional regexp operators. These operators are described here. Most of the additional operators are for dealing with word matching. For our purposes, a "word" is a sequence of one or more letters, digits, or underscores ('_'). '\w' This operator matches any word-constituent character, i.e. any letter, digit, or underscore. Think of it as a short-hand for '[A-Za-z0-9_]' or '[[:alnum:]_]'. '\W' This operator matches any character that is not word-constituent. Think of it as a short-hand for '[^A-Za-z0-9_]' or '[^[:alnum:]_]'. '\<' This operator matches the empty string at the beginning of a word. For example, '\' This operator matches the empty string at the end of a word. For example, 'stow\>' matches 'stow', but not 'stowaway'. '\b' This operator matches the empty string at either the beginning or the end of a word (the word *b*oundary). For example, '\bballs?\b' matches either 'ball' or 'balls' as a separate word. '\B' This operator matches the empty string within a word. In other words, '\B' matches the empty string that occurs between two word-constituent characters. For example, '\Brat\B' matches 'crate', but it does not match 'dirty rat'. '\B' is essentially the opposite of '\b'. There are two other operators that work on buffers. In Emacs, a "buffer" is, naturally, an Emacs buffer. For other programs, the regexp library routines that Gcal uses consider the entire string to be matched as the buffer(5) (*note Regexp Operators-Footnote-5::). For Gcal, since '^' and '$' always work in terms of the beginning and end of strings, these operators do not add any new capabilities. They are provided for compatibility with other GNU software. '\`' This operator matches the empty string at the beginning of the buffer. '\'' This operator matches the empty string at the end of the buffer. In regular expressions, the '*', '+', and '?' operators, as well as the braces '{' and '}', have the highest precedence, followed by concatenation, and finally by '|'. As in arithmetic, parentheses can change how operators are grouped. Case is normally significant in regular expressions, both when matching ordinary characters (i.e. not metacharacters), and inside character sets. Thus a 'w' in a regular expression matches only a lower-case 'w' and not an upper-case 'W'. The simplest way to do a case-independent match is to use a character list: '[Ww]'. However, this can be cumbersome if you need to use it often; and unfortunately, it can make the regular expressions harder to read. Supplying a want, Gcal offers the '--ignore-case' option which ignores all case distinctions in both the regular expression and the completely expanded text of each *valid* fixed date. *Note Fixed date option '--ignore-case': x-ignore-case.  File: gcal.info, Node: Regexp Operators-Footnotes, Up: Regexp Operators (1) A space is printable, but not visible, while an 'a' is both. (2) Characters that are not control characters. (3) Characters that are not letter, digits, control characters, or space characters. (4) Such as Space, Tab, and Form-feed, to name a few. (5) That is the _text part_ of a Gcal resource file line.  File: gcal.info, Node: Regexp Summary, Next: Special Texts, Prev: Regular Expressions, Up: Top Appendix F Summary of all Regular Expressions ********************************************* Regular expressions are based on POSIX EREs (Extended Regular Expressions). Regexps are composed of characters. Here is a short-list of them all: 'C' matches the character C (assuming C is none of the characters listed below). '\C' matches the literal character C. '.' matches any character. '^' matches the beginning of a string. '$' matches the end of a string. '[ABC...]' matches any of the characters ABC... (character list). '[[:KEYWORD:]]' matches any character in the character class KEYWORD. Allowable classes are 'alnum', 'alpha', 'blank', 'cntrl', 'digit', 'graph', 'lower', 'print', 'punct', 'space', 'upper', and 'xdigit'. '[[.ELEMENT.]]' matches the multi-character collating ELEMENT. Gcal does not currently support collating symbols. '[[=LIST=]]' matches any of the equivalent characters in LIST. Gcal does not currently support equivalence classes. '[^ABC...]' matches any character except ABC... (negated resp. complemented character list). 'R1|R2' matches either R1 or R2 (alternation). 'R1R2' matches R1, and then R2 (concatenation). 'R+' matches one or more R's. 'R*' matches zero or more R's. 'R?' matches zero or one R's. '(R)' matches R (grouping). 'R{N}' 'R{N,}' 'R{N,M}' matches at least N, N to any number, or N to M occurrences of R (interval expressions). '\b' matches the empty string at either the beginning or the end of a word. '\B' matches the empty string within a word. '\<' matches the empty string at the beginning of a word. '\>' matches the empty string at the end of a word. '\w' matches any word-constituent character (alphanumeric characters and the underscore). '\W' matches any character that is not word-constituent. '\`' matches the empty string at the beginning of a buffer(1) (*note Regexp Summary-Footnote-1::). '\'' matches the empty string at the end of a buffer.  File: gcal.info, Node: Regexp Summary-Footnotes, Up: Regexp Summary (1) The same as a _text part_ of a resource file line in Gcal.  File: gcal.info, Node: Special Texts, Next: Special Texts Summary, Prev: Regexp Summary, Up: Top Appendix G '%?'... Special Texts ******************************** * Menu: * Exclusions:: How to Exclude dates. * Replacements:: How to Replace texts. * Shell Command:: How to run a Shell Command. The '%?'... special texts which can be used in the text part of a Gcal resource file line can coarsely be separated into three categories. So there are special texts used for suppression output of fixed dates in definite cases. Others are replaced by particular texts or cause the shell to start external commands. *Note '%?'... Special Texts: Special Texts processed, for a general description of the special texts which may be used in the text part of a Gcal resource file line. Some of these special texts may have an optional format instruction (called FORMAT in the further context), which affects the representation of an expanded special text. *Note Format Instruction::, for the detailed description of the format instruction and its components. A possibly specified FORMAT within special texts which may not have a format instruction is ignored by Gcal and not displayed in output. But Gcal is also able to represent such special texts in a special way by using a format instruction, and that by using an indirect method. For displaying, you simply assign the special text exclusively to a text variable which contains a format instruction. Nevertheless, it is important to note that the field width component of the format instruction is chosen in the way that it refers to the assigned contents of the text variable, if the format instruction has a fixed format component. The contents assigned to the text variable is only the special text, and not its expanded result. Gcal has to proceed like that, because the special text which is hidden in the text variable could not be used (here: displayed) only for a definite date, but possibly also for several dates, and that adjusted to each date it is referenced. Thus exists a special text in the text variable which has a definite length, and a format instruction also exists, whose field width component has to affect the expanded result of the special text. Indeed, Gcal does not know at the moment when the assignment of the special text to the text variable is made, of which length the expanded result will be, because this expansion is made at a much later phase in the program execution. So, in such a case, the field width component of a format instruction should have the length of the special text minimum, otherwise it is crippled and expanded respectively displayed incorrectly by the internal methods which effect the expansion. Of course, not all possibilities concerning the representation --which are offered by the format instruction-- are listed here for those special texts those expanded representation may be affected by an optional FORMAT instruction, but only some few exemplary. And some of these special texts may also have an optional simple or special date argument (called DATE in the further context) or another argument (called ARGUMENT in the further context). The DATE argument must be given in one of the following date formats in case a special text is directly trailed by it: * 'YYYY[MM[DD|WWWN]]' * 'YYYY*d|wN[WWW]' * 'YYYY@e|t|DVAR[[+|-]N[WWW]]' Special texts that may have a DATE argument *must* always be trailed by a _whitespace_ character which is removed in output, no matter whether DATE was given or not! *Note Summary of all '%?'... Special Texts: Special Texts Summary, for a short-list of all applicable special texts.  File: gcal.info, Node: Exclusions, Next: Replacements, Prev: Special Texts, Up: Special Texts G.1 '%?'... special texts for date exclusion ============================================ * Menu: * Exclusions with date argument:: * Exclusions without any argument:: '%?'... special texts used for exclusion of points of time or periods of dates are very useful if they are used together with ranges of days (*note Ranges of days::). The complete special text is always suppressed in output in case the fixed date text must be displayed.  File: gcal.info, Node: Exclusions with date argument, Next: Exclusions without any argument, Prev: Exclusions, Up: Exclusions G.1.1 Exclusions with date argument '%?[DATE]' special texts ------------------------------------------------------------ * Menu: * Inclusive date period:: * Exclusive date period:: First of all, an "inclusive date" period '%?[DATE]' special text can be specified with the effect, that only those fixed dates are respected and displayed which are part of this period. And the specification of an "exclusive date" period '%?[DATE]' special text has the effect, that only those fixed dates are respected and displayed which are not part of this period. Cleverly combined, these special texts offer very effective filtration capabilities used for the definition of special periods in a highly flexible manner, for example: 0*d1#999 Every day of year: from January...August except April\ %i00001#00008 %e00004#00004 ; 0*d1#999 Every day of year: from 1991...1993 and from 1996\ except February 1992 and all September\ %i1991#1993 %i1996# %e19922#19922 %e00009#00009  File: gcal.info, Node: Inclusive date period, Next: Exclusive date period, Prev: Exclusions with date argument, Up: Exclusions with date argument G.1.1.1 Inclusive date period '%i[DATE][#[DATE]]' special text .............................................................. '%i[DATE][#[DATE]]' references an inclusive date period, i.e. all dates which are part of the specified period are valid and are displayed. Of course this means, that all fixed dates which are not part of this period (not covered by it) are invalid and remain undisplayed therefore. The first specified date defines the "starting date" of the fixed date, i.e. the first date the fixed date may occur. For the starting date, the following rules concerning definite omission values are valid, elucidated by using the 'YYYY[MM[DD|WWWN]]' date format: * If YYYY is set to '0000', the current year is assumed for the year. * If MM is not given, then '01' (==January) is assumed for the month. * If MM is set to '00', the current month is assumed for the month, and the December is assumed in case MM is set to '99'. * If DD|WWW is not given, then '01' is assumed for the day. * If DD is set to '00', the current day is assumed for the day, and the last day of the month MM is assumed in case DD is set to '99'. * If the N field is given (range '1...5' or '9'), then a WWW field must also be specified. The second specified date defines the "ending date" of the fixed date, i.e. the last date the fixed date may occur. For the ending date, the following rules concerning definite omission values are valid, likewise elucidated by using the 'YYYY[MM[DD|WWWN]]' date format: * If YYYY is set to '0000', the current year is assumed for the year. * If MM is not given, then '12' (==December) is assumed for the month. * If MM is set to '00', the current month is assumed for the month, and the December is assumed in case MM is set to '99'. * If DD|WWW is not given, the last day of the month MM is assumed for the day. * If DD is set to '00', the current day is assumed for the day, and the last day of the month MM is assumed in case DD is set to '99'. * If the N field is given (range '1...5' or '9'), then a WWW field must also be specified. The preceding rules are analogously valid for the other permitted date formats. If the starting date, which is encoded in the '%i...' special text, is later the ending date, the '%i...' special text will be ignored. In case neither the starting date nor the ending date is specified, means only '%i' is given, the implicit period 1st January 1...31st December 9999 (00010101...99991231) will be used. If only the starting date is specified, means either '%iDATE' or '%iDATE#' is given, the implicit ending date 31st December 9999 (99991231) will be used. In case only the ending date is specified, means '%i#DATE' is given, the implicit starting date 1st January 1 (00010101) will be used. For example: 0d*1#999 Every day of year: only April and July\ %i00004#00004 %i00007#00007 ; 0*d1#999 Every day of year: from January...October\ %i#000010 ; 0*d1#999 Every day of year: from August 1990\ %i19908 ; 0*d1#999 Every day of year: from August...December\ %i00008 ; 0*d1#999 Every day of year: only today%i0@t#0@t  File: gcal.info, Node: Exclusive date period, Prev: Inclusive date period, Up: Exclusions with date argument G.1.1.2 Exclusive date period '%e[DATE][#[DATE]]' special text .............................................................. '%e[DATE][#[DATE]]' references an exclusive date period, i.e. all dates which are part of the specified period are invalid and remain undisplayed therefore. Of course this means, that all fixed dates which are not part of this period (not covered by it) are valid and are displayed. The first specified date defines the starting date of the fixed date, i.e. the first date the fixed date may occur. For the starting date, the following rules concerning definite omission values are valid, elucidated by using the 'YYYY[MM[DD|WWWN]]' date format: * If YYYY is set to '0000', the current year is assumed for the year. * If MM is not given, then '01' (==January) is assumed for the month. * If MM is set to '00', the current month is assumed for the month, and the December is assumed in case MM is set to '99'. * If DD|WWW is not given, then '01' is assumed for the day. * If DD is set to '00', the current day is assumed for the day, and the last day of the month MM is assumed in case DD is set to '99'. * If the N field is given (range '1...5' or '9'), then a WWW field must also be specified. The second specified date defines the ending date of the fixed date, i.e. the last date the fixed date may occur. For the ending date, the following rules concerning definite omission values are valid, likewise elucidated by using the 'YYYY[MM[DD|WWWN]]' date format: * If YYYY is set to '0000', the current year is assumed for the year. * If MM is not given, then '12' (==December) is assumed for the month. * If MM is set to '00', the current month is assumed for the month, and the December is assumed in case MM is set to '99'. * If DD|WWW is not given, the last day of the month MM is assumed for the day. * If DD is set to '00', the current day is assumed for the day, and the last day of the month MM is assumed in case DD is set to '99'. * If the N field is given (range '1...5' or '9'), then a WWW field must also be specified. The preceding rules are analogously valid for the other permitted date formats. If the starting date, which is encoded in the '%e...' special text, is later the ending date, the '%e...' special text will be ignored. In case neither the starting date nor the ending date is specified, means only '%e' is given, the implicit period 1st January 1...31st December 9999 (00010101...99991231) will be used. If only the starting date is specified, means either '%eDATE' or '%eDATE#' is given, the implicit ending date 31st December 9999 (99991231) will be used. In case only the ending date is specified, means '%e#DATE' is given, the implicit starting date 1st January 1 (00010101) will be used. For example: 0d*1#999 Every day of year: except April and July\ %e00004#00004 %e00007#00007 ; 0*d1#999 Every day of year: except January...October\ %e#000010 ; 0*d1#999 Every day of year: until July 1990\ %e19908 ; 0*d1#999 Every day of year: except August...December\ %e00008 ; 0*d1#999 Every day of year: except today%e0@t#0@t  File: gcal.info, Node: Exclusions without any argument, Prev: Exclusions with date argument, Up: Exclusions G.1.2 Exclusions without any argument '%?' special texts -------------------------------------------------------- * Menu: * Inclusive day period:: * Exclusive day period:: First of all, an "inclusive day" period '%?' special text can be specified with the effect, that only those fixed dates are respected and displayed which are part of this period. And the specification of an "exclusive day" period '%?' special text has the effect, that only those fixed dates are respected and displayed which are not part of this period. Cleverly combined, these special texts also offer very effective filtration capabilities used for the definition of very special periods. For example: 0*d1#999 Every day of year: all Mondays...Fridays\ except Wednesdays and all legal holidays\ %r%F%V ; 00001001#9999 Every day in last quarter of year: all holidays\ which are not on a Sunday%x %P  File: gcal.info, Node: Inclusive day period, Next: Exclusive day period, Prev: Exclusions without any argument, Up: Exclusions without any argument G.1.2.1 Inclusive day period '%?' special texts ............................................... The following inclusive day periods '%?' special texts are respected, at which _inclusive_ is meant for the period which is not excluded. '%v' Excludes fixed date in case it is not listed as legal holiday in the _eternal holiday list_. '%x' Excludes fixed date in case it is neither listed as legal holiday nor memorial day in the _eternal holiday list_. '%a' Excludes fixed date in case it is no Monday. '%c' Excludes fixed date in case it is no Tuesday. '%f' Excludes fixed date in case it is no Wednesday. '%g' Excludes fixed date in case it is no Thursday. '%h' Excludes fixed date in case it is no Friday. '%l' Excludes fixed date in case it is no Saturday. '%p' Excludes fixed date in case it is no Sunday. '%q' Excludes fixed date in case it is no Monday...Thursday. '%r' Excludes fixed date in case it is no Monday...Friday.  File: gcal.info, Node: Exclusive day period, Prev: Inclusive day period, Up: Exclusions without any argument G.1.2.2 Exclusive day period '%?' special texts ............................................... The following exclusive day periods '%?' special texts are respected, at which _exclusive_ is meant for the period which is excluded. '%V' Excludes fixed date in case it is listed as legal holiday in the _eternal holiday list_. '%X' Excludes fixed date in case it is either listed as legal holiday or memorial day in the _eternal holiday list_. '%A' Excludes fixed date in case it is a Monday. '%C' Excludes fixed date in case it is a Tuesday. '%F' Excludes fixed date in case it is a Wednesday. '%G' Excludes fixed date in case it is a Thursday. '%H' Excludes fixed date in case it is a Friday. '%L' Excludes fixed date in case it is a Saturday. '%P' Excludes fixed date in case it is a Sunday. '%Q' Excludes fixed date in case it is a Monday...Thursday. '%R' Excludes fixed date in case it is a Monday...Friday.  File: gcal.info, Node: Replacements, Next: Shell Command, Prev: Exclusions, Up: Special Texts G.2 '%?'... special texts for text replacement ============================================== * Menu: * Replacements with date argument:: * Replacements with other argument:: * Replacements without any argument:: '%?'... special texts which are replaced by particular texts at program run-time causes the interspersing of data into the fixed date text, which quality is essentially depending on the command line arguments given for running the program. The complete special text is always replaced accordingly in output if the fixed date text must be displayed. Cleverly combined, these special texts also offer very effective mechanisms used for the definition of particular texts in a highly flexible manner, for example: 0*d1#999 Every day of year: Today is %K, the %n (%N)  File: gcal.info, Node: Replacements with date argument, Next: Replacements with other argument, Prev: Replacements, Up: Replacements G.2.1 Replacements with date argument '%?[DATE]' special texts -------------------------------------------------------------- * Menu: * Weekday name:: * Weekday number:: * Day-of-year number:: * Day number:: * Week number:: * Month name:: * Month number:: * Year number:: * Moon phase:: * Biorhythm:: * Difference value:: Apart from different representations of a weekday name, it is possible to create its weekday number. Likewise, the current day-of-year number, the day number, the week number, the month name, the month number, the year number, the Moon phase, the biorhythm, and some useful difference values can be produced. For the DATE argument these '%?[DATE]' special text may have, the following rules concerning definite omission values are valid, elucidated by using the 'YYYY[MM[DD|WWWN]]' date format(1) (*note Replacements with date argument-Footnote-1::): * If YYYY... is not given (==*no* date encoded), the current year is assumed for the date. * If YYYY is set to '0000', the current year is assumed for the year. * If MM is not given or set to '00', the current month is assumed for the month, and the December is assumed in case MM is set to '99'. * If DD|WWW is not given or set to '00', the current day is assumed for the day, and the last day of the month is assumed in case DD is set to '99'. * If the N field is given (range '1...5' or '9'), then a WWW field must also be specified.  File: gcal.info, Node: Replacements with date argument-Footnotes, Up: Replacements with date argument (1) The succeeding rules are analogously valid for the other permitted date formats.  File: gcal.info, Node: Weekday name, Next: Weekday number, Prev: Replacements with date argument, Up: Replacements with date argument G.2.1.1 Weekday name '%[FORMAT]K[DATE]' special text .................................................... '%K[DATE]' Is replaced by the complete *weekday name* of the current day, e.g.: The text 'Today is %K , the %n' will be expanded to ==> 'Today is Monday, the 10-Jun-1996', in case the actual system date is the 10th June 1996. '%>3#K[DATE]' Is replaced by the 3-letter *weekday name* of the current day, e.g.: The text 'Today is %>3#K0@t+1 , the %n+1' will be expanded to ==> 'Today is Tue, the 11-Jun-1996', in case the actual system date is the 10th June 1996. '%>2#K[DATE]' Is replaced by the 2-letter *weekday name* of the current day, e.g.: The text 'Today is %>2#K , the %n' will be expanded to ==> 'Today is Mo, the 10-Jun-1996', in case the actual system date is the 10th June 1996.  File: gcal.info, Node: Weekday number, Next: Day-of-year number, Prev: Weekday name, Up: Replacements with date argument G.2.1.2 Weekday number '%[FORMAT]?[DATE]' special texts ....................................................... The following weekday number '%[FORMAT]?[DATE]' special texts are respected, e.g.: '%W[DATE]' Is replaced by the *weekday number* of the current day, and which is determined by the 'Monday==1...Sunday==7' counting method, e.g.: The text 'Today is weekday %W , the %n' will be expanded to ==> 'Today is weekday 1, the 10-Jun-1996', in case the actual system date is the 10th June 1996. '%>1&*W[DATE]' Is replaced by the *weekday number* with trailing Ordinal Number suffix of the current day, and which is determined by the 'Monday==1...Sunday==7' counting method, e.g.: The text 'Today is weekday %>1&*W0@t+1 , the %n+1' will be expanded to ==> 'Today is weekday 2nd, the 11-Jun-1996', in case the actual system date is the 10th June 1996. '%E[DATE]' Is replaced by the *weekday number* of the current day, and which is determined by the 'Monday==0...Sunday==6' counting method, e.g.: The text 'Today is weekday %E , the %n' will be expanded to ==> 'Today is weekday 0, the 10-Jun-1996', in case the actual system date is the 10th June 1996. '%>1&*E[DATE]' Is replaced by the *weekday number* with trailing Ordinal Number suffix of the current day, and which is determined by the 'Monday==0...Sunday==6' counting method, e.g.: The text 'Today is weekday %>1&*E , the %n' will be expanded to ==> 'Today is weekday 0th, the 10-Jun-1996', in case the actual system date is the 10th June 1996. '%I[DATE]' Is replaced by the *weekday number* of the current day, and which is determined by the 'Sunday==1...Saturday==7' counting method, e.g.: The text 'Today is weekday %I , the %n' will be expanded to ==> 'Today is weekday 2, the 10-Jun-1996', in case the actual system date is the 10th June 1996. '%>1&*I[DATE]' Is replaced by the *weekday number* with trailing Ordinal Number suffix of the current day, and which is determined by the 'Sunday==1...Saturday==7' counting method, e.g.: The text 'Today is weekday %>1&*I , the %n' will be expanded to ==> 'Today is weekday 2nd, the 10-Jun-1996', in case the actual system date is the 10th June 1996. '%J[DATE]' Is replaced by the *weekday number* of the current day, and which is determined by the 'Sunday==0...Saturday==6' counting method, e.g.: The text 'Today is weekday %J , the %n' will be expanded to ==> 'Today is weekday 1, the 10-Jun-1996', in case the actual system date is the 10th June 1996. '%>1&*J[DATE]' Is replaced by the *weekday number* with trailing Ordinal Number suffix of the current day, and which is determined by the 'Sunday==0...Saturday==6' counting method, e.g.: The text 'Today is weekday %>1&*J , the %n' will be expanded to ==> 'Today is weekday 1st, the 10-Jun-1996', in case the actual system date is the 10th June 1996. '%S[DATE]' Is replaced by the *weekday number* of the current day, and which is determined by the 'STARTING DAY OF WEEK==1...ENDING DAY OF WEEK==7' counting method (*note Calendar option '--starting-day=ARGUMENT': x-starting-day.), e.g.: The text 'Today is weekday %S , the %n' will be expanded to ==> 'Today is weekday 4, the 10-Jun-1996', in case the actual system date is the 10th June 1996 and Friday (==5) is the starting day of week. '%>1&*S[DATE]' Is replaced by the *weekday number* with trailing Ordinal Number suffix of the current day, and which is determined by the 'STARTING DAY OF WEEK==1...ENDING DAY OF WEEK==7' counting method (*note Calendar option '--starting-day=ARGUMENT': x-starting-day.), e.g.: The text 'Today is weekday %>1&*S , the %n' will be expanded to ==> 'Today is weekday 4th, the 10-Jun-1996', in case the actual system date is the 10th June 1996 and Friday (==5) is the starting day of week. '%T[DATE]' Is replaced by the *weekday number* of the current day, and which is determined by the 'STARTING DAY OF WEEK==0...ENDING DAY OF WEEK==6' counting method (*note Calendar option '--starting-day=ARGUMENT': x-starting-day.), e.g.: The text 'Today is weekday %T , the %n' will be expanded to ==> 'Today is weekday 3, the 10-Jun-1996', in case the actual system date is the 10th June 1996 and Friday (==5) is the starting day of week. '%>1&*T[DATE]' Is replaced by the *weekday number* with trailing Ordinal Number suffix of the current day, and which is determined by the 'STARTING DAY OF WEEK==0...ENDING DAY OF WEEK==6' counting method (*note Calendar option '--starting-day=ARGUMENT': x-starting-day.), e.g.: The text 'Today is weekday %>1&*T , the %n' will be expanded to ==> 'Today is weekday 3rd, the 10-Jun-1996', in case the actual system date is the 10th June 1996 and Friday (==5) is the starting day of week.  File: gcal.info, Node: Day-of-year number, Next: Day number, Prev: Weekday number, Up: Replacements with date argument G.2.1.3 Day-of-year number '%[FORMAT]N[DATE]' special text .......................................................... '%N[DATE]' Is replaced by the *day-of-year number* of the current day of year, e.g.: The text 'Day %N of year, the %n' will be expanded to ==> 'Day 53 of year, the 22-Feb-1996', in case the actual system date is the 22nd February 1996. '%>03*N[DATE]' Is replaced by the 3-digit *day-of-year number* with leading zeroes of the current day of year, e.g.: The text 'Day %>03*N0@t-1 of year, the %n-1' will be expanded to ==> 'Day 052 of year, the 21-Feb-1996', in case the actual system date is the 22nd February 1996. '%>1&*N[DATE]' Is replaced by the *day-of-year number* with trailing Ordinal Number suffix of the current day of year, e.g.: The text 'Day %>1&*N of year, the %n' will be expanded to ==> 'Day 53rd of year, the 22-Feb-1996', in case the actual system date is the 22nd February 1996. '%>03&*N[DATE]' Is replaced by the 3-digit *day-of-year number* with leading zeroes and trailing Ordinal Number suffix of the current day of year, e.g.: The text 'Day %>03&*N of year, the %n' will be expanded to ==> 'Day 053rd of year, the 22-Feb-1996', in case the actual system date is the 22nd February 1996.  File: gcal.info, Node: Day number, Next: Week number, Prev: Day-of-year number, Up: Replacements with date argument G.2.1.4 Day number '%[FORMAT]D[DATE]' special text .................................................. '%D[DATE]' Is replaced by the *day number* of the current day of month, e.g.: The text 'Day %D , %n' will be expanded to ==> 'Day 2, 02-Feb-1996', in case the actual system date is the 2nd February 1996. '%>02*D[DATE]' Is replaced by the 2-digit *day number* with leading zero of the current day of month, e.g.: The text 'Day %>02*D0@t-1 , %n-1' will be expanded to ==> 'Day 01, 01-Feb-1996', in case the actual system date is the 2nd February 1996. '%>1&*D[DATE]' Is replaced by the *day number* with trailing Ordinal Number suffix of the current day of month, e.g.: The text 'Day %>1&*D , %n' will be expanded to ==> 'Day 2nd, 02-Feb-1996', in case the actual system date is the 2nd February 1996. '%>02&*D[DATE]' Is replaced by the 2-digit *day number* with leading zero and trailing Ordinal Number suffix of the current day of month, e.g.: The text 'Day %>02&*D , %n' will be expanded to ==> 'Day 02nd, 02-Feb-1996', in case the actual system date is the 2nd February 1996.  File: gcal.info, Node: Week number, Next: Month name, Prev: Day number, Up: Replacements with date argument G.2.1.5 Week number '%k[DATE]' special text ........................................... '%k[DATE]' Is replaced by either the 2-digit *ISO week number* or the *standard week number* with leading zero, or a 4-alphanumeric character text of the current week of year (see *note Calendar option '--starting-day=ARGUMENT': x-starting-day, *note Calendar option '--iso-week-number=yes|no': x-iso-week-number, and *note Aspects in Internationalization: Internationalization, for further details), e.g.: The text 'Today is %K of week %k' will be expanded to ==> 'Today is Monday of week 24', in case the actual system date is the 10th June 1996.  File: gcal.info, Node: Month name, Next: Month number, Prev: Week number, Up: Replacements with date argument G.2.1.6 Month name '%[FORMAT]U[DATE]' special text .................................................. '%U[DATE]' Is replaced by the complete *month name* of the current month of year, e.g.: The text 'Today is %U , %n' will be expanded to ==> 'Today is June, 10-Jun-1996', in case the actual system date is the 10th June 1996. '%>3#U[DATE]' Is replaced by the 3-letter *month name* of the current month of year, e.g.: The text 'Today is %>3#U19961010 , %n' will be expanded to ==> 'Today is Oct, 10-Jun-1996', in case the actual system date is the 10th June 1996.  File: gcal.info, Node: Month number, Next: Year number, Prev: Month name, Up: Replacements with date argument G.2.1.7 Month number '%[FORMAT]M[DATE]' special text .................................................... '%M[DATE]' Is replaced by the *month number* of the current month of year, e.g.: The text 'Month %M , %n' will be expanded to ==> 'Month 2, 22-Feb-1996', in case the actual system date is the 22nd February 1996. '%>02*M[DATE]' Is replaced by the 2-digit *month number* with leading zero of the current month of year, e.g.: The text 'Month %>02*M000001 , %n' will be expanded to ==> 'Month 01, 22-Feb-1996', in case the actual system date is the 22nd February 1996. '%>1&*M[DATE]' Is replaced by the *month number* with trailing Ordinal Number suffix of the current month of year, e.g.: The text 'Month %>1&*M , %n' will be expanded to ==> 'Month 2nd, 22-Feb-1996', in case the actual system date is the 22nd February 1996. '%>02&*M[DATE]' Is replaced by the 2-digit *month number* with leading zero and trailing Ordinal Number suffix of the current month of year, e.g.: The text 'Month %>02&*M , %n' will be expanded to ==> 'Month 02nd, 22-Feb-1996', in case the actual system date is the 22nd February 1996.  File: gcal.info, Node: Year number, Next: Moon phase, Prev: Month number, Up: Replacements with date argument G.2.1.8 Year number '%[FORMAT]Y[DATE]' special text ................................................... '%Y[DATE]' Is replaced by the *year number* of the current year, e.g.: The text 'Year %Y , %n' will be expanded to ==> 'Year 933, 22-Feb-0933', in case the actual system date is the 22nd February 933. '%>04*Y[DATE]' Is replaced by the 4-digit *complete year number* with leading zeroes of the current year, e.g.: The text 'Year %>04*Y0015 , %n' will be expanded to ==> 'Year 0015, 22-Feb-0933', in case the actual system date is the 22nd February 933.  File: gcal.info, Node: Moon phase, Next: Biorhythm, Prev: Year number, Up: Replacements with date argument G.2.1.9 Moon phase '%[FORMAT]?[DATE]' special texts ................................................... Gcal uses a very simple algorithm for detecting the Moon phase, which computes approximate values only. The Moon phase is always calculated for 0 o'clock Universal time (UTC/GMT). *Note Calendar option '--time-offset=ARGUMENT': x-time-offset, how to change the base time for which the astronomical functions are calculated. The following Moon phase '%[FORMAT]?[DATE]' special texts are respected: '%O[DATE]' Is replaced by the *Moon phase text* of the current day of year, e.g.: The text 'Moon phase %O , %n' will be expanded to ==> 'Moon phase 94%+, 22-Dec-1996', in case the actual system date is the 22nd December 1996. The constructed Moon phase text consists of a percent value, which informs about the illuminated fraction of the Moon's disk, and a trailing sign that tells something about the state of the Moon. A trailing '+' sign indicates a waxing Moon, a '-' sign a waning Moon, a '@' sign indicates the Full Moon phase, and a '!' sign the New Moon phase. '%>03*O[DATE]' Is replaced by the 3-digit *Moon phase text* with leading zeroes of the current day of year, e.g.: The text 'Moon phase %>03*O0@t+1 , %n+1' will be expanded to ==> 'Moon phase 098%+, 23-Dec-1996', in case the actual system date is the 22nd December 1996. The constructed Moon phase text consists of a percent value, which informs about the illuminated fraction of the Moon's disk, and a trailing sign that tells something about the state of the Moon. A trailing '+' sign indicates a waxing Moon, a '-' sign a waning Moon, a '@' sign indicates the Full Moon phase, and a '!' sign the New Moon phase. '%Z[DATE]' Is replaced by the *Moon phase text graphics* of the current day of year, e.g.: The text 'Date %n %Z --- Moon phase %>03*O ~Text' will be expanded to ==> 'Date 08-Mar-1995 ' ==> ' ( @@@@@@' ==> ' ( @@@@@@@@@' ==> ' ( @@@@@@@@@@@' ==> ' ( @@@@@@@@@@@@' ==> ' ( @@@@@@@@@@@@@' ==> '( @@@@@@@@@@@@@' ==> '( @@@@@@@@@@@@@' ==> ' ( @@@@@@@@@@@@@' ==> ' ( @@@@@@@@@@@@' ==> ' ( @@@@@@@@@@@' ==> ' ( @@@@@@@@@' ==> ' ( @@@@@@@ --- Moon phase 041%+' ==> 'Text', in case the actual system date is the 8th March 1995. *Note Fixed date option '--moonimage-lines=NUMBER': x-moonimage-lines, how to change the size of a Moon phase text graphics. A possibly specified FORMAT within this special text is ignored by Gcal.  File: gcal.info, Node: Biorhythm, Next: Difference value, Prev: Moon phase, Up: Replacements with date argument G.2.1.10 Biorhythm '%?[DATE]' special texts ........................................... Gcal is able to create a "biorhythm" for any specified date of birth. The created text shows the three standard biorhythm cycles, and that are the 28 day emotional cycle, the 33 day intellectual cycle, and the 23 day physical cycle. The emotional cycle governs sensibility, nerves, moodiness, and creative ability. The intellectual cycle reflects intelligence, memory, mental alertness, and reasoning power. The physical cycle represents physical strength, endurance, energy and resistance. All cycles start in the zero point at the date of birth and swing like sine curves between their positive and negative maximum values. The periods above the zero point show the days of full vitality and efficiency while the periods below the zero point indicate days of reduced efficiency. The biorhythm is implemented for entertaining purposes only! It is up to the user to interpret the biorhythm texts. Gcal counts "critical" days, "positive" likewise "negative" days. Critical days are those days in which one or more of the biological cycles crosses the zero point. At that time, one's system is said to be in a state of flux and it may be desirable to exhibit caution. Positive days are those days in which one or more of the biological cycles have a positive maximum value. At that time, one's system is said to be in a raised state. Negative days are those days in which one or more of the biological cycles have a negative maximum value. At that time, one's system is said to be in a lessen state. The following biorhythm '%?[DATE]' special texts are respected: '%,[DATE]' Is replaced by the *biorhythm text* of the current day of year, e.g.: The text '%,19620921' will be expanded to ==> '1! 0+ 0- , Emo=+022%- Int=-091%+ Phy=-014%-', in case the actual system date is the 12th December 1996. The preceding example shows the calculated biorhythm expressed as a series of values for a person born in 1962, September 21st. The constructed text consists of two parts, and that is on the one hand a triplet of total values which indicate the critical, positive and negative day. And on the other hand a triplet of values which indicate the emotional, intellectual and physical cycle. In the first triplet of total values, a '!' suffix means a critical day, a '+' indicates a positive day, and a '-' suffix marks a negative day. In the second triplet of values, each single cycle percent value consists of a leading positive or negative sign that tells something about the distance of this value to the zero point, and a trailing character that tells something about the state of each cycle. A trailing '+' character marks a waxing phase, a '-' suffix means a waning phase, and a '@' indicates the maximum value of a phase. '%;[DATE]' Is replaced by the *biorhythm text graphics* of the current day of year, e.g.: The text '%;19620921' will be expanded to ==> '0- I P 1 E +0', in case the actual system date is the 12th December 1996. The preceding example shows the calculated biorhythm expressed as a text graphics line for a person born in 1962, September 21st. The constructed line is a bar with a negative and positive axis of adjustable length (*note Fixed date option '--biorhythm-axis=NUMBER': x-biorhythm-axis.), which left margin is represented by the total value of the negative days (the '0-' in this case), and which right margin is represented by the total value of the positive days (the '+0' in this case). The zero point of the co-ordinate is represented by the total value of the critical days, which is the '1' in this case. The emotional, intellectual and the physical phase value is accordingly placed in scaled manner on this bar, and that by using the initial letter of the cycle in each case ('E', 'I' and 'P'). Coincidental phase values are marked by a '@' character.  File: gcal.info, Node: Difference value, Prev: Biorhythm, Up: Replacements with date argument G.2.1.11 Difference value '%[FORMAT]?[DATE]' special texts .......................................................... The following difference value '%[FORMAT]?[DATE]' special texts are respected: '%yDATE' Is replaced by a *year difference value*, e.g.: The text 'Sylvester 1912 is %y1912 years ago' will be expanded to ==> 'Sylvester 1912 is -82 years ago', in case the year of the actual system date is 1994. '%B[DATE]' Is replaced by an *age value*, e.g.: The text 'My %B1962 birthday%i1952#2062' will be expanded to ==> 'My 32 birthday', in case the year of the actual system date is 1994. Those age values are only displayed, if the computation of an age value is greater zero. The fixed date warning in preceding example is displayed only in case the current year is greater than 1952 and less than 2062. '%>1&*B[DATE]' Is replaced by an *age value* with trailing Ordinal Number suffix, e.g.: The text 'My %>1&*B1962 birthday%i1952#2062' will be expanded to ==> 'My 32nd birthday', in case the year of the actual system date is 1994. Those age values are only displayed, if the computation of an age value is greater zero. The fixed date warning in preceding example is displayed only in case the current year is greater than 1952 and less than 2062.  File: gcal.info, Node: Replacements with other argument, Next: Replacements without any argument, Prev: Replacements with date argument, Up: Replacements G.2.2 Replacements with other argument '%[FORMAT]?[ARGUMENT]' special texts --------------------------------------------------------------------------- * Menu: * Actual clocktime:: * Textual date:: * Julian day number:: * Geographical distance and course angle:: * Sun data:: * Moon data:: * Contents of Environment variable:: Apart from different representations of the actual system time, a fixed format date text can be created. Moreover, it is possible to produce a day number, which bears the Julian date as base date and which can be deferred if needed. Furthermore, the approximate distance and the course angle between two geographic point locations, and different Sun and Moon oriented data and times for at pleasure any geographical location can be created. It is also possible to display the contents of environment variables in the fixed date text. For the ARGUMENT these '%?[ARGUMENT]' special texts may have, no special rules concerning definite omission values are valid.  File: gcal.info, Node: Actual clocktime, Next: Textual date, Prev: Replacements with other argument, Up: Replacements with other argument G.2.2.1 Actual clocktime '%[FORMAT]?[ARGUMENT]' special texts ............................................................. Gcal is able to represent the actual clocktime as local/zone time and as Universal time (UTC/GMT), and additionally the RFC-822(1) (*note Actual clocktime-Footnote-1::) style numerical Universal time timezone offset value and the actual numerical local time timezone offset value. *Note Actual local time '%t[ARGUMENT]' special text: x-Actual-local-time, for the detailed description of all components of the ARGUMENT, which may trail the actual clocktime '%[FORMAT]?[ARGUMENT]' special texts. All actual clocktime '%[FORMAT]?[ARGUMENT]' special texts *must* always be trailed by a _whitespace_ character which is removed in output! The following actual clocktime '%[FORMAT]?[ARGUMENT]' special texts are respected: '%t[ARGUMENT]' '%t[*][[+|-]MMMM|HH:[MM]]' references the *actual local time*, which is displayed by using the 'HH:MM' output format, e.g.: The text 'Local time: %t --> Dentist at 10:00' will be expanded to ==> 'Local time: 07:32 --> Dentist at 10:00', in case the actual local time value is 07:32 o'clock ('HH:MM'). If only '%t' is specified, the local time value will implicitly be displayed by using the _24-hours_ format. For displaying using the _12-hours_ format, add a '*' character directly behind '%t', e.g. '%t*'. A displacement value may trail the '%t' special text, which has to be specified either by using the '[+|-]MMMM' format or the '[+|-]HH:[MM]' format. '[+|-]MMMM' adds respectively subtracts the specified amount of minutes MMMM from the local time value (range '0...9999'), while '[+|-]HH:[MM]' adds respectively subtracts the given amount of hours HH (range '0...99') and minutes MM (range '0...59') from the local time value. The displacement value is always added to the local time value in case it is specified without a '+|-' sign. In case Gcal is unable to compute the actual local time in 'HH:MM' format by reason of a misspecified ARGUMENT, a '??:??' text will be created instead of the actual local time in 'HH:MM' format. The text 'Local time: %t-3: --> Dentist at 10:00' will be expanded to ==> 'Local time: 04:32 --> Dentist at 10:00', in case the actual local time value is 07:32 o'clock ('HH:MM'). '%[FORMAT]'[ARGUMENT]' '%[FORMAT]'[[+|-]MMMM|HH:[MM]]' references the *actual local time in minutes since midnight*, which is displayed by using the M[M...] output format, e.g.: The text 'Local time: %' --> Dentist at 10:00' will be expanded to ==> 'Local time: 452 --> Dentist at 10:00', in case the actual local time value is 07:32 o'clock ('HH:MM'). In case Gcal is unable to compute the actual local time in M[M...] format by reason of a misspecified ARGUMENT, a '??' text will be created instead of the actual local time in M[M...] format. '%[FORMAT]_[ARGUMENT]' '%[FORMAT]_[*][[+|-]MMMM|HH:[MM]]' references the *actual local time hour*, which is displayed by using the H[H...] output format, e.g.: The text 'Local time hour: %_-1:' will be expanded to ==> 'Local time hour: 6' in case the actual local time value is 07:32 o'clock ('HH:MM'). In case Gcal is unable to compute the actual local time hour by reason of a misspecified ARGUMENT, a '??' text will be created instead of the actual local time hour H[H...]. '%[FORMAT]?[ARGUMENT]' '%[FORMAT]?[[+|-]MMMM|HH:[MM]]' references the *actual local time minute*, which is displayed by using the M[M...] output format, e.g.: The text 'Local time minute: %>04*?+:2' will be expanded to ==> 'Local time minute: 0034' in case the actual local time value is 07:32 o'clock ('HH:MM'). In case Gcal is unable to compute the actual local time minute by reason of a misspecified ARGUMENT, a '??' text will be created instead of the actual local time minute M[M...]. '%[FORMAT]{[ARGUMENT]' '%[FORMAT]{[[+|-]MMMM|HH:[MM]]' references the *actual local time 12-hour format suffix*, which is displayed as 'am|pm', e.g.: The text 'Local time suffix: %{' will be expanded to ==> 'Local time suffix: am' in case the actual local time value is 07:32 o'clock ('HH:MM'). In case Gcal is unable to compute the actual local time 12-hour format suffix by reason of a misspecified ARGUMENT, a '??' text will be created instead of the actual local time 12-hour format suffix 'am|pm'. '%@[ARGUMENT]' '%@[*][[+|-]MMMM|HH:[MM]]' references the *actual Universal time* (UTC/GMT), which is displayed by using the 'HH:MM/DATE' output format, e.g.: The text 'Universal time: %@*-3.' will be expanded to ==> 'Universal time: 03:32am/15-Feb-1999', in case the actual date is the 15th February 1999 and the actual Universal time value is 06:32 o'clock ('HH:MM'). In case Gcal is unable to compute the actual Universal time in 'HH:MM/DATE' format by reason of a misspecified ARGUMENT, a '??:??/??-???-????' text will be created instead of the actual Universal time in 'HH:MM/DATE' format. '%[FORMAT]`[ARGUMENT]' '%[FORMAT]`[[+|-]MMMM|HH:[MM]]' references the *actual Universal time in minutes since midnight*, which is displayed by using the 'M[M...]/DATE' output format, e.g.: The text 'Universal time: %>06*`-3:' will be expanded to ==> 'Universal time: 000212/15-Feb-1999' in case the actual date is the 15th February 1999 and the actual Universal time value is 06:32 o'clock ('HH:MM'). In case Gcal is unable to compute the actual Universal time in 'M[M...]/DATE' format by reason of a misspecified ARGUMENT, a '??/??-???-????' text will be created instead of the actual Universal time in 'M[M...]/DATE' format. '%[FORMAT].[ARGUMENT]' '%[FORMAT].[*][[+|-]MMMM|HH:[MM]]' references the *actual Universal time hour*, which is displayed by using the H[H...] output format, e.g.: The text 'Universal time hour: %.-1:' will be expanded to ==> 'Universal time hour: 5' in case the actual Universal time value is 06:32 o'clock ('HH:MM'). In case Gcal is unable to compute the actual Universal time hour by reason of a misspecified ARGUMENT, a '??' text will be created instead of the actual Universal time hour H[H...]. '%[FORMAT]/[ARGUMENT]' '%[FORMAT]/[[+|-]MMMM|HH:[MM]]' references the *actual Universal time minute*, which is displayed by using the M[M...] output format, e.g.: The text 'Universal time minute: %>04*/+:2' will be expanded to ==> 'Universal time minute: 0034' in case the actual Universal time value is 06:32 o'clock ('HH:MM'). In case Gcal is unable to compute the actual Universal time minute by reason of a misspecified ARGUMENT, a '??' text will be created instead of the actual Universal time minute M[M...]. '%[FORMAT]}[ARGUMENT]' '%[FORMAT]}[[+|-]MMMM|HH:[MM]]' references the *actual Universal time 12-hour format suffix*, which is displayed as 'am|pm', e.g.: The text 'Universal time suffix: %>1w*}+10:' will be expanded to ==> 'Universal time suffix: Pm' in case the actual Universal time value is 06:32 o'clock ('HH:MM'). In case Gcal is unable to compute the actual Universal time 12-hour format suffix by reason of a misspecified ARGUMENT, a '??' text will be created instead of the actual Universal time 12-hour format suffix 'am|pm'. '%"[ARGUMENT]' '%"[[+|-]MMMM|HH:[MM]]' references the RFC-822 style *numerical Universal time timezone offset value*, which is displayed by using the '+|-HHMM' output format, e.g.: The text 'Universal time timezone offset value: %"-90' will be expanded to ==> 'Universal time timezone offset value: -0130', at which calculations are always based on the timezone of the Universal time UTC/GMT. In case Gcal is unable to compute the numerical Universal time timezone offset value by reason of a misspecified ARGUMENT, a '+????' text will be created instead of the numerical Universal time timezone offset value '+|-HHMM'. '%=[ARGUMENT]' '%=[[+|-]MMMM|HH:[MM]]' references the RFC-822 style *actual numerical local time timezone offset value*, which is displayed by using the '+|-HHMM' output format, e.g.: The text 'Local time timezone offset value CET: %=-10' will be expanded to ==> 'Local time timezone offset value CET: +0050', in case the actual timezone is equal the Central European (winter)time CEWT/CET ('+HHMM'). Calculations are always based on the timezone of the local time. In case Gcal is unable to compute the actual numerical local time timezone offset value by reason of a misspecified ARGUMENT, a '+????' text will be created instead of the actual numerical local time timezone offset value '+|-HHMM'.  File: gcal.info, Node: Actual clocktime-Footnotes, Up: Actual clocktime (1) RFC is the abbreviation of 'Request for Comments'.  File: gcal.info, Node: Textual date, Next: Julian day number, Prev: Actual clocktime, Up: Replacements with other argument G.2.2.2 Textual date '%n[ARGUMENT]' special text ................................................ '%n[[+|-]N]' references the current respectively queried *day number* relative to the current date '+/-' N days and is replaced by a *date text* by using the fixed '%>02*D-%>3#U-%>04*Y' format, e.g.: The resource file line '1962Sep21 10000 days old: %n+10000' will be expanded to ==> '10000 days old: 06-Feb-1990', in case you call Gcal with the simple '-c' option and the command 'sep 1962' (*note Single command 'MM YYYY': x-mm-yyyy.).  File: gcal.info, Node: Julian day number, Next: Geographical distance and course angle, Prev: Textual date, Up: Replacements with other argument G.2.2.3 Julian day number '%[FORMAT]j[ARGUMENT]' special text ............................................................. '%[FORMAT]j[[+|-]N]' references the current respectively queried *Julian day number* relative to the actual system date (==today). This day number is based on the date 1st January 4713 BCE --which is the starting day zero of a consecutive day counting used in astronomical computations-- and is known as the Julian Date (J.D.). The real zero of this date is at 12 o'clock Universal time (UTC/GMT); the day does not change at midnight, but at noon Universal time. Here, Gcal does not evaluate the timezone returned by the systems date function. For that reason, this day number is represented without a time fraction on the supposition that the day has already changed at noon. If you do not like the feature that the day displayed has already changed at noon, you can decrease the resulting Julian day number of that special text always by one, e.g. '%j-1'. For example: The resource file line '0 Julian day %j since 01-Jan-4713 BCE' will be expanded to ==> 'Julian day 2437929 since 01-Jan-4713 BCE', in case you call Gcal with the '-c %19620921' option and no command. If the '%[FORMAT]j' text is directly trailed by an unsigned number, this number is always subtracted from the real Julian day number. So you are able to work with any quantities referenced, e.g.: The resource file line '0 Julian day %j2415021 since 01-Jan-1900' will be expanded to ==> 'Julian day 4 since 01-Jan-1900', in case you call Gcal with the '-c %19000105' option and no command.  File: gcal.info, Node: Geographical distance and course angle, Next: Sun data, Prev: Julian day number, Up: Replacements with other argument G.2.2.4 Geographical distance and course angle '%[FORMAT]bARGUMENT' special text ................................................................................ '%[FORMAT]b[*][MODE]ISO-6709:1983-CO-ORDINATE-1/ISO-6709:1983-CO-ORDINATE-2' references either the approximate *air line distance* or the approximate *course angle (true track)*(1) (*note Geographical distance and course angle-Footnote-1::) between any of two geographic point locations. The selection, which value has to be calculated by using this special text is done by specifying the MODE part of the preceding argument. Actually, exactly three different modes can be used that are represented by the '0'...'2' characters: *Mode* *Description* '0' Calculates the air line distance between ISO-6709:1983-CO-ORDINATE-1 and ISO-6709:1983-CO-ORDINATE-2. The calculated air line distance value is displayed in kilometers by default. A '*' character directly before this mode character causes Gcal to display the distance value for another quantity, and that in "statute miles"; where one statute mile is equal to 1.609344 kilometer. If Gcal is unable to compute the approximate distance between the two geographic point locations by reason of a misspecified ARGUMENT, a '??' text will be created instead of the distance value. '1' Calculates the course angle (true track) between ISO-6709:1983-CO-ORDINATE-1 and ISO-6709:1983-CO-ORDINATE-2. The calculated course angle value is displayed in degrees and arcminutes by default. The course angle is measured clockwise relative to the geographic, true North (not the magnetic North as shown by a compass), where angle values for the North direction are both denoted as 0 degree and 360 degree. A '*' character directly before this mode character causes Gcal to display the course angle value using another style; and that in decimal degrees. If Gcal is unable to compute the approximate course angle between the two geographic point locations by reason of a misspecified ARGUMENT, a '???d??'' text will be created instead of the course angle value. '2' Like mode '1', but the course angle (true track) between ISO-6709:1983-CO-ORDINATE-2 and ISO-6709:1983-CO-ORDINATE-1 is calculated. If no MODE is given, Gcal automatically uses that mode, which is enabled by the mode character '0'. If a mode character is given that is not according to one of the '0'...'2' characters, Gcal also automatically uses that mode, which is enabled by the mode character '0'. After the optional style and mode characters, the latitude and longitude of the geographic co-ordinates follows, for which the calculations must be made. They must be conform the ISO-6709:1983 standard representation of latitude and longitude for geographic point locations. The two co-ordinates have to be separated by a '/' termination character from each other. *Note Arguments of the Sun oriented special texts: x-Sun-arguments, for the detailed description of the components of the ISO-6709:1983 standard representation of latitude and longitude for geographic point locations. For example: The text 'Distance Paris-Tokyo: %b+4852+00220/+3542+13946 km' will be expanded to ==> 'Distance Paris-Tokyo: 9746km'. The text 'Distance Paris-Tokyo: %b*0+4852+00220/+3542+13946 ms' will be expanded to ==> 'Distance Paris-Tokyo: 6056ms'. The text 'Course angle Paris-Tokyo: %b1+4852+00220/+3542+13946' will be expanded to ==> 'Course angle Paris-Tokyo: 033d22''. The text 'Course angle Tokyo-Paris: %b*2+4852+00220/+3542+13946' will be expanded to ==> 'Course angle Tokyo-Paris: 333.548'. While praying, people of Islamic faith always turn their heads into the direction of Makkah, Saudi-Arabia. Now by means of Gcal, these people can easily find out for their respective location, where they have to turn to, and that by: %b1ISO-6709:1983-CO-ORDINATE-1/+212516+0394929 where ISO-6709:1983-CO-ORDINATE-1 is simply replaced by the co-ordinate of the respective location. *Note Fixed date option '--precise': x-precise, how to obtain a more precise representation of the values that are caused by this special text. This special text *must* always be trailed by a _whitespace_ character which is removed in output!  File: gcal.info, Node: Geographical distance and course angle-Footnotes, Up: Geographical distance and course angle (1) The course angle gives the direction, which is the vertex of a great circles arc ("Orthodrome") that is casted between two points on a surface of a sphere, at a meridian (Gcal uses a geoid (rotation ellipsoid) that is calculated taking pattern from the 'World Geodetic System', short W.G.S, that was designed in 1961). Such an arc is the shortest geodetic connecting line between two points on a sphere. Indeed, the course angles on such an arc are changing continually, because the circular line that is casted intersects each meridian with another angle -- except the case, that both co-ordinates are referring to exactly the same "meridian" (longitude), or to exactly the same latitude.  File: gcal.info, Node: Sun data, Next: Moon data, Prev: Geographical distance and course angle, Up: Replacements with other argument G.2.2.5 Sun data '%[FORMAT]?ARGUMENT' special texts ................................................... '%[FORMAT]o[*][MODE]ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' references the approximate time of *sunrise* by default, '%[FORMAT]s[*][MODE]ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' references the approximate time of *sunset* by default, '%[FORMAT]u[*][MODE]ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' references the approximate period of *visibility* of the Sun (solar day length) by default, '%[FORMAT]z[*][MODE]ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' references the approximate period of *non-visibility* of the Sun (solar night length) by default. All these special texts can be used for at pleasure any geographic point location, i.e. it is possible to determine different astronomical values for any location on the globe, and that for at pleasure any clocktime with a resolution of a single minute within the period of the years AD 1 until AD 9999, that is respected by Gcal. The selection which value has to be calculated by these special texts is done by specifying the MODE part of the preceding argument. Actually, exactly 54 different modes can be used that are represented by the '0'...'9', 'a'...'z' and 'A'...'R' characters, and which create different kind of results that are depending on the special text used. First of all, here is a table in which all usable modes are described and explained sufficiently. You can also see from this table, which Sun oriented special text or texts are corresponding to which mode, i.e. cause the determination of an astronomical value as it is described in the table: *Mode* *Special *Description* text* '0' 'o', 's' Calculates the approximate midnight time of the Sun. The astronomical midnight time of the Sun is at that clocktime, when the Sun holds an "azimuth" (horizontal angular distance between the vertical circle, that passes the Sun, and the North point) of either precisely 0 degrees of precisely 180 degrees ("noon line"), which depends on the season and the geographical location. At that clocktime, the Sun is close its "lowest culmination point", i.e. close the lowest point below or above the horizontal plane the Sun transits during this day. '1' 'o', 's' Calculates the approximate noon time of the Sun. The astronomical noon time of the Sun is at that clocktime, when the Sun holds an azimuth of either precisely 180 degrees of precisely 0 degrees (noon line), which depends on the season and the geographical location. At that clocktime, the Sun is close its "highest culmination point", i.e. close the highest point above or below the horizontal plane the Sun transits during this day. People of Islamic faith normally pray for the second time on the day during the period, which is between the astronomical noon time of the Sun (or some minutes later) and the Islamic prayer time by the name of "Asr". These people commonly use the term "Zuhr" for this prayer time. The timing of Asr depends on the length of the shadow cast by a vertical pole ("gnomon"). According to the Shafi school of jurisprudence, Asr begins when the length of the shadow of a vertical pole exceeds the length of the pole. According to the Hanafi school of jurisprudence, Asr begins when the length of the shadow exceeds twice the length of the vertical pole. In both cases, the minimum length of the shadow at astronomical noon time of the Sun is subtracted from the length of the shadow before comparing it with the length of the pole. *Note Islamic Asr-1 prayer time: x-Sun-asr-1, and *note Islamic Asr-2 prayer time: x-Sun-asr-2, for further details. '2' 'o' Calculates the approximate time when the center of the Sun passes a reference altitude of 0 degrees on a "mathematical-geocentric" horizon in the morning; thus rising. A mathematical horizon is a purely geometrically-built horizon which disregards the phenomenon of refraction as it arises in reality by the influence of the Earth's atmosphere. A geocentrical horizon is the horizontal plane that passes through the Earth's center, orthogonal to the observer's local vertical. In the further context, the shorter term _mathematical horizon_ is used which actually means the mathematical-geocentric horizon. '2' 's' Calculates the approximate time when the center of the Sun passes a reference altitude of 0 degrees on a mathematical horizon in the evening; thus setting. '2' 'u' Calculates the approximate period while the center of the Sun is above a reference altitude of 0 degrees on a mathematical horizon; thus is visible. '2' 'z' Calculates the approximate period while the center of the Sun is below a reference altitude of 0 degrees on a mathematical horizon; thus is non-visible. '3' 'o' Calculates the approximate time when the upper limb of the Sun passes a reference altitude of 0 degrees on a mathematical horizon in the morning; thus rising. The above mentioned reference altitude is computed from the value of the Sun's semidiameter as it appear at that clocktime. If the reference altitude that is referring to the Sun's upper limb is converted to a reference altitude that is referring to the Sun's center, this results in a value of about 16 arcminutes below the geocentric horizon. '3' 's' Calculates the approximate time when the upper limb of the Sun passes a reference altitude of 0 degrees on a mathematical horizon in the evening; thus setting. The above mentioned reference altitude is computed from the value of the Sun's semidiameter as it appear at that clocktime. '3' 'u' Calculates the approximate period while the upper limb of the Sun is above a reference altitude of 0 degrees on a mathematical horizon; thus is visible. '3' 'z' Calculates the approximate period while the upper limb of the Sun is below a reference altitude of 0 degrees on a mathematical horizon; thus is non-visible. '4' 'o' Calculates the approximate time when the center of the Sun passes a reference altitude of 34 arcminutes below the geocentric horizon in the morning; thus rising. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the '--atmosphere' option. *note Fixed dates option '--atmosphere=AIR-PRESSURE[,TEMPERATURE]': x-atmosphere, how to change the base data of the atmosphere, so that the atmospheric conditions as defined by it are used to calculate the amount of refraction. '4' 's' Calculates the approximate time when the center of the Sun passes a reference altitude of 34 arcminutes below the geocentric horizon in the evening; thus setting. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the '--atmosphere' option. '4' 'u' Calculates the approximate period while the center of the Sun is above a reference altitude of 34 arcminutes below the geocentric horizon; thus is visible. '4' 'z' Calculates the approximate period while the center of the Sun is below a reference altitude of 34 arcminutes below the geocentric horizon; thus is non-visible. '5' 'o' Calculates the approximate time when the upper limb of the Sun passes a reference altitude of 34 arcminutes below the geocentric horizon in the morning; thus rising. This kind of rise time calculation is done according to the standard calculation method as it is commonly used internationally. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the '--atmosphere' option. *note Fixed dates option '--atmosphere=AIR-PRESSURE[,TEMPERATURE]': x-atmosphere, how to change the base data of the atmosphere, so that the atmospheric conditions as defined by it are used to calculate the amount of refraction. The above mentioned reference altitude is computed from the respective values of the Sun's semidiameter and (standard) refraction as they appear at that clocktime. If the reference altitude that is referring to the Sun's upper limb is converted to a reference altitude that is referring to the Sun's center, this results in a value of about 50 arcminutes below the geocentric horizon. '5' 's' Calculates the approximate time when the upper limb of the Sun passes a reference altitude of 34 arcminutes below the geocentric horizon in the evening; thus setting. This kind of set time calculation is done according to the standard calculation method as it is commonly used internationally. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the '--atmosphere' option. The above mentioned reference altitude is computed from the respective values of the Sun's semidiameter and (standard) refraction as they appear at that clocktime. People of Islamic faith normally pray for the second-last time on the day at this clocktime, or some minutes later. These people commonly use the term "Maghrib" for this prayer time. '5' 'u' Calculates the approximate period while the upper limb of the Sun is above a reference altitude of 34 arcminutes below the geocentric horizon; thus is visible. This kind of visibility period calculation is done according to the standard calculation method as it is commonly used internationally. '5' 'z' Calculates the approximate period while the upper limb of the Sun is above a reference altitude of 34 arcminutes below the geocentric horizon; thus is non-visible. This kind of non-visibility period calculation is done according to the standard calculation method as it is commonly used internationally. '6' 'o' Calculates the approximate time when the center of the Sun passes a reference altitude of 6 degrees below a mathematical horizon in the morning; thus the beginning of "civil twilight". The scattered light of the Sun that is remaining at the beginning of the civil twilight phase is in general not yet sufficient for reading outside without artificial illumination. '6' 's' Calculates the approximate time when the center of the Sun passes a reference altitude of 6 degrees below a mathematical horizon in the evening; thus the ending of civil twilight. '6' 'u' Calculates the approximate period while the center of the Sun is above a reference altitude of 6 degrees below a mathematical horizon; thus the period, while the center of the Sun is always above -6 degrees. '6' 'z' Calculates the approximate period while the center of the Sun is below a reference altitude of 6 degrees below a mathematical horizon; thus the period, while the center of the Sun is always below -6 degrees. '7' 'o' Calculates the approximate time when the center of the Sun passes a reference altitude of 12 degrees below a mathematical horizon in the morning; thus the beginning of "nautical twilight". The scattered light of the Sun that is remaining at the beginning of the nautical twilight phase is in general not yet sufficient for navigation using a sea horizon. '7' 's' Calculates the approximate time when the center of the Sun passes a reference altitude of 12 degrees below a mathematical horizon in the evening; thus the ending of nautical twilight. '7' 'u' Calculates the approximate period while the center of the Sun is above a reference altitude of 12 degrees below a mathematical horizon; thus the period, while the center of the Sun is always above -12 degrees. '7' 'z' Calculates the approximate period while the center of the Sun is below a reference altitude of 12 degrees below a mathematical horizon; thus the period, while the center of the Sun is always below -12 degrees. '8' 'o' Calculates the approximate time when the center of the Sun passes a reference altitude of 15 degrees below a mathematical horizon in the morning; thus the beginning of "amateur-astronomical twilight". The scattered light of the Sun that is remaining at the beginning of the amateur-astronomical twilight phase is in general yet so faint that most astronomical observations can be made. '8' 's' Calculates the approximate time when the center of the Sun passes a reference altitude of 15 degrees below a mathematical horizon in the evening; thus the ending of amateur-astronomical twilight. '8' 'u' Calculates the approximate period while the center of the Sun is above a reference altitude of 15 degrees below a mathematical horizon; thus the period, while the center of the Sun is always above -15 degrees. '8' 'z' Calculates the approximate period while the center of the Sun is below a reference altitude of 15 degrees below a mathematical horizon; thus the period, while the center of the Sun is always below -15 degrees. '8' 'o' Calculates the approximate time when the center of the Sun passes a reference altitude of 18 degrees below a mathematical horizon in the morning; thus the beginning of "astronomical twilight". No appreciable scattered sunlight is remaining at the beginning of the astronomical twilight phase, the sky is completely dark yet. People of Islamic faith normally pray for the first time on the day during the period, which is between this clocktime and the time of standard sunrise. These people commonly use the term "Fajr" for this prayer time. *Note Standard rise time of the Sun: x-Sun-standard-rise, for further details. '9' 's' Calculates the approximate time when the center of the Sun passes a reference altitude of 18 degrees below a mathematical horizon in the evening; thus the ending of astronomical twilight. People of Islamic faith normally pray for the last time on the day at this clocktime, or some minutes later. These people commonly use the term "Isha" for this prayer time. '9' 'u' Calculates the approximate period while the center of the Sun is above a reference altitude of 18 degrees below a mathematical horizon; thus the period, while the center of the Sun is always above -18 degrees. '9' 'z' Calculates the approximate period while the center of the Sun is below a reference altitude of 18 degrees below a mathematical horizon; thus the period, while the center of the Sun is always below -18 degrees. 'a' 'o', 's' Calculates the approximate "topocentric", apparent "elevation" of the Sun, thus the vertical angular distance between the Sun's center and the horizon, in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Sun's center is below the horizon at the moment, and results with a positive sign mean that the momentary center of the Sun is above the horizon. Observations of celestial objects that are done from the surface of the Earth yield in topocentrically based data. The locations of the celestial bodies are often at another place if the data is topocentrically determined instead of determine it "geocentrically", i.e. at the fictitious center of the Earth. This is mainly caused by the refraction, which raises a celestial body to another location as it is been in reality. Because the terrestrial globe flattens towards the pole caps and therefore cannot be taken as an ideally shaped sphere, the individual Earth radius between the observer's location and the center of the Earth also affects the computation of topocentrically based data. 'b' 'o', 's' Calculates the approximate topocentric, apparent azimuth of the Sun in degrees and arcminutes as it happen at civil midnight time. 'c' 'o', 's' Calculates the approximate topocentric, apparent "declination" of the Sun, thus the vertical angular distance between the Sun's center and the celestial equator, in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Sun's center is below the celestial equator at the moment, and results with a positive sign mean that the momentary center of the Sun is below the celestial equator. 'd' 'o', 's' Calculates the approximate topocentric, apparent "ecliptic longitude" of the Sun, thus the horizontal angular distance between the Sun's center and the vernal equinox point on the "ecliptic" (the zodiacal line or Sun's orbit), in degrees and arcminutes as it happen at civil midnight time. 'e' 'o', 's' Calculates the approximate topocentric, apparent "right ascension" of the Sun, thus the horizontal angular distance between the Sun's center and the hour circle that passes through the vernal equinox point on the ecliptic, as time value in hours and minutes as it happen at civil midnight time. 'f' 'o', 's' Calculates the approximate topocentric, apparent distance of the Sun from the Earth in "astronomical units" as it happen at civil midnight time. An astronomical unit, abbreviated by ae, is equal to the mean distance of the Sun from the Earth, which is about 149,597,870.691 kilometers. 'g' 'o', 's' Calculates the approximate topocentric, apparent "horizontal parallax" of the Sun in degrees and arcminutes as it happen at civil midnight time. The horizontal parallax of the Sun specifies the diameter of the Earth as it is seen from the surface of the Sun. 'h' 'o', 's' Calculates the approximate topocentric, apparent semidiameter of the Sun in degrees and arcminutes as it happen at civil midnight time. 'i' 'o', 's' Calculates the approximate refraction of the Earth's atmosphere in degrees and arcminutes as it happen at civil midnight time. 'j' 'o', 's' Calculates the approximate geocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Sun's center is below the horizon at the moment, and results with a positive sign mean that the momentary center of the Sun is above the horizon. 'k' 'o', 's' Calculates the approximate geocentric, apparent azimuth of the Sun in degrees and arcminutes as it happen at civil midnight time. 'l' 'o', 's' Calculates the approximate geocentric, apparent declination of the Sun in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Sun's center is below the celestial equator at the moment, and results with a positive sign mean that the momentary center of the Sun is above the celestial equator. 'm' 'o', 's' Calculates the approximate geocentric, apparent ecliptic longitude of the Sun in degrees and arcminutes as it happen at civil midnight time. 'n' 'o', 's' Calculates the approximate geocentric, apparent right ascension of the Sun as time value in hours and minutes as it happen at civil midnight time. 'o' 'o', 's' Calculates the approximate geocentric, apparent distance of the Sun from the Earth in astronomical units as it happen at civil midnight time. 'p' 'o', 's' Calculates the approximate geocentric, apparent horizontal parallax of the Sun in degrees and arcminutes as it happen at civil midnight time. 'q' 'o', 's' Calculates the approximate geocentric, apparent semidiameter of the Sun in degrees and arcminutes as it happen at civil midnight time. 'r' 'o', 's' Calculates the approximate "delta-t" in seconds as it happen at civil midnight time. Delta-t is the difference between the Terrestrial Dynamical time (abbreviated by TDT), that was formerly known as _Ephemeris time_ (abbreviated by ET), and the Universal time (UT). Thus, 'delta-t == TDT - UT'. 's' 'o', 's' Calculates the approximate, apparent location oriented "sidereal time" (local sidereal time (LAST), also known as _local star time_) in hours and minutes as it happen at civil midnight time. A "star day" is the period between two consecutive upper culminations of the vernal equinox point on the ecliptic in the meridian of the observer's location. Therefore, the local "star time" is the momentary period, which is past between the last upper culmination of the vernal equinox point in the meridian of the observer's location (the momentary hour angle of the vernal equinox point), thus the right ascension of the stars in the observer's meridian at the moment. 't' 'o', 's' Outputs the base time as time value in hours and minutes, for which the dynamical, i.e. depending on the respective clocktime, astronomical data and times of the Sun are calculated. Without a given '--time-offset=ARGUMENT' option, the astronomical data and times of the Sun are always calculated for 0 o'clock Universal time (UTC/GMT). *Note Calendar option '--time-offset=ARGUMENT': x-time-offset, for further details. 'u' 'o', 's' Calculates the approximate Julian date in days as it happen at civil midnight time. *Note Julian day number::, for further information about the Julian date. 'v' 'o', 's' Calculates the approximate "Julian Ephemeris date", thus a Julian date that is corrected by _delta-t_, in days as it happen at civil midnight time. 'w' 'o', 's' Calculates the approximate difference between "true solar time" and "mean solar time" as time value in hours and minutes as it happen at civil midnight time. This so-called "equation of time" is a correction to be added to the true solar time --as read on a sundial-- to obtain the mean solar time. A "true solar day" is the period between two consecutive lower culminations of the Sun. This entity is taken as the base for deriving the true solar time (as it is also shown by a sundial during the day). A star day is also known as a 'mean solar day'. Because the Sun apparently shifts with respect to the vernal equinox point on the ecliptic due to the Earth's orbit around the Sun, the star day and the true solar day have a different length. As the true Sun namely moves irregularly through the ecliptic, a fictitious "mean Sun" with a symmetrical motion through the celestial equator is used for deriving the mean solar time. So, this difference in time is a consequence of the ellipticity and tilt of the Earth's orbit, causing the irregular apparent movement of the Sun across the sky. 'x' 'o', 's' Calculates the difference of the approximate topocentric, apparent elevation of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the momentary center of the Sun is at an elevation that is below the momentary elevation of the Moon's center; thus the Sun is lower than the Moon. Results with a positive sign signify that the momentary center of the Sun is at an elevation that is above the momentary elevation of the Moon's center; thus the Sun is higher than the Moon. 'y' 'o', 's' Calculates the difference of the approximate topocentric, apparent azimuth of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. The result specifies the horizontal angular distance, by which the momentary center of the Sun is distant from the momentary Moon's center, and that measured at the vertical circles that pass the Sun and the North point and the Moon and the North point. Results with a negative sign signify that the Moon is to the right (clockwise) of the Sun if one looks to the Sun -- or alternatively expressed, that the Sun is to the left (anti-clockwise) of the Moon. Results with a positive sign signify that the Moon is to the left (anti-clockwise) of the Sun if one looks to the Sun -- or alternatively expressed, that the Sun is to the right (clockwise) of the Moon. 'z' 'o', 's' Calculates the difference of the approximate geocentric, apparent elevation of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. 'A' 'o', 's' Calculates the difference of the approximate geocentric, apparent azimuth of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. 'B' 'o' Calculates the difference of the approximate topocentric, apparent elevation of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Sun. *Note Standard rise time of the Sun: x-Sun-standard-rise, for further details. 'B' 's' Calculates the difference of the approximate topocentric, apparent elevation of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Sun. *Note Standard set time of the Sun: x-Sun-standard-set, for further details. 'C' 'o' Calculates the difference of the approximate topocentric, apparent azimuth of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Sun. *Note Standard rise time of the Sun: x-Sun-standard-rise, for further details. 'C' 's' Calculates the difference of the approximate topocentric, apparent azimuth of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Sun. *Note Standard set time of the Sun: x-Sun-standard-set, for further details. 'D' 'o' Calculates the difference of the approximate geocentric, apparent elevation of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Sun. *Note Standard rise time of the Sun: x-Sun-standard-rise, for further details. 'D' 's' Calculates the difference of the approximate geocentric, apparent elevation of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Sun. *Note Standard set time of the Sun: x-Sun-standard-set, for further details. 'E' 'o' Calculates the difference of the approximate geocentric, apparent azimuth of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Sun. *Note Standard rise time of the Sun: x-Sun-standard-rise, for further details. 'E' 's' Calculates the difference of the approximate geocentric, apparent azimuth of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Sun. *Note Standard set time of the Sun: x-Sun-standard-set, for further details. 'F' 'o', 's' Calculates the difference of the approximate astronomical midnight times of Sun and Moon (delta), at which the Sun is used as the reference point, as time value in hours and minutes as it happen at astronomical midnight time of the Sun. Results with a negative sign signify that the astronomical midnight time of the Sun is earlier than the astronomical midnight time of the Moon; thus the solar midnight is before the lunar midnight. Results with a positive sign signify that the astronomical midnight time of the Sun is later than the astronomical midnight time of the Moon; thus the solar midnight is after the lunar midnight. *Note Astronomical midnight time of the Sun: x-Sun-midnight, and *note Astronomical midnight time of the Moon: x-Moon-midnight, for further details. 'G' 'o', 's' Calculates the difference of the approximate astronomical noon times of Sun and Moon (delta), at which the Sun is used as the reference point, as time value in hours and minutes as it happen at astronomical noon time of the Sun. Results with a negative sign signify that the astronomical noon time of the Sun is earlier than the astronomical noon time of the Moon; thus the solar noon is before the lunar noon. Results with a positive sign signify that the astronomical noon time of the Sun is later than the astronomical noon time of the Moon; thus the solar noon is after the lunar noon. *Note Astronomical noon time of the Sun: x-Sun-noon, and *note Astronomical noon time of the Moon: x-Moon-noon, for further details. 'H' 'o' Calculates the difference of the approximate standard rise times of Sun and Moon (delta), at which the Sun is used as the reference point, as time value in hours and minutes as it happen at standard rise time of the Sun. Results with a negative sign signify that the standard rise time of the Sun is earlier than the standard rise time of the Moon; thus the sunrise is before the moonrise. Results with a positive sign signify that the standard rise time of the Sun is later than the standard rise time of the Moon; thus the sunrise is after the moonrise. *Note Standard rise time of the Sun: x-Sun-standard-rise, and *note Standard rise time of the Moon: x-Moon-standard-rise, for further details. 'H' 's' Calculates the difference of the approximate standard set times of Sun and Moon (delta), at which the Sun is used as the reference point, as time value in hours and minutes as it happen at standard set time of the Sun. Results with a negative sign signify that the standard set time of the Sun is earlier than the standard set time of the Moon; thus the sunset is before the moonset. Results with a positive sign signify that the standard set time of the Sun is later than the standard set time of the Moon; thus the sunset is after the moonset. *Note Standard set time of the Sun: x-Sun-standard-set, and *note Standard set time of the Moon: x-Moon-standard-set, for further details. 'I' 'o', 's' Calculates the approximate topocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at astronomical midnight time of the Sun (topocentric "midnight height"). *Note Astronomical midnight time of the Sun: x-Sun-midnight, for further details. 'J' 'o', 's' Calculates the approximate topocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at astronomical midnight time of the Sun (topocentric "midnight height"). *Note Astronomical noon time of the Sun: x-Sun-noon, for further details. 'K' 'o' Calculates the approximate topocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at standard rise time of the Sun (topocentric "rise height"). *Note Standard rise time of the Sun: x-Sun-standard-rise, for further details. 'K' 's' Calculates the approximate topocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at standard set time of the Sun (topocentric "set height"). *Note Standard set time of the Sun: x-Sun-standard-set, for further details. 'L' 'o' Calculates the approximate topocentric, apparent azimuth of the Sun in degrees and arcminutes as it happen at standard rise time of the Sun (topocentric "rise azimuth"). The horizontal angular distance between the topocentric rise azimuth and the East direction is also known as the topocentric "morning width" of the Sun. *Note Standard rise time of the Sun: x-Sun-standard-rise, for further details. 'L' 's' Calculates the approximate topocentric, apparent azimuth of the Sun in degrees and arcminutes as it happen at standard set time of the Sun (topocentric "set azimuth"). The horizontal angular distance between the topocentric set azimuth and the West direction is also known as the topocentric "evening width" of the Sun. *Note Standard set time of the Sun: x-Sun-standard-set, for further details. 'M' 'o', 's' Calculates the approximate geocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at astronomical midnight time of the Sun (geocentric "midnight height"). *Note Astronomical midnight time of the Sun: x-Sun-midnight, for further details. 'N' 'o', 's' Calculates the approximate geocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at astronomical midnight time of the Sun (geocentric "midnight height"). *Note Astronomical noon time of the Sun: x-Sun-noon, for further details. 'O' 'o' Calculates the approximate geocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at standard rise time of the Sun (geocentric "rise height"). *Note Standard rise time of the Sun: x-Sun-standard-rise, for further details. 'O' 's' Calculates the approximate geocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at standard set time of the Sun (geocentric "set height"). *Note Standard set time of the Sun: x-Sun-standard-set, for further details. 'P' 'o' Calculates the approximate geocentric, apparent azimuth of the Sun in degrees and arcminutes as it happen at standard rise time of the Sun (geocentric "rise azimuth"). The horizontal angular distance between the geocentric rise azimuth and the East direction is also known as the geocentric "morning width" of the Sun. *Note Standard rise time of the Sun: x-Sun-standard-rise, for further details. 'P' 's' Calculates the approximate geocentric, apparent azimuth of the Sun in degrees and arcminutes as it happen at standard set time of the Sun (geocentric "set azimuth"). The horizontal angular distance between the geocentric set azimuth and the West direction is also known as the geocentric "evening width" of the Sun. *Note Standard set time of the Sun: x-Sun-standard-set, for further details. 'Q' 'o' Calculates the approximate time when the length of the shadow cast by a vertical pole in the forenoon is *equal* the length of the pole. Nevertheless, the minimum length of the shadow is subtracted from the length of the shadow before comparing it with the length of the pole. *Note Fixed dates option '--adjust-value=ARGUMENT': x-adjust-value, how to change the shadow length factor. 'Q' 's' Calculates the approximate time when the length of the shadow cast by a vertical pole in the afternoon is *equal* the length of the pole. Nevertheless, the minimum length of the shadow is subtracted from the length of the shadow before comparing it with the length of the pole. People of Islamic faith, and that the people holding the _Shafi_ school of jurisprudence, normally pray for the third time on the day at this clocktime, or some minutes later. These people commonly use the term "Asr" for this prayer time. *Note Astronomical noon time of the Sun: x-Sun-noon, for more information. And note *note Fixed dates option '--adjust-value=ARGUMENT': x-adjust-value, how to change the shadow length factor. 'Q' 'u' Calculates the approximate period while the center of the Sun is above a reference altitude, at which the length of the shadow cast by a vertical pole is of single or shorter length than the pole itself. 'Q' 'z' Calculates the approximate period while the center of the Sun is below a reference altitude, at which a vertical pole either casts no shadow anymore, or casts a shadow that is longer than the single length of the pole itself. 'R' 'o' Calculates the approximate time when the length of the shadow cast by a vertical pole at forenoon is *twice* the length of the pole. Nevertheless, the minimum length of the shadow is subtracted from the length of the shadow before comparing it with the length of the pole. *Note Fixed dates option '--adjust-value=ARGUMENT': x-adjust-value, how to change the shadow length factor. 'R' 's' Calculates the approximate time when the length of the shadow cast by a vertical pole in the afternoon is *twice* the length of the pole. Nevertheless, the minimum length of the shadow is subtracted from the length of the shadow before comparing it with the length of the pole. People of Islamic faith, and that the people holding the _Hanafi_ school of jurisprudence, normally pray for the third time on the day at this clocktime, or some minutes later. These people commonly use the term "Asr" for this prayer time. *Note Astronomical noon time of the Sun: x-Sun-noon, for more information. And note *note Fixed dates option '--adjust-value=ARGUMENT': x-adjust-value, how to change the shadow length factor. 'R' 'u' Calculates the approximate period while the center of the Sun is above a reference altitude, at which the length of the shadow cast by a vertical pole is of double or shorter length than the pole itself. 'R' 'z' Calculates the approximate period while the center of the Sun is below a reference altitude, at which a vertical pole either casts no shadow anymore, or casts a shadow that is longer than twice the length of the pole itself. If no MODE is given, Gcal automatically uses that mode, which is enabled by the mode character '5'. If a mode character is given that is not according to one of the '0'...'9', 'a'...'z' and 'A'...'R' characters, Gcal also automatically uses that mode, which is enabled by the mode character '5'. Gcal represents the Sun oriented special texts depending on the selected mode using the following types and styles: 1. Unsigned decimal based rational number value Unsigned decimal based rational number values are represented using the 'N.N...' format by default. A '*' character that is directly given before some mode characters causes Gcal to represent the value for another quantity. For the mode characters, which a. cause the calculation of Earth/Sun or Earth/Moon distances, the calculated distance is represented in kilometers. b. cause the calculation of phase angles of the Moon, the calculated phase angle is represented as a phase value in percents. If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations. *Note Event texts of the Sun oriented special texts: x-Sun-event-texts, where you can find the event oriented texts that are created for clocktime values, which are schematically and analogously used for the type of representation as it is described here. 2. Signed decimal based rational number value Signed decimal based rational number values are represented using the '+|-N.N...' format by default. A '*' character that is directly given before a mode character causes Gcal not to represent such values using another style. If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations. *Note Event texts of the Sun oriented special texts: x-Sun-event-texts, where you can find the event oriented texts that are created for clocktime values, which are schematically and analogously used for the type of representation as it is described here. 3. Clocktime value Clocktime values are represented in hours and minutes, and that in the 'HH:MM' _24-hour_ format by default. A '*' character that is directly given before a mode character causes Gcal to represent the clocktime value using the _12-hour_ format, thus to provide it with a time suffix. *Note Actual local time '%t[ARGUMENT]' special text: x-Actual-local-time, for more details about the above mentioned time value template. If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations: * In case Gcal is unable to compute the approximate clocktime by reason of a misspecified ARGUMENT, a '??:??' text will be created instead of the clocktime text. * In case Gcal calculates an approximate clocktime that refers to a previous or next day, or Gcal is unable to calculate a clocktime because the event calculated does not occur during this day, a '**:**' text will be created instead of the clocktime text. * In case Gcal is unable to calculate an approximate clocktime because the reference point of the astronomical object, thus either the center or the upper limb of the Sun's or the Moon's disk, is always above the respective reference altitude, a '++:++' text will be created instead of the clocktime text. * In case Gcal is unable to calculate an approximate clocktime because the reference point of the astronomical object, thus either the center or the upper limb of the Sun's or the Moon's disk, is always below the respective reference altitude, a '--:--' text will be created instead of the clocktime text. 4. Unsigned time value Unsigned time values, which mostly denote a period or interval of time, are represented in hours and minutes using the 'HHhMM'' format by default. A '*' character that is directly given before a mode character causes Gcal to represent the time value using another style, and that in decimal hours, i.e. in the 'HH.H...' format. If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations. *Note Event texts of the Sun oriented special texts: x-Sun-event-texts, where you can find the event oriented texts that are created for clocktime values, which are schematically and analogously used for the type of representation as it is described here. 5. Signed time value Signed time values, which mostly denote a period or interval of time, are represented in hours and minutes using the '+|-HHhMM'' format by default. A '*' character that is directly given before a mode character causes Gcal to represent the time value using another style, and that in decimal hours, i.e. in the '+|-HH.H...' format. If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations. *Note Event texts of the Sun oriented special texts: x-Sun-event-texts, where you can find the event oriented texts that are created for clocktime values, which are schematically and analogously used for the type of representation as it is described here. 6. Unsigned angular value Unsigned angular values are represented in degrees and arcminutes using the 'DDDdMM'' format by default. A '*' character that is directly given before a mode character causes Gcal to represent the angular value using another style, and that in decimal degrees, i.e. in the 'DDD.D...' format. If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations. *Note Event texts of the Sun oriented special texts: x-Sun-event-texts, where you can find the event oriented texts that are created for clocktime values, which are schematically and analogously used for the type of representation as it is described here. 7. Signed angular value Signed angular values are represented in degrees and arcminutes using the '+|-DDDdMM'' format by default. A '*' character that is directly given before a mode character causes Gcal to represent the angular value using another style, and that in decimal degrees, i.e. in the '+|-DDD.D...' format. If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations. *Note Event texts of the Sun oriented special texts: x-Sun-event-texts, where you can find the event oriented texts that are created for clocktime values, which are schematically and analogously used for the type of representation as it is described here. After the optional style and mode characters, the latitude and longitude of the geographic co-ordinates follows, for which the calculations must be made. They must be conform the ISO-6709:1983 standard representation of latitude and longitude for geographic point locations, so that the co-ordinate has to be declared like this: * Latitude ('+' for North and on the equator, '-' for South of the equator.) '+|-DD[.DD]' Degrees (2 digits), and optionally decimal degrees '+|-DDMM[.MM]' Degrees (2 digits), arcminutes (2 digits), and optionally decimal minutes '+|-DDMMSS[.SS]' Degrees (2 digits), arcminutes (2 digits), arcseconds (2 digits), and optionally decimal seconds * Longitude ('+' for East and on the prime meridian (Greenwich), '-' for West of Greenwich and up to the 180th meridian.) '+|-DDD[.DD]' Degrees (3 digits), and optionally decimal degrees '+|-DDDMM[.MM]' Degrees (3 digits), arcminutes (2 digits), and optionally decimal minutes '+|-DDDMMSS[.SS]' Degrees (3 digits), arcminutes (2 digits), arcseconds (2 digits), and optionally decimal seconds * Optionally, the relative height in meters above the sea level ('+' for heights above and on the sea level, '-' for heights below the sea level.) '[+|-N[N[N[N]]]]' Height in meters (integer number) in range '-9999'...'+9999' (1...4 digits) All components of the co-ordinates must have leadings zeroes in case they have less digits than the templates shown above. Declared decimal seconds are not respected by Gcal. Heights which have a negative sign remain unrespected if Gcal determinates Sun and Moon data and times, respectively. In such a case, Gcal always uses the height '+0'. Latitude and longitude co-ordinates, and the height of the observer's location are connected without any separating characters, like '+40-075+61', '+401213.1-0750015.1' or '+40.20361-075.00417+0061'. See the pertinent literature for more details. A time value '[+|-]MMMM|HH:[MM]', which is separated by a ',' character, may trail the co-ordinate. Such a time value informs Gcal, about how many minutes MMMM respectively hours HH and minutes MM the geographic location is displaced from Universal time (UTC/GMT). This time displacement value defines the timezone, which is actually valid for this location. If summer- and wintertimes are respected for the location, you should include that change in time into the timezone value for the period in which the summertime is valid, by which the clock is put on during the summertime period -- such a change is either subtracted from the timezone value for locations West of the prime meridian (Greenwich), or it is added for locations East of the prime meridian, because Gcal is actually unable to perform such operations automatically! *Note Actual local time '%t[ARGUMENT]' special text: x-Actual-local-time, for more details about the above mentioned time value template. If no time displacement value is specified for a given co-ordinate, Gcal assumes a time displacement value of '0', which is equal to the actual Universal time (UTC/GMT). The following table informs you about which type of representation is caused by a mode. The previously defined numbering scheme, as it has been used for the introduction of the types of representations, is used as key value in the column that holds the type of representation. The table also contains a column that shows whether a mode enables dynamical values, i.e. values that are depending on the respective clocktime (if you use the '--time-offset=ARGUMENT' option, you can change the respective clocktime that is used for calculating such values). In a next table column, it is listed whether the given co-ordinate of the location influences the determination of a value, and the last column of the table gives you the information whether a given timezone value affects the values determination: *Mode* *Representation *Dynamical* *Co-ordinate* *Timezone* Type* '0' 3 No Yes Yes '1' 3 No Yes Yes '2' 3 or 4 No Yes Yes '3' 3 or 4 No Yes Yes '4' 3 or 4 No Yes Yes '5' 3 or 4 No Yes Yes '6' 3 or 4 No Yes Yes '7' 3 or 4 No Yes Yes '8' 3 or 4 No Yes Yes '9' 3 or 4 No Yes Yes 'a' 7 Yes Yes Yes 'b' 6 Yes Yes Yes 'c' 7 Yes Yes Yes 'd' 6 Yes Yes Yes 'e' 4 Yes Yes Yes 'f' 1 or 1a Yes Yes Yes 'g' 6 Yes Yes Yes 'h' 6 Yes Yes Yes 'i' 6 Yes No No 'j' 7 Yes Yes Yes 'k' 6 Yes Yes Yes 'l' 7 Yes Yes Yes 'm' 6 Yes Yes Yes 'n' 4 Yes Yes Yes 'o' 1 or 1a Yes Yes Yes 'p' 6 Yes Yes Yes 'q' 6 Yes Yes Yes 'r' 2 Yes No No 's' 3 Yes Yes Yes 't' 3 Yes No No 'u' 1 Yes No No 'v' 1 Yes No No 'w' 5 Yes No Yes 'x' 7 Yes Yes Yes 'y' 7 Yes Yes Yes 'z' 7 Yes Yes Yes 'A' 7 Yes Yes Yes 'B' 7 No Yes Yes 'C' 7 No Yes Yes 'D' 7 No Yes Yes 'E' 7 No Yes Yes 'F' 5 No Yes Yes 'G' 5 No Yes Yes 'H' 5 No Yes Yes 'I' 7 No Yes Yes 'J' 7 No Yes Yes 'K' 7 No Yes Yes 'L' 6 No Yes Yes 'M' 7 No Yes Yes 'N' 7 No Yes Yes 'O' 7 No Yes Yes 'P' 6 No Yes Yes 'Q' 3 or 4 No Yes Yes 'R' 3 or 4 No Yes Yes And now some examples to these special texts: The text 'Sunrise at %o+5158+00738,120 in MS, BRD' will be expanded to ==> 'Sunrise at 05:16 in MS, BRD', in case the actual system date is the 1st June 1998. The text 'Sunset at %s*5+5158+00738,120 in MS, BRD' will be expanded to ==> 'Sunset at 09:39pm in MS, BRD', in case the actual system date is the 1st June 1998. The text 'Sun visible %u5+5158+00738,120 in MS, BRD' will be expanded to ==> 'Sun visible 16h24' in MS, BRD', in case the actual system date is the 1st June 1998. The text 'Sun non-visible %z*+5158+00738,120 in MS, BRD' will be expanded to ==> 'Sun non-visible 7.607 in MS, BRD', in case the actual system date is the 1st June 1998. The text 'Sun azimuth 0 o'clock=%s*a+5158+00738,120 in MS, BRD' will be expanded to ==> 'Sun azimuth 0 o'clock=339d16' in MS, BRD', in case the actual system date is the 1st June 1998. The text 'Equation of time %ot+00+000=%o*w+00+000,120 BRD' will be expanded to ==> 'Equation of time +16h00'=+00h02'13.201" BRD', in case you call Gcal with the '--time-offset=16:' and '--precise' options and the actual system date is the 1st June 1998. The text 'Julian date at %ot+00+000 =%ou+00+000' will be expanded to ==> 'Julian date at +10h15'=2450965.927', in case you call Gcal with the '--time-offset=10:15' option and the actual system date is the 1st June 1998. Here is a list that reports about the used reference systems in a short manner, describes other aspects that are unmentioned now, and informs about the lacks and limitations that are existing for the Sun oriented special texts: * All astronomical calculations are based on methods that use --astronomically seen-- low-precision elements, which of course is shown in the precision of the results that are caused by them. Nevertheless in most cases, these results can be treated as more as sufficiently precise if one measures their practical use. * All azimuth and elevation values are always referring to the center of the respective astronomical object, except the case, it is stated otherwise. * The base point of azimuth values, right ascension values and other ecliptic co-ordinate values is always measured clockwise relative to the geographical, true North (not the magnetic North as shown by a compass), where angular values for the North direction are both denoted as 0 degree and 360 degree. * All topocentrically based azimuth and elevation values are always corrected by the amount of atmospheric refraction. Such a kind of correction is always done if the center of the respective astronomical object is above 2 degrees below the horizon. * Generally, the rise and set times of the Sun cannot be precisely predicted, because depending on unpredictable atmospheric conditions, i.e. the local weather conditions as they appear during these times change the amount of atmospheric refraction at the horizon, so that the precalculated rise and set times may throughout be in error by a minute or more. * The accuracy of rise and set computations decreases again at high latitudes, i.e. within in the solar Arctic Circle. There, small variations in atmospheric refraction can change the time of sunrise or sunset by many minutes, since the Sun intersects the horizon at a very shallow angle. For the same reason, at high latitudes, the effects of observer height and local topography are magnified and can substantially change the times of the phenomena actually observed, or even whether the phenomena are observed to occur at all. * The short explanations that are given to the different twilight phases all assume the model of ideal atmospheric conditions by default. It is obvious that these explanations all become meaningless if other conditions occur in reality, like a cloudy sky or a badly polluted atmosphere. *Please also note the following references:* * *Note Fixed dates option '--precise': x-precise, how to obtain a more precise representation of the values which are cause by these special texts. * And note *note Calendar option '--time-offset=ARGUMENT': x-time-offset, how to change the clocktime, for which the dynamical, i.e. depending on the respective clocktime, Sun oriented special texts are calculated. * Likewise, see *note Fixed dates option '--cycle-end=ARGUMENT': x-cycle-end, how the dynamical, i.e. depending on the respective clocktime, Sun oriented special texts are calculated for a series of clocktimes for the current day. * And also note *note Fixed dates option '--adjust-value=ARGUMENT': x-adjust-value, how to change the reference altitude that is used to calculate the rise and set times, as well as the shadow length factor. * Furthermore, see *note Fixed dates option '--atmosphere=AIR-PRESSURE[,TEMPERATURE]': x-atmosphere, how to change the base data of the atmosphere that influences the calculation of the Sun oriented special texts. * And last, note *note Fixed dates option '--limit': x-limit, how to limit the rise and set times of the Sun to the actual day. All Sun oriented special texts *must* always be trailed by a _whitespace_ character which is removed in output!  File: gcal.info, Node: Moon data, Next: Contents of Environment variable, Prev: Sun data, Up: Replacements with other argument G.2.2.6 Moon data '%[FORMAT]?ARGUMENT' special texts .................................................... '%[FORMAT]([*][MODE]ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' references the approximate time of *moonrise* by default, '%[FORMAT])[*][MODE]ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' references the approximate time of *moonset* by default, '%[FORMAT][[*][MODE]ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' references the approximate period of *visibility* of the Moon (lunar day length) by default, '%[FORMAT]][*][MODE]ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' references the approximate period of *non-visibility* of the Moon (lunar night length) by default. All these special texts can be used for at pleasure any geographic point location, i.e. it is possible to determine different astronomical values for any location on the globe, and that for at pleasure any clocktime with a resolution of a single minute within the period of the years AD 1 until AD 9999, that is respected by Gcal. The selection which value has to be calculated by these special texts is done by specifying the MODE part of the preceding argument. Actually, exactly 61 different modes can be used that are represented by the '0'...'9', 'a'...'z' and 'A'...'Y' characters, and which create different kind of results that are depending on the special text used. First of all, here is a table in which all usable modes are described and explained sufficiently. You can also see from this table, which Moon oriented special text or texts are corresponding to which mode, i.e. cause the determination of an astronomical value as it is described in the table: *Mode* *Special *Description* text* '0' '(', ')' Calculates the approximate midnight time of the Moon. The astronomical midnight time of the Moon is at that clocktime, when the Moon holds an "azimuth" (horizontal angular distance between the vertical circle, that passes the Moon, and the North point) of either precisely 0 degrees of precisely 180 degrees, which depends on the season and the geographical location. At that clocktime, the Moon is close its "lowest culmination point", i.e. close the lowest point below or above the horizontal plane the Moon transits during this day. Nevertheless, there is exactly one day during a "synodic month" (or lunation) --i.e. the mean time between two consecutive "conjunctions" (or New Moon phases)-- at which no lunar midnight happens, because the Moon revolves the Earth within 24 hours and 50 minutes on the average -- which also means, that the Moon rises on the average 50 minutes later each day. '1' '(', ')' Calculates the approximate noon time of the Moon. The astronomical noon time of the Moon is at that clocktime, when the Moon holds an azimuth of either precisely 180 degrees of precisely 0 degrees, which depends on the season and the geographical location. At that clocktime, the Moon is close its "highest culmination point", i.e. close the highest point above or below the horizontal plane the Moon transits during this day. Nevertheless, there is exactly one day during a synodic month at which no lunar noon happens. '2' '(' Calculates the approximate time when the center of the Moon passes a reference altitude which is between about 54 and 61 arcminutes above a "mathematical-geocentric" horizon before lunar noon time; thus rising. A mathematical horizon is a purely geometrically-built horizon which disregards the phenomenon of refraction as it arises in reality by the influence of the Earth's atmosphere. A geocentrical horizon is the horizontal plane that passes through the Earth's center, orthogonal to the observer's local vertical. In the further context, the shorter term _mathematical horizon_ is used which actually means the mathematical-geocentric horizon. The above mentioned reference altitude is computed from the value of the Moon's parallax as it appear at that clocktime. Nevertheless, there is exactly one day during a synodic month at which no such moonrise happens. '2' ')' Calculates the approximate time when the center of the Moon passes a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon after lunar noon time; thus setting. The above mentioned reference altitude is computed from the value of the Moon's parallax as it appear at that clocktime. Nevertheless, there is exactly one day during a synodic month at which no such moonset happens. '2' '[' Calculates the approximate period while the center of the Moon is above a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon; thus is visible. '2' ']' Calculates the approximate period while the center of the Moon is below a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon; thus is non-visible. '3' '(' Calculates the approximate time when the upper limb of the Moon passes a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon before lunar noon time; thus rising. The above mentioned reference altitude is computed from the respective values of the Moon's semidiameter and Moon's parallax as they appear at that clocktime. If the reference altitude that is referring to the Moon's upper limb is converted to a reference altitude that is referring to the Moon's center, this results in a value which is between about 39 and 44 arcminutes above the geocentric horizon. Nevertheless, there is exactly one day during a synodic month at which no such moonrise happens. '3' ')' Calculates the approximate time when the upper limb of the Moon passes a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon after lunar noon time; thus setting. The above mentioned reference altitude is computed from the respective values of the Moon's semidiameter and Moon's parallax as they appear at that clocktime. Nevertheless, there is exactly one day during a synodic month at which no such moonset happens. '3' '[' Calculates the approximate period while the upper limb of the Moon is above a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon; thus is visible. '3' ']' Calculates the approximate period while the upper limb of the Moon is below a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon; thus is non-visible. '4' '(' Calculates the approximate time when the center of the Moon passes a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon before lunar noon time; thus rising. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the '--atmosphere' option. *note Fixed dates option '--atmosphere=AIR-PRESSURE[,TEMPERATURE]': x-atmosphere, how to change the base data of the atmosphere, so that the atmospheric conditions as defined by it are used to calculate the amount of refraction. The above mentioned reference altitude is computed from the respective values of the Moon's parallax and (standard) refraction as they appear at that clocktime. Nevertheless, there is exactly one day during a synodic month at which no such moonrise happens. '4' ')' Calculates the approximate time when the center of the Moon passes a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon after lunar noon time; thus setting. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the '--atmosphere' option. The above mentioned reference altitude is computed from the respective values of the Moon's parallax and (standard) refraction as they appear at that clocktime. Nevertheless, there is exactly one day during a synodic month at which no such moonset happens. '4' '[' Calculates the approximate period while the center of the Moon is above a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon; thus is visible. '4' ']' Calculates the approximate period while the center of the Moon is below a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon; thus is non-visible. '5' '(' Calculates the approximate time when the upper limb of the Moon passes a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon before lunar noon time; thus rising. This kind of rise time calculation is done according to the standard calculation method as it is commonly used internationally. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the '--atmosphere' option. *note Fixed dates option '--atmosphere=AIR-PRESSURE[,TEMPERATURE]': x-atmosphere, how to change the base data of the atmosphere, so that the atmospheric conditions as defined by it are used to calculate the amount of refraction. The above mentioned reference altitude is computed from the respective values of the Moon's semidiameter, Moon's parallax and (standard) refraction as they appear at that clocktime. If the reference altitude that is referring to the Moon's upper limb is converted to a reference altitude that is referring to the Moon's center, this results in a value which is between about 5 and 10 arcminutes above the geocentric horizon. Nevertheless, there is exactly one day during a synodic month at which no such moonrise happens. '5' ')' Calculates the approximate time at which the upper limb of the Moon passes a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon after lunar noon time; thus setting. This kind of set time calculation is done according to the standard calculation method as it is commonly used internationally. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the '--atmosphere' option. The above mentioned reference altitude is computed from the respective values of the Moon's semidiameter, Moon's parallax and (standard) refraction as they appear at that clocktime. Nevertheless, there is exactly one day during a synodic month at which no such moonset happens. '5' '[' Calculates the approximate period while the upper limb of the Moon is above a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon; thus is visible. This kind of visibility period calculation is done according to the standard calculation method as it is commonly used internationally. '5' ']' Calculates the approximate period while the upper limb of the Moon is below a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon; thus is non-visible. This kind of non-visibility period calculation is done according to the standard calculation method as it is commonly used internationally. '6' '(', ')' Calculates the approximate "topocentric", apparent "horizontal parallax" of the Moon in degrees and arcminutes as it happen at civil midnight time. The Moon's parallax states the diameter of the Earth as it is seen from the surface of the Moon. Observations of celestial objects that are done from the surface of the Earth yield in topocentrically based data. The locations of the celestial bodies are often at another place if the data is topocentrically determined instead of determine it "geocentrically", i.e. at the fictitious center of the Earth. This is mainly caused by the refraction, which raises a celestial body to another location as it is been in reality. Because the terrestrial globe flattens towards the pole caps and therefore cannot be taken as an ideally shaped sphere, the individual Earth radius between the observer's location and the center of the Earth also affects the computation of topocentrically based data. '7' '(', ')' Calculates the approximate topocentric, apparent semidiameter of the Moon in degrees and arcminutes as it happen at civil midnight time. '8' '(', ')' Calculates the approximate topocentric, apparent brightness of the Moon in "magnitude units" as it happen at civil midnight time. The magnitude (Latin term 'magnitudo', abbreviated m) is used to define the brightness of a star, and is a non-metrical value. The difference between two consecutive magnitudes is 1 to 2.512. Therefore, a star with the brightness of 1m is 2.512 times brighter than a star of 2m. A negative magnitude denotes a very bright star, for example almost -27m for the Sun, whereas the hardly visible planet Pluto has a magnitude of a bit more than +14m. The Full Moon has a visual brightness of about -12m.55. '9' '(', ')' Calculates the approximate topocentric, apparent phase angle of the Moon in range 0.0...1.0 as it happen at civil midnight time. 'a' '(', ')' Calculates the approximate topocentric, apparent "elevation" of the Moon, thus the vertical angular distance between the Moon's center and the horizon, in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Moon's center is below the horizon at the moment, and results with a positive sign mean that the momentary center of the Moon is above the horizon. 'b' '(', ')' Calculates the approximate topocentric, apparent azimuth of the Moon in degrees and arcminutes as it happen at civil midnight time. 'c' '(', ')' Calculates the approximate topocentric, apparent "declination" of the Moon, thus the vertical angular distance between the Moon's center and the celestial equator, in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Moon's center is below the celestial equator at the moment, and results with a positive sign mean that the momentary center of the Moon is above the celestial equator. 'd' '(', ')' Calculates the approximate topocentric, apparent "ecliptic longitude" of the Moon, thus the horizontal angular distance between the Moon's center and the vernal equinox point on the "ecliptic" (the zodiacal line or Sun's orbit), in degrees and arcminutes as it happen at civil midnight time. 'e' '(', ')' Calculates the approximate topocentric, apparent "ecliptic latitude" of the Moon, thus the vertical angular distance between the Moon's center and the ecliptic (zodiacal line/Sun's orbit), in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Moon's center is North of the ecliptic at the moment, and results with a positive sign mean that the momentary center of the Moon is South of the ecliptic. 'f' '(', ')' Calculates the approximate topocentric, apparent "right ascension" of the Moon, thus the horizontal angular distance between the Moon's center and the hour circle that passes through the vernal equinox point on the ecliptic, as time value in hours and minutes as it happen at civil midnight time. 'g' '(', ')' Calculates the approximate topocentric, apparent distance of the Moon from the Earth in mean "Earth equator radii" as it happen at civil midnight time. The mean radius of Earth at the equator is about 6,378.137 kilometer. 'h' '(', ')' Calculates the approximate topocentric, apparent "elongation" of the Moon, thus the horizontal angular distance between the Moon's center and the Sun's center, in degrees and arcminutes as it happen at civil midnight time. 'i' '(', ')' Calculates the approximate refraction of the Earth's atmosphere in degrees and arcminutes as it happen at civil midnight time. 'j' '(', ')' Calculates the approximate geocentric, apparent horizontal parallax of the Moon in degrees and arcminutes as it happen at civil midnight time. 'k' '(', ')' Calculates the approximate geocentric, apparent semidiameter of the Moon in degrees and arcminutes as it happen at civil midnight time. 'l' '(', ')' Calculates the approximate geocentric, apparent brightness of the Moon in magnitude units as it happen at civil midnight time. 'm' '(', ')' Calculates the approximate geocentric, apparent phase angle of the Moon in range 0.0...1.0 as it happen at civil midnight time. 'n' '(', ')' Calculates the approximate geocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Moon's center is below the horizon at the moment, and results with a positive sign mean that the momentary center of the Moon is above the horizon. 'o' '(', ')' Calculates the approximate geocentric, apparent azimuth of the Moon in degrees and arcminutes as it happen at civil midnight time. 'p' '(', ')' Calculates the approximate geocentric, apparent declination of the Moon in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Moon's center is below the celestial equator at the moment, and results with a positive sign mean that the momentary center of the Moon is above the celestial equator. 'q' '(', ')' Calculates the approximate geocentric, apparent ecliptic longitude of the Moon in degrees and arcminutes as it happen at civil midnight time. 'r' '(', ')' Calculates the approximate geocentric, apparent ecliptic latitude of the Moon in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Moon's center is North of the ecliptic at the moment, and results with a positive sign mean that the momentary center of the Moon is South of the ecliptic. 's' '(', ')' Calculates the approximate geocentric, apparent right ascension of the Moon as time value in hours and minutes as it happen at civil midnight time. 't' '(', ')' Calculates the approximate geocentric, apparent distance of the Moon from the Earth in mean Earth equator radii as it happen at civil midnight time. 'u' '(', ')' Calculates the approximate geocentric, apparent elongation of the Moon in degrees and arcminutes as it happen at civil midnight time. 'v' '(', ')' Calculates the approximate "delta-t" in seconds as it happen at civil midnight time. Delta-t is the difference between the Terrestrial Dynamical time (abbreviated by TDT), that was formerly known as _Ephemeris time_ (abbreviated by ET), and the Universal time (UT). Thus, 'delta-t == TDT - UT'. 'w' '(', ')' Calculates the approximate, apparent location oriented "sidereal time" (local sidereal time (LAST), also known as _local star time_) in hours and minutes as it happen at civil midnight time. A "star day" is the period between two consecutive upper culminations of the vernal equinox point on the ecliptic in the meridian of the observer's location. Therefore, the local "star time" is the momentary period, which is past between the last upper culmination of the vernal equinox point in the meridian of the observer's location (the momentary hour angle of the vernal equinox point), thus the right ascension of the stars in the observer's meridian at the moment. 'x' '(', ')' Outputs the base time as time value in hours and minutes, for which the dynamical, i.e. depending on the respective clocktime, astronomical data and times of the Moon are calculated. Without a given '--time-offset=ARGUMENT' option, the astronomical data and times of the Moon are always calculated for 0 o'clock Universal time (UTC/GMT). *Note Calendar option '--time-offset=ARGUMENT': x-time-offset, for further details. 'y' '(', ')' Calculates the approximate Julian date in days as it happen at civil midnight time. *Note Julian day number::, for further information about the Julian date. 'z' '(', ')' Calculates the approximate "Julian Ephemeris date", thus a Julian date that is corrected by _delta-t_, in days as it happen at civil midnight time. 'A' '(', ')' Calculates the difference of the approximate topocentric, apparent elevation of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the momentary center of the Moon is at an elevation that is below the momentary elevation of the Sun's center; thus the Moon is lower than the Sun. Results with a positive sign signify that the momentary center of the Moon is at an elevation that is above the momentary elevation of the Sun's center; thus the Moon is higher than the Sun. 'B' '(', ')' Calculates the difference of the approximate topocentric, apparent azimuth of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. The result specifies the horizontal angular distance, by which the momentary center of the Moon is distant from the momentary Sun's center, and that measured at the vertical circles that pass the Moon and the North point and the Sun and the North point. Results with a negative sign signify that the Sun is to the right (clockwise) of the Moon if one looks to the Moon -- or alternatively expressed, that the Moon is to the left (anti-clockwise) of the Sun. Results with a positive sign signify that the Sun is to the left (anti-clockwise) of the Moon if one looks to the Moon -- or alternatively expressed, that the Moon is to the right (clockwise) of the Sun. 'C' '(', ')' Calculates the difference of the approximate geocentric, apparent elevation of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. 'D' '(', ')' Calculates the difference of the approximate geocentric, apparent azimuth of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. 'E' '(' Calculates the difference of the approximate topocentric, apparent elevation of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Moon. *Note Standard rise time of the Moon: x-Moon-standard-rise, for further details. 'E' ')' Calculates the difference of the approximate topocentric, apparent elevation of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Moon. *Note Standard set time of the Moon: x-Moon-standard-set, for further details. 'F' '(' Calculates the difference of the approximate topocentric, apparent azimuth of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Moon. *Note Standard rise time of the Moon: x-Moon-standard-rise, for further details. 'F' ')' Calculates the difference of the approximate topocentric, apparent azimuth of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Moon. *Note Standard set time of the Moon: x-Moon-standard-set, for further details. 'G' '(' Calculates the difference of the approximate geocentric, apparent elevation of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Moon. *Note Standard rise time of the Moon: x-Moon-standard-rise, for further details. 'G' ')' Calculates the difference of the approximate geocentric, apparent elevation of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Moon. *Note Standard set time of the Moon: x-Moon-standard-set, for further details. 'H' '(' Calculates the difference of the approximate geocentric, apparent azimuth of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Moon. *Note Standard rise time of the Moon: x-Moon-standard-rise, for further details. 'H' ')' Calculates the difference of the approximate geocentric, apparent azimuth of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Moon. *Note Standard set time of the Moon: x-Moon-standard-set, for further details. 'I' '(', ')' Calculates the difference of the approximate astronomical midnight times of Moon and Sun (delta), at which the Moon is used as the reference point, as time value in hours and minutes as it happen at astronomical midnight time of the Moon. Results with a negative sign signify that the astronomical midnight time of the Moon is earlier than the astronomical midnight time of the Sun; thus the lunar midnight is before the solar midnight. Results with a positive sign signify that the astronomical midnight time of the Moon is later than the astronomical midnight time of the Sun; thus the lunar midnight is after the solar midnight. *Note Astronomical midnight time of the Moon: x-Moon-midnight, and *note Astronomical midnight time of the Sun: x-Sun-midnight, for further details. 'J' '(', ')' Calculates the difference of the approximate astronomical noon times of Moon and Sun (delta), at which the Moon is used as the reference point, as time value in hours and minutes as it happen at astronomical noon time of the Moon. Results with a negative sign signify that the astronomical noon time of the Moon is earlier than the astronomical noon time of the Sun; thus the lunar noon is before the solar noon. Results with a positive sign signify that the astronomical noon time of the Moon is later than the astronomical noon time of the Sun; thus the lunar noon is after the solar noon. *Note Astronomical noon time of the Moon: x-Moon-noon, and *note Astronomical noon time of the Sun: x-Sun-noon, for further details. 'K' '(' Calculates the difference of the approximate standard rise times of Moon and Sun (delta), at which the Moon is used as the reference point, as time value in hours and minutes as it happen at standard rise time of the Moon. Results with a negative sign signify that the standard rise time of the Moon is earlier than the standard rise time of the Sun; thus the moonrise is before the sunrise. Results with a positive sign signify that the standard rise time of the Moon is later than the standard rise time of the Sun; thus the moonrise is after the sunrise. *Note Standard rise time of the Moon: x-Moon-standard-rise, and *note Standard rise time of the Sun: x-Sun-standard-rise, for further details. 'K' ')' Calculates the difference of the approximate standard set times of Moon and Sun (delta), at which the Moon is used as the reference point, as time value in hours and minutes as it happen at standard set time of the Moon. Results with a negative sign signify that the standard set time of the Moon is earlier than the standard set time of the Sun; thus the moonset is before the sunset. Results with a positive sign signify that the standard set time of the Moon is later than the standard set time of the Sun; thus the moonset is after the sunset. *Note Standard set time of the Moon: x-Moon-standard-set, and *note Standard set time of the Sun: x-Sun-standard-set, for further details. 'L' '(', ')' Calculates the approximate topocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at astronomical midnight time of the Moon (topocentric "midnight height"). *Note Astronomical midnight time of the Moon: x-Moon-midnight, for further details. 'M' '(', ')' Calculates the approximate topocentric, apparent phase angle of the Moon in range 0.0...1.0 as it happen at astronomical midnight time of the Moon (topocentric "midnight phase angle"). *Note Astronomical midnight time of the Moon: x-Moon-midnight, for further details. 'N' '(', ')' Calculates the approximate topocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at astronomical noon time of the Moon (topocentric "noon height"). *Note Astronomical noon time of the Moon: x-Moon-noon, for further details. 'O' '(', ')' Calculates the approximate topocentric, apparent phase angle of the Moon in range 0.0...1.0 as it happen at astronomical noon time of the Moon (topocentric "noon phase angle"). *Note Astronomical noon time of the Moon: x-Moon-noon, for further details. 'P' '(' Calculates the approximate topocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at standard rise time of the Moon (topocentric "rise height"). *Note Standard rise time of the Moon: x-Moon-standard-rise, for further details. 'P' ')' Calculates the approximate topocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at standard set time of the Moon (topocentric "set height"). *Note Standard set time of the Moon: x-Moon-standard-set, for further details. 'Q' '(' Calculates the approximate topocentric, apparent azimuth of the Moon in degrees and arcminutes as it happen at standard rise time of the Moon (topocentric "rise azimuth"). The horizontal angular distance between the topocentric rise azimuth and the East direction is also known as the topocentric "rise width" of the Moon. *Note Standard rise time of the Moon: x-Moon-standard-rise, for further details. 'Q' ')' Calculates the approximate topocentric, apparent azimuth of the Moon in degrees and arcminutes as it happen at standard set time of the Moon (topocentric "set azimuth"). The horizontal angular distance between the topocentric set azimuth and the West direction is also known as the topocentric "set width" of the Moon. *Note Standard set time of the Moon: x-Moon-standard-set, for further details. 'R' '(' Calculates the approximate topocentric, apparent phase angle of the Moon in range 0.0...1.0 as it happen at standard rise time of the Moon (topocentric "rise phase angle"). *Note Standard rise time of the Moon: x-Moon-standard-rise, for further details. 'R' ')' Calculates the approximate topocentric, apparent phase angle of the Moon in range 0.0...1.0 as it happen at standard set time of the Moon (topocentric "set phase angle"). *Note Standard set time of the Moon: x-Moon-standard-set, for further details. 'S' '(', ')' Calculates the approximate geocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at astronomical midnight time of the Moon (geocentric "midnight height"). *Note Astronomical midnight time of the Moon: x-Moon-midnight, for further details. 'T' '(', ')' Calculates the approximate geocentric, apparent phase angle of the Moon in range 0.0...1.0 as it happen at astronomical midnight time of the Moon (geocentric "midnight phase angle"). *Note Astronomical midnight time of the Moon: x-Moon-midnight, for further details. 'U' '(', ')' Calculates the approximate geocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at astronomical noon time of the Moon (geocentric "noon height"). *Note Astronomical noon time of the Moon: x-Moon-noon, for further details. 'V' '(', ')' Calculates the approximate geocentric, apparent phase angle of the Moon in range 0.0...1.0 as it happen at astronomical noon time of the Moon (geocentric "noon phase angle"). *Note Astronomical noon time of the Moon: x-Moon-noon, for further details. 'W' '(' Calculates the approximate geocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at standard rise time of the Moon (geocentric "rise height"). *Note Standard rise time of the Moon: x-Moon-standard-rise, for further details. 'W' ')' Calculates the approximate geocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at standard set time of the Moon (geocentric "set height"). *Note Standard set time of the Moon: x-Moon-standard-set, for further details. 'X' '(' Calculates the approximate geocentric, apparent azimuth of the Moon in degrees and arcminutes as it happen at standard rise time of the Moon (geocentric "rise azimuth"). The horizontal angular distance between the geocentric rise azimuth and the East direction is also known as the geocentric "rise width" of the Moon. *Note Standard rise time of the Moon: x-Moon-standard-rise, for further details. 'X' ')' Calculates the approximate geocentric, apparent azimuth of the Moon in degrees and arcminutes as it happen at standard set time of the Moon (geocentric "set azimuth"). The horizontal angular distance between the geocentric set azimuth and the West direction is also known as the geocentric "set width" of the Moon. *Note Standard set time of the Moon: x-Moon-standard-set, for further details. 'Y' '(' Calculates the approximate geocentric, apparent phase angle of the Moon in range 0.0...1.0 as it happen at standard rise time of the Moon (geocentric "rise phase angle"). *Note Standard rise time of the Moon: x-Moon-standard-rise, for further details. 'Y' ')' Calculates the approximate geocentric, apparent phase angle of the Moon in range 0.0...1.0 as it happen at standard set time of the Moon (geocentric "set phase angle"). *Note Standard set time of the Moon: x-Moon-standard-set, for further details. If no MODE is given, Gcal automatically uses that mode, which is enabled by the mode character '5'. If a mode character is given that is not according to one of the '0'...'9', 'a'...'z' and 'A'...'Y' characters, Gcal also automatically uses that mode, which is enabled by the mode character '5'. Depending on the selected mode, Gcal represents the Moon oriented special texts using the same types and styles as they are used by the Sun oriented special texts, these are analogously valid! *Note Representation of the Sun oriented special texts: x-Sun-representation, for the detailed description of the different types of representation used by the Sun oriented special texts, which are likewise valid for the Moon oriented special texts. The ARGUMENT the Moon oriented special texts must have is exactly equivalent the argument the Sun oriented special texts must have! *Note Arguments of the Sun oriented special texts: x-Sun-arguments, for the detailed description of the components of the ARGUMENT which also has to be given to the Moon oriented special texts. The following table informs you about which type of representation is caused by a mode. The previously defined numbering scheme, as it has been used for the introduction of the types of representation, is used as key value in the column that holds the type of representation. The table also contains a column that shows whether a mode enables dynamical values, i.e. values that are depending on the respective clocktime (if you use the '--time-offset=ARGUMENT' option, you can change the respective clocktime that is used for calculating such values). In a next table column, it is listed whether the given co-ordinate of the location influences the determination of a value, and the last column of the table gives you the information whether a given timezone value affects the values determination: *Mode* *Representation *Dynamical* *Co-ordinate* *Timezone* Type* '0' 3 No Yes Yes '1' 3 No Yes Yes '2' 3 or 4 No Yes Yes '3' 3 or 4 No Yes Yes '4' 3 or 4 No Yes Yes '5' 3 or 4 No Yes Yes '6' 6 Yes Yes Yes '7' 6 Yes Yes Yes '8' 2 Yes Yes Yes '9' 1 or 1b Yes Yes Yes 'a' 7 Yes Yes Yes 'b' 6 Yes Yes Yes 'c' 7 Yes Yes Yes 'd' 6 Yes Yes Yes 'e' 7 Yes Yes Yes 'f' 4 Yes Yes Yes 'g' 1 or 1a Yes Yes Yes 'h' 6 Yes Yes Yes 'i' 6 Yes No No 'j' 6 Yes Yes Yes 'k' 6 Yes Yes Yes 'l' 2 Yes Yes Yes 'm' 1 or 1b Yes Yes Yes 'n' 7 Yes Yes Yes 'o' 6 Yes Yes Yes 'p' 7 Yes Yes Yes 'q' 6 Yes Yes Yes 'r' 7 Yes Yes Yes 's' 4 Yes Yes Yes 't' 1 or 1a Yes Yes Yes 'u' 6 Yes Yes Yes 'v' 2 Yes No No 'w' 3 Yes Yes Yes 'x' 3 Yes No No 'y' 1 Yes No No 'z' 1 Yes No No 'A' 7 Yes Yes Yes 'B' 7 Yes Yes Yes 'C' 7 Yes Yes Yes 'D' 7 Yes Yes Yes 'E' 7 No Yes Yes 'F' 7 No Yes Yes 'G' 7 No Yes Yes 'H' 7 No Yes Yes 'I' 5 No Yes Yes 'J' 5 No Yes Yes 'K' 5 No Yes Yes 'L' 7 No Yes Yes 'M' 1 or 1b No Yes Yes 'N' 7 No Yes Yes 'O' 1 or 1b No Yes Yes 'P' 7 No Yes Yes 'Q' 6 No Yes Yes 'R' 1 or 1b No Yes Yes 'S' 7 No Yes Yes 'T' 1 or 1b No Yes Yes 'U' 7 No Yes Yes 'V' 1 or 1b No Yes Yes 'W' 7 No Yes Yes 'X' 6 No Yes Yes 'Y' 1 or 1b No Yes Yes And now some examples to these special texts: The text 'Moonrise at %(+5158+00738,120 in MS, BRD' will be expanded to ==> 'Moonrise at 12:21 in MS, BRD', in case the actual system date is the 1st June 1998. The text 'Moonset at %)*5+5158+00738,120 in MS, BRD' will be expanded to ==> 'Moonset at 01:53am in MS, BRD', in case the actual system date is the 1st June 1998. The text 'Moon visible %[5+5158+00738,120 in MS, BRD' will be expanded to ==> 'Moon visible 13h32' in MS, BRD', in case the actual system date is the 1st June 1998. The text 'Moon non-visible %]*+5158+00738,120 in MS, BRD' will be expanded to ==> 'Moon non-visible 10.469 in MS, BRD', in case the actual system date is the 1st June 1998. The text 'Moon azimuth 0 o'clock=%(*a+5158+00738,120 in MS, BRD' will be expanded to ==> 'Moon azimuth 0 o'clock=267d37' in MS, BRD', in case the actual system date is the 1st June 1998. The text 'Moonphase %(x+00+000 =%(*m+5158+00738,120 % in MS, BRD' will be expanded to ==> 'Moonphase +16h00'=45.248% in MS, BRD', in case you call Gcal with the '--time-offset=16:' option and the actual system date is the 1st June 1998. The text 'Julian date at %(x+00+000 =%(y+00+000' will be expanded to ==> 'Julian date at +10h15'=2450965.927', in case you call Gcal with the '--time-offset=10:15' option and the actual system date is the 1st June 1998. Here is a list that reports about the used reference systems in a short manner, describes other aspects that are unmentioned now, and informs about the lacks and limitations that are existing for the Moon oriented special texts: * All astronomical calculations are based on methods that use --astronomically seen-- low-precision elements, which of course is shown in the precision of the results that are caused by them. Nevertheless in most cases, these results can be treated as more as sufficiently precise if one measures their practical use. * All azimuth and elevation values are always referring to the center of the respective astronomical object, except the case, it is stated otherwise. * The base point of azimuth values, right ascension values and other ecliptic co-ordinate values is always measured clockwise relative to the geographical, true North (not the magnetic North as shown by a compass), where angular values for the North direction are both denoted as 0 degree and 360 degree. * All topocentrically based azimuth and elevation values are always corrected by the amount of atmospheric refraction. Such a kind of correction is always done if the center of the respective astronomical object is above 2 degrees below the horizon. * Generally, the rise and set times of the Moon cannot be precisely predicted, because depending on unpredictable atmospheric conditions, i.e. the local weather conditions as they appear during these times change the amount of atmospheric refraction at the horizon, so that the precalculated rise and set times may throughout be in error by a minute or more. * The accuracy of rise and set computations decreases again at high latitudes, i.e. within in the lunar Arctic Circle. There, small variations in atmospheric refraction can change the time of moonrise or moonset by many minutes, since the Moon intersects the horizon at a very shallow angle. For the same reason, at high latitudes, the effects of observer height and local topography are magnified and can substantially change the times of the phenomena actually observed, or even whether the phenomena are observed to occur at all. * It is possible that calculations, which are done for locations within the lunar Arctic Circle, sometimes result in the wrongly **.** text instead of the more precisely ++:++ or -:- texts that are used for marking special events. Unfortunately, therefore, then the reason why the Moon does not rise or set is no longer clearly evident, respectively, it is possible to get the false suggestion that the reason for non-rising or non-setting of the Moon is caused by just the one day within a synodic month, at which the Moon does not rise or set anyhow. Unfortunately, it is just only obvious *that* the Moon does not rise or set during this day. *Please also note the following references:* * *Note Fixed dates option '--precise': x-precise, how to obtain a more precise representation of the values which are cause by these special texts. * And note *note Calendar option '--time-offset=ARGUMENT': x-time-offset, how to change the clocktime, for which the dynamical, i.e. depending on the respective clocktime, Moon oriented special texts are calculated. * Likewise, see *note Fixed dates option '--cycle-end=ARGUMENT': x-cycle-end, how the dynamical, i.e. depending on the respective clocktime, Moon oriented special texts are calculated for a series of clocktimes for the current day. * Furthermore, see *note Fixed dates option '--adjust-value=ARGUMENT': x-adjust-value, how to change the reference altitude that is used to calculate the rise and set times. * And last, note *note Fixed dates option '--atmosphere=AIR-PRESSURE[,TEMPERATURE]': x-atmosphere, how to change the base data of the atmosphere that affects the calculation of the Moon oriented special texts. All Moon oriented special texts *must* always be trailed by a _whitespace_ character which is removed in output!  File: gcal.info, Node: Contents of Environment variable, Prev: Moon data, Up: Replacements with other argument G.2.2.7 Environment variable '%[FORMAT]-[ARGUMENT]' special text ................................................................ '%[FORMAT]-[ARGUMENT]' references the contents of an *environment variable*, e.g.: The text 'I am `%-USER '-user' will be expanded to ==> 'I am `guest'-user', in case you logged-in as guest on your system. This special text *must* always be trailed by a _whitespace_ character which is removed in output!  File: gcal.info, Node: Replacements without any argument, Prev: Replacements with other argument, Up: Replacements G.2.3 Replacements without any argument '%?' special texts ---------------------------------------------------------- * Menu: * Other difference values:: * Highlighting:: Apart from further useful difference values, the text of a fixed date can be provided with different texts used for highlighting.  File: gcal.info, Node: Other difference values, Next: Highlighting, Prev: Replacements without any argument, Up: Replacements without any argument G.2.3.1 Difference value '%[FORMAT]?' special texts ................................................... The use of the other difference values as listed here is to calculate distance values between two dates. In case these special texts are directly lead by a '-' character, e.g. '-%d', Gcal switches the sign of the computed value. You may depreciate the special meaning of the '-' 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 another '\' (backslash) character, e.g. '\\-'. The following other difference values '%[FORMAT]?' special texts are respected: '%d' Specifies the current respectively queried *day* relative to the actual system date (==today), e.g.: The resource file line '0 %d days gone' will be expanded to ==> '-10 days gone', in case you call Gcal with the '-c10-' option and no command. '%w' Specifies the current respectively queried *week* relative to the actual system date (==today). Started weeks are counted as complete weeks. '%m' Specifies the current respectively queried *month* relative to the actual system date (==today). Started months are counted as complete months. '%y' Specifies the current respectively queried *year* relative to the actual system date (==today). Started years are counted as complete years. This special text *must* always be trailed by a _whitespace_ character which is removed in output! An example: Supposing, the actual system date is the 4th September 1999. To calculate, how many days, weeks, months and years are between the actual system date and the birthday of a person, who is born on 21st September 1962, Gcal can be called as follows: $ gcal -f/dev/null -Ux -u -#'19620921 %y %m %w %d~' 1962 -| -| -37 -444 -1928 -13497 -| $ gcal -f/dev/null -Ux -u -#'19620921 \\-%y \-%m %w -%d~' 1962 -| -| \--37 --444 -1928 13497 -| $ gcal -f/dev/null -Ux -u -#'00000904 %y %m %w %d~' %19620921 1999 -| -| 37 444 1928 13497 -| $ gcal -f/dev/null -Ux -u -#'00000904 %y %B19620921' %19620921 1962 -| -| 37 36 Please do not confound the relative year number '%[FORMAT]y' special text with the age value '%B' special text (*note Age value '%[FORMAT]B[DATE]' special text: x-Age-value.). The '%y' special text counts started years as complete years, while the '%B' special text does not.  File: gcal.info, Node: Highlighting, Prev: Other difference values, Up: Replacements without any argument G.2.3.2 Highlighting '%?' special texts ....................................... The following highlighting '%?' special texts are respected: '%1' '%1' is replaced by the starting highlighting sequence respectively the starting marking character that is used for highlighting the actual day (*note Global option '--highlighting=TEXT': x-highlighting.). This attains, that all succeeding text of the line after this special text is displayed in the same way as the highlighted respectively marked actual day. '%1' is used together with the '%2' special text, which turns off this enabled highlighting sequence respectively produces the ending marking character. If a '%1' text is not succeeded by a '%2' text on the line, Gcal automatically inserts such a '%2' text at the end of the line. For example: Only %1THIS%2 word is highlighted in this line. %1This text is highlighted up to%2 here. All from %1here up to the end of the line is highlighted. '%2' '%2' is replaced by the ending highlighting sequence respectively the ending marking character that is used for highlighting the actual day. This attains, that a possibly active highlighting according to the actual day is turned off respectively an ending marking character is produced. '%2' is used together with the '%1' special text. The '%2' text has no affect if no preceding '%1' text was found on the line. '%3' '%3' is replaced by the starting highlighting sequence respectively the starting marking character that is used for highlighting a holiday, (*note Global option '--highlighting=TEXT': x-highlighting.). This attains, that all succeeding text of the line after this special text is displayed in the same way as the highlighted respectively marked holiday. '%3' is used together with the '%4' special text, which turns off this enabled highlighting sequence respectively produces the ending marking character. If a '%3' text is not succeeded by a '%4' text on the line, Gcal automatically inserts such a '%4' text at the end of the line. For example: Only %3THIS%4 word is highlighted in this line. %3This text is highlighted up to%4 here. All from %3here up to the end of the line is highlighted. '%4' '%4' is replaced by the ending highlighting sequence respectively the ending marking character that is used for highlighting a holiday. This attains, that a possibly active highlighting according to a holiday is turned off respectively an ending marking character is produced. '%4' is used together with the '%3' special text. The '%4' text has no affect if no preceding '%3' text was found on the line. '%5' '%5' is replaced by the starting highlighting sequence respectively the starting marking character that is used for highlighting the actual day if a fixed date is on today's date, (*note Global option '--highlighting=TEXT': x-highlighting.). This attains, that all succeeding text of the line after this special text is displayed in the same way as the highlighted respectively marked actual day. '%5' is used together with the '%6' special text, which turns off this enabled highlighting sequence respectively produces the ending marking character. If a '%5' text is not succeeded by a '%6' text on the line, Gcal automatically inserts such a '%6' text at the end of the line. '%6' '%6' is replaced by the ending highlighting sequence respectively the ending marking character that is used for highlighting the actual day if a fixed date is on today's date. This attains, that a possibly active highlighting according to the actual day is turned off respectively an ending marking character is produced. '%6' is used together with the '%5' special text. The '%6' text has no affect if no preceding '%5' text was found on the line. '%7' '%7' is replaced by the starting highlighting sequence respectively the starting marking character that is used for highlighting a holiday if a fixed date is on a legal holiday date, (*note Global option '--highlighting=TEXT': x-highlighting.). This attains, that all succeeding text of the line after this special text is displayed in the same way as the highlighted respectively marked holiday. '%7' is used together with the '%8' special text, which turns off this enabled highlighting sequence respectively produces the ending marking character. If a '%7' text is not succeeded by a '%8' text on the line, Gcal automatically inserts such a '%8' text at the end of the line. '%8' '%8' is replaced by the ending highlighting sequence respectively the ending marking character that is used for highlighting a holiday if a fixed date is on a legal holiday date. This attains, that a possibly active highlighting according to a holiday is turned off respectively an ending marking character is produced. '%8' is used together with the '%7' special text. The '%8' text has no affect if no preceding '%7' text was found on the line. '%9' '%9' is replaced by the starting highlighting sequence respectively the starting marking character that is used for highlighting the actual day if a fixed date is on today's date; otherwise '%9' is replaced by the starting highlighting sequence respectively the starting marking character that is used for highlighting a holiday if a fixed date is on a legal holiday date, (*note Global option '--highlighting=TEXT': x-highlighting.). This attains, that all succeeding text of the line after this special text is displayed in the same way as the highlighted respectively marked actual day or holiday. '%9' is used together with the '%0' special text, which turns off this enabled highlighting sequence respectively produces the ending marking character. If a '%9' text is not succeeded by a '%0' text on the line, Gcal automatically inserts such a '%0' text at the end of the line. '%0' '%0' is replaced by the ending highlighting sequence respectively the ending marking character that is used for highlighting the actual day if a fixed date is on today's date; otherwise '%0' is replaced by the ending highlighting sequence respectively the ending marking character that is used for highlighting a holiday if a fixed date is on a legal holiday date. This attains, that a possibly active highlighting according to today's date or a holiday is turned off respectively an ending marking character is produced. '%0' is used together with the '%9' special text. The '%0' text has no affect if no preceding '%9' text was found on the line.  File: gcal.info, Node: Shell Command, Prev: Replacements, Up: Special Texts G.3 Shell command '%![ARGUMENT]' special text ============================================= The ARGUMENT which trails '%!' until the end of the line, is passed to the shell as a command for further processing. But before, all text variable references and '%?'... special texts for replacing particular texts which are given in ARGUMENT are interpreted by Gcal. *Note Text variables::, and *note '%?'... special texts for text replacement: Replacements.. All leading text before the '%!' special text is processed by Gcal as usual. If the simple '--debug' respectively '--debug=internal' option is given at program start-up, informational messages about the executed command and its _exit code_ will be shown on the _standard error channel_ (*note Global option '--debug=internal': x-debug-internal.). If the '--debug=abort' option is given, the Gcal program will be aborted with an error code in case an _exit code_ not equal zero has occurred during the execution of the command. *Note Error Code 2: x-2-Error-code, and *note Global option '--debug=abort': x-debug-abort, for further information. Use the '--execute-command' option if you want to execute all '%![ARGUMENT]' special texts by the shell instead of seeing them textually only. *Note Fixed date option '--execute-command': x-execute-command, for more details.  File: gcal.info, Node: Special Texts Summary, Next: Obsolete Special Texts, Prev: Special Texts, Up: Top Appendix H Summary of all '%?'... Special Texts *********************************************** Here is a short-list of all '%?'... special texts which can be used in the text part of Gcal resource file line. Of course, not all possibilities concerning the representation --which are offered by the format instruction-- are listed here for those special texts which expanded representation may be modified by an optional FORMAT, but only some few exemplary. *Note Format Instruction::, for further details. '%i[DATE][#[DATE]]' Exclusion of all non-inclusive date periods '%e[DATE][#[DATE]]' Exclusion of all exclusive date periods '%?' Inclusive day period '%v' Exclusion of all non-legal holidays '%x' Exclusion of all non-holidays '%a' Exclusion of all non-Mondays '%c' Exclusion of all non-Tuesdays '%f' Exclusion of all non-Wednesdays '%g' Exclusion of all non-Thursdays '%h' Exclusion of all non-Fridays '%l' Exclusion of all non-Saturdays '%p' Exclusion of all non-Sundays '%q' Exclusion of all non-Mondays...Thursdays '%r' Exclusion of all non-Mondays...Fridays '%?' Exclusive day period '%V' Exclusion of all legal holidays '%X' Exclusion of all holidays '%A' Exclusion of all Mondays '%C' Exclusion of all Tuesdays '%F' Exclusion of all Wednesdays '%G' Exclusion of all Thursdays '%H' Exclusion of all Fridays '%L' Exclusion of all Saturdays '%P' Exclusion of all Sundays '%Q' Exclusion of all Mondays...Thursdays '%R' Exclusion of all Mondays...Fridays '%[FORMAT]K[DATE]' weekday name '%K[DATE]' Complete weekday name '%>3#K[DATE]' 3-Letter weekday name '%>2#K[DATE]' 2-Letter weekday name '%[FORMAT]?[DATE]' weekday number '%W[DATE]' Weekday number, Mon==1...Sun==7 '%>1&*W[DATE]' Weekday number, Mon==1...Sun==7, Ordinal Number suffix '%E[DATE]' Weekday number, Mon==0...Sun==6 '%>1&*E[DATE]' Weekday number, Mon==0...Sun==6, Ordinal Number suffix '%I[DATE]' Weekday number, Sun==1...Sat==7 '%>1&*I[DATE]' Weekday number, Sun==1...Sat==7, Ordinal Number suffix '%J[DATE]' Weekday number, Sun==0...Sat==6 '%>1&*J[DATE]' Weekday number, Sun==0...Sat==6, Ordinal Number suffix '%S[DATE]' Weekday number, STARTING DAY OF WEEK==1 '%>1&*S[DATE]' Weekday number, STARTING DAY OF WEEK==1, Ordinal Number suffix '%T[DATE]' Weekday number, STARTING DAY OF WEEK==0 '%>1&*T[DATE]' Weekday number, STARTING DAY OF WEEK==0, Ordinal Number suffix '%[FORMAT]N[DATE]' day number '%N[DATE]' Day-of-year number '%>03*N[DATE]' Day-of-year number, 3-digits with leading zeroes '%>1&*N[DATE]' Day-of-year number, Ordinal Number suffix '%>03&*N[DATE]' Day-of-year number, 3-digits with leading zeroes, Ordinal Number suffix '%[FORMAT]D[DATE]' day number '%D[DATE]' Day number '%>02*D[DATE]' Day number, 2-digits with leading zero '%>1&*D[DATE]' Day number, Ordinal Number suffix '%>02&*D[DATE]' Day number, 2-digits with leading zero, Ordinal Number suffix '%k[DATE]' ISO week number or standard week number, either 2-digits with leading zero, or 4-alphanumeric characters text '%[FORMAT]U[DATE]' month name '%U[DATE]' Complete month name '%>3#U[DATE]' 3-Letter month name '%[FORMAT]M[DATE]' month '%M[DATE]' Month number '%>02*M[DATE]' Month number, 2-digits with leading zero '%>1&*M[DATE]' Month number, Ordinal Number suffix '%>02&*M[DATE]' Month number, 2-digits with leading zero, Ordinal Number suffix '%[FORMAT]Y[DATE]' year number '%Y[DATE]' Year number '%>04*Y[DATE]' Complete year number, 4-digits with leading zeroes '%[FORMAT]?[DATE]' Moon phase '%O[DATE]' Moon phase text '%>03*O[DATE]' Moon phase text, 3-digits with leading zeroes '%Z[DATE]' Moon phase text graphics '%?[DATE]' biorhythm '%,[DATE]' Biorhythm text (series of values) '%;[DATE]' Biorhythm text graphics (bar) '%[FORMAT]?[DATE]' difference value '%yDATE' Relative year number '%b[DATE]' Age value (birthday) '%B[DATE]' Age value (birthday), Ordinal Number suffix '%[FORMAT]?[ARGUMENT]' actual clocktime '%t[*][[+|-]MMMM|HH:[MM]]' Actual local time in 'HH:MM' format '%[FORMAT]'[[+|-]MMMM|HH:[MM]]' Actual local time in M[M...] format '%[FORMAT]_[*][[+|-]MMMM|HH:[MM]]' Actual local time hour in H[H...] format '%[FORMAT]?[[+|-]MMMM|HH:[MM]]' Actual local time minute in M[M...] format '%[FORMAT]{[[+|-]MMMM|HH:[MM]]' Actual local time 12-hour format suffix '%@[*][[+|-]MMMM|HH:[MM]]' Actual Universal time in 'HH:MM/DATE' format '%[FORMAT]`[[+|-]MMMM|HH:[MM]]' Actual Universal time in 'M[M...]/DATE' format '%[FORMAT].[*][[+|-]MMMM|HH:[MM]]' Actual Universal time hour in H[H...] format '%[FORMAT]/[[+|-]MMMM|HH:[MM]]' Actual Universal time minute in M[M...] format '%[FORMAT]}[[+|-]MMMM|HH:[MM]]' Actual Universal time 12-hour format suffix '%"[[+|-]MMMM|HH:[MM]]' Numerical Universal time timezone offset value '%=[[+|-]MMMM|HH:[MM]]' Actual numerical local time timezone offset value '%n[[+|-]N]' Textual date in fixed '%>02*D-%>3#U-%>04*Y' format '%[FORMAT]j[[+|-]N]' Julian day number '%[FORMAT]b[*][MODE]ISO-6709:1983-CO-ORDINATE-1/ISO-6709:1983-CO-ORDINATE-2' geographical distance and course angle '%b0ISO-6709:1983-CO-ORDINATE-1/ISO-6709:1983-CO-ORDINATE-2' Geographical distance (air line distance) in kilometers '%b*0ISO-6709:1983-CO-ORDINATE-1/ISO-6709:1983-CO-ORDINATE-2' Geographical distance (air line distance) in statute miles '%b1ISO-6709:1983-CO-ORDINATE-1/ISO-6709:1983-COORDINATE-2' Course angle (true track) between ISO-6709:1983-CO-ORDINATE-1 and ISO-6709:1983-CO-ORDINATE-2 in degrees and arcminutes '%b*1ISO-6709:1983-CO-ORDINATE-1/ISO-6709:1983-CO-ORDINATE-2' Course angle (true track) between ISO-6709:1983-CO-ORDINATE-1 and ISO-6709:1983-CO-ORDINATE-2 in decimal degrees '%b2ISO-6709:1983-CO-ORDINATE-1/ISO-6709:1983-CO-ORDINATE-2' Course angle (true track) between ISO-6709:1983-CO-ORDINATE-2 and ISO-6709:1983-CO-ORDINATE-1 in degrees and arcminutes '%b*2ISO-6709:1983-CO-ORDINATE-1/ISO-6709:1983-CO-ORDINATE-2' Course angle (true track) between ISO-6709:1983-CO-ORDINATE-2 and ISO-6709:1983-CO-ORDINATE-1 in decimal degrees '%[FORMAT]?[*][MODE]ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Sun data '%o0ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s0ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Sun's astronomical midnight time in 'HH:MM' _24-hours_ format '%o*0ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*0ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Sun's astronomical midnight time in 'HH:MM' _12-hours_ format with time suffix '%o1ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s1ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Sun's astronomical noon time in 'HH:MM' _24-hours_ format '%o*1ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*1ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Sun's astronomical noon time in 'HH:MM' _12-hours_ format with time suffix '%o2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical rise time of Sun's center in 'HH:MM' _24-hours_ format '%o*2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical rise time of Sun's center in 'HH:MM' _12-hours_ format with time suffix '%s2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical set time of Sun's center in 'HH:MM' _24-hours_ format '%o*2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical set time of Sun's center in 'HH:MM' _12-hours_ format with time suffix '%u2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical visibility, Sun's center above reference altitude, in hours and minutes in 'HHhMM'' format '%u*2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical visibility, Sun's center above reference altitude, in decimal hours in 'HH.H...' format '%z2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical non-visibility, Sun's center below reference altitude, in hours and minutes in 'HHhMM'' format '%z*2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical non-visibility, Sun's center below reference altitude, in decimal hours in 'HH.H...' format '%o3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical rise time of Sun's upper limb in 'HH:MM' _24-hours_ format '%o*3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical rise time of Sun's upper limb in 'HH:MM' _12-hours_ format with time suffix '%s3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical set time of Sun's upper limb in 'HH:MM' _24-hours_ format '%s*3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical set time of Sun's upper limb in 'HH:MM' _12-hours_ format with time suffix '%u3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical visibility, Sun's upper limb above reference altitude, in hours and minutes in 'HHhMM'' format '%u*3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical visibility, Sun's upper limb above reference altitude, in decimal hours in 'HH.H...' format '%z3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical non-visibility, Sun's upper limb below reference altitude, in hours and minutes in 'HHhMM'' format '%z*3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical non-visibility, Sun's upper limb below reference altitude, in decimal hours in 'HH.H...' format '%o4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Rise time of Sun's center in 'HH:MM' _24-hours_ format '%o*4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Rise time of Sun's center in 'HH:MM' _12-hours_ format with time suffix '%s4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Set time of Sun's center in 'HH:MM' _24-hours_ format '%s*4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Set time of Sun's center in 'HH:MM' _12-hours_ format with time suffix '%u4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of visibility, Sun's center above reference altitude, in hours and minutes in 'HHhMM'' format '%u*4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of visibility, Sun's center above reference altitude, in decimal hours in 'HH.H...' format '%z4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of non-visibility, Sun's center below reference altitude, in hours and minutes in 'HHhMM'' format '%z*4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of non-visibility, Sun's center below reference altitude, in decimal hours in 'HH.H...' format '%o5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Standard rise time of Sun's upper limb in 'HH:MM' _24-hours_ format '%o*5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Standard rise time of Sun's upper limb in 'HH:MM' _12-hours_ format with time suffix '%s5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Standard set time of Sun's upper limb in 'HH:MM' _24-hours_ format '%s*5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Standard set time of Sun's upper limb in 'HH:MM' _12-hours_ format with time suffix '%u5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of standard visibility, Sun's upper limb above reference altitude, in hours and minutes in 'HHhMM'' format '%u*5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of standard visibility, Sun's upper limb above reference altitude, in decimal hours in 'HH.H...' format '%z5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of standard non-visibility, Sun's upper limb below reference altitude, in hours and minutes in 'HHhMM'' format '%z*5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of standard non-visibility, Sun's upper limb below reference altitude, in decimal hours in 'HH.H...' format '%o6ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Begin time of civil twilight in the morning in 'HH:MM' _24-hours_ format '%o*6ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Begin time of civil twilight in the morning in 'HH:MM' _12-hours_ format with time suffix '%s6ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' End time of civil twilight in the evening in 'HH:MM' _24-hours_ format '%s*6ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' End time of civil twilight in the evening in 'HH:MM' _12-hours_ format with time suffix '%u6ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center above reference altitude of civil twilight in hours and minutes in 'HHhMM'' format '%u*6ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center above reference altitude of civil twilight in decimal hours in 'HH.H...' format '%z6ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center below reference altitude of civil twilight in hours and minutes in 'HHhMM'' format '%z*6ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center below reference altitude of civil twilight in decimal hours in 'HH.H...' format '%o7ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Begin time of nautical twilight in the morning in 'HH:MM' _24-hours_ format '%o*7ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Begin time of nautical twilight in the morning in 'HH:MM' _12-hours_ format with time suffix '%s7ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' End time of nautical twilight in the evening in 'HH:MM' _24-hours_ format '%s*7ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' End time of nautical twilight in the evening in 'HH:MM' _12-hours_ format with time suffix '%u7ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center above reference altitude of nautical twilight in hours and minutes in 'HHhMM'' format '%u*7ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center above reference altitude of nautical twilight in decimal hours in 'HH.H...' format '%z7ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center below reference altitude of nautical twilight in hours and minutes in 'HHhMM'' format '%z*7ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center below reference altitude of nautical twilight in decimal hours in 'HH.H...' format '%o8ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Begin time of amateur-astronomical twilight in the morning in 'HH:MM' _24-hours_ format '%o*8ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Begin time of amateur-astronomical twilight in the morning in 'HH:MM' _12-hours_ format with time suffix '%s8ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' End time of amateur-astronomical twilight in the evening in 'HH:MM' _24-hours_ format '%s*8ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' End time of amateur-astronomical twilight in the evening in 'HH:MM' _12-hours_ format with time suffix '%u8ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center above reference altitude of amateur-astronomical twilight in hours and minutes in 'HHhMM'' format '%u*8ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center above reference altitude of amateur-astronomical twilight in decimal hours in 'HH.H...' format '%z8ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center below reference altitude of amateur-astronomical twilight in hours and minutes in 'HHhMM'' format '%z*8ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center below reference altitude of amateur-astronomical twilight in decimal hours in 'HH.H...' format '%o9ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Begin time of astronomical twilight in the morning in 'HH:MM' _24-hours_ format '%o*9ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Begin time of astronomical twilight in the morning in 'HH:MM' _12-hours_ format with time suffix '%s9ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' End time of astronomical twilight in the evening in 'HH:MM' _24-hours_ format '%s*9ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' End time of astronomical twilight in the evening in 'HH:MM' _12-hours_ format with time suffix '%u9ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center above reference altitude of astronomical twilight in hours and minutes in 'HHhMM'' format '%u*9ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center above reference altitude of astronomical twilight in decimal hours in 'HH.H...' format '%z9ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center below reference altitude of astronomical twilight in hours and minutes in 'HHhMM'' format '%z*9ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of Sun's center below reference altitude of astronomical twilight in decimal hours in 'HH.H...' format '%oaISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%saISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Sun in degrees and arcminutes in '+|-DDDdMM'' format '%o*aISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*aISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Sun in decimal degrees in '+|-DDD.D...' format '%obISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sbISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric azimuth of Sun in degrees and arcminutes in 'DDDdMM'' format '%o*bISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*bISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric azimuth of Sun in decimal degrees in 'DDD.D...' format '%ocISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%scISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric declination of Sun in degrees and arcminutes in '+|-DDDdMM'' format '%o*cISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*cISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric declination of Sun in decimal degrees in '+|-DDD.D...' format '%odISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sdISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric ecliptic longitude of Sun in degrees and arcminutes in 'DDDdMM'' format '%o*dISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*dISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric ecliptic longitude of Sun in decimal degrees in 'DDD.D...' format '%oeISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%seISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric right ascension of Sun as time value in hours and minutes in 'HHhMM'' format '%o*eISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*eISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric right ascension of Sun as time value in decimal hours in 'HH.H...' format '%ofISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sfISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric distance of Sun in astronomical units in 'N.N...' format '%o*fISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*fISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric distance of Sun in kilometers in 'N.N...' format '%ogISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sgISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric horizontal parallax of Sun in degrees and arcminutes in 'DDDdMM'' format '%o*gISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*gISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric horizontal parallax of Sun in decimal degrees in 'DDD.D...' format '%ohISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%shISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric semidiameter of Sun in degrees and arcminutes in 'DDDdMM'' format '%o*hISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*hISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric semidiameter of Sun in decimal degrees in 'DDD.D...' format '%oiISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%siISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Atmospheric refraction in degrees and arcminutes in 'DDDdMM'' format '%o*iISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*iISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Atmospheric refraction in decimal degrees in 'DDD.D...' format '%ojISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sjISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Sun in degrees and arcminutes in '+|-DDDdMM'' format '%o*jISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*jISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Sun in decimal degrees in '+|-DDD.D...' format '%okISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%skISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric azimuth of Sun in degrees and arcminutes in 'DDDdMM'' format '%o*kISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*kISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric azimuth of Sun in decimal degrees in 'DDD.D...' format '%olISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%slISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric declination of Sun in degrees and arcminutes in '+|-DDDdMM'' format '%o*lISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*lISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric declination of Sun in decimal degrees in '+|-DDD.D...' format '%omISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%smISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric ecliptic longitude of Sun in degrees and arcminutes in 'DDDdMM'' format '%o*mISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*mISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric ecliptic longitude of Sun in decimal degrees in 'DDD.D...' format '%onISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%snISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric right ascension of Sun as time value in hours and minutes in 'HHhMM'' format '%o*nISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*nISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric right ascension of Sun as time value in decimal hours in 'HH.H...' format '%ooISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%soISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric distance of Sun in astronomical units in 'N.N...' format '%o*oISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*oISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric distance of Sun in kilometers in 'N.N...' format '%opISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%spISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric horizontal parallax of Sun in degrees and arcminutes in 'DDDdMM'' format '%o*pISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*pISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric horizontal parallax of Sun in decimal degrees in 'DDD.D...' format '%oqISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sqISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric semidiameter of Sun in degrees and arcminutes in 'DDDdMM'' format '%o*qISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*qISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric semidiameter of Sun in decimal degrees in 'DDD.D...' format '%orISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%srISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%o*rISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*rISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta-t in seconds in '+|-N.N...' format '%osISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%ssISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Local sidereal time in 'HH:MM' _24-hours_ format '%o*sISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*sISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Local sidereal time in 'HH:MM' _12-hours_ format with time suffix '%otISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%stISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Base time as time value in hours and minutes in 'HHhMM'' format '%o*tISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*tISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Base time as time value in decimal hours in 'HH.H...' format '%ouISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%suISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%o*uISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*uISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Julian date in days in 'N.N...' format '%ovISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%svISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%o*vISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*vISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Julian Ephemeris date in days in 'N.N...' format '%owISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%swISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Equation of time as time value in hours and minutes in '+|-HHhMM'' format '%o*wISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*wISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Equation of time as time value in decimal hours in '+|-HH.H...' format '%oxISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sxISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric elevation of Sun/Moon in degrees and arcminutes in '+|-DDDdMM'' format '%o*xISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*xISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric elevation of Sun/Moon in decimal degrees in '+|-DDD.D...' format '%oyISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%syISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric azimuth of Sun/Moon in degrees and arcminutes in '+|-DDDdMM'' format '%o*yISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*yISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric azimuth of Sun/Moon in decimal degrees in '+|-DDD.D...' format '%ozISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%szISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric elevation of Sun/Moon in degrees and arcminutes in '+|-DDDdMM'' format '%o*zISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*zISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric elevation of Sun/Moon in decimal degrees in '+|-DDD.D...' format '%oAISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sAISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric azimuth of Sun/Moon in degrees and arcminutes in '+|-DDDdMM'' format '%o*AISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*AISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric azimuth of Sun/Moon in decimal degrees in '+|-DDD.D...' format '%oBISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric elevation of Sun/Moon at standard sunrise time in degrees and arcminutes in '+|-DDDdMM'' format '%o*BISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric elevation of Sun/Moon at standard sunrise time in decimal degrees in '+|-DDD.D...' format '%sBISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric elevation of Sun/Moon at standard sunset time in degrees and arcminutes in '+|-DDDdMM'' format '%s*BISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric elevation of Sun/Moon at standard sunset time in decimal degrees in '+|-DDD.D...' format '%oCISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric azimuth of Sun/Moon at standard sunrise time in degrees and arcminutes in '+|-DDDdMM'' format '%o*CISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric azimuth of Sun/Moon at standard sunrise time in decimal degrees in '+|-DDD.D...' format '%sCISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric azimuth of Sun/Moon at standard sunset time in degrees and arcminutes in '+|-DDDdMM'' format '%s*CISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric azimuth of Sun/Moon at standard sunset time in decimal degrees in '+|-DDD.D...' format '%oDISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric elevation of Sun/Moon at standard sunrise time in degrees and arcminutes in '+|-DDDdMM'' format '%o*DISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric elevation of Sun/Moon at standard sunrise time in decimal degrees in '+|-DDD.D...' format '%sDISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric elevation of Sun/Moon at standard sunset time in degrees and arcminutes in '+|-DDDdMM'' format '%s*DISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric elevation of Sun/Moon at standard sunset time in decimal degrees in '+|-DDD.D...' format '%oEISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric azimuth of Sun/Moon at standard sunrise time in degrees and arcminutes in '+|-DDDdMM'' format '%o*EISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric azimuth of Sun/Moon at standard sunrise time in decimal degrees in '+|-DDD.D...' format '%sEISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric azimuth of Sun/Moon at standard sunset time in degrees and arcminutes in '+|-DDDdMM'' format '%s*EISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric azimuth of Sun/Moon at standard sunset time in decimal degrees in '+|-DDD.D...' format '%oFISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sFISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta astronomical midnight time of Sun/Moon as time value in hours and minutes in '+|-HHhMM'' format '%o*FISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*FISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta astronomical midnight time of Sun/Moon as time value in decimal hours in '+|-HH.H...' format '%oGISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sGISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta astronomical noon of Sun/Moon as time value in hours and minutes in '+|-HHhMM'' format '%o*GISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*GISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta astronomical noon of Sun/Moon as time value in decimal hours in '+|-HH.H...' format '%oHISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta time of standard rise of Sun/Moon at standard sunrise time as time value in hours and minutes in '+|-HHhMM'' format '%o*HISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta time of standard rise of Sun/Moon at standard sunrise time as time value in decimal hours in '+|-HH.H...' format '%sHISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta time of standard set of Sun/Moon at standard sunset time as time value in hours and minutes in '+|-HHhMM'' format '%s*HISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta time of standard set of Sun/Moon at standard sunset time as time value in decimal hours in '+|-HH.H...' format '%oIISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sIISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Sun at Sun's astronomical midnight time in degrees and arcminutes in '+|-DDDdMM'' format '%o*IISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*IISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Sun at Sun's astronomical midnight time in decimal degrees in '+|-DDD.D...' format '%oJISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sJISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Sun at Sun's astronomical noon time in degrees and arcminutes in '+|-DDDdMM'' format '%o*JISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*JISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Sun at Sun's astronomical noon time in decimal degrees in '+|-DDD.D...' format '%oKISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Sun at standard sunrise time in degrees and arcminutes in '+|-DDDdMM'' format '%o*KISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Sun at standard sunrise time in decimal degrees in '+|-DDD.D...' format '%sKISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Sun at standard sunset time in degrees and arcminutes in '+|-DDDdMM'' format '%s*KISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Sun at standard sunset time in decimal degrees in '+|-DDD.D...' format '%oLISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric azimuth of Sun at standard sunrise time in degrees and arcminutes in 'DDDdMM'' format '%o*LISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric azimuth of Sun at standard sunrise time in decimal degrees in 'DDD.D...' format '%sLISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric azimuth of Sun at standard sunset time in degrees and arcminutes in 'DDDdMM'' format '%s*LISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric azimuth of Sun at standard sunset time in decimal degrees in 'DDD.D...' format '%oMISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sMISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Sun at Sun's astronomical midnight time in degrees and arcminutes in '+|-DDDdMM'' format '%o*MISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*MISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Sun at Sun's astronomical midnight time in decimal degrees in '+|-DDD.D...' format '%oNISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%sNISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Sun at Sun's astronomical noon time in degrees and arcminutes in '+|-DDDdMM'' format '%o*NISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%s*NISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Sun at Sun's astronomical noon time in decimal degrees in '+|-DDD.D...' format '%oOISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Sun at standard sunrise time in degrees and arcminutes in '+|-DDDdMM'' format '%o*OISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Sun at standard sunrise time in decimal degrees in '+|-DDD.D...' format '%sOISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Sun at standard sunset time in degrees and arcminutes in '+|-DDDdMM'' format '%s*OISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Sun at standard sunset time in decimal degrees in '+|-DDD.D...' format '%oPISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric azimuth of Sun at standard sunrise time in degrees and arcminutes in 'DDDdMM'' format '%o*PISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric azimuth of Sun at standard sunrise time in decimal degrees in 'DDD.D...' format '%sPISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric azimuth of Sun at standard sunset time in degrees and arcminutes in 'DDDdMM'' format '%s*PISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric azimuth of Sun at standard sunset time in decimal degrees in 'DDD.D...' format '%oQISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Single shadow length time in the forenoon in 'HH:MM' _24-hours_ format '%o*QISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Single shadow length time in the forenoon in 'HH:MM' _12-hours_ format with time suffix '%sQISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Single shadow length time in the afternoon in 'HH:MM' _24-hours_ format '%s*QISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Single shadow length time in the afternoon in 'HH:MM' _12-hours_ format with time suffix '%uQISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of single or shorter shadow length in hours and minutes in 'HHhMM'' format '%u*QISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of single or shorter shadow length in decimal hours in 'HH.H...' format '%zQISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of longer than single shadow length in hours and minutes in 'HHhMM'' format '%z*QISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of longer than single shadow length in decimal hours in 'HH.H...' format '%oRISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Double shadow length time in the forenoon in 'HH:MM' _24-hours_ format '%o*RISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Double shadow length time in the forenoon in 'HH:MM' _12-hours_ format with time suffix '%sRISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Double shadow length time in the afternoon in 'HH:MM' _24-hours_ format '%s*RISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Double shadow length time in the afternoon in 'HH:MM' _12-hours_ format with time suffix '%uRISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of double or shorter shadow length in hours and minutes in 'HHhMM'' format '%u*RISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of double or shorter shadow length in decimal hours in 'HH.H...' format '%zRISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of longer than double shadow length in hours and minutes in 'HHhMM'' format '%z*RISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of longer than double shadow length in decimal hours in 'HH.H...' format '%[FORMAT]?[*][MODE]ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Moon data '%(0ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)0ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Moon's astronomical midnight time in 'HH:MM' _24-hours_ format '%(*0ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*0ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Moon's astronomical midnight time in 'HH:MM' _12-hours_ format with time suffix '%(1ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)1ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Moon's astronomical noon time in 'HH:MM' _24-hours_ format '%(*1ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*1ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Moon's astronomical noon time in 'HH:MM' _12-hours_ format with time suffix '%(2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical rise time of Moon's center in 'HH:MM' _24-hours_ format '%(*2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical rise time of Moon's center in 'HH:MM' _12-hours_ format with time suffix '%)2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical set time of Moon's center in 'HH:MM' _24-hours_ format '%(*2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical set time of Moon's center in 'HH:MM' _12-hours_ format with time suffix '%[2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical visibility, Moon's center above reference altitude, in hours and minutes in 'HHhMM'' format '%[*2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical visibility, Moon's center above reference altitude, in decimal hours in 'HH.H...' format '%]2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical non-visibility, Moon's center below reference altitude, in hours and minutes in 'HHhMM'' format '%]*2ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical non-visibility, Moon's center below reference altitude, in decimal hours in 'HH.H...' format '%(3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical rise time of Moon's upper limb in 'HH:MM' _24-hours_ format '%(*3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical rise time of Moon's upper limb in 'HH:MM' _12-hours_ format with time suffix '%)3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical set time of Moon's upper limb in 'HH:MM' _24-hours_ format '%)*3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geometrical set time of Moon's upper limb in 'HH:MM' _12-hours_ format with time suffix '%[3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical visibility, Moon's upper limb above reference altitude, in hours and minutes in 'HHhMM'' format '%[*3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical visibility, Moon's upper limb above reference altitude, in decimal hours in 'HH.H...' format '%]3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical non-visibility, Moon's upper limb below reference altitude, in hours and minutes in 'HHhMM'' format '%]*3ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of geometrical non-visibility, Moon's upper limb below reference altitude, in decimal hours in 'HH.H...' format '%(4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Rise time of Moon's center in 'HH:MM' _24-hours_ format '%(*4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Rise time of Moon's center in 'HH:MM' _12-hours_ format with time suffix '%)4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Set time of Moon's center in 'HH:MM' _24-hours_ format '%)*4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Set time of Moon's center in 'HH:MM' _12-hours_ format with time suffix '%[4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of visibility, Moon's center above reference altitude, in hours and minutes in 'HHhMM'' format '%[*4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of visibility, Moon's center above reference altitude, in decimal hours in 'HH.H...' format '%]4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of non-visibility, Moon's center below reference altitude, in hours and minutes in 'HHhMM'' format '%]*4ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of non-visibility, Moon's center below reference altitude, in decimal hours in 'HH.H...' format '%(5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Standard rise time of Moon's upper limb in 'HH:MM' _24-hours_ format '%(*5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Standard rise time of Moon's upper limb in 'HH:MM' _12-hours_ format with time suffix '%)5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Standard set time of Moon's upper limb in 'HH:MM' _24-hours_ format '%)*5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Standard set time of Moon's upper limb in 'HH:MM' _12-hours_ format with time suffix '%[5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of standard visibility, Moon's upper limb above reference altitude, in hours and minutes in 'HHhMM'' format '%[*5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of standard visibility, Moon's upper limb above reference altitude, in decimal hours in 'HH.H...' format '%]5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of standard non-visibility, Moon's upper limb below reference altitude, in hours and minutes in 'HHhMM'' format '%]*5ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Period of standard non-visibility, Moon's upper limb below reference altitude, in decimal hours in 'HH.H...' format '%(6ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)6ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric horizontal parallax of Moon in degrees and arcminutes in 'DDDdMM'' format '%(*6ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*6ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric horizontal parallax of Moon in decimal degrees in 'DDD.D...' format '%(7ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)7ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric semidiameter of Moon in degrees and arcminutes in 'DDDdMM'' format '%(*7ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*7ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric semidiameter of Moon in decimal degrees in 'DDD.D...' format '%(8ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)8ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%(*8ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*8ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric brightness of Moon in magnitude units in '+|-N.N...' format '%(9ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)9ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric phase angle of Moon in range 0.0...1.0 in 'N.N...' format '%(*9ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*9ISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric phase angle of Moon as percent value in range 0.0...100.0 in 'N.N...' format '%(aISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)aISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Moon in degrees and arcminutes in '+|-DDDdMM'' format '%(*aISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*aISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Moon in decimal degrees in '+|-DDD.D...' format '%(bISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)bISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric azimuth of Moon in degrees and arcminutes in 'DDDdMM'' format '%(*bISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*bISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric azimuth of Moon in decimal degrees in 'DDD.D...' format '%(cISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)cISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric declination of Moon in degrees and arcminutes in '+|-DDDdMM'' format '%(*cISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*cISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric declination of Moon in decimal degrees in '+|-DDD.D...' format '%(dISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)dISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric ecliptic longitude of Moon in degrees and arcminutes in 'DDDdMM'' format '%(*dISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*dISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric ecliptic longitude of Moon in decimal degrees in 'DDD.D...' format '%(eISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)eISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric ecliptic latitude of Moon in degrees and arcminutes in '+|-DDDdMM'' format '%(*eISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*eISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric ecliptic latitude of Moon in decimal degrees in '+|-DDD.D...' format '%(fISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)fISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric right ascension of Moon as time value in hours and minutes in 'HHhMM'' format '%(*fISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*fISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric right ascension of Moon as time value in decimal hours in 'HH.H...' format '%(gISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)gISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric distance of Moon in mean Earth equator radii in 'N.N...' format '%(*gISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*gISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric distance of Moon in kilometers in 'N.N...' format '%(hISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)hISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elongation of Moon in degrees and arcminutes in 'DDDdMM'' format '%(*hISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*hISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elongation of Moon in decimal degrees in 'DDD.D...' format '%(iISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)iISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Atmospheric refraction in degrees and arcminutes in 'DDDdMM'' format '%(*iISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*iISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Atmospheric refraction in decimal degrees in 'DDD.D...' format '%(jISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)jISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric horizontal parallax of Moon in degrees and arcminutes in 'DDDdMM'' format '%(*jISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*jISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric horizontal parallax of Moon in decimal degrees in 'DDD.D...' format '%(kISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)kISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric semidiameter of Moon in degrees and arcminutes in 'DDDdMM'' format '%(*kISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*kISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric semidiameter of Moon in decimal degrees in 'DDD.D...' format '%(lISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)lISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%(*lISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*lISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric brightness of Moon in magnitude units in '+|-N.N...' format '%(mISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)mISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric phase angle of Moon in range 0.0...1.0 in 'N.N...' format '%(*mISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*mISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric phase angle of Moon as percent value in range 0.0...100.0 in 'N.N...' format '%(nISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)nISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Moon in degrees and arcminutes in '+|-DDDdMM'' format '%(*nISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*nISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Moon in decimal degrees in '+|-DDD.D...' format '%(oISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)oISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric azimuth of Moon in degrees and arcminutes in 'DDDdMM'' format '%(*oISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*oISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric azimuth of Moon in decimal degrees in 'DDD.D...' format '%(pISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)pISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric declination of Moon in degrees and arcminutes in '+|-DDDdMM'' format '%(*pISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*pISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric declination of Moon in decimal degrees in '+|-DDD.D...' format '%(qISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)qISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric ecliptic longitude of Moon in degrees and arcminutes in 'DDDdMM'' format '%(*qISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*qISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric ecliptic longitude of Moon in decimal degrees in 'DDD.D...' format '%(rISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)rISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric ecliptic latitude of Moon in degrees and arcminutes in '+|-DDDdMM'' format '%(*rISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*rISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric ecliptic latitude of Moon in decimal degrees in '+|-DDD.D...' format '%(sISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)sISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric right ascension of Moon as time value in hours and minutes in 'HHhMM'' format '%(*sISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*sISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric right ascension of Moon as time value in decimal hours in 'HH.H...' format '%(tISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)tISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric distance of Moon in mean Earth equator radii in 'N.N...' format '%(*tISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*tISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric distance of Moon in kilometers in 'N.N...' format '%(uISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)uISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elongation of Moon in degrees and arcminutes in 'DDDdMM'' format '%(*uISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*uISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elongation of Moon in decimal degrees in 'DDD.D...' format '%(vISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)vISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%(*vISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*vISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta-t in seconds in '+|-N.N...' format '%(wISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)wISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Local sidereal time in 'HH:MM' _24-hours_ format '%(*wISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*wISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Local sidereal time in 'HH:MM' _12-hours_ format with time suffix '%(xISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)xISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Base time as time value in hours and minutes in 'HHhMM'' format '%(*xISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*xISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Base time as time value in decimal hours in 'HH.H...' format '%(yISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)yISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%(*yISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*yISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Julian date in days in 'N.N...' format '%(zISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)zISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%(*zISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*zISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Julian Ephemeris date in days in 'N.N...' format '%(AISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)AISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric elevation of Moon/Sun in degrees and arcminutes in '+|-DDDdMM'' format '%(*AISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*AISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric elevation of Moon/Sun in decimal degrees in '+|-DDD.D...' format '%(BISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)BISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric azimuth of Moon/Sun in degrees and arcminutes in '+|-DDDdMM'' format '%(*BISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*BISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric azimuth of Moon/Sun in decimal degrees in '+|-DDD.D...' format '%(CISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)CISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric elevation of Moon/Sun in degrees and arcminutes in '+|-DDDdMM'' format '%(*CISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*CISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric elevation of Moon/Sun in decimal degrees in '+|-DDD.D...' format '%(DISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)DISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric azimuth of Moon/Sun in degrees and arcminutes in '+|-DDDdMM'' format '%(*DISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*DISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric azimuth of Moon/Sun in decimal degrees in '+|-DDD.D...' format '%(EISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric elevation of Moon/Sun at standard moonrise time in degrees and arcminutes in '+|-DDDdMM'' format '%(*EISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric elevation of Moon/Sun at standard moonrise time in decimal degrees in '+|-DDD.D...' format '%)EISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric elevation of Moon/Sun at standard moonset time in degrees and arcminutes in '+|-DDDdMM'' format '%)*EISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric elevation of Moon/Sun at standard moonset time in decimal degrees in '+|-DDD.D...' format '%(FISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric azimuth of Moon/Sun at standard moonrise time in degrees and arcminutes in '+|-DDDdMM'' format '%(*FISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric azimuth of Moon/Sun at standard moonrise time in decimal degrees in '+|-DDD.D...' format '%)FISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric azimuth of Moon/Sun at standard moonset time in degrees and arcminutes in '+|-DDDdMM'' format '%)*FISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta topocentric azimuth of Moon/Sun at standard moonset time in decimal degrees in '+|-DDD.D...' format '%(GISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric elevation of Moon/Sun at standard moonrise time in degrees and arcminutes in '+|-DDDdMM'' format '%(*GISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric elevation of Moon/Sun at standard moonrise time in decimal degrees in '+|-DDD.D...' format '%)GISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric elevation of Moon/Sun at standard moonset time in degrees and arcminutes in '+|-DDDdMM'' format '%)*GISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric elevation of Moon/Sun at standard moonset time in decimal degrees in '+|-DDD.D...' format '%(HISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric azimuth of Moon/Sun at standard moonrise time in degrees and arcminutes in '+|-DDDdMM'' format '%(*HISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric azimuth of Moon/Sun at standard moonrise time in decimal degrees in '+|-DDD.D...' format '%)HISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric azimuth of Moon/Sun at standard moonset time in degrees and arcminutes in '+|-DDDdMM'' format '%)*HISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta geocentric azimuth of Moon/Sun at standard moonset time in decimal degrees in '+|-DDD.D...' format '%(IISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)IISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta astronomical midnight time of Moon/Sun as time value in hours and minutes in '+|-HHhMM'' format '%(*IISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*IISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta astronomical midnight time of Moon/Sun as time value in decimal hours in '+|-HH.H...' format '%(JISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)JISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta astronomical noon time of Moon/Sun as time value in hours and minutes in '+|-HHhMM'' format '%(*JISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*JISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta astronomical noon time of Moon/Sun as time value in decimal hours in '+|-HH.H...' format '%(KISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta time standard rise of Moon/Sun at standard moonrise time as time value in hours and minutes in '+|-HHhMM'' format '%(*KISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta time standard rise of Moon/Sun at standard moonrise time as time value in decimal hours in '+|-HH.H...' format '%)KISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta time standard set of of Moon/Sun at standard moonset time as time value in hours and minutes in '+|-HHhMM'' format '%)*KISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Delta time standard set of of Moon/Sun at standard moonset time as time value in decimal hours in '+|-HH.H...' format '%(LISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)LISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Moon at Moon's astronomical midnight time in degrees and arcminutes in '+|-DDDdMM'' format '%(*LISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*LISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Moon at Moon's astronomical midnight time in decimal degrees in '+|-DDD.D...' format '%(MISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)MISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric phase angle of Moon at Moon's astronomical midnight time in range 0.0...1.0 in 'N.N...' format '%(*MISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*MISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric phase angle of Moon at Moon's astronomical midnight time as percent value in range 0.0...100.0 in 'N.N...' format '%(NISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)NISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Moon at Moon's astronomical noon time in degrees and arcminutes in '+|-DDDdMM'' format '%(*NISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*NISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Moon at Moon's astronomical noon time in decimal degrees in '+|-DDD.D...' format '%(OISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)OISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric phase angle of Moon at Moon's astronomical noon time in range 0.0...1.0 in 'N.N...' format '%(*OISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*OISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric phase angle of Moon at Moon's astronomical noon time as percent value in range 0.0...100.0 in 'N.N...' format '%(KISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Moon at standard moonrise time in degrees and arcminutes in '+|-DDDdMM'' format '%(*PISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Moon at standard moonrise time in decimal degrees in '+|-DDD.D...' format '%)PISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Moon at standard moonset time in degrees and arcminutes in '+|-DDDdMM'' format '%)*PISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric elevation of Moon at standard moonset time in decimal degrees in '+|-DDD.D...' format '%(QISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric azimuth of Moon at standard moonrise time in degrees and arcminutes in 'DDDdMM'' format '%(*QISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric azimuth of Moon at standard moonrise time in decimal degrees in 'DDD.D...' format '%)QISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric azimuth of Moon at standard moonset time in degrees and arcminutes in 'DDDdMM'' format '%)*QISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric azimuth of Moon at standard moonset time in decimal degrees in 'DDD.D...' format '%(RISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric phase angle of Moon at standard moonrise time in range 0.0...1.0 in 'N.N...' format '%(*RISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric phase angle of Moon at standard moonrise time as percent value in range 0.0...100.0 in 'N.N...' format '%)RISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric phase angle of Moon at standard moonset time in range 0.0...1.0 in 'N.N...' format '%)*RISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Topocentric phase angle of Moon at standard moonset time as percent value in range 0.0...100.0 in 'N.N...' format '%(SISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)SISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Moon at Moon's astronomical midnight time in degrees and arcminutes in '+|-DDDdMM'' format '%(*SISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*SISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Moon at Moon's astronomical midnight time in decimal degrees in '+|-DDD.D...' format '%(TISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)TISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric phase angle of Moon at Moon's astronomical midnight time in range 0.0...1.0 in 'N.N...' format '%(*TISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*TISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric phase angle of Moon at Moon's astronomical midnight time as percent value in range 0.0...100.0 in 'N.N...' format '%(UISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)UISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Moon at Moon's astronomical noon time in degrees and arcminutes in '+|-DDDdMM'' format '%(*UISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*UISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Moon at Moon's astronomical noon time in decimal degrees in '+|-DDD.D...' format '%(VISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)VISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric phase angle of Moon at Moon's astronomical noon time in range 0.0...1.0 in 'N.N...' format '%(*VISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' '%)*VISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric phase angle of Moon at Moon's astronomical noon time as percent value in range 0.0...100.0 in 'N.N...' format '%(WISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Moon at standard moonrise time in degrees and arcminutes in '+|-DDDdMM'' format '%(*WISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Moon at standard moonrise time in decimal degrees in '+|-DDD.D...' format '%)WISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Moon at standard moonset time in degrees and arcminutes in '+|-DDDdMM'' format '%)*WISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric elevation of Moon at standard moonset time in decimal degrees in '+|-DDD.D...' format '%(XISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric azimuth of Moon at standard moonrise time in degrees and arcminutes in 'DDDdMM'' format '%(*XISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric azimuth of Moon at standard moonrise time in decimal degrees in 'DDD.D...' format '%)XISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric azimuth of Moon at standard moonset time in degrees and arcminutes in 'DDDdMM'' format '%)*XISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric azimuth of Moon at standard moonset time in decimal degrees in 'DDD.D...' format '%(YISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric phase angle of Moon at standard moonrise time in range 0.0...1.0 in 'N.N...' format '%(*YISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric phase angle of Moon at standard moonrise time as percent value in range 0.0...100.0 in 'N.N...' format '%)YISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric phase angle of Moon at standard moonset time in range 0.0...1.0 in 'N.N...' format '%)*YISO-6709:1983-CO-ORDINATE[,[+|-]MMMM|HH:[MM]]' Geocentric phase angle of Moon at standard moonset time as percent value in range 0.0...100.0 in 'N.N...' format '%[FORMAT]-[ARGUMENT]' Contents of environment variable '%[FORMAT]?' difference value '%d' Relative day number '%w' Relative week number '%m' Relative month number '%y' Relative year number '%?' highlighting '%1' Start of highlighting sequence 1 '%2' End of highlighting sequence 1 '%3' Start of highlighting sequence 2 '%4' End of highlighting sequence 2 '%5' Start of highlighting sequence 1 if a fixed date is on today's date '%6' End of highlighting sequence 1 if a fixed date is on today's date '%7' Start of highlighting sequence 2 if a fixed date is on a legal holiday date '%8' End of highlighting sequence 2 if a fixed date is on a legal holiday date '%9' Start of highlighting sequence 1 if a fixed date is on today's date, otherwise start of highlighting sequence 2 if a fixed date is on a legal holiday date '%0' End of highlighting sequence 1 if a fixed date is on today's date, otherwise end of highlighting sequence 2 if a fixed date is on a legal holiday date '%![ARGUMENT]' Shell executes ARGUMENT as a command  File: gcal.info, Node: Obsolete Special Texts, Next: Format Instruction, Prev: Special Texts Summary, Up: Top Appendix I Obsolete Special Texts and Format Elements ***************************************************** * Menu: * Table of Obsolete Special Texts:: * Table of Obsolete Date Format Elements:: * Table of Obsolete Date Formats:: Because Gcal 4.1 is able to represent most special texts which may occur in the text part of a resource file line (*note Description of all '%?'... Special Texts: Special Texts.), and most of the format elements as they may be used in the date format text of the '--date-format' *Note Calendar option '--date-format=de|us|gb|TEXT': x-date-format, by using a format instruction, some of them --mainly introduced in the Gcal versions 2.20 and 2.40-- are obsolete now. The following complete tables of all these obsolete special texts respectively format elements with their new representation, as used by Gcal 4.1 now, show the changes made.  File: gcal.info, Node: Table of Obsolete Special Texts, Next: Table of Obsolete Date Format Elements, Prev: Obsolete Special Texts, Up: Obsolete Special Texts I.1 Table of Obsolete Special Texts =================================== This table opposes all obsolete special texts as they may be used in the text part of a resource file line (*note Description of all '%?'... Special Texts: Special Texts.), and their new representation, as used by Gcal 4.1 now: *Symbolic name* *Old-style* *New-style* %complete weekday name '%o' == '%K' %3-letter weekday name '%O' == '%>3#K' %2-letter weekday name '%K' == '%>2#K' %weekday number (Mon=1...Sun=7) '%S' == '%W' %weekday number (Mon=1...Sun=7) ONS '%I' == '%>1&*W' %weekday number (Mon=0...Sun=6) ONS '%J' == '%>1&*E' %weekday number (Sun=1...Sat=7) '%(' == '%I' %weekday number (Sun=1...Sat=7) ONS '%<' == '%>1&*I' %weekday number (Sun=0...Sat=6) '%)' == '%J' %weekday number (Sun=0...Sat=6) ONS '%>' == '%>1&*J' %weekday number (Mon=1...Sun=7) FLX '%[' == '%S' %weekday number (Mon=1...Sun=7) FLX ONS '%{' == '%>1&*S' %weekday number (Mon=0...Sun=6) FLX '%]' == '%T' %weekday number (Mon=0...Sun=6) FLX ONS '%}' == '%>1&*T' %day-of-year number '%+' == '%N' %day-of-year number +LZ '%*' == '%>03*N' %day-of-year number ONS '%&' == '%>1&*N' %day-of-year number +LZ ONS '%#' == '%>03&*N' %day number +LZ '%N' == '%>02*D' %day number ONS '%s' == '%>1&*D' %day number +LZ ONS '%u' == '%>02&*D' %complete month name '%M' == '%U' %3-letter month name '%T' == '%>3#U' %month number '%U' == '%M' %month number +LZ '%W' == '%>02*M' %month number ONS '%z' == '%>1&*M' %month number +LZ ONS '%Z' == '%>02&*M' %complete year number +LZ '%=' == '%>04*Y' %age value (birthday) number '%b' == '%B' %age value (birthday) number ONS '%B' == '%>1&*B' %moon phase '%-' == '%O' %moon phase +LZ '%_' == '%>03*O' %moon phase text graphics image '%:' == '%Z' Legend: +LZ == With leading zero(es) FLX == Flexible starting day of week (*note Calendar option '--starting-day=ARGUMENT': x-starting-day.) ONS == With Ordinal Number suffix  File: gcal.info, Node: Table of Obsolete Date Format Elements, Next: Table of Obsolete Date Formats, Prev: Table of Obsolete Special Texts, Up: Obsolete Special Texts I.2 Table of Obsolete Date Format Elements ========================================== This table opposes all obsolete date format elements as they may be used in the date format text of the '--date-format' option (*note Calendar option '--date-format=de|us|gb|TEXT': x-date-format.), and their new representation, as used by Gcal 4.1 now: *Symbolic name* *Old-style* *New-style* %day number '%d' == '%>02*D' %day number +LS '%D' == '%>2*D' %day number +LZ ONS '%u' == '%02&*D' %day number +LS ONS '%U' == '%>2&*D' %complete month name '%B' == '%U' %3-letter month name '%b' == '%<3#U' %month number +LZ '%m' == '%>02*M' %month number +LS '%M' == '%>2*M' %complete year number +LZ '%y' == '%>04*Y' %complete year number +LZ '%Y' == '%>4*Y' %last-2-digits year number +LZ '%z' == '%>02#Y' %last-2-digits year number +LS '%Z' == '%>2#Y' %complete weekday name '%A' == '%K' %3-letter weekday name '%W' == '%<3#K' %2-letter weekday name '%w' == '%<2#K' Legend: +LZ == With leading zero(es) +LS == With leading space(s) ONS == With Ordinal Number suffix  File: gcal.info, Node: Table of Obsolete Date Formats, Prev: Table of Obsolete Date Format Elements, Up: Obsolete Special Texts I.3 Table of Obsolete Date Formats ================================== This table opposes all obsolete date format texts as they may be used in the fixed defaults of the country specific date formats of the '--date-format' option for German users, U.S. american users and users in Great Britain (*note Calendar option '--date-format=de|us|gb|TEXT': x-date-format.), and their new representation, as used by Gcal 4.1 now: *CC* *Old-style* *New-style* DE '%w, %1%D%2 %b %y' == '%<2#K, %1%>2*D%2 %<3#U %>04*Y' US '%W, %b %1%U%2 %y' == '%<3#K, %<3#U %1%>2&*D%2 %>04*Y' GB '%W, %1%U%2 %b %y' == '%<3#K, %1%>2&*D%2 %<3#U %>04*Y'  File: gcal.info, Node: Format Instruction, Next: Coding Scheme, Prev: Obsolete Special Texts, Up: Top Appendix J Format Instruction ***************************** Gcal 4.1 is able to represent text variables, special texts and date formats especially in a very comfortable and uniform manner by using a format instruction. Here comes the description of the format instruction components, now called FORMAT in the further context. In general, the template of a format instruction is: ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT If a FORMAT of above mentioned template is used, its components must be specified in the above mentioned order, at which the definition of the components embraced by '[ ]' is of course optional. The single components of the format instruction are assembled as follows: *Character* *Description of the components* ALIGNMENT group (exactly one member must be defined): '<' Field contents is placed at the left margin of the field by using the width WIDTH ':' Field contents is placed in centered manner in the field by using the width WIDTH '>' Field contents is placed at the right margin of the field by using the width WIDTH SIGN (may be defined): '+' Numerical value is provided with leading sign ZERO (may be defined): '0' Numerical value is filled with leading zero(es) WIDTH (must be defined): N Field has the width N (actual range 1...256). STYLE group (exactly one member may be defined): 'u' Field contents is converted to upper-case letters 'l' Field contents is converted to lower-case letters 'w' Field contents is converted to capitalized words SUFFIX (may be defined): '&' Numerical value is provided with an Ordinal Number suffix FORMAT group (exactly one member must be defined): '*' Field contents is not cut after position WIDTH '#' Field contents is cut after position WIDTH If a given WIDTH component is greater 256 but less than 999, a field width of 256 is assumed. But if a given WIDTH component is zero, this interrupts the interpretation phase of Gcal so that the complete FORMAT is not interpreted anymore and is therefore displayed respectively assigned as is. The same happens if a component is misspelled, given in wrong order, or one of the required components is unspecified. Furthermore, a STYLE component may be specified case-independently. *Note Calendar option '--translate-string=TEXT': x-translate-string, for further annotations how the STYLE component is used correctly.  File: gcal.info, Node: Coding Scheme, Next: Environment Variables, Prev: Format Instruction, Up: Top Appendix K Coding Scheme ************************ * Menu: * Coding Scheme Table 1:: * Coding Scheme Table 2:: The following coding scheme 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 '--period-of-fixed-dates=ARGUMENT' long-style option 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! *Note Fixed dates option '--period-of-fixed-dates=ARGUMENT': x-period-of-fixed-dates, for further details. In the _date part_ YYYY...: YYYY represents any year number ('0001...9999'). MM represents any month number ('01...12' or '99') respectively any textual short month name with length of 3 characters ('Jan', 'Feb'...). DD represents any day number ('01...28', '29', '30', '31' or '99'). WWW represents any textual short weekday name with length of 2...3 characters ('Mon...Sun'). ? represents any case-insensitive single letter. N represents any positive integer number (one or more digits).  File: gcal.info, Node: Coding Scheme Table 1, Next: Coding Scheme Table 2, Prev: Coding Scheme, Up: Coding Scheme K.1 Coding Scheme Table 1 ========================= This table opposes all possible encode variations of a date given in the _date part_ of resource file with all fitting modifiers of the short-style option '-c|C[]'. *Please note:* The '-c', '-ct', '-cNd', '-c*d|wN[WWW]', '-c@?[[+|-]N[WWW]]', '-cMMDD' and '-cMMWWWN' options respect *all* encode variations of the _date part_! *Date part* *Short-style option '-c|C[]'* '00000000' '-cN+|-' '000000DD' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]' '0000MM00' '-cN+|-' '0000MMDD' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]', '-cy[+|-]', '-clNd|w|+|-', '-cl*d|wN[WWW]', '-cl@?[[+|-]N[WWW]]', '-clMMDD', '-clMMWWWN' 'YYYY0000' '-cN+|-' 'YYYY00DD' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]' 'YYYYMM00' '-cN+|-' 'YYYYMMDD' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]', '-cy[+|-]', '-clNd|w|+|-', '-cl*d|wN[WWW]', '-cl@?[[+|-]N[WWW]]', '-clMMDD', '-clMMWWWN' '000000WWWN' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]' '0000MMWWWN' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]', '-cy[+|-]', '-clNd|w|+|-', '-cl*d|wN[WWW]', '-cl@?[[+|-]N[WWW]]', '-clMMDD', '-clMMWWWN' 'YYYY00WWWN' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]' 'YYYYMMWWWN' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]', '-cy[+|-]', '-clNd|w|+|-', '-cl*d|wN[WWW]', '-cl@?[[+|-]N[WWW]]', '-clMMDD', '-clMMWWWN' '0000*dN[WWW]' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]', '-cy[+|-]', '-clNd|w|+|-', '-cl*d|wN[WWW]', '-cl@?[[+|-]N[WWW]]', '-clMMDD', '-clMMWWWN' 'YYYY*dN[WWW]' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]', '-cy[+|-]', '-clNd|w|+|-', '-cl*d|wN[WWW]', '-cl@?[[+|-]N[WWW]]', '-clMMDD', '-clMMWWWN' '0000*wN[WWW]' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]', '-cy[+|-]', '-clNd|w|+|-', '-cl*d|wN[WWW]', '-cl@?[[+|-]N[WWW]]', '-clMMDD', '-clMMWWWN' 'YYYY*wN[WWW]' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]', '-cy[+|-]', '-clNd|w|+|-', '-cl*d|wN[WWW]', '-cl@?[[+|-]N[WWW]]', '-clMMDD', '-clMMWWWN' '0000@?[+|-]N[WWW]' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]', '-cy[+|-]', '-clNd|w|+|-', '-cl*d|wN[WWW]', '-cl@?[[+|-]N[WWW]]', '-clMMDD', '-clMMWWWN' 'YYYY@?[+|-]N[WWW]' '-cNw|+|-', '-cw[+|-]', '-cm[+|-]', '-cy[+|-]', '-clNd|w|+|-', '-cl*d|wN[WWW]', '-cl@?[[+|-]N[WWW]]', '-clMMDD', '-clMMWWWN'  File: gcal.info, Node: Coding Scheme Table 2, Prev: Coding Scheme Table 1, Up: Coding Scheme K.2 Coding Scheme Table 2 ========================= This table opposes all fitting modifiers of the short-style option '-c|C[]' with all possible encode variations of a date given in the _date part_ of resource file. *Short-style option *Date part* '-c|C[]'* '-c' '-ct' '-cNd|+|-' '-cMMDD' '-cMMWWWN' '-c*d|wN[WWW]' '-c@?[[+|-]N[WWW]]' '00000000', '0000MM00', 'YYYY0000', 'YYYYMM00', '000000DD', '0000MMDD', 'YYYY00DD', 'YYYYMMDD', '000000WWWN', '0000MMWWWN', 'YYYY00WWWN', 'YYYYMMWWWN', '0000*dN', '0000*dNWWW', 'YYYY*dN', 'YYYY*dNWWW', '0000*wN', '0000*wNWWW', 'YYYY*wN', 'YYYY*wNWWW', '0000@?[+|-]N', '0000@?[+|-]NWWW', 'YYYY@?[+|-]N', 'YYYY@?[+|-]NWWW' '-cNw' '-cw[+|-]' '000000DD', '0000MMDD', 'YYYY00DD', 'YYYYMMDD', '000000WWWN', '0000MMWWWN', 'YYYY00WWWN', 'YYYYMMWWWN', '0000*dN', '0000*dNWWW', 'YYYY*dN', 'YYYY*dNWWW', '0000*wN', '0000*wNWWW', 'YYYY*wN', 'YYYY*wNWWW', '0000@?[+|-]N', '0000@?[+|-]NWWW', 'YYYY@?[+|-]N', 'YYYY@?[+|-]NWWW' '-cm[+|-]' '000000DD', '0000MMDD', 'YYYY00DD', 'YYYYMMDD', '000000WWWN', '0000MMWWWN', 'YYYY00WWWN', 'YYYYMMWWWN', '0000*dN', '0000*dNWWW', 'YYYY*dN', 'YYYY*dNWWW', '0000*wN', '0000*wNWWW', 'YYYY*wN', 'YYYY*wNWWW', '0000@?[+|-]N', '0000@?[+|-]NWWW', 'YYYY@?[+|-]N', 'YYYY@?[+|-]NWWW' '-cy[+|-]' '-clNd|w|+|-' '-clMMDD' '-clMMWWWN' '-cl*d|wN[WWW]' '-cl@?[[+|-]N[WWW]]' '0000MMDD', 'YYYYMMDD', '0000MMWWWN', 'YYYYMMWWWN', '0000*dN', '0000*dNWWW', 'YYYY*dN', 'YYYY*dNWWW', '0000*wN', '0000*wNWWW', 'YYYY*wN', 'YYYY*wNWWW', '0000@?[+|-]N', '0000@?[+|-]NWWW', 'YYYY@?[+|-]N', 'YYYY@?[+|-]NWWW'  File: gcal.info, Node: Environment Variables, Next: Error Codes, Prev: Coding Scheme, Up: Top Appendix L Environment Variables ******************************** Here is a table of all environment variables which are used by Gcal: 'GCAL' 'GCAL_OPT' Flags which are passed to the Gcal program automatically. 'GCAL_COLUMNS' 'COLUMNS' Sets the number of columns on the screen. Takes precedence over the number of columns specified by the 'TERM' environment variable or the system itself. 'GCAL_DATE_FORMAT' Contains the date format text which defines the ordering of a displayed date. Takes precedence over the default date format text. 'GCAL_LINES' 'LINES' Sets the number of lines on the screen. Takes precedence over the number of lines specified by the 'TERM' environment variable or the system itself. 'GCAL_SYS_DATADIR' Name of a file directory absolute to the _root_/$PREFIX file directory, where the system-administrator stores common, _public access_ resource files (dates files). 'GCAL_USR_DATADIR' Name of a file directory relative to the 'HOME' file directory, where the user stores personal, respectively _private access_ resource files (dates files). Takes precedence over 'GCAL_SYS_DATADIR'. 'GCALANSI' If defined or set, ANSI escape highlighting sequences are used respectively substituted by default if no other highlighting sequences are defined by command line option or found in the Termcap library. 'GCALPATH' (':') colon-separated list of file directories which are searched to find the '.gcalrc' file. Takes precedence over 'HOME', 'GCAL_USR_DATADIR' and 'GCAL_SYS_DATADIR'. 'GCALPROG' Contains the file name of the executable Gcal program that is used by the Tcal program to call the Gcal program. Takes precedence over the file name 'gcal' which is burned-in during the compilation step of the Tcal program. The 'GCALPROG' environment variable must always be set if the Gcal program is installed under another name than the standard name 'gcal', otherwise Tcal is unable to execute the Gcal program automatically! 'HOME' Name of the user's home file directory. This is used to find the '.gcalrc' file. Takes precedence over 'GCAL_USR_DATADIR' and 'GCAL_SYS_DATADIR'. 'LANGUAGE' The national language and other cultural-specific conventions used by Gcal at run-time. Takes precedence over 'LC_ALL', 'LC_MESSAGES' and 'LANG'. 'LC_ALL' The national language and other cultural-specific conventions used by Gcal at run-time. Takes precedence over 'LC_MESSAGES' and 'LANG'. 'LC_MESSAGES' The national language and other cultural-specific conventions used by Gcal at run-time. Takes precedence over 'LANG'. 'LANG' The national language and other cultural-specific conventions used by Gcal at run-time. 'LOGNAME' The eMail address which is used if the mailing option is wanted. *Note Global option '--mail[=ADDRESS]': x-mail, for more details. 'MAILPROG' Name of the mailer program which is used if the mailing option is wanted. Takes precedence over the file name 'mail' which is burned-in during the compilation step of the Gcal program. *Note Global option '--mail[=ADDRESS]': x-mail, for more details. 'MAILTO' The eMail address which is used if the mailing option is wanted. Takes precedence over 'USER' and 'LOGNAME'. *Note Global option '--mail[=ADDRESS]': x-mail, for more details. 'PAGER' Name of the _external pager_ program which is used if the paging option is wanted. *Note Global option '--pager': x-pager, for more details. 'PATH' (':') colon-separated list of file directories which are searched to find the _external pager_ program. *Note Global option '--pager': x-pager, for more details. 'TERM' The type of terminal on which the Gcal program is being run. 'TXT2GCALPROG' Contains the file name of the executable Txt2gcal program that is used by the Gcal program to call the Txt2gcal program. Takes precedence over the file name 'txt2gcal' which is burned-in during the compilation step of the Gcal program. The 'TXT2GCALPROG' environment variable must always be set if the Txt2gcal program is installed under another name than the standard name 'txt2gcal', otherwise Gcal is unable to execute the Txt2gcal program automatically! *Note Text variables::, for further details. 'TZ' The timezone information which is added to the date text of sent eMails, created response files and created shell script files. 'USER' The eMail address which is used if the mailing option is wanted. Takes precedence over 'LOGNAME'. *Note Global option '--mail[=ADDRESS]': x-mail, for more details.  File: gcal.info, Node: Error Codes, Next: Glossary, Prev: Environment Variables, Up: Top Appendix M Error Codes ********************** Gcal produces the following _exit codes_: '127' Request for help screen, software license or program version (adjustable). '126' Invalid command line argument / option. '125' Year out of range for computing the Easter Sunday's date. '124' Virtual memory exhausted. '123' Invalid date part in resource file or in include file. '122' Invalid month field entry in resource file or in include file. '121' Invalid day field entry in resource file or in include file. '120' Malformed _#include_ statement in resource file or in include file. '119' Illegal recursive/cyclic _#include_ statement in resource file or in include file. '118' Resource file or include file not found. '117' Invalid N'th weekday field (only '1...5' or '9' valid). '116' Missing _whitespace_ separator character between _date part_ and _text part_. '115' Response file respectively shell script cannot be written. '114' Invalid date variable operation. '113' Referenced date variable undefined. '112' Invalid date value assigned to date variable. '111' Sending output to eMail address failed. '110' Internal error, C function pipe(), fork(), exec*() or unlink() failed. '109' Error reading resource, include respectively response file. '108' Illegal character found in response file. '107' Internal error, invalid value for the size of an internal table occurred. '106' Invalid date format text specified. '105' Invalid text variable definition. '104' Invalid regular expression search pattern specified. '3' Program aborted by signal. '2' _Exit code_ not equal zero returned by external command. '1' Activated '-c|C[]', '-f|F NAME[+...]' or '-# LINE' option caused no output of resource file entries. '0' Normal program termination.  File: gcal.info, Node: Glossary, Next: Argument Index, Prev: Error Codes, Up: Top Appendix N Glossary ******************* Here is an alphabetical list of most terms with short description that are introduced and used in this manual: "Actual date modifier" Gcal uses that date as today's date which is declared by the actual date modifier, instead of using the date that is given by computer's clock as system date. "Alternation operator" The '|' metacharacter is used to specify alternatives in a regular expression. "Amateur-astronomical twilight" The time when the center of the Sun passes a reference altitude of 15 degrees below a mathematical horizon. "Anchor" The '^' and '$' metacharacters in a regular expression. "ANSI" The American National Standards Institute. This organization produces many standards, among them the standards for the C and C++ programming languages. "Asr prayer time" The third Islamic prayer time. Begins in the afternoon when the length of the shadow cast by a vertical pole has a definite length, and ends just before sunset. "Astronomical twilight" The time when the center of the Sun passes a reference altitude of 18 degrees below a mathematical horizon. "Astronomical unit" An astronomical unit, abbreviated by ae, is equal to the mean distance of the Sun from the Earth, which is about 149,597,870.691 kilometers. "Autumnal equinox point on the ecliptic" The point where the descending Sun's orbit intersects the celestial equator. "Azimuth" The horizontal angular distance between the vertical circle, that passes a celestial body, and the North point. "Biorhythm" Ascending and descending curves which show three coherent biological cycles, the physical, the emotional and the intellectual cycle. "BSD" Short term for 'Berkeley Software Distribution', a Unix operating system variant. "C" The system programming language that most GNU software is written in. "Calendar option class" The option which control the calendar layout. "Celestial axis" The connecting line which runs between the celestial North and South Pole. "Celestial body elevation" The vertical angular distance between the celestial body and the horizon. "Celestial equator" A celestial great circle, which is vertical to the celestial axis and simultaneously represents the Earth's equator that is projected onto the celestial sphere. "Celestial Pole" The northern and southern lengthening of the Earth's rotation axis, respectively, projected on the celestial sphere. "Character class" A character class in a regular expression is a special notation for describing lists of characters that have a specific attribute, but where the actual characters themselves can vary from country to country and/or from character set to character set. "Character list" Matches any one of the characters that are enclosed in the square brackets in a text, which is processed by a regular expression. "Character set" The set of numeric codes used by a computer system to represent the characters (letters, numbers, punctuation, etc.) of a particular country or place. The most common character set in use today is ASCII (American Standard Code for Information Interchange). Many European countries use an extension of ASCII known as ISO-8859-1 (ISO Latin-1). "Civil Islamic calendar" The arithmetically determined Islamic lunar calendar. "Civil midnight time" In terms of Gcal, this is 0 o'clock, the day change just took part. This clocktime is alternatively also denoted as 24 o'clock, or 12pm. "Civil twilight" The time when the center of the Sun passes a reference altitude of 6 degrees below a mathematical horizon. "Collating element" A special sequence that can appear in a character lists of a regular expression. This apply to non-ASCII character sets, which can have single symbols that are represented with more than one character, as well as several characters that are equivalent for collating, or sorting, purposes. "Collating symbol" A multi-character collating element of a regular expression that is enclosed in '[.' and '.]' metacharacters. "Command line argument" A special text that is mostly given on the command line to run Gcal, and which serves for controlling the program. "Command" A special type of command line argument which controls the periods Gcal respects. "Common option class" The standard options all GNU software should implement at least partially. "Conjunction" A celestial body is either behind the Sun or is between Sun and Earth (seen from the Earth), and is therefore non-visible from the Earth. In terms of the Moon, this is the New Moon phase. "Critical day" Those days in the biorhythm in which one or more of the biological cycles crosses the zero point. At that time, one's system is said to be in a state of flux and it may be desirable to exhibit caution. "Cycle mode" The dynamical, i.e. depending on the respective clocktime, Sun and Moon oriented special texts are calculated for a series of clocktimes for the current day, i.e. determination is done for any time interval that can be individually defined by the user. "Date part" That part of a Gcal resource file line that contains the information at which date a fixed date happens. "Decimal system" Base-ten notation, where the digits are '0'...'9'. "Declination" The vertical angular distance between the center of a celestial body and the celestial equator. "Delta-t" Delta-t is the difference between the Terrestrial Dynamical time (abbreviated by TDT), that was formerly known as _Ephemeris time_ (abbreviated by ET), and the Universal time (UT). Thus, 'delta-t == TDT - UT'. "Early years" In terms of eternal holidays that are determined by Gcal, these are the years within the period AD 30 until the midth of the 20th century. "Ecliptic latitude" The vertical angular distance between the center of a celestial body and the ecliptic. "Ecliptic longitude" The vertical angular distance between the center of a celestial body and the vernal equinox point on the ecliptic. "Ecliptic" The zodiacal line or Sun's orbit. "Elongation" The horizontal angular distance between the center of a celestial body and the Sun's center, as seen from the Earth. "Ending date" A part of a Gcal special text that defines the last or latest date at which the fixed date may occur. "Environment" A collection of strings, of the form 'name''='VALUE, that each program has available to it. Users generally place values into the environment in order to provide information to various programs. Typical examples are the environment variables 'HOME' and 'PATH'. "Equation of time" A correction to be added to the true solar time --as read on a sundial-- to obtain the mean solar time. "Equivalence class" A list of equivalent characters of a regular expression that is enclosed in '[=' and '=]' metacharacters. "Escape sequence" A special sequence of characters used for describing non-printing characters, such as '\E' or '\033' or '\x1B' for the ASCII 'ESC' (escape) character itself. "Evening width" "Set width" The horizontal angular distance between the set azimuth of a celestial body and the West direction. "Exclusive day period" "Exclusive date period" A Gcal special text that can be specified with the effect, that only those fixed dates are respected and displayed which are not part of a definite period. "Extended file name" A name that contains one ore more '/' characters, and which denotes a file, whose fixed access path either starts from the root file directory, like '/foo/bar/file', or from the actual file directory, like './bar/file' or '../bar/file'. "Extended language code information" A simple language code information, which additionally has a territory information that is separated by a '_', like 'en_us' for american English. "Fajr prayer time" The first Islamic prayer time. Begins with the beginning of astronomical morning twilight, and ends just before sunrise. "Fixed date option class" The options which control the fixed date layout and intensity. "Format instruction" Text variables, special texts and date formats can be provided with such an instruction text that results the special representation of the contents of text variables, and the evaluated special texts and date formats. "FSF" "Free Software Foundation" A non-profit organization dedicated to the production and distribution of freely distributable software. It was founded by Richard M. Stallman, the author of the original Emacs editor. "Geocentric data" Observations of celestial bodies that are done from the fictitious center of the Earth yield in geocentrically based values. "Geocentrical horizon" That fictitious horizontal plane that passes through the Earth's center, orthogonal to the observer's local vertical. "Geometrical horizon" "Mathematical horizon" "Mathematical-geocentric horizon" A purely geometrically-built horizon which disregards the phenomenon of refraction as it arises in reality by the influence of the Earth's atmosphere. "Global date variable" A Gcal date variable, which is defined in the command line. Is visible in all referenced resource files. "Global option class" The options which modify the program output. "Global text variable" A Gcal text variable, which is defined in the command line. Is visible in all referenced resource files. "Gnomon" A vertical pole which is used to ascertain the length of a shadow. "GNU" 'GNU's not Unix'. An on-going project of the Free Software Foundation to create a complete, freely distributable, POSIX-compliant computing environment. "GPL" "General Public License" The terms under which Gcal and its source code may be distributed. "Gregorian calendar" The calendar which was introduced in AD 1582 by Pope Gregory XIII, that has an average year length of 365.2425 days. This calendar is most respected around the world today. "Hexadecimal system" Base 16 notation, where the digits are '0'...'9' and 'A'...'F', with 'A' representing 10, 'B' representing 11, and so on up to 'F' for 15. "Highest culmination point" The highest point above or below the horizontal plane which transits a celestial body during a day. "Highlighting sequence" A control character sequence which cause a color or intensity switch in output text. Typical control character sequences are the ANSI escape sequences which have a leading escape character, and trailing more characters that define the type of the ANSI escape sequence. "Horizontal parallax" The horizontal parallax of a celestial body specifies the diameter of the Earth as it is seen from the surface of the celestial body. "Hybrid calendar mode" The automatical change from one calendar system to another if there are relations to a date for which the other calendar system is valid. Thus, Gcal automatically changes from the Julian calendar system to the Gregorian calendar system if output is related to dates after the Gregorian Reformation has happened. "Inclusive day period" "Inclusive date period" A Gcal special text that can be specified with the effect, that only those fixed dates are respected and displayed which are part of a definite period. "Integer number" A whole number, i.e. a number that does not have a fractional part. "Interval expression" One or two numbers inside braces in a regular expression. "Isha prayer time" The fifth Islamic prayer time. Begins at the end of the astronomical evening twilight, and ends just before the astronomical midnight time of the Sun. "ISO" ISO is the abbreviation of 'International Organization for Standardization'. "ISO week number" The week starts on a Monday, and the first week of a year is the one which includes the first Thursday; equivalently, the one which includes the 4th January. "Julian Ephemeris date" A Julian date that is corrected by _delta-t_. "Julian calendar" The calendar which was introduced in 46 BC by Julius Caesar and in the later years corrected by emperor Augustus, that has an average year length of 365.25 years. This calendar was replaced by the Gregorian calendar in AD 1582. "Julian date" "Julian day number" A day number that is based on the date 1st January 4713 BCE, which is the starting day zero of a consecutive day counting used in astronomical computations. The real zero of this date is at 12 o'clock Universal time (UTC/GMT); the day does not change at midnight, but at noon Universal time. "Leap day" The 29th February in the Gregorian calendar. "Leap year" In the Gregorian calendar, a leap year is any year which number can be divided by 4 without a remainder, and years ending in hundreds are no leap years unless they are divisible by 400. But the Eastern Orthodox churches compute leap years within the Gregorian calendar by using another rule; and that, a leap year is any year which number can be divided by 4 without a remainder, and years ending in hundreds are leap years, if a remainder of 2 or 6 occurs when such a year is divided by 9. "Legal holiday" A day people don't have to work -- as in most companies, and businesses are closed; like 'New Year's Day' on January 1st. "Lists of commands" "Ranges of commands" Produce more than one calendar sheet per program run. "Local date variable" A Gcal date variable, which is defined in a resource file. Is visible only in this specific resource file, and that file which is included by it. "Local star time" "Local sidereal time" The momentary period which is past between the last upper culmination of the vernal equinox point in the meridian of the observer's location (the momentary hour angle of the vernal equinox point), thus the right ascension of the stars in the observer's meridian at the moment. "Local text variable" A Gcal text variable, which is defined in a resource file. Is visible only in this specific resource file, and that file which is included by it. "Long-style option" A special --non-standard-- style to write an option, e.g. '--foo'. "Lowest culmination point" The lowest point below or above the horizontal plane which transits a celestial body during a day. "Lunar Arctic Circle" The geographical latitude circle that is between about 61.5 and 71.9 decimal degrees, and the geographical pole. "Lunation" "Synodic month" The mean time between two consecutive New Moon phases. "Maghrib prayer time" The forth Islamic prayer time. Begins at sunset, and ends at the beginning of the _Isha_ prayer time. "Magnitude unit" Is used to define the brightness of a star, and is a non-metrical value (Latin term 'magnitudo', abbreviated m). The difference between two consecutive magnitudes is 1 to 2.512. Therefore, a star with the brightness of 1m is 2.512 times brighter than a star of 2m. A negative magnitude denotes a very bright star, for example almost -27m for the Sun, whereas the hardly visible planet Pluto has a magnitude of a bit more than +14m. The Full Moon has a visual brightness of about -12m.55. "Marking character" Single, printable characters which lead and trail the output text for marking purposes. "Mean Earth equator radius" The mean radius of Earth at the equator is about 6,378.137 kilometer. "Mean solar time" "Mean solar day" "Mean sun" A star day is also known as a _mean solar day_. Because the Sun apparently shifts with respect to the vernal equinox point on the ecliptic due to the Earth's orbit around the Sun, the star day and the true solar day have a different length. As the true Sun namely moves irregularly through the ecliptic, a fictitious _mean Sun_ with a symmetrical motion through the celestial equator is used for deriving the mean solar time. "Meridian" Either a geographical longitude or an astronomical vertical circle. "Metacharacters" "Regular expression operators" Special characters in a regular expression. "Midnight height" The elevation of a celestial body as it happen at astronomical midnight time of the celestial body. "Midnight phase angle" The phase angle of a celestial body as it happen at astronomical midnight time of the celestial body. "Modifier" One or more characters which directly trail a short-style option, and which define a special mode of operation for this option. "Morning width" "Rise width" The horizontal angular distance between the rise azimuth of a celestial body and the East direction. "Nautical twilight" The time when the center of the Sun passes a reference altitude of 12 degrees below a mathematical horizon. "Negated character list" "Complemented character list" Matches any one of the characters, except those in the square brackets, in a text, that is processed by a regular expression. "Negative day" Those days in the biorhythm in which one or more of the biological cycles have a negative maximum value. At that time, one's system is said to be in a lessen state. "Noon height" The elevation of a celestial body as it happen at astronomical noon time of the celestial body. "Noon line" The straight line which connects the North and the South point. "Noon phase angle" The phase angle of a celestial body as it happen at astronomical noon time of the celestial body. "Octal system" Base-eight notation, where the digits are '0'...'7'. "Opposition" The Earth is in one line between the celestial body and the Sun, and therefore, the celestial body is completely visible from the Earth. In terms of the Moon, this is the Full Moon phase. "Option" A special type of command line argument which controls how Gcal behaves. "Orthodrome" A great circles arc that is casted between two points on a surface of a sphere. Is the shortest geodetic connecting line between two points on a sphere. "Pattern" A pattern is an arbitrary conditional expression against which input is tested. If the condition is satisfied, the pattern is said to 'match' the input. A typical pattern might compare the input against a regular expression. "Phase angle" The phase angle states the phase of a celestial body, i.e. the illuminated fraction of it as it can be seen from the Earth. "Pipelining" The output of a program is used as an input data stream for another program. "Positive day" Those days in the biorhythm in which one or more of the biological cycles have a positive maximum value. At that time, one's system is said to be in a raised state. "POSIX" The name for a series of standards being developed by the IEEE that specify a Portable Operating System interface. The 'IX' denotes the Unix heritage of these standards. "Proleptic calendar mode" This means, Gcal only uses a definite calendar system during a definite period, although there was a change to another calendar system in the historic reality during this definite period. "Rational number" "Floating Point number" This is a number that can have a fractional part. "RFC" RFC is the abbreviation of 'Request for Comments'. "Redirection" The output of a program is sent to another device instead of sending it to the _standard output channel_. "Refraction" Refraction is an optical phenomenon caused by the Earth's atmosphere, which leads to an apparent raising of the location of a celestial body. The amount of refraction increases with growing air pressure and sinking temperature and vice-versa. "Regexp" "Regular expression" A way of describing a set of strings. "Relative time offset value" A time offset value which is related to a base time. "Religious Islamic calendar" The astronomically determined Islamic lunar calendar. "Resource file" A file that essentially contains the fixed date entries. "Response file" A file used by Gcal to preload options and commands at program start-up. A response file may contain options and commands, but *no* references to further response files. "Right ascension" The horizontal angular distance between the center of a celestial body and the hour circle that passes through the vernal equinox point on the ecliptic. "Rise azimuth" The azimuth of a celestial body as it happen at rise time of the celestial body. "Rise height" The elevation of a celestial body as it happen at rise time of the celestial body. "Rise phase angle" The phase angle of a celestial body as it happen at rise time of the celestial body. "Set azimuth" The azimuth of a celestial body as it happen at set time of the celestial body. "Set height" The elevation of a celestial body as it happen at set time of the celestial body. "Set phase angle" The apparent phase angle of a celestial body as it happen at set time of the celestial body. "Shell" The command processor of the operating system. This operating system program interprets and runs given command lines. "Short-style option" The traditional --standard-- style to write an option, e.g. '-x'. "Simple file name" A name that denotes a file, whose access-path either does not start from the root file directory or from the actual file directory, like 'file' or 'bar/file'. "Simple language code information" A language code that consists of two-letters like 'de' for the German language, as it is defined in the ISO-639:1988. "Single command" "3-Month mode command" Produce only one calendar sheet per program run. "Solar Arctic Circle" The geographical latitude circle that is between about 66.7 and 65.9 (corrected for atmospheric refraction) decimal degrees, and the geographical pole. For computing the different twilight phases, this latitude circle decreases to about: * 60.7 decimal degrees for civil twilight. * 54.7 decimal degrees for nautical twilight. * 51.7 decimal degrees for amateur-astronomers twilight. * 48.7 decimal degrees for astronomical twilight. "Special text" A text in a Gcal resource file which is started by a '%' character and whose purpose is to suppress output of fixed dates in definite cases, either, or to provide them with particular texts respectively to start external commands. "Summer point on the ecliptic" "Summer solstice" "Solstice in summer" The Sun's orbit crosses the highest point above the celestial equator that is passed during a revolution of the Earth around the Sun. "Standard week number" The week starts on the respective starting day of the week, and the days in a new year that are preceding the first starting day of the week are in the last week of the previous year, respectively in week zero of the new year. "Star day" The period between two consecutive upper culminations of the vernal equinox point on the ecliptic in the meridian of the observer's location. "Starting date" A part of a Gcal special text that defines the first or earliest date at which the fixed date may occur. "Statute mile" A linear measure, one statute mile is equal to 1.609344 kilometer. "String" A chain of characters. "Switch character" An option is defined by a leading switch character, either the '-' or the '/' character for traditional short-style options, or '--' for mnemonic long-style options; a command may not have a leading switch character. "Text part" That part of a Gcal resource file line that contains the fixed date text. "Topocentric data" Observations of celestial bodies that are done from the surface of the Earth yield in topocentrically based values. "True solar time" "True solar day" A true solar day is the period between two consecutive lower culminations of the Sun. This entity is taken as the base for deriving the true solar time (as it is also shown by a sundial during the day). "True track" "Course angle" The course angle gives the direction, which is the vertex of a great circles arc (Orthodrome) that is casted between two points on a surface of a sphere, at a meridian (Gcal uses a geoid (rotation ellipsoid) that is calculated taking pattern from the 'World Geodetic System', short W.G.S, that was designed in 1961). Such an arc is the shortest geodetic connecting line between two points on a sphere. Indeed, the course angles on such an arc are changing continually, because the circular line that is casted intersects each meridian with another angle -- except the case, that both co-ordinates are referring to exactly the same longitude or to exactly the same latitude. "Twilight" The interval of time before sunrise and again after sunset, during which natural light is provided by the upper atmosphere that does receive direct sunlight and reflects parts of it towards the Earth's surface. "Unix" A computer operating system originally developed in the early 1970's at AT&T Bell Laboratories. It initially became popular in universities around the world, and later moved into commercial environments as a software development system and network server system. There are many commercial versions of Unix, as well as several work-alike systems whose source code is freely available (such as Linux, NetBSD, and FreeBSD). "Vernal equinox point on the ecliptic" The point where the ascending Sun's orbit intersects the celestial equator. "Whitespace character" For example _Tab_, _Space_, _Form-feed_ and similar characters. "Winter point on the ecliptic" "Winter solstice" "Solstice in winter" The Sun's orbit crosses the lowest point below the celestial equator that is passed during a revolution of the Earth around the Sun. "Word" A sequence of one or more letters, digits, or underscores ('_') in a regular expression. "Zuhr prayer time" The second Islamic prayer time. Begins after the astronomical noon time of the Sun, and ends at the beginning of the _Asr_ prayer time.  File: gcal.info, Node: Argument Index, Next: Variable Index, Prev: Glossary, Up: Top Command Line Argument Index *************************** Here is an alphabetical list of the command line arguments processed by Gcal: [index] * Menu: * %DATE: Actual date modifier. (line 6) * -# LINE: Fixed date options. (line 520) * -*dN: Fixed date options. (line 901) * -*dNWWW: Fixed date options. (line 1037) * -*wN[WWW]: Fixed date options. (line 1089) * --adjust-value=ARGUMENT: Fixed date options. (line 125) * --alternative-format: Fixed date options. (line 684) * --astronomical-holidays: Calendar options. (line 48) * --atmosphere=AIR-PRESSURE[,TEMPERATURE]: Fixed date options. (line 152) * --bahai-holidays: Calendar options. (line 57) * --bahai-months: Calendar options. (line 1204) * --biorhythm-axis=NUMBER: Fixed date options. (line 623) * --blocks=1: Calendar options. (line 1392) * --blocks=12: Calendar options. (line 1412) * --blocks=2: Calendar options. (line 1396) * --blocks=3: Calendar options. (line 1400) * --blocks=4: Calendar options. (line 1404) * --blocks=6: Calendar options. (line 1408) * --blocks=NUMBER: Calendar options. (line 1384) * --calendar-dates=both: Calendar options. (line 1428) * --calendar-dates=special: Calendar options. (line 1422) * --calendar-dates=special|both: Calendar options. (line 1416) * --cc-holidays=CC[_TT][+...]: Calendar options. (line 141) * --celtic-holidays: Calendar options. (line 61) * --chinese-flexible-holidays: Calendar options. (line 67) * --chinese-flexible-months: Calendar options. (line 1210) * --chinese-holidays: Calendar options. (line 75) * --chinese-months: Calendar options. (line 1217) * --christian-holidays: Calendar options. (line 82) * --coptic-months: Calendar options. (line 1223) * --copyleft: Common options. (line 33) * --copyright: Common options. (line 33) * --cycle-end=ARGUMENT: Fixed date options. (line 225) * --cycle-step=ARGUMENT: Fixed date options. (line 291) * --date-format=de|us|gb|TEXT: Calendar options. (line 1627) * --date-variable=ARGUMENT: Fixed date options. (line 8) * --debug=abort: Global options. (line 42) * --debug=all: Global options. (line 39) * --debug=handled: Global options. (line 31) * --debug=internal: Global options. (line 27) * --debug=unhandled: Global options. (line 35) * --debug[=internal|handled|unhandled|all|abort]: Global options. (line 24) * --descending-fixed-dates=long: Fixed date options. (line 467) * --descending-fixed-dates=short: Fixed date options. (line 450) * --descending-fixed-dates[=short|long]: Fixed date options. (line 435) * --descending-holiday-list=long: Calendar options. (line 24) * --descending-holiday-list=short: Calendar options. (line 35) * --descending-holiday-list[=long|short]: Calendar options. (line 9) * --disable-highlighting: Global options. (line 102) * --end-of-month: Fixed date options. (line 1397) * --end-of-week: Fixed date options. (line 1349) * --end-of-week <1>: Fixed date options. (line 1360) * --end-of-year: Fixed date options. (line 1434) * --ethiopic-months: Calendar options. (line 1228) * --exclude-fixed-dates-list-title: Fixed date options. (line 815) * --exclude-holiday-list-title: Calendar options. (line 45) * --execute-command: Fixed date options. (line 353) * --exit-status-help-non-zero: Common options. (line 41) * --export-date-variables: Fixed date options. (line 28) * --export-date-variables <1>: Date variables. (line 104) * --export-text-variables: Fixed date options. (line 121) * --export-text-variables <1>: Text variables. (line 279) * --filter-day=ARGUMENT: Fixed date options. (line 365) * --filter-period=ARGUMENT: Fixed date options. (line 380) * --filter-text=PATTERN: Fixed date options. (line 398) * --fixed-dates=both: Calendar options. (line 1464) * --fixed-dates=special: Calendar options. (line 1458) * --fixed-dates=special|both: Calendar options. (line 1451) * --force-highlighting: Global options. (line 91) * --french-revolutionary-months: Calendar options. (line 1233) * --gregorian-reform=1582|1700|1752|1753|ARGUMENT: Calendar options. (line 1563) * --grouping-text[=TEXT]: Fixed date options. (line 709) * --heading-text=TEXT: Fixed date options. (line 818) * --hebrew-holidays: Calendar options. (line 86) * --hebrew-months: Calendar options. (line 1238) * --help: Common options. (line 9) * --help <1>: Invoking tcal. (line 35) * --help <2>: Invoking txt2gcal. (line 21) * --help <3>: Invoking gcal2txt. (line 23) * --here=LINE: Fixed date options. (line 520) * --highlighting=no: Global options. (line 102) * --highlighting=TEXT: Global options. (line 107) * --highlighting=yes: Global options. (line 91) * --holiday-dates=both: Calendar options. (line 1446) * --holiday-dates=special: Calendar options. (line 1440) * --holiday-dates=special|both: Calendar options. (line 1433) * --holiday-list=long: Calendar options. (line 18) * --holiday-list=short: Calendar options. (line 30) * --holiday-list[=long|short]: Calendar options. (line 9) * --ignore-case: Fixed date options. (line 422) * --include-consecutive-number: Fixed date options. (line 859) * --include-holidays=long: Fixed date options. (line 699) * --include-holidays=short: Fixed date options. (line 704) * --include-resource-file-name: Fixed date options. (line 675) * --include-today: Fixed date options. (line 884) * --include-week-number: Fixed date options. (line 765) * --indian-civil-months: Calendar options. (line 1243) * --islamic-civil-holidays: Calendar options. (line 89) * --islamic-civil-months: Calendar options. (line 1248) * --iso-week-number=no: Calendar options. (line 1372) * --iso-week-number=yes: Calendar options. (line 1361) * --iso-week-number=yes|no: Calendar options. (line 1354) * --japanese-flexible-holidays: Calendar options. (line 94) * --japanese-flexible-months: Calendar options. (line 1255) * --japanese-holidays: Calendar options. (line 101) * --japanese-months: Calendar options. (line 1262) * --leap-day=february: Fixed date options. (line 873) * --leap-day=february|march: Fixed date options. (line 869) * --leap-day=march: Fixed date options. (line 878) * --license: Common options. (line 33) * --limit: Fixed date options. (line 173) * --list-mode: Fixed date options. (line 890) * --list-of-fixed-dates=long: Fixed date options. (line 459) * --list-of-fixed-dates=short: Fixed date options. (line 441) * --list-of-fixed-dates[=short|long]: Fixed date options. (line 435) * --long-help=?: Common options. (line 25) * --long-help[=ARGUMENT]: Common options. (line 16) * --mail[=ADDRESS]: Global options. (line 189) * --month: Fixed date options. (line 1390) * --moonimage-lines=NUMBER: Fixed date options. (line 652) * --multicultural-new-year-holidays: Calendar options. (line 107) * --old-armenic-months: Calendar options. (line 1268) * --old-egyptic-months: Calendar options. (line 1273) * --omit-multiple-date-part: Fixed date options. (line 773) * --orthodox-calendar: Calendar options. (line 1320) * --orthodox-new-holidays: Calendar options. (line 113) * --orthodox-old-holidays: Calendar options. (line 119) * --pager: Global options. (line 48) * --period-of-fixed-dates=ARGUMENT: Fixed date options. (line 898) * --persian-jalaali-holidays: Calendar options. (line 125) * --persian-jalaali-months: Calendar options. (line 1278) * --precise: Fixed date options. (line 341) * --resource-file=NAME[+...]: Fixed date options. (line 475) * --response-file=NAME: Global options. (line 8) * --revert-match: Fixed date options. (line 427) * --shell-script=NAME: Global options. (line 15) * --shift=[+|-]NUMBER: Invoking tcal. (line 42) * --start-of-month: Fixed date options. (line 1409) * --start-of-week: Fixed date options. (line 1349) * --start-of-week <1>: Fixed date options. (line 1372) * --start-of-year: Fixed date options. (line 1446) * --starting-day=ARGUMENT: Calendar options. (line 1469) * --suppress-calendar: Calendar options. (line 1380) * --suppress-date-part: Fixed date options. (line 795) * --suppress-fixed-dates-list-separator: Fixed date options. (line 785) * --suppress-holiday-list-separator: Calendar options. (line 40) * --suppress-text-part: Fixed date options. (line 805) * --text-variable=ARGUMENT: Fixed date options. (line 33) * --time-offset=ARGUMENT: Calendar options. (line 1491) * --today: Fixed date options. (line 435) * --today <1>: Fixed date options. (line 441) * --tomorrow: Fixed date options. (line 1337) * --transform-year=ARGUMENT: Calendar options. (line 1542) * --translate-string=TEXT: Calendar options. (line 1732) * --type=special|standard: Calendar options. (line 1286) * --usage=?: Common options. (line 25) * --usage[=ARGUMENT]: Common options. (line 16) * --version: Common options. (line 37) * --version <1>: Invoking tcal. (line 39) * --version <2>: Invoking txt2gcal. (line 25) * --version <3>: Invoking gcal2txt. (line 27) * --week: Fixed date options. (line 1349) * --week <1>: Fixed date options. (line 1353) * --with-week-number: Calendar options. (line 1347) * --year: Fixed date options. (line 1427) * --zero-dates-only: Fixed date options. (line 863) * --zodical-marker-holidays: Calendar options. (line 132) * -?: Common options. (line 9) * -??: Common options. (line 16) * -@DVAR[+|-]NWWW: Fixed date options. (line 1309) * -@DVAR[[+|-]N]: Fixed date options. (line 1277) * -@e[+|-]NWWW: Fixed date options. (line 1196) * -@e[[+|-]N]: Fixed date options. (line 1163) * -@t[+|-]NWWW: Fixed date options. (line 1251) * -@t[[+|-]N]: Fixed date options. (line 1222) * -a: Fixed date options. (line 675) * -A: Fixed date options. (line 684) * -b 1: Calendar options. (line 1392) * -b 12: Calendar options. (line 1412) * -b 2: Calendar options. (line 1396) * -b 3: Calendar options. (line 1400) * -b 4: Calendar options. (line 1404) * -b 6: Calendar options. (line 1408) * -b NUMBER: Calendar options. (line 1384) * -c: Fixed date options. (line 441) * -C: Fixed date options. (line 459) * -c*dN: Fixed date options. (line 901) * -c*dNWWW: Fixed date options. (line 1037) * -c*wN[WWW]: Fixed date options. (line 1089) * -c-: Fixed date options. (line 450) * -C-: Fixed date options. (line 467) * -c@DVAR[+|-]NWWW: Fixed date options. (line 1309) * -c@DVAR[[+|-]N]: Fixed date options. (line 1277) * -c@e[+|-]NWWW: Fixed date options. (line 1196) * -c@e[[+|-]N]: Fixed date options. (line 1163) * -c@t[+|-]NWWW: Fixed date options. (line 1251) * -c@t[[+|-]N]: Fixed date options. (line 1222) * -ca: Fixed date options. (line 675) * -cA: Fixed date options. (line 684) * -cd: Fixed date options. (line 884) * -ce: Fixed date options. (line 699) * -cE: Fixed date options. (line 704) * -cg[TEXT]: Fixed date options. (line 709) * -cJ: Fixed date options. (line 805) * -ck: Fixed date options. (line 765) * -cl: Fixed date options. (line 890) * -cl*dN: Fixed date options. (line 914) * -cl*dNWWW: Fixed date options. (line 1060) * -cl*wN[WWW]: Fixed date options. (line 1123) * -cl@DVAR[+|-]NWWW: Fixed date options. (line 1321) * -cl@DVAR[[+|-]N]: Fixed date options. (line 1292) * -cl@e[+|-]NWWW: Fixed date options. (line 1208) * -cl@e[[+|-]N]: Fixed date options. (line 1178) * -cl@t[+|-]NWWW: Fixed date options. (line 1263) * -cl@t[[+|-]N]: Fixed date options. (line 1236) * -clMMDD: Fixed date options. (line 1001) * -clMMWWWN: Fixed date options. (line 1023) * -clN+|-: Fixed date options. (line 933) * -clNd: Fixed date options. (line 914) * -clNw: Fixed date options. (line 976) * -cm: Fixed date options. (line 1390) * -cm+: Fixed date options. (line 1397) * -cm-: Fixed date options. (line 1409) * -cMMDD: Fixed date options. (line 994) * -cMMWWWN: Fixed date options. (line 1012) * -cN+|-: Fixed date options. (line 923) * -cNd: Fixed date options. (line 901) * -cNw: Fixed date options. (line 946) * -co: Fixed date options. (line 773) * -cQ: Fixed date options. (line 785) * -ct: Fixed date options. (line 1337) * -cT: Fixed date options. (line 1337) * -cU: Fixed date options. (line 795) * -cw: Fixed date options. (line 1353) * -cw+: Fixed date options. (line 1360) * -cw-: Fixed date options. (line 1372) * -cx: Fixed date options. (line 815) * -cy: Fixed date options. (line 1427) * -cy+: Fixed date options. (line 1434) * -cy-: Fixed date options. (line 1446) * -cz: Fixed date options. (line 859) * -cZ: Fixed date options. (line 863) * -c[m|M[+|-]]: Fixed date options. (line 1387) * -c[t|T]: Fixed date options. (line 1337) * -c[w|W[+|-]]: Fixed date options. (line 1349) * -c[y|Y[+|-]]: Fixed date options. (line 1424) * -c|C[-]: Fixed date options. (line 435) * -d: Fixed date options. (line 884) * -D ARGUMENT: Fixed date options. (line 365) * -e: Fixed date options. (line 699) * -E: Fixed date options. (line 704) * -f|F NAME[+...]: Fixed date options. (line 475) * -G: Calendar options. (line 40) * -g[TEXT]: Fixed date options. (line 709) * -h: Common options. (line 9) * -H no: Global options. (line 102) * -H TEXT: Global options. (line 107) * -H yes: Global options. (line 91) * -hh: Common options. (line 16) * -i: Calendar options. (line 1286) * -I PATTERN: Fixed date options. (line 398) * -i[-]: Calendar options. (line 1286) * -j: Calendar options. (line 1422) * -J: Fixed date options. (line 805) * -jb: Calendar options. (line 1428) * -jc: Calendar options. (line 1458) * -jcb: Calendar options. (line 1464) * -jc[b]: Calendar options. (line 1451) * -jn: Calendar options. (line 1440) * -jnb: Calendar options. (line 1446) * -jn[b]: Calendar options. (line 1433) * -j[b]: Calendar options. (line 1416) * -K: Calendar options. (line 1347) * -k: Fixed date options. (line 765) * -L: Common options. (line 33) * -l: Fixed date options. (line 890) * -l*dN: Fixed date options. (line 914) * -l*dNWWW: Fixed date options. (line 1060) * -l*wN[WWW]: Fixed date options. (line 1123) * -l@DVAR[+|-]NWWW: Fixed date options. (line 1321) * -l@DVAR[[+|-]N]: Fixed date options. (line 1292) * -l@e[+|-]NWWW: Fixed date options. (line 1208) * -l@e[[+|-]N]: Fixed date options. (line 1178) * -l@t[+|-]NWWW: Fixed date options. (line 1263) * -l@t[[+|-]N]: Fixed date options. (line 1236) * -lMMDD: Fixed date options. (line 1001) * -lMMWWWN: Fixed date options. (line 1023) * -lN+|-: Fixed date options. (line 933) * -lNd: Fixed date options. (line 914) * -lNw: Fixed date options. (line 976) * -m: Fixed date options. (line 1387) * -M: Fixed date options. (line 1387) * -m <1>: Fixed date options. (line 1390) * -m+: Fixed date options. (line 1397) * -m-: Fixed date options. (line 1409) * -m[+|-]]: Fixed date options. (line 1387) * -M[+|-]]: Fixed date options. (line 1387) * -m|M[+|-]]: Fixed date options. (line 1387) * -n: Calendar options. (line 18) * -N: Calendar options. (line 30) * -n-: Calendar options. (line 24) * -N-: Calendar options. (line 35) * -n|N[-]: Calendar options. (line 9) * -O: Calendar options. (line 1320) * -o: Fixed date options. (line 773) * -p: Global options. (line 48) * -P ARGUMENT: Fixed date options. (line 380) * -Q: Fixed date options. (line 785) * -q CC[_TT][+...]: Calendar options. (line 141) * -r ARGUMENT: Fixed date options. (line 33) * -R NAME: Global options. (line 8) * -s ARGUMENT: Calendar options. (line 1469) * -S NAME: Global options. (line 15) * -t: Fixed date options. (line 1337) * -T: Fixed date options. (line 1337) * -u: Calendar options. (line 1380) * -U: Fixed date options. (line 795) * -V: Common options. (line 37) * -v ARGUMENT: Fixed date options. (line 8) * -w: Fixed date options. (line 1349) * -W: Fixed date options. (line 1349) * -w <1>: Fixed date options. (line 1353) * -w+: Fixed date options. (line 1360) * -w-: Fixed date options. (line 1372) * -w[+|-]]: Fixed date options. (line 1349) * -W[+|-]]: Fixed date options. (line 1349) * -w|W[+|-]]: Fixed date options. (line 1349) * -X: Calendar options. (line 45) * -y: Fixed date options. (line 1424) * -Y: Fixed date options. (line 1424) * -y <1>: Fixed date options. (line 1427) * -y+: Fixed date options. (line 1434) * -y-: Fixed date options. (line 1446) * -y[+|-]]: Fixed date options. (line 1424) * -Y[+|-]]: Fixed date options. (line 1424) * -y|Y[+|-]]: Fixed date options. (line 1424) * -z: Fixed date options. (line 859) * -Z: Fixed date options. (line 863) * @FILE: Response file. (line 6) * Command, .: 3-Month mode commands. (line 7) * Command, . YYYY: 3-Month mode commands. (line 12) * Command, .+: 3-Month mode commands. (line 27) * Command, .+ YYYY: 3-Month mode commands. (line 32) * Command, .-: 3-Month mode commands. (line 37) * Command, .- YYYY: 3-Month mode commands. (line 42) * Command, ..: 3-Month mode commands. (line 17) * Command, .. YYYY: 3-Month mode commands. (line 22) * Command, :: Single commands. (line 46) * Command, :YYYY: Single commands. (line 62) * Command, MM YYYY: Single commands. (line 38) * Command, MM YYYY-YYYY: Ranges of commands. (line 37) * Command, MM,...,MM: Lists of commands. (line 7) * Command, MM,...,MM YYYY: Lists of commands. (line 20) * Command, MM,MM/YYYY,...: Lists of commands. (line 38) * Command, MM-MM: Ranges of commands. (line 7) * Command, MM-MM YYYY: Ranges of commands. (line 22) * Command, MM-MM YYYY+YYYY: Ranges of commands. (line 29) * Command, MM/YYYY: Single commands. (line 38) * Command, MM/YYYY,...,MM/YYYY: Lists of commands. (line 14) * Command, MM/YYYY-MM/YYYY: Ranges of commands. (line 15) * Command, MM/YYYY-YYYY: Ranges of commands. (line 37) * Command, MM:: Single commands. (line 53) * Command, MM:;MM:;...: Lists of commands. (line 49) * Command, MM:;MM:YYYY;...: Lists of commands. (line 43) * Command, MM:YYYY: Single commands. (line 69) * Command, MM:YYYY+MM:YYYY: Ranges of commands. (line 49) * Command, MM:YYYY;...;MM:YYYY: Lists of commands. (line 31) * Command, MONTH NAME: Single commands. (line 11) * Command, NOTHING: Single commands. (line 7) * Command, YYYY: Single commands. (line 18) * Command, YYYY+YYYY: Ranges of commands. (line 44) * Command, YYYY;...;YYYY: Lists of commands. (line 26)  File: gcal.info, Node: Variable Index, Next: Table Index, Prev: Argument Index, Up: Top Environment Variable Index ************************** Here is an alphabetical list of the environment variables checked by Gcal: [index] * Menu: * COLUMNS: Global options. (line 70) * COLUMNS <1>: Environment Variables. (line 14) * GCAL: Global options. (line 8) * GCAL <1>: Global options. (line 15) * GCAL <2>: The GCAL environment variable. (line 6) * GCAL <3>: Environment Variables. (line 10) * GCALANSI: Global options. (line 182) * GCALANSI <1>: Environment Variables. (line 41) * GCALPATH: Resource file. (line 25) * GCALPATH <1>: Environment Variables. (line 47) * GCALPROG: Invoking tcal. (line 21) * GCALPROG <1>: Environment Variables. (line 52) * GCAL_COLUMNS: Global options. (line 65) * GCAL_COLUMNS <1>: Environment Variables. (line 14) * GCAL_DATE_FORMAT: Calendar options. (line 1658) * GCAL_DATE_FORMAT <1>: Environment Variables. (line 19) * GCAL_LINES: Global options. (line 65) * GCAL_LINES <1>: Environment Variables. (line 25) * GCAL_OPT: The GCAL environment variable. (line 24) * GCAL_OPT <1>: Environment Variables. (line 10) * GCAL_SYS_DATADIR: Resource file. (line 50) * GCAL_SYS_DATADIR <1>: Environment Variables. (line 30) * GCAL_USR_DATADIR: Resource file. (line 38) * GCAL_USR_DATADIR <1>: Environment Variables. (line 35) * HOME: Fixed date options. (line 488) * HOME <1>: Resource file. (line 32) * HOME <2>: Environment Variables. (line 61) * LANG: Internationalization. (line 34) * LANG <1>: Internationalization. (line 122) * LANG <2>: Environment Variables. (line 80) * LANGUAGE: Internationalization. (line 31) * LANGUAGE <1>: Environment Variables. (line 66) * LC_ALL: Internationalization. (line 32) * LC_ALL <1>: Environment Variables. (line 71) * LC_MESSAGES: Internationalization. (line 33) * LC_MESSAGES <1>: Environment Variables. (line 76) * LINES: Global options. (line 70) * LINES <1>: Environment Variables. (line 25) * LOGNAME: Global options. (line 207) * LOGNAME <1>: Environment Variables. (line 84) * MAILPROG: Global options. (line 229) * MAILPROG <1>: Environment Variables. (line 88) * MAILTO: Global options. (line 197) * MAILTO <1>: Environment Variables. (line 94) * PAGER: Global options. (line 48) * PAGER <1>: Environment Variables. (line 99) * PATH: Global options. (line 53) * PATH <1>: Environment Variables. (line 104) * TERM: Global options. (line 75) * TERM <1>: Environment Variables. (line 109) * TXT2GCALPROG: Text variables. (line 112) * TXT2GCALPROG <1>: Environment Variables. (line 112) * TZ: Environment Variables. (line 122) * USER: Global options. (line 202) * USER <1>: Environment Variables. (line 126)  File: gcal.info, Node: Table Index, Next: GNU Free Documentation License, Prev: Variable Index, Up: Top Table Index *********** Here is an alphabetical list of the most import tables, summaries and other general views that can be found in this manual: [index] * Menu: * Actual date modifier, date formats: Actual date modifier. (line 11) * Co-ordinate, ISO-6709:1983: Sun data. (line 1033) * Coding scheme 1, date part: Coding Scheme Table 1. (line 6) * Coding scheme 2, date part: Coding Scheme Table 2. (line 6) * Country specific holidays: Calendar options. (line 164) * Date format elements, obsolete individual: Table of Obsolete Date Format Elements. (line 6) * Date format text, format elements and character replacement instructions: Calendar options. (line 1684) * Date formats of actual date modifier: Actual date modifier. (line 11) * Date formats, obsolete fixed: Table of Obsolete Date Formats. (line 6) * Date part, coding scheme 1: Coding Scheme Table 1. (line 6) * Date part, coding scheme 2: Coding Scheme Table 2. (line 6) * Date variables, operations: Date variables. (line 117) * Entries in resource file: Structure of resource file. (line 44) * Environment variables: Environment Variables. (line 6) * Error codes: Error Codes. (line 6) * Eternal holiday list, marking characters used: Eternal Holidays. (line 69) * Event oriented texts of Moon data and times, special: Sun data. (line 939) * Event oriented texts of Sun data and times, special: Sun data. (line 939) * Exit codes: Error Codes. (line 6) * Fixed date, line structure: Structure of resource file. (line 32) * Format elements and character replacement instructions in date format text: Calendar options. (line 1684) * Format Instruction: Format Instruction. (line 6) * Geographical distance and course angle, modes: Geographical distance and course angle. (line 16) * Glossary: Glossary. (line 6) * GNU long-style options: Options. (line 36) * Holidays, country specific: Calendar options. (line 164) * ISO-6709:1983 co-ordinate: Sun data. (line 1033) * Line structure of fixed date: Structure of resource file. (line 32) * Long-style options, GNU: Options. (line 36) * Marking characters used in eternal holiday list: Eternal Holidays. (line 69) * Metasymbols, used: Metasymbols. (line 6) * Modes, geographical distance and course angle: Geographical distance and course angle. (line 16) * Modes, Moon oriented special texts: Moon data. (line 35) * Modes, Sun oriented special texts: Sun data. (line 35) * Moon data and times, special event oriented texts: Sun data. (line 939) * Moon oriented special texts, modes: Moon data. (line 35) * Moon oriented special texts, representation types: Moon data. (line 841) * Native language, selection: Internationalization. (line 27) * Native languages, supported: Internationalization. (line 11) * Obsolete fixed date formats: Table of Obsolete Date Formats. (line 6) * Obsolete individual date format elements: Table of Obsolete Date Format Elements. (line 6) * Obsolete special texts: Table of Obsolete Special Texts. (line 6) * Operations on date variables: Date variables. (line 117) * Operations on text variables: Text variables. (line 292) * Regular expression programming libraries, supported: Regular Expressions. (line 20) * Regular expressions: Regexp Summary. (line 6) * Representation types of the Moon oriented special texts: Moon data. (line 841) * Representation types of the Sun oriented special texts: Sun data. (line 1110) * Resource file, entries: Structure of resource file. (line 44) * Run-time error codes: Error Codes. (line 6) * Selection of native language: Internationalization. (line 27) * Short-style options, traditional: Options. (line 61) * Special event oriented texts, Moon data and times: Sun data. (line 939) * Special event oriented texts, Sun data and times: Sun data. (line 939) * Special texts: Special Texts Summary. (line 6) * Special texts, obsolete: Table of Obsolete Special Texts. (line 6) * Sun data and times, special event oriented texts: Sun data. (line 939) * Sun oriented special texts, modes: Sun data. (line 35) * Sun oriented special texts, representation types: Sun data. (line 1110) * Supported native languages: Internationalization. (line 11) * Supported regular expression programming libraries: Regular Expressions. (line 20) * Text variables, operations: Text variables. (line 292) * Traditional short-style options: Options. (line 61) * Used metasymbols: Metasymbols. (line 6)  File: gcal.info, Node: GNU Free Documentation License, Next: Concept Index, Prev: Table Index, Up: Top Appendix O GNU Free Documentation License ***************************************** Version 1.3, 3 November 2008 Copyright (C) 2000, 2001, 2002, 2007, 2008, 2010, 2011, 2013 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The "publisher" means any person or entity that distributes copies of the Document to the public. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements." 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See . Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. 11. RELICENSING "Massive Multiauthor Collaboration Site" (or "MMC Site") means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A "Massive Multiauthor Collaboration" (or "MMC") contained in the site means any set of copyrightable works thus published on the MMC site. "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. "Incorporate" means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is "eligible for relicensing" if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. ADDENDUM: How to use this License for your documents ==================================================== To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (C) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.  File: gcal.info, Node: Concept Index, Prev: GNU Free Documentation License, Up: Top Concept Index ************* [index] * Menu: * # separator character of ranges of days: Ranges of days. (line 6) * $ regexp, anchor metacharacter: Regexp Operators. (line 32) * % special text starting character: Special Texts processed. (line 6) * %![ARGUMENT] special text, shell command: Shell Command. (line 6) * %"[ARGUMENT] special text, numerical Universal time timezone offset value: Actual clocktime. (line 213) * %,[DATE] special text, biorhythm text: Biorhythm. (line 33) * %0 special text, end of highlighting sequence 1 or 2: Highlighting. (line 125) * %1 special text, start of highlighting sequence 1: Highlighting. (line 9) * %2 special text, end of highlighting sequence 1: Highlighting. (line 28) * %3 special text, start of highlighting sequence 2: Highlighting. (line 37) * %4 special text, end of highlighting sequence 2: Highlighting. (line 56) * %5 special text, start of highlighting sequence 1: Highlighting. (line 65) * %6 special text, end of highlighting sequence 1: Highlighting. (line 78) * %7 special text, start of highlighting sequence 2: Highlighting. (line 87) * %8 special text, end of highlighting sequence 2: Highlighting. (line 100) * %9 special text, start of highlighting sequence 1 or 2: Highlighting. (line 109) * %;[DATE] special text, biorhythm text graphics: Biorhythm. (line 60) * %=[ARGUMENT] special text, numerical local time timezone offset value: Actual clocktime. (line 234) * %>02&*D[DATE] special text, day number: Day number. (line 30) * %>02&*M[DATE] special text, month number: Month number. (line 31) * %>02*D[DATE] special text, day number: Day number. (line 14) * %>02*M[DATE] special text, month number: Month number. (line 15) * %>03&*N[DATE] special text, day-of-year number: Day-of-year number. (line 32) * %>03*N[DATE] special text, day-of-year number: Day-of-year number. (line 15) * %>03*O[DATE] special text, Moon phase text: Moon phase. (line 30) * %>04*Y[DATE] special text, year number: Year number. (line 14) * %>1&*B[DATE] special text, age value: Difference value. (line 30) * %>1&*D[DATE] special text, day number: Day number. (line 22) * %>1&*E[DATE] special text, weekday number: Weekday number. (line 36) * %>1&*I[DATE] special text, weekday number: Weekday number. (line 55) * %>1&*J[DATE] special text, weekday number: Weekday number. (line 74) * %>1&*M[DATE] special text, month number: Month number. (line 23) * %>1&*N[DATE] special text, day-of-year number: Day-of-year number. (line 24) * %>1&*S[DATE] special text, weekday number: Weekday number. (line 95) * %>1&*T[DATE] special text, weekday number: Weekday number. (line 118) * %>1&*W[DATE] special text, weekday number: Weekday number. (line 18) * %>2#K[DATE] special text, 2-letter weekday name: Weekday name. (line 23) * %>3#K[DATE] special text, 3-letter weekday name: Weekday name. (line 15) * %>3#U[DATE] special text, 3-letter month name: Month name. (line 15) * %? special texts, exclusions without any argument: Exclusions without any argument. (line 6) * %? special texts, exclusive day period: Exclusive day period. (line 6) * %? special texts, highlighting: Highlighting. (line 6) * %? special texts, inclusive day period: Inclusive day period. (line 6) * %? special texts, replacements without any argument: Replacements without any argument. (line 6) * %?... special texts: Special Texts processed. (line 6) * %?... special texts, date exclusion: Exclusions. (line 6) * %?... special texts, description: Special Texts. (line 6) * %?... special texts, short-list: Special Texts Summary. (line 6) * %?... special texts, summary: Special Texts Summary. (line 6) * %?... special texts, text replacement: Replacements. (line 6) * %?[DATE] special texts, biorhythm: Biorhythm. (line 6) * %?[DATE] special texts, exclusions with date argument: Exclusions with date argument. (line 6) * %?[DATE] special texts, replacements with date argument: Replacements with date argument. (line 6) * %@[ARGUMENT] special text, actual Universal time in HH:MM/DATE format: Actual clocktime. (line 126) * %A special text, exclusive Monday: Exclusive day period. (line 18) * %a special text, inclusive Monday: Inclusive day period. (line 18) * %B[DATE] special text, age value: Difference value. (line 18) * %C special text, exclusive Tuesday: Exclusive day period. (line 21) * %c special text, inclusive Tuesday: Inclusive day period. (line 21) * %d special text, relative day number: Other difference values. (line 21) * %DATE actual date modifier: Actual date modifier. (line 6) * %DATE, command line argument: Actual date modifier. (line 6) * %DATE, option: Command line arguments. (line 6) * %D[DATE] special text, day number: Day number. (line 7) * %E[DATE] special text, weekday number: Weekday number. (line 28) * %e[DATE][#[DATE]] special text, exclusive date period: Exclusive date period. (line 6) * %F special text, exclusive Wednesday: Exclusive day period. (line 24) * %f special text, inclusive Wednesday: Inclusive day period. (line 24) * %G special text, exclusive Thursday: Exclusive day period. (line 27) * %g special text, inclusive Thursday: Inclusive day period. (line 27) * %H special text, exclusive Friday: Exclusive day period. (line 30) * %h special text, inclusive Friday: Inclusive day period. (line 30) * %I[DATE] special text, weekday number: Weekday number. (line 46) * %i[DATE][#[DATE]] special text, inclusive date period: Inclusive date period. (line 6) * %J[DATE] special text, weekday number: Weekday number. (line 65) * %K[DATE] special text, complete weekday name: Weekday name. (line 7) * %k[DATE] special text, week number: Week number. (line 6) * %L special text, exclusive Saturday: Exclusive day period. (line 33) * %l special text, inclusive Saturday: Inclusive day period. (line 33) * %m special text, relative month number: Other difference values. (line 34) * %M[DATE] special text, month number: Month number. (line 7) * %n[ARGUMENT] special text, textual date: Textual date. (line 6) * %N[DATE] special text, day-of-year number: Day-of-year number. (line 7) * %O[DATE] special text, Moon phase text: Moon phase. (line 15) * %P special text, exclusive Sunday: Exclusive day period. (line 36) * %p special text, inclusive Sunday: Inclusive day period. (line 36) * %Q special text, exclusive Monday...Thursday: Exclusive day period. (line 39) * %q special text, inclusive Monday...Thursday: Inclusive day period. (line 39) * %R special text, exclusive Monday...Friday: Exclusive day period. (line 42) * %r special text, inclusive Monday...Friday: Inclusive day period. (line 42) * %S[DATE] special text, weekday number: Weekday number. (line 84) * %t* special text: Actual clocktime. (line 33) * %t[ARGUMENT] special text, actual local time in HH:MM format: Actual clocktime. (line 23) * %T[DATE] special text, weekday number: Weekday number. (line 107) * %U[DATE] special text, complete month name: Month name. (line 7) * %V special text, exclusive legal holidays: Exclusive day period. (line 10) * %v special text, inclusive legal holidays: Inclusive day period. (line 10) * %w special text, relative week number: Other difference values. (line 29) * %W[DATE] special text, weekday number: Weekday number. (line 10) * %X special text, exclusive all holidays: Exclusive day period. (line 14) * %x special text, inclusive all holidays: Inclusive day period. (line 14) * %y special text, relative year number: Other difference values. (line 39) * %yDATE special text, relative year number: Difference value. (line 10) * %Y[DATE] special text, year number: Year number. (line 7) * %Z[DATE] special text, Moon phase text graphics: Moon phase. (line 45) * %[FORMAT]'[ARGUMENT] special text, actual local time in M[M...] format: Actual clocktime. (line 62) * %[FORMAT]-[ARGUMENT] special text, environment variable: Contents of Environment variable. (line 6) * %[FORMAT].[ARGUMENT] special text, actual Universal time hour: Actual clocktime. (line 163) * %[FORMAT]/[ARGUMENT] special text, actual Universal time minute: Actual clocktime. (line 179) * %[FORMAT]? special texts, difference value: Other difference values. (line 6) * %[FORMAT]?ARGUMENT special texts, Moon data: Moon data. (line 6) * %[FORMAT]?ARGUMENT special texts, Sun data: Sun data. (line 6) * %[FORMAT]?[ARGUMENT] special text, actual local time minute: Actual clocktime. (line 94) * %[FORMAT]?[ARGUMENT] special texts, actual clocktime: Actual clocktime. (line 6) * %[FORMAT]?[ARGUMENT] special texts, replacements with other argument: Replacements with other argument. (line 6) * %[FORMAT]?[DATE] special texts, difference value: Difference value. (line 6) * %[FORMAT]?[DATE] special texts, Moon phase: Moon phase. (line 6) * %[FORMAT]?[DATE] special texts, weekday number: Weekday number. (line 6) * %[FORMAT]b[ARGUMENT] special text, geographical distance and course angle: Geographical distance and course angle. (line 6) * %[FORMAT]D[DATE] special text, day number: Day number. (line 6) * %[FORMAT]j[ARGUMENT] special text, Julian day number: Julian day number. (line 6) * %[FORMAT]K[DATE] special text, weekday name: Weekday name. (line 6) * %[FORMAT]M[DATE] special text, month number: Month number. (line 6) * %[FORMAT]N[DATE] special text, day-of-year number: Day-of-year number. (line 6) * %[FORMAT]U[DATE] special text, month name: Month name. (line 6) * %[FORMAT]Y[DATE] special text, year number: Year number. (line 6) * %[FORMAT]_[ARGUMENT] special text, actual local time hour: Actual clocktime. (line 78) * %[FORMAT]`[ARGUMENT] special text, actual Universal time in M[M...]/DATE format: Actual clocktime. (line 145) * %[FORMAT]{[ARGUMENT] special text, actual local time 12-hour format suffix: Actual clocktime. (line 110) * %[FORMAT]}[ARGUMENT] special text, actual Universal time 12-hour format suffix: Actual clocktime. (line 196) * (...) regexp, grouping: Regexp Operators. (line 186) * * regexp, operator: Regexp Operators. (line 193) * + regexp, operator: Regexp Operators. (line 213) * + separator character: Calendar options. (line 154) * + separator character <1>: Fixed date options. (line 488) * , separator character of lists of days: Lists of days. (line 6) * - switch character: Command line arguments. (line 22) * -- switch character: Command line arguments. (line 22) * . regexp, metacharacter: Regexp Operators. (line 40) * .gcalrc resource file: Resource file. (line 6) * .N appearance factor of days: Appearance factor of days. (line 6) * / co-ordinate termination character: Geographical distance and course angle. (line 56) * / switch character: Command line arguments. (line 22) * 12-hours display format of time: Actual clocktime. (line 33) * 2-letter weekday name %>2#K[DATE] special text: Weekday name. (line 23) * 2-letter weekday name %>2#K[DATE] special text <1>: Special Texts Summary. (line 98) * 24-hours display format of time: Actual clocktime. (line 33) * 3-letter month name %>3#U[DATE] special text: Month name. (line 15) * 3-letter month name %>3#U[DATE] special text <1>: Special Texts Summary. (line 177) * 3-letter weekday name %>3#K[DATE] special text: Weekday name. (line 15) * 3-letter weekday name %>3#K[DATE] special text <1>: Special Texts Summary. (line 95) * 3-Month mode command: Glossary. (line 644) * 3-Month mode command . YYYY, special: 3-Month mode commands. (line 12) * 3-Month mode command .+ YYYY, special: 3-Month mode commands. (line 32) * 3-Month mode command .+, special: 3-Month mode commands. (line 27) * 3-Month mode command ., special: 3-Month mode commands. (line 7) * 3-Month mode command .- YYYY, special: 3-Month mode commands. (line 42) * 3-Month mode command .-, special: 3-Month mode commands. (line 37) * 3-Month mode command .. YYYY, special: 3-Month mode commands. (line 22) * 3-Month mode command .., special: 3-Month mode commands. (line 17) * 3-Month mode commands: Commands. (line 6) * 3-Month mode commands <1>: 3-Month mode commands. (line 6) * 3-Month mode, limitations: Further date part attributes. (line 29) * 3-Month mode, limitations <1>: Date variables. (line 49) * : separator character: Global options. (line 107) * : separator character <1>: Global options. (line 172) * : separator character <2>: Fixed date options. (line 8) * : separator character <3>: Fixed date options. (line 33) * :N repetition factor of days: Repetition factor of days. (line 6) * ; comment character: Response file. (line 21) * ; comment character <1>: Comment line. (line 6) * ; remark character: Response file. (line 21) * ; remark character <1>: Comment line. (line 6) * ? regexp, operator: Regexp Operators. (line 225) * @FILE response file: Response file. (line 6) * @FILE, command line argument: Response file. (line 6) * @FILE, option: Command line arguments. (line 6) * [...] regexp, character list: Regexp Operators. (line 51) * [.ELEMENT.] regexp, collating symbols: Regexp Operators. (line 143) * [:alnum:] regexp, character class: Regexp Operators. (line 89) * [:alpha:] regexp, character class: Regexp Operators. (line 92) * [:blank:] regexp, character class: Regexp Operators. (line 95) * [:cntrl:] regexp, character class: Regexp Operators. (line 98) * [:digit:] regexp, character class: Regexp Operators. (line 101) * [:graph:] regexp, character class: Regexp Operators. (line 104) * [:KEYWORD:] regexp, character classes: Regexp Operators. (line 75) * [:lower:] regexp, character class: Regexp Operators. (line 108) * [:print:] regexp, character class: Regexp Operators. (line 111) * [:punct:] regexp, character class: Regexp Operators. (line 114) * [:space:] regexp, character class: Regexp Operators. (line 118) * [:upper:] regexp, character class: Regexp Operators. (line 121) * [:xdigit:] regexp, character class: Regexp Operators. (line 124) * [=LIST=] regexp, equivalence classes: Regexp Operators. (line 150) * [^ ...] regexp, complemented character list: Regexp Operators. (line 163) * \ depreciation character: Fixed date options. (line 98) * \ depreciation character <1>: Fixed date options. (line 104) * \ depreciation character <2>: Fixed date options. (line 114) * \ depreciation character <3>: Fixed date options. (line 415) * \ depreciation character <4>: Fixed date options. (line 503) * \ depreciation character <5>: Fixed date options. (line 512) * \ depreciation character <6>: Fixed date options. (line 547) * \ depreciation character <7>: Fixed date options. (line 747) * \ depreciation character <8>: Fixed date options. (line 757) * \ depreciation character <9>: Fixed date options. (line 841) * \ depreciation character <10>: Fixed date options. (line 851) * \ depreciation character <11>: Text part of a line. (line 52) * \ depreciation character <12>: Text part of a line. (line 93) * \ depreciation character <13>: Special Texts processed. (line 6) * \ depreciation character <14>: Text variables. (line 90) * \ depreciation character <15>: Other difference values. (line 11) * \ line continuation character: Text part of a line. (line 28) * \ protection character: Fixed date options. (line 98) * \ protection character <1>: Fixed date options. (line 104) * \ protection character <2>: Fixed date options. (line 114) * \ protection character <3>: Fixed date options. (line 415) * \ protection character <4>: Fixed date options. (line 503) * \ protection character <5>: Fixed date options. (line 512) * \ protection character <6>: Fixed date options. (line 547) * \ protection character <7>: Fixed date options. (line 747) * \ protection character <8>: Fixed date options. (line 757) * \ protection character <9>: Fixed date options. (line 841) * \ protection character <10>: Fixed date options. (line 851) * \ protection character <11>: Text part of a line. (line 52) * \ protection character <12>: Text part of a line. (line 93) * \ protection character <13>: Special Texts processed. (line 6) * \ protection character <14>: Text variables. (line 90) * \ protection character <15>: Other difference values. (line 11) * \ regexp, metacharacter: Regexp Operators. (line 14) * \' regexp, operator: Regexp Operators. (line 303) * \< regexp, operator: Regexp Operators. (line 270) * \> regexp, operator: Regexp Operators. (line 274) * \b regexp, operator: Regexp Operators. (line 278) * \B regexp, operator: Regexp Operators. (line 283) * \w regexp, operator: Regexp Operators. (line 259) * \W regexp, operator: Regexp Operators. (line 265) * \` regexp, operator: Regexp Operators. (line 299) * ^ line break-up character: Fixed date options. (line 398) * ^ line break-up character <1>: Fixed date options. (line 744) * ^ line break-up character <2>: Fixed date options. (line 838) * ^ line break-up character <3>: Text part of a line. (line 6) * ^ line break-up character <4>: Text part of a line. (line 58) * ^ regexp, anchor metacharacter: Regexp Operators. (line 22) * _ pseudo space character: Fixed date options. (line 111) * _ pseudo space character <1>: Fixed date options. (line 411) * _ pseudo space character <2>: Fixed date options. (line 509) * _ pseudo space character <3>: Fixed date options. (line 544) * _ pseudo space character <4>: Fixed date options. (line 754) * _ pseudo space character <5>: Fixed date options. (line 848) * {EXPRESSION} regexp, interval expressions: Regexp Operators. (line 235) * | regexp, operator: Regexp Operators. (line 173) * ~ line break-up character: Fixed date options. (line 398) * ~ line break-up character <1>: Fixed date options. (line 744) * ~ line break-up character <2>: Fixed date options. (line 838) * ~ line break-up character <3>: Text part of a line. (line 6) * ~ line break-up character <4>: Text part of a line. (line 47) * Accuracy of astronomical calculations: Preface. (line 19) * Activate fixed date function: Fixed date options. (line 435) * Activate fixed date function <1>: Fixed date options. (line 475) * Activate fixed date function <2>: Fixed date options. (line 520) * Activate fixed date function <3>: Fixed date options. (line 600) * Actual clocktime %[FORMAT]?[ARGUMENT] special texts: Actual clocktime. (line 6) * Actual clocktime %[FORMAT]?[ARGUMENT] special texts <1>: Special Texts Summary. (line 233) * Actual date modifier: Glossary. (line 10) * Actual date modifier, %DATE: Actual date modifier. (line 6) * Actual file directory: Resource file. (line 32) * Actual local time 12-hour format suffix %[FORMAT]{[ARGUMENT] special text: Actual clocktime. (line 110) * Actual local time 12-hour format suffix %[FORMAT]{[[+|-]MMMM|HH:[MM]] special text: Special Texts Summary. (line 247) * Actual local time hour %[FORMAT]_[*][[+|-]MMMM|HH:[MM]] special text: Special Texts Summary. (line 241) * Actual local time hour %[FORMAT]_[ARGUMENT] special text: Actual clocktime. (line 78) * Actual local time in HH:MM format %t[ARGUMENT] special text: Actual clocktime. (line 23) * Actual local time in HH:MM format %t[ARGUMENT] special text <1>: Special Texts Summary. (line 235) * Actual local time in M[M...] format %[FORMAT]'[ARGUMENT] special text: Actual clocktime. (line 62) * Actual local time in M[M...] format %[FORMAT]'[ARGUMENT] special text <1>: Special Texts Summary. (line 238) * Actual local time minute %[FORMAT]?[ARGUMENT] special text: Actual clocktime. (line 94) * Actual local time minute %[FORMAT]?[[+|-]MMMM|HH:[MM]] special text: Special Texts Summary. (line 244) * Actual Universal time 12-hour format suffix %[FORMAT]}[ARGUMENT] special text: Actual clocktime. (line 196) * Actual Universal time 12-hour format suffix %[FORMAT]}[[+|-]MMMM|HH:[MM]] special text: Special Texts Summary. (line 262) * Actual Universal time hour %[FORMAT].[*][[+|-]MMMM|HH:[MM]] special text: Special Texts Summary. (line 256) * Actual Universal time hour %[FORMAT].[ARGUMENT] special text: Actual clocktime. (line 163) * Actual Universal time in HH:MM/DATE format %@[ARGUMENT] special text: Actual clocktime. (line 126) * Actual Universal time in HH:MM/DATE format %@[ARGUMENT] special text <1>: Special Texts Summary. (line 250) * Actual Universal time in M[M...]/DATE format %[FORMAT]`[ARGUMENT] special text: Actual clocktime. (line 145) * Actual Universal time in M[M...]/DATE format %[FORMAT]`[ARGUMENT] special text <1>: Special Texts Summary. (line 253) * Actual Universal time minute %[FORMAT]/[ARGUMENT] special text: Actual clocktime. (line 179) * Actual Universal time minute %[FORMAT]/[[+|-]MMMM|HH:[MM]] special text: Special Texts Summary. (line 259) * Addition by days of date variables: Date variables. (line 124) * Addition by weekdays of date variables: Date variables. (line 126) * Addition of text variables: Text variables. (line 300) * Additional resource file: Fixed date options. (line 475) * Additional resource file line: Fixed date options. (line 520) * Age value %>1&*B[DATE] special text: Difference value. (line 30) * Age value %B[DATE] special text: Difference value. (line 18) * Age value %B[DATE] special text <1>: Special Texts Summary. (line 230) * Age value (birthday) %b[DATE] special text: Special Texts Summary. (line 227) * Air pressure of Earth's atmosphere, set: Fixed date options. (line 152) * Alternation operator: Glossary. (line 15) * Alternative date format in calendar sheet: Calendar options. (line 1416) * Alternative date format in eternal holiday list: Calendar options. (line 1433) * Alternative date format in fixed date list: Calendar options. (line 1451) * Amateur-astronomical twilight: Glossary. (line 19) * Amateur-astronomical twilight, Sun: Sun data. (line 287) * Amateur-astronomical twilight, Sun <1>: Sun data. (line 296) * Anchor: Glossary. (line 23) * Anchor metacharacter, $ regexp: Regexp Operators. (line 32) * Anchor metacharacter, ^ regexp: Regexp Operators. (line 22) * Anchors in regexp: Regexp Operators. (line 22) * ANSI: Glossary. (line 26) * Appearance factor of days, .N: Appearance factor of days. (line 6) * Appearance factors of days, examples: Appearance factor of days. (line 84) * Appearance factors of days, valid date parts: Appearance factor of days. (line 49) * Arguments of command line: Command line arguments. (line 6) * Aspects in Internationalization: Internationalization. (line 6) * Asr prayer time: Glossary. (line 31) * Asr, Islamic prayer time: Sun data. (line 50) * Asr, Islamic prayer time <1>: Sun data. (line 818) * Asr, Islamic prayer time <2>: Sun data. (line 855) * Assignment of special texts to text variables, limitations: Special Texts. (line 20) * Assignments to date variables: Fixed date options. (line 8) * Assignments to date variables <1>: Structure of resource file. (line 58) * Assignments to date variables <2>: Date variables. (line 6) * Assignments to text variables: Fixed date options. (line 33) * Assignments to text variables <1>: Structure of resource file. (line 73) * Assignments to text variables <2>: Text variables. (line 6) * Astronomical calculations, accuracy: Preface. (line 19) * Astronomical calculations, precision: Preface. (line 19) * Astronomical data and times, more precise representation: Fixed date options. (line 341) * Astronomical data in eternal holiday list: Calendar options. (line 48) * Astronomical midnight time, Moon: Moon data. (line 38) * Astronomical midnight time, Sun: Sun data. (line 38) * Astronomical noon time, Moon: Moon data. (line 58) * Astronomical noon time, Sun: Sun data. (line 50) * Astronomical twilight: Glossary. (line 36) * Astronomical twilight, Sun: Sun data. (line 313) * Astronomical twilight, Sun <1>: Sun data. (line 327) * Astronomical unit: Glossary. (line 40) * Astronomical unit, Sun: Sun data. (line 402) * Atmospheric refraction: Fixed date options. (line 152) * Autumnal equinox: Calendar options. (line 48) * Autumnal equinox point on the ecliptic: Glossary. (line 46) * Azimuth: Glossary. (line 50) * Azimuth, Moon: Moon data. (line 38) * Azimuth, Sun: Sun data. (line 38) * Baha''i` holidays in eternal holiday list: Calendar options. (line 57) * Base data of Earth's atmosphere to calculate refraction, set: Fixed date options. (line 152) * Base time of astronomical functions, output: Sun data. (line 488) * Base time of astronomical functions, output <1>: Moon data. (line 453) * Base time of the astronomical functions, change: Calendar options. (line 1491) * Base year of calendar, change: Calendar options. (line 1542) * Biorhythm: Glossary. (line 54) * Biorhythm %?[DATE] special texts: Biorhythm. (line 6) * Biorhythm %?[DATE] special texts <1>: Special Texts Summary. (line 214) * Biorhythm text %,[DATE] special text: Biorhythm. (line 33) * Biorhythm text %,[DATE] special text <1>: Special Texts Summary. (line 216) * Biorhythm text graphics %;[DATE] special text: Biorhythm. (line 60) * Biorhythm text graphics %;[DATE] special text <1>: Special Texts Summary. (line 219) * Biorhythm, critical day: Biorhythm. (line 20) * Biorhythm, negative day: Biorhythm. (line 20) * Biorhythm, positive day: Biorhythm. (line 20) * Birthday: Difference value. (line 18) * Birthday <1>: Difference value. (line 30) * BSD: Glossary. (line 59) * Buffer matching operators, regexp: Regexp Operators. (line 298) * Buffer, regexp: Regexp Operators. (line 289) * C: Glossary. (line 63) * C Preprocessor symbol USE_PAGER: Global options. (line 176) * Calendar format, special: Calendar options. (line 1286) * Calendar format, standard: Calendar options. (line 1286) * Calendar mode, hybrid: Calendar options. (line 1563) * Calendar mode, proleptic: Calendar options. (line 1595) * Calendar option class: Options. (line 13) * Calendar option class <1>: Glossary. (line 67) * Calendar options: Calendar options. (line 6) * Calendar sheet, alternative date format: Calendar options. (line 1416) * Calendar sheet, provide with week numbers: Calendar options. (line 1347) * Calendar sheet, special date format: Calendar options. (line 1422) * Calendar sheet, standard and special date format: Calendar options. (line 1428) * Calendar sheet, suppress: Calendar options. (line 1380) * Calendar, Chinese: Preface. (line 186) * Calendar, Gregorian: Todays Calendar. (line 6) * Calendar, Japanese: Preface. (line 186) * Calendar, Julian: Todays Calendar. (line 6) * Calendar, leap year rule as used by Eastern churches: Calendar options. (line 1320) * Case sensitivity in matching, regexp: Regexp Operators. (line 310) * Celestial axis: Glossary. (line 70) * Celestial body elevation: Glossary. (line 74) * Celestial equator: Sun data. (line 376) * Celestial equator <1>: Moon data. (line 316) * Celestial equator <2>: Glossary. (line 78) * Celestial Pole: Glossary. (line 83) * Celtic holidays in eternal holiday list: Calendar options. (line 61) * Change base time of the astronomical functions: Calendar options. (line 1491) * Change base year of calendar: Calendar options. (line 1542) * Character class: Glossary. (line 87) * Character class, [:alnum:] regexp: Regexp Operators. (line 89) * Character class, [:alpha:] regexp: Regexp Operators. (line 92) * Character class, [:blank:] regexp: Regexp Operators. (line 95) * Character class, [:cntrl:] regexp: Regexp Operators. (line 98) * Character class, [:digit:] regexp: Regexp Operators. (line 101) * Character class, [:graph:] regexp: Regexp Operators. (line 104) * Character class, [:lower:] regexp: Regexp Operators. (line 108) * Character class, [:print:] regexp: Regexp Operators. (line 111) * Character class, [:punct:] regexp: Regexp Operators. (line 114) * Character class, [:space:] regexp: Regexp Operators. (line 118) * Character class, [:upper:] regexp: Regexp Operators. (line 121) * Character class, [:xdigit:] regexp: Regexp Operators. (line 124) * Character classes, regexp: Regexp Operators. (line 75) * Character classes, [:KEYWORD:] regexp: Regexp Operators. (line 75) * Character list: Glossary. (line 93) * Character list in regexp, complemented: Regexp Operators. (line 163) * Character list in regexp, negated: Regexp Operators. (line 163) * Character list, regexp: Regexp Operators. (line 51) * Character list, [...] regexp: Regexp Operators. (line 51) * Character replacement instruction: Calendar options. (line 1670) * Character set: Glossary. (line 97) * Characters, command separator: Commands. (line 38) * Chinese calendar: Preface. (line 186) * Chinese holidays in eternal holiday list: Calendar options. (line 75) * Christian holidays in eternal holiday list: Calendar options. (line 82) * Civil Islamic calendar: Preface. (line 163) * Civil Islamic calendar <1>: Glossary. (line 105) * Civil midnight time: Calendar options. (line 1491) * Civil midnight time <1>: Glossary. (line 108) * Civil twilight: Glossary. (line 113) * Civil twilight, Sun: Sun data. (line 235) * Civil twilight, Sun <1>: Sun data. (line 244) * Clocktime value, Sun and Moon oriented special texts: Sun data. (line 930) * Co-ordinate termination character, /: Geographical distance and course angle. (line 56) * Co-ordinate, ISO-6709:1983: Geographical distance and course angle. (line 56) * Co-ordinate, ISO-6709:1983 <1>: Sun data. (line 1027) * Co-ordinate, ISO-6709:1983 <2>: Moon data. (line 821) * Coding scheme of resource file: Coding Scheme. (line 6) * Coding Scheme Table 1: Coding Scheme Table 1. (line 6) * Coding Scheme Table 2: Coding Scheme Table 2. (line 6) * Collating element: Glossary. (line 117) * Collating elements, regexp: Regexp Operators. (line 135) * Collating symbol: Glossary. (line 124) * Collating symbols, regexp: Regexp Operators. (line 143) * Collating symbols, [.ELEMENT.] regexp: Regexp Operators. (line 143) * COLUMNS environment variable: Environment Variables. (line 14) * Command: Glossary. (line 132) * Command execution: Fixed date options. (line 70) * Command execution <1>: Fixed date options. (line 353) * Command execution <2>: Text variables. (line 42) * Command execution <3>: Shell Command. (line 24) * Command line argument: Glossary. (line 128) * Command line argument %DATE: Actual date modifier. (line 6) * Command line argument @FILE: Response file. (line 6) * Command line interpreter: Invoking Gcal. (line 11) * Command line interpreter <1>: Fixed date options. (line 353) * Command line interpreter <2>: Text variables. (line 96) * Command line interpreter <3>: Shell Command. (line 6) * Command line options, gcal: Options. (line 6) * Command line options, gcal2txt: Invoking gcal2txt. (line 6) * Command line options, tcal: Invoking tcal. (line 6) * Command line options, txt2gcal: Invoking txt2gcal. (line 6) * Command line word, single: Fixed date options. (line 589) * Command line word, single <1>: Fixed date options. (line 600) * Command line, arguments: Command line arguments. (line 6) * Command separator characters: Commands. (line 38) * Command separator characters, table: Commands. (line 38) * Command, .: 3-Month mode commands. (line 7) * Command, . YYYY: 3-Month mode commands. (line 12) * Command, .+: 3-Month mode commands. (line 27) * Command, .+ YYYY: 3-Month mode commands. (line 32) * Command, .-: 3-Month mode commands. (line 37) * Command, .- YYYY: 3-Month mode commands. (line 42) * Command, ..: 3-Month mode commands. (line 17) * Command, .. YYYY: 3-Month mode commands. (line 22) * Command, :: Single commands. (line 46) * Command, :YYYY: Single commands. (line 62) * Command, lists: Commands. (line 6) * Command, MM YYYY: Single commands. (line 38) * Command, MM YYYY-YYYY: Ranges of commands. (line 37) * Command, MM,...,MM: Lists of commands. (line 7) * Command, MM,...,MM YYYY: Lists of commands. (line 20) * Command, MM,MM/YYYY,...: Lists of commands. (line 38) * Command, MM-MM: Ranges of commands. (line 7) * Command, MM-MM YYYY: Ranges of commands. (line 22) * Command, MM-MM YYYY+YYYY: Ranges of commands. (line 29) * Command, MM/YYYY: Single commands. (line 38) * Command, MM/YYYY,...,MM/YYYY: Lists of commands. (line 14) * Command, MM/YYYY-MM/YYYY: Ranges of commands. (line 15) * Command, MM/YYYY-YYYY: Ranges of commands. (line 37) * Command, MM:: Single commands. (line 53) * Command, MM:;MM:;...: Lists of commands. (line 49) * Command, MM:;MM:YYYY;...: Lists of commands. (line 43) * Command, MM:YYYY: Single commands. (line 69) * Command, MM:YYYY+MM:YYYY: Ranges of commands. (line 49) * Command, MM:YYYY;...;MM:YYYY: Lists of commands. (line 31) * Command, MONTH NAME: Single commands. (line 11) * Command, NOTHING: Single commands. (line 7) * Command, ranges: Commands. (line 6) * Command, YYYY: Single commands. (line 18) * Command, YYYY+YYYY: Ranges of commands. (line 44) * Command, YYYY;...;YYYY: Lists of commands. (line 26) * Commands: Command line arguments. (line 6) * Commands, general view: Commands. (line 6) * Commands, lists: Lists of commands. (line 6) * Commands, ranges: Ranges of commands. (line 6) * Commands, single: Commands. (line 6) * Commands, single <1>: Single commands. (line 6) * Comment character, ;: Response file. (line 21) * Comment character, ; <1>: Comment line. (line 6) * Comment line in resource file: Structure of resource file. (line 47) * Comment line in resource file <1>: Comment line. (line 6) * Common option class: Options. (line 13) * Common option class <1>: Glossary. (line 136) * Common options: Common options. (line 6) * Complemented character list: Glossary. (line 496) * Complemented character list, regexp: Regexp Operators. (line 163) * Complemented character list, [^ ...] regexp: Regexp Operators. (line 163) * Complemented regular expression: Fixed date options. (line 427) * Complete month name %U[DATE] special text: Month name. (line 7) * Complete month name %U[DATE] special text <1>: Special Texts Summary. (line 174) * Complete weekday name %K[DATE] special text: Weekday name. (line 7) * Complete weekday name %K[DATE] special text <1>: Special Texts Summary. (line 92) * Conjunction: Glossary. (line 140) * Conjunction, Moon: Moon data. (line 38) * Continue line in resource file: Text part of a line. (line 28) * Control character sequence: Global options. (line 107) * Copyleft: Common options. (line 33) * Copyright: Common options. (line 33) * Country code: Calendar options. (line 145) * Country code <1>: Internationalization. (line 122) * Country specific holidays in eternal holiday list: Calendar options. (line 141) * Country specific special characters: Calendar options. (line 1732) * Course angle: Glossary. (line 718) * Course angle (true track) %b*1ARGUMENT special text: Geographical distance and course angle. (line 30) * Course angle (true track) %b*1ARGUMENT special text <1>: Special Texts Summary. (line 290) * Course angle (true track) %b*2ARGUMENT special text: Geographical distance and course angle. (line 45) * Course angle (true track) %b*2ARGUMENT special text <1>: Special Texts Summary. (line 300) * Course angle (true track) %b1ARGUMENT special text: Geographical distance and course angle. (line 30) * Course angle (true track) %b1ARGUMENT special text <1>: Special Texts Summary. (line 285) * Course angle (true track) %b2ARGUMENT special text: Geographical distance and course angle. (line 45) * Course angle (true track) %b2ARGUMENT special text <1>: Special Texts Summary. (line 295) * Critical day: Glossary. (line 145) * Critical day, biorhythm: Biorhythm. (line 20) * Current month of current year: Single commands. (line 7) * Current months, range: Ranges of commands. (line 7) * Cycle displacement value for Sun and Moon data and times, set: Fixed date options. (line 291) * Cycle ending time value for Sun and Moon data and times, set: Fixed date options. (line 225) * Cycle mode: Fixed date options. (line 225) * Cycle mode <1>: Glossary. (line 151) * Cycle timestep value for Sun and Moon data and times, set: Fixed date options. (line 291) * Date exclusion %?... special texts: Exclusions. (line 6) * Date format elements: Calendar options. (line 1670) * Date format elements <1>: Table of Obsolete Date Format Elements. (line 6) * Date format texts, fixed default: Calendar options. (line 1636) * Date format texts, fixed default <1>: Table of Obsolete Date Formats. (line 6) * Date format texts, individual: Calendar options. (line 1658) * Date format texts, individual <1>: Table of Obsolete Date Format Elements. (line 6) * Date formats: Calendar options. (line 1636) * Date formats, fixed default: Calendar options. (line 1636) * Date formats, individual: Calendar options. (line 1658) * Date part: Glossary. (line 157) * Date part of a resource file line: Date part of a line. (line 6) * Date part, appearance factor of days: Appearance factor of days. (line 6) * Date part, further attributes: Further date part attributes. (line 6) * Date part, lists of days: Lists of days. (line 6) * Date part, ranges of days: Ranges of days. (line 6) * Date part, repetition factor of days: Repetition factor of days. (line 6) * Date part, structure: Date part of a line. (line 6) * Date part, validity of omission values: Date part of a line. (line 146) * Date variables: Date variables. (line 6) * Date variables, addition by days: Date variables. (line 124) * Date variables, addition by weekdays: Date variables. (line 126) * Date variables, assignments: Fixed date options. (line 8) * Date variables, assignments <1>: Structure of resource file. (line 58) * Date variables, assignments <2>: Date variables. (line 6) * Date variables, definition: Fixed date options. (line 8) * Date variables, definition <1>: Date variables. (line 6) * Date variables, export of local: Fixed date options. (line 28) * Date variables, export of local <1>: Date variables. (line 104) * Date variables, global: Fixed date options. (line 8) * Date variables, global <1>: Date variables. (line 6) * Date variables, local: Date variables. (line 6) * Date variables, management: Fixed date options. (line 8) * Date variables, management <1>: Date variables. (line 6) * Date variables, name space: Fixed date options. (line 8) * Date variables, name space <1>: Date variables. (line 55) * Date variables, operations: Fixed date options. (line 8) * Date variables, operations <1>: Structure of resource file. (line 58) * Date variables, operations <2>: Date variables. (line 117) * Date variables, scope: Fixed date options. (line 8) * Date variables, scope <1>: Date variables. (line 128) * Date variables, simple decrement: Date variables. (line 122) * Date variables, simple increment: Date variables. (line 121) * Date variables, subtraction by days: Date variables. (line 125) * Date variables, subtraction by weekdays: Date variables. (line 127) * Date variables, total number: Date variables. (line 6) * Date variables, visibility: Date variables. (line 55) * Date variables, visibility of local: Fixed date options. (line 28) * Date variables, visibility of local <1>: Date variables. (line 104) * Day number %>02&*D[DATE] special text: Day number. (line 30) * Day number %>02&*D[DATE] special text <1>: Special Texts Summary. (line 165) * Day number %>02*D[DATE] special text: Day number. (line 14) * Day number %>02*D[DATE] special text <1>: Special Texts Summary. (line 159) * Day number %>1&*D[DATE] special text: Day number. (line 22) * Day number %>1&*D[DATE] special text <1>: Special Texts Summary. (line 162) * Day number %D[DATE] special text: Day number. (line 7) * Day number %D[DATE] special text <1>: Special Texts Summary. (line 156) * Day number %[FORMAT]D[DATE] special text: Day number. (line 6) * Day number %[FORMAT]D[DATE] special text <1>: Special Texts Summary. (line 154) * Day number %[FORMAT]N[DATE] special text: Special Texts Summary. (line 139) * Day-of-year number %>03&*N[DATE] special text: Day-of-year number. (line 32) * Day-of-year number %>03&*N[DATE] special text <1>: Special Texts Summary. (line 150) * Day-of-year number %>03*N[DATE] special text: Day-of-year number. (line 15) * Day-of-year number %>03*N[DATE] special text <1>: Special Texts Summary. (line 144) * Day-of-year number %>1&*N[DATE] special text: Day-of-year number. (line 24) * Day-of-year number %>1&*N[DATE] special text <1>: Special Texts Summary. (line 147) * Day-of-year number %N[DATE] special text: Day-of-year number. (line 7) * Day-of-year number %N[DATE] special text <1>: Special Texts Summary. (line 141) * Day-of-year number %[FORMAT]N[DATE] special text: Day-of-year number. (line 6) * Daylight Savings: Sun data. (line 1079) * Decimal system: Glossary. (line 161) * Declination: Glossary. (line 164) * Declination, Moon: Moon data. (line 316) * Declination, Sun: Sun data. (line 376) * Default mode, geographical distance and course angle: Geographical distance and course angle. (line 49) * Default mode, Moon data and times: Moon data. (line 806) * Default mode, Sun data and times: Sun data. (line 883) * Defaults of native language: Internationalization. (line 53) * Definition of date variables: Fixed date options. (line 8) * Definition of date variables <1>: Date variables. (line 6) * Definition of global date variables: Fixed date options. (line 8) * Definition of global text variables: Fixed date options. (line 33) * Definition of local date variables: Date variables. (line 6) * Definition of local text variables: Text variables. (line 6) * Definition of text variables: Fixed date options. (line 33) * Definition of text variables <1>: Text variables. (line 6) * Deletion of local date variables: Date variables. (line 75) * Delta-t: Glossary. (line 168) * Delta-t, Moon: Moon data. (line 431) * Delta-t, Sun: Sun data. (line 466) * Depreciation character, \: Fixed date options. (line 98) * Depreciation character, \ <1>: Fixed date options. (line 104) * Depreciation character, \ <2>: Fixed date options. (line 114) * Depreciation character, \ <3>: Fixed date options. (line 415) * Depreciation character, \ <4>: Fixed date options. (line 503) * Depreciation character, \ <5>: Fixed date options. (line 512) * Depreciation character, \ <6>: Fixed date options. (line 547) * Depreciation character, \ <7>: Fixed date options. (line 747) * Depreciation character, \ <8>: Fixed date options. (line 757) * Depreciation character, \ <9>: Fixed date options. (line 841) * Depreciation character, \ <10>: Fixed date options. (line 851) * Depreciation character, \ <11>: Text part of a line. (line 52) * Depreciation character, \ <12>: Text part of a line. (line 93) * Depreciation character, \ <13>: Special Texts processed. (line 6) * Depreciation character, \ <14>: Text variables. (line 90) * Depreciation character, \ <15>: Other difference values. (line 11) * Depreciation of special characters: Command line arguments. (line 28) * Depreciation of special characters <1>: Fixed date options. (line 98) * Depreciation of special characters <2>: Fixed date options. (line 104) * Depreciation of special characters <3>: Fixed date options. (line 114) * Depreciation of special characters <4>: Fixed date options. (line 415) * Depreciation of special characters <5>: Fixed date options. (line 503) * Depreciation of special characters <6>: Fixed date options. (line 512) * Depreciation of special characters <7>: Fixed date options. (line 547) * Depreciation of special characters <8>: Fixed date options. (line 747) * Depreciation of special characters <9>: Fixed date options. (line 757) * Depreciation of special characters <10>: Fixed date options. (line 841) * Depreciation of special characters <11>: Fixed date options. (line 851) * Depreciation of special characters <12>: Response file. (line 6) * Depreciation of special characters <13>: Text part of a line. (line 52) * Depreciation of special characters <14>: Text part of a line. (line 93) * Depreciation of special characters <15>: Special Texts processed. (line 6) * Depreciation of special characters <16>: Text variables. (line 90) * Depreciation of special characters <17>: Other difference values. (line 11) * Description of all %?... special texts: Special Texts. (line 6) * Description of format instruction: Format Instruction. (line 6) * Determine type of week number: Calendar options. (line 1354) * Difference value %[FORMAT]? special texts: Other difference values. (line 6) * Difference value %[FORMAT]? special texts <1>: Special Texts Summary. (line 1869) * Difference value %[FORMAT]?[DATE] special texts: Difference value. (line 6) * Difference value %[FORMAT]?[DATE] special texts <1>: Special Texts Summary. (line 222) * Direction to Makkah, Islamic prayer: Geographical distance and course angle. (line 86) * Directory, actual: Resource file. (line 32) * Disable highlighting sequences: Global options. (line 102) * Disable marking characters: Global options. (line 102) * Double or shorter shadow length, period: Sun data. (line 871) * Double shadow length at afternoon: Sun data. (line 855) * Double shadow length at forenoon: Sun data. (line 846) * Early years: Glossary. (line 174) * Earth equator radius, unit: Moon data. (line 353) * Earth's atmosphere, set air pressure: Fixed date options. (line 152) * Earth's atmosphere, set base data to calculate refraction: Fixed date options. (line 152) * Earth's atmosphere, set temperature: Fixed date options. (line 152) * Eastern churches' leap year rule, use: Calendar options. (line 1320) * Eclipse, lunar: Calendar options. (line 48) * Eclipse, solar: Calendar options. (line 48) * Ecliptic: Sun data. (line 387) * Ecliptic <1>: Moon data. (line 327) * Ecliptic <2>: Moon data. (line 335) * Ecliptic <3>: Glossary. (line 187) * Ecliptic latitude: Glossary. (line 179) * Ecliptic latitude, Moon: Moon data. (line 335) * Ecliptic longitude: Glossary. (line 183) * Ecliptic longitude, Moon: Moon data. (line 327) * Ecliptic longitude, Sun: Sun data. (line 387) * Electronic Mail: Global options. (line 189) * Elevation, Moon: Moon data. (line 302) * Elevation, Sun: Sun data. (line 348) * Elongation: Glossary. (line 190) * Elongation, Moon: Moon data. (line 359) * EMail, empty message body: Global options. (line 215) * EMail, error code: Error Codes. (line 6) * EMail, methods of sending: Global options. (line 194) * EMail, option: Global options. (line 189) * Empty local text variables: Text variables. (line 55) * Empty local text variables <1>: Text variables. (line 242) * Empty message body in Mail: Global options. (line 215) * End of highlighting sequence 1 %2 special text: Highlighting. (line 28) * End of highlighting sequence 1 %2 special text <1>: Special Texts Summary. (line 1888) * End of highlighting sequence 1 %6 special text: Highlighting. (line 78) * End of highlighting sequence 1 %6 special text <1>: Special Texts Summary. (line 1901) * End of highlighting sequence 1 or 2 %0 special text: Highlighting. (line 125) * End of highlighting sequence 1 or 2 %0 special text <1>: Special Texts Summary. (line 1918) * End of highlighting sequence 2 %4 special text: Highlighting. (line 56) * End of highlighting sequence 2 %4 special text <1>: Special Texts Summary. (line 1894) * End of highlighting sequence 2 %8 special text: Highlighting. (line 100) * End of highlighting sequence 2 %8 special text <1>: Special Texts Summary. (line 1909) * Ending date: Glossary. (line 194) * Ending date of fixed date: Inclusive date period. (line 31) * Ending date of fixed date <1>: Exclusive date period. (line 32) * Environment: Glossary. (line 198) * Environment variable %[FORMAT]-[ARGUMENT] special text: Contents of Environment variable. (line 6) * Environment variable %[FORMAT]-[ARGUMENT] special text <1>: Special Texts Summary. (line 1866) * Environment variable, COLUMNS: Environment Variables. (line 14) * Environment variable, GCAL: Global options. (line 8) * Environment variable, GCAL <1>: Global options. (line 15) * Environment variable, GCAL <2>: The GCAL environment variable. (line 6) * Environment variable, GCAL <3>: Environment Variables. (line 10) * Environment variable, GCALANSI: Global options. (line 182) * Environment variable, GCALANSI <1>: Environment Variables. (line 41) * Environment variable, GCALPATH: Resource file. (line 25) * Environment variable, GCALPATH <1>: Environment Variables. (line 47) * Environment variable, GCALPROG: Invoking tcal. (line 21) * Environment variable, GCALPROG <1>: Environment Variables. (line 52) * Environment variable, GCAL_COLUMNS: Environment Variables. (line 14) * Environment variable, GCAL_DATE_FORMAT: Environment Variables. (line 19) * Environment variable, GCAL_LINES: Environment Variables. (line 25) * Environment variable, GCAL_OPT: The GCAL environment variable. (line 24) * Environment variable, GCAL_OPT <1>: Environment Variables. (line 10) * Environment variable, GCAL_SYS_DATADIR: Resource file. (line 50) * Environment variable, GCAL_SYS_DATADIR <1>: Environment Variables. (line 30) * Environment variable, GCAL_USR_DATADIR: Resource file. (line 38) * Environment variable, GCAL_USR_DATADIR <1>: Environment Variables. (line 35) * Environment variable, HOME: Resource file. (line 32) * Environment variable, HOME <1>: Environment Variables. (line 61) * Environment variable, LANG: Internationalization. (line 34) * Environment variable, LANG <1>: Environment Variables. (line 80) * Environment variable, LANGUAGE: Internationalization. (line 31) * Environment variable, LANGUAGE <1>: Environment Variables. (line 66) * Environment variable, LC_ALL: Internationalization. (line 32) * Environment variable, LC_ALL <1>: Environment Variables. (line 71) * Environment variable, LC_MESSAGES: Internationalization. (line 33) * Environment variable, LC_MESSAGES <1>: Environment Variables. (line 76) * Environment variable, LINES: Environment Variables. (line 25) * Environment variable, LOGNAME: Global options. (line 207) * Environment variable, LOGNAME <1>: Environment Variables. (line 84) * Environment variable, MAILPROG: Global options. (line 229) * Environment variable, MAILPROG <1>: Environment Variables. (line 88) * Environment variable, MAILTO: Global options. (line 197) * Environment variable, MAILTO <1>: Environment Variables. (line 94) * Environment variable, PAGER: Global options. (line 48) * Environment variable, PAGER <1>: Environment Variables. (line 99) * Environment variable, PATH: Global options. (line 53) * Environment variable, PATH <1>: Environment Variables. (line 104) * Environment variable, TERM: Environment Variables. (line 109) * Environment variable, TXT2GCALPROG: Text variables. (line 112) * Environment variable, TXT2GCALPROG <1>: Environment Variables. (line 112) * Environment variable, TZ: Environment Variables. (line 122) * Environment variable, USER: Global options. (line 202) * Environment variable, USER <1>: Environment Variables. (line 126) * Environment variables, table: Environment Variables. (line 6) * Ephemeris date, Julian: Sun data. (line 503) * Ephemeris date, Julian <1>: Moon data. (line 468) * Ephemeris time (ET): Sun data. (line 466) * Ephemeris time (ET) <1>: Moon data. (line 431) * Equation of time: Sun data. (line 508) * Equation of time <1>: Glossary. (line 204) * Equinox, autumnal: Calendar options. (line 48) * Equinox, vernal: Calendar options. (line 48) * Equivalence class: Glossary. (line 208) * Equivalence classes, regexp: Regexp Operators. (line 150) * Equivalence classes, [=LIST=] regexp: Regexp Operators. (line 150) * Error code 1: Fixed date options. (line 441) * Error code 1 <1>: Fixed date options. (line 450) * Error code 1 <2>: Fixed date options. (line 475) * Error code 1 <3>: Fixed date options. (line 520) * Error code 113: Date variables. (line 55) * Error code 118: Resource file. (line 64) * Error code 119: Include directives. (line 53) * Error code 126: Fixed date options. (line 965) * Error code 126 <1>: Fixed date options. (line 1043) * Error code 126 <2>: Fixed date options. (line 1049) * Error code 126 <3>: Fixed date options. (line 1069) * Error code 126 <4>: Fixed date options. (line 1076) * Error code 126 <5>: Fixed date options. (line 1097) * Error code 126 <6>: Fixed date options. (line 1106) * Error code 126 <7>: Fixed date options. (line 1112) * Error code 126 <8>: Fixed date options. (line 1132) * Error code 126 <9>: Fixed date options. (line 1143) * Error code 126 <10>: Fixed date options. (line 1150) * Error code 127: Common options. (line 41) * Error code 2: Text variables. (line 134) * Error code 2 <1>: Shell Command. (line 18) * Error code of executed commands: Shell Command. (line 6) * Error codes, table: Error Codes. (line 6) * Escape sequence: Global options. (line 107) * Escape sequence <1>: Glossary. (line 212) * Eternal holiday list, alternative date format: Calendar options. (line 1433) * Eternal holiday list, astronomical data: Calendar options. (line 48) * Eternal holiday list, Baha''i` holidays: Calendar options. (line 57) * Eternal holiday list, Celtic holidays: Calendar options. (line 61) * Eternal holiday list, Chinese holidays: Calendar options. (line 75) * Eternal holiday list, Christian holidays: Calendar options. (line 82) * Eternal holiday list, country specific holidays: Calendar options. (line 141) * Eternal holiday list, Hebrew holidays: Calendar options. (line 86) * Eternal holiday list, holidays from the flexible Chinese calendar: Calendar options. (line 67) * Eternal holiday list, holidays from the flexible Japanese calendar: Calendar options. (line 94) * Eternal holiday list, Islamic holidays: Calendar options. (line 89) * Eternal holiday list, Japanese holidays: Calendar options. (line 101) * Eternal holiday list, months from Baha''i` calendar: Calendar options. (line 1204) * Eternal holiday list, months from flexible Chinese calendar: Calendar options. (line 1210) * Eternal holiday list, months from flexible Japanese calendar: Calendar options. (line 1255) * Eternal holiday list, months from the Chinese calendar: Calendar options. (line 1217) * Eternal holiday list, months from the civil Indian calendar: Calendar options. (line 1243) * Eternal holiday list, months from the civil Islamic calendar: Calendar options. (line 1248) * Eternal holiday list, months from the Coptic calendar: Calendar options. (line 1223) * Eternal holiday list, months from the Ethiopic calendar: Calendar options. (line 1228) * Eternal holiday list, months from the French Revolutionary calendar: Calendar options. (line 1233) * Eternal holiday list, months from the Hebrew calendar: Calendar options. (line 1238) * Eternal holiday list, months from the Japanese calendar: Calendar options. (line 1262) * Eternal holiday list, months from the Old-Armenic calendar: Calendar options. (line 1268) * Eternal holiday list, months from the Old-Egyptic calendar: Calendar options. (line 1273) * Eternal holiday list, months from the Persian Jalaali calendar: Calendar options. (line 1278) * Eternal holiday list, multicultural New Year holidays: Calendar options. (line 107) * Eternal holiday list, option: Calendar options. (line 9) * Eternal holiday list, Orthodox new calendar holidays: Calendar options. (line 113) * Eternal holiday list, Orthodox old calendar holidays: Calendar options. (line 119) * Eternal holiday list, Persian Jalaali holidays: Calendar options. (line 125) * Eternal holiday list, special date format: Calendar options. (line 1440) * Eternal holiday list, standard and special date format: Calendar options. (line 1446) * Eternal holiday list, suppression of leading blank line: Calendar options. (line 40) * Eternal holiday list, suppression of title text: Calendar options. (line 45) * Eternal holiday list, zodiacal marker holidays: Calendar options. (line 132) * Eternal Holidays: Eternal Holidays. (line 6) * Evening width: Glossary. (line 218) * Evening width geocentric, Sun: Sun data. (line 799) * Evening width topocentric, Sun: Sun data. (line 751) * Event oriented texts of Moon data and times, special: Sun data. (line 939) * Event oriented texts of Sun data and times, special: Sun data. (line 939) * Examples of resource files: Resource file examples. (line 6) * Examples to appearance factors of days: Appearance factor of days. (line 84) * Examples to lists of days: Lists of days. (line 36) * Examples to ranges of days: Ranges of days. (line 63) * Examples to repetition factors of days: Repetition factor of days. (line 56) * Exclusions with date argument %?[DATE] special texts: Exclusions with date argument. (line 6) * Exclusions without any argument %? special texts: Exclusions without any argument. (line 6) * Exclusive all holidays %X special text: Exclusive day period. (line 14) * Exclusive all holidays %X special text <1>: Special Texts Summary. (line 60) * Exclusive date period: Exclusions with date argument. (line 11) * Exclusive date period <1>: Glossary. (line 223) * Exclusive date period %e[DATE][#[DATE]] special text: Exclusive date period. (line 6) * Exclusive date period %e[DATE][#[DATE]] special text <1>: Special Texts Summary. (line 17) * Exclusive day period: Exclusions without any argument. (line 11) * Exclusive day period <1>: Glossary. (line 223) * Exclusive day period %? special texts: Exclusive day period. (line 6) * Exclusive day period %? special texts <1>: Special Texts Summary. (line 55) * Exclusive Friday %H special text: Exclusive day period. (line 30) * Exclusive Friday %H special text <1>: Special Texts Summary. (line 75) * Exclusive legal holidays %V special text: Exclusive day period. (line 10) * Exclusive legal holidays %V special text <1>: Special Texts Summary. (line 57) * Exclusive Monday %A special text: Exclusive day period. (line 18) * Exclusive Monday %A special text <1>: Special Texts Summary. (line 63) * Exclusive Monday...Friday %R special text: Exclusive day period. (line 42) * Exclusive Monday...Friday %R special text <1>: Special Texts Summary. (line 87) * Exclusive Monday...Thursday %Q special text: Exclusive day period. (line 39) * Exclusive Monday...Thursday %Q special text <1>: Special Texts Summary. (line 84) * Exclusive Saturday %L special text: Exclusive day period. (line 33) * Exclusive Saturday %L special text <1>: Special Texts Summary. (line 78) * Exclusive Sunday %P special text: Exclusive day period. (line 36) * Exclusive Sunday %P special text <1>: Special Texts Summary. (line 81) * Exclusive Thursday %G special text: Exclusive day period. (line 27) * Exclusive Thursday %G special text <1>: Special Texts Summary. (line 72) * Exclusive Tuesday %C special text: Exclusive day period. (line 21) * Exclusive Tuesday %C special text <1>: Special Texts Summary. (line 66) * Exclusive Wednesday %F special text: Exclusive day period. (line 24) * Exclusive Wednesday %F special text <1>: Special Texts Summary. (line 69) * Execute command: Fixed date options. (line 70) * Execute command <1>: Fixed date options. (line 353) * Execute command <2>: Text variables. (line 42) * Execute command <3>: Shell Command. (line 24) * Executed commands, error code: Shell Command. (line 6) * Executed commands, exit code: Shell Command. (line 6) * Exit code 1: Fixed date options. (line 441) * Exit code 1 <1>: Fixed date options. (line 450) * Exit code 1 <2>: Fixed date options. (line 475) * Exit code 1 <3>: Fixed date options. (line 520) * Exit code 113: Date variables. (line 55) * Exit code 118: Resource file. (line 64) * Exit code 119: Include directives. (line 53) * Exit code 126: Fixed date options. (line 965) * Exit code 126 <1>: Fixed date options. (line 1043) * Exit code 126 <2>: Fixed date options. (line 1049) * Exit code 126 <3>: Fixed date options. (line 1069) * Exit code 126 <4>: Fixed date options. (line 1076) * Exit code 126 <5>: Fixed date options. (line 1097) * Exit code 126 <6>: Fixed date options. (line 1106) * Exit code 126 <7>: Fixed date options. (line 1112) * Exit code 126 <8>: Fixed date options. (line 1132) * Exit code 126 <9>: Fixed date options. (line 1143) * Exit code 126 <10>: Fixed date options. (line 1150) * Exit code 127: Common options. (line 41) * Exit code 2: Text variables. (line 134) * Exit code 2 <1>: Shell Command. (line 18) * Exit code of executed commands: Shell Command. (line 6) * Exit codes, table: Error Codes. (line 6) * Explicit fiscal year: Single commands. (line 53) * Explicit fiscal year <1>: Single commands. (line 62) * Explicit fiscal year <2>: Single commands. (line 69) * Export of local date variables: Fixed date options. (line 28) * Export of local date variables <1>: Date variables. (line 104) * Export of local text variables: Fixed date options. (line 121) * Export of local text variables <1>: Text variables. (line 279) * Extended file name: Resource file. (line 78) * Extended file name <1>: Glossary. (line 228) * Extended help text: Common options. (line 16) * Extended language code information: Internationalization. (line 122) * Extended language code information <1>: Glossary. (line 234) * External pager program: Global options. (line 48) * Fajr prayer time: Glossary. (line 239) * Fajr, Islamic prayer time: Sun data. (line 313) * File directory, actual: Resource file. (line 32) * File name, extended: Resource file. (line 78) * File name, simple: Resource file. (line 88) * File searching mechanism: Resource file. (line 6) * Filtration, days of fixed dates: Fixed date options. (line 365) * Filtration, fixed date texts: Fixed date options. (line 398) * Filtration, fixed date texts <1>: Fixed date options. (line 422) * Filtration, fixed date texts <2>: Fixed date options. (line 427) * Filtration, periods of fixed dates: Fixed date options. (line 380) * Fiscal year, explicit: Single commands. (line 53) * Fiscal year, explicit <1>: Single commands. (line 62) * Fiscal year, explicit <2>: Single commands. (line 69) * Fiscal year, implicit: Single commands. (line 46) * Fiscal year, limitations: Further date part attributes. (line 29) * Fiscal year, limitations <1>: Date variables. (line 49) * Fiscal year, single: Single commands. (line 46) * Fiscal year, single <1>: Single commands. (line 53) * Fiscal year, single <2>: Single commands. (line 62) * Fiscal year, single <3>: Single commands. (line 69) * Fiscal years of the actual year, list: Lists of commands. (line 49) * Fiscal years, list: Lists of commands. (line 31) * Fiscal years, mixed list: Lists of commands. (line 43) * Fiscal years, range: Ranges of commands. (line 49) * Fixed date function, activate: Fixed date options. (line 435) * Fixed date function, activate <1>: Fixed date options. (line 475) * Fixed date function, activate <2>: Fixed date options. (line 520) * Fixed date function, activate <3>: Fixed date options. (line 600) * Fixed date list, alternative date format: Calendar options. (line 1451) * Fixed date list, special date format: Calendar options. (line 1458) * Fixed date list, standard and special date format: Calendar options. (line 1464) * Fixed date list, suppression of leading blank line: Fixed date options. (line 785) * Fixed date list, suppression of title text: Fixed date options. (line 815) * Fixed date option class: Options. (line 13) * Fixed date option class <1>: Glossary. (line 243) * Fixed date option, --heading-text=TEXT: Fixed date options. (line 818) * Fixed date options: Fixed date options. (line 6) * Fixed date period long-style option, --end-of-month: Fixed date options. (line 1387) * Fixed date period long-style option, --end-of-week: Fixed date options. (line 1349) * Fixed date period long-style option, --end-of-year: Fixed date options. (line 1424) * Fixed date period long-style option, --month: Fixed date options. (line 1387) * Fixed date period long-style option, --start-of-month: Fixed date options. (line 1387) * Fixed date period long-style option, --start-of-week: Fixed date options. (line 1349) * Fixed date period long-style option, --start-of-year: Fixed date options. (line 1424) * Fixed date period long-style option, --today: Fixed date options. (line 435) * Fixed date period long-style option, --tomorrow: Fixed date options. (line 1337) * Fixed date period long-style option, --week: Fixed date options. (line 1349) * Fixed date period long-style option, --year: Fixed date options. (line 1424) * Fixed date period modifier, *dN: Fixed date options. (line 901) * Fixed date period modifier, *dNWWW: Fixed date options. (line 1037) * Fixed date period modifier, *wN[WWW]: Fixed date options. (line 1089) * Fixed date period modifier, 0MMDD: Fixed date options. (line 1001) * Fixed date period modifier, @DVAR[+|-]NWWW: Fixed date options. (line 1309) * Fixed date period modifier, @DVAR[[+|-]N]: Fixed date options. (line 1277) * Fixed date period modifier, @e[+|-]NWWW: Fixed date options. (line 1196) * Fixed date period modifier, @e[[+|-]N]: Fixed date options. (line 1163) * Fixed date period modifier, @t[+|-]NWWW: Fixed date options. (line 1251) * Fixed date period modifier, @t[[+|-]N]: Fixed date options. (line 1222) * Fixed date period modifier, d: Fixed date options. (line 586) * Fixed date period modifier, d <1>: Fixed date options. (line 884) * Fixed date period modifier, l: Fixed date options. (line 586) * Fixed date period modifier, l <1>: Fixed date options. (line 890) * Fixed date period modifier, l*dN: Fixed date options. (line 914) * Fixed date period modifier, l*dNWWW: Fixed date options. (line 1060) * Fixed date period modifier, l*wN[WWW]: Fixed date options. (line 1123) * Fixed date period modifier, l@DVAR[+|-]NWWW: Fixed date options. (line 1321) * Fixed date period modifier, l@DVAR[[+|-]N]: Fixed date options. (line 1292) * Fixed date period modifier, l@e[+|-]NWWW: Fixed date options. (line 1208) * Fixed date period modifier, l@e[[+|-]N]: Fixed date options. (line 1178) * Fixed date period modifier, l@t[+|-]NWWW: Fixed date options. (line 1263) * Fixed date period modifier, l@t[[+|-]N]: Fixed date options. (line 1236) * Fixed date period modifier, lMMWWWN: Fixed date options. (line 1023) * Fixed date period modifier, lN+|-: Fixed date options. (line 933) * Fixed date period modifier, lNd: Fixed date options. (line 914) * Fixed date period modifier, lNw: Fixed date options. (line 976) * Fixed date period modifier, MMDD: Fixed date options. (line 994) * Fixed date period modifier, MMWWWN: Fixed date options. (line 1012) * Fixed date period modifier, m|M[+|-]: Fixed date options. (line 1387) * Fixed date period modifier, N+|-: Fixed date options. (line 923) * Fixed date period modifier, Nd: Fixed date options. (line 901) * Fixed date period modifier, Nw: Fixed date options. (line 946) * Fixed date period modifier, t|T: Fixed date options. (line 1337) * Fixed date period modifier, w|W[+|-]: Fixed date options. (line 1349) * Fixed date period modifier, y|Y[+|-]: Fixed date options. (line 1424) * Fixed date period modifiers and options: Fixed date options. (line 866) * Fixed date period option, --leap-day=february: Fixed date options. (line 873) * Fixed date period option, --leap-day=february|march: Fixed date options. (line 586) * Fixed date period option, --leap-day=february|march <1>: Fixed date options. (line 869) * Fixed date period option, --leap-day=march: Fixed date options. (line 878) * Fixed date text modifier, a: Fixed date options. (line 675) * Fixed date text modifier, A: Fixed date options. (line 684) * Fixed date text modifier, alternative list format: Fixed date options. (line 684) * Fixed date text modifier, e: Fixed date options. (line 699) * Fixed date text modifier, E: Fixed date options. (line 704) * Fixed date text modifier, g[TEXT]: Fixed date options. (line 709) * Fixed date text modifier, J: Fixed date options. (line 805) * Fixed date text modifier, k: Fixed date options. (line 765) * Fixed date text modifier, o: Fixed date options. (line 773) * Fixed date text modifier, Q: Fixed date options. (line 785) * Fixed date text modifier, U: Fixed date options. (line 795) * Fixed date text modifier, x: Fixed date options. (line 815) * Fixed date text modifier, z: Fixed date options. (line 859) * Fixed date text modifier, Z: Fixed date options. (line 863) * Fixed date text modifiers: Fixed date options. (line 620) * Fixed date text option, --biorhythm-axis=NUMBER: Fixed date options. (line 623) * Fixed date text option, --moonimage-lines=NUMBER: Fixed date options. (line 652) * Fixed date texts, filtration: Fixed date options. (line 398) * Fixed date texts, filtration <1>: Fixed date options. (line 422) * Fixed date texts, filtration <2>: Fixed date options. (line 427) * Fixed date, ending date: Inclusive date period. (line 31) * Fixed date, ending date <1>: Exclusive date period. (line 32) * Fixed date, line structure: Structure of resource file. (line 32) * Fixed date, option: Fixed date options. (line 435) * Fixed date, option <1>: Fixed date options. (line 600) * Fixed date, starting date: Inclusive date period. (line 11) * Fixed date, starting date <1>: Exclusive date period. (line 12) * Fixed dates: Fixed date options. (line 435) * Fixed dates <1>: Fixed date options. (line 600) * Fixed dates <2>: Fixed Dates. (line 6) * Fixed dates for the _month_: Fixed date options. (line 1387) * Fixed dates for the _week_: Fixed date options. (line 1349) * Fixed dates for the _year_: Fixed date options. (line 1424) * Fixed dates for _today_: Fixed date options. (line 435) * Fixed dates for _tomorrow_: Fixed date options. (line 1337) * Fixed dates, filtration of days: Fixed date options. (line 365) * Fixed dates, filtration of periods: Fixed date options. (line 380) * Fixed default date format texts: Calendar options. (line 1636) * Fixed default date format texts <1>: Table of Obsolete Date Formats. (line 6) * Fixed default date formats: Calendar options. (line 1636) * Fixed format date text: Textual date. (line 6) * Floating Point number: Glossary. (line 563) * Force line break-up: Fixed date options. (line 744) * Force line break-up <1>: Fixed date options. (line 838) * Force line break-up in resource file: Text part of a line. (line 42) * Force year calendar sheet: Calendar options. (line 1384) * Forcing highlighting sequences: Global options. (line 91) * Format elements: Calendar options. (line 1670) * Format elements <1>: Table of Obsolete Date Formats. (line 6) * Format elements, obsolete: Obsolete Special Texts. (line 6) * Format instruction: Calendar options. (line 1670) * Format instruction <1>: Special Texts processed. (line 6) * Format instruction <2>: Text variables. (line 59) * Format instruction <3>: Special Texts. (line 20) * Format instruction <4>: Glossary. (line 246) * Format instruction, description: Format Instruction. (line 6) * Free Software Foundation: Glossary. (line 253) * FSF: Glossary. (line 253) * Full Moon phase: Calendar options. (line 48) * Further date part attributes: Further date part attributes. (line 6) * Further resource file line: Fixed date options. (line 520) * GCAL environment variable: Global options. (line 8) * GCAL environment variable <1>: Global options. (line 15) * GCAL environment variable <2>: The GCAL environment variable. (line 6) * GCAL environment variable <3>: Environment Variables. (line 10) * Gcal Introduction: Gcal Introduction. (line 6) * gcal options: Options. (line 6) * Gcal Utilities: Gcal Utilities. (line 6) * gcal, options: Command line arguments. (line 6) * Gcal, preliminary remarks: Preface. (line 6) * gcal2txt, options: Invoking gcal2txt. (line 6) * gcal2txt, utility: Invoking gcal2txt. (line 6) * GCALANSI environment variable: Global options. (line 182) * GCALANSI environment variable <1>: Environment Variables. (line 41) * GCALPATH environment variable: Resource file. (line 25) * GCALPATH environment variable <1>: Environment Variables. (line 47) * GCALPROG environment variable: Invoking tcal. (line 21) * GCALPROG environment variable <1>: Environment Variables. (line 52) * GCAL_COLUMNS environment variable: Environment Variables. (line 14) * GCAL_DATE_FORMAT environment variable: Environment Variables. (line 19) * GCAL_LINES environment variable: Environment Variables. (line 25) * GCAL_OPT environment variable: The GCAL environment variable. (line 24) * GCAL_OPT environment variable <1>: Environment Variables. (line 10) * GCAL_SYS_DATADIR environment variable: Resource file. (line 50) * GCAL_SYS_DATADIR environment variable <1>: Environment Variables. (line 30) * GCAL_USR_DATADIR environment variable: Resource file. (line 38) * GCAL_USR_DATADIR environment variable <1>: Environment Variables. (line 35) * General Public License: Glossary. (line 293) * Geocentric data: Glossary. (line 258) * Geocentric data, Moon: Moon data. (line 258) * Geocentric data, Sun: Sun data. (line 348) * Geocentrical horizon: Glossary. (line 262) * Geographical data, more precise representation: Fixed date options. (line 341) * Geographical distance %b*0ARGUMENT special text: Geographical distance and course angle. (line 18) * Geographical distance %b*0ARGUMENT special text <1>: Special Texts Summary. (line 282) * Geographical distance %b0ARGUMENT special text: Geographical distance and course angle. (line 18) * Geographical distance %b0ARGUMENT special text <1>: Special Texts Summary. (line 279) * Geographical distance and course angle %[FORMAT]bARGUMENT special texts: Special Texts Summary. (line 277) * Geographical distance and course angle %[FORMAT]b[ARGUMENT] special text: Geographical distance and course angle. (line 6) * Geographical distance and course angle, default mode: Geographical distance and course angle. (line 49) * Geographical distance and course angle, mode characters: Geographical distance and course angle. (line 16) * Geographical distance and course angle, style of representation: Geographical distance and course angle. (line 16) * Geometric horizon, Moon: Moon data. (line 71) * Geometrical horizon: Glossary. (line 268) * Global date variable: Glossary. (line 273) * Global date variables, definition: Fixed date options. (line 8) * Global option class: Options. (line 13) * Global option class <1>: Glossary. (line 277) * Global options: Global options. (line 6) * Global text variable: Glossary. (line 280) * Global text variables, definition: Fixed date options. (line 33) * Glossary: Glossary. (line 6) * Gnomon: Sun data. (line 50) * Gnomon <1>: Glossary. (line 284) * GNU: Glossary. (line 287) * GNU specific regexp operators: Regexp Operators. (line 251) * GNU style options: Options. (line 21) * GPL: Glossary. (line 293) * Greenwich Mean time (GMT): Calendar options. (line 1491) * Greenwich Mean time (GMT) <1>: Moon phase. (line 6) * Greenwich Mean time (GMT) <2>: Actual clocktime. (line 6) * Greenwich Mean time (GMT) <3>: Actual clocktime. (line 126) * Greenwich Mean time (GMT) <4>: Actual clocktime. (line 145) * Greenwich Mean time (GMT) <5>: Actual clocktime. (line 163) * Greenwich Mean time (GMT) <6>: Actual clocktime. (line 179) * Greenwich Mean time (GMT) <7>: Actual clocktime. (line 196) * Greenwich Mean time (GMT) <8>: Actual clocktime. (line 213) * Greenwich Mean time (GMT) <9>: Julian day number. (line 6) * Greenwich Mean time (GMT) <10>: Sun data. (line 488) * Greenwich Mean time (GMT) <11>: Sun data. (line 1079) * Greenwich Mean time (GMT) <12>: Moon data. (line 453) * Gregorian calendar: Glossary. (line 296) * Gregorian calendar, genesis: Todays Calendar. (line 6) * Gregorian Reformation, set period: Calendar options. (line 1563) * Grouping, (...) regexp: Regexp Operators. (line 186) * Handling of non-printable characters in the text part: Text part of a line. (line 6) * Handling of NUL characters in the text part: Text part of a line. (line 21) * Handling of special character sequences in the text part: Text part of a line. (line 6) * Hebrew holidays in eternal holiday list: Calendar options. (line 86) * Help text, extended: Common options. (line 16) * Help text, long: Common options. (line 16) * Help text, short: Common options. (line 9) * Help, online: Common options. (line 9) * Help, online <1>: Common options. (line 16) * Hexadecimal system: Glossary. (line 302) * Highest culmination point: Glossary. (line 307) * Highest culmination point, Moon: Moon data. (line 58) * Highest culmination point, Sun: Sun data. (line 50) * Highlighting %? special texts: Highlighting. (line 6) * Highlighting %? special texts <1>: Special Texts Summary. (line 1883) * Highlighting sequence: Glossary. (line 311) * Highlighting sequences, disabling: Global options. (line 102) * Highlighting sequences, forcing: Global options. (line 91) * Highlighting sequences, setting: Global options. (line 107) * Holiday list, eternal: Eternal Holidays. (line 6) * Holiday, legal: Preface. (line 140) * Holidays from the flexible Chinese calendar in eternal holiday list: Calendar options. (line 67) * Holidays from the flexible Japanese calendar in eternal holiday list: Calendar options. (line 94) * HOME environment variable: Resource file. (line 32) * HOME environment variable <1>: Environment Variables. (line 61) * Horizontal parallax: Glossary. (line 318) * Horizontal parallax, moon: Moon data. (line 258) * Horizontal parallax, Sun: Sun data. (line 410) * How to use regular expressions: Regexp Usage. (line 6) * Hybrid calendar mode: Calendar options. (line 1563) * Hybrid calendar mode <1>: Glossary. (line 322) * Ignoring case distinctions in regular expression: Fixed date options. (line 422) * Ignoring case distinctions in regular expression <1>: Regexp Operators. (line 315) * Ignoring case, regexp: Fixed date options. (line 422) * Ignoring case, regexp <1>: Regexp Operators. (line 315) * Implicit fiscal year: Single commands. (line 46) * Include directives: Structure of resource file. (line 53) * Include directives <1>: Include directives. (line 6) * Inclusive all holidays %x special text: Inclusive day period. (line 14) * Inclusive all holidays %x special text <1>: Special Texts Summary. (line 25) * Inclusive date period: Exclusions with date argument. (line 11) * Inclusive date period <1>: Glossary. (line 330) * Inclusive date period %i[DATE][#[DATE]] special text: Inclusive date period. (line 6) * Inclusive date period %i[DATE][#[DATE]] special text <1>: Special Texts Summary. (line 14) * Inclusive day period: Exclusions without any argument. (line 11) * Inclusive day period <1>: Glossary. (line 330) * Inclusive day period %? special texts: Inclusive day period. (line 6) * Inclusive day period %? special texts <1>: Special Texts Summary. (line 20) * Inclusive Friday %h special text: Inclusive day period. (line 30) * Inclusive Friday %h special text <1>: Special Texts Summary. (line 40) * Inclusive legal holidays %v special text: Inclusive day period. (line 10) * Inclusive legal holidays %v special text <1>: Special Texts Summary. (line 22) * Inclusive Monday %a special text: Inclusive day period. (line 18) * Inclusive Monday %a special text <1>: Special Texts Summary. (line 28) * Inclusive Monday...Friday %r special text: Inclusive day period. (line 42) * Inclusive Monday...Friday %r special text <1>: Special Texts Summary. (line 52) * Inclusive Monday...Thursday %q special text: Inclusive day period. (line 39) * Inclusive Monday...Thursday %q special text <1>: Special Texts Summary. (line 49) * Inclusive Saturday %l special text: Inclusive day period. (line 33) * Inclusive Saturday %l special text <1>: Special Texts Summary. (line 43) * Inclusive Sunday %p special text: Inclusive day period. (line 36) * Inclusive Sunday %p special text <1>: Special Texts Summary. (line 46) * Inclusive Thursday %g special text: Inclusive day period. (line 27) * Inclusive Thursday %g special text <1>: Special Texts Summary. (line 37) * Inclusive Tuesday %c special text: Inclusive day period. (line 21) * Inclusive Tuesday %c special text <1>: Special Texts Summary. (line 31) * Inclusive Wednesday %f special text: Inclusive day period. (line 24) * Inclusive Wednesday %f special text <1>: Special Texts Summary. (line 34) * Individual date format texts: Calendar options. (line 1658) * Individual date format texts <1>: Table of Obsolete Date Format Elements. (line 6) * Individual date formats: Calendar options. (line 1658) * Integer number: Glossary. (line 335) * Internal pager, simple: Global options. (line 60) * Internationalization aspects: Internationalization. (line 6) * Interval expression: Glossary. (line 338) * Interval expressions, regexp: Regexp Operators. (line 235) * Interval expressions, {EXPRESSION} regexp: Regexp Operators. (line 235) * Introduction, Gcal: Gcal Introduction. (line 6) * Invoking gcal: Invoking Gcal. (line 6) * Invoking gcal2txt: Invoking gcal2txt. (line 6) * Invoking tcal: Invoking tcal. (line 6) * Invoking txt2gcal: Invoking txt2gcal. (line 6) * Isha prayer time: Glossary. (line 341) * Isha, Islamic prayer time: Sun data. (line 327) * Islamic calendar, civil: Preface. (line 163) * Islamic calendar, religious: Preface. (line 163) * Islamic holidays in eternal holiday list: Calendar options. (line 89) * Islamic prayer time, Asr: Sun data. (line 50) * Islamic prayer time, Asr <1>: Sun data. (line 818) * Islamic prayer time, Asr <2>: Sun data. (line 855) * Islamic prayer time, Fajr: Sun data. (line 313) * Islamic prayer time, Isha: Sun data. (line 327) * Islamic prayer time, Maghrib: Sun data. (line 199) * Islamic prayer time, Zuhr: Sun data. (line 50) * Islamic prayer, direction to Makkah: Geographical distance and course angle. (line 86) * ISO: Glossary. (line 346) * ISO week number: Glossary. (line 350) * ISO-3166: Calendar options. (line 145) * ISO-3166 <1>: Internationalization. (line 122) * ISO-639:1988: Internationalization. (line 46) * ISO-6709:1983 co-ordinate: Geographical distance and course angle. (line 56) * ISO-6709:1983 co-ordinate <1>: Sun data. (line 1027) * ISO-6709:1983 co-ordinate <2>: Moon data. (line 821) * ISO-8601:1988 week number: Calendar options. (line 1361) * ISO-8601:1988 week number <1>: Fixed date options. (line 765) * ISO-8601:1988 week number <2>: Fixed date options. (line 946) * ISO-8601:1988 week number <3>: Fixed date options. (line 976) * ISO-8601:1988 week number <4>: Fixed date options. (line 1089) * ISO-8601:1988 week number <5>: Fixed date options. (line 1123) * ISO-8601:1988 week number <6>: Date part of a line. (line 57) * ISO-8601:1988 week number <7>: Week number. (line 7) * Japanese calendar: Preface. (line 186) * Japanese holidays in eternal holiday list: Calendar options. (line 101) * Julian calendar: Todays Calendar. (line 6) * Julian calendar <1>: Glossary. (line 358) * Julian date: Glossary. (line 366) * Julian day number: Glossary. (line 366) * Julian day number %[FORMAT]j[ARGUMENT] special text: Julian day number. (line 6) * Julian day number %[FORMAT]j[ARGUMENT] special text <1>: Special Texts Summary. (line 274) * Julian Ephemeris date: Sun data. (line 503) * Julian Ephemeris date <1>: Moon data. (line 468) * Julian Ephemeris date <2>: Glossary. (line 355) * LANG environment variable: Internationalization. (line 34) * LANG environment variable <1>: Environment Variables. (line 80) * Language code information, extended: Internationalization. (line 122) * Language code information, simple: Internationalization. (line 46) * Language codes: Internationalization. (line 46) * LANGUAGE environment variable: Internationalization. (line 31) * LANGUAGE environment variable <1>: Environment Variables. (line 66) * LC_ALL environment variable: Internationalization. (line 32) * LC_ALL environment variable <1>: Environment Variables. (line 71) * LC_MESSAGES environment variable: Internationalization. (line 33) * LC_MESSAGES environment variable <1>: Environment Variables. (line 76) * Leap day: Fixed date options. (line 869) * Leap day <1>: Glossary. (line 374) * Leap year: Glossary. (line 377) * Leap year rule as used by Eastern Orthodox churches: Calendar options. (line 1320) * Legal holiday: Preface. (line 140) * Legal holiday <1>: Glossary. (line 387) * Length preserving behavior of numerical text variables: Text variables. (line 348) * Limit sunrise and sunset to actual day: Fixed date options. (line 173) * Limitations concerning the assignment of special texts to text variables: Special Texts. (line 20) * Limitations in a resource file: Global options. (line 219) * Limitations in a resource file <1>: Structure of resource file. (line 6) * Limitations in a resource file <2>: Text part of a line. (line 6) * Limitations in a resource file <3>: Date variables. (line 6) * Limitations in the text part of a line: Text part of a line. (line 6) * Limitations of use of 3-Month modes: Further date part attributes. (line 29) * Limitations of use of 3-Month modes <1>: Date variables. (line 49) * Limitations of use of fiscal years: Further date part attributes. (line 29) * Limitations of use of fiscal years <1>: Date variables. (line 49) * Limitations, Moon oriented special texts: Moon data. (line 947) * Limitations, Sun oriented special texts: Sun data. (line 1209) * Line break-up character, ^: Fixed date options. (line 398) * Line break-up character, ^ <1>: Fixed date options. (line 744) * Line break-up character, ^ <2>: Fixed date options. (line 838) * Line break-up character, ^ <3>: Text part of a line. (line 6) * Line break-up character, ^ <4>: Text part of a line. (line 58) * Line break-up character, ~: Fixed date options. (line 398) * Line break-up character, ~ <1>: Fixed date options. (line 744) * Line break-up character, ~ <2>: Fixed date options. (line 838) * Line break-up character, ~ <3>: Text part of a line. (line 6) * Line break-up character, ~ <4>: Text part of a line. (line 47) * Line continuation character, \: Text part of a line. (line 28) * Line structure of fixed date: Structure of resource file. (line 32) * Line, date part: Date part of a line. (line 6) * LINES environment variable: Environment Variables. (line 25) * List of all long-style option names: Common options. (line 25) * List of fiscal years: Lists of commands. (line 31) * List of fiscal years of the actual year: Lists of commands. (line 49) * List of months in specified year: Lists of commands. (line 14) * List of specified fiscal years: Lists of commands. (line 31) * List of specified months of selected year: Lists of commands. (line 20) * List of specified months of the current year: Lists of commands. (line 7) * List of specified years: Lists of commands. (line 26) * List of whitespace character: Structure of resource file. (line 6) * Lists of commands: Commands. (line 6) * Lists of commands <1>: Lists of commands. (line 6) * Lists of commands <2>: Glossary. (line 392) * Lists of days: Lists of days. (line 6) * Lists of days, examples: Lists of days. (line 36) * Lists of days, valid date parts: Lists of days. (line 28) * Local date variable: Glossary. (line 395) * Local date variables: Date variables. (line 6) * Local date variables, definition: Date variables. (line 6) * Local date variables, deletion: Date variables. (line 75) * Local sidereal time: Glossary. (line 401) * Local star time: Glossary. (line 401) * Local text variable: Glossary. (line 408) * Local text variables: Text variables. (line 6) * Local text variables, definition: Text variables. (line 6) * Local text variables, empty: Text variables. (line 55) * Local text variables, empty <1>: Text variables. (line 242) * Local time: Sun data. (line 1079) * Local time 12-hour format suffix, display: Actual clocktime. (line 110) * Local time hour, display: Actual clocktime. (line 78) * Local time in HH:MM format, display: Actual clocktime. (line 23) * Local time in M[M...] format, display: Actual clocktime. (line 62) * Local time minute, display: Actual clocktime. (line 94) * LOGNAME environment variable: Global options. (line 207) * LOGNAME environment variable <1>: Environment Variables. (line 84) * Long help text: Common options. (line 16) * Long text part in resource file line: Text part of a line. (line 42) * Long-style option: Options. (line 21) * Long-style option <1>: Glossary. (line 413) * Long-style option names, list: Common options. (line 25) * Longer than double shadow length, period: Sun data. (line 877) * Longer than single shadow length, period: Sun data. (line 840) * Lowest culmination point: Glossary. (line 416) * Lowest culmination point, Moon: Moon data. (line 38) * Lowest culmination point, Sun: Sun data. (line 38) * Lunar Arctic Circle: Moon data. (line 980) * Lunar Arctic Circle <1>: Glossary. (line 420) * Lunar day length: Moon data. (line 6) * Lunar eclipse: Calendar options. (line 48) * Lunar night length: Moon data. (line 6) * Lunation: Glossary. (line 426) * Lunation, Moon: Moon data. (line 38) * Maghrib prayer time: Glossary. (line 429) * Maghrib, Islamic prayer time: Sun data. (line 199) * Magnitude unit: Glossary. (line 433) * Magnitude units, Moon: Moon data. (line 283) * Mail, empty message body: Global options. (line 215) * Mail, methods of sending: Global options. (line 194) * Mail, sending: Global options. (line 189) * MAILPROG environment variable: Global options. (line 229) * MAILPROG environment variable <1>: Environment Variables. (line 88) * MAILTO environment variable: Global options. (line 197) * MAILTO environment variable <1>: Environment Variables. (line 94) * Management of date variables: Fixed date options. (line 8) * Management of date variables <1>: Date variables. (line 6) * Management of text variables: Fixed date options. (line 33) * Management of text variables <1>: Text variables. (line 6) * Marking character: Glossary. (line 448) * Marking characters, disabling: Global options. (line 102) * Marking characters, setting: Global options. (line 107) * Matching word boundaries in regexp: Regexp Operators. (line 278) * Mathematical horizon: Glossary. (line 268) * Mathematical-geocentric horizon: Glossary. (line 268) * Mathematical-geocentric horizon, Moon: Moon data. (line 71) * Mean Earth equator radius: Glossary. (line 452) * Mean solar day: Sun data. (line 508) * Mean solar day <1>: Glossary. (line 458) * Mean solar time: Sun data. (line 508) * Mean solar time <1>: Glossary. (line 458) * Mean Sun: Sun data. (line 508) * Mean sun: Glossary. (line 458) * Meridian: Geographical distance and course angle. (line 6) * Meridian <1>: Glossary. (line 467) * Message catalog: Internationalization. (line 11) * Metacharacter, . regexp: Regexp Operators. (line 40) * Metacharacter, \ regexp: Regexp Operators. (line 14) * Metacharacters: Glossary. (line 471) * Metacharacters, regexp: Regexp Operators. (line 6) * Metasymbols within this document, table: Metasymbols. (line 6) * Methods of sending Mail: Global options. (line 194) * Midnight height: Glossary. (line 474) * Midnight height geocentric, Moon: Moon data. (line 730) * Midnight height geocentric, Sun: Sun data. (line 761) * Midnight height topocentric, Moon: Moon data. (line 654) * Midnight height topocentric, Sun: Sun data. (line 713) * Midnight phase angle: Glossary. (line 478) * Midnight phase angle geocentric, Moon: Moon data. (line 737) * Midnight phase angle topocentric, Moon: Moon data. (line 661) * Midnight time of Moon, astronomical: Moon data. (line 38) * Midnight time of Sun, astronomical: Sun data. (line 38) * Mixed list of fiscal years: Lists of commands. (line 43) * Mixed list of months: Lists of commands. (line 38) * Mode characters, geographical distance and course angle: Geographical distance and course angle. (line 16) * Mode characters, Moon data and times: Moon data. (line 23) * Mode characters, Sun data and times: Sun data. (line 23) * Modifier: Options. (line 73) * Modifier <1>: Glossary. (line 482) * Modifiers, fixed date period: Fixed date options. (line 866) * Modifiers, fixed date text: Fixed date options. (line 620) * Month %[FORMAT]M[DATE] special text: Special Texts Summary. (line 180) * Month mode, selected: Single commands. (line 11) * Month mode, single: Single commands. (line 7) * Month name %[FORMAT]U[DATE] special text: Month name. (line 6) * Month name %[FORMAT]U[DATE] special text <1>: Special Texts Summary. (line 172) * Month number %>02&*M[DATE] special text: Month number. (line 31) * Month number %>02&*M[DATE] special text <1>: Special Texts Summary. (line 191) * Month number %>02*M[DATE] special text: Month number. (line 15) * Month number %>02*M[DATE] special text <1>: Special Texts Summary. (line 185) * Month number %>1&*M[DATE] special text: Month number. (line 23) * Month number %>1&*M[DATE] special text <1>: Special Texts Summary. (line 188) * Month number %M[DATE] special text: Month number. (line 7) * Month number %M[DATE] special text <1>: Special Texts Summary. (line 182) * Month number %[FORMAT]M[DATE] special text: Month number. (line 6) * Months from the Baha''i` calendar in eternal holiday list: Calendar options. (line 1204) * Months from the Chinese calendar in eternal holiday list: Calendar options. (line 1217) * Months from the civil Indian calendar in eternal holiday list: Calendar options. (line 1243) * Months from the civil Islamic calendar in eternal holiday list: Calendar options. (line 1248) * Months from the Coptic calendar in eternal holiday list: Calendar options. (line 1223) * Months from the Ethiopic calendar in eternal holiday list: Calendar options. (line 1228) * Months from the flexible Chinese calendar in eternal holiday list: Calendar options. (line 1210) * Months from the flexible Japanese calendar in eternal holiday list: Calendar options. (line 1255) * Months from the French Revolutionary calendar in eternal holiday list: Calendar options. (line 1233) * Months from the Hebrew calendar in eternal holiday list: Calendar options. (line 1238) * Months from the Japanese calendar in eternal holiday list: Calendar options. (line 1262) * Months from the Old-Armenic calendar in eternal holiday list: Calendar options. (line 1268) * Months from the Old-Egyptic calendar in eternal holiday list: Calendar options. (line 1273) * Months from the Persian Jalaali calendar in eternal holiday list: Calendar options. (line 1278) * Months in specified year, list: Lists of commands. (line 14) * Months of year, range: Ranges of commands. (line 15) * Months' fixed dates: Fixed date options. (line 1387) * Months, mixed list: Lists of commands. (line 38) * Moon data %[FORMAT]?ARGUMENT special texts: Moon data. (line 6) * Moon data %[FORMAT]?ARGUMENT special texts <1>: Special Texts Summary. (line 1117) * Moon data and times, default mode: Moon data. (line 806) * Moon data and times, mode characters: Moon data. (line 23) * Moon data and times, special event oriented texts: Sun data. (line 939) * Moon data and times, style of representation: Sun data. (line 890) * Moon data and times, style of representation <1>: Moon data. (line 813) * Moon data and times, type of representation: Sun data. (line 890) * Moon data and times, type of representation <1>: Moon data. (line 813) * Moon oriented special texts, limitations: Moon data. (line 947) * Moon oriented special texts, reference systems used: Moon data. (line 947) * Moon oriented special texts, table of modes: Moon data. (line 35) * Moon oriented special texts, table of representation types: Moon data. (line 841) * Moon phase %[FORMAT]?[DATE] special texts: Moon phase. (line 6) * Moon phase %[FORMAT]?[DATE] special texts <1>: Special Texts Summary. (line 203) * Moon phase text %>03*O[DATE] special text: Moon phase. (line 30) * Moon phase text %>03*O[DATE] special text <1>: Special Texts Summary. (line 208) * Moon phase text %O[DATE] special text: Moon phase. (line 15) * Moon phase text %O[DATE] special text <1>: Special Texts Summary. (line 205) * Moon phase text graphics %Z[DATE] special text: Moon phase. (line 45) * Moon phase text graphics %Z[DATE] special text <1>: Special Texts Summary. (line 211) * Moon phase, Full: Calendar options. (line 48) * Moon phase, New: Calendar options. (line 48) * Moon phase, waning Half: Calendar options. (line 48) * Moon phase, waxing Half: Calendar options. (line 48) * Moon's center, geocentric brightness %(*lARGUMENT special text: Moon data. (line 377) * Moon's center, geocentric brightness %(lARGUMENT special text: Moon data. (line 377) * Moon's center, geocentric brightness %)*lARGUMENT special text: Moon data. (line 377) * Moon's center, geocentric brightness %)lARGUMENT special text: Moon data. (line 377) * Moon's center, geocentric horizontal parallax %(*jARGUMENT special text: Moon data. (line 369) * Moon's center, geocentric horizontal parallax %(jARGUMENT special text: Moon data. (line 369) * Moon's center, geocentric horizontal parallax %)*jARGUMENT special text: Moon data. (line 369) * Moon's center, geocentric horizontal parallax %)jARGUMENT special text: Moon data. (line 369) * Moon's center, geocentric phase angle %(*mARGUMENT special text: Moon data. (line 381) * Moon's center, geocentric phase angle %(mARGUMENT special text: Moon data. (line 381) * Moon's center, geocentric phase angle %)*mARGUMENT special text: Moon data. (line 381) * Moon's center, geocentric phase angle %)mARGUMENT special text: Moon data. (line 381) * Moon's center, geocentric semidiameter %(*kARGUMENT special text: Moon data. (line 373) * Moon's center, geocentric semidiameter %(kARGUMENT special text: Moon data. (line 373) * Moon's center, geocentric semidiameter %)*kARGUMENT special text: Moon data. (line 373) * Moon's center, geocentric semidiameter %)kARGUMENT special text: Moon data. (line 373) * Moon's center, geometrical non-visibility %]*2ARGUMENT special text: Moon data. (line 106) * Moon's center, geometrical non-visibility %]*2ARGUMENT special text <1>: Special Texts Summary. (line 1165) * Moon's center, geometrical non-visibility %]2ARGUMENT special text: Moon data. (line 106) * Moon's center, geometrical non-visibility %]2ARGUMENT special text <1>: Special Texts Summary. (line 1161) * Moon's center, geometrical rise time %(*2ARGUMENT special text: Moon data. (line 71) * Moon's center, geometrical rise time %(*2ARGUMENT special text <1>: Special Texts Summary. (line 1141) * Moon's center, geometrical rise time %(2ARGUMENT special text: Moon data. (line 71) * Moon's center, geometrical rise time %(2ARGUMENT special text <1>: Special Texts Summary. (line 1137) * Moon's center, geometrical set time %)*2ARGUMENT special text: Moon data. (line 91) * Moon's center, geometrical set time %)*2ARGUMENT special text <1>: Special Texts Summary. (line 1149) * Moon's center, geometrical set time %)2ARGUMENT special text: Moon data. (line 91) * Moon's center, geometrical set time %)2ARGUMENT special text <1>: Special Texts Summary. (line 1145) * Moon's center, geometrical visibility %[*2ARGUMENT special text: Moon data. (line 101) * Moon's center, geometrical visibility %[*2ARGUMENT special text <1>: Special Texts Summary. (line 1157) * Moon's center, geometrical visibility %[2ARGUMENT special text: Moon data. (line 101) * Moon's center, geometrical visibility %[2ARGUMENT special text <1>: Special Texts Summary. (line 1153) * Moon's center, non-visibility %]*4ARGUMENT special text: Moon data. (line 190) * Moon's center, non-visibility %]*4ARGUMENT special text <1>: Special Texts Summary. (line 1229) * Moon's center, non-visibility %]4ARGUMENT special text: Moon data. (line 190) * Moon's center, non-visibility %]4ARGUMENT special text <1>: Special Texts Summary. (line 1225) * Moon's center, rise time %(*4ARGUMENT special text: Moon data. (line 148) * Moon's center, rise time %(*4ARGUMENT special text <1>: Special Texts Summary. (line 1206) * Moon's center, rise time %(4ARGUMENT special text: Moon data. (line 148) * Moon's center, rise time %(4ARGUMENT special text <1>: Special Texts Summary. (line 1203) * Moon's center, set time %)*4ARGUMENT special text: Moon data. (line 169) * Moon's center, set time %)*4ARGUMENT special text <1>: Special Texts Summary. (line 1213) * Moon's center, set time %)4ARGUMENT special text: Moon data. (line 169) * Moon's center, set time %)4ARGUMENT special text <1>: Special Texts Summary. (line 1210) * Moon's center, topocentric brightness %(*8ARGUMENT special text: Moon data. (line 283) * Moon's center, topocentric brightness %(8ARGUMENT special text: Moon data. (line 283) * Moon's center, topocentric brightness %)*8ARGUMENT special text: Moon data. (line 283) * Moon's center, topocentric brightness %)8ARGUMENT special text: Moon data. (line 283) * Moon's center, topocentric horizontal parallax %(*6ARGUMENT special text: Moon data. (line 258) * Moon's center, topocentric horizontal parallax %(6ARGUMENT special text: Moon data. (line 258) * Moon's center, topocentric horizontal parallax %)*6ARGUMENT special text: Moon data. (line 258) * Moon's center, topocentric horizontal parallax %)6ARGUMENT special text: Moon data. (line 258) * Moon's center, topocentric phase angle %(*9ARGUMENT special text: Moon data. (line 298) * Moon's center, topocentric phase angle %(9ARGUMENT special text: Moon data. (line 298) * Moon's center, topocentric phase angle %)*9ARGUMENT special text: Moon data. (line 298) * Moon's center, topocentric phase angle %)9ARGUMENT special text: Moon data. (line 298) * Moon's center, topocentric semidiameter %(*7ARGUMENT special text: Moon data. (line 279) * Moon's center, topocentric semidiameter %(7ARGUMENT special text: Moon data. (line 279) * Moon's center, topocentric semidiameter %)*7ARGUMENT special text: Moon data. (line 279) * Moon's center, topocentric semidiameter %)7ARGUMENT special text: Moon data. (line 279) * Moon's center, visibility %[*4ARGUMENT special text: Moon data. (line 185) * Moon's center, visibility %[*4ARGUMENT special text <1>: Special Texts Summary. (line 1221) * Moon's center, visibility %[4ARGUMENT special text: Moon data. (line 185) * Moon's center, visibility %[4ARGUMENT special text <1>: Special Texts Summary. (line 1217) * Moon's upper limb, geometrical non-visibility %]*3ARGUMENT special text: Moon data. (line 143) * Moon's upper limb, geometrical non-visibility %]*3ARGUMENT special text <1>: Special Texts Summary. (line 1199) * Moon's upper limb, geometrical non-visibility %]3ARGUMENT special text: Moon data. (line 143) * Moon's upper limb, geometrical non-visibility %]3ARGUMENT special text <1>: Special Texts Summary. (line 1195) * Moon's upper limb, geometrical rise time %(*3ARGUMENT special text: Moon data. (line 111) * Moon's upper limb, geometrical rise time %(*3ARGUMENT special text <1>: Special Texts Summary. (line 1173) * Moon's upper limb, geometrical rise time %(3ARGUMENT special text: Moon data. (line 111) * Moon's upper limb, geometrical rise time %(3ARGUMENT special text <1>: Special Texts Summary. (line 1169) * Moon's upper limb, geometrical set time %)*3ARGUMENT special text: Moon data. (line 127) * Moon's upper limb, geometrical set time %)*3ARGUMENT special text <1>: Special Texts Summary. (line 1182) * Moon's upper limb, geometrical set time %)3ARGUMENT special text: Moon data. (line 127) * Moon's upper limb, geometrical set time %)3ARGUMENT special text <1>: Special Texts Summary. (line 1177) * Moon's upper limb, geometrical visibility %[*3ARGUMENT special text: Moon data. (line 138) * Moon's upper limb, geometrical visibility %[*3ARGUMENT special text <1>: Special Texts Summary. (line 1191) * Moon's upper limb, geometrical visibility %[3ARGUMENT special text: Moon data. (line 138) * Moon's upper limb, geometrical visibility %[3ARGUMENT special text <1>: Special Texts Summary. (line 1187) * Moon's upper limb, non-visibility standard %]*5ARGUMENT special text: Special Texts Summary. (line 1261) * Moon's upper limb, non-visibility standard %]5ARGUMENT special text: Special Texts Summary. (line 1257) * Moon's upper limb, standard non-visibility %]*5ARGUMENT special text: Moon data. (line 250) * Moon's upper limb, standard non-visibility %]5ARGUMENT special text: Moon data. (line 250) * Moon's upper limb, standard rise time %(*5ARGUMENT special text: Moon data. (line 195) * Moon's upper limb, standard rise time %(*5ARGUMENT special text <1>: Special Texts Summary. (line 1237) * Moon's upper limb, standard rise time %(5ARGUMENT special text: Moon data. (line 195) * Moon's upper limb, standard rise time %(5ARGUMENT special text <1>: Special Texts Summary. (line 1233) * Moon's upper limb, standard set time %)*5ARGUMENT special text: Moon data. (line 223) * Moon's upper limb, standard set time %)*5ARGUMENT special text <1>: Special Texts Summary. (line 1245) * Moon's upper limb, standard set time %)5ARGUMENT special text: Moon data. (line 223) * Moon's upper limb, standard set time %)5ARGUMENT special text <1>: Special Texts Summary. (line 1241) * Moon's upper limb, standard visibility %[*5ARGUMENT special text: Moon data. (line 242) * Moon's upper limb, standard visibility %[5ARGUMENT special text: Moon data. (line 242) * Moon's upper limb, visibility standard %[*5ARGUMENT special text: Special Texts Summary. (line 1253) * Moon's upper limb, visibility standard %[5ARGUMENT special text: Special Texts Summary. (line 1249) * Moon, astronomical midnight time %(*0ARGUMENT special text: Moon data. (line 38) * Moon, astronomical midnight time %(*0ARGUMENT special text <1>: Special Texts Summary. (line 1124) * Moon, astronomical midnight time %(0ARGUMENT special text: Moon data. (line 38) * Moon, astronomical midnight time %(0ARGUMENT special text <1>: Special Texts Summary. (line 1120) * Moon, astronomical midnight time %)*0ARGUMENT special text: Moon data. (line 38) * Moon, astronomical midnight time %)*0ARGUMENT special text <1>: Special Texts Summary. (line 1124) * Moon, astronomical midnight time %)0ARGUMENT special text: Moon data. (line 38) * Moon, astronomical midnight time %)0ARGUMENT special text <1>: Special Texts Summary. (line 1120) * Moon, astronomical noon time %(*1ARGUMENT special text: Moon data. (line 58) * Moon, astronomical noon time %(*1ARGUMENT special text <1>: Special Texts Summary. (line 1133) * Moon, astronomical noon time %(1ARGUMENT special text: Moon data. (line 58) * Moon, astronomical noon time %(1ARGUMENT special text <1>: Special Texts Summary. (line 1129) * Moon, astronomical noon time %)*1ARGUMENT special text: Moon data. (line 58) * Moon, astronomical noon time %)*1ARGUMENT special text <1>: Special Texts Summary. (line 1133) * Moon, astronomical noon time %)1ARGUMENT special text: Moon data. (line 58) * Moon, astronomical noon time %)1ARGUMENT special text <1>: Special Texts Summary. (line 1129) * Moon, azimuth: Moon data. (line 38) * Moon, base time %(*xARGUMENT special text: Moon data. (line 453) * Moon, base time %(*xARGUMENT special text <1>: Special Texts Summary. (line 1529) * Moon, base time %(xARGUMENT special text: Moon data. (line 453) * Moon, base time %(xARGUMENT special text <1>: Special Texts Summary. (line 1524) * Moon, base time %)*xARGUMENT special text: Moon data. (line 453) * Moon, base time %)*xARGUMENT special text <1>: Special Texts Summary. (line 1529) * Moon, base time %)xARGUMENT special text: Moon data. (line 453) * Moon, base time %)xARGUMENT special text <1>: Special Texts Summary. (line 1524) * Moon, conjunction: Moon data. (line 38) * Moon, delta-t %(*vARGUMENT special text: Moon data. (line 431) * Moon, delta-t %(*vARGUMENT special text <1>: Special Texts Summary. (line 1511) * Moon, delta-t %(vARGUMENT special text: Moon data. (line 431) * Moon, delta-t %(vARGUMENT special text <1>: Special Texts Summary. (line 1511) * Moon, delta-t %)*vARGUMENT special text: Moon data. (line 431) * Moon, delta-t %)*vARGUMENT special text <1>: Special Texts Summary. (line 1511) * Moon, delta-t %)vARGUMENT special text: Moon data. (line 431) * Moon, delta-t %)vARGUMENT special text <1>: Special Texts Summary. (line 1511) * Moon, geocentric azimuth %(*oARGUMENT special text: Moon data. (line 393) * Moon, geocentric azimuth %(*oARGUMENT special text <1>: Special Texts Summary. (line 1445) * Moon, geocentric azimuth %(oARGUMENT special text: Moon data. (line 393) * Moon, geocentric azimuth %(oARGUMENT special text <1>: Special Texts Summary. (line 1440) * Moon, geocentric azimuth %)*oARGUMENT special text: Moon data. (line 393) * Moon, geocentric azimuth %)*oARGUMENT special text <1>: Special Texts Summary. (line 1445) * Moon, geocentric azimuth %)oARGUMENT special text: Moon data. (line 393) * Moon, geocentric azimuth %)oARGUMENT special text <1>: Special Texts Summary. (line 1440) * Moon, geocentric azimuth at standard rise time %(*XARGUMENT special text: Moon data. (line 772) * Moon, geocentric azimuth at standard rise time %(*XARGUMENT special text <1>: Special Texts Summary. (line 1836) * Moon, geocentric azimuth at standard rise time %(XARGUMENT special text: Moon data. (line 772) * Moon, geocentric azimuth at standard rise time %(XARGUMENT special text <1>: Special Texts Summary. (line 1832) * Moon, geocentric azimuth at standard set time %)*XARGUMENT special text: Moon data. (line 782) * Moon, geocentric azimuth at standard set time %)*XARGUMENT special text <1>: Special Texts Summary. (line 1844) * Moon, geocentric azimuth at standard set time %)XARGUMENT special text: Moon data. (line 782) * Moon, geocentric azimuth at standard set time %)XARGUMENT special text <1>: Special Texts Summary. (line 1840) * Moon, geocentric brightness %(*lARGUMENT special text: Special Texts Summary. (line 1414) * Moon, geocentric brightness %(lARGUMENT special text: Special Texts Summary. (line 1414) * Moon, geocentric brightness %)*lARGUMENT special text: Special Texts Summary. (line 1414) * Moon, geocentric brightness %)lARGUMENT special text: Special Texts Summary. (line 1414) * Moon, geocentric data: Moon data. (line 258) * Moon, geocentric declination %(*pARGUMENT special text: Moon data. (line 397) * Moon, geocentric declination %(*pARGUMENT special text <1>: Special Texts Summary. (line 1455) * Moon, geocentric declination %(pARGUMENT special text: Moon data. (line 397) * Moon, geocentric declination %(pARGUMENT special text <1>: Special Texts Summary. (line 1450) * Moon, geocentric declination %)*pARGUMENT special text: Moon data. (line 397) * Moon, geocentric declination %)*pARGUMENT special text <1>: Special Texts Summary. (line 1455) * Moon, geocentric declination %)pARGUMENT special text: Moon data. (line 397) * Moon, geocentric declination %)pARGUMENT special text <1>: Special Texts Summary. (line 1450) * Moon, geocentric distance %(*tARGUMENT special text: Moon data. (line 423) * Moon, geocentric distance %(*tARGUMENT special text <1>: Special Texts Summary. (line 1495) * Moon, geocentric distance %(tARGUMENT special text: Moon data. (line 423) * Moon, geocentric distance %(tARGUMENT special text <1>: Special Texts Summary. (line 1490) * Moon, geocentric distance %)*tARGUMENT special text: Moon data. (line 423) * Moon, geocentric distance %)*tARGUMENT special text <1>: Special Texts Summary. (line 1495) * Moon, geocentric distance %)tARGUMENT special text: Moon data. (line 423) * Moon, geocentric distance %)tARGUMENT special text <1>: Special Texts Summary. (line 1490) * Moon, geocentric ecliptic latitude %(*rARGUMENT special text: Moon data. (line 410) * Moon, geocentric ecliptic latitude %(*rARGUMENT special text <1>: Special Texts Summary. (line 1475) * Moon, geocentric ecliptic latitude %(rARGUMENT special text: Moon data. (line 410) * Moon, geocentric ecliptic latitude %(rARGUMENT special text <1>: Special Texts Summary. (line 1470) * Moon, geocentric ecliptic latitude %)*rARGUMENT special text: Moon data. (line 410) * Moon, geocentric ecliptic latitude %)*rARGUMENT special text <1>: Special Texts Summary. (line 1475) * Moon, geocentric ecliptic latitude %)rARGUMENT special text: Moon data. (line 410) * Moon, geocentric ecliptic latitude %)rARGUMENT special text <1>: Special Texts Summary. (line 1470) * Moon, geocentric ecliptic longitude %(*qARGUMENT special text: Moon data. (line 406) * Moon, geocentric ecliptic longitude %(*qARGUMENT special text <1>: Special Texts Summary. (line 1465) * Moon, geocentric ecliptic longitude %(qARGUMENT special text: Moon data. (line 406) * Moon, geocentric ecliptic longitude %(qARGUMENT special text <1>: Special Texts Summary. (line 1460) * Moon, geocentric ecliptic longitude %)*qARGUMENT special text: Moon data. (line 406) * Moon, geocentric ecliptic longitude %)*qARGUMENT special text <1>: Special Texts Summary. (line 1465) * Moon, geocentric ecliptic longitude %)qARGUMENT special text: Moon data. (line 406) * Moon, geocentric ecliptic longitude %)qARGUMENT special text <1>: Special Texts Summary. (line 1460) * Moon, geocentric elevation %(*nARGUMENT special text: Moon data. (line 385) * Moon, geocentric elevation %(*nARGUMENT special text <1>: Special Texts Summary. (line 1435) * Moon, geocentric elevation %(nARGUMENT special text: Moon data. (line 385) * Moon, geocentric elevation %(nARGUMENT special text <1>: Special Texts Summary. (line 1430) * Moon, geocentric elevation %)*nARGUMENT special text: Moon data. (line 385) * Moon, geocentric elevation %)*nARGUMENT special text <1>: Special Texts Summary. (line 1435) * Moon, geocentric elevation %)nARGUMENT special text: Moon data. (line 385) * Moon, geocentric elevation %)nARGUMENT special text <1>: Special Texts Summary. (line 1430) * Moon, geocentric elevation at Moon's astronomical midnight time %(*SARGUMENT special text: Moon data. (line 730) * Moon, geocentric elevation at Moon's astronomical midnight time %(*SARGUMENT special text <1>: Special Texts Summary. (line 1782) * Moon, geocentric elevation at Moon's astronomical midnight time %(SARGUMENT special text: Moon data. (line 730) * Moon, geocentric elevation at Moon's astronomical midnight time %(SARGUMENT special text <1>: Special Texts Summary. (line 1777) * Moon, geocentric elevation at Moon's astronomical midnight time %)*SARGUMENT special text: Moon data. (line 730) * Moon, geocentric elevation at Moon's astronomical midnight time %)*SARGUMENT special text <1>: Special Texts Summary. (line 1782) * Moon, geocentric elevation at Moon's astronomical midnight time %)SARGUMENT special text: Moon data. (line 730) * Moon, geocentric elevation at Moon's astronomical midnight time %)SARGUMENT special text <1>: Special Texts Summary. (line 1777) * Moon, geocentric elevation at Moon's astronomical noon time %(*UARGUMENT special text: Moon data. (line 744) * Moon, geocentric elevation at Moon's astronomical noon time %(*UARGUMENT special text <1>: Special Texts Summary. (line 1802) * Moon, geocentric elevation at Moon's astronomical noon time %(UARGUMENT special text: Moon data. (line 744) * Moon, geocentric elevation at Moon's astronomical noon time %(UARGUMENT special text <1>: Special Texts Summary. (line 1797) * Moon, geocentric elevation at Moon's astronomical noon time %)*UARGUMENT special text: Moon data. (line 744) * Moon, geocentric elevation at Moon's astronomical noon time %)*UARGUMENT special text <1>: Special Texts Summary. (line 1802) * Moon, geocentric elevation at Moon's astronomical noon time %)UARGUMENT special text: Moon data. (line 744) * Moon, geocentric elevation at Moon's astronomical noon time %)UARGUMENT special text <1>: Special Texts Summary. (line 1797) * Moon, geocentric elevation at standard rise time %(*WARGUMENT special text: Moon data. (line 758) * Moon, geocentric elevation at standard rise time %(*WARGUMENT special text <1>: Special Texts Summary. (line 1820) * Moon, geocentric elevation at standard rise time %(WARGUMENT special text: Moon data. (line 758) * Moon, geocentric elevation at standard rise time %(WARGUMENT special text <1>: Special Texts Summary. (line 1816) * Moon, geocentric elevation at standard set time %)*WARGUMENT special text: Moon data. (line 765) * Moon, geocentric elevation at standard set time %)*WARGUMENT special text <1>: Special Texts Summary. (line 1828) * Moon, geocentric elevation at standard set time %)WARGUMENT special text: Moon data. (line 765) * Moon, geocentric elevation at standard set time %)WARGUMENT special text <1>: Special Texts Summary. (line 1824) * Moon, geocentric elongation %(*uARGUMENT special text: Moon data. (line 427) * Moon, geocentric elongation %(*uARGUMENT special text <1>: Special Texts Summary. (line 1504) * Moon, geocentric elongation %(uARGUMENT special text: Moon data. (line 427) * Moon, geocentric elongation %(uARGUMENT special text <1>: Special Texts Summary. (line 1499) * Moon, geocentric elongation %)*uARGUMENT special text: Moon data. (line 427) * Moon, geocentric elongation %)*uARGUMENT special text <1>: Special Texts Summary. (line 1504) * Moon, geocentric elongation %)uARGUMENT special text: Moon data. (line 427) * Moon, geocentric elongation %)uARGUMENT special text <1>: Special Texts Summary. (line 1499) * Moon, geocentric horizontal parallax %(*jARGUMENT special text: Special Texts Summary. (line 1397) * Moon, geocentric horizontal parallax %(jARGUMENT special text: Special Texts Summary. (line 1392) * Moon, geocentric horizontal parallax %)*jARGUMENT special text: Special Texts Summary. (line 1397) * Moon, geocentric horizontal parallax %)jARGUMENT special text: Special Texts Summary. (line 1392) * Moon, geocentric phase angle %(*mARGUMENT special text: Special Texts Summary. (line 1425) * Moon, geocentric phase angle %(mARGUMENT special text: Special Texts Summary. (line 1420) * Moon, geocentric phase angle %)*mARGUMENT special text: Special Texts Summary. (line 1425) * Moon, geocentric phase angle %)mARGUMENT special text: Special Texts Summary. (line 1420) * Moon, geocentric phase angle at Moon's astronomical midnight time %(*TARGUMENT special text: Moon data. (line 737) * Moon, geocentric phase angle at Moon's astronomical midnight time %(*TARGUMENT special text <1>: Special Texts Summary. (line 1792) * Moon, geocentric phase angle at Moon's astronomical midnight time %(TARGUMENT special text: Moon data. (line 737) * Moon, geocentric phase angle at Moon's astronomical midnight time %(TARGUMENT special text <1>: Special Texts Summary. (line 1787) * Moon, geocentric phase angle at Moon's astronomical midnight time %)*TARGUMENT special text: Moon data. (line 737) * Moon, geocentric phase angle at Moon's astronomical midnight time %)*TARGUMENT special text <1>: Special Texts Summary. (line 1792) * Moon, geocentric phase angle at Moon's astronomical midnight time %)TARGUMENT special text: Moon data. (line 737) * Moon, geocentric phase angle at Moon's astronomical midnight time %)TARGUMENT special text <1>: Special Texts Summary. (line 1787) * Moon, geocentric phase angle at Moon's astronomical noon time %(*VARGUMENT special text: Moon data. (line 751) * Moon, geocentric phase angle at Moon's astronomical noon time %(*VARGUMENT special text <1>: Special Texts Summary. (line 1812) * Moon, geocentric phase angle at Moon's astronomical noon time %(VARGUMENT special text: Moon data. (line 751) * Moon, geocentric phase angle at Moon's astronomical noon time %(VARGUMENT special text <1>: Special Texts Summary. (line 1807) * Moon, geocentric phase angle at Moon's astronomical noon time %)*VARGUMENT special text: Moon data. (line 751) * Moon, geocentric phase angle at Moon's astronomical noon time %)*VARGUMENT special text <1>: Special Texts Summary. (line 1812) * Moon, geocentric phase angle at Moon's astronomical noon time %)VARGUMENT special text: Moon data. (line 751) * Moon, geocentric phase angle at Moon's astronomical noon time %)VARGUMENT special text <1>: Special Texts Summary. (line 1807) * Moon, geocentric phase angle at standard rise time %(*YARGUMENT special text: Moon data. (line 792) * Moon, geocentric phase angle at standard rise time %(*YARGUMENT special text <1>: Special Texts Summary. (line 1853) * Moon, geocentric phase angle at standard rise time %(YARGUMENT special text: Moon data. (line 792) * Moon, geocentric phase angle at standard rise time %(YARGUMENT special text <1>: Special Texts Summary. (line 1848) * Moon, geocentric phase angle at standard set time %)*YARGUMENT special text: Moon data. (line 799) * Moon, geocentric phase angle at standard set time %)*YARGUMENT special text <1>: Special Texts Summary. (line 1862) * Moon, geocentric phase angle at standard set time %)YARGUMENT special text: Moon data. (line 799) * Moon, geocentric phase angle at standard set time %)YARGUMENT special text <1>: Special Texts Summary. (line 1857) * Moon, geocentric right ascension %(*sARGUMENT special text: Moon data. (line 419) * Moon, geocentric right ascension %(*sARGUMENT special text <1>: Special Texts Summary. (line 1485) * Moon, geocentric right ascension %(sARGUMENT special text: Moon data. (line 419) * Moon, geocentric right ascension %(sARGUMENT special text <1>: Special Texts Summary. (line 1480) * Moon, geocentric right ascension %)*sARGUMENT special text: Moon data. (line 419) * Moon, geocentric right ascension %)*sARGUMENT special text <1>: Special Texts Summary. (line 1485) * Moon, geocentric right ascension %)sARGUMENT special text: Moon data. (line 419) * Moon, geocentric right ascension %)sARGUMENT special text <1>: Special Texts Summary. (line 1480) * Moon, geocentric semidiameter %(*kARGUMENT special text: Special Texts Summary. (line 1407) * Moon, geocentric semidiameter %(kARGUMENT special text: Special Texts Summary. (line 1402) * Moon, geocentric semidiameter %)*kARGUMENT special text: Special Texts Summary. (line 1407) * Moon, geocentric semidiameter %)kARGUMENT special text: Special Texts Summary. (line 1402) * Moon, geometric horizon: Moon data. (line 71) * Moon, highest culmination point: Moon data. (line 58) * Moon, Julian date %(*yARGUMENT special text: Moon data. (line 463) * Moon, Julian date %(*yARGUMENT special text <1>: Special Texts Summary. (line 1535) * Moon, Julian date %(yARGUMENT special text: Moon data. (line 463) * Moon, Julian date %(yARGUMENT special text <1>: Special Texts Summary. (line 1535) * Moon, Julian date %)*yARGUMENT special text: Moon data. (line 463) * Moon, Julian date %)*yARGUMENT special text <1>: Special Texts Summary. (line 1535) * Moon, Julian date %)yARGUMENT special text: Moon data. (line 463) * Moon, Julian date %)yARGUMENT special text <1>: Special Texts Summary. (line 1535) * Moon, Julian Ephemeris date %(*zARGUMENT special text: Moon data. (line 468) * Moon, Julian Ephemeris date %(*zARGUMENT special text <1>: Special Texts Summary. (line 1541) * Moon, Julian Ephemeris date %(zARGUMENT special text: Moon data. (line 468) * Moon, Julian Ephemeris date %(zARGUMENT special text <1>: Special Texts Summary. (line 1541) * Moon, Julian Ephemeris date %)*zARGUMENT special text: Moon data. (line 468) * Moon, Julian Ephemeris date %)*zARGUMENT special text <1>: Special Texts Summary. (line 1541) * Moon, Julian Ephemeris date %)zARGUMENT special text: Moon data. (line 468) * Moon, Julian Ephemeris date %)zARGUMENT special text <1>: Special Texts Summary. (line 1541) * Moon, local sidereal time %(*wARGUMENT special text: Moon data. (line 438) * Moon, local sidereal time %(*wARGUMENT special text <1>: Special Texts Summary. (line 1519) * Moon, local sidereal time %(wARGUMENT special text: Moon data. (line 438) * Moon, local sidereal time %(wARGUMENT special text <1>: Special Texts Summary. (line 1515) * Moon, local sidereal time %)*wARGUMENT special text: Moon data. (line 438) * Moon, local sidereal time %)*wARGUMENT special text <1>: Special Texts Summary. (line 1519) * Moon, local sidereal time %)wARGUMENT special text: Moon data. (line 438) * Moon, local sidereal time %)wARGUMENT special text <1>: Special Texts Summary. (line 1515) * Moon, lowest culmination point: Moon data. (line 38) * Moon, lunation: Moon data. (line 38) * Moon, magnitude units: Moon data. (line 283) * Moon, mathematical-geocentric horizon: Moon data. (line 71) * Moon, midnight height geocentric: Moon data. (line 730) * Moon, midnight height topocentric: Moon data. (line 654) * Moon, midnight phase angle geocentric: Moon data. (line 737) * Moon, midnight phase angle topocentric: Moon data. (line 661) * Moon, noon height geocentric: Moon data. (line 744) * Moon, noon height topocentric: Moon data. (line 668) * Moon, noon phase angle geocentric: Moon data. (line 751) * Moon, noon phase angle topocentric: Moon data. (line 675) * Moon, refraction %(*iARGUMENT special text: Moon data. (line 365) * Moon, refraction %(*iARGUMENT special text <1>: Special Texts Summary. (line 1388) * Moon, refraction %(iARGUMENT special text: Moon data. (line 365) * Moon, refraction %(iARGUMENT special text <1>: Special Texts Summary. (line 1383) * Moon, refraction %)*iARGUMENT special text: Moon data. (line 365) * Moon, refraction %)*iARGUMENT special text <1>: Special Texts Summary. (line 1388) * Moon, refraction %)iARGUMENT special text: Moon data. (line 365) * Moon, refraction %)iARGUMENT special text <1>: Special Texts Summary. (line 1383) * Moon, rise azimuth geocentric: Moon data. (line 772) * Moon, rise azimuth topocentric: Moon data. (line 696) * Moon, rise height geocentric: Moon data. (line 758) * Moon, rise height topocentric: Moon data. (line 682) * Moon, rise phase angle geocentric: Moon data. (line 792) * Moon, rise phase angle topocentric: Moon data. (line 716) * Moon, rise width geocentric: Moon data. (line 772) * Moon, rise width topocentric: Moon data. (line 696) * Moon, set azimuth geocentric: Moon data. (line 782) * Moon, set azimuth topocentric: Moon data. (line 706) * Moon, set height geocentric: Moon data. (line 765) * Moon, set height topocentric: Moon data. (line 689) * Moon, set phase angle geocentric: Moon data. (line 799) * Moon, set phase angle topocentric: Moon data. (line 723) * Moon, set width geocentric: Moon data. (line 782) * Moon, set width topocentric: Moon data. (line 706) * Moon, standard non-visibility period: Moon data. (line 250) * Moon, standard rise time: Moon data. (line 195) * Moon, standard set time: Moon data. (line 223) * Moon, standard visibility period: Moon data. (line 242) * Moon, synodic month: Moon data. (line 38) * Moon, topocentric azimuth %(*bARGUMENT special text: Moon data. (line 312) * Moon, topocentric azimuth %(*bARGUMENT special text <1>: Special Texts Summary. (line 1318) * Moon, topocentric azimuth %(bARGUMENT special text: Moon data. (line 312) * Moon, topocentric azimuth %(bARGUMENT special text <1>: Special Texts Summary. (line 1313) * Moon, topocentric azimuth %)*bARGUMENT special text: Moon data. (line 312) * Moon, topocentric azimuth %)*bARGUMENT special text <1>: Special Texts Summary. (line 1318) * Moon, topocentric azimuth %)bARGUMENT special text: Moon data. (line 312) * Moon, topocentric azimuth %)bARGUMENT special text <1>: Special Texts Summary. (line 1313) * Moon, topocentric azimuth at standard rise time %(*QARGUMENT special text: Moon data. (line 696) * Moon, topocentric azimuth at standard rise time %(*QARGUMENT special text <1>: Special Texts Summary. (line 1746) * Moon, topocentric azimuth at standard rise time %(QARGUMENT special text: Moon data. (line 696) * Moon, topocentric azimuth at standard rise time %(QARGUMENT special text <1>: Special Texts Summary. (line 1742) * Moon, topocentric azimuth at standard set time %)*QARGUMENT special text: Moon data. (line 706) * Moon, topocentric azimuth at standard set time %)*QARGUMENT special text <1>: Special Texts Summary. (line 1754) * Moon, topocentric azimuth at standard set time %)QARGUMENT special text: Moon data. (line 706) * Moon, topocentric azimuth at standard set time %)QARGUMENT special text <1>: Special Texts Summary. (line 1750) * Moon, topocentric brightness %(*8ARGUMENT special text: Special Texts Summary. (line 1288) * Moon, topocentric brightness %(8ARGUMENT special text: Special Texts Summary. (line 1288) * Moon, topocentric brightness %)*8ARGUMENT special text: Special Texts Summary. (line 1288) * Moon, topocentric brightness %)8ARGUMENT special text: Special Texts Summary. (line 1288) * Moon, topocentric data: Moon data. (line 258) * Moon, topocentric declination %(*cARGUMENT special text: Moon data. (line 316) * Moon, topocentric declination %(*cARGUMENT special text <1>: Special Texts Summary. (line 1328) * Moon, topocentric declination %(cARGUMENT special text: Moon data. (line 316) * Moon, topocentric declination %(cARGUMENT special text <1>: Special Texts Summary. (line 1323) * Moon, topocentric declination %)*cARGUMENT special text: Moon data. (line 316) * Moon, topocentric declination %)*cARGUMENT special text <1>: Special Texts Summary. (line 1328) * Moon, topocentric declination %)cARGUMENT special text: Moon data. (line 316) * Moon, topocentric declination %)cARGUMENT special text <1>: Special Texts Summary. (line 1323) * Moon, topocentric distance %(*gARGUMENT special text: Moon data. (line 353) * Moon, topocentric distance %(*gARGUMENT special text <1>: Special Texts Summary. (line 1368) * Moon, topocentric distance %(gARGUMENT special text: Moon data. (line 353) * Moon, topocentric distance %(gARGUMENT special text <1>: Special Texts Summary. (line 1363) * Moon, topocentric distance %)*gARGUMENT special text: Moon data. (line 353) * Moon, topocentric distance %)*gARGUMENT special text <1>: Special Texts Summary. (line 1368) * Moon, topocentric distance %)gARGUMENT special text: Moon data. (line 353) * Moon, topocentric distance %)gARGUMENT special text <1>: Special Texts Summary. (line 1363) * Moon, topocentric ecliptic latitude %(*eARGUMENT special text: Moon data. (line 335) * Moon, topocentric ecliptic latitude %(*eARGUMENT special text <1>: Special Texts Summary. (line 1348) * Moon, topocentric ecliptic latitude %(eARGUMENT special text: Moon data. (line 335) * Moon, topocentric ecliptic latitude %(eARGUMENT special text <1>: Special Texts Summary. (line 1343) * Moon, topocentric ecliptic latitude %)*eARGUMENT special text: Moon data. (line 335) * Moon, topocentric ecliptic latitude %)*eARGUMENT special text <1>: Special Texts Summary. (line 1348) * Moon, topocentric ecliptic latitude %)eARGUMENT special text: Moon data. (line 335) * Moon, topocentric ecliptic latitude %)eARGUMENT special text <1>: Special Texts Summary. (line 1343) * Moon, topocentric ecliptic longitude %(*dARGUMENT special text: Moon data. (line 327) * Moon, topocentric ecliptic longitude %(*dARGUMENT special text <1>: Special Texts Summary. (line 1338) * Moon, topocentric ecliptic longitude %(dARGUMENT special text: Moon data. (line 327) * Moon, topocentric ecliptic longitude %(dARGUMENT special text <1>: Special Texts Summary. (line 1333) * Moon, topocentric ecliptic longitude %)*dARGUMENT special text: Moon data. (line 327) * Moon, topocentric ecliptic longitude %)*dARGUMENT special text <1>: Special Texts Summary. (line 1338) * Moon, topocentric ecliptic longitude %)dARGUMENT special text: Moon data. (line 327) * Moon, topocentric ecliptic longitude %)dARGUMENT special text <1>: Special Texts Summary. (line 1333) * Moon, topocentric elevation %(*aARGUMENT special text: Moon data. (line 302) * Moon, topocentric elevation %(*aARGUMENT special text <1>: Special Texts Summary. (line 1308) * Moon, topocentric elevation %(aARGUMENT special text: Moon data. (line 302) * Moon, topocentric elevation %(aARGUMENT special text <1>: Special Texts Summary. (line 1303) * Moon, topocentric elevation %)*aARGUMENT special text: Moon data. (line 302) * Moon, topocentric elevation %)*aARGUMENT special text <1>: Special Texts Summary. (line 1308) * Moon, topocentric elevation %)aARGUMENT special text: Moon data. (line 302) * Moon, topocentric elevation %)aARGUMENT special text <1>: Special Texts Summary. (line 1303) * Moon, topocentric elevation at Moon's astronomical midnight time %(*LARGUMENT special text: Moon data. (line 654) * Moon, topocentric elevation at Moon's astronomical midnight time %(*LARGUMENT special text <1>: Special Texts Summary. (line 1690) * Moon, topocentric elevation at Moon's astronomical midnight time %(LARGUMENT special text: Moon data. (line 654) * Moon, topocentric elevation at Moon's astronomical midnight time %(LARGUMENT special text <1>: Special Texts Summary. (line 1685) * Moon, topocentric elevation at Moon's astronomical midnight time %)*LARGUMENT special text: Moon data. (line 654) * Moon, topocentric elevation at Moon's astronomical midnight time %)*LARGUMENT special text <1>: Special Texts Summary. (line 1690) * Moon, topocentric elevation at Moon's astronomical midnight time %)LARGUMENT special text: Moon data. (line 654) * Moon, topocentric elevation at Moon's astronomical midnight time %)LARGUMENT special text <1>: Special Texts Summary. (line 1685) * Moon, topocentric elevation at Moon's astronomical noon time %(*NARGUMENT special text: Moon data. (line 668) * Moon, topocentric elevation at Moon's astronomical noon time %(*NARGUMENT special text <1>: Special Texts Summary. (line 1712) * Moon, topocentric elevation at Moon's astronomical noon time %(NARGUMENT special text: Moon data. (line 668) * Moon, topocentric elevation at Moon's astronomical noon time %(NARGUMENT special text <1>: Special Texts Summary. (line 1707) * Moon, topocentric elevation at Moon's astronomical noon time %)*NARGUMENT special text: Moon data. (line 668) * Moon, topocentric elevation at Moon's astronomical noon time %)*NARGUMENT special text <1>: Special Texts Summary. (line 1712) * Moon, topocentric elevation at Moon's astronomical noon time %)NARGUMENT special text: Moon data. (line 668) * Moon, topocentric elevation at Moon's astronomical noon time %)NARGUMENT special text <1>: Special Texts Summary. (line 1707) * Moon, topocentric elevation at standard rise time %(*PARGUMENT special text: Moon data. (line 682) * Moon, topocentric elevation at standard rise time %(*PARGUMENT special text <1>: Special Texts Summary. (line 1730) * Moon, topocentric elevation at standard rise time %(PARGUMENT special text: Moon data. (line 682) * Moon, topocentric elevation at standard rise time %(PARGUMENT special text <1>: Special Texts Summary. (line 1726) * Moon, topocentric elevation at standard set time %)*PARGUMENT special text: Moon data. (line 689) * Moon, topocentric elevation at standard set time %)*PARGUMENT special text <1>: Special Texts Summary. (line 1738) * Moon, topocentric elevation at standard set time %)PARGUMENT special text: Moon data. (line 689) * Moon, topocentric elevation at standard set time %)PARGUMENT special text <1>: Special Texts Summary. (line 1734) * Moon, topocentric elongation %(*hARGUMENT special text: Moon data. (line 359) * Moon, topocentric elongation %(*hARGUMENT special text <1>: Special Texts Summary. (line 1377) * Moon, topocentric elongation %(hARGUMENT special text: Moon data. (line 359) * Moon, topocentric elongation %(hARGUMENT special text <1>: Special Texts Summary. (line 1372) * Moon, topocentric elongation %)*hARGUMENT special text: Moon data. (line 359) * Moon, topocentric elongation %)*hARGUMENT special text <1>: Special Texts Summary. (line 1377) * Moon, topocentric elongation %)hARGUMENT special text: Moon data. (line 359) * Moon, topocentric elongation %)hARGUMENT special text <1>: Special Texts Summary. (line 1372) * Moon, topocentric horizontal parallax %(*6ARGUMENT special text: Special Texts Summary. (line 1271) * Moon, topocentric horizontal parallax %(6ARGUMENT special text: Special Texts Summary. (line 1266) * Moon, topocentric horizontal parallax %)*6ARGUMENT special text: Special Texts Summary. (line 1271) * Moon, topocentric horizontal parallax %)6ARGUMENT special text: Special Texts Summary. (line 1266) * Moon, topocentric phase angle %(*9ARGUMENT special text: Special Texts Summary. (line 1298) * Moon, topocentric phase angle %(9ARGUMENT special text: Special Texts Summary. (line 1293) * Moon, topocentric phase angle %)*9ARGUMENT special text: Special Texts Summary. (line 1298) * Moon, topocentric phase angle %)9ARGUMENT special text: Special Texts Summary. (line 1293) * Moon, topocentric phase angle at Moon's astronomical midnight time %(*MARGUMENT special text: Moon data. (line 661) * Moon, topocentric phase angle at Moon's astronomical midnight time %(*MARGUMENT special text <1>: Special Texts Summary. (line 1700) * Moon, topocentric phase angle at Moon's astronomical midnight time %(MARGUMENT special text: Moon data. (line 661) * Moon, topocentric phase angle at Moon's astronomical midnight time %(MARGUMENT special text <1>: Special Texts Summary. (line 1695) * Moon, topocentric phase angle at Moon's astronomical midnight time %)*MARGUMENT special text: Moon data. (line 661) * Moon, topocentric phase angle at Moon's astronomical midnight time %)*MARGUMENT special text <1>: Special Texts Summary. (line 1700) * Moon, topocentric phase angle at Moon's astronomical midnight time %)MARGUMENT special text: Moon data. (line 661) * Moon, topocentric phase angle at Moon's astronomical midnight time %)MARGUMENT special text <1>: Special Texts Summary. (line 1695) * Moon, topocentric phase angle at Moon's astronomical noon time %(*OARGUMENT special text: Moon data. (line 675) * Moon, topocentric phase angle at Moon's astronomical noon time %(*OARGUMENT special text <1>: Special Texts Summary. (line 1722) * Moon, topocentric phase angle at Moon's astronomical noon time %(OARGUMENT special text: Moon data. (line 675) * Moon, topocentric phase angle at Moon's astronomical noon time %(OARGUMENT special text <1>: Special Texts Summary. (line 1717) * Moon, topocentric phase angle at Moon's astronomical noon time %)*OARGUMENT special text: Moon data. (line 675) * Moon, topocentric phase angle at Moon's astronomical noon time %)*OARGUMENT special text <1>: Special Texts Summary. (line 1722) * Moon, topocentric phase angle at Moon's astronomical noon time %)OARGUMENT special text: Moon data. (line 675) * Moon, topocentric phase angle at Moon's astronomical noon time %)OARGUMENT special text <1>: Special Texts Summary. (line 1717) * Moon, topocentric phase angle at standard rise time %(*RARGUMENT special text: Moon data. (line 716) * Moon, topocentric phase angle at standard rise time %(*RARGUMENT special text <1>: Special Texts Summary. (line 1763) * Moon, topocentric phase angle at standard rise time %(RARGUMENT special text: Moon data. (line 716) * Moon, topocentric phase angle at standard rise time %(RARGUMENT special text <1>: Special Texts Summary. (line 1758) * Moon, topocentric phase angle at standard set time %)*RARGUMENT special text: Moon data. (line 723) * Moon, topocentric phase angle at standard set time %)*RARGUMENT special text <1>: Special Texts Summary. (line 1772) * Moon, topocentric phase angle at standard set time %)RARGUMENT special text: Moon data. (line 723) * Moon, topocentric phase angle at standard set time %)RARGUMENT special text <1>: Special Texts Summary. (line 1767) * Moon, topocentric right ascension %(*fARGUMENT special text: Moon data. (line 346) * Moon, topocentric right ascension %(*fARGUMENT special text <1>: Special Texts Summary. (line 1358) * Moon, topocentric right ascension %(fARGUMENT special text: Moon data. (line 346) * Moon, topocentric right ascension %(fARGUMENT special text <1>: Special Texts Summary. (line 1353) * Moon, topocentric right ascension %)*fARGUMENT special text: Moon data. (line 346) * Moon, topocentric right ascension %)*fARGUMENT special text <1>: Special Texts Summary. (line 1358) * Moon, topocentric right ascension %)fARGUMENT special text: Moon data. (line 346) * Moon, topocentric right ascension %)fARGUMENT special text <1>: Special Texts Summary. (line 1353) * Moon, topocentric semidiameter %(*7ARGUMENT special text: Special Texts Summary. (line 1281) * Moon, topocentric semidiameter %(7ARGUMENT special text: Special Texts Summary. (line 1276) * Moon, topocentric semidiameter %)*7ARGUMENT special text: Special Texts Summary. (line 1281) * Moon, topocentric semidiameter %)7ARGUMENT special text: Special Texts Summary. (line 1276) * Moon/Sun, delta astronomical midnight time %(*IARGUMENT special text: Moon data. (line 583) * Moon/Sun, delta astronomical midnight time %(*IARGUMENT special text <1>: Special Texts Summary. (line 1654) * Moon/Sun, delta astronomical midnight time %(IARGUMENT special text: Moon data. (line 583) * Moon/Sun, delta astronomical midnight time %(IARGUMENT special text <1>: Special Texts Summary. (line 1649) * Moon/Sun, delta astronomical midnight time %)*IARGUMENT special text: Moon data. (line 583) * Moon/Sun, delta astronomical midnight time %)*IARGUMENT special text <1>: Special Texts Summary. (line 1654) * Moon/Sun, delta astronomical midnight time %)IARGUMENT special text: Moon data. (line 583) * Moon/Sun, delta astronomical midnight time %)IARGUMENT special text <1>: Special Texts Summary. (line 1649) * Moon/Sun, delta astronomical noon time %(*JARGUMENT special text: Moon data. (line 602) * Moon/Sun, delta astronomical noon time %(*JARGUMENT special text <1>: Special Texts Summary. (line 1664) * Moon/Sun, delta astronomical noon time %(JARGUMENT special text: Moon data. (line 602) * Moon/Sun, delta astronomical noon time %(JARGUMENT special text <1>: Special Texts Summary. (line 1659) * Moon/Sun, delta astronomical noon time %)*JARGUMENT special text: Moon data. (line 602) * Moon/Sun, delta astronomical noon time %)*JARGUMENT special text <1>: Special Texts Summary. (line 1664) * Moon/Sun, delta astronomical noon time %)JARGUMENT special text: Moon data. (line 602) * Moon/Sun, delta astronomical noon time %)JARGUMENT special text <1>: Special Texts Summary. (line 1659) * Moon/Sun, delta geocentric azimuth %(*DARGUMENT special text: Moon data. (line 513) * Moon/Sun, delta geocentric azimuth %(*DARGUMENT special text <1>: Special Texts Summary. (line 1580) * Moon/Sun, delta geocentric azimuth %(DARGUMENT special text: Moon data. (line 513) * Moon/Sun, delta geocentric azimuth %(DARGUMENT special text <1>: Special Texts Summary. (line 1575) * Moon/Sun, delta geocentric azimuth %)*DARGUMENT special text: Moon data. (line 513) * Moon/Sun, delta geocentric azimuth %)*DARGUMENT special text <1>: Special Texts Summary. (line 1580) * Moon/Sun, delta geocentric azimuth %)DARGUMENT special text: Moon data. (line 513) * Moon/Sun, delta geocentric azimuth %)DARGUMENT special text <1>: Special Texts Summary. (line 1575) * Moon/Sun, delta geocentric azimuth at standard moonrise time %(*HARGUMENT special text: Moon data. (line 567) * Moon/Sun, delta geocentric azimuth at standard moonrise time %(*HARGUMENT special text <1>: Special Texts Summary. (line 1636) * Moon/Sun, delta geocentric azimuth at standard moonrise time %(HARGUMENT special text: Moon data. (line 567) * Moon/Sun, delta geocentric azimuth at standard moonrise time %(HARGUMENT special text <1>: Special Texts Summary. (line 1632) * Moon/Sun, delta geocentric azimuth at standard moonset time %)*HARGUMENT special text: Moon data. (line 575) * Moon/Sun, delta geocentric azimuth at standard moonset time %)*HARGUMENT special text <1>: Special Texts Summary. (line 1644) * Moon/Sun, delta geocentric azimuth at standard moonset time %)HARGUMENT special text: Moon data. (line 575) * Moon/Sun, delta geocentric azimuth at standard moonset time %)HARGUMENT special text <1>: Special Texts Summary. (line 1640) * Moon/Sun, delta geocentric elevation %(*CARGUMENT special text: Moon data. (line 507) * Moon/Sun, delta geocentric elevation %(*CARGUMENT special text <1>: Special Texts Summary. (line 1570) * Moon/Sun, delta geocentric elevation %(CARGUMENT special text: Moon data. (line 507) * Moon/Sun, delta geocentric elevation %(CARGUMENT special text <1>: Special Texts Summary. (line 1565) * Moon/Sun, delta geocentric elevation %)*CARGUMENT special text: Moon data. (line 507) * Moon/Sun, delta geocentric elevation %)*CARGUMENT special text <1>: Special Texts Summary. (line 1570) * Moon/Sun, delta geocentric elevation %)CARGUMENT special text: Moon data. (line 507) * Moon/Sun, delta geocentric elevation %)CARGUMENT special text <1>: Special Texts Summary. (line 1565) * Moon/Sun, delta geocentric elevation at standard moonrise time %(*GARGUMENT special text: Moon data. (line 551) * Moon/Sun, delta geocentric elevation at standard moonrise time %(*GARGUMENT special text <1>: Special Texts Summary. (line 1620) * Moon/Sun, delta geocentric elevation at standard moonrise time %(GARGUMENT special text: Moon data. (line 551) * Moon/Sun, delta geocentric elevation at standard moonrise time %(GARGUMENT special text <1>: Special Texts Summary. (line 1616) * Moon/Sun, delta geocentric elevation at standard moonset time %)*GARGUMENT special text: Moon data. (line 559) * Moon/Sun, delta geocentric elevation at standard moonset time %)*GARGUMENT special text <1>: Special Texts Summary. (line 1628) * Moon/Sun, delta geocentric elevation at standard moonset time %)GARGUMENT special text: Moon data. (line 559) * Moon/Sun, delta geocentric elevation at standard moonset time %)GARGUMENT special text <1>: Special Texts Summary. (line 1624) * Moon/Sun, delta standard rise time %(*KARGUMENT special text: Special Texts Summary. (line 1672) * Moon/Sun, delta standard rise time %(KARGUMENT special text: Special Texts Summary. (line 1668) * Moon/Sun, delta standard set time %)*KARGUMENT special text: Special Texts Summary. (line 1680) * Moon/Sun, delta standard set time %)KARGUMENT special text: Special Texts Summary. (line 1676) * Moon/Sun, delta topocentric azimuth %(*BARGUMENT special text: Moon data. (line 487) * Moon/Sun, delta topocentric azimuth %(*BARGUMENT special text <1>: Special Texts Summary. (line 1560) * Moon/Sun, delta topocentric azimuth %(BARGUMENT special text: Moon data. (line 487) * Moon/Sun, delta topocentric azimuth %(BARGUMENT special text <1>: Special Texts Summary. (line 1555) * Moon/Sun, delta topocentric azimuth %)*BARGUMENT special text: Moon data. (line 487) * Moon/Sun, delta topocentric azimuth %)*BARGUMENT special text <1>: Special Texts Summary. (line 1560) * Moon/Sun, delta topocentric azimuth %)BARGUMENT special text: Moon data. (line 487) * Moon/Sun, delta topocentric azimuth %)BARGUMENT special text <1>: Special Texts Summary. (line 1555) * Moon/Sun, delta topocentric azimuth at standard moonrise time %(*FARGUMENT special text: Moon data. (line 535) * Moon/Sun, delta topocentric azimuth at standard moonrise time %(*FARGUMENT special text <1>: Special Texts Summary. (line 1604) * Moon/Sun, delta topocentric azimuth at standard moonrise time %(FARGUMENT special text: Moon data. (line 535) * Moon/Sun, delta topocentric azimuth at standard moonrise time %(FARGUMENT special text <1>: Special Texts Summary. (line 1600) * Moon/Sun, delta topocentric azimuth at standard moonset time %)*FARGUMENT special text: Moon data. (line 543) * Moon/Sun, delta topocentric azimuth at standard moonset time %)*FARGUMENT special text <1>: Special Texts Summary. (line 1612) * Moon/Sun, delta topocentric azimuth at standard moonset time %)FARGUMENT special text: Moon data. (line 543) * Moon/Sun, delta topocentric azimuth at standard moonset time %)FARGUMENT special text <1>: Special Texts Summary. (line 1608) * Moon/Sun, delta topocentric elevation %(*AARGUMENT special text: Moon data. (line 473) * Moon/Sun, delta topocentric elevation %(*AARGUMENT special text <1>: Special Texts Summary. (line 1550) * Moon/Sun, delta topocentric elevation %(AARGUMENT special text: Moon data. (line 473) * Moon/Sun, delta topocentric elevation %(AARGUMENT special text <1>: Special Texts Summary. (line 1545) * Moon/Sun, delta topocentric elevation %)*AARGUMENT special text: Moon data. (line 473) * Moon/Sun, delta topocentric elevation %)*AARGUMENT special text <1>: Special Texts Summary. (line 1550) * Moon/Sun, delta topocentric elevation %)AARGUMENT special text: Moon data. (line 473) * Moon/Sun, delta topocentric elevation %)AARGUMENT special text <1>: Special Texts Summary. (line 1545) * Moon/Sun, delta topocentric elevation at standard moonrise time %(*EARGUMENT special text: Moon data. (line 519) * Moon/Sun, delta topocentric elevation at standard moonrise time %(*EARGUMENT special text <1>: Special Texts Summary. (line 1588) * Moon/Sun, delta topocentric elevation at standard moonrise time %(EARGUMENT special text: Moon data. (line 519) * Moon/Sun, delta topocentric elevation at standard moonrise time %(EARGUMENT special text <1>: Special Texts Summary. (line 1584) * Moon/Sun, delta topocentric elevation at standard moonset time %)*EARGUMENT special text: Moon data. (line 527) * Moon/Sun, delta topocentric elevation at standard moonset time %)*EARGUMENT special text <1>: Special Texts Summary. (line 1596) * Moon/Sun, delta topocentric elevation at standard moonset time %)EARGUMENT special text: Moon data. (line 527) * Moon/Sun, delta topocentric elevation at standard moonset time %)EARGUMENT special text <1>: Special Texts Summary. (line 1592) * Moonrise: Moon data. (line 6) * Moonrise and moonset, set reference altitude: Fixed date options. (line 125) * Moonset: Moon data. (line 6) * More precise representation of astronomical data and times: Fixed date options. (line 341) * More precise representation of geographical data: Fixed date options. (line 341) * Morning width: Glossary. (line 487) * Morning width geocentric, Sun: Sun data. (line 789) * Morning width topocentric, Sun: Sun data. (line 741) * Move leap day to 1st March: Fixed date options. (line 878) * Move leap day to 28th February: Fixed date options. (line 873) * Multicultural New Year holidays in eternal holiday list: Calendar options. (line 107) * Name space of date variables: Fixed date options. (line 8) * Name space of date variables <1>: Date variables. (line 55) * Name space of text variables: Fixed date options. (line 33) * Name space of text variables <1>: Text variables. (line 242) * Native language defaults: Internationalization. (line 53) * Native language, selection: Internationalization. (line 27) * Native language, used: Internationalization. (line 6) * Nautical twilight: Glossary. (line 491) * Nautical twilight, Sun: Sun data. (line 261) * Nautical twilight, Sun <1>: Sun data. (line 270) * Negated character list: Glossary. (line 496) * Negated character list, regexp: Regexp Operators. (line 163) * Negated regular expression: Fixed date options. (line 427) * Negative day: Glossary. (line 500) * Negative day, biorhythm: Biorhythm. (line 20) * New Moon phase: Calendar options. (line 48) * Non-printable characters in the text part, handling: Text part of a line. (line 6) * Noon height: Glossary. (line 505) * Noon height geocentric, Moon: Moon data. (line 744) * Noon height geocentric, Sun: Sun data. (line 768) * Noon height topocentric, Moon: Moon data. (line 668) * Noon height topocentric, Sun: Sun data. (line 720) * Noon line: Glossary. (line 509) * Noon line, Sun: Sun data. (line 38) * Noon phase angle: Glossary. (line 512) * Noon phase angle geocentric, Moon: Moon data. (line 751) * Noon phase angle topocentric, Moon: Moon data. (line 675) * Noon time of Moon, astronomical: Moon data. (line 58) * Noon time of Sun, astronomical: Sun data. (line 50) * NUL characters in the text part, handling: Text part of a line. (line 21) * Number of year calendar sheet blocks: Calendar options. (line 1384) * Numerical local time timezone offset value %=[ARGUMENT] special text: Actual clocktime. (line 234) * Numerical local time timezone offset value %=[ARGUMENT] special text <1>: Special Texts Summary. (line 268) * Numerical local time timezone offset value using RFC-822 style, display: Actual clocktime. (line 234) * Numerical text variables: Text variables. (line 292) * Numerical text variables, length preserving behavior: Text variables. (line 348) * Numerical Universal time timezone offset value %"[ARGUMENT] special text: Actual clocktime. (line 213) * Numerical Universal time timezone offset value %"[ARGUMENT] special text <1>: Special Texts Summary. (line 265) * Numerical Universal time timezone offset value using RFC-822 style, display: Actual clocktime. (line 213) * Obsolete date format elements, table: Table of Obsolete Date Format Elements. (line 6) * Obsolete date format texts, fixed default: Table of Obsolete Date Formats. (line 6) * Obsolete date format texts, individual: Table of Obsolete Date Format Elements. (line 6) * Obsolete date formats, table: Table of Obsolete Date Formats. (line 6) * Obsolete fixed default date format texts: Table of Obsolete Date Formats. (line 6) * Obsolete fixed default date format texts, table: Table of Obsolete Date Formats. (line 6) * Obsolete individual date format texts: Table of Obsolete Date Format Elements. (line 6) * Obsolete special texts and format elements: Obsolete Special Texts. (line 6) * Obsolete special texts, table: Table of Obsolete Special Texts. (line 6) * Octal system: Glossary. (line 516) * Omission values in date part, validity: Date part of a line. (line 146) * Operations on date variables: Fixed date options. (line 8) * Operations on date variables <1>: Structure of resource file. (line 58) * Operations on date variables <2>: Date variables. (line 117) * Operations on text variables: Structure of resource file. (line 73) * Operations on text variables <1>: Text variables. (line 292) * Operator, * regexp: Regexp Operators. (line 193) * Operator, + regexp: Regexp Operators. (line 213) * Operator, ? regexp: Regexp Operators. (line 225) * Operator, \' regexp: Regexp Operators. (line 303) * Operator, \< regexp: Regexp Operators. (line 270) * Operator, \> regexp: Regexp Operators. (line 274) * Operator, \b regexp: Regexp Operators. (line 278) * Operator, \B regexp: Regexp Operators. (line 283) * Operator, \w regexp: Regexp Operators. (line 259) * Operator, \W regexp: Regexp Operators. (line 265) * Operator, \` regexp: Regexp Operators. (line 299) * Operator, | regexp: Regexp Operators. (line 173) * Operators, regexp: Regexp Operators. (line 6) * Opposition: Glossary. (line 519) * Option: Glossary. (line 524) * Option %DATE: Command line arguments. (line 6) * Option @FILE: Command line arguments. (line 6) * Option class, calendar: Options. (line 13) * Option class, common: Options. (line 13) * Option class, fixed date: Options. (line 13) * Option class, global: Options. (line 13) * Option modifier: Options. (line 73) * Options: Command line arguments. (line 6) * Options <1>: Options. (line 6) * Options of gcal: Command line arguments. (line 6) * Options of gcal2txt: Invoking gcal2txt. (line 6) * Options of tcal: Invoking tcal. (line 6) * Options of txt2gcal: Invoking txt2gcal. (line 6) * Options, fixed date period: Fixed date options. (line 866) * Options, fixed date text: Fixed date options. (line 620) * Options, long-style: Options. (line 21) * Options, short-style: Options. (line 21) * Options, single character: Fixed date options. (line 589) * Options, single character <1>: Fixed date options. (line 600) * Orbit, Sun's: Sun data. (line 387) * Orbit, Sun's <1>: Moon data. (line 327) * Orbit, Sun's <2>: Moon data. (line 335) * Orthodox new calendar holidays in eternal holiday list: Calendar options. (line 113) * Orthodox old calendar holidays in eternal holiday list: Calendar options. (line 119) * Orthodrome: Geographical distance and course angle. (line 6) * Orthodrome <1>: Glossary. (line 528) * Other resource file: Fixed date options. (line 475) * Output of base time of astronomical functions: Sun data. (line 488) * Output of base time of astronomical functions <1>: Moon data. (line 453) * Output, pipelining: Global options. (line 176) * Output, redirection: Global options. (line 176) * PAGER environment variable: Global options. (line 48) * PAGER environment variable <1>: Environment Variables. (line 99) * Pager program: Global options. (line 48) * Pager, external: Global options. (line 48) * Pager, internal: Global options. (line 60) * Pager, using: Global options. (line 48) * PATH environment variable: Global options. (line 53) * PATH environment variable <1>: Environment Variables. (line 104) * Pattern: Fixed date options. (line 398) * Pattern <1>: Glossary. (line 533) * Pattern, regular expressions: Regular Expressions. (line 6) * Period of double or shorter shadow length: Sun data. (line 871) * Period of Gregorian Reformation, set: Calendar options. (line 1563) * Period of longer than double shadow length: Sun data. (line 877) * Period of longer than single shadow length: Sun data. (line 840) * Period of single or shorter shadow length: Sun data. (line 834) * Period, Exclusive date: Exclusions with date argument. (line 11) * Period, exclusive day: Exclusions without any argument. (line 11) * Period, inclusive date: Exclusions with date argument. (line 11) * Period, inclusive day: Exclusions without any argument. (line 11) * Period-of-fixed-dates-modifier: Fixed date options. (line 575) * Persian Jalaali holidays in eternal holiday list: Calendar options. (line 125) * Phase angle: Glossary. (line 539) * Pipelining: Global options. (line 91) * Pipelining <1>: Glossary. (line 543) * Pipelining of output: Global options. (line 176) * Positive day: Glossary. (line 547) * Positive day, biorhythm: Biorhythm. (line 20) * POSIX: Glossary. (line 552) * POSIX regexp: Regexp Operators. (line 75) * POSIX regexp <1>: Regexp Operators. (line 235) * Prayer time Asr, Islamic: Sun data. (line 50) * Prayer time Asr, Islamic <1>: Sun data. (line 818) * Prayer time Asr, Islamic <2>: Sun data. (line 855) * Prayer time Fajr, Islamic: Sun data. (line 313) * Prayer time Isha, Islamic: Sun data. (line 327) * Prayer time Maghrib, Islamic: Sun data. (line 199) * Prayer time Zuhr, Islamic: Sun data. (line 50) * Precedence, regexp operators: Regexp Operators. (line 305) * Precision of astronomical calculations: Preface. (line 19) * Preliminary remarks to Gcal: Preface. (line 6) * Private-access resource files: Environment Variables. (line 35) * Program exit state 127: Common options. (line 41) * Program exit states, table: Error Codes. (line 6) * Proleptic calendar mode: Calendar options. (line 1595) * Proleptic calendar mode <1>: Glossary. (line 557) * Proleptic Gregorian calendar: Calendar options. (line 1602) * Proleptic Julian calendar: Calendar options. (line 1607) * Protection character, \: Fixed date options. (line 98) * Protection character, \ <1>: Fixed date options. (line 104) * Protection character, \ <2>: Fixed date options. (line 114) * Protection character, \ <3>: Fixed date options. (line 415) * Protection character, \ <4>: Fixed date options. (line 503) * Protection character, \ <5>: Fixed date options. (line 512) * Protection character, \ <6>: Fixed date options. (line 547) * Protection character, \ <7>: Fixed date options. (line 747) * Protection character, \ <8>: Fixed date options. (line 757) * Protection character, \ <9>: Fixed date options. (line 841) * Protection character, \ <10>: Fixed date options. (line 851) * Protection character, \ <11>: Text part of a line. (line 52) * Protection character, \ <12>: Text part of a line. (line 93) * Protection character, \ <13>: Special Texts processed. (line 6) * Protection character, \ <14>: Text variables. (line 90) * Protection character, \ <15>: Other difference values. (line 11) * Protection of special characters: Command line arguments. (line 28) * Protection of special characters <1>: Fixed date options. (line 98) * Protection of special characters <2>: Fixed date options. (line 104) * Protection of special characters <3>: Fixed date options. (line 114) * Protection of special characters <4>: Fixed date options. (line 415) * Protection of special characters <5>: Fixed date options. (line 503) * Protection of special characters <6>: Fixed date options. (line 512) * Protection of special characters <7>: Fixed date options. (line 547) * Protection of special characters <8>: Fixed date options. (line 747) * Protection of special characters <9>: Fixed date options. (line 757) * Protection of special characters <10>: Fixed date options. (line 841) * Protection of special characters <11>: Fixed date options. (line 851) * Protection of special characters <12>: Response file. (line 6) * Protection of special characters <13>: Text part of a line. (line 52) * Protection of special characters <14>: Text part of a line. (line 93) * Protection of special characters <15>: Special Texts processed. (line 6) * Protection of special characters <16>: Text variables. (line 90) * Protection of special characters <17>: Other difference values. (line 11) * Provide calendar sheet with week numbers: Calendar options. (line 1347) * Pseudo space character, _: Fixed date options. (line 111) * Pseudo space character, _ <1>: Fixed date options. (line 411) * Pseudo space character, _ <2>: Fixed date options. (line 509) * Pseudo space character, _ <3>: Fixed date options. (line 544) * Pseudo space character, _ <4>: Fixed date options. (line 754) * Pseudo space character, _ <5>: Fixed date options. (line 848) * Public-access resource files: Environment Variables. (line 30) * Quotation of special characters: Command line arguments. (line 28) * Quotation of special characters <1>: Response file. (line 6) * Range of current months: Ranges of commands. (line 7) * Range of fiscal years: Ranges of commands. (line 49) * Range of months of year: Ranges of commands. (line 15) * Range of specified fiscal years: Ranges of commands. (line 49) * Range of specified month of selected years: Ranges of commands. (line 37) * Range of specified months of selected year: Ranges of commands. (line 22) * Range of specified months of selected years: Ranges of commands. (line 29) * Range of specified years: Ranges of commands. (line 44) * Ranges of commands: Commands. (line 6) * Ranges of commands <1>: Ranges of commands. (line 6) * Ranges of commands <2>: Glossary. (line 392) * Ranges of days: Ranges of days. (line 6) * Ranges of days, examples: Ranges of days. (line 63) * Ranges of days, valid date parts: Ranges of days. (line 31) * Rational number: Glossary. (line 563) * Redirection: Global options. (line 91) * Redirection <1>: Glossary. (line 569) * Redirection of output: Global options. (line 176) * Redirection of standard output: Structure of resource file. (line 20) * Redirection of standard output, appending to file: Structure of resource file. (line 10) * Reference altitude used for moonrise and moonset, set: Fixed date options. (line 125) * Reference altitude used for sunrise and sunset, set: Fixed date options. (line 125) * Reference systems used, Moon oriented special texts: Moon data. (line 947) * Reference systems used, Sun oriented special texts: Sun data. (line 1209) * References of text variables: Structure of resource file. (line 83) * Refraction: Glossary. (line 573) * Refraction, atmospheric: Fixed date options. (line 152) * Regexp: Regular Expressions. (line 6) * Regexp <1>: Glossary. (line 580) * Regexp anchor metacharacter, $: Regexp Operators. (line 32) * Regexp anchor metacharacter, ^: Regexp Operators. (line 22) * Regexp character class, [:alnum:]: Regexp Operators. (line 89) * Regexp character class, [:alpha:]: Regexp Operators. (line 92) * Regexp character class, [:blank:]: Regexp Operators. (line 95) * Regexp character class, [:cntrl:]: Regexp Operators. (line 98) * Regexp character class, [:digit:]: Regexp Operators. (line 101) * Regexp character class, [:graph:]: Regexp Operators. (line 104) * Regexp character class, [:lower:]: Regexp Operators. (line 108) * Regexp character class, [:print:]: Regexp Operators. (line 111) * Regexp character class, [:punct:]: Regexp Operators. (line 114) * Regexp character class, [:space:]: Regexp Operators. (line 118) * Regexp character class, [:upper:]: Regexp Operators. (line 121) * Regexp character class, [:xdigit:]: Regexp Operators. (line 124) * Regexp character classes, [:KEYWORD:]: Regexp Operators. (line 75) * Regexp character list, [...]: Regexp Operators. (line 51) * Regexp collating symbols, [.ELEMENT.]: Regexp Operators. (line 143) * Regexp complemented character list, [^ ...]: Regexp Operators. (line 163) * Regexp equivalence classes, [=LIST=]: Regexp Operators. (line 150) * Regexp grouping, (...): Regexp Operators. (line 186) * Regexp interval expressions, {EXPRESSION}: Regexp Operators. (line 235) * Regexp metacharacter, .: Regexp Operators. (line 40) * Regexp metacharacter, \: Regexp Operators. (line 14) * Regexp metacharacters: Regexp Operators. (line 6) * Regexp operator, *: Regexp Operators. (line 193) * Regexp operator, +: Regexp Operators. (line 213) * Regexp operator, ?: Regexp Operators. (line 225) * Regexp operator, \': Regexp Operators. (line 303) * Regexp operator, \<: Regexp Operators. (line 270) * Regexp operator, \>: Regexp Operators. (line 274) * Regexp operator, \b: Regexp Operators. (line 278) * Regexp operator, \B: Regexp Operators. (line 283) * Regexp operator, \w: Regexp Operators. (line 259) * Regexp operator, \W: Regexp Operators. (line 265) * Regexp operator, \`: Regexp Operators. (line 299) * Regexp operator, |: Regexp Operators. (line 173) * Regexp operators: Regexp Operators. (line 6) * Regexp operators, GNU specific: Regexp Operators. (line 251) * Regexp operators, precedence: Regexp Operators. (line 305) * Regexp, anchors: Regexp Operators. (line 22) * Regexp, buffer: Regexp Operators. (line 289) * Regexp, buffer matching operators: Regexp Operators. (line 298) * Regexp, case sensitivity in matching: Regexp Operators. (line 310) * Regexp, character classes: Regexp Operators. (line 75) * Regexp, character list: Regexp Operators. (line 51) * Regexp, collating elements: Regexp Operators. (line 135) * Regexp, collating symbols: Regexp Operators. (line 143) * Regexp, complemented character list: Regexp Operators. (line 163) * Regexp, definition of a word: Regexp Operators. (line 254) * Regexp, equivalence classes: Regexp Operators. (line 150) * Regexp, ignoring case: Fixed date options. (line 422) * Regexp, ignoring case <1>: Regexp Operators. (line 315) * Regexp, interval expressions: Regexp Operators. (line 235) * Regexp, matching word boundaries: Regexp Operators. (line 278) * Regexp, negated character list: Regexp Operators. (line 163) * Regexp, POSIX: Regexp Operators. (line 75) * Regexp, POSIX <1>: Regexp Operators. (line 235) * Regular expression: Fixed date options. (line 398) * Regular expression <1>: Regular Expressions. (line 6) * Regular expression <2>: Glossary. (line 580) * Regular expression anchor metacharacter, $: Regexp Operators. (line 32) * Regular expression anchor metacharacter, ^: Regexp Operators. (line 22) * Regular expression character class, [:alnum:]: Regexp Operators. (line 89) * Regular expression character class, [:alpha:]: Regexp Operators. (line 92) * Regular expression character class, [:blank:]: Regexp Operators. (line 95) * Regular expression character class, [:cntrl:]: Regexp Operators. (line 98) * Regular expression character class, [:digit:]: Regexp Operators. (line 101) * Regular expression character class, [:graph:]: Regexp Operators. (line 104) * Regular expression character class, [:lower:]: Regexp Operators. (line 108) * Regular expression character class, [:print:]: Regexp Operators. (line 111) * Regular expression character class, [:punct:]: Regexp Operators. (line 114) * Regular expression character class, [:space:]: Regexp Operators. (line 118) * Regular expression character class, [:upper:]: Regexp Operators. (line 121) * Regular expression character class, [:xdigit:]: Regexp Operators. (line 124) * Regular expression character classes, [:KEYWORD:]: Regexp Operators. (line 75) * Regular expression character list, [...]: Regexp Operators. (line 51) * Regular expression collating symbols, [.ELEMENT.]: Regexp Operators. (line 143) * Regular expression complemented character list, [^ ...]: Regexp Operators. (line 163) * Regular expression equivalence class, [=LIST=]: Regexp Operators. (line 150) * Regular expression grouping, (...): Regexp Operators. (line 186) * Regular expression interval expressions, {EXPRESSION}: Regexp Operators. (line 235) * Regular expression metacharacter, .: Regexp Operators. (line 40) * Regular expression metacharacter, \: Regexp Operators. (line 14) * Regular expression metacharacters: Regexp Operators. (line 6) * Regular expression operator, *: Regexp Operators. (line 193) * Regular expression operator, +: Regexp Operators. (line 213) * Regular expression operator, ?: Regexp Operators. (line 225) * Regular expression operator, \': Regexp Operators. (line 303) * Regular expression operator, \<: Regexp Operators. (line 270) * Regular expression operator, \>: Regexp Operators. (line 274) * Regular expression operator, \b: Regexp Operators. (line 278) * Regular expression operator, \B: Regexp Operators. (line 283) * Regular expression operator, \w: Regexp Operators. (line 259) * Regular expression operator, \W: Regexp Operators. (line 265) * Regular expression operator, \`: Regexp Operators. (line 299) * Regular expression operator, |: Regexp Operators. (line 173) * Regular expression operators: Regexp Operators. (line 6) * Regular expression operators <1>: Glossary. (line 471) * Regular expression, complemented: Fixed date options. (line 427) * Regular expression, ignoring case distinctions: Fixed date options. (line 422) * Regular expression, ignoring case distinctions <1>: Regexp Operators. (line 315) * Regular expression, negated: Fixed date options. (line 427) * Regular expression, reverted: Fixed date options. (line 427) * Regular expressions as patterns: Regular Expressions. (line 6) * Regular expressions, how to use: Regexp Usage. (line 6) * Regular expressions, short-list: Regexp Summary. (line 6) * Regular expressions, summary: Regexp Summary. (line 6) * Relative day number %d special text: Other difference values. (line 21) * Relative day number %d special text <1>: Special Texts Summary. (line 1871) * Relative month number %m special text: Other difference values. (line 34) * Relative month number %m special text <1>: Special Texts Summary. (line 1877) * Relative time offset value: Calendar options. (line 1506) * Relative time offset value <1>: Calendar options. (line 1532) * Relative time offset value <2>: Glossary. (line 583) * Relative week number %w special text: Other difference values. (line 29) * Relative week number %w special text <1>: Special Texts Summary. (line 1874) * Relative year number %y special text: Other difference values. (line 39) * Relative year number %y special text <1>: Special Texts Summary. (line 1880) * Relative year number %yDATE special text: Difference value. (line 10) * Relative year number %yDATE special text <1>: Special Texts Summary. (line 224) * Religious Islamic calendar: Preface. (line 163) * Religious Islamic calendar <1>: Glossary. (line 586) * Remark character, ;: Response file. (line 21) * Remark character, ; <1>: Comment line. (line 6) * Remarked line in resource file: Structure of resource file. (line 47) * Remarked line in resource file <1>: Comment line. (line 6) * Repetition factor of days, :N: Repetition factor of days. (line 6) * Repetition factors of days, examples: Repetition factor of days. (line 56) * Repetition factors of days, valid date parts: Repetition factor of days. (line 41) * Replacements with date argument %?[DATE] special texts: Replacements with date argument. (line 6) * Replacements with other argument %[FORMAT]?[ARGUMENT] special texts: Replacements with other argument. (line 6) * Replacements without any argument %? special texts: Replacements without any argument. (line 6) * Representation-of-text-modifier: Fixed date options. (line 572) * Resource file: Fixed Dates. (line 11) * Resource file <1>: Glossary. (line 589) * Resource file examples: Resource file examples. (line 6) * Resource file line, additional: Fixed date options. (line 520) * Resource file line, commented: Structure of resource file. (line 47) * Resource file line, commented <1>: Comment line. (line 6) * Resource file line, further: Fixed date options. (line 520) * Resource file line, long text part: Text part of a line. (line 42) * Resource file line, remarked: Structure of resource file. (line 47) * Resource file line, remarked <1>: Comment line. (line 6) * Resource file, .gcalrc: Resource file. (line 6) * Resource file, additional: Fixed date options. (line 475) * Resource file, additional <1>: Resource file. (line 6) * Resource file, coding scheme: Coding Scheme. (line 6) * Resource file, commented line: Structure of resource file. (line 47) * Resource file, commented line <1>: Comment line. (line 6) * Resource file, date part: Coding Scheme. (line 6) * Resource file, date part of a line: Date part of a line. (line 6) * Resource file, force line break-up: Text part of a line. (line 42) * Resource file, include directives: Include directives. (line 6) * Resource file, limitations: Global options. (line 219) * Resource file, limitations <1>: Structure of resource file. (line 6) * Resource file, limitations <2>: Text part of a line. (line 6) * Resource file, limitations <3>: Date variables. (line 6) * Resource file, line continuation: Text part of a line. (line 28) * Resource file, loading: Resource file. (line 6) * Resource file, name: Resource file. (line 6) * Resource file, other: Fixed date options. (line 475) * Resource file, remarked line: Structure of resource file. (line 47) * Resource file, remarked line <1>: Comment line. (line 6) * Resource file, remarking of text part: Text part of a line. (line 21) * Resource file, searching mechanism: Resource file. (line 6) * Resource file, standard: Resource file. (line 6) * Resource file, structure: Structure of resource file. (line 6) * Resource file, text part: Text part of a line. (line 6) * Resource file, two parts of a line: Structure of resource file. (line 6) * Resource file, use: Resource file. (line 6) * Respected environment variables, table: Environment Variables. (line 6) * Response file: Glossary. (line 592) * Response file, @FILE: Response file. (line 6) * Response file, creation: Global options. (line 8) * Reverted regular expression: Fixed date options. (line 427) * RFC: Glossary. (line 566) * RFC-822, numerical local time timezone offset value: Actual clocktime. (line 234) * RFC-822, numerical Universal time timezone offset value: Actual clocktime. (line 213) * Right ascension: Glossary. (line 597) * Right ascension, Moon: Moon data. (line 346) * Right ascension, Sun: Sun data. (line 395) * Rise azimuth: Glossary. (line 602) * Rise azimuth geocentric, Moon: Moon data. (line 772) * Rise azimuth geocentric, Sun: Sun data. (line 789) * Rise azimuth topocentric, Moon: Moon data. (line 696) * Rise azimuth topocentric, Sun: Sun data. (line 741) * Rise height: Glossary. (line 606) * Rise height geocentric, Moon: Moon data. (line 758) * Rise height geocentric, Sun: Sun data. (line 775) * Rise height topocentric, Moon: Moon data. (line 682) * Rise height topocentric, Sun: Sun data. (line 727) * Rise phase angle: Glossary. (line 610) * Rise phase angle geocentric, Moon: Moon data. (line 792) * Rise phase angle topocentric, Moon: Moon data. (line 716) * Rise width: Glossary. (line 487) * Rise width geocentric, Moon: Moon data. (line 772) * Rise width topocentric, Moon: Moon data. (line 696) * Run-time error codes, table: Error Codes. (line 6) * Scope of date variables: Fixed date options. (line 8) * Scope of date variables <1>: Date variables. (line 128) * Scope of text variables: Fixed date options. (line 33) * Scope of text variables <1>: Text variables. (line 356) * Searching resource file: Resource file. (line 6) * Selected month mode: Single commands. (line 11) * Selected month of current year: Single commands. (line 11) * Selected year: Single commands. (line 18) * Selection of native language: Internationalization. (line 27) * Sending eMail: Global options. (line 189) * Separator character of lists of days, ,: Lists of days. (line 6) * Separator character of ranges of days, #: Ranges of days. (line 6) * Separator character, +: Calendar options. (line 154) * Separator character, + <1>: Fixed date options. (line 488) * Separator character, :: Global options. (line 107) * Separator character, : <1>: Global options. (line 172) * Separator character, : <2>: Fixed date options. (line 8) * Separator character, : <3>: Fixed date options. (line 33) * Separator character, whitespace: Options. (line 66) * Separator character, whitespace <1>: Options. (line 73) * Separator character, whitespace <2>: Structure of resource file. (line 6) * Separator character, whitespace <3>: Include directives. (line 23) * Sequence of control characters: Global options. (line 107) * Set azimuth: Glossary. (line 614) * Set azimuth geocentric, Moon: Moon data. (line 782) * Set azimuth geocentric, Sun: Sun data. (line 799) * Set azimuth topocentric, Moon: Moon data. (line 706) * Set azimuth topocentric, Sun: Sun data. (line 751) * Set cycle displacement value for Sun and Moon data and times: Fixed date options. (line 291) * Set cycle ending time value for Sun and Moon data and times: Fixed date options. (line 225) * Set cycle timestep value for Sun and Moon data and times: Fixed date options. (line 291) * Set height: Glossary. (line 618) * Set height geocentric, Moon: Moon data. (line 765) * Set height geocentric, Sun: Sun data. (line 782) * Set height topocentric, Moon: Moon data. (line 689) * Set height topocentric, Sun: Sun data. (line 734) * Set highlighting sequences: Global options. (line 107) * Set marking characters: Global options. (line 107) * Set phase angle: Glossary. (line 622) * Set phase angle geocentric, Moon: Moon data. (line 799) * Set phase angle topocentric, Moon: Moon data. (line 723) * Set shadow length factor: Fixed date options. (line 138) * Set starting day of week: Calendar options. (line 1469) * Set width: Glossary. (line 218) * Set width geocentric, Moon: Moon data. (line 782) * Set width topocentric, Moon: Moon data. (line 706) * Shadow length at afternoon, double: Sun data. (line 855) * Shadow length at afternoon, single: Sun data. (line 818) * Shadow length at forenoon, double: Sun data. (line 846) * Shadow length at forenoon, single: Sun data. (line 809) * Shadow length factor, set: Fixed date options. (line 138) * Shell: Invoking Gcal. (line 11) * Shell <1>: Command line arguments. (line 28) * Shell <2>: Fixed date options. (line 353) * Shell <3>: Text variables. (line 96) * Shell <4>: Glossary. (line 626) * Shell command %![ARGUMENT] special text: Shell Command. (line 6) * Shell command %![ARGUMENT] special text <1>: Special Texts Summary. (line 1923) * Shell command, execution: Shell Command. (line 6) * Shell script, creation: Global options. (line 15) * Short help text: Common options. (line 9) * Short-list of all %?... special texts: Special Texts Summary. (line 6) * Short-list of all regular expressions: Regexp Summary. (line 6) * Short-style option: Options. (line 21) * Short-style option <1>: Glossary. (line 630) * Sidereal time, Moon: Moon data. (line 438) * Sidereal time, Sun: Sun data. (line 473) * Signed angular value, Sun and Moon oriented special texts: Sun data. (line 1013) * Signed decimal based rational number value, Sun and Moon oriented special texts: Sun data. (line 915) * Signed time value, Sun and Moon oriented special texts: Sun data. (line 982) * Simple decrement of date variables: Date variables. (line 122) * Simple decrement of text variables: Text variables. (line 298) * Simple file name: Resource file. (line 88) * Simple file name <1>: Glossary. (line 633) * Simple increment of date variables: Date variables. (line 121) * Simple increment of text variables: Text variables. (line 297) * Simple language code information: Internationalization. (line 46) * Simple language code information <1>: Glossary. (line 638) * Single character options: Options. (line 21) * Single character options <1>: Fixed date options. (line 589) * Single character options <2>: Fixed date options. (line 600) * Single command: Glossary. (line 644) * Single command line word: Options. (line 21) * Single command line word <1>: Fixed date options. (line 589) * Single command line word <2>: Fixed date options. (line 600) * Single commands: Commands. (line 6) * Single Commands: Single commands. (line 6) * Single fiscal year: Single commands. (line 46) * Single fiscal year <1>: Single commands. (line 53) * Single fiscal year <2>: Single commands. (line 62) * Single fiscal year <3>: Single commands. (line 69) * Single month mode: Single commands. (line 7) * Single month of selected year: Single commands. (line 38) * Single or shorter shadow length, period: Sun data. (line 834) * Single shadow length at afternoon: Sun data. (line 818) * Single shadow length at forenoon: Sun data. (line 809) * Single year mode: Single commands. (line 18) * Software license, finding: Common options. (line 33) * Solar Arctic Circle: Sun data. (line 1242) * Solar Arctic Circle <1>: Glossary. (line 647) * Solar day length: Sun data. (line 6) * Solar day, mean: Sun data. (line 508) * Solar day, true: Sun data. (line 508) * Solar eclipse: Calendar options. (line 48) * Solar night length: Sun data. (line 6) * Solar time, mean: Sun data. (line 508) * Solar time, true: Sun data. (line 508) * Solstice in summer: Glossary. (line 670) * Solstice in winter: Glossary. (line 756) * Solstice, summer: Calendar options. (line 48) * Solstice, winter: Calendar options. (line 48) * Special 3-Month mode commands: Commands. (line 6) * Special 3-Month mode commands <1>: 3-Month mode commands. (line 6) * Special 3-Month mode, .: 3-Month mode commands. (line 7) * Special 3-Month mode, . YYYY: 3-Month mode commands. (line 12) * Special 3-Month mode, .+: 3-Month mode commands. (line 27) * Special 3-Month mode, .+ YYYY: 3-Month mode commands. (line 32) * Special 3-Month mode, .-: 3-Month mode commands. (line 37) * Special 3-Month mode, .- YYYY: 3-Month mode commands. (line 42) * Special 3-Month mode, ..: 3-Month mode commands. (line 17) * Special 3-Month mode, .. YYYY: 3-Month mode commands. (line 22) * Special calendar format: Calendar options. (line 1286) * Special character sequences in the text part, handling: Text part of a line. (line 6) * Special characters, country specific: Calendar options. (line 1732) * Special characters, depreciation: Command line arguments. (line 28) * Special characters, depreciation <1>: Fixed date options. (line 98) * Special characters, depreciation <2>: Fixed date options. (line 104) * Special characters, depreciation <3>: Fixed date options. (line 114) * Special characters, depreciation <4>: Fixed date options. (line 415) * Special characters, depreciation <5>: Fixed date options. (line 503) * Special characters, depreciation <6>: Fixed date options. (line 512) * Special characters, depreciation <7>: Fixed date options. (line 547) * Special characters, depreciation <8>: Fixed date options. (line 747) * Special characters, depreciation <9>: Fixed date options. (line 757) * Special characters, depreciation <10>: Fixed date options. (line 841) * Special characters, depreciation <11>: Fixed date options. (line 851) * Special characters, depreciation <12>: Response file. (line 6) * Special characters, depreciation <13>: Text part of a line. (line 52) * Special characters, depreciation <14>: Text part of a line. (line 93) * Special characters, depreciation <15>: Special Texts processed. (line 6) * Special characters, depreciation <16>: Text variables. (line 90) * Special characters, depreciation <17>: Other difference values. (line 11) * Special characters, protection: Command line arguments. (line 28) * Special characters, protection <1>: Fixed date options. (line 98) * Special characters, protection <2>: Fixed date options. (line 104) * Special characters, protection <3>: Fixed date options. (line 114) * Special characters, protection <4>: Fixed date options. (line 415) * Special characters, protection <5>: Fixed date options. (line 503) * Special characters, protection <6>: Fixed date options. (line 512) * Special characters, protection <7>: Fixed date options. (line 547) * Special characters, protection <8>: Fixed date options. (line 747) * Special characters, protection <9>: Fixed date options. (line 757) * Special characters, protection <10>: Fixed date options. (line 841) * Special characters, protection <11>: Fixed date options. (line 851) * Special characters, protection <12>: Response file. (line 6) * Special characters, protection <13>: Text part of a line. (line 52) * Special characters, protection <14>: Text part of a line. (line 93) * Special characters, protection <15>: Special Texts processed. (line 6) * Special characters, protection <16>: Text variables. (line 90) * Special characters, protection <17>: Other difference values. (line 11) * Special characters, quotation: Command line arguments. (line 28) * Special characters, quotation <1>: Response file. (line 6) * Special date format in calendar sheet: Calendar options. (line 1422) * Special date format in eternal holiday list: Calendar options. (line 1440) * Special date format in fixed date list: Calendar options. (line 1458) * Special event oriented texts, Moon data and times: Sun data. (line 939) * Special event oriented texts, Sun data and times: Sun data. (line 939) * Special text: Glossary. (line 662) * Special text %![ARGUMENT], shell command: Shell Command. (line 6) * Special text %"[ARGUMENT], numerical Universal time timezone offset value: Actual clocktime. (line 213) * Special text %,[DATE], biorhythm text: Biorhythm. (line 33) * Special text %0, end of highlighting sequence 1 or 2: Highlighting. (line 125) * Special text %1, start of highlighting sequence 1: Highlighting. (line 9) * Special text %2, end of highlighting sequence 1: Highlighting. (line 28) * Special text %3, start of highlighting sequence 2: Highlighting. (line 37) * Special text %4, end of highlighting sequence 2: Highlighting. (line 56) * Special text %5, start of highlighting sequence 1: Highlighting. (line 65) * Special text %6, end of highlighting sequence 1: Highlighting. (line 78) * Special text %7, start of highlighting sequence 2: Highlighting. (line 87) * Special text %8, end of highlighting sequence 2: Highlighting. (line 100) * Special text %9, start of highlighting sequence 1 or 2: Highlighting. (line 109) * Special text %;[DATE], biorhythm text graphics: Biorhythm. (line 60) * Special text %=[ARGUMENT], numerical local time timezone offset value: Actual clocktime. (line 234) * Special text %>02&*D[DATE], day number: Day number. (line 30) * Special text %>02&*M[DATE], month number: Month number. (line 31) * Special text %>02*D[DATE], day number: Day number. (line 14) * Special text %>02*M[DATE], month number: Month number. (line 15) * Special text %>03&*N[DATE], day-of-year number: Day-of-year number. (line 32) * Special text %>03*N[DATE], day-of-year number: Day-of-year number. (line 15) * Special text %>03*O[DATE], Moon phase text: Moon phase. (line 30) * Special text %>04*Y[DATE], year number: Year number. (line 14) * Special text %>1&*B[DATE], age value: Difference value. (line 30) * Special text %>1&*D[DATE], day number: Day number. (line 22) * Special text %>1&*E[DATE], weekday number: Weekday number. (line 36) * Special text %>1&*I[DATE], weekday number: Weekday number. (line 55) * Special text %>1&*J[DATE], weekday number: Weekday number. (line 74) * Special text %>1&*M[DATE], month number: Month number. (line 23) * Special text %>1&*N[DATE], day-of-year number: Day-of-year number. (line 24) * Special text %>1&*S[DATE], weekday number: Weekday number. (line 95) * Special text %>1&*T[DATE], weekday number: Weekday number. (line 118) * Special text %>1&*W[DATE], weekday number: Weekday number. (line 18) * Special text %>2#K[DATE], 2-letter weekday name: Weekday name. (line 23) * Special text %>3#K[DATE], 3-letter weekday name: Weekday name. (line 15) * Special text %>3#U[DATE], 3-letter month name: Month name. (line 15) * Special text %@[ARGUMENT], actual Universal time in HH:MM/DATE format: Actual clocktime. (line 126) * Special text %A, exclusive Monday: Exclusive day period. (line 18) * Special text %a, inclusive Monday: Inclusive day period. (line 18) * Special text %B[DATE], age value: Difference value. (line 18) * Special text %C, exclusive Tuesday: Exclusive day period. (line 21) * Special text %c, inclusive Tuesday: Inclusive day period. (line 21) * Special text %d, relative day number: Other difference values. (line 21) * Special text %D[DATE], day number: Day number. (line 7) * Special text %E[DATE], weekday number: Weekday number. (line 28) * Special text %e[DATE][#[DATE]], exclusive date period: Exclusive date period. (line 6) * Special text %F, exclusive Wednesday: Exclusive day period. (line 24) * Special text %f, inclusive Wednesday: Inclusive day period. (line 24) * Special text %G, exclusive Thursday: Exclusive day period. (line 27) * Special text %g, inclusive Thursday: Inclusive day period. (line 27) * Special text %H, exclusive Friday: Exclusive day period. (line 30) * Special text %h, inclusive Friday: Inclusive day period. (line 30) * Special text %I[DATE], weekday number: Weekday number. (line 46) * Special text %i[DATE][#[DATE]], inclusive date period: Inclusive date period. (line 6) * Special text %J[DATE], weekday number: Weekday number. (line 65) * Special text %K[DATE], complete weekday name: Weekday name. (line 7) * Special text %k[DATE], week number: Week number. (line 6) * Special text %L, exclusive Saturday: Exclusive day period. (line 33) * Special text %l, inclusive Saturday: Inclusive day period. (line 33) * Special text %m, relative month number: Other difference values. (line 34) * Special text %M[DATE], month number: Month number. (line 7) * Special text %n[ARGUMENT], textual date: Textual date. (line 6) * Special text %N[DATE], day-of-year number: Day-of-year number. (line 7) * Special text %O[DATE], Moon phase text: Moon phase. (line 15) * Special text %P, exclusive Sunday: Exclusive day period. (line 36) * Special text %p, inclusive Sunday: Inclusive day period. (line 36) * Special text %Q, exclusive Monday...Thursday: Exclusive day period. (line 39) * Special text %q, inclusive Monday...Thursday: Inclusive day period. (line 39) * Special text %R, exclusive Monday...Friday: Exclusive day period. (line 42) * Special text %r, inclusive Monday...Friday: Inclusive day period. (line 42) * Special text %S[DATE], weekday number: Weekday number. (line 84) * Special text %t[ARGUMENT], actual local time in HH:MM format: Actual clocktime. (line 23) * Special text %T[DATE], weekday number: Weekday number. (line 107) * Special text %U[DATE], complete month name: Month name. (line 7) * Special text %V, exclusive legal holidays: Exclusive day period. (line 10) * Special text %v, inclusive legal holidays: Inclusive day period. (line 10) * Special text %w, relative week number: Other difference values. (line 29) * Special text %W[DATE], weekday number: Weekday number. (line 10) * Special text %X, exclusive all holidays: Exclusive day period. (line 14) * Special text %x, inclusive all holidays: Inclusive day period. (line 14) * Special text %y, relative year number: Other difference values. (line 39) * Special text %yDATE, relative year number: Difference value. (line 10) * Special text %Y[DATE], year number: Year number. (line 7) * Special text %Z[DATE], Moon phase text graphics: Moon phase. (line 45) * Special text %[FORMAT]'[ARGUMENT], actual local time in M[M...] format: Actual clocktime. (line 62) * Special text %[FORMAT]-[ARGUMENT], environment varibale: Contents of Environment variable. (line 6) * Special text %[FORMAT].[ARGUMENT], actual Universal time hour: Actual clocktime. (line 163) * Special text %[FORMAT]/[ARGUMENT], actual Universal time minute: Actual clocktime. (line 179) * Special text %[FORMAT]?[ARGUMENT], actual local time minute: Actual clocktime. (line 94) * Special text %[FORMAT]b[ARGUMENT], geographical distance and course angle: Geographical distance and course angle. (line 6) * Special text %[FORMAT]D[DATE], day number: Day number. (line 6) * Special text %[FORMAT]j[ARGUMENT], Julian day number: Julian day number. (line 6) * Special text %[FORMAT]K[DATE], weekday name: Weekday name. (line 6) * Special text %[FORMAT]M[DATE], month number: Month number. (line 6) * Special text %[FORMAT]N[DATE], day-of-year number: Day-of-year number. (line 6) * Special text %[FORMAT]U[DATE], month name: Month name. (line 6) * Special text %[FORMAT]Y[DATE], year number: Year number. (line 6) * Special text %[FORMAT]_[ARGUMENT], actual local time hour: Actual clocktime. (line 78) * Special text %[FORMAT]`[ARGUMENT], actual Universal time in M[M...]/DATE format: Actual clocktime. (line 145) * Special text %[FORMAT]{[ARGUMENT], actual local time 12-hour format suffix: Actual clocktime. (line 110) * Special text %[FORMAT]}[ARGUMENT], actual Universal time 12-hour format suffix: Actual clocktime. (line 196) * Special text starting character, %: Special Texts processed. (line 6) * Special texts: Table of Obsolete Special Texts. (line 6) * Special texts %?, exclusions without any argument: Exclusions without any argument. (line 6) * Special texts %?, exclusive day period: Exclusive day period. (line 6) * Special texts %?, highlighting: Highlighting. (line 6) * Special texts %?, inclusive day period: Inclusive day period. (line 6) * Special texts %?, replacements without any argument: Replacements without any argument. (line 6) * Special texts %?..., date exclusion: Exclusions. (line 6) * Special texts %?..., text replacement: Replacements. (line 6) * Special texts %?[DATE], biorhythm: Biorhythm. (line 6) * Special texts %?[DATE], exclusions with date argument: Exclusions with date argument. (line 6) * Special texts %?[DATE], replacements with date argument: Replacements with date argument. (line 6) * Special texts %[FORMAT]?, difference value: Other difference values. (line 6) * Special texts %[FORMAT]?ARGUMENT, Moon data: Moon data. (line 6) * Special texts %[FORMAT]?ARGUMENT, Sun data: Sun data. (line 6) * Special texts %[FORMAT]?[ARGUMENT], actual clocktime: Actual clocktime. (line 6) * Special texts %[FORMAT]?[ARGUMENT], replacements with other argument: Replacements with other argument. (line 6) * Special texts %[FORMAT]?[DATE], difference value: Difference value. (line 6) * Special texts %[FORMAT]?[DATE], Moon phase: Moon phase. (line 6) * Special texts %[FORMAT]?[DATE], weekday number: Weekday number. (line 6) * Special texts, obsolete: Obsolete Special Texts. (line 6) * Specified fiscal years, list: Lists of commands. (line 31) * Specified fiscal years, range: Ranges of commands. (line 49) * Specified month of selected years, range: Ranges of commands. (line 37) * Specified months of selected year, list: Lists of commands. (line 20) * Specified months of selected year, range: Ranges of commands. (line 22) * Specified months of selected years, range: Ranges of commands. (line 29) * Specified months of the current year, list: Lists of commands. (line 7) * Specified years, list: Lists of commands. (line 26) * Specified years, range: Ranges of commands. (line 44) * Standard and special date format in calendar sheet: Calendar options. (line 1428) * Standard and special date format in eternal holiday list: Calendar options. (line 1446) * Standard and special date format in fixed date list: Calendar options. (line 1464) * Standard calendar format: Calendar options. (line 1286) * Standard non-visibility period, Moon: Moon data. (line 250) * Standard non-visibility period, Sun: Sun data. (line 227) * Standard rise time, Moon: Moon data. (line 195) * Standard rise time, Sun: Sun data. (line 173) * Standard set time, Moon: Moon data. (line 223) * Standard set time, Sun: Sun data. (line 199) * Standard visibility period, Moon: Moon data. (line 242) * Standard visibility period, Sun: Sun data. (line 219) * Standard week number: Calendar options. (line 1372) * Standard week number <1>: Fixed date options. (line 765) * Standard week number <2>: Fixed date options. (line 946) * Standard week number <3>: Fixed date options. (line 976) * Standard week number <4>: Fixed date options. (line 1089) * Standard week number <5>: Fixed date options. (line 1123) * Standard week number <6>: Date part of a line. (line 57) * Standard week number <7>: Week number. (line 7) * Standard week number <8>: Glossary. (line 675) * Star day: Sun data. (line 473) * Star day <1>: Moon data. (line 438) * Star day <2>: Glossary. (line 681) * Star time: Sun data. (line 473) * Star time <1>: Moon data. (line 438) * Start of highlighting sequence 1 %1 special text: Highlighting. (line 9) * Start of highlighting sequence 1 %1 special text <1>: Special Texts Summary. (line 1885) * Start of highlighting sequence 1 %5 special text: Highlighting. (line 65) * Start of highlighting sequence 1 %5 special text <1>: Special Texts Summary. (line 1897) * Start of highlighting sequence 1 or 2 %9 special text: Highlighting. (line 109) * Start of highlighting sequence 1 or 2 %9 special text <1>: Special Texts Summary. (line 1913) * Start of highlighting sequence 2 %3 special text: Highlighting. (line 37) * Start of highlighting sequence 2 %3 special text <1>: Special Texts Summary. (line 1891) * Start of highlighting sequence 2 %7 special text: Highlighting. (line 87) * Start of highlighting sequence 2 %7 special text <1>: Special Texts Summary. (line 1905) * Starting date: Glossary. (line 686) * Starting date of fixed date: Inclusive date period. (line 11) * Starting date of fixed date <1>: Exclusive date period. (line 12) * Starting day of week, setting: Calendar options. (line 1469) * Statute mile: Geographical distance and course angle. (line 16) * Statute mile <1>: Glossary. (line 690) * String: Glossary. (line 693) * Structure of date part: Date part of a line. (line 6) * Structure of resource file: Structure of resource file. (line 6) * Style of representation of Moon data and times: Sun data. (line 890) * Style of representation of Moon data and times <1>: Moon data. (line 813) * Style of representation of Sun data and times: Sun data. (line 890) * Style of representation, geographical distance and course angle: Geographical distance and course angle. (line 16) * Subtraction by days of date variables: Date variables. (line 125) * Subtraction by weekdays of date variables: Date variables. (line 127) * Subtraction of text variables: Text variables. (line 301) * Summary of all %?... special texts: Special Texts Summary. (line 6) * Summary of all regular expressions: Regexp Summary. (line 6) * Summer point on the ecliptic: Glossary. (line 670) * Summer solstice: Calendar options. (line 48) * Summer solstice <1>: Glossary. (line 670) * Summertime: Sun data. (line 1079) * Sun and Moon data and times, set cycle displacement value: Fixed date options. (line 291) * Sun and Moon data and times, set cycle ending time value: Fixed date options. (line 225) * Sun and Moon data and times, set cycle timestep value: Fixed date options. (line 291) * Sun and Moon oriented special texts, Clocktime value: Sun data. (line 930) * Sun and Moon oriented special texts, signed angular value: Sun data. (line 1013) * Sun and Moon oriented special texts, signed decimal based rational number value: Sun data. (line 915) * Sun and Moon oriented special texts, signed time value: Sun data. (line 982) * Sun and Moon oriented special texts, unsigned angular value: Sun data. (line 998) * Sun and Moon oriented special texts, unsigned decimal based rational number value: Sun data. (line 894) * Sun and Moon oriented special texts, unsigned time value: Sun data. (line 966) * Sun data %[FORMAT]?ARGUMENT special texts: Sun data. (line 6) * Sun data %[FORMAT]?ARGUMENT special texts <1>: Special Texts Summary. (line 305) * Sun data and times, default mode: Sun data. (line 883) * Sun data and times, mode characters: Sun data. (line 23) * Sun data and times, special event oriented texts: Sun data. (line 939) * Sun data and times, style of representation: Sun data. (line 890) * Sun data and times, type of representation: Sun data. (line 890) * Sun oriented special texts, limitations: Sun data. (line 1209) * Sun oriented special texts, reference systems used: Sun data. (line 1209) * Sun oriented special texts, table of modes: Sun data. (line 35) * Sun oriented special texts, table of representation types: Sun data. (line 1110) * Sun's center, begin of amateur-astronomical %o*8ARGUMENT special text: Special Texts Summary. (line 523) * Sun's center, begin of amateur-astronomical %o8ARGUMENT special text: Special Texts Summary. (line 519) * Sun's center, begin of amateur-astronomical twilight %o*8ARGUMENT special text: Sun data. (line 287) * Sun's center, begin of amateur-astronomical twilight %o8ARGUMENT special text: Sun data. (line 287) * Sun's center, begin of astronomical twilight %o*9ARGUMENT special text: Sun data. (line 313) * Sun's center, begin of astronomical twilight %o*9ARGUMENT special text <1>: Special Texts Summary. (line 559) * Sun's center, begin of astronomical twilight %o9ARGUMENT special text: Sun data. (line 313) * Sun's center, begin of astronomical twilight %o9ARGUMENT special text <1>: Special Texts Summary. (line 555) * Sun's center, begin of civil twilight %o*6ARGUMENT special text: Sun data. (line 235) * Sun's center, begin of civil twilight %o*6ARGUMENT special text <1>: Special Texts Summary. (line 457) * Sun's center, begin of civil twilight %o6ARGUMENT special text: Sun data. (line 235) * Sun's center, begin of civil twilight %o6ARGUMENT special text <1>: Special Texts Summary. (line 453) * Sun's center, begin of nautical twilight %o*7ARGUMENT special text: Sun data. (line 261) * Sun's center, begin of nautical twilight %o*7ARGUMENT special text <1>: Special Texts Summary. (line 491) * Sun's center, begin of nautical twilight %o7ARGUMENT special text: Sun data. (line 261) * Sun's center, begin of nautical twilight %o7ARGUMENT special text <1>: Special Texts Summary. (line 487) * Sun's center, end of amateur-astronomical %s*8ARGUMENT special text: Special Texts Summary. (line 531) * Sun's center, end of amateur-astronomical %s8ARGUMENT special text: Special Texts Summary. (line 527) * Sun's center, end of amateur-astronomical twilight %s*8ARGUMENT special text: Sun data. (line 296) * Sun's center, end of amateur-astronomical twilight %s8ARGUMENT special text: Sun data. (line 296) * Sun's center, end of astronomical twilight %s*9ARGUMENT special text: Sun data. (line 327) * Sun's center, end of astronomical twilight %s*9ARGUMENT special text <1>: Special Texts Summary. (line 567) * Sun's center, end of astronomical twilight %s9ARGUMENT special text: Sun data. (line 327) * Sun's center, end of astronomical twilight %s9ARGUMENT special text <1>: Special Texts Summary. (line 563) * Sun's center, end of civil twilight %s*6ARGUMENT special text: Sun data. (line 244) * Sun's center, end of civil twilight %s*6ARGUMENT special text <1>: Special Texts Summary. (line 466) * Sun's center, end of civil twilight %s6ARGUMENT special text: Sun data. (line 244) * Sun's center, end of civil twilight %s6ARGUMENT special text <1>: Special Texts Summary. (line 461) * Sun's center, end of nautical twilight %s*7ARGUMENT special text: Sun data. (line 270) * Sun's center, end of nautical twilight %s*7ARGUMENT special text <1>: Special Texts Summary. (line 499) * Sun's center, end of nautical twilight %s7ARGUMENT special text: Sun data. (line 270) * Sun's center, end of nautical twilight %s7ARGUMENT special text <1>: Special Texts Summary. (line 495) * Sun's center, geometrical non-visibility %z*2ARGUMENT special text: Sun data. (line 105) * Sun's center, geometrical non-visibility %z*2ARGUMENT special text <1>: Special Texts Summary. (line 353) * Sun's center, geometrical non-visibility %z2ARGUMENT special text: Sun data. (line 105) * Sun's center, geometrical non-visibility %z2ARGUMENT special text <1>: Special Texts Summary. (line 349) * Sun's center, geometrical rise time %o*2ARGUMENT special text: Sun data. (line 81) * Sun's center, geometrical rise time %o*2ARGUMENT special text <1>: Special Texts Summary. (line 329) * Sun's center, geometrical rise time %o2ARGUMENT special text: Sun data. (line 81) * Sun's center, geometrical rise time %o2ARGUMENT special text <1>: Special Texts Summary. (line 325) * Sun's center, geometrical set time %s*2ARGUMENT special text: Sun data. (line 95) * Sun's center, geometrical set time %s*2ARGUMENT special text <1>: Special Texts Summary. (line 337) * Sun's center, geometrical set time %s2ARGUMENT special text: Sun data. (line 95) * Sun's center, geometrical set time %s2ARGUMENT special text <1>: Special Texts Summary. (line 333) * Sun's center, geometrical visibility %u*2ARGUMENT special text: Sun data. (line 100) * Sun's center, geometrical visibility %u*2ARGUMENT special text <1>: Special Texts Summary. (line 345) * Sun's center, geometrical visibility %u2ARGUMENT special text: Sun data. (line 100) * Sun's center, geometrical visibility %u2ARGUMENT special text <1>: Special Texts Summary. (line 341) * Sun's center, non-visibility %z*4ARGUMENT special text: Sun data. (line 168) * Sun's center, non-visibility %z*4ARGUMENT special text <1>: Special Texts Summary. (line 417) * Sun's center, non-visibility %z4ARGUMENT special text: Sun data. (line 168) * Sun's center, non-visibility %z4ARGUMENT special text <1>: Special Texts Summary. (line 413) * Sun's center, period above amateur-astronomical twilight reference altitude %u*8ARGUMENT special text: Sun data. (line 301) * Sun's center, period above amateur-astronomical twilight reference altitude %u*8ARGUMENT special text <1>: Special Texts Summary. (line 540) * Sun's center, period above amateur-astronomical twilight reference altitude %u8ARGUMENT special text: Sun data. (line 301) * Sun's center, period above amateur-astronomical twilight reference altitude %u8ARGUMENT special text <1>: Special Texts Summary. (line 535) * Sun's center, period above astronomical twilight reference altitude %u*9ARGUMENT special text: Sun data. (line 336) * Sun's center, period above astronomical twilight reference altitude %u*9ARGUMENT special text <1>: Special Texts Summary. (line 575) * Sun's center, period above astronomical twilight reference altitude %u9ARGUMENT special text: Sun data. (line 336) * Sun's center, period above astronomical twilight reference altitude %u9ARGUMENT special text <1>: Special Texts Summary. (line 571) * Sun's center, period above civil twilight reference altitude %u*6ARGUMENT special text: Sun data. (line 249) * Sun's center, period above civil twilight reference altitude %u*6ARGUMENT special text <1>: Special Texts Summary. (line 475) * Sun's center, period above civil twilight reference altitude %u6ARGUMENT special text: Sun data. (line 249) * Sun's center, period above civil twilight reference altitude %u6ARGUMENT special text <1>: Special Texts Summary. (line 471) * Sun's center, period above nautical twilight reference altitude %u*7ARGUMENT special text: Sun data. (line 275) * Sun's center, period above nautical twilight reference altitude %u*7ARGUMENT special text <1>: Special Texts Summary. (line 507) * Sun's center, period above nautical twilight reference altitude %u7ARGUMENT special text: Sun data. (line 275) * Sun's center, period above nautical twilight reference altitude %u7ARGUMENT special text <1>: Special Texts Summary. (line 503) * Sun's center, period below amateur-astronomical twilight reference altitude %z*8ARGUMENT special text: Sun data. (line 307) * Sun's center, period below amateur-astronomical twilight reference altitude %z*8ARGUMENT special text <1>: Special Texts Summary. (line 550) * Sun's center, period below amateur-astronomical twilight reference altitude %z8ARGUMENT special text: Sun data. (line 307) * Sun's center, period below amateur-astronomical twilight reference altitude %z8ARGUMENT special text <1>: Special Texts Summary. (line 545) * Sun's center, period below astronomical twilight reference altitude %z*9ARGUMENT special text: Sun data. (line 342) * Sun's center, period below astronomical twilight reference altitude %z*9ARGUMENT special text <1>: Special Texts Summary. (line 583) * Sun's center, period below astronomical twilight reference altitude %z9ARGUMENT special text: Sun data. (line 342) * Sun's center, period below astronomical twilight reference altitude %z9ARGUMENT special text <1>: Special Texts Summary. (line 579) * Sun's center, period below civil twilight reference altitude %z*6ARGUMENT special text: Sun data. (line 255) * Sun's center, period below civil twilight reference altitude %z*6ARGUMENT special text <1>: Special Texts Summary. (line 483) * Sun's center, period below civil twilight reference altitude %z6ARGUMENT special text: Sun data. (line 255) * Sun's center, period below civil twilight reference altitude %z6ARGUMENT special text <1>: Special Texts Summary. (line 479) * Sun's center, period below nautical twilight reference altitude %z*7ARGUMENT special text: Sun data. (line 281) * Sun's center, period below nautical twilight reference altitude %z*7ARGUMENT special text <1>: Special Texts Summary. (line 515) * Sun's center, period below nautical twilight reference altitude %z7ARGUMENT special text: Sun data. (line 281) * Sun's center, period below nautical twilight reference altitude %z7ARGUMENT special text <1>: Special Texts Summary. (line 511) * Sun's center, rise time %o*4ARGUMENT special text: Sun data. (line 139) * Sun's center, rise time %o*4ARGUMENT special text <1>: Special Texts Summary. (line 394) * Sun's center, rise time %o4ARGUMENT special text: Sun data. (line 139) * Sun's center, rise time %o4ARGUMENT special text <1>: Special Texts Summary. (line 391) * Sun's center, set time %s*4ARGUMENT special text: Sun data. (line 153) * Sun's center, set time %s*4ARGUMENT special text <1>: Special Texts Summary. (line 401) * Sun's center, set time %s4ARGUMENT special text: Sun data. (line 153) * Sun's center, set time %s4ARGUMENT special text <1>: Special Texts Summary. (line 398) * Sun's center, visibility %u*4ARGUMENT special text: Sun data. (line 163) * Sun's center, visibility %u*4ARGUMENT special text <1>: Special Texts Summary. (line 409) * Sun's center, visibility %u4ARGUMENT special text: Sun data. (line 163) * Sun's center, visibility %u4ARGUMENT special text <1>: Special Texts Summary. (line 405) * Sun's orbit: Sun data. (line 387) * Sun's orbit <1>: Moon data. (line 327) * Sun's orbit <2>: Moon data. (line 335) * Sun's upper limb, geometrical non-visibility %z*3ARGUMENT special text: Sun data. (line 134) * Sun's upper limb, geometrical non-visibility %z*3ARGUMENT special text <1>: Special Texts Summary. (line 387) * Sun's upper limb, geometrical non-visibility %z3ARGUMENT special text: Sun data. (line 134) * Sun's upper limb, geometrical non-visibility %z3ARGUMENT special text <1>: Special Texts Summary. (line 383) * Sun's upper limb, geometrical rise time %o*3ARGUMENT special text: Sun data. (line 110) * Sun's upper limb, geometrical rise time %o*3ARGUMENT special text <1>: Special Texts Summary. (line 362) * Sun's upper limb, geometrical rise time %o3ARGUMENT special text: Sun data. (line 110) * Sun's upper limb, geometrical rise time %o3ARGUMENT special text <1>: Special Texts Summary. (line 357) * Sun's upper limb, geometrical set time %s*3ARGUMENT special text: Sun data. (line 122) * Sun's upper limb, geometrical set time %s*3ARGUMENT special text <1>: Special Texts Summary. (line 371) * Sun's upper limb, geometrical set time %s3ARGUMENT special text: Sun data. (line 122) * Sun's upper limb, geometrical set time %s3ARGUMENT special text <1>: Special Texts Summary. (line 367) * Sun's upper limb, geometrical visibility %u*3ARGUMENT special text: Sun data. (line 129) * Sun's upper limb, geometrical visibility %u*3ARGUMENT special text <1>: Special Texts Summary. (line 379) * Sun's upper limb, geometrical visibility %u3ARGUMENT special text: Sun data. (line 129) * Sun's upper limb, geometrical visibility %u3ARGUMENT special text <1>: Special Texts Summary. (line 375) * Sun's upper limb, standard non-visibility %z*5ARGUMENT special text: Sun data. (line 227) * Sun's upper limb, standard non-visibility %z*5ARGUMENT special text <1>: Special Texts Summary. (line 449) * Sun's upper limb, standard non-visibility %z5ARGUMENT special text: Sun data. (line 227) * Sun's upper limb, standard non-visibility %z5ARGUMENT special text <1>: Special Texts Summary. (line 445) * Sun's upper limb, standard rise time %o*5ARGUMENT special text: Sun data. (line 173) * Sun's upper limb, standard rise time %o*5ARGUMENT special text <1>: Special Texts Summary. (line 425) * Sun's upper limb, standard rise time %o5ARGUMENT special text: Sun data. (line 173) * Sun's upper limb, standard rise time %o5ARGUMENT special text <1>: Special Texts Summary. (line 421) * Sun's upper limb, standard set time %s*5ARGUMENT special text: Sun data. (line 199) * Sun's upper limb, standard set time %s*5ARGUMENT special text <1>: Special Texts Summary. (line 433) * Sun's upper limb, standard set time %s5ARGUMENT special text: Sun data. (line 199) * Sun's upper limb, standard set time %s5ARGUMENT special text <1>: Special Texts Summary. (line 429) * Sun's upper limb, standard visibility %u*5ARGUMENT special text: Sun data. (line 219) * Sun's upper limb, standard visibility %u*5ARGUMENT special text <1>: Special Texts Summary. (line 441) * Sun's upper limb, standard visibility %u5ARGUMENT special text: Sun data. (line 219) * Sun's upper limb, standard visibility %u5ARGUMENT special text <1>: Special Texts Summary. (line 437) * Sun, amateur-astronomical twilight: Sun data. (line 287) * Sun, amateur-astronomical twilight <1>: Sun data. (line 296) * Sun, astronomical midnight time %o*0ARGUMENT special text: Sun data. (line 38) * Sun, astronomical midnight time %o*0ARGUMENT special text <1>: Special Texts Summary. (line 312) * Sun, astronomical midnight time %o0ARGUMENT special text: Sun data. (line 38) * Sun, astronomical midnight time %o0ARGUMENT special text <1>: Special Texts Summary. (line 308) * Sun, astronomical midnight time %s*0ARGUMENT special text: Sun data. (line 38) * Sun, astronomical midnight time %s*0ARGUMENT special text <1>: Special Texts Summary. (line 312) * Sun, astronomical midnight time %s0ARGUMENT special text: Sun data. (line 38) * Sun, astronomical midnight time %s0ARGUMENT special text <1>: Special Texts Summary. (line 308) * Sun, astronomical noon time %o*1ARGUMENT special text: Sun data. (line 50) * Sun, astronomical noon time %o*1ARGUMENT special text <1>: Special Texts Summary. (line 321) * Sun, astronomical noon time %o1ARGUMENT special text: Sun data. (line 50) * Sun, astronomical noon time %o1ARGUMENT special text <1>: Special Texts Summary. (line 317) * Sun, astronomical noon time %s*1ARGUMENT special text: Sun data. (line 50) * Sun, astronomical noon time %s*1ARGUMENT special text <1>: Special Texts Summary. (line 321) * Sun, astronomical noon time %s1ARGUMENT special text: Sun data. (line 50) * Sun, astronomical noon time %s1ARGUMENT special text <1>: Special Texts Summary. (line 317) * Sun, astronomical twilight: Sun data. (line 313) * Sun, astronomical twilight <1>: Sun data. (line 327) * Sun, astronomical unit: Sun data. (line 402) * Sun, azimuth: Sun data. (line 38) * Sun, base time %o*tARGUMENT special text: Sun data. (line 488) * Sun, base time %o*tARGUMENT special text <1>: Special Texts Summary. (line 777) * Sun, base time %otARGUMENT special text: Sun data. (line 488) * Sun, base time %otARGUMENT special text <1>: Special Texts Summary. (line 772) * Sun, base time %s*tARGUMENT special text: Sun data. (line 488) * Sun, base time %s*tARGUMENT special text <1>: Special Texts Summary. (line 777) * Sun, base time %stARGUMENT special text: Sun data. (line 488) * Sun, base time %stARGUMENT special text <1>: Special Texts Summary. (line 772) * Sun, civil twilight: Sun data. (line 235) * Sun, civil twilight <1>: Sun data. (line 244) * Sun, delta-t %o*rARGUMENT special text: Sun data. (line 466) * Sun, delta-t %o*rARGUMENT special text <1>: Special Texts Summary. (line 759) * Sun, delta-t %orARGUMENT special text: Sun data. (line 466) * Sun, delta-t %orARGUMENT special text <1>: Special Texts Summary. (line 759) * Sun, delta-t %s*rARGUMENT special text: Sun data. (line 466) * Sun, delta-t %s*rARGUMENT special text <1>: Special Texts Summary. (line 759) * Sun, delta-t %srARGUMENT special text: Sun data. (line 466) * Sun, delta-t %srARGUMENT special text <1>: Special Texts Summary. (line 759) * Sun, double shadow length time at afternoon %s*RARGUMENT special text: Sun data. (line 855) * Sun, double shadow length time at afternoon %s*RARGUMENT special text <1>: Special Texts Summary. (line 1096) * Sun, double shadow length time at afternoon %sRARGUMENT special text: Sun data. (line 855) * Sun, double shadow length time at afternoon %sRARGUMENT special text <1>: Special Texts Summary. (line 1092) * Sun, double shadow length time at forenoon %o*RARGUMENT special text: Sun data. (line 846) * Sun, double shadow length time at forenoon %o*RARGUMENT special text <1>: Special Texts Summary. (line 1087) * Sun, double shadow length time at forenoon %oRARGUMENT special text: Sun data. (line 846) * Sun, double shadow length time at forenoon %oRARGUMENT special text <1>: Special Texts Summary. (line 1082) * Sun, equation of time %o*wARGUMENT special text: Sun data. (line 508) * Sun, equation of time %o*wARGUMENT special text <1>: Special Texts Summary. (line 798) * Sun, equation of time %owARGUMENT special text: Sun data. (line 508) * Sun, equation of time %owARGUMENT special text <1>: Special Texts Summary. (line 793) * Sun, equation of time %s*wARGUMENT special text: Sun data. (line 508) * Sun, equation of time %s*wARGUMENT special text <1>: Special Texts Summary. (line 798) * Sun, equation of time %swARGUMENT special text: Sun data. (line 508) * Sun, equation of time %swARGUMENT special text <1>: Special Texts Summary. (line 793) * Sun, evening width geocentric: Sun data. (line 799) * Sun, evening width topocentric: Sun data. (line 751) * Sun, geocentric azimuth %o*kARGUMENT special text: Sun data. (line 433) * Sun, geocentric azimuth %o*kARGUMENT special text <1>: Special Texts Summary. (line 692) * Sun, geocentric azimuth %okARGUMENT special text: Sun data. (line 433) * Sun, geocentric azimuth %okARGUMENT special text <1>: Special Texts Summary. (line 687) * Sun, geocentric azimuth %s*kARGUMENT special text: Sun data. (line 433) * Sun, geocentric azimuth %s*kARGUMENT special text <1>: Special Texts Summary. (line 692) * Sun, geocentric azimuth %skARGUMENT special text: Sun data. (line 433) * Sun, geocentric azimuth %skARGUMENT special text <1>: Special Texts Summary. (line 687) * Sun, geocentric azimuth at standard rise time %o*PARGUMENT special text: Sun data. (line 789) * Sun, geocentric azimuth at standard rise time %o*PARGUMENT special text <1>: Special Texts Summary. (line 1035) * Sun, geocentric azimuth at standard rise time %oPARGUMENT special text: Sun data. (line 789) * Sun, geocentric azimuth at standard rise time %oPARGUMENT special text <1>: Special Texts Summary. (line 1031) * Sun, geocentric azimuth at standard set time %s*PARGUMENT special text: Sun data. (line 799) * Sun, geocentric azimuth at standard set time %s*PARGUMENT special text <1>: Special Texts Summary. (line 1043) * Sun, geocentric azimuth at standard set time %sPARGUMENT special text: Sun data. (line 799) * Sun, geocentric azimuth at standard set time %sPARGUMENT special text <1>: Special Texts Summary. (line 1039) * Sun, geocentric data: Sun data. (line 348) * Sun, geocentric declination %o*lARGUMENT special text: Sun data. (line 437) * Sun, geocentric declination %o*lARGUMENT special text <1>: Special Texts Summary. (line 702) * Sun, geocentric declination %olARGUMENT special text: Sun data. (line 437) * Sun, geocentric declination %olARGUMENT special text <1>: Special Texts Summary. (line 697) * Sun, geocentric declination %s*lARGUMENT special text: Sun data. (line 437) * Sun, geocentric declination %s*lARGUMENT special text <1>: Special Texts Summary. (line 702) * Sun, geocentric declination %slARGUMENT special text: Sun data. (line 437) * Sun, geocentric declination %slARGUMENT special text <1>: Special Texts Summary. (line 697) * Sun, geocentric distance %o*oARGUMENT special text: Sun data. (line 454) * Sun, geocentric distance %o*oARGUMENT special text <1>: Special Texts Summary. (line 732) * Sun, geocentric distance %ooARGUMENT special text: Sun data. (line 454) * Sun, geocentric distance %ooARGUMENT special text <1>: Special Texts Summary. (line 727) * Sun, geocentric distance %s*oARGUMENT special text: Sun data. (line 454) * Sun, geocentric distance %s*oARGUMENT special text <1>: Special Texts Summary. (line 732) * Sun, geocentric distance %soARGUMENT special text: Sun data. (line 454) * Sun, geocentric distance %soARGUMENT special text <1>: Special Texts Summary. (line 727) * Sun, geocentric ecliptic longitude %o*mARGUMENT special text: Sun data. (line 446) * Sun, geocentric ecliptic longitude %o*mARGUMENT special text <1>: Special Texts Summary. (line 712) * Sun, geocentric ecliptic longitude %omARGUMENT special text: Sun data. (line 446) * Sun, geocentric ecliptic longitude %omARGUMENT special text <1>: Special Texts Summary. (line 707) * Sun, geocentric ecliptic longitude %s*mARGUMENT special text: Sun data. (line 446) * Sun, geocentric ecliptic longitude %s*mARGUMENT special text <1>: Special Texts Summary. (line 712) * Sun, geocentric ecliptic longitude %smARGUMENT special text: Sun data. (line 446) * Sun, geocentric ecliptic longitude %smARGUMENT special text <1>: Special Texts Summary. (line 707) * Sun, geocentric elevation %o*jARGUMENT special text: Sun data. (line 425) * Sun, geocentric elevation %o*jARGUMENT special text <1>: Special Texts Summary. (line 681) * Sun, geocentric elevation %ojARGUMENT special text: Sun data. (line 425) * Sun, geocentric elevation %ojARGUMENT special text <1>: Special Texts Summary. (line 676) * Sun, geocentric elevation %s*jARGUMENT special text: Sun data. (line 425) * Sun, geocentric elevation %s*jARGUMENT special text <1>: Special Texts Summary. (line 681) * Sun, geocentric elevation %sjARGUMENT special text: Sun data. (line 425) * Sun, geocentric elevation %sjARGUMENT special text <1>: Special Texts Summary. (line 676) * Sun, geocentric elevation at standard rise time %o*OARGUMENT special text: Sun data. (line 775) * Sun, geocentric elevation at standard rise time %o*OARGUMENT special text <1>: Special Texts Summary. (line 1019) * Sun, geocentric elevation at standard rise time %oOARGUMENT special text: Sun data. (line 775) * Sun, geocentric elevation at standard rise time %oOARGUMENT special text <1>: Special Texts Summary. (line 1015) * Sun, geocentric elevation at standard set time %s*OARGUMENT special text: Sun data. (line 782) * Sun, geocentric elevation at standard set time %s*OARGUMENT special text <1>: Special Texts Summary. (line 1027) * Sun, geocentric elevation at standard set time %sOARGUMENT special text: Sun data. (line 782) * Sun, geocentric elevation at standard set time %sOARGUMENT special text <1>: Special Texts Summary. (line 1023) * Sun, geocentric elevation at Sun's astronomical midnight time %o*MARGUMENT special text: Sun data. (line 761) * Sun, geocentric elevation at Sun's astronomical midnight time %o*MARGUMENT special text <1>: Special Texts Summary. (line 1001) * Sun, geocentric elevation at Sun's astronomical midnight time %oMARGUMENT special text: Sun data. (line 761) * Sun, geocentric elevation at Sun's astronomical midnight time %oMARGUMENT special text <1>: Special Texts Summary. (line 996) * Sun, geocentric elevation at Sun's astronomical midnight time %s*MARGUMENT special text: Sun data. (line 761) * Sun, geocentric elevation at Sun's astronomical midnight time %s*MARGUMENT special text <1>: Special Texts Summary. (line 1001) * Sun, geocentric elevation at Sun's astronomical midnight time %sMARGUMENT special text: Sun data. (line 761) * Sun, geocentric elevation at Sun's astronomical midnight time %sMARGUMENT special text <1>: Special Texts Summary. (line 996) * Sun, geocentric elevation at Sun's astronomical noon time %o*NARGUMENT special text: Sun data. (line 768) * Sun, geocentric elevation at Sun's astronomical noon time %o*NARGUMENT special text <1>: Special Texts Summary. (line 1011) * Sun, geocentric elevation at Sun's astronomical noon time %oNARGUMENT special text: Sun data. (line 768) * Sun, geocentric elevation at Sun's astronomical noon time %oNARGUMENT special text <1>: Special Texts Summary. (line 1006) * Sun, geocentric elevation at Sun's astronomical noon time %s*NARGUMENT special text: Sun data. (line 768) * Sun, geocentric elevation at Sun's astronomical noon time %s*NARGUMENT special text <1>: Special Texts Summary. (line 1011) * Sun, geocentric elevation at Sun's astronomical noon time %sNARGUMENT special text: Sun data. (line 768) * Sun, geocentric elevation at Sun's astronomical noon time %sNARGUMENT special text <1>: Special Texts Summary. (line 1006) * Sun, geocentric horizontal parallax %o*pARGUMENT special text: Sun data. (line 458) * Sun, geocentric horizontal parallax %o*pARGUMENT special text <1>: Special Texts Summary. (line 741) * Sun, geocentric horizontal parallax %opARGUMENT special text: Sun data. (line 458) * Sun, geocentric horizontal parallax %opARGUMENT special text <1>: Special Texts Summary. (line 736) * Sun, geocentric horizontal parallax %s*pARGUMENT special text: Sun data. (line 458) * Sun, geocentric horizontal parallax %s*pARGUMENT special text <1>: Special Texts Summary. (line 741) * Sun, geocentric horizontal parallax %spARGUMENT special text: Sun data. (line 458) * Sun, geocentric horizontal parallax %spARGUMENT special text <1>: Special Texts Summary. (line 736) * Sun, geocentric right ascension %o*nARGUMENT special text: Sun data. (line 450) * Sun, geocentric right ascension %o*nARGUMENT special text <1>: Special Texts Summary. (line 722) * Sun, geocentric right ascension %onARGUMENT special text: Sun data. (line 450) * Sun, geocentric right ascension %onARGUMENT special text <1>: Special Texts Summary. (line 717) * Sun, geocentric right ascension %s*nARGUMENT special text: Sun data. (line 450) * Sun, geocentric right ascension %s*nARGUMENT special text <1>: Special Texts Summary. (line 722) * Sun, geocentric right ascension %snARGUMENT special text: Sun data. (line 450) * Sun, geocentric right ascension %snARGUMENT special text <1>: Special Texts Summary. (line 717) * Sun, geocentric semidiameter %o*qARGUMENT special text: Sun data. (line 462) * Sun, geocentric semidiameter %o*qARGUMENT special text <1>: Special Texts Summary. (line 751) * Sun, geocentric semidiameter %oqARGUMENT special text: Sun data. (line 462) * Sun, geocentric semidiameter %oqARGUMENT special text <1>: Special Texts Summary. (line 746) * Sun, geocentric semidiameter %s*qARGUMENT special text: Sun data. (line 462) * Sun, geocentric semidiameter %s*qARGUMENT special text <1>: Special Texts Summary. (line 751) * Sun, geocentric semidiameter %sqARGUMENT special text: Sun data. (line 462) * Sun, geocentric semidiameter %sqARGUMENT special text <1>: Special Texts Summary. (line 746) * Sun, highest culmination point: Sun data. (line 50) * Sun, Julian date %o*uARGUMENT special text: Sun data. (line 498) * Sun, Julian date %o*uARGUMENT special text <1>: Special Texts Summary. (line 783) * Sun, Julian date %ouARGUMENT special text: Sun data. (line 498) * Sun, Julian date %ouARGUMENT special text <1>: Special Texts Summary. (line 783) * Sun, Julian date %s*uARGUMENT special text: Sun data. (line 498) * Sun, Julian date %s*uARGUMENT special text <1>: Special Texts Summary. (line 783) * Sun, Julian date %suARGUMENT special text: Sun data. (line 498) * Sun, Julian date %suARGUMENT special text <1>: Special Texts Summary. (line 783) * Sun, Julian Ephemeris date %o*vARGUMENT special text: Sun data. (line 503) * Sun, Julian Ephemeris date %o*vARGUMENT special text <1>: Special Texts Summary. (line 789) * Sun, Julian Ephemeris date %ovARGUMENT special text: Sun data. (line 503) * Sun, Julian Ephemeris date %ovARGUMENT special text <1>: Special Texts Summary. (line 789) * Sun, Julian Ephemeris date %s*vARGUMENT special text: Sun data. (line 503) * Sun, Julian Ephemeris date %s*vARGUMENT special text <1>: Special Texts Summary. (line 789) * Sun, Julian Ephemeris date %svARGUMENT special text: Sun data. (line 503) * Sun, Julian Ephemeris date %svARGUMENT special text <1>: Special Texts Summary. (line 789) * Sun, local sidereal time %o*sARGUMENT special text: Sun data. (line 473) * Sun, local sidereal time %o*sARGUMENT special text <1>: Special Texts Summary. (line 767) * Sun, local sidereal time %osARGUMENT special text: Sun data. (line 473) * Sun, local sidereal time %osARGUMENT special text <1>: Special Texts Summary. (line 763) * Sun, local sidereal time %s*sARGUMENT special text: Sun data. (line 473) * Sun, local sidereal time %s*sARGUMENT special text <1>: Special Texts Summary. (line 767) * Sun, local sidereal time %ssARGUMENT special text: Sun data. (line 473) * Sun, local sidereal time %ssARGUMENT special text <1>: Special Texts Summary. (line 763) * Sun, lowest culmination point: Sun data. (line 38) * Sun, mean: Sun data. (line 508) * Sun, midnight height geocentric: Sun data. (line 761) * Sun, midnight height topocentric: Sun data. (line 713) * Sun, morning width geocentric: Sun data. (line 789) * Sun, morning width topocentric: Sun data. (line 741) * Sun, nautical twilight: Sun data. (line 261) * Sun, nautical twilight <1>: Sun data. (line 270) * Sun, noon height geocentric: Sun data. (line 768) * Sun, noon height topocentric: Sun data. (line 720) * Sun, noon line: Sun data. (line 38) * Sun, period of double or shorter shadow length %u*RARGUMENT special text: Sun data. (line 871) * Sun, period of double or shorter shadow length %u*RARGUMENT special text <1>: Special Texts Summary. (line 1104) * Sun, period of double or shorter shadow length %uRARGUMENT special text: Sun data. (line 871) * Sun, period of double or shorter shadow length %uRARGUMENT special text <1>: Special Texts Summary. (line 1100) * Sun, period of longer than double shadow length %z*RARGUMENT special text: Sun data. (line 877) * Sun, period of longer than double shadow length %z*RARGUMENT special text <1>: Special Texts Summary. (line 1112) * Sun, period of longer than double shadow length %zRARGUMENT special text: Sun data. (line 877) * Sun, period of longer than double shadow length %zRARGUMENT special text <1>: Special Texts Summary. (line 1108) * Sun, period of longer than single shadow length %z*QARGUMENT special text: Sun data. (line 840) * Sun, period of longer than single shadow length %z*QARGUMENT special text <1>: Special Texts Summary. (line 1077) * Sun, period of longer than single shadow length %zQARGUMENT special text: Sun data. (line 840) * Sun, period of longer than single shadow length %zQARGUMENT special text <1>: Special Texts Summary. (line 1073) * Sun, period of single or shorter shadow length %u*QARGUMENT special text: Sun data. (line 834) * Sun, period of single or shorter shadow length %u*QARGUMENT special text <1>: Special Texts Summary. (line 1069) * Sun, period of single or shorter shadow length %uQARGUMENT special text: Sun data. (line 834) * Sun, period of single or shorter shadow length %uQARGUMENT special text <1>: Special Texts Summary. (line 1065) * Sun, refraction %o*iARGUMENT special text: Sun data. (line 421) * Sun, refraction %o*iARGUMENT special text <1>: Special Texts Summary. (line 672) * Sun, refraction %oiARGUMENT special text: Sun data. (line 421) * Sun, refraction %oiARGUMENT special text <1>: Special Texts Summary. (line 667) * Sun, refraction %s*iARGUMENT special text: Sun data. (line 421) * Sun, refraction %s*iARGUMENT special text <1>: Special Texts Summary. (line 672) * Sun, refraction %siARGUMENT special text: Sun data. (line 421) * Sun, refraction %siARGUMENT special text <1>: Special Texts Summary. (line 667) * Sun, rise azimuth geocentric: Sun data. (line 789) * Sun, rise azimuth topocentric: Sun data. (line 741) * Sun, rise height geocentric: Sun data. (line 775) * Sun, rise height topocentric: Sun data. (line 727) * Sun, set azimuth geocentric: Sun data. (line 799) * Sun, set azimuth topocentric: Sun data. (line 751) * Sun, set height geocentric: Sun data. (line 782) * Sun, set height topocentric: Sun data. (line 734) * Sun, single shadow length time at afternoon %s*QARGUMENT special text: Sun data. (line 818) * Sun, single shadow length time at afternoon %s*QARGUMENT special text <1>: Special Texts Summary. (line 1061) * Sun, single shadow length time at afternoon %sQARGUMENT special text: Sun data. (line 818) * Sun, single shadow length time at afternoon %sQARGUMENT special text <1>: Special Texts Summary. (line 1057) * Sun, single shadow length time at forenoon %o*QARGUMENT special text: Sun data. (line 809) * Sun, single shadow length time at forenoon %o*QARGUMENT special text <1>: Special Texts Summary. (line 1052) * Sun, single shadow length time at forenoon %oQARGUMENT special text: Sun data. (line 809) * Sun, single shadow length time at forenoon %oQARGUMENT special text <1>: Special Texts Summary. (line 1047) * Sun, standard non-visibility period: Sun data. (line 227) * Sun, standard rise time: Sun data. (line 173) * Sun, standard set time: Sun data. (line 199) * Sun, standard visibility period: Sun data. (line 219) * Sun, topocentric azimuth %o*bARGUMENT special text: Sun data. (line 372) * Sun, topocentric azimuth %o*bARGUMENT special text <1>: Special Texts Summary. (line 603) * Sun, topocentric azimuth %obARGUMENT special text: Sun data. (line 372) * Sun, topocentric azimuth %obARGUMENT special text <1>: Special Texts Summary. (line 598) * Sun, topocentric azimuth %s*bARGUMENT special text: Sun data. (line 372) * Sun, topocentric azimuth %s*bARGUMENT special text <1>: Special Texts Summary. (line 603) * Sun, topocentric azimuth %sbARGUMENT special text: Sun data. (line 372) * Sun, topocentric azimuth %sbARGUMENT special text <1>: Special Texts Summary. (line 598) * Sun, topocentric azimuth at standard rise time %o*LARGUMENT special text: Sun data. (line 741) * Sun, topocentric azimuth at standard rise time %o*LARGUMENT special text <1>: Special Texts Summary. (line 983) * Sun, topocentric azimuth at standard rise time %oLARGUMENT special text: Sun data. (line 741) * Sun, topocentric azimuth at standard rise time %oLARGUMENT special text <1>: Special Texts Summary. (line 979) * Sun, topocentric azimuth at standard set time %s*LARGUMENT special text: Sun data. (line 751) * Sun, topocentric azimuth at standard set time %s*LARGUMENT special text <1>: Special Texts Summary. (line 991) * Sun, topocentric azimuth at standard set time %sLARGUMENT special text: Sun data. (line 751) * Sun, topocentric azimuth at standard set time %sLARGUMENT special text <1>: Special Texts Summary. (line 987) * Sun, topocentric data: Sun data. (line 348) * Sun, topocentric declination %o*cARGUMENT special text: Sun data. (line 376) * Sun, topocentric declination %o*cARGUMENT special text <1>: Special Texts Summary. (line 613) * Sun, topocentric declination %ocARGUMENT special text: Sun data. (line 376) * Sun, topocentric declination %ocARGUMENT special text <1>: Special Texts Summary. (line 608) * Sun, topocentric declination %s*cARGUMENT special text: Sun data. (line 376) * Sun, topocentric declination %s*cARGUMENT special text <1>: Special Texts Summary. (line 613) * Sun, topocentric declination %scARGUMENT special text: Sun data. (line 376) * Sun, topocentric declination %scARGUMENT special text <1>: Special Texts Summary. (line 608) * Sun, topocentric distance %o*fARGUMENT special text: Sun data. (line 402) * Sun, topocentric distance %o*fARGUMENT special text <1>: Special Texts Summary. (line 643) * Sun, topocentric distance %ofARGUMENT special text: Sun data. (line 402) * Sun, topocentric distance %ofARGUMENT special text <1>: Special Texts Summary. (line 638) * Sun, topocentric distance %s*fARGUMENT special text: Sun data. (line 402) * Sun, topocentric distance %s*fARGUMENT special text <1>: Special Texts Summary. (line 643) * Sun, topocentric distance %sfARGUMENT special text: Sun data. (line 402) * Sun, topocentric distance %sfARGUMENT special text <1>: Special Texts Summary. (line 638) * Sun, topocentric ecliptic longitude %o*dARGUMENT special text: Sun data. (line 387) * Sun, topocentric ecliptic longitude %o*dARGUMENT special text <1>: Special Texts Summary. (line 623) * Sun, topocentric ecliptic longitude %odARGUMENT special text: Sun data. (line 387) * Sun, topocentric ecliptic longitude %odARGUMENT special text <1>: Special Texts Summary. (line 618) * Sun, topocentric ecliptic longitude %s*dARGUMENT special text: Sun data. (line 387) * Sun, topocentric ecliptic longitude %s*dARGUMENT special text <1>: Special Texts Summary. (line 623) * Sun, topocentric ecliptic longitude %sdARGUMENT special text: Sun data. (line 387) * Sun, topocentric ecliptic longitude %sdARGUMENT special text <1>: Special Texts Summary. (line 618) * Sun, topocentric elevation %o*aARGUMENT special text: Sun data. (line 348) * Sun, topocentric elevation %o*aARGUMENT special text <1>: Special Texts Summary. (line 593) * Sun, topocentric elevation %oaARGUMENT special text: Sun data. (line 348) * Sun, topocentric elevation %oaARGUMENT special text <1>: Special Texts Summary. (line 588) * Sun, topocentric elevation %s*aARGUMENT special text: Sun data. (line 348) * Sun, topocentric elevation %s*aARGUMENT special text <1>: Special Texts Summary. (line 593) * Sun, topocentric elevation %saARGUMENT special text: Sun data. (line 348) * Sun, topocentric elevation %saARGUMENT special text <1>: Special Texts Summary. (line 588) * Sun, topocentric elevation at standard rise time %o*KARGUMENT special text: Sun data. (line 727) * Sun, topocentric elevation at standard rise time %o*KARGUMENT special text <1>: Special Texts Summary. (line 967) * Sun, topocentric elevation at standard rise time %oKARGUMENT special text: Sun data. (line 727) * Sun, topocentric elevation at standard rise time %oKARGUMENT special text <1>: Special Texts Summary. (line 963) * Sun, topocentric elevation at standard set time %s*KARGUMENT special text: Sun data. (line 734) * Sun, topocentric elevation at standard set time %s*KARGUMENT special text <1>: Special Texts Summary. (line 975) * Sun, topocentric elevation at standard set time %sKARGUMENT special text: Sun data. (line 734) * Sun, topocentric elevation at standard set time %sKARGUMENT special text <1>: Special Texts Summary. (line 971) * Sun, topocentric elevation at Sun's astronomical midnight time %o*IARGUMENT special text: Sun data. (line 713) * Sun, topocentric elevation at Sun's astronomical midnight time %o*IARGUMENT special text <1>: Special Texts Summary. (line 949) * Sun, topocentric elevation at Sun's astronomical midnight time %oIARGUMENT special text: Sun data. (line 713) * Sun, topocentric elevation at Sun's astronomical midnight time %oIARGUMENT special text <1>: Special Texts Summary. (line 944) * Sun, topocentric elevation at Sun's astronomical midnight time %s*IARGUMENT special text: Sun data. (line 713) * Sun, topocentric elevation at Sun's astronomical midnight time %s*IARGUMENT special text <1>: Special Texts Summary. (line 949) * Sun, topocentric elevation at Sun's astronomical midnight time %sIARGUMENT special text: Sun data. (line 713) * Sun, topocentric elevation at Sun's astronomical midnight time %sIARGUMENT special text <1>: Special Texts Summary. (line 944) * Sun, topocentric elevation at Sun's astronomical noon time %o*JARGUMENT special text: Sun data. (line 720) * Sun, topocentric elevation at Sun's astronomical noon time %o*JARGUMENT special text <1>: Special Texts Summary. (line 959) * Sun, topocentric elevation at Sun's astronomical noon time %oJARGUMENT special text: Sun data. (line 720) * Sun, topocentric elevation at Sun's astronomical noon time %oJARGUMENT special text <1>: Special Texts Summary. (line 954) * Sun, topocentric elevation at Sun's astronomical noon time %s*JARGUMENT special text: Sun data. (line 720) * Sun, topocentric elevation at Sun's astronomical noon time %s*JARGUMENT special text <1>: Special Texts Summary. (line 959) * Sun, topocentric elevation at Sun's astronomical noon time %sJARGUMENT special text: Sun data. (line 720) * Sun, topocentric elevation at Sun's astronomical noon time %sJARGUMENT special text <1>: Special Texts Summary. (line 954) * Sun, topocentric horizontal parallax %o*gARGUMENT special text: Sun data. (line 410) * Sun, topocentric horizontal parallax %o*gARGUMENT special text <1>: Special Texts Summary. (line 652) * Sun, topocentric horizontal parallax %ogARGUMENT special text: Sun data. (line 410) * Sun, topocentric horizontal parallax %ogARGUMENT special text <1>: Special Texts Summary. (line 647) * Sun, topocentric horizontal parallax %s*gARGUMENT special text: Sun data. (line 410) * Sun, topocentric horizontal parallax %s*gARGUMENT special text <1>: Special Texts Summary. (line 652) * Sun, topocentric horizontal parallax %sgARGUMENT special text: Sun data. (line 410) * Sun, topocentric horizontal parallax %sgARGUMENT special text <1>: Special Texts Summary. (line 647) * Sun, topocentric right ascension %o*eARGUMENT special text: Sun data. (line 395) * Sun, topocentric right ascension %o*eARGUMENT special text <1>: Special Texts Summary. (line 633) * Sun, topocentric right ascension %oeARGUMENT special text: Sun data. (line 395) * Sun, topocentric right ascension %oeARGUMENT special text <1>: Special Texts Summary. (line 628) * Sun, topocentric right ascension %s*eARGUMENT special text: Sun data. (line 395) * Sun, topocentric right ascension %s*eARGUMENT special text <1>: Special Texts Summary. (line 633) * Sun, topocentric right ascension %seARGUMENT special text: Sun data. (line 395) * Sun, topocentric right ascension %seARGUMENT special text <1>: Special Texts Summary. (line 628) * Sun, topocentric semidiameter %o*hARGUMENT special text: Sun data. (line 417) * Sun, topocentric semidiameter %o*hARGUMENT special text <1>: Special Texts Summary. (line 662) * Sun, topocentric semidiameter %ohARGUMENT special text: Sun data. (line 417) * Sun, topocentric semidiameter %ohARGUMENT special text <1>: Special Texts Summary. (line 657) * Sun, topocentric semidiameter %s*hARGUMENT special text: Sun data. (line 417) * Sun, topocentric semidiameter %s*hARGUMENT special text <1>: Special Texts Summary. (line 662) * Sun, topocentric semidiameter %shARGUMENT special text: Sun data. (line 417) * Sun, topocentric semidiameter %shARGUMENT special text <1>: Special Texts Summary. (line 657) * Sun/Moon, delta astronomical midnight time %o*FARGUMENT special text: Sun data. (line 642) * Sun/Moon, delta astronomical midnight time %o*FARGUMENT special text <1>: Special Texts Summary. (line 913) * Sun/Moon, delta astronomical midnight time %oFARGUMENT special text: Sun data. (line 642) * Sun/Moon, delta astronomical midnight time %oFARGUMENT special text <1>: Special Texts Summary. (line 908) * Sun/Moon, delta astronomical midnight time %s*FARGUMENT special text: Sun data. (line 642) * Sun/Moon, delta astronomical midnight time %s*FARGUMENT special text <1>: Special Texts Summary. (line 913) * Sun/Moon, delta astronomical midnight time %sFARGUMENT special text: Sun data. (line 642) * Sun/Moon, delta astronomical midnight time %sFARGUMENT special text <1>: Special Texts Summary. (line 908) * Sun/Moon, delta astronomical noon time %o*GARGUMENT special text: Sun data. (line 661) * Sun/Moon, delta astronomical noon time %o*GARGUMENT special text <1>: Special Texts Summary. (line 923) * Sun/Moon, delta astronomical noon time %oGARGUMENT special text: Sun data. (line 661) * Sun/Moon, delta astronomical noon time %oGARGUMENT special text <1>: Special Texts Summary. (line 918) * Sun/Moon, delta astronomical noon time %s*GARGUMENT special text: Sun data. (line 661) * Sun/Moon, delta astronomical noon time %s*GARGUMENT special text <1>: Special Texts Summary. (line 923) * Sun/Moon, delta astronomical noon time %sGARGUMENT special text: Sun data. (line 661) * Sun/Moon, delta astronomical noon time %sGARGUMENT special text <1>: Special Texts Summary. (line 918) * Sun/Moon, delta geocentric azimuth %o*AARGUMENT special text: Sun data. (line 572) * Sun/Moon, delta geocentric azimuth %o*AARGUMENT special text <1>: Special Texts Summary. (line 839) * Sun/Moon, delta geocentric azimuth %oAARGUMENT special text: Sun data. (line 572) * Sun/Moon, delta geocentric azimuth %oAARGUMENT special text <1>: Special Texts Summary. (line 834) * Sun/Moon, delta geocentric azimuth %s*AARGUMENT special text: Sun data. (line 572) * Sun/Moon, delta geocentric azimuth %s*AARGUMENT special text <1>: Special Texts Summary. (line 839) * Sun/Moon, delta geocentric azimuth %sAARGUMENT special text: Sun data. (line 572) * Sun/Moon, delta geocentric azimuth %sAARGUMENT special text <1>: Special Texts Summary. (line 834) * Sun/Moon, delta geocentric azimuth at standard sunrise time %o*EARGUMENT special text: Sun data. (line 626) * Sun/Moon, delta geocentric azimuth at standard sunrise time %o*EARGUMENT special text <1>: Special Texts Summary. (line 895) * Sun/Moon, delta geocentric azimuth at standard sunrise time %oEARGUMENT special text: Sun data. (line 626) * Sun/Moon, delta geocentric azimuth at standard sunrise time %oEARGUMENT special text <1>: Special Texts Summary. (line 891) * Sun/Moon, delta geocentric azimuth at standard sunset time %s*EARGUMENT special text: Sun data. (line 634) * Sun/Moon, delta geocentric azimuth at standard sunset time %s*EARGUMENT special text <1>: Special Texts Summary. (line 903) * Sun/Moon, delta geocentric azimuth at standard sunset time %sEARGUMENT special text: Sun data. (line 634) * Sun/Moon, delta geocentric azimuth at standard sunset time %sEARGUMENT special text <1>: Special Texts Summary. (line 899) * Sun/Moon, delta geocentric elevation %o*zARGUMENT special text: Sun data. (line 566) * Sun/Moon, delta geocentric elevation %o*zARGUMENT special text <1>: Special Texts Summary. (line 829) * Sun/Moon, delta geocentric elevation %ozARGUMENT special text: Sun data. (line 566) * Sun/Moon, delta geocentric elevation %ozARGUMENT special text <1>: Special Texts Summary. (line 824) * Sun/Moon, delta geocentric elevation %s*zARGUMENT special text: Sun data. (line 566) * Sun/Moon, delta geocentric elevation %s*zARGUMENT special text <1>: Special Texts Summary. (line 829) * Sun/Moon, delta geocentric elevation %szARGUMENT special text: Sun data. (line 566) * Sun/Moon, delta geocentric elevation %szARGUMENT special text <1>: Special Texts Summary. (line 824) * Sun/Moon, delta geocentric elevation at standard sunrise time %o*DARGUMENT special text: Sun data. (line 610) * Sun/Moon, delta geocentric elevation at standard sunrise time %o*DARGUMENT special text <1>: Special Texts Summary. (line 879) * Sun/Moon, delta geocentric elevation at standard sunrise time %oDARGUMENT special text: Sun data. (line 610) * Sun/Moon, delta geocentric elevation at standard sunrise time %oDARGUMENT special text <1>: Special Texts Summary. (line 875) * Sun/Moon, delta geocentric elevation at standard sunset time %s*DARGUMENT special text: Sun data. (line 618) * Sun/Moon, delta geocentric elevation at standard sunset time %s*DARGUMENT special text <1>: Special Texts Summary. (line 887) * Sun/Moon, delta geocentric elevation at standard sunset time %sDARGUMENT special text: Sun data. (line 618) * Sun/Moon, delta geocentric elevation at standard sunset time %sDARGUMENT special text <1>: Special Texts Summary. (line 883) * Sun/Moon, delta standard rise time %(*KARGUMENT special text: Moon data. (line 620) * Sun/Moon, delta standard rise time %(KARGUMENT special text: Moon data. (line 620) * Sun/Moon, delta standard rise time %o*HARGUMENT special text: Sun data. (line 679) * Sun/Moon, delta standard rise time %o*HARGUMENT special text <1>: Special Texts Summary. (line 931) * Sun/Moon, delta standard rise time %oHARGUMENT special text: Sun data. (line 679) * Sun/Moon, delta standard rise time %oHARGUMENT special text <1>: Special Texts Summary. (line 927) * Sun/Moon, delta standard set time %)*KARGUMENT special text: Moon data. (line 637) * Sun/Moon, delta standard set time %)KARGUMENT special text: Moon data. (line 637) * Sun/Moon, delta standard set time %s*HARGUMENT special text: Sun data. (line 696) * Sun/Moon, delta standard set time %s*HARGUMENT special text <1>: Special Texts Summary. (line 939) * Sun/Moon, delta standard set time %sHARGUMENT special text: Sun data. (line 696) * Sun/Moon, delta standard set time %sHARGUMENT special text <1>: Special Texts Summary. (line 935) * Sun/Moon, delta topocentric azimuth %o*yARGUMENT special text: Sun data. (line 546) * Sun/Moon, delta topocentric azimuth %o*yARGUMENT special text <1>: Special Texts Summary. (line 819) * Sun/Moon, delta topocentric azimuth %oyARGUMENT special text: Sun data. (line 546) * Sun/Moon, delta topocentric azimuth %oyARGUMENT special text <1>: Special Texts Summary. (line 814) * Sun/Moon, delta topocentric azimuth %s*yARGUMENT special text: Sun data. (line 546) * Sun/Moon, delta topocentric azimuth %s*yARGUMENT special text <1>: Special Texts Summary. (line 819) * Sun/Moon, delta topocentric azimuth %syARGUMENT special text: Sun data. (line 546) * Sun/Moon, delta topocentric azimuth %syARGUMENT special text <1>: Special Texts Summary. (line 814) * Sun/Moon, delta topocentric azimuth at standard sunrise time %o*CARGUMENT special text: Sun data. (line 594) * Sun/Moon, delta topocentric azimuth at standard sunrise time %o*CARGUMENT special text <1>: Special Texts Summary. (line 863) * Sun/Moon, delta topocentric azimuth at standard sunrise time %oCARGUMENT special text: Sun data. (line 594) * Sun/Moon, delta topocentric azimuth at standard sunrise time %oCARGUMENT special text <1>: Special Texts Summary. (line 859) * Sun/Moon, delta topocentric azimuth at standard sunset time %s*CARGUMENT special text: Sun data. (line 602) * Sun/Moon, delta topocentric azimuth at standard sunset time %s*CARGUMENT special text <1>: Special Texts Summary. (line 871) * Sun/Moon, delta topocentric azimuth at standard sunset time %sCARGUMENT special text: Sun data. (line 602) * Sun/Moon, delta topocentric azimuth at standard sunset time %sCARGUMENT special text <1>: Special Texts Summary. (line 867) * Sun/Moon, delta topocentric elevation %o*xARGUMENT special text: Sun data. (line 532) * Sun/Moon, delta topocentric elevation %o*xARGUMENT special text <1>: Special Texts Summary. (line 809) * Sun/Moon, delta topocentric elevation %oxARGUMENT special text: Sun data. (line 532) * Sun/Moon, delta topocentric elevation %oxARGUMENT special text <1>: Special Texts Summary. (line 804) * Sun/Moon, delta topocentric elevation %s*xARGUMENT special text: Sun data. (line 532) * Sun/Moon, delta topocentric elevation %s*xARGUMENT special text <1>: Special Texts Summary. (line 809) * Sun/Moon, delta topocentric elevation %sxARGUMENT special text: Sun data. (line 532) * Sun/Moon, delta topocentric elevation %sxARGUMENT special text <1>: Special Texts Summary. (line 804) * Sun/Moon, delta topocentric elevation at standard sunrise time %o*BARGUMENT special text: Sun data. (line 578) * Sun/Moon, delta topocentric elevation at standard sunrise time %o*BARGUMENT special text <1>: Special Texts Summary. (line 847) * Sun/Moon, delta topocentric elevation at standard sunrise time %oBARGUMENT special text: Sun data. (line 578) * Sun/Moon, delta topocentric elevation at standard sunrise time %oBARGUMENT special text <1>: Special Texts Summary. (line 843) * Sun/Moon, delta topocentric elevation at standard sunset time %s*BARGUMENT special text: Sun data. (line 586) * Sun/Moon, delta topocentric elevation at standard sunset time %s*BARGUMENT special text <1>: Special Texts Summary. (line 855) * Sun/Moon, delta topocentric elevation at standard sunset time %sBARGUMENT special text: Sun data. (line 586) * Sun/Moon, delta topocentric elevation at standard sunset time %sBARGUMENT special text <1>: Special Texts Summary. (line 851) * Sundial: Sun data. (line 508) * Sunrise: Sun data. (line 6) * Sunrise and sunset, limit to actual day: Fixed date options. (line 173) * Sunrise and sunset, set reference altitude: Fixed date options. (line 125) * Sunset: Sun data. (line 6) * Suppress calendar sheet: Calendar options. (line 1380) * Suppress leading blank line of eternal holiday list: Calendar options. (line 40) * Suppress leading blank line of fixed date list: Fixed date options. (line 785) * Suppress title text of eternal holiday list: Calendar options. (line 45) * Suppress title text of fixed date list: Fixed date options. (line 815) * Switch character: Glossary. (line 696) * Switch character, -: Command line arguments. (line 22) * Switch character, --: Command line arguments. (line 22) * Switch character, /: Command line arguments. (line 22) * Synodic month: Glossary. (line 426) * Synodic month, Moon: Moon data. (line 38) * Table of all environment variables: Environment Variables. (line 6) * Table of all error codes: Error Codes. (line 6) * Table of all exit codes: Error Codes. (line 6) * Table of all Metasymbols within this document: Metasymbols. (line 6) * Table of command separator characters: Commands. (line 38) * Table of modes of the Moon oriented special texts: Moon data. (line 35) * Table of modes of the Sun oriented special texts: Sun data. (line 35) * Table of obsolete date format elements: Table of Obsolete Date Format Elements. (line 6) * Table of obsolete date formats: Table of Obsolete Date Formats. (line 6) * Table of obsolete fixed default date format texts: Table of Obsolete Date Formats. (line 6) * Table of obsolete special texts: Table of Obsolete Special Texts. (line 6) * Table of representation types of the Moon oriented special texts: Moon data. (line 841) * Table of representation types of the Sun oriented special texts: Sun data. (line 1110) * tcal, options: Invoking tcal. (line 6) * tcal, utility: Invoking tcal. (line 6) * Temperature of Earth's atmosphere, set: Fixed date options. (line 152) * TERM environment variable: Environment Variables. (line 109) * Terrestrial Dynamical time (TDT): Sun data. (line 466) * Terrestrial Dynamical time (TDT) <1>: Moon data. (line 431) * Territory code: Calendar options. (line 150) * Territory code <1>: Internationalization. (line 122) * Text part: Glossary. (line 702) * Text part of a line: Text part of a line. (line 6) * Text part of a line, limitations: Text part of a line. (line 6) * Text part of a resource file line: Text part of a line. (line 6) * Text replacement %?... special texts: Replacements. (line 6) * Text variables: Text variables. (line 6) * Text variables, addition: Text variables. (line 300) * Text variables, assignments: Fixed date options. (line 33) * Text variables, assignments <1>: Structure of resource file. (line 73) * Text variables, assignments <2>: Text variables. (line 6) * Text variables, definition: Fixed date options. (line 33) * Text variables, definition <1>: Text variables. (line 6) * Text variables, export of local: Fixed date options. (line 121) * Text variables, export of local <1>: Text variables. (line 279) * Text variables, global: Fixed date options. (line 33) * Text variables, global <1>: Text variables. (line 6) * Text variables, local: Text variables. (line 6) * Text variables, management: Fixed date options. (line 33) * Text variables, management <1>: Text variables. (line 6) * Text variables, name space: Fixed date options. (line 33) * Text variables, name space <1>: Text variables. (line 242) * Text variables, numerical: Text variables. (line 292) * Text variables, operations: Structure of resource file. (line 73) * Text variables, operations <1>: Text variables. (line 292) * Text variables, references: Structure of resource file. (line 83) * Text variables, scope: Fixed date options. (line 33) * Text variables, scope <1>: Text variables. (line 356) * Text variables, simple decrement: Text variables. (line 298) * Text variables, simple increment: Text variables. (line 297) * Text variables, subtraction: Text variables. (line 301) * Text variables, total number: Text variables. (line 6) * Text variables, visibility: Text variables. (line 242) * Text variables, visibility of local: Fixed date options. (line 121) * Text variables, visibility of local <1>: Text variables. (line 279) * Textual date %n[ARGUMENT] special text: Textual date. (line 6) * Textual date %n[ARGUMENT] special text <1>: Special Texts Summary. (line 271) * The gcal2txt utility: Invoking gcal2txt. (line 6) * The tcal utility: Invoking tcal. (line 6) * The txt2gcal utility: Invoking txt2gcal. (line 6) * Time offset value, relative: Calendar options. (line 1506) * Time offset value, relative <1>: Calendar options. (line 1532) * Time, 12-hours display format: Actual clocktime. (line 33) * Time, 24-hours display format: Actual clocktime. (line 33) * Timezone: Sun data. (line 1079) * Timezone <1>: Moon data. (line 821) * Today's fixed dates: Fixed date options. (line 435) * Tomorrows' fixed dates: Fixed date options. (line 1337) * Topocentric data: Glossary. (line 706) * Topocentric data, Moon: Moon data. (line 258) * Topocentric data, Sun: Sun data. (line 348) * Total number of date variables: Date variables. (line 6) * Total number of text variables: Text variables. (line 6) * True solar day: Sun data. (line 508) * True solar day <1>: Glossary. (line 711) * True solar time: Sun data. (line 508) * True solar time <1>: Glossary. (line 711) * True track: Glossary. (line 718) * Twilight: Glossary. (line 731) * Twilight, amateur-astronomical: Sun data. (line 287) * Twilight, amateur-astronomical <1>: Sun data. (line 296) * Twilight, astronomical: Sun data. (line 313) * Twilight, astronomical <1>: Sun data. (line 327) * Twilight, civil: Sun data. (line 235) * Twilight, civil <1>: Sun data. (line 244) * Twilight, nautical: Sun data. (line 261) * Twilight, nautical <1>: Sun data. (line 270) * txt2gcal, options: Invoking txt2gcal. (line 6) * txt2gcal, utility: Invoking txt2gcal. (line 6) * TXT2GCALPROG environment variable: Text variables. (line 112) * TXT2GCALPROG environment variable <1>: Environment Variables. (line 112) * Type of representation of Moon data and times: Sun data. (line 890) * Type of representation of Moon data and times <1>: Moon data. (line 813) * Type of representation of Sun data and times: Sun data. (line 890) * TZ environment variable: Environment Variables. (line 122) * Unit, Earth equator radius: Moon data. (line 353) * Universal time (UTC): Calendar options. (line 1491) * Universal time (UTC) <1>: Moon phase. (line 6) * Universal time (UTC) <2>: Actual clocktime. (line 6) * Universal time (UTC) <3>: Actual clocktime. (line 126) * Universal time (UTC) <4>: Actual clocktime. (line 145) * Universal time (UTC) <5>: Actual clocktime. (line 163) * Universal time (UTC) <6>: Actual clocktime. (line 179) * Universal time (UTC) <7>: Actual clocktime. (line 196) * Universal time (UTC) <8>: Actual clocktime. (line 213) * Universal time (UTC) <9>: Julian day number. (line 6) * Universal time (UTC) <10>: Sun data. (line 488) * Universal time (UTC) <11>: Sun data. (line 1079) * Universal time (UTC) <12>: Moon data. (line 453) * Universal time 12-hour format suffix, display: Actual clocktime. (line 196) * Universal time hour, display: Actual clocktime. (line 163) * Universal time in HH:MM/DATE format, display: Actual clocktime. (line 126) * Universal time in M[M...]/DATE format, display: Actual clocktime. (line 145) * Universal time minute, display: Actual clocktime. (line 179) * Unix: Glossary. (line 737) * Unsigned angular value, Sun and Moon oriented special texts: Sun data. (line 998) * Unsigned decimal based rational number value, Sun and Moon oriented special texts: Sun data. (line 894) * Unsigned time value, Sun and Moon oriented special texts: Sun data. (line 966) * Use Eastern Orthodox churches' leap year rule: Calendar options. (line 1320) * USER environment variable: Global options. (line 202) * USER environment variable <1>: Environment Variables. (line 126) * Utilities for Gcal: Gcal Utilities. (line 6) * Utility gcal2txt: Invoking gcal2txt. (line 6) * Utility tcal: Invoking tcal. (line 6) * Utility txt2gcal: Invoking txt2gcal. (line 6) * Valid date parts of appearance factors of days: Appearance factor of days. (line 49) * Valid date parts of lists of days: Lists of days. (line 28) * Valid date parts of ranges of days: Ranges of days. (line 31) * Valid date parts of repetition factors of days: Repetition factor of days. (line 41) * Validity of omission values in date part: Date part of a line. (line 146) * Vernal equinox: Calendar options. (line 48) * Vernal equinox point on the ecliptic: Sun data. (line 387) * Vernal equinox point on the ecliptic <1>: Sun data. (line 395) * Vernal equinox point on the ecliptic <2>: Sun data. (line 473) * Vernal equinox point on the ecliptic <3>: Moon data. (line 327) * Vernal equinox point on the ecliptic <4>: Moon data. (line 346) * Vernal equinox point on the ecliptic <5>: Moon data. (line 438) * Vernal equinox point on the ecliptic <6>: Glossary. (line 747) * Version number, finding: Common options. (line 37) * Visibility of date variables: Date variables. (line 55) * Visibility of local date variables: Fixed date options. (line 28) * Visibility of local date variables <1>: Date variables. (line 104) * Visibility of local text variables: Fixed date options. (line 121) * Visibility of local text variables <1>: Text variables. (line 279) * Visibility of text variables: Text variables. (line 242) * Waning Half Moon phase: Calendar options. (line 48) * Waxing Half Moon phase: Calendar options. (line 48) * Week number %?[DATE] special text: Special Texts Summary. (line 168) * Week number %k[DATE] special text: Week number. (line 6) * Week number, determine type: Calendar options. (line 1354) * Week number, ISO-8601:1988: Calendar options. (line 1361) * Week number, ISO-8601:1988 <1>: Fixed date options. (line 765) * Week number, ISO-8601:1988 <2>: Fixed date options. (line 946) * Week number, ISO-8601:1988 <3>: Fixed date options. (line 976) * Week number, ISO-8601:1988 <4>: Fixed date options. (line 1089) * Week number, ISO-8601:1988 <5>: Fixed date options. (line 1123) * Week number, ISO-8601:1988 <6>: Date part of a line. (line 57) * Week number, ISO-8601:1988 <7>: Week number. (line 7) * Week number, standard: Calendar options. (line 1372) * Week number, standard <1>: Fixed date options. (line 765) * Week number, standard <2>: Fixed date options. (line 946) * Week number, standard <3>: Fixed date options. (line 976) * Week number, standard <4>: Fixed date options. (line 1089) * Week number, standard <5>: Fixed date options. (line 1123) * Week number, standard <6>: Date part of a line. (line 57) * Week number, standard <7>: Week number. (line 7) * Week numbers in calendar sheet: Calendar options. (line 1347) * Weekday name %[FORMAT]K[DATE] special text: Weekday name. (line 6) * Weekday name %[FORMAT]K[DATE] special text <1>: Special Texts Summary. (line 90) * Weekday number %>1&*E[DATE] special text: Weekday number. (line 36) * Weekday number %>1&*E[DATE] special text <1>: Special Texts Summary. (line 112) * Weekday number %>1&*I[DATE] special text: Weekday number. (line 55) * Weekday number %>1&*I[DATE] special text <1>: Special Texts Summary. (line 118) * Weekday number %>1&*J[DATE] special text: Weekday number. (line 74) * Weekday number %>1&*J[DATE] special text <1>: Special Texts Summary. (line 124) * Weekday number %>1&*S[DATE] special text: Weekday number. (line 95) * Weekday number %>1&*S[DATE] special text <1>: Special Texts Summary. (line 130) * Weekday number %>1&*T[DATE] special text: Weekday number. (line 118) * Weekday number %>1&*T[DATE] special text <1>: Special Texts Summary. (line 136) * Weekday number %>1&*W[DATE] special text: Weekday number. (line 18) * Weekday number %>1&*W[DATE] special text <1>: Special Texts Summary. (line 106) * Weekday number %E[DATE] special text: Weekday number. (line 28) * Weekday number %E[DATE] special text <1>: Special Texts Summary. (line 109) * Weekday number %I[DATE] special text: Weekday number. (line 46) * Weekday number %I[DATE] special text <1>: Special Texts Summary. (line 115) * Weekday number %J[DATE] special text: Weekday number. (line 65) * Weekday number %J[DATE] special text <1>: Special Texts Summary. (line 121) * Weekday number %S[DATE] special text: Weekday number. (line 84) * Weekday number %S[DATE] special text <1>: Special Texts Summary. (line 127) * Weekday number %T[DATE] special text: Weekday number. (line 107) * Weekday number %T[DATE] special text <1>: Special Texts Summary. (line 133) * Weekday number %W[DATE] special text: Weekday number. (line 10) * Weekday number %W[DATE] special text <1>: Special Texts Summary. (line 103) * Weekday number %[FORMAT]?[DATE] special texts: Weekday number. (line 6) * Weekday number %[FORMAT]?[DATE] special texts <1>: Special Texts Summary. (line 101) * Weeks' fixed dates: Fixed date options. (line 1349) * Whitespace character: Text part of a line. (line 93) * Whitespace character <1>: Comment line. (line 6) * Whitespace character <2>: Error Codes. (line 6) * Whitespace character <3>: Glossary. (line 751) * Whitespace separator character: Options. (line 66) * Whitespace separator character <1>: Options. (line 73) * Whitespace separator character <2>: Structure of resource file. (line 6) * Whitespace separator character <3>: Include directives. (line 23) * Winter point on the ecliptic: Glossary. (line 756) * Winter solstice: Calendar options. (line 48) * Winter solstice <1>: Glossary. (line 756) * Wintertime: Sun data. (line 1079) * Word: Glossary. (line 761) * Word boundaries, matching in regexp: Regexp Operators. (line 278) * Word, regexp definition: Regexp Operators. (line 254) * Year calendar sheet blocks, number: Calendar options. (line 1384) * Year calendar sheet, force output: Calendar options. (line 1384) * Year difference value: Difference value. (line 10) * Year mode, single: Single commands. (line 18) * Year number %>04*Y[DATE] special text: Year number. (line 14) * Year number %>04*Y[DATE] special text <1>: Special Texts Summary. (line 200) * Year number %Y[DATE] special text: Year number. (line 7) * Year number %Y[DATE] special text <1>: Special Texts Summary. (line 197) * Year number %[FORMAT]Y[DATE] special text: Year number. (line 6) * Year number %[FORMAT]Y[DATE] special text <1>: Special Texts Summary. (line 195) * Years' fixed dates: Fixed date options. (line 1424) * Zodiacal line: Sun data. (line 387) * Zodiacal line <1>: Moon data. (line 327) * Zodiacal line <2>: Moon data. (line 335) * Zodiacal marker holidays in eternal holiday list: Calendar options. (line 132) * Zuhr prayer time: Glossary. (line 765) * Zuhr, Islamic prayer time: Sun data. (line 50)  Tag Table: Node: Top1601 Node: Preface8091 Node: Preface-Footnotes19168 Ref: Preface-Footnote-119227 Ref: Preface-Footnote-219530 Node: Gcal Introduction19600 Node: Gcal Introduction-Footnotes23164 Ref: Gcal Introduction-Footnote-123243 Ref: Gcal Introduction-Footnote-223275 Ref: Gcal Introduction-Footnote-323297 Node: Invoking Gcal23317 Node: Invoking Gcal-Footnotes24677 Ref: Invoking Gcal-Footnote-124748 Node: Command line arguments24839 Node: Command line arguments-Footnotes26514 Ref: Command line arguments-Footnote-126603 Node: Options26642 Node: Options-Footnotes29977 Ref: Options-Footnote-130036 Node: Common options30074 Node: Global options31317 Ref: x-response-file31501 Ref: x-debug-internal32376 Ref: x-debug-abort32917 Ref: x-pager33133 Ref: x-highlighting35861 Ref: x-mail39841 Node: Global options-Footnotes41968 Ref: Global options-Footnote-142041 Ref: Global options-Footnote-242108 Ref: Global options-Footnote-342159 Ref: Global options-Footnote-442206 Ref: Global options-Footnote-542250 Ref: Global options-Footnote-642320 Ref: Global options-Footnote-742376 Node: Calendar options42426 Ref: x-holiday-list42666 Ref: x-astronomical-holidays44031 Ref: x-bahai-holidays44456 Ref: x-chinese-flexible-holidays44843 Ref: x-chinese-holidays45235 Ref: x-islamic-civil-holidays45761 Ref: x-japanese-flexible-holidays45992 Ref: x-japanese-holidays46343 Ref: x-persian-jalaali-holidays47547 Ref: x-cc-holidays48223 Ref: x-type65883 Ref: x-orthodox-calendar66958 Ref: x-iso-week-number68495 Ref: x-blocks69923 Ref: x-starting-day72763 Ref: x-time-offset73423 Ref: x-date-format80065 Ref: x-translate-string83888 Node: Calendar options-Footnotes85605 Ref: Calendar options-Footnote-185682 Ref: Calendar options-Footnote-285767 Ref: Calendar options-Footnote-385806 Ref: Calendar options-Footnote-485876 Ref: Calendar options-Footnote-586074 Node: Fixed date options86176 Ref: x-date-variable86357 Ref: x-text-variable87446 Ref: x-adjust-value92008 Ref: x-atmosphere93220 Ref: x-limit94301 Ref: x-cycle-end96899 Ref: x-cycle-step100091 Ref: x-precise102580 Ref: x-execute-command103216 Ref: x-filter-text105377 Ref: x-ignore-case106551 Ref: x-list-of-fixed-dates107078 Ref: x-resource-file108915 Ref: x-biorhythm-axis115747 Ref: x-moonimage-lines117044 Ref: x-list-mode125690 Ref: x-period-of-fixed-dates125977 Node: Fixed date options-Footnotes150194 Ref: Fixed date options-Footnote-1150275 Ref: Fixed date options-Footnote-2150542 Ref: Fixed date options-Footnote-3150701 Ref: Fixed date options-Footnote-4150953 Ref: Fixed date options-Footnote-5151075 Ref: Fixed date options-Footnote-6151253 Ref: Fixed date options-Footnote-7151429 Ref: Fixed date options-Footnote-8151486 Ref: Fixed date options-Footnote-9151558 Ref: Fixed date options-Footnote-10151605 Ref: Fixed date options-Footnote-11151652 Ref: Fixed date options-Footnote-12151737 Ref: Fixed date options-Footnote-13151765 Ref: Fixed date options-Footnote-14151820 Ref: Fixed date options-Footnote-15151875 Ref: Fixed date options-Footnote-16151942 Node: Response file152009 Node: Actual date modifier154153 Node: Commands163402 Node: Single commands165578 Ref: x-mm-yyyy166442 Node: 3-Month mode commands167555 Node: Lists of commands168420 Node: Ranges of commands169605 Node: The GCAL environment variable170711 Node: Eternal Holidays171668 Node: Fixed Dates176363 Node: Resource file181302 Ref: x-File-searching-mechanism182233 Node: Resource file-Footnotes185690 Ref: Resource file-Footnote-1185761 Ref: Resource file-Footnote-2185902 Ref: Resource file-Footnote-3186021 Ref: Resource file-Footnote-4186057 Ref: Resource file-Footnote-5186123 Node: Structure of resource file186253 Node: Structure of resource file-Footnotes188896 Ref: Structure of resource file-Footnote-1188993 Ref: Structure of resource file-Footnote-2189065 Node: Date part of a line189259 Node: Further date part attributes195711 Node: Lists of days197082 Node: Ranges of days200234 Node: Ranges of days-Footnotes204805 Ref: Ranges of days-Footnote-1204878 Ref: Ranges of days-Footnote-2204962 Node: Repetition factor of days204989 Node: Repetition factor of days-Footnotes209060 Ref: Repetition factor of days-Footnote-1209155 Ref: Repetition factor of days-Footnote-2209187 Node: Appearance factor of days209282 Node: Appearance factor of days-Footnotes215903 Ref: Appearance factor of days-Footnote-1215998 Node: Text part of a line216082 Node: Text part of a line-Footnotes221884 Ref: Text part of a line-Footnote-1221967 Ref: Text part of a line-Footnote-2221994 Ref: Text part of a line-Footnote-3222039 Ref: Text part of a line-Footnote-4222134 Node: Special Texts processed222205 Node: Special Texts processed-Footnotes224449 Ref: Special Texts processed-Footnote-1224540 Node: Comment line224558 Node: Comment line-Footnotes227008 Ref: Comment line-Footnote-1227077 Node: Include directives227111 Node: Include directives-Footnotes230010 Ref: Include directives-Footnote-1230091 Ref: Include directives-Footnote-2230167 Ref: Include directives-Footnote-3230228 Ref: Include directives-Footnote-4230336 Ref: Include directives-Footnote-5230419 Ref: Include directives-Footnote-6230476 Node: Date variables230583 Node: Date variables-Footnotes236969 Ref: Date variables-Footnote-1237042 Ref: Date variables-Footnote-2237309 Ref: Date variables-Footnote-3237381 Ref: Date variables-Footnote-4237456 Node: Text variables237492 Node: Text variables-Footnotes251845 Ref: Text variables-Footnote-1251918 Ref: Text variables-Footnote-2251993 Node: Resource file examples252029 Node: Resource file examples-Footnotes265372 Ref: Resource file examples-Footnote-1265461 Node: Todays Calendar265528 Node: Gcal Utilities270207 Node: Invoking tcal270913 Node: Invoking tcal-Footnotes272754 Ref: Invoking tcal-Footnote-1272825 Node: Invoking txt2gcal272876 Node: Invoking gcal2txt275234 Node: Internationalization277223 Node: Internationalization-Footnotes283006 Ref: Internationalization-Footnote-1283091 Ref: Internationalization-Footnote-2283152 Ref: Internationalization-Footnote-3283209 Ref: Internationalization-Footnote-4283275 Ref: Internationalization-Footnote-5283381 Ref: Internationalization-Footnote-6283463 Node: Metasymbols283570 Node: Regular Expressions285033 Node: Regexp Usage286647 Node: Regexp Usage-Footnotes287270 Ref: Regexp Usage-Footnote-1287339 Node: Regexp Operators287423 Node: Regexp Operators-Footnotes298936 Ref: Regexp Operators-Footnote-1299013 Ref: Regexp Operators-Footnote-2299082 Ref: Regexp Operators-Footnote-3299134 Ref: Regexp Operators-Footnote-4299223 Ref: Regexp Operators-Footnote-5299281 Node: Regexp Summary299343 Node: Regexp Summary-Footnotes301559 Ref: Regexp Summary-Footnote-1301632 Node: Special Texts301699 Node: Exclusions305378 Node: Exclusions with date argument305923 Node: Inclusive date period307084 Node: Exclusive date period310530 Node: Exclusions without any argument313940 Node: Inclusive day period315002 Node: Exclusive day period316164 Node: Replacements317267 Node: Replacements with date argument318159 Node: Replacements with date argument-Footnotes319762 Ref: Replacements with date argument-Footnote-1319869 Node: Weekday name319958 Node: Weekday number321022 Node: Day-of-year number326488 Node: Day number328030 Node: Week number329397 Node: Month name330218 Node: Month number330983 Node: Year number332384 Node: Moon phase333137 Node: Biorhythm336239 Node: Difference value340532 Ref: x-Age-value341104 Node: Replacements with other argument342074 Node: Actual clocktime343232 Ref: x-Actual-local-time344821 Node: Actual clocktime-Footnotes352770 Ref: Actual clocktime-Footnote-1352847 Node: Textual date352906 Node: Julian day number353600 Node: Geographical distance and course angle355392 Node: Geographical distance and course angle-Footnotes360154 Ref: Geographical distance and course angle-Footnote-1360275 Node: Sun data360974 Ref: x-Sun-midnight362822 Ref: x-Sun-noon363612 Ref: x-Sun-standard-rise370972 Ref: x-Sun-standard-set372680 Ref: x-Sun-asr-1409258 Ref: x-Sun-asr-2411516 Ref: x-Sun-representation413510 Ref: x-Sun-event-texts415864 Ref: x-Sun-arguments420362 Node: Moon data433553 Ref: x-Moon-midnight435402 Ref: x-Moon-noon436723 Ref: x-Moon-standard-rise445213 Ref: x-Moon-standard-set447138 Node: Contents of Environment variable493093 Node: Replacements without any argument493666 Node: Other difference values494092 Node: Highlighting496843 Node: Shell Command503936 Node: Special Texts Summary505355 Node: Obsolete Special Texts581806 Node: Table of Obsolete Special Texts582798 Node: Table of Obsolete Date Format Elements585834 Node: Table of Obsolete Date Formats587475 Node: Format Instruction588284 Node: Coding Scheme590994 Node: Coding Scheme Table 1592476 Node: Coding Scheme Table 2595451 Node: Environment Variables597841 Ref: x-GCAL598097 Ref: x-GCAL_COLUMNS598186 Ref: x-COLUMNS598186 Ref: x-GCAL_DATE_FORMAT598375 Ref: x-GCAL_LINES598543 Ref: x-LINES598543 Ref: x-GCAL_SYS_DATADIR598728 Ref: x-GCAL_USR_DATADIR598927 Ref: x-GCALANSI599158 Ref: x-GCALPATH599392 Ref: x-GCALPROG599587 Ref: x-HOME600062 Ref: x-LOGNAME600822 Ref: x-MAILPROG600975 Ref: x-MAILTO601258 Ref: x-PAGER601458 Ref: x-PATH601623 Ref: x-TERM601809 Ref: x-TXT2GCALPROG601891 Ref: x-USER602589 Node: Error Codes602770 Ref: x-126-Error-code603054 Ref: x-119-Error-code603509 Ref: x-118-Error-code603609 Ref: x-113-Error-code603941 Ref: x-2-Error-code604598 Ref: x-1-Error-code604665 Node: Glossary604815 Node: Argument Index632234 Node: Variable Index660413 Node: Table Index666799 Node: GNU Free Documentation License674555 Node: Concept Index699727  End Tag Table gcal-4.1/doc/en/fdl.texi0000664000000000000000000005603612353520435012000 00000000000000@c The GNU Free Documentation License. @center Version 1.3, 3 November 2008 @c This file is intended to be included within another document, @c hence no sectioning command or @node. @display Copyright @copyright{} 2000, 2001, 2002, 2007, 2008, 2010, 2011, 2013 Free Software Foundation, Inc. @uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @end display @enumerate 0 @item PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document @dfn{free} in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of ``copyleft'', which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. @item APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The ``Document'', below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as ``you''. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A ``Modified Version'' of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A ``Secondary Section'' is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The ``Invariant Sections'' are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The ``Cover Texts'' are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A ``Transparent'' copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain @sc{ascii} without markup, Texinfo input format, La@TeX{} input format, @acronym{SGML} or @acronym{XML} using a publicly available @acronym{DTD}, and standard-conforming simple @acronym{HTML}, PostScript or @acronym{PDF} designed for human modification. Examples of transparent image formats include @acronym{PNG}, @acronym{XCF} and @acronym{JPG}. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, @acronym{SGML} or @acronym{XML} for which the @acronym{DTD} and/or processing tools are not generally available, and the machine-generated @acronym{HTML}, PostScript or @acronym{PDF} produced by some word processors for output purposes only. The ``Title Page'' means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, ``Title Page'' means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The ``publisher'' means any person or entity that distributes copies of the Document to the public. A section ``Entitled XYZ'' means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as ``Acknowledgements'', ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' of such a section when you modify the Document means that it remains a section ``Entitled XYZ'' according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. @item VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. @item COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. @item MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: @enumerate A @item Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. @item List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. @item State on the Title page the name of the publisher of the Modified Version, as the publisher. @item Preserve all the copyright notices of the Document. @item Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. @item Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. @item Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. @item Include an unaltered copy of this License. @item Preserve the section Entitled ``History'', Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled ``History'' in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. @item Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the ``History'' section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. @item For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. @item Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. @item Delete any section Entitled ``Endorsements''. Such a section may not be included in the Modified Version. @item Do not retitle any existing section to be Entitled ``Endorsements'' or to conflict in title with any Invariant Section. @item Preserve any Warranty Disclaimers. @end enumerate If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled ``Endorsements'', provided it contains nothing but endorsements of your Modified Version by various parties---for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. @item COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled ``History'' in the various original documents, forming one section Entitled ``History''; likewise combine any sections Entitled ``Acknowledgements'', and any sections Entitled ``Dedications''. You must delete all sections Entitled ``Endorsements.'' @item COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. @item AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an ``aggregate'' if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. @item TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled ``Acknowledgements'', ``Dedications'', or ``History'', the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. @item TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. @item FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See @uref{http://www.gnu.org/copyleft/}. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License ``or any later version'' applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. @item RELICENSING ``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A ``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the site means any set of copyrightable works thus published on the MMC site. ``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. ``Incorporate'' means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is ``eligible for relicensing'' if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. @end enumerate @page @heading ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: @smallexample @group Copyright (C) @var{year} @var{your name}. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end group @end smallexample If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the ``with@dots{}Texts.'' line with this: @smallexample @group with the Invariant Sections being @var{list their titles}, with the Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}. @end group @end smallexample If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. @c Local Variables: @c ispell-local-pdict: "ispell-dict" @c End: gcal-4.1/doc/en/Makefile.am0000664000000000000000000000162212353315047012364 00000000000000# GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . info_TEXINFOS = gcal.texi AM_MAKEINFOFLAGS = --no-split SUBDIRS = examples EXTRA_DIST = fdl.texi gcal-4.1/doc/en/gcal.texi0000664000000000000000000326464013041163260012140 00000000000000\input texinfo @c -*-texinfo-*- @documentlanguage en @c $Id: gcal.texi v3.01 2000/06/24 03:00:01 tom Exp $ @c @c gcal.texi: American-English Texinfo source of info/html/dvi/text file @c @c Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken @c Copyright (c) 2014 Free Software Foundation Inc. @c @c @c Permission is granted to make and distribute verbatim copies of @c this manual provided the copyright notice and this permission notice @c are preserved on all copies. @c @c Permission is granted to copy and distribute modified versions of this @c manual under the conditions for verbatim copying, provided that the entire @c resulting derived work is distributed under the terms of a permission @c notice identical to this one. @c @c Permission is granted to copy and distribute translations of this manual @c into another language, under the above conditions for modified versions, @c except that this permission notice may be stated in a translation approved @c by the Free Software Foundation. @c @c @c ------------------------oOO \\\_''/ OOo--------------------------- @c Thomas Esken O (/o-o\) O eMail: esken@gmx.net @c Im Hagenfeld 84 (( ^ )) Phone: +49 251 232585 @c D-48147 Muenster; Germany \____) ~ (____/ MotD : 2old2live, 2young2die @c %**start of header @c @setfilename gcal.info @c @c Some necessary constant definitions @c @set EDITION 4.1 @set UPDATE-DATE 24 June 2000 @set UPDATE-MONTH June 2000 @set GCAL-VERSION 4.1 @c @settitle Gcal @value{GCAL-VERSION} @c @setchapternewpage odd @setshortcontentsaftertitlepage @paragraphindent 2 @footnotestyle separate @c @smallbook @c @c Index of command line arguments @c @defcodeindex ar @c @c Index of tables @c @defcodeindex tb @c @finalout @c @c %**end of header @c %**Start of info dir entry @c @dircategory GNU packages @direntry * Gcal: (gcal). GNU calendar program. * Tcal: (gcal)Invoking tcal. Run Gcal with tomorrow's date. * Txt2gcal: (gcal)Invoking txt2gcal. Calendar text to resource file. * Gcal2txt: (gcal)Invoking gcal2txt. Calendar resource to text file. @end direntry @c @c %**End of info dir entry @ifinfo This file documents Gcal, a program for calculating and printing calendars. Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. This edition is for Gcal version @value{GCAL-VERSION}@. @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end quotation Any suggestions, improvements, extensions, bug reports, donations, proposals for contract work, and so forth are welcome! Please send them directly to my eMail address @email{esken@@gmx.net}@ or to @email{bug-gcal@@gnu.org}. If you like my work, I'd appreciate a postcard from you! @format ------------------------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 @end format @end ifinfo @c %**Start of titlepage part @c @shorttitlepage Gcal @c @titlepage @title Gcal @subtitle An Extended Calendar Program @subtitle Edition @value{EDITION} @subtitle @value{UPDATE-MONTH} @author by Thomas Esken @page @vskip 0pt plus 1filll Copyright @copyright{} 1994, 95, 96, 1997, 2000 Thomas Esken @sp 2 @cartouche @quotation Any suggestions, improvements, extensions, bug reports, donations, proposals for contract work, and so forth are welcome! Please send them directly to my eMail address @email{esken@@gmx.net}@. If you like my work, I'd appreciate a postcard from you! @example @group @center ------------------------oOO \\\_''/ OOo--------------------------- @center Thomas Esken O (/o-o\) O eMail: esken@@gmx.net @center Im Hagenfeld 84 (( ^ )) Phone: +49 251 232585 @center D-48147 Muenster; Germany \____) ~ (____/ MotD : 2old2live, 2young2die @end group @end example @end quotation @end cartouche @sp 2 This is Edition @value{EDITION} of @cite{Gcal, an Extended Calendar Program},@* for the @value{GCAL-VERSION} (or later) version of the GNU implementation@* of @command{cal} and @command{calendar}@. @sp 2 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. @end titlepage @c @c %**End of titlepage part @c %**Start of contents part @c @headings on @c @contents @c @c %**End of contents part @c %**Start of master menu part @c @ifnottex @node Top, Preface, (dir), (dir) @top Gcal This file documents @command{gcal}, a program for calculating and printing calendars. Gcal displays hybrid and proleptic Julian and Gregorian calendar sheets, respectively, for one month, three months or a whole year. It also displays eternal holiday lists for many countries around the globe, and features a very powerful creation of fixed date lists that can be used for reminding purposes. Gcal can calculate various astronomical data and times of the Sun and the Moon for at pleasure any location, precisely enough for most civil purposes. Gcal supports some other calendar systems, for example the Chinese calendar, the Hebrew calendar and the civil Islamic calendar, too. This is Edition @value{EDITION} of @cite{Gcal, an Extended Calendar Program},@* @w{@value{UPDATE-DATE},} for the @value{GCAL-VERSION} version of the GNU implementation@* of @command{cal} and @command{calendar}@. Any suggestions, improvements, extensions, bug reports, donations, proposals for contract work, and so forth are welcome! Please send them directly to my eMail address @email{esken@@gmx.net}@. If you like my work, I'd appreciate a postcard from you! @format ------------------------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 @end format @end ifnottex @menu * Preface:: Preliminary remarks to Gcal. * Gcal Introduction:: Gcal in brief. * Invoking Gcal:: How to run and use the @command{gcal} program. * Eternal Holidays:: How to create an Eternal Holiday list. * Fixed Dates:: How to create a Fixed Date list. Appendices * Todays Calendar:: Genesis of the Gregorian Calendar. * Gcal Utilities:: Utility programs which are part of the distribution. * Internationalization:: Aspects of Internationalization been made. * Metasymbols:: Metasymbols used in this manual. * Regular Expressions:: Description of all Regular Expressions. * Regexp Summary:: Summary of all Regular Expressions. * Special Texts:: Description of all @code{%@var{?}}@dots{} Special Texts. * Special Texts Summary:: Summary of all @code{%@var{?}}@dots{} Special Texts. * Obsolete Special Texts:: Tables of obsolete Special Texts et cetera. * Format Instruction:: Description of the Format Instruction components. * Coding Scheme:: Coding Scheme of date part in resource file. * Environment Variables:: Used Environment Variables. * Error Codes:: Which Error Codes does Gcal return? * Glossary:: Short descriptions of the terms used here. Indices * Argument Index:: Index of Command line arguments respected. * Variable Index:: Index of Environment Variables used. * Table Index:: Index of Tables that can be found in this manual. * GNU Free Documentation License:: Copying and sharing this manual. * Concept Index:: A menu covering many topics. @detailmenu --- The Detailed Node Listing --- Invoking Gcal * Command line arguments:: Command line arguments. * The GCAL environment variable:: How to use the @env{GCAL} environment variable. Command line arguments * Options:: How to use Options. * Response file:: How to use a @option{@@@var{file}} Response file. * Actual date modifier:: How to use a @option{%@var{date}} Actual date modifier. * Commands:: How to use Commands. Options * Common options:: How to use Common options. * Global options:: How to use Global options. * Calendar options:: How to use Calendar options. * Fixed date options:: How to use Fixed date options. Commands * Single commands:: How to use a Single command. * 3-Month mode commands:: How to use a 3-Month mode command. * Lists of commands:: How to use a List of commands. * Ranges of commands:: How to use a Range of commands. Fixed Dates * Resource file:: How to use a Resource file. * Resource file examples:: Examples of Resource file entries. Resource file * Structure of resource file:: How to write a Resource file. * Date part of a line:: How to write the Date part. * Further date part attributes:: What are Further date part attributes? * Text part of a line:: How to write the Text part. * Special Texts processed:: What are @code{%@var{?}}@dots{} Special Texts? * Comment line:: What is a Comment line? * Include directives:: What are Include directives? * Date variables:: How Date variables can be used. * Text variables:: How Text variables can be used. Further date part attributes * Lists of days:: How Lists of days can be used. * Ranges of days:: How Ranges of days can be used. * Repetition factor of days:: How to use such a factor. * Appearance factor of days:: How to use such a factor. Gcal Utilities * Invoking tcal:: How to run @command{tcal} and a summary of its options. * Invoking txt2gcal:: How to run @command{txt2gcal} and a summary of its options. * Invoking gcal2txt:: How to run @command{gcal2txt} and a summary of its options. Regular Expressions * Regexp Usage:: How to Use Regular Expressions. * Regexp Operators:: Regular Expression Operators. Special Texts * Exclusions:: How to Exclude dates. * Replacements:: How to Replace texts. * Shell Command:: How to run a Shell Command. Exclusions * Exclusions with date argument:: * Exclusions without any argument:: Exclusions with date argument * Inclusive date period:: * Exclusive date period:: Exclusions without any argument * Inclusive day period:: * Exclusive day period:: Replacements * Replacements with date argument:: * Replacements with other argument:: * Replacements without any argument:: Replacements with date argument * Weekday name:: * Weekday number:: * Day-of-year number:: * Day number:: * Week number:: * Month name:: * Month number:: * Year number:: * Moon phase:: * Biorhythm:: * Difference value:: Replacements with other argument * Actual clocktime:: * Textual date:: * Julian day number:: * Geographical distance and course angle:: * Sun data:: * Moon data:: * Contents of Environment variable:: Replacements without any argument * Other difference values:: * Highlighting:: Obsolete Special Texts * Table of Obsolete Special Texts:: * Table of Obsolete Date Format Elements:: * Table of Obsolete Date Formats:: Coding Scheme * Coding Scheme Table 1:: * Coding Scheme Table 2:: @end detailmenu @end menu @c @c %**End of master menu part @c %**Start of manual part @c @node Preface, Gcal Introduction, Top, Top @chapter Preface @cindex Preliminary remarks to Gcal @cindex Gcal, preliminary remarks The reason why I have written Gcal was mainly to have an @emph{off-line} tool@footnote{I.e.@: no need to search for calendar information in the net so phone and Internet Service Provider (@acronym{ISP}) costs are reduced, and furthermore, neither searching for such information in books or data files nor the need to use several other software which altogether do what Gcal actually also does.} which is able to display Julian and Gregorian calendar sheets in a highly flexible and internationalized manner, fixed date lists for reminding purposes and country respectively territory specific holiday lists. At a later stage, Gcal was extended in the way to perform some basic astronomical calculations like Moon phase, moonrise, moonset and other Moon based data, sunset, sunrise, different twilight times and other Sun based data, zodiacal markers, solar and lunar eclipses, equinoxes and solstices. Other gimmicks like biorhythm calculation and the computation of a distance between two geographical point locations and their course angles (true tracks) are also done by it now, plus a lot more. @cindex Precision of astronomical calculations @cindex Astronomical calculations, precision @cindex Accuracy of astronomical calculations @cindex Astronomical calculations, accuracy The accuracy of most of the astronomical calculations done by Gcal is low because it is really hard to perform accurate astronomical predictions more that 100 years ahead. Of course, this also has consequences for some country specific holidays which are based on such astronomical calculations. So it is really possible that some output may differ from the real astronomical date and time of the event calculated, and that by one or more @w{minutes/hours/days}@. This can happen when the date of a real astronomical event occurs near around midnight. So don't be surprised! Strictly speaking, take all such astronomically based output as a more or less good approximation of the true value, but do not rely on it! Because Gcal is not primarily designed for the purpose of having a high precision astronomical calculation tool, the world currently has to live with these limitations. But if @strong{you} have C source code functions, which @itemize @bullet @item perform the astronomical calculations more precise for the period that is respected by Gcal, @item have the similar or faster processing speed than Gcal's actual functions, @item are either put into the public domain or are covered by the GPL@footnote{The ``General Public License'' of the Free Software Foundation.}, @item have the same calling conventions and return types like Gcal's actual functions, @item conform to the GNU coding standard and are therefore easy to maintain and extend, @item do not break Gcal internal limitations and concepts, @end itemize @noindent and you want to grant them to the public, I would be very pleased if you would contact me so I am able to implement your result to a next release of this software. Some words to the build-in country specific holidays now@dots{} As you certainly know, there are several other calendar systems actually existing around the world among the Gregorian calendar. The Gregorian calendar that Gcal mainly represents as a software is only one calendar of many others, but it is that one which is most respected around the world today. Even countries which use another calendar system officially mostly respect the Gregorian calendar for civil and administrative purposes. But when Gcal offers the ability to include holidays from a definite country into its eternal holiday list, it is possible that not all holidays are displayed which are respected in that country. One reason is that my various sources simply don't tell me about the existence of a holiday. A second reason is that the holiday is just designed or changed or removed by political or society reality during Gcal's development phase. And another reason is that the method to calculate a holiday is not build-in Gcal yet. This case is marked by a @samp{#} character behind the country name in the list of countries, which are respected by Gcal. @xref{x-cc-holidays, , Calendar option @option{--cc-holidays=@var{cc}@r{[}_@var{tt}@r{][}+@r{@dots{}]}}}, for the above mentioned list.@* The holidays of @dfn{early} years that are included into the eternal holiday list ---i.e.@: those within the period @acronym{AD} 30 until the midth of the 20th century--- are certainly not accomplishing the requirements of historians to such a list. Gcal cannot be understood as a complete and historically correct data base, and it is not designed for that purpose! This is caused by the fact that the territorial borders and names of the national structures and the settlement in earlier times was partly quite different as it is nowadays. Moreover, I am yet lacking reliable information that tells me the precise date of the introduction of a holiday in a region. Here I appeal to the historians to support me with the concrete country and culture based data if they are bothered by this fact and they want to have it removed. Still unsupported @strong{alive} and @strong{major} calendar systems, respectively methods to derive country specific holidays from them, are: @itemize @bullet @item Religious Islamic lunar calendar @item Hindu solar and lunar calendars @item Buddhist calendar @item Sikh calendar @item Jain calendar @end itemize Even if the list of supported countries seems to be almost complete if you compare it with the actual list of all nations existing around the world, you should note that there are still some countries missing! If you can grant me support to complete Gcal's list of respected countries, or if you would work out or have C functions which manage the missing calendar systems, I also would be very pleased about if you would contact me. I have recorded the country specific holiday dates as good as I can, but I cannot guarantee that I did not made any mistakes while I hacked them in. So it is possible that some country specific holiday lists contain errors. Well, if you think that I forgot to provide Gcal with the specific holidays of @w{a/your} country, or you think that a country specific holiday list is incomplete, or you think that some of the already implemented holidays are wrong, please feel free to send me a complete list of all the holidays which are celebrated in this country respectively to give me hints how to correct or to complete them! Such a list should ideally include the following information: @itemize @bullet @item The English name of the holiday. @item The rule how it is built (like 10th October each year, or 47 days after Easter Sunday's date, or three Fridays before the last Saturday in June@dots{}). If there are any exceptions from such a general rule, please state them in a detailed manner. And please tell me the date since what time the holiday is or was celebrated for the first time, respectively. By the way, if the holiday is tied to the Easter Sunday's date, please tell me whether you mean the Easter Sunday of the Christian Western churches or the Easter Sunday of the Orthodox Christian Eastern churches. @item @cindex Legal holiday @cindex Holiday, legal Whether it is a @dfn{legal holiday} which is respected in the whole country. (Use a @samp{+} character for marking this case.) In this sense, a legal holiday means a day people don't have to work --- as in most companies, and businesses are closed; like @w{@samp{New Year's Day}} on January 1st. @item Whether it is a legal holiday in some parts of your country only. Please tell me whether such a holiday is valid in major parts of the country or not, try to express that by using percent points. (If such a holiday is celebrated in more than 70% of the country, use a @samp{#} character for marking this case, otherwise use a @samp{*} character.) @item Whether it is a day only used for memorial or remembering purposes. (Use a @samp{-} character for marking this case.) Like @w{@samp{All Fool's Day}} on April 1st is not a holiday in the sense that anyone has a day off from school or work, just a @emph{play jokes} day, pretty ordinary. Other holidays may be celebrated with cards or presents etc.@: --- but they are working days such as: @example Valentine's day, Father's day, Mother's day. @end example @end itemize @cindex Religious Islamic calendar @cindex Islamic calendar, religious @cindex Civil Islamic calendar @cindex Islamic calendar, civil The Islamic holidays inserted into the country specific holiday list are calculated arithmetically, not astronomically. This is what people call the @dfn{civil} Islamic lunar calendar. This type of calendar is just a rough estimate of the religious Islamic lunar calendar, which is determined quite astronomically. So don't be surprised too much if some holiday dates differ from the religious Islamic calendar about @ifnottex @w{+/- 1@dots{}2} @end ifnottex @tex $\pm$ 1\dots 2 @end tex days in some years.@* The main difficulty to implement the religious Islamic calendar correctly into Gcal are the several different criteria that are existing for the first sighting of the crescent Moon after a New Moon phase --- that event, which defines the beginning of a new (lunar) month in the religious oriented Islamic calendar. So on the one hand, there are quite astronomically-based criteria, and on the other hand, there are also quite religiously-based criteria. Furthermore, the local predominant weather conditions, the geographical @w{co-ordinate} of the observer's location and the kind of the observance method used also affect these criteria. Moreover, to render all more difficult, I as yet do not have any reliable information that tells me which kind of criteria is used in the countries (around 60 @w{world-wide}) which respect this religious Islamic calendar. So due to all the above mentioned facts of problematic nature, this religious Islamic calendar is not included into Gcal yet. @cindex Chinese calendar @cindex Calendar, Chinese @cindex Japanese calendar @cindex Calendar, Japanese The Chinese (and Japanese) holidays also inserted into the country specific holiday list are calculated by using that algorithm as it is used by the Purple Mountain Observatory in Nanjing to determine the astronomical lunisolar Chinese calendar. This calendar is obligatory for (the Peoples Republic of) China since 1929 and is determined annually always new. Nevertheless and strictly speaking, in the historic reality and depending on the region, the Chinese calendar, especially in the 17th and 18th century, was either calculated using this @emph{modern} algorithm, or by the use of a different method, so that a different calendar structure for one and the same year was possibly calculated as result. @iftex @sp 2 @end iftex And last@dots{} This manual shows the possible use of the Gcal program only briefly and deliberately renounces to present the topics that are covered by this software arranged in a novel-like style. The use of Gcal is illustrated in an exemplary manner only! A detailed description of all possible use is inexpedient here because there are simply too many of such possibilities which are caused by the existing variety of combinations of all useable modes of operation. Furthermore, this manual does not contain detailed explanations about the calendar systems supported by Gcal, nor it can be understood as a reference-book for the basics in celestial mechanics or spherical trigonometry! A detailed discussion of the above topics is completely beyond the scope of this manual. If you are interested to learn more about these subjects, you unfortunately have to read the specific pertinent literature. Any further errors occurring in the output of the above mentioned holiday lists and in the astronomical calculations are my own fault, and are not intended to offend members of any culture, religion or profession! @node Gcal Introduction, Invoking Gcal, Preface, Top @chapter Gcal Introduction @cindex Gcal Introduction @cindex Introduction, Gcal Apart from the usual and well known calendar functions like the output of a month or a year calendar sheet, or the output of an eternal holiday list, Gcal, the Gregorian calendar program of the Free Software Foundation, offers the facility to display fixed dates on the day of their occurrence and to remind or inform the user about them. So it is imaginable after booting the computer or starting the work session, that the user is informed on screen or by means of electronic mail about all holidays or appointments which are observed or scheduled for that day. The period, for which Gcal respects occurring fixed dates, may be freely selected by the user. So it is possible that Gcal displays all fixed dates which occur on tomorrow's date, the whole week, the whole month or in the whole year. Fixed dates which occur on a selected date of the year, and those that occur relative to another given date, are displayed either related to this single date only, or in listed manner starting on this date and ending on the actual date@footnote{Inclusive or exclusive.}@. There are two methods to display a preview of fixed dates@footnote{Future years.} or retrospective view of fixed dates@footnote{Past years.}@. On the one hand, Gcal can be started by using an option that sets the system date of the computer to the given date during the time of the program execution with the result, the program assumes the system date is set to this given date and the user can define any needed period that should be respected by an option. On the other hand, Gcal can be started with a command which forces the program to use a different year instead of the actual year, so Gcal will display all occurring fixed dates for this particular year. But this limits the user in that it disables defining any needed period by an option, because the period is always set to the whole year by default. Gcal isn't only able to display fixed dates which are stored for a concrete date, e.g.@: @samp{Fixed date on 1st December 1995}, rather than fixed dates occurring periodically again and again. So it is possible to define repeated events like @samp{This fixed date occurs every day in May 1995} or @samp{Every 15th November in any years}@. These fixed date definitions are stored in resource files and whenever Gcal is started, an option to evaluate the necessary resource files can be given. Once the user has set his/her preferred command line arguments for querying the fixed dates data base, it is possible to store them in a response file or shell script file. A response file contains all arguments delivered to Gcal, but unlike a shell script file, such a response file isn't executable; it is only a pool of command line arguments which can be preloaded if needed. A shell script file can be started and calls Gcal directly with all arguments stored in it and all arguments which are given further in the command line. A list of all usable command line arguments and their descriptions can be found in the next chapter, which helps one to use Gcal in the most efficient and productive way possible. After it follows the description how to use the eternal holiday list, and in the succeeding chapter, how to use the fixed date list. Comprehensive explanations respectively summaries and tables to definite details or themes from other disciplines can be found in the numerous appendices. @node Invoking Gcal, Eternal Holidays, Gcal Introduction, Top @chapter Invoking @command{gcal} @cindex Invoking @command{gcal} @menu * Command line arguments:: Command line arguments. * The GCAL environment variable:: How to use the @env{GCAL} environment variable. @end menu @cindex Shell @cindex Command line interpreter Gcal is a command line oriented program. It is usually called from the @dfn{shell}@footnote{This is an operating system program which interprets and runs given command lines.} and processes given arguments that are options and commands. Options must be given before commands, i.e.@: you must call Gcal like this: @iftex @sp 2 @end iftex @example @center gcal @r{[ [}@var{option}@r{@dots{}] [}%@var{date}@r{] [}@@@var{file}@r{@dots{}] ] [}@var{command}@r{]} @end example @iftex @sp 2 @end iftex If Gcal is started without any options or commands, a calendar of the current month is displayed. If the calendar of a definite year is wanted, the year must be fully specified, e.g.@: @samp{gcal 94} displays a year calendar of the year 94, not of the year 1994@. If two arguments are given in the command part, the @strong{first} argument denotes the month, and the @strong{second} argument denotes the year. In case any incorrect commands are given running Gcal, the program will use internal defaults. In the English program version, Gcal assumes the Gregorian Reformation has occurred in 1752 on the 3rd of September. @xref{Todays Calendar, , Genesis of the Gregorian Calendar}, and @ref{Internationalization, , Aspects in Internationalization}, for further details. @page @node Command line arguments, The GCAL environment variable, Invoking Gcal, Invoking Gcal @section Command line arguments @cindex Command line, arguments @cindex Arguments of command line @cindex Options @cindex Options of @command{gcal} @cindex @command{gcal}, options @cindex @option{%@var{date}}, option @cindex Option @option{%@var{date}} @cindex @option{@@@var{file}}, option @cindex Option @option{@@@var{file}} @cindex Commands @menu * Options:: How to use Options. * Response file:: How to use a @option{@@@var{file}} Response file. * Actual date modifier:: How to use a @option{%@var{date}} Actual date modifier. * Commands:: How to use Commands. @end menu This section describes all command line arguments processed by Gcal. Four different types of command line arguments exists. One important type of arguments are the @dfn{options} which control how Gcal behaves. Other types of arguments are the @option{%@var{date}} and the @option{@@@var{file}} options. The @option{%@var{date}} option sets the period Gcal shall work on to any starting date; the @option{@@@var{file}} option preloads options and commands from a response file. The most important arguments are the @dfn{commands} which control the periods Gcal respects. @cindex Switch character, @samp{-} @cindex @samp{-} switch character @cindex Switch character, @samp{/} @cindex @samp{/} switch character @cindex Switch character, @samp{--} @cindex @samp{--} switch character An option is defined by a leading @dfn{switch} character; either the @samp{-} (dash) or the @samp{/} (slash) character for traditional short-style options, or @samp{--} for mnemonic long-style options; a command may not have a leading switch character. Options@footnote{Inclusive @option{%@var{date}} and @option{@@@var{file}}@.} @strong{must} be given before commands! @cindex Quotation of special characters @cindex Special characters, quotation @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Protection of special characters @cindex Special characters, protection @cindex Shell Depending on operating system and used shell, some of the arguments and texts given in command line must be quoted by @samp{"} or @samp{'} characters respectively protected or depreciated by a @samp{\} character to avoid expansion by the shell. @iftex @sp 2 @end iftex Here is an incomplete list of characters which must potentially be protected: @iftex @sp 2 @end iftex @quotation @samp{(}, @samp{)}, @samp{<}, @samp{>}, @samp{[}, @samp{]}, @samp{@{}, @samp{@}}, @samp{\}, @samp{|}, @samp{$}, @samp{@@}, @samp{!}, @samp{&}, @samp{~}, @samp{"}, @samp{'}, @samp{`}, @samp{;} @end quotation @page @node Options, Response file, Command line arguments, Command line arguments @subsection Options @cindex Options @cindex @command{gcal} options @cindex Command line options, @command{gcal} @menu * Common options:: How to use Common options. * Global options:: How to use Global options. * Calendar options:: How to use Calendar options. * Fixed date options:: How to use Fixed date options. @end menu @cindex Common option class @cindex Option class, common @cindex Global option class @cindex Option class, global @cindex Calendar option class @cindex Option class, calendar @cindex Fixed date option class @cindex Option class, fixed date The options processed by Gcal can be grouped into four major option classes. The options of the @dfn{common option class} are the standard options all GNU software should implement at least partially. The @dfn{global option class} contains options which affect the program output. The options of the @dfn{calendar option class} control the calendar layout, and the options of the @dfn{fixed date option class} control the fixed date layout and intensity. @cindex Options, short-style @cindex Short-style option @cindex Options, long-style @cindex Long-style option @cindex GNU style options @cindex Single character options @cindex Single command line word Gcal supports both short-style options and GNU long-style options. Traditional short-style options are indicated by a single switch character, and trailed by the option character itself and perhaps a modifier or an argument. The most single character options@footnote{Unless they take an argument.} can be composed into a single command line word: @option{-Ax} is equivalent to @option{-A -x}@. GNU long-style options are indicated with @samp{--}, and trailed by the mnemonic option name itself and perhaps an argument. Long-style options and their arguments may be abbreviated if done unambiguously. When a long-style option takes an argument, connect the option name and the argument with @samp{=}@. Brackets ([ and ]) indicate in the following tables, that an option takes an optional argument. The @samp{|} character is used to separate several arguments from each other. @tbindex GNU long-style options @tbindex Long-style options, GNU Gcal processes the GNU long-style options in a special, non-standard way. There are five different types of long-style options: @enumerate 1 @item @option{--foo}@* Enables option @option{--foo}@. @item @option{--foo=@var{bar}}@* Enables option @option{--foo} with the required argument @var{bar}@. @item @option{--foo@r{[}=@var{bar}@r{[|@dots{}|}@var{bar}@r{]]}}@* Option @option{--foo} may have one @var{bar} argument. If no argument list is given, any argument can be given to this option. If an argument list is given, exactly one @var{bar} argument may be selected from the given list. If there is no argument chosen in this case, the first @var{bar} argument of the argument list is preselected by default. @item @option{--foo=@var{bar}@r{|@dots{}|}@var{bar}}@* Option @option{--foo} requires exactly one @var{bar} argument which must be selected from the given argument list. @item @option{--foo=@var{bar}@r{|@dots{}|}@var{bar}@r{|}@var{baz}}@* Option @option{--foo} requires exactly one @var{bar} argument which must be selected from the given @var{bar} argument list, or the alternative @var{baz} argument. @end enumerate @tbindex Traditional short-style options @tbindex Short-style options, traditional Traditional short-style options differ as follows: @enumerate 1 @item @option{-x}@* Enables option @option{-x}@. @item @cindex Separator character, whitespace @cindex Whitespace separator character @option{-x @var{bar}}@* Enables option @option{-x} with the required argument @var{bar}@. The @var{bar} argument may be separated by a leading @emph{whitespace} character from the short-style option character @option{x}@. This means, the following notations are valid for giving an argument, namely @option{-x @var{bar}} or @option{-x@var{bar}}@. @item @cindex Separator character, whitespace @cindex Whitespace separator character @cindex Modifier @cindex Option modifier @option{-x@r{[}@var{bar}@r{|@dots{}|}@var{bar}@r{]}}@* Option @option{-x} may have one or more @var{bar} @dfn{modifier}@. In this sense, modifiers are one or more characters which define a special mode of operation enabled by the @option{-x} option. A modifier may not be separated by a leading @emph{whitespace} character from the short-style option character. @end enumerate @node Common options, Global options, Options, Options @subsubsection Common options @cindex Common options @table @option @item -? @itemx -h @itemx --help @arindex -? @arindex -h @arindex --help @cindex Help, online @cindex Short help text @cindex Help text, short Print a short usage message listing only some few of all available options, then exit successfully. @need 1500 @item -?? @itemx -hh @itemx --usage@r{[}=@var{argument}@r{]} @itemx --long-help@r{[}=@var{argument}@r{]} @arindex -?? @arindex -hh @arindex --usage@r{[}=@var{argument}@r{]} @arindex --long-help@r{[}=@var{argument}@r{]} @cindex Help, online @cindex Extended help text @cindex Help text, extended @cindex Long help text @cindex Help text, long Print an extended usage message listing all available options, then exit successfully. If an @var{argument} is given and it is a valid long-style option name, an extended help text related to the given long-style option name is displayed only, e.g.@:: @example --long-help=long-help @end example displays the extended help text for the long option @w{@option{--long-help}}@. @arindex --usage=? @arindex --long-help=? @cindex List of all long-style option names @cindex Long-style option names, list If the @var{argument} only consists of the single @samp{?} character or is no valid long-style option name, a list of all valid long-style option names is displayed. @item -L @itemx --license @itemx --copyleft @itemx --copyright @arindex -L @arindex --license @arindex --copyleft @arindex --copyright @cindex Software license, finding @cindex Copyleft @cindex Copyright Print the software license message, then exit successfully. @item -V @itemx --version @arindex -V @arindex --version @cindex Version number, finding Print the version number and compilation options, then exit successfully. @item --exit-status-help-non-zero @arindex --exit-status-help-non-zero @cindex Program exit state 127 @cindex Exit code 127 @cindex Error code 127 Set the exit state of program to 127 instead to 0, if one of the other options of the @emph{common option class} is used. @end table @node Global options, Calendar options, Common options, Options @subsubsection Global options @cindex Global options @table @option @item -R @var{name} @itemx --response-file=@var{name} @arindex -R @var{name} @arindex --response-file=@var{name} @cindex Response file, creation @cindex Environment variable, @env{GCAL} @cindex @env{GCAL} environment variable @vindex GCAL @anchor{x-response-file} Write the contents of the environment variable @env{GCAL} (@pxref{x-GCAL, , Environment Variable @env{GCAL}}), and then the arguments of command line (in the given order) to file @var{name}, i.e.@: create response file @file{name}@. @xref{Response file}, for more details. @item -S @var{name} @itemx --shell-script=@var{name} @arindex -S @var{name} @arindex --shell-script=@var{name} @cindex Shell script, creation @cindex Environment variable, @env{GCAL} @cindex @env{GCAL} environment variable @vindex GCAL Write the contents of the environment variable @env{GCAL} (@pxref{x-GCAL, , Environment Variable @env{GCAL}}), and then the arguments of command line (in the given order) to file @var{name}, i.e.@: create shell script file @file{name}@. An automatically created shell script file is executable and calls Gcal directly with the arguments stored in it. You may start the shell script with other command line arguments which are directed to Gcal, too. @item --debug@r{[}=internal@r{|}handled@r{|}unhandled@r{|}all@r{|}abort@r{]} @arindex @w{--debug@r{[}=internal@r{|}handled@r{|}unhandled@r{|}all@r{|}abort@r{]}} Display some debug information. @table @option @item --debug=internal @arindex --debug=internal @anchor{x-debug-internal} Display informational texts if program internal maxima are reached or other conditions occurred, respectively. @item --debug=handled @arindex --debug=handled Like @option{--debug=internal}, additionally display the file names which can be processed respectively handled. @item --debug=unhandled @arindex --debug=unhandled Like @option{--debug=internal}, additionally display file names which cannot be processed respectively handled. @item --debug=all @arindex --debug=all Like @option{--debug=handled} and @option{--debug=unhandled} together. @need 1000 @item --debug=abort @arindex --debug=abort @anchor{x-debug-abort} Like @option{--debug=all} and abort program with an error code if the file name cannot be handled or other unmanageable conditions occurred, respectively. @xref{Error Codes}. @end table @item -p @itemx --pager @arindex -p @arindex --pager @cindex Pager, using @cindex Pager, external @cindex Pager program @cindex External pager program @cindex Environment variable, @env{PAGER} @cindex @env{PAGER} environment variable @vindex PAGER @anchor{x-pager} Enables either an @emph{external} pager or a simple, @emph{internal} pager. If an environment variable @env{PAGER} is set, its contents will be used for detecting the external pager program. @xref{x-PAGER, , Environment Variable @env{PAGER}}, for more information. @cindex Environment variable, @env{PATH} @cindex @env{PATH} environment variable @vindex PATH If no @env{PAGER} environment variable is set or if its contents is invalid, Gcal tries to use the @command{less} pager; if this program cannot be found during scanning the @env{PATH} environment variable, Gcal tries to use the @command{more} pager, if this program cannot be found, the @command{pg} pager in the same way@footnote{See the standard manual pages for @command{less}, @command{more} and @command{pg}@.}@. @xref{x-PATH, , Environment Variable @env{PATH}}. @cindex Pager, internal @cindex Internal pager, simple If all these actions fail, Gcal will use its simple, built-in pager. If the internal pager is used, Gcal detects the number of lines shown before it prompts and waits for user input by using these methods: @enumerate 1 @item @vindex GCAL_LINES @vindex GCAL_COLUMNS Gcal respects the values set in the environment variables @w{@env{GCAL_LINES}} and @w{@env{GCAL_COLUMNS}}@. @xref{x-GCAL_LINES, , Environment Variable @env{GCAL_LINES}}, and @ref{x-GCAL_COLUMNS, , Environment Variable @env{GCAL_COLUMNS}}, for further information. @item @vindex LINES @vindex COLUMNS If above action fails, Gcal respects the values set in the environment variables @env{LINES} and @env{COLUMNS}@. @xref{x-LINES, , Environment Variable @env{LINES}}, and @ref{x-COLUMNS, , Environment Variable @env{COLUMNS}}, for more details. @item @vindex TERM If above action fails, Gcal respects the values set in the @file{termcap}@footnote{See the standard manual pages for Termcap.} file which refers to the terminal used (@pxref{x-TERM, , Environment Variable @env{TERM}})@. This step is only done on systems which support the use of Termcap by default. On @w{MS-DOS}, @w{OS/2} and some other operating systems, Gcal uses a system dependent @emph{low-level} function and respects the reported values. @item If all above actions have failed, Gcal uses default values@footnote{Either 23 or 24 lines, and 80 columns.}@. @end enumerate @item -H yes @itemx --force-highlighting @itemx --highlighting=yes @arindex -H yes @arindex --force-highlighting @arindex --highlighting=yes @cindex Highlighting sequences, forcing @cindex Forcing highlighting sequences @cindex Redirection @cindex Pipelining If the output of the program is redirected@footnote{This means, sent to another device.} or piped@footnote{This means, used as an input data stream for another program.}, the highlighting sequences are @strong{not} automatically converted into the according marking characters, they remain unchanged. This option takes no effect if the output of the program is sent by means of electronic mail. @xref{x-mail, , Global option @option{--mail@r{[}=@var{address}@r{]}}}. @item -H no @itemx --disable-highlighting @itemx --highlighting=no @arindex -H no @arindex --disable-highlighting @arindex --highlighting=no @cindex Highlighting sequences, disabling @cindex Marking characters, disabling @cindex Disable highlighting sequences @cindex Disable marking characters Disable highlighting sequence / marking character pairs of current day, holiday or text explicitly. @item -H @var{text} @itemx --highlighting=@var{text} @arindex -H @var{text} @arindex --highlighting=@var{text} @cindex Highlighting sequences, setting @cindex Set highlighting sequences @cindex Marking characters, setting @cindex Set marking characters @cindex @samp{:} separator character @cindex Separator character, @samp{:} @cindex Sequence of control characters @cindex Control character sequence @cindex Escape sequence @anchor{x-highlighting} Set highlighting sequence / marking character pairs explicitly. In this sense, @dfn{highlighting} sequences are control character sequences which cause a color or intensity switch in output text. Typical control character sequences are the @acronym{ANSI} escape sequences which have a leading escape character, and trailing more characters that define the type of the @acronym{ANSI} escape sequence. In this sense, @dfn{marking} characters are single, printable characters which lead and trail the output text. The @var{text} argument must be a (@samp{:}) colon-separated text which is structured in this way: @w{@var{seq1_start}:@var{seq1_end}:@var{seq2_start}:@var{seq2_end}}@. The @strong{first} sequence is used for highlighting/marking an actual day, the @strong{second} for a holiday. The sequences must be given in form of a sequence pair; @w{@var{seq?_start}} enables the highlighting/marking, @w{@var{seq?_end}} disables it. Only two sequence pairs will be processed, others are ignored. Either highlighting sequence pairs or marking character pairs may be defined, i.e.@: using them both in a mixed couple is not permitted! @need 1000 For example: @quotation @option{-H \x20:\x20:\x1:#} respectively@* @option{--highlighting=\x20:\x20:\x1:#}@* marks the actual day like @w{@samp{\x20@var{actual date}\x20}}@footnote{This means with a leading and a trailing blank.} and the holiday date like @w{@samp{\x1@var{holiday date}#}} using the given marking characters. @end quotation @quotation @option{-H \x1b[34;42m:\x1b[0;40m} or@* @option{-H \033[34;42m:\033[0;40m} or@* @option{-H \E[34;42m:\E[0;40m}@* defines a starting @acronym{ANSI} escape highlighting sequence @w{@samp{\x1b[34;42m}} used for actual day and ending @acronym{ANSI} escape highlighting sequence @w{@samp{\x1b[0;40m}} with no given highlighting sequence for holidays, so default highlighting sequences for holidays are used (non-given entries are always skipped)@. Please note the last abstract of this text part which informs you more detailed of this context. @xref{x-GCALANSI, , Environment Variable @env{GCALANSI}}, too. @end quotation Control code definitions may contain any printable characters. Non-printable characters may be encoded in octal or hexadecimal notation. The abbreviation @samp{\E} directly encodes the escape character (octal @code{\033} respectively hexadecimal @code{\x1B})@. A character can be encoded octal by typing @samp{\@var{nnn}} @w{(backslash-octal digit(s))}, where @var{n} must be a valid octal digit @w{(0@dots{}7)}@. Normally, three octal digits must be given. If the octal character code consists of one or two octal digits, leading zeroes must be added, except the case, where the encoded octal character is given at last in the single sequence. A character can be encoded hexadecimal by typing @samp{\x@var{nn}} (@w{backslash-x} hexadecimal digit(s)), where @var{n} must be a valid hexadecimal digit @w{(0@dots{}9A@dots{}Fa@dots{}f)}@. Normally, two hexadecimal digits must be given. If the hexadecimal character code consists of one hexadecimal digit, a leading zero must be added, except the case, where the encoded hexadecimal character is given at last in the single sequence. @cindex Separator character, @samp{:} @cindex @samp{:} separator character If the sequence separator character, thus the @samp{:} (colon) character itself, is used as a marking character, it must be encoded either octal by @code{\072} or hexadecimal by @code{\x3A}@. @cindex C Preprocessor symbol @w{USE_PAGER} @cindex Redirection of output @cindex Output, redirection @cindex Pipelining of output @cindex Output, pipelining If the C Preprocessor symbol @w{@code{USE_PAGER}} was defined and the output of the program is redirected or used in a pipeline, the highlighting sequences are automatically converted into the according marking characters; if @w{@code{USE_PAGER}} was not defined, they remain untouched. @cindex Environment variable, @env{GCALANSI} @cindex @env{GCALANSI} environment variable @vindex GCALANSI Incomplete or non-given highlighting sequences will be replaced by internal default @acronym{ANSI} escape highlighting sequences if a @env{GCALANSI} environment variable is defined; otherwise completely replaced by their according marking characters. @xref{x-GCALANSI, , Environment Variable @env{GCALANSI}}. @page @item --mail@r{[}=@var{address}@r{]} @arindex --mail@r{[}=@var{address}@r{]} @cindex Mail, sending @cindex Sending eMail @cindex EMail, option @cindex Electronic Mail @anchor{x-mail} Send Gcal's output via @command{mail}@footnote{See the standard manual pages for @command{mail}@.} program to the given @var{address}, e.g.@:: @example --mail=esken@@gmx.net @end example @cindex Methods of sending Mail @cindex Mail, methods of sending @cindex EMail, methods of sending If no @var{address} is given, Gcal tries to send the eMail by using the following methods: @enumerate 1 @item @cindex Environment variable, @env{MAILTO} @cindex @env{MAILTO} environment variable @vindex MAILTO If an environment variable @env{MAILTO} is defined and set, the eMail is send to the address which is listed in this environment variable. @xref{x-MAILTO, , Environment Variable @env{MAILTO}}, for more information. @item @cindex Environment variable, @env{USER} @cindex @env{USER} environment variable @vindex USER If above action fails, and if an environment variable @env{USER} is defined and set, the eMail is send to the address which is listed in this environment variable. @xref{x-USER, , Environment Variable @env{USER}}, for more information. @item @cindex Environment variable, @env{LOGNAME} @cindex @env{LOGNAME} environment variable @vindex LOGNAME If above action fails, and if an environment variable @env{LOGNAME} is defined and set, the eMail is send to the address which is listed in this environment variable. @xref{x-LOGNAME, , Environment Variable @env{LOGNAME}}, for more information. @item If all above actions have failed, no eMail is send. @end enumerate @cindex Mail, empty message body @cindex EMail, empty message body @cindex Empty message body in Mail Generally, Gcal does not send electronic Mails whose message body is empty! An informational message will be shown on the @emph{standard error channel} if this case occurs. @cindex Resource file, limitations @cindex Limitations in a resource file All highlighting sequences produced by Gcal itself are always disabled respectively automatically converted into the according marking characters if an eMail must be send; no matter if the @option{--force-highlighting} option was given or not. This behavior of Gcal is an imperative necessity, because it is possible that the @command{mail} program cannot perform the mailing correctly. Please pay attention in this context to the further explanations concerning the limitations of the @emph{text part} of a resource file line (@pxref{Text part of a line})@. @cindex Environment variable, @env{MAILPROG} @cindex @env{MAILPROG} environment variable @vindex MAILPROG If an environment variable @env{MAILPROG} is defined and set, its contents will be used as the program name of the mailer instead of the standard name @command{mail}@. @xref{x-MAILPROG, , Environment Variable @env{MAILPROG}}, for more information. @end table @need 2000 @node Calendar options, Fixed date options, Global options, Options @subsubsection Calendar options @cindex Calendar options @table @option @item -n@r{|}N@r{[}-@r{]} @itemx --holiday-list@r{[}=long@r{|}short@r{]} @itemx --descending-holiday-list@r{[}=long@r{|}short@r{]} @arindex -n@r{|}N@r{[}-@r{]} @arindex --holiday-list@r{[}=long@r{|}short@r{]} @arindex --descending-holiday-list@r{[}=long@r{|}short@r{]} @cindex Eternal holiday list, option @anchor{x-holiday-list} Display the eternal holiday list. By default, there are no entries in the eternal holiday list. You have to choose country specific holidays or holidays from other calendar systems to provide the eternal holiday list with entries. @xref{Eternal Holidays}, and @ref{x-cc-holidays, , Calendar option @option{--cc-holidays=@var{cc}@r{[}+@r{@dots{}]}}}, for additional information. @need 1000 @table @option @item -n @itemx --holiday-list=long @arindex -n @arindex --holiday-list=long Display all holidays of eternal holiday list ---this means, all legal holidays and all further memorial days--- sorted in ascending order. @need 1000 @item -n- @itemx --descending-holiday-list=long @arindex -n- @arindex --descending-holiday-list=long Display all holidays of eternal holiday list ---this means, all legal holidays and all further memorial days--- sorted in descending order. @need 1000 @item -N @itemx --holiday-list=short @arindex -N @arindex --holiday-list=short Display legal holidays only of eternal holiday list, sorted in ascending order. @need 1000 @item -N- @itemx --descending-holiday-list=short @arindex -N- @arindex --descending-holiday-list=short Display legal holidays only of eternal holiday list, sorted in descending order. @end table @need 2000 @item -G @itemx --suppress-holiday-list-separator @arindex -G @arindex --suppress-holiday-list-separator @cindex Eternal holiday list, suppression of leading blank line @cindex Suppress leading blank line of eternal holiday list Suppress displaying of the blank line which is always leading an eternal holiday list. @item -X @itemx --exclude-holiday-list-title @arindex -X @arindex --exclude-holiday-list-title @cindex Eternal holiday list, suppression of title text @cindex Suppress title text of eternal holiday list Suppress the title text line of the eternal holiday list. @item --astronomical-holidays @arindex --astronomical-holidays @cindex Eternal holiday list, astronomical data @cindex Astronomical data in eternal holiday list @cindex Full Moon phase @cindex Moon phase, Full @cindex New Moon phase @cindex Moon phase, New @cindex Waning Half Moon phase @cindex Moon phase, waning Half @cindex Waxing Half Moon phase @cindex Moon phase, waxing Half @cindex Solar eclipse @cindex Eclipse, solar @cindex Lunar eclipse @cindex Eclipse, lunar @cindex Winter solstice @cindex Solstice, winter @cindex Summer solstice @cindex Solstice, summer @cindex Vernal equinox @cindex Equinox, vernal @cindex Autumnal equinox @cindex Equinox, autumnal @anchor{x-astronomical-holidays} Provide the eternal holiday list additionally with some astronomical data, and that the Full and New Moon phases, waning and waxing Half Moon phases, solar and lunar eclipses, and the solstices and equinoxes. @xref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, how to change the timezone respectively base time for which the astronomical data is calculated. @item --bahai-holidays @arindex --bahai-holidays @cindex Eternal holiday list, Bah@'a'@`i holidays @cindex Bah@'a'@`i holidays in eternal holiday list @anchor{x-bahai-holidays} Provide the eternal holiday list additionally with Bah@'a'@`i holidays (only for dates after @acronym{AD} 1843)@. @item --celtic-holidays @arindex --celtic-holidays @cindex Eternal holiday list, Celtic holidays @cindex Celtic holidays in eternal holiday list Provide the eternal holiday list additionally with Celtic holidays. @xref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, how to change the timezone for which the Celtic holidays are calculated. @item --chinese-flexible-holidays @arindex --chinese-flexible-holidays @cindex Eternal holiday list, holidays from the flexible Chinese calendar @cindex Holidays from the flexible Chinese calendar in eternal holiday list @anchor{x-chinese-flexible-holidays} Provide the eternal holiday list additionally with Chinese holidays, that are determined in a flexible manner (only for dates after @acronym{AD} 1644)@. @xref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, how to change the timezone for which the Chinese holidays are calculated in a flexible manner. @xref{Preface}, for further details. @item --chinese-holidays @arindex --chinese-holidays @cindex Eternal holiday list, Chinese holidays @cindex Chinese holidays in eternal holiday list @anchor{x-chinese-holidays} Provide the eternal holiday list additionally with Chinese holidays (only for dates after @acronym{AD} 1644)@. For dates until @acronym{AD} 1928 all computations done are depending fixed on Beijing local time, for later dates fixed on the timezone @w{GMT-8}@. @xref{Preface}, for further details. @item --christian-holidays @arindex --christian-holidays @cindex Eternal holiday list, Christian holidays @cindex Christian holidays in eternal holiday list Provide the eternal holiday list additionally with Christian holidays. @item --hebrew-holidays @arindex --hebrew-holidays @cindex Eternal holiday list, Hebrew holidays @cindex Hebrew holidays in eternal holiday list Provide the eternal holiday list additionally with Hebrew holidays. @item --islamic-civil-holidays @arindex --islamic-civil-holidays @cindex Eternal holiday list, Islamic holidays @cindex Islamic holidays in eternal holiday list @anchor{x-islamic-civil-holidays} Provide the eternal holiday list additionally with Islamic holidays (only for dates after @acronym{AD} 621), that are based on the civil Islamic calendar. @xref{Preface}, for further details. @item --japanese-flexible-holidays @arindex --japanese-flexible-holidays @cindex Eternal holiday list, holidays from the flexible Japanese calendar @cindex Holidays from the flexible Japanese calendar in eternal holiday list @anchor{x-japanese-flexible-holidays} Provide the eternal holiday list additionally with Japanese holidays, that are determined in a flexible manner (only for dates after @acronym{AD} 1644)@. @xref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, how to change the timezone for which the Japanese holidays are calculated in a flexible manner. @item --japanese-holidays @arindex --japanese-holidays @cindex Eternal holiday list, Japanese holidays @cindex Japanese holidays in eternal holiday list @anchor{x-japanese-holidays} Provide the eternal holiday list additionally with Japanese holidays (only for dates after @acronym{AD} 1644)@. For dates until @acronym{AD} 1887 all computations done are depending fixed on Beijing local time, for later dates fixed on the timezone @w{GMT-9}@. @item --multicultural-new-year-holidays @arindex --multicultural-new-year-holidays @cindex Eternal holiday list, multicultural New Year holidays @cindex Multicultural New Year holidays in eternal holiday list Provide the eternal holiday list additionally with multicultural New Year holidays. @xref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, how to change the timezone for which the multicultural New Year holidays are calculated. @item --orthodox-new-holidays @arindex --orthodox-new-holidays @cindex Eternal holiday list, Orthodox new calendar holidays @cindex Orthodox new calendar holidays in eternal holiday list Provide the eternal holiday list additionally with Orthodox new calendar holidays, and it is assumed that the Gregorian Reformation has occurred from 10th till 22nd March 1924. @xref{x-orthodox-calendar, , Calendar option @option{--orthodox-calendar}}, for further details. @item --orthodox-old-holidays @arindex --orthodox-old-holidays @cindex Eternal holiday list, Orthodox old calendar holidays @cindex Orthodox old calendar holidays in eternal holiday list Provide the eternal holiday list additionally with Orthodox new calendar holidays, and it is assumed that the Gregorian Reformation has occurred from 10th till 22nd March 1924. @xref{x-orthodox-calendar, , Calendar option @option{--orthodox-calendar}}, for further details. @item --persian-jalaali-holidays @arindex --persian-jalaali-holidays @cindex Eternal holiday list, Persian Jalaali holidays @cindex Persian Jalaali holidays in eternal holiday list @anchor{x-persian-jalaali-holidays} Provide the eternal holiday list additionally with Persian holidays (only for dates after @acronym{AD} 621), which are based on the Persian @emph{Jalaali} calendar. All computations done are depending on the timezone @w{GMT-3.5}@. @item --zodiacal-marker-holidays @arindex --zodical-marker-holidays @cindex Eternal holiday list, zodiacal marker holidays @cindex Zodiacal marker holidays in eternal holiday list Provide the eternal holiday list additionally with zodiacal marker holidays, i.e.@: the dates when the Sun enters a zodiac sign or when the Sun reaches the @w{turning-point} in the zodiac sign. @xref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, how to change the timezone for which the zodiacal marker holidays are calculated. @need 1000 @item -q @var{cc}@r{[}_@var{tt}@r{][}+@r{@dots{}]} @itemx --cc-holidays=@var{cc}@r{[}_@var{tt}@r{][}+@r{@dots{}]} @arindex -q @var{cc}@r{[}_@var{tt}@r{][}+@r{@dots{}]} @arindex --cc-holidays=@var{cc}@r{[}_@var{tt}@r{][}+@r{@dots{}]} @cindex Eternal holiday list, country specific holidays @cindex Country specific holidays in eternal holiday list @anchor{x-cc-holidays} Provide the eternal holiday list additionally with country specific holidays. Furthermore, all additionally highlighted days of the eternal holiday list are highlighted in the calendar sheets, too. @cindex @acronym{ISO}-3166 @cindex Country code The @var{cc} argument is a two-letter country code as defined by the @acronym{ISO}-3166@footnote{@acronym{ISO} is the abbreviation of @cite{International Organization for Standardization}@.} like @samp{BE} for Belgium or @samp{ES} for Spain. See the pertinent literature for more details. @cindex Territory code In some cases, such a country code may be trailed by a two-letter territory code @var{tt} for better specification, which is separated by a @samp{_} character from the country code. @cindex Separator character, @samp{+} @cindex @samp{+} separator character You can use more than one country code @w{@var{cc}@r{[}_@var{tt}@r{]}} by connecting them with a @samp{+} character, e.g.@:: @quotation @option{--cc-holidays=be+Fr+IT} resp.,@* @option{-q be+Fr+IT} @end quotation includes all the country specific holidays given in the preceding argument into the eternal holiday list, i.e.@: Belgian, French and Italian holidays. @tbindex Country specific holidays @tbindex Holidays, country specific Actually, Gcal respects the following country codes, at which countries marked by a @samp{#} character have only an incomplete recording of holidays: @iftex @sp 2 @end iftex @table @code @item AD Andorra @item AE United Arab Emirates @item AF Afghanistan @item AG Antigua and Barbuda @item AI Anguilla @item AL Albania @item AM Armenia @item AN_BO Netherlands Antilles/Bonaire @item AN_CU Netherlands Antilles/Cura@,{c}ao @item AN_MA Netherlands Antilles/St Maarten @item AN_SA Netherlands Antilles/Saba and Statia @item AO Angola # @item AR Argentina @item AS American Samoa @item AT Austria @item AU_CT Australia/Canberra @item AU_NT Australia/Northern Territory @item AU_QU Australia/Queensland @item AU_SA Australia/Southern Australia @item AU_SW Australia/New South Wales @item AU_TA Australia/Tasmania @item AU_VI Australia/Victoria @item AU_WA Australia/Western Australia @item AW Aruba @item AZ Azerbaijan @item BA Bosnia-Herzegovina @item BB Barbados @item BD Bangladesh # @item BE Belgium @item BF Burkina Faso @item BG Bulgaria @item BH Bahrain @item BI Burundi # @item BJ Benin # @item BM Bermuda @item BN Brunei @item BO Bolivia @item BR Brazil @item BS Bahamas @item BT Bhutan # @item BV Bouvet Island @item BW Botswana @item BY Belarus @item BZ Belize @item CA_AL Canada/Alberta @item CA_BC Canada/British Columbia @item CA_MA Canada/Manitoba @item CA_NB Canada/New Brunswick @item CA_NF Canada/Newfoundland and Labrador @item CA_NS Canada/Nova Scotia @item CA_NW Canada/Northwest Territories @item CA_ON Canada/Ontario @item CA_PE Canada/Prince Edward Island @item CA_QU Canada/Qu@'ebec @item CA_SA Canada/Saskatchewan @item CA_YU Canada/Yukon @item CC Cocos Islands (Keeling) @item CD Democratic Republic of Congo # @item CF Central African Republic # @item CG Republic of Congo # @item CH_AG Switzerland/Aargau @item CH_AI Switzerland/Appenzell Innerrhoden @item CH_AR Switzerland/Appenzell Ausserrhoden @item CH_BE Switzerland/Bern @item CH_BL Switzerland/Basel-Land @item CH_BS Switzerland/Basel-Stadt @item CH_FR Switzerland/Fribourg @item CH_GE Switzerland/Gen@`eve @item CH_GL Switzerland/Glarus @item CH_GR Switzerland/Graub@"unden @item CH_JU Switzerland/Jura @item CH_LU Switzerland/Luzern @item CH_NE Switzerland/Neuch@^atel @item CH_NW Switzerland/Nidwalden @item CH_OW Switzerland/Obwalden @item CH_SG Switzerland/St Gallen @item CH_SH Switzerland/Schaffhausen @item CH_SO Switzerland/Solothurn @item CH_SZ Switzerland/Schwyz @item CH_TG Switzerland/Thurgau @item CH_TI Switzerland/Ticino @item CH_UR Switzerland/Uri @item CH_VD Switzerland/Vaud @item CH_VS Switzerland/Valais @item CH_ZG Switzerland/Zug @item CH_ZH Switzerland/Z@"urich @item CI C@^ote d'Ivoire @item CK Cook Islands @item CL Chile @item CM Cameroon @item CN China @item CO Colombia @item CR Costa Rica @item CU Cuba @item CV Cape Verde @item CX Christmas Islands @item CY Cyprus @item CZ Czech Republic @item DE_BB Germany/Brandenburg @item DE_BE Germany/Berlin @item DE_BW Germany/Baden-W@"urttemberg @item DE_BY Germany/Bavaria @item DE_HB Germany/Bremen @item DE_HE Germany/Hesse @item DE_HH Germany/Hamburg @item DE_MV Germany/Mecklenburg-West Pomerania @item DE_NI Germany/Lower Saxony @item DE_NW Germany/North Rhine-Westphalia @item DE_RP Germany/Rhineland Palatinate @item DE_SH Germany/Schleswig-Holstein @item DE_SL Germany/Saar @item DE_SN Germany/Saxony @item DE_ST Germany/Saxony-Anhalt @item DE_TH Germany/Thuringia @item DJ Djibouti @item DK Denmark @item DM Dominica @item DO Dominican Republic @item DZ Algeria @item EC Ecuador @item EE Estonia @item EG Egypt @item EH Western Sahara @item ER Eritrea @item ES Spain @item ET Ethiopia @item FI Finland @item FJ Fiji # @item FK Falkland Islands (Malvinas) @item FM Federated States of Micronesia @item FO Faroes @item FR France @item GA Gabon # @item GB_EN Great Britain/England and Wales @item GB_NI Great Britain/Northern Ireland @item GB_SL Great Britain/Scotland @item GD Grenada @item GE Georgia @item GF French Guiana @item GH Ghana @item GI Gibraltar @item GL Greenland @item GM Gambia @item GN Guinea @item GP Guadeloupe @item GQ Equatorial Guinea @item GR Greece @item GS South Georgia and South Sandwich Islands @item GT Guatemala @item GU Guam @item GW Guinea-Bissau # @item GY Guyana # @item HK Hong Kong @item HM Heard and Mc Donald Islands @item HN Honduras @item HR Croatia @item HT Haiti @item HU Hungary @item ID Indonesia # @item IE Ireland @item IL Israel @item IN India # @item IQ Iraq @item IR Islamic Republic of Iran @item IS Iceland @item IT Italy @item JM Jamaica @item JO Jordan @item JP Japan @item KE Kenya # @item KG Kyrgyzstan @item KH Cambodia # @item KI Kiribati # @item KM Comoros @item KN St Kitts and Nevis @item KP Democratic People's Republic of Korea # @item KR Republic of Korea @item KW Kuwait @item KY Cayman Islands @item KZ Kazakhstan @item LA Laos People's Democratic Republic # @item LB Lebanon @item LC St Lucia @item LI Liechtenstein @item LK Sri Lanka # @item LR Liberia @item LS Lesotho @item LT Lithuania @item LU Luxembourg @item LV Latvia @item LY Libyan Arab Jamahiriya (Libya) @item MA Morocco @item MC Monaco @item MD Republic of Moldova @item MG Madagascar # @item MH Marshall Islands @item MK Former Yugoslav Republic of Macedonia @item ML Mali @item MN Mongolia # @item MO Macau @item MP Northern Marian Islands (Saipan) @item MQ Martinique @item MR Mauritania @item MS Montserrat @item MT Malta @item MU Mauritius @item MV Maldives @item MW Malawi @item MX Mexico @item MY Malaysia # @item MZ Mozambique @item NA Namibia @item NC New Caledonia @item NE Niger @item NF Norfolk Island @item NG Nigeria @item NI Nicaragua @item NL Netherlands @item NM Myanmar (Burma) # @item NO Norway @item NP Nepal # @item NR Nauru @item NU Niue @item NZ New Zealand @item OM Oman @item PA Panama @item PE Peru @item PF French Polynesia @item PG Papua New Guinea @item PH Philippines @item PK Pakistan @item PL Poland @item PM Saint-Pierre and Miquelon @item PN Pitcairn @item PR Puerto Rico @item PT Portugal @item PW Palau @item PY Paraguay @item QA Qatar @item RE R@'eunion @item RO Romania @item RU Russian Federation @item RW Rwanda @item SA Saudi Arabia @item SB Solomon Islands @item SC Seychellen @item SD Sudan @item SE Sweden @item SG Singapore # @item SH St Helena @item SI Slovenia @item SJ Svalbard and Jan Mayen Islands @item SK Slovakia @item SL Sierra Leone @item SM San Marino @item SN Senegal @item SO Somalia @item SR Suriname # @item ST Sao Tom@'e and Principe @item SV El Salvador @item SY Syrian Arab Republic (Syria) @item SZ Swaziland @item TC Turks and Caicos Islands @item TD Chad @item TG Togo # @item TH Thailand # @item TJ Tajikistan @item TK Tokelau @item TM Turkmenistan @item TN Tunisia @item TO Tonga @item TR Turkey @item TT Trinidad and Tobago # @item TV Tuvalu @item TW Taiwan @item TZ Tanzania @item UA Ukraine @item UG Uganda @item US_AK United States/Alaska @item US_AL United States/Alabama @item US_AR United States/Arkansas @item US_AZ United States/Arizona @item US_CA United States/California @item US_CO United States/Colorado @item US_CT United States/Connecticut @item US_DC United States/District of Columbia @item US_DE United States/Delaware @item US_FL United States/Florida @item US_GA United States/Georgia @item US_HI United States/Hawaii @item US_IA United States/Iowa @item US_ID United States/Idaho @item US_IL United States/Illinois @item US_IN United States/Indiana @item US_KS United States/Kansas @item US_KY United States/Kentucky @item US_LA United States/Louisiana @item US_MA United States/Massachusetts @item US_MD United States/Maryland @item US_ME United States/Maine @item US_MI United States/Michigan @item US_MN United States/Minnesota @item US_MO United States/Missouri @item US_MS United States/Mississippi @item US_MT United States/Montana @item US_NC United States/North Carolina @item US_ND United States/North Dakota @item US_NE United States/Nebraska @item US_NH United States/New Hampshire @item US_NJ United States/New Jersey @item US_NM United States/New Mexico @item US_NV United States/Nevada @item US_NY United States/New York @item US_OH United States/Ohio @item US_OK United States/Oklahoma @item US_OR United States/Oregon @item US_PA United States/Pennsylvania @item US_RI United States/Rhode Island @item US_SC United States/South Carolina @item US_SD United States/South Dakota @item US_TN United States/Tennessee @item US_TX United States/Texas @item US_UT United States/Utah @item US_VA United States/Virginia @item US_VT United States/Vermont @item US_WA United States/Washington @item US_WI United States/Wisconsin @item US_WV United States/West Virginia @item US_WY United States/Wyoming @item UY Uruguay @item UZ Uzbekistan @item VC St Vincent and Grenadines @item VE Venezuela @item VG British Virgin Islands @item VI U.@:S.@: Virgin Islands @item VN Viet Nam @item VU Vanuatu @item WF Wallis and Futuna Islands @item WS Samoa @item YE Yemen @item YT Mayotte @item YU Serbia and Montenegro @item ZA South Africa @item ZM Zambia @item ZW Zimbabwe @end table @item --bahai-months @arindex --bahai-months @cindex Eternal holiday list, months from Bah@'a'@`i calendar @cindex Months from the Bah@'a'@`i calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Bah@'a'@`i calendar. @xref{x-bahai-holidays, , Calendar option @option{--bahai-holidays}}, for further details. @item --chinese-flexible-months @arindex --chinese-flexible-months @cindex Eternal holiday list, months from flexible Chinese calendar @cindex Months from the flexible Chinese calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Chinese calendar, that is determined in a flexible manner. @xref{x-chinese-flexible-holidays, , Calendar option @option{--chinese-flexible-holidays}}, for further details. @item --chinese-months @arindex --chinese-months @cindex Eternal holiday list, months from the Chinese calendar @cindex Months from the Chinese calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Chinese calendar. @xref{x-chinese-holidays, , Calendar option @option{--chinese-holidays}}, for further details. @item --coptic-months @arindex --coptic-months @cindex Eternal holiday list, months from the Coptic calendar @cindex Months from the Coptic calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Coptic calendar (only for dates after @acronym{AD} 283)@. @item --ethiopic-months @arindex --ethiopic-months @cindex Eternal holiday list, months from the Ethiopic calendar @cindex Months from the Ethiopic calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Ethiopic calendar. @item --french-revolutionary-months @arindex --french-revolutionary-months @cindex Eternal holiday list, months from the French Revolutionary calendar @cindex Months from the French Revolutionary calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the French Revolutionary calendar (only for dates after @acronym{AD} 1791)@. @item --hebrew-months @arindex --hebrew-months @cindex Eternal holiday list, months from the Hebrew calendar @cindex Months from the Hebrew calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Hebrew calendar. @item --indian-civil-months @arindex --indian-civil-months @cindex Eternal holiday list, months from the civil Indian calendar @cindex Months from the civil Indian calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the civil Indian calendar (only for dates after @acronym{AD} 1956)@. @item --islamic-civil-months @arindex --islamic-civil-months @cindex Eternal holiday list, months from the civil Islamic calendar @cindex Months from the civil Islamic calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the civil Islamic calendar. @xref{x-islamic-civil-holidays, , Calendar option @option{--islamic-civil-holidays}}, for further details. @item --japanese-flexible-months @arindex --japanese-flexible-months @cindex Eternal holiday list, months from flexible Japanese calendar @cindex Months from the flexible Japanese calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Japanese calendar, that is determined in a flexible manner. @xref{x-japanese-flexible-holidays, , Calendar option @option{--japanese-flexible-holidays}}, for further details. @item --japanese-months @arindex --japanese-months @cindex Eternal holiday list, months from the Japanese calendar @cindex Months from the Japanese calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Japanese calendar. @xref{x-japanese-holidays, , Calendar option @option{--japanese-holidays}}, for further details. @item --old-armenic-months @arindex --old-armenic-months @cindex Eternal holiday list, months from the Old-Armenic calendar @cindex Months from the Old-Armenic calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Old-Armenic calendar (only for dates after @acronym{AD} 551)@. @item --old-egyptic-months @arindex --old-egyptic-months @cindex Eternal holiday list, months from the Old-Egyptic calendar @cindex Months from the Old-Egyptic calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Old-Egyptic calendar. @item --persian-jalaali-months @arindex --persian-jalaali-months @cindex Eternal holiday list, months from the Persian Jalaali calendar @cindex Months from the Persian Jalaali calendar in eternal holiday list Provide the eternal holiday list additionally with the starting dates of the common and leap months, as they result from the Persian @emph{Jalaali} calendar. @xref{x-persian-jalaali-holidays, , Calendar option @option{--persian-jalaali-holidays}}, for further details. @item -i@r{[}-@r{]} @itemx --type=special@r{|}standard @arindex -i@r{[}-@r{]} @arindex -i @arindex --type=special@r{|}standard @cindex Standard calendar format @cindex Special calendar format @cindex Calendar format, standard @cindex Calendar format, special @anchor{x-type} To obtain the @dfn{standard calendar format}@footnote{Similar the @w{@acronym{BSD}-@command{cal}} program.}, either start Gcal omitting the @w{@option{-i@r{[}-@r{]}}} option because it is set by default, @ref{Internationalization, , Aspects in Internationalization}, or start Gcal with the @option{-i-} respectively @w{@option{--type=standard}} option: @example @group @cartouche $ gcal -i- @print{} @print{} September 1994 @print{} Su Mo Tu We Th Fr Sa @print{} 1 2 3 @print{} 4 5 6 7 8 9 10 @print{} 11 12 13 14 15 16 17 @print{} 18 19 20 21 22 23 24 @print{} 25 26 27 28 29 30 @end cartouche @end group @end example @iftex @sp 2 @end iftex To obtain the @dfn{special calendar format}, start Gcal with the @option{-i} respectively @w{@option{--type=special}} option: @example @group @cartouche $ gcal -i @print{} @print{} September 1994 @print{} @print{} Sunday 4 11 18 25 @print{} Monday 5 12 19 26 @print{} Tuesday 6 13 20 27 @print{} Wednesday 7 14 21 28 @print{} Thursday 1 8 15 22 29 @print{} Friday 2 9 16 23 30 @print{} Saturday 3 10 17 24 @end cartouche @end group @end example @need 1500 @item -O @itemx --orthodox-calendar @arindex -O @arindex --orthodox-calendar @cindex Calendar, leap year rule as used by Eastern churches @cindex Use Eastern Orthodox churches' leap year rule @cindex Eastern churches' leap year rule, use @cindex Leap year rule as used by Eastern Orthodox churches @anchor{x-orthodox-calendar} Use the leap year rule as used by the Eastern Orthodox churches. Without specifying the @option{--orthodox-calendar} option, Gcal is unable to display Gregorian years later than 2799 in the correct way for the Eastern churches, because they use a different scheme for calculating the leap years. The method for computing leap years within the common Gregorian calendar, which Gcal uses by default, is as follows: @quotation A leap year is any year which number can be divided by 4 without a remainder, and years ending in hundreds are no leap years unless they are divisible by 400@. @end quotation But the Eastern Orthodox churches compute leap years within the Gregorian calendar by using another rule: @quotation A leap year is any year which number can be divided by 4 without a remainder, and years ending in hundreds are leap years, if a remainder of 2 or 6 occurs when such a year is divided by 9@. @end quotation The first difference therefore occurs in the year 2800 which is a leap year in the common Gregorian calendar, but an ordinary year only in the calendar as used by the Eastern Orthodox churches. @item -K @itemx --with-week-number @arindex -K @arindex --with-week-number @cindex Calendar sheet, provide with week numbers @cindex Provide calendar sheet with week numbers @cindex Week numbers in calendar sheet Provide the calendar sheet with week numbers. @xref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}, @ref{x-iso-week-number, , Calendar option @option{--iso-week-number=yes@r{|}no}}, and @ref{Internationalization, , Aspects in Internationalization}, for further details. @need 500 @item --iso-week-number=yes@r{|}no @arindex --iso-week-number=yes@r{|}no @cindex Determine type of week number @cindex Week number, determine type @anchor{x-iso-week-number} Determine the type of week numbers which are used in the calendar sheet, in the fixed date list and by the @option{%@var{date}} actual date modifier. @xref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}, and @ref{Internationalization, , Aspects in Internationalization}, for more details. @need 2000 @table @option @item --iso-week-number=yes @arindex --iso-week-number=yes @cindex @acronym{ISO}-8601:1988 week number @cindex Week number, @acronym{ISO}-8601:1988 The methods of the @acronym{ISO}-8601:1988 are used for detecting week numbers; this means a week starts on Mondays, and the first week of a year is the one which includes the first Thursday; equivalently, the one which includes the 4th January. This method is called @dfn{@acronym{ISO} week number} in the further context. If the starting day of the week is not set to Monday, the week numbers are not represented correctly in most cases. If you use this option, you should take care of setting Monday as the starting day of the week! @item --iso-week-number=no @arindex --iso-week-number=no @cindex Standard week number @cindex Week number, standard Weeks start on the respective starting day of the week, and the days in a new year that are preceding the first starting day of the week are in the last week of the previous year, respectively in week zero of the new year. This method is called @dfn{standard week number} in the further context. @end table @item -u @itemx --suppress-calendar @arindex -u @arindex --suppress-calendar @cindex Calendar sheet, suppress @cindex Suppress calendar sheet Suppress output of calendar sheet explicitly. @need 1000 @item -b @var{number} @itemx --blocks=@var{number} @arindex -b @var{number} @arindex --blocks=@var{number} @cindex Year calendar sheet blocks, number @cindex Number of year calendar sheet blocks @cindex Year calendar sheet, force output @cindex Force year calendar sheet @anchor{x-blocks} Set @var{number} of calendar sheet blocks (valid arguments: @w{@option{1@r{|}2@r{|}3@r{|}4@r{|}6@r{|}12})@.} The default @var{number} for the @emph{standard calendar format} is @option{-b4 } respectively @w{@option{--blocks=4}}, and for the @emph{special calendar format} @option{-b 3} respectively @w{@option{--blocks=3}}@. If this option is found, the program sees that a year calendar output is desired! @table @option @item -b 1 @itemx --blocks=1 @arindex -b 1 @arindex --blocks=1 Displays one block with twelve months at a time. @item -b 2 @itemx --blocks=2 @arindex -b 2 @arindex --blocks=2 Displays two blocks with six months at a time. @item -b 3 @itemx --blocks=3 @arindex -b 3 @arindex --blocks=3 Displays three blocks with four months at a time. @item -b 4 @itemx --blocks=4 @arindex -b 4 @arindex --blocks=4 Displays four blocks with three months at a time. @need 500 @item -b 6 @itemx --blocks=6 @arindex -b 6 @arindex --blocks=6 Displays six blocks with two months at a time. @need 500 @item -b 12 @itemx --blocks=12 @arindex -b 12 @arindex --blocks=12 Displays twelve blocks with one month at a time. @end table @item -j@r{[}b@r{]} @itemx --calendar-dates=special@r{|}both @arindex -j@r{[}b@r{]} @arindex --calendar-dates=special@r{|}both @cindex Alternative date format in calendar sheet @cindex Calendar sheet, alternative date format Use alternative date format in calendar sheet instead of the default standard format which displays the days of month in consecutive manner. @table @option @item -j @itemx --calendar-dates=special @arindex -j @arindex --calendar-dates=special @cindex Special date format in calendar sheet @cindex Calendar sheet, special date format Display the calendar sheet by using the special date format. This means, the days of year are displayed in consecutive manner instead of the days of month. @item -jb @itemx --calendar-dates=both @arindex -jb @arindex --calendar-dates=both @cindex Standard and special date format in calendar sheet @cindex Calendar sheet, standard and special date format Display the calendar sheet by using both the standard date format and special date format. @end table @item -jn@r{[}b@r{]} @itemx --holiday-dates=special@r{|}both @arindex -jn@r{[}b@r{]} @arindex --holiday-dates=special@r{|}both @cindex Alternative date format in eternal holiday list @cindex Eternal holiday list, alternative date format Use alternative date format in eternal holiday list instead of the default standard format which displays the days of month in consecutive manner. @xref{x-holiday-list, , Calendar option @option{--holiday-list@r{[}=long@r{|}short@r{]}}}. @need 1000 @table @option @item -jn @itemx --holiday-dates=special @arindex -jn @arindex --holiday-dates=special @cindex Special date format in eternal holiday list @cindex Eternal holiday list, special date format Display the eternal holiday list by using the special date format. This means, the days of year are displayed in consecutive manner instead of the days of month. @item -jnb @itemx --holiday-dates=both @arindex -jnb @arindex --holiday-dates=both @cindex Standard and special date format in eternal holiday list @cindex Eternal holiday list, standard and special date format Display the eternal holiday list by using both the standard date format and special date format. @end table @item -jc@r{[}b@r{]} @itemx --fixed-dates=special@r{|}both @arindex -jc@r{[}b@r{]} @arindex --fixed-dates=special@r{|}both @cindex Alternative date format in fixed date list @cindex Fixed date list, alternative date format Use alternative date format in fixed date list instead of the default standard format which displays the days of month in consecutive manner. @xref{x-list-of-fixed-dates, , Fixed date option @option{--list-of-fixed-dates@r{[}=short@r{|}long@r{]}}}. @table @option @item -jc @itemx --fixed-dates=special @arindex -jc @arindex --fixed-dates=special @cindex Special date format in fixed date list @cindex Fixed date list, special date format Display the fixed date list by using the special date format. This means, the days of year are displayed in consecutive manner instead of the days of month. @item -jcb @itemx --fixed-dates=both @arindex -jcb @arindex --fixed-dates=both @cindex Standard and special date format in fixed date list @cindex Fixed date list, standard and special date format Display the fixed date list by using both the standard date format and special date format. @end table @need 1000 @item -s @var{argument} @itemx --starting-day=@var{argument} @arindex -s @var{argument} @arindex --starting-day=@var{argument} @cindex Starting day of week, setting @cindex Set starting day of week @anchor{x-starting-day} Set the starting day of the week (valid @var{argument}: @w{@option{0@r{,} 1@r{@dots{}}7 @r{|} today @r{|} @var{weekday name}})@.} For example: @example @group --starting-day=Sunday @r{or} --starting-day=7 @r{or} -s SUNDAY @r{or} -s sund @r{or} -sSu @r{or} -s 7 @end group @end example thus all specifies the Sunday @w{(1@equiv{}Mon, 2@equiv{}Tue @dots{} 7@equiv{}Sun)}@. If the @w{@option{-s today}} option (or @w{@option{--starting-day=today}}) or the @w{@option{-s 0}} option (or @iftex @* @end iftex @w{@option{--starting-day=0}}) is given, the starting day of the week is set to the actual weekday as it is delivered by the system date. @xref{Internationalization, , Aspects in Internationalization}, for more details. @item --time-offset=@var{argument} @arindex --time-offset=@var{argument} @cindex Change base time of the astronomical functions @cindex Base time of the astronomical functions, change @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) @cindex Civil midnight time @anchor{x-time-offset} Change the base time of the astronomical functions (valid @var{argument}: @w{@option{t@r{|}@@@r{|[}t@r{|}@@@r{][}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}@r{:[}@var{mm}@r{]}})@.} If no @w{@option{--time-offset=@var{argument}}} option is given, the astronomical data that is inserted into the eternal holiday list by the @w{@option{--astronomical-holidays}} option (@pxref{x-astronomical-holidays, , Calendar option @option{--astronomical-holidays}}), and all Sun and Moon related special texts are always calculated for 0 @w{o'clock} Universal time @w{(UTC/GMT)}, thus @dfn{civil midnight time}@. @xref{Sun data}, and @ref{Moon data}, likewise @ref{Moon phase}, for further information. @cindex Relative time offset value @cindex Time offset value, relative The @var{argument} is either the @samp{t} or the @samp{@@} character ---where @samp{t} means a relation to the actual local time@footnote{The time which is set as system time in the computer's clock.} and @samp{@@} denotes a relation to the actual Universal time---, or one of these characters followed by a displacement value, or only a displacement value which has to be specified either by using the @w{@code{@r{[}+@r{|}-@r{]}@var{mmmm}}} format or the @w{@code{@r{[}+@r{|}-@r{]}@var{hh}:@r{[}@var{mm}@r{]}}} format. @w{@code{@r{[}+@r{|}-@r{]}@var{mmmm}}} adds respectively subtracts the specified amount of minutes @var{mmmm} from the base time value 0 @w{o'clock} Universal time (range @w{@code{0@r{@dots{}}9999}}), while @w{@code{@r{[}+@r{|}-@r{]}@var{hh}:@r{[}@var{mm}@r{]}}} adds respectively subtracts the given amount of hours @var{hh} (range @w{@code{0@r{@dots{}}99}}) and minutes @var{mm} (range @w{@code{0@r{@dots{}}59}}) from the base time value 0 @w{o'clock} Universal time. The displacement value is always added to the base time value 0 @w{o'clock} Universal time in case it is specified without a @w{@code{+@r{|}-}} sign. For example, the @w{@option{--time-offset=+1:}} option causes that while displaying eternal holiday lists and fixed date lists, the time 0 @w{o'clock} of the timezone @w{GMT-1} (@equiv{} CET) is used as the base time by the astronomical functions instead of the base time 0 @w{o'clock} Universal time (@equiv{} GMT)@. @cindex Relative time offset value @cindex Time offset value, relative For example, the @w{@option{--time-offset=t-2:}} option causes that while displaying eternal holiday lists and fixed date lists, the time that is two hours earlier than the actual local time is used as the base time by the astronomical functions instead of the base time 0 @w{o'clock} Universal time (@equiv{} GMT)@. For such a kind of relation, the term @dfn{relative time offset value} will be used in the further context. @item --transform-year=@var{argument} @arindex --transform-year=@var{argument} @cindex Change base year of calendar @cindex Base year of calendar, change Change the base year of calendar (valid @var{argument}: @w{@option{-9999@r{@dots{}}@r{[}+@r{]}9999})@.} For example, the @w{@option{--transform-year=-543}} option causes that while displaying calendar sheets, eternal holiday lists and fixed date lists, the year 543 @acronym{BC} is used as the base year of the calendar instead of the year @acronym{AD} 1@. This results in the case that ---for example--- for the year 1999 (Christian era), the year number 1999 is not used in the above mentioned outputs, but the year number 2542 which is used in the western oriented Thai calendar. Nevertheless, Gcal does not respect the @w{@option{--transform-year=@var{argument}}} option when using the actual date modifier @option{%@var{date}} (@pxref{Actual date modifier}), the commands (@pxref{Commands}), and the fixed date entries in a resource file (@pxref{Date part of a line})@. There, all references made to a definite year are always treated in the way that the year @acronym{AD} 1 is the base year of the calendar, so in fact it is @strong{only} possible to use references based on the Christian era. @item --gregorian-reform=1582@r{|}1700@r{|}1752@r{|}1753@r{|}@var{argument} @arindex @w{--gregorian-reform=1582@r{|}1700@r{|}1752@r{|}1753@r{|}@var{argument}} @cindex Period of Gregorian Reformation, set @cindex Gregorian Reformation, set period @cindex Hybrid calendar mode @cindex Calendar mode, hybrid Set the period which was skipped during the Gregorian Reformation. By default, Gcal runs in the @dfn{hybrid} calendar mode, i.e.@: Gcal automatically changes from the Julian calendar system to the Gregorian calendar system if output is related to dates after the Gregorian Reformation has happened. @xref{Internationalization, , Aspects in Internationalization}, for more details. Actually, four fixed default periods are supported, and that of the year 1582, of the year 1700, of the year 1752 and of the year 1753@. If Gcal is called with the @w{@option{--gregorian-reform=1582}} option, it assumes the Gregorian Reformation has occurred from 5th till 14th October 1582@. If Gcal is called with the @w{@option{--gregorian-reform=1700}} option, it assumes the Gregorian Reformation has occurred from 19th till 28th February 1700@. If Gcal is called with the @w{@option{--gregorian-reform=1752}} option, it assumes the Gregorian Reformation has occurred from 3rd till 13th September 1752@. If Gcal is called with the @w{@option{--gregorian-reform=1753}} option, it assumes the Gregorian Reformation has occurred from 18th till 28th February 1753@. In case another period shall be respected, it can be arranged by the option @var{argument} like @samp{@var{yyyyy},@var{mm},@var{first-day},@var{last-day}}@. If the Gregorian Reformation has occurred for example on the 7th till the 17th April 1802, this can be arranged as follows: @example --gregorian-reform=1802,4,7,17 @end example @cindex Proleptic calendar mode @cindex Calendar mode, proleptic Gcal is able to represent @w{so-called} @dfn{proleptic} calendars of a definite calendar system. This means, Gcal only uses a definite calendar system during a definite period, although there was a change to another calendar system in the historic reality during this definite period. The following proleptic calendar systems are actually supported by Gcal: @itemize @bullet @item @cindex Proleptic Gregorian calendar Proleptic Gregorian calendars can be created from @acronym{AD} 302 until @acronym{AD} 9999 if @w{@option{--gregorian-reform=301,12,31,31}} is used. Unfortunately, Gcal actually cannot represent years before @acronym{AD} 302 in a @w{proleptic-Gregorian} manner. @item @cindex Proleptic Julian calendar Proleptic Julian calendars can be created from @acronym{AD} 1 until @acronym{AD} 9999 if @w{@option{--gregorian-reform=10002,12,31,31}} is used. In this case, the actual system date that is normally based on the Gregorian calendar and that is used by Gcal, is internally and automatically converted into the according Julian date@footnote{The automatical conversion into the according Julian date is always done if the actual system date, that is based on the Gregorian calendar, is before the date of the Gregorian Reformation.}@. The same happens if the actual system date is modified by using the actual date modifier @option{%@var{date}}@. In such a case, Gcal also assumes that the given date is a Gregorian date, and converts it automatically into the according Julian date internally. @xref{Actual date modifier}, for further details. @end itemize Please note that it is possible to corrupt the calendars likewise the fixed date feature logically (which works correctly now for the year in which the Gregorian Reformation has occurred) if the argument of the @w{@option{--gregorian-reform}} option is not used with care. @item --date-format=de@r{|}us@r{|}gb@r{|}@var{text} @arindex --date-format=de@r{|}us@r{|}gb@r{|}@var{text} @anchor{x-date-format} Set the date format which affects the ordering and representation of a displayed date. @xref{Internationalization, , Aspects in Internationalization}, for more details. The date format text is respected by Gcal in the eternal holiday list, in the fixed date list and the calendar sheets. Moreover, Gcal internally tries to obtain the best representation of a displayed date in case the day-of-year numbers instead of the day-of-month numbers must be displayed, or both types of numbers are used in a combined manner. @cindex Date formats @cindex Date formats, fixed default @cindex Fixed default date formats @cindex Date format texts, fixed default @cindex Fixed default date format texts Actually, three fixed default date formats are supported, and that for German users, U.S.@: American users and for users in Great Britain. @need 1000 If Gcal is called with the @w{@option{--date-format=de}} option,@* the @w{@samp{%<2#K, %1%>2*D%2 %<3#U %>04*Y}} date format text is used. This result in that a date is displayed by using the @w{@samp{@var{ww}, @ @var{dd} @var{mmm} @var{yyyy}}} ordering, for example @w{@samp{Sa, @ 28 Aug 1999}}@. If Gcal is called with the @w{@option{--date-format=us}} option,@* the @w{@samp{%<3#K, %<3#U %1%>2&*D%2 %>04*Y}} date format text is used. This result in that a date is displayed by using the @w{@samp{@var{www}, @var{mmm} @ @var{dd} @var{yyyy}}} ordering, for example @w{@samp{Sat, Aug @ 28th 1999}}@. If Gcal is called with the @w{@option{--date-format=gb}} option,@* the @w{@samp{%<3#K, %1%>2&*D%2 %<3#U %>04*Y}} date format text is used. This result in that a date is displayed by using the @w{@samp{@var{www}, @ @var{dd} @var{mmm} @var{yyyy}}} ordering, for example @w{@samp{Sat, @ 28th Aug 1999}}@. @vindex GCAL_DATE_FORMAT @cindex Date formats, individual @cindex Individual date formats @cindex Date format texts, individual @cindex Individual date format texts In case another format text shall be respected, this format text can either be set in the @w{@env{GCAL_DATE_FORMAT}} environment variable@footnote{But @w{@env{GCAL_DATE_FORMAT}} is only used in case no @w{@option{--date-format=de@r{|}us@r{|}gb@r{|}@var{text}}} option is given.}, or it can be arranged by the option argument @var{text}@. For example, @w{@samp{--date-format='%Y %D %>02*M ; %1(%>5u#K)%2'}} displays a date by using the @w{@samp{@r{[[[}@var{y}@r{]}@var{y}@r{]}@var{y}@r{]}@var{y} @r{[}@var{d}@r{]}@var{d} @var{mm} ; (@var{wwwww})}} ordering, thus for example @w{@samp{1999 28 08 ; (SATUR)}}@. @xref{x-GCAL_DATE_FORMAT, , Environment Variable @env{GCAL_DATE_FORMAT}}, for further information. @cindex Format instruction @cindex Format elements @cindex Date format elements @cindex Character replacement instruction The format text may contain on the one hand all characters which can be managed by Gcal, and on the other hand character replacement instructions and format elements which are transformed into their according values at run-time. Some format elements may have a format instruction which is called @var{format} in the further context. @xref{Format Instruction}, for the detailed description of the format instruction and its components. @need 700 A minimum date format text must contain the following format elements minimum: @quotation The day number, one component of the month group, the year number and both components of the highlighting group. @end quotation @tbindex Format elements and character replacement instructions in date format text @tbindex Date format text, format elements and character replacement instructions A weekday name format element may be included optionally into the date format text. The following format elements and character replacement instructions are currently supported: @table @code @item %@r{[}@var{format}@r{]}D Day number (must be defined) @item %@r{[}@var{format}@r{]}Y Year number (must be defined) @item %@r{[}@var{format}@r{]}K Weekday name (may be defined) @end table Month group (exactly one member must be defined): @table @code @item %@r{[}@var{format}@r{]}M Month number @item %@r{[}@var{format}@r{]}U Month name @end table @need 1500 Highlighting group (all members must be defined and @code{%1} must be specified before @code{%2}): @table @code @item %1 Start of highlighting sequence / marking character @item %2 End of highlighting sequence / marking character @end table Character replacement instructions: @table @code @item _ Space/blank character @samp{ } @item \_ Underscore character @samp{_} @item \% Percent character @samp{%} @item \\ Backslash character @samp{\} @end table @xref{Table of Obsolete Date Formats}, and @ref{Table of Obsolete Date Format Elements}, for further information. @item --translate-string=@var{text} @arindex --translate-string=@var{text} @cindex Country specific special characters @cindex Special characters, country specific @anchor{x-translate-string} Define the country specific special character pairs which are respected or translated by a @var{style} format instruction component, respectively. @xref{Format Instruction}, for the detailed description of the format instruction and its components. The country specific special character pairs are arranged by the @var{text} option argument as a sequence of single character pairs, and that in any number and order. The upper-case representation of the country specific special character has to be specified at first, and after that its lower-case representation. Country specific special characters which do not have an upper-case resp., lower-case representation in the character set used, like e.g.@: the @samp{@ss{}}-character which is very usual in the German character set, are also specified as a special character pair (here: @samp{@ss{}@ss{}}), otherwise these special characters are not recognized and they are converted incorrectly by the @var{style} format instruction component. In case the lower-case representation of the country specific special character is specified at first, and after that its upper-case representation, this option does not cause any further affects to the @var{style} format instruction component; resulting, the country specific special characters specified are not recognized as such and they remain untranslated therefore. For example, a @w{@samp{@"A@"a@"O@"o@"U@"u@ss{}@ss{}}} option argument causes the correct conversion of the preceding special characters in an individual date format, which has a @var{style} format instruction component, and that, how they are used by the character set used in Germany. @end table @node Fixed date options, , Calendar options, Options @subsubsection Fixed date options @cindex Fixed date options @table @option @item -v @var{argument} @itemx --date-variable=@var{argument} @arindex -v @var{argument} @arindex --date-variable=@var{argument} @cindex Date variables, global @cindex Global date variables, definition @cindex Definition of global date variables @cindex Definition of date variables @cindex Date variables, definition @cindex Management of date variables @cindex Date variables, management @cindex Scope of date variables @cindex Date variables, scope @cindex Operations on date variables @cindex Date variables, operations @cindex Assignments to date variables @cindex Date variables, assignments @cindex Name space of date variables @cindex Date variables, name space @cindex @samp{:} separator character @cindex Separator character, @samp{:} @anchor{x-date-variable} Define @dfn{global} date variable which is visible in all referenced resource files (@pxref{Date variables})@. The option @var{argument} must either be a valid single date variable definition or a (@samp{:}) colon-connected series of definitions. A date variable name @var{dvar} consists of a single, case-insensitive letter@footnote{Except the date variable @var{e} which is internally reserved for the Easter Sunday's date, so it cannot be assigned or operated therefore. And except the date variable @var{t} which is internally reserved for today's date, so it likewise cannot be assigned or operated.}@. In a definition, this name is trailed by the assignment operator character @samp{=}, and the numerical values of month @var{mm} (or a short, three characters month name, e.g.@: @samp{Jan}, @samp{Feb}@dots{}) and day @var{dd}, this variable has to store@footnote{Or another global date variable name which is already defined, but @strong{no} date given in the @samp{e@r{|}t@r{|}@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}}, @samp{@var{mm}@var{www}@var{n}}, or the @samp{*d@r{|}w@var{n}@r{[}@var{www}@r{]}} format.}@. For example: @quotation @option{--date-variable=a=1127:c=a} respectively@* @option{-v a=1127:c=a}@* stores the 27th November into the global date variable @var{a} and into the global date variable @var{c}@. @end quotation @need 1000 @item --export-date-variables @arindex --export-date-variables @cindex Date variables, export of local @cindex Export of local date variables @cindex Visibility of local date variables @cindex Date variables, visibility of local Causes the export of local date variables from one resource file to another resource file. @xref{Date variables}, for more details. @need 1000 @item -r @var{argument} @itemx --text-variable=@var{argument} @arindex -r @var{argument} @arindex --text-variable=@var{argument} @cindex Text variables, global @cindex Global text variables, definition @cindex Definition of global text variables @cindex Definition of text variables @cindex Text variables, definition @cindex Management of text variables @cindex Text variables, management @cindex Scope of text variables @cindex Text variables, scope @cindex Assignments to text variables @cindex Text variables, assignments @cindex Name space of text variables @cindex Text variables, name space @cindex @samp{:} separator character @cindex Separator character, @samp{:} @anchor{x-text-variable} Define @dfn{global} text variable which is visible in all referenced resource files (@pxref{Text variables})@. The option @var{argument} must either be a valid single text variable definition or a (@samp{:}) colon-connected series of definitions. A text variable name @var{tvar} consists of the @samp{$} prefix and a single, case-insensitive letter. A text variable is defined as follows: @itemize @bullet @item If the name of a text variable is trailed by the assignment operator character @samp{=}, all the text which appears at the right side of this assignment operator is assigned to this text variable. @item If the name of a text variable is trailed by the assignment operator character @samp{?}, all the text which appears at the right side of this assignment operator is assumed as an external command and executed by Gcal. The output, which is created on the @emph{standard output channel} by the command run, is assigned to this text variable; and that in an interpreted manner. This means, Gcal interprets all special texts and references to other text variables which are contained in this output. @xref{Text variables}, and @ref{Special Texts processed}, for further information. @item If the name of a text variable is trailed by the assignment operator character @samp{:}, all the text which appears at the right side of this assignment operator is assumed as an external command and executed by Gcal. The output, which is created on the @emph{standard output channel} by the command run, is assigned to this text variable; and that in an uninterpreted manner. This means, Gcal does not interpret any special texts and references to other text variables which are contained in this output. See also @ref{Text variables}, and @ref{Special Texts processed}, for further details. @end itemize @cindex Execute command @cindex Command execution Indeed, Gcal executes external commands only if the @option{--execute-command} option is given at program start-up. @xref{x-execute-command, , Fixed date option @option{--execute-command}}, for more details. The text which appears at the right side of one of the valid assignment operator characters may reference names of already defined global text variables. These references are converted to the according textual values just before the assignment is performed by Gcal. A global text variable is defined with an @emph{empty contents} in case no text appears at the right side of one of the valid assignment operator characters. For example: @quotation @option{--text-variable=$a=foo:$c=$a} respectively@* @option{-r $a=foo:$c=$a}@* stores the @samp{foo} text into the global text variable @var{$a} and into the global text variable @var{$c}@. @need 500 @option{--text-variable=$a\:foo:$c?bar} respectively@* @option{-r $a\:foo:$c?bar}@* stores the uninterpreted output of the @command{foo} command into the global text variable @var{$a}, and the interpreted output of the @command{bar} command into the global text variable @var{$c}@. @end quotation @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{:} separator character ---in case this character itself is needed--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\:}@. If you need the @samp{\:} characters themselves, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\:}@. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{$} prefix character ---in case this character itself is needed in the text--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\$}@. If you need the @samp{\$} characters themselves in the text, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\$}@. @cindex Pseudo space character, @samp{_} @cindex @samp{_} pseudo space character Each time a @samp{_} (underscore) character is found in @var{argument}, this character is replaced by a real @samp{ } (space) character. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{_} (underscore) character ---in case this character itself is needed--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\_}@. If you need the @samp{\_} themselves, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\_}@. @need 1000 @item --export-text-variables @arindex --export-text-variables @cindex Text variables, export of local @cindex Export of local text variables @cindex Visibility of local text variables @cindex Text variables, visibility of local Causes the export of local text variables from one resource file to another resource file. @xref{Text variables}, for more details. @item --adjust-value=@var{argument} @arindex --adjust-value=@var{argument} @cindex Reference altitude used for sunrise and sunset, set @cindex Sunrise and sunset, set reference altitude @cindex Reference altitude used for moonrise and moonset, set @cindex Moonrise and moonset, set reference altitude @anchor{x-adjust-value} Causes on the one hand, that the number given as @var{argument} to the @w{@option{--adjust-value}} option is used as reference altitude to calculate the rise and set times by the Sun and Moon oriented special texts. The option argument must be a rational number in range @w{-90.0@dots{}+90.0}, which declares the angle distance in decimal degrees from the center of astronomical object to the horizon. For example, you can detect the time when the center of the Sun or the Moon is @w{20.5} decimal degrees below the horizon if you use @w{@option{--adjust-value=-20.5}}@. @cindex Set shadow length factor @cindex Shadow length factor, set And causes on the other hand, that the number that is given as @var{argument} is used as factor for computing the shadow length of a vertical pole by the Sun oriented special texts. The option argument must be a rational number in range @w{0.0@dots{}+90.0}, which declares the shadow length. For example, you can detect the time when the shadow length of vertical pole is three and a half times longer than the shadow length that appears at astronomical noon if you use @w{@option{--adjust-value=3.5}}@. @xref{Sun data}, and @ref{Moon data}, for further information. @need 1000 @item --atmosphere=@var{air-pressure}@r{[,}@var{temperature}@r{]} @arindex --atmosphere=@var{air-pressure}@r{[,}@var{temperature}@r{]} @cindex Base data of Earth's atmosphere to calculate refraction, set @cindex Earth's atmosphere, set base data to calculate refraction @cindex Temperature of Earth's atmosphere, set @cindex Earth's atmosphere, set temperature @cindex Air pressure of Earth's atmosphere, set @cindex Earth's atmosphere, set air pressure @cindex Refraction, atmospheric @cindex Atmospheric refraction @anchor{x-atmosphere} Set the base data of the Earth's atmosphere that is necessary to calculate the amount of @dfn{refraction}@footnote{Refraction is an optical phenomenon caused by the Earth's atmosphere, which leads to an apparent raising of the location of a celestial body. The amount of refraction increases with growing air pressure and sinking temperature and @w{vice-versa}@.}, that is used by the Sun and Moon oriented special texts. The option argument consists of one or two rational numbers, which are separated by a @samp{,} character. The first number denotes the air pressure in millibar, and the second number specifies the air temperature in degree Celsius. The default value for the air pressure is @w{1013.25} millibar, and the default value for the temperature is @w{15.0} degree Celsius. For example, if you use @w{@option{--atmosphere=1010,10}}, you define atmospheric conditions as they are existing for an air pressure of 1010 millibar and a temperature of 10 degree Celsius. If you set an air pressure value less or equal zero, no atmospheric refraction will be respected by the Sun and Moon oriented special texts, as for example done by @w{@option{--atmosphere=0}}@. @xref{Sun data}, and @ref{Moon data}, for further information. @item --limit @arindex --limit @cindex Limit sunrise and sunset to actual day @cindex Sunrise and sunset, limit to actual day @anchor{x-limit} Causes when calculating the rise and set times by the Sun oriented special texts for high latitudes, that a rise or set event which possibly occurs on a previous or next day, is not displayed as occurring on the actual day as it is done by default. At high latitudes, i.e.@: above the solar Arctic Circle, it is fact that no, or more than one sunrise or sunset happens during a day at definite dates of the year. As a special text basically leads in a single, atomical output, even it should result in several output in reality, Gcal puts such an event on a previous or next day. Then, data represented in this manner could be misinterpreted very easily. The following example is used to explain this. It calculates the time the astronomical twilight ends for the location M@"unster, Germany, during some days in May 2000, and that with and without the @option{--limit} option in each case: @include examples/limit.texi As one can see well in the above example, the output for the days since 9th May differs in that the times shown without the @option{--limit} option obviously exceeded the civil midnight time and actually cannot happen during these days, whereas no times are shown for the days since 9th May if the @option{--limit} option is used because the time circle is exceeded. Astronomically seen, it is the case that the end of the astronomical twilight is at @w{23:57} @w{o'clock} local time on 8th May, no end of astronomical twilight happens on 9th May because the center of the Sun's disk is always above 18 degrees (the reference altitude of the astronomical twilight) below a geometric horizon, but on 10th May at @w{00:01} @w{o'clock} local time, this reference altitude is passed again. Thus, the time that is detected for the 9th May has properly to be moved to the 10th May, et cetera, as it is expressed by the output that is created by using the @option{--limit} option. @xref{Sun data}, for further information. @item --cycle-end=@var{argument} @arindex --cycle-end=@var{argument} @cindex Cycle ending time value for Sun and Moon data and times, set @cindex Set cycle ending time value for Sun and Moon data and times @cindex Sun and Moon data and times, set cycle ending time value @cindex Cycle mode @anchor{x-cycle-end} Calculates the Sun and Moon oriented special texts that are dynamical, i.e.@: depending on the respective clocktime, for a series of clocktimes for the current day, i.e.@: determination is done for any time interval that can be individually defined by the user. Gcal is always put into such a @dfn{cycle mode} if the @w{@option{--cycle-end}} option is given at program @w{start-up}@. The @var{argument} of the @w{@option{--cycle-end}} option is syntactically according to the argument which may be given to the @w{@option{--time-offset}} option, thus @w{@option{t@r{|}@@@r{|[}t@r{|}@@@r{][}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}@r{:[}@var{mm}@r{]}}@.} @xref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, for the detailed explanation of the preceding option argument. Thus, the @w{@option{--cycle-end}} option is used to fix the ending time of the time interval, whereas the @w{@option{--time-offset}} option is @strong{implicitly} used to fix the starting time of the time interval, that is 0 @w{o'clock} by default@footnote{Correct, the @w{@option{--time-offset}} option has multiple modes of operation that are depending on the context of its use!}@. If values for the time interval are given to both above mentioned options that fall short of 0 @w{o'clock}, these values are automatically set to 0 @w{o'clock}. If values for the time interval are given that exceed @w{23:39} @w{o'clock}, these values are automatically set to @w{23:59} @w{o'clock}. The timestep value between the starting and the ending time of the time interval that is respected by Gcal is one minute by default. This value can at pleasure be changed by using the @w{@option{--cycle-step}} option. @xref{x-cycle-step, , Fixed date option @option{--cycle-step=@var{argument}}}, for more details. You should always keep in mind that the use of the cycle mode is efficient only if the current time of the time interval is also part of that resource file line that has to be evaluated in this manner. Otherwise, it is difficult to find out unobjectionably lateron when displaying the data and times, which Sun or Moon oriented value resulted in what time. The following example shows how the topocentric elevation angle of the Sun for the location M@"unster, Germany, is calculated during two days in April 2000, and that for the time interval @w{12:00} @w{o'clock} until @w{12:05} @w{o'clock} local time in each case: @include examples/cycle-1.texi @xref{Sun data}, and @ref{Moon data}, for further information. @item --cycle-step=@var{argument} @arindex --cycle-step=@var{argument} @cindex Cycle displacement value for Sun and Moon data and times, set @cindex Set cycle displacement value for Sun and Moon data and times @cindex Sun and Moon data and times, set cycle displacement value @cindex Cycle timestep value for Sun and Moon data and times, set @cindex Set cycle timestep value for Sun and Moon data and times @cindex Sun and Moon data and times, set cycle timestep value @anchor{x-cycle-step} Changes the timestep value that is used between the starting and ending clocktime of the time interval, in which the Sun and Moon oriented special texts are calculated, that are dynamical, i.e.@: depending on the respective clocktime. @xref{x-cycle-end, , Fixed date option @option{--cycle-end=@var{argument}}}, how to define such a time interval. Without the @w{@option{--cycle-end}} option, a @w{@option{--cycle-step}} option is completely ignored. It also does not enable Gcal's cycle mode. The @var{argument} of the @w{@option{--cycle-step}} option is by change syntactically according to the argument which may be given to the @w{@option{--time-offset}} option, and that relative time offset value references based on the actual local time and Universal time cannot be made, respectively. Gcal always uses the amount of the given timestep value. Thus, the template for the argument that may be given to the @w{@option{--cycle-step}} option is @w{@option{@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}@r{:[}@var{mm}@r{]}}@.} @xref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, for the detailed explanation of the preceding option argument. The timestep value between the starting and the ending time of the time interval that is respected by Gcal is one minute by default. The following example shows how the topocentric elevation angle of the Sun for the location M@"unster, Germany, is calculated during two days in April 2000, and that for the time interval @w{10:00} @w{o'clock} until @w{17:00} @w{o'clock} local time with a timestep value of one hour and 15 minutes in each case: @include examples/cycle-2.texi @xref{Sun data}, and @ref{Moon data}, for further information. @item --precise @arindex --precise @cindex More precise representation of astronomical data and times @cindex Astronomical data and times, more precise representation @cindex More precise representation of geographical data @cindex Geographical data, more precise representation @anchor{x-precise} The astronomical data and times that are created by the Sun and Moon oriented special texts, and the geographical data that is created by the distance and course angle oriented special text, respectively, are displayed by using a higher precision, i.e.@: according to the mode or style of representation and the type of special text, decimal values are displayed with more decimal places, or output of the time seconds part or the arcseconds part. @xref{Sun data}, and @ref{Moon data}, likewise @ref{Geographical distance and course angle}, for further information. @need 500 @item --execute-command @arindex --execute-command @cindex Shell @cindex Command line interpreter @cindex Execute command @cindex Command execution @anchor{x-execute-command} Causes on the one hand, that shell command @code{%!@r{[}@var{argument}@r{]}} special texts are executed, and not displayed textually only. @xref{Shell Command, , Shell command @code{%!@r{[}@var{argument}@r{]}} special text}, for more details. And causes on the other hand, that @w{@samp{@var{tvar}?@r{[}@var{command}@r{]}}} and @w{@samp{@var{tvar}:@r{[}@var{command}@r{]}}} text variable definitions is assigned the output of an external command, and not the text which contains the call of the external command. @xref{Text variables}, for further information. @item -D @var{argument} @itemx --filter-day=@var{argument} @arindex -D @var{argument} @arindex --filter-day=@var{argument} @cindex Filtration, days of fixed dates @cindex Fixed dates, filtration of days Displays only those fixed dates, whose date is not excluded by the given @var{argument}@. @xref{Date part of a line}, and likewise @ref{Exclusions without any argument, , Exclusions without any argument @code{%@var{?}} special texts}@. The @var{argument} consists of one or more characters as used in the exclusion without any argument @code{%@var{?}} special text; but without the leading @samp{%} character in each case. For example, it is possible to induce Gcal to display only those fixed dates from the resource file @file{demo.rc} for the whole year which are legals holidays, and moreover, Saturdays or Sundays: @example gcal -f demo.rc --year --filter-day=Rv @end example @item -P @var{argument} @itemx --filter-period=@var{argument} @arindex -P @var{argument} @arindex --filter-period=@var{argument} @cindex Filtration, periods of fixed dates @cindex Fixed dates, filtration of periods Displays only those fixed dates, whose date is not excluded by the given @var{argument}@. @xref{Date part of a line}, and likewise @ref{Exclusions with date argument, , Exclusions with date argument @code{%@var{?}@r{[}@var{date}@r{]}} special texts}@. The @var{argument} consists of one or more expressions as used in the exclusion with date argument @code{%@var{?}@r{[}@var{date}@r{]}} special text; but without the leading @samp{%} character in each case. You can use more than one of these @code{%@var{?}@r{[}@var{date}@r{]}} expressions by connecting them with a @samp{,} character. For example, it is possible to induce Gcal to display only those fixed dates from the resource file @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. @example gcal -f demo.rc -y -P i00000017#00000020,i00000031#00000031 @end example @item -I @var{pattern} @itemx --filter-text=@var{pattern} @arindex -I @var{pattern} @arindex --filter-text=@var{pattern} @cindex Filtration, fixed date texts @cindex Fixed date texts, filtration @cindex Regular expression @cindex Pattern @cindex Line break-up character, @samp{~} @cindex @samp{~} line break-up character @cindex Line break-up character, @samp{^} @cindex @samp{^} line break-up character @anchor{x-filter-text} Displays only those fixed dates, whose completely expanded text@footnote{Except Gcal's line break-up characters @samp{~} and @samp{^}, so you have to use @samp{\~} and @samp{\\^} in the @var{pattern} argument if you want to search texts which contain these characters.} is matched by the given @var{pattern}@. @xref{Text part of a line}, and @ref{Replacements, , @code{%@var{?}}@dots{} special texts for text replacement}@. The @var{pattern} is a @emph{regular expression}, as recognized by the Unix @code{ed} line-editor. @xref{Regular Expressions}, for further information. For example, it is possible to induce Gcal to display all fixed dates from the resource file @file{doctor.rc} for the current month, which are defined for dentists or oculists: @example gcal -f doctor.rc --month -I "[dD]entist|[oO]culist" @end example @cindex Pseudo space character, @samp{_} @cindex @samp{_} pseudo space character Each time a @samp{_} (underscore) character is found in the @var{pattern} argument, this character is replaced by a real @samp{ } (space) character. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{_} (underscore) character ---in case this character itself is needed--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\_}@. If you need the @samp{\_} characters themselves, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\_}@. @item --ignore-case @arindex --ignore-case @cindex Filtration, fixed date texts @cindex Fixed date texts, filtration @cindex Ignoring case distinctions in regular expression @cindex Ignoring case, regexp @cindex Regular expression, ignoring case distinctions @cindex Regexp, ignoring case @anchor{x-ignore-case} Ignores all case distinctions in both the completely expanded text and the @var{pattern} of the @w{@option{--filter-text=@var{pattern}}} option. @xref{x-filter-text, , Fixed date option @option{--filter-text=@var{pattern}}}. @item --revert-match @arindex --revert-match @cindex Filtration, fixed date texts @cindex Fixed date texts, filtration @cindex Reverted regular expression @cindex Regular expression, reverted @cindex Negated regular expression @cindex Regular expression, negated @cindex Complemented regular expression @cindex Regular expression, complemented Displays all those fixed dates, whose completely expanded text does not match the @var{pattern} of the @w{@option{--filter-text=@var{pattern}}} option. @xref{x-filter-text, , Fixed date option @option{--filter-text=@var{pattern}}}. @item -c@r{|}C@r{[}-@r{]} @itemx --today @itemx --list-of-fixed-dates@r{[}=short@r{|}long@r{]} @itemx --descending-fixed-dates@r{[}=short@r{|}long@r{]} @arindex -c@r{|}C@r{[}-@r{]} @arindex --today @arindex --list-of-fixed-dates@r{[}=short@r{|}long@r{]} @arindex --descending-fixed-dates@r{[}=short@r{|}long@r{]} @cindex Fixed date, option @cindex Fixed dates @cindex Fixed date period long-style option, @option{--today} @cindex Today's fixed dates @cindex Fixed dates for @emph{today} @cindex Activate fixed date function @cindex Fixed date function, activate @anchor{x-list-of-fixed-dates} Activate the fixed date function and display fixed date messages, if any. @table @option @item -c @itemx --today @itemx --list-of-fixed-dates=short @arindex -c @arindex --today @arindex --list-of-fixed-dates=short @cindex Error code 1 @cindex Exit code 1 Activate fixed date function (use standard resource file implicitly) and list all dates related to the actual system date (@equiv{}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. @xref{x-1-Error-code, , Error Code 1}. @need 1000 @item -c- @itemx --descending-fixed-dates=short @arindex -c- @arindex --descending-fixed-dates=short @cindex Error code 1 @cindex Exit code 1 Activate fixed date function (use standard resource file implicitly) and list all dates related to the actual system date (@equiv{}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. @xref{x-1-Error-code, , Error Code 1}. @need 1000 @item -C @itemx --list-of-fixed-dates=long @arindex -C @arindex --list-of-fixed-dates=long Activate fixed date function (use standard resource file implicitly) and list all dates related to the actual system date (@equiv{}today), sorted in ascending order. If no fixed dates related to the current day are found, an ``empty'' fixed date message is displayed which is only consisting of the date. @need 1000 @item -C- @itemx --descending-fixed-dates=long @arindex -C- @arindex --descending-fixed-dates=long Activate fixed date function (use standard resource file implicitly) and list all dates related to the actual system date (@equiv{}today), sorted in descending order. If no fixed dates related to the current day are found, an ``empty'' fixed date message is displayed which is only consisting of the date. @end table @need 1500 @item -f@r{|}F @var{name}@r{[}+@r{@dots{}]} @itemx --resource-file=@var{name}@r{[}+@r{@dots{}]} @arindex -f@r{|}F @var{name}@r{[}+@r{@dots{}]} @arindex --resource-file=@var{name}@r{[}+@r{@dots{}]} @cindex Resource file, additional @cindex Additional resource file @cindex Resource file, other @cindex Other resource file @cindex Activate fixed date function @cindex Fixed date function, activate @cindex Error code 1 @cindex Exit code 1 @anchor{x-resource-file} Activate fixed date function and use file @var{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 (@equiv{}today) is used for the fixed date period. If the option letter @option{f} of the short-style option is used and no dates related to the fixed date period are found in @var{name}, no fixed date messages are displayed and the program is terminated with an error code. @xref{x-1-Error-code, , Error Code 1}. If the option letter @option{F} of the short-style option is used and no dates related to the fixed date period are found in @var{name}, an ``empty'' fixed date message is displayed which is only consisting of the date. @need 1000 @cindex Separator character, @samp{+} @cindex @samp{+} separator character @vindex HOME You can use more than one resource file @var{name} by connecting them with a @samp{+} character, e.g.@:: @quotation @option{--resource-file=./foo+xyz+/data/bar+$HOME/.gcalrc} resp.,@* @option{-f ./foo+xyz+/data/bar+$HOME/.gcalrc} @end quotation respects all files given in the preceding argument by using a special file search mechanism. @xref{x-File-searching-mechanism, , File searching mechanism}, for more details. Use @file{/dev/null} to avoid the use of the standard resource file, useful for creating @emph{empty fixed date lists}@. If a single @samp{-} character is given as file @var{name}, like @w{@option{--resource-file=./foo+-+xyz}} or @option{-F-}, but not @w{@option{-F -}}, Gcal reads and processes all input received from the @emph{standard input channel}@. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{+} separator character ---in case this character itself is needed--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\+}@. If you need the @samp{\+} characters themselves, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\+}@. @cindex Pseudo space character, @samp{_} @cindex @samp{_} pseudo space character Each time a @samp{_} (underscore) character is found in @var{name}, this character is replaced by a real @samp{ } (space) character. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{_} (underscore) character ---in case this character itself is needed--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\_}@. If you need the @samp{\_} characters themselves, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\_}@. @item -# @var{line} @itemx --here=@var{line} @arindex -# @var{line} @arindex --here=@var{line} @cindex Resource file line, additional @cindex Additional resource file line @cindex Resource file line, further @cindex Further resource file line @cindex Activate fixed date function @cindex Fixed date function, activate @cindex Error code 1 @cindex Exit code 1 Activate fixed date function and use the @var{line} argument together with the standard resource file respectively additional resource files. The @var{line} argument has to be a valid line as it may occur in a Gcal resource file (@pxref{Structure of resource file}), and is always evaluated last @strong{after} the processing of all resource files, so dealing with references to exported local date or text variables is enabled. 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 (@equiv{}today) is used for the fixed date period. If no dates related to the fixed date period are found in the @var{line}, no fixed date messages are displayed and the program is terminated with an error code. @xref{x-1-Error-code, , Error Code 1}. For example, the call: @example gcal -# "0*d1su#99su.7 ^%Z" --here="#include " -y @end example causes the implicit processing of the standard resource file just before the further resource file line @samp{0*d1su#99su.7 ^%Z} and following @samp{#include } are processed, and that as if these lines were a physical part of the standard resource file. @need 2000 @cindex Pseudo space character, @samp{_} @cindex @samp{_} pseudo space character Each time a @samp{_} (underscore) character is found in @var{line}, this character is replaced by a real @samp{ } (space) character. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{_} (underscore) character ---in case this character itself is needed--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\_}@. If you need the @samp{\_} characters themselves, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\_}@. @end table @noindent @strong{Please note:}@* If the short-style option @option{-c} and/or its modifiers @w{@option{t@r{|[}w@r{|}m@r{|}y@r{[}+@r{|}-@r{]}}}, or the short-style option @option{-f} is/are given in @strong{upper-case}, e.g.@:: @example @group -C -F foo.bar -CeT -c-aW+ -CeaxY- -c-M @end group @end example @noindent Gcal displays fixed date messages for @strong{every} day of the requested period. @need 2000 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: @quotation @table @asis @item First step: @emph{Representation-of-text-modifier} @cindex Representation-of-text-modifier @option{a}, @option{A}, @option{e@r{|}E}, @option{J}, @option{k}, @option{o}, @option{Q}, @option{U}, @option{x}, @option{z}, @option{Z} @item Second step: @emph{Period-of-fixed-dates-modifier} @cindex Period-of-fixed-dates-modifier @w{@option{d},} @w{@option{l},} @w{@option{t@r{|}T},} @w{@option{w@r{|}W@r{|}m@r{|}M@r{|}y@r{|}Y@r{[}+@r{|}-@r{]}},} @w{@option{@var{n}+@r{|}-},} @w{@option{@var{n}d},} @w{@option{@var{n}w},} @w{@option{*d@var{n}@r{[}@var{www}@r{]}},} @w{@option{*w@var{n}@r{[}@var{www}@r{]}},} @w{@option{@@e@r{|}t@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}},} @w{@option{@@e@r{|}t@r{|}@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}},} @w{@option{@var{mm}@var{dd}},} @w{@option{@var{mm}@var{www}@var{n}}} @end table @end quotation @need 3000 If you want to operate with the preceding modifiers, an @strong{explicit} @w{@option{-c@r{|}C@r{[}-@r{]}}} short-style option must be leading on the one hand, e.g.@:: @example @group -c-t -cw- -CZdekloQUzJaxA12+ @end group @end example @cindex Fixed date period modifier, @option{d} @cindex Fixed date period modifier, @option{l} @cindex Fixed date period option, @option{--leap-day=february@r{|}march} @noindent and only @strong{one} period defining fixed date period modifier may be given@footnote{This means, exclusive the @option{--include-today} option respectively @option{d} modifier, the @option{--list-mode} option or the @option{l} modifier, and the @option{--leap-day=february@r{|}march} option.}@. @cindex Single character options @cindex Options, single character @cindex Single command line word @cindex Command line word, single @noindent 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 @w{@option{-c@r{|}C@r{[}-@r{]}}}, @w{@option{-f@r{|}F @var{name}@r{[}+@r{@dots{}]}}} or @w{@option{-# @var{line}}}@footnote{Respectively their according long-style options.} must be given like: @example @group -c -t -w- -c -a -Ad -e -kloQUxz -C12+ -F foo.bar -dJZA -l*d10 --here="; Comment" -dZAa @end group @end example @need 1500 @cindex Single character options @cindex Options, single character @cindex Single command line word @cindex Command line word, single @cindex Fixed date, option @cindex Fixed dates @cindex Activate fixed date function @cindex Fixed date function, activate @noindent If the modifiers are given as single character options or composed into a single command line word, and one of the @w{@option{t@r{|}T@r{|[}w@r{|}W@r{|}m@r{|}M@r{|}y@r{|}Y@r{[}+@r{|}-@r{]]}}} modifiers is used@footnote{Or their according alias names, like @option{--today}, @option{--tomorrow}@enddots{}}, it is unnecessary to give a @w{@option{-c@r{|}C@r{[}-@r{]}}} respectively @w{@option{-f@r{|}F @var{name}@r{[}+@r{@dots{}]}}} short-style option@footnote{Or their according long-style options.} to activate the fixed date function of Gcal, because it is triggered implicitly by means of these modifiers / alias names. @xref{Coding Scheme}, whose tables explain the relations between the @emph{date part} @w{(@var{yyyy}@dots{})} of a resource file line and the modifiers, the short-style option @w{@option{-c@r{|}C@r{[]}}} ---which is used for enabling the fixed date feature--- respectively the long-style option @w{@option{--period-of-fixed-dates=@var{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 @emph{fixed date} argument is given, it respects only those entries which have a definite relation to the @emph{fixed date} argument to avoid the output of redundant information! @page @cindex Fixed date text modifiers @cindex Modifiers, fixed date text @cindex Options, fixed date text @noindent @strong{Fixed date text modifiers and options:} @table @option @item --biorhythm-axis=@var{number} @arindex --biorhythm-axis=@var{number} @cindex Fixed date text option, @option{--biorhythm-axis=@var{number}} @anchor{x-biorhythm-axis} The width of the biorhythm text graphics ---which can be created by means of the biorhythm text graphics @code{%;@r{[}@var{date}@r{]}} special text--- is changed to @var{number} characters for each axis of the bar. The @var{number} argument must be an integer value between @w{1@dots{}100}, the default number of characters is 20@. If the @var{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 @var{number} argument of 19 is internally reduced to 10@. For example: @include examples/bio.texi @xref{Biorhythm, , Biorhythm @code{%@var{?}@r{[}@var{date}@r{]}} special texts}, for more details. @item --moonimage-lines=@var{number} @arindex --moonimage-lines=@var{number} @cindex Fixed date text option, @option{--moonimage-lines=@var{number}} @anchor{x-moonimage-lines} The height of the Moon phase text graphics ---which can be created by means of the Moon phase text graphics @code{%Z@r{[}@var{date}@r{]}} special text--- is changed to @var{number} lines. The @var{number} argument must be an integer value between @w{6@dots{}30}, the default number of lines is 12@. @page For example: @include examples/moon.texi @xref{Moon phase, , Moon phase @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts}, for more details. @item a @itemx --include-resource-file-name @arindex -a @arindex -ca @arindex --include-resource-file-name @cindex Fixed date text modifier, @option{a} Extend fixed date text by the name of the resource file and the line number which the fixed date text comes from, e.g.@:: @example @group Mon, Jan 1st 1995: (`Eternal holiday list'#00003) New Year's day Mon, Jan 1st 1995: (.gcalrc#00987) No fixed dates @dots{} @end group @end example @item A @itemx --alternative-format @arindex -A @arindex -cA @arindex --alternative-format @cindex Fixed date text modifier, @option{A} @cindex Fixed date text modifier, alternative list format Instead of using the @dfn{standard} list format, e.g.@:: @example @group Mon, Jan 1st 1995: New Year's day Mon, Jan 1st 1995: No fixed dates @dots{} @end group @end example Gcal uses the @dfn{alternative} list format, e.g.@:: @example @group Mon, Jan 1st 1995: New Year's day No fixed dates @dots{} @end group @end example @item e @itemx --include-holidays=long @arindex -e @arindex -ce @arindex --include-holidays=long @cindex Fixed date text modifier, @option{e} Enable inclusion of all built-in eternal holiday dates. This includes legal holidays and memorial days. @item E @itemx --include-holidays=short @arindex -E @arindex -cE @arindex --include-holidays=short @cindex Fixed date text modifier, @option{E} Enable inclusion of those built-in eternal holiday dates which are legal holidays only. @need 1000 @item g@r{[}@var{text}@r{]} @itemx --grouping-text@r{[}=@var{text}@r{]} @arindex -g@r{[}@var{text}@r{]} @arindex -cg@r{[}@var{text}@r{]} @arindex --grouping-text@r{[}=@var{text}@r{]} @cindex Fixed date text modifier, @option{g@r{[}@var{text}@r{]}} Group fixed dates by day by using the @var{text} separator. If @var{text} is not given, the built-in @var{text}@footnote{@w{@code{RC_GROUP_SEP}} ``'' @equiv{} empty line only.} is used for grouping, e.g.@:: @example @group @cartouche $ gcal -Cxw -cg @print{} @print{} Sun, Nov 6th 1994: Text 1 @print{} Sun, Nov 6th 1994: Text 2 @print{} @print{} Mon, Nov 7th 1994: Text 3 @print{} @print{} Tue, Nov 8th 1994: Text 4 @dots{} $ gcal -Cxw -g'-A_user\_defined-~-grouping text-' @print{} @print{} Sun, Nov 6th 1994: Text 1 @print{} Sun, Nov 6th 1994: Text 2 @print{} -A user_defined- @print{} -grouping text- @print{} Mon, Nov 7th 1994: Text 3 @print{} -A user_defined- @print{} -grouping text- @print{} Tue, Nov 8th 1994: Text 4 @dots{} @end cartouche @end group @end example The @var{text} may contain references to global date and text variables (@pxref{x-date-variable, , Fixed date option @w{@option{--date-variable=@var{argument}}}}, and @ref{x-text-variable, , Fixed date option @w{@option{--date-variable=@var{argument}}}})@. Furthermore, all special texts which cause a text replacement may be used in the @var{text} (@pxref{Replacements, , @code{%@var{?}}@dots{} special texts for text replacement})@. @cindex Force line break-up @cindex Line break-up character, @samp{~} @cindex Line break-up character, @samp{^} @cindex @samp{~} line break-up character @cindex @samp{^} line break-up character Each time a @samp{~} (tilde) or @samp{^} (caret) character is found in @var{text}, this character is replaced by a real @samp{\n} (newline) character. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{~} (tilde) character ---in case this character itself is needed--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\~}@. If you need the @samp{\~} characters themselves, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\_}@. All above mentioned facts are also valid for the @samp{^} (caret) character. @cindex Pseudo space character, @samp{_} @cindex @samp{_} pseudo space character Each time a @samp{_} (underscore) character is found in @var{text}, this character is replaced by a real @samp{ } (space) character. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{_} (underscore) character ---in case this character itself is needed--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\_}@. If you need the @samp{\_} characters themselves, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\_}@. @need 1000 @item k @itemx --include-week-number @arindex -k @arindex -ck @arindex --include-week-number @cindex Fixed date text modifier, @option{k} @cindex @acronym{ISO}-8601:1988 week number @cindex Week number, @acronym{ISO}-8601:1988 @cindex Standard week number @cindex Week number, standard The leading date of a fixed date message is either extended by the @acronym{ISO} week number or the standard week number. @xref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}, @ref{x-iso-week-number, , Calendar option @option{--iso-week-number=yes@r{|}no}}, and @ref{Internationalization, , Aspects in Internationalization}, for further details. @item o @itemx --omit-multiple-date-part @arindex -o @arindex -co @arindex --omit-multiple-date-part @cindex Fixed date text modifier, @option{o} Omit displaying the leading date of a fixed date message in case more than one message refers to that date@footnote{Only if the @option{--alternative-format} option or the @option{A} modifier is not given.}, e.g.@:: @example @group @cartouche $ gcal -cxo @print{} @print{} Sun, Nov 6th 1994: Text 1 @print{} Text 2 @dots{} @end cartouche @end group @end example @item Q @itemx --suppress-fixed-dates-list-separator @arindex -Q @arindex -cQ @arindex --suppress-fixed-dates-list-separator @cindex Fixed date text modifier, @option{Q} @cindex Fixed date list, suppression of leading blank line @cindex Suppress leading blank line of fixed date list Suppress displaying of the blank line which is always leading a fixed date list. For example, to cause Gcal to print only the number of days between 1st January 1970 and 1st January 1980, you can call the program like this: @example @group @cartouche $ gcal -f /dev/null -QUx %19800101 -#0_%j-2440588 @print{} 3652 @end cartouche @end group @end example @item U @itemx --suppress-date-part @arindex -U @arindex -cU @arindex --suppress-date-part @cindex Fixed date text modifier, @option{U} Suppress displaying the leading date of a fixed date message, e.g.@:: @example @group @cartouche $ gcal -cxU @print{} @print{} Text 1 @print{} Text 2 @dots{} @end cartouche @end group @end example @need 1000 @item J @itemx --suppress-text-part @arindex -J @arindex -cJ @arindex --suppress-text-part @cindex Fixed date text modifier, @option{J} Suppress displaying the text part of a fixed date message, e.g.@:: @example @group @cartouche $ gcal -cxJ @print{} @print{} Sun, Nov 6th 1994: @print{} Sun, Nov 6th 1994: @dots{} @end cartouche @end group @end example @item x @itemx --exclude-fixed-dates-list-title @arindex -cx @arindex --exclude-fixed-dates-list-title @cindex Fixed date text modifier, @option{x} @cindex Fixed date list, suppression of title text @cindex Suppress title text of fixed date list Suppress the title text line of the fixed date list. @item --heading-text=@var{text} @arindex --heading-text=@var{text} @cindex Fixed date option, @option{--heading-text=@var{text}} Changes the title text line of the fixed date list. Instead of displaying the default @samp{Fixed date list:} text, any other text can be used as heading text of the fixed date list, e.g.@:: @example @group @cartouche $ gcal -cUJ --heading-text=Hello,_it_is_%K_,~%t__o'clock @print{} @print{} Hello, it is Sunday, @print{} 14:32 o'clock @print{} @print{} Sun, Nov 6th 1994: @dots{} @end cartouche @end group @end example The @var{text} may contain references to global date and text variables (@pxref{x-date-variable, , Fixed date option @w{@option{--date-variable=@var{argument}}}}, and @ref{x-text-variable, , Fixed date option @w{@option{--date-variable=@var{argument}}}})@. Furthermore, all special texts which cause a text replacement may be used in the @var{text} (@pxref{Replacements, , @code{%@var{?}}@dots{} special texts for text replacement})@. @cindex Force line break-up @cindex Line break-up character, @samp{~} @cindex Line break-up character, @samp{^} @cindex @samp{~} line break-up character @cindex @samp{^} line break-up character Each time a @samp{~} (tilde) or @samp{^} (caret) character is found in @var{text}, this character is replaced by a real @samp{\n} (newline) character. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{~} (tilde) character ---in case this character itself is needed--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\~}@. If you need the @samp{\~} characters themselves, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\_}@. All above mentioned facts are also valid for the @samp{^} (caret) character. @cindex Pseudo space character, @samp{_} @cindex @samp{_} pseudo space character Each time a @samp{_} (underscore) character is found in @var{text}, this character is replaced by a real @samp{ } (space) character. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{_} (underscore) character ---in case this character itself is needed--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\_}@. If you need the @samp{\_} characters themselves, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\_}@. @item z @itemx --include-consecutive-number @arindex -z @arindex -cz @arindex --include-consecutive-number @cindex Fixed date text modifier, @option{z} Display consecutive numbers of fixed date messages. @item Z @itemx --zero-dates-only @arindex -Z @arindex -cZ @arindex --zero-dates-only @cindex Fixed date text modifier, @option{Z} Display only those dates, for which fixed dates do not exist, i.e.@: all ``empty'' fixed dates only consisting of the date. @end table @page @cindex Fixed date period modifiers and options @cindex Modifiers, fixed date period @cindex Options, fixed date period @noindent @strong{Fixed date period modifiers and options:} @table @option @item --leap-day=february@r{|}march @arindex --leap-day=february@r{|}march @cindex Fixed date period option, @option{--leap-day=february@r{|}march} @cindex Leap day The @dfn{leap day}@footnote{The 29th February.} is observed in non-leap years. @table @option @item --leap-day=february @arindex --leap-day=february @cindex Fixed date period option, @option{--leap-day=february} @cindex Move leap day to 28th 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. @item --leap-day=march @arindex --leap-day=march @cindex Fixed date period option, @option{--leap-day=march} @cindex Move leap day to 1st 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. @end table @item d @itemx --include-today @arindex -d @arindex -cd @arindex --include-today @cindex Fixed date period modifier, @option{d} If lists of periods are generated, include the actual date into the list. @xref{x-list-mode, , Fixed date option @option{--list-mode}}, how to create a list of periods. @need 1000 @item l @itemx --list-mode @arindex -l @arindex -cl @arindex --list-mode @cindex Fixed date period modifier, @option{l} @anchor{x-list-mode} Generate a list of periods instead of a single period. @end table @iftex @sp 2 @end iftex @quotation @strong{Please note:}@* The following examples assumes the actual system date is the @strong{17th February of any year} (00000217), weeks start on Mondays and @acronym{ISO} week numbers are used! @end quotation @iftex @sp 2 @end iftex @table @asis @item @option{--period-of-fixed-dates=@var{argument}} @arindex --period-of-fixed-dates=@var{argument} @anchor{x-period-of-fixed-dates} @iftex @sp 2 @end iftex @item @option{@var{n}d} @itemx @option{*d@var{n}} @arindex -c@var{n}d @arindex -*d@var{n} @arindex -c*d@var{n} @cindex Fixed date period modifier, @option{@var{n}d} @cindex Fixed date period modifier, @option{*d@var{n}} Single date of absolute day @w{@var{n} @equiv{} @samp{1@r{@dots{}}365@r{|}366@r{|}999}} of the actual year; the intensity level is the same as the simple @option{-c} option. If the value 999 for @var{n} is given, the last day of the year (31st December) is assumed. @itemize @bullet @item E.g.@: @samp{gcal -c10d} respectively @w{@samp{gcal --period-of-fixed-dates=10d}} or @samp{gcal -c*d10} respectively @w{@samp{gcal --period-of-fixed-dates=*d10}} displays all fixed dates which occur on the 10th day of the year. @end itemize @need 1000 @item @option{l@var{n}d} @itemx @option{l*d@var{n}} @arindex -l@var{n}d @arindex -cl@var{n}d @arindex -l*d@var{n} @arindex -cl*d@var{n} @cindex Fixed date period modifier, @option{l@var{n}d} @cindex Fixed date period modifier, @option{l*d@var{n}} List dates starting yesterday or tomorrow (depending on the given day number @var{n}) and ending on the @w{@var{n}'th} absolute day of the actual year; the intensity level is the same as the @option{-cy} option. @itemize @bullet @item E.g.@: @samp{gcal -cl10d} respectively @samp{gcal -cl*d10} displays a list of all fixed dates which start on the 10th day of year and end on the 16th February. @end itemize @page @item @option{@var{n}+@r{|}-} @arindex -c@var{n}+@r{|}- @cindex Fixed date period modifier, @option{@var{n}+@r{|}-} Single date of day @ifnottex @emph{actual day @w{@samp{+@r{/}-}} @var{n} days} @end ifnottex @tex \emph{actual day $\pm$ \smartslanted{n} days} @end tex of the actual year; the intensity level is the same as the simple @option{-c} option. @itemize @bullet @item E.g.@: @samp{gcal -c10+} displays all fixed dates which occur 10 days after the 17th February (today)@. @item E.g.@: @samp{gcal -c10-} displays all fixed dates which occur 10 days before the 17th February (today)@. @end itemize @item @option{l@var{n}+@r{|}-} @arindex -l@var{n}+@r{|}- @arindex -cl@var{n}+@r{|}- @cindex Fixed date period modifier, @option{l@var{n}+@r{|}-} List dates starting yesterday @samp{-} or tomorrow @samp{+} and ending on @ifnottex @emph{actual day @w{@samp{+@r{/}-}} @var{n} days} @end ifnottex @tex \emph{actual day $\pm$ \smartslanted{n} days} @end tex of the actual year; the intensity level is the same as the @option{-cy} option. @itemize @bullet @item E.g.@: @samp{gcal -cl10+} displays a list of all fixed dates which start on the 18th February and end 10 days after. @item E.g.@: @samp{gcal -cl10-} displays a list of all fixed dates which start 10 days before the 16th February and end on the 16th February. @end itemize @need 1000 @item @option{@var{n}w} @arindex -c@var{n}w @cindex Fixed date period modifier, @option{@var{n}w} @cindex @acronym{ISO}-8601:1988 week number @cindex Week number, @acronym{ISO}-8601:1988 @cindex Standard week number @cindex Week number, standard Single dates of week number @w{@var{n} @equiv{} @samp{0@r{|}1@r{@dots{}}52@r{|}53@r{|}99}} of the actual year; the intensity level is the same as the @option{-cw} option. @xref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}, @ref{x-iso-week-number, , Calendar option @option{--iso-week-number=yes@r{|}no}}, and @ref{Internationalization, , Aspects in Internationalization}, for more details. @itemize @bullet @item E.g.@: @samp{gcal -c0w} displays all fixed dates which occur in the 53rd week of the previous year, in case the previous year has a 53rd week. If the previous year has no 53rd week, all fixed dates occurring in the 1st week of the actual year are displayed. @item E.g.@: @samp{gcal -c6w} displays all fixed dates which occur in the 6th week of year. @item E.g.@: @samp{gcal -c52w} displays all fixed dates which occur in the 52nd week of year. @item @cindex Error code 126 @cindex Exit code 126 E.g.@: @samp{gcal -c53w} displays all fixed dates which occur in the 53rd week of the actual year, in case the actual year has a 53rd week. If the actual year has no 53rd week, no fixed date messages are displayed and the program is terminated with an error code. @xref{x-126-Error-code, , Error Code 126}. @item E.g.@: @samp{gcal -c99w} displays all fixed dates which occur in the last week of the actual year, i.e.@ either the 52nd or the 53rd week. @end itemize @item @option{l@var{n}w} @arindex -l@var{n}w @arindex -cl@var{n}w @cindex Fixed date period modifier, @option{l@var{n}w} @cindex @acronym{ISO}-8601:1988 week number @cindex Week number, @acronym{ISO}-8601:1988 @cindex Standard week number @cindex Week number, standard List dates starting yesterday or tomorrow (depending on the given week number @var{n}) and ending on the first respectively last day of given week number @w{@var{n} @equiv{} @samp{0@r{|}1@r{@dots{}}52@r{|}53@r{|}99}} of the actual year; the intensity level is the same as the @option{-cy} option. @xref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}, @ref{x-iso-week-number, , Calendar option @option{--iso-week-number=yes@r{|}no}}, and @ref{Internationalization, , Aspects in Internationalization}, for further details. @itemize @bullet @item E.g.@: @samp{gcal -cl12w} displays a list of all fixed dates which start on the 18th February and end on the last day of the 12th week. @item E.g.@: @samp{gcal -cl3w} displays a list of all fixed dates which start on the first day of the 3rd week and end on the 16th February. @end itemize @need 1000 @item @option{@var{mm}@var{dd}} @arindex -c@var{mm}@var{dd} @cindex Fixed date period modifier, @option{@var{mm}@var{dd}} Single date of day @var{dd} in month @var{mm} of the actual year; the intensity level is the same as the simple @option{-c} option. @itemize @bullet @item E.g.@: @samp{gcal -c0225} displays all fixed dates which occur on the 25th February. @end itemize @item @option{l@var{mm}@var{dd}} @arindex -l@var{mm}@var{dd} @arindex -cl@var{mm}@var{dd} @cindex Fixed date period modifier, @option{0@var{mm}@var{dd}} List dates starting yesterday or tomorrow (depending on the value given in @var{mm}@var{dd}) and ending on day @var{dd} of month @var{mm} of the actual year; the intensity level is the same as the @option{-cy} option. @itemize @bullet @item E.g.@: @samp{gcal -cl0225} displays a list of all fixed dates which start on the 18th February and end on the 25th February. @item E.g.@: @samp{gcal -cl0109} displays a list of all fixed dates which start on the 9th January and end on the 16th February. @end itemize @item @option{@var{mm}@var{www}@var{n}} @arindex -c@var{mm}@var{www}@var{n} @cindex Fixed date period modifier, @option{@var{mm}@var{www}@var{n}} Single date of @w{@var{n}'th @equiv{} @samp{1@r{@dots{}}5@r{|}9}} weekday @w{@var{dd}|@var{www}} in month @var{mm} of the actual year; the intensity level is the same as the simple @option{-c} option. @itemize @bullet @item E.g.@: @samp{gcal -c01mon3} displays all fixed dates which occur on the 3rd Monday in January. @item E.g.@: @samp{gcal -c02fri9} displays all fixed dates which occur on the last Friday in February. @end itemize @item @option{l@var{mm}@var{www}@var{n}} @arindex -l@var{mm}@var{www}@var{n} @arindex -cl@var{mm}@var{www}@var{n} @cindex Fixed date period modifier, @option{l@var{mm}@var{www}@var{n}} List dates starting yesterday or tomorrow (depending on the value given in @w{@var{mm}@var{www}@var{n}}) and ending on @w{@var{n}'th @equiv{} @samp{1@r{@dots{}}5@r{|}9}} weekday @var{dd} of month @var{mm} of the actual year; the intensity level is the same as the @option{-cy} option. @itemize @bullet @item E.g.@: @samp{gcal -cl01mon3} displays a list of all fixed dates which start on the 3rd Monday in January and end on the 16th February. @item E.g.@: @samp{gcal -cl02fri9} displays a list of all fixed dates which start on the 18th February and end on the last Friday in February. @end itemize @item @option{*d@var{n}@var{www}} @arindex -*d@var{n}@var{www} @arindex -c*d@var{n}@var{www} @cindex Fixed date period modifier, @option{*d@var{n}@var{www}} Single date of @w{@var{n}'th @equiv{} @samp{1@r{@dots{}}51@r{|}52@r{|}53@r{|}99}} weekday @var{www} of the actual year; the intensity level is the same as the simple @option{-c} option. @itemize @bullet @item E.g.@: @samp{gcal -c*d16sun} displays all fixed dates which occur on the 16th Sunday of the actual year. @item @cindex Error code 126 @cindex Exit code 126 E.g.@: @samp{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. @xref{x-126-Error-code, , Error Code 126}. @item @cindex Error code 126 @cindex Exit code 126 E.g.@: @samp{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. @xref{x-126-Error-code, , Error Code 126}. @item E.g.@: @samp{gcal -c*d99sun} displays all fixed dates which occur on the last Sunday@footnote{That is either the 51st, 52nd or 53rd Sunday.} of the actual year. @end itemize @page @item @option{l*d@var{n}@var{www}} @arindex -l*d@var{n}@var{www} @arindex -cl*d@var{n}@var{www} @cindex Fixed date period modifier, @option{l*d@var{n}@var{www}} List dates starting yesterday or tomorrow (depending on the value given in @var{n}) and ending on @w{@var{n}'th @equiv{} @samp{1@r{@dots{}}51@r{|}52@r{|}53@r{|}99}} weekday @var{www} of the actual year; the intensity level is the same as the @option{-cy} option. @itemize @bullet @item E.g.@: @samp{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. @item @cindex Error code 126 @cindex Exit code 126 E.g.@: @samp{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. @xref{x-126-Error-code, , Error Code 126}. @item @cindex Error code 126 @cindex Exit code 126 E.g.@: @samp{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. @xref{x-126-Error-code, , Error Code 126}. @item E.g.@: @samp{gcal -cl*d99sun} displays a list of all fixed dates which start on the 18th February and end on the last Sunday@footnote{That is either the 51st, 52nd or 53rd Sunday.} of the actual year. @end itemize @item @option{*w@var{n}@r{[}@var{www}@r{]}} @arindex -*w@var{n}@r{[}@var{www}@r{]} @arindex -c*w@var{n}@r{[}@var{www}@r{]} @cindex Fixed date period modifier, @option{*w@var{n}@r{[}@var{www}@r{]}} @cindex @acronym{ISO}-8601:1988 week number @cindex Week number, @acronym{ISO}-8601:1988 @cindex Standard week number @cindex Week number, standard Single date of weekday @var{www} of @w{@var{n}'th @equiv{} @samp{0@r{|}1@r{@dots{}}52@r{|}53@r{|}99}} week of the actual year; the intensity level is the same as the simple @option{-c} option. If no weekday @var{www} is given, the starting day of the week is assumed for the weekday @var{www}@. @xref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}, @ref{x-iso-week-number, , Calendar option @option{--iso-week-number=yes@r{|}no}}, and @ref{Internationalization, , Aspects in Internationalization}, for more details. @itemize @bullet @item @cindex Error code 126 @cindex Exit code 126 E.g.@: @samp{gcal -c*w0sun} displays all fixed dates which occur on the Sunday of the 52nd respectively 53rd week of the previous year. In case such a Sunday does not exist, no fixed date messages are displayed and the program is terminated with an error code. @xref{x-126-Error-code, , Error Code 126}. @item E.g.@: @samp{gcal -c*w16sun} displays all fixed dates which occur on the Sunday of the 16th week of the actual year. @item @cindex Error code 126 @cindex Exit code 126 E.g.@: @samp{gcal -c*w52sun} displays all fixed dates which occur on the Sunday of the 52nd week of the actual year. If the actual year has no Sunday of the 52nd week, no fixed date messages are displayed and the program is terminated with an error code. @xref{x-126-Error-code, , Error Code 126}. @item @cindex Error code 126 @cindex Exit code 126 E.g.@: @samp{gcal -c*w53sun} displays all fixed dates which occur on the Sunday of the 53rd week of the actual year. If the actual year has no Sunday of the 53rd week, no fixed date messages are displayed and the program is terminated with an error code. @xref{x-126-Error-code, , Error Code 126}. @item E.g.@: @samp{gcal -c*w99sun} displays all fixed dates which occur on the last Sunday@footnote{That is either the Sunday of the 51st, 52nd or 53rd week.} of the actual year. @end itemize @item @option{l*w@var{n}@r{[}@var{www}@r{]}} @arindex -l*w@var{n}@r{[}@var{www}@r{]} @arindex -cl*w@var{n}@r{[}@var{www}@r{]} @cindex Fixed date period modifier, @option{l*w@var{n}@r{[}@var{www}@r{]}} @cindex @acronym{ISO}-8601:1988 week number @cindex Week number, @acronym{ISO}-8601:1988 @cindex Standard week number @cindex Week number, standard List dates starting yesterday or tomorrow (depending on the value given in @var{n}) and ending on weekday @var{www} of @w{@var{n}'th @equiv{} @samp{0@r{|}1@r{@dots{}}52@r{|}53@r{|}99}} week of the actual year; the intensity level is the same as the @option{-cy} option. If no weekday @var{www} is given, the starting day of the week is assumed for the weekday @var{www}@. @xref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}, @ref{x-iso-week-number, , Calendar option @option{--iso-week-number=yes@r{|}no}}, and @ref{Internationalization, , Aspects in Internationalization}, for further details. @itemize @bullet @item @cindex Error code 126 @cindex Exit code 126 E.g.@: @samp{gcal -cl*w0sun} displays a list of all fixed dates which start on the Sunday of the 52nd respectively 53rd week of the previous year and end on the 16th February. In case such a Sunday does not exist, no fixed date messages are displayed and the program is terminated with an error code. @xref{x-126-Error-code, , Error Code 126}. @item E.g.@: @samp{gcal -cl*w16sun} displays a list of all fixed dates which start on the 18th February and end on the Sunday of the 16th week of the actual year. @item @cindex Error code 126 @cindex Exit code 126 E.g.@: @samp{gcal -cl*w52sun} displays a list of all fixed dates which start on the 18th February and end on the Sunday of the 52nd week of the actual year. If the actual year has no Sunday of the 52nd week, no fixed date messages are displayed and the program is terminated with an error code. @xref{x-126-Error-code, , Error Code 126}. @item @cindex Error code 126 @cindex Exit code 126 E.g.@: @samp{gcal -cl*w53sun} displays a list of all fixed dates which start on the 18th February and end on the Sunday of the 53rd week of the actual year. If the actual year has no Sunday of the 53rd week, no fixed date messages are displayed and the program is terminated with an error code. @xref{x-126-Error-code, , Error Code 126}. @item E.g.@: @samp{gcal -cl*w99sun} displays a list of all fixed dates which start on the 18th February and end on the last Sunday@footnote{That is either the Sunday of the 51st, 52nd or 53rd week.} of the actual year. @end itemize @item @option{@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]}} @arindex -@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]} @arindex -c@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]} @cindex Fixed date period modifier, @option{@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]}} Single date of day @var{n} relative to the Easter Sunday's date of the actual year; the intensity level is the same as the simple @option{-c} option. @itemize @bullet @item E.g.@: @samp{gcal -c@@e} displays all fixed dates which occur on the Easter Sunday's date. @item E.g.@: @samp{gcal -c@@e10} respectively @samp{gcal -c@@e+10} displays all fixed dates which occur 10 days after the Easter Sunday's date. @item E.g.@: @samp{gcal -c@@e-10} displays all fixed dates which occur 10 days before the Easter Sunday's date. @end itemize @page @item @option{l@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]}} @arindex -l@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]} @arindex -cl@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]} @cindex Fixed date period modifier, @option{l@@e@r{[[}+@r{|}-@r{]}@var{n}@r{]}} List dates starting yesterday or tomorrow (depending on the value given in @var{n}) and ending on @w{@var{n}'th} day relative to the Easter Sunday's date of the actual year; the intensity level is the same as the @option{-cy} option. @itemize @bullet @item E.g.@: @samp{gcal -cl@@e} displays a list of all fixed dates which start on the 18th February and end on the Easter Sunday's date. @item E.g.@: @samp{gcal -cl@@e10} respectively @samp{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. @item E.g.@: @samp{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. @end itemize @item @option{@@e@r{[}+@r{|}-@r{]}@var{n}@var{www}} @arindex -@@e@r{[}+@r{|}-@r{]}@var{n}@var{www} @arindex -c@@e@r{[}+@r{|}-@r{]}@var{n}@var{www} @cindex Fixed date period modifier, @option{@@e@r{[}+@r{|}-@r{]}@var{n}@var{www}} Single date of @w{@var{n}'th} weekday @var{www} relative to the Easter Sunday's date of the actual year; the intensity level is the same as the simple @option{-c} option. @itemize @bullet @item E.g.@: @samp{gcal -c@@e3fri} respectively @samp{gcal -c@@e+3fri} displays all fixed dates which occur on the 3rd Friday after the Easter Sunday's date. @item E.g.@: @samp{gcal -c@@e-3fri} displays all fixed dates which occur on the 3rd Friday before the Easter Sunday's date. @end itemize @item @option{l@@e@r{[}+@r{|}-@r{]}@var{n}@var{www}} @arindex -l@@e@r{[}+@r{|}-@r{]}@var{n}@var{www} @arindex -cl@@e@r{[}+@r{|}-@r{]}@var{n}@var{www} @cindex Fixed date period modifier, @option{l@@e@r{[}+@r{|}-@r{]}@var{n}@var{www}} List dates starting yesterday or tomorrow (depending on the value given in @var{n}) and ending on @w{@var{n}'th} weekday @var{www} relative to the Easter Sunday's date of the actual year; the intensity level is the same as the @option{-cy} option. @itemize @bullet @item E.g.@: @samp{gcal -cl@@e3fri} respectively @samp{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. @item E.g.@: @samp{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. @end itemize @item @option{@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]}} @arindex -@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]} @arindex -c@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]} @cindex Fixed date period modifier, @option{@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]}} Single date of day @var{n} relative to today's date of the actual year; the intensity level is the same as the simple @option{-c} option. @itemize @bullet @item E.g.@: @samp{gcal -c@@t} displays all fixed dates which occur on today's date (@equiv{} @samp{gcal -c})@. @item E.g.@: @samp{gcal -c@@t10} respectively @samp{gcal -c@@t+10} displays all fixed dates which occur 10 days after today's date (@equiv{} @samp{gcal -c10+})@. @item E.g.@: @samp{gcal -c@@t-10} displays all fixed dates which occur 10 days before today's date (@equiv{} @samp{gcal -c10-})@. @end itemize @page @item @option{l@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]}} @arindex -l@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]} @arindex -cl@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]} @cindex Fixed date period modifier, @option{l@@t@r{[[}+@r{|}-@r{]}@var{n}@r{]}} List dates starting yesterday or tomorrow (depending on the value given in @var{n}) and ending on @w{@var{n}'th} day relative to today's date of the actual year; the intensity level is the same as the @option{-cy} option. @itemize @bullet @item E.g.@: @samp{gcal -cl@@t} displays nothing. @item E.g.@: @samp{gcal -cl@@t10} respectively @samp{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 (@equiv{} @samp{gcal -cl10+})@. @item E.g.@: @samp{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 (@equiv{} @samp{gcal -cl10-})@. @end itemize @item @option{@@t@r{[}+@r{|}-@r{]}@var{n}@var{www}} @arindex -@@t@r{[}+@r{|}-@r{]}@var{n}@var{www} @arindex -c@@t@r{[}+@r{|}-@r{]}@var{n}@var{www} @cindex Fixed date period modifier, @option{@@t@r{[}+@r{|}-@r{]}@var{n}@var{www}} Single date of @w{@var{n}'th} weekday @var{www} relative to today's date of the actual year; the intensity level is the same as the simple @option{-c} option. @itemize @bullet @item E.g.@: @samp{gcal -c@@t3fri} respectively @samp{gcal -c@@t+3fri} displays all fixed dates which occur on the 3rd Friday after today's date. @item E.g.@: @samp{gcal -c@@t-3fri} displays all fixed dates which occur on the 3rd Friday before today's date. @end itemize @need 1500 @item @option{l@@t@r{[}+@r{|}-@r{]}@var{n}@var{www}} @arindex -l@@t@r{[}+@r{|}-@r{]}@var{n}@var{www} @arindex -cl@@t@r{[}+@r{|}-@r{]}@var{n}@var{www} @cindex Fixed date period modifier, @option{l@@t@r{[}+@r{|}-@r{]}@var{n}@var{www}} List dates starting yesterday or tomorrow (depending on the value given in @var{n}) and ending on @w{@var{n}'th} weekday @var{www} relative to today's date of the actual year; the intensity level is the same as the @option{-cy} option. @itemize @bullet @item E.g.@: @samp{gcal -cl@@t3fri} respectively @samp{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. @item E.g.@: @samp{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. @end itemize @item @option{@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}} @arindex -@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]} @arindex -c@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]} @cindex Fixed date period modifier, @option{@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}} Single date of the day @var{n} relative to that date of the actual year, which is referenced by the date variable @var{dvar}; the intensity level is the same as the simple @option{-c} option. @itemize @bullet @item E.g.@: @samp{gcal -v a=0422 -c@@a} displays all fixed dates which occur on the 22nd April. @item E.g.@: @samp{gcal -v a=0422 -c@@a10} respectively @samp{gcal -v a=0422 -c@@a+10} displays all fixed dates which occur 10 days after the 22nd April. @item E.g.@: @samp{gcal -v a=0422 -c@@a-10} displays all fixed dates which occur 10 days before the 22nd April. @end itemize @page @item @option{l@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}} @arindex -l@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]} @arindex -cl@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]} @cindex Fixed date period modifier, @option{l@@@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}} List dates starting yesterday or tomorrow (depending on the value given in @var{n}) and ending on the @w{@var{n}'th} day relative to that date of the actual year, which is referenced by the date variable @var{dvar}; the intensity level is the same as the @option{-cy} option. @itemize @bullet @item E.g.@: @samp{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. @item E.g.@: @samp{gcal -v a=0422 -cl@@a10} respectively @samp{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. @item E.g.@: @samp{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. @end itemize @item @option{@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}} @arindex -@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www} @arindex -c@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www} @cindex Fixed date period modifier, @option{@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}} Single date of the @w{@var{n}'th} weekday @var{www} relative to that date of the actual year, which is referenced by the date variable @var{dvar}; the intensity level is the same as the simple @option{-c} option. @itemize @bullet @item E.g.@: @samp{gcal -v a=0122 -c@@a2sat} respectively @samp{gcal -v a=0122 -c@@a+2sat} displays all fixed dates which occur on the 2nd Saturday after the 22nd January. @item E.g.@: @samp{gcal -v a=0122 -c@@a-2sat} displays all fixed dates which occur on the 2nd Saturday before the 22nd January. @end itemize @need 1500 @item @option{l@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}} @arindex -l@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www} @arindex -cl@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www} @cindex Fixed date period modifier, @option{l@@@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}} List dates starting yesterday or tomorrow (depending on the value given in @var{n}) and ending on the @w{@var{n}'th} weekday @var{www} relative to that date of the actual year, which is referenced by the date variable @var{dvar}; the intensity level is the same as the @option{-cy} option. @itemize @bullet @item E.g.@: @samp{gcal -v a=0122 -cl@@a2sat} respectively @samp{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. @item E.g.@: @samp{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. @end itemize @item @option{t@r{|}T} @itemx @option{--tomorrow} long-style option @arindex -c@r{[}t@r{|}T@r{]} @arindex -t @arindex -ct @arindex -T @arindex -cT @arindex --tomorrow @cindex Fixed date period modifier, @option{t@r{|}T} @cindex Fixed date period long-style option, @option{--tomorrow} @cindex Fixed dates for @emph{tomorrow} @cindex Tomorrows' fixed dates List dates related to tomorrow. @itemize @bullet @item E.g.@: @samp{gcal -ct} displays all fixed dates which occur on the 18th February (tomorrow)@. @item E.g.@: @samp{gcal -cdt} displays all fixed dates which occur on the 17th February (today) and on the 18th February (tomorrow)@. @end itemize @page @item @option{w@r{|}W@r{[}+@r{|}-@r{]}} @itemx @option{--week} long-style option @itemx @option{--end-of-week} long-style option @itemx @option{--start-of-week} long-style option @arindex -w @arindex -w@r{[}+@r{|}-@r{]}@r{]} @arindex -W @arindex -W@r{[}+@r{|}-@r{]}@r{]} @arindex -w@r{|}W@r{[}+@r{|}-@r{]}@r{]} @arindex -c@r{[}w@r{|}W@r{[}+@r{|}-@r{]}@r{]} @arindex --week @arindex --end-of-week @arindex --start-of-week @cindex Fixed date period modifier, @option{w@r{|}W@r{[}+@r{|}-@r{]}} @cindex Fixed date period long-style option, @option{--week} @cindex Fixed date period long-style option, @option{--end-of-week} @cindex Fixed date period long-style option, @option{--start-of-week} @cindex Fixed dates for the @emph{week} @cindex Weeks' fixed dates Display dates related to the week.@* @xref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}. @itemize @bullet @item @option{w} or @option{--week} long-style option@* @arindex -w @arindex -cw @arindex --week List dates between the @emph{starting day} of the current week and the last day of the current week @itemize @minus @item E.g.@: @samp{gcal -cw} displays all fixed dates which occur in the whole week the 17th February is part of. @end itemize @item @option{w+} or @option{--end-of-week} long-style option@* @arindex -w+ @arindex -cw+ @arindex --end-of-week List dates between the day after the current day of the current week and the last day of the current week. @itemize @minus @item E.g.@: @samp{gcal -cw+} displays all fixed dates which start on the 18th February (tomorrow) and end on the last day of the week. @item E.g.@: @samp{gcal -cdw+} displays all fixed dates which start on the 17th February (today) and end on the last day of the week. @end itemize @item @option{w-} or @option{--start-of-week} long-style option@* @arindex -w- @arindex -cw- @arindex --start-of-week List dates between the @emph{starting day} of the current week and the day before the current day of the current week @itemize @minus @item E.g.@: @samp{gcal -cw-} displays all fixed dates which start on the first day of the week and end on the 16th February (yesterday)@. @item E.g.@: @samp{gcal -cdw-} displays all fixed dates which start on the first day of the week and end on the 17th February (today)@. @end itemize @end itemize @item @option{m@r{|}M@r{[}+@r{|}-@r{]}} @itemx @option{--month} long-style option @itemx @option{--end-of-month} long-style option @itemx @option{--start-of-month} long-style option @arindex -m @arindex -m@r{[}+@r{|}-@r{]}@r{]} @arindex -M @arindex -M@r{[}+@r{|}-@r{]}@r{]} @arindex -m@r{|}M@r{[}+@r{|}-@r{]}@r{]} @arindex -c@r{[}m@r{|}M@r{[}+@r{|}-@r{]}@r{]} @cindex Fixed date period modifier, @option{m@r{|}M@r{[}+@r{|}-@r{]}} @cindex Fixed date period long-style option, @option{--month} @cindex Fixed date period long-style option, @option{--end-of-month} @cindex Fixed date period long-style option, @option{--start-of-month} @cindex Fixed dates for the @emph{month} @cindex Months' fixed dates Display dates related to the month. @itemize @bullet @item @option{m} or @option{--month} long-style option@* @arindex -m @arindex -cm @arindex --month List dates between the first day of the current month and the last day of the current month. @itemize @minus @item E.g.@: @samp{gcal -cm} displays all fixed dates which occur in the whole month of February. @end itemize @item @option{m+} or @option{--end-of-month} long-style option@* @arindex -m+ @arindex -cm+ @arindex --end-of-month List dates between the day after the current day of the current month and the last day of the current month. @itemize @minus @item E.g.@: @samp{gcal -cm+} displays all fixed dates which start on the 18th February (tomorrow) and end on the last day of the month February. @item E.g.@: @samp{gcal -cdm+} displays all fixed dates which start on the 17th February (today) and end on the last day of the month February. @end itemize @need 1000 @item @option{m-} or @option{--start-of-month} long-style option@* @arindex -m- @arindex -cm- @arindex --start-of-month List dates between the first day of the current month and the day before the current day of the current month. @itemize @minus @item E.g.@: @samp{gcal -cm-} displays all fixed dates which start on the first day of the month February and end on the 16th February (yesterday)@. @item E.g.@: @samp{gcal -cdm-} displays all fixed dates which start on the first day of the month February and end on the 17th February (today)@. @end itemize @end itemize @item @option{y@r{|}Y@r{[}+@r{|}-@r{]}} @itemx @option{--year} long-style option @itemx @option{--end-of-year} long-style option @itemx @option{--start-of-year} long-style option @arindex -y @arindex -y@r{[}+@r{|}-@r{]}@r{]} @arindex -Y @arindex -Y@r{[}+@r{|}-@r{]}@r{]} @arindex -y@r{|}Y@r{[}+@r{|}-@r{]}@r{]} @arindex -c@r{[}y@r{|}Y@r{[}+@r{|}-@r{]}@r{]} @cindex Fixed date period modifier, @option{y@r{|}Y@r{[}+@r{|}-@r{]}} @cindex Fixed date period long-style option, @option{--year} @cindex Fixed date period long-style option, @option{--end-of-year} @cindex Fixed date period long-style option, @option{--start-of-year} @cindex Fixed dates for the @emph{year} @cindex Years' fixed dates Display dates related to the year. @itemize @bullet @item @option{y} or @option{--year} long-style option@* @arindex -y @arindex -cy @arindex --year List dates between the first day of the current year and the last day of the current year. @itemize @minus @item E.g.@: @samp{gcal -cy} displays all fixed dates which occur in the whole year. @end itemize @item @option{y+} or @option{--end-of-year} long-style option@* @arindex -y+ @arindex -cy+ @arindex --end-of-year List dates between the day after the current day of the current year and the last day of the current year. @itemize @minus @item E.g.@: @samp{gcal -cy+} displays all fixed dates which start on the 18th February (tomorrow) and end on the last day of the year. @item E.g.@: @samp{gcal -cdy+} displays all fixed dates which start on the 17th February (today) and end on the last day of the year. @end itemize @item @option{y-} or @option{--start-of-year} long-style option@* @arindex -y- @arindex -cy- @arindex --start-of-year List dates between the first day of the current year and the day before the current day of the current year. @itemize @minus @item E.g.@: @samp{gcal -cy-} displays all fixed dates which start on the first day of the year and end on the 16th February (yesterday)@. @item E.g.@: @samp{gcal -cdy-} displays all fixed dates which start on the first day of the year and end on the 17th February (today)@. @end itemize @end itemize @end table @page @node Response file, Actual date modifier, Options, Command line arguments @subsection Response file @cindex Response file, @option{@@@var{file}} @cindex @option{@@@var{file}} response file @cindex Command line argument @option{@@@var{file}} @cindex @option{@@@var{file}}, command line argument @cindex Quotation of special characters @cindex Special characters, quotation @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Protection of special characters @cindex Special characters, protection @arindex @@@var{file} If a @option{@@@var{file}} command line argument is given, a @dfn{response file} by the name of @var{file} will be used, i.e.@: options and commands are preloaded from that file. A response @var{file} may contain options and commands ---which are preloaded by Gcal---, but @strong{no} references to further response files. If such references to further response files are found, they are ignored. @xref{x-response-file, , Global option @option{--response-file=@var{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 @strong{no} standard response file is respected. @xref{x-File-searching-mechanism, , 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. @cindex Comment character, @samp{;} @cindex @samp{;} comment character @cindex Remark character, @samp{;} @cindex @samp{;} remark character Each option and command must be on a single line, i.e.@: separated by a real @samp{\n} (newline) character. A line beginning with a @samp{;} (semicolon) character in the response file is treated as a remark and will not be used by Gcal (@pxref{Comment line})@. Options must be defined before commands. If a response file contains any commands, then all further arguments after the @option{@@@var{file}} option of the command line are ignored. @noindent For example: @enumerate 1 @item Contents of response file @file{file}: @example @group Line Text 1 -j 2 -Cw @var{EOF} @cartouche $ gcal -i -b 3 @@file -s 3 1994 @expansion{} gcal -i -b 3 -j -Cw -s 3 1994 @end cartouche @end group @end example @item Contents of response file @file{file}: @example @group Line Text 1 -j 2 -Cw 3 may 1992 @var{EOF} @cartouche $ gcal -i -b 3 @@file -s 3 1994 @expansion{} gcal -i -b 3 -j -Cw may @end cartouche @end group @end example @page @item Contents of response file @file{file}: @example @group Line Text 1 -j 2 -Cw 3 may 4 1992 @var{EOF} @cartouche $ gcal -i -b 3 @@file -s 3 1994 @expansion{} gcal -i -b 3 -j -Cw may 1992 @end cartouche @end group @end example @end enumerate @page @node Actual date modifier, Commands, Response file, Command line arguments @subsection Actual date modifier @cindex Actual date modifier, @option{%@var{date}} @cindex @option{%@var{date}} actual date modifier @cindex Command line argument @option{%@var{date}} @cindex @option{%@var{date}}, command line argument @arindex %@var{date} It is allowed to use that date ---instead of the actual system date--- which is defined by the @option{%@var{date}} command line argument. This means, fixed dates can be checked for @strong{any} year and are respected in the same way, as if they would be fixed dates of the actual year. @tbindex Date formats of actual date modifier @tbindex Actual date modifier, date formats The date must be denoted in one of these formats: @itemize @bullet @item @w{@code{@var{yyyy}@r{[}@var{mm}@r{[}@var{dd}@r{|}@var{www}@var{n}@r{]]}}} @item @w{@code{@var{yyyy}*d@r{|}w@var{n}@r{[}@var{www}@r{]}}} @item @w{@code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}}} @item @w{@code{@var{month name}@r{[}@var{dd}@r{]}}} @item @w{@code{@var{weekday name}@r{[}@var{n}@r{]}}} @item @w{@var{dd}} @end itemize @iftex @sp 2 @end iftex @noindent Some examples to this: @quotation @strong{Please note:}@* The following examples assumes the actual system date is @strong{Wednesday, the 17th February 1993} (19930217), weeks start on Mondays and @acronym{ISO} week numbers are used! @end quotation @table @asis @item The @code{@var{yyyy}@r{[}@var{mm}@r{[}@var{dd}@r{|}@var{www}@var{n}@r{]]}} format: @itemize @bullet @item @samp{gcal %1994} @w{(@equiv{} @var{yyyy})}@* The actual date is set to the date 17th February 1994 @w{@result{} 19940217@.} @need 1000 @item @samp{gcal %1994Mar} @item @samp{gcal %19943} @item @samp{gcal %199403} @w{(@equiv{} @var{yyyy}@var{mm})}@* The actual date is set to the date 17th March 1994 @w{@result{} 19940317@.} @item @samp{gcal %1994Mar3} @item @samp{gcal %1994033} @item @samp{gcal %19940303} @w{(@equiv{} @var{yyyy}@var{mm}@var{dd})}@* The actual date is set to the date 3rd March 1994 @w{@result{} 19940303@.} @need 1000 @item @samp{gcal %1994MarWed3} @item @samp{gcal %199403wed3} @w{(@equiv{} @var{yyyy}@var{mm}@var{www}@var{n})}@* The actual date is set to the date 3rd Wednesday in March 1994 @w{(@var{n} @equiv{} @samp{1@r{@dots{}}5@r{|}9})} @w{@result{} 19940316@.} @item @samp{gcal %0} @item @samp{gcal %00} @item @samp{gcal %000} @item @samp{gcal %0000} @w{(@equiv{} @var{yyyy})}@* The actual date remains unchanged @w{@result{} 19930217@.} @page @item @samp{gcal %0000Mar} @item @samp{gcal %00003} @item @samp{gcal %000003} @w{(@equiv{} @var{yyyy}@var{mm})}@* The actual date is set to the date 17th March 1993 @w{@result{} 19930317@.} @item @samp{gcal %0000Mar3} @item @samp{gcal %0000033} @item @samp{gcal %00000303} @w{(@equiv{} @var{yyyy}@var{mm}@var{dd})}@* The actual date is set to the date 3rd March 1993 @w{@result{} 19930303@.} @item @samp{gcal %0000MarWed3} @item @samp{gcal %000003wed3} @w{(@equiv{} @var{yyyy}@var{mm}@var{www}@var{n})}@* The actual date is set to the date 3rd Wednesday in March 1993 @w{(@var{n} @equiv{} @samp{1@r{@dots{}}5@r{|}9})} @w{@result{} 19930317@.} @end itemize @need 1000 @item The @code{@var{yyyy}*d@r{|}w@var{n}@r{[}@var{www}@r{]}} format: @itemize @bullet @item @samp{gcal %1994*d10} @w{(@equiv{} @code{@var{yyyy}*d@var{n}})}@* The actual date is set to the date 10th absolute day in 1994 @w{(@var{n} @equiv{} @samp{1@r{@dots{}}365@r{|}366@r{|}999})} @w{@result{} 19940110@.} @item @samp{gcal %1994*d10sun} @w{(@equiv{} @code{@var{yyyy}*d@var{n}@var{www}})}@* The actual date is set to the date 10th Sunday in 1994 @w{(@var{n} @equiv{} @samp{1@r{@dots{}}51@r{|}52@r{|}53@r{|}99})} @w{@result{} 19940306@.} @item @samp{gcal %0*d10} @w{(@equiv{} @code{@var{yyyy}*d@var{n}})}@* The actual date is set to the date 10th absolute day in 1993 @w{@result{} 19930110@.} @item @samp{gcal %0*d10sun} @w{(@equiv{} @code{@var{yyyy}*d@var{n}@var{www}})}@* The actual date is set to the date 10th Sunday in 1993 @w{@result{} 19930307@.} @item @samp{gcal %1994*w10} @w{(@equiv{} @code{@var{yyyy}*w@var{n}})}@* The actual date is set to the date Monday of the 10th week in 1994@* @w{(@var{n} @equiv{} @samp{0@r{|}1@r{@dots{}}52@r{|}53@r{|}99})} @w{@result{} 19940307@.} @item @samp{gcal %1994*w10sun} @w{(@equiv{} @code{@var{yyyy}*w@var{n}@var{www}})}@* The actual date is set to the date Sunday of the 10th week in 1994 @w{@result{} 19940313@.} @item @samp{gcal %0*w10} @w{(@equiv{} @code{@var{yyyy}*w@var{n}})}@* The actual date is set to the date Monday of the 10th week in 1993 @w{@result{} 19930308@.} @item @samp{gcal %0*w10sun} @w{(@equiv{} @code{@var{yyyy}*w@var{n}@var{www}})}@* The actual date is set to the date Sunday of the 10th week in 1993 @w{@result{} 19930314@.} @end itemize @need 1000 @item The @code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}} format: @itemize @bullet @item @samp{gcal %1994@@e} @w{(@equiv{} @code{@var{yyyy}@@e})}@* The actual date is set to the date Easter Sunday 1994 @w{@result{} 19940403@.} @page @item @samp{gcal %1994@@e10} @item @samp{gcal %1994@@e+10} @w{(@equiv{} @code{@var{yyyy}@@e@r{[}+@r{]}@var{n}})}@* The actual date is set to the date 10 days after Easter Sunday 1994 @w{@result{} 19940413@.} @item @samp{gcal %1994@@e-10} @w{(@equiv{} @code{@var{yyyy}@@e-@var{n}})}@* The actual date is set to the date 10 days before Easter Sunday 1994 @w{@result{} 19940324@.} @item @samp{gcal %0@@e} @item @samp{gcal %00@@e} @item @samp{gcal %000@@e} @item @samp{gcal %0000@@e} @w{(@equiv{} @code{@var{yyyy}@@e})}@* The actual date is set to the date Easter Sunday 1993 @w{@result{} 19930411@.} @item @samp{gcal %0@@e10} @item @samp{gcal %0@@e+10} @w{(@equiv{} @code{@var{yyyy}@@e@r{[}|@r{]}@var{n}})}@* The actual date is set to the date 10 days after Easter Sunday 1993 @w{@result{} 19930421@.} @item @samp{gcal %0@@e-10} @w{(@equiv{} @code{@var{yyyy}@@e-@var{n}})}@* The actual date is set to the date 10 days before Easter Sunday 1993 @w{@result{} 19930401@.} @item @samp{gcal %1994@@e3Wed} @item @samp{gcal %1994@@e+3Wed} @w{(@equiv{} @code{@var{yyyy}@@e@r{[}+@r{]}@var{n}@var{www}})}@* The actual date is set to the date 3rd Wednesday after Easter Sunday 1994 @w{@result{} 19940420@.} @item @samp{gcal %1994@@e-3wed} @w{(@equiv{} @code{@var{yyyy}@@e-@var{n}@var{www}})}@* The actual date is set to the date 3rd Wednesday before Easter Sunday 1994 @w{@result{} 19940316@.} @item @samp{gcal %0@@e3wed} @item @samp{gcal %0@@e+3wed} @w{(@equiv{} @code{@var{yyyy}@@e@r{[}+@r{]}@var{n}@var{www}})}@* The actual date is set to the date 3rd Wednesday after Easter Sunday 1993 @w{@result{} 19930428@.} @item @samp{gcal %0@@e-3we} @w{(@equiv{} @code{@var{yyyy}@@e-@var{n}@var{www}})}@* The actual date is set to the date 3rd Wednesday before Easter Sunday 1993 @w{@result{} 19930324@.} @item @samp{gcal %1994@@t} @w{(@equiv{} @code{@var{yyyy}@@t})}@* The actual date is set to today's date in 1994 @w{@result{} 199400217@.} @item @samp{gcal %1994@@t10} @item @samp{gcal %1994@@t+10} @w{(@equiv{} @code{@var{yyyy}@@t@r{[}+@r{]}@var{n}})}@* The actual date is set to the date 10 days after today's date in 1994 @w{@result{} 19940227@.} @item @samp{gcal %1994@@t-10} @w{(@equiv{} @code{@var{yyyy}@@e-@var{n}})}@* The actual date is set to the date 10 days before today's date in 1994 @w{@result{} 19940207@.} @need 1500 @item @samp{gcal %0@@t} @item @samp{gcal %00@@t} @item @samp{gcal %000@@t} @item @samp{gcal %0000@@t} @w{(@equiv{} @code{@var{yyyy}@@t})}@* The actual date is set to today's date @w{@result{} 19930217@.} @item @samp{gcal %0@@t10} @item @samp{gcal %0@@t+10} @w{(@equiv{} @code{@var{yyyy}@@t@r{[}|@r{]}@var{n}})}@* The actual date is set to the date 10 days after today's date @w{@result{} 19930227@.} @item @samp{gcal %0@@t-10} @w{(@equiv{} @code{@var{yyyy}@@t-@var{n}})}@* The actual date is set to the date 10 days before today's date @w{@result{} 19930207@.} @item @samp{gcal %1994@@t3Wed} @item @samp{gcal %1994@@t+3Wed} @w{(@equiv{} @code{@var{yyyy}@@t@r{[}+@r{]}@var{n}@var{www}})}@* The actual date is set to the date 3rd Wednesday after today's date in 1994 @w{@result{} 19940309@.} @item @samp{gcal %1994@@t-3wed} @w{(@equiv{} @code{@var{yyyy}@@t-@var{n}@var{www}})}@* The actual date is set to the date 3rd Wednesday before today's date in 1994 @w{@result{} 19940302@.} @item @samp{gcal %0@@t3wed} @item @samp{gcal %0@@t+3wed} @w{(@equiv{} @code{@var{yyyy}@@t@r{[}+@r{]}@var{n}@var{www}})}@* The actual date is set to the date 3rd Wednesday after today's date @w{@result{} 19930310@.} @item @samp{gcal %0@@t-3we} @w{(@equiv{} @code{@var{yyyy}@@t-@var{n}@var{www}})}@* The actual date is set to the date 3rd Wednesday before today's date @w{@result{} 19930127@.} @item @samp{gcal -v a=0303 %1994@@a} @w{(@equiv{} @code{@var{yyyy}@@@var{dvar}})}@* The actual date is set to the date 3rd March 1994 @w{@result{} 19940303@.} @item @samp{gcal -v a=0303 %1994@@a10} @item @samp{gcal -v a=0303 %1994@@a+10} @w{(@equiv{} @code{@var{yyyy}@@@var{dvar}@r{[}+@r{]}@var{n}})}@* The actual date is set to the date 10 days after 3rd March 1994 @w{@result{} 19940313@.} @item @samp{gcal -v a=0303 %1994@@a-10} @w{(@equiv{} @code{@var{yyyy}@@@var{dvar}-@var{n}})}@* The actual date is set to the date 10 days before 3rd March 1994 @w{@result{} 19940221@.} @item @samp{gcal -v a=0303 %0@@a} @w{(@equiv{} @code{@var{yyyy}@@@var{dvar}})}@* The actual date is set to the date 3rd March 1993 @w{@result{} 19930303@.} @item @samp{gcal -v a=0303 %0@@a10} @item @samp{gcal -v a=0303 %0@@a+10} @w{(@equiv{} @code{@var{yyyy}@@@var{dvar}@r{[}+@r{]}@var{n}})}@* The actual date is set to the date 10 days after 3rd March 1993 @w{@result{} 19930313@.} @item @samp{gcal -v a=0303 %0@@a-10} @w{(@equiv{} @code{@var{yyyy}@@@var{dvar}-@var{n}})}@* The actual date is set to the date 10 days before 3rd March 1993 @w{@result{} 19930221@.} @page @item @samp{gcal -v a=0303 %1994@@a3wed} @item @samp{gcal -v a=0303 %1994@@a+3wed} @w{(@equiv{} @code{@var{yyyy}@@@var{dvar}@r{[}+@r{]}@var{n}@var{www}})}@* The actual date is set to the date 3rd Wednesday after 3rd March 1994 @w{@result{} 19940323@.} @item @samp{gcal -v a=0303 %1994@@a-3wed} @w{(@equiv{} @code{@var{yyyy}@@@var{dvar}-@var{n}@var{www}})}@* The actual date is set to the date 3rd Wednesday before 3rd March 1994 @w{@result{} 19940216@.} @item @samp{gcal -v a=0303 %0@@a3wed} @item @samp{gcal -v a=0303 %0@@a+3wed} @w{(@equiv{} @code{@var{yyyy}@@@var{dvar}@r{[}+@r{]}@var{n}@var{www}})}@* The actual date is set to the date 3rd Wednesday after 3rd March 1993 @w{@result{} 19930324@.} @item @samp{gcal -v a=0303 %0@@a-3wed} @w{(@equiv{} @code{@var{yyyy}@@@var{dvar}-@var{n}@var{www}})}@* The actual date is set to the date 3rd Wednesday before 3rd March 1993 @w{@result{} 19930210@.} @end itemize @item The @code{@var{month name}@r{[}@var{dd}@r{]}} format: @itemize @bullet @item @samp{gcal %April} @w{(@equiv{} @var{month name})}@* The actual date is set to the date 17th April 1993 @w{@result{} 19930417@.} @item @samp{gcal %april3} @item @samp{gcal %april03} @w{(@equiv{} @var{month name} @var{dd})}@* The actual date is set to the date 3rd April 1993 @w{@result{} 19930403@.} @end itemize @need 1000 @item The @code{@var{weekday name}@r{[}@var{n}@r{]}} format: @itemize @bullet @item @samp{gcal %Friday} @w{(@equiv{} @var{weekday name})}@* The actual date is set to the date Friday of current week in February 1993 @w{@result{} 19930219@.} @need 1000 @item @samp{gcal %Friday2} @item @samp{gcal %Friday02} @w{(@equiv{} @var{weekday name} @var{n})}@* The actual date is set to the date 2nd Friday in February 1993 @w{(@var{n} @equiv{} @samp{1@r{@dots{}}5@r{|}9})} @w{@result{} 19930212@.} @end itemize @item The @var{dd} format: @itemize @bullet @item @samp{gcal %3} @item @samp{gcal %03} @w{(@equiv{} @var{dd})}@* The actual date is set to the date 3rd February 1993 @w{@result{} 19930203@.} @end itemize @end table @page @node Commands, , Actual date modifier, Command line arguments @subsection Commands @cindex Commands, general view @cindex Single commands @cindex Commands, single @cindex Lists of commands @cindex Command, lists @cindex Ranges of commands @cindex Command, ranges @cindex 3-Month mode commands @cindex Special 3-Month mode commands @menu * Single commands:: How to use a Single command. * 3-Month mode commands:: How to use a 3-Month mode command. * Lists of commands:: How to use a List of commands. * Ranges of commands:: How to use a Range of commands. @end menu The commands control the periods Gcal respects. They can be partitioned into four major classes, namely @dfn{single} commands, special @dfn{3-Month mode} commands, @dfn{lists} of commands and @dfn{ranges} of commands. Single commands and special 3-Month mode commands only create @strong{one} calendar sheet, ranges of commands or list of commands create @strong{more than one} calendar sheet per program run. If a list of commands is given, Gcal works sequentially on each single command given in the list, one by one. A range of commands is expanded first by Gcal and after expansion is done, Gcal works sequentially on each single command produced during the internal expansion step. For understanding the notation used in the text below, @var{mm} is either a number, a month name or one of the special 3-Month mode commands @option{.}, @option{..}, @option{.+} and @option{.-}@. No lists or ranges of months or years can be created in case a special 3-Month mode command is given. The range of @var{mm} is valid from 1 to 12 or valid from January to December. Both notations may be mixed. Month names may be abbreviated up to their first three characters. @var{yyyy} is a number. The range of @var{yyyy} is valid from 1 to 9999@. A range @w{(@option{@var{mm}-@var{mm}}} or @w{@option{@var{yyyy}+@var{yyyy}}} or @w{@dots{})} must consist of two elements. A list @w{(@option{@var{mm},@r{@dots{}},@var{mm}}} or @w{@option{@var{yyyy};@r{@dots{}};@var{yyyy}}} or @w{@dots{})} must contain two elements minimum and may have any number of elements. @iftex @sp 2 @end iftex @cindex Command separator characters @cindex Characters, command separator @cindex Table of command separator characters @cindex Command separator characters, table @noindent Here is a list of all ranges of commands, lists of commands and other command separator characters: @itemize @bullet @item The @samp{-} character is the @emph{range of months} separator. @item The @samp{,} character is the @emph{list of months} separator. @item The @samp{+} character is the @emph{range of years} separator. @item The @samp{;} character is the @emph{list of years} separator. @item The @samp{/} character is the @emph{month of year} separator. @item The @samp{:} character is the @emph{fiscal year} separator. @end itemize @iftex @sp 2 @end iftex @node Single commands, 3-Month mode commands, Commands, Commands @subsubsection Single commands @cindex Single Commands @cindex Commands, single @table @option @item @var{NOTHING} @arindex Command, @var{NOTHING} @cindex Command, @option{@var{NOTHING}} @cindex Month mode, single @cindex Single month mode @cindex Current month of current year Current month of current year, called @dfn{single month mode} in the further context. @item @var{month name} @arindex Command, @var{month name} @cindex Command, @option{@var{month name}} @cindex Selected month mode @cindex Month mode, selected @cindex Selected month of current year Selected month of current year, e.g.@:: @example @group gcal may gcal OCTOBER gcal ja @end group @end example @page @item @var{yyyy} @arindex Command, @var{yyyy} @cindex Command, @option{@var{yyyy}} @cindex Single year mode @cindex Year mode, single @cindex Selected year Selected year, called @dfn{single year mode} in the further context, e.g.@:: @example gcal 1992 @end example But there is an exception of this general rule. If the specified year number is less or equal twelve, Gcal assumes that a selected month of the current year is wanted. If you want to have a selected year less or equal twelve, call Gcal like this @example gcal 1:6 @end example or like this @example gcal 6+6 @end example to obtain the year @acronym{AD} 6@. @need 1000 @item @var{mm} @var{yyyy} @itemx @var{mm}/@var{yyyy} @arindex Command, @var{mm} @var{yyyy} @arindex Command, @var{mm}/@var{yyyy} @cindex Command, @option{@var{mm} @var{yyyy}} @cindex Command, @option{@var{mm}/@var{yyyy}} @cindex Single month of selected year @anchor{x-mm-yyyy} Single month of selected year, e.g.@:: @example @group gcal 9 1992 gcal 9/1992 gcal Nov 1777 gcal Nov/1777 @end group @end example @item : @arindex Command, : @cindex Command, @option{:} @cindex Single fiscal year @cindex Fiscal year, single @cindex Implicit fiscal year @cindex Fiscal year, implicit Single fiscal year, starting on the @emph{actual month} of the @emph{actual year} and ending on month @emph{actual month}-1 of the @emph{actual year}+1, called @dfn{implicit fiscal year} in the further context, e.g.@:: @example gcal : @end example @item @var{mm}: @arindex Command, @var{mm}: @cindex Command, @option{@var{mm}:} @cindex Single fiscal year @cindex Fiscal year, single @cindex Explicit fiscal year @cindex Fiscal year, explicit Single fiscal year, starting on month @var{mm} of the @emph{actual year} and ending on month @var{mm}-1 of the @emph{actual year}+1, called @dfn{explicit fiscal year} in the further context, e.g.@:: @example @group gcal 6: gcal feb: gcal NOVEMBER: @end group @end example @need 1000 @item :@var{yyyy} @arindex Command, :@var{yyyy} @cindex Command, @option{:@var{yyyy}} @cindex Single fiscal year @cindex Fiscal year, single @cindex Explicit fiscal year @cindex Fiscal year, explicit Single fiscal year, starting on the @emph{actual month} of year @var{yyyy} and ending on month @emph{actual month}-1 of year @var{yyyy}+1, also called @dfn{explicit fiscal year} in the further context, e.g.@:: @example gcal :1999 @end example @item @var{mm}:@var{yyyy} @arindex Command, @var{mm}:@var{yyyy} @cindex Command, @option{@var{mm}:@var{yyyy}} @cindex Single fiscal year @cindex Fiscal year, single @cindex Explicit fiscal year @cindex Fiscal year, explicit Single fiscal year, starting on month @var{mm} of year @var{yyyy} and ending at month @var{mm}-1 of year @var{yyyy}+1, called @dfn{explicit fiscal year} too in the further context, e.g.@:: @example @group gcal 7:1999 gcal oct:1992 gcal February:1777 @end group @end example @end table @need 1500 @node 3-Month mode commands, Lists of commands, Single commands, Commands @subsubsection 3-Month mode commands @cindex 3-Month mode commands @cindex Special 3-Month mode commands @table @option @item . @arindex Command, . @cindex Command, @option{.} @cindex Special 3-Month mode, @option{.} @cindex 3-Month mode command @option{.}, special Previous, actual and next month of the current year, e.g.@:: @example gcal . @end example @need 1000 @item . @var{yyyy} @arindex Command, . @var{yyyy} @cindex Command, @option{. @var{yyyy}} @cindex Special 3-Month mode, @option{. @var{yyyy}} @cindex 3-Month mode command @option{. @var{yyyy}}, special Previous, actual and next month of selected year, e.g.@:: @example gcal . 1992 @end example @need 1000 @item .. @arindex Command, .. @cindex Command, @option{..} @cindex Special 3-Month mode, @option{..} @cindex 3-Month mode command @option{..}, special Actual quarter of the current year, e.g.@:: @example gcal .. @end example @item .. @var{yyyy} @arindex Command, .. @var{yyyy} @cindex Command, @option{.. @var{yyyy}} @cindex Special 3-Month mode, @option{.. @var{yyyy}} @cindex 3-Month mode command @option{.. @var{yyyy}}, special Actual quarter of selected year, e.g.@:: @example gcal .. 1992 @end example @need 1000 @item .+ @arindex Command, .+ @cindex Command, @option{.+} @cindex Special 3-Month mode, @option{.+} @cindex 3-Month mode command @option{.+}, special Actual and next two months of the current year, e.g.@:: @example gcal .+ @end example @need 1000 @item .+ @var{yyyy} @arindex Command, .+ @var{yyyy} @cindex Command, @option{.+ @var{yyyy}} @cindex Special 3-Month mode, @option{.+ @var{yyyy}} @cindex 3-Month mode command @option{.+ @var{yyyy}}, special Actual and next two months of selected year, e.g.@:: @example gcal .+ 1992 @end example @item .- @arindex Command, .- @cindex Command, @option{.-} @cindex Special 3-Month mode, @option{.-} @cindex 3-Month mode command @option{.-}, special Actual and previous two months of the current year, e.g.@:: @example gcal .- @end example @item .- @var{yyyy} @arindex Command, .- @var{yyyy} @cindex Command, @option{.- @var{yyyy}} @cindex Special 3-Month mode, @option{.- @var{yyyy}} @cindex 3-Month mode command @option{.- @var{yyyy}}, special Actual and previous two months of selected year, e.g.@:: @example gcal .- 1992 @end example @end table @node Lists of commands, Ranges of commands, 3-Month mode commands, Commands @subsubsection Lists of commands @cindex Commands, lists @cindex Lists of commands @table @option @item @var{mm},@r{@dots{}},@var{mm} @arindex Command, @var{mm},@r{@dots{}},@var{mm} @cindex Command, @option{@var{mm},@r{@dots{}},@var{mm}} @cindex List of specified months of the current year @cindex Specified months of the current year, list List of specified months of the current year, e.g.@:: @example @group gcal 1,5,12 gcal 3,1,5,3 gcal june,9,jan @end group @end example @need 1500 @item @var{mm}/@var{yyyy},@r{@dots{}},@var{mm}/@var{yyyy} @arindex Command, @var{mm}/@var{yyyy},@r{@dots{}},@var{mm}/@var{yyyy} @cindex Command, @option{@var{mm}/@var{yyyy},@r{@dots{}},@var{mm}/@var{yyyy}} @cindex List of months in specified year @cindex Months in specified year, list List of months in specified year, e.g.@:: @example @group gcal 1/1992,5,12/2001 gcal june/1991,9/1801,jan @end group @end example @item @var{mm},@r{@dots{}},@var{mm} @var{yyyy} @arindex Command, @var{mm},@r{@dots{}},@var{mm} @var{yyyy} @cindex Command, @option{@var{mm},@r{@dots{}},@var{mm} @var{yyyy}} @cindex List of specified months of selected year @cindex Specified months of selected year, list List of specified months of selected year, e.g.@:: @example @group gcal 3,7 1999 gcal 1,dec,july 1777 @end group @end example @item @var{yyyy};@r{@dots{}};@var{yyyy} @arindex Command, @var{yyyy};@r{@dots{}};@var{yyyy} @cindex Command, @option{@var{yyyy};@r{@dots{}};@var{yyyy}} @cindex List of specified years @cindex Specified years, list List of specified years, e.g.@:: @example gcal 1992;1777;1899 @end example @item @var{mm}:@var{yyyy};@r{@dots{}};@var{mm}:@var{yyyy} @arindex Command, @var{mm}:@var{yyyy};@r{@dots{}};@var{mm}:@var{yyyy} @cindex Command, @option{@var{mm}:@var{yyyy};@r{@dots{}};@var{mm}:@var{yyyy}} @cindex List of specified fiscal years @cindex Specified fiscal years, list @cindex List of fiscal years @cindex Fiscal years, list List of specified fiscal years, e.g.@:: @example gcal 7:1999;8:1992;April:3 @end example @end table @need 1500 @noindent @strong{Other valid lists:} @table @option @item @var{mm},@var{mm}/@var{yyyy},@r{@dots{}} @arindex Command, @var{mm},@var{mm}/@var{yyyy},@r{@dots{}} @cindex Command, @option{@var{mm},@var{mm}/@var{yyyy},@r{@dots{}}} @cindex Mixed list of months @cindex Months, mixed list Mixed list of months consisting of: @option{@var{mm} @var{mm}/@var{yyyy}} @example gcal 6,8,3/1999,feb/3,january @end example @need 1500 @item @var{mm}:;@var{mm}:@var{yyyy};@r{@dots{}} @arindex Command, @var{mm}:;@var{mm}:@var{yyyy};@r{@dots{}} @cindex Command, @option{@var{mm}:;@var{mm}:@var{yyyy};@r{@dots{}}} @cindex Mixed list of fiscal years @cindex Fiscal years, mixed list Mixed list of fiscal years of the given / actual year consisting of: @option{@var{mm}: :@var{yyyy} @var{mm}:@var{yyyy} @var{yyyy}} @example gcal 3:;1994;february:1999;:1777;JAN: @end example @need 1000 @item @var{mm}:;@var{mm}:;@r{@dots{}} @arindex Command, @var{mm}:;@var{mm}:;@r{@dots{}} @cindex Command, @option{@var{mm}:;@var{mm}:;@r{@dots{}}} @cindex List of fiscal years of the actual year @cindex Fiscal years of the actual year, list List of fiscal years of the actual year consisting of: @option{@var{mm}:} @example gcal 3:;august:;DEC: @end example @end table @node Ranges of commands, , Lists of commands, Commands @subsubsection Ranges of commands @cindex Ranges of commands @cindex Commands, ranges @table @option @item @var{mm}-@var{mm} @arindex Command, @var{mm}-@var{mm} @cindex Command, @option{@var{mm}-@var{mm}} @cindex Range of current months @cindex Current months, range Range of current months, e.g.@:: @example @group gcal 3-7 gcal 11-8 gcal MAY-dec gcal 12-aug @end group @end example @item @var{mm}/@var{yyyy}-@var{mm}/@var{yyyy} @arindex Command, @var{mm}/@var{yyyy}-@var{mm}/@var{yyyy} @cindex Command, @option{@var{mm}/@var{yyyy}-@var{mm}/@var{yyyy}} @cindex Range of months of year @cindex Months of year, range Range of months of year, e.g.@:: @example @group gcal 3/1991-july/1992 gcal dec/1994-3 gcal sep-dec/2000 @end group @end example @item @var{mm}-@var{mm} @var{yyyy} @arindex Command, @var{mm}-@var{mm} @var{yyyy} @cindex Command, @option{@var{mm}-@var{mm} @var{yyyy}} @cindex Range of specified months of selected year @cindex Specified months of selected year, range Range of specified months of selected year, e.g.@:: @example @group gcal 3-7 1999 gcal nov-3 1777 gcal aug-dec 1992 @end group @end example @need 1000 @item @var{mm}-@var{mm} @var{yyyy}+@var{yyyy} @arindex Command, @var{mm}-@var{mm} @var{yyyy}+@var{yyyy} @cindex Command, @option{@var{mm}-@var{mm} @var{yyyy}+@var{yyyy}} @cindex Range of specified months of selected years @cindex Specified months of selected years, range Range of specified months of selected years, e.g.@:: @example @group gcal 3-7 1999+2001 gcal nov-3 1777+1600 gcal aug-dec 1992+1994 @end group @end example @need 1000 @item @var{mm} @var{yyyy}-@var{yyyy} @itemx @var{mm}/@var{yyyy}-@var{yyyy} @arindex Command, @var{mm} @var{yyyy}-@var{yyyy} @arindex Command, @var{mm}/@var{yyyy}-@var{yyyy} @cindex Command, @option{@var{mm} @var{yyyy}-@var{yyyy}} @cindex Command, @option{@var{mm}/@var{yyyy}-@var{yyyy}} @cindex Range of specified month of selected years @cindex Specified month of selected years, range Range of specified month of selected years, e.g.@:: @example @group gcal AUGUST 1494-1497 gcal 3/1993-1999 gcal nov/3-1777 @end group @end example @need 1500 @item @var{yyyy}+@var{yyyy} @arindex Command, @var{yyyy}+@var{yyyy} @cindex Command, @option{@var{yyyy}+@var{yyyy}} @cindex Range of specified years @cindex Specified years, range Range of specified years, e.g.@:: @example gcal 1992+1994 @end example @item @var{mm}:@var{yyyy}+@var{mm}:@var{yyyy} @arindex Command, @var{mm}:@var{yyyy}+@var{mm}:@var{yyyy} @cindex Command, @option{@var{mm}:@var{yyyy}+@var{mm}:@var{yyyy}} @cindex Range of specified fiscal years @cindex Specified fiscal years, range @cindex Range of fiscal years @cindex Fiscal years, range Range of specified fiscal years, e.g.@:: @example @group gcal 7:1999+8:1992 gcal aug:1992+july:1999 @end group @end example @end table @page @node The GCAL environment variable, , Command line arguments, Invoking Gcal @section The @env{GCAL} environment variable @cindex Environment variable, @env{GCAL} @cindex @env{GCAL} environment variable @vindex GCAL The environment variable @env{GCAL} can hold a set of default options for Gcal (@pxref{x-GCAL, , Environment Variable @env{GCAL}})@. These options are interpreted first at program start-up, and some can be overwritten by explicit command line arguments or values found in a @option{@@@var{file}} response file. @xref{Command line arguments}, and @ref{Response file}, for further information. @iftex @sp 2 @end iftex @noindent For example: @itemize @bullet @item for @strong{sh}: @smallexample GCAL="-i @@color -b 3"; export GCAL @end smallexample @item for @strong{csh}: @smallexample setenv GCAL "-i @@color -b 3" @end smallexample @item for @strong{MS-DOS}: @smallexample set GCAL=-i @@color -b 3 @end smallexample @end itemize @iftex @sp 2 @end iftex @cindex Environment variable, @env{GCAL_OPT} @cindex @env{GCAL_OPT} environment variable @vindex GCAL_OPT On Vax/VMS, the name of the environment variable is @w{@env{GCAL_OPT}}, to avoid a conflict with the symbol @env{GCAL} set for invocation of the program. @iftex @sp 2 @end iftex @noindent For example: @itemize @bullet @item for @strong{VMS}: @smallexample define GCAL_OPT "-i @@color -b 3" @end smallexample @end itemize @node Eternal Holidays, Fixed Dates, Invoking Gcal, Top @chapter Eternal Holidays @cindex Eternal Holidays @cindex Holiday list, eternal The @emph{eternal holiday list} is created only for dates after @acronym{AD} 29@. It is assumed that the Gregorian Reformation has occurred from 10th till 22nd March 1924 for all Christian-Orthodox holidays, which are inserted into the @emph{eternal holiday list}. @iftex @sp 1 @end iftex The @emph{eternal holiday list} can be displayed in different ways: @iftex @sp 1 @end iftex If you start Gcal without an explicit (fiscal) date and the @emph{eternal holiday list} argument (@pxref{x-holiday-list, , Calendar option @option{--holiday-list@r{[}=long@r{|}short@r{]}}}), e.g.@:: @example @group gcal -qfr --holiday-list gcal -qfr -n gcal -qfr -n : @end group @end example @noindent Gcal displays all holidays of the eternal holiday list that refer to the actual / fiscal year, without a leading calendar sheet. In case you start Gcal with the @emph{eternal holiday list} argument and a month (plus an additional year), e.g.@:: @example @group gcal -qbe --holiday-list july gcal -qbe -n july gcal -qbe -n 7 1993 gcal -qbe -n 7/1993 @end group @end example @noindent Gcal displays a month calendar sheet of the specified month (of year), and trailing those holidays of the eternal holiday list that refer to the given month (of the given year)@. If you start Gcal with the @emph{eternal holiday list} argument and a simple year (or an explicit fiscal year), e.g.@:: @example @group gcal -qbe --holiday-list 1993 gcal -qbe -n 1993 gcal -qbe -n july: gcal -qbe -n :1993 gcal -qbe -n 7:1993 @end group @end example @noindent Gcal displays a year calendar sheet of the specified year or fiscal year, and trailing all holidays of the eternal holiday list that refer to the given year or fiscal year. In case you start Gcal with the @emph{eternal holiday list} argument and a special 3-Month mode command (@pxref{3-Month mode commands}), e.g.@:: @example @group gcal -qbe --holiday-list . gcal -qbe -n . gcal -qbe -n .. gcal -qbe -n .+ gcal -qbe -n .- @end group @end example @noindent Gcal displays the according three months by using a fixed-style year calendar sheet, and trailing all holidays of the eternal holiday list that refer to these months. In case you start Gcal with the @emph{eternal holiday list} argument and a @emph{list} or @emph{range} of commands, it produces the according series of eternal holiday lists. @xref{Lists of commands}, and @ref{Ranges of commands}, for further details. @iftex @sp 2 @end iftex @noindent Some annotations: @iftex @sp 1 @end iftex @tbindex Marking characters used in eternal holiday list @tbindex Eternal holiday list, marking characters used The following table lists all those characters which are used for marking an entry in the eternal holiday list, i.e.@: directly lead its date: @iftex @sp 1 @end iftex @multitable @columnfractions .18 .82 @item @strong{Character} @tab @strong{Description} @item @ @item @code{+} @tab Legal holiday which is valid in the whole country. Is automatically provided with highlighting sequences respectively marking characters. @item @code{#} @tab Legal holiday which is valid in major parts of the whole country. Is automatically provided with highlighting sequences respectively marking characters. @item @code{*} @tab Legal holiday which is valid in minor parts of the whole country. Is not provided with highlighting sequences respectively marking characters. @item @code{-} @tab Other holiday which serves for memorial or remarking purposes only. Is not provided with highlighting sequences respectively marking characters. @end multitable @iftex @sp 1 @end iftex By using the @option{--cc-holidays=@var{cc}@r{[}+@r{@dots{}]}} option, it is possible to provide the eternal holiday list with additional country specific holidays. Thereafter, those country specific holidays are part of the list. @xref{x-cc-holidays, , Calendar option @option{--cc-holidays=@var{cc}@r{[}+@r{@dots{}]}}}. For example: @example --cc-holidays=be+fr @end example @noindent causes the inclusion of Belgian and French holidays into the eternal holiday list. The inclusion of country specific holidays is not coupled to Gcal's internationalization (@pxref{Internationalization, , Aspects in Internationalization})@. This means, no country specific holidays are automatically respected at program start-up for a definite territory or country. So it is up to the user to decide which country specific holidays are included into the eternal holiday list. @xref{The GCAL environment variable, , The @env{GCAL} environment variable}, for information how Gcal can be induced to include the country specific holidays automatically into the eternal holiday list at program start-up. @iftex @sp 1 @end iftex The free selection of the different country specific holidays can be used very ingenious in case information of a definite territory or country is required. Assuming a business man from Germany proposes to travel to Italy in November and needs the information which legal holidays are celebrated there on working days so he is able to plan his dates. This can be determined as follows: @iftex @sp 1 @end iftex @example gcal -f /dev/null -q IT -D r -cE nov @end example @node Fixed Dates, Todays Calendar, Eternal Holidays, Top @chapter Fixed Dates @cindex Fixed dates @menu * Resource file:: How to use a Resource file. * Resource file examples:: Examples of Resource file entries. @end menu @cindex Resource file This chapter describes how to use the @emph{fixed date} feature of Gcal. Normally, the fixed dates are stored line by line in a so-called resource file (@pxref{Resource file})@. On request, Gcal searches any of such resource files for those fixed dates, that are happening in the period for which a fixed date list is wanted. If Gcal has found any fixed dates that are happening in the requested period, the program displays them collectively as a fixed date list. Thus, each time you execute Gcal in simple single month mode, i.e.@: no explicit month, year or fiscal year is given in the command line, but the @emph{fixed date} argument, e.g.@:: @example @group gcal --list-of-fixed-dates gcal -c @end group @end example @noindent it checks the resource file for dates and processes those that refer to the actual system date (@equiv{}today)@. Then Gcal displays all fixed dates found in the resource file which refer to the actual day (week/month/year) of the actual year, without a leading calendar sheet. @noindent Some more examples: @example @group gcal --ast -ce gcal -cw- gcal -c-m gcal -c-y- gcal -qbe -jcb -c-et gcal --zod -cey- gcal -qfr -jc -cey @end group @end example @iftex @sp 1 @end iftex The fixed date list can be embraced by different other leading and trailing output, respectively, that is also created by Gcal: @iftex @sp 1 @end iftex In case you start Gcal with the @emph{fixed date} argument and/or a month and/or an explicit year or fiscal year; respectively with the special 3-Month mode command, e.g.@:: @example @group gcal -c july gcal -qfr -ce 7 1994 gcal -c-y 7/1994 gcal -c 7:1993 gcal -c 1993 gcal -c . gcal -c .+ @end group @end example @noindent Gcal displays a (three) month / year calendar sheet of the specified respectively actual month / year, and trailing those fixed dates found in the resource file that refer to the given period; the intensity level is the same as the @option{-cy} option if the period refers to a year or fiscal year or to a three month period, respectively, is the same as the @option{-cm} option if the period refers to a month. @need 1500 If you start Gcal without an explicit date and the @emph{fixed date} argument @strong{in connection with} the @emph{eternal holiday list} argument, e.g.@:: @example @group gcal -qbe -n -c gcal -qbe -n -Cm gcal -qbe -n -Cl1224 gcal -qbe -n -cl3+ gcal -qbe -n -4- @end group @end example @noindent then Gcal displays all fixed dates found in the resource file that refer to the requested period, and after that all holidays of the eternal holiday list that refer to the whole actual year, without a leading calendar sheet. @xref{Eternal Holidays}, for more details how to use an @emph{eternal holiday list}@. @iftex @sp 2 @end iftex @noindent Annotation to previous examples: @iftex @sp 2 @end iftex Each time you execute Gcal in simple single year mode, i.e.@: no explicit month, year or fiscal year is given in the command line, but the @emph{fixed date} argument (with optional modifiers) and the @emph{number of blocks} argument (@pxref{x-blocks, , Calendar option @option{--blocks=@var{number}}}), e.g.@:: @example @group gcal -c --blocks=3 gcal -C-em -b 3 --cc-holidays=be gcal -c-t -b 6 -jc @end group @end example @noindent it checks the resource file for dates and processes those that refer to the actual system date (@equiv{}today)@. Gcal displays a leading year calendar sheet, and all fixed dates found in the resource file that refer to the actual day (week/month/year) of the actual year. You can list fixed dates of past, present or future month/years, too. This can be done on the one hand, if you use the @option{%@var{date}} option in the way you require (@pxref{Actual date modifier}), and on the other hand, if a command respectively a @emph{list} or @emph{range} of commands is used. @noindent For example: @table @samp @item gcal -qbe -c -n- 1993 Lists all fixed dates of entire 1993 in ascending order, and the eternal holiday list of entire 1993 in descending order; the intensity level is the same as the @option{-cy} option. @item gcal -c- july:1993 Lists all fixed dates of fiscal year ---starting in July 1993 and ending in June 1994--- in descending order; the intensity level is the same as the @option{-cy} option. @item gcal -qbe -ce july 1993 Lists all fixed dates of July 1993 inclusive all eternal holidays merged into this list in ascending order; the intensity level is the same as the @option{-cm} option. @need 2000 @item gcal -qbe -c-e -n 1993+1996 Lists all fixed dates of entire 1993, 1994, 1995 and 1996 (series of years) inclusive all eternal holidays merged into this list in descending order, and the eternal holiday list related to all above years in ascending order; the intensity level is the same as the @option{-cy} option. @item gcal -cm %19920317 Lists all fixed dates of March 1992 in ascending order. @item gcal -qbe %1994@@e -n -c Lists all fixed dates of Easter Sunday 1994 in ascending order, and the eternal holiday list of entire 1994 in ascending order. @end table @page @node Resource file, Resource file examples, Fixed Dates, Fixed Dates @section Resource file @cindex .gcalrc resource file @cindex Resource file, .gcalrc @cindex Resource file, use @cindex Resource file, name @cindex Resource file, searching mechanism @cindex Resource file, standard @cindex Resource file, additional @cindex Resource file, loading @cindex File searching mechanism @cindex Searching resource file @menu * Structure of resource file:: How to write a Resource file. * Date part of a line:: How to write the Date part. * Further date part attributes:: What are Further date part attributes? * Text part of a line:: How to write the Text part. * Special Texts processed:: What are @code{%@var{?}}@dots{} Special Texts? * Comment line:: What is a Comment line? * Include directives:: What are Include directives. * Date variables:: How Date variables can be used. * Text variables:: How Text variables can be used. @end menu This section describes how to use a @dfn{resource file} that contains fixed dates and appointments. The name of the standard resource file is @w{@file{@env{HOME}/.gcalrc}}@footnote{On @w{MS-DOS}, @w{OS/2} and some other operating systems, the name of the @emph{standard resource file} is @w{@file{@env{HOME}/gcalrc}} (without a leading @samp{.})@.}@. @anchor{x-File-searching-mechanism} @noindent Gcal uses a special file searching mechanism: @enumerate 1 @item @cindex Environment variable, @env{GCALPATH} @cindex @env{GCALPATH} environment variable @vindex GCALPATH The Gcal program scans the file directories which are referenced in the environment variable @env{GCALPATH} (@pxref{x-GCALPATH, , Environment Variable @env{GCALPATH}}) to find the standard resource file. The @env{GCALPATH} environment variable contains a (@samp{:}) colon-separated@footnote{On @w{MS-DOS}, @w{OS/2} and some other operating systems, another character will be used, e.g.@: @samp{;} on @w{MS-DOS} and @w{OS/2}@.} list of file directories. If no such environment variable is defined and set, Gcal omits this step. @item @cindex Actual file directory @cindex File directory, actual @cindex Directory, actual @cindex Environment variable, @env{HOME} @cindex @env{HOME} environment variable @vindex HOME If the above action fails, Gcal looks for the standard resource file in the file directory which is referenced in the environment variable @env{HOME}@. If no @env{HOME} environment variable is defined and set, Gcal also omits this step. @xref{x-HOME, , Environment Variable @env{HOME}}. @item @cindex Environment variable, @env{GCAL_USR_DATADIR} @cindex @env{GCAL_USR_DATADIR} environment variable @vindex GCAL_USR_DATADIR If the above action fails, Gcal inspects the @emph{user data} file directory@footnote{Normally @w{@file{@env{HOME}/share/gcal}}@.} to find the standard resource file. This file directory is a file directory relative to the @env{HOME} file directory. If an environment variable @w{@env{GCAL_USR_DATADIR}} is set, Gcal appends the contents of this environment variable to the contents of the @env{HOME} environment variable, and tries to use this file directory instead of using the burned-in default name of this file directory (@pxref{x-GCAL_USR_DATADIR, , Environment Variable @env{GCAL_USR_DATADIR}})@. If no @env{HOME} environment variable is defined and set, Gcal of course also omits this step. @item @cindex Environment variable, @env{GCAL_SYS_DATADIR} @cindex @env{GCAL_SYS_DATADIR} environment variable @vindex GCAL_SYS_DATADIR If all above actions fail, Gcal inspects the @emph{system data} file directory@footnote{Normally @w{@file{/usr/local/share/gcal}} or @w{@file{@var{$prefix}/share/gcal}}@.} to find the standard resource file. This file directory is a file directory absolute to the @w{@emph{root}/@var{$prefix}} file directory. If an environment variable @w{@env{GCAL_SYS_DATADIR}} is set, Gcal tries to use this file directory instead of using the burned-in default name of this file directory (@pxref{x-GCAL_SYS_DATADIR, , Environment Variable @env{GCAL_SYS_DATADIR}})@. @end enumerate If the standard resource file is not found during the steps @w{1@dots{}4} of the file searching mechanism, no fixed date messages will be created! @cindex Error code 118 @cindex Exit code 118 In case the @w{@option{--debug=abort}} option is given and no standard resource file is found during the steps @w{1@dots{}4} of the file searching mechanism, the Gcal program will be aborted with an error code. @xref{x-118-Error-code, , Error Code 118}, and @ref{x-debug-abort, , Global option @option{--debug=abort}}, for more information. @iftex @sp 2 @end iftex If a @w{@option{-f@r{|}F @var{name}@r{[}+@r{@dots{}]}}} respectively @w{@option{--resource-file=@var{name}}} command line argument is given, a file @var{name} will be used for the resource file instead of the standard resource file. @xref{x-resource-file, , Fixed date option @option{--resource-file=@var{name}}}. @need 4000 @noindent Annotation: @iftex @sp 1 @end iftex @cindex Extended file name @cindex File name, extended An @dfn{extended file name} contains one ore more @samp{/} (slash) characters@footnote{Operating systems like @w{MS-DOS} or @w{OS/2} use the @samp{\} (Backslash) character for separating a file directory from a file name.} and denotes a file, whose fixed access path either starts from the root file directory, like @samp{/foo/bar/file}, or from the actual file directory, like @samp{./bar/file} or @samp{../bar/file}@. If @var{name} is an extended file name: @iftex @sp 1 @end iftex @itemize @bullet @item In case file @var{name} is found, Gcal will use it. @item In case file @var{name} is not found, Gcal will not use it. @end itemize @iftex @sp 1 @end iftex @cindex Simple file name @cindex File name, simple A @dfn{simple file name} denotes a file, whose access-path either does not start from the root file directory or from the actual file directory, like @samp{file} or @samp{bar/file}@. If @var{name} is a simple file name: @iftex @sp 1 @end iftex @itemize @bullet @item Gcal tries to find this file @var{name} by using the previously explained file searching mechanism. @end itemize @page @node Structure of resource file, Date part of a line, Resource file, Resource file @subsection Structure of resource file @cindex Structure of resource file @cindex Resource file, structure @cindex Resource file, two parts of a line @cindex Separator character, whitespace @cindex Whitespace separator character @cindex List of whitespace character @cindex Resource file, limitations @cindex Limitations in a resource file First of all, a Gcal resource file is a plain @sc{ascii} text file. This text file may be created by any text editor or by redirecting the @emph{standard output channel} to a file, e.g.@:: @cindex Redirection of standard output, appending to file @example @cartouche $ echo '19930217 Text'>> resource-file @key{RET} @end cartouche @end example A special ---but simple--- line structure is required so Gcal is able to interpret its contents. Each fixed date entry in a resource file must be split into two parts, namely a @emph{date part} and an optional @emph{text part} which @strong{must} be separated by @strong{one} @dfn{whitespace}@footnote{For example @emph{Tab}, @emph{Space}, @emph{Form-feed} and similar characters.} character minimum. It is unnecessary to give a whitespace separator character if no @emph{text part} is specified. @cindex Redirection of standard output A line must always end with a @samp{\n} (newline) character, except it is the last line of a resource file. The maximum length of a line is limited to @w{@code{INT_MAX}}@footnote{Normally, this is for example equivalent to a value of @w{@t{32,767}} @equiv{} @w{@t{(2^15)-1}} on a @w{16-Bit} machine architecture; to a value of @w{@t{2,147,483,648}} @equiv{} @w{@t{(2^31)-1}} on a @w{32-Bit} machine architecture etc.} characters. A newline character is automatically appended to the line if the @emph{standard output channel} is directed to a file. A newline character is appended to the typed line in a text editor window if it is completed by pressing the @key{RET} key. In case the used text editor does not generate the newline character in this way, it should be set to this mode of operation, otherwise this text editor is useless for creating Gcal resource files. @iftex @sp 2 @end iftex @tbindex Line structure of fixed date @tbindex Fixed date, line structure @cindex Line structure of fixed date @cindex Fixed date, line structure @noindent The line structure of fixed date entries is: @example @var{date part} @r{[} @emph{whitespace} @var{text part} @r{]} @emph{newline} @end example @iftex @sp 2 @end iftex @noindent or more concrete, e.g.@:: @example @var{yyyy}@r{[}@var{mm}@r{[}@var{dd}@r{|}@var{www}@var{n}@r{]]} @r{[} @emph{whitespace} @var{text} @r{]} @emph{newline} @end example @iftex @sp 2 @end iftex @noindent or much more concrete, e.g.@:: @example 19940217 Hi, I'm the text! @end example @need 4500 @tbindex Entries in resource file @tbindex Resource file, entries @noindent Besides fixed date entries, a resource file may contain further entries like: @iftex @sp 1 @end iftex @cindex Comment line in resource file @cindex Resource file, commented line @cindex Resource file line, commented @cindex Remarked line in resource file @cindex Resource file, remarked line @cindex Resource file line, remarked @noindent Comments@dots{} @example @group ; A remarked line ; A formatted and multi-line \ remark @end group @end example @iftex @sp 1 @end iftex @cindex Include directives @noindent Include directives@dots{} @example @group #include <@var{file name}> #include "@var{file name}" @end group @end example @iftex @sp 1 @end iftex @cindex Date variables, assignments @cindex Assignments to date variables @cindex Date variables, operations @cindex Operations on date variables @noindent Date variable assignments respectively operations@dots{} @example @group @var{dvar}=@var{NOTHING} @var{dvar}=@var{mm}@var{dd} @var{dvar}=@var{mm}@var{www}@var{n} @var{dvar}=*d@var{n}@r{[}@var{www}@r{]} @var{dvar}=*w@var{n}@r{[}@var{www}@r{]} @var{dvar}=@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]} @var{dvar}++ @var{dvar}-- @var{dvar}+=@r{[}+@r{|}-@r{]}@var{n} @var{dvar}-=@r{[}+@r{|}-@r{]}@var{n} @var{dvar}+=@var{n}@var{www} @var{dvar}-=@var{n}@var{www} @end group @end example @iftex @sp 1 @end iftex @cindex Text variables, assignments @cindex Assignments to text variables @cindex Text variables, operations @cindex Operations on text variables @noindent Text variable assignments respectively operations@dots{} @example @group @var{tvar}=@r{[}@var{text}@r{]} @var{tvar}?@r{[}@var{command}@r{]} @var{tvar}:@r{[}@var{command}@r{]} @var{tvar}++ @var{tvar}-- @var{tvar}+=@r{[}+@r{|}-@r{]}@var{n} @var{tvar}-=@r{[}+@r{|}-@r{]}@var{n} @end group @end example @iftex @sp 1 @end iftex @cindex Text variables, references @cindex References of text variables @noindent Text variable references@dots{} @example @var{tvar} @end example @iftex @sp 1 @end iftex Text variable references at the beginning of a Gcal resource file line may only be used if it is ensured that they are expanded to a valid Gcal resource file line. @page @node Date part of a line, Further date part attributes, Structure of resource file, Resource file @subsection Date part of a line @cindex Date part of a resource file line @cindex Line, date part @cindex Resource file, date part of a line @cindex Structure of date part @cindex Date part, structure The structure of a @dfn{date part} ---which gives Gcal the information at which date a fixed date happens--- of a line in the resource file is @noindent @w{@strong{either}: @code{@var{yyyy}@r{[}@var{mm}@r{[}@var{dd}@r{|}@var{www}@var{n}@r{]]}}} @quotation @table @code @item @var{yyyy} (4 digits), is the year including the century (range @w{@code{0000@r{@dots{}}9999})@.} Leading zeroes are required in case the defined year is less than @code{1000} and other components of the date part are trailing the year. @item @var{mm} (2 digits or 3 characters), is the month (range @w{@code{00@r{@dots{}}12}} or @code{99}, respectively @code{Jan}, @code{Feb}@dots{})@. A given @code{99} for the month means the last month of the year (@equiv{} December)@. Leading zeroes are required in case the defined month is less than @code{10} and other components of the date part are trailing the month. @item @var{dd} (2 digits), is the day (range @w{@code{00@r{@dots{}}31}} or @code{99})@. A given @code{99} for the day means the last day of the month. Leading zeroes are required in case the defined day is less than @code{10} and other components of the date part are trailing the day. @item @var{www} (2@dots{}3 characters), is a short weekday name (range @w{@code{Mon@r{@dots{}}Sun}})@. @item @var{n} (1 digit), is the @w{@var{n}'th} weekday @var{www} of month (range @w{@code{1@r{@dots{}}5}} or @code{9})@. @itemize @bullet @item @var{n} @equiv{} @w{@code{1@r{@dots{}}5}}@* @w{@var{n}'th} weekday @var{www} of month. @item @var{n} @equiv{} @code{9}@* Last weekday @var{www} of month. @end itemize @end table @end quotation @noindent @w{@strong{or}: @code{@var{yyyy}*d@r{|}w@var{n}@r{[}@var{www}@r{]}}} @quotation @table @code @item @var{yyyy} (4 digits), is the year including the century (range @w{@code{0000@r{@dots{}}9999})@.} Leading zeroes are required in case the defined year is less than @code{1000} and other components of the date part are trailing the year. @item *d (2 characters), is the reference to an ordinary date. @item *w @cindex @acronym{ISO}-8601:1988 week number @cindex Week number, @acronym{ISO}-8601:1988 @cindex Standard week number @cindex Week number, standard (2 characters), is either the reference to a date of an @acronym{ISO} week or the reference to a date of a standard week. @item @var{n} (1@dots{}3 digits), is the value in days or in weeks, the fixed date occurs. A given @code{99} connected with a short weekday name means the last weekday @var{www} of the year. A given @code{999} connected with @code{*d} means the last day of a year, i.e.@: the 31st December. If the computed date does not occur in the year, i.e.@: exceeds the year bounds, the fixed date message is suppressed. @item @var{www} (2@dots{}3 characters), is a short weekday name (range @w{@code{Mon@r{@dots{}}Sun}})@. @end table @end quotation @need 1000 @noindent @w{@strong{or}: @code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{]}}} @quotation @table @code @item @var{yyyy} (4 digits), is the year including the century (range @w{@code{0000@r{@dots{}}9999})@.} Leading zeroes are required in case the defined year is less than @code{1000} and other components of the date part are trailing the year. @item @@e (2 characters), is the reference to the Easter Sunday's date. @item @@t (2 characters), is the reference to today's date. @item @@@var{dvar} (2 characters), is the reference to a date variable. @item @r{[}+@r{|}-@r{]}@var{n} (1@dots{}4 alphanumeric characters), is the optional displacement value in days, the fixed date occurs relative to the Easter Sunday's date, relative to today's date, or relative to a date variables date. A given @code{-999} means the first day of a year, i.e.@: the 1st January. A given @code{+999} or @code{999} means the last day of a year, i.e.@: the 31st December. If the computed date does not occur in the year, i.e.@: exceeds the year bounds, the fixed date message is suppressed. @end table @end quotation @noindent @w{@strong{or}: @code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@var{www}}} @quotation @table @code @item @var{yyyy} (4 digits), is the year including the century (range @w{@code{0000@r{@dots{}}9999})@.} Leading zeroes are required in case the defined year is less than @code{1000} and other components of the date part are trailing the year. @item @@e (2 characters), is the reference to the Easter Sunday's date. @item @@t (2 characters), is the reference to today's date. @item @@@var{dvar} (2 characters), is the reference to a date variable. @item @r{[}+@r{|}-@r{]}@var{n}@var{www} (3@dots{}7 alphanumeric characters), is the optional displacement value in weekdays, the fixed date occurs relative to the Easter Sunday's date, relative to today's date, or relative to a date variables date. A given @code{-99} means the first weekday @var{www} of the year. A given @code{+99} or @code{99} means the last weekday @var{www} of the year. If the computed date does not occur in the year, i.e.@: exceeds the year bounds, the fixed date message is suppressed. @end table @end quotation @need 2000 @noindent @strong{Please note:} @itemize @bullet @item If @var{yyyy} is specified as @code{0000}, @code{000}, @code{00} or @code{0}:@* The month and day are assumed to be annual events and the @emph{text part} will be displayed for any year. @item If @var{mm} is not defined or specified as @code{00} or @code{0}:@* The day is assumed to be a monthly event for the specified year and the @emph{text part} will be displayed for any month. @item If @var{dd} is not defined or specified as @code{00} or @code{0}:@* Each day is assumed to be a daily event for the specified year and month and the @emph{text part} will be displayed for any day. @item If @var{www} is specified as a short (2@dots{}3 characters) weekday name:@* The given weekday name is assumed to be a weekly event for the specified year and month and the @emph{text part} will be displayed for any week. @end itemize @need 5000 @cindex Validity of omission values in date part @cindex Date part, validity of omission values @cindex Omission values in date part, validity @noindent @strong{Hint:}@* Preceding table ease misleading assumption that a fixed date, which shall be valid for any days of the year, can be defined with a date part only consisting of a @code{0}@. But that is only correct in that the so-defined fixed date is respected in some few fixed date periods only (@pxref{Coding Scheme})@. If a fixed date is defined which shall be respected for any days of the year, it must be designed with a @w{@code{0*d1#999}} date part. For example, the same is likewise valid for fixed dates which represent a weekly event, and that shall be valid during all the year. Instead of creating such a fixed date with a @w{@code{000000@var{www}}} date part (that is likewise respected in some few fixed date periods only), it should be defined with a date part like @w{@code{0*d1@var{www}#99@var{www}.7}}@. @xref{Ranges of days}, and @ref{Appearance factor of days}, for further information. @page @node Further date part attributes, Text part of a line, Date part of a line, Resource file @subsection Further date part attributes @cindex Further date part attributes @cindex Date part, further attributes @menu * Lists of days:: How Lists of days can be used. * Ranges of days:: How Ranges of days can be used. * Repetition factor of days:: How to use such a factor. * Appearance factor of days:: How to use such a factor. @end menu The date part ---which is leading a fixed date text of a Gcal resource file line--- may be provided with further attributes, that are either specifications of lists of days or ranges of days, which provide the information at which date a fixed date happens. More further attributes are the repetition factor as well as the appearance factor. All of those date parts in a Gcal resource file line, which are structured as follows, may generally be provided with further attributes: @itemize @bullet @item @w{@code{@var{yyyy}@var{mm}@r{@dots{}}}} @item @w{@code{@var{yyyy}*d@r{|}w@r{@dots{}}}} @item @w{@code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}@r{@dots{}}}} @end itemize @cindex Fiscal year, limitations @cindex Limitations of use of fiscal years @cindex 3-Month mode, limitations @cindex Limitations of use of 3-Month modes @noindent @strong{Attention:}@* If the date part is supplied with further attributes and the year of the fixed date is not given in a concrete manner, i.e.@: the year @var{yyyy} is set to zero, such kinds of fixed dates are @strong{only} computed correctly in simple year bounds ---which means during a current year--- and not in fixed dates shown after the current year has changed, e.g.@: in @strong{fiscal years}@. @node Lists of days, Ranges of days, Further date part attributes , Further date part attributes @subsubsection Lists of days @cindex Lists of days @cindex Date part, lists of days @cindex @samp{,} separator character of lists of days @cindex Separator character of lists of days, @samp{,} A list of days is used to define recurrent fixed dates and to use only one line in the resource file for them, instead of using several lines in a resource file needed for defining these recurrent fixed dates separately. A list of days is specified by a @samp{,} separator character; it must contain two elements minimum and may have any number of elements. A single element of the list may not be set to a zero value and be not concrete therefore. (This would not make any sense in this context.) Assuming a fixed date shall always occur on the 1st and the 15th day in every month of the year 1996, e.g.@: @samp{Tax returns}, one solution would be on the one hand a fixed date entry in the resource file for the 1st of the month and another entry for the 15th of the month, which would be a total of two entries in the resource file for such a fixed date. On the other hand, this expense can be reduced to a total of only one entry in the resource file by using a list of days, which is likewise valid for the 1st and the 15th day in every month, that is @example 19960001,15 Tax returns @end example @cindex Valid date parts of lists of days @cindex Lists of days, valid date parts @noindent The use of lists of days in the date part is permitted as follows: @itemize @bullet @item @w{@code{@var{yyyy}@var{mm}@var{dd}@r{|}@var{www}@r{|}@var{www}@var{n},@r{[}@var{mm}@r{]}@var{dd}@r{|}@r{[}@var{mm}@r{]}@var{www}@r{|[}@var{mm}@r{]}@var{www}@var{n} @r{@dots{}}}} @item @w{@code{@var{yyyy}*d@r{|}w@var{n}@r{|}@var{n}@var{www},@var{n}@r{|}@var{n}@var{www} @r{@dots{}}}} @item @w{@code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar},@r{|[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]},@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{] @dots{}}}} @end itemize @need 1000 @cindex Examples to lists of days @cindex Lists of days, examples @noindent Some examples to this: @table @code @item 000001fr3,12,99,mon,apr14,993,julfri3,08fr In every year in January: on the 3rd Friday, on the 12th, on the last day of the month and on every Monday. And in every year: on the 14th April, on the 3rd December, on the 3rd Friday in July and on every Friday in August. @item 199600mon,fr,12 In the year 1996 in every month: on every Monday, on every Friday and on the 12th. @item 0*d1,1fr,999,17mo In every year: on the first day of the year, on the 1st Friday of the year, on the last day of the year and on the 17th Monday of the year. @item 1996*w1fr,1,17mo,99fr In the year 1996: on Friday of the 1st week, on Monday of the first week, on Monday of the 17th week and on Friday of the last week. @item 0@@a,+1,-3,5,+4fr,2fr,-10sa In every year: on the date of the date variable @var{a}, one day after the date of @var{a}, three days before the date of @var{a}, five days after the date of @var{a}, four Fridays after the date of @var{a}, two Fridays after the date of @var{a} and ten Saturdays before the date of @var{a}@. @item 1996@@e+1,-3,5,+4fr,2fr,-10sa In the year 1996: one day after the Easter Sunday's date, three days before the Easter Sunday's date, five days after the Easter Sunday's date, four Fridays after the Easter Sunday's date, two Fridays after the Easter Sunday's date and ten Saturdays before the Easter Sunday's date. @item 1996@@t+1,-3,5,+4fr,2fr,-10sa In the year 1996: one day after today's date, three days before today's date, five days after today's date, four Fridays after the today's date, two Fridays after today's date and ten Saturdays before today's date. @end table @node Ranges of days, Repetition factor of days, Lists of days, Further date part attributes @subsubsection Ranges of days @cindex Ranges of days @cindex Date part, ranges of days @cindex @samp{#} separator character of ranges of days @cindex Separator character of ranges of days, @samp{#} A range of days just as a list of days is used to define recurrent fixed dates and to use only one line in the resource file for them, instead of using several lines in a resource file needed for defining these recurrent fixed dates separately. A range of days is specified by a @samp{#} separator character and must consist of two elements, namely the starting day and the final day. The starting day and likewise the final day of the range may not be set to a zero value and be not concrete therefore. (This would not make any sense in this context.) Assuming a fixed date shall always occur during the 1st and the 15th day (inclusive) in every month of the year 1996, e.g.@: @samp{Inside work}, one solution would be on the one hand a fixed date entry in the resource file for the 1st of the month, another one for the 2nd of the month until the 15th of the month, which would be a total of 15 entries in the resource file for such a fixed date@footnote{Apart from the possibility, that a list of days can be used in such a case.}@. On the other hand, this expense can be reduced to a total of only one entry in the resource file by using a range of days, which is likewise valid for the 1st until the 15th day in every month, that is @example 19960001#15 Inside work @end example @page @cindex Valid date parts of ranges of days @cindex Ranges of days, valid date parts @noindent The use of ranges of days in the date part is permitted as follows: @itemize @bullet @item @w{@code{@var{yyyy}@var{mm}@var{www}#@var{www}}} @item @w{@code{@var{yyyy}@var{mm}@var{dd}@r{|}@var{www}@var{n}#@r{[}@var{mm}@r{]}@var{dd}@r{|[}@var{mm}@r{]}@var{www}@var{n}}} @item @w{@code{@var{yyyy}*d@r{|}w@var{n}@r{[}@var{www}@r{]}#@var{n}@r{[}@var{www}@r{]}}} @item @w{@code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}#@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}}} @end itemize Preceding table shows that the starting and ending day can only be specified by using date formats of the same type left and right the @samp{#} separator character. Thus, it is not explicitly possible to define a range of days by using different types of date formats, means, fixed date entries like: @example 1996@@e+3fr#1012 In the year 1996: every day that appears within the\ period of the date 3 Fridays after Easter Sunday's\ date until the 12th October. @end example @noindent cannot be defined like this. But this problem can be solved by using an inclusive date period @code{%i@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}} special text for defining the ending day of the range@footnote{Implicit solution.}, and the fixed dates are simply produced until the last day of the year, e.g.@:: @example 1996@@e+3fr#+999 In the year 1996: every day that appears within the\ period of the date 3 Fridays after Easter Sunday's\ date until the 12th October.%i0#19961012 @end example @xref{Inclusive date period, , Inclusive date period @code{%i@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}} special text}, for more details. @cindex Examples to ranges of days @cindex Ranges of days, examples @noindent Some examples to this: @table @code @item 199600mon#fr In the year 1996 in every month: every day that appears within the day sequence @samp{mon, tue, wed, thu, fri}@. @item 000000fr#mon In every year in every month: every day that appears within the day sequence @samp{fri, sat, sun, mon}@. @item 000001fr3#12 In every year in January: every day that appears within the period of the 3rd Friday of the month until the 12th of the month. @item 00000112#fr3 In every year in January: every day that appears within the period of the 12th of the month until the 3rd Friday of the month. @item 00000112#augfri3 In every year: every day that appears within the period of the 12th January until the 3rd Friday of August. @item 0000sep13#99fr9 In every year: every day that appears within the period of the 13th September until the last Friday of December. @item 0*d1#1fr In every year: every day that appears within the period of the 1st day of the year until the 1rd Friday of the year. @item 0*d99fr#333 In every year: every day that appears within the period of the last Friday of the year until the 333rd day of the year. @item 1996*w1fr#17mo In the year 1996: every day that appears within the period of the Friday of the 1st week until the Monday of the 17th week. @item 0@@a#+4fr In every year: every day that appears within the period of the date of the date variable @var{a} until the 4th Friday after the date of the date variable @var{a}@. @item 1996@@e-3#+9fr In the year 1996: every day that appears within the period of the date three days before the Easter Sunday's date until the 9th Friday after the date of the Easter Sunday's date. @item 1996@@t-3#+99fr In the year 1996: every day that appears within the period of the date three days before today's date until the last Friday of the year. @end table @node Repetition factor of days, Appearance factor of days, Ranges of days, Further date part attributes @subsubsection Repetition factor of days @cindex Repetition factor of days, @samp{:@var{n}} @cindex @samp{:@var{n}} repetition factor of days @cindex Date part, repetition factor of days A repetition factor of days is used to define recurrent fixed dates and to use only one line in the resource file for them, instead of using several lines in a resource file needed for defining these recurrent fixed dates separately. A repetition factor of days (@samp{:@var{n}}) is specified by a @samp{:} character and must trail the day field ---which must have a concrete value in a date part of a Gcal resource file and has not been set to a zero value--- respectively either lead or trail an appearance factor of days. Except ranges of days or fixed dates which occur only on a definite weekday like @samp{199600mon Every Monday 1996}, such a repetition factor may be specified in all possible codings of date parts of a Gcal resource file. This factor may have values in range @w{@code{1@r{@dots{}}999}@.} Values greater than the real difference between the date of the first occurrence of the fixed date and the last day of the year are always reduced to this real difference. In this sense, any value greater @code{365}@footnote{Or @code{366} in leap years.} means a repetition factor until the last day of the year. Assuming a fixed date shall always occur on the 15th day in every month of the year 1996 and covers a period of four days (inclusive the 15th itself), e.g.@: @samp{Co-workers training}, one solution would be on the one hand a fixed date entry in the resource file for the 15th of the month and the succeeding three days, which would be a total of four entries in the resource file for such a fixed date@footnote{Apart from the possibility, that a list or a range of days can be used in such a case.}@. @need 2000 On the other hand, this expense can be reduced to a total of only one entry in the resource file by using a repetition factor of days, which is likewise valid for the 15th and the three days which succeed the 15th in every month, namely @example 19960015:4 Co-workers training @end example @cindex Valid date parts of repetition factors of days @cindex Repetition factors of days, valid date parts @noindent The use of repetition factors of days in the date part is permitted as follows: @itemize @bullet @item @w{@code{@var{yyyy}@var{mm}@var{dd}:@var{n}@r{|}@var{www}@var{n}:@var{n}}} @item @w{@code{@var{yyyy}*d@r{|}w@var{n}:@var{n}@r{|}@var{n}@var{www}:@var{n}}} @item @w{@code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}:@var{n}}} @item @w{@code{@var{yyyy}@var{mm}@var{dd}:@var{n}@r{|}@var{www}@var{n}:@var{n},@r{[}@var{mm}@r{]}@var{dd}:@var{n}@r{|[}@var{mm}@r{]}@var{www}@var{n}:@var{n} @r{@dots{}}}} @item @w{@code{@var{yyyy}*d@r{|}w@var{n}:@var{n}@r{|}@var{n}@var{www}:@var{n},@var{n}:@var{n}@r{|}@var{n}@var{www}:@var{n} @r{@dots{}}}} @item @w{@code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}:@var{n},@r{|[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}:@var{n},@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}:@var{n} @r{@dots{}}}} @end itemize @cindex Examples to repetition factors of days @cindex Repetition factors of days, examples @noindent Some examples to this: @table @code @item 000001fr3:11 In every year in January: every day that appears within the period of the 3rd Friday of the month and the succeeding ten days. @item 00000112:3 In every year in January: every day that appears within the period of the 12th of the month and the succeeding two days. @item 00000112:3,fr3:5 In every year in January: every day that appears within the period of the 12th of the month and the succeeding two days, and that appears within the period of the 3rd Friday of the month and the succeeding four days. @item 0*d1:1 In every year: every day that appears within the period of the 1st day of the year and no succeeding day. @item 0*d1:2 In every year: every day that appears within the period of the 1st day of the year and the succeeding day. @item 0*d99fr:333 In every year: every day that appears within the period of the last Friday of the year and the succeeding 332 days. Well, in cases a fixed date exceeds the year bounds, it will only be produced until the last day of the year. @item 1996*w1fr:17 In the year 1996: every day that appears within the period of the Friday of the 1st week and the succeeding 16 days. @item 0@@a:4 In every year: every day that appears within the period of the date of the date variable @var{a} and the succeeding three days. @item 1996@@e-3:9 In the year 1996: every day that appears within the period of the date three days before the Easter Sunday's date and the succeeding eight days. @item 1996@@t-3:9 In the year 1996: every day that appears within the period of the date three days before today's date and the succeeding eight days. @end table @node Appearance factor of days, , Repetition factor of days, Further date part attributes @subsubsection Appearance factor of days @cindex Appearance factor of days, @samp{.@var{n}} @cindex @samp{.@var{n}} appearance factor of days @cindex Date part, appearance factor of days An appearance factor of days is used to define a concrete displacement of recurrent fixed dates. An appearance factor of days (@samp{.@var{n}}) is specified by a @samp{.} character and must trail the day field ---which must have a concrete value in a date part of a Gcal resource file and has not been set to a zero value--- respectively either lead or trail a repetition factor of days. Except fixed dates which occur only on a definite weekday and are not specified by using a range of days, like @samp{199600mon Every Monday 1996}, such an appearance factor may be specified in all possible codings of date parts of a Gcal resource file. This factor may be specified with each single element of lists of days, but in a range of days, this factor may trail @strong{only} the final day of the range. Well, the use of such an appearance factor is only helpful if it is either given in a range of days, or if it is given together with a repetition factor. This factor may have values in range @w{@code{1@r{@dots{}}999}@.} Fixed dates will be ignored if the factor takes values greater than the real difference between the date of the occurrence of the fixed date and the last day of the year, respectively the end of the period, for which the fixed dates shall either be produced or respected. Assuming a fixed date shall always occur on the 15th day in every month of the year 1996 and covers a period of seven days (inclusive the 15th itself), but shall only be respected every third day (i.e.@: two days have to be skipped at a time) within this period, e.g.@: @samp{Training-college}, one solution would be on the one hand a fixed date entry in the resource file for the 15th of the month, for the 18th and for the 21st of the month, which would be a total of three entries in the resource file for such a fixed date@footnote{Apart from the possibility, that a list of days can be used in such a case.}@. On the other hand, this expense can be reduced to a total of only one entry in the resource file by using an appearance factor of days, which is likewise valid for the 15th, the 18th and the 21st in every month, namely on the one hand by the use of a repetition factor @example 19960015:7.3 Training-college @end example @noindent or on the other hand by the use of a range of days @example 19960015#21.3 Training-college @end example @cindex Valid date parts of appearance factors of days @cindex Appearance factors of days, valid date parts @noindent The use of appearance factors of days in the date part is permitted as follows: @itemize @bullet @item @w{@code{@var{yyyy}@var{mm}@var{dd}:@var{n}.@var{n}@r{|}@var{dd}.@var{n}:@var{n}}} @item @w{@code{@var{yyyy}@var{mm}@var{www}@var{n}:@var{n}.@var{n}@r{|}@var{www}@var{n}.@var{n}:@var{n}}} @item @w{@code{@var{yyyy}*d@r{|}w@var{n}:@var{n}.@var{n}@r{|}@var{n}.@var{n}:@var{n}}} @item @w{@code{@var{yyyy}*d@r{|}w@var{n}@var{www}:@var{n}.@var{n}@r{|}@var{n}@var{www}.@var{n}:@var{n}}} @item @w{@code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}:@var{n}.@var{n}}} @item @w{@code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}.@var{n}:@var{n}}} @item @w{@code{@var{yyyy}@var{mm}@var{dd}:@var{n}.@var{n}@r{|}@var{www}@var{n}:@var{n}.@var{n},@r{[}@var{mm}@r{]}@var{dd}:@var{n}.@var{n}@r{|[}@var{mm}@r{]}@var{www}@var{n}:@var{n}.@var{n} @r{@dots{}}}} @item @w{@code{@var{yyyy}@var{mm}@var{dd}.@var{n}:@var{n}@r{|}@var{www}@var{n}.@var{n}:@var{n},@r{[}@var{mm}@r{]}@var{dd}:@var{n}.@var{n}@r{|[}@var{mm}@r{]}@var{www}@var{n}.@var{n}:@var{n} @r{@dots{}}}} @item @w{@code{@var{yyyy}*d@r{|}w@var{n}:@var{n}.@var{n}@r{|}@var{n}@var{www}:@var{n}.@var{n},@var{n}:@var{n}.@var{n}@r{|}@var{n}@var{www}:@var{n}.@var{n} @r{@dots{}}}} @item @w{@code{@var{yyyy}*d@r{|}w@var{n}.@var{n}:@var{n}@r{|}@var{n}@var{www}.@var{n}:@var{n},@var{n}.@var{n}:@var{n}@r{|}@var{n}@var{www}.@var{n}:@var{n} @r{@dots{}}}} @item @w{@code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}:@var{n}.@var{n},@r{|[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}:@var{n}.@var{n},@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}:@var{n}.@var{n} @r{@dots{}}}} @item @w{@code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}.@var{n}:@var{n},@r{|[}+@r{|}.@r{]}@var{n}@r{[}@var{www}@r{]}.@var{n}:@var{n},@r{[}+@r{|}.@r{]}@var{n}@r{[}@var{www}@r{]}.@var{n}:@var{n} @r{@dots{}}}} @item @w{@code{@var{yyyy}@var{mm}@var{www}#@var{www}.@var{n}}} @item @w{@code{@var{yyyy}@var{mm}@var{dd}@r{|}@var{www}@var{n}#@r{[}@var{mm}@r{]}@var{dd}@r{|[}@var{mm}@r{]}@var{www}@var{n}.@var{n}}} @item @w{@code{@var{yyyy}*d@r{|}w@var{n}@r{[}@var{www}@r{]}#@var{n}@r{[}@var{www}@r{]}.@var{n}}} @item @w{@code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}#@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}.@var{n}}} @end itemize @cindex Examples to appearance factors of days @cindex Appearance factors of days, examples @noindent Some examples to this: @table @code @item 000001fr3:11.3 In every year in January: every day that appears within the period of the 3rd Friday of the month and the succeeding ten days, but only every 3rd day within this period (skip two days at a time)@. @item 00000112:3.2 In every year in January: every day that appears within the period of the 12th of the month and the succeeding two days, but only every 2nd day within this period (skip one day at a time)@. @item 00000112:3.2,fr3:5.3 In every year in January: every day that appears within the period of the 12th of the month and the succeeding two days, but only every 2nd day within this period (skip one day at a time), and that appears within the period of the 3rd Friday of the month and the succeeding four days, but only every 3rd day within this period (skip two days at a time)@. @item 0*d1:10.1 In every year: every day that appears within the period of the 1st day of the year and the succeeding nine days, and this for any day within this period (skip zero days at a time)@. @item 0*d1:2.5 In every year: every day that appears within the period of the 1st day of the year and the succeeding day, but only every 5th day within this period (skip four days at a time)@. Well, the succeeding days (only one in this example) of the starting day (1st day of year) are not respected, because the next day resulted by the appearance factor exceeds the final day (resulted by the repetition factor) of the period. @item 0*d99fr:333.61 In every year: every day that appears within the period of the last Friday of the year and the succeeding 332 days, but only every 61st day within this period (skip 60 days at a time)@. Well, in cases a fixed date exceeds the year bounds, it will only be produced until the last day of the year. No succeeding day (332 in this example) of the starting day (last Friday of the year) is respected by reason of the displacement value of 60 days, because the next day resulted by the appearance factor exceeds the final day (resulted by the repetition factor) of the period (the last day of the year)@. @item 1996*w1fr:17.8 In the year 1996: every day that appears within the period of the Friday of the 1st week and the succeeding 16 days, but only every 8th day within this period (skip seven days at a time)@. @item 0@@a:4.3 In every year: every day that appears within the period of the date of the date variable @var{a} and the succeeding three days, but only every 3rd day within this period (skip two days at a time)@. @item 1996@@e-3:9.4 In the year 1996: every day that appears within the period of the date three days before the Easter Sunday's date and the succeeding eight days, but only every 4th day within this period (skip three days at a time)@. @item 1996@@e3#-20sun.15 In the year 1996: every day that appears within the period of the date three days after the Easter Sunday's date until the 20th Sunday before the Easter Sunday's date, but only every 15th day within this period (skip 14 days at a time)@. @item 1996@@t3#-20sun.15 In the year 1996: every day that appears within the period of the date three days after today's date until the 20th Sunday before today's date, but only every 15th day within this period (skip 14 days at a time)@. @end table @page @node Text part of a line, Special Texts processed, Further date part attributes, Resource file @subsection Text part of a line @cindex Text part of a resource file line @cindex Text part of a line @cindex Text part of a line, limitations @cindex Limitations in the text part of a line @cindex Handling of non-printable characters in the text part @cindex Non-printable characters in the text part, handling @cindex Handling of special character sequences in the text part @cindex Special character sequences in the text part, handling @cindex Resource file, text part @cindex Resource file, limitations @cindex Limitations in a resource file @cindex Line break-up character, @samp{~} @cindex @samp{~} line break-up character @cindex Line break-up character, @samp{^} @cindex @samp{^} line break-up character The @dfn{text part} of a line in a resource file can be any text you like. Indeed, some characters have a special meaning (@samp{%}, @samp{$}, @samp{~}, @samp{^} and @samp{\}) and must be protected should the occasion arise that special character combinations are formed with them@footnote{Like @samp{%i}, @samp{$a}@dots{}} which might be used only textually. If the text part contains characters that are used for highlighting the text or format it for a printer, or characters with decimal values above 127 in the code table of the used character set@footnote{These are potentially non-printable.} not produced by Gcal itself, such characters respectively sequences are displayed by Gcal in an @strong{uninterpreted} manner! For that very reason, it can happen that the output of such characters can potentially create problems with the used screen device driver software and/or the external pager program, likewise mailing of such texts by means of electronic mail. @cindex Resource file, remarking of text part @cindex Handling of @code{NUL} characters in the text part @cindex @code{NUL} characters in the text part, handling So-called @code{NUL} characters@footnote{That is the character with the value zero in the code table of the used character set.} may also occur in the text part, but they only cause the suppression of all succeeding characters in the line. In my opinion, it makes no perceptible sense to output these @code{NUL} characters uninterpreted, so they are used for remarking purposes only; besides, the @code{NUL} characters would lead to the same problems as already mentioned above. @cindex Line continuation character, @samp{\} @cindex @samp{\} line continuation character @cindex Resource file, line continuation @cindex Continue line in resource file A line of the resource file is continued on the next line if a @w{@samp{\@r{-}\n}} @w{(backslash-newline)} character sequence is found, e.g.@:: @need 3000 @noindent The line: @example 000000Mo Every Monday @end example @noindent and the lines: @example @group 000000Mo \ Every \ Monday @end group @end example @noindent produce the same output and are essentially equivalent. @cindex Resource file, force line break-up @cindex Force line break-up in resource file @cindex Resource file line, long text part @cindex Long text part in resource file line Furthermore, you can break-up the text of a @dfn{long text part} at any place you like. The term @emph{long} means in this context, that the text displayed by Gcal would override the right text margin of the screen respectively break-up at that margin. @cindex Line break-up character, @samp{~} @cindex @samp{~} line break-up character Each time a @samp{~} (tilde) character is found in the text part, this character is replaced by a real @samp{\n} (newline) character. Such texts will be displayed by Gcal in a formatted manner at a left margin, this means, they are lead by a definite number of space characters. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{~} (tilde) character ---in case this character itself is needed--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\~}@. If you need the @samp{\~} characters themselves, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\~}@. @cindex Line break-up character, @samp{^} @cindex @samp{^} line break-up character Each time a @samp{^} (caret) character is found in the text part, this character is also replaced by a real @samp{\n} (newline) character. Such texts will be displayed by Gcal at column 1, this means, they are not lead by space characters. The rules for protecting the @samp{^} character are the same as the rules used for protecting the @samp{~} character. @need 3000 @noindent The resource file @file{lbrk-1.rc} @include examples/lbrk-1.texi @need 3000 @noindent is displayed as follows: @include examples/lbrk-1a.texi @cindex Whitespace character @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character Because @emph{whitespace} characters are used to separate the date part from the text part@footnote{These are internally skipped and remain undisplayed therefore.}, it is not possible to supply the text part with leading @emph{whitespace} characters without further ado. If one or more @emph{whitespace} characters shall lead the text part, this can be arranged by protecting the @strong{first} of these @emph{whitespace} characters (and that by placing a @samp{\} (backslash) character before it), e.g.@: @samp{\ } if it is a space character. By means of such a character sequence, Gcal notices that the text trailing the @samp{\} character is no longer used for separating purposes, but is member of the text part. Gcal skips this specific, marking backslash character (avoids its output) and processes the rest of the line as usual. @page The following example should be enough to elucidate the above facts. The resource file @file{wspc-1.rc} @include examples/wspc-1.texi @need 3000 @noindent is displayed as follows: @include examples/wspc-1a.texi @page @node Special Texts processed, Comment line, Text part of a line, Resource file @subsection @code{%@var{?}}@dots{} Special Texts @cindex @code{%@var{?}}@dots{} special texts @cindex Special text starting character, @samp{%} @cindex @samp{%} special text starting character @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character @cindex Format instruction The text part of a resource file line may be provided with different special texts which may occur in any@footnote{Rational!} number and order. All these texts start with a @samp{%} (percent) character which may be protected by a leading @samp{\} (backslash) character if the @samp{%} (percent) character itself is wanted to be used in the text part, e.g.@: @samp{\%}@. The @samp{%} character is mostly trailed by an optional format instruction, (see @ref{Format Instruction}, for the detailed description of the format instruction and its components), and then trailed by a distinguishing mark ---which defines the kind of the special text to be used--- and if it is a letter, Gcal accepts it @strong{case-sensitive}@. @iftex @sp 2 @end iftex The purpose of these special texts is mainly to suppress output of fixed dates in definite cases, either, or to provide them with particular texts respectively to start external commands. @xref{Special Texts, , Description of all @code{%@var{?}}@dots{} Special Texts}, for a complete description of all usable special texts, and @ref{Special Texts Summary, , Summary of all @code{%@var{?}}@dots{} Special Texts}, for an according short-list of them. @iftex @sp 2 @end iftex @noindent For example, the resource file @file{speci-1.rc} @include examples/speci-1.texi @noindent is displayed as follows (in case today's date is the 4th October 1996): @include examples/speci-1a.texi @page @node Comment line, Include directives, Special Texts processed, Resource file @subsection Comment line @cindex Comment line in resource file @cindex Resource file, commented line @cindex Resource file line, commented @cindex Remarked line in resource file @cindex Resource file, remarked line @cindex Resource file line, remarked @cindex Remark character, @samp{;} @cindex @samp{;} remark character @cindex Comment character, @samp{;} @cindex @samp{;} comment character @cindex Whitespace character A line@footnote{Physically and logically.} beginning with a @samp{;} (semicolon) character in the resource file is treated as a remark and will not be used by Gcal! Any @emph{whitespace} characters may lead the remark character. @xref{Text part of a line}, for information how a @code{NUL} character can be used for remarking purposes in a text part. The following example of the @file{remark.rc} resource file ---which @strong{only} consists of remarks--- should be enough to elucidate the above facts: @include examples/remark.texi @page @node Include directives, Date variables, Comment line, Resource file @subsection Include directives @cindex Include directives @cindex Resource file, include directives You may add @code{#include} directives in a resource file for searching and loading further resource files@footnote{A mechanism similar the method which is used by the C Preprocessor.}@. An @code{#include} directive tells Gcal to suspend reading the current resource file and read one other resource file before continuing. The directive is a line in the resource file that looks like this template: @example #include @emph{whitespace} @var{argument} @r{[}@emph{whitespace}@r{]} @emph{newline} @end example @noindent The @var{argument} can either be @example "@var{file name}" @end example @noindent or@footnote{Thus, a file name which is embraced by @samp{""} or @samp{<>}@.} @example <@var{file name}> @end example @cindex Separator character, whitespace @cindex Whitespace separator character One @emph{whitespace} character minimum is required between @code{#include} and the @var{argument}@. The @var{argument} may be trailed by extra @emph{whitespace} characters and the line must always end with a @samp{\n} (newline) character, except it is the last line of a resource file. @noindent Let us inspect a example which is a bit more concrete: @enumerate 1 @item #include "foo/bar" @item #include @end enumerate The first @code{#include} directive tells Gcal to load the file @file{bar} in the file directory @file{foo} from the actual file directory. If this fails, Gcal tries to load this file by using steps @w{1@dots{}4} of the previously explained mechanism used for searching files (@pxref{x-File-searching-mechanism, , File searching mechanism})@. The second @code{#include} directive tells Gcal to load the file @file{bar} from the user respectively system data file directory by using steps @w{3@dots{}4} of the previously explained mechanism used for searching files. It is not allowed to include files which have a fixed access path starting from the root file directory by such an @code{#include} directive like @w{@samp{#include }} or @w{@samp{#include }}; just as the specification of a single or an extended file name containing a disk/drive specifier@footnote{Even if operating systems like @w{MS-DOS} or @w{OS/2} permits such a disk/drive specification on principle.}, because the resulting path name@footnote{A path name lead by the user respectively system data file directory name.} would not be a valid file name any longer. @cindex Error code 119 @cindex Exit code 119 Included files may include other files again. But the nesting level of included files is limited on the one hand by the amount of usable working storage of the computer, and on the other hand by the value which is given by the operating system respectively the compiler for the number of files which can be opened simultaneously. Recursive includes@footnote{The included file tries to include itself again.} or cyclic includes@footnote{The included file is included again by another file that occurs at a deeper place in such a chain.} are not permitted, because such backward references would produce an infinite loop in the program internally! Gcal recognizes such situations and terminates immediately with a fatal error. @xref{x-119-Error-code, , Error Code 119}, for more information. If an included resource file cannot be found and no @option{--debug=abort} option is given, processing of the resource file containing the @code{#include} continues. @page @node Date variables, Text variables, Include directives, Resource file @subsection Date variables @cindex Date variables @cindex Local date variables @cindex Date variables, global @cindex Date variables, local @cindex Definition of local date variables @cindex Local date variables, definition @cindex Definition of date variables @cindex Date variables, definition @cindex Management of date variables @cindex Date variables, management @cindex Assignments to date variables @cindex Date variables, assignments @cindex Resource file, limitations @cindex Limitations in a resource file @cindex Date variables, total number @cindex Total number of date variables Gcal respects @emph{global} and/or @emph{local} date variables which may be used either in the date part of a Gcal resource file line, or which may be part of a special text in the text part of a Gcal resource file line. This means, up to @strong{24} user-defined date variables can be set and referenced during program execution. @xref{x-date-variable, , Fixed date option @option{--date-variable=@var{argument}}}, for more information how global date variables can be used. A date variable name @var{dvar} consists of a single, case-insensitive letter@footnote{Except the date variable @var{e} which is internally reserved for the Easter Sunday's date, so it cannot be assigned or operated therefore. And except the date variable @var{t} which is internally reserved for today's date, so it likewise cannot be assigned or operated.}@. In a definition, this name is trailed by the assignment operator character @samp{=}, and the numerical values of month @var{mm} (or a short, three characters month name, e.g.@: @samp{Jan}, @samp{Feb}@dots{}) and day @var{dd}, this variable has to store@footnote{Or the name of another date variable, which is already defined.}, e.g.@:: @example @group a=1127 c=a @end group @end example @noindent stores the 27th November into the local date variable @var{a} and into the local date variable @var{c}@. You should always remember that date variables can only be referenced in a line if they are already defined, because Gcal processes a resource file line by line. @iftex @sp 2 @end iftex Only local date variables can store dynamical dates given in the @w{@code{@var{mm}@var{www}@var{n}}}, @w{@code{@var{dvar}@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}}} or @w{@code{*d@r{|}w@var{n}@r{[}@var{www}@r{]}}} format, e.g.@:: @example @group a=03su2 b=JunMon9 c=b-3 d=c+4Sa x=*d10 y=*d10fri z=*w3Su @end group @end example @noindent which means, date variable @var{a} stores the date of second Sunday in March and @var{b} stores date of last Monday in June. The date variable @var{c} stores the date which is three days before the date of the last Monday in June and this date is set in the date variable @var{d} to that date which is four Saturdays after the date of @var{c}@. The date variable @var{x} stores the date of the 10th absolute day of the year (@equiv{} 10th January)@. @var{y} stores the date of the 10th Friday of the year, and the assignment to @var{z} is the date of the Sunday which occurs in the 3rd week of the year. @cindex Fiscal year, limitations @cindex Limitations of use of fiscal years @cindex 3-Month mode, limitations @cindex Limitations of use of 3-Month modes @noindent @strong{Caution:}@* These kinds of assignments to date variables are @strong{only} computed correctly in simple year bounds ---which means during a current year--- and not in fixed dates shown after the current year has changed, e.g.@: in @strong{fiscal years}@. @need 1000 @cindex Visibility of date variables @cindex Date variables, visibility @cindex Name space of date variables @cindex Date variables, name space @cindex Error code 113 @cindex Exit code 113 Date variables which are defined in a resource file are always local and only respected in this specific file, and that file which is included by it. This means for the included file, that @strong{all} local variables of the caller are visible. The included file itself may define its own local variables in its own name-space, which are not exported to caller on return. All other definitions of date variables@footnote{In the command line, environment variable @env{GCAL} or response file.} are always global. If a resource file line contains a reference to a date variable which is not locally defined in that file, Gcal will try to use the global values held by this variable. If this fails because no global definition of this date variable is given, Gcal will not process this line. If the simple @option{--debug} respectively @w{@option{--debug=internal}} option is given, informational messages for each undefined date variable will be shown on the @emph{standard error channel} (@pxref{x-debug-internal, , Global option @option{--debug=internal}})@. If the @w{@option{--debug=abort}} option is given, the Gcal program will be aborted with an error code when the first undefined global date variable reference occurs. @xref{x-113-Error-code, , Error Code 113}, and @ref{x-debug-abort, , Global option @option{--debug=abort}}, for further information. @cindex Deletion of local date variables @cindex Local date variables, deletion A local date variable can be deleted. This means, that this date variable is no longer valid in its local scope and be undefined therefore. So it is possible to use its potentially defined global value in succeeding lines if this date variable is referenced there. The following example of the resource file @file{dvar-1.rc} elucidates these facts: @include examples/dvar-1.texi @noindent So Gcal creates the following output: @include examples/dvar-1a.texi @need 4000 @arindex --export-date-variables @cindex Date variables, export of local @cindex Export of local date variables @cindex Visibility of local date variables @cindex Date variables, visibility of local Only advanced users should apply the @option{--export-date-variables} option which causes that the actual incarnation of a local date variable ---which was previously defined in a resource file and not in an included file--- is being exported to further resource files instead of using its global value, in case that date variable is not locally defined in that further resource file. @xref{Include directives}, for more details. But be aware, the use of this option could create unwanted results, because the order of processing the resource files is an important entity in managing the @option{--export-date-variables} option, so it is not recommended to use it. You, the user, must exactly know what you are doing when applying this option; @strong{you are expressively warned now!} @iftex @sp 2 @end iftex @tbindex Operations on date variables @tbindex Date variables, operations @cindex Operations on date variables @cindex Date variables, operations @noindent Some basic operations can be performed on date variables. These are: @iftex @sp 1 @end iftex @multitable @columnfractions .2 .8 @item @strong{Operation} @tab @strong{Description} @item @ @item @code{@var{dvar}++} @cindex Date variables, simple increment @cindex Simple increment of date variables @tab Simple increment by one day. @item @code{@var{dvar}--} @cindex Date variables, simple decrement @cindex Simple decrement of date variables @tab Simple decrement by one day. @item @code{@var{dvar}+=@r{[}+@r{|}-@r{]}@var{n}} @cindex Date variables, addition by days @cindex Addition by days of date variables @tab Addition of a constant numerical day factor @w{@r{[}+@r{|}-@r{]}@var{n}}@. @item @code{@var{dvar}-=@r{[}+@r{|}-@r{]}@var{n}} @cindex Date variables, subtraction by days @cindex Subtraction by days of date variables @tab Subtraction of a constant numerical day factor @w{@r{[}+@r{|}-@r{]}@var{n}}@. @item @code{@var{dvar}+=@var{n}@var{www}} @cindex Date variables, addition by weekdays @cindex Addition by weekdays of date variables @tab Addition of @var{n} weekdays @var{www}@. @item @code{@var{dvar}-=@var{n}@var{www}} @cindex Date variables, subtraction by weekdays @cindex Subtraction by weekdays of date variables @tab Subtraction of @var{n} weekdays @var{www}@. @end multitable @iftex @sp 2 @end iftex @cindex Scope of date variables @cindex Date variables, scope The scope of the operations which are done on a local date variable, is that resource or include file, where the local date variable is defined. If operations on a global date variable are performed in a resource file or that file which is included by it, these operations are only valid in that specific file@footnote{They are only done locally.}, not in further resource files processed. This means, the initial values of global date variables are always restored if the resource file changes. Please finally note, that each date variable assignment/operation must be given separately on a single line in the resource file. @page @node Text variables, , Date variables, Resource file @subsection Text variables @cindex Text variables @cindex Local text variables @cindex Text variables, global @cindex Text variables, local @cindex Definition of local text variables @cindex Local text variables, definition @cindex Definition of text variables @cindex Text variables, definition @cindex Management of text variables @cindex Text variables, management @cindex Assignments to text variables @cindex Text variables, assignments @cindex Text variables, total number @cindex Total number of text variables Gcal respects @emph{global} and/or @emph{local} text variables which may be used anywhere in a line of a Gcal resource file. This means, up to @strong{26} user-defined text variables can be set and referenced during program execution. @xref{x-text-variable, , Fixed date option @option{--text-variable=@var{argument}}}, for more information how global text variables can be used. @noindent A text variable name @var{tvar} consists of the @samp{$} prefix and a single, case-insensitive letter. @noindent A text variable is defined as follows: @itemize @bullet @item If the name of a text variable is trailed by the assignment operator character @samp{=}, all the text which appears at the right side of this assignment operator is assigned to this text variable. @item If the name of a text variable is trailed by the assignment operator character @samp{?}, all the text which appears at the right side of this assignment operator is assumed as an external command and executed by Gcal. The output which is created on the @emph{standard output channel} by the command run is assigned to this text variable; and that in an interpreted manner. This means, Gcal interprets all special texts and references to other text variables that are contained in this output. @xref{Special Texts processed}, for further information. @item If the name of a text variable is trailed by the assignment operator character @samp{:}, all the text which appears at the right side of this assignment operator is assumed as an external command and executed by Gcal. The output which is created on the @emph{standard output channel} by the command run is assigned to this text variable; and that in an uninterpreted manner. This means, Gcal does not interpret any special texts and references to other text variables that are contained in this output. See also @ref{Special Texts processed}, for further details. @end itemize @cindex Execute command @cindex Command execution Indeed, Gcal executes external commands only if the @option{--execute-command} option is given at program start-up. @xref{x-execute-command, , Fixed date option @option{--execute-command}}, for more details. The text which appears at the right side of one of the valid assignment operator characters may reference names of already defined text variables. These references are converted to the according textual values just before the assignment is performed by Gcal. You should always remember that text variables can only be referenced in a line if they are already defined, because Gcal processes a resource file line by line. Gcal always expands text variable references recursively until all sub-references to other text variables are resolved. @cindex Empty local text variables @cindex Local text variables, empty Local text variables are set to an @emph{empty value} and thus defined in a special mode in case no text appears at the right side of one of the valid assignment operator characters. @cindex Format instruction If a text variable is referenced, an optional format instruction may be specified between the @samp{$} prefix and the single letter (here: the variable name), which makes it possible to modify the representation of the text (here: the contents) at which the text variable points to. Let us assume a resource file by the name of @file{tvarf-1.rc} exists with the following contents: @include examples/tvarf-1.texi @noindent So Gcal creates the following output: @include examples/tvarf-1a.texi @xref{Format Instruction}, for the detailed description of the format instruction and its components. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{$} prefix character ---in case this character itself is needed in the text--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\$}@. If you need the @samp{\$} characters themselves in the text, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\$}@. @cindex Shell @cindex Command line interpreter External commands are not directly executed by Gcal, they are executed by means of the command line interpreter of the operating system, the shell. As consequence to this, of course the commands have to be specified according to the syntax conventions of the used shell, concerning the grouping conventions, list processing conventions, redirection conventions et cetera! For example, it is possible that you have to write @w{@samp{$a?(cat text)}} instead of the simple @w{@samp{$a?cat text}}@. See the pertinent literature for more details. If the output of external commands, which appears on the @emph{standard output channel}, is assigned to text variables in an interpreted manner, this output is internally directed by Gcal into a temporary file. Thereafter, the contents of the temporary file is transfered to the text variable and the temporary file is removed. @cindex Environment variable, @env{TXT2GCALPROG} @cindex @env{TXT2GCALPROG} environment variable @vindex TXT2GCALPROG If the output of external commands, which appears on the @emph{standard output channel}, is assigned to text variables in an uninterpreted manner, this output is internally processed by the Txt2gcal program first (@pxref{Invoking txt2gcal, , Invoking @command{txt2gcal}}), and then this output is directed by Gcal into a temporary file. Thereafter, the contents of the temporary file is transfered to the text variable and the temporary file is removed. In case a @env{TXT2GCALPROG} environment variable (@pxref{x-TXT2GCALPROG, , Environment Variable @env{TXT2GCALPROG}}) is defined and set with the file name of the executable Txt2gcal program, Gcal will use this file name for calling Txt2gcal. Otherwise, the file name @code{txt2gcal} ---which is burned-in during the compilation step of the Gcal program--- is used for calling the Txt2gcal program. The @env{TXT2GCALPROG} environment variable must always be set if the Txt2gcal program is installed under another name than the standard name @command{txt2gcal}, otherwise Gcal is unable to execute the Txt2gcal program automatically! If the simple @option{--debug} respectively @w{@option{--debug=internal}} option is given at program start-up, informational messages about the executed command and its @emph{exit code} will be shown on the @emph{standard error channel} (@pxref{x-debug-internal, , Global option @option{--debug=internal}})@. @cindex Error code 2 @cindex Exit code 2 If the @w{@option{--debug=abort}} option is given, the Gcal program will be aborted with an error code in case an @emph{exit code} not equal zero occurred during the execution of the command. @xref{x-2-Error-code, , Error Code 2}, and @ref{x-debug-abort, , Global option @option{--debug=abort}}, for further information. Here is an example which explains how the output of external commands can be assigned to text variables. Supposing there is a resource file by the name of @file{tvarc-1.rc} with the following contents: @include examples/tvarc-1.texi @noindent This file is used in the resource file @file{tvarc-1a.rc} and processed by Gcal as follows: @include examples/tvarc-1a.texi @need 1000 Here are some more examples showing how Gcal processes text variables. Let us assume a resource file by the name of @file{tvar-1.rc} exists with the following contents: @include examples/tvar-1.texi @noindent So Gcal creates the following output: @include examples/tvar-1a.texi @need 1000 @noindent Or a resource file by the name of @file{tvar-2.rc} exists with the following contents: @include examples/tvar-2.texi @noindent So Gcal creates the following output: @include examples/tvar-2a.texi As seen before, it is allowed to store complete (or partial) date parts (@pxref{Date part of a line}), likewise special texts (@pxref{Special Texts processed, , @code{%@var{?}}@dots{} Special Texts}) into text variables or references to other text variables, which are processed by Gcal after their expansion. @xref{Special Texts, , Description of all @code{%@var{?}}@dots{} Special Texts}, for limitations concerning the assignment of special texts to text variables. @cindex Visibility of text variables @cindex Text variables, visibility @cindex Name space of text variables @cindex Text variables, name space @cindex Empty local text variables @cindex Local text variables, empty Text variables which are defined in a resource file are always local and only respected in this specific file, and that file which is included by it. This means for the included file, that @strong{all} local variables of the caller are visible. The included file itself may define its own local variables in its own name-space, which are not exported to caller on return. All other definitions of text variables@footnote{In the command line, environment variable @env{GCAL} or response file.} are always global. If a resource file line contains a reference to a text variable which is not locally defined in that file, Gcal will try to use the global values held by this variable. If this fails because no global definition of this text variable is given, Gcal keeps the name of this text variable untouched in this line, except this text variable held an @emph{empty value}@. In such a case, Gcal completely ignores this text variable while processing and displaying instead of keeping its name untouched in this line. An example to this. Supposing a resource file by the name of @file{tvar-3.rc} exists with the following contents: @include examples/tvar-3.texi @noindent So Gcal creates the following output: @include examples/tvar-3a.texi @arindex --export-text-variables @cindex Text variables, export of local @cindex Export of local text variables @cindex Visibility of local text variables @cindex Text variables, visibility of local Only advanced users should apply the @option{--export-text-variables} option which causes that the actual incarnation of a local text variable ---which was previously defined in a resource file and not in an included file--- is being exported to further resource files instead of using its global value, in case that text variable is not locally defined in that further resource file. @xref{Include directives}, for more details. But be aware, the use of this option could create unwanted results, because the order of processing the resource files is an important entity in managing the @option{--export-text-variables} option, so it is not recommended to use it. You, the user, must exactly know what you are doing when applying this option; @strong{you are expressively warned now!} @iftex @sp 1 @end iftex @tbindex Operations on text variables @tbindex Text variables, operations @cindex Operations on text variables @cindex Text variables, operations @cindex Text variables, numerical @cindex Numerical text variables @noindent Some basic operations can be performed on text variables in case they contain integer values. These are: @iftex @sp 1 @end iftex @multitable @columnfractions .2 .8 @item @strong{Operation} @tab @strong{Description} @item @ @item @code{@var{tvar}++} @cindex Text variables, simple increment @cindex Simple increment of text variables @tab Simple increment by one. @item @code{@var{tvar}--} @cindex Text variables, simple decrement @cindex Simple decrement of text variables @tab Simple decrement by one. @item @code{@var{tvar}+=@r{[}+@r{|}-@r{]}@var{n}} @cindex Text variables, addition @cindex Addition of text variables @tab Addition of a constant numerical factor @w{@r{[}+@r{|}-@r{]}@var{n}}@. @item @code{@var{tvar}-=@r{[}+@r{|}-@r{]}@var{n}} @cindex Text variables, subtraction @cindex Subtraction of text variables @tab Subtraction of a constant numerical factor @w{@r{[}+@r{|}-@r{]}@var{n}}@. @end multitable @iftex @sp 1 @end iftex Here is an example showing how Gcal processes text variable operations. Let us assume a resource file by the name of @file{tvaro-1.rc} exists with the following contents: @include examples/tvaro-1.texi @need 500 @noindent So Gcal creates the following output: @include examples/tvaro-1a.texi @cindex Length preserving behavior of numerical text variables @cindex Numerical text variables, length preserving behavior @noindent As you can see in the former example, if operations are made like these, the default behavior of Gcal is to fill with leading zeroes to preserve a former length of a text variable, in case a carry into one of the next decimal places has happened and is taken back by an operation at a later place in the resource file. But this default behavior can be disabled respectively changed by using the already above mentioned format instruction. @cindex Scope of text variables @cindex Text variables, scope The scope of the definitions which are done on a local text variable, is that resource or include file, where the local text variable is defined. If a global text variable is redefined in a resource file or that file which is included by it, these redefinitions are only valid in that specific file@footnote{They are only done locally.}, not in further resource files processed. This means, the initial values of global text variables are always restored if the resource file changes. Please finally note, that each text variable assignment/operation must be given separately on a single line in the resource file. @page @node Resource file examples, , Resource file, Fixed Dates @section Resource file examples @cindex Resource file examples @cindex Examples of resource files Here are some examples of problem oriented resource files which might be useful to get a deeper impression about the attributes of Gcal's fixed date feature. @iftex @sp 2 @end iftex Let us begin with a common example, the resource file @file{common.rc}: @iftex @sp 1 @end iftex @include examples/common.texi @page And here is a resource file by the name of @file{demo-1.rc}, used to detect all Fridays the 13th of a year: @include examples/demo-1.texi @page @noindent The result for the years 1996@dots{}2002 is as follows: @include examples/demo-1a.texi Or a bit shorter version of the resource file @file{demo-1.rc} by the name of @file{demo-2.rc}, likewise used to detect all Fridays the 13th of a year, and that by using the fact, that a Friday the 13th only occurs if the first day of a month is a Sunday: @include examples/demo-2.texi @page @noindent The result for the years 1996@dots{}2002 is as follows: @include examples/demo-2a.texi @noindent Of course, preceding textual expense for the purpose of detecting all Fridays the 13th of a year can be dramatically reduced by simply using of @example 0*d1fri#99fri.7 Friday the 13th%i00000013#00000013 @end example @noindent in the resource file @file{demo-1.rc}, respectively, @example 0*d1sun#99sun.7 %n+12 is a Friday%i00000001#00000001 @end example @noindent in the @file{demo-2.rc} resource file. @iftex @sp 2 @end iftex @noindent On the one hand, preceding @emph{one-liners} reduce the coding expense quite considerably ---from 28 respectively 15 lines to 1 line in each case---, but on the other hand, this partly increases the checking expense of these @emph{one-liners} considerably and result in a longer program run-time therefore. Both @emph{one-liners} produce about 52 internal productions respectively effective fixed date entries of themselves for each year checked by Gcal, at which the @file{demo-1.rc} and @file{demo-2.rc} resource files cause 24 respectively 12 effective fixed date entries only. @page And here is a resource file by the name of @file{demo-3.rc}, used to detect all working-days of any month: @include examples/demo-3.texi @noindent Respectively a bit shorter version of the resource file @file{demo-3.rc}: @example @group ; demo-3.rc ; $a=%VWork day $c=%i#0000$b99 0000$bmon1:5 $a 0000$btue1:4 $a 0000$bwed1:3 $a 0000$bthu1:2 $a 0000$bfri1:1 $a 0000$bmon2:5 $a 0000$bmon3:5 $a 0000$bmon4:5 $a$c 0000$bmon9:5 $a$c @end group @end example @page @noindent And a resource file by the name of @file{include.rc} exists which is only used to include one given resource file: @include examples/include.texi @noindent Then the result for the month August 1996 is as follows: @include examples/demo-3a.texi @noindent And of course, the preceding textual expense for the purpose of detecting all work days of any month can be dramatically reduced by simply using of @example 00000001#0099 %V%rWork day @end example @noindent in the resource file @file{demo-3.rc}. @iftex @sp 2 @end iftex And next the resource file by the name of @file{sun-1.rc} which detects the actual local time, the approximate time of sunrise and sunset, day and night length of two geographic locations: @page @include examples/sun-1.texi @page @noindent The result for the 12th September 1999 is as follows: @include examples/sun-1a.texi @iftex @sp 2 @end iftex The next example is the resource file @file{redir-1.rc} which demonstrates the use of the shell command @code{%!@r{[}@var{argument}@r{]}} special text: @include examples/redir-1.texi @noindent The result of succeeding call of Gcal, to which you can also add the @option{--debug=all} option for a better understanding of the execution methods, is as follows: @include examples/redir-1a.texi @page And finally a resource file by the name of @file{swtim-1.rc} which produces fixed date messages reminding Daylight Saving that are valid since 1981 for the Federal Republic of Germany@footnote{Two days before adaptation till two days after adaptation.}@. @include examples/swtim-1.texi @noindent The result for the year 1998 is as follows: @include examples/swtim-1a.texi @node Todays Calendar, Gcal Utilities, Fixed Dates, Top @appendix Genesis of the Gregorian Calendar @cindex Gregorian calendar, genesis @cindex Calendar, Gregorian @cindex Calendar, Julian @cindex Julian calendar The nowadays calendar was first formulated in several inaccurate variations by the Romans based on methods developed by the Babylonians and Egyptians. The aim of all these calendars was to harmonize the cycles of the Moon and the Sun. During Julius Caesar's reign, January was falling in autumn so he ordered @w{Sosigenes} to make changes to the calendar. He added 90 days to the year 46 @acronym{BC} to make up for the seasonal drift and adjusted the lengths of the months similarly as we know them to be today. He introduced the leap year by adding one day to February every four years. For the present, the leap year regulation was made in the way that all four years after the 23rd day in February a leap day was laid in, so the 24th February occurred twice. The use of the leap year was an improvement but not entirely accurate. But in the later years, the leap rule was used in the wrong way so that the errors are corrected by emperor Augustus in the year 8 @acronym{BC}@. A curious sequel happened on this occasion. Because Augustus reacted with great jealousy to all things previously made and propagated by Julius Caesar, he did not like Caesar's name in the calendar, namely the today's month of @strong{July}@. Offhandedly he ordered to name another month to himself and so the month name @strong{August} arose. Furthermore, Augustus did not tolerate the fact that his month of birth (the August) was shorter than Caesar's month in the sense of the periodical sequence of months with 30 and 31 days. Consequently, the month of August got 31 days, too. Due to this modification, the number of days in February were reduced to 28 and 29 days, respectively, so the 29th February was designed to be the leap day now. This calendar is well known under the term @dfn{Julian calendar} and is based on a plain solar year. The nominal length of a solar year (respectively a so-called tropical year) is 365 days, 5 hours, 48 minutes, and 46 seconds. One 366-day year every four years equates to an average Julian year of 365 days and 6 hours, consequently to 365.25 days. This means, every four years, an error of 44 minutes, 56 seconds was accumulated by this kind of calendar calculation. Because of this counting method, the length of the years becomes a bit too long, by more than 11 minutes. By the 16th century, the vernal equinox occurred around March 11, rather than March 21, by reason of an accumulated error of ten days. The feast of Easter shifted away more and more from the habitual vernal date, which must have always been celebrated on an earlier date. So Pope Gregory XIII introduced the new style calendar in 1582@. Thursday, the 4th October 1582, was followed by Friday, the 15th October, by suppressing the ten days between both dates. Moreover, he ordained that years ending in hundreds should not be leap years unless they are divisible by 400@. Incidentally, the Gregorian reform compensates by 72 hours (3 days) every 400 years. The actual excess accumulated is 74 hours, 53 minutes and 20 seconds. The error of 2 hours, 53 minutes and 20 seconds every 400 years accumulates to one day in about 3300 years. Thereby, the Gregorian year has an average length of 365.2425 days. But this @dfn{Gregorian calendar} was accepted very slowly by others. Catholic countries adopted the Gregorian calendar almost immediately. Most Protestant countries on the Continent adopted the new calendar around 1700@. England and the American colonies changed in 1752, by act of Parliament. Orthodox Christian countries adopted the Gregorian calendar later. Russia was the last European country to do so, after the communist revolution of 1917@. As a result, the former @w{U.S.S.R.@:} celebrated the October Revolution (happened on October 25th, 1917) in the old style calendar on November 7th. The era of a world wide uniform calendar is already part of history today. The Iran returned to the traditional Mohammedan lunar calendar in 1979 after removal of the Shah reign. There are some efforts to improve our currently valid Gregorian calendar. Its disadvantages are the reason why an appointed day is not always on the same week day. Besides, the month lengths are not equal and the holidays, which have relations to the feast of Easter, are moved within the calendar from one year to another. A very sophisticated suggestion was proposed by the United Nations, but the international establishment of this suggestions has failed, since it was resisted by some countries as well as the churches. @node Gcal Utilities, Internationalization, Todays Calendar, Top @appendix Gcal Utilities @cindex Gcal Utilities @cindex Utilities for Gcal @menu * Invoking tcal:: How to run @command{tcal} and a summary of its options. * Invoking txt2gcal:: How to run @command{txt2gcal} and a summary of its options. * Invoking gcal2txt:: How to run @command{gcal2txt} and a summary of its options. @end menu Three small utility programs are part of the Gcal @value{GCAL-VERSION} package. The Tcal program runs the Gcal program with the date set one day ahead. The Txt2gcal program creates a verbatim Gcal resource file from a text file, and in contrast to this, the Gcal2txt program creates a verbatim text file from a Gcal resource file. @node Invoking tcal, Invoking txt2gcal, Gcal Utilities, Gcal Utilities @appendixsec Invoking @command{tcal} @cindex Command line options, @command{tcal} @cindex Invoking @command{tcal} @cindex The @command{tcal} utility @cindex Utility @command{tcal} @cindex @command{tcal}, utility @cindex Options of @command{tcal} @cindex @command{tcal}, options The Tcal program runs the Gcal program with the date of tomorrow's day@footnote{This is equivalent the @w{@option{--shift=1}} option.}@. Its arguments are as follows: @example tcal @r{[}--help @r{|} --version@r{] | [}--shift=@r{[}+@r{|}-@r{]}@var{number}@r{] [}@var{argument}@r{@dots{}]} @end example @noindent All given @var{arguments} are passed unmodified to the Gcal program. If the Gcal program shall be called with another date than tomorrow's date, this desired date can be selected by using the @w{@option{--shift=@r{[}+@r{|}-@r{]}@var{number}}} option, in which @w{@option{@r{[}+@r{|}-@r{]}@var{number}}} is the distance of days the desired date is distant from the actual system date (@equiv{}today)@. (Works only for Gregorian years.) The @option{--shift} option must be given before all other @var{arguments} that are passed to the Gcal program. @cindex @env{GCALPROG} environment variable @cindex Environment variable, @env{GCALPROG} @vindex GCALPROG In case a @env{GCALPROG} environment variable (@pxref{x-GCALPROG, , Environment Variable @env{GCALPROG}}) is defined and set with the file name of the executable Gcal program, Tcal will use this file name for calling Gcal. Otherwise, the file name @code{gcal} ---which is burned-in during the compilation step of the Tcal program--- is used for calling the Gcal program. The @env{GCALPROG} environment variable must always be set if the Gcal program is installed under another name than the standard name @command{gcal}, otherwise Tcal is unable to execute the Gcal program automatically! An exit status of 0 means all processing is successfully done, any other value means an error has occurred. @noindent The program accepts the following options: @table @option @item --help @arindex --help Print a usage message listing all available options, then exit successfully. @item --version @arindex --version Print the version number, then exit successfully. @item --shift=@r{[}+@r{|}-@r{]}@var{number} @arindex --shift=@r{[}+@r{|}-@r{]}@var{number} Define the displacement in @samp{@r{[}+@r{|}-@r{]}@var{number}} days the desired date is distant from the actual date. @end table @node Invoking txt2gcal, Invoking gcal2txt, Invoking tcal, Gcal Utilities @appendixsec Invoking @command{txt2gcal} @cindex Command line options, @command{txt2gcal} @cindex Invoking @command{txt2gcal} @cindex The @command{txt2gcal} utility @cindex Utility @command{txt2gcal} @cindex @command{txt2gcal}, utility @cindex Options of @command{txt2gcal} @cindex @command{txt2gcal}, options The Txt2gcal program creates a verbatim Gcal resource file from a text file. Its arguments are as follows: @example txt2gcal @r{[}--help @r{|} --version@r{] | [}@var{text-file}@r{|}-@r{] [}@var{date-part}@r{]} @end example @noindent If no @var{text-file} argument is given or/but a single @samp{-} character, the program reads and processes all input received from the @emph{standard input channel}@. If no @var{date-part} argument is given, Txt2gcal creates a @samp{0} for the date part. All results are always shown on the @emph{standard output channel}@. An exit status of 0 means all processing is successfully done, any other value means an error has occurred. @page @noindent The program accepts the following options: @table @option @item --help @arindex --help Print a usage message listing all available options, then exit successfully. @item --version @arindex --version Print the version number, then exit successfully. @end table Here comes an example how to use Txt2gcal. Let us suppose there is a text file by the name of @file{tdemo-1.txt} with the following contents: @include examples/tdemo-1.texi @need 2000 @noindent and Txt2gcal processes this file, redirecting the output to @file{tdemo-1.rc}: @include examples/tdemo-1a.texi @noindent then Txt2gcal has now created a new Gcal resource file @file{tdemo-1.rc} from the text file @file{tdemo-1.txt}@. Let us finally see, how Gcal will interpret this new resource file: @include examples/tdemo-1b.texi @node Invoking gcal2txt, , Invoking txt2gcal, Gcal Utilities @appendixsec Invoking @command{gcal2txt} @cindex Command line options, @command{gcal2txt} @cindex Invoking @command{gcal2txt} @cindex The @command{gcal2txt} utility @cindex Utility @command{gcal2txt} @cindex @command{gcal2txt}, utility @cindex Options of @command{gcal2txt} @cindex @command{gcal2txt}, options The Gcal2txt program creates a verbatim text file from a Gcal resource file. Its arguments are as follows: @example gcal2txt @r{[}--help @r{|} --version@r{] | [}@var{resource-file}@r{|}-@r{]} @end example @noindent If no @var{resource-file} argument is given or/but a single @samp{-} character, the program reads and processes all input received from the @emph{standard input channel}@. All results are always shown on the @emph{standard output channel}@. An exit status of 0 means all processing is successfully done, any other value means an error has occurred. The sense and purpose of Gcal2txt is to retrieve all additional texts, which are put into the output by means of the Txt2gcal program. @noindent The program accepts the following options: @table @option @item --help @arindex --help Print a usage message listing all available options, then exit successfully. @item --version @arindex --version Print the version number, then exit successfully. @end table Here comes an example how to use Gcal2txt. For that purpose, let us use the resource file @file{tdemo-1.rc} of the previous section (@pxref{Invoking txt2gcal, , Invoking @command{txt2gcal}}), which was created by means of the Txt2gcal program from a text file and which looks like this: @include examples/tdemo-1a.texi @noindent Now let us see, how this resource file will be processed by Gcal2txt: @include examples/tdemo-1c.texi @node Internationalization, Metasymbols, Gcal Utilities, Top @appendix Aspects in Internationalization @cindex Aspects in Internationalization @cindex Internationalization aspects @cindex Native language, used Starting with version 2.00, Gcal is able to display message texts using any native languages instead of using the English language only, because parts of the GNU @code{gettext} package are integrated into the Software. @xref{Top, , Introduction, gettext, GNU gettext tools}, for more details. @tbindex Supported native languages @tbindex Native languages, supported @cindex Message catalog By default, Gcal displays all message texts using the English native language in case no other native language is wanted. A so-called @emph{message catalog} is read by Gcal at run-time if message texts from another native language are required. Gcal @value{GCAL-VERSION} supports the following native languages: @iftex @sp 2 @end iftex @multitable @columnfractions .33 .66 @item @strong{Native Language} @tab @strong{Language Code} @item @ @item English @tab @code{en} @item German @tab @code{de} @item French @tab @code{fr} @item Dutch @tab @code{nl} @item Polish @tab @code{pl} @item Russian @tab @code{ru} @item Swedish @tab @code{sv} @end multitable @iftex @sp 2 @end iftex @tbindex Selection of native language @tbindex Native language, selection @cindex Selection of native language @cindex Native language, selection @noindent It is only necessary to set one of the environment variables@footnote{Listed in decreasing priority as they are respected.}: @multitable @columnfractions .04 .96 @item 1. @vindex LANGUAGE @cindex @env{LANGUAGE} environment variable @cindex Environment variable, @env{LANGUAGE} @tab @env{LANGUAGE} @item 2. @vindex LC_ALL @cindex @env{LC_ALL} environment variable @cindex Environment variable, @env{LC_ALL} @tab @env{LC_ALL} @item 3. @vindex LC_MESSAGES @cindex @env{LC_MESSAGES} environment variable @cindex Environment variable, @env{LC_MESSAGES} @tab @env{LC_MESSAGES} @item 4. @vindex LANG @cindex @env{LANG} environment variable @cindex Environment variable, @env{LANG} @tab @env{LANG} @end multitable @noindent with a language code to select another native language instead of the English native language. @iftex @sp 1 @end iftex Normally, users only have to set the @env{LANG} environment variable to tell Gcal the native language to use at run-time level. Presuming users want to run Gcal using the German native language for displaying message texts, they merely have to execute @w{@samp{setenv LANG de}} (in @command{csh}) or @w{@samp{export LANG; LANG=de}} (in @command{sh}) at the shell prompt. Of course they could even do this from their @file{.login} or @file{.profile} file. @xref{Users, , The User's View, gettext, GNU gettext tools}, for more details. @cindex @acronym{ISO}-639:1988 @cindex Language codes @cindex Simple language code information @cindex Language code information, simple As shown above, a simple setting of @code{de} in the environment variable @env{LANG} is sufficient to enable German message texts. @code{de} is the two-letter language code for the German language defined in the @acronym{ISO}-639:1988, and is called @dfn{simple language code information} in the further context. Other language codes can be taken from this @acronym{ISO}-document@footnote{For example @code{fr} for French, @code{es} for Spanish@enddots{}}@. @need 1500 @cindex Native language defaults @cindex Defaults of native language Because Gcal as calendar program must also comply the specifics of a used native language concerning the ordering of day, month and year (and further things) of a displayed date, the period of Gregorian Reformation, the type of week number and the representation of calendar sheets, these criteria are likewise bound to the language code@footnote{Strictly speaking, an extended language code information.}@. @noindent A @code{en} language code causes the following internal defaults of above criteria: @itemize @bullet @item U.S. American date format @item Gregorian Reformation has occurred 1752 @item Week starts on Sunday @item Standard week numbers @item Representation of calendar sheet @example @group September 1994 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 @end group @end example @end itemize @noindent And a @code{de} language code@footnote{Or other language codes, for which a @emph{message catalog} will be created and distributed in future.} causes the following internal defaults: @itemize @bullet @item German date format @item Gregorian Reformation has occurred 1582 @item Week starts on Monday @item @acronym{ISO}-8601:1988 week numbers @item Representation of calendar sheet @example @group September 1994 Monday 5 12 19 26 Tuesday 6 13 20 27 Wednesday 7 14 21 28 Thursday 1 8 15 22 29 Friday 2 9 16 23 30 Saturday 3 10 17 24 Sunday 4 11 18 25 @end group @end example @end itemize Remember, all these internal defaults are modifiable by the options @option{--date-format}, @option{--gregorian-reform}, @option{--starting-day}, @option{--iso-week-number} and @option{--type}@. @need 2000 If no language code is detected, Gcal takes the internal defaults of the @code{en} language code@footnote{Or to be more precise, of the extended language code information @w{@code{en_US}}@.}@. If a language code is specified for which no @emph{message catalog} is installed, Gcal takes the internal defaults of the @code{de} language code, but displays the message texts using the English native language. Actually, this behavior seems to me the most proper solution in such a case. The English native language is spoken all over the world unlike the German or other native languages, so it is wise to use it here. But the other criteria bound to the English native language are so special for users of other native languages, that it is wise to use the criteria taken for internal defaults of the @code{de} language code, because most European countries (taken as standard) essentially use them. @cindex @acronym{ISO}-3166 @cindex Country code @cindex Territory code @cindex Extended language code information @cindex Language code information, extended @vindex LANG Now British users will certainly ask whether they could use their date format as an internal default@footnote{All other internal defaults of the simple @code{en} language code information just meet their criteria.}@. The answer to this is a simple @cite{yes}, nevertheless, these users have to set the environment variable @env{LANG} with an @dfn{extended language code information} instead of a simple language code information. @iftex @sp 2 @end iftex @noindent The usual template of an extended language code information is as follows: @itemize @bullet @item For XPG syntax (X/Open Portability Guide): @smallexample @var{language}@r{[}_@var{territory}@r{][}.@var{codeset}@r{][}@@@var{modifier}@r{]} @end smallexample @item For CEN syntax (Comit@'e Europ@'en de Normalisation): @smallexample @var{language}@r{[}_@var{territory}@r{][}+@var{audience}@r{][}+@var{special}@r{][},@var{sponsor}@r{][}_@var{revision}@r{]} @end smallexample @end itemize @iftex @sp 2 @end iftex Both syntaxes contain the @var{language} and @var{territory} components, which are used by Gcal to select the native language and the other criteria. The @var{language} component is equivalent to the simple language code information and the @var{territory} component is a two-letter territory or country code as defined by the @acronym{ISO}-3166 like @samp{GB} for Great Britain or @samp{US} for the U.S.A@. See the pertinent literature for more details. So British users only have to set the @env{LANG} environment variable with a @w{@code{en_GB}} contents, and after that, they can use the British date format as an internal default. @node Metasymbols, Regular Expressions, Internationalization, Top @appendix Metasymbols @tbindex Used metasymbols @tbindex Metasymbols, used @cindex Metasymbols within this document, table @cindex Table of all Metasymbols within this document Within this document, the following @emph{metasyntactic} conventions will be used when discussing command line options, commands, arguments and templates: @iftex @sp 2 @end iftex @table @code @item @var{n} Argument is not optional and @var{n} must be a valid number. @item e@r{|}t@r{|}@var{dvar} Argument is not optional and must be a single alphabetic character. @item $@var{tvar} Argument is not optional and must be a single alphabetic character, that is lead by a @samp{$} character. @item @r{[}@var{text}@r{]} Argument is optional and @var{text} is a valid string of text. @item @r{[}@var{a}@var{b}@r{]} Arguments are optional, any number may be used in any order, e.g.@:: @example @var{NOTHING}, @var{a}, @var{b}, @var{a}@var{b}, @var{b}@var{a} @dots{} @end example @item @r{@{}@var{a}@var{b}@r{@}} Arguments are not optional, minimum one up to any number may be used in any order, e.g.@:: @example @var{a}, @var{b}, @var{a}@var{b}, @var{b}@var{a} @dots{} @end example @item @r{[}@var{a}@r{|}@var{b}@r{]} Arguments are optional, select either @var{a} or @var{b}, but not both. @item @var{a}@r{|}@var{b} Arguments are not optional, select either @var{a} or @var{b}, but not both. @item @r{[}@var{a}@r{[}@var{b}@r{]]} Arguments are optional, select either @var{a} or @var{a}@var{b}, but not @var{b}@. @item @r{[}@var{a}@r{|}@var{b}@r{[}@var{c}@r{]}@r{]} Arguments are optional, select @var{a} or @var{b} or @var{a}@var{c} or @var{b}@var{c}, but not @var{c}@. @item @r{[}@var{a}@r{|}@var{b}@var{c}@r{]} Arguments are optional, select either @var{a}@var{c} or @var{b}@var{c}, but not @var{a} or @var{b} or @var{c}@. @item @r{[}@var{a}@r{]|[}@var{b}@r{]} Argument @emph{lists} are optional, select either list @var{a} or list @var{b}, but not both. @item @r{[@dots{}]} Additional arguments/files may be specified and are optional. @end table @node Regular Expressions, Regexp Summary, Metasymbols, Top @appendix Regular Expressions @c @c This appendix is derived from the gawk-3.0.0 and regex-0.12 manuals. @c @cindex Pattern, regular expressions @cindex Regexp @cindex Regular expression @cindex Regular expressions as patterns @menu * Regexp Usage:: How to Use Regular Expressions. * Regexp Operators:: Regular Expression Operators. @end menu This appendix is derived from the @code{gawk-3.0.0} and @code{regex-0.12} manuals. A @dfn{regular expression}, or @dfn{regexp}, is a way of describing a set of strings. The simplest regular expression is a sequence of letters, numbers, or both. Such a regexp matches any string that contains that sequence. Thus, the regexp @samp{foo} matches any string containing @samp{foo}@. Other kinds of regular expressions let you specify more complicated classes of strings. @tbindex Supported regular expression programming libraries @tbindex Regular expression programming libraries, supported Gcal uses exactly one of the following regular expression programming libraries respectively methods, and that in the decreasing priority how it is chosen at configuration time, or better, compile time of the software: @iftex @sp 1 @end iftex @multitable @columnfractions .05 .75 .2 @item @strong{No.} @tab @strong{Function} @tab @strong{Symbol} @item @ @item 1. @tab GNU @code{re_compile_pattern()} and @file{regex.h} @tab @code{GNU-REGEX} @item 2. @tab POSIX @code{regcomp()} and @file{regex.h} @tab @code{POSIX-REGEX} @item 3. @tab BSD @code{re_comp()} @tab @code{BSD-REGEX} @item 4. @tab System V @code{regcmp()} @tab @code{SysV-REGEX} @item 5. @tab Henry Spencer V8 @code{regcomp()} and @file{regexp.h} @tab @code{V8-REGEX} @item 6. @tab Pattern matching is supported, but without metacharacters @tab @code{NO-REGEX} @end multitable @noindent Try @w{@samp{gcal --version}} for detecting the kind of regular expression programming library respectively method that is burned in your Gcal program! @node Regexp Usage, Regexp Operators, Regular Expressions, Regular Expressions @appendixsec How to Use Regular Expressions @cindex How to use regular expressions @cindex Regular expressions, how to use A regular expression can be used as a pattern if Gcal's @w{@option{--filter-text=@var{pattern}}} option is specified at program start-up. @xref{x-filter-text, , Fixed date option @option{--filter-text=@var{pattern}}}, for more details. Then the regular expression is tested against the entire, completely expanded text of each @strong{valid} fixed date, and the fixed date is only displayed in case the pattern matches the text@footnote{Normally, it only needs to match some part of the text in order to succeed.}@. @node Regexp Operators, , Regexp Usage, Regular Expressions @appendixsec Regular Expression Operators @cindex Metacharacters, regexp @cindex Regexp metacharacters @cindex Operators, regexp @cindex Regexp operators @cindex Regular expression metacharacters @cindex Regular expression operators You can combine regular expressions with the following characters, called @dfn{regular expression operators}, or @dfn{metacharacters}, to increase the power and versatility of regular expressions. @page Here is a table of these metacharacters. All characters that are not listed in the table stand for themselves. @table @code @item \ @cindex Metacharacter, @code{\} regexp @cindex Regexp metacharacter, @code{\} @cindex @code{\} regexp, metacharacter @cindex Regular expression metacharacter, @code{\} This is used to suppress the special meaning of a character when matching. For example: @example \$ @end example matches the character @samp{$}@. @item ^ @cindex Anchors in regexp @cindex Regexp, anchors @cindex Anchor metacharacter, @code{^} regexp @cindex Regexp anchor metacharacter, @code{^} @cindex @code{^} regexp, anchor metacharacter @cindex Regular expression anchor metacharacter, @code{^} This matches the beginning of a string. For example: @example ^@@chapter @end example matches the @samp{@@chapter} at the beginning of a string, and can be used to identify chapter beginnings in Texinfo source files. The @samp{^} is known as an @dfn{anchor}, since it anchors the pattern to matching only at the beginning of the string. @item $ @cindex Anchor metacharacter, @code{$} regexp @cindex Regexp anchor metacharacter, @code{$} @cindex @code{$} regexp, anchor metacharacter @cindex Regular expression anchor metacharacter, @code{$} This is similar to @samp{^}, but it matches only at the end of a string. For example: @example p$ @end example matches a string that ends with a @samp{p}@. The @samp{$} is also an anchor. @item . @cindex Metacharacter, @code{.} regexp @cindex Regexp metacharacter, @code{.} @cindex @code{.} regexp, metacharacter @cindex Regular expression metacharacter, @code{.} The period, or dot, matches any single character. For example: @example .P @end example matches any single character followed by a @samp{P} in a string. Using concatenation we can make a regular expression like @w{@samp{U.A}}, which matches any three-character sequence that begins with @samp{U} and ends with @samp{A}@. @item [@r{@dots{}}] @cindex Character list, regexp @cindex Regexp, character list @cindex Character list, @code{[@r{@dots{}}]} regexp @cindex Regexp character list, @code{[@r{@dots{}}]} @cindex @code{[@r{@dots{}}]} regexp, character list @cindex Regular expression character list, @code{[@r{@dots{}}]} This is called a @dfn{character list}@. It matches any @emph{one} of the characters that are enclosed in the square brackets. For example: @example [MVX] @end example matches any one of the characters @samp{M}, @samp{V}, or @samp{X} in a string. Ranges of characters are indicated by using a hyphen between the beginning and ending characters, and enclosing the whole thing in brackets. For example: @example [0-9] @end example matches any digit. Multiple ranges are allowed. E.g., the list @w{@code{[A-Za-z0-9]}} is a common way to express the idea of ``all alphanumeric characters.'' To include one of the characters @samp{\}, @samp{]}, @samp{-} or @samp{^} in a character list, put a @samp{\} in front of it. For example: @example [d\]] @end example matches either @samp{d}, or @samp{]}@. @cindex Character classes, regexp @cindex Regexp, character classes @cindex POSIX regexp @cindex Regexp, POSIX @cindex Character classes, @code{[:@var{keyword}:]} regexp @cindex Regexp character classes, @code{[:@var{keyword}:]} @cindex @code{[:@var{keyword}:]} regexp, character classes @cindex Regular expression character classes, @code{[:@var{keyword}:]} @dfn{Character classes} are a new feature introduced in the POSIX standard. A character class is a special notation for describing lists of characters that have a specific attribute, but where the actual characters themselves can vary from country to country and/or from character set to character set. For example, the notion of what is an alphabetic character differs in the U.S.A.@: and in France. A character class is only valid in a regexp @emph{inside} the brackets of a character list. Character classes consist of @samp{[:}, a keyword denoting the class, and @samp{:]}@. Here are the character classes defined by the POSIX standard: @need 1500 @table @code @item [:alnum:] @cindex Character class, @code{[:alnum:]} regexp @cindex Regexp character class, @code{[:alnum:]} @cindex @code{[:alnum:]} regexp, character class @cindex Regular expression character class, @code{[:alnum:]} Alphanumeric characters. @item [:alpha:] @cindex Character class, @code{[:alpha:]} regexp @cindex Regexp character class, @code{[:alpha:]} @cindex @code{[:alpha:]} regexp, character class @cindex Regular expression character class, @code{[:alpha:]} Alphabetic characters. @item [:blank:] @cindex Character class, @code{[:blank:]} regexp @cindex Regexp character class, @code{[:blank:]} @cindex @code{[:blank:]} regexp, character class @cindex Regular expression character class, @code{[:blank:]} Space and tab characters. @item [:cntrl:] @cindex Character class, @code{[:cntrl:]} regexp @cindex Regexp character class, @code{[:cntrl:]} @cindex @code{[:cntrl:]} regexp, character class @cindex Regular expression character class, @code{[:cntrl:]} Control characters. @item [:digit:] @cindex Character class, @code{[:digit:]} regexp @cindex Regexp character class, @code{[:digit:]} @cindex @code{[:digit:]} regexp, character class @cindex Regular expression character class, @code{[:digit:]} Numeric characters. @item [:graph:] @cindex Character class, @code{[:graph:]} regexp @cindex Regexp character class, @code{[:graph:]} @cindex @code{[:graph:]} regexp, character class @cindex Regular expression character class, @code{[:graph:]} Characters that are printable and are also visible@footnote{A space is printable, but not visible, while an @samp{a} is both.}@. @item [:lower:] @cindex Character class, @code{[:lower:]} regexp @cindex Regexp character class, @code{[:lower:]} @cindex @code{[:lower:]} regexp, character class @cindex Regular expression character class, @code{[:lower:]} Lower-case alphabetic characters. @item [:print:] @cindex Character class, @code{[:print:]} regexp @cindex Regexp character class, @code{[:print:]} @cindex @code{[:print:]} regexp, character class @cindex Regular expression character class, @code{[:print:]} Printable characters@footnote{Characters that are not control characters.}@. @item [:punct:] @cindex Character class, @code{[:punct:]} regexp @cindex Regexp character class, @code{[:punct:]} @cindex @code{[:punct:]} regexp, character class @cindex Regular expression character class, @code{[:punct:]} Punctuation characters@footnote{Characters that are not letter, digits, control characters, or space characters.}@. @item [:space:] @cindex Character class, @code{[:space:]} regexp @cindex Regexp character class, @code{[:space:]} @cindex @code{[:space:]} regexp, character class @cindex Regular expression character class, @code{[:space:]} Space characters@footnote{Such as Space, Tab, and Form-feed, to name a few.}@. @item [:upper:] @cindex Character class, @code{[:upper:]} regexp @cindex Regexp character class, @code{[:upper:]} @cindex @code{[:upper:]} regexp, character class @cindex Regular expression character class, @code{[:upper:]} Upper-case alphabetic characters. @item [:xdigit:] @cindex Character class, @code{[:xdigit:]} regexp @cindex Regexp character class, @code{[:xdigit:]} @cindex @code{[:xdigit:]} regexp, character class @cindex Regular expression character class, @code{[:xdigit:]} Characters that are hexadecimal digits. @end table For example, before the POSIX standard, to match alphanumeric characters, you had to write @w{@code{[A-Za-z0-9]}}@. If your character set had other alphabetic characters in it, this would not match them. With the POSIX character classes, you can write @w{@code{[[:alnum:]]}}, and this will match @emph{all} the alphabetic and numeric characters in your character set. @cindex Collating elements, regexp @cindex Regexp, collating elements Two additional special sequences can appear in character lists. These apply to non-@sc{ascii} character sets, which can have single symbols (called @dfn{collating elements}) that are represented with more than one character, as well as several characters that are equivalent for collating, or sorting, purposes. (E.g., in French, a plain @samp{e} and a grave-accented @samp{@`e} are equivalent.) @need 2000 @table @asis @item Collating Symbols @cindex Collating symbols, regexp @cindex Regexp, collating symbols @cindex Collating symbols, @code{[.@var{element}.]} regexp @cindex Regexp collating symbols, @code{[.@var{element}.]} @cindex @code{[.@var{element}.]} regexp, collating symbols @cindex Regular expression collating symbols, @code{[.@var{element}.]} A @dfn{collating symbol} is a multi-character collating element enclosed in @samp{[.} and @samp{.]}@. For example, if @samp{ch} is a collating element, then @w{@code{[[.ch.]]}} is a regexp that matches this collating element, while @w{@code{[ch]}} is a regexp that matches either @samp{c} or @samp{h}@. @item Equivalence Classes @cindex Equivalence classes, regexp @cindex Regexp, equivalence classes @cindex Equivalence classes, @code{[=@var{list}=]} regexp @cindex Regexp equivalence classes, @code{[=@var{list}=]} @cindex @code{[=@var{list}=]} regexp, equivalence classes @cindex Regular expression equivalence class, @code{[=@var{list}=]} An @dfn{equivalence class} is a list of equivalent characters enclosed in @samp{[=} and @samp{=]}@. Thus, @code{[[=e@`e=]]} is a regexp that matches either @samp{e} or @samp{@`e}@. @end table These features are very valuable in non-English speaking locales. @strong{Caution:}@* The library functions that Gcal uses for regular expression matching currently only recognize POSIX character classes (possibly); they do not recognize collating symbols or equivalence classes. @item [^ @r{@dots{}}] @cindex Complemented character list, regexp @cindex Regexp, complemented character list @cindex Character list in regexp, complemented @cindex Negated character list, regexp @cindex Regexp, negated character list @cindex Character list in regexp, negated @cindex Complemented character list, @code{[^ @r{@dots{}}]} regexp @cindex Regexp complemented character list, @code{[^ @r{@dots{}}]} @cindex @code{[^ @r{@dots{}}]} regexp, complemented character list @cindex Regular expression complemented character list, @code{[^ @r{@dots{}}]} This is a @dfn{negated character list} respectively @dfn{complemented character list}@. The first character after the @samp{[} @emph{must} be a @samp{^}@. It matches any characters @emph{except} those in the square brackets. For example: @example [^0-9] @end example matches any character that is not a digit. @item | @cindex Operator, @code{|} regexp @cindex Regexp operator, @code{|} @cindex @code{|} regexp, operator @cindex Regular expression operator, @code{|} This is the @dfn{alternation operator}, and it is used to specify alternatives. For example: @example ^P|[0-9] @end example matches any string that matches either @samp{^P} or @w{@samp{[0-9]}}@. This means it matches any string that starts with @samp{P} or contains a digit. The alternation applies to the largest possible regexps on either side. In other words, @samp{|} has the lowest precedence of all the regular expression operators. @item (@r{@dots{}}) @cindex Grouping, @code{(@r{@dots{}})} regexp @cindex Regexp grouping, @code{(@r{@dots{}})} @cindex @code{(@r{@dots{}})} regexp, grouping @cindex Regular expression grouping, @code{(@r{@dots{}})} Parentheses are used for grouping in regular expressions as in arithmetic. They can be used to concatenate regular expressions containing the alternation operator, @samp{|}@. For example, @w{@samp{@@(samp|code)\@{[^@}]+\@}}} matches both @w{@samp{@@code@{foo@}}} and @w{@samp{@@samp@{bar@}}}@. (These are Texinfo formatting control sequences.) @item * @cindex Operator, @code{*} regexp @cindex Regexp operator, @code{*} @cindex @code{*} regexp, operator @cindex Regular expression operator, @code{*} This symbol means that the preceding regular expression is to be repeated as many times as necessary to find a match. For example: @example ph* @end example applies the @samp{*} symbol to the preceding @samp{h} and looks for matches of one @samp{p} followed by any number of @samp{h}s. This will also match just @samp{p} if no @samp{h}s are present. The @samp{*} repeats the @emph{smallest} possible preceding expression. (Use parentheses if you wish to repeat a larger expression.) It finds as many repetitions as possible. For example: @example gcal --filter-text='\(c[ad][ad]*r x\)' -f sample.rc -y @end example prints every fixed date in @file{sample.rc} containing a fixed date text of the form @w{@samp{(car x)}}, @w{@samp{(cdr x)}}, @w{@samp{(cadr x)}}, and so on. Notice the escaping of the parentheses by preceding them with backslashes. @item + @cindex Operator, @code{+} regexp @cindex Regexp operator, @code{+} @cindex @code{+} regexp, operator @cindex Regular expression operator, @code{+} This symbol is similar to @samp{*}, but the preceding expression must be matched at least once. This means that: @example wh+y @end example would match @w{@samp{why}} and @w{@samp{whhy}} but not @w{@samp{wy}}, whereas @w{@samp{wh*y}} would match all three of these strings. This is a simpler way of writing the last @samp{*} example: @example gcal --filter-text='\(c[ad]+r x\)' -f sample.rc -y @end example @item ? @cindex Operator, @code{?} regexp @cindex Regexp operator, @code{?} @cindex @code{?} regexp, operator @cindex Regular expression operator, @code{?} This symbol is similar to @samp{*}, but the preceding expression can be matched either once or not at all. For example: @example fe?d @end example will match @w{@samp{fed}} and @w{@samp{fd}}, but nothing else. @item @{@var{n}@} @itemx @{@var{n},@} @itemx @{@var{n},@var{m}@} @cindex Interval expressions, regexp @cindex Regexp, interval expressions @cindex POSIX regexp @cindex Regexp, POSIX @cindex Interval expressions, @code{@{@var{expression}@}} regexp @cindex Regexp interval expressions, @code{@{@var{expression}@}} @cindex @code{@{@var{expression}@}} regexp, interval expressions @cindex Regular expression interval expressions, @code{@{@var{expression}@}} One or two numbers inside braces denote an @dfn{interval expression} which is available in the POSIX standard. If there is one number in the braces, the preceding regexp is repeated @var{n} times. If there are two numbers separated by a comma, the preceding regexp is repeated @var{n} to @var{m} times. If there is one number followed by a comma, then the preceding regexp is repeated at least @var{n} times. @table @code @item wh@{3@}y matches @w{@samp{whhhy}} but not @w{@samp{why}} or @w{@samp{whhhhy}}@. @item wh@{3,5@}y matches @w{@samp{whhhy}} or @w{@samp{whhhhy}} or @w{@samp{whhhhhy}}, only. @item wh@{2,@}y matches @w{@samp{whhy}} or @w{@samp{whhhy}}, and so on. @end table @end table @iftex @sp 2 @end iftex @cindex Regexp operators, GNU specific @cindex GNU specific regexp operators GNU software that deals with regular expressions provides a number of additional regexp operators. These operators are described here. @cindex Regexp, definition of a word @cindex Word, regexp definition Most of the additional operators are for dealing with word matching. For our purposes, a @dfn{word} is a sequence of one or more letters, digits, or underscores (@samp{_})@. @table @code @item \w @cindex Operator, @code{\w} regexp @cindex Regexp operator, @code{\w} @cindex @code{\w} regexp, operator @cindex Regular expression operator, @code{\w} This operator matches any word-constituent character, i.e.@: any letter, digit, or underscore. Think of it as a short-hand for @w{@code{[A-Za-z0-9_]}} or @w{@code{[[:alnum:]_]}}@. @item \W @cindex Operator, @code{\W} regexp @cindex Regexp operator, @code{\W} @cindex @code{\W} regexp, operator @cindex Regular expression operator, @code{\W} This operator matches any character that is not word-constituent. Think of it as a short-hand for @w{@code{[^A-Za-z0-9_]}} or @w{@code{[^[:alnum:]_]}}@. @item \< @cindex Operator, @code{\<} regexp @cindex Regexp operator, @code{\<} @cindex @code{\<} regexp, operator @cindex Regular expression operator, @code{\<} This operator matches the empty string at the beginning of a word. For example, @code{\ @cindex Operator, @code{\>} regexp @cindex Regexp operator, @code{\>} @cindex @code{\>} regexp, operator @cindex Regular expression operator, @code{\>} This operator matches the empty string at the end of a word. For example, @code{stow\>} matches @samp{stow}, but not @samp{stowaway}@. @item \b @cindex Word boundaries, matching in regexp @cindex Matching word boundaries in regexp @cindex Regexp, matching word boundaries @cindex Operator, @code{\b} regexp @cindex Regexp operator, @code{\b} @cindex @code{\b} regexp, operator @cindex Regular expression operator, @code{\b} This operator matches the empty string at either the beginning or the end of a word (the word @strong{b}oundary)@. For example, @samp{\bballs?\b} matches either @samp{ball} or @samp{balls} as a separate word. @item \B @cindex Operator, @code{\B} regexp @cindex Regexp operator, @code{\B} @cindex @code{\B} regexp, operator @cindex Regular expression operator, @code{\B} This operator matches the empty string within a word. In other words, @samp{\B} matches the empty string that occurs between two word-constituent characters. For example, @code{\Brat\B} matches @samp{crate}, but it does not match @samp{dirty rat}@. @samp{\B} is essentially the opposite of @samp{\b}@. @end table @cindex Buffer, regexp @cindex Regexp, buffer There are two other operators that work on buffers. In Emacs, a @dfn{buffer} is, naturally, an Emacs buffer. For other programs, the regexp library routines that Gcal uses consider the entire string to be matched as the buffer@footnote{That is the @emph{text part} of a Gcal resource file line.}@. For Gcal, since @samp{^} and @samp{$} always work in terms of the beginning and end of strings, these operators do not add any new capabilities. They are provided for compatibility with other GNU software. @cindex Buffer matching operators, regexp @cindex Regexp, buffer matching operators @table @code @item \` @cindex Operator, @code{\`} regexp @cindex Regexp operator, @code{\`} @cindex @code{\`} regexp, operator @cindex Regular expression operator, @code{\`} This operator matches the empty string at the beginning of the buffer. @item \' @cindex Operator, @code{\'} regexp @cindex Regexp operator, @code{\'} @cindex @code{\'} regexp, operator @cindex Regular expression operator, @code{\'} This operator matches the empty string at the end of the buffer. @end table @iftex @sp 2 @end iftex @cindex Precedence, regexp operators @cindex Regexp operators, precedence In regular expressions, the @samp{*}, @samp{+}, and @samp{?} operators, as well as the braces @samp{@{} and @samp{@}}, have the highest precedence, followed by concatenation, and finally by @samp{|}@. As in arithmetic, parentheses can change how operators are grouped. @cindex Case sensitivity in matching, regexp @cindex Regexp, case sensitivity in matching Case is normally significant in regular expressions, both when matching ordinary characters (i.e.@: not metacharacters), and inside character sets. Thus a @samp{w} in a regular expression matches only a lower-case @samp{w} and not an upper-case @samp{W}@. @cindex Ignoring case distinctions in regular expression @cindex Ignoring case, regexp @cindex Regular expression, ignoring case distinctions @cindex Regexp, ignoring case The simplest way to do a case-independent match is to use a character list: @w{@samp{[Ww]}}@. However, this can be cumbersome if you need to use it often; and unfortunately, it can make the regular expressions harder to read. Supplying a want, Gcal offers the @option{--ignore-case} option which ignores all case distinctions in both the regular expression and the completely expanded text of each @strong{valid} fixed date. @xref{x-ignore-case, , Fixed date option @option{--ignore-case}}. @node Regexp Summary, Special Texts, Regular Expressions, Top @appendix Summary of all Regular Expressions @tbindex Regular expressions @cindex Regular expressions, short-list @cindex Regular expressions, summary @cindex Summary of all regular expressions @cindex Short-list of all regular expressions Regular expressions are based on POSIX EREs (Extended Regular Expressions)@. Regexps are composed of characters. Here is a short-list of them all: @iftex @sp 2 @end iftex @table @code @item @var{c} matches the character @var{c} (assuming @var{c} is none of the characters listed below)@. @item \@var{c} matches the literal character @var{c}@. @item . matches any character. @item ^ matches the beginning of a string. @item $ matches the end of a string. @item [@var{abc}@r{@dots{}}] matches any of the characters @var{abc}@dots{} (character list)@. @item [[:@var{keyword}:]] matches any character in the character class @var{keyword}@. Allowable classes are @code{alnum}, @code{alpha}, @code{blank}, @code{cntrl}, @code{digit}, @code{graph}, @code{lower}, @code{print}, @code{punct}, @code{space}, @code{upper}, and @code{xdigit}@. @item [[.@var{element}.]] matches the multi-character collating @var{element}@. Gcal does not currently support collating symbols. @item [[=@var{list}=]] matches any of the equivalent characters in @var{list}@. Gcal does not currently support equivalence classes. @item [^@var{abc}@r{@dots{}}] matches any character except @var{abc}@dots{} (negated resp.@: complemented character list)@. @item @var{r1}|@var{r2} matches either @var{r1} or @var{r2} (alternation)@. @item @var{r1r2} matches @var{r1}, and then @var{r2} (concatenation)@. @item @var{r}+ matches one or more @var{r}'s. @item @var{r}* matches zero or more @var{r}'s. @item @var{r}? matches zero or one @var{r}'s. @item (@var{r}) matches @var{r} (grouping)@. @item @var{r}@{@var{n}@} @itemx @var{r}@{@var{n},@} @itemx @var{r}@{@var{n},@var{m}@} matches at least @var{n}, @var{n} to any number, or @var{n} to @var{m} occurrences of @var{r} (interval expressions)@. @item \b matches the empty string at either the beginning or the end of a word. @item \B matches the empty string within a word. @item \< matches the empty string at the beginning of a word. @item \> matches the empty string at the end of a word. @item \w matches any word-constituent character (alphanumeric characters and the underscore)@. @item \W matches any character that is not word-constituent. @item \` matches the empty string at the beginning of a buffer@footnote{The same as a @emph{text part} of a resource file line in Gcal.}@. @item \' matches the empty string at the end of a buffer. @end table @node Special Texts, Special Texts Summary, Regexp Summary, Top @appendix @code{%@var{?}}@dots{} Special Texts @cindex @code{%@var{?}}@dots{} special texts, description @cindex Description of all @code{%@var{?}}@dots{} special texts @menu * Exclusions:: How to Exclude dates. * Replacements:: How to Replace texts. * Shell Command:: How to run a Shell Command. @end menu The @code{%@var{?}}@dots{} special texts which can be used in the text part of a Gcal resource file line can coarsely be separated into three categories. So there are special texts used for suppression output of fixed dates in definite cases. Others are replaced by particular texts or cause the shell to start external commands. @xref{Special Texts processed, , @code{%@var{?}}@dots{} Special Texts}, for a general description of the special texts which may be used in the text part of a Gcal resource file line. @cindex Format instruction @cindex Limitations concerning the assignment of special texts to text variables @cindex Assignment of special texts to text variables, limitations Some of these special texts may have an optional format instruction (called @var{format} in the further context), which affects the representation of an expanded special text. @xref{Format Instruction}, for the detailed description of the format instruction and its components. A possibly specified @var{format} within special texts which may not have a format instruction is ignored by Gcal and not displayed in output. But Gcal is also able to represent such special texts in a special way by using a format instruction, and that by using an indirect method. For displaying, you simply assign the special text exclusively to a text variable which contains a format instruction. Nevertheless, it is important to note that the field width component of the format instruction is chosen in the way that it refers to the assigned contents of the text variable, if the format instruction has a fixed format component. The contents assigned to the text variable is only the special text, and not its expanded result. Gcal has to proceed like that, because the special text which is hidden in the text variable could not be used (here: displayed) only for a definite date, but possibly also for several dates, and that adjusted to each date it is referenced. Thus exists a special text in the text variable which has a definite length, and a format instruction also exists, whose field width component has to affect the expanded result of the special text. Indeed, Gcal does not know at the moment when the assignment of the special text to the text variable is made, of which length the expanded result will be, because this expansion is made at a much later phase in the program execution. So, in such a case, the field width component of a format instruction should have the length of the special text minimum, otherwise it is crippled and expanded respectively displayed incorrectly by the internal methods which effect the expansion. Of course, not all possibilities concerning the representation ---which are offered by the format instruction--- are listed here for those special texts those expanded representation may be affected by an optional @var{format} instruction, but only some few exemplary. And some of these special texts may also have an optional simple or special date argument (called @var{date} in the further context) or another argument (called @var{argument} in the further context)@. The @var{date} argument must be given in one of the following date formats in case a special text is directly trailed by it: @itemize @bullet @item @w{@code{@var{yyyy}@r{[}@var{mm}@r{[}@var{dd}@r{|}@var{www}@var{n}@r{]]}}} @item @w{@code{@var{yyyy}*d@r{|}w@var{n}@r{[}@var{www}@r{]}}} @item @w{@code{@var{yyyy}@@e@r{|}t@r{|}@var{dvar}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}}} @end itemize Special texts that may have a @var{date} argument @strong{must} always be trailed by a @emph{whitespace} character which is removed in output, no matter whether @var{date} was given or not! @xref{Special Texts Summary, , Summary of all @code{%@var{?}}@dots{} Special Texts}, for a short-list of all applicable special texts. @node Exclusions, Replacements, Special Texts, Special Texts @appendixsec @code{%@var{?}}@dots{} special texts for date exclusion @cindex @code{%@var{?}}@dots{} special texts, date exclusion @cindex Special texts @code{%@var{?}}@dots{}, date exclusion @cindex Date exclusion @code{%@var{?}}@dots{} special texts @menu * Exclusions with date argument:: * Exclusions without any argument:: @end menu @code{%@var{?}}@dots{} special texts used for exclusion of points of time or periods of dates are very useful if they are used together with ranges of days (@pxref{Ranges of days})@. The complete special text is always suppressed in output in case the fixed date text must be displayed. @node Exclusions with date argument, Exclusions without any argument, Exclusions, Exclusions @appendixsubsec Exclusions with date argument @code{%@var{?}@r{[}@var{date}@r{]}} special texts @cindex @code{%@var{?}@r{[}@var{date}@r{]}} special texts, exclusions with date argument @cindex Special texts @code{%@var{?}@r{[}@var{date}@r{]}}, exclusions with date argument @cindex Exclusions with date argument @code{%@var{?}@r{[}@var{date}@r{]}} special texts @menu * Inclusive date period:: * Exclusive date period:: @end menu @cindex Inclusive date period @cindex Period, inclusive date @cindex Exclusive date period @cindex Period, Exclusive date First of all, an @dfn{inclusive date} period @code{%@var{?}@r{[}@var{date}@r{]}} special text can be specified with the effect, that only those fixed dates are respected and displayed which are part of this period. And the specification of an @dfn{exclusive date} period @code{%@var{?}@r{[}@var{date}@r{]}} special text has the effect, that only those fixed dates are respected and displayed which are not part of this period. Cleverly combined, these special texts offer very effective filtration capabilities used for the definition of special periods in a highly flexible manner, for example: @example 0*d1#999 Every day of year: from January@dots{}August except April\ %i00001#00008 %e00004#00004 ; 0*d1#999 Every day of year: from 1991@dots{}1993 and from 1996\ except February 1992 and all September\ %i1991#1993 %i1996# %e19922#19922 %e00009#00009 @end example @node Inclusive date period, Exclusive date period, Exclusions with date argument, Exclusions with date argument @appendixsubsubsec Inclusive date period @code{%i@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}} special text @cindex @code{%i@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}} special text, inclusive date period @cindex Special text @code{%i@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}}, inclusive date period @cindex Inclusive date period @code{%i@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}} special text @w{@code{%i@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}}} references an inclusive date period, i.e.@: all dates which are part of the specified period are valid and are displayed. Of course this means, that all fixed dates which are not part of this period (not covered by it) are invalid and remain undisplayed therefore. @cindex Fixed date, starting date @cindex Starting date of fixed date The first specified date defines the @dfn{starting date} of the fixed date, i.e.@: the first date the fixed date may occur. For the starting date, the following rules concerning definite omission values are valid, elucidated by using the @w{@code{@var{yyyy}@r{[}@var{mm}@r{[}@var{dd}@r{|}@var{www}@var{n}@r{]]}}} date format: @itemize @bullet @item If @var{yyyy} is set to @code{0000}, the current year is assumed for the year. @item If @var{mm} is not given, then @code{01} (@equiv{}January) is assumed for the month. @item If @var{mm} is set to @code{00}, the current month is assumed for the month, and the December is assumed in case @var{mm} is set to @code{99}@. @item If @w{@var{dd}|@var{www}} is not given, then @code{01} is assumed for the day. @item If @var{dd} is set to @code{00}, the current day is assumed for the day, and the last day of the month @var{mm} is assumed in case @var{dd} is set to @code{99}@. @item If the @var{n} field is given (range @w{@code{1@r{@dots{}}5}} or @code{9}), then a @var{www} field must also be specified. @end itemize @cindex Fixed date, ending date @cindex Ending date of fixed date The second specified date defines the @dfn{ending date} of the fixed date, i.e.@: the last date the fixed date may occur. For the ending date, the following rules concerning definite omission values are valid, likewise elucidated by using the @w{@code{@var{yyyy}@r{[}@var{mm}@r{[}@var{dd}@r{|}@var{www}@var{n}@r{]]}}} date format: @itemize @bullet @item If @var{yyyy} is set to @code{0000}, the current year is assumed for the year. @item If @var{mm} is not given, then @code{12} (@equiv{}December) is assumed for the month. @item If @var{mm} is set to @code{00}, the current month is assumed for the month, and the December is assumed in case @var{mm} is set to @code{99}@. @item If @w{@var{dd}|@var{www}} is not given, the last day of the month @var{mm} is assumed for the day. @item If @var{dd} is set to @code{00}, the current day is assumed for the day, and the last day of the month @var{mm} is assumed in case @var{dd} is set to @code{99}@. @item If the @var{n} field is given (range @w{@code{1@r{@dots{}}5}} or @code{9}), then a @var{www} field must also be specified. @end itemize The preceding rules are analogously valid for the other permitted date formats. If the starting date, which is encoded in the @w{@code{%i@r{@dots{}}}} special text, is later the ending date, the @w{@code{%i@r{@dots{}}}} special text will be ignored. In case neither the starting date nor the ending date is specified, means only @samp{%i} is given, the implicit period 1st January 1@dots{}31st December 9999 @w{(00010101@dots{}99991231)} will be used. If only the starting date is specified, means either @w{@samp{%i@var{date}}} or @w{@samp{%i@var{date}#}} is given, the implicit ending date 31st December 9999 @w{(99991231)} will be used. In case only the ending date is specified, means @w{@samp{%i#@var{date}}} is given, the implicit starting date 1st January 1 @w{(00010101)} will be used. For example: @example 0d*1#999 Every day of year: only April and July\ %i00004#00004 %i00007#00007 ; 0*d1#999 Every day of year: from January@dots{}October\ %i#000010 ; 0*d1#999 Every day of year: from August 1990\ %i19908 ; 0*d1#999 Every day of year: from August@dots{}December\ %i00008 ; 0*d1#999 Every day of year: only today%i0@@t#0@@t @end example @node Exclusive date period, , Inclusive date period, Exclusions with date argument @appendixsubsubsec Exclusive date period @code{%e@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}} special text @cindex @code{%e@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}} special text, exclusive date period @cindex Special text @code{%e@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}}, exclusive date period @cindex Exclusive date period @code{%e@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}} special text @w{@code{%e@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}}} references an exclusive date period, i.e.@: all dates which are part of the specified period are invalid and remain undisplayed therefore. Of course this means, that all fixed dates which are not part of this period (not covered by it) are valid and are displayed. @cindex Fixed date, starting date @cindex Starting date of fixed date The first specified date defines the starting date of the fixed date, i.e.@: the first date the fixed date may occur. For the starting date, the following rules concerning definite omission values are valid, elucidated by using the @w{@code{@var{yyyy}@r{[}@var{mm}@r{[}@var{dd}@r{|}@var{www}@var{n}@r{]]}}} date format: @itemize @bullet @item If @var{yyyy} is set to @code{0000}, the current year is assumed for the year. @item If @var{mm} is not given, then @code{01} (@equiv{}January) is assumed for the month. @item If @var{mm} is set to @code{00}, the current month is assumed for the month, and the December is assumed in case @var{mm} is set to @code{99}@. @item If @w{@var{dd}|@var{www}} is not given, then @code{01} is assumed for the day. @item If @var{dd} is set to @code{00}, the current day is assumed for the day, and the last day of the month @var{mm} is assumed in case @var{dd} is set to @code{99}@. @item If the @var{n} field is given (range @w{@code{1@r{@dots{}}5}} or @code{9}), then a @var{www} field must also be specified. @end itemize @cindex Fixed date, ending date @cindex Ending date of fixed date The second specified date defines the ending date of the fixed date, i.e.@: the last date the fixed date may occur. For the ending date, the following rules concerning definite omission values are valid, likewise elucidated by using the @w{@code{@var{yyyy}@r{[}@var{mm}@r{[}@var{dd}@r{|}@var{www}@var{n}@r{]]}}} date format: @itemize @bullet @item If @var{yyyy} is set to @code{0000}, the current year is assumed for the year. @item If @var{mm} is not given, then @code{12} (@equiv{}December) is assumed for the month. @item If @var{mm} is set to @code{00}, the current month is assumed for the month, and the December is assumed in case @var{mm} is set to @code{99}@. @item If @w{@var{dd}|@var{www}} is not given, the last day of the month @var{mm} is assumed for the day. @item If @var{dd} is set to @code{00}, the current day is assumed for the day, and the last day of the month @var{mm} is assumed in case @var{dd} is set to @code{99}@. @item If the @var{n} field is given (range @w{@code{1@r{@dots{}}5}} or @code{9}), then a @var{www} field must also be specified. @end itemize The preceding rules are analogously valid for the other permitted date formats. If the starting date, which is encoded in the @w{@code{%e@r{@dots{}}}} special text, is later the ending date, the @w{@code{%e@r{@dots{}}}} special text will be ignored. In case neither the starting date nor the ending date is specified, means only @samp{%e} is given, the implicit period 1st January 1@dots{}31st December 9999 @w{(00010101@dots{}99991231)} will be used. If only the starting date is specified, means either @samp{%e@var{date}} or @samp{%e@var{date}#} is given, the implicit ending date 31st December 9999 @w{(99991231)} will be used. In case only the ending date is specified, means @samp{%e#@var{date}} is given, the implicit starting date 1st January 1 @w{(00010101)} will be used. For example: @example 0d*1#999 Every day of year: except April and July\ %e00004#00004 %e00007#00007 ; 0*d1#999 Every day of year: except January@dots{}October\ %e#000010 ; 0*d1#999 Every day of year: until July 1990\ %e19908 ; 0*d1#999 Every day of year: except August@dots{}December\ %e00008 ; 0*d1#999 Every day of year: except today%e0@@t#0@@t @end example @node Exclusions without any argument, , Exclusions with date argument, Exclusions @appendixsubsec Exclusions without any argument @code{%@var{?}} special texts @cindex @code{%@var{?}} special texts, exclusions without any argument @cindex Special texts @code{%@var{?}}, exclusions without any argument @cindex Exclusions without any argument @code{%@var{?}} special texts @menu * Inclusive day period:: * Exclusive day period:: @end menu @cindex Inclusive day period @cindex Period, inclusive day @cindex Exclusive day period @cindex Period, exclusive day First of all, an @dfn{inclusive day} period @code{%@var{?}} special text can be specified with the effect, that only those fixed dates are respected and displayed which are part of this period. And the specification of an @dfn{exclusive day} period @code{%@var{?}} special text has the effect, that only those fixed dates are respected and displayed which are not part of this period. Cleverly combined, these special texts also offer very effective filtration capabilities used for the definition of very special periods. For example: @example 0*d1#999 Every day of year: all Mondays@dots{}Fridays\ except Wednesdays and all legal holidays\ %r%F%V ; 00001001#9999 Every day in last quarter of year: all holidays\ which are not on a Sunday%x %P @end example @node Inclusive day period, Exclusive day period, Exclusions without any argument, Exclusions without any argument @appendixsubsubsec Inclusive day period @code{%@var{?}} special texts @cindex @code{%@var{?}} special texts, inclusive day period @cindex Special texts @code{%@var{?}}, inclusive day period @cindex Inclusive day period @code{%@var{?}} special texts The following inclusive day periods @code{%@var{?}} special texts are respected, at which @emph{inclusive} is meant for the period which is not excluded. @table @code @item %v @cindex @code{%v} special text, inclusive legal holidays @cindex Special text @code{%v}, inclusive legal holidays @cindex Inclusive legal holidays @code{%v} special text Excludes fixed date in case it is not listed as legal holiday in the @emph{eternal holiday list}@. @item %x @cindex @code{%x} special text, inclusive all holidays @cindex Special text @code{%x}, inclusive all holidays @cindex Inclusive all holidays @code{%x} special text Excludes fixed date in case it is neither listed as legal holiday nor memorial day in the @emph{eternal holiday list}@. @item %a @cindex @code{%a} special text, inclusive Monday @cindex Special text @code{%a}, inclusive Monday @cindex Inclusive Monday @code{%a} special text Excludes fixed date in case it is no Monday. @item %c @cindex @code{%c} special text, inclusive Tuesday @cindex Special text @code{%c}, inclusive Tuesday @cindex Inclusive Tuesday @code{%c} special text Excludes fixed date in case it is no Tuesday. @item %f @cindex @code{%f} special text, inclusive Wednesday @cindex Special text @code{%f}, inclusive Wednesday @cindex Inclusive Wednesday @code{%f} special text Excludes fixed date in case it is no Wednesday. @item %g @cindex @code{%g} special text, inclusive Thursday @cindex Special text @code{%g}, inclusive Thursday @cindex Inclusive Thursday @code{%g} special text Excludes fixed date in case it is no Thursday. @item %h @cindex @code{%h} special text, inclusive Friday @cindex Special text @code{%h}, inclusive Friday @cindex Inclusive Friday @code{%h} special text Excludes fixed date in case it is no Friday. @item %l @cindex @code{%l} special text, inclusive Saturday @cindex Special text @code{%l}, inclusive Saturday @cindex Inclusive Saturday @code{%l} special text Excludes fixed date in case it is no Saturday. @item %p @cindex @code{%p} special text, inclusive Sunday @cindex Special text @code{%p}, inclusive Sunday @cindex Inclusive Sunday @code{%p} special text Excludes fixed date in case it is no Sunday. @item %q @cindex @code{%q} special text, inclusive Monday@dots{}Thursday @cindex Special text @code{%q}, inclusive Monday@dots{}Thursday @cindex Inclusive Monday@dots{}Thursday @code{%q} special text Excludes fixed date in case it is no Monday@dots{}Thursday. @item %r @cindex @code{%r} special text, inclusive Monday@dots{}Friday @cindex Special text @code{%r}, inclusive Monday@dots{}Friday @cindex Inclusive Monday@dots{}Friday @code{%r} special text Excludes fixed date in case it is no Monday@dots{}Friday. @end table @node Exclusive day period, , Inclusive day period, Exclusions without any argument @appendixsubsubsec Exclusive day period @code{%@var{?}} special texts @cindex @code{%@var{?}} special texts, exclusive day period @cindex Special texts @code{%@var{?}}, exclusive day period @cindex Exclusive day period @code{%@var{?}} special texts The following exclusive day periods @code{%@var{?}} special texts are respected, at which @emph{exclusive} is meant for the period which is excluded. @table @code @item %V @cindex @code{%V} special text, exclusive legal holidays @cindex Special text @code{%V}, exclusive legal holidays @cindex Exclusive legal holidays @code{%V} special text Excludes fixed date in case it is listed as legal holiday in the @emph{eternal holiday list}@. @item %X @cindex @code{%X} special text, exclusive all holidays @cindex Special text @code{%X}, exclusive all holidays @cindex Exclusive all holidays @code{%X} special text Excludes fixed date in case it is either listed as legal holiday or memorial day in the @emph{eternal holiday list}@. @item %A @cindex @code{%A} special text, exclusive Monday @cindex Special text @code{%A}, exclusive Monday @cindex Exclusive Monday @code{%A} special text Excludes fixed date in case it is a Monday. @item %C @cindex @code{%C} special text, exclusive Tuesday @cindex Special text @code{%C}, exclusive Tuesday @cindex Exclusive Tuesday @code{%C} special text Excludes fixed date in case it is a Tuesday. @item %F @cindex @code{%F} special text, exclusive Wednesday @cindex Special text @code{%F}, exclusive Wednesday @cindex Exclusive Wednesday @code{%F} special text Excludes fixed date in case it is a Wednesday. @item %G @cindex @code{%G} special text, exclusive Thursday @cindex Special text @code{%G}, exclusive Thursday @cindex Exclusive Thursday @code{%G} special text Excludes fixed date in case it is a Thursday. @item %H @cindex @code{%H} special text, exclusive Friday @cindex Special text @code{%H}, exclusive Friday @cindex Exclusive Friday @code{%H} special text Excludes fixed date in case it is a Friday. @item %L @cindex @code{%L} special text, exclusive Saturday @cindex Special text @code{%L}, exclusive Saturday @cindex Exclusive Saturday @code{%L} special text Excludes fixed date in case it is a Saturday. @item %P @cindex @code{%P} special text, exclusive Sunday @cindex Special text @code{%P}, exclusive Sunday @cindex Exclusive Sunday @code{%P} special text Excludes fixed date in case it is a Sunday. @item %Q @cindex @code{%Q} special text, exclusive Monday@dots{}Thursday @cindex Special text @code{%Q}, exclusive Monday@dots{}Thursday @cindex Exclusive Monday@dots{}Thursday @code{%Q} special text Excludes fixed date in case it is a Monday@dots{}Thursday. @item %R @cindex @code{%R} special text, exclusive Monday@dots{}Friday @cindex Special text @code{%R}, exclusive Monday@dots{}Friday @cindex Exclusive Monday@dots{}Friday @code{%R} special text Excludes fixed date in case it is a Monday@dots{}Friday. @end table @node Replacements, Shell Command, Exclusions, Special Texts @appendixsec @code{%@var{?}}@dots{} special texts for text replacement @cindex @code{%@var{?}}@dots{} special texts, text replacement @cindex Special texts @code{%@var{?}}@dots{}, text replacement @cindex Text replacement @code{%@var{?}}@dots{} special texts @menu * Replacements with date argument:: * Replacements with other argument:: * Replacements without any argument:: @end menu @code{%@var{?}}@dots{} special texts which are replaced by particular texts at program run-time causes the interspersing of data into the fixed date text, which quality is essentially depending on the command line arguments given for running the program. The complete special text is always replaced accordingly in output if the fixed date text must be displayed. Cleverly combined, these special texts also offer very effective mechanisms used for the definition of particular texts in a highly flexible manner, for example: @example 0*d1#999 Every day of year: Today is %K, the %n (%N) @end example @node Replacements with date argument, Replacements with other argument, Replacements, Replacements @appendixsubsec Replacements with date argument @code{%@var{?}@r{[}@var{date}@r{]}} special texts @cindex @code{%@var{?}@r{[}@var{date}@r{]}} special texts, replacements with date argument @cindex Special texts @code{%@var{?}@r{[}@var{date}@r{]}}, replacements with date argument @cindex Replacements with date argument @code{%@var{?}@r{[}@var{date}@r{]}} special texts @menu * Weekday name:: * Weekday number:: * Day-of-year number:: * Day number:: * Week number:: * Month name:: * Month number:: * Year number:: * Moon phase:: * Biorhythm:: * Difference value:: @end menu Apart from different representations of a weekday name, it is possible to create its weekday number. Likewise, the current day-of-year number, the day number, the week number, the month name, the month number, the year number, the Moon phase, the biorhythm, and some useful difference values can be produced. For the @var{date} argument these @code{%@var{?}@r{[}@var{date}@r{]}} special text may have, the following rules concerning definite omission values are valid, elucidated by using the @w{@code{@var{yyyy}@r{[}@var{mm}@r{[}@var{dd}@r{|}@var{www}@var{n}@r{]]}}} date format@footnote{The succeeding rules are analogously valid for the other permitted date formats.}: @itemize @bullet @item If @var{yyyy}@dots{} is not given (@equiv{}@strong{no} date encoded), the current year is assumed for the date. @item If @var{yyyy} is set to @code{0000}, the current year is assumed for the year. @item If @var{mm} is not given or set to @code{00}, the current month is assumed for the month, and the December is assumed in case @var{mm} is set to @code{99}@. @item If @w{@var{dd}|@var{www}} is not given or set to @code{00}, the current day is assumed for the day, and the last day of the month is assumed in case @var{dd} is set to @code{99}@. @item If the @var{n} field is given (range @w{@code{1@r{@dots{}}5}} or @code{9}), then a @var{www} field must also be specified. @end itemize @node Weekday name, Weekday number, Replacements with date argument, Replacements with date argument @appendixsubsubsec Weekday name @code{%@r{[}@var{format}@r{]}K@r{[}@var{date}@r{]}} special text @cindex @code{%@r{[}@var{format}@r{]}K@r{[}@var{date}@r{]}} special text, weekday name @cindex Special text @code{%@r{[}@var{format}@r{]}K@r{[}@var{date}@r{]}}, weekday name @cindex Weekday name @code{%@r{[}@var{format}@r{]}K@r{[}@var{date}@r{]}} special text @table @code @item %K@r{[}@var{date}@r{]} @cindex @code{%K@r{[}@var{date}@r{]}} special text, complete weekday name @cindex Special text @code{%K@r{[}@var{date}@r{]}}, complete weekday name @cindex Complete weekday name @code{%K@r{[}@var{date}@r{]}} special text Is replaced by the complete @strong{weekday name} of the current day, e.g.@:: @quotation The text @w{@samp{Today is %K , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is Monday, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @item %>3#K@r{[}@var{date}@r{]} @cindex @code{%>3#K@r{[}@var{date}@r{]}} special text, 3-letter weekday name @cindex Special text @code{%>3#K@r{[}@var{date}@r{]}}, 3-letter weekday name @cindex 3-letter weekday name @code{%>3#K@r{[}@var{date}@r{]}} special text Is replaced by the 3-letter @strong{weekday name} of the current day, e.g.@:: @quotation The text @w{@samp{Today is %>3#K0@@t+1 , the %n+1}} will be expanded to@* @w{@expansion{} @samp{Today is Tue, the 11-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @item %>2#K@r{[}@var{date}@r{]} @cindex @code{%>2#K@r{[}@var{date}@r{]}} special text, 2-letter weekday name @cindex Special text @code{%>2#K@r{[}@var{date}@r{]}}, 2-letter weekday name @cindex 2-letter weekday name @code{%>2#K@r{[}@var{date}@r{]}} special text Is replaced by the 2-letter @strong{weekday name} of the current day, e.g.@:: @quotation The text @w{@samp{Today is %>2#K , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is Mo, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @end table @node Weekday number, Day-of-year number, Weekday name, Replacements with date argument @appendixsubsubsec Weekday number @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts @cindex @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts, weekday number @cindex Special texts @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts The following weekday number @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts are respected, e.g.@:: @table @code @item %W@r{[}@var{date}@r{]} @cindex @code{%W@r{[}@var{date}@r{]}} special text, weekday number @cindex Special text @code{%W@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%W@r{[}@var{date}@r{]}} special text Is replaced by the @strong{weekday number} of the current day, and which is determined by the @cite{Monday@equiv{}1@dots{}Sunday@equiv{}7} counting method, e.g.@:: @quotation The text @w{@samp{Today is weekday %W , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is weekday 1, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @item %>1&*W@r{[}@var{date}@r{]} @cindex @code{%>1&*W@r{[}@var{date}@r{]}} special text, weekday number @cindex Special text @code{%>1&*W@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%>1&*W@r{[}@var{date}@r{]}} special text Is replaced by the @strong{weekday number} with trailing Ordinal Number suffix of the current day, and which is determined by the @cite{Monday@equiv{}1@dots{}Sunday@equiv{}7} counting method, e.g.@:: @quotation The text @w{@samp{Today is weekday %>1&*W0@@t+1 , the %n+1}} will be expanded to@* @w{@expansion{} @samp{Today is weekday 2nd, the 11-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @item %E@r{[}@var{date}@r{]} @cindex @code{%E@r{[}@var{date}@r{]}} special text, weekday number @cindex Special text @code{%E@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%E@r{[}@var{date}@r{]}} special text Is replaced by the @strong{weekday number} of the current day, and which is determined by the @cite{Monday@equiv{}0@dots{}Sunday@equiv{}6} counting method, e.g.@:: @quotation The text @w{@samp{Today is weekday %E , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is weekday 0, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @item %>1&*E@r{[}@var{date}@r{]} @cindex @code{%>1&*E@r{[}@var{date}@r{]}} special text, weekday number @cindex Special text @code{%>1&*E@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%>1&*E@r{[}@var{date}@r{]}} special text Is replaced by the @strong{weekday number} with trailing Ordinal Number suffix of the current day, and which is determined by the @cite{Monday@equiv{}0@dots{}Sunday@equiv{}6} counting method, e.g.@:: @quotation The text @w{@samp{Today is weekday %>1&*E , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is weekday 0th, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @item %I@r{[}@var{date}@r{]} @cindex @code{%I@r{[}@var{date}@r{]}} special text, weekday number @cindex Special text @code{%I@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%I@r{[}@var{date}@r{]}} special text Is replaced by the @strong{weekday number} of the current day, and which is determined by the @cite{Sunday@equiv{}1@dots{}Saturday@equiv{}7} counting method, e.g.@:: @quotation The text @w{@samp{Today is weekday %I , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is weekday 2, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @item %>1&*I@r{[}@var{date}@r{]} @cindex @code{%>1&*I@r{[}@var{date}@r{]}} special text, weekday number @cindex Special text @code{%>1&*I@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%>1&*I@r{[}@var{date}@r{]}} special text Is replaced by the @strong{weekday number} with trailing Ordinal Number suffix of the current day, and which is determined by the @cite{Sunday@equiv{}1@dots{}Saturday@equiv{}7} counting method, e.g.@:: @quotation The text @w{@samp{Today is weekday %>1&*I , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is weekday 2nd, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @item %J@r{[}@var{date}@r{]} @cindex @code{%J@r{[}@var{date}@r{]}} special text, weekday number @cindex Special text @code{%J@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%J@r{[}@var{date}@r{]}} special text Is replaced by the @strong{weekday number} of the current day, and which is determined by the @cite{Sunday@equiv{}0@dots{}Saturday@equiv{}6} counting method, e.g.@:: @quotation The text @w{@samp{Today is weekday %J , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is weekday 1, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @item %>1&*J@r{[}@var{date}@r{]} @cindex @code{%>1&*J@r{[}@var{date}@r{]}} special text, weekday number @cindex Special text @code{%>1&*J@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%>1&*J@r{[}@var{date}@r{]}} special text Is replaced by the @strong{weekday number} with trailing Ordinal Number suffix of the current day, and which is determined by the @cite{Sunday@equiv{}0@dots{}Saturday@equiv{}6} counting method, e.g.@:: @quotation The text @w{@samp{Today is weekday %>1&*J , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is weekday 1st, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @item %S@r{[}@var{date}@r{]} @cindex @code{%S@r{[}@var{date}@r{]}} special text, weekday number @cindex Special text @code{%S@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%S@r{[}@var{date}@r{]}} special text Is replaced by the @strong{weekday number} of the current day, and which is determined by the @cite{@var{starting day of week}@equiv{}1@dots{}@var{ending day of week}@equiv{}7} counting method (@pxref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}), e.g.@:: @quotation The text @w{@samp{Today is weekday %S , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is weekday 4, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996 and Friday (@equiv{}5) is the starting day of week. @end quotation @item %>1&*S@r{[}@var{date}@r{]} @cindex @code{%>1&*S@r{[}@var{date}@r{]}} special text, weekday number @cindex Special text @code{%>1&*S@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%>1&*S@r{[}@var{date}@r{]}} special text Is replaced by the @strong{weekday number} with trailing Ordinal Number suffix of the current day, and which is determined by the @cite{@var{starting day of week}@equiv{}1@dots{}@var{ending day of week}@equiv{}7} counting method (@pxref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}), e.g.@:: @quotation The text @w{@samp{Today is weekday %>1&*S , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is weekday 4th, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996 and Friday (@equiv{}5) is the starting day of week. @end quotation @item %T@r{[}@var{date}@r{]} @cindex @code{%T@r{[}@var{date}@r{]}} special text, weekday number @cindex Special text @code{%T@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%T@r{[}@var{date}@r{]}} special text Is replaced by the @strong{weekday number} of the current day, and which is determined by the @cite{@var{starting day of week}@equiv{}0@dots{}@var{ending day of week}@equiv{}6} counting method (@pxref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}), e.g.@:: @quotation The text @w{@samp{Today is weekday %T , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is weekday 3, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996 and Friday (@equiv{}5) is the starting day of week. @end quotation @need 2000 @item %>1&*T@r{[}@var{date}@r{]} @cindex @code{%>1&*T@r{[}@var{date}@r{]}} special text, weekday number @cindex Special text @code{%>1&*T@r{[}@var{date}@r{]}}, weekday number @cindex Weekday number @code{%>1&*T@r{[}@var{date}@r{]}} special text Is replaced by the @strong{weekday number} with trailing Ordinal Number suffix of the current day, and which is determined by the @cite{@var{starting day of week}@equiv{}0@dots{}@var{ending day of week}@equiv{}6} counting method (@pxref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}), e.g.@:: @quotation The text @w{@samp{Today is weekday %>1&*T , the %n}} will be expanded to@* @w{@expansion{} @samp{Today is weekday 3rd, the 10-Jun-1996}}, in case the actual system date is the 10th June 1996 and Friday (@equiv{}5) is the starting day of week. @end quotation @end table @node Day-of-year number, Day number, Weekday number, Replacements with date argument @appendixsubsubsec Day-of-year number @code{%@r{[}@var{format}@r{]}N@r{[}@var{date}@r{]}} special text @cindex @code{%@r{[}@var{format}@r{]}N@r{[}@var{date}@r{]}} special text, day-of-year number @cindex Special text @code{%@r{[}@var{format}@r{]}N@r{[}@var{date}@r{]}}, day-of-year number @cindex Day-of-year number @code{%@r{[}@var{format}@r{]}N@r{[}@var{date}@r{]}} special text @table @code @item %N@r{[}@var{date}@r{]} @cindex @code{%N@r{[}@var{date}@r{]}} special text, day-of-year number @cindex Special text @code{%N@r{[}@var{date}@r{]}}, day-of-year number @cindex Day-of-year number @code{%N@r{[}@var{date}@r{]}} special text Is replaced by the @strong{day-of-year number} of the current day of year, e.g.@:: @quotation The text @w{@samp{Day %N @ of year, the %n}} will be expanded to@* @w{@expansion{} @samp{Day 53 of year, the 22-Feb-1996}}, in case the actual system date is the 22nd February 1996@. @end quotation @item %>03*N@r{[}@var{date}@r{]} @cindex @code{%>03*N@r{[}@var{date}@r{]}} special text, day-of-year number @cindex Special text @code{%>03*N@r{[}@var{date}@r{]}}, day-of-year number @cindex Day-of-year number @code{%>03*N@r{[}@var{date}@r{]}} special text Is replaced by the 3-digit @strong{day-of-year number} with leading zeroes of the current day of year, e.g.@:: @quotation The text @w{@samp{Day %>03*N0@@t-1 @ of year, the %n-1}} will be expanded to@* @w{@expansion{} @samp{Day 052 of year, the 21-Feb-1996}}, in case the actual system date is the 22nd February 1996@. @end quotation @item %>1&*N@r{[}@var{date}@r{]} @cindex @code{%>1&*N@r{[}@var{date}@r{]}} special text, day-of-year number @cindex Special text @code{%>1&*N@r{[}@var{date}@r{]}}, day-of-year number @cindex Day-of-year number @code{%>1&*N@r{[}@var{date}@r{]}} special text Is replaced by the @strong{day-of-year number} with trailing Ordinal Number suffix of the current day of year, e.g.@:: @quotation The text @w{@samp{Day %>1&*N @ of year, the %n}} will be expanded to@* @w{@expansion{} @samp{Day 53rd of year, the 22-Feb-1996}}, in case the actual system date is the 22nd February 1996@. @end quotation @item %>03&*N@r{[}@var{date}@r{]} @cindex @code{%>03&*N@r{[}@var{date}@r{]}} special text, day-of-year number @cindex Special text @code{%>03&*N@r{[}@var{date}@r{]}}, day-of-year number @cindex Day-of-year number @code{%>03&*N@r{[}@var{date}@r{]}} special text Is replaced by the 3-digit @strong{day-of-year number} with leading zeroes and trailing Ordinal Number suffix of the current day of year, e.g.@:: @quotation The text @w{@samp{Day %>03&*N @ of year, the %n}} will be expanded to@* @w{@expansion{} @samp{Day 053rd of year, the 22-Feb-1996}}, in case the actual system date is the 22nd February 1996@. @end quotation @end table @node Day number, Week number, Day-of-year number, Replacements with date argument @appendixsubsubsec Day number @code{%@r{[}@var{format}@r{]}D@r{[}@var{date}@r{]}} special text @cindex @code{%@r{[}@var{format}@r{]}D@r{[}@var{date}@r{]}} special text, day number @cindex Special text @code{%@r{[}@var{format}@r{]}D@r{[}@var{date}@r{]}}, day number @cindex Day number @code{%@r{[}@var{format}@r{]}D@r{[}@var{date}@r{]}} special text @table @code @item %D@r{[}@var{date}@r{]} @cindex @code{%D@r{[}@var{date}@r{]}} special text, day number @cindex Special text @code{%D@r{[}@var{date}@r{]}}, day number @cindex Day number @code{%D@r{[}@var{date}@r{]}} special text Is replaced by the @strong{day number} of the current day of month, e.g.@:: @quotation The text @w{@samp{Day %D , %n}} will be expanded to@* @w{@expansion{} @samp{Day 2, 02-Feb-1996}}, in case the actual system date is the 2nd February 1996@. @end quotation @need 2000 @item %>02*D@r{[}@var{date}@r{]} @cindex @code{%>02*D@r{[}@var{date}@r{]}} special text, day number @cindex Special text @code{%>02*D@r{[}@var{date}@r{]}}, day number @cindex Day number @code{%>02*D@r{[}@var{date}@r{]}} special text Is replaced by the 2-digit @strong{day number} with leading zero of the current day of month, e.g.@:: @quotation The text @w{@samp{Day %>02*D0@@t-1 , %n-1}} will be expanded to@* @w{@expansion{} @samp{Day 01, 01-Feb-1996}}, in case the actual system date is the 2nd February 1996@. @end quotation @item %>1&*D@r{[}@var{date}@r{]} @cindex @code{%>1&*D@r{[}@var{date}@r{]}} special text, day number @cindex Special text @code{%>1&*D@r{[}@var{date}@r{]}}, day number @cindex Day number @code{%>1&*D@r{[}@var{date}@r{]}} special text Is replaced by the @strong{day number} with trailing Ordinal Number suffix of the current day of month, e.g.@:: @quotation The text @w{@samp{Day %>1&*D , %n}} will be expanded to@* @w{@expansion{} @samp{Day 2nd, 02-Feb-1996}}, in case the actual system date is the 2nd February 1996@. @end quotation @item %>02&*D@r{[}@var{date}@r{]} @cindex @code{%>02&*D@r{[}@var{date}@r{]}} special text, day number @cindex Special text @code{%>02&*D@r{[}@var{date}@r{]}}, day number @cindex Day number @code{%>02&*D@r{[}@var{date}@r{]}} special text Is replaced by the 2-digit @strong{day number} with leading zero and trailing Ordinal Number suffix of the current day of month, e.g.@:: @quotation The text @w{@samp{Day %>02&*D , %n}} will be expanded to@* @w{@expansion{} @samp{Day 02nd, 02-Feb-1996}}, in case the actual system date is the 2nd February 1996@. @end quotation @end table @node Week number, Month name, Day number, Replacements with date argument @appendixsubsubsec Week number @code{%k@r{[}@var{date}@r{]}} special text @cindex @code{%k@r{[}@var{date}@r{]}} special text, week number @cindex Special text @code{%k@r{[}@var{date}@r{]}}, week number @cindex Week number @code{%k@r{[}@var{date}@r{]}} special text @table @code @item %k@r{[}@var{date}@r{]} @cindex @acronym{ISO}-8601:1988 week number @cindex Week number, @acronym{ISO}-8601:1988 @cindex Standard week number @cindex Week number, standard Is replaced by either the 2-digit @strong{@acronym{ISO} week number} or the @strong{standard week number} with leading zero, or a 4-alphanumeric character text of the current week of year@* (see @ref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}, @ref{x-iso-week-number, , Calendar option @option{--iso-week-number=yes@r{|}no}}, and @ref{Internationalization, , Aspects in Internationalization}, for further details), e.g.@:: @quotation The text @w{@samp{Today is %K @ of week %k}} will be expanded to@* @w{@expansion{} @samp{Today is Monday of week 24}}, in case the actual system date is the 10th June 1996@. @end quotation @end table @node Month name, Month number, Week number, Replacements with date argument @appendixsubsubsec Month name @code{%@r{[}@var{format}@r{]}U@r{[}@var{date}@r{]}} special text @cindex @code{%@r{[}@var{format}@r{]}U@r{[}@var{date}@r{]}} special text, month name @cindex Special text @code{%@r{[}@var{format}@r{]}U@r{[}@var{date}@r{]}}, month name @cindex Month name @code{%@r{[}@var{format}@r{]}U@r{[}@var{date}@r{]}} special text @table @code @item %U@r{[}@var{date}@r{]} @cindex @code{%U@r{[}@var{date}@r{]}} special text, complete month name @cindex Special text @code{%U@r{[}@var{date}@r{]}}, complete month name @cindex Complete month name @code{%U@r{[}@var{date}@r{]}} special text Is replaced by the complete @strong{month name} of the current month of year, e.g.@:: @quotation The text @w{@samp{Today is %U , %n}} will be expanded to@* @w{@expansion{} @samp{Today is June, 10-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @item %>3#U@r{[}@var{date}@r{]} @cindex @code{%>3#U@r{[}@var{date}@r{]}} special text, 3-letter month name @cindex Special text @code{%>3#U@r{[}@var{date}@r{]}}, 3-letter month name @cindex 3-letter month name @code{%>3#U@r{[}@var{date}@r{]}} special text Is replaced by the 3-letter @strong{month name} of the current month of year, e.g.@:: @quotation The text @w{@samp{Today is %>3#U19961010 , %n}} will be expanded to@* @w{@expansion{} @samp{Today is Oct, 10-Jun-1996}}, in case the actual system date is the 10th June 1996@. @end quotation @end table @node Month number, Year number, Month name, Replacements with date argument @appendixsubsubsec Month number @code{%@r{[}@var{format}@r{]}M@r{[}@var{date}@r{]}} special text @cindex @code{%@r{[}@var{format}@r{]}M@r{[}@var{date}@r{]}} special text, month number @cindex Special text @code{%@r{[}@var{format}@r{]}M@r{[}@var{date}@r{]}}, month number @cindex Month number @code{%@r{[}@var{format}@r{]}M@r{[}@var{date}@r{]}} special text @table @code @item %M@r{[}@var{date}@r{]} @cindex @code{%M@r{[}@var{date}@r{]}} special text, month number @cindex Special text @code{%M@r{[}@var{date}@r{]}}, month number @cindex Month number @code{%M@r{[}@var{date}@r{]}} special text Is replaced by the @strong{month number} of the current month of year, e.g.@:: @quotation The text @w{@samp{Month %M , %n}} will be expanded to@* @w{@expansion{} @samp{Month 2, 22-Feb-1996}}, in case the actual system date is the 22nd February 1996@. @end quotation @item %>02*M@r{[}@var{date}@r{]} @cindex @code{%>02*M@r{[}@var{date}@r{]}} special text, month number @cindex Special text @code{%>02*M@r{[}@var{date}@r{]}}, month number @cindex Month number @code{%>02*M@r{[}@var{date}@r{]}} special text Is replaced by the 2-digit @strong{month number} with leading zero of the current month of year, e.g.@:: @quotation The text @w{@samp{Month %>02*M000001 , %n}} will be expanded to@* @w{@expansion{} @samp{Month 01, 22-Feb-1996}}, in case the actual system date is the 22nd February 1996@. @end quotation @item %>1&*M@r{[}@var{date}@r{]} @cindex @code{%>1&*M@r{[}@var{date}@r{]}} special text, month number @cindex Special text @code{%>1&*M@r{[}@var{date}@r{]}}, month number @cindex Month number @code{%>1&*M@r{[}@var{date}@r{]}} special text Is replaced by the @strong{month number} with trailing Ordinal Number suffix of the current month of year, e.g.@:: @quotation The text @w{@samp{Month %>1&*M , %n}} will be expanded to@* @w{@expansion{} @samp{Month 2nd, 22-Feb-1996}}, in case the actual system date is the 22nd February 1996@. @end quotation @item %>02&*M@r{[}@var{date}@r{]} @cindex @code{%>02&*M@r{[}@var{date}@r{]}} special text, month number @cindex Special text @code{%>02&*M@r{[}@var{date}@r{]}}, month number @cindex Month number @code{%>02&*M@r{[}@var{date}@r{]}} special text Is replaced by the 2-digit @strong{month number} with leading zero and trailing Ordinal Number suffix of the current month of year, e.g.@:: @quotation The text @w{@samp{Month %>02&*M , %n}} will be expanded to@* @w{@expansion{} @samp{Month 02nd, 22-Feb-1996}}, in case the actual system date is the 22nd February 1996@. @end quotation @end table @node Year number, Moon phase, Month number, Replacements with date argument @appendixsubsubsec Year number @code{%@r{[}@var{format}@r{]}Y@r{[}@var{date}@r{]}} special text @cindex @code{%@r{[}@var{format}@r{]}Y@r{[}@var{date}@r{]}} special text, year number @cindex Special text @code{%@r{[}@var{format}@r{]}Y@r{[}@var{date}@r{]}}, year number @cindex Year number @code{%@r{[}@var{format}@r{]}Y@r{[}@var{date}@r{]}} special text @table @code @item %Y@r{[}@var{date}@r{]} @cindex @code{%Y@r{[}@var{date}@r{]}} special text, year number @cindex Special text @code{%Y@r{[}@var{date}@r{]}}, year number @cindex Year number @code{%Y@r{[}@var{date}@r{]}} special text Is replaced by the @strong{year number} of the current year, e.g.@:: @quotation The text @w{@samp{Year %Y , %n}} will be expanded to@* @w{@expansion{} @samp{Year 933, 22-Feb-0933}}, in case the actual system date is the 22nd February 933@. @end quotation @item %>04*Y@r{[}@var{date}@r{]} @cindex @code{%>04*Y@r{[}@var{date}@r{]}} special text, year number @cindex Special text @code{%>04*Y@r{[}@var{date}@r{]}}, year number @cindex Year number @code{%>04*Y@r{[}@var{date}@r{]}} special text Is replaced by the 4-digit @strong{complete year number} with leading zeroes of the current year, e.g.@:: @quotation The text @w{@samp{Year %>04*Y0015 , %n}} will be expanded to@* @w{@expansion{} @samp{Year 0015, 22-Feb-0933}}, in case the actual system date is the 22nd February 933@. @end quotation @end table @node Moon phase, Biorhythm, Year number, Replacements with date argument @appendixsubsubsec Moon phase @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts @cindex @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts, Moon phase @cindex Special texts @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}}, Moon phase @cindex Moon phase @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) Gcal uses a very simple algorithm for detecting the Moon phase, which computes approximate values only. The Moon phase is always calculated for 0 @w{o'clock} Universal time @w{(UTC/GMT)}@. @xref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, how to change the base time for which the astronomical functions are calculated. The following Moon phase @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts are respected: @need 800 @table @code @item %O@r{[}@var{date}@r{]} @cindex @code{%O@r{[}@var{date}@r{]}} special text, Moon phase text @cindex Special text @code{%O@r{[}@var{date}@r{]}}, Moon phase text @cindex Moon phase text @code{%O@r{[}@var{date}@r{]}} special text Is replaced by the @strong{Moon phase text} of the current day of year, e.g.@:: @quotation The text @w{@samp{Moon phase %O , %n}} will be expanded to@* @w{@expansion{} @samp{Moon phase 94%+, 22-Dec-1996}}, in case the actual system date is the 22nd December 1996@. @end quotation The constructed Moon phase text consists of a percent value, which informs about the illuminated fraction of the Moon's disk, and a trailing sign that tells something about the state of the Moon. A trailing @samp{+} sign indicates a waxing Moon, a @samp{-} sign a waning Moon, a @samp{@@} sign indicates the Full Moon phase, and a @samp{!} sign the New Moon phase. @item %>03*O@r{[}@var{date}@r{]} @cindex @code{%>03*O@r{[}@var{date}@r{]}} special text, Moon phase text @cindex Special text @code{%>03*O@r{[}@var{date}@r{]}}, Moon phase text @cindex Moon phase text @code{%>03*O@r{[}@var{date}@r{]}} special text Is replaced by the 3-digit @strong{Moon phase text} with leading zeroes of the current day of year, e.g.@:: @quotation The text @w{@samp{Moon phase %>03*O0@@t+1 , %n+1}} will be expanded to@* @w{@expansion{} @samp{Moon phase 098%+, 23-Dec-1996}}, in case the actual system date is the 22nd December 1996@. @end quotation The constructed Moon phase text consists of a percent value, which informs about the illuminated fraction of the Moon's disk, and a trailing sign that tells something about the state of the Moon. A trailing @samp{+} sign indicates a waxing Moon, a @samp{-} sign a waning Moon, a @samp{@@} sign indicates the Full Moon phase, and a @samp{!} sign the New Moon phase. @item %Z@r{[}@var{date}@r{]} @cindex @code{%Z@r{[}@var{date}@r{]}} special text, Moon phase text graphics @cindex Special text @code{%Z@r{[}@var{date}@r{]}}, Moon phase text graphics @cindex Moon phase text graphics @code{%Z@r{[}@var{date}@r{]}} special text Is replaced by the @strong{Moon phase text graphics} of the current day of year, e.g.@:: @quotation The text @w{@samp{Date %n %Z @ --- Moon phase %>03*O ~Text}} will be expanded to@* @w{@expansion{} @samp{Date 08-Mar-1995 }}@* @w{@expansion{} @samp{ @ @ @ @ @ @ @ @ @ @ ( @ @ @ @ @ @ @@@@@@@@@@@@}}@* @w{@expansion{} @samp{ @ @ @ @ @ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@}}@* @w{@expansion{} @samp{ @ @ @ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@}}@* @w{@expansion{} @samp{ @ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@}}@* @w{@expansion{} @samp{ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@}}@* @w{@expansion{} @samp{( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@}}@* @w{@expansion{} @samp{( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@}}@* @w{@expansion{} @samp{ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@}}@* @w{@expansion{} @samp{ @ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@}}@* @w{@expansion{} @samp{ @ @ ( @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@}}@* @w{@expansion{} @samp{ @ @ @ @ @ ( @ @ @ @ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@}}@* @w{@expansion{} @samp{ @ @ @ @ @ @ @ @ @ @ ( @ @ @ @ @ @ @ @@@@@@@@@@@@@@ --- Moon phase 041%+}}@* @w{@expansion{} @samp{Text}}, in case the actual system date is the 8th March 1995@. @end quotation @xref{x-moonimage-lines, , Fixed date option @option{--moonimage-lines=@var{number}}}, how to change the size of a Moon phase text graphics. A possibly specified @var{format} within this special text is ignored by Gcal. @end table @need 1500 @node Biorhythm, Difference value, Moon phase, Replacements with date argument @appendixsubsubsec Biorhythm @code{%@var{?}@r{[}@var{date}@r{]}} special texts @cindex @code{%@var{?}@r{[}@var{date}@r{]}} special texts, biorhythm @cindex Special texts @code{%@var{?}@r{[}@var{date}@r{]}}, biorhythm @cindex Biorhythm @code{%@var{?}@r{[}@var{date}@r{]}} special texts Gcal is able to create a @dfn{biorhythm} for any specified date of birth. The created text shows the three standard biorhythm cycles, and that are the 28 day emotional cycle, the 33 day intellectual cycle, and the 23 day physical cycle. The emotional cycle governs sensibility, nerves, moodiness, and creative ability. The intellectual cycle reflects intelligence, memory, mental alertness, and reasoning power. The physical cycle represents physical strength, endurance, energy and resistance. All cycles start in the zero point at the date of birth and swing like sine curves between their positive and negative maximum values. The periods above the zero point show the days of full vitality and efficiency while the periods below the zero point indicate days of reduced efficiency. The biorhythm is implemented for entertaining purposes only! It is up to the user to interpret the biorhythm texts. @cindex Biorhythm, critical day @cindex Critical day, biorhythm @cindex Biorhythm, positive day @cindex Positive day, biorhythm @cindex Biorhythm, negative day @cindex Negative day, biorhythm Gcal counts @dfn{critical} days, @dfn{positive} likewise @dfn{negative} days. Critical days are those days in which one or more of the biological cycles crosses the zero point. At that time, one's system is said to be in a state of flux and it may be desirable to exhibit caution. Positive days are those days in which one or more of the biological cycles have a positive maximum value. At that time, one's system is said to be in a raised state. Negative days are those days in which one or more of the biological cycles have a negative maximum value. At that time, one's system is said to be in a lessen state. The following biorhythm @code{%@var{?}@r{[}@var{date}@r{]}} special texts are respected: @table @code @item %,@r{[}@var{date}@r{]} @cindex @code{%,@r{[}@var{date}@r{]}} special text, biorhythm text @cindex Special text @code{%,@r{[}@var{date}@r{]}}, biorhythm text @cindex Biorhythm text @code{%,@r{[}@var{date}@r{]}} special text Is replaced by the @strong{biorhythm text} of the current day of year, e.g.@:: @quotation The text @w{@samp{%,19620921}} will be expanded to@* @w{@expansion{} @samp{1! 0+ 0- , Emo=+022%- Int=-091%+ Phy=-014%-}}, in case the actual system date is the 12th December 1996@. @end quotation The preceding example shows the calculated biorhythm expressed as a series of values for a person born in 1962, September 21st. The constructed text consists of two parts, and that is on the one hand a triplet of total values which indicate the critical, positive and negative day. And on the other hand a triplet of values which indicate the emotional, intellectual and physical cycle. In the first triplet of total values, a @samp{!} suffix means a critical day, a @samp{+} indicates a positive day, and a @samp{-} suffix marks a negative day. In the second triplet of values, each single cycle percent value consists of a leading positive or negative sign that tells something about the distance of this value to the zero point, and a trailing character that tells something about the state of each cycle. A trailing @samp{+} character marks a waxing phase, a @samp{-} suffix means a waning phase, and a @samp{@@} indicates the maximum value of a phase. @item %;@r{[}@var{date}@r{]} @cindex @code{%;@r{[}@var{date}@r{]}} special text, biorhythm text graphics @cindex Special text @code{%;@r{[}@var{date}@r{]}}, biorhythm text graphics @cindex Biorhythm text graphics @code{%;@r{[}@var{date}@r{]}} special text Is replaced by the @strong{biorhythm text graphics} of the current day of year, e.g.@:: @quotation The text @w{@samp{%;19620921}} will be expanded to@* @w{@expansion{} @samp{0- @ I @ @ @ @ @ @ @ @ @ @ @ @ @ @ P 1 @ @ E @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ +0}}, in case the actual system date is the 12th December 1996@. @end quotation The preceding example shows the calculated biorhythm expressed as a text graphics line for a person born in 1962, September 21st. The constructed line is a bar with a negative and positive axis of adjustable length (@pxref{x-biorhythm-axis, , Fixed date option @option{--biorhythm-axis=@var{number}}}), which left margin is represented by the total value of the negative days (the @samp{0-} in this case), and which right margin is represented by the total value of the positive days (the @samp{+0} in this case)@. The zero point of the co-ordinate is represented by the total value of the critical days, which is the @samp{1} in this case. The emotional, intellectual and the physical phase value is accordingly placed in scaled manner on this bar, and that by using the initial letter of the cycle in each case (@samp{E}, @samp{I} and @samp{P})@. Coincidental phase values are marked by a @samp{@@} character. @end table @node Difference value, , Biorhythm, Replacements with date argument @appendixsubsubsec Difference value @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts @cindex @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts, difference value @cindex Special texts @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}}, difference value @cindex Difference value @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts The following difference value @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts are respected: @table @code @item %y@var{date} @cindex @code{%y@var{date}} special text, relative year number @cindex Special text @code{%y@var{date}}, relative year number @cindex Relative year number @code{%y@var{date}} special text @cindex Year difference value Is replaced by a @strong{year difference value}, e.g.@:: @quotation The text @w{@samp{Sylvester 1912 is %y1912 @ years ago}} will be expanded to@* @w{@expansion{} @samp{Sylvester 1912 is -82 years ago}}, in case the year of the actual system date is 1994@. @end quotation @item %B@r{[}@var{date}@r{]} @cindex @code{%B@r{[}@var{date}@r{]}} special text, age value @cindex Special text @code{%B@r{[}@var{date}@r{]}}, age value @cindex Age value @code{%B@r{[}@var{date}@r{]}} special text @cindex Birthday @anchor{x-Age-value} Is replaced by an @strong{age value}, e.g.@:: @quotation The text @w{@samp{My %B1962 @ birthday%i1952#2062}} will be expanded to@* @w{@expansion{} @samp{My 32 birthday}}, in case the year of the actual system date is 1994@. @end quotation Those age values are only displayed, if the computation of an age value is greater zero. The fixed date warning in preceding example is displayed only in case the current year is greater than 1952 and less than 2062@. @item %>1&*B@r{[}@var{date}@r{]} @cindex @code{%>1&*B@r{[}@var{date}@r{]}} special text, age value @cindex Special text @code{%>1&*B@r{[}@var{date}@r{]}}, age value @cindex Age value @code{%>1&*B@r{[}@var{date}@r{]}} special text @cindex Birthday Is replaced by an @strong{age value} with trailing Ordinal Number suffix, e.g.@:: @quotation The text @w{@samp{My %>1&*B1962 @ birthday%i1952#2062}} will be expanded to@* @w{@expansion{} @samp{My 32nd birthday}}, in case the year of the actual system date is 1994@. @end quotation Those age values are only displayed, if the computation of an age value is greater zero. The fixed date warning in preceding example is displayed only in case the current year is greater than 1952 and less than 2062@. @end table @node Replacements with other argument, Replacements without any argument, Replacements with date argument, Replacements @appendixsubsec Replacements with other argument @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}} special texts @cindex @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}} special texts, replacements with other argument @cindex Special texts @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}}, replacements with other argument @cindex Replacements with other argument @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}} special texts @menu * Actual clocktime:: * Textual date:: * Julian day number:: * Geographical distance and course angle:: * Sun data:: * Moon data:: * Contents of Environment variable:: @end menu Apart from different representations of the actual system time, a fixed format date text can be created. Moreover, it is possible to produce a day number, which bears the Julian date as base date and which can be deferred if needed. Furthermore, the approximate distance and the course angle between two geographic point locations, and different Sun and Moon oriented data and times for at pleasure any geographical location can be created. It is also possible to display the contents of environment variables in the fixed date text. For the @var{argument} these @code{%@var{?}@r{[}@var{argument}@r{]}} special texts may have, no special rules concerning definite omission values are valid. @node Actual clocktime, Textual date, Replacements with other argument, Replacements with other argument @appendixsubsubsec Actual clocktime @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}} special texts @cindex @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}} special texts, actual clocktime @cindex Special texts @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}}, actual clocktime @cindex Actual clocktime @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}} special texts @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) Gcal is able to represent the actual clocktime as local/zone time and as Universal time @w{(UTC/GMT)}, and additionally the @acronym{RFC}-822@footnote{@acronym{RFC} is the abbreviation of @cite{Request for Comments}@.} style numerical Universal time timezone offset value and the actual numerical local time timezone offset value. @xref{x-Actual-local-time, Actual local time @code{%t@r{[}@var{argument}@r{]}} special text, Actual local time in @code{@var{hh}:@var{mm}} format @code{%t@r{[}@var{argument}@r{]}} special text}, for the detailed description of all components of the @var{argument}, which may trail the actual clocktime @w{@code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}}} special texts. All actual clocktime @w{@code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}}} special texts @strong{must} always be trailed by a @emph{whitespace} character which is removed in output! The following actual clocktime @w{@code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}}} special texts are respected: @table @code @item %t@r{[}@var{argument}@r{]} @cindex @code{%t@r{[}@var{argument}@r{]}} special text, actual local time in @w{@code{@var{hh}:@var{mm}}} format @cindex Special text @code{%t@r{[}@var{argument}@r{]}}, actual local time in @w{@code{@var{hh}:@var{mm}}} format @cindex Actual local time in @w{@code{@var{hh}:@var{mm}}} format @code{%t@r{[}@var{argument}@r{]}} special text @cindex Local time in @w{@code{@var{hh}:@var{mm}}} format, display @code{%t@r{[}*@r{][[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the @strong{actual local time}, which is displayed by using the @w{@code{@var{hh}:@var{mm}}} output format, e.g.@:: @quotation The text @w{@samp{Local time: %t @ --> Dentist at 10:00}} will be expanded to@* @w{@expansion{} @samp{Local time: 07:32 --> Dentist at 10:00}}, in case the actual local time value is @w{07:32 o'clock} @w{(@code{@var{hh}:@var{mm}})}@. @end quotation @cindex @code{%t*} special text @cindex Time, 12-hours display format @cindex 12-hours display format of time @cindex Time, 24-hours display format @cindex 24-hours display format of time If only @code{%t} is specified, the local time value will implicitly be displayed by using the @emph{24-hours} format. For displaying using the @emph{12-hours} format, add a @samp{*} character directly behind @code{%t}, e.g.@: @samp{%t*}@. @anchor{x-Actual-local-time} A displacement value may trail the @code{%t} special text, which has to be specified either by using the @w{@code{@r{[}+@r{|}-@r{]}@var{mmmm}}} format or the @w{@code{@r{[}+@r{|}-@r{]}@var{hh}:@r{[}@var{mm}@r{]}}} format. @w{@code{@r{[}+@r{|}-@r{]}@var{mmmm}}} adds respectively subtracts the specified amount of minutes @var{mmmm} from the local time value (range @w{@code{0@r{@dots{}}9999}}), while @w{@code{@r{[}+@r{|}-@r{]}@var{hh}:@r{[}@var{mm}@r{]}}} adds respectively subtracts the given amount of hours @var{hh} (range @w{@code{0@r{@dots{}}99}}) and minutes @var{mm} (range @w{@code{0@r{@dots{}}59}}) from the local time value. The displacement value is always added to the local time value in case it is specified without a @w{@code{+@r{|}-}} sign. In case Gcal is unable to compute the actual local time in @w{@code{@var{hh}:@var{mm}}} format by reason of a misspecified @var{argument}, a @w{@code{??:??}} text will be created instead of the actual local time in @w{@code{@var{hh}:@var{mm}}} format. @quotation The text @w{@samp{Local time: %t-3: @ --> Dentist at 10:00}} will be expanded to@* @w{@expansion{} @samp{Local time: 04:32 --> Dentist at 10:00}}, in case the actual local time value is @w{07:32 o'clock} @w{(@code{@var{hh}:@var{mm}})}@. @end quotation @item %@r{[}@var{format}@r{]}'@r{[}@var{argument}@r{]} @cindex @code{%@r{[}@var{format}@r{]}'@r{[}@var{argument}@r{]}} special text, actual local time in @w{@var{m}@r{[}@var{m}@r{@dots{}]}} format @cindex Special text @code{%@r{[}@var{format}@r{]}'@r{[}@var{argument}@r{]}}, actual local time in @w{@var{m}@r{[}@var{m}@r{@dots{}]}} format @cindex Actual local time in @w{@var{m}@r{[}@var{m}@r{@dots{}]}} format @code{%@r{[}@var{format}@r{]}'@r{[}@var{argument}@r{]}} special text @cindex Local time in @w{@var{m}@r{[}@var{m}@r{@dots{}]}} format, display @code{%@r{[}@var{format}@r{]}'@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the @strong{actual local time in minutes since midnight}, which is displayed by using the @w{@var{m}@r{[}@var{m}@r{@dots{}]}} output format, e.g.@:: @quotation The text @w{@samp{Local time: %' @ --> Dentist at 10:00}} will be expanded to@* @w{@expansion{} @samp{Local time: 452 --> Dentist at 10:00}}, in case the actual local time value is @w{07:32 o'clock} @w{(@code{@var{hh}:@var{mm}})}@. @end quotation In case Gcal is unable to compute the actual local time in @w{@var{m}@r{[}@var{m}@r{@dots{}]}} format by reason of a misspecified @var{argument}, a @code{??} text will be created instead of the actual local time in @w{@var{m}@r{[}@var{m}@r{@dots{}]}} format. @item %@r{[}@var{format}@r{]}_@r{[}@var{argument}@r{]} @cindex @code{%@r{[}@var{format}@r{]}_@r{[}@var{argument}@r{]}} special text, actual local time hour @cindex Special text @code{%@r{[}@var{format}@r{]}_@r{[}@var{argument}@r{]}}, actual local time hour @cindex Actual local time hour @code{%@r{[}@var{format}@r{]}_@r{[}@var{argument}@r{]}} special text @cindex Local time hour, display @code{%@r{[}@var{format}@r{]}_@r{[}*@r{][[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the @strong{actual local time hour}, which is displayed by using the @w{@var{h}@r{[}@var{h}@r{@dots{}]}} output format, e.g.@:: @quotation The text @w{@samp{Local time hour: %_-1:}} will be expanded to@* @w{@expansion{} @samp{Local time hour: 6}} in case the actual local time value is @w{07:32 o'clock} @w{(@code{@var{hh}:@var{mm}})}@. @end quotation In case Gcal is unable to compute the actual local time hour by reason of a misspecified @var{argument}, a @code{??} text will be created instead of the actual local time hour @w{@var{h}@r{[}@var{h}@r{@dots{}]}}@. @item %@r{[}@var{format}@r{]}?@r{[}@var{argument}@r{]} @cindex @code{%@r{[}@var{format}@r{]}?@r{[}@var{argument}@r{]}} special text, actual local time minute @cindex Special text @code{%@r{[}@var{format}@r{]}?@r{[}@var{argument}@r{]}}, actual local time minute @cindex Actual local time minute @code{%@r{[}@var{format}@r{]}?@r{[}@var{argument}@r{]}} special text @cindex Local time minute, display @code{%@r{[}@var{format}@r{]}?@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the @strong{actual local time minute}, which is displayed by using the @w{@var{m}@r{[}@var{m}@r{@dots{}]}} output format, e.g.@:: @quotation The text @w{@samp{Local time minute: %>04*?+:2}} will be expanded to@* @w{@expansion{} @samp{Local time minute: 0034}} in case the actual local time value is @w{07:32 o'clock} @w{(@code{@var{hh}:@var{mm}})}@. @end quotation In case Gcal is unable to compute the actual local time minute by reason of a misspecified @var{argument}, a @code{??} text will be created instead of the actual local time minute @w{@var{m}@r{[}@var{m}@r{@dots{}]}}@. @item %@r{[}@var{format}@r{]}@{@r{[}@var{argument}@r{]} @cindex @code{%@r{[}@var{format}@r{]}@{@r{[}@var{argument}@r{]}} special text, actual local time 12-hour format suffix @cindex Special text @code{%@r{[}@var{format}@r{]}@{@r{[}@var{argument}@r{]}}, actual local time 12-hour format suffix @cindex Actual local time 12-hour format suffix @code{%@r{[}@var{format}@r{]}@{@r{[}@var{argument}@r{]}} special text @cindex Local time 12-hour format suffix, display @code{%@r{[}@var{format}@r{]}@{@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the @strong{actual local time 12-hour format suffix}, which is displayed as @w{@code{am@r{|}pm}}, e.g.@:: @quotation The text @w{@samp{Local time suffix: %@{}} will be expanded to@* @w{@expansion{} @samp{Local time suffix: am}} in case the actual local time value is @w{07:32 o'clock} @w{(@code{@var{hh}:@var{mm}})}@. @end quotation In case Gcal is unable to compute the actual local time 12-hour format suffix by reason of a misspecified @var{argument}, a @code{??} text will be created instead of the actual local time 12-hour format suffix @w{@code{am@r{|}pm}}@. @item %@@@r{[}@var{argument}@r{]} @cindex @code{%@@@r{[}@var{argument}@r{]}} special text, actual Universal time in @w{@code{@var{hh}:@var{mm}/@var{date}}} format @cindex Special text @code{%@@@r{[}@var{argument}@r{]}}, actual Universal time in @w{@code{@var{hh}:@var{mm}/@var{date}}} format @cindex Actual Universal time in @w{@code{@var{hh}:@var{mm}/@var{date}}} format @code{%@@@r{[}@var{argument}@r{]}} special text @cindex Universal time in @w{@code{@var{hh}:@var{mm}/@var{date}}} format, display @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) @code{%@@@r{[}*@r{][[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the @strong{actual Universal time} @w{(UTC/GMT)}, which is displayed by using the @w{@code{@var{hh}:@var{mm}/@var{date}}} output format, e.g.@:: @quotation The text @w{@samp{Universal time: %@@*-3.}} will be expanded to@* @w{@expansion{} @samp{Universal time: 03:32am/15-Feb-1999}}, in case the actual date is the 15th February 1999 and the actual Universal time value is @w{06:32 o'clock} @w{(@code{@var{hh}:@var{mm}})}@. @end quotation In case Gcal is unable to compute the actual Universal time in @w{@code{@var{hh}:@var{mm}/@var{date}}} format by reason of a misspecified @var{argument}, a @w{@code{??:??/??-???-????}} text will be created instead of the actual Universal time in @w{@code{@var{hh}:@var{mm}/@var{date}}} format. @need 2000 @item %@r{[}@var{format}@r{]}`@r{[}@var{argument}@r{]} @cindex @code{%@r{[}@var{format}@r{]}`@r{[}@var{argument}@r{]}} special text, actual Universal time in @w{@code{@var{m}@r{[}@var{m}@r{@dots{}]}/@var{date}}} format @cindex Special text @code{%@r{[}@var{format}@r{]}`@r{[}@var{argument}@r{]}}, actual Universal time in @w{@code{@var{m}@r{[}@var{m}@r{@dots{}]}/@var{date}}} format @cindex Actual Universal time in @w{@code{@var{m}@r{[}@var{m}@r{@dots{}]}/@var{date}}} format @code{%@r{[}@var{format}@r{]}`@r{[}@var{argument}@r{]}} special text @cindex Universal time in @w{@code{@var{m}@r{[}@var{m}@r{@dots{}]}/@var{date}}} format, display @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) @code{%@r{[}@var{format}@r{]}`@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the @strong{actual Universal time in minutes since midnight}, which is displayed by using the @w{@code{@var{m}@r{[}@var{m}@r{@dots{}]}/@var{date}}} output format, e.g.@:: @quotation The text @w{@samp{Universal time: %>06*`-3:}} will be expanded to@* @w{@expansion{} @samp{Universal time: 000212/15-Feb-1999}} in case the actual date is the 15th February 1999 and the actual Universal time value is @w{06:32 o'clock} @w{(@code{@var{hh}:@var{mm}})}@. @end quotation In case Gcal is unable to compute the actual Universal time in @w{@code{@var{m}@r{[}@var{m}@r{@dots{}]}/@var{date}}} format by reason of a misspecified @var{argument}, a @w{@code{??/??-???-????}} text will be created instead of the actual Universal time in @w{@code{@var{m}@r{[}@var{m}@r{@dots{}]}/@var{date}}} format. @item %@r{[}@var{format}@r{]}.@r{[}@var{argument}@r{]} @cindex @code{%@r{[}@var{format}@r{]}.@r{[}@var{argument}@r{]}} special text, actual Universal time hour @cindex Special text @code{%@r{[}@var{format}@r{]}.@r{[}@var{argument}@r{]}}, actual Universal time hour @cindex Actual Universal time hour @code{%@r{[}@var{format}@r{]}.@r{[}@var{argument}@r{]}} special text @cindex Universal time hour, display @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) @code{%@r{[}@var{format}@r{]}.@r{[}*@r{][[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the @strong{actual Universal time hour}, which is displayed by using the @w{@var{h}@r{[}@var{h}@r{@dots{}]}} output format, e.g.@:: @quotation The text @w{@samp{Universal time hour: %.-1:}} will be expanded to@* @w{@expansion{} @samp{Universal time hour: 5}} in case the actual Universal time value is @w{06:32 o'clock} @w{(@code{@var{hh}:@var{mm}})}@. @end quotation In case Gcal is unable to compute the actual Universal time hour by reason of a misspecified @var{argument}, a @code{??} text will be created instead of the actual Universal time hour @w{@var{h}@r{[}@var{h}@r{@dots{}]}}@. @item %@r{[}@var{format}@r{]}/@r{[}@var{argument}@r{]} @cindex @code{%@r{[}@var{format}@r{]}/@r{[}@var{argument}@r{]}} special text, actual Universal time minute @cindex Special text @code{%@r{[}@var{format}@r{]}/@r{[}@var{argument}@r{]}}, actual Universal time minute @cindex Actual Universal time minute @code{%@r{[}@var{format}@r{]}/@r{[}@var{argument}@r{]}} special text @cindex Universal time minute, display @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) @code{%@r{[}@var{format}@r{]}/@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the @strong{actual Universal time minute}, which is displayed by using the @w{@var{m}@r{[}@var{m}@r{@dots{}]}} output format, e.g.@:: @quotation The text @w{@samp{Universal time minute: %>04*/+:2}} will be expanded to@* @w{@expansion{} @samp{Universal time minute: 0034}} in case the actual Universal time value is @w{06:32 o'clock} @w{(@code{@var{hh}:@var{mm}})}@. @end quotation In case Gcal is unable to compute the actual Universal time minute by reason of a misspecified @var{argument}, a @code{??} text will be created instead of the actual Universal time minute @w{@var{m}@r{[}@var{m}@r{@dots{}]}}@. @item %@r{[}@var{format}@r{]}@}@r{[}@var{argument}@r{]} @cindex @code{%@r{[}@var{format}@r{]}@}@r{[}@var{argument}@r{]}} special text, actual Universal time 12-hour format suffix @cindex Special text @code{%@r{[}@var{format}@r{]}@}@r{[}@var{argument}@r{]}}, actual Universal time 12-hour format suffix @cindex Actual Universal time 12-hour format suffix @code{%@r{[}@var{format}@r{]}@}@r{[}@var{argument}@r{]}} special text @cindex Universal time 12-hour format suffix, display @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) @code{%@r{[}@var{format}@r{]}@}@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the @strong{actual Universal time 12-hour format suffix}, which is displayed as @w{@code{am@r{|}pm}}, e.g.@:: @quotation The text @w{@samp{Universal time suffix: %>1w*@}+10:}} will be expanded to@* @w{@expansion{} @samp{Universal time suffix: Pm}} in case the actual Universal time value is @w{06:32 o'clock} @w{(@code{@var{hh}:@var{mm}})}@. @end quotation In case Gcal is unable to compute the actual Universal time 12-hour format suffix by reason of a misspecified @var{argument}, a @code{??} text will be created instead of the actual Universal time 12-hour format suffix @w{@code{am@r{|}pm}}@. @need 1500 @item %"@r{[}@var{argument}@r{]} @cindex @code{%"@r{[}@var{argument}@r{]}} special text, numerical Universal time timezone offset value @cindex Special text @code{%"@r{[}@var{argument}@r{]}}, numerical Universal time timezone offset value @cindex Numerical Universal time timezone offset value @code{%"@r{[}@var{argument}@r{]}} special text @cindex Numerical Universal time timezone offset value using @acronym{RFC}-822 style, display @cindex @acronym{RFC}-822, numerical Universal time timezone offset value @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) @code{%"@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the @w{@acronym{RFC}-822} style @strong{numerical Universal time timezone offset value}, which is displayed by using the @w{@code{+@r{|}-@var{hhmm}}} output format, e.g.@:: @quotation The text @w{@samp{Universal time timezone offset value: %"-90}} will be expanded to@* @w{@expansion{} @samp{Universal time timezone offset value: -0130}}, at which calculations are always based on the timezone of the Universal time @w{UTC/GMT}. @end quotation In case Gcal is unable to compute the numerical Universal time timezone offset value by reason of a misspecified @var{argument}, a @w{@code{+????}} text will be created instead of the numerical Universal time timezone offset value @w{@code{+@r{|}-@var{hhmm}}}@. @item %=@r{[}@var{argument}@r{]} @cindex @code{%=@r{[}@var{argument}@r{]}} special text, numerical local time timezone offset value @cindex Special text @code{%=@r{[}@var{argument}@r{]}}, numerical local time timezone offset value @cindex Numerical local time timezone offset value @code{%=@r{[}@var{argument}@r{]}} special text @cindex Numerical local time timezone offset value using @acronym{RFC}-822 style, display @cindex @acronym{RFC}-822, numerical local time timezone offset value @code{%=@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the @w{@acronym{RFC}-822} style @strong{actual numerical local time timezone offset value}, which is displayed by using the @w{@code{+@r{|}-@var{hhmm}}} output format, e.g.@:: @quotation The text @w{@samp{Local time timezone offset value CET: %=-10}} will be expanded to@* @w{@expansion{} @samp{Local time timezone offset value CET: +0050}}, in case the actual timezone is equal the Central European (winter)time @w{CEWT/CET} @w{(@code{+@var{hhmm}})}@. Calculations are always based on the timezone of the local time. @end quotation In case Gcal is unable to compute the actual numerical local time timezone offset value by reason of a misspecified @var{argument}, a @w{@code{+????}} text will be created instead of the actual numerical local time timezone offset value @w{@code{+@r{|}-@var{hhmm}}}@. @end table @node Textual date, Julian day number, Actual clocktime, Replacements with other argument @appendixsubsubsec Textual date @code{%n@r{[}@var{argument}@r{]}} special text @cindex @code{%n@r{[}@var{argument}@r{]}} special text, textual date @cindex Special text @code{%n@r{[}@var{argument}@r{]}}, textual date @cindex Textual date @code{%n@r{[}@var{argument}@r{]}} special text @cindex Fixed format date text @code{%n@r{[[}+@r{|}-@r{]}@var{n}@r{]}} references the current respectively queried @strong{day number} relative to the current date @ifnottex @w{@samp{+@r{/}-} @var{n}} @end ifnottex @tex $\pm$ \smartslanted{n} @end tex days and is replaced by a @strong{date text} by using the fixed @w{@samp{%>02*D@r{-}%>3#U@r{-}%>04*Y}} format, e.g.@:: @quotation The resource file line @w{@samp{1962Sep21 10000 days old: %n+10000}} will be expanded to@* @w{@expansion{} @samp{10000 days old: 06-Feb-1990}}, in case you call Gcal with the simple @option{-c} option and the command @option{sep 1962} (@pxref{x-mm-yyyy, , Single command @option{@var{mm} @var{yyyy}}})@. @end quotation @node Julian day number, Geographical distance and course angle, Textual date, Replacements with other argument @appendixsubsubsec Julian day number @code{%@r{[}@var{format}@r{]}j@r{[}@var{argument}@r{]}} special text @cindex @code{%@r{[}@var{format}@r{]}j@r{[}@var{argument}@r{]}} special text, Julian day number @cindex Special text @code{%@r{[}@var{format}@r{]}j@r{[}@var{argument}@r{]}}, Julian day number @cindex Julian day number @code{%@r{[}@var{format}@r{]}j@r{[}@var{argument}@r{]}} special text @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) @code{%@r{[}@var{format}@r{]}j@r{[[}+@r{|}-@r{]}@var{n}@r{]}} references the current respectively queried @strong{Julian day number} relative to the actual system date (@equiv{}today)@. This day number is based on the date 1st January 4713 BCE ---which is the starting day zero of a consecutive day counting used in astronomical computations--- and is known as the Julian Date (J.D.)@. The real zero of this date is at 12 @w{o'clock} Universal time @w{(UTC/GMT)}; the day does not change at midnight, but at noon Universal time. Here, Gcal does not evaluate the timezone returned by the systems date function. For that reason, this day number is represented without a time fraction on the supposition that the day has already changed at noon. If you do not like the feature that the day displayed has already changed at noon, you can decrease the resulting Julian day number of that special text always by one, e.g.@: @samp{%j-1}@. For example: @quotation The resource file line @w{@samp{0 Julian day %j since 01-Jan-4713 BCE}} will be expanded to@* @w{@expansion{} @samp{Julian day 2437929 since 01-Jan-4713 BCE}}, in case you call Gcal with the @w{@option{-c %19620921}} option and no command. @end quotation If the @code{%@r{[}@var{format}@r{]}j} text is directly trailed by an unsigned number, this number is always subtracted from the real Julian day number. So you are able to work with any quantities referenced, e.g.@:: @quotation The resource file line @w{@samp{0 Julian day %j2415021 since 01-Jan-1900}} will be expanded to@* @w{@expansion{} @samp{Julian day 4 since 01-Jan-1900}}, in case you call Gcal with the @w{@option{-c %19000105}} option and no command. @end quotation @node Geographical distance and course angle, Sun data, Julian day number, Replacements with other argument @appendixsubsubsec Geographical distance and course angle @code{%@r{[}@var{format}@r{]}b@var{argument}} special text @cindex @code{%@r{[}@var{format}@r{]}b@r{[}@var{argument}@r{]}} special text, geographical distance and course angle @cindex Special text @code{%@r{[}@var{format}@r{]}b@r{[}@var{argument}@r{]}}, geographical distance and course angle @cindex Geographical distance and course angle @code{%@r{[}@var{format}@r{]}b@r{[}@var{argument}@r{]}} special text @cindex Meridian @cindex Orthodrome @code{%@r{[}@var{format}@r{]}b@r{[}*@r{][}@var{mode}@r{]}@var{@acronym{ISO}-6709:1983-co-ordinate-1}/@var{@acronym{ISO}-6709:1983-co-ordinate-2}} references either the approximate @strong{air line distance} or the approximate @strong{course angle (true track)}@footnote{The course angle gives the direction, which is the vertex of a great circles arc (@dfn{Orthodrome}) that is casted between two points on a surface of a sphere, at a meridian (Gcal uses a geoid (rotation ellipsoid) that is calculated taking pattern from the @cite{World Geodetic System}, short @acronym{W.G.S}, that was designed in 1961)@. Such an arc is the shortest geodetic connecting line between two points on a sphere. Indeed, the course angles on such an arc are changing continually, because the circular line that is casted intersects each meridian with another angle --- except the case, that both co-ordinates are referring to exactly the same @dfn{meridian} (longitude), or to exactly the same latitude.} between any of two geographic point locations. The selection, which value has to be calculated by using this special text is done by specifying the @var{mode} part of the preceding argument. Actually, exactly three different modes can be used that are represented by the @w{@samp{0}@dots{}@samp{2}} characters: @multitable @columnfractions .15 .85 @tbindex Modes, geographical distance and course angle @tbindex Geographical distance and course angle, modes @cindex Mode characters, geographical distance and course angle @cindex Geographical distance and course angle, mode characters @cindex Style of representation, geographical distance and course angle @cindex Geographical distance and course angle, style of representation @cindex Statute mile @item @strong{Mode} @tab @strong{Description} @item @ @item @code{0} @cindex Geographical distance @w{@code{%b0@var{argument}}} special text @cindex Geographical distance @w{@code{%b*0@var{argument}}} special text @tab Calculates the air line distance between @w{@var{@acronym{ISO}-6709:1983-co-ordinate-1}} and @w{@var{@acronym{ISO}-6709:1983-co-ordinate-2}}@. The calculated air line distance value is displayed in kilometers by default. A @samp{*} character directly before this mode character causes Gcal to display the distance value for another quantity, and that in @dfn{statute miles}; where one statute mile is equal to @w{1.609344} kilometer. If Gcal is unable to compute the approximate distance between the two geographic point locations by reason of a misspecified @var{argument}, a @w{@code{??}} text will be created instead of the distance value. @item @ @item @code{1} @cindex Course angle (true track) @w{@code{%b1@var{argument}}} special text @cindex Course angle (true track) @w{@code{%b*1@var{argument}}} special text @tab Calculates the course angle (true track) between @w{@var{@acronym{ISO}-6709:1983-co-ordinate-1}} and @w{@var{@acronym{ISO}-6709:1983-co-ordinate-2}}@. The calculated course angle value is displayed in degrees and arcminutes by default. The course angle is measured clockwise relative to the geographic, true North (not the magnetic North as shown by a compass), where angle values for the North direction are both denoted as 0 degree and 360 degree. A @samp{*} character directly before this mode character causes Gcal to display the course angle value using another style; and that in decimal degrees. If Gcal is unable to compute the approximate course angle between the two geographic point locations by reason of a misspecified @var{argument}, a @w{@code{???d??'}} text will be created instead of the course angle value. @item @ @item @code{2} @cindex Course angle (true track) @w{@code{%b2@var{argument}}} special text @cindex Course angle (true track) @w{@code{%b*2@var{argument}}} special text @tab Like mode @code{1}, but the course angle (true track) between @w{@var{@acronym{ISO}-6709:1983-co-ordinate-2}} and @w{@var{@acronym{ISO}-6709:1983-co-ordinate-1}} is calculated. @end multitable @iftex @sp 1 @end iftex @cindex Default mode, geographical distance and course angle @cindex Geographical distance and course angle, default mode If no @var{mode} is given, Gcal automatically uses that mode, which is enabled by the mode character @samp{0}@. If a mode character is given that is not according to one of the @w{@samp{0}@dots{}@samp{2}} characters, Gcal also automatically uses that mode, which is enabled by the mode character @samp{0}@. @cindex @acronym{ISO}-6709:1983 co-ordinate @cindex Co-ordinate, @acronym{ISO}-6709:1983 @cindex @samp{/} co-ordinate termination character @cindex Co-ordinate termination character, @samp{/} After the optional style and mode characters, the latitude and longitude of the geographic co-ordinates follows, for which the calculations must be made. They must be conform the @acronym{ISO}-6709:1983 standard representation of latitude and longitude for geographic point locations. The two co-ordinates have to be separated by a @samp{/} termination character from each other. @xref{x-Sun-arguments, , Arguments of the Sun oriented special texts}, for the detailed description of the components of the @acronym{ISO}-6709:1983 standard representation of latitude and longitude for geographic point locations. @iftex @sp 2 @end iftex For example: @quotation The text @w{@samp{Distance Paris-Tokyo: %b+4852+00220/+3542+13946 km}} will be expanded to@* @w{@expansion{} @samp{Distance Paris-Tokyo: 9746km}}@. @end quotation @quotation The text @w{@samp{Distance Paris-Tokyo: %b*0+4852+00220/+3542+13946 ms}} will be expanded to@* @w{@expansion{} @samp{Distance Paris-Tokyo: 6056ms}}@. @end quotation @quotation The text @w{@samp{Course angle Paris-Tokyo: %b1+4852+00220/+3542+13946}} will be expanded to@* @w{@expansion{} @samp{Course angle Paris-Tokyo: 033d22'}}@. @end quotation @quotation The text @w{@samp{Course angle Tokyo-Paris: %b*2+4852+00220/+3542+13946}} will be expanded to@* @w{@expansion{} @samp{Course angle Tokyo-Paris: 333.548}}@. @end quotation @iftex @sp 2 @end iftex @cindex Islamic prayer, direction to Makkah @cindex Direction to Makkah, Islamic prayer While praying, people of Islamic faith always turn their heads into the direction of Makkah, @w{Saudi-Arabia}@. Now by means of Gcal, these people can easily find out for their respective location, where they have to turn to, and that by: @example %b1@var{@acronym{ISO}-6709:1983-co-ordinate-1}/+212516+0394929 @end example @noindent where @w{@var{@acronym{ISO}-6709:1983-co-ordinate-1}} is simply replaced by the co-ordinate of the respective location. @xref{x-precise, , Fixed date option @option{--precise}}, how to obtain a more precise representation of the values that are caused by this special text. This special text @strong{must} always be trailed by a @emph{whitespace} character which is removed in output! @page @node Sun data, Moon data, Geographical distance and course angle, Replacements with other argument @appendixsubsubsec Sun data @code{%@r{[}@var{format}@r{]}@var{?}@var{argument}} special texts @cindex @code{%@r{[}@var{format}@r{]}@var{?}@var{argument}} special texts, Sun data @cindex Special texts @code{%@r{[}@var{format}@r{]}@var{?}@var{argument}}, Sun data @cindex Sun data @code{%@r{[}@var{format}@r{]}@var{?}@var{argument}} special texts @cindex Sunrise @cindex Sunset @cindex Solar day length @cindex Solar night length @code{%@r{[}@var{format}@r{]}o@r{[}*@r{][}@var{mode}@r{]}@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the approximate time of @strong{sunrise} by default,@* @code{%@r{[}@var{format}@r{]}s@r{[}*@r{][}@var{mode}@r{]}@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the approximate time of @strong{sunset} by default,@* @code{%@r{[}@var{format}@r{]}u@r{[}*@r{][}@var{mode}@r{]}@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the approximate period of @strong{visibility} of the Sun (solar day length) by default,@* @code{%@r{[}@var{format}@r{]}z@r{[}*@r{][}@var{mode}@r{]}@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the approximate period of @strong{non-visibility} of the Sun (solar night length) by default. All these special texts can be used for at pleasure any geographic point location, i.e.@: it is possible to determine different astronomical values for any location on the globe, and that for at pleasure any clocktime with a resolution of a single minute within the period of the years @acronym{AD} 1 until @acronym{AD} 9999, that is respected by Gcal. @cindex Mode characters, Sun data and times @cindex Sun data and times, mode characters The selection which value has to be calculated by these special texts is done by specifying the @var{mode} part of the preceding argument. Actually, exactly 54 different modes can be used that are represented by the @w{@samp{0}@dots{}@samp{9}}, @w{@samp{a}@dots{}@samp{z}} and @w{@samp{A}@dots{}@samp{R}} characters, and which create different kind of results that are depending on the special text used. First of all, here is a table in which all usable modes are described and explained sufficiently. You can also see from this table, which Sun oriented special text or texts are corresponding to which mode, i.e.@: cause the determination of an astronomical value as it is described in the table: @iftex @sp 1 @end iftex @multitable @columnfractions .1 .18 .72 @tbindex Modes, Sun oriented special texts @tbindex Sun oriented special texts, modes @cindex Table of modes of the Sun oriented special texts @cindex Sun oriented special texts, table of modes @item @strong{Mode} @tab @strong{Special text} @tab @strong{Description} @item @ @item @code{0} @cindex Sun, astronomical midnight time @code{%o0@var{argument}} special text @cindex Sun, astronomical midnight time @code{%s0@var{argument}} special text @cindex Sun, astronomical midnight time @code{%o*0@var{argument}} special text @cindex Sun, astronomical midnight time @code{%s*0@var{argument}} special text @cindex Astronomical midnight time, Sun @cindex Midnight time of Sun, astronomical @cindex Sun, noon line @cindex Noon line, Sun @cindex Sun, azimuth @cindex Azimuth, Sun @cindex Sun, lowest culmination point @cindex Lowest culmination point, Sun @anchor{x-Sun-midnight} @tab @code{o}, @code{s} @tab Calculates the approximate midnight time of the Sun. The astronomical midnight time of the Sun is at that clocktime, when the Sun holds an @dfn{azimuth} (horizontal angular distance between the vertical circle, that passes the Sun, and the North point) of either precisely 0 degrees of precisely 180 degrees (@dfn{noon line}), which depends on the season and the geographical location. At that clocktime, the Sun is close its @dfn{lowest culmination point}, i.e.@: close the lowest point below or above the horizontal plane the Sun transits during this day. @item @ @item @code{1} @cindex Sun, astronomical noon time @code{%o1@var{argument}} special text @cindex Sun, astronomical noon time @code{%s1@var{argument}} special text @cindex Sun, astronomical noon time @code{%o*1@var{argument}} special text @cindex Sun, astronomical noon time @code{%s*1@var{argument}} special text @cindex Astronomical noon time, Sun @cindex Noon time of Sun, astronomical @cindex Sun, highest culmination point @cindex Highest culmination point, Sun @cindex Zuhr, Islamic prayer time @cindex Islamic prayer time, Zuhr @cindex Prayer time Zuhr, Islamic @cindex Asr, Islamic prayer time @cindex Islamic prayer time, Asr @cindex Prayer time Asr, Islamic @cindex Gnomon @anchor{x-Sun-noon} @tab @code{o}, @code{s} @tab Calculates the approximate noon time of the Sun. The astronomical noon time of the Sun is at that clocktime, when the Sun holds an azimuth of either precisely 180 degrees of precisely 0 degrees (noon line), which depends on the season and the geographical location. At that clocktime, the Sun is close its @dfn{highest culmination point}, i.e.@: close the highest point above or below the horizontal plane the Sun transits during this day. People of Islamic faith normally pray for the second time on the day during the period, which is between the astronomical noon time of the Sun (or some minutes later) and the Islamic prayer time by the name of @dfn{Asr}. These people commonly use the term @dfn{Zuhr} for this prayer time. The timing of Asr depends on the length of the shadow cast by a vertical pole (@dfn{gnomon})@. According to the Shafi school of jurisprudence, Asr begins when the length of the shadow of a vertical pole exceeds the length of the pole. According to the Hanafi school of jurisprudence, Asr begins when the length of the shadow exceeds twice the length of the vertical pole. In both cases, the minimum length of the shadow at astronomical noon time of the Sun is subtracted from the length of the shadow before comparing it with the length of the pole. @xref{x-Sun-asr-1, , Islamic Asr-1 prayer time}, and @ref{x-Sun-asr-2, , Islamic Asr-2 prayer time}, for further details. @item @ @item @code{2} @cindex Sun's center, geometrical rise time @code{%o2@var{argument}} special text @cindex Sun's center, geometrical rise time @code{%o*2@var{argument}} special text @tab @code{o} @tab Calculates the approximate time when the center of the Sun passes a reference altitude of 0 degrees on a @dfn{mathematical-geocentric} horizon in the morning; thus rising. A mathematical horizon is a purely geometrically-built horizon which disregards the phenomenon of refraction as it arises in reality by the influence of the Earth's atmosphere. A geocentrical horizon is the horizontal plane that passes through the Earth's center, orthogonal to the observer's local vertical. In the further context, the shorter term @emph{mathematical horizon} is used which actually means the mathematical-geocentric horizon. @item @ @item @code{2} @cindex Sun's center, geometrical set time @code{%s2@var{argument}} special text @cindex Sun's center, geometrical set time @code{%s*2@var{argument}} special text @tab @code{s} @tab Calculates the approximate time when the center of the Sun passes a reference altitude of 0 degrees on a mathematical horizon in the evening; thus setting. @item @ @item @code{2} @cindex Sun's center, geometrical visibility @code{%u2@var{argument}} special text @cindex Sun's center, geometrical visibility @code{%u*2@var{argument}} special text @tab @code{u} @tab Calculates the approximate period while the center of the Sun is above a reference altitude of 0 degrees on a mathematical horizon; thus is visible. @item @ @item @code{2} @cindex Sun's center, geometrical non-visibility @code{%z2@var{argument}} special text @cindex Sun's center, geometrical non-visibility @code{%z*2@var{argument}} special text @tab @code{z} @tab Calculates the approximate period while the center of the Sun is below a reference altitude of 0 degrees on a mathematical horizon; thus is non-visible. @item @ @item @code{3} @cindex Sun's upper limb, geometrical rise time @code{%o3@var{argument}} special text @cindex Sun's upper limb, geometrical rise time @code{%o*3@var{argument}} special text @tab @code{o} @tab Calculates the approximate time when the upper limb of the Sun passes a reference altitude of 0 degrees on a mathematical horizon in the morning; thus rising. The above mentioned reference altitude is computed from the value of the Sun's semidiameter as it appear at that clocktime. If the reference altitude that is referring to the Sun's upper limb is converted to a reference altitude that is referring to the Sun's center, this results in a value of about 16 arcminutes below the geocentric horizon. @item @ @item @code{3} @cindex Sun's upper limb, geometrical set time @code{%s3@var{argument}} special text @cindex Sun's upper limb, geometrical set time @code{%s*3@var{argument}} special text @tab @code{s} @tab Calculates the approximate time when the upper limb of the Sun passes a reference altitude of 0 degrees on a mathematical horizon in the evening; thus setting. The above mentioned reference altitude is computed from the value of the Sun's semidiameter as it appear at that clocktime. @item @ @item @code{3} @cindex Sun's upper limb, geometrical visibility @code{%u3@var{argument}} special text @cindex Sun's upper limb, geometrical visibility @code{%u*3@var{argument}} special text @tab @code{u} @tab Calculates the approximate period while the upper limb of the Sun is above a reference altitude of 0 degrees on a mathematical horizon; thus is visible. @item @ @item @code{3} @cindex Sun's upper limb, geometrical non-visibility @code{%z3@var{argument}} special text @cindex Sun's upper limb, geometrical non-visibility @code{%z*3@var{argument}} special text @tab @code{z} @tab Calculates the approximate period while the upper limb of the Sun is below a reference altitude of 0 degrees on a mathematical horizon; thus is non-visible. @item @ @item @code{4} @cindex Sun's center, rise time @code{%o4@var{argument}} special text @cindex Sun's center, rise time @code{%o*4@var{argument}} special text @tab @code{o} @tab Calculates the approximate time when the center of the Sun passes a reference altitude of 34 arcminutes below the geocentric horizon in the morning; thus rising. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the @w{@option{--atmosphere}} option. @ref{x-atmosphere, , Fixed dates option @option{--atmosphere=@var{air-pressure}@r{[,}@var{temperature}@r{]}}}, how to change the base data of the atmosphere, so that the atmospheric conditions as defined by it are used to calculate the amount of refraction. @item @ @item @code{4} @cindex Sun's center, set time @code{%s4@var{argument}} special text @cindex Sun's center, set time @code{%s*4@var{argument}} special text @tab @code{s} @tab Calculates the approximate time when the center of the Sun passes a reference altitude of 34 arcminutes below the geocentric horizon in the evening; thus setting. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the @w{@option{--atmosphere}} option. @item @ @item @code{4} @cindex Sun's center, visibility @code{%u4@var{argument}} special text @cindex Sun's center, visibility @code{%u*4@var{argument}} special text @tab @code{u} @tab Calculates the approximate period while the center of the Sun is above a reference altitude of 34 arcminutes below the geocentric horizon; thus is visible. @item @ @item @code{4} @cindex Sun's center, non-visibility @code{%z4@var{argument}} special text @cindex Sun's center, non-visibility @code{%z*4@var{argument}} special text @tab @code{z} @tab Calculates the approximate period while the center of the Sun is below a reference altitude of 34 arcminutes below the geocentric horizon; thus is non-visible. @item @ @item @code{5} @cindex Sun's upper limb, standard rise time @code{%o5@var{argument}} special text @cindex Sun's upper limb, standard rise time @code{%o*5@var{argument}} special text @cindex Sun, standard rise time @cindex Standard rise time, Sun @anchor{x-Sun-standard-rise} @tab @code{o} @tab Calculates the approximate time when the upper limb of the Sun passes a reference altitude of 34 arcminutes below the geocentric horizon in the morning; thus rising. This kind of rise time calculation is done according to the standard calculation method as it is commonly used internationally. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the @w{@option{--atmosphere}} option. @ref{x-atmosphere, , Fixed dates option @option{--atmosphere=@var{air-pressure}@r{[,}@var{temperature}@r{]}}}, how to change the base data of the atmosphere, so that the atmospheric conditions as defined by it are used to calculate the amount of refraction. The above mentioned reference altitude is computed from the respective values of the Sun's semidiameter and (standard) refraction as they appear at that clocktime. If the reference altitude that is referring to the Sun's upper limb is converted to a reference altitude that is referring to the Sun's center, this results in a value of about 50 arcminutes below the geocentric horizon. @item @ @item @code{5} @cindex Sun's upper limb, standard set time @code{%s5@var{argument}} special text @cindex Sun's upper limb, standard set time @code{%s*5@var{argument}} special text @cindex Sun, standard set time @cindex Standard set time, Sun @cindex Maghrib, Islamic prayer time @cindex Islamic prayer time, Maghrib @cindex Prayer time Maghrib, Islamic @anchor{x-Sun-standard-set} @tab @code{s} @tab Calculates the approximate time when the upper limb of the Sun passes a reference altitude of 34 arcminutes below the geocentric horizon in the evening; thus setting. This kind of set time calculation is done according to the standard calculation method as it is commonly used internationally. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the @w{@option{--atmosphere}} option. The above mentioned reference altitude is computed from the respective values of the Sun's semidiameter and (standard) refraction as they appear at that clocktime. People of Islamic faith normally pray for the second-last time on the day at this clocktime, or some minutes later. These people commonly use the term @dfn{Maghrib} for this prayer time. @item @ @item @code{5} @cindex Sun's upper limb, standard visibility @code{%u5@var{argument}} special text @cindex Sun's upper limb, standard visibility @code{%u*5@var{argument}} special text @cindex Sun, standard visibility period @cindex Standard visibility period, Sun @tab @code{u} @tab Calculates the approximate period while the upper limb of the Sun is above a reference altitude of 34 arcminutes below the geocentric horizon; thus is visible. This kind of visibility period calculation is done according to the standard calculation method as it is commonly used internationally. @item @ @item @code{5} @cindex Sun's upper limb, standard non-visibility @code{%z5@var{argument}} special text @cindex Sun's upper limb, standard non-visibility @code{%z*5@var{argument}} special text @cindex Sun, standard non-visibility period @cindex Standard non-visibility period, Sun @tab @code{z} @tab Calculates the approximate period while the upper limb of the Sun is above a reference altitude of 34 arcminutes below the geocentric horizon; thus is non-visible. This kind of non-visibility period calculation is done according to the standard calculation method as it is commonly used internationally. @item @ @item @code{6} @cindex Sun's center, begin of civil twilight @code{%o6@var{argument}} special text @cindex Sun's center, begin of civil twilight @code{%o*6@var{argument}} special text @cindex Sun, civil twilight @cindex Civil twilight, Sun @cindex Twilight, civil @tab @code{o} @tab Calculates the approximate time when the center of the Sun passes a reference altitude of 6 degrees below a mathematical horizon in the morning; thus the beginning of @dfn{civil twilight}. The scattered light of the Sun that is remaining at the beginning of the civil twilight phase is in general not yet sufficient for reading outside without artificial illumination. @item @ @item @code{6} @cindex Sun's center, end of civil twilight @code{%s6@var{argument}} special text @cindex Sun's center, end of civil twilight @code{%s*6@var{argument}} special text @cindex Sun, civil twilight @cindex Civil twilight, Sun @cindex Twilight, civil @tab @code{s} @tab Calculates the approximate time when the center of the Sun passes a reference altitude of 6 degrees below a mathematical horizon in the evening; thus the ending of civil twilight. @item @ @item @code{6} @cindex Sun's center, period above civil twilight reference altitude @code{%u6@var{argument}} special text @cindex Sun's center, period above civil twilight reference altitude @code{%u*6@var{argument}} special text @tab @code{u} @tab Calculates the approximate period while the center of the Sun is above a reference altitude of 6 degrees below a mathematical horizon; thus the period, while the center of the Sun is always above -6 degrees. @item @ @item @code{6} @cindex Sun's center, period below civil twilight reference altitude @code{%z6@var{argument}} special text @cindex Sun's center, period below civil twilight reference altitude @code{%z*6@var{argument}} special text @tab @code{z} @tab Calculates the approximate period while the center of the Sun is below a reference altitude of 6 degrees below a mathematical horizon; thus the period, while the center of the Sun is always below -6 degrees. @item @ @item @code{7} @cindex Sun's center, begin of nautical twilight @code{%o7@var{argument}} special text @cindex Sun's center, begin of nautical twilight @code{%o*7@var{argument}} special text @cindex Sun, nautical twilight @cindex Nautical twilight, Sun @cindex Twilight, nautical @tab @code{o} @tab Calculates the approximate time when the center of the Sun passes a reference altitude of 12 degrees below a mathematical horizon in the morning; thus the beginning of @dfn{nautical twilight}. The scattered light of the Sun that is remaining at the beginning of the nautical twilight phase is in general not yet sufficient for navigation using a sea horizon. @item @ @item @code{7} @cindex Sun's center, end of nautical twilight @code{%s7@var{argument}} special text @cindex Sun's center, end of nautical twilight @code{%s*7@var{argument}} special text @cindex Sun, nautical twilight @cindex Nautical twilight, Sun @cindex Twilight, nautical @tab @code{s} @tab Calculates the approximate time when the center of the Sun passes a reference altitude of 12 degrees below a mathematical horizon in the evening; thus the ending of nautical twilight. @item @ @item @code{7} @cindex Sun's center, period above nautical twilight reference altitude @code{%u7@var{argument}} special text @cindex Sun's center, period above nautical twilight reference altitude @code{%u*7@var{argument}} special text @tab @code{u} @tab Calculates the approximate period while the center of the Sun is above a reference altitude of 12 degrees below a mathematical horizon; thus the period, while the center of the Sun is always above -12 degrees. @item @ @item @code{7} @cindex Sun's center, period below nautical twilight reference altitude @code{%z7@var{argument}} special text @cindex Sun's center, period below nautical twilight reference altitude @code{%z*7@var{argument}} special text @tab @code{z} @tab Calculates the approximate period while the center of the Sun is below a reference altitude of 12 degrees below a mathematical horizon; thus the period, while the center of the Sun is always below -12 degrees. @item @ @item @code{8} @cindex Sun's center, begin of amateur-astronomical twilight @code{%o8@var{argument}} special text @cindex Sun's center, begin of amateur-astronomical twilight @code{%o*8@var{argument}} special text @cindex Sun, amateur-astronomical twilight @cindex Amateur-astronomical twilight, Sun @cindex Twilight, amateur-astronomical @tab @code{o} @tab Calculates the approximate time when the center of the Sun passes a reference altitude of 15 degrees below a mathematical horizon in the morning; thus the beginning of @dfn{amateur-astronomical twilight}. The scattered light of the Sun that is remaining at the beginning of the amateur-astronomical twilight phase is in general yet so faint that most astronomical observations can be made. @item @ @item @code{8} @cindex Sun's center, end of amateur-astronomical twilight @code{%s8@var{argument}} special text @cindex Sun's center, end of amateur-astronomical twilight @code{%s*8@var{argument}} special text @cindex Sun, amateur-astronomical twilight @cindex Amateur-astronomical twilight, Sun @cindex Twilight, amateur-astronomical @tab @code{s} @tab Calculates the approximate time when the center of the Sun passes a reference altitude of 15 degrees below a mathematical horizon in the evening; thus the ending of amateur-astronomical twilight. @item @ @item @code{8} @cindex Sun's center, period above amateur-astronomical twilight reference altitude @code{%u8@var{argument}} special text @cindex Sun's center, period above amateur-astronomical twilight reference altitude @code{%u*8@var{argument}} special text @tab @code{u} @tab Calculates the approximate period while the center of the Sun is above a reference altitude of 15 degrees below a mathematical horizon; thus the period, while the center of the Sun is always above -15 degrees. @item @ @item @code{8} @cindex Sun's center, period below amateur-astronomical twilight reference altitude @code{%z8@var{argument}} special text @cindex Sun's center, period below amateur-astronomical twilight reference altitude @code{%z*8@var{argument}} special text @tab @code{z} @tab Calculates the approximate period while the center of the Sun is below a reference altitude of 15 degrees below a mathematical horizon; thus the period, while the center of the Sun is always below -15 degrees. @item @ @item @code{8} @cindex Sun's center, begin of astronomical twilight @code{%o9@var{argument}} special text @cindex Sun's center, begin of astronomical twilight @code{%o*9@var{argument}} special text @cindex Sun, astronomical twilight @cindex Astronomical twilight, Sun @cindex Twilight, astronomical @cindex Fajr, Islamic prayer time @cindex Islamic prayer time, Fajr @cindex Prayer time Fajr, Islamic @tab @code{o} @tab Calculates the approximate time when the center of the Sun passes a reference altitude of 18 degrees below a mathematical horizon in the morning; thus the beginning of @dfn{astronomical twilight}. No appreciable scattered sunlight is remaining at the beginning of the astronomical twilight phase, the sky is completely dark yet. People of Islamic faith normally pray for the first time on the day during the period, which is between this clocktime and the time of standard sunrise. These people commonly use the term @dfn{Fajr} for this prayer time. @xref{x-Sun-standard-rise, , Standard rise time of the Sun}, for further details. @item @ @item @code{9} @cindex Sun's center, end of astronomical twilight @code{%s9@var{argument}} special text @cindex Sun's center, end of astronomical twilight @code{%s*9@var{argument}} special text @cindex Sun, astronomical twilight @cindex Astronomical twilight, Sun @cindex Twilight, astronomical @cindex Isha, Islamic prayer time @cindex Islamic prayer time, Isha @cindex Prayer time Isha, Islamic @tab @code{s} @tab Calculates the approximate time when the center of the Sun passes a reference altitude of 18 degrees below a mathematical horizon in the evening; thus the ending of astronomical twilight. People of Islamic faith normally pray for the last time on the day at this clocktime, or some minutes later. These people commonly use the term @dfn{Isha} for this prayer time. @item @ @item @code{9} @cindex Sun's center, period above astronomical twilight reference altitude @code{%u9@var{argument}} special text @cindex Sun's center, period above astronomical twilight reference altitude @code{%u*9@var{argument}} special text @tab @code{u} @tab Calculates the approximate period while the center of the Sun is above a reference altitude of 18 degrees below a mathematical horizon; thus the period, while the center of the Sun is always above -18 degrees. @item @ @item @code{9} @cindex Sun's center, period below astronomical twilight reference altitude @code{%z9@var{argument}} special text @cindex Sun's center, period below astronomical twilight reference altitude @code{%z*9@var{argument}} special text @tab @code{z} @tab Calculates the approximate period while the center of the Sun is below a reference altitude of 18 degrees below a mathematical horizon; thus the period, while the center of the Sun is always below -18 degrees. @item @ @item @code{a} @cindex Sun, topocentric elevation @code{%oa@var{argument}} special text @cindex Sun, topocentric elevation @code{%sa@var{argument}} special text @cindex Sun, topocentric elevation @code{%o*a@var{argument}} special text @cindex Sun, topocentric elevation @code{%s*a@var{argument}} special text @cindex Elevation, Sun @cindex Sun, topocentric data @cindex Topocentric data, Sun @cindex Sun, geocentric data @cindex Geocentric data, Sun @tab @code{o}, @code{s} @tab Calculates the approximate @dfn{topocentric}, apparent @dfn{elevation} of the Sun, thus the vertical angular distance between the Sun's center and the horizon, in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Sun's center is below the horizon at the moment, and results with a positive sign mean that the momentary center of the Sun is above the horizon. Observations of celestial objects that are done from the surface of the Earth yield in topocentrically based data. The locations of the celestial bodies are often at another place if the data is topocentrically determined instead of determine it @dfn{geocentrically}, i.e.@: at the fictitious center of the Earth. This is mainly caused by the refraction, which raises a celestial body to another location as it is been in reality. Because the terrestrial globe flattens towards the pole caps and therefore cannot be taken as an ideally shaped sphere, the individual Earth radius between the observer's location and the center of the Earth also affects the computation of topocentrically based data. @item @ @item @code{b} @cindex Sun, topocentric azimuth @code{%ob@var{argument}} special text @cindex Sun, topocentric azimuth @code{%sb@var{argument}} special text @cindex Sun, topocentric azimuth @code{%s*b@var{argument}} special text @cindex Sun, topocentric azimuth @code{%o*b@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the approximate topocentric, apparent azimuth of the Sun in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{c} @cindex Sun, topocentric declination @code{%oc@var{argument}} special text @cindex Sun, topocentric declination @code{%sc@var{argument}} special text @cindex Sun, topocentric declination @code{%o*c@var{argument}} special text @cindex Sun, topocentric declination @code{%s*c@var{argument}} special text @cindex Declination, Sun @cindex Celestial equator @tab @code{o}, @code{s} @tab Calculates the approximate topocentric, apparent @dfn{declination} of the Sun, thus the vertical angular distance between the Sun's center and the celestial equator, in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Sun's center is below the celestial equator at the moment, and results with a positive sign mean that the momentary center of the Sun is below the celestial equator. @item @ @item @code{d} @cindex Sun, topocentric ecliptic longitude @code{%od@var{argument}} special text @cindex Sun, topocentric ecliptic longitude @code{%sd@var{argument}} special text @cindex Sun, topocentric ecliptic longitude @code{%o*d@var{argument}} special text @cindex Sun, topocentric ecliptic longitude @code{%s*d@var{argument}} special text @cindex Ecliptic longitude, Sun @cindex Vernal equinox point on the ecliptic @cindex Ecliptic @cindex Zodiacal line @cindex Sun's orbit @cindex Orbit, Sun's @tab @code{o}, @code{s} @tab Calculates the approximate topocentric, apparent @dfn{ecliptic longitude} of the Sun, thus the horizontal angular distance between the Sun's center and the vernal equinox point on the @dfn{ecliptic} (the zodiacal line or Sun's orbit), in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{e} @cindex Sun, topocentric right ascension @code{%oe@var{argument}} special text @cindex Sun, topocentric right ascension @code{%se@var{argument}} special text @cindex Sun, topocentric right ascension @code{%o*e@var{argument}} special text @cindex Sun, topocentric right ascension @code{%s*e@var{argument}} special text @cindex Right ascension, Sun @cindex Vernal equinox point on the ecliptic @tab @code{o}, @code{s} @tab Calculates the approximate topocentric, apparent @dfn{right ascension} of the Sun, thus the horizontal angular distance between the Sun's center and the hour circle that passes through the vernal equinox point on the ecliptic, as time value in hours and minutes as it happen at civil midnight time. @item @ @item @code{f} @cindex Sun, topocentric distance @code{%of@var{argument}} special text @cindex Sun, topocentric distance @code{%sf@var{argument}} special text @cindex Sun, topocentric distance @code{%o*f@var{argument}} special text @cindex Sun, topocentric distance @code{%s*f@var{argument}} special text @cindex Sun, astronomical unit @cindex Astronomical unit, Sun @tab @code{o}, @code{s} @tab Calculates the approximate topocentric, apparent distance of the Sun from the Earth in @dfn{astronomical units} as it happen at civil midnight time. An astronomical unit, abbreviated by @acronym{ae}, is equal to the mean distance of the Sun from the Earth, which is about @w{149,597,870.691} kilometers. @item @ @item @code{g} @cindex Sun, topocentric horizontal parallax @code{%og@var{argument}} special text @cindex Sun, topocentric horizontal parallax @code{%sg@var{argument}} special text @cindex Sun, topocentric horizontal parallax @code{%o*g@var{argument}} special text @cindex Sun, topocentric horizontal parallax @code{%s*g@var{argument}} special text @cindex Horizontal parallax, Sun @tab @code{o}, @code{s} @tab Calculates the approximate topocentric, apparent @dfn{horizontal parallax} of the Sun in degrees and arcminutes as it happen at civil midnight time. The horizontal parallax of the Sun specifies the diameter of the Earth as it is seen from the surface of the Sun. @item @ @item @code{h} @cindex Sun, topocentric semidiameter @code{%oh@var{argument}} special text @cindex Sun, topocentric semidiameter @code{%sh@var{argument}} special text @cindex Sun, topocentric semidiameter @code{%o*h@var{argument}} special text @cindex Sun, topocentric semidiameter @code{%s*h@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the approximate topocentric, apparent semidiameter of the Sun in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{i} @cindex Sun, refraction @code{%oi@var{argument}} special text @cindex Sun, refraction @code{%si@var{argument}} special text @cindex Sun, refraction @code{%o*i@var{argument}} special text @cindex Sun, refraction @code{%s*i@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the approximate refraction of the Earth's atmosphere in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{j} @cindex Sun, geocentric elevation @code{%oj@var{argument}} special text @cindex Sun, geocentric elevation @code{%sj@var{argument}} special text @cindex Sun, geocentric elevation @code{%o*j@var{argument}} special text @cindex Sun, geocentric elevation @code{%s*j@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the approximate geocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Sun's center is below the horizon at the moment, and results with a positive sign mean that the momentary center of the Sun is above the horizon. @item @ @item @code{k} @cindex Sun, geocentric azimuth @code{%ok@var{argument}} special text @cindex Sun, geocentric azimuth @code{%sk@var{argument}} special text @cindex Sun, geocentric azimuth @code{%s*k@var{argument}} special text @cindex Sun, geocentric azimuth @code{%o*k@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the approximate geocentric, apparent azimuth of the Sun in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{l} @cindex Sun, geocentric declination @code{%ol@var{argument}} special text @cindex Sun, geocentric declination @code{%sl@var{argument}} special text @cindex Sun, geocentric declination @code{%o*l@var{argument}} special text @cindex Sun, geocentric declination @code{%s*l@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the approximate geocentric, apparent declination of the Sun in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Sun's center is below the celestial equator at the moment, and results with a positive sign mean that the momentary center of the Sun is above the celestial equator. @item @ @item @code{m} @cindex Sun, geocentric ecliptic longitude @code{%om@var{argument}} special text @cindex Sun, geocentric ecliptic longitude @code{%sm@var{argument}} special text @cindex Sun, geocentric ecliptic longitude @code{%o*m@var{argument}} special text @cindex Sun, geocentric ecliptic longitude @code{%s*m@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the approximate geocentric, apparent ecliptic longitude of the Sun in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{n} @cindex Sun, geocentric right ascension @code{%on@var{argument}} special text @cindex Sun, geocentric right ascension @code{%sn@var{argument}} special text @cindex Sun, geocentric right ascension @code{%o*n@var{argument}} special text @cindex Sun, geocentric right ascension @code{%s*n@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the approximate geocentric, apparent right ascension of the Sun as time value in hours and minutes as it happen at civil midnight time. @item @ @item @code{o} @cindex Sun, geocentric distance @code{%oo@var{argument}} special text @cindex Sun, geocentric distance @code{%so@var{argument}} special text @cindex Sun, geocentric distance @code{%o*o@var{argument}} special text @cindex Sun, geocentric distance @code{%s*o@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the approximate geocentric, apparent distance of the Sun from the Earth in astronomical units as it happen at civil midnight time. @item @ @item @code{p} @cindex Sun, geocentric horizontal parallax @code{%op@var{argument}} special text @cindex Sun, geocentric horizontal parallax @code{%sp@var{argument}} special text @cindex Sun, geocentric horizontal parallax @code{%o*p@var{argument}} special text @cindex Sun, geocentric horizontal parallax @code{%s*p@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the approximate geocentric, apparent horizontal parallax of the Sun in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{q} @cindex Sun, geocentric semidiameter @code{%oq@var{argument}} special text @cindex Sun, geocentric semidiameter @code{%sq@var{argument}} special text @cindex Sun, geocentric semidiameter @code{%o*q@var{argument}} special text @cindex Sun, geocentric semidiameter @code{%s*q@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the approximate geocentric, apparent semidiameter of the Sun in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{r} @cindex Sun, delta-t @code{%or@var{argument}} special text @cindex Sun, delta-t @code{%sr@var{argument}} special text @cindex Sun, delta-t @code{%o*r@var{argument}} special text @cindex Sun, delta-t @code{%s*r@var{argument}} special text @cindex Delta-t, Sun @cindex Terrestrial Dynamical time (TDT) @cindex Ephemeris time (ET) @tab @code{o}, @code{s} @tab Calculates the approximate @dfn{delta-t} in seconds as it happen at civil midnight time. Delta-t is the difference between the Terrestrial Dynamical time (abbreviated by @acronym{TDT}), that was formerly known as @emph{Ephemeris time} (abbreviated by @acronym{ET}), and the Universal time (@acronym{UT}). Thus, @w{@samp{delta-t @equiv{} TDT - UT}}@. @item @ @item @code{s} @cindex Sun, local sidereal time @code{%os@var{argument}} special text @cindex Sun, local sidereal time @code{%ss@var{argument}} special text @cindex Sun, local sidereal time @code{%o*s@var{argument}} special text @cindex Sun, local sidereal time @code{%s*s@var{argument}} special text @cindex Sidereal time, Sun @cindex Star day @cindex Star time @cindex Vernal equinox point on the ecliptic @tab @code{o}, @code{s} @tab Calculates the approximate, apparent location oriented @dfn{sidereal time} (local sidereal time (@acronym{LAST}), also known as @emph{local star time}) in hours and minutes as it happen at civil midnight time. A @dfn{star day} is the period between two consecutive upper culminations of the vernal equinox point on the ecliptic in the meridian of the observer's location. Therefore, the local @dfn{star time} is the momentary period, which is past between the last upper culmination of the vernal equinox point in the meridian of the observer's location (the momentary hour angle of the vernal equinox point), thus the right ascension of the stars in the observer's meridian at the moment. @item @ @item @code{t} @cindex Sun, base time @code{%ot@var{argument}} special text @cindex Sun, base time @code{%st@var{argument}} special text @cindex Sun, base time @code{%o*t@var{argument}} special text @cindex Sun, base time @code{%s*t@var{argument}} special text @cindex Base time of astronomical functions, output @cindex Output of base time of astronomical functions @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) @tab @code{o}, @code{s} @tab Outputs the base time as time value in hours and minutes, for which the dynamical, i.e.@: depending on the respective clocktime, astronomical data and times of the Sun are calculated. Without a given @w{@option{--time-offset=@var{argument}}} option, the astronomical data and times of the Sun are always calculated for 0 @w{o'clock} Universal time @w{(UTC/GMT)}@. @xref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, for further details. @item @ @item @code{u} @cindex Sun, Julian date @code{%ou@var{argument}} special text @cindex Sun, Julian date @code{%su@var{argument}} special text @cindex Sun, Julian date @code{%o*u@var{argument}} special text @cindex Sun, Julian date @code{%s*u@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the approximate Julian date in days as it happen at civil midnight time. @xref{Julian day number}, for further information about the Julian date. @item @ @item @code{v} @cindex Sun, Julian Ephemeris date @code{%ov@var{argument}} special text @cindex Sun, Julian Ephemeris date @code{%sv@var{argument}} special text @cindex Sun, Julian Ephemeris date @code{%o*v@var{argument}} special text @cindex Sun, Julian Ephemeris date @code{%s*v@var{argument}} special text @cindex Julian Ephemeris date @cindex Ephemeris date, Julian @tab @code{o}, @code{s} @tab Calculates the approximate @dfn{Julian Ephemeris date}, thus a Julian date that is corrected by @emph{delta-t}, in days as it happen at civil midnight time. @item @ @item @code{w} @cindex Sun, equation of time @code{%ow@var{argument}} special text @cindex Sun, equation of time @code{%sw@var{argument}} special text @cindex Sun, equation of time @code{%o*w@var{argument}} special text @cindex Sun, equation of time @code{%s*w@var{argument}} special text @cindex True solar time @cindex Solar time, true @cindex Mean solar time @cindex Solar time, mean @cindex Mean solar day @cindex Solar day, mean @cindex True solar day @cindex Solar day, true @cindex Equation of time @cindex Sundial @cindex Sun, mean @cindex Mean Sun @tab @code{o}, @code{s} @tab Calculates the approximate difference between @dfn{true solar time} and @dfn{mean solar time} as time value in hours and minutes as it happen at civil midnight time. This so-called @dfn{equation of time} is a correction to be added to the true solar time ---as read on a sundial--- to obtain the mean solar time. A @dfn{true solar day} is the period between two consecutive lower culminations of the Sun. This entity is taken as the base for deriving the true solar time (as it is also shown by a sundial during the day)@. A star day is also known as a @cite{mean solar day}@. Because the Sun apparently shifts with respect to the vernal equinox point on the ecliptic due to the Earth's orbit around the Sun, the star day and the true solar day have a different length. As the true Sun namely moves irregularly through the ecliptic, a fictitious @dfn{mean Sun} with a symmetrical motion through the celestial equator is used for deriving the mean solar time. So, this difference in time is a consequence of the ellipticity and tilt of the Earth's orbit, causing the irregular apparent movement of the Sun across the sky. @item @ @item @code{x} @cindex Sun/Moon, delta topocentric elevation @code{%ox@var{argument}} special text @cindex Sun/Moon, delta topocentric elevation @code{%sx@var{argument}} special text @cindex Sun/Moon, delta topocentric elevation @code{%o*x@var{argument}} special text @cindex Sun/Moon, delta topocentric elevation @code{%s*x@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the difference of the approximate topocentric, apparent elevation of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the momentary center of the Sun is at an elevation that is below the momentary elevation of the Moon's center; thus the Sun is lower than the Moon. Results with a positive sign signify that the momentary center of the Sun is at an elevation that is above the momentary elevation of the Moon's center; thus the Sun is higher than the Moon. @item @ @item @code{y} @cindex Sun/Moon, delta topocentric azimuth @code{%oy@var{argument}} special text @cindex Sun/Moon, delta topocentric azimuth @code{%sy@var{argument}} special text @cindex Sun/Moon, delta topocentric azimuth @code{%o*y@var{argument}} special text @cindex Sun/Moon, delta topocentric azimuth @code{%s*y@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the difference of the approximate topocentric, apparent azimuth of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. The result specifies the horizontal angular distance, by which the momentary center of the Sun is distant from the momentary Moon's center, and that measured at the vertical circles that pass the Sun and the North point and the Moon and the North point. Results with a negative sign signify that the Moon is to the right (clockwise) of the Sun if one looks to the Sun --- or alternatively expressed, that the Sun is to the left (anti-clockwise) of the Moon. Results with a positive sign signify that the Moon is to the left (anti-clockwise) of the Sun if one looks to the Sun --- or alternatively expressed, that the Sun is to the right (clockwise) of the Moon. @item @ @item @code{z} @cindex Sun/Moon, delta geocentric elevation @code{%oz@var{argument}} special text @cindex Sun/Moon, delta geocentric elevation @code{%sz@var{argument}} special text @cindex Sun/Moon, delta geocentric elevation @code{%o*z@var{argument}} special text @cindex Sun/Moon, delta geocentric elevation @code{%s*z@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the difference of the approximate geocentric, apparent elevation of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{A} @cindex Sun/Moon, delta geocentric azimuth @code{%oA@var{argument}} special text @cindex Sun/Moon, delta geocentric azimuth @code{%sA@var{argument}} special text @cindex Sun/Moon, delta geocentric azimuth @code{%o*A@var{argument}} special text @cindex Sun/Moon, delta geocentric azimuth @code{%s*A@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the difference of the approximate geocentric, apparent azimuth of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{B} @cindex Sun/Moon, delta topocentric elevation at standard sunrise time @code{%oB@var{argument}} special text @cindex Sun/Moon, delta topocentric elevation at standard sunrise time @code{%o*B@var{argument}} special text @tab @code{o} @tab Calculates the difference of the approximate topocentric, apparent elevation of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Sun. @xref{x-Sun-standard-rise, , Standard rise time of the Sun}, for further details. @item @ @item @code{B} @cindex Sun/Moon, delta topocentric elevation at standard sunset time @code{%sB@var{argument}} special text @cindex Sun/Moon, delta topocentric elevation at standard sunset time @code{%s*B@var{argument}} special text @tab @code{s} @tab Calculates the difference of the approximate topocentric, apparent elevation of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Sun. @xref{x-Sun-standard-set, , Standard set time of the Sun}, for further details. @item @ @item @code{C} @cindex Sun/Moon, delta topocentric azimuth at standard sunrise time @code{%oC@var{argument}} special text @cindex Sun/Moon, delta topocentric azimuth at standard sunrise time @code{%o*C@var{argument}} special text @tab @code{o} @tab Calculates the difference of the approximate topocentric, apparent azimuth of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Sun. @xref{x-Sun-standard-rise, , Standard rise time of the Sun}, for further details. @item @ @item @code{C} @cindex Sun/Moon, delta topocentric azimuth at standard sunset time @code{%sC@var{argument}} special text @cindex Sun/Moon, delta topocentric azimuth at standard sunset time @code{%s*C@var{argument}} special text @tab @code{s} @tab Calculates the difference of the approximate topocentric, apparent azimuth of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Sun. @xref{x-Sun-standard-set, , Standard set time of the Sun}, for further details. @item @ @item @code{D} @cindex Sun/Moon, delta geocentric elevation at standard sunrise time @code{%oD@var{argument}} special text @cindex Sun/Moon, delta geocentric elevation at standard sunrise time @code{%o*D@var{argument}} special text @tab @code{o} @tab Calculates the difference of the approximate geocentric, apparent elevation of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Sun. @xref{x-Sun-standard-rise, , Standard rise time of the Sun}, for further details. @item @ @item @code{D} @cindex Sun/Moon, delta geocentric elevation at standard sunset time @code{%sD@var{argument}} special text @cindex Sun/Moon, delta geocentric elevation at standard sunset time @code{%s*D@var{argument}} special text @tab @code{s} @tab Calculates the difference of the approximate geocentric, apparent elevation of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Sun. @xref{x-Sun-standard-set, , Standard set time of the Sun}, for further details. @item @ @item @code{E} @cindex Sun/Moon, delta geocentric azimuth at standard sunrise time @code{%oE@var{argument}} special text @cindex Sun/Moon, delta geocentric azimuth at standard sunrise time @code{%o*E@var{argument}} special text @tab @code{o} @tab Calculates the difference of the approximate geocentric, apparent azimuth of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Sun. @xref{x-Sun-standard-rise, , Standard rise time of the Sun}, for further details. @item @ @item @code{E} @cindex Sun/Moon, delta geocentric azimuth at standard sunset time @code{%sE@var{argument}} special text @cindex Sun/Moon, delta geocentric azimuth at standard sunset time @code{%s*E@var{argument}} special text @tab @code{s} @tab Calculates the difference of the approximate geocentric, apparent azimuth of Sun and Moon (delta), at which the Sun is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Sun. @xref{x-Sun-standard-set, , Standard set time of the Sun}, for further details. @item @ @item @code{F} @cindex Sun/Moon, delta astronomical midnight time @code{%oF@var{argument}} special text @cindex Sun/Moon, delta astronomical midnight time @code{%sF@var{argument}} special text @cindex Sun/Moon, delta astronomical midnight time @code{%o*F@var{argument}} special text @cindex Sun/Moon, delta astronomical midnight time @code{%s*F@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the difference of the approximate astronomical midnight times of Sun and Moon (delta), at which the Sun is used as the reference point, as time value in hours and minutes as it happen at astronomical midnight time of the Sun. Results with a negative sign signify that the astronomical midnight time of the Sun is earlier than the astronomical midnight time of the Moon; thus the solar midnight is before the lunar midnight. Results with a positive sign signify that the astronomical midnight time of the Sun is later than the astronomical midnight time of the Moon; thus the solar midnight is after the lunar midnight. @xref{x-Sun-midnight, , Astronomical midnight time of the Sun}, and @ref{x-Moon-midnight, , Astronomical midnight time of the Moon}, for further details. @item @ @item @code{G} @cindex Sun/Moon, delta astronomical noon time @code{%oG@var{argument}} special text @cindex Sun/Moon, delta astronomical noon time @code{%sG@var{argument}} special text @cindex Sun/Moon, delta astronomical noon time @code{%o*G@var{argument}} special text @cindex Sun/Moon, delta astronomical noon time @code{%s*G@var{argument}} special text @tab @code{o}, @code{s} @tab Calculates the difference of the approximate astronomical noon times of Sun and Moon (delta), at which the Sun is used as the reference point, as time value in hours and minutes as it happen at astronomical noon time of the Sun. Results with a negative sign signify that the astronomical noon time of the Sun is earlier than the astronomical noon time of the Moon; thus the solar noon is before the lunar noon. Results with a positive sign signify that the astronomical noon time of the Sun is later than the astronomical noon time of the Moon; thus the solar noon is after the lunar noon. @xref{x-Sun-noon, , Astronomical noon time of the Sun}, and @ref{x-Moon-noon, , Astronomical noon time of the Moon}, for further details. @item @ @item @code{H} @cindex Sun/Moon, delta standard rise time @code{%oH@var{argument}} special text @cindex Sun/Moon, delta standard rise time @code{%o*H@var{argument}} special text @tab @code{o} @tab Calculates the difference of the approximate standard rise times of Sun and Moon (delta), at which the Sun is used as the reference point, as time value in hours and minutes as it happen at standard rise time of the Sun. Results with a negative sign signify that the standard rise time of the Sun is earlier than the standard rise time of the Moon; thus the sunrise is before the moonrise. Results with a positive sign signify that the standard rise time of the Sun is later than the standard rise time of the Moon; thus the sunrise is after the moonrise. @xref{x-Sun-standard-rise, , Standard rise time of the Sun}, and @ref{x-Moon-standard-rise, , Standard rise time of the Moon}, for further details. @item @ @item @code{H} @cindex Sun/Moon, delta standard set time @code{%sH@var{argument}} special text @cindex Sun/Moon, delta standard set time @code{%s*H@var{argument}} special text @tab @code{s} @tab Calculates the difference of the approximate standard set times of Sun and Moon (delta), at which the Sun is used as the reference point, as time value in hours and minutes as it happen at standard set time of the Sun. Results with a negative sign signify that the standard set time of the Sun is earlier than the standard set time of the Moon; thus the sunset is before the moonset. Results with a positive sign signify that the standard set time of the Sun is later than the standard set time of the Moon; thus the sunset is after the moonset. @xref{x-Sun-standard-set, , Standard set time of the Sun}, and @ref{x-Moon-standard-set, , Standard set time of the Moon}, for further details. @item @ @item @code{I} @cindex Sun, topocentric elevation at Sun's astronomical midnight time @code{%oI@var{argument}} special text @cindex Sun, topocentric elevation at Sun's astronomical midnight time @code{%sI@var{argument}} special text @cindex Sun, topocentric elevation at Sun's astronomical midnight time @code{%o*I@var{argument}} special text @cindex Sun, topocentric elevation at Sun's astronomical midnight time @code{%s*I@var{argument}} special text @cindex Sun, midnight height topocentric @cindex Midnight height topocentric, Sun @tab @code{o}, @code{s} @tab Calculates the approximate topocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at astronomical midnight time of the Sun (topocentric @dfn{midnight height})@. @xref{x-Sun-midnight, , Astronomical midnight time of the Sun}, for further details. @item @ @item @code{J} @cindex Sun, topocentric elevation at Sun's astronomical noon time @code{%oJ@var{argument}} special text @cindex Sun, topocentric elevation at Sun's astronomical noon time @code{%sJ@var{argument}} special text @cindex Sun, topocentric elevation at Sun's astronomical noon time @code{%o*J@var{argument}} special text @cindex Sun, topocentric elevation at Sun's astronomical noon time @code{%s*J@var{argument}} special text @cindex Sun, noon height topocentric @cindex Noon height topocentric, Sun @tab @code{o}, @code{s} @tab Calculates the approximate topocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at astronomical midnight time of the Sun (topocentric @dfn{midnight height})@. @xref{x-Sun-noon, , Astronomical noon time of the Sun}, for further details. @item @ @item @code{K} @cindex Sun, topocentric elevation at standard rise time @code{%oK@var{argument}} special text @cindex Sun, topocentric elevation at standard rise time @code{%o*K@var{argument}} special text @cindex Sun, rise height topocentric @cindex Rise height topocentric, Sun @tab @code{o} @tab Calculates the approximate topocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at standard rise time of the Sun (topocentric @dfn{rise height})@. @xref{x-Sun-standard-rise, , Standard rise time of the Sun}, for further details. @item @ @item @code{K} @cindex Sun, topocentric elevation at standard set time @code{%sK@var{argument}} special text @cindex Sun, topocentric elevation at standard set time @code{%s*K@var{argument}} special text @cindex Sun, set height topocentric @cindex Set height topocentric, Sun @tab @code{s} @tab Calculates the approximate topocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at standard set time of the Sun (topocentric @dfn{set height})@. @xref{x-Sun-standard-set, , Standard set time of the Sun}, for further details. @item @ @item @code{L} @cindex Sun, topocentric azimuth at standard rise time @code{%oL@var{argument}} special text @cindex Sun, topocentric azimuth at standard rise time @code{%o*L@var{argument}} special text @cindex Sun, rise azimuth topocentric @cindex Rise azimuth topocentric, Sun @cindex Sun, morning width topocentric @cindex Morning width topocentric, Sun @tab @code{o} @tab Calculates the approximate topocentric, apparent azimuth of the Sun in degrees and arcminutes as it happen at standard rise time of the Sun (topocentric @dfn{rise azimuth})@. The horizontal angular distance between the topocentric rise azimuth and the East direction is also known as the topocentric @dfn{morning width} of the Sun. @xref{x-Sun-standard-rise, , Standard rise time of the Sun}, for further details. @item @ @item @code{L} @cindex Sun, topocentric azimuth at standard set time @code{%sL@var{argument}} special text @cindex Sun, topocentric azimuth at standard set time @code{%s*L@var{argument}} special text @cindex Sun, set azimuth topocentric @cindex Set azimuth topocentric, Sun @cindex Sun, evening width topocentric @cindex Evening width topocentric, Sun @tab @code{s} @tab Calculates the approximate topocentric, apparent azimuth of the Sun in degrees and arcminutes as it happen at standard set time of the Sun (topocentric @dfn{set azimuth})@. The horizontal angular distance between the topocentric set azimuth and the West direction is also known as the topocentric @dfn{evening width} of the Sun. @xref{x-Sun-standard-set, , Standard set time of the Sun}, for further details. @item @ @item @code{M} @cindex Sun, geocentric elevation at Sun's astronomical midnight time @code{%oM@var{argument}} special text @cindex Sun, geocentric elevation at Sun's astronomical midnight time @code{%sM@var{argument}} special text @cindex Sun, geocentric elevation at Sun's astronomical midnight time @code{%o*M@var{argument}} special text @cindex Sun, geocentric elevation at Sun's astronomical midnight time @code{%s*M@var{argument}} special text @cindex Sun, midnight height geocentric @cindex Midnight height geocentric, Sun @tab @code{o}, @code{s} @tab Calculates the approximate geocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at astronomical midnight time of the Sun (geocentric @dfn{midnight height})@. @xref{x-Sun-midnight, , Astronomical midnight time of the Sun}, for further details. @item @ @item @code{N} @cindex Sun, geocentric elevation at Sun's astronomical noon time @code{%oN@var{argument}} special text @cindex Sun, geocentric elevation at Sun's astronomical noon time @code{%sN@var{argument}} special text @cindex Sun, geocentric elevation at Sun's astronomical noon time @code{%o*N@var{argument}} special text @cindex Sun, geocentric elevation at Sun's astronomical noon time @code{%s*N@var{argument}} special text @cindex Sun, noon height geocentric @cindex Noon height geocentric, Sun @tab @code{o}, @code{s} @tab Calculates the approximate geocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at astronomical midnight time of the Sun (geocentric @dfn{midnight height})@. @xref{x-Sun-noon, , Astronomical noon time of the Sun}, for further details. @item @ @item @code{O} @cindex Sun, geocentric elevation at standard rise time @code{%oO@var{argument}} special text @cindex Sun, geocentric elevation at standard rise time @code{%o*O@var{argument}} special text @cindex Sun, rise height geocentric @cindex Rise height geocentric, Sun @tab @code{o} @tab Calculates the approximate geocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at standard rise time of the Sun (geocentric @dfn{rise height})@. @xref{x-Sun-standard-rise, , Standard rise time of the Sun}, for further details. @item @ @item @code{O} @cindex Sun, geocentric elevation at standard set time @code{%sO@var{argument}} special text @cindex Sun, geocentric elevation at standard set time @code{%s*O@var{argument}} special text @cindex Sun, set height geocentric @cindex Set height geocentric, Sun @tab @code{s} @tab Calculates the approximate geocentric, apparent elevation of the Sun in degrees and arcminutes as it happen at standard set time of the Sun (geocentric @dfn{set height})@. @xref{x-Sun-standard-set, , Standard set time of the Sun}, for further details. @item @ @item @code{P} @cindex Sun, geocentric azimuth at standard rise time @code{%oP@var{argument}} special text @cindex Sun, geocentric azimuth at standard rise time @code{%o*P@var{argument}} special text @cindex Sun, rise azimuth geocentric @cindex Rise azimuth geocentric, Sun @cindex Sun, morning width geocentric @cindex Morning width geocentric, Sun @tab @code{o} @tab Calculates the approximate geocentric, apparent azimuth of the Sun in degrees and arcminutes as it happen at standard rise time of the Sun (geocentric @dfn{rise azimuth})@. The horizontal angular distance between the geocentric rise azimuth and the East direction is also known as the geocentric @dfn{morning width} of the Sun. @xref{x-Sun-standard-rise, , Standard rise time of the Sun}, for further details. @item @ @item @code{P} @cindex Sun, geocentric azimuth at standard set time @code{%sP@var{argument}} special text @cindex Sun, geocentric azimuth at standard set time @code{%s*P@var{argument}} special text @cindex Sun, set azimuth geocentric @cindex Set azimuth geocentric, Sun @cindex Sun, evening width geocentric @cindex Evening width geocentric, Sun @tab @code{s} @tab Calculates the approximate geocentric, apparent azimuth of the Sun in degrees and arcminutes as it happen at standard set time of the Sun (geocentric @dfn{set azimuth})@. The horizontal angular distance between the geocentric set azimuth and the West direction is also known as the geocentric @dfn{evening width} of the Sun. @xref{x-Sun-standard-set, , Standard set time of the Sun}, for further details. @item @ @item @code{Q} @cindex Sun, single shadow length time at forenoon @code{%oQ@var{argument}} special text @cindex Sun, single shadow length time at forenoon @code{%o*Q@var{argument}} special text @cindex Shadow length at forenoon, single @cindex Single shadow length at forenoon @tab @code{o} @tab Calculates the approximate time when the length of the shadow cast by a vertical pole in the forenoon is @strong{equal} the length of the pole. Nevertheless, the minimum length of the shadow is subtracted from the length of the shadow before comparing it with the length of the pole. @xref{x-adjust-value, , Fixed dates option @option{--adjust-value=@var{argument}}}, how to change the shadow length factor. @item @ @item @code{Q} @cindex Sun, single shadow length time at afternoon @code{%sQ@var{argument}} special text @cindex Sun, single shadow length time at afternoon @code{%s*Q@var{argument}} special text @cindex Shadow length at afternoon, single @cindex Single shadow length at afternoon @cindex Asr, Islamic prayer time @cindex Islamic prayer time, Asr @cindex Prayer time Asr, Islamic @anchor{x-Sun-asr-1} @tab @code{s} @tab Calculates the approximate time when the length of the shadow cast by a vertical pole in the afternoon is @strong{equal} the length of the pole. Nevertheless, the minimum length of the shadow is subtracted from the length of the shadow before comparing it with the length of the pole. People of Islamic faith, and that the people holding the @emph{Shafi} school of jurisprudence, normally pray for the third time on the day at this clocktime, or some minutes later. These people commonly use the term @dfn{Asr} for this prayer time. @xref{x-Sun-noon, , Astronomical noon time of the Sun}, for more information. And note @ref{x-adjust-value, , Fixed dates option @option{--adjust-value=@var{argument}}}, how to change the shadow length factor. @item @ @item @code{Q} @cindex Sun, period of single or shorter shadow length @code{%uQ@var{argument}} special text @cindex Sun, period of single or shorter shadow length @code{%u*Q@var{argument}} special text @cindex Period of single or shorter shadow length @cindex Single or shorter shadow length, period @tab @code{u} @tab Calculates the approximate period while the center of the Sun is above a reference altitude, at which the length of the shadow cast by a vertical pole is of single or shorter length than the pole itself. @item @ @item @code{Q} @cindex Sun, period of longer than single shadow length @code{%zQ@var{argument}} special text @cindex Sun, period of longer than single shadow length @code{%z*Q@var{argument}} special text @cindex Period of longer than single shadow length @cindex Longer than single shadow length, period @tab @code{z} @tab Calculates the approximate period while the center of the Sun is below a reference altitude, at which a vertical pole either casts no shadow anymore, or casts a shadow that is longer than the single length of the pole itself. @item @ @item @code{R} @cindex Sun, double shadow length time at forenoon @code{%oR@var{argument}} special text @cindex Sun, double shadow length time at forenoon @code{%o*R@var{argument}} special text @cindex Shadow length at forenoon, double @cindex Double shadow length at forenoon @tab @code{o} @tab Calculates the approximate time when the length of the shadow cast by a vertical pole at forenoon is @strong{twice} the length of the pole. Nevertheless, the minimum length of the shadow is subtracted from the length of the shadow before comparing it with the length of the pole. @xref{x-adjust-value, , Fixed dates option @option{--adjust-value=@var{argument}}}, how to change the shadow length factor. @item @ @item @code{R} @cindex Sun, double shadow length time at afternoon @code{%sR@var{argument}} special text @cindex Sun, double shadow length time at afternoon @code{%s*R@var{argument}} special text @cindex Shadow length at afternoon, double @cindex Double shadow length at afternoon @cindex Asr, Islamic prayer time @cindex Islamic prayer time, Asr @cindex Prayer time Asr, Islamic @anchor{x-Sun-asr-2} @tab @code{s} @tab Calculates the approximate time when the length of the shadow cast by a vertical pole in the afternoon is @strong{twice} the length of the pole. Nevertheless, the minimum length of the shadow is subtracted from the length of the shadow before comparing it with the length of the pole. People of Islamic faith, and that the people holding the @emph{Hanafi} school of jurisprudence, normally pray for the third time on the day at this clocktime, or some minutes later. These people commonly use the term @dfn{Asr} for this prayer time. @xref{x-Sun-noon, , Astronomical noon time of the Sun}, for more information. And note @ref{x-adjust-value, , Fixed dates option @option{--adjust-value=@var{argument}}}, how to change the shadow length factor. @item @ @item @code{R} @cindex Sun, period of double or shorter shadow length @code{%uR@var{argument}} special text @cindex Sun, period of double or shorter shadow length @code{%u*R@var{argument}} special text @cindex Period of double or shorter shadow length @cindex Double or shorter shadow length, period @tab @code{u} @tab Calculates the approximate period while the center of the Sun is above a reference altitude, at which the length of the shadow cast by a vertical pole is of double or shorter length than the pole itself. @item @ @item @code{R} @cindex Sun, period of longer than double shadow length @code{%zR@var{argument}} special text @cindex Sun, period of longer than double shadow length @code{%z*R@var{argument}} special text @cindex Period of longer than double shadow length @cindex Longer than double shadow length, period @tab @code{z} @tab Calculates the approximate period while the center of the Sun is below a reference altitude, at which a vertical pole either casts no shadow anymore, or casts a shadow that is longer than twice the length of the pole itself. @end multitable @iftex @sp 1 @end iftex @cindex Default mode, Sun data and times @cindex Sun data and times, default mode If no @var{mode} is given, Gcal automatically uses that mode, which is enabled by the mode character @samp{5}@. If a mode character is given that is not according to one of the @w{@samp{0}@dots{}@samp{9}}, @w{@samp{a}@dots{}@samp{z}} and @w{@samp{A}@dots{}@samp{R}} characters, Gcal also automatically uses that mode, which is enabled by the mode character @samp{5}@. @cindex Type of representation of Sun data and times @cindex Sun data and times, type of representation @cindex Style of representation of Sun data and times @cindex Sun data and times, style of representation @cindex Type of representation of Moon data and times @cindex Moon data and times, type of representation @cindex Style of representation of Moon data and times @cindex Moon data and times, style of representation @anchor{x-Sun-representation} Gcal represents the Sun oriented special texts depending on the selected mode using the following types and styles: @enumerate 1 @item Unsigned decimal based rational number value@* @cindex Unsigned decimal based rational number value, Sun and Moon oriented special texts @cindex Sun and Moon oriented special texts, unsigned decimal based rational number value Unsigned decimal based rational number values are represented using the @w{@code{@var{n}.@var{n}@dots{}}} format by default. A @samp{*} character that is directly given before some mode characters causes Gcal to represent the value for another quantity. For the mode characters, which @enumerate a @item cause the calculation of @w{Earth/Sun} or @w{Earth/Moon} distances, the calculated distance is represented in kilometers. @item cause the calculation of phase angles of the Moon, the calculated phase angle is represented as a phase value in percents. @end enumerate If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations. @xref{x-Sun-event-texts, , Event texts of the Sun oriented special texts}, where you can find the event oriented texts that are created for clocktime values, which are schematically and analogously used for the type of representation as it is described here. @item Signed decimal based rational number value@* @cindex Signed decimal based rational number value, Sun and Moon oriented special texts @cindex Sun and Moon oriented special texts, signed decimal based rational number value Signed decimal based rational number values are represented using the @w{@code{+@r{|}-@var{n}.@var{n}@dots{}}} format by default. A @samp{*} character that is directly given before a mode character causes Gcal not to represent such values using another style. If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations. @xref{x-Sun-event-texts, , Event texts of the Sun oriented special texts}, where you can find the event oriented texts that are created for clocktime values, which are schematically and analogously used for the type of representation as it is described here. @item Clocktime value@* @cindex Clocktime value, Sun and Moon oriented special texts @cindex Sun and Moon oriented special texts, Clocktime value Clocktime values are represented in hours and minutes, and that in the @w{@code{@var{hh}:@var{mm}}} @emph{24-hour} format by default. A @samp{*} character that is directly given before a mode character causes Gcal to represent the clocktime value using the @emph{12-hour} format, thus to provide it with a time suffix. @xref{x-Actual-local-time, Actual local time @code{%t@r{[}@var{argument}@r{]}} special text, Actual localtime in @code{@var{hh}:@var{mm}} format @code{%t@r{[}@var{argument}@r{]}} special text}, for more details about the above mentioned time value template. @tbindex Special event oriented texts, Sun data and times @tbindex Sun data and times, special event oriented texts @tbindex Event oriented texts of Sun data and times, special @tbindex Special event oriented texts, Moon data and times @tbindex Moon data and times, special event oriented texts @tbindex Event oriented texts of Moon data and times, special @cindex Special event oriented texts, Sun data and times @cindex Sun data and times, special event oriented texts @cindex Event oriented texts of Sun data and times, special @cindex Special event oriented texts, Moon data and times @cindex Moon data and times, special event oriented texts @cindex Event oriented texts of Moon data and times, special @anchor{x-Sun-event-texts} If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations: @itemize @bullet @item In case Gcal is unable to compute the approximate clocktime by reason of a misspecified @var{argument}, a @w{@code{??:??}} text will be created instead of the clocktime text. @item In case Gcal calculates an approximate clocktime that refers to a previous or next day, or Gcal is unable to calculate a clocktime because the event calculated does not occur during this day, a @w{@code{**:**}} text will be created instead of the clocktime text. @item In case Gcal is unable to calculate an approximate clocktime because the reference point of the astronomical object, thus either the center or the upper limb of the Sun's or the Moon's disk, is always above the respective reference altitude, a @w{@code{++:++}} text will be created instead of the clocktime text. @item In case Gcal is unable to calculate an approximate clocktime because the reference point of the astronomical object, thus either the center or the upper limb of the Sun's or the Moon's disk, is always below the respective reference altitude, a @w{@code{--:--}} text will be created instead of the clocktime text. @end itemize @item Unsigned time value@* @cindex Unsigned time value, Sun and Moon oriented special texts @cindex Sun and Moon oriented special texts, unsigned time value Unsigned time values, which mostly denote a period or interval of time, are represented in hours and minutes using the @w{@code{@var{hh}h@var{mm}'}} format by default. A @samp{*} character that is directly given before a mode character causes Gcal to represent the time value using another style, and that in decimal hours, i.e.@: in the @w{@code{@var{hh}.@var{h}@dots{}}} format. If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations. @xref{x-Sun-event-texts, , Event texts of the Sun oriented special texts}, where you can find the event oriented texts that are created for clocktime values, which are schematically and analogously used for the type of representation as it is described here. @item Signed time value@* @cindex Signed time value, Sun and Moon oriented special texts @cindex Sun and Moon oriented special texts, signed time value Signed time values, which mostly denote a period or interval of time, are represented in hours and minutes using the @w{@code{+@r{|}-@var{hh}h@var{mm}'}} format by default. A @samp{*} character that is directly given before a mode character causes Gcal to represent the time value using another style, and that in decimal hours, i.e.@: in the @w{@code{+@r{|}-@var{hh}.@var{h}@dots{}}} format. If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations. @xref{x-Sun-event-texts, , Event texts of the Sun oriented special texts}, where you can find the event oriented texts that are created for clocktime values, which are schematically and analogously used for the type of representation as it is described here. @item Unsigned angular value@* @cindex Unsigned angular value, Sun and Moon oriented special texts @cindex Sun and Moon oriented special texts, unsigned angular value Unsigned angular values are represented in degrees and arcminutes using the @w{@code{@var{ddd}d@var{mm}'}} format by default. A @samp{*} character that is directly given before a mode character causes Gcal to represent the angular value using another style, and that in decimal degrees, i.e.@: in the @w{@code{@var{ddd}.@var{d}@dots{}}} format. If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations. @xref{x-Sun-event-texts, , Event texts of the Sun oriented special texts}, where you can find the event oriented texts that are created for clocktime values, which are schematically and analogously used for the type of representation as it is described here. @item Signed angular value@* @cindex Signed angular value, Sun and Moon oriented special texts @cindex Sun and Moon oriented special texts, signed angular value Signed angular values are represented in degrees and arcminutes using the @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format by default. A @samp{*} character that is directly given before a mode character causes Gcal to represent the angular value using another style, and that in decimal degrees, i.e.@: in the @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format. If definite events happen, Gcal displays special event oriented texts instead of using the previously described representations. @xref{x-Sun-event-texts, , Event texts of the Sun oriented special texts}, where you can find the event oriented texts that are created for clocktime values, which are schematically and analogously used for the type of representation as it is described here. @end enumerate @cindex @acronym{ISO}-6709:1983 co-ordinate @cindex Co-ordinate, @acronym{ISO}-6709:1983 @anchor{x-Sun-arguments} After the optional style and mode characters, the latitude and longitude of the geographic co-ordinates follows, for which the calculations must be made. They must be conform the @acronym{ISO}-6709:1983 standard representation of latitude and longitude for geographic point locations, so that the co-ordinate has to be declared like this: @itemize @bullet @tbindex @acronym{ISO}-6709:1983 co-ordinate @tbindex Co-ordinate, @acronym{ISO}-6709:1983 @item Latitude (@code{+} for North and on the equator, @code{-} for South of the equator.) @table @code @item +@r{|}-@var{dd}@r{[}.@var{dd}@r{]} Degrees (2 digits), and optionally decimal degrees @item +@r{|}-@var{dd}@var{mm}@r{[}.@var{mm}@r{]} Degrees (2 digits), arcminutes (2 digits), and optionally decimal minutes @item +@r{|}-@var{dd}@var{mm}@var{ss}@r{[}.@var{ss}@r{]} Degrees (2 digits), arcminutes (2 digits), arcseconds (2 digits), and optionally decimal seconds @end table @item Longitude (@code{+} for East and on the prime meridian (Greenwich), @code{-} for West of Greenwich and up to the 180th meridian.) @table @code @item +@r{|}-@var{ddd}@r{[}.@var{dd}@r{]} Degrees (3 digits), and optionally decimal degrees @item +@r{|}-@var{ddd}@var{mm}@r{[}.@var{mm}@r{]} Degrees (3 digits), arcminutes (2 digits), and optionally decimal minutes @item +@r{|}-@var{ddd}@var{mm}@var{ss}@r{[}.@var{ss}@r{]} Degrees (3 digits), arcminutes (2 digits), arcseconds (2 digits), and optionally decimal seconds @end table @item Optionally, the relative height in meters above the sea level (@code{+} for heights above and on the sea level, @code{-} for heights below the sea level.) @table @code @item @r{[}+@r{|}-@var{n}@r{[}@var{n}@r{[}@var{n}@r{[}@var{n}@r{]]]]} Height in meters (integer number) in range @w{@code{-9999}@dots{}@code{+9999}} (1@dots{}4 digits) @end table @end itemize All components of the co-ordinates must have leadings zeroes in case they have less digits than the templates shown above. Declared decimal seconds are not respected by Gcal. Heights which have a negative sign remain unrespected if Gcal determinates Sun and Moon data and times, respectively. In such a case, Gcal always uses the height @code{+0}@. Latitude and longitude co-ordinates, and the height of the observer's location are connected without any separating characters, like @samp{+40-075+61}, @samp{+401213.1-0750015.1} or @samp{+40.20361-075.00417+0061}@. See the pertinent literature for more details. @cindex Local time @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) @cindex Timezone @cindex Summertime @cindex Wintertime @cindex Daylight Savings A time value @w{@code{@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]}}}, which is separated by a @samp{,} character, may trail the co-ordinate. Such a time value informs Gcal, about how many minutes @var{mmmm} respectively hours @var{hh} and minutes @var{mm} the geographic location is displaced from Universal time @w{(UTC/GMT)}@. This time displacement value defines the timezone, which is actually valid for this location. If summer- and wintertimes are respected for the location, you should include that change in time into the timezone value for the period in which the summertime is valid, by which the clock is put on during the summertime period --- such a change is either subtracted from the timezone value for locations West of the prime meridian (Greenwich), or it is added for locations East of the prime meridian, because Gcal is actually unable to perform such operations automatically@! @xref{x-Actual-local-time, Actual local time @code{%t@r{[}@var{argument}@r{]}} special text, Actual local time in @code{@var{hh}:@var{mm}} format @code{%t@r{[}@var{argument}@r{]}} special text}, for more details about the above mentioned time value template. If no time displacement value is specified for a given co-ordinate, Gcal assumes a time displacement value of @code{0}, which is equal to the actual Universal time @w{(UTC/GMT)}@. The following table informs you about which type of representation is caused by a mode. The previously defined numbering scheme, as it has been used for the introduction of the types of representations, is used as key value in the column that holds the type of representation. The table also contains a column that shows whether a mode enables dynamical values, i.e.@: values that are depending on the respective clocktime (if you use the @w{@option{--time-offset=@var{argument}}} option, you can change the respective clocktime that is used for calculating such values)@. In a next table column, it is listed whether the given co-ordinate of the location influences the determination of a value, and the last column of the table gives you the information whether a given timezone value affects the values determination: @iftex @sp 1 @end iftex @multitable @columnfractions .1 .3 .2 .2 .2 @tbindex Representation types of the Sun oriented special texts @tbindex Sun oriented special texts, representation types @cindex Table of representation types of the Sun oriented special texts @cindex Sun oriented special texts, table of representation types @item @strong{Mode} @tab @strong{Representation Type} @tab @strong{Dynamical} @tab @strong{Co-ordinate} @tab @strong{Timezone} @item @ @item @code{0} @tab 3 @tab No @tab Yes @tab Yes @item @code{1} @tab 3 @tab No @tab Yes @tab Yes @item @code{2} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{3} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{4} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{5} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{6} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{7} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{8} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{9} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{a} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{b} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{c} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{d} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{e} @tab 4 @tab Yes @tab Yes @tab Yes @item @code{f} @tab 1 or 1a @tab Yes @tab Yes @tab Yes @item @code{g} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{h} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{i} @tab 6 @tab Yes @tab No @tab No @item @code{j} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{k} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{l} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{m} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{n} @tab 4 @tab Yes @tab Yes @tab Yes @item @code{o} @tab 1 or 1a @tab Yes @tab Yes @tab Yes @item @code{p} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{q} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{r} @tab 2 @tab Yes @tab No @tab No @item @code{s} @tab 3 @tab Yes @tab Yes @tab Yes @item @code{t} @tab 3 @tab Yes @tab No @tab No @item @code{u} @tab 1 @tab Yes @tab No @tab No @item @code{v} @tab 1 @tab Yes @tab No @tab No @item @code{w} @tab 5 @tab Yes @tab No @tab Yes @item @code{x} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{y} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{z} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{A} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{B} @tab 7 @tab No @tab Yes @tab Yes @item @code{C} @tab 7 @tab No @tab Yes @tab Yes @item @code{D} @tab 7 @tab No @tab Yes @tab Yes @item @code{E} @tab 7 @tab No @tab Yes @tab Yes @item @code{F} @tab 5 @tab No @tab Yes @tab Yes @item @code{G} @tab 5 @tab No @tab Yes @tab Yes @item @code{H} @tab 5 @tab No @tab Yes @tab Yes @item @code{I} @tab 7 @tab No @tab Yes @tab Yes @item @code{J} @tab 7 @tab No @tab Yes @tab Yes @item @code{K} @tab 7 @tab No @tab Yes @tab Yes @item @code{L} @tab 6 @tab No @tab Yes @tab Yes @item @code{M} @tab 7 @tab No @tab Yes @tab Yes @item @code{N} @tab 7 @tab No @tab Yes @tab Yes @item @code{O} @tab 7 @tab No @tab Yes @tab Yes @item @code{P} @tab 6 @tab No @tab Yes @tab Yes @item @code{Q} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{R} @tab 3 or 4 @tab No @tab Yes @tab Yes @end multitable @iftex @sp 1 @end iftex @noindent And now some examples to these special texts: @quotation The text @w{@samp{Sunrise at %o+5158+00738,120 @ in MS, BRD}} will be expanded to@* @w{@expansion{} @samp{Sunrise at 05:16 in MS, BRD}}, in case the actual system date is the 1st June 1998@. @end quotation @quotation The text @w{@samp{Sunset at %s*5+5158+00738,120 @ in MS, BRD}} will be expanded to@* @w{@expansion{} @samp{Sunset at 09:39pm in MS, BRD}}, in case the actual system date is the 1st June 1998@. @end quotation @quotation The text @w{@samp{Sun visible %u5+5158+00738,120 @ in MS, BRD}} will be expanded to@* @w{@expansion{} @samp{Sun visible 16h24' in MS, BRD}}, in case the actual system date is the 1st June 1998@. @end quotation @quotation The text @w{@samp{Sun non-visible %z*+5158+00738,120 @ in MS, BRD}} will be expanded to@* @w{@expansion{} @samp{Sun non-visible 7.607 in MS, BRD}}, in case the actual system date is the 1st June 1998@. @end quotation @quotation The text @w{@samp{Sun azimuth 0 o'clock=%s*a+5158+00738,120 @ in MS, BRD}} will be expanded to@* @w{@expansion{} @samp{Sun azimuth 0 o'clock=339d16' in MS, BRD}}, in case the actual system date is the 1st June 1998@. @end quotation @quotation The text @w{@samp{Equation of time %ot+00+000=%o*w+00+000,120 @ BRD}} will be expanded to@* @w{@expansion{} @samp{Equation of time +16h00'=+00h02'13.201" BRD}}, in case you call Gcal with the @w{@option{--time-offset=16:}} and @option{--precise} options and the actual system date is the 1st June 1998@. @end quotation @quotation The text @w{@samp{Julian date at %ot+00+000 =%ou+00+000}} will be expanded to@* @w{@expansion{} @samp{Julian date at +10h15'=2450965.927}}, in case you call Gcal with the @w{@option{--time-offset=10:15}} option and the actual system date is the 1st June 1998@. @end quotation @iftex @sp 1 @end iftex @cindex Reference systems used, Sun oriented special texts @cindex Sun oriented special texts, reference systems used @cindex Limitations, Sun oriented special texts @cindex Sun oriented special texts, limitations Here is a list that reports about the used reference systems in a short manner, describes other aspects that are unmentioned now, and informs about the lacks and limitations that are existing for the Sun oriented special texts: @itemize @bullet @item All astronomical calculations are based on methods that use ---astronomically seen--- low-precision elements, which of course is shown in the precision of the results that are caused by them. Nevertheless in most cases, these results can be treated as more as sufficiently precise if one measures their practical use. @item All azimuth and elevation values are always referring to the center of the respective astronomical object, except the case, it is stated otherwise. @item The base point of azimuth values, right ascension values and other ecliptic co-ordinate values is always measured clockwise relative to the geographical, true North (not the magnetic North as shown by a compass), where angular values for the North direction are both denoted as 0 degree and 360 degree. @item All topocentrically based azimuth and elevation values are always corrected by the amount of atmospheric refraction. Such a kind of correction is always done if the center of the respective astronomical object is above 2 degrees below the horizon. @item Generally, the rise and set times of the Sun cannot be precisely predicted, because depending on unpredictable atmospheric conditions, i.e.@: the local weather conditions as they appear during these times change the amount of atmospheric refraction at the horizon, so that the precalculated rise and set times may throughout be in error by a minute or more. @cindex Solar Arctic Circle @item The accuracy of rise and set computations decreases again at high latitudes, i.e.@: within in the solar Arctic Circle. There, small variations in atmospheric refraction can change the time of sunrise or sunset by many minutes, since the Sun intersects the horizon at a very shallow angle. For the same reason, at high latitudes, the effects of observer height and local topography are magnified and can substantially change the times of the phenomena actually observed, or even whether the phenomena are observed to occur at all. @item The short explanations that are given to the different twilight phases all assume the model of ideal atmospheric conditions by default. It is obvious that these explanations all become meaningless if other conditions occur in reality, like a cloudy sky or a badly polluted atmosphere. @end itemize @noindent @strong{Please also note the following references:} @itemize @bullet @item @xref{x-precise, , Fixed dates option @option{--precise}}, how to obtain a more precise representation of the values which are cause by these special texts. @item And note @ref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, how to change the clocktime, for which the dynamical, i.e.@: depending on the respective clocktime, Sun oriented special texts are calculated. @item Likewise, see @ref{x-cycle-end, , Fixed dates option @option{--cycle-end=@var{argument}}}, how the dynamical, i.e.@: depending on the respective clocktime, Sun oriented special texts are calculated for a series of clocktimes for the current day. @item And also note @ref{x-adjust-value, , Fixed dates option @option{--adjust-value=@var{argument}}}, how to change the reference altitude that is used to calculate the rise and set times, as well as the shadow length factor. @item Furthermore, see @ref{x-atmosphere, , Fixed dates option @option{--atmosphere=@var{air-pressure}@r{[,}@var{temperature}@r{]}}}, how to change the base data of the atmosphere that influences the calculation of the Sun oriented special texts. @item And last, note @ref{x-limit, , Fixed dates option @option{--limit}}, how to limit the rise and set times of the Sun to the actual day. @end itemize All Sun oriented special texts @strong{must} always be trailed by a @emph{whitespace} character which is removed in output! @page @node Moon data, Contents of Environment variable, Sun data, Replacements with other argument @appendixsubsubsec Moon data @code{%@r{[}@var{format}@r{]}@var{?}@var{argument}} special texts @cindex @code{%@r{[}@var{format}@r{]}@var{?}@var{argument}} special texts, Moon data @cindex Special texts @code{%@r{[}@var{format}@r{]}@var{?}@var{argument}}, Moon data @cindex Moon data @code{%@r{[}@var{format}@r{]}@var{?}@var{argument}} special texts @cindex Moonrise @cindex Moonset @cindex Lunar day length @cindex Lunar night length @code{%@r{[}@var{format}@r{]}(@r{[}*@r{][}@var{mode}@r{]}@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the approximate time of @strong{moonrise} by default,@* @code{%@r{[}@var{format}@r{]})@r{[}*@r{][}@var{mode}@r{]}@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the approximate time of @strong{moonset} by default,@* @code{%@r{[}@var{format}@r{]}[@r{[}*@r{][}@var{mode}@r{]}@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the approximate period of @strong{visibility} of the Moon (lunar day length) by default,@* @code{%@r{[}@var{format}@r{]}]@r{[}*@r{][}@var{mode}@r{]}@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} references the approximate period of @strong{non-visibility} of the Moon (lunar night length) by default. All these special texts can be used for at pleasure any geographic point location, i.e.@: it is possible to determine different astronomical values for any location on the globe, and that for at pleasure any clocktime with a resolution of a single minute within the period of the years @acronym{AD} 1 until @acronym{AD} 9999, that is respected by Gcal. @cindex Mode characters, Moon data and times @cindex Moon data and times, mode characters The selection which value has to be calculated by these special texts is done by specifying the @var{mode} part of the preceding argument. Actually, exactly 61 different modes can be used that are represented by the @w{@samp{0}@dots{}@samp{9}}, @w{@samp{a}@dots{}@samp{z}} and @w{@samp{A}@dots{}@samp{Y}} characters, and which create different kind of results that are depending on the special text used. First of all, here is a table in which all usable modes are described and explained sufficiently. You can also see from this table, which Moon oriented special text or texts are corresponding to which mode, i.e.@: cause the determination of an astronomical value as it is described in the table: @iftex @sp 1 @end iftex @multitable @columnfractions .1 .18 .72 @tbindex Modes, Moon oriented special texts @tbindex Moon oriented special texts, modes @cindex Table of modes of the Moon oriented special texts @cindex Moon oriented special texts, table of modes @item @strong{Mode} @tab @strong{Special text} @tab @strong{Description} @item @ @item @code{0} @cindex Moon, astronomical midnight time @code{%(0@var{argument}} special text @cindex Moon, astronomical midnight time @code{%)0@var{argument}} special text @cindex Moon, astronomical midnight time @code{%(*0@var{argument}} special text @cindex Moon, astronomical midnight time @code{%)*0@var{argument}} special text @cindex Astronomical midnight time, Moon @cindex Midnight time of Moon, astronomical @cindex Moon, azimuth @cindex Azimuth, Moon @cindex Moon, lowest culmination point @cindex Lowest culmination point, Moon @cindex Moon, conjunction @cindex Conjunction, Moon @cindex Moon, synodic month @cindex Synodic month, Moon @cindex Moon, lunation @cindex Lunation, Moon @anchor{x-Moon-midnight} @tab @code{(}, @code{)} @tab Calculates the approximate midnight time of the Moon. The astronomical midnight time of the Moon is at that clocktime, when the Moon holds an @dfn{azimuth} (horizontal angular distance between the vertical circle, that passes the Moon, and the North point) of either precisely 0 degrees of precisely 180 degrees, which depends on the season and the geographical location. At that clocktime, the Moon is close its @dfn{lowest culmination point}, i.e.@: close the lowest point below or above the horizontal plane the Moon transits during this day. Nevertheless, there is exactly one day during a @dfn{synodic month} (or lunation) ---i.e.@: the mean time between two consecutive @dfn{conjunctions} (or New Moon phases)--- at which no lunar midnight happens, because the Moon revolves the Earth within 24 hours and 50 minutes on the average --- which also means, that the Moon rises on the average 50 minutes later each day. @item @ @item @code{1} @cindex Moon, astronomical noon time @code{%(1@var{argument}} special text @cindex Moon, astronomical noon time @code{%)1@var{argument}} special text @cindex Moon, astronomical noon time @code{%(*1@var{argument}} special text @cindex Moon, astronomical noon time @code{%)*1@var{argument}} special text @cindex Astronomical noon time, Moon @cindex Noon time of Moon, astronomical @cindex Moon, highest culmination point @cindex Highest culmination point, Moon @anchor{x-Moon-noon} @tab @code{(}, @code{)} @tab Calculates the approximate noon time of the Moon. The astronomical noon time of the Moon is at that clocktime, when the Moon holds an azimuth of either precisely 180 degrees of precisely 0 degrees, which depends on the season and the geographical location. At that clocktime, the Moon is close its @dfn{highest culmination point}, i.e.@: close the highest point above or below the horizontal plane the Moon transits during this day. Nevertheless, there is exactly one day during a synodic month at which no lunar noon happens. @item @ @item @code{2} @cindex Moon's center, geometrical rise time @code{%(2@var{argument}} special text @cindex Moon's center, geometrical rise time @code{%(*2@var{argument}} special text @cindex Moon, mathematical-geocentric horizon @cindex Mathematical-geocentric horizon, Moon @cindex Moon, geometric horizon @cindex Geometric horizon, Moon @tab @code{(} @tab Calculates the approximate time when the center of the Moon passes a reference altitude which is between about 54 and 61 arcminutes above a @dfn{mathematical-geocentric} horizon before lunar noon time; thus rising. A mathematical horizon is a purely geometrically-built horizon which disregards the phenomenon of refraction as it arises in reality by the influence of the Earth's atmosphere. A geocentrical horizon is the horizontal plane that passes through the Earth's center, orthogonal to the observer's local vertical. In the further context, the shorter term @emph{mathematical horizon} is used which actually means the mathematical-geocentric horizon. The above mentioned reference altitude is computed from the value of the Moon's parallax as it appear at that clocktime. Nevertheless, there is exactly one day during a synodic month at which no such moonrise happens. @item @ @item @code{2} @cindex Moon's center, geometrical set time @code{%)2@var{argument}} special text @cindex Moon's center, geometrical set time @code{%)*2@var{argument}} special text @tab @code{)} @tab Calculates the approximate time when the center of the Moon passes a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon after lunar noon time; thus setting. The above mentioned reference altitude is computed from the value of the Moon's parallax as it appear at that clocktime. Nevertheless, there is exactly one day during a synodic month at which no such moonset happens. @item @ @item @code{2} @cindex Moon's center, geometrical visibility @code{%[2@var{argument}} special text @cindex Moon's center, geometrical visibility @code{%[*2@var{argument}} special text @tab @code{[} @tab Calculates the approximate period while the center of the Moon is above a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon; thus is visible. @item @ @item @code{2} @cindex Moon's center, geometrical non-visibility @code{%]2@var{argument}} special text @cindex Moon's center, geometrical non-visibility @code{%]*2@var{argument}} special text @tab @code{]} @tab Calculates the approximate period while the center of the Moon is below a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon; thus is non-visible. @item @ @item @code{3} @cindex Moon's upper limb, geometrical rise time @code{%(3@var{argument}} special text @cindex Moon's upper limb, geometrical rise time @code{%(*3@var{argument}} special text @tab @code{(} @tab Calculates the approximate time when the upper limb of the Moon passes a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon before lunar noon time; thus rising. The above mentioned reference altitude is computed from the respective values of the Moon's semidiameter and Moon's parallax as they appear at that clocktime. If the reference altitude that is referring to the Moon's upper limb is converted to a reference altitude that is referring to the Moon's center, this results in a value which is between about 39 and 44 arcminutes above the geocentric horizon. Nevertheless, there is exactly one day during a synodic month at which no such moonrise happens. @item @ @item @code{3} @cindex Moon's upper limb, geometrical set time @code{%)3@var{argument}} special text @cindex Moon's upper limb, geometrical set time @code{%)*3@var{argument}} special text @tab @code{)} @tab Calculates the approximate time when the upper limb of the Moon passes a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon after lunar noon time; thus setting. The above mentioned reference altitude is computed from the respective values of the Moon's semidiameter and Moon's parallax as they appear at that clocktime. Nevertheless, there is exactly one day during a synodic month at which no such moonset happens. @item @ @item @code{3} @cindex Moon's upper limb, geometrical visibility @code{%[3@var{argument}} special text @cindex Moon's upper limb, geometrical visibility @code{%[*3@var{argument}} special text @tab @code{[} @tab Calculates the approximate period while the upper limb of the Moon is above a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon; thus is visible. @item @ @item @code{3} @cindex Moon's upper limb, geometrical non-visibility @code{%]3@var{argument}} special text @cindex Moon's upper limb, geometrical non-visibility @code{%]*3@var{argument}} special text @tab @code{]} @tab Calculates the approximate period while the upper limb of the Moon is below a reference altitude which is between about 54 and 61 arcminutes above a mathematical horizon; thus is non-visible. @item @ @item @code{4} @cindex Moon's center, rise time @code{%(4@var{argument}} special text @cindex Moon's center, rise time @code{%(*4@var{argument}} special text @tab @code{(} @tab Calculates the approximate time when the center of the Moon passes a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon before lunar noon time; thus rising. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the @w{@option{--atmosphere}} option. @ref{x-atmosphere, , Fixed dates option @option{--atmosphere=@var{air-pressure}@r{[,}@var{temperature}@r{]}}}, how to change the base data of the atmosphere, so that the atmospheric conditions as defined by it are used to calculate the amount of refraction. The above mentioned reference altitude is computed from the respective values of the Moon's parallax and (standard) refraction as they appear at that clocktime. Nevertheless, there is exactly one day during a synodic month at which no such moonrise happens. @item @ @item @code{4} @cindex Moon's center, set time @code{%)4@var{argument}} special text @cindex Moon's center, set time @code{%)*4@var{argument}} special text @tab @code{)} @tab Calculates the approximate time when the center of the Moon passes a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon after lunar noon time; thus setting. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the @w{@option{--atmosphere}} option. The above mentioned reference altitude is computed from the respective values of the Moon's parallax and (standard) refraction as they appear at that clocktime. Nevertheless, there is exactly one day during a synodic month at which no such moonset happens. @item @ @item @code{4} @cindex Moon's center, visibility @code{%[4@var{argument}} special text @cindex Moon's center, visibility @code{%[*4@var{argument}} special text @tab @code{[} @tab Calculates the approximate period while the center of the Moon is above a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon; thus is visible. @item @ @item @code{4} @cindex Moon's center, non-visibility @code{%]4@var{argument}} special text @cindex Moon's center, non-visibility @code{%]*4@var{argument}} special text @tab @code{]} @tab Calculates the approximate period while the center of the Moon is below a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon; thus is non-visible. @item @ @item @code{5} @cindex Moon's upper limb, standard rise time @code{%(5@var{argument}} special text @cindex Moon's upper limb, standard rise time @code{%(*5@var{argument}} special text @cindex Moon, standard rise time @cindex Standard rise time, Moon @anchor{x-Moon-standard-rise} @tab @code{(} @tab Calculates the approximate time when the upper limb of the Moon passes a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon before lunar noon time; thus rising. This kind of rise time calculation is done according to the standard calculation method as it is commonly used internationally. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the @w{@option{--atmosphere}} option. @ref{x-atmosphere, , Fixed dates option @option{--atmosphere=@var{air-pressure}@r{[,}@var{temperature}@r{]}}}, how to change the base data of the atmosphere, so that the atmospheric conditions as defined by it are used to calculate the amount of refraction. The above mentioned reference altitude is computed from the respective values of the Moon's semidiameter, Moon's parallax and (standard) refraction as they appear at that clocktime. If the reference altitude that is referring to the Moon's upper limb is converted to a reference altitude that is referring to the Moon's center, this results in a value which is between about 5 and 10 arcminutes above the geocentric horizon. Nevertheless, there is exactly one day during a synodic month at which no such moonrise happens. @item @ @item @code{5} @cindex Moon's upper limb, standard set time @code{%)5@var{argument}} special text @cindex Moon's upper limb, standard set time @code{%)*5@var{argument}} special text @cindex Moon, standard set time @cindex Standard set time, Moon @anchor{x-Moon-standard-set} @tab @code{)} @tab Calculates the approximate time at which the upper limb of the Moon passes a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon after lunar noon time; thus setting. This kind of set time calculation is done according to the standard calculation method as it is commonly used internationally. The phenomenon of refraction is already respected in this as it arises in reality by the influence of the Earth's atmosphere, and that with the standard value of 34 arcminutes, which can indirectly be changed by using the @w{@option{--atmosphere}} option. The above mentioned reference altitude is computed from the respective values of the Moon's semidiameter, Moon's parallax and (standard) refraction as they appear at that clocktime. Nevertheless, there is exactly one day during a synodic month at which no such moonset happens. @item @ @item @code{5} @cindex Moon's upper limb, standard visibility @code{%[5@var{argument}} special text @cindex Moon's upper limb, standard visibility @code{%[*5@var{argument}} special text @cindex Moon, standard visibility period @cindex Standard visibility period, Moon @tab @code{[} @tab Calculates the approximate period while the upper limb of the Moon is above a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon; thus is visible. This kind of visibility period calculation is done according to the standard calculation method as it is commonly used internationally. @item @ @item @code{5} @cindex Moon's upper limb, standard non-visibility @code{%]5@var{argument}} special text @cindex Moon's upper limb, standard non-visibility @code{%]*5@var{argument}} special text @cindex Moon, standard non-visibility period @cindex Standard non-visibility period, Moon @tab @code{]} @tab Calculates the approximate period while the upper limb of the Moon is below a reference altitude which is between about 20 and 27 arcminutes above the geocentric horizon; thus is non-visible. This kind of non-visibility period calculation is done according to the standard calculation method as it is commonly used internationally. @item @ @item @code{6} @cindex Moon's center, topocentric horizontal parallax @code{%(6@var{argument}} special text @cindex Moon's center, topocentric horizontal parallax @code{%)6@var{argument}} special text @cindex Moon's center, topocentric horizontal parallax @code{%(*6@var{argument}} special text @cindex Moon's center, topocentric horizontal parallax @code{%)*6@var{argument}} special text @cindex Horizontal parallax, moon @cindex Moon, topocentric data @cindex Topocentric data, Moon @cindex Moon, geocentric data @cindex Geocentric data, Moon @tab @code{(}, @code{)} @tab Calculates the approximate @dfn{topocentric}, apparent @dfn{horizontal parallax} of the Moon in degrees and arcminutes as it happen at civil midnight time. The Moon's parallax states the diameter of the Earth as it is seen from the surface of the Moon. Observations of celestial objects that are done from the surface of the Earth yield in topocentrically based data. The locations of the celestial bodies are often at another place if the data is topocentrically determined instead of determine it @dfn{geocentrically}, i.e.@: at the fictitious center of the Earth. This is mainly caused by the refraction, which raises a celestial body to another location as it is been in reality. Because the terrestrial globe flattens towards the pole caps and therefore cannot be taken as an ideally shaped sphere, the individual Earth radius between the observer's location and the center of the Earth also affects the computation of topocentrically based data. @item @ @item @code{7} @cindex Moon's center, topocentric semidiameter @code{%(7@var{argument}} special text @cindex Moon's center, topocentric semidiameter @code{%)7@var{argument}} special text @cindex Moon's center, topocentric semidiameter @code{%(*7@var{argument}} special text @cindex Moon's center, topocentric semidiameter @code{%)*7@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent semidiameter of the Moon in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{8} @cindex Moon's center, topocentric brightness @code{%(8@var{argument}} special text @cindex Moon's center, topocentric brightness @code{%)8@var{argument}} special text @cindex Moon's center, topocentric brightness @code{%(*8@var{argument}} special text @cindex Moon's center, topocentric brightness @code{%)*8@var{argument}} special text @cindex Moon, magnitude units @cindex Magnitude units, Moon @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent brightness of the Moon in @dfn{magnitude units} as it happen at civil midnight time. The magnitude (Latin term @cite{magnitudo}, abbreviated @acronym{m}) is used to define the brightness of a star, and is a non-metrical value. The difference between two consecutive magnitudes is 1 to @w{2.512}@. Therefore, a star with the brightness of @w{1@acronym{m}} is @w{2.512} times brighter than a star of @w{2@acronym{m}}@. A negative magnitude denotes a very bright star, for example almost @w{-27@acronym{m}} for the Sun, whereas the hardly visible planet Pluto has a magnitude of a bit more than @w{+14@acronym{m}}@. The Full Moon has a visual brightness of about @w{-12@acronym{m}.55}@. @item @ @item @code{9} @cindex Moon's center, topocentric phase angle @code{%(9@var{argument}} special text @cindex Moon's center, topocentric phase angle @code{%)9@var{argument}} special text @cindex Moon's center, topocentric phase angle @code{%(*9@var{argument}} special text @cindex Moon's center, topocentric phase angle @code{%)*9@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent phase angle of the Moon in range @w{0.0@dots{}1.0} as it happen at civil midnight time. @item @ @item @code{a} @cindex Moon, topocentric elevation @code{%(a@var{argument}} special text @cindex Moon, topocentric elevation @code{%)a@var{argument}} special text @cindex Moon, topocentric elevation @code{%(*a@var{argument}} special text @cindex Moon, topocentric elevation @code{%)*a@var{argument}} special text @cindex Elevation, Moon @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent @dfn{elevation} of the Moon, thus the vertical angular distance between the Moon's center and the horizon, in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Moon's center is below the horizon at the moment, and results with a positive sign mean that the momentary center of the Moon is above the horizon. @item @ @item @code{b} @cindex Moon, topocentric azimuth @code{%(b@var{argument}} special text @cindex Moon, topocentric azimuth @code{%)b@var{argument}} special text @cindex Moon, topocentric azimuth @code{%)*b@var{argument}} special text @cindex Moon, topocentric azimuth @code{%(*b@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent azimuth of the Moon in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{c} @cindex Moon, topocentric declination @code{%(c@var{argument}} special text @cindex Moon, topocentric declination @code{%)c@var{argument}} special text @cindex Moon, topocentric declination @code{%(*c@var{argument}} special text @cindex Moon, topocentric declination @code{%)*c@var{argument}} special text @cindex Declination, Moon @cindex Celestial equator @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent @dfn{declination} of the Moon, thus the vertical angular distance between the Moon's center and the celestial equator, in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Moon's center is below the celestial equator at the moment, and results with a positive sign mean that the momentary center of the Moon is above the celestial equator. @item @ @item @code{d} @cindex Moon, topocentric ecliptic longitude @code{%(d@var{argument}} special text @cindex Moon, topocentric ecliptic longitude @code{%)d@var{argument}} special text @cindex Moon, topocentric ecliptic longitude @code{%(*d@var{argument}} special text @cindex Moon, topocentric ecliptic longitude @code{%)*d@var{argument}} special text @cindex Ecliptic longitude, Moon @cindex Vernal equinox point on the ecliptic @cindex Ecliptic @cindex Zodiacal line @cindex Sun's orbit @cindex Orbit, Sun's @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent @dfn{ecliptic longitude} of the Moon, thus the horizontal angular distance between the Moon's center and the vernal equinox point on the @dfn{ecliptic} (the zodiacal line or Sun's orbit), in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{e} @cindex Moon, topocentric ecliptic latitude @code{%(e@var{argument}} special text @cindex Moon, topocentric ecliptic latitude @code{%)e@var{argument}} special text @cindex Moon, topocentric ecliptic latitude @code{%(*e@var{argument}} special text @cindex Moon, topocentric ecliptic latitude @code{%)*e@var{argument}} special text @cindex Ecliptic latitude, Moon @cindex Ecliptic @cindex Zodiacal line @cindex Sun's orbit @cindex Orbit, Sun's @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent @dfn{ecliptic latitude} of the Moon, thus the vertical angular distance between the Moon's center and the ecliptic (zodiacal line/Sun's orbit), in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Moon's center is North of the ecliptic at the moment, and results with a positive sign mean that the momentary center of the Moon is South of the ecliptic. @item @ @item @code{f} @cindex Moon, topocentric right ascension @code{%(f@var{argument}} special text @cindex Moon, topocentric right ascension @code{%)f@var{argument}} special text @cindex Moon, topocentric right ascension @code{%(*f@var{argument}} special text @cindex Moon, topocentric right ascension @code{%)*f@var{argument}} special text @cindex Right ascension, Moon @cindex Vernal equinox point on the ecliptic @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent @dfn{right ascension} of the Moon, thus the horizontal angular distance between the Moon's center and the hour circle that passes through the vernal equinox point on the ecliptic, as time value in hours and minutes as it happen at civil midnight time. @item @ @item @code{g} @cindex Moon, topocentric distance @code{%(g@var{argument}} special text @cindex Moon, topocentric distance @code{%)g@var{argument}} special text @cindex Moon, topocentric distance @code{%(*g@var{argument}} special text @cindex Moon, topocentric distance @code{%)*g@var{argument}} special text @cindex Earth equator radius, unit @cindex Unit, Earth equator radius @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent distance of the Moon from the Earth in mean @dfn{Earth equator radii} as it happen at civil midnight time. The mean radius of Earth at the equator is about @w{6,378.137} kilometer. @item @ @item @code{h} @cindex Moon, topocentric elongation @code{%(h@var{argument}} special text @cindex Moon, topocentric elongation @code{%)h@var{argument}} special text @cindex Moon, topocentric elongation @code{%(*h@var{argument}} special text @cindex Moon, topocentric elongation @code{%)*h@var{argument}} special text @cindex Elongation, Moon @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent @dfn{elongation} of the Moon, thus the horizontal angular distance between the Moon's center and the Sun's center, in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{i} @cindex Moon, refraction @code{%(i@var{argument}} special text @cindex Moon, refraction @code{%)i@var{argument}} special text @cindex Moon, refraction @code{%(*i@var{argument}} special text @cindex Moon, refraction @code{%)*i@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate refraction of the Earth's atmosphere in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{j} @cindex Moon's center, geocentric horizontal parallax @code{%(j@var{argument}} special text @cindex Moon's center, geocentric horizontal parallax @code{%)j@var{argument}} special text @cindex Moon's center, geocentric horizontal parallax @code{%(*j@var{argument}} special text @cindex Moon's center, geocentric horizontal parallax @code{%)*j@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent horizontal parallax of the Moon in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{k} @cindex Moon's center, geocentric semidiameter @code{%(k@var{argument}} special text @cindex Moon's center, geocentric semidiameter @code{%)k@var{argument}} special text @cindex Moon's center, geocentric semidiameter @code{%(*k@var{argument}} special text @cindex Moon's center, geocentric semidiameter @code{%)*k@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent semidiameter of the Moon in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{l} @cindex Moon's center, geocentric brightness @code{%(l@var{argument}} special text @cindex Moon's center, geocentric brightness @code{%)l@var{argument}} special text @cindex Moon's center, geocentric brightness @code{%(*l@var{argument}} special text @cindex Moon's center, geocentric brightness @code{%)*l@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent brightness of the Moon in magnitude units as it happen at civil midnight time. @item @ @item @code{m} @cindex Moon's center, geocentric phase angle @code{%(m@var{argument}} special text @cindex Moon's center, geocentric phase angle @code{%)m@var{argument}} special text @cindex Moon's center, geocentric phase angle @code{%(*m@var{argument}} special text @cindex Moon's center, geocentric phase angle @code{%)*m@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent phase angle of the Moon in range @w{0.0@dots{}1.0} as it happen at civil midnight time. @item @ @item @code{n} @cindex Moon, geocentric elevation @code{%(n@var{argument}} special text @cindex Moon, geocentric elevation @code{%)n@var{argument}} special text @cindex Moon, geocentric elevation @code{%(*n@var{argument}} special text @cindex Moon, geocentric elevation @code{%)*n@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Moon's center is below the horizon at the moment, and results with a positive sign mean that the momentary center of the Moon is above the horizon. @item @ @item @code{o} @cindex Moon, geocentric azimuth @code{%(o@var{argument}} special text @cindex Moon, geocentric azimuth @code{%)o@var{argument}} special text @cindex Moon, geocentric azimuth @code{%)*o@var{argument}} special text @cindex Moon, geocentric azimuth @code{%(*o@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent azimuth of the Moon in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{p} @cindex Moon, geocentric declination @code{%(p@var{argument}} special text @cindex Moon, geocentric declination @code{%)p@var{argument}} special text @cindex Moon, geocentric declination @code{%(*p@var{argument}} special text @cindex Moon, geocentric declination @code{%)*p@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent declination of the Moon in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Moon's center is below the celestial equator at the moment, and results with a positive sign mean that the momentary center of the Moon is above the celestial equator. @item @ @item @code{q} @cindex Moon, geocentric ecliptic longitude @code{%(q@var{argument}} special text @cindex Moon, geocentric ecliptic longitude @code{%)q@var{argument}} special text @cindex Moon, geocentric ecliptic longitude @code{%(*q@var{argument}} special text @cindex Moon, geocentric ecliptic longitude @code{%)*q@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent ecliptic longitude of the Moon in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{r} @cindex Moon, geocentric ecliptic latitude @code{%(r@var{argument}} special text @cindex Moon, geocentric ecliptic latitude @code{%)r@var{argument}} special text @cindex Moon, geocentric ecliptic latitude @code{%(*r@var{argument}} special text @cindex Moon, geocentric ecliptic latitude @code{%)*r@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent ecliptic latitude of the Moon in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the Moon's center is North of the ecliptic at the moment, and results with a positive sign mean that the momentary center of the Moon is South of the ecliptic. @item @ @item @code{s} @cindex Moon, geocentric right ascension @code{%(s@var{argument}} special text @cindex Moon, geocentric right ascension @code{%)s@var{argument}} special text @cindex Moon, geocentric right ascension @code{%(*s@var{argument}} special text @cindex Moon, geocentric right ascension @code{%)*s@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent right ascension of the Moon as time value in hours and minutes as it happen at civil midnight time. @item @ @item @code{t} @cindex Moon, geocentric distance @code{%(t@var{argument}} special text @cindex Moon, geocentric distance @code{%)t@var{argument}} special text @cindex Moon, geocentric distance @code{%(*t@var{argument}} special text @cindex Moon, geocentric distance @code{%)*t@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent distance of the Moon from the Earth in mean Earth equator radii as it happen at civil midnight time. @item @ @item @code{u} @cindex Moon, geocentric elongation @code{%(u@var{argument}} special text @cindex Moon, geocentric elongation @code{%)u@var{argument}} special text @cindex Moon, geocentric elongation @code{%(*u@var{argument}} special text @cindex Moon, geocentric elongation @code{%)*u@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent elongation of the Moon in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{v} @cindex Moon, delta-t @code{%(v@var{argument}} special text @cindex Moon, delta-t @code{%)v@var{argument}} special text @cindex Moon, delta-t @code{%(*v@var{argument}} special text @cindex Moon, delta-t @code{%)*v@var{argument}} special text @cindex Delta-t, Moon @cindex Terrestrial Dynamical time (TDT) @cindex Ephemeris time (ET) @tab @code{(}, @code{)} @tab Calculates the approximate @dfn{delta-t} in seconds as it happen at civil midnight time. Delta-t is the difference between the Terrestrial Dynamical time (abbreviated by @acronym{TDT}), that was formerly known as @emph{Ephemeris time} (abbreviated by @acronym{ET}), and the Universal time (@acronym{UT}). Thus, @w{@samp{delta-t @equiv{} TDT - UT}}@. @item @ @item @code{w} @cindex Moon, local sidereal time @code{%(w@var{argument}} special text @cindex Moon, local sidereal time @code{%)w@var{argument}} special text @cindex Moon, local sidereal time @code{%(*w@var{argument}} special text @cindex Moon, local sidereal time @code{%)*w@var{argument}} special text @cindex Sidereal time, Moon @cindex Star day @cindex Star time @cindex Vernal equinox point on the ecliptic @tab @code{(}, @code{)} @tab Calculates the approximate, apparent location oriented @dfn{sidereal time} (local sidereal time (@acronym{LAST}), also known as @emph{local star time}) in hours and minutes as it happen at civil midnight time. A @dfn{star day} is the period between two consecutive upper culminations of the vernal equinox point on the ecliptic in the meridian of the observer's location. Therefore, the local @dfn{star time} is the momentary period, which is past between the last upper culmination of the vernal equinox point in the meridian of the observer's location (the momentary hour angle of the vernal equinox point), thus the right ascension of the stars in the observer's meridian at the moment. @item @ @item @code{x} @cindex Moon, base time @code{%(x@var{argument}} special text @cindex Moon, base time @code{%)x@var{argument}} special text @cindex Moon, base time @code{%(*x@var{argument}} special text @cindex Moon, base time @code{%)*x@var{argument}} special text @cindex Base time of astronomical functions, output @cindex Output of base time of astronomical functions @cindex Universal time (UTC) @cindex Greenwich Mean time (GMT) @tab @code{(}, @code{)} @tab Outputs the base time as time value in hours and minutes, for which the dynamical, i.e.@: depending on the respective clocktime, astronomical data and times of the Moon are calculated. Without a given @w{@option{--time-offset=@var{argument}}} option, the astronomical data and times of the Moon are always calculated for 0 @w{o'clock} Universal time @w{(UTC/GMT)}@. @xref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, for further details. @item @ @item @code{y} @cindex Moon, Julian date @code{%(y@var{argument}} special text @cindex Moon, Julian date @code{%)y@var{argument}} special text @cindex Moon, Julian date @code{%(*y@var{argument}} special text @cindex Moon, Julian date @code{%)*y@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the approximate Julian date in days as it happen at civil midnight time. @xref{Julian day number}, for further information about the Julian date. @item @ @item @code{z} @cindex Moon, Julian Ephemeris date @code{%(z@var{argument}} special text @cindex Moon, Julian Ephemeris date @code{%)z@var{argument}} special text @cindex Moon, Julian Ephemeris date @code{%(*z@var{argument}} special text @cindex Moon, Julian Ephemeris date @code{%)*z@var{argument}} special text @cindex Julian Ephemeris date @cindex Ephemeris date, Julian @tab @code{(}, @code{)} @tab Calculates the approximate @dfn{Julian Ephemeris date}, thus a Julian date that is corrected by @emph{delta-t}, in days as it happen at civil midnight time. @item @ @item @code{A} @cindex Moon/Sun, delta topocentric elevation @code{%(A@var{argument}} special text @cindex Moon/Sun, delta topocentric elevation @code{%)A@var{argument}} special text @cindex Moon/Sun, delta topocentric elevation @code{%(*A@var{argument}} special text @cindex Moon/Sun, delta topocentric elevation @code{%)*A@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the difference of the approximate topocentric, apparent elevation of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. Results with a negative sign signify that the momentary center of the Moon is at an elevation that is below the momentary elevation of the Sun's center; thus the Moon is lower than the Sun. Results with a positive sign signify that the momentary center of the Moon is at an elevation that is above the momentary elevation of the Sun's center; thus the Moon is higher than the Sun. @item @ @item @code{B} @cindex Moon/Sun, delta topocentric azimuth @code{%(B@var{argument}} special text @cindex Moon/Sun, delta topocentric azimuth @code{%)B@var{argument}} special text @cindex Moon/Sun, delta topocentric azimuth @code{%(*B@var{argument}} special text @cindex Moon/Sun, delta topocentric azimuth @code{%)*B@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the difference of the approximate topocentric, apparent azimuth of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. The result specifies the horizontal angular distance, by which the momentary center of the Moon is distant from the momentary Sun's center, and that measured at the vertical circles that pass the Moon and the North point and the Sun and the North point. Results with a negative sign signify that the Sun is to the right (clockwise) of the Moon if one looks to the Moon --- or alternatively expressed, that the Moon is to the left (anti-clockwise) of the Sun. Results with a positive sign signify that the Sun is to the left (anti-clockwise) of the Moon if one looks to the Moon --- or alternatively expressed, that the Moon is to the right (clockwise) of the Sun. @item @ @item @code{C} @cindex Moon/Sun, delta geocentric elevation @code{%(C@var{argument}} special text @cindex Moon/Sun, delta geocentric elevation @code{%)C@var{argument}} special text @cindex Moon/Sun, delta geocentric elevation @code{%(*C@var{argument}} special text @cindex Moon/Sun, delta geocentric elevation @code{%)*C@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the difference of the approximate geocentric, apparent elevation of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{D} @cindex Moon/Sun, delta geocentric azimuth @code{%(D@var{argument}} special text @cindex Moon/Sun, delta geocentric azimuth @code{%)D@var{argument}} special text @cindex Moon/Sun, delta geocentric azimuth @code{%(*D@var{argument}} special text @cindex Moon/Sun, delta geocentric azimuth @code{%)*D@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the difference of the approximate geocentric, apparent azimuth of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at civil midnight time. @item @ @item @code{E} @cindex Moon/Sun, delta topocentric elevation at standard moonrise time @code{%(E@var{argument}} special text @cindex Moon/Sun, delta topocentric elevation at standard moonrise time @code{%(*E@var{argument}} special text @tab @code{(} @tab Calculates the difference of the approximate topocentric, apparent elevation of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Moon. @xref{x-Moon-standard-rise, , Standard rise time of the Moon}, for further details. @item @ @item @code{E} @cindex Moon/Sun, delta topocentric elevation at standard moonset time @code{%)E@var{argument}} special text @cindex Moon/Sun, delta topocentric elevation at standard moonset time @code{%)*E@var{argument}} special text @tab @code{)} @tab Calculates the difference of the approximate topocentric, apparent elevation of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Moon. @xref{x-Moon-standard-set, , Standard set time of the Moon}, for further details. @item @ @item @code{F} @cindex Moon/Sun, delta topocentric azimuth at standard moonrise time @code{%(F@var{argument}} special text @cindex Moon/Sun, delta topocentric azimuth at standard moonrise time @code{%(*F@var{argument}} special text @tab @code{(} @tab Calculates the difference of the approximate topocentric, apparent azimuth of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Moon. @xref{x-Moon-standard-rise, , Standard rise time of the Moon}, for further details. @item @ @item @code{F} @cindex Moon/Sun, delta topocentric azimuth at standard moonset time @code{%)F@var{argument}} special text @cindex Moon/Sun, delta topocentric azimuth at standard moonset time @code{%)*F@var{argument}} special text @tab @code{)} @tab Calculates the difference of the approximate topocentric, apparent azimuth of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Moon. @xref{x-Moon-standard-set, , Standard set time of the Moon}, for further details. @item @ @item @code{G} @cindex Moon/Sun, delta geocentric elevation at standard moonrise time @code{%(G@var{argument}} special text @cindex Moon/Sun, delta geocentric elevation at standard moonrise time @code{%(*G@var{argument}} special text @tab @code{(} @tab Calculates the difference of the approximate geocentric, apparent elevation of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Moon. @xref{x-Moon-standard-rise, , Standard rise time of the Moon}, for further details. @item @ @item @code{G} @cindex Moon/Sun, delta geocentric elevation at standard moonset time @code{%)G@var{argument}} special text @cindex Moon/Sun, delta geocentric elevation at standard moonset time @code{%)*G@var{argument}} special text @tab @code{)} @tab Calculates the difference of the approximate geocentric, apparent elevation of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Moon. @xref{x-Moon-standard-set, , Standard set time of the Moon}, for further details. @item @ @item @code{H} @cindex Moon/Sun, delta geocentric azimuth at standard moonrise time @code{%(H@var{argument}} special text @cindex Moon/Sun, delta geocentric azimuth at standard moonrise time @code{%(*H@var{argument}} special text @tab @code{(} @tab Calculates the difference of the approximate geocentric, apparent azimuth of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard rise time of the Moon. @xref{x-Moon-standard-rise, , Standard rise time of the Moon}, for further details. @item @ @item @code{H} @cindex Moon/Sun, delta geocentric azimuth at standard moonset time @code{%)H@var{argument}} special text @cindex Moon/Sun, delta geocentric azimuth at standard moonset time @code{%)*H@var{argument}} special text @tab @code{)} @tab Calculates the difference of the approximate geocentric, apparent azimuth of Moon and Sun (delta), at which the Moon is used as the reference point, in degrees and arcminutes as it happen at standard set time of the Moon. @xref{x-Moon-standard-set, , Standard set time of the Moon}, for further details. @item @ @item @code{I} @cindex Moon/Sun, delta astronomical midnight time @code{%(I@var{argument}} special text @cindex Moon/Sun, delta astronomical midnight time @code{%)I@var{argument}} special text @cindex Moon/Sun, delta astronomical midnight time @code{%(*I@var{argument}} special text @cindex Moon/Sun, delta astronomical midnight time @code{%)*I@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the difference of the approximate astronomical midnight times of Moon and Sun (delta), at which the Moon is used as the reference point, as time value in hours and minutes as it happen at astronomical midnight time of the Moon. Results with a negative sign signify that the astronomical midnight time of the Moon is earlier than the astronomical midnight time of the Sun; thus the lunar midnight is before the solar midnight. Results with a positive sign signify that the astronomical midnight time of the Moon is later than the astronomical midnight time of the Sun; thus the lunar midnight is after the solar midnight. @xref{x-Moon-midnight, , Astronomical midnight time of the Moon}, and @ref{x-Sun-midnight, , Astronomical midnight time of the Sun}, for further details. @item @ @item @code{J} @cindex Moon/Sun, delta astronomical noon time @code{%(J@var{argument}} special text @cindex Moon/Sun, delta astronomical noon time @code{%)J@var{argument}} special text @cindex Moon/Sun, delta astronomical noon time @code{%(*J@var{argument}} special text @cindex Moon/Sun, delta astronomical noon time @code{%)*J@var{argument}} special text @tab @code{(}, @code{)} @tab Calculates the difference of the approximate astronomical noon times of Moon and Sun (delta), at which the Moon is used as the reference point, as time value in hours and minutes as it happen at astronomical noon time of the Moon. Results with a negative sign signify that the astronomical noon time of the Moon is earlier than the astronomical noon time of the Sun; thus the lunar noon is before the solar noon. Results with a positive sign signify that the astronomical noon time of the Moon is later than the astronomical noon time of the Sun; thus the lunar noon is after the solar noon. @xref{x-Moon-noon, , Astronomical noon time of the Moon}, and @ref{x-Sun-noon, , Astronomical noon time of the Sun}, for further details. @item @ @item @code{K} @cindex Sun/Moon, delta standard rise time @code{%(K@var{argument}} special text @cindex Sun/Moon, delta standard rise time @code{%(*K@var{argument}} special text @tab @code{(} @tab Calculates the difference of the approximate standard rise times of Moon and Sun (delta), at which the Moon is used as the reference point, as time value in hours and minutes as it happen at standard rise time of the Moon. Results with a negative sign signify that the standard rise time of the Moon is earlier than the standard rise time of the Sun; thus the moonrise is before the sunrise. Results with a positive sign signify that the standard rise time of the Moon is later than the standard rise time of the Sun; thus the moonrise is after the sunrise. @xref{x-Moon-standard-rise, , Standard rise time of the Moon}, and @ref{x-Sun-standard-rise, , Standard rise time of the Sun}, for further details. @item @ @item @code{K} @cindex Sun/Moon, delta standard set time @code{%)K@var{argument}} special text @cindex Sun/Moon, delta standard set time @code{%)*K@var{argument}} special text @tab @code{)} @tab Calculates the difference of the approximate standard set times of Moon and Sun (delta), at which the Moon is used as the reference point, as time value in hours and minutes as it happen at standard set time of the Moon. Results with a negative sign signify that the standard set time of the Moon is earlier than the standard set time of the Sun; thus the moonset is before the sunset. Results with a positive sign signify that the standard set time of the Moon is later than the standard set time of the Sun; thus the moonset is after the sunset. @xref{x-Moon-standard-set, , Standard set time of the Moon}, and @ref{x-Sun-standard-set, , Standard set time of the Sun}, for further details. @item @ @item @code{L} @cindex Moon, topocentric elevation at Moon's astronomical midnight time @code{%(L@var{argument}} special text @cindex Moon, topocentric elevation at Moon's astronomical midnight time @code{%)L@var{argument}} special text @cindex Moon, topocentric elevation at Moon's astronomical midnight time @code{%(*L@var{argument}} special text @cindex Moon, topocentric elevation at Moon's astronomical midnight time @code{%)*L@var{argument}} special text @cindex Moon, midnight height topocentric @cindex Midnight height topocentric, Moon @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at astronomical midnight time of the Moon (topocentric @dfn{midnight height})@. @xref{x-Moon-midnight, , Astronomical midnight time of the Moon}, for further details. @item @ @item @code{M} @cindex Moon, topocentric phase angle at Moon's astronomical midnight time @code{%(M@var{argument}} special text @cindex Moon, topocentric phase angle at Moon's astronomical midnight time @code{%)M@var{argument}} special text @cindex Moon, topocentric phase angle at Moon's astronomical midnight time @code{%(*M@var{argument}} special text @cindex Moon, topocentric phase angle at Moon's astronomical midnight time @code{%)*M@var{argument}} special text @cindex Moon, midnight phase angle topocentric @cindex Midnight phase angle topocentric, Moon @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent phase angle of the Moon in range @w{0.0@dots{}1.0} as it happen at astronomical midnight time of the Moon (topocentric @dfn{midnight phase angle})@. @xref{x-Moon-midnight, , Astronomical midnight time of the Moon}, for further details. @item @ @item @code{N} @cindex Moon, topocentric elevation at Moon's astronomical noon time @code{%(N@var{argument}} special text @cindex Moon, topocentric elevation at Moon's astronomical noon time @code{%)N@var{argument}} special text @cindex Moon, topocentric elevation at Moon's astronomical noon time @code{%(*N@var{argument}} special text @cindex Moon, topocentric elevation at Moon's astronomical noon time @code{%)*N@var{argument}} special text @cindex Moon, noon height topocentric @cindex Noon height topocentric, Moon @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at astronomical noon time of the Moon (topocentric @dfn{noon height})@. @xref{x-Moon-noon, , Astronomical noon time of the Moon}, for further details. @item @ @item @code{O} @cindex Moon, topocentric phase angle at Moon's astronomical noon time @code{%(O@var{argument}} special text @cindex Moon, topocentric phase angle at Moon's astronomical noon time @code{%)O@var{argument}} special text @cindex Moon, topocentric phase angle at Moon's astronomical noon time @code{%(*O@var{argument}} special text @cindex Moon, topocentric phase angle at Moon's astronomical noon time @code{%)*O@var{argument}} special text @cindex Moon, noon phase angle topocentric @cindex Noon phase angle topocentric, Moon @tab @code{(}, @code{)} @tab Calculates the approximate topocentric, apparent phase angle of the Moon in range @w{0.0@dots{}1.0} as it happen at astronomical noon time of the Moon (topocentric @dfn{noon phase angle})@. @xref{x-Moon-noon, , Astronomical noon time of the Moon}, for further details. @item @ @item @code{P} @cindex Moon, topocentric elevation at standard rise time @code{%(P@var{argument}} special text @cindex Moon, topocentric elevation at standard rise time @code{%(*P@var{argument}} special text @cindex Moon, rise height topocentric @cindex Rise height topocentric, Moon @tab @code{(} @tab Calculates the approximate topocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at standard rise time of the Moon (topocentric @dfn{rise height})@. @xref{x-Moon-standard-rise, , Standard rise time of the Moon}, for further details. @item @ @item @code{P} @cindex Moon, topocentric elevation at standard set time @code{%)P@var{argument}} special text @cindex Moon, topocentric elevation at standard set time @code{%)*P@var{argument}} special text @cindex Moon, set height topocentric @cindex Set height topocentric, Moon @tab @code{)} @tab Calculates the approximate topocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at standard set time of the Moon (topocentric @dfn{set height})@. @xref{x-Moon-standard-set, , Standard set time of the Moon}, for further details. @item @ @item @code{Q} @cindex Moon, topocentric azimuth at standard rise time @code{%(Q@var{argument}} special text @cindex Moon, topocentric azimuth at standard rise time @code{%(*Q@var{argument}} special text @cindex Moon, rise azimuth topocentric @cindex Rise azimuth topocentric, Moon @cindex Moon, rise width topocentric @cindex Rise width topocentric, Moon @tab @code{(} @tab Calculates the approximate topocentric, apparent azimuth of the Moon in degrees and arcminutes as it happen at standard rise time of the Moon (topocentric @dfn{rise azimuth})@. The horizontal angular distance between the topocentric rise azimuth and the East direction is also known as the topocentric @dfn{rise width} of the Moon. @xref{x-Moon-standard-rise, , Standard rise time of the Moon}, for further details. @item @ @item @code{Q} @cindex Moon, topocentric azimuth at standard set time @code{%)Q@var{argument}} special text @cindex Moon, topocentric azimuth at standard set time @code{%)*Q@var{argument}} special text @cindex Moon, set azimuth topocentric @cindex Set azimuth topocentric, Moon @cindex Moon, set width topocentric @cindex Set width topocentric, Moon @tab @code{)} @tab Calculates the approximate topocentric, apparent azimuth of the Moon in degrees and arcminutes as it happen at standard set time of the Moon (topocentric @dfn{set azimuth})@. The horizontal angular distance between the topocentric set azimuth and the West direction is also known as the topocentric @dfn{set width} of the Moon. @xref{x-Moon-standard-set, , Standard set time of the Moon}, for further details. @item @ @item @code{R} @cindex Moon, topocentric phase angle at standard rise time @code{%(R@var{argument}} special text @cindex Moon, topocentric phase angle at standard rise time @code{%(*R@var{argument}} special text @cindex Moon, rise phase angle topocentric @cindex Rise phase angle topocentric, Moon @tab @code{(} @tab Calculates the approximate topocentric, apparent phase angle of the Moon in range @w{0.0@dots{}1.0} as it happen at standard rise time of the Moon (topocentric @dfn{rise phase angle})@. @xref{x-Moon-standard-rise, , Standard rise time of the Moon}, for further details. @item @ @item @code{R} @cindex Moon, topocentric phase angle at standard set time @code{%)R@var{argument}} special text @cindex Moon, topocentric phase angle at standard set time @code{%)*R@var{argument}} special text @cindex Moon, set phase angle topocentric @cindex Set phase angle topocentric, Moon @tab @code{)} @tab Calculates the approximate topocentric, apparent phase angle of the Moon in range @w{0.0@dots{}1.0} as it happen at standard set time of the Moon (topocentric @dfn{set phase angle})@. @xref{x-Moon-standard-set, , Standard set time of the Moon}, for further details. @item @ @item @code{S} @cindex Moon, geocentric elevation at Moon's astronomical midnight time @code{%(S@var{argument}} special text @cindex Moon, geocentric elevation at Moon's astronomical midnight time @code{%)S@var{argument}} special text @cindex Moon, geocentric elevation at Moon's astronomical midnight time @code{%(*S@var{argument}} special text @cindex Moon, geocentric elevation at Moon's astronomical midnight time @code{%)*S@var{argument}} special text @cindex Moon, midnight height geocentric @cindex Midnight height geocentric, Moon @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at astronomical midnight time of the Moon (geocentric @dfn{midnight height})@. @xref{x-Moon-midnight, , Astronomical midnight time of the Moon}, for further details. @item @ @item @code{T} @cindex Moon, geocentric phase angle at Moon's astronomical midnight time @code{%(T@var{argument}} special text @cindex Moon, geocentric phase angle at Moon's astronomical midnight time @code{%)T@var{argument}} special text @cindex Moon, geocentric phase angle at Moon's astronomical midnight time @code{%(*T@var{argument}} special text @cindex Moon, geocentric phase angle at Moon's astronomical midnight time @code{%)*T@var{argument}} special text @cindex Moon, midnight phase angle geocentric @cindex Midnight phase angle geocentric, Moon @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent phase angle of the Moon in range @w{0.0@dots{}1.0} as it happen at astronomical midnight time of the Moon (geocentric @dfn{midnight phase angle})@. @xref{x-Moon-midnight, , Astronomical midnight time of the Moon}, for further details. @item @ @item @code{U} @cindex Moon, geocentric elevation at Moon's astronomical noon time @code{%(U@var{argument}} special text @cindex Moon, geocentric elevation at Moon's astronomical noon time @code{%)U@var{argument}} special text @cindex Moon, geocentric elevation at Moon's astronomical noon time @code{%(*U@var{argument}} special text @cindex Moon, geocentric elevation at Moon's astronomical noon time @code{%)*U@var{argument}} special text @cindex Moon, noon height geocentric @cindex Noon height geocentric, Moon @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at astronomical noon time of the Moon (geocentric @dfn{noon height})@. @xref{x-Moon-noon, , Astronomical noon time of the Moon}, for further details. @item @ @item @code{V} @cindex Moon, geocentric phase angle at Moon's astronomical noon time @code{%(V@var{argument}} special text @cindex Moon, geocentric phase angle at Moon's astronomical noon time @code{%)V@var{argument}} special text @cindex Moon, geocentric phase angle at Moon's astronomical noon time @code{%(*V@var{argument}} special text @cindex Moon, geocentric phase angle at Moon's astronomical noon time @code{%)*V@var{argument}} special text @cindex Moon, noon phase angle geocentric @cindex Noon phase angle geocentric, Moon @tab @code{(}, @code{)} @tab Calculates the approximate geocentric, apparent phase angle of the Moon in range @w{0.0@dots{}1.0} as it happen at astronomical noon time of the Moon (geocentric @dfn{noon phase angle})@. @xref{x-Moon-noon, , Astronomical noon time of the Moon}, for further details. @item @ @item @code{W} @cindex Moon, geocentric elevation at standard rise time @code{%(W@var{argument}} special text @cindex Moon, geocentric elevation at standard rise time @code{%(*W@var{argument}} special text @cindex Moon, rise height geocentric @cindex Rise height geocentric, Moon @tab @code{(} @tab Calculates the approximate geocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at standard rise time of the Moon (geocentric @dfn{rise height})@. @xref{x-Moon-standard-rise, , Standard rise time of the Moon}, for further details. @item @ @item @code{W} @cindex Moon, geocentric elevation at standard set time @code{%)W@var{argument}} special text @cindex Moon, geocentric elevation at standard set time @code{%)*W@var{argument}} special text @cindex Moon, set height geocentric @cindex Set height geocentric, Moon @tab @code{)} @tab Calculates the approximate geocentric, apparent elevation of the Moon in degrees and arcminutes as it happen at standard set time of the Moon (geocentric @dfn{set height})@. @xref{x-Moon-standard-set, , Standard set time of the Moon}, for further details. @item @ @item @code{X} @cindex Moon, geocentric azimuth at standard rise time @code{%(X@var{argument}} special text @cindex Moon, geocentric azimuth at standard rise time @code{%(*X@var{argument}} special text @cindex Moon, rise azimuth geocentric @cindex Rise azimuth geocentric, Moon @cindex Moon, rise width geocentric @cindex Rise width geocentric, Moon @tab @code{(} @tab Calculates the approximate geocentric, apparent azimuth of the Moon in degrees and arcminutes as it happen at standard rise time of the Moon (geocentric @dfn{rise azimuth})@. The horizontal angular distance between the geocentric rise azimuth and the East direction is also known as the geocentric @dfn{rise width} of the Moon. @xref{x-Moon-standard-rise, , Standard rise time of the Moon}, for further details. @item @ @item @code{X} @cindex Moon, geocentric azimuth at standard set time @code{%)X@var{argument}} special text @cindex Moon, geocentric azimuth at standard set time @code{%)*X@var{argument}} special text @cindex Moon, set azimuth geocentric @cindex Set azimuth geocentric, Moon @cindex Moon, set width geocentric @cindex Set width geocentric, Moon @tab @code{)} @tab Calculates the approximate geocentric, apparent azimuth of the Moon in degrees and arcminutes as it happen at standard set time of the Moon (geocentric @dfn{set azimuth})@. The horizontal angular distance between the geocentric set azimuth and the West direction is also known as the geocentric @dfn{set width} of the Moon. @xref{x-Moon-standard-set, , Standard set time of the Moon}, for further details. @item @ @item @code{Y} @cindex Moon, geocentric phase angle at standard rise time @code{%(Y@var{argument}} special text @cindex Moon, geocentric phase angle at standard rise time @code{%(*Y@var{argument}} special text @cindex Moon, rise phase angle geocentric @cindex Rise phase angle geocentric, Moon @tab @code{(} @tab Calculates the approximate geocentric, apparent phase angle of the Moon in range @w{0.0@dots{}1.0} as it happen at standard rise time of the Moon (geocentric @dfn{rise phase angle})@. @xref{x-Moon-standard-rise, , Standard rise time of the Moon}, for further details. @item @ @item @code{Y} @cindex Moon, geocentric phase angle at standard set time @code{%)Y@var{argument}} special text @cindex Moon, geocentric phase angle at standard set time @code{%)*Y@var{argument}} special text @cindex Moon, set phase angle geocentric @cindex Set phase angle geocentric, Moon @tab @code{)} @tab Calculates the approximate geocentric, apparent phase angle of the Moon in range @w{0.0@dots{}1.0} as it happen at standard set time of the Moon (geocentric @dfn{set phase angle})@. @xref{x-Moon-standard-set, , Standard set time of the Moon}, for further details. @end multitable @iftex @sp 1 @end iftex @cindex Default mode, Moon data and times @cindex Moon data and times, default mode If no @var{mode} is given, Gcal automatically uses that mode, which is enabled by the mode character @samp{5}@. If a mode character is given that is not according to one of the @w{@samp{0}@dots{}@samp{9}}, @w{@samp{a}@dots{}@samp{z}} and @w{@samp{A}@dots{}@samp{Y}} characters, Gcal also automatically uses that mode, which is enabled by the mode character @samp{5}@. @cindex Type of representation of Moon data and times @cindex Moon data and times, type of representation @cindex Style of representation of Moon data and times @cindex Moon data and times, style of representation Depending on the selected mode, Gcal represents the Moon oriented special texts using the same types and styles as they are used by the Sun oriented special texts, these are analogously valid! @xref{x-Sun-representation, Representation of the Sun oriented special texts}, for the detailed description of the different types of representation used by the Sun oriented special texts, which are likewise valid for the Moon oriented special texts. @cindex @acronym{ISO}-6709:1983 co-ordinate @cindex Co-ordinate, @acronym{ISO}-6709:1983 @cindex Timezone The @var{argument} the Moon oriented special texts must have is exactly equivalent the argument the Sun oriented special texts must have! @xref{x-Sun-arguments, , Arguments of the Sun oriented special texts}, for the detailed description of the components of the @var{argument} which also has to be given to the Moon oriented special texts. The following table informs you about which type of representation is caused by a mode. The previously defined numbering scheme, as it has been used for the introduction of the types of representation, is used as key value in the column that holds the type of representation. The table also contains a column that shows whether a mode enables dynamical values, i.e.@: values that are depending on the respective clocktime (if you use the @w{@option{--time-offset=@var{argument}}} option, you can change the respective clocktime that is used for calculating such values)@. In a next table column, it is listed whether the given co-ordinate of the location influences the determination of a value, and the last column of the table gives you the information whether a given timezone value affects the values determination: @iftex @sp 1 @end iftex @multitable @columnfractions .1 .3 .2 .2 .2 @tbindex Representation types of the Moon oriented special texts @tbindex Moon oriented special texts, representation types @cindex Table of representation types of the Moon oriented special texts @cindex Moon oriented special texts, table of representation types @item @strong{Mode} @tab @strong{Representation Type} @tab @strong{Dynamical} @tab @strong{Co-ordinate} @tab @strong{Timezone} @item @ @item @code{0} @tab 3 @tab No @tab Yes @tab Yes @item @code{1} @tab 3 @tab No @tab Yes @tab Yes @item @code{2} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{3} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{4} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{5} @tab 3 or 4 @tab No @tab Yes @tab Yes @item @code{6} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{7} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{8} @tab 2 @tab Yes @tab Yes @tab Yes @item @code{9} @tab 1 or 1b @tab Yes @tab Yes @tab Yes @item @code{a} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{b} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{c} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{d} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{e} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{f} @tab 4 @tab Yes @tab Yes @tab Yes @item @code{g} @tab 1 or 1a @tab Yes @tab Yes @tab Yes @item @code{h} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{i} @tab 6 @tab Yes @tab No @tab No @item @code{j} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{k} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{l} @tab 2 @tab Yes @tab Yes @tab Yes @item @code{m} @tab 1 or 1b @tab Yes @tab Yes @tab Yes @item @code{n} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{o} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{p} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{q} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{r} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{s} @tab 4 @tab Yes @tab Yes @tab Yes @item @code{t} @tab 1 or 1a @tab Yes @tab Yes @tab Yes @item @code{u} @tab 6 @tab Yes @tab Yes @tab Yes @item @code{v} @tab 2 @tab Yes @tab No @tab No @item @code{w} @tab 3 @tab Yes @tab Yes @tab Yes @item @code{x} @tab 3 @tab Yes @tab No @tab No @item @code{y} @tab 1 @tab Yes @tab No @tab No @item @code{z} @tab 1 @tab Yes @tab No @tab No @item @code{A} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{B} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{C} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{D} @tab 7 @tab Yes @tab Yes @tab Yes @item @code{E} @tab 7 @tab No @tab Yes @tab Yes @item @code{F} @tab 7 @tab No @tab Yes @tab Yes @item @code{G} @tab 7 @tab No @tab Yes @tab Yes @item @code{H} @tab 7 @tab No @tab Yes @tab Yes @item @code{I} @tab 5 @tab No @tab Yes @tab Yes @item @code{J} @tab 5 @tab No @tab Yes @tab Yes @item @code{K} @tab 5 @tab No @tab Yes @tab Yes @item @code{L} @tab 7 @tab No @tab Yes @tab Yes @item @code{M} @tab 1 or 1b @tab No @tab Yes @tab Yes @item @code{N} @tab 7 @tab No @tab Yes @tab Yes @item @code{O} @tab 1 or 1b @tab No @tab Yes @tab Yes @item @code{P} @tab 7 @tab No @tab Yes @tab Yes @item @code{Q} @tab 6 @tab No @tab Yes @tab Yes @item @code{R} @tab 1 or 1b @tab No @tab Yes @tab Yes @item @code{S} @tab 7 @tab No @tab Yes @tab Yes @item @code{T} @tab 1 or 1b @tab No @tab Yes @tab Yes @item @code{U} @tab 7 @tab No @tab Yes @tab Yes @item @code{V} @tab 1 or 1b @tab No @tab Yes @tab Yes @item @code{W} @tab 7 @tab No @tab Yes @tab Yes @item @code{X} @tab 6 @tab No @tab Yes @tab Yes @item @code{Y} @tab 1 or 1b @tab No @tab Yes @tab Yes @end multitable @iftex @sp 1 @end iftex @noindent And now some examples to these special texts: @quotation The text @w{@samp{Moonrise at %(+5158+00738,120 @ in MS, BRD}} will be expanded to@* @w{@expansion{} @samp{Moonrise at 12:21 in MS, BRD}}, in case the actual system date is the 1st June 1998@. @end quotation @quotation The text @w{@samp{Moonset at %)*5+5158+00738,120 @ in MS, BRD}} will be expanded to@* @w{@expansion{} @samp{Moonset at 01:53am in MS, BRD}}, in case the actual system date is the 1st June 1998@. @end quotation @quotation The text @w{@samp{Moon visible %[5+5158+00738,120 @ in MS, BRD}} will be expanded to@* @w{@expansion{} @samp{Moon visible 13h32' in MS, BRD}}, in case the actual system date is the 1st June 1998@. @end quotation @need 1000 @quotation The text @w{@samp{Moon non-visible %]*+5158+00738,120 @ in MS, BRD}} will be expanded to@* @w{@expansion{} @samp{Moon non-visible 10.469 in MS, BRD}}, in case the actual system date is the 1st June 1998@. @end quotation @quotation The text @w{@samp{Moon azimuth 0 o'clock=%(*a+5158+00738,120 @ in MS, BRD}} will be expanded to@* @w{@expansion{} @samp{Moon azimuth 0 o'clock=267d37' in MS, BRD}}, in case the actual system date is the 1st June 1998@. @end quotation @quotation The text @w{@samp{Moonphase %(x+00+000 =%(*m+5158+00738,120 % in MS, BRD}} will be expanded to@* @w{@expansion{} @samp{Moonphase +16h00'=45.248% in MS, BRD}}, in case you call Gcal with the @w{@option{--time-offset=16:}} option and the actual system date is the 1st June 1998@. @end quotation @quotation The text @w{@samp{Julian date at %(x+00+000 =%(y+00+000}} will be expanded to@* @w{@expansion{} @samp{Julian date at +10h15'=2450965.927}}, in case you call Gcal with the @w{@option{--time-offset=10:15}} option and the actual system date is the 1st June 1998@. @end quotation @iftex @sp 1 @end iftex @cindex Reference systems used, Moon oriented special texts @cindex Moon oriented special texts, reference systems used @cindex Limitations, Moon oriented special texts @cindex Moon oriented special texts, limitations Here is a list that reports about the used reference systems in a short manner, describes other aspects that are unmentioned now, and informs about the lacks and limitations that are existing for the Moon oriented special texts: @itemize @bullet @item All astronomical calculations are based on methods that use ---astronomically seen--- low-precision elements, which of course is shown in the precision of the results that are caused by them. Nevertheless in most cases, these results can be treated as more as sufficiently precise if one measures their practical use. @item All azimuth and elevation values are always referring to the center of the respective astronomical object, except the case, it is stated otherwise. @need 500 @item The base point of azimuth values, right ascension values and other ecliptic co-ordinate values is always measured clockwise relative to the geographical, true North (not the magnetic North as shown by a compass), where angular values for the North direction are both denoted as 0 degree and 360 degree. @item All topocentrically based azimuth and elevation values are always corrected by the amount of atmospheric refraction. Such a kind of correction is always done if the center of the respective astronomical object is above 2 degrees below the horizon. @item Generally, the rise and set times of the Moon cannot be precisely predicted, because depending on unpredictable atmospheric conditions, i.e.@: the local weather conditions as they appear during these times change the amount of atmospheric refraction at the horizon, so that the precalculated rise and set times may throughout be in error by a minute or more. @cindex Lunar Arctic Circle @item The accuracy of rise and set computations decreases again at high latitudes, i.e.@: within in the lunar Arctic Circle. There, small variations in atmospheric refraction can change the time of moonrise or moonset by many minutes, since the Moon intersects the horizon at a very shallow angle. For the same reason, at high latitudes, the effects of observer height and local topography are magnified and can substantially change the times of the phenomena actually observed, or even whether the phenomena are observed to occur at all. @item It is possible that calculations, which are done for locations within the lunar Arctic Circle, sometimes result in the wrongly @w{**.**} text instead of the more precisely @w{++:++} or @w{--:--} texts that are used for marking special events. Unfortunately, therefore, then the reason why the Moon does not rise or set is no longer clearly evident, respectively, it is possible to get the false suggestion that the reason for non-rising or non-setting of the Moon is caused by just the one day within a synodic month, at which the Moon does not rise or set anyhow. Unfortunately, it is just only obvious @strong{that} the Moon does not rise or set during this day. @end itemize @noindent @strong{Please also note the following references:} @itemize @bullet @item @xref{x-precise, , Fixed dates option @option{--precise}}, how to obtain a more precise representation of the values which are cause by these special texts. @item And note @ref{x-time-offset, , Calendar option @option{--time-offset=@var{argument}}}, how to change the clocktime, for which the dynamical, i.e.@: depending on the respective clocktime, Moon oriented special texts are calculated. @item Likewise, see @ref{x-cycle-end, , Fixed dates option @option{--cycle-end=@var{argument}}}, how the dynamical, i.e.@: depending on the respective clocktime, Moon oriented special texts are calculated for a series of clocktimes for the current day. @item Furthermore, see @ref{x-adjust-value, , Fixed dates option @option{--adjust-value=@var{argument}}}, how to change the reference altitude that is used to calculate the rise and set times. @item And last, note @ref{x-atmosphere, , Fixed dates option @option{--atmosphere=@var{air-pressure}@r{[,}@var{temperature}@r{]}}}, how to change the base data of the atmosphere that affects the calculation of the Moon oriented special texts. @end itemize All Moon oriented special texts @strong{must} always be trailed by a @emph{whitespace} character which is removed in output! @node Contents of Environment variable, , Moon data, Replacements with other argument @appendixsubsubsec Environment variable @code{%@r{[}@var{format}@r{]}-@r{[}@var{argument}@r{]}} special text @cindex @code{%@r{[}@var{format}@r{]}-@r{[}@var{argument}@r{]}} special text, environment variable @cindex Special text @code{%@r{[}@var{format}@r{]}-@r{[}@var{argument}@r{]}}, environment varibale @cindex Environment variable @code{%@r{[}@var{format}@r{]}-@r{[}@var{argument}@r{]}} special text @code{%@r{[}@var{format}@r{]}-@r{[}@var{argument}@r{]}} references the contents of an @strong{environment variable}, e.g.@:: @quotation The text @w{@samp{I am `%-USER '-user}} will be expanded to@* @w{@expansion{} @samp{I am `guest'-user}}, in case you logged-in as guest on your system. @end quotation This special text @strong{must} always be trailed by a @emph{whitespace} character which is removed in output! @node Replacements without any argument, , Replacements with other argument, Replacements @appendixsubsec Replacements without any argument @code{%@var{?}} special texts @cindex @code{%@var{?}} special texts, replacements without any argument @cindex Special texts @code{%@var{?}}, replacements without any argument @cindex Replacements without any argument @code{%@var{?}} special texts @menu * Other difference values:: * Highlighting:: @end menu Apart from further useful difference values, the text of a fixed date can be provided with different texts used for highlighting. @node Other difference values, Highlighting, Replacements without any argument, Replacements without any argument @appendixsubsubsec Difference value @code{%@r{[}@var{format}@r{]}@var{?}} special texts @cindex @code{%@r{[}@var{format}@r{]}@var{?}} special texts, difference value @cindex Special texts @code{%@r{[}@var{format}@r{]}@var{?}}, difference value @cindex Difference value @code{%@r{[}@var{format}@r{]}@var{?}} special texts The use of the other difference values as listed here is to calculate distance values between two dates. In case these special texts are directly lead by a @samp{-} character, e.g.@: @samp{-%d}, Gcal switches the sign of the computed value. @cindex Depreciation of special characters @cindex Special characters, depreciation @cindex Depreciation character, @samp{\} @cindex @samp{\} depreciation character @cindex Protection of special characters @cindex Special characters, protection @cindex Protection character, @samp{\} @cindex @samp{\} protection character You may depreciate the special meaning of the @samp{-} character ---in case this character itself is needed--- by placing a @samp{\} (backslash) character before it, e.g.@: @samp{\-}@. If you need the @samp{\-} characters themselves, you have to protect the @samp{\} (backslash) character by another @samp{\} (backslash) character, e.g.@: @samp{\\-}@. The following other difference values @code{%@r{[}@var{format}@r{]}@var{?}} special texts are respected: @table @code @item %d @cindex @code{%d} special text, relative day number @cindex Special text @code{%d}, relative day number @cindex Relative day number @code{%d} special text Specifies the current respectively queried @strong{day} relative to the actual system date (@equiv{}today), e.g.@:: @quotation The resource file line @w{@samp{0 %d days gone}} will be expanded to@* @w{@expansion{} @samp{-10 days gone}}, in case you call Gcal with the @w{@option{-c10-}} option and no command. @end quotation @item %w @cindex @code{%w} special text, relative week number @cindex Special text @code{%w}, relative week number @cindex Relative week number @code{%w} special text Specifies the current respectively queried @strong{week} relative to the actual system date (@equiv{}today)@. Started weeks are counted as complete weeks. @item %m @cindex @code{%m} special text, relative month number @cindex Special text @code{%m}, relative month number @cindex Relative month number @code{%m} special text Specifies the current respectively queried @strong{month} relative to the actual system date (@equiv{}today)@. Started months are counted as complete months. @item %y @cindex @code{%y} special text, relative year number @cindex Special text @code{%y}, relative year number @cindex Relative year number @code{%y} special text Specifies the current respectively queried @strong{year} relative to the actual system date (@equiv{}today)@. Started years are counted as complete years. This special text @strong{must} always be trailed by a @emph{whitespace} character which is removed in output! @end table An example: Supposing, the actual system date is the 4th September 1999@. To calculate, how many days, weeks, months and years are between the actual system date and the birthday of a person, who is born on 21st September 1962, Gcal can be called as follows: @example @group @cartouche $ gcal -f/dev/null -Ux -u -#'19620921 %y %m %w %d~' 1962 @print{} @print{} -37 -444 -1928 -13497 @print{} $ gcal -f/dev/null -Ux -u -#'19620921 \\-%y \-%m %w -%d~' 1962 @print{} @print{} \--37 --444 -1928 13497 @print{} $ gcal -f/dev/null -Ux -u -#'00000904 %y %m %w %d~' %19620921 1999 @print{} @print{} 37 444 1928 13497 @print{} $ gcal -f/dev/null -Ux -u -#'00000904 %y %B19620921' %19620921 1962 @print{} @print{} 37 36 @end cartouche @end group @end example @noindent Please do not confound the relative year number @code{%@r{[}@var{format}@r{]}y} special text with the age value @code{%B} special text (@pxref{x-Age-value, , Age value @code{%@r{[}@var{format}@r{]}B@r{[}@var{date}@r{]}} special text})@. The @code{%y} special text counts started years as complete years, while the @code{%B} special text does not. @need 2000 @node Highlighting, , Other difference values, Replacements without any argument @appendixsubsubsec Highlighting @code{%@var{?}} special texts @cindex @code{%@var{?}} special texts, highlighting @cindex Special texts @code{%@var{?}}, highlighting @cindex Highlighting @code{%@var{?}} special texts The following highlighting @code{%@var{?}} special texts are respected: @table @code @item %1 @cindex @code{%1} special text, start of highlighting sequence 1 @cindex Special text @code{%1}, start of highlighting sequence 1 @cindex Start of highlighting sequence 1 @code{%1} special text @code{%1} is replaced by the starting highlighting sequence respectively the starting marking character that is used for highlighting the actual day (@pxref{x-highlighting, , Global option @option{--highlighting=@var{text}}})@. This attains, that all succeeding text of the line after this special text is displayed in the same way as the highlighted respectively marked actual day. @code{%1} is used together with the @code{%2} special text, which turns off this enabled highlighting sequence respectively produces the ending marking character. If a @code{%1} text is not succeeded by a @code{%2} text on the line, Gcal automatically inserts such a @code{%2} text at the end of the line. For example: @example @group Only %1THIS%2 word is highlighted in this line. %1This text is highlighted up to%2 here. All from %1here up to the end of the line is highlighted. @end group @end example @item %2 @cindex @code{%2} special text, end of highlighting sequence 1 @cindex Special text @code{%2}, end of highlighting sequence 1 @cindex End of highlighting sequence 1 @code{%2} special text @code{%2} is replaced by the ending highlighting sequence respectively the ending marking character that is used for highlighting the actual day. This attains, that a possibly active highlighting according to the actual day is turned off respectively an ending marking character is produced. @code{%2} is used together with the @code{%1} special text. The @code{%2} text has no affect if no preceding @code{%1} text was found on the line. @item %3 @cindex @code{%3} special text, start of highlighting sequence 2 @cindex Special text @code{%3}, start of highlighting sequence 2 @cindex Start of highlighting sequence 2 @code{%3} special text @code{%3} is replaced by the starting highlighting sequence respectively the starting marking character that is used for highlighting a holiday, (@pxref{x-highlighting, , Global option @option{--highlighting=@var{text}}})@. This attains, that all succeeding text of the line after this special text is displayed in the same way as the highlighted respectively marked holiday. @code{%3} is used together with the @code{%4} special text, which turns off this enabled highlighting sequence respectively produces the ending marking character. If a @code{%3} text is not succeeded by a @code{%4} text on the line, Gcal automatically inserts such a @code{%4} text at the end of the line. For example: @example @group Only %3THIS%4 word is highlighted in this line. %3This text is highlighted up to%4 here. All from %3here up to the end of the line is highlighted. @end group @end example @item %4 @cindex @code{%4} special text, end of highlighting sequence 2 @cindex Special text @code{%4}, end of highlighting sequence 2 @cindex End of highlighting sequence 2 @code{%4} special text @code{%4} is replaced by the ending highlighting sequence respectively the ending marking character that is used for highlighting a holiday. This attains, that a possibly active highlighting according to a holiday is turned off respectively an ending marking character is produced. @code{%4} is used together with the @code{%3} special text. The @code{%4} text has no affect if no preceding @code{%3} text was found on the line. @item %5 @cindex @code{%5} special text, start of highlighting sequence 1 @cindex Special text @code{%5}, start of highlighting sequence 1 @cindex Start of highlighting sequence 1 @code{%5} special text @code{%5} is replaced by the starting highlighting sequence respectively the starting marking character that is used for highlighting the actual day if a fixed date is on today's date, (@pxref{x-highlighting, , Global option @option{--highlighting=@var{text}}})@. This attains, that all succeeding text of the line after this special text is displayed in the same way as the highlighted respectively marked actual day. @code{%5} is used together with the @code{%6} special text, which turns off this enabled highlighting sequence respectively produces the ending marking character. If a @code{%5} text is not succeeded by a @code{%6} text on the line, Gcal automatically inserts such a @code{%6} text at the end of the line. @item %6 @cindex @code{%6} special text, end of highlighting sequence 1 @cindex Special text @code{%6}, end of highlighting sequence 1 @cindex End of highlighting sequence 1 @code{%6} special text @code{%6} is replaced by the ending highlighting sequence respectively the ending marking character that is used for highlighting the actual day if a fixed date is on today's date. This attains, that a possibly active highlighting according to the actual day is turned off respectively an ending marking character is produced. @code{%6} is used together with the @code{%5} special text. The @code{%6} text has no affect if no preceding @code{%5} text was found on the line. @item %7 @cindex @code{%7} special text, start of highlighting sequence 2 @cindex Special text @code{%7}, start of highlighting sequence 2 @cindex Start of highlighting sequence 2 @code{%7} special text @code{%7} is replaced by the starting highlighting sequence respectively the starting marking character that is used for highlighting a holiday if a fixed date is on a legal holiday date, (@pxref{x-highlighting, , Global option @option{--highlighting=@var{text}}})@. This attains, that all succeeding text of the line after this special text is displayed in the same way as the highlighted respectively marked holiday. @code{%7} is used together with the @code{%8} special text, which turns off this enabled highlighting sequence respectively produces the ending marking character. If a @code{%7} text is not succeeded by a @code{%8} text on the line, Gcal automatically inserts such a @code{%8} text at the end of the line. @item %8 @cindex @code{%8} special text, end of highlighting sequence 2 @cindex Special text @code{%8}, end of highlighting sequence 2 @cindex End of highlighting sequence 2 @code{%8} special text @code{%8} is replaced by the ending highlighting sequence respectively the ending marking character that is used for highlighting a holiday if a fixed date is on a legal holiday date. This attains, that a possibly active highlighting according to a holiday is turned off respectively an ending marking character is produced. @code{%8} is used together with the @code{%7} special text. The @code{%8} text has no affect if no preceding @code{%7} text was found on the line. @item %9 @cindex @code{%9} special text, start of highlighting sequence 1 or 2 @cindex Special text @code{%9}, start of highlighting sequence 1 or 2 @cindex Start of highlighting sequence 1 or 2 @code{%9} special text @code{%9} is replaced by the starting highlighting sequence respectively the starting marking character that is used for highlighting the actual day if a fixed date is on today's date; otherwise @code{%9} is replaced by the starting highlighting sequence respectively the starting marking character that is used for highlighting a holiday if a fixed date is on a legal holiday date, (@pxref{x-highlighting, , Global option @option{--highlighting=@var{text}}})@. This attains, that all succeeding text of the line after this special text is displayed in the same way as the highlighted respectively marked actual day or holiday. @code{%9} is used together with the @code{%0} special text, which turns off this enabled highlighting sequence respectively produces the ending marking character. If a @code{%9} text is not succeeded by a @code{%0} text on the line, Gcal automatically inserts such a @code{%0} text at the end of the line. @item %0 @cindex @code{%0} special text, end of highlighting sequence 1 or 2 @cindex Special text @code{%0}, end of highlighting sequence 1 or 2 @cindex End of highlighting sequence 1 or 2 @code{%0} special text @code{%0} is replaced by the ending highlighting sequence respectively the ending marking character that is used for highlighting the actual day if a fixed date is on today's date; otherwise @code{%0} is replaced by the ending highlighting sequence respectively the ending marking character that is used for highlighting a holiday if a fixed date is on a legal holiday date. This attains, that a possibly active highlighting according to today's date or a holiday is turned off respectively an ending marking character is produced. @code{%0} is used together with the @code{%9} special text. The @code{%0} text has no affect if no preceding @code{%9} text was found on the line. @end table @node Shell Command, , Replacements, Special Texts @appendixsec Shell command @code{%!@r{[}@var{argument}@r{]}} special text @cindex @code{%!@r{[}@var{argument}@r{]}} special text, shell command @cindex Special text @code{%!@r{[}@var{argument}@r{]}}, shell command @cindex Shell command @code{%!@r{[}@var{argument}@r{]}} special text @cindex Error code of executed commands @cindex Executed commands, error code @cindex Exit code of executed commands @cindex Executed commands, exit code @cindex Shell command, execution @cindex Command line interpreter The @var{argument} which trails @code{%!} until the end of the line, is passed to the shell as a command for further processing. But before, all text variable references and @code{%@var{?}}@dots{} special texts for replacing particular texts which are given in @var{argument} are interpreted by Gcal. @xref{Text variables}, and @ref{Replacements, , @code{%@var{?}}@dots{} special texts for text replacement}@. All leading text before the @code{%!} special text is processed by Gcal as usual. If the simple @option{--debug} respectively @w{@option{--debug=internal}} option is given at program start-up, informational messages about the executed command and its @emph{exit code} will be shown on the @emph{standard error channel} (@pxref{x-debug-internal, , Global option @option{--debug=internal}})@. @cindex Error code 2 @cindex Exit code 2 If the @w{@option{--debug=abort}} option is given, the Gcal program will be aborted with an error code in case an @emph{exit code} not equal zero has occurred during the execution of the command. @xref{x-2-Error-code, , Error Code 2}, and @ref{x-debug-abort, , Global option @option{--debug=abort}}, for further information. @cindex Execute command @cindex Command execution Use the @option{--execute-command} option if you want to execute all @code{%!@r{[}@var{argument}@r{]}} special texts by the shell instead of seeing them textually only. @xref{x-execute-command, , Fixed date option @option{--execute-command}}, for more details. @node Special Texts Summary, Obsolete Special Texts, Special Texts, Top @appendix Summary of all @code{%@var{?}}@dots{} Special Texts @tbindex Special texts @cindex @code{%@var{?}}@dots{} special texts, short-list @cindex @code{%@var{?}}@dots{} special texts, summary @cindex Summary of all @code{%@var{?}}@dots{} special texts @cindex Short-list of all @code{%@var{?}}@dots{} special texts Here is a short-list of all @code{%@var{?}}@dots{} special texts which can be used in the text part of Gcal resource file line. Of course, not all possibilities concerning the representation ---which are offered by the format instruction--- are listed here for those special texts which expanded representation may be modified by an optional @var{format}, but only some few exemplary. @xref{Format Instruction}, for further details. @iftex @sp 2 @end iftex @table @asis @item @code{%i@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}} @cindex Inclusive date period @code{%i@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}} special text Exclusion of all non-inclusive date periods @item @code{%e@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}} @cindex Exclusive date period @code{%e@r{[}@var{date}@r{][}#@r{[}@var{date}@r{]]}} special text Exclusion of all exclusive date periods @item @code{%@var{?}} Inclusive day period @cindex Inclusive day period @code{%@var{?}} special texts @table @code @item %v @cindex Inclusive legal holidays @code{%v} special text Exclusion of all non-legal holidays @item %x @cindex Inclusive all holidays @code{%x} special text Exclusion of all non-holidays @item %a @cindex Inclusive Monday @code{%a} special text Exclusion of all non-Mondays @item %c @cindex Inclusive Tuesday @code{%c} special text Exclusion of all non-Tuesdays @item %f @cindex Inclusive Wednesday @code{%f} special text Exclusion of all non-Wednesdays @item %g @cindex Inclusive Thursday @code{%g} special text Exclusion of all non-Thursdays @item %h @cindex Inclusive Friday @code{%h} special text Exclusion of all non-Fridays @item %l @cindex Inclusive Saturday @code{%l} special text Exclusion of all non-Saturdays @item %p @cindex Inclusive Sunday @code{%p} special text Exclusion of all non-Sundays @item %q @cindex Inclusive Monday@dots{}Thursday @code{%q} special text Exclusion of all non-Mondays@dots{}Thursdays @item %r @cindex Inclusive Monday@dots{}Friday @code{%r} special text Exclusion of all non-Mondays@dots{}Fridays @end table @item @code{%@var{?}} Exclusive day period @cindex Exclusive day period @code{%@var{?}} special texts @table @code @item %V @cindex Exclusive legal holidays @code{%V} special text Exclusion of all legal holidays @item %X @cindex Exclusive all holidays @code{%X} special text Exclusion of all holidays @item %A @cindex Exclusive Monday @code{%A} special text Exclusion of all Mondays @item %C @cindex Exclusive Tuesday @code{%C} special text Exclusion of all Tuesdays @item %F @cindex Exclusive Wednesday @code{%F} special text Exclusion of all Wednesdays @item %G @cindex Exclusive Thursday @code{%G} special text Exclusion of all Thursdays @item %H @cindex Exclusive Friday @code{%H} special text Exclusion of all Fridays @item %L @cindex Exclusive Saturday @code{%L} special text Exclusion of all Saturdays @item %P @cindex Exclusive Sunday @code{%P} special text Exclusion of all Sundays @item %Q @cindex Exclusive Monday@dots{}Thursday @code{%Q} special text Exclusion of all Mondays@dots{}Thursdays @item %R @cindex Exclusive Monday@dots{}Friday @code{%R} special text Exclusion of all Mondays@dots{}Fridays @end table @page @item @code{%@r{[}@var{format}@r{]}K@r{[}@var{date}@r{]}} weekday name @cindex Weekday name @code{%@r{[}@var{format}@r{]}K@r{[}@var{date}@r{]}} special text @table @code @item %K@r{[}@var{date}@r{]} @cindex Complete weekday name @code{%K@r{[}@var{date}@r{]}} special text Complete weekday name @item %>3#K@r{[}@var{date}@r{]} @cindex 3-letter weekday name @code{%>3#K@r{[}@var{date}@r{]}} special text 3-Letter weekday name @item %>2#K@r{[}@var{date}@r{]} @cindex 2-letter weekday name @code{%>2#K@r{[}@var{date}@r{]}} special text 2-Letter weekday name @end table @item @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} weekday number @cindex Weekday number @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts @table @code @item %W@r{[}@var{date}@r{]} @cindex Weekday number @code{%W@r{[}@var{date}@r{]}} special text Weekday number, Mon@equiv{}1@dots{}Sun@equiv{}7 @item %>1&*W@r{[}@var{date}@r{]} @cindex Weekday number @code{%>1&*W@r{[}@var{date}@r{]}} special text Weekday number, Mon@equiv{}1@dots{}Sun@equiv{}7, Ordinal Number suffix @item %E@r{[}@var{date}@r{]} @cindex Weekday number @code{%E@r{[}@var{date}@r{]}} special text Weekday number, Mon@equiv{}0@dots{}Sun@equiv{}6 @item %>1&*E@r{[}@var{date}@r{]} @cindex Weekday number @code{%>1&*E@r{[}@var{date}@r{]}} special text Weekday number, Mon@equiv{}0@dots{}Sun@equiv{}6, Ordinal Number suffix @item %I@r{[}@var{date}@r{]} @cindex Weekday number @code{%I@r{[}@var{date}@r{]}} special text Weekday number, Sun@equiv{}1@dots{}Sat@equiv{}7 @item %>1&*I@r{[}@var{date}@r{]} @cindex Weekday number @code{%>1&*I@r{[}@var{date}@r{]}} special text Weekday number, Sun@equiv{}1@dots{}Sat@equiv{}7, Ordinal Number suffix @item %J@r{[}@var{date}@r{]} @cindex Weekday number @code{%J@r{[}@var{date}@r{]}} special text Weekday number, Sun@equiv{}0@dots{}Sat@equiv{}6 @item %>1&*J@r{[}@var{date}@r{]} @cindex Weekday number @code{%>1&*J@r{[}@var{date}@r{]}} special text Weekday number, Sun@equiv{}0@dots{}Sat@equiv{}6, Ordinal Number suffix @item %S@r{[}@var{date}@r{]} @cindex Weekday number @code{%S@r{[}@var{date}@r{]}} special text Weekday number, @var{starting day of week}@equiv{}1 @item %>1&*S@r{[}@var{date}@r{]} @cindex Weekday number @code{%>1&*S@r{[}@var{date}@r{]}} special text Weekday number, @var{starting day of week}@equiv{}1, Ordinal Number suffix @item %T@r{[}@var{date}@r{]} @cindex Weekday number @code{%T@r{[}@var{date}@r{]}} special text Weekday number, @var{starting day of week}@equiv{}0 @item %>1&*T@r{[}@var{date}@r{]} @cindex Weekday number @code{%>1&*T@r{[}@var{date}@r{]}} special text Weekday number, @var{starting day of week}@equiv{}0, Ordinal Number suffix @end table @item @code{%@r{[}@var{format}@r{]}N@r{[}@var{date}@r{]}} day number @cindex Day number @code{%@r{[}@var{format}@r{]}N@r{[}@var{date}@r{]}} special text @table @code @item %N@r{[}@var{date}@r{]} @cindex Day-of-year number @code{%N@r{[}@var{date}@r{]}} special text Day-of-year number @item %>03*N@r{[}@var{date}@r{]} @cindex Day-of-year number @code{%>03*N@r{[}@var{date}@r{]}} special text Day-of-year number, 3-digits with leading zeroes @item %>1&*N@r{[}@var{date}@r{]} @cindex Day-of-year number @code{%>1&*N@r{[}@var{date}@r{]}} special text Day-of-year number, Ordinal Number suffix @item %>03&*N@r{[}@var{date}@r{]} @cindex Day-of-year number @code{%>03&*N@r{[}@var{date}@r{]}} special text Day-of-year number, 3-digits with leading zeroes, Ordinal Number suffix @end table @item @code{%@r{[}@var{format}@r{]}D@r{[}@var{date}@r{]}} day number @cindex Day number @code{%@r{[}@var{format}@r{]}D@r{[}@var{date}@r{]}} special text @table @code @item %D@r{[}@var{date}@r{]} @cindex Day number @code{%D@r{[}@var{date}@r{]}} special text Day number @item %>02*D@r{[}@var{date}@r{]} @cindex Day number @code{%>02*D@r{[}@var{date}@r{]}} special text Day number, 2-digits with leading zero @item %>1&*D@r{[}@var{date}@r{]} @cindex Day number @code{%>1&*D@r{[}@var{date}@r{]}} special text Day number, Ordinal Number suffix @item %>02&*D@r{[}@var{date}@r{]} @cindex Day number @code{%>02&*D@r{[}@var{date}@r{]}} special text Day number, 2-digits with leading zero, Ordinal Number suffix @end table @item @code{%k@r{[}@var{date}@r{]}} @cindex Week number @code{%@var{?}@r{[}@var{date}@r{]}} special text @acronym{ISO} week number or standard week number, either 2-digits with leading zero, or 4-alphanumeric characters text @item @code{%@r{[}@var{format}@r{]}U@r{[}@var{date}@r{]}} month name @cindex Month name @code{%@r{[}@var{format}@r{]}U@r{[}@var{date}@r{]}} special text @table @code @item %U@r{[}@var{date}@r{]} @cindex Complete month name @code{%U@r{[}@var{date}@r{]}} special text Complete month name @item %>3#U@r{[}@var{date}@r{]} @cindex 3-letter month name @code{%>3#U@r{[}@var{date}@r{]}} special text 3-Letter month name @end table @item @code{%@r{[}@var{format}@r{]}M@r{[}@var{date}@r{]}} month @cindex Month @code{%@r{[}@var{format}@r{]}M@r{[}@var{date}@r{]}} special text @table @code @item %M@r{[}@var{date}@r{]} @cindex Month number @code{%M@r{[}@var{date}@r{]}} special text Month number @item %>02*M@r{[}@var{date}@r{]} @cindex Month number @code{%>02*M@r{[}@var{date}@r{]}} special text Month number, 2-digits with leading zero @item %>1&*M@r{[}@var{date}@r{]} @cindex Month number @code{%>1&*M@r{[}@var{date}@r{]}} special text Month number, Ordinal Number suffix @item %>02&*M@r{[}@var{date}@r{]} @cindex Month number @code{%>02&*M@r{[}@var{date}@r{]}} special text Month number, 2-digits with leading zero, Ordinal Number suffix @end table @item @code{%@r{[}@var{format}@r{]}Y@r{[}@var{date}@r{]}} year number @cindex Year number @code{%@r{[}@var{format}@r{]}Y@r{[}@var{date}@r{]}} special text @table @code @item %Y@r{[}@var{date}@r{]} @cindex Year number @code{%Y@r{[}@var{date}@r{]}} special text Year number @item %>04*Y@r{[}@var{date}@r{]} @cindex Year number @code{%>04*Y@r{[}@var{date}@r{]}} special text Complete year number, 4-digits with leading zeroes @end table @item @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} Moon phase @cindex Moon phase @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts @table @code @item %O@r{[}@var{date}@r{]} @cindex Moon phase text @code{%O@r{[}@var{date}@r{]}} special text Moon phase text @item %>03*O@r{[}@var{date}@r{]} @cindex Moon phase text @code{%>03*O@r{[}@var{date}@r{]}} special text Moon phase text, 3-digits with leading zeroes @item %Z@r{[}@var{date}@r{]} @cindex Moon phase text graphics @code{%Z@r{[}@var{date}@r{]}} special text Moon phase text graphics @end table @item @code{%@var{?}@r{[}@var{date}@r{]}} biorhythm @cindex Biorhythm @code{%@var{?}@r{[}@var{date}@r{]}} special texts @table @code @item %,@r{[}@var{date}@r{]} @cindex Biorhythm text @code{%,@r{[}@var{date}@r{]}} special text Biorhythm text (series of values) @item %;@r{[}@var{date}@r{]} @cindex Biorhythm text graphics @code{%;@r{[}@var{date}@r{]}} special text Biorhythm text graphics (bar) @end table @item @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} difference value @cindex Difference value @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{date}@r{]}} special texts @table @code @item %y@var{date} @cindex Relative year number @code{%y@var{date}} special text Relative year number @item %b@r{[}@var{date}@r{]} @cindex Age value (birthday) @code{%b@r{[}@var{date}@r{]}} special text Age value (birthday) @item %B@r{[}@var{date}@r{]} @cindex Age value @code{%B@r{[}@var{date}@r{]}} special text Age value (birthday), Ordinal Number suffix @end table @item @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}} actual clocktime @cindex Actual clocktime @code{%@r{[}@var{format}@r{]}@var{?}@r{[}@var{argument}@r{]}} special texts @table @code @item %t@r{[}*@r{][[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Actual local time in @w{@code{@var{hh}:@var{mm}}} format @code{%t@r{[}@var{argument}@r{]}} special text Actual local time in @w{@code{@var{hh}:@var{mm}}} format @item %@r{[}@var{format}@r{]}'@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Actual local time in @w{@var{m}@r{[}@var{m}@r{@dots{}]}} format @code{%@r{[}@var{format}@r{]}'@r{[}@var{argument}@r{]}} special text Actual local time in @w{@var{m}@r{[}@var{m}@r{@dots{}]}} format @item %@r{[}@var{format}@r{]}_@r{[}*@r{][[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Actual local time hour @code{%@r{[}@var{format}@r{]}_@r{[}*@r{][[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} special text Actual local time hour in @w{@var{h}@r{[}@var{h}@r{@dots{}]}} format @item %@r{[}@var{format}@r{]}?@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Actual local time minute @code{%@r{[}@var{format}@r{]}?@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} special text Actual local time minute in @w{@var{m}@r{[}@var{m}@r{@dots{}]}} format @item %@r{[}@var{format}@r{]}@{@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Actual local time 12-hour format suffix @code{%@r{[}@var{format}@r{]}@{@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} special text Actual local time 12-hour format suffix @item %@@@r{[}*@r{][[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Actual Universal time in @w{@code{@var{hh}:@var{mm}/@var{date}}} format @code{%@@@r{[}@var{argument}@r{]}} special text Actual Universal time in @w{@code{@var{hh}:@var{mm}/@var{date}}} format @item %@r{[}@var{format}@r{]}`@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Actual Universal time in @w{@code{@var{m}@r{[}@var{m}@r{@dots{}]}/@var{date}}} format @code{%@r{[}@var{format}@r{]}`@r{[}@var{argument}@r{]}} special text Actual Universal time in @w{@code{@var{m}@r{[}@var{m}@r{@dots{}]}/@var{date}}} format @item %@r{[}@var{format}@r{]}.@r{[}*@r{][[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Actual Universal time hour @code{%@r{[}@var{format}@r{]}.@r{[}*@r{][[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} special text Actual Universal time hour in @w{@var{h}@r{[}@var{h}@r{@dots{}]}} format @item %@r{[}@var{format}@r{]}/@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Actual Universal time minute @code{%@r{[}@var{format}@r{]}/@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} special text Actual Universal time minute in @w{@var{m}@r{[}@var{m}@r{@dots{}]}} format @item %@r{[}@var{format}@r{]}@}@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Actual Universal time 12-hour format suffix @code{%@r{[}@var{format}@r{]}@}@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} special text Actual Universal time 12-hour format suffix @item %"@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Numerical Universal time timezone offset value @code{%"@r{[}@var{argument}@r{]}} special text Numerical Universal time timezone offset value @item %=@r{[[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Numerical local time timezone offset value @code{%=@r{[}@var{argument}@r{]}} special text Actual numerical local time timezone offset value @end table @item @code{%n@r{[[}+@r{|}-@r{]}@var{n}@r{]}} @cindex Textual date @code{%n@r{[}@var{argument}@r{]}} special text Textual date in fixed @w{@samp{%>02*D@r{-}%>3#U@r{-}%>04*Y}} format @item @code{%@r{[}@var{format}@r{]}j@r{[[}+@r{|}-@r{]}@var{n}@r{]}} @cindex Julian day number @code{%@r{[}@var{format}@r{]}j@r{[}@var{argument}@r{]}} special text Julian day number @item @code{%@r{[}@var{format}@r{]}b@r{[}*@r{][}@var{mode}@r{]}@var{@acronym{ISO}-6709:1983-co-ordinate-1}/@var{@acronym{ISO}-6709:1983-co-ordinate-2}} geographical distance and course angle @cindex Geographical distance and course angle @code{%@r{[}@var{format}@r{]}b@var{argument}} special texts @table @code @item %b0@var{@acronym{ISO}-6709:1983-co-ordinate-1}/@var{@acronym{ISO}-6709:1983-co-ordinate-2} @cindex Geographical distance @w{@code{%b0@var{argument}}} special text Geographical distance (air line distance) in kilometers @item %b*0@var{@acronym{ISO}-6709:1983-co-ordinate-1}/@var{@acronym{ISO}-6709:1983-co-ordinate-2} @cindex Geographical distance @w{@code{%b*0@var{argument}}} special text Geographical distance (air line distance) in statute miles @item %b1@var{@acronym{ISO}-6709:1983-co-ordinate-1}/@var{@acronym{ISO}-6709:1983-coordinate-2} @cindex Course angle (true track) @w{@code{%b1@var{argument}}} special text Course angle (true track) between @w{@var{@acronym{ISO}-6709:1983-co-ordinate-1}} and @w{@var{@acronym{ISO}-6709:1983-co-ordinate-2}} in degrees and arcminutes @item %b*1@var{@acronym{ISO}-6709:1983-co-ordinate-1}/@var{@acronym{ISO}-6709:1983-co-ordinate-2} @cindex Course angle (true track) @w{@code{%b*1@var{argument}}} special text Course angle (true track) between @w{@var{@acronym{ISO}-6709:1983-co-ordinate-1}} and @w{@var{@acronym{ISO}-6709:1983-co-ordinate-2}} in decimal degrees @item %b2@var{@acronym{ISO}-6709:1983-co-ordinate-1}/@var{@acronym{ISO}-6709:1983-co-ordinate-2} @cindex Course angle (true track) @w{@code{%b2@var{argument}}} special text Course angle (true track) between @w{@var{@acronym{ISO}-6709:1983-co-ordinate-2}} and @w{@var{@acronym{ISO}-6709:1983-co-ordinate-1}} in degrees and arcminutes @item %b*2@var{@acronym{ISO}-6709:1983-co-ordinate-1}/@var{@acronym{ISO}-6709:1983-co-ordinate-2} @cindex Course angle (true track) @w{@code{%b*2@var{argument}}} special text Course angle (true track) between @w{@var{@acronym{ISO}-6709:1983-co-ordinate-2}} and @w{@var{@acronym{ISO}-6709:1983-co-ordinate-1}} in decimal degrees @end table @item @code{%@r{[}@var{format}@r{]}@var{?}@r{[}*@r{][}@var{mode}@r{]}@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} Sun data @cindex Sun data @code{%@r{[}@var{format}@r{]}@var{?}@var{argument}} special texts @table @code @item %o0@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s0@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, astronomical midnight time @code{%o0@var{argument}} special text @cindex Sun, astronomical midnight time @code{%s0@var{argument}} special text Sun's astronomical midnight time in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*0@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*0@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, astronomical midnight time @code{%o*0@var{argument}} special text @cindex Sun, astronomical midnight time @code{%s*0@var{argument}} special text Sun's astronomical midnight time in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %o1@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s1@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, astronomical noon time @code{%o1@var{argument}} special text @cindex Sun, astronomical noon time @code{%s1@var{argument}} special text Sun's astronomical noon time in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*1@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*1@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, astronomical noon time @code{%o*1@var{argument}} special text @cindex Sun, astronomical noon time @code{%s*1@var{argument}} special text Sun's astronomical noon time in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %o2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, geometrical rise time @code{%o2@var{argument}} special text Geometrical rise time of Sun's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, geometrical rise time @code{%o*2@var{argument}} special text Geometrical rise time of Sun's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %s2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, geometrical set time @code{%s2@var{argument}} special text Geometrical set time of Sun's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, geometrical set time @code{%s*2@var{argument}} special text Geometrical set time of Sun's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %u2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, geometrical visibility @code{%u2@var{argument}} special text Period of geometrical visibility, Sun's center above reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %u*2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, geometrical visibility @code{%u*2@var{argument}} special text Period of geometrical visibility, Sun's center above reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %z2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, geometrical non-visibility @code{%z2@var{argument}} special text Period of geometrical non-visibility, Sun's center below reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %z*2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, geometrical non-visibility @code{%z*2@var{argument}} special text Period of geometrical non-visibility, Sun's center below reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %o3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, geometrical rise time @code{%o3@var{argument}} special text Geometrical rise time of Sun's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, geometrical rise time @code{%o*3@var{argument}} special text Geometrical rise time of Sun's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %s3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, geometrical set time @code{%s3@var{argument}} special text Geometrical set time of Sun's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %s*3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, geometrical set time @code{%s*3@var{argument}} special text Geometrical set time of Sun's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %u3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, geometrical visibility @code{%u3@var{argument}} special text Period of geometrical visibility, Sun's upper limb above reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %u*3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, geometrical visibility @code{%u*3@var{argument}} special text Period of geometrical visibility, Sun's upper limb above reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %z3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, geometrical non-visibility @code{%z3@var{argument}} special text Period of geometrical non-visibility, Sun's upper limb below reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %z*3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, geometrical non-visibility @code{%z*3@var{argument}} special text Period of geometrical non-visibility, Sun's upper limb below reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %o4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, rise time @code{%o4@var{argument}} special text Rise time of Sun's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, rise time @code{%o*4@var{argument}} special text Rise time of Sun's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %s4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, set time @code{%s4@var{argument}} special text Set time of Sun's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %s*4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, set time @code{%s*4@var{argument}} special text Set time of Sun's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %u4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, visibility @code{%u4@var{argument}} special text Period of visibility, Sun's center above reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %u*4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, visibility @code{%u*4@var{argument}} special text Period of visibility, Sun's center above reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %z4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, non-visibility @code{%z4@var{argument}} special text Period of non-visibility, Sun's center below reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %z*4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, non-visibility @code{%z*4@var{argument}} special text Period of non-visibility, Sun's center below reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %o5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, standard rise time @code{%o5@var{argument}} special text Standard rise time of Sun's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, standard rise time @code{%o*5@var{argument}} special text Standard rise time of Sun's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %s5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, standard set time @code{%s5@var{argument}} special text Standard set time of Sun's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %s*5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, standard set time @code{%s*5@var{argument}} special text Standard set time of Sun's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %u5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, standard visibility @code{%u5@var{argument}} special text Period of standard visibility, Sun's upper limb above reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %u*5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, standard visibility @code{%u*5@var{argument}} special text Period of standard visibility, Sun's upper limb above reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %z5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, standard non-visibility @code{%z5@var{argument}} special text Period of standard non-visibility, Sun's upper limb below reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %z*5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's upper limb, standard non-visibility @code{%z*5@var{argument}} special text Period of standard non-visibility, Sun's upper limb below reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %o6@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, begin of civil twilight @code{%o6@var{argument}} special text Begin time of civil twilight in the morning in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*6@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, begin of civil twilight @code{%o*6@var{argument}} special text Begin time of civil twilight in the morning in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %s6@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, end of civil twilight @code{%s6@var{argument}} special text End time of civil twilight in the evening in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %s*6@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, end of civil twilight @code{%s*6@var{argument}} special text End time of civil twilight in the evening in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %u6@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period above civil twilight reference altitude @code{%u6@var{argument}} special text Period of Sun's center above reference altitude of civil twilight in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %u*6@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period above civil twilight reference altitude @code{%u*6@var{argument}} special text Period of Sun's center above reference altitude of civil twilight in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %z6@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period below civil twilight reference altitude @code{%z6@var{argument}} special text Period of Sun's center below reference altitude of civil twilight in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %z*6@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period below civil twilight reference altitude @code{%z*6@var{argument}} special text Period of Sun's center below reference altitude of civil twilight in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %o7@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, begin of nautical twilight @code{%o7@var{argument}} special text Begin time of nautical twilight in the morning in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*7@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, begin of nautical twilight @code{%o*7@var{argument}} special text Begin time of nautical twilight in the morning in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %s7@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, end of nautical twilight @code{%s7@var{argument}} special text End time of nautical twilight in the evening in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %s*7@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, end of nautical twilight @code{%s*7@var{argument}} special text End time of nautical twilight in the evening in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %u7@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period above nautical twilight reference altitude @code{%u7@var{argument}} special text Period of Sun's center above reference altitude of nautical twilight in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %u*7@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period above nautical twilight reference altitude @code{%u*7@var{argument}} special text Period of Sun's center above reference altitude of nautical twilight in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %z7@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period below nautical twilight reference altitude @code{%z7@var{argument}} special text Period of Sun's center below reference altitude of nautical twilight in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %z*7@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period below nautical twilight reference altitude @code{%z*7@var{argument}} special text Period of Sun's center below reference altitude of nautical twilight in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %o8@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, begin of amateur-astronomical @code{%o8@var{argument}} special text Begin time of amateur-astronomical twilight in the morning in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*8@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, begin of amateur-astronomical @code{%o*8@var{argument}} special text Begin time of amateur-astronomical twilight in the morning in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %s8@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, end of amateur-astronomical @code{%s8@var{argument}} special text End time of amateur-astronomical twilight in the evening in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %s*8@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, end of amateur-astronomical @code{%s*8@var{argument}} special text End time of amateur-astronomical twilight in the evening in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %u8@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period above amateur-astronomical twilight reference altitude @code{%u8@var{argument}} special text Period of Sun's center above reference altitude of amateur-astronomical twilight in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %u*8@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period above amateur-astronomical twilight reference altitude @code{%u*8@var{argument}} special text Period of Sun's center above reference altitude of amateur-astronomical twilight in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %z8@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period below amateur-astronomical twilight reference altitude @code{%z8@var{argument}} special text Period of Sun's center below reference altitude of amateur-astronomical twilight in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %z*8@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period below amateur-astronomical twilight reference altitude @code{%z*8@var{argument}} special text Period of Sun's center below reference altitude of amateur-astronomical twilight in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %o9@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, begin of astronomical twilight @code{%o9@var{argument}} special text Begin time of astronomical twilight in the morning in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*9@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, begin of astronomical twilight @code{%o*9@var{argument}} special text Begin time of astronomical twilight in the morning in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %s9@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, end of astronomical twilight @code{%s9@var{argument}} special text End time of astronomical twilight in the evening in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %s*9@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, end of astronomical twilight @code{%s*9@var{argument}} special text End time of astronomical twilight in the evening in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %u9@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period above astronomical twilight reference altitude @code{%u9@var{argument}} special text Period of Sun's center above reference altitude of astronomical twilight in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %u*9@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period above astronomical twilight reference altitude @code{%u*9@var{argument}} special text Period of Sun's center above reference altitude of astronomical twilight in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %z9@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period below astronomical twilight reference altitude @code{%z9@var{argument}} special text Period of Sun's center below reference altitude of astronomical twilight in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %z*9@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun's center, period below astronomical twilight reference altitude @code{%z*9@var{argument}} special text Period of Sun's center below reference altitude of astronomical twilight in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %oa@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sa@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric elevation @code{%oa@var{argument}} special text @cindex Sun, topocentric elevation @code{%sa@var{argument}} special text Topocentric elevation of Sun in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*a@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*a@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric elevation @code{%o*a@var{argument}} special text @cindex Sun, topocentric elevation @code{%s*a@var{argument}} special text Topocentric elevation of Sun in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %ob@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sb@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric azimuth @code{%ob@var{argument}} special text @cindex Sun, topocentric azimuth @code{%sb@var{argument}} special text Topocentric azimuth of Sun in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %o*b@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*b@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric azimuth @code{%s*b@var{argument}} special text @cindex Sun, topocentric azimuth @code{%o*b@var{argument}} special text Topocentric azimuth of Sun in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %oc@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sc@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric declination @code{%oc@var{argument}} special text @cindex Sun, topocentric declination @code{%sc@var{argument}} special text Topocentric declination of Sun in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*c@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*c@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric declination @code{%o*c@var{argument}} special text @cindex Sun, topocentric declination @code{%s*c@var{argument}} special text Topocentric declination of Sun in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %od@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sd@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric ecliptic longitude @code{%od@var{argument}} special text @cindex Sun, topocentric ecliptic longitude @code{%sd@var{argument}} special text Topocentric ecliptic longitude of Sun in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %o*d@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*d@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric ecliptic longitude @code{%o*d@var{argument}} special text @cindex Sun, topocentric ecliptic longitude @code{%s*d@var{argument}} special text Topocentric ecliptic longitude of Sun in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %oe@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %se@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric right ascension @code{%oe@var{argument}} special text @cindex Sun, topocentric right ascension @code{%se@var{argument}} special text Topocentric right ascension of Sun as time value in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %o*e@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*e@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric right ascension @code{%o*e@var{argument}} special text @cindex Sun, topocentric right ascension @code{%s*e@var{argument}} special text Topocentric right ascension of Sun as time value in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %of@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sf@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric distance @code{%of@var{argument}} special text @cindex Sun, topocentric distance @code{%sf@var{argument}} special text Topocentric distance of Sun in astronomical units in @w{@code{@var{n}.@var{n}@dots{}}} format @item %o*f@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*f@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric distance @code{%o*f@var{argument}} special text @cindex Sun, topocentric distance @code{%s*f@var{argument}} special text Topocentric distance of Sun in kilometers in @w{@code{@var{n}.@var{n}@dots{}}} format @item %og@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sg@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric horizontal parallax @code{%og@var{argument}} special text @cindex Sun, topocentric horizontal parallax @code{%sg@var{argument}} special text Topocentric horizontal parallax of Sun in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %o*g@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*g@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric horizontal parallax @code{%o*g@var{argument}} special text @cindex Sun, topocentric horizontal parallax @code{%s*g@var{argument}} special text Topocentric horizontal parallax of Sun in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %oh@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sh@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric semidiameter @code{%oh@var{argument}} special text @cindex Sun, topocentric semidiameter @code{%sh@var{argument}} special text Topocentric semidiameter of Sun in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %o*h@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*h@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric semidiameter @code{%o*h@var{argument}} special text @cindex Sun, topocentric semidiameter @code{%s*h@var{argument}} special text Topocentric semidiameter of Sun in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %oi@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %si@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, refraction @code{%oi@var{argument}} special text @cindex Sun, refraction @code{%si@var{argument}} special text Atmospheric refraction in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %o*i@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*i@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, refraction @code{%o*i@var{argument}} special text @cindex Sun, refraction @code{%s*i@var{argument}} special text Atmospheric refraction in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %oj@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sj@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric elevation @code{%oj@var{argument}} special text @cindex Sun, geocentric elevation @code{%sj@var{argument}} special text Geocentric elevation of Sun in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*j@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*j@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric elevation @code{%o*j@var{argument}} special text @cindex Sun, geocentric elevation @code{%s*j@var{argument}} special text Geocentric elevation of Sun in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %ok@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sk@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric azimuth @code{%ok@var{argument}} special text @cindex Sun, geocentric azimuth @code{%sk@var{argument}} special text Geocentric azimuth of Sun in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %o*k@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*k@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric azimuth @code{%s*k@var{argument}} special text @cindex Sun, geocentric azimuth @code{%o*k@var{argument}} special text Geocentric azimuth of Sun in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %ol@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sl@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric declination @code{%ol@var{argument}} special text @cindex Sun, geocentric declination @code{%sl@var{argument}} special text Geocentric declination of Sun in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*l@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*l@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric declination @code{%o*l@var{argument}} special text @cindex Sun, geocentric declination @code{%s*l@var{argument}} special text Geocentric declination of Sun in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %om@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sm@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric ecliptic longitude @code{%om@var{argument}} special text @cindex Sun, geocentric ecliptic longitude @code{%sm@var{argument}} special text Geocentric ecliptic longitude of Sun in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %o*m@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*m@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric ecliptic longitude @code{%o*m@var{argument}} special text @cindex Sun, geocentric ecliptic longitude @code{%s*m@var{argument}} special text Geocentric ecliptic longitude of Sun in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %on@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sn@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric right ascension @code{%on@var{argument}} special text @cindex Sun, geocentric right ascension @code{%sn@var{argument}} special text Geocentric right ascension of Sun as time value in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %o*n@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*n@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric right ascension @code{%o*n@var{argument}} special text @cindex Sun, geocentric right ascension @code{%s*n@var{argument}} special text Geocentric right ascension of Sun as time value in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %oo@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %so@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric distance @code{%oo@var{argument}} special text @cindex Sun, geocentric distance @code{%so@var{argument}} special text Geocentric distance of Sun in astronomical units in @w{@code{@var{n}.@var{n}@dots{}}} format @item %o*o@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*o@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric distance @code{%o*o@var{argument}} special text @cindex Sun, geocentric distance @code{%s*o@var{argument}} special text Geocentric distance of Sun in kilometers in @w{@code{@var{n}.@var{n}@dots{}}} format @item %op@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sp@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric horizontal parallax @code{%op@var{argument}} special text @cindex Sun, geocentric horizontal parallax @code{%sp@var{argument}} special text Geocentric horizontal parallax of Sun in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %o*p@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*p@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric horizontal parallax @code{%o*p@var{argument}} special text @cindex Sun, geocentric horizontal parallax @code{%s*p@var{argument}} special text Geocentric horizontal parallax of Sun in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %oq@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sq@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric semidiameter @code{%oq@var{argument}} special text @cindex Sun, geocentric semidiameter @code{%sq@var{argument}} special text Geocentric semidiameter of Sun in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %o*q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric semidiameter @code{%o*q@var{argument}} special text @cindex Sun, geocentric semidiameter @code{%s*q@var{argument}} special text Geocentric semidiameter of Sun in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %or@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sr@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %o*r@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*r@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, delta-t @code{%or@var{argument}} special text @cindex Sun, delta-t @code{%sr@var{argument}} special text @cindex Sun, delta-t @code{%s*r@var{argument}} special text @cindex Sun, delta-t @code{%o*r@var{argument}} special text Delta-t in seconds in @w{@code{+@r{|}-@var{n}.@var{n}@dots{}}} format @item %os@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %ss@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, local sidereal time @code{%os@var{argument}} special text @cindex Sun, local sidereal time @code{%ss@var{argument}} special text Local sidereal time in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*s@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*s@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, local sidereal time @code{%o*s@var{argument}} special text @cindex Sun, local sidereal time @code{%s*s@var{argument}} special text Local sidereal time in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %ot@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %st@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, base time @code{%ot@var{argument}} special text @cindex Sun, base time @code{%st@var{argument}} special text Base time as time value in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %o*t@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*t@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, base time @code{%o*t@var{argument}} special text @cindex Sun, base time @code{%s*t@var{argument}} special text Base time as time value in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %ou@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %su@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %o*u@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*u@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, Julian date @code{%ou@var{argument}} special text @cindex Sun, Julian date @code{%su@var{argument}} special text @cindex Sun, Julian date @code{%o*u@var{argument}} special text @cindex Sun, Julian date @code{%s*u@var{argument}} special text Julian date in days in @w{@code{@var{n}.@var{n}@dots{}}} format @item %ov@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sv@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %o*v@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*v@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, Julian Ephemeris date @code{%ov@var{argument}} special text @cindex Sun, Julian Ephemeris date @code{%sv@var{argument}} special text @cindex Sun, Julian Ephemeris date @code{%o*v@var{argument}} special text @cindex Sun, Julian Ephemeris date @code{%s*v@var{argument}} special text Julian Ephemeris date in days in @w{@code{@var{n}.@var{n}@dots{}}} format @item %ow@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sw@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, equation of time @code{%ow@var{argument}} special text @cindex Sun, equation of time @code{%sw@var{argument}} special text Equation of time as time value in hours and minutes in @w{@code{+@r{|}-@var{hh}h@var{mm}'}} format @item %o*w@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*w@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, equation of time @code{%o*w@var{argument}} special text @cindex Sun, equation of time @code{%s*w@var{argument}} special text Equation of time as time value in decimal hours in @w{@code{+@r{|}-@var{hh}.@var{h}@dots{}}} format @item %ox@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sx@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta topocentric elevation @code{%ox@var{argument}} special text @cindex Sun/Moon, delta topocentric elevation @code{%sx@var{argument}} special text Delta topocentric elevation of Sun/Moon in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*x@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*x@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta topocentric elevation @code{%o*x@var{argument}} special text @cindex Sun/Moon, delta topocentric elevation @code{%s*x@var{argument}} special text Delta topocentric elevation of Sun/Moon in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oy@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sy@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta topocentric azimuth @code{%oy@var{argument}} special text @cindex Sun/Moon, delta topocentric azimuth @code{%sy@var{argument}} special text Delta topocentric azimuth of Sun/Moon in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*y@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*y@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta topocentric azimuth @code{%o*y@var{argument}} special text @cindex Sun/Moon, delta topocentric azimuth @code{%s*y@var{argument}} special text Delta topocentric azimuth of Sun/Moon in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oz@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sz@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta geocentric elevation @code{%oz@var{argument}} special text @cindex Sun/Moon, delta geocentric elevation @code{%sz@var{argument}} special text Delta geocentric elevation of Sun/Moon in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*z@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*z@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta geocentric elevation @code{%o*z@var{argument}} special text @cindex Sun/Moon, delta geocentric elevation @code{%s*z@var{argument}} special text Delta geocentric elevation of Sun/Moon in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oA@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sA@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta geocentric azimuth @code{%oA@var{argument}} special text @cindex Sun/Moon, delta geocentric azimuth @code{%sA@var{argument}} special text Delta geocentric azimuth of Sun/Moon in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*A@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*A@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta geocentric azimuth @code{%o*A@var{argument}} special text @cindex Sun/Moon, delta geocentric azimuth @code{%s*A@var{argument}} special text Delta geocentric azimuth of Sun/Moon in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oB@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta topocentric elevation at standard sunrise time @code{%oB@var{argument}} special text Delta topocentric elevation of Sun/Moon at standard sunrise time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*B@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta topocentric elevation at standard sunrise time @code{%o*B@var{argument}} special text Delta topocentric elevation of Sun/Moon at standard sunrise time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %sB@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta topocentric elevation at standard sunset time @code{%sB@var{argument}} special text Delta topocentric elevation of Sun/Moon at standard sunset time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %s*B@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta topocentric elevation at standard sunset time @code{%s*B@var{argument}} special text Delta topocentric elevation of Sun/Moon at standard sunset time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oC@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta topocentric azimuth at standard sunrise time @code{%oC@var{argument}} special text Delta topocentric azimuth of Sun/Moon at standard sunrise time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*C@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta topocentric azimuth at standard sunrise time @code{%o*C@var{argument}} special text Delta topocentric azimuth of Sun/Moon at standard sunrise time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %sC@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta topocentric azimuth at standard sunset time @code{%sC@var{argument}} special text Delta topocentric azimuth of Sun/Moon at standard sunset time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %s*C@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta topocentric azimuth at standard sunset time @code{%s*C@var{argument}} special text Delta topocentric azimuth of Sun/Moon at standard sunset time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oD@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta geocentric elevation at standard sunrise time @code{%oD@var{argument}} special text Delta geocentric elevation of Sun/Moon at standard sunrise time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*D@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta geocentric elevation at standard sunrise time @code{%o*D@var{argument}} special text Delta geocentric elevation of Sun/Moon at standard sunrise time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %sD@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta geocentric elevation at standard sunset time @code{%sD@var{argument}} special text Delta geocentric elevation of Sun/Moon at standard sunset time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %s*D@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta geocentric elevation at standard sunset time @code{%s*D@var{argument}} special text Delta geocentric elevation of Sun/Moon at standard sunset time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oE@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta geocentric azimuth at standard sunrise time @code{%oE@var{argument}} special text Delta geocentric azimuth of Sun/Moon at standard sunrise time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*E@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta geocentric azimuth at standard sunrise time @code{%o*E@var{argument}} special text Delta geocentric azimuth of Sun/Moon at standard sunrise time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %sE@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta geocentric azimuth at standard sunset time @code{%sE@var{argument}} special text Delta geocentric azimuth of Sun/Moon at standard sunset time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %s*E@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta geocentric azimuth at standard sunset time @code{%s*E@var{argument}} special text Delta geocentric azimuth of Sun/Moon at standard sunset time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oF@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sF@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta astronomical midnight time @code{%oF@var{argument}} special text @cindex Sun/Moon, delta astronomical midnight time @code{%sF@var{argument}} special text Delta astronomical midnight time of Sun/Moon as time value in hours and minutes in @w{@code{+@r{|}-@var{hh}h@var{mm}'}} format @item %o*F@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*F@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta astronomical midnight time @code{%o*F@var{argument}} special text @cindex Sun/Moon, delta astronomical midnight time @code{%s*F@var{argument}} special text Delta astronomical midnight time of Sun/Moon as time value in decimal hours in @w{@code{+@r{|}-@var{hh}.@var{h}@dots{}}} format @item %oG@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sG@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta astronomical noon time @code{%oG@var{argument}} special text @cindex Sun/Moon, delta astronomical noon time @code{%sG@var{argument}} special text Delta astronomical noon of Sun/Moon as time value in hours and minutes in @w{@code{+@r{|}-@var{hh}h@var{mm}'}} format @item %o*G@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*G@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta astronomical noon time @code{%o*G@var{argument}} special text @cindex Sun/Moon, delta astronomical noon time @code{%s*G@var{argument}} special text Delta astronomical noon of Sun/Moon as time value in decimal hours in @w{@code{+@r{|}-@var{hh}.@var{h}@dots{}}} format @item %oH@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta standard rise time @code{%oH@var{argument}} special text Delta time of standard rise of Sun/Moon at standard sunrise time as time value in hours and minutes in @w{@code{+@r{|}-@var{hh}h@var{mm}'}} format @item %o*H@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta standard rise time @code{%o*H@var{argument}} special text Delta time of standard rise of Sun/Moon at standard sunrise time as time value in decimal hours in @w{@code{+@r{|}-@var{hh}.@var{h}@dots{}}} format @item %sH@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta standard set time @code{%sH@var{argument}} special text Delta time of standard set of Sun/Moon at standard sunset time as time value in hours and minutes in @w{@code{+@r{|}-@var{hh}h@var{mm}'}} format @item %s*H@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun/Moon, delta standard set time @code{%s*H@var{argument}} special text Delta time of standard set of Sun/Moon at standard sunset time as time value in decimal hours in @w{@code{+@r{|}-@var{hh}.@var{h}@dots{}}} format @item %oI@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sI@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric elevation at Sun's astronomical midnight time @code{%oI@var{argument}} special text @cindex Sun, topocentric elevation at Sun's astronomical midnight time @code{%sI@var{argument}} special text Topocentric elevation of Sun at Sun's astronomical midnight time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*I@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*I@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric elevation at Sun's astronomical midnight time @code{%o*I@var{argument}} special text @cindex Sun, topocentric elevation at Sun's astronomical midnight time @code{%s*I@var{argument}} special text Topocentric elevation of Sun at Sun's astronomical midnight time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oJ@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sJ@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric elevation at Sun's astronomical noon time @code{%oJ@var{argument}} special text @cindex Sun, topocentric elevation at Sun's astronomical noon time @code{%sJ@var{argument}} special text Topocentric elevation of Sun at Sun's astronomical noon time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*J@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*J@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric elevation at Sun's astronomical noon time @code{%o*J@var{argument}} special text @cindex Sun, topocentric elevation at Sun's astronomical noon time @code{%s*J@var{argument}} special text Topocentric elevation of Sun at Sun's astronomical noon time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oK@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric elevation at standard rise time @code{%oK@var{argument}} special text Topocentric elevation of Sun at standard sunrise time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*K@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric elevation at standard rise time @code{%o*K@var{argument}} special text Topocentric elevation of Sun at standard sunrise time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %sK@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric elevation at standard set time @code{%sK@var{argument}} special text Topocentric elevation of Sun at standard sunset time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %s*K@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric elevation at standard set time @code{%s*K@var{argument}} special text Topocentric elevation of Sun at standard sunset time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oL@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric azimuth at standard rise time @code{%oL@var{argument}} special text Topocentric azimuth of Sun at standard sunrise time in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %o*L@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric azimuth at standard rise time @code{%o*L@var{argument}} special text Topocentric azimuth of Sun at standard sunrise time in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %sL@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric azimuth at standard set time @code{%sL@var{argument}} special text Topocentric azimuth of Sun at standard sunset time in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %s*L@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, topocentric azimuth at standard set time @code{%s*L@var{argument}} special text Topocentric azimuth of Sun at standard sunset time in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %oM@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sM@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric elevation at Sun's astronomical midnight time @code{%oM@var{argument}} special text @cindex Sun, geocentric elevation at Sun's astronomical midnight time @code{%sM@var{argument}} special text Geocentric elevation of Sun at Sun's astronomical midnight time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*M@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*M@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric elevation at Sun's astronomical midnight time @code{%o*M@var{argument}} special text @cindex Sun, geocentric elevation at Sun's astronomical midnight time @code{%s*M@var{argument}} special text Geocentric elevation of Sun at Sun's astronomical midnight time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oN@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %sN@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric elevation at Sun's astronomical noon time @code{%oN@var{argument}} special text @cindex Sun, geocentric elevation at Sun's astronomical noon time @code{%sN@var{argument}} special text Geocentric elevation of Sun at Sun's astronomical noon time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*N@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %s*N@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric elevation at Sun's astronomical noon time @code{%o*N@var{argument}} special text @cindex Sun, geocentric elevation at Sun's astronomical noon time @code{%s*N@var{argument}} special text Geocentric elevation of Sun at Sun's astronomical noon time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oO@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric elevation at standard rise time @code{%oO@var{argument}} special text Geocentric elevation of Sun at standard sunrise time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %o*O@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric elevation at standard rise time @code{%o*O@var{argument}} special text Geocentric elevation of Sun at standard sunrise time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %sO@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric elevation at standard set time @code{%sO@var{argument}} special text Geocentric elevation of Sun at standard sunset time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %s*O@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric elevation at standard set time @code{%s*O@var{argument}} special text Geocentric elevation of Sun at standard sunset time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %oP@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric azimuth at standard rise time @code{%oP@var{argument}} special text Geocentric azimuth of Sun at standard sunrise time in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %o*P@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric azimuth at standard rise time @code{%o*P@var{argument}} special text Geocentric azimuth of Sun at standard sunrise time in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %sP@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric azimuth at standard set time @code{%sP@var{argument}} special text Geocentric azimuth of Sun at standard sunset time in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %s*P@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, geocentric azimuth at standard set time @code{%s*P@var{argument}} special text Geocentric azimuth of Sun at standard sunset time in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %oQ@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, single shadow length time at forenoon @code{%oQ@var{argument}} special text Single shadow length time in the forenoon in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*Q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, single shadow length time at forenoon @code{%o*Q@var{argument}} special text Single shadow length time in the forenoon in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %sQ@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, single shadow length time at afternoon @code{%sQ@var{argument}} special text Single shadow length time in the afternoon in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %s*Q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, single shadow length time at afternoon @code{%s*Q@var{argument}} special text Single shadow length time in the afternoon in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %uQ@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, period of single or shorter shadow length @code{%uQ@var{argument}} special text Period of single or shorter shadow length in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %u*Q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, period of single or shorter shadow length @code{%u*Q@var{argument}} special text Period of single or shorter shadow length in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %zQ@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, period of longer than single shadow length @code{%zQ@var{argument}} special text Period of longer than single shadow length in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %z*Q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, period of longer than single shadow length @code{%z*Q@var{argument}} special text Period of longer than single shadow length in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %oR@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, double shadow length time at forenoon @code{%oR@var{argument}} special text Double shadow length time in the forenoon in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %o*R@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, double shadow length time at forenoon @code{%o*R@var{argument}} special text Double shadow length time in the forenoon in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %sR@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, double shadow length time at afternoon @code{%sR@var{argument}} special text Double shadow length time in the afternoon in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %s*R@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, double shadow length time at afternoon @code{%s*R@var{argument}} special text Double shadow length time in the afternoon in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %uR@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, period of double or shorter shadow length @code{%uR@var{argument}} special text Period of double or shorter shadow length in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %u*R@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, period of double or shorter shadow length @code{%u*R@var{argument}} special text Period of double or shorter shadow length in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %zR@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, period of longer than double shadow length @code{%zR@var{argument}} special text Period of longer than double shadow length in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %z*R@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Sun, period of longer than double shadow length @code{%z*R@var{argument}} special text Period of longer than double shadow length in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @end table @item @code{%@r{[}@var{format}@r{]}@var{?}@r{[}*@r{][}@var{mode}@r{]}@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]}} Moon data @cindex Moon data @code{%@r{[}@var{format}@r{]}@var{?}@var{argument}} special texts @table @code @item %(0@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)0@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, astronomical midnight time @code{%(0@var{argument}} special text @cindex Moon, astronomical midnight time @code{%)0@var{argument}} special text Moon's astronomical midnight time in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %(*0@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*0@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, astronomical midnight time @code{%(*0@var{argument}} special text @cindex Moon, astronomical midnight time @code{%)*0@var{argument}} special text Moon's astronomical midnight time in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %(1@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)1@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, astronomical noon time @code{%(1@var{argument}} special text @cindex Moon, astronomical noon time @code{%)1@var{argument}} special text Moon's astronomical noon time in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %(*1@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*1@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, astronomical noon time @code{%(*1@var{argument}} special text @cindex Moon, astronomical noon time @code{%)*1@var{argument}} special text Moon's astronomical noon time in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %(2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, geometrical rise time @code{%(2@var{argument}} special text Geometrical rise time of Moon's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %(*2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, geometrical rise time @code{%(*2@var{argument}} special text Geometrical rise time of Moon's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %)2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, geometrical set time @code{%)2@var{argument}} special text Geometrical set time of Moon's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %(*2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, geometrical set time @code{%)*2@var{argument}} special text Geometrical set time of Moon's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %[2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, geometrical visibility @code{%[2@var{argument}} special text Period of geometrical visibility, Moon's center above reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %[*2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, geometrical visibility @code{%[*2@var{argument}} special text Period of geometrical visibility, Moon's center above reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %]2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, geometrical non-visibility @code{%]2@var{argument}} special text Period of geometrical non-visibility, Moon's center below reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %]*2@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, geometrical non-visibility @code{%]*2@var{argument}} special text Period of geometrical non-visibility, Moon's center below reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %(3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, geometrical rise time @code{%(3@var{argument}} special text Geometrical rise time of Moon's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %(*3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, geometrical rise time @code{%(*3@var{argument}} special text Geometrical rise time of Moon's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %)3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, geometrical set time @code{%)3@var{argument}} special text Geometrical set time of Moon's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %)*3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, geometrical set time @code{%)*3@var{argument}} special text Geometrical set time of Moon's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %[3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, geometrical visibility @code{%[3@var{argument}} special text Period of geometrical visibility, Moon's upper limb above reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %[*3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, geometrical visibility @code{%[*3@var{argument}} special text Period of geometrical visibility, Moon's upper limb above reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %]3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, geometrical non-visibility @code{%]3@var{argument}} special text Period of geometrical non-visibility, Moon's upper limb below reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %]*3@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, geometrical non-visibility @code{%]*3@var{argument}} special text Period of geometrical non-visibility, Moon's upper limb below reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %(4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, rise time @code{%(4@var{argument}} special text Rise time of Moon's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %(*4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, rise time @code{%(*4@var{argument}} special text Rise time of Moon's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %)4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, set time @code{%)4@var{argument}} special text Set time of Moon's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %)*4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, set time @code{%)*4@var{argument}} special text Set time of Moon's center in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %[4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, visibility @code{%[4@var{argument}} special text Period of visibility, Moon's center above reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %[*4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, visibility @code{%[*4@var{argument}} special text Period of visibility, Moon's center above reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %]4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, non-visibility @code{%]4@var{argument}} special text Period of non-visibility, Moon's center below reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %]*4@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's center, non-visibility @code{%]*4@var{argument}} special text Period of non-visibility, Moon's center below reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %(5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, standard rise time @code{%(5@var{argument}} special text Standard rise time of Moon's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %(*5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, standard rise time @code{%(*5@var{argument}} special text Standard rise time of Moon's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %)5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, standard set time @code{%)5@var{argument}} special text Standard set time of Moon's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %)*5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, standard set time @code{%)*5@var{argument}} special text Standard set time of Moon's upper limb in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %[5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, visibility standard @code{%[5@var{argument}} special text Period of standard visibility, Moon's upper limb above reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %[*5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, visibility standard @code{%[*5@var{argument}} special text Period of standard visibility, Moon's upper limb above reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %]5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, non-visibility standard @code{%]5@var{argument}} special text Period of standard non-visibility, Moon's upper limb below reference altitude, in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %]*5@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon's upper limb, non-visibility standard @code{%]*5@var{argument}} special text Period of standard non-visibility, Moon's upper limb below reference altitude, in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %(6@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)6@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric horizontal parallax @code{%(6@var{argument}} special text @cindex Moon, topocentric horizontal parallax @code{%)6@var{argument}} special text Topocentric horizontal parallax of Moon in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*6@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*6@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric horizontal parallax @code{%(*6@var{argument}} special text @cindex Moon, topocentric horizontal parallax @code{%)*6@var{argument}} special text Topocentric horizontal parallax of Moon in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(7@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)7@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric semidiameter @code{%(7@var{argument}} special text @cindex Moon, topocentric semidiameter @code{%)7@var{argument}} special text Topocentric semidiameter of Moon in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*7@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*7@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric semidiameter @code{%(*7@var{argument}} special text @cindex Moon, topocentric semidiameter @code{%)*7@var{argument}} special text Topocentric semidiameter of Moon in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(8@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)8@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %(*8@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*8@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric brightness @code{%(8@var{argument}} special text @cindex Moon, topocentric brightness @code{%)8@var{argument}} special text @cindex Moon, topocentric brightness @code{%(*8@var{argument}} special text @cindex Moon, topocentric brightness @code{%)*8@var{argument}} special text Topocentric brightness of Moon in magnitude units in @w{@code{+@r{|}-@var{n}.@var{n}@dots{}}} format @item %(9@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)9@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric phase angle @code{%(9@var{argument}} special text @cindex Moon, topocentric phase angle @code{%)9@var{argument}} special text Topocentric phase angle of Moon in range @w{0.0@dots{}1.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(*9@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*9@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric phase angle @code{%(*9@var{argument}} special text @cindex Moon, topocentric phase angle @code{%)*9@var{argument}} special text Topocentric phase angle of Moon as percent value in range @w{0.0@dots{}100.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(a@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)a@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric elevation @code{%(a@var{argument}} special text @cindex Moon, topocentric elevation @code{%)a@var{argument}} special text Topocentric elevation of Moon in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*a@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*a@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric elevation @code{%(*a@var{argument}} special text @cindex Moon, topocentric elevation @code{%)*a@var{argument}} special text Topocentric elevation of Moon in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(b@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)b@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric azimuth @code{%(b@var{argument}} special text @cindex Moon, topocentric azimuth @code{%)b@var{argument}} special text Topocentric azimuth of Moon in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*b@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*b@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric azimuth @code{%)*b@var{argument}} special text @cindex Moon, topocentric azimuth @code{%(*b@var{argument}} special text Topocentric azimuth of Moon in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(c@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)c@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric declination @code{%(c@var{argument}} special text @cindex Moon, topocentric declination @code{%)c@var{argument}} special text Topocentric declination of Moon in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*c@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*c@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric declination @code{%(*c@var{argument}} special text @cindex Moon, topocentric declination @code{%)*c@var{argument}} special text Topocentric declination of Moon in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(d@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)d@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric ecliptic longitude @code{%(d@var{argument}} special text @cindex Moon, topocentric ecliptic longitude @code{%)d@var{argument}} special text Topocentric ecliptic longitude of Moon in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*d@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*d@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric ecliptic longitude @code{%(*d@var{argument}} special text @cindex Moon, topocentric ecliptic longitude @code{%)*d@var{argument}} special text Topocentric ecliptic longitude of Moon in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(e@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)e@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric ecliptic latitude @code{%(e@var{argument}} special text @cindex Moon, topocentric ecliptic latitude @code{%)e@var{argument}} special text Topocentric ecliptic latitude of Moon in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*e@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*e@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric ecliptic latitude @code{%(*e@var{argument}} special text @cindex Moon, topocentric ecliptic latitude @code{%)*e@var{argument}} special text Topocentric ecliptic latitude of Moon in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(f@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)f@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric right ascension @code{%(f@var{argument}} special text @cindex Moon, topocentric right ascension @code{%)f@var{argument}} special text Topocentric right ascension of Moon as time value in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %(*f@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*f@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric right ascension @code{%(*f@var{argument}} special text @cindex Moon, topocentric right ascension @code{%)*f@var{argument}} special text Topocentric right ascension of Moon as time value in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %(g@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)g@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric distance @code{%(g@var{argument}} special text @cindex Moon, topocentric distance @code{%)g@var{argument}} special text Topocentric distance of Moon in mean Earth equator radii in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(*g@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*g@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric distance @code{%(*g@var{argument}} special text @cindex Moon, topocentric distance @code{%)*g@var{argument}} special text Topocentric distance of Moon in kilometers in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(h@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)h@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric elongation @code{%(h@var{argument}} special text @cindex Moon, topocentric elongation @code{%)h@var{argument}} special text Topocentric elongation of Moon in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*h@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*h@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric elongation @code{%(*h@var{argument}} special text @cindex Moon, topocentric elongation @code{%)*h@var{argument}} special text Topocentric elongation of Moon in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(i@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)i@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, refraction @code{%(i@var{argument}} special text @cindex Moon, refraction @code{%)i@var{argument}} special text Atmospheric refraction in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*i@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*i@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, refraction @code{%(*i@var{argument}} special text @cindex Moon, refraction @code{%)*i@var{argument}} special text Atmospheric refraction in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(j@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)j@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric horizontal parallax @code{%(j@var{argument}} special text @cindex Moon, geocentric horizontal parallax @code{%)j@var{argument}} special text Geocentric horizontal parallax of Moon in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*j@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*j@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric horizontal parallax @code{%(*j@var{argument}} special text @cindex Moon, geocentric horizontal parallax @code{%)*j@var{argument}} special text Geocentric horizontal parallax of Moon in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(k@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)k@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric semidiameter @code{%(k@var{argument}} special text @cindex Moon, geocentric semidiameter @code{%)k@var{argument}} special text Geocentric semidiameter of Moon in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*k@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*k@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric semidiameter @code{%(*k@var{argument}} special text @cindex Moon, geocentric semidiameter @code{%)*k@var{argument}} special text Geocentric semidiameter of Moon in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(l@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)l@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %(*l@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*l@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric brightness @code{%(l@var{argument}} special text @cindex Moon, geocentric brightness @code{%)l@var{argument}} special text @cindex Moon, geocentric brightness @code{%(*l@var{argument}} special text @cindex Moon, geocentric brightness @code{%)*l@var{argument}} special text Geocentric brightness of Moon in magnitude units in @w{@code{+@r{|}-@var{n}.@var{n}@dots{}}} format @item %(m@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)m@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric phase angle @code{%(m@var{argument}} special text @cindex Moon, geocentric phase angle @code{%)m@var{argument}} special text Geocentric phase angle of Moon in range @w{0.0@dots{}1.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(*m@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*m@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric phase angle @code{%(*m@var{argument}} special text @cindex Moon, geocentric phase angle @code{%)*m@var{argument}} special text Geocentric phase angle of Moon as percent value in range @w{0.0@dots{}100.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(n@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)n@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric elevation @code{%(n@var{argument}} special text @cindex Moon, geocentric elevation @code{%)n@var{argument}} special text Geocentric elevation of Moon in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*n@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*n@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric elevation @code{%(*n@var{argument}} special text @cindex Moon, geocentric elevation @code{%)*n@var{argument}} special text Geocentric elevation of Moon in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(o@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)o@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric azimuth @code{%(o@var{argument}} special text @cindex Moon, geocentric azimuth @code{%)o@var{argument}} special text Geocentric azimuth of Moon in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*o@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*o@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric azimuth @code{%)*o@var{argument}} special text @cindex Moon, geocentric azimuth @code{%(*o@var{argument}} special text Geocentric azimuth of Moon in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(p@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)p@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric declination @code{%(p@var{argument}} special text @cindex Moon, geocentric declination @code{%)p@var{argument}} special text Geocentric declination of Moon in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*p@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*p@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric declination @code{%(*p@var{argument}} special text @cindex Moon, geocentric declination @code{%)*p@var{argument}} special text Geocentric declination of Moon in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric ecliptic longitude @code{%(q@var{argument}} special text @cindex Moon, geocentric ecliptic longitude @code{%)q@var{argument}} special text Geocentric ecliptic longitude of Moon in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric ecliptic longitude @code{%(*q@var{argument}} special text @cindex Moon, geocentric ecliptic longitude @code{%)*q@var{argument}} special text Geocentric ecliptic longitude of Moon in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(r@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)r@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric ecliptic latitude @code{%(r@var{argument}} special text @cindex Moon, geocentric ecliptic latitude @code{%)r@var{argument}} special text Geocentric ecliptic latitude of Moon in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*r@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*r@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric ecliptic latitude @code{%(*r@var{argument}} special text @cindex Moon, geocentric ecliptic latitude @code{%)*r@var{argument}} special text Geocentric ecliptic latitude of Moon in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(s@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)s@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric right ascension @code{%(s@var{argument}} special text @cindex Moon, geocentric right ascension @code{%)s@var{argument}} special text Geocentric right ascension of Moon as time value in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %(*s@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*s@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric right ascension @code{%(*s@var{argument}} special text @cindex Moon, geocentric right ascension @code{%)*s@var{argument}} special text Geocentric right ascension of Moon as time value in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %(t@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)t@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric distance @code{%(t@var{argument}} special text @cindex Moon, geocentric distance @code{%)t@var{argument}} special text Geocentric distance of Moon in mean Earth equator radii in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(*t@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*t@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric distance @code{%(*t@var{argument}} special text @cindex Moon, geocentric distance @code{%)*t@var{argument}} special text Geocentric distance of Moon in kilometers in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(u@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)u@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric elongation @code{%(u@var{argument}} special text @cindex Moon, geocentric elongation @code{%)u@var{argument}} special text Geocentric elongation of Moon in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*u@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*u@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric elongation @code{%(*u@var{argument}} special text @cindex Moon, geocentric elongation @code{%)*u@var{argument}} special text Geocentric elongation of Moon in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(v@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)v@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %(*v@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*v@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, delta-t @code{%(v@var{argument}} special text @cindex Moon, delta-t @code{%)v@var{argument}} special text @cindex Moon, delta-t @code{%)*v@var{argument}} special text @cindex Moon, delta-t @code{%(*v@var{argument}} special text Delta-t in seconds in @w{@code{+@r{|}-@var{n}.@var{n}@dots{}}} format @item %(w@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)w@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, local sidereal time @code{%(w@var{argument}} special text @cindex Moon, local sidereal time @code{%)w@var{argument}} special text Local sidereal time in @w{@code{@var{hh}:@var{mm}}} @w{@emph{24-hours}} format @item %(*w@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*w@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, local sidereal time @code{%(*w@var{argument}} special text @cindex Moon, local sidereal time @code{%)*w@var{argument}} special text Local sidereal time in @w{@code{@var{hh}:@var{mm}}} @w{@emph{12-hours}} format with time suffix @item %(x@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)x@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, base time @code{%(x@var{argument}} special text @cindex Moon, base time @code{%)x@var{argument}} special text Base time as time value in hours and minutes in @w{@code{@var{hh}h@var{mm}'}} format @item %(*x@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*x@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, base time @code{%(*x@var{argument}} special text @cindex Moon, base time @code{%)*x@var{argument}} special text Base time as time value in decimal hours in @w{@code{@var{hh}.@var{h}@dots{}}} format @item %(y@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)y@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %(*y@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*y@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, Julian date @code{%(y@var{argument}} special text @cindex Moon, Julian date @code{%)y@var{argument}} special text @cindex Moon, Julian date @code{%(*y@var{argument}} special text @cindex Moon, Julian date @code{%)*y@var{argument}} special text Julian date in days in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(z@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)z@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %(*z@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*z@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, Julian Ephemeris date @code{%(z@var{argument}} special text @cindex Moon, Julian Ephemeris date @code{%)z@var{argument}} special text @cindex Moon, Julian Ephemeris date @code{%(*z@var{argument}} special text @cindex Moon, Julian Ephemeris date @code{%)*z@var{argument}} special text Julian Ephemeris date in days in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(A@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)A@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta topocentric elevation @code{%(A@var{argument}} special text @cindex Moon/Sun, delta topocentric elevation @code{%)A@var{argument}} special text Delta topocentric elevation of Moon/Sun in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*A@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*A@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta topocentric elevation @code{%(*A@var{argument}} special text @cindex Moon/Sun, delta topocentric elevation @code{%)*A@var{argument}} special text Delta topocentric elevation of Moon/Sun in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(B@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)B@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta topocentric azimuth @code{%(B@var{argument}} special text @cindex Moon/Sun, delta topocentric azimuth @code{%)B@var{argument}} special text Delta topocentric azimuth of Moon/Sun in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*B@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*B@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta topocentric azimuth @code{%(*B@var{argument}} special text @cindex Moon/Sun, delta topocentric azimuth @code{%)*B@var{argument}} special text Delta topocentric azimuth of Moon/Sun in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(C@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)C@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta geocentric elevation @code{%(C@var{argument}} special text @cindex Moon/Sun, delta geocentric elevation @code{%)C@var{argument}} special text Delta geocentric elevation of Moon/Sun in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*C@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*C@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta geocentric elevation @code{%(*C@var{argument}} special text @cindex Moon/Sun, delta geocentric elevation @code{%)*C@var{argument}} special text Delta geocentric elevation of Moon/Sun in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(D@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)D@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta geocentric azimuth @code{%(D@var{argument}} special text @cindex Moon/Sun, delta geocentric azimuth @code{%)D@var{argument}} special text Delta geocentric azimuth of Moon/Sun in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*D@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*D@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta geocentric azimuth @code{%(*D@var{argument}} special text @cindex Moon/Sun, delta geocentric azimuth @code{%)*D@var{argument}} special text Delta geocentric azimuth of Moon/Sun in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(E@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta topocentric elevation at standard moonrise time @code{%(E@var{argument}} special text Delta topocentric elevation of Moon/Sun at standard moonrise time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*E@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta topocentric elevation at standard moonrise time @code{%(*E@var{argument}} special text Delta topocentric elevation of Moon/Sun at standard moonrise time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %)E@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta topocentric elevation at standard moonset time @code{%)E@var{argument}} special text Delta topocentric elevation of Moon/Sun at standard moonset time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %)*E@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta topocentric elevation at standard moonset time @code{%)*E@var{argument}} special text Delta topocentric elevation of Moon/Sun at standard moonset time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(F@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta topocentric azimuth at standard moonrise time @code{%(F@var{argument}} special text Delta topocentric azimuth of Moon/Sun at standard moonrise time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*F@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta topocentric azimuth at standard moonrise time @code{%(*F@var{argument}} special text Delta topocentric azimuth of Moon/Sun at standard moonrise time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %)F@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta topocentric azimuth at standard moonset time @code{%)F@var{argument}} special text Delta topocentric azimuth of Moon/Sun at standard moonset time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %)*F@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta topocentric azimuth at standard moonset time @code{%)*F@var{argument}} special text Delta topocentric azimuth of Moon/Sun at standard moonset time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(G@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta geocentric elevation at standard moonrise time @code{%(G@var{argument}} special text Delta geocentric elevation of Moon/Sun at standard moonrise time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*G@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta geocentric elevation at standard moonrise time @code{%(*G@var{argument}} special text Delta geocentric elevation of Moon/Sun at standard moonrise time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %)G@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta geocentric elevation at standard moonset time @code{%)G@var{argument}} special text Delta geocentric elevation of Moon/Sun at standard moonset time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %)*G@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta geocentric elevation at standard moonset time @code{%)*G@var{argument}} special text Delta geocentric elevation of Moon/Sun at standard moonset time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(H@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta geocentric azimuth at standard moonrise time @code{%(H@var{argument}} special text Delta geocentric azimuth of Moon/Sun at standard moonrise time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*H@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta geocentric azimuth at standard moonrise time @code{%(*H@var{argument}} special text Delta geocentric azimuth of Moon/Sun at standard moonrise time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %)H@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta geocentric azimuth at standard moonset time @code{%)H@var{argument}} special text Delta geocentric azimuth of Moon/Sun at standard moonset time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %)*H@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta geocentric azimuth at standard moonset time @code{%)*H@var{argument}} special text Delta geocentric azimuth of Moon/Sun at standard moonset time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(I@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)I@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta astronomical midnight time @code{%(I@var{argument}} special text @cindex Moon/Sun, delta astronomical midnight time @code{%)I@var{argument}} special text Delta astronomical midnight time of Moon/Sun as time value in hours and minutes in @w{@code{+@r{|}-@var{hh}h@var{mm}'}} format @item %(*I@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*I@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta astronomical midnight time @code{%(*I@var{argument}} special text @cindex Moon/Sun, delta astronomical midnight time @code{%)*I@var{argument}} special text Delta astronomical midnight time of Moon/Sun as time value in decimal hours in @w{@code{+@r{|}-@var{hh}.@var{h}@dots{}}} format @item %(J@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)J@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta astronomical noon time @code{%(J@var{argument}} special text @cindex Moon/Sun, delta astronomical noon time @code{%)J@var{argument}} special text Delta astronomical noon time of Moon/Sun as time value in hours and minutes in @w{@code{+@r{|}-@var{hh}h@var{mm}'}} format @item %(*J@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*J@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta astronomical noon time @code{%(*J@var{argument}} special text @cindex Moon/Sun, delta astronomical noon time @code{%)*J@var{argument}} special text Delta astronomical noon time of Moon/Sun as time value in decimal hours in @w{@code{+@r{|}-@var{hh}.@var{h}@dots{}}} format @item %(K@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta standard rise time @code{%(K@var{argument}} special text Delta time standard rise of Moon/Sun at standard moonrise time as time value in hours and minutes in @w{@code{+@r{|}-@var{hh}h@var{mm}'}} format @item %(*K@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta standard rise time @code{%(*K@var{argument}} special text Delta time standard rise of Moon/Sun at standard moonrise time as time value in decimal hours in @w{@code{+@r{|}-@var{hh}.@var{h}@dots{}}} format @item %)K@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta standard set time @code{%)K@var{argument}} special text Delta time standard set of of Moon/Sun at standard moonset time as time value in hours and minutes in @w{@code{+@r{|}-@var{hh}h@var{mm}'}} format @item %)*K@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon/Sun, delta standard set time @code{%)*K@var{argument}} special text Delta time standard set of of Moon/Sun at standard moonset time as time value in decimal hours in @w{@code{+@r{|}-@var{hh}.@var{h}@dots{}}} format @item %(L@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)L@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric elevation at Moon's astronomical midnight time @code{%(L@var{argument}} special text @cindex Moon, topocentric elevation at Moon's astronomical midnight time @code{%)L@var{argument}} special text Topocentric elevation of Moon at Moon's astronomical midnight time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*L@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*L@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric elevation at Moon's astronomical midnight time @code{%(*L@var{argument}} special text @cindex Moon, topocentric elevation at Moon's astronomical midnight time @code{%)*L@var{argument}} special text Topocentric elevation of Moon at Moon's astronomical midnight time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(M@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)M@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric phase angle at Moon's astronomical midnight time @code{%(M@var{argument}} special text @cindex Moon, topocentric phase angle at Moon's astronomical midnight time @code{%)M@var{argument}} special text Topocentric phase angle of Moon at Moon's astronomical midnight time in range @w{0.0@dots{}1.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(*M@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*M@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric phase angle at Moon's astronomical midnight time @code{%(*M@var{argument}} special text @cindex Moon, topocentric phase angle at Moon's astronomical midnight time @code{%)*M@var{argument}} special text Topocentric phase angle of Moon at Moon's astronomical midnight time as percent value in range @w{0.0@dots{}100.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(N@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)N@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric elevation at Moon's astronomical noon time @code{%(N@var{argument}} special text @cindex Moon, topocentric elevation at Moon's astronomical noon time @code{%)N@var{argument}} special text Topocentric elevation of Moon at Moon's astronomical noon time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*N@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*N@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric elevation at Moon's astronomical noon time @code{%(*N@var{argument}} special text @cindex Moon, topocentric elevation at Moon's astronomical noon time @code{%)*N@var{argument}} special text Topocentric elevation of Moon at Moon's astronomical noon time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(O@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)O@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric phase angle at Moon's astronomical noon time @code{%(O@var{argument}} special text @cindex Moon, topocentric phase angle at Moon's astronomical noon time @code{%)O@var{argument}} special text Topocentric phase angle of Moon at Moon's astronomical noon time in range @w{0.0@dots{}1.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(*O@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*O@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric phase angle at Moon's astronomical noon time @code{%(*O@var{argument}} special text @cindex Moon, topocentric phase angle at Moon's astronomical noon time @code{%)*O@var{argument}} special text Topocentric phase angle of Moon at Moon's astronomical noon time as percent value in range @w{0.0@dots{}100.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(K@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric elevation at standard rise time @code{%(P@var{argument}} special text Topocentric elevation of Moon at standard moonrise time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*P@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric elevation at standard rise time @code{%(*P@var{argument}} special text Topocentric elevation of Moon at standard moonrise time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %)P@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric elevation at standard set time @code{%)P@var{argument}} special text Topocentric elevation of Moon at standard moonset time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %)*P@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric elevation at standard set time @code{%)*P@var{argument}} special text Topocentric elevation of Moon at standard moonset time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(Q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric azimuth at standard rise time @code{%(Q@var{argument}} special text Topocentric azimuth of Moon at standard moonrise time in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*Q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric azimuth at standard rise time @code{%(*Q@var{argument}} special text Topocentric azimuth of Moon at standard moonrise time in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %)Q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric azimuth at standard set time @code{%)Q@var{argument}} special text Topocentric azimuth of Moon at standard moonset time in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %)*Q@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric azimuth at standard set time @code{%)*Q@var{argument}} special text Topocentric azimuth of Moon at standard moonset time in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(R@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric phase angle at standard rise time @code{%(R@var{argument}} special text Topocentric phase angle of Moon at standard moonrise time in range @w{0.0@dots{}1.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(*R@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric phase angle at standard rise time @code{%(*R@var{argument}} special text Topocentric phase angle of Moon at standard moonrise time as percent value in range @w{0.0@dots{}100.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %)R@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric phase angle at standard set time @code{%)R@var{argument}} special text Topocentric phase angle of Moon at standard moonset time in range @w{0.0@dots{}1.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %)*R@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, topocentric phase angle at standard set time @code{%)*R@var{argument}} special text Topocentric phase angle of Moon at standard moonset time as percent value in range @w{0.0@dots{}100.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(S@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)S@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric elevation at Moon's astronomical midnight time @code{%(S@var{argument}} special text @cindex Moon, geocentric elevation at Moon's astronomical midnight time @code{%)S@var{argument}} special text Geocentric elevation of Moon at Moon's astronomical midnight time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*S@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*S@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric elevation at Moon's astronomical midnight time @code{%(*S@var{argument}} special text @cindex Moon, geocentric elevation at Moon's astronomical midnight time @code{%)*S@var{argument}} special text Geocentric elevation of Moon at Moon's astronomical midnight time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(T@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)T@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric phase angle at Moon's astronomical midnight time @code{%(T@var{argument}} special text @cindex Moon, geocentric phase angle at Moon's astronomical midnight time @code{%)T@var{argument}} special text Geocentric phase angle of Moon at Moon's astronomical midnight time in range @w{0.0@dots{}1.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(*T@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*T@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric phase angle at Moon's astronomical midnight time @code{%(*T@var{argument}} special text @cindex Moon, geocentric phase angle at Moon's astronomical midnight time @code{%)*T@var{argument}} special text Geocentric phase angle of Moon at Moon's astronomical midnight time as percent value in range @w{0.0@dots{}100.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(U@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)U@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric elevation at Moon's astronomical noon time @code{%(U@var{argument}} special text @cindex Moon, geocentric elevation at Moon's astronomical noon time @code{%)U@var{argument}} special text Geocentric elevation of Moon at Moon's astronomical noon time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*U@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*U@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric elevation at Moon's astronomical noon time @code{%(*U@var{argument}} special text @cindex Moon, geocentric elevation at Moon's astronomical noon time @code{%)*U@var{argument}} special text Geocentric elevation of Moon at Moon's astronomical noon time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(V@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)V@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric phase angle at Moon's astronomical noon time @code{%(V@var{argument}} special text @cindex Moon, geocentric phase angle at Moon's astronomical noon time @code{%)V@var{argument}} special text Geocentric phase angle of Moon at Moon's astronomical noon time in range @w{0.0@dots{}1.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(*V@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @itemx %)*V@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric phase angle at Moon's astronomical noon time @code{%(*V@var{argument}} special text @cindex Moon, geocentric phase angle at Moon's astronomical noon time @code{%)*V@var{argument}} special text Geocentric phase angle of Moon at Moon's astronomical noon time as percent value in range @w{0.0@dots{}100.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(W@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric elevation at standard rise time @code{%(W@var{argument}} special text Geocentric elevation of Moon at standard moonrise time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %(*W@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric elevation at standard rise time @code{%(*W@var{argument}} special text Geocentric elevation of Moon at standard moonrise time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %)W@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric elevation at standard set time @code{%)W@var{argument}} special text Geocentric elevation of Moon at standard moonset time in degrees and arcminutes in @w{@code{+@r{|}-@var{ddd}d@var{mm}'}} format @item %)*W@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric elevation at standard set time @code{%)*W@var{argument}} special text Geocentric elevation of Moon at standard moonset time in decimal degrees in @w{@code{+@r{|}-@var{ddd}.@var{d}@dots{}}} format @item %(X@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric azimuth at standard rise time @code{%(X@var{argument}} special text Geocentric azimuth of Moon at standard moonrise time in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %(*X@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric azimuth at standard rise time @code{%(*X@var{argument}} special text Geocentric azimuth of Moon at standard moonrise time in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %)X@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric azimuth at standard set time @code{%)X@var{argument}} special text Geocentric azimuth of Moon at standard moonset time in degrees and arcminutes in @w{@code{@var{ddd}d@var{mm}'}} format @item %)*X@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric azimuth at standard set time @code{%)*X@var{argument}} special text Geocentric azimuth of Moon at standard moonset time in decimal degrees in @w{@code{@var{ddd}.@var{d}@dots{}}} format @item %(Y@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric phase angle at standard rise time @code{%(Y@var{argument}} special text Geocentric phase angle of Moon at standard moonrise time in range @w{0.0@dots{}1.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %(*Y@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric phase angle at standard rise time @code{%(*Y@var{argument}} special text Geocentric phase angle of Moon at standard moonrise time as percent value in range @w{0.0@dots{}100.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %)Y@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric phase angle at standard set time @code{%)Y@var{argument}} special text Geocentric phase angle of Moon at standard moonset time in range @w{0.0@dots{}1.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @item %)*Y@var{@acronym{ISO}-6709:1983-co-ordinate}@r{[},@r{[}+@r{|}-@r{]}@var{mmmm}@r{|}@var{hh}:@r{[}@var{mm}@r{]]} @cindex Moon, geocentric phase angle at standard set time @code{%)*Y@var{argument}} special text Geocentric phase angle of Moon at standard moonset time as percent value in range @w{0.0@dots{}100.0} in @w{@code{@var{n}.@var{n}@dots{}}} format @end table @item @code{%@r{[}@var{format}@r{]}-@r{[}@var{argument}@r{]}} @cindex Environment variable @code{%@r{[}@var{format}@r{]}-@r{[}@var{argument}@r{]}} special text Contents of environment variable @item @code{%@r{[}@var{format}@r{]}@var{?}} difference value @cindex Difference value @code{%@r{[}@var{format}@r{]}@var{?}} special texts @table @code @item %d @cindex Relative day number @code{%d} special text Relative day number @item %w @cindex Relative week number @code{%w} special text Relative week number @item %m @cindex Relative month number @code{%m} special text Relative month number @item %y @cindex Relative year number @code{%y} special text Relative year number @end table @item @code{%@var{?}} highlighting @cindex Highlighting @code{%@var{?}} special texts @table @code @item %1 @cindex Start of highlighting sequence 1 @code{%1} special text Start of highlighting sequence 1 @item %2 @cindex End of highlighting sequence 1 @code{%2} special text End of highlighting sequence 1 @item %3 @cindex Start of highlighting sequence 2 @code{%3} special text Start of highlighting sequence 2 @item %4 @cindex End of highlighting sequence 2 @code{%4} special text End of highlighting sequence 2 @item %5 @cindex Start of highlighting sequence 1 @code{%5} special text Start of highlighting sequence 1 if a fixed date is on today's date @item %6 @cindex End of highlighting sequence 1 @code{%6} special text End of highlighting sequence 1 if a fixed date is on today's date @item %7 @cindex Start of highlighting sequence 2 @code{%7} special text Start of highlighting sequence 2 if a fixed date is on a legal holiday date @item %8 @cindex End of highlighting sequence 2 @code{%8} special text End of highlighting sequence 2 if a fixed date is on a legal holiday date @item %9 @cindex Start of highlighting sequence 1 or 2 @code{%9} special text Start of highlighting sequence 1 if a fixed date is on today's date, otherwise start of highlighting sequence 2 if a fixed date is on a legal holiday date @item %0 @cindex End of highlighting sequence 1 or 2 @code{%0} special text End of highlighting sequence 1 if a fixed date is on today's date, otherwise end of highlighting sequence 2 if a fixed date is on a legal holiday date @end table @item @code{%!@r{[}@var{argument}@r{]}} @cindex Shell command @code{%!@r{[}@var{argument}@r{]}} special text Shell executes @var{argument} as a command @end table @node Obsolete Special Texts, Format Instruction, Special Texts Summary, Top @appendix Obsolete Special Texts and Format Elements @cindex Obsolete special texts and format elements @cindex Special texts, obsolete @cindex Format elements, obsolete @menu * Table of Obsolete Special Texts:: * Table of Obsolete Date Format Elements:: * Table of Obsolete Date Formats:: @end menu Because Gcal @value{GCAL-VERSION} is able to represent most special texts which may occur in the text part of a resource file line (@pxref{Special Texts, , Description of all @code{%@var{?}}@dots{} Special Texts}), and most of the format elements as they may be used in the date format text of the @option{--date-format} @xref{x-date-format, , Calendar option @option{--date-format=de@r{|}us@r{|}gb@r{|}@var{text}}}, by using a format instruction, some of them ---mainly introduced in the Gcal versions 2.20 and 2.40--- are obsolete now. The following complete tables of all these obsolete special texts respectively format elements with their new representation, as used by Gcal @value{GCAL-VERSION} now, show the changes made. @page @node Table of Obsolete Special Texts, Table of Obsolete Date Format Elements, Obsolete Special Texts, Obsolete Special Texts @appendixsec Table of Obsolete Special Texts @tbindex Obsolete special texts @tbindex Special texts, obsolete @cindex Table of obsolete special texts @cindex Obsolete special texts, table @cindex Special texts This table opposes all obsolete special texts as they may be used in the text part of a resource file line (@pxref{Special Texts, , Description of all @code{%@var{?}}@dots{} Special Texts}), and their new representation, as used by Gcal @value{GCAL-VERSION} now: @iftex @sp 1 @end iftex @multitable @columnfractions .60 .18 .04 .18 @item @strong{Symbolic name} @tab @strong{Old-style} @tab @tab @strong{New-style} @item @ @item %complete weekday name @tab @code{%o} @tab @equiv{} @tab @code{%K} @item %3-letter weekday name @tab @code{%O} @tab @equiv{} @tab @code{%>3#K} @item %2-letter weekday name @tab @code{%K} @tab @equiv{} @tab @code{%>2#K} @item %weekday number (Mon=1@dots{}Sun=7) @tab @code{%S} @tab @equiv{} @tab @code{%W} @item %weekday number (Mon=1@dots{}Sun=7) @var{ONS} @tab @code{%I} @tab @equiv{} @tab @code{%>1&*W} @item %weekday number (Mon=0@dots{}Sun=6) @var{ONS} @tab @code{%J} @tab @equiv{} @tab @code{%>1&*E} @item %weekday number (Sun=1@dots{}Sat=7) @tab @code{%(} @tab @equiv{} @tab @code{%I} @item %weekday number (Sun=1@dots{}Sat=7) @var{ONS} @tab @code{%<} @tab @equiv{} @tab @code{%>1&*I} @item %weekday number (Sun=0@dots{}Sat=6) @tab @code{%)} @tab @equiv{} @tab @code{%J} @item %weekday number (Sun=0@dots{}Sat=6) @var{ONS} @tab @code{%>} @tab @equiv{} @tab @code{%>1&*J} @item %weekday number (Mon=1@dots{}Sun=7) @var{FLX} @tab @code{%[} @tab @equiv{} @tab @code{%S} @item %weekday number (Mon=1@dots{}Sun=7) @var{FLX} @var{ONS} @tab @code{%@{} @tab @equiv{} @tab @code{%>1&*S} @item %weekday number (Mon=0@dots{}Sun=6) @var{FLX} @tab @code{%]} @tab @equiv{} @tab @code{%T} @item %weekday number (Mon=0@dots{}Sun=6) @var{FLX} @var{ONS} @tab @code{%@}} @tab @equiv{} @tab @code{%>1&*T} @item %day-of-year number @tab @code{%+} @tab @equiv{} @tab @code{%N} @item %day-of-year number @var{+LZ} @tab @code{%*} @tab @equiv{} @tab @code{%>03*N} @item %day-of-year number @var{ONS} @tab @code{%&} @tab @equiv{} @tab @code{%>1&*N} @item %day-of-year number @var{+LZ} @var{ONS} @tab @code{%#} @tab @equiv{} @tab @code{%>03&*N} @item %day number @var{+LZ} @tab @code{%N} @tab @equiv{} @tab @code{%>02*D} @item %day number @var{ONS} @tab @code{%s} @tab @equiv{} @tab @code{%>1&*D} @item %day number @var{+LZ} @var{ONS} @tab @code{%u} @tab @equiv{} @tab @code{%>02&*D} @item %complete month name @tab @code{%M} @tab @equiv{} @tab @code{%U} @item %3-letter month name @tab @code{%T} @tab @equiv{} @tab @code{%>3#U} @item %month number @tab @code{%U} @tab @equiv{} @tab @code{%M} @item %month number @var{+LZ} @tab @code{%W} @tab @equiv{} @tab @code{%>02*M} @item %month number @var{ONS} @tab @code{%z} @tab @equiv{} @tab @code{%>1&*M} @item %month number @var{+LZ} @var{ONS} @tab @code{%Z} @tab @equiv{} @tab @code{%>02&*M} @item %complete year number @var{+LZ} @tab @code{%=} @tab @equiv{} @tab @code{%>04*Y} @item %age value (birthday) number @tab @code{%b} @tab @equiv{} @tab @code{%B} @item %age value (birthday) number @var{ONS} @tab @code{%B} @tab @equiv{} @tab @code{%>1&*B} @item %moon phase @tab @code{%-} @tab @equiv{} @tab @code{%O} @item %moon phase @var{+LZ} @tab @code{%_} @tab @equiv{} @tab @code{%>03*O} @item %moon phase text graphics image @tab @code{%:} @tab @equiv{} @tab @code{%Z} @end multitable @noindent Legend: @multitable @columnfractions .05 .05 .9 @item @var{+LZ} @tab @equiv{} @tab With leading zero(es) @item @var{FLX} @tab @equiv{} @tab Flexible starting day of week (@pxref{x-starting-day, , Calendar option @option{--starting-day=@var{argument}}}) @item @var{ONS} @tab @equiv{} @tab With Ordinal Number suffix @end multitable @page @node Table of Obsolete Date Format Elements, Table of Obsolete Date Formats, Table of Obsolete Special Texts, Obsolete Special Texts @appendixsec Table of Obsolete Date Format Elements @tbindex Obsolete individual date format elements @tbindex Date format elements, obsolete individual @cindex Table of obsolete date format elements @cindex Obsolete date format elements, table @cindex Date format elements @cindex Date format texts, individual @cindex Individual date format texts @cindex Obsolete date format texts, individual @cindex Obsolete individual date format texts This table opposes all obsolete date format elements as they may be used in the date format text of the @option{--date-format} option (@pxref{x-date-format, , Calendar option @option{--date-format=de@r{|}us@r{|}gb@r{|}@var{text}}}), and their new representation, as used by Gcal @value{GCAL-VERSION} now: @iftex @sp 2 @end iftex @multitable @columnfractions .5 .18 .04 .28 @item @strong{Symbolic name} @tab @strong{Old-style} @tab @tab @strong{New-style} @item @ @item %day number @tab @code{%d} @tab @equiv{} @tab @code{%>02*D} @item %day number @var{+LS} @tab @code{%D} @tab @equiv{} @tab @code{%>2*D} @item %day number @var{+LZ} @var{ONS} @tab @code{%u} @tab @equiv{} @tab @code{%02&*D} @item %day number @var{+LS} @var{ONS} @tab @code{%U} @tab @equiv{} @tab @code{%>2&*D} @item %complete month name @tab @code{%B} @tab @equiv{} @tab @code{%U} @item %3-letter month name @tab @code{%b} @tab @equiv{} @tab @code{%<3#U} @item %month number @var{+LZ} @tab @code{%m} @tab @equiv{} @tab @code{%>02*M} @item %month number @var{+LS} @tab @code{%M} @tab @equiv{} @tab @code{%>2*M} @item %complete year number @var{+LZ} @tab @code{%y} @tab @equiv{} @tab @code{%>04*Y} @item %complete year number @var{+LZ} @tab @code{%Y} @tab @equiv{} @tab @code{%>4*Y} @item %last-2-digits year number @var{+LZ} @tab @code{%z} @tab @equiv{} @tab @code{%>02#Y} @item %last-2-digits year number @var{+LS} @tab @code{%Z} @tab @equiv{} @tab @code{%>2#Y} @item %complete weekday name @tab @code{%A} @tab @equiv{} @tab @code{%K} @item %3-letter weekday name @tab @code{%W} @tab @equiv{} @tab @code{%<3#K} @item %2-letter weekday name @tab @code{%w} @tab @equiv{} @tab @code{%<2#K} @end multitable @noindent Legend: @multitable @columnfractions .05 .05 .9 @item @var{+LZ} @tab @equiv{} @tab With leading zero(es) @item @var{+LS} @tab @equiv{} @tab With leading space(s) @item @var{ONS} @tab @equiv{} @tab With Ordinal Number suffix @end multitable @node Table of Obsolete Date Formats, , Table of Obsolete Date Format Elements, Obsolete Special Texts @appendixsec Table of Obsolete Date Formats @tbindex Obsolete fixed date formats @tbindex Date formats, obsolete fixed @cindex Table of obsolete date formats @cindex Obsolete date formats, table @cindex Format elements @cindex Obsolete fixed default date format texts, table @cindex Table of obsolete fixed default date format texts @cindex Date format texts, fixed default @cindex Fixed default date format texts @cindex Obsolete date format texts, fixed default @cindex Obsolete fixed default date format texts This table opposes all obsolete date format texts as they may be used in the fixed defaults of the country specific date formats of the @option{--date-format} option for German users, U.S.@: american users and users in Great Britain (@pxref{x-date-format, , Calendar option @option{--date-format=de@r{|}us@r{|}gb@r{|}@var{text}}}), and their new representation, as used by Gcal @value{GCAL-VERSION} now: @iftex @sp 2 @end iftex @multitable @columnfractions .1 .3 .04 .56 @item @strong{CC} @tab @strong{Old-style} @tab @tab @strong{New-style} @item @ @item DE @tab @code{%w, %1%D%2 %b %y} @tab @equiv{} @tab @code{%<2#K, %1%>2*D%2 %<3#U %>04*Y} @item US @tab @code{%W, %b %1%U%2 %y} @tab @equiv{} @tab @code{%<3#K, %<3#U %1%>2&*D%2 %>04*Y} @item GB @tab @code{%W, %1%U%2 %b %y} @tab @equiv{} @tab @code{%<3#K, %1%>2&*D%2 %<3#U %>04*Y} @end multitable @node Format Instruction, Coding Scheme, Obsolete Special Texts, Top @appendix Format Instruction @tbindex Format Instruction @cindex Format instruction, description @cindex Description of format instruction Gcal @value{GCAL-VERSION} is able to represent text variables, special texts and date formats especially in a very comfortable and uniform manner by using a format instruction. Here comes the description of the format instruction components, now called @var{format} in the further context. In general, the template of a format instruction is: @iftex @sp 2 @end iftex @quotation @w{@var{alignment} @r{[}@var{sign}@r{] [}@var{zero}@r{]} @var{width} @r{[}@var{style}@r{]} @r{[}@var{suffix}@r{]} @var{format}} @end quotation @iftex @sp 2 @end iftex If a @var{format} of above mentioned template is used, its components must be specified in the above mentioned order, at which the definition of the components embraced by @w{@samp{[ ]}} is of course optional. The single components of the format instruction are assembled as follows: @iftex @sp 2 @end iftex @multitable @columnfractions .15 .85 @item @strong{Character} @tab @strong{Description of the components} @item @ @item @tab @var{Alignment} group (exactly one member must be defined): @item @code{<} @tab Field contents is placed at the left margin of the field by using the width @var{width} @item @code{:} @tab Field contents is placed in centered manner in the field by using the width @var{width} @item @code{>} @tab Field contents is placed at the right margin of the field by using the width @var{width} @item @ @item @tab @var{Sign} (may be defined): @item @code{+} @tab Numerical value is provided with leading sign @item @ @item @tab @var{Zero} (may be defined): @item @code{0} @tab Numerical value is filled with leading zero(es) @item @ @item @tab @var{Width} (must be defined): @item @var{n} @tab Field has the width @var{n} (actual range 1@dots{}256)@. @item @ @item @tab @var{Style} group (exactly one member may be defined): @item @code{u} @tab Field contents is converted to upper-case letters @item @code{l} @tab Field contents is converted to lower-case letters @item @code{w} @tab Field contents is converted to capitalized words @item @ @item @tab @var{Suffix} (may be defined): @item @code{&} @tab Numerical value is provided with an Ordinal Number suffix @item @ @item @tab @var{Format} group (exactly one member must be defined): @item @code{*} @tab Field contents is not cut after position @var{width} @item @code{#} @tab Field contents is cut after position @var{width} @end multitable @iftex @sp 2 @end iftex If a given @var{width} component is greater 256 but less than 999, a field width of 256 is assumed. But if a given @var{width} component is zero, this interrupts the interpretation phase of Gcal so that the complete @var{format} is not interpreted anymore and is therefore displayed respectively assigned as is. The same happens if a component is misspelled, given in wrong order, or one of the required components is unspecified. @iftex @sp 2 @end iftex Furthermore, a @var{style} component may be specified case-independently. @xref{x-translate-string, , Calendar option @option{--translate-string=@var{text}}}, for further annotations how the @var{style} component is used correctly. @node Coding Scheme, Environment Variables, Format Instruction, Top @appendix Coding Scheme @cindex Coding scheme of resource file @cindex Resource file, coding scheme @cindex Resource file, date part @menu * Coding Scheme Table 1:: * Coding Scheme Table 2:: @end menu The following coding scheme tables explain the relations between the @emph{date part} @w{(@var{yyyy}@dots{})} of a resource file line and the modifiers, the short-style option @w{@option{-c@r{|}C@r{[]}}} ---which is used for enabling the fixed date feature--- respectively the @w{@option{--period-of-fixed-dates=@var{argument}}} long-style option 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 @emph{fixed date} argument is given, it respects only those entries which have a definite relation to the @emph{fixed date} argument to avoid the output of redundant information! @xref{x-period-of-fixed-dates, , Fixed dates option @option{--period-of-fixed-dates=@var{argument}}}, for further details. @iftex @sp 2 @end iftex @noindent In the @emph{date part} @var{yyyy}@dots{}: @table @var @item yyyy represents any year number @w{(@code{0001@r{@dots{}}9999})@.} @item mm represents any month number @w{(@code{01@r{@dots{}}12}} or @code{99}) respectively any textual short month name with length of 3 characters (@code{Jan}, @code{Feb}@dots{})@. @item dd represents any day number @w{(@code{01@r{@dots{}}28}}, @code{29}, @code{30}, @code{31} or @code{99})@. @item www represents any textual short weekday name with length of 2@dots{}3 characters @w{(@code{Mon@r{@dots{}}Sun})@.} @item ? represents any case-insensitive single letter. @item n represents any positive integer number (one or more digits)@. @end table @page @node Coding Scheme Table 1, Coding Scheme Table 2, Coding Scheme, Coding Scheme @appendixsec Coding Scheme Table 1 @tbindex Date part, coding scheme 1 @tbindex Coding scheme 1, date part @cindex Coding Scheme Table 1 This table opposes all possible encode variations of a date given in the @emph{date part} of resource file with all fitting modifiers of the short-style option @w{@option{-c@r{|}C@r{[]}}}@. @iftex @sp 1 @end iftex @noindent @strong{Please note:}@* The @w{@option{-c},} @w{@option{-ct},} @w{@option{-c@var{n}d},} @w{@option{-c*d@r{|}w@var{n}@r{[}@var{www}@r{]}},} @w{@option{-c@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},} @w{@option{-c@var{mm}@var{dd}}} and @w{@option{-c@var{mm}@var{www}@var{n}}} options respect @strong{all} encode variations of the @emph{date part}! @iftex @sp 1 @end iftex @multitable @columnfractions .35 .65 @item @strong{Date part} @tab @strong{Short-style option @option{-c@r{|}C@r{[]}}} @item @ @item @code{00000000} @tab @w{@code{-c@var{n}+@r{|}-}} @item @code{000000@var{dd}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}}} @item @code{0000@var{mm}00} @tab @w{@code{-c@var{n}+@r{|}-}} @item @code{0000@var{mm}@var{dd}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}},} @w{@code{-cy@r{[}+@r{|}-@r{]}},} @w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},} @w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},} @w{@code{-cl@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},} @w{@code{-cl@var{mm}@var{dd}},} @w{@code{-cl@var{mm}@var{www}@var{n}}} @item @code{@var{yyyy}0000} @tab @w{@code{-c@var{n}+@r{|}-}} @item @code{@var{yyyy}00@var{dd}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}}} @item @code{@var{yyyy}@var{mm}00} @tab @w{@code{-c@var{n}+@r{|}-}} @item @code{@var{yyyy}@var{mm}@var{dd}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}},} @w{@code{-cy@r{[}+@r{|}-@r{]}},} @w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},} @w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},} @w{@code{-cl@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},} @w{@code{-cl@var{mm}@var{dd}},} @w{@code{-cl@var{mm}@var{www}@var{n}}} @item @code{000000@var{www}@var{n}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}}} @item @code{0000@var{mm}@var{www}@var{n}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}},} @w{@code{-cy@r{[}+@r{|}-@r{]}},} @w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},} @w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},} @w{@code{-cl@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},} @w{@code{-cl@var{mm}@var{dd}},} @w{@code{-cl@var{mm}@var{www}@var{n}}} @item @code{@var{yyyy}00@var{www}@var{n}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}}} @item @code{@var{yyyy}@var{mm}@var{www}@var{n}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}},} @w{@code{-cy@r{[}+@r{|}-@r{]}},} @w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},} @w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},} @w{@code{-cl@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},} @w{@code{-cl@var{mm}@var{dd}},} @w{@code{-cl@var{mm}@var{www}@var{n}}} @item @code{0000*d@var{n}@r{[}@var{www}@r{]}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}},} @w{@code{-cy@r{[}+@r{|}-@r{]}},} @w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},} @w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},} @w{@code{-cl@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},} @w{@code{-cl@var{mm}@var{dd}},} @w{@code{-cl@var{mm}@var{www}@var{n}}} @item @code{@var{yyyy}*d@var{n}@r{[}@var{www}@r{]}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}},} @w{@code{-cy@r{[}+@r{|}-@r{]}},} @w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},} @w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},} @w{@code{-cl@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},} @w{@code{-cl@var{mm}@var{dd}},} @w{@code{-cl@var{mm}@var{www}@var{n}}} @item @code{0000*w@var{n}@r{[}@var{www}@r{]}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}},} @w{@code{-cy@r{[}+@r{|}-@r{]}},} @w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},} @w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},} @w{@code{-cl@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},} @w{@code{-cl@var{mm}@var{dd}},} @w{@code{-cl@var{mm}@var{www}@var{n}}} @item @code{@var{yyyy}*w@var{n}@r{[}@var{www}@r{]}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}},} @w{@code{-cy@r{[}+@r{|}-@r{]}},} @w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},} @w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},} @w{@code{-cl@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},} @w{@code{-cl@var{mm}@var{dd}},} @w{@code{-cl@var{mm}@var{www}@var{n}}} @item @code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}},} @w{@code{-cy@r{[}+@r{|}-@r{]}},} @w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},} @w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},} @w{@code{-cl@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},} @w{@code{-cl@var{mm}@var{dd}},} @w{@code{-cl@var{mm}@var{www}@var{n}}} @item @code{@var{yyyy}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]}} @tab @w{@code{-c@var{n}w@r{|}+@r{|}-},} @w{@code{-cw@r{[}+@r{|}-@r{]}},} @w{@code{-cm@r{[}+@r{|}-@r{]}},} @w{@code{-cy@r{[}+@r{|}-@r{]}},} @w{@code{-cl@var{n}d@r{|}w@r{|}+@r{|}-},} @w{@code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}},} @w{@code{-cl@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}},} @w{@code{-cl@var{mm}@var{dd}},} @w{@code{-cl@var{mm}@var{www}@var{n}}} @end multitable @page @node Coding Scheme Table 2, , Coding Scheme Table 1, Coding Scheme @appendixsec Coding Scheme Table 2 @tbindex Date part, coding scheme 2 @tbindex Coding scheme 2, date part @cindex Coding Scheme Table 2 This table opposes all fitting modifiers of the short-style option @w{@option{-c@r{|}C@r{[]}}} with all possible encode variations of a date given in the @emph{date part} of resource file. @iftex @sp 2 @end iftex @multitable @columnfractions .35 .65 @item @strong{Short-style option @option{-c@r{|}C@r{[]}}} @tab @strong{Date part} @item @ @item @code{-c} @item @code{-ct} @item @code{-c@var{n}d@r{|}+@r{|}-} @item @code{-c@var{mm}@var{dd}} @item @code{-c@var{mm}@var{www}@var{n}} @item @code{-c*d@r{|}w@var{n}@r{[}@var{www}@r{]}} @item @code{-c@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}} @tab @w{@code{00000000},} @w{@code{0000@var{mm}00},} @w{@code{@var{yyyy}0000},} @w{@code{@var{yyyy}@var{mm}00},} @w{@code{000000@var{dd}},} @w{@code{0000@var{mm}@var{dd}},} @w{@code{@var{yyyy}00@var{dd}},} @w{@code{@var{yyyy}@var{mm}@var{dd}},} @w{@code{000000@var{www}@var{n}},} @w{@code{0000@var{mm}@var{www}@var{n}},} @w{@code{@var{yyyy}00@var{www}@var{n}},} @w{@code{@var{yyyy}@var{mm}@var{www}@var{n}},} @w{@code{0000*d@var{n}},} @w{@code{0000*d@var{n}@var{www}},} @w{@code{@var{yyyy}*d@var{n}},} @w{@code{@var{yyyy}*d@var{n}@var{www}},} @w{@code{0000*w@var{n}},} @w{@code{0000*w@var{n}@var{www}},} @w{@code{@var{yyyy}*w@var{n}},} @w{@code{@var{yyyy}*w@var{n}@var{www}},} @w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},} @w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}},} @w{@code{@var{yyyy}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},} @w{@code{@var{yyyy}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}}} @item @code{-c@var{n}w} @item @code{-cw@r{[}+@r{|}-@r{]}} @tab @w{@code{000000@var{dd}},} @w{@code{0000@var{mm}@var{dd}},} @w{@code{@var{yyyy}00@var{dd}},} @w{@code{@var{yyyy}@var{mm}@var{dd}},} @w{@code{000000@var{www}@var{n}},} @w{@code{0000@var{mm}@var{www}@var{n}},} @w{@code{@var{yyyy}00@var{www}@var{n}},} @w{@code{@var{yyyy}@var{mm}@var{www}@var{n}},} @w{@code{0000*d@var{n}},} @w{@code{0000*d@var{n}@var{www}},} @w{@code{@var{yyyy}*d@var{n}},} @w{@code{@var{yyyy}*d@var{n}@var{www}},} @w{@code{0000*w@var{n}},} @w{@code{0000*w@var{n}@var{www}},} @w{@code{@var{yyyy}*w@var{n}},} @w{@code{@var{yyyy}*w@var{n}@var{www}},} @w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},} @w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}},} @w{@code{@var{yyyy}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},} @w{@code{@var{yyyy}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}}} @item @code{-cm@r{[}+@r{|}-@r{]}} @tab @w{@code{000000@var{dd}},} @w{@code{0000@var{mm}@var{dd}},} @w{@code{@var{yyyy}00@var{dd}},} @w{@code{@var{yyyy}@var{mm}@var{dd}},} @w{@code{000000@var{www}@var{n}},} @w{@code{0000@var{mm}@var{www}@var{n}},} @w{@code{@var{yyyy}00@var{www}@var{n}},} @w{@code{@var{yyyy}@var{mm}@var{www}@var{n}},} @w{@code{0000*d@var{n}},} @w{@code{0000*d@var{n}@var{www}},} @w{@code{@var{yyyy}*d@var{n}},} @w{@code{@var{yyyy}*d@var{n}@var{www}},} @w{@code{0000*w@var{n}},} @w{@code{0000*w@var{n}@var{www}},} @w{@code{@var{yyyy}*w@var{n}},} @w{@code{@var{yyyy}*w@var{n}@var{www}},} @w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},} @w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}},} @w{@code{@var{yyyy}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},} @w{@code{@var{yyyy}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}}} @item @code{-cy@r{[}+@r{|}-@r{]}} @item @code{-cl@var{n}d@r{|}w@r{|}+@r{|}-} @item @code{-cl@var{mm}@var{dd}} @item @code{-cl@var{mm}@var{www}@var{n}} @item @code{-cl*d@r{|}w@var{n}@r{[}@var{www}@r{]}} @item @code{-cl@@@var{?}@r{[[}+@r{|}-@r{]}@var{n}@r{[}@var{www}@r{]]}} @tab @w{@code{0000@var{mm}@var{dd}},} @w{@code{@var{yyyy}@var{mm}@var{dd}},} @w{@code{0000@var{mm}@var{www}@var{n}},} @w{@code{@var{yyyy}@var{mm}@var{www}@var{n}},} @w{@code{0000*d@var{n}},} @w{@code{0000*d@var{n}@var{www}},} @w{@code{@var{yyyy}*d@var{n}},} @w{@code{@var{yyyy}*d@var{n}@var{www}},} @w{@code{0000*w@var{n}},} @w{@code{0000*w@var{n}@var{www}},} @w{@code{@var{yyyy}*w@var{n}},} @w{@code{@var{yyyy}*w@var{n}@var{www}},} @w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},} @w{@code{0000@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}},} @w{@code{@var{yyyy}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}},} @w{@code{@var{yyyy}@@@var{?}@r{[}+@r{|}-@r{]}@var{n}@var{www}}} @end multitable @node Environment Variables, Error Codes, Coding Scheme, Top @appendix Environment Variables @tbindex Environment variables @cindex Environment variables, table @cindex Table of all environment variables @cindex Respected environment variables, table @noindent Here is a table of all environment variables which are used by Gcal: @iftex @sp 2 @end iftex @table @env @item GCAL @itemx GCAL_OPT @cindex Environment variable, @env{GCAL} @cindex @env{GCAL} environment variable @cindex Environment variable, @env{GCAL_OPT} @cindex @env{GCAL_OPT} environment variable @vindex GCAL @vindex GCAL_OPT @anchor{x-GCAL} Flags which are passed to the Gcal program automatically. @item GCAL_COLUMNS @itemx COLUMNS @cindex Environment variable, @env{GCAL_COLUMNS} @cindex Environment variable, @env{COLUMNS} @cindex @env{GCAL_COLUMNS} environment variable @cindex @env{COLUMNS} environment variable @vindex GCAL_COLUMNS @vindex COLUMNS @anchor{x-GCAL_COLUMNS} @anchor{x-COLUMNS} Sets the number of columns on the screen. Takes precedence over the number of columns specified by the @env{TERM} environment variable or the system itself. @item GCAL_DATE_FORMAT @cindex Environment variable, @env{GCAL_DATE_FORMAT} @cindex @env{GCAL_DATE_FORMAT} environment variable @vindex GCAL_DATE_FORMAT @anchor{x-GCAL_DATE_FORMAT} Contains the date format text which defines the ordering of a displayed date. Takes precedence over the default date format text. @item GCAL_LINES @itemx LINES @cindex Environment variable, @env{GCAL_LINES} @cindex Environment variable, @env{LINES} @cindex @env{GCAL_LINES} environment variable @cindex @env{LINES} environment variable @vindex GCAL_LINES @vindex LINES @anchor{x-GCAL_LINES} @anchor{x-LINES} Sets the number of lines on the screen. Takes precedence over the number of lines specified by the @env{TERM} environment variable or the system itself. @item GCAL_SYS_DATADIR @cindex Environment variable, @env{GCAL_SYS_DATADIR} @cindex @env{GCAL_SYS_DATADIR} environment variable @cindex Public-access resource files @vindex GCAL_SYS_DATADIR @anchor{x-GCAL_SYS_DATADIR} Name of a file directory absolute to the @w{@emph{root}/@var{$prefix}} file directory, where the system-administrator stores common, @emph{public access} resource files (dates files)@. @item GCAL_USR_DATADIR @cindex Environment variable, @env{GCAL_USR_DATADIR} @cindex @env{GCAL_USR_DATADIR} environment variable @cindex Private-access resource files @vindex GCAL_USR_DATADIR @anchor{x-GCAL_USR_DATADIR} Name of a file directory relative to the @env{HOME} file directory, where the user stores personal, respectively @emph{private access} resource files (dates files)@. Takes precedence over @w{@env{GCAL_SYS_DATADIR}}@. @item GCALANSI @cindex Environment variable, @env{GCALANSI} @cindex @env{GCALANSI} environment variable @vindex GCALANSI @anchor{x-GCALANSI} If defined or set, @acronym{ANSI} escape highlighting sequences are used respectively substituted by default if no other highlighting sequences are defined by command line option or found in the Termcap library. @item GCALPATH @cindex Environment variable, @env{GCALPATH} @cindex @env{GCALPATH} environment variable @vindex GCALPATH @anchor{x-GCALPATH} (@samp{:}) colon-separated list of file directories which are searched to find the @file{.gcalrc} file. Takes precedence over @env{HOME}, @w{@env{GCAL_USR_DATADIR}} and @w{@env{GCAL_SYS_DATADIR}}@. @item GCALPROG @cindex @env{GCALPROG} environment variable @cindex Environment variable, @env{GCALPROG} @vindex GCALPROG @anchor{x-GCALPROG} Contains the file name of the executable Gcal program that is used by the Tcal program to call the Gcal program. Takes precedence over the file name @code{gcal} which is burned-in during the compilation step of the Tcal program. The @env{GCALPROG} environment variable must always be set if the Gcal program is installed under another name than the standard name @command{gcal}, otherwise Tcal is unable to execute the Gcal program automatically! @item HOME @cindex Environment variable, @env{HOME} @cindex @env{HOME} environment variable @vindex HOME @anchor{x-HOME} Name of the user's home file directory. This is used to find the @file{.gcalrc} file. Takes precedence over @w{@env{GCAL_USR_DATADIR}} and @w{@env{GCAL_SYS_DATADIR}}@. @item LANGUAGE @cindex Environment variable, @env{LANGUAGE} @cindex @env{LANGUAGE} environment variable @vindex LANGUAGE The national language and other cultural-specific conventions used by Gcal at run-time. Takes precedence over @w{@env{LC_ALL}}, @w{@env{LC_MESSAGES}} and @env{LANG}@. @item LC_ALL @cindex Environment variable, @env{LC_ALL} @cindex @env{LC_ALL} environment variable @vindex LC_ALL The national language and other cultural-specific conventions used by Gcal at run-time. Takes precedence over @w{@env{LC_MESSAGES}} and @env{LANG}@. @item LC_MESSAGES @cindex Environment variable, @env{LC_MESSAGES} @cindex @env{LC_MESSAGES} environment variable @vindex LC_MESSAGES The national language and other cultural-specific conventions used by Gcal at run-time. Takes precedence over @env{LANG}@. @item LANG @cindex Environment variable, @env{LANG} @cindex @env{LANG} environment variable @vindex LANG The national language and other cultural-specific conventions used by Gcal at run-time. @item LOGNAME @cindex Environment variable, @env{LOGNAME} @cindex @env{LOGNAME} environment variable @vindex LOGNAME @anchor{x-LOGNAME} The eMail address which is used if the mailing option is wanted. @xref{x-mail, , Global option @option{--mail@r{[}=@var{address}@r{]}}}, for more details. @item MAILPROG @cindex Environment variable, @env{MAILPROG} @cindex @env{MAILPROG} environment variable @vindex MAILPROG @anchor{x-MAILPROG} Name of the mailer program which is used if the mailing option is wanted. Takes precedence over the file name @code{mail} which is burned-in during the compilation step of the Gcal program. @xref{x-mail, , Global option @option{--mail@r{[}=@var{address}@r{]}}}, for more details. @item MAILTO @cindex Environment variable, @env{MAILTO} @cindex @env{MAILTO} environment variable @vindex MAILTO @anchor{x-MAILTO} The eMail address which is used if the mailing option is wanted. Takes precedence over @env{USER} and @env{LOGNAME}@. @xref{x-mail, , Global option @option{--mail@r{[}=@var{address}@r{]}}}, for more details. @item PAGER @cindex Environment variable, @env{PAGER} @cindex @env{PAGER} environment variable @vindex PAGER @anchor{x-PAGER} Name of the @emph{external pager} program which is used if the paging option is wanted. @xref{x-pager, , Global option @option{--pager}}, for more details. @item PATH @cindex Environment variable, @env{PATH} @cindex @env{PATH} environment variable @vindex PATH @anchor{x-PATH} (@samp{:}) colon-separated list of file directories which are searched to find the @emph{external pager} program. @xref{x-pager, , Global option @option{--pager}}, for more details. @item TERM @cindex Environment variable, @env{TERM} @cindex @env{TERM} environment variable @vindex TERM @anchor{x-TERM} The type of terminal on which the Gcal program is being run. @item TXT2GCALPROG @cindex @env{TXT2GCALPROG} environment variable @cindex Environment variable, @env{TXT2GCALPROG} @vindex TXT2GCALPROG @anchor{x-TXT2GCALPROG} Contains the file name of the executable Txt2gcal program that is used by the Gcal program to call the Txt2gcal program. Takes precedence over the file name @code{txt2gcal} which is burned-in during the compilation step of the Gcal program. The @env{TXT2GCALPROG} environment variable must always be set if the Txt2gcal program is installed under another name than the standard name @command{txt2gcal}, otherwise Gcal is unable to execute the Txt2gcal program automatically! @xref{Text variables}, for further details. @item TZ @cindex Environment variable, @env{TZ} @cindex @env{TZ} environment variable @vindex TZ The timezone information which is added to the date text of sent eMails, created response files and created shell script files. @item USER @cindex Environment variable, @env{USER} @cindex @env{USER} environment variable @vindex USER @anchor{x-USER} The eMail address which is used if the mailing option is wanted. Takes precedence over @env{LOGNAME}@. @xref{x-mail, , Global option @option{--mail@r{[}=@var{address}@r{]}}}, for more details. @end table @node Error Codes, Glossary, Environment Variables, Top @appendix Error Codes @tbindex Error codes @tbindex Run-time error codes @tbindex Exit codes @cindex Error codes, table @cindex Table of all error codes @cindex Exit codes, table @cindex Table of all exit codes @cindex Program exit states, table @cindex Run-time error codes, table @cindex Whitespace character @cindex EMail, error code @noindent Gcal produces the following @emph{exit codes}: @iftex @sp 2 @end iftex @table @code @item 127 Request for help screen, software license or program version (adjustable)@. @item 126 @anchor{x-126-Error-code} Invalid command line argument / option. @item 125 Year out of range for computing the Easter Sunday's date. @item 124 Virtual memory exhausted. @item 123 Invalid date part in resource file or in include file. @item 122 Invalid month field entry in resource file or in include file. @item 121 Invalid day field entry in resource file or in include file. @item 120 Malformed @emph{#include} statement in resource file or in include file. @item 119 @anchor{x-119-Error-code} Illegal recursive/cyclic @emph{#include} statement in resource file or in include file. @item 118 @anchor{x-118-Error-code} Resource file or include file not found. @item 117 Invalid @w{@var{n}'th} weekday field (only @w{@code{1@r{@dots{}}5}} or @code{9} valid)@. @item 116 Missing @emph{whitespace} separator character between @emph{date part} and @emph{text part}@. @item 115 Response file respectively shell script cannot be written. @item 114 Invalid date variable operation. @item 113 @anchor{x-113-Error-code} Referenced date variable undefined. @item 112 Invalid date value assigned to date variable. @item 111 Sending output to eMail address failed. @item 110 Internal error, C function pipe(), fork(), exec*() or unlink() failed. @item 109 Error reading resource, include respectively response file. @item 108 Illegal character found in response file. @item 107 Internal error, invalid value for the size of an internal table occurred. @item 106 Invalid date format text specified. @item 105 Invalid text variable definition. @item 104 Invalid regular expression search pattern specified. @item 3 Program aborted by signal. @item 2 @anchor{x-2-Error-code} @emph{Exit code} not equal zero returned by external command. @item 1 @anchor{x-1-Error-code} Activated @w{@option{-c@r{|}C@r{[]}}}, @w{@option{-f@r{|}F @var{name}@r{[}+@r{@dots{}]}}} or @w{@option{-# @var{line}}} option caused no output of resource file entries. @item 0 Normal program termination. @end table @node Glossary, Argument Index, Error Codes, Top @appendix Glossary @tbindex Glossary @cindex Glossary @noindent Here is an alphabetical list of most terms with short description that are introduced and used in this manual: @iftex @sp 2 @end iftex @table @dfn @item Actual date modifier @cindex Actual date modifier Gcal uses that date as today's date which is declared by the actual date modifier, instead of using the date that is given by computer's clock as system date. @item Alternation operator @cindex Alternation operator The @samp{|} metacharacter is used to specify alternatives in a regular expression. @item Amateur-astronomical twilight @cindex Amateur-astronomical twilight The time when the center of the Sun passes a reference altitude of 15 degrees below a mathematical horizon. @item Anchor @cindex Anchor The @samp{^} and @samp{$} metacharacters in a regular expression. @item @acronym{ANSI} @cindex @acronym{ANSI} The American National Standards Institute. This organization produces many standards, among them the standards for the C and C++ programming languages. @item Asr prayer time @cindex Asr prayer time The third Islamic prayer time. Begins in the afternoon when the length of the shadow cast by a vertical pole has a definite length, and ends just before sunset. @item Astronomical twilight @cindex Astronomical twilight The time when the center of the Sun passes a reference altitude of 18 degrees below a mathematical horizon. @item Astronomical unit @cindex Astronomical unit An astronomical unit, abbreviated by @acronym{ae}, is equal to the mean distance of the Sun from the Earth, which is about @w{149,597,870.691} kilometers. @item Autumnal equinox point on the ecliptic @cindex Autumnal equinox point on the ecliptic The point where the descending Sun's orbit intersects the celestial equator. @item Azimuth @cindex Azimuth The horizontal angular distance between the vertical circle, that passes a celestial body, and the North point. @item Biorhythm @cindex Biorhythm Ascending and descending curves which show three coherent biological cycles, the physical, the emotional and the intellectual cycle. @item @acronym{BSD} @cindex @acronym{BSD} Short term for @cite{Berkeley Software Distribution}, a Unix operating system variant. @item C @cindex C The system programming language that most GNU software is written in. @item Calendar option class @cindex Calendar option class The option which control the calendar layout. @item Celestial axis @cindex Celestial axis The connecting line which runs between the celestial North and South Pole. @item Celestial body elevation @cindex Celestial body elevation The vertical angular distance between the celestial body and the horizon. @item Celestial equator @cindex Celestial equator A celestial great circle, which is vertical to the celestial axis and simultaneously represents the Earth's equator that is projected onto the celestial sphere. @item Celestial Pole @cindex Celestial Pole The northern and southern lengthening of the Earth's rotation axis, respectively, projected on the celestial sphere. @item Character class @cindex Character class A character class in a regular expression is a special notation for describing lists of characters that have a specific attribute, but where the actual characters themselves can vary from country to country and/or from character set to character set. @item Character list @cindex Character list Matches any one of the characters that are enclosed in the square brackets in a text, which is processed by a regular expression. @item Character set @cindex Character set The set of numeric codes used by a computer system to represent the characters (letters, numbers, punctuation, etc.@:) of a particular country or place. The most common character set in use today is @acronym{ASCII} (American Standard Code for Information Interchange)@. Many European countries use an extension of @acronym{ASCII} known as @w{@acronym{ISO}-8859-1} (@acronym{ISO} @w{Latin-1})@. @item Civil Islamic calendar @cindex Civil Islamic calendar The arithmetically determined Islamic lunar calendar. @item Civil midnight time @cindex Civil midnight time In terms of Gcal, this is 0 @w{o'clock}, the day change just took part. This clocktime is alternatively also denoted as 24 @w{o'clock}, or @w{12pm}@. @item Civil twilight @cindex Civil twilight The time when the center of the Sun passes a reference altitude of 6 degrees below a mathematical horizon. @item Collating element @cindex Collating element A special sequence that can appear in a character lists of a regular expression. This apply to non-@sc{ascii} character sets, which can have single symbols that are represented with more than one character, as well as several characters that are equivalent for collating, or sorting, purposes. @item Collating symbol @cindex Collating symbol A multi-character collating element of a regular expression that is enclosed in @samp{[.} and @samp{.]} metacharacters. @item Command line argument @cindex Command line argument A special text that is mostly given on the command line to run Gcal, and which serves for controlling the program. @item Command @cindex Command A special type of command line argument which controls the periods Gcal respects. @item Common option class @cindex Common option class The standard options all GNU software should implement at least partially. @item Conjunction @cindex Conjunction A celestial body is either behind the Sun or is between Sun and Earth (seen from the Earth), and is therefore non-visible from the Earth. In terms of the Moon, this is the New Moon phase. @item Critical day @cindex Critical day Those days in the biorhythm in which one or more of the biological cycles crosses the zero point. At that time, one's system is said to be in a state of flux and it may be desirable to exhibit caution. @item Cycle mode @cindex Cycle mode The dynamical, i.e.@: depending on the respective clocktime, Sun and Moon oriented special texts are calculated for a series of clocktimes for the current day, i.e.@: determination is done for any time interval that can be individually defined by the user. @item Date part @cindex Date part That part of a Gcal resource file line that contains the information at which date a fixed date happens. @item Decimal system @cindex Decimal system Base-ten notation, where the digits are @w{@code{0}@dots{}@code{9}}@. @item Declination @cindex Declination The vertical angular distance between the center of a celestial body and the celestial equator. @item Delta-t @cindex Delta-t Delta-t is the difference between the Terrestrial Dynamical time (abbreviated by @acronym{TDT}), that was formerly known as @emph{Ephemeris time} (abbreviated by @acronym{ET}), and the Universal time (@acronym{UT}). Thus, @w{@samp{delta-t @equiv{} TDT - UT}}@. @item Early years @cindex Early years In terms of eternal holidays that are determined by Gcal, these are the years within the period @acronym{AD} 30 until the midth of the 20th century. @item Ecliptic latitude @cindex Ecliptic latitude The vertical angular distance between the center of a celestial body and the ecliptic. @item Ecliptic longitude @cindex Ecliptic longitude The vertical angular distance between the center of a celestial body and the vernal equinox point on the ecliptic. @item Ecliptic @cindex Ecliptic The zodiacal line or Sun's orbit. @item Elongation @cindex Elongation The horizontal angular distance between the center of a celestial body and the Sun's center, as seen from the Earth. @item Ending date @cindex Ending date A part of a Gcal special text that defines the last or latest date at which the fixed date may occur. @item Environment @cindex Environment A collection of strings, of the form @w{@env{name}@code{=}@var{value}}, that each program has available to it. Users generally place values into the environment in order to provide information to various programs. Typical examples are the environment variables @env{HOME} and @env{PATH}@. @item Equation of time @cindex Equation of time A correction to be added to the true solar time ---as read on a sundial--- to obtain the mean solar time. @item Equivalence class @cindex Equivalence class A list of equivalent characters of a regular expression that is enclosed in @samp{[=} and @samp{=]} metacharacters. @item Escape sequence @cindex Escape sequence A special sequence of characters used for describing non-printing characters, such as @code{\E} or @code{\033} or @code{\x1B} for the @acronym{ASCII} @code{ESC} (escape) character itself. @item Evening width @itemx Set width @cindex Evening width @cindex Set width The horizontal angular distance between the set azimuth of a celestial body and the West direction. @item Exclusive day period @itemx Exclusive date period @cindex Exclusive day period @cindex Exclusive date period A Gcal special text that can be specified with the effect, that only those fixed dates are respected and displayed which are not part of a definite period. @item Extended file name @cindex Extended file name A name that contains one ore more @samp{/} characters, and which denotes a file, whose fixed access path either starts from the root file directory, like @samp{/foo/bar/file}, or from the actual file directory, like @samp{./bar/file} or @samp{../bar/file}@. @item Extended language code information @cindex Extended language code information A simple language code information, which additionally has a territory information that is separated by a @samp{_}, like @code{en_us} for american English. @item Fajr prayer time @cindex Fajr prayer time The first Islamic prayer time. Begins with the beginning of astronomical morning twilight, and ends just before sunrise. @item Fixed date option class @cindex Fixed date option class The options which control the fixed date layout and intensity. @item Format instruction @cindex Format instruction Text variables, special texts and date formats can be provided with such an instruction text that results the special representation of the contents of text variables, and the evaluated special texts and date formats. @item FSF @itemx Free Software Foundation @cindex FSF @cindex Free Software Foundation A non-profit organization dedicated to the production and distribution of freely distributable software. It was founded by Richard M.@: Stallman, the author of the original Emacs editor. @item Geocentric data @cindex Geocentric data Observations of celestial bodies that are done from the fictitious center of the Earth yield in geocentrically based values. @item Geocentrical horizon @cindex Geocentrical horizon That fictitious horizontal plane that passes through the Earth's center, orthogonal to the observer's local vertical. @item Geometrical horizon @itemx Mathematical horizon @itemx Mathematical-geocentric horizon @cindex Geometrical horizon @cindex Mathematical horizon @cindex Mathematical-geocentric horizon A purely geometrically-built horizon which disregards the phenomenon of refraction as it arises in reality by the influence of the Earth's atmosphere. @item Global date variable @cindex Global date variable A Gcal date variable, which is defined in the command line. Is visible in all referenced resource files. @item Global option class @cindex Global option class The options which modify the program output. @item Global text variable @cindex Global text variable A Gcal text variable, which is defined in the command line. Is visible in all referenced resource files. @item Gnomon @cindex Gnomon A vertical pole which is used to ascertain the length of a shadow. @item GNU @cindex GNU @cite{GNU's not Unix}@. An on-going project of the Free Software Foundation to create a complete, freely distributable, @acronym{POSIX}-compliant computing environment. @item GPL @itemx General Public License @cindex GPL @cindex General Public License The terms under which Gcal and its source code may be distributed. @item Gregorian calendar @cindex Gregorian calendar The calendar which was introduced in @acronym{AD} 1582 by Pope Gregory XIII, that has an average year length of @w{365.2425} days. This calendar is most respected around the world today. @item Hexadecimal system @cindex Hexadecimal system Base 16 notation, where the digits are @w{@code{0}@dots{}@code{9}} and @w{@code{A}@dots{}@code{F}}, with @samp{A} representing 10, @samp{B} representing 11, and so on up to @samp{F} for 15. @item Highest culmination point @cindex Highest culmination point The highest point above or below the horizontal plane which transits a celestial body during a day. @item Highlighting sequence @cindex Highlighting sequence A control character sequence which cause a color or intensity switch in output text. Typical control character sequences are the @acronym{ANSI} escape sequences which have a leading escape character, and trailing more characters that define the type of the @acronym{ANSI} escape sequence. @item Horizontal parallax @cindex Horizontal parallax The horizontal parallax of a celestial body specifies the diameter of the Earth as it is seen from the surface of the celestial body. @item Hybrid calendar mode @cindex Hybrid calendar mode The automatical change from one calendar system to another if there are relations to a date for which the other calendar system is valid. Thus, Gcal automatically changes from the Julian calendar system to the Gregorian calendar system if output is related to dates after the Gregorian Reformation has happened. @item Inclusive day period @itemx Inclusive date period @cindex Inclusive day period @cindex Inclusive date period A Gcal special text that can be specified with the effect, that only those fixed dates are respected and displayed which are part of a definite period. @item Integer number @cindex Integer number A whole number, i.e.@: a number that does not have a fractional part. @item Interval expression @cindex Interval expression One or two numbers inside braces in a regular expression. @item Isha prayer time @cindex Isha prayer time The fifth Islamic prayer time. Begins at the end of the astronomical evening twilight, and ends just before the astronomical midnight time of the Sun. @item @acronym{ISO} @cindex @acronym{ISO} @acronym{ISO} is the abbreviation of @cite{International Organization for Standardization}@. @item @acronym{ISO} week number @cindex @acronym{ISO} week number The week starts on a Monday, and the first week of a year is the one which includes the first Thursday; equivalently, the one which includes the 4th January. @item Julian Ephemeris date @cindex Julian Ephemeris date A Julian date that is corrected by @emph{delta-t}@. @item Julian calendar @cindex Julian calendar The calendar which was introduced in 46 @acronym{BC} by Julius Caesar and in the later years corrected by emperor Augustus, that has an average year length of @w{365.25} years. This calendar was replaced by the Gregorian calendar in @acronym{AD} 1582. @item Julian date @itemx Julian day number @cindex Julian date @cindex Julian day number A day number that is based on the date 1st January 4713 BCE, which is the starting day zero of a consecutive day counting used in astronomical computations. The real zero of this date is at 12 @w{o'clock} Universal time @w{(UTC/GMT)}; the day does not change at midnight, but at noon Universal time. @item Leap day @cindex Leap day The 29th February in the Gregorian calendar. @item Leap year @cindex Leap year In the Gregorian calendar, a leap year is any year which number can be divided by 4 without a remainder, and years ending in hundreds are no leap years unless they are divisible by 400@. But the Eastern Orthodox churches compute leap years within the Gregorian calendar by using another rule; and that, a leap year is any year which number can be divided by 4 without a remainder, and years ending in hundreds are leap years, if a remainder of 2 or 6 occurs when such a year is divided by 9@. @item Legal holiday @cindex Legal holiday A day people don't have to work --- as in most companies, and businesses are closed; like @w{@samp{New Year's Day}} on January 1st. @item Lists of commands @itemx Ranges of commands @cindex Lists of commands @cindex Ranges of commands Produce more than one calendar sheet per program run. @item Local date variable @cindex Local date variable A Gcal date variable, which is defined in a resource file. Is visible only in this specific resource file, and that file which is included by it. @item Local star time @itemx Local sidereal time @cindex Local star time @cindex Local sidereal time The momentary period which is past between the last upper culmination of the vernal equinox point in the meridian of the observer's location (the momentary hour angle of the vernal equinox point), thus the right ascension of the stars in the observer's meridian at the moment. @item Local text variable @cindex Local text variable A Gcal text variable, which is defined in a resource file. Is visible only in this specific resource file, and that file which is included by it. @item Long-style option @cindex Long-style option A special ---non-standard--- style to write an option, e.g.@: @option{--foo}@. @item Lowest culmination point @cindex Lowest culmination point The lowest point below or above the horizontal plane which transits a celestial body during a day. @item Lunar Arctic Circle @cindex Lunar Arctic Circle The geographical latitude circle that is between about @w{61.5} and @w{71.9} decimal degrees, and the geographical pole. @item Lunation @itemx Synodic month @cindex Lunation @cindex Synodic month The mean time between two consecutive New Moon phases. @item Maghrib prayer time @cindex Maghrib prayer time The forth Islamic prayer time. Begins at sunset, and ends at the beginning of the @emph{Isha} prayer time. @item Magnitude unit @cindex Magnitude unit Is used to define the brightness of a star, and is a non-metrical value (Latin term @cite{magnitudo}, abbreviated @acronym{m})@. The difference between two consecutive magnitudes is 1 to @w{2.512}@. Therefore, a star with the brightness of @w{1@acronym{m}} is @w{2.512} times brighter than a star of @w{2@acronym{m}}@. A negative magnitude denotes a very bright star, for example almost @w{-27@acronym{m}} for the Sun, whereas the hardly visible planet Pluto has a magnitude of a bit more than @w{+14@acronym{m}}@. The Full Moon has a visual brightness of about @w{-12@acronym{m}.55}@. @item Marking character @cindex Marking character Single, printable characters which lead and trail the output text for marking purposes. @item Mean Earth equator radius @cindex Mean Earth equator radius The mean radius of Earth at the equator is about @w{6,378.137} kilometer. @item Mean solar time @itemx Mean solar day @itemx Mean sun @cindex Mean solar time @cindex Mean solar day @cindex Mean sun A star day is also known as a @emph{mean solar day}@. Because the Sun apparently shifts with respect to the vernal equinox point on the ecliptic due to the Earth's orbit around the Sun, the star day and the true solar day have a different length. As the true Sun namely moves irregularly through the ecliptic, a fictitious @emph{mean Sun} with a symmetrical motion through the celestial equator is used for deriving the mean solar time. @item Meridian @cindex Meridian Either a geographical longitude or an astronomical vertical circle. @item Metacharacters @itemx Regular expression operators @cindex Metacharacters @cindex Regular expression operators Special characters in a regular expression. @item Midnight height @cindex Midnight height The elevation of a celestial body as it happen at astronomical midnight time of the celestial body. @item Midnight phase angle @cindex Midnight phase angle The phase angle of a celestial body as it happen at astronomical midnight time of the celestial body. @item Modifier @cindex Modifier One or more characters which directly trail a short-style option, and which define a special mode of operation for this option. @item Morning width @itemx Rise width @cindex Morning width @cindex Rise width The horizontal angular distance between the rise azimuth of a celestial body and the East direction. @item Nautical twilight @cindex Nautical twilight The time when the center of the Sun passes a reference altitude of 12 degrees below a mathematical horizon. @item Negated character list @itemx Complemented character list @cindex Negated character list @cindex Complemented character list Matches any one of the characters, except those in the square brackets, in a text, that is processed by a regular expression. @item Negative day @cindex Negative day Those days in the biorhythm in which one or more of the biological cycles have a negative maximum value. At that time, one's system is said to be in a lessen state. @item Noon height @cindex Noon height The elevation of a celestial body as it happen at astronomical noon time of the celestial body. @item Noon line @cindex Noon line The straight line which connects the North and the South point. @item Noon phase angle @cindex Noon phase angle The phase angle of a celestial body as it happen at astronomical noon time of the celestial body. @item Octal system @cindex Octal system Base-eight notation, where the digits are @w{@code{0}@dots{}@code{7}}@. @item Opposition @cindex Opposition The Earth is in one line between the celestial body and the Sun, and therefore, the celestial body is completely visible from the Earth. In terms of the Moon, this is the Full Moon phase. @item Option @cindex Option A special type of command line argument which controls how Gcal behaves. @item Orthodrome @cindex Orthodrome A great circles arc that is casted between two points on a surface of a sphere. Is the shortest geodetic connecting line between two points on a sphere. @item Pattern @cindex Pattern A pattern is an arbitrary conditional expression against which input is tested. If the condition is satisfied, the pattern is said to @cite{match} the input. A typical pattern might compare the input against a regular expression. @item Phase angle @cindex Phase angle The phase angle states the phase of a celestial body, i.e.@: the illuminated fraction of it as it can be seen from the Earth. @item Pipelining @cindex Pipelining The output of a program is used as an input data stream for another program. @item Positive day @cindex Positive day Those days in the biorhythm in which one or more of the biological cycles have a positive maximum value. At that time, one's system is said to be in a raised state. @item @acronym{POSIX} @cindex @acronym{POSIX} The name for a series of standards being developed by the @acronym{IEEE} that specify a Portable Operating System interface. The @cite{IX} denotes the Unix heritage of these standards. @item Proleptic calendar mode @cindex Proleptic calendar mode This means, Gcal only uses a definite calendar system during a definite period, although there was a change to another calendar system in the historic reality during this definite period. @item Rational number @itemx Floating Point number @cindex Rational number @cindex Floating Point number This is a number that can have a fractional part. @item @acronym{RFC} @cindex @acronym{RFC} @acronym{RFC} is the abbreviation of @cite{Request for Comments}@. @item Redirection @cindex Redirection The output of a program is sent to another device instead of sending it to the @emph{standard output channel}@. @item Refraction @cindex Refraction Refraction is an optical phenomenon caused by the Earth's atmosphere, which leads to an apparent raising of the location of a celestial body. The amount of refraction increases with growing air pressure and sinking temperature and @w{vice-versa}@. @item Regexp @itemx Regular expression @cindex Regexp @cindex Regular expression A way of describing a set of strings. @item Relative time offset value @cindex Relative time offset value A time offset value which is related to a base time. @item Religious Islamic calendar @cindex Religious Islamic calendar The astronomically determined Islamic lunar calendar. @item Resource file @cindex Resource file A file that essentially contains the fixed date entries. @item Response file @cindex Response file A file used by Gcal to preload options and commands at program start-up. A response file may contain options and commands, but @strong{no} references to further response files. @item Right ascension @cindex Right ascension The horizontal angular distance between the center of a celestial body and the hour circle that passes through the vernal equinox point on the ecliptic. @item Rise azimuth @cindex Rise azimuth The azimuth of a celestial body as it happen at rise time of the celestial body. @item Rise height @cindex Rise height The elevation of a celestial body as it happen at rise time of the celestial body. @item Rise phase angle @cindex Rise phase angle The phase angle of a celestial body as it happen at rise time of the celestial body. @item Set azimuth @cindex Set azimuth The azimuth of a celestial body as it happen at set time of the celestial body. @item Set height @cindex Set height The elevation of a celestial body as it happen at set time of the celestial body. @item Set phase angle @cindex Set phase angle The apparent phase angle of a celestial body as it happen at set time of the celestial body. @item Shell @cindex Shell The command processor of the operating system. This operating system program interprets and runs given command lines. @item Short-style option @cindex Short-style option The traditional ---standard--- style to write an option, e.g.@: @option{-x}@. @item Simple file name @cindex Simple file name A name that denotes a file, whose access-path either does not start from the root file directory or from the actual file directory, like @samp{file} or @samp{bar/file}@. @item Simple language code information @cindex Simple language code information A language code that consists of two-letters like @code{de} for the German language, as it is defined in the @w{@acronym{ISO}-639:1988}@. @item Single command @itemx 3-Month mode command @cindex Single command @cindex 3-Month mode command Produce only one calendar sheet per program run. @item Solar Arctic Circle @cindex Solar Arctic Circle The geographical latitude circle that is between about @w{66.7} and @w{65.9} (corrected for atmospheric refraction) decimal degrees, and the geographical pole. For computing the different twilight phases, this latitude circle decreases to about: @itemize @bullet @item @w{60.7} decimal degrees for civil twilight. @item @w{54.7} decimal degrees for nautical twilight. @item @w{51.7} decimal degrees for amateur-astronomers twilight. @item @w{48.7} decimal degrees for astronomical twilight. @end itemize @item Special text @cindex Special text A text in a Gcal resource file which is started by a @samp{%} character and whose purpose is to suppress output of fixed dates in definite cases, either, or to provide them with particular texts respectively to start external commands. @item Summer point on the ecliptic @itemx Summer solstice @itemx Solstice in summer @cindex Summer point on the ecliptic @cindex Summer solstice @cindex Solstice in summer The Sun's orbit crosses the highest point above the celestial equator that is passed during a revolution of the Earth around the Sun. @item Standard week number @cindex Standard week number The week starts on the respective starting day of the week, and the days in a new year that are preceding the first starting day of the week are in the last week of the previous year, respectively in week zero of the new year. @item Star day @cindex Star day The period between two consecutive upper culminations of the vernal equinox point on the ecliptic in the meridian of the observer's location. @item Starting date @cindex Starting date A part of a Gcal special text that defines the first or earliest date at which the fixed date may occur. @item Statute mile @cindex Statute mile A linear measure, one statute mile is equal to @w{1.609344} kilometer. @item String @cindex String A chain of characters. @item Switch character @cindex Switch character An option is defined by a leading switch character, either the @samp{-} or the @samp{/} character for traditional short-style options, or @samp{--} for mnemonic long-style options; a command may not have a leading switch character. @item Text part @cindex Text part That part of a Gcal resource file line that contains the fixed date text. @item Topocentric data @cindex Topocentric data Observations of celestial bodies that are done from the surface of the Earth yield in topocentrically based values. @item True solar time @itemx True solar day @cindex True solar time @cindex True solar day A true solar day is the period between two consecutive lower culminations of the Sun. This entity is taken as the base for deriving the true solar time (as it is also shown by a sundial during the day)@. @item True track @itemx Course angle @cindex True track @cindex Course angle The course angle gives the direction, which is the vertex of a great circles arc (Orthodrome) that is casted between two points on a surface of a sphere, at a meridian (Gcal uses a geoid (rotation ellipsoid) that is calculated taking pattern from the @cite{World Geodetic System}, short @acronym{W.G.S}, that was designed in 1961)@. Such an arc is the shortest geodetic connecting line between two points on a sphere. Indeed, the course angles on such an arc are changing continually, because the circular line that is casted intersects each meridian with another angle --- except the case, that both co-ordinates are referring to exactly the same longitude or to exactly the same latitude. @item Twilight @cindex Twilight The interval of time before sunrise and again after sunset, during which natural light is provided by the upper atmosphere that does receive direct sunlight and reflects parts of it towards the Earth's surface. @item Unix @cindex Unix A computer operating system originally developed in the early 1970's at @acronym{AT&T} Bell Laboratories. It initially became popular in universities around the world, and later moved into commercial environments as a software development system and network server system. There are many commercial versions of Unix, as well as several work-alike systems whose source code is freely available (such as Linux, @w{Net@acronym{BSD}}, and @w{Free@acronym{BSD}})@. @item Vernal equinox point on the ecliptic @cindex Vernal equinox point on the ecliptic The point where the ascending Sun's orbit intersects the celestial equator. @item Whitespace character @cindex Whitespace character For example @emph{Tab}, @emph{Space}, @emph{Form-feed} and similar characters. @item Winter point on the ecliptic @itemx Winter solstice @itemx Solstice in winter @cindex Winter point on the ecliptic @cindex Winter solstice @cindex Solstice in winter The Sun's orbit crosses the lowest point below the celestial equator that is passed during a revolution of the Earth around the Sun. @item Word @cindex Word A sequence of one or more letters, digits, or underscores (@samp{_}) in a regular expression. @item Zuhr prayer time @cindex Zuhr prayer time The second Islamic prayer time. Begins after the astronomical noon time of the Sun, and ends at the beginning of the @emph{Asr} prayer time. @end table @c @c %**End of manual part @c %**Start of index part @c @node Argument Index, Variable Index, Glossary, Top @unnumbered Command Line Argument Index @noindent Here is an alphabetical list of the command line arguments processed by Gcal: @printindex ar @node Variable Index, Table Index, Argument Index, Top @unnumbered Environment Variable Index @noindent Here is an alphabetical list of the environment variables checked by Gcal: @printindex vr @node Table Index, GNU Free Documentation License, Variable Index, Top @unnumbered Table Index @noindent Here is an alphabetical list of the most import tables, summaries and other general views that can be found in this manual: @printindex tb @node GNU Free Documentation License, Concept Index, Table Index, Top @appendix GNU Free Documentation License @include fdl.texi @node Concept Index, , GNU Free Documentation License, Top @unnumbered Concept Index @ifnothtml @printindex cp @end ifnothtml @ifhtml (removed) @end ifhtml @c @c %**End of index part @bye gcal-4.1/doc/en/Makefile.in0000664000000000000000000022132713041163550012376 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/en ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acos.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asin.m4 \ $(top_srcdir)/m4/assert.m4 $(top_srcdir)/m4/atan.m4 \ $(top_srcdir)/m4/atan2.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/cond.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/cos.m4 $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/fatal-signal.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fflush.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/floor.m4 \ $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpurge.m4 \ $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fseek.m4 $(top_srcdir)/m4/fseeko.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftell.m4 \ $(top_srcdir)/m4/ftello.m4 $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/limits-h.m4 \ $(top_srcdir)/m4/link.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/log.m4 $(top_srcdir)/m4/log10.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mkostemp.m4 \ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \ $(top_srcdir)/m4/pipe2.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/posix_spawn.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/raise.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/realloc.m4 \ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/sched_h.m4 \ $(top_srcdir)/m4/secure_getenv.m4 \ $(top_srcdir)/m4/sig_atomic_t.m4 $(top_srcdir)/m4/sigaction.m4 \ $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sin.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/spawn-pipe.m4 \ $(top_srcdir)/m4/spawn_h.m4 $(top_srcdir)/m4/sqrt.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strcspn.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strstr.m4 \ $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tan.m4 \ $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/tmpdir.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/wait-process.m4 \ $(top_srcdir)/m4/waitpid.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) am__v_DVIPS_0 = @echo " DVIPS " $@; am__v_DVIPS_1 = AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@) am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@) am__v_MAKEINFO_0 = @echo " MAKEINFO" $@; am__v_MAKEINFO_1 = AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@) am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@) am__v_INFOHTML_0 = @echo " INFOHTML" $@; am__v_INFOHTML_1 = AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@) am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@) am__v_TEXI2DVI_0 = @echo " TEXI2DVI" $@; am__v_TEXI2DVI_1 = AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@) am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@) am__v_TEXI2PDF_0 = @echo " TEXI2PDF" $@; am__v_TEXI2PDF_1 = AM_V_texinfo = $(am__v_texinfo_@AM_V@) am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@) am__v_texinfo_0 = -q am__v_texinfo_1 = AM_V_texidevnull = $(am__v_texidevnull_@AM_V@) am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@) am__v_texidevnull_0 = > /dev/null am__v_texidevnull_1 = INFO_DEPS = $(srcdir)/gcal.info TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux DVIS = gcal.dvi PDFS = gcal.pdf PSS = gcal.ps HTMLS = gcal.html TEXINFOS = gcal.texi TEXI2DVI = texi2dvi TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) DVIPS = dvips RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__installdirs = "$(DESTDIR)$(infodir)" am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/texinfo.tex DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ACOS_LIBM = @ACOS_LIBM@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASIN_LIBM = @ASIN_LIBM@ ATAN2_LIBM = @ATAN2_LIBM@ ATAN_LIBM = @ATAN_LIBM@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CEIL_LIBM = @CEIL_LIBM@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ COS_LIBM = @COS_LIBM@ CP = @CP@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FLOAT_H = @FLOAT_H@ FLOOR_LIBM = @FLOOR_LIBM@ GCAL_HD_OBJS = @GCAL_HD_OBJS@ GCAL_RC_OBJS = @GCAL_RC_OBJS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ACOSF = @GNULIB_ACOSF@ GNULIB_ACOSL = @GNULIB_ACOSL@ GNULIB_ASINF = @GNULIB_ASINF@ GNULIB_ASINL = @GNULIB_ASINL@ GNULIB_ATAN2F = @GNULIB_ATAN2F@ GNULIB_ATANF = @GNULIB_ATANF@ GNULIB_ATANL = @GNULIB_ATANL@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CBRT = @GNULIB_CBRT@ GNULIB_CBRTF = @GNULIB_CBRTF@ GNULIB_CBRTL = @GNULIB_CBRTL@ GNULIB_CEIL = @GNULIB_CEIL@ GNULIB_CEILF = @GNULIB_CEILF@ GNULIB_CEILL = @GNULIB_CEILL@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ GNULIB_COSF = @GNULIB_COSF@ GNULIB_COSHF = @GNULIB_COSHF@ GNULIB_COSL = @GNULIB_COSL@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXP2 = @GNULIB_EXP2@ GNULIB_EXP2F = @GNULIB_EXP2F@ GNULIB_EXP2L = @GNULIB_EXP2L@ GNULIB_EXPF = @GNULIB_EXPF@ GNULIB_EXPL = @GNULIB_EXPL@ GNULIB_EXPM1 = @GNULIB_EXPM1@ GNULIB_EXPM1F = @GNULIB_EXPM1F@ GNULIB_EXPM1L = @GNULIB_EXPM1L@ GNULIB_FABSF = @GNULIB_FABSF@ GNULIB_FABSL = @GNULIB_FABSL@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ GNULIB_FMA = @GNULIB_FMA@ GNULIB_FMAF = @GNULIB_FMAF@ GNULIB_FMAL = @GNULIB_FMAL@ GNULIB_FMOD = @GNULIB_FMOD@ GNULIB_FMODF = @GNULIB_FMODF@ GNULIB_FMODL = @GNULIB_FMODL@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPF = @GNULIB_FREXPF@ GNULIB_FREXPL = @GNULIB_FREXPL@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_HYPOT = @GNULIB_HYPOT@ GNULIB_HYPOTF = @GNULIB_HYPOTF@ GNULIB_HYPOTL = @GNULIB_HYPOTL@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_ILOGB = @GNULIB_ILOGB@ GNULIB_ILOGBF = @GNULIB_ILOGBF@ GNULIB_ILOGBL = @GNULIB_ILOGBL@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPF = @GNULIB_LDEXPF@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOG = @GNULIB_LOG@ GNULIB_LOG10 = @GNULIB_LOG10@ GNULIB_LOG10F = @GNULIB_LOG10F@ GNULIB_LOG10L = @GNULIB_LOG10L@ GNULIB_LOG1P = @GNULIB_LOG1P@ GNULIB_LOG1PF = @GNULIB_LOG1PF@ GNULIB_LOG1PL = @GNULIB_LOG1PL@ GNULIB_LOG2 = @GNULIB_LOG2@ GNULIB_LOG2F = @GNULIB_LOG2F@ GNULIB_LOG2L = @GNULIB_LOG2L@ GNULIB_LOGB = @GNULIB_LOGB@ GNULIB_LOGBF = @GNULIB_LOGBF@ GNULIB_LOGBL = @GNULIB_LOGBL@ GNULIB_LOGF = @GNULIB_LOGF@ GNULIB_LOGL = @GNULIB_LOGL@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_MODF = @GNULIB_MODF@ GNULIB_MODFF = @GNULIB_MODFF@ GNULIB_MODFL = @GNULIB_MODFL@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@ GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@ GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@ GNULIB_POSIX_SPAWNATTR_GETPGROUP = @GNULIB_POSIX_SPAWNATTR_GETPGROUP@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_GETSIGMASK = @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@ GNULIB_POSIX_SPAWNATTR_INIT = @GNULIB_POSIX_SPAWNATTR_INIT@ GNULIB_POSIX_SPAWNATTR_SETFLAGS = @GNULIB_POSIX_SPAWNATTR_SETFLAGS@ GNULIB_POSIX_SPAWNATTR_SETPGROUP = @GNULIB_POSIX_SPAWNATTR_SETPGROUP@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_SETSIGMASK = @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@ GNULIB_POSIX_SPAWNP = @GNULIB_POSIX_SPAWNP@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT@ GNULIB_POWF = @GNULIB_POWF@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMAINDER = @GNULIB_REMAINDER@ GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RINT = @GNULIB_RINT@ GNULIB_RINTF = @GNULIB_RINTF@ GNULIB_RINTL = @GNULIB_RINTL@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_ROUND = @GNULIB_ROUND@ GNULIB_ROUNDF = @GNULIB_ROUNDF@ GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SINF = @GNULIB_SINF@ GNULIB_SINHF = @GNULIB_SINHF@ GNULIB_SINL = @GNULIB_SINL@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTF = @GNULIB_SQRTF@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TANF = @GNULIB_TANF@ GNULIB_TANHF = @GNULIB_TANHF@ GNULIB_TANL = @GNULIB_TANL@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ HAVE_ATAN2F = @HAVE_ATAN2F@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@ HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@ HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@ HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@ HAVE_DECL_LOGB = @HAVE_DECL_LOGB@ HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_REMAINDER = @HAVE_DECL_REMAINDER@ HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@ HAVE_DECL_RINTF = @HAVE_DECL_RINTF@ HAVE_DECL_ROUND = @HAVE_DECL_ROUND@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FMA = @HAVE_FMA@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LOG10F = @HAVE_LOG10F@ HAVE_LOG10L = @HAVE_LOG10L@ HAVE_LOG1P = @HAVE_LOG1P@ HAVE_LOG1PF = @HAVE_LOG1PF@ HAVE_LOG1PL = @HAVE_LOG1PL@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MODFF = @HAVE_MODFF@ HAVE_MODFL = @HAVE_MODFL@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@ HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@ HAVE_POSIX_SPAWN_FILE_ACTIONS_T = @HAVE_POSIX_SPAWN_FILE_ACTIONS_T@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RINT = @HAVE_RINT@ HAVE_RINTL = @HAVE_RINTL@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCHED_H = @HAVE_SCHED_H@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SINF = @HAVE_SINF@ HAVE_SINHF = @HAVE_SINHF@ HAVE_SINL = @HAVE_SINL@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_SPAWN_H = @HAVE_SPAWN_H@ HAVE_SQRTF = @HAVE_SQRTF@ HAVE_SQRTL = @HAVE_SQRTL@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SCHED_PARAM = @HAVE_STRUCT_SCHED_PARAM@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LIB_POSIX_SPAWN = @LIB_POSIX_SPAWN@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOG10_LIBM = @LOG10_LIBM@ LOG_LIBM = @LOG_LIBM@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_SCHED_H = @NEXT_SCHED_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_SPAWN_H = @NEXT_SPAWN_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PAGER1 = @PAGER1@ PAGER2 = @PAGER2@ PAGER3 = @PAGER3@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ POW_LIBM = @POW_LIBM@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACOSF = @REPLACE_ACOSF@ REPLACE_ASINF = @REPLACE_ASINF@ REPLACE_ATAN2F = @REPLACE_ATAN2F@ REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_COSF = @REPLACE_COSF@ REPLACE_COSHF = @REPLACE_COSHF@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ REPLACE_EXPF = @REPLACE_EXPF@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ REPLACE_FABSL = @REPLACE_FABSL@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ REPLACE_FMA = @REPLACE_FMA@ REPLACE_FMAF = @REPLACE_FMAF@ REPLACE_FMAL = @REPLACE_FMAL@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ REPLACE_LOG10F = @REPLACE_LOG10F@ REPLACE_LOG10L = @REPLACE_LOG10L@ REPLACE_LOG1P = @REPLACE_LOG1P@ REPLACE_LOG1PF = @REPLACE_LOG1PF@ REPLACE_LOG1PL = @REPLACE_LOG1PL@ REPLACE_LOG2 = @REPLACE_LOG2@ REPLACE_LOG2F = @REPLACE_LOG2F@ REPLACE_LOG2L = @REPLACE_LOG2L@ REPLACE_LOGB = @REPLACE_LOGB@ REPLACE_LOGBF = @REPLACE_LOGBF@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_SPAWN = @REPLACE_POSIX_SPAWN@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SINF = @REPLACE_SINF@ REPLACE_SINHF = @REPLACE_SINHF@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TANF = @REPLACE_TANF@ REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SCHED_H = @SCHED_H@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIN_LIBM = @SIN_LIBM@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ SQRT_LIBM = @SQRT_LIBM@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TAN_LIBM = @TAN_LIBM@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ZDUMP = @ZDUMP@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ info_TEXINFOS = gcal.texi AM_MAKEINFOFLAGS = --no-split SUBDIRS = examples EXTRA_DIST = fdl.texi all: all-recursive .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/en/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/en/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): .texi.info: $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && $(am__cd) $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ cd "$$am__cwd"; \ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $@ $<; \ then \ rc=0; \ $(am__cd) $(srcdir); \ else \ rc=$$?; \ $(am__cd) $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc .texi.dvi: $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ $< .texi.pdf: $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ $< .texi.html: $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $(@:.html=.htp) $<; \ then \ rm -rf $@ && mv $(@:.html=.htp) $@; \ else \ rm -rf $(@:.html=.htp); exit 1; \ fi $(srcdir)/gcal.info: gcal.texi gcal.dvi: gcal.texi gcal.pdf: gcal.texi gcal.html: gcal.texi .dvi.ps: $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) $(AM_V_texinfo) -o $@ $< uninstall-dvi-am: @$(NORMAL_UNINSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ rm -f "$(DESTDIR)$(dvidir)/$$f"; \ done uninstall-html-am: @$(NORMAL_UNINSTALL) @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ done uninstall-info-am: @$(PRE_UNINSTALL) @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ done; \ else :; fi @$(NORMAL_UNINSTALL) @list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ else :; fi); \ done uninstall-pdf-am: @$(NORMAL_UNINSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ done uninstall-ps-am: @$(NORMAL_UNINSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ rm -f "$(DESTDIR)$(psdir)/$$f"; \ done dist-info: $(INFO_DEPS) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for base in $$list; do \ case $$base in \ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$base; then d=.; else d=$(srcdir); fi; \ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ if test -f $$file; then \ relfile=`expr "$$file" : "$$d/\(.*\)"`; \ test -f "$(distdir)/$$relfile" || \ cp -p $$file "$(distdir)/$$relfile"; \ else :; fi; \ done; \ done mostlyclean-aminfo: -rm -rf gcal.t2d gcal.t2p clean-aminfo: -test -z "gcal.dvi gcal.pdf gcal.ps gcal.html" \ || rm -rf gcal.dvi gcal.pdf gcal.ps gcal.html maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-info check-am: all-am check: check-recursive all-am: Makefile $(INFO_DEPS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(infodir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-aminfo clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: $(DVIS) html: html-recursive html-am: $(HTMLS) info: info-recursive info-am: $(INFO_DEPS) install-data-am: install-info-am install-dvi: install-dvi-recursive install-dvi-am: $(DVIS) @$(NORMAL_INSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \ $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ done install-exec-am: install-html: install-html-recursive install-html-am: $(HTMLS) @$(NORMAL_INSTALL) @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ $(am__strip_dir) \ d2=$$d$$p; \ if test -d "$$d2"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \ $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ else \ list2="$$list2 $$d2"; \ fi; \ done; \ test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ done; } install-info: install-info-recursive install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \ $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \ fi; \ for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ if test -f $$ifile; then \ echo "$$ifile"; \ else : ; fi; \ done; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done @$(POST_INSTALL) @if $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ done; \ else : ; fi install-man: install-pdf: install-pdf-recursive install-pdf-am: $(PDFS) @$(NORMAL_INSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done install-ps: install-ps-recursive install-ps-am: $(PSS) @$(NORMAL_INSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-aminfo \ maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-aminfo mostlyclean-generic pdf: pdf-recursive pdf-am: $(PDFS) ps: ps-recursive ps-am: $(PSS) uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ uninstall-pdf-am uninstall-ps-am .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-aminfo clean-generic cscopelist-am ctags \ ctags-am dist-info distclean distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-aminfo \ maintainer-clean-generic mostlyclean mostlyclean-aminfo \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-dvi-am uninstall-html-am \ uninstall-info-am uninstall-pdf-am uninstall-ps-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gcal-4.1/doc/en/examples/0000775000000000000000000000000013041164076012224 500000000000000gcal-4.1/doc/en/examples/moon.in0000664000000000000000000000113712244130561013442 00000000000000; moon.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal -f/dev/null -#0*d1#999_%Z__%O %19950407 -x --moon=8 ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -f/dev/null -#0*d1#999_%Z__%O %19950407 -x --moon=8 $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tdemo-1.txt0000664000000000000000000000033012353520444014147 00000000000000 Hi friends, I'm the demo text containing funny characters and character sequences like ~~ \~ % %% $a $1 %%%\ %\ %s %%foo %bar \%Baz \\~ \~\ and so on... I'm be anxious how I'll be transformed by `txt2gcal'. gcal-4.1/doc/en/examples/remark.rc0000664000000000000000000000300412244130561013744 00000000000000;00001031 ^\ .......^\ ;::;::,^\ ;::;::;,^\ ;;::;;:;;,^\ .vmnv\%vnv\%,.;;;:::;;:;;, .,vnmv\%vnn,^\ vmmmn\%vmmnv\%vnmmnv\%;;;;;;\%nmmmnv\%vnmv\%vmmv^\ vmmnv\%vmmmnv\%vnmmmmmnv\%;:\%nmmmmmmnv\%vnm\%vnmmmv^\ vmmnv\%vmmmnv\%vnmmmmmmmmnv\%nmmmmmmmmnv\%vnmm\%vnmmmv^\ vmmnv\%vmmmnv\%vnmmmmmmmmnv\%vmmmmmmmmmmnv\%vnmv\%vnmmmv^\ vmmnv\%vmmmnv\%vnmm;mmmmmmnv\%vmmmmmmmm;mmnv\%vnmv\%vnmmmv,^\ vmmnv\%vmmmnv\%vnmm;' mmmmmnv\%vmmmmmmm;' mmnv\%vnmv\%vnmmmv,^\ vmmnv\%vmmmnv\%vn;; mmmmnv\%vmmmmmm;; nv\%vnmmv\%vnmmmv^\ vmmnv\%vmmmmnv\%v;; mmmnv\%vmmmmm;; v\%vnmmmv\%vnmmmv^\ vmmnv\%vmmmmnv\%vnmmmmmmmmm;; mmmmmmmmmnv\%vnmmmmv\%vnmmmv^\ vmmnv\%vmmmmnv\%vnmmmmmmmmmm;; mmmmmmmmmmnv\%vnmmmmv\%vnmmmv^\ vmmnv\%vmmmmnv\%vnmmmmmmmmmmnv;,mmmmmmmmmmmmnv\%vn;mmmv\%vnmmmv^\ vmmnv\%vmmm. nv\%vnmmmmmmmmmnv\%;mmmmmmmmmmmnv\%vn; mmmv\%vnmmmv^\ `vmmnv\%vmm, v\%vnmmmmmmmmmmnv\%nmmmmmmmmmmnv\%v; mmv\%vnnmmv'^\ vmmnv\%vmm;, \%vnmmmmmmmmmnv\%nmmmmmmmmmnv\%;' mv\%vnmmmmv^\ vmmnv\%vmm;;, nmmm;' mmmm;;' mv\%vnmmmmv'^\ `vmmnv\%vmmm;;,. mmnvv;, mmv\%vnmmmmv'^\ `vmmnv\%vmmmmnv\%vnmmmmmmmmnvvnmmmmmmnv\%vnmmmv\%vnmmmmv'^\ `vmvn\%vmmmmnv\%vnmmmmmmmnvvnmmmmmnv\%vnmmmm\%vnmmmv'^\ `v\%mmmmmn%:\%vnmnmmmmn\%vnmmmnv%:\%vnmv\%nmv' ; A remarked line ; Also a remarked line ; A \ formatted and multi-line \ remark gcal-4.1/doc/en/examples/sun-1.rc0000664000000000000000000000263212244130561013434 00000000000000; sun-1.rc, comparison of sunrise / sunset, day length and night ; length of two locations, namely: Muenster.DE / Bangkok.TH ; All references are based on Muenster.DE ! ; ; Common definitions $p=0*d1#999 $v=%2%4 for that places local time $z=actual local time in ; Definitions for winter time $a=%e#1980 %e0@a#0@b-1 $x=Sun:~%o$c,$w rise, %s$c,$w set, %u$c,$w day, %z$c,$w night~$l ; Winter time in Germany == CEWT/GMT-1 (+60 minutes) $w=+60 ; Starting date of winter time in Germany b=10sun9 ; Definitions for summer time (daylight-saving time) $b=%e#1980 %i0@a#0@b-1 $y=Sun:~%o$c,$s rise, %s$c,$s set, %u$c,$s day, %z$c,$s night~$l ; Summer time in Germany == CEST/GMT-2 (+120 minutes) $s=+120 ; Starting date of summer time in Germany a=03sun9 ; Geographic co-ordinate and name of the location Muenster, Germany $c=+5158+00738+61 $l=%1Muenster ; Muenster's local time sunrise etc. for that places local time $p $a $x$v $p $b $y$v ; Muenster's actual local time 0 $a %1%@$w %2 $z $l 0 $b %1%@$s %2 $z $l ; Geographic co-ordinate and name of the location Bangkok, Thailand $c=+1345+10031+10 $l=%3Bangkok%4-time converted to $l's%2 local time ; Bangkok's sunrise etc. based on Muenster's local time $p $a $x $p $b $y ; Bangkok's local time == WAST/GMT-7 (+420 minutes) $t=+420 $w=$t ; Bangkok's actual local time $l=%3Bangkok 0 $a %3%@$t %4 $z $l 0 $b %3%@$t %4 $z $l ; Bangkok's sunrise etc. for that places local time $l=$l$v $p $x gcal-4.1/doc/en/examples/tvar-2a.in0000664000000000000000000000130712244130561013745 00000000000000; tvar-2a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal %19960101 -H no -x -f ./tvar-2.rc ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %19960101 -H no -x -f ./tvar-2.rc $* ; %%%gcal %19960101 -H no -x -f ./tvar-2.rc -y ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %19960101 -H no -x -f ./tvar-2.rc -y $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/redir-1a.texi0000664000000000000000000000037712244130561014446 00000000000000@c Automatically generated by mksamp-2.sed from redir-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal --exe -QUx -f./redir-1.rc+XX -r'$f=XX:$c=echo $f' -#'0 %!rm $f' @print{} XX @end cartouche @end group @end example gcal-4.1/doc/en/examples/cycle-1.sh0000775000000000000000000000063612244130561013741 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from cycle-1.in. echo "$ gcal %20000420 -Hno -f/dev/null -xdt -g::: \\" echo "> --here='0*d1#999_%ot+00+000_:_%oa+5158+00738,120' \\" echo "> --cycle-end=12:05 --time=12:00" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %20000420 -Hno -f/dev/null -xdt -g::: --here='0*d1#999_%ot+00+000_:_%oa+5158+00738,120' --cycle-end=12:05 --time=12: $* exit 0 gcal-4.1/doc/en/examples/wspc-1a.texi0000664000000000000000000000134412353517103014312 00000000000000@c Automatically generated by mksamp-2.sed from wspc-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal --resource-file=./wspc-1.rc --disable-highlighting @print{} @print{} Fixed date list: @print{} @print{} Wed, Jun 14th 2000: sh $0 & $0 & @print{} Wed, Jun 14th 2000: a \ b \\ c \\\ d @print{} Wed, Jun 14th 2000: main()@{for(;;)fork();@} @print{} Wed, Jun 14th 2000: BANG BANG @print{} Wed, Jun 14th 2000: What happens now?~0 \ That! @print{} Wed, Jun 14th 2000: What happens now? @print{} 0 \ This! @print{} Wed, Jun 14th 2000: \hello world @print{} Wed, Jun 14th 2000: bogomips @print{} Wed, Jun 14th 2000: bogus @end cartouche @end group @end example gcal-4.1/doc/en/examples/tvar-3.rc0000664000000000000000000000012312244130561013576 00000000000000; tvar-3.rc ; $c=+00+000 $h= $d=$c$h 0 %o$d %s$d 0 \$c=$c \$h=$h \$d=$d \$x=$x gcal-4.1/doc/en/examples/tdemo-1.in0000664000000000000000000000136012244130561013736 00000000000000; tdemo-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat tdemo-1.txt ***mv tdemo-1.rc tdemo-1.txt ***cat ./tdemo-1.txt ; The resource file line(s) used within this example are prefixed with `:::'. ; ::: Hi friends, ::: :::I'm the demo text containing funny characters and character :::sequences like ~~ \~ % %% $a $1 %%%\ :::%\ %s %%foo %bar \%Baz \\~ \~\ and so on... :::I'm be anxious how I'll be transformed by `txt2gcal'. ::: ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tvarf-1.sh0000775000000000000000000000017112244130561013756 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tvarf-1.in. echo "$ cat tvarf-1.rc" cat ./tvarf-1.rc exit 0 gcal-4.1/doc/en/examples/tvar-1a.sh0000775000000000000000000000037612244130561013760 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tvar-1a.in. echo "$ gcal %19960101 -H no -x -r '\$A=FROBOZZ:\$x=' -f ./tvar-1.rc" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %19960101 -H no -x -r '$A=FROBOZZ:$x=' -f ./tvar-1.rc $* exit 0 gcal-4.1/doc/en/examples/tvaro-1.texi0000664000000000000000000000120112244130561014316 00000000000000@c Automatically generated by mksamp-2.sed from tvaro-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat tvaro-1.rc @print{} ; tvaro-1.rc @print{} ; @print{} $a=130 @print{} $b=2 @print{} 0 1. \$b=$b @print{} $b++ @print{} 0 2. \$b=$b @print{} $b+=7 @print{} 0 3. \$b=$b @print{} $b-- @print{} 0 4. \$b=$b @print{} $b-=-5 @print{} 0 5. \$b=$b @print{} $b+=123 @print{} 0 6. \$b=$b @print{} $b-=$a @print{} 0 7. \$b=$b @print{} $b-=10000 @print{} 0 8. \$b=$b @print{} $b+=10000 @print{} 0 9. \$b=$b @print{} $b=02 @print{} 0 a. \$b=$b @print{} $b++ @print{} 0 b. \$b=$b @end cartouche @end group @end example gcal-4.1/doc/en/examples/tvar-3a.sh0000775000000000000000000000045712244130561013762 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tvar-3a.in. echo "$ gcal -QUx -f ./tvar-3.rc" GCAL= GCALPATH=. ../../../src/gcal -QUx -f ./tvar-3.rc $* echo "$ gcal -QUx -r '\$h=+1000:\$x=' -f ./tvar-3.rc" GCAL= GCALPATH=. ../../../src/gcal -QUx -r '$h=+1000:$x=' -f ./tvar-3.rc $* exit 0 gcal-4.1/doc/en/examples/sun-1.texi0000664000000000000000000000400112244130561013771 00000000000000@c Automatically generated by mksamp-2.sed from sun-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat sun-1.rc @print{} ; sun-1.rc, comparison of sunrise / sunset, day length and night @print{} ; length of two locations, namely: Muenster.DE / Bangkok.TH @print{} ; All references are based on Muenster.DE ! @print{} ; @print{} ; Common definitions @print{} $p=0*d1#999 @print{} $v=%2%4 for that places local time @print{} $z=actual local time in @print{} ; Definitions for winter time @print{} $a=%e#1980 %e0@@a#0@@b-1 @print{} $x=Sun:~%o$c,$w rise, %s$c,$w set, %u$c,$w day, %z$c,$w night~$l @print{} ; Winter time in Germany == CEWT/GMT-1 (+60 minutes) @print{} $w=+60 @print{} ; Starting date of winter time in Germany @print{} b=10sun9 @print{} ; Definitions for summer time (daylight-saving time) @print{} $b=%e#1980 %i0@@a#0@@b-1 @print{} $y=Sun:~%o$c,$s rise, %s$c,$s set, %u$c,$s day, %z$c,$s night~$l @print{} ; Summer time in Germany == CEST/GMT-2 (+120 minutes) @print{} $s=+120 @print{} ; Starting date of summer time in Germany @print{} a=03sun9 @print{} ; Geographic co-ordinate and name of the location Muenster, Germany @print{} $c=+5158+00738+61 @print{} $l=%1Muenster @print{} ; Muenster's local time sunrise etc. for that places local time @print{} $p $a $x$v @print{} $p $b $y$v @print{} ; Muenster's actual local time @print{} 0 $a %1%@@$w %2 $z $l @print{} 0 $b %1%@@$s %2 $z $l @print{} ; Geographic co-ordinate and name of the location Bangkok, Thailand @print{} $c=+1345+10031+10 @print{} $l=%3Bangkok%4-time converted to $l's%2 local time @print{} ; Bangkok's sunrise etc. based on Muenster's local time @print{} $p $a $x @print{} $p $b $y @print{} ; Bangkok's local time == WAST/GMT-7 (+420 minutes) @print{} $t=+420 @print{} $w=$t @print{} ; Bangkok's actual local time @print{} $l=%3Bangkok @print{} 0 $a %3%@@$t %4 $z $l @print{} 0 $b %3%@@$t %4 $z $l @print{} ; Bangkok's sunrise etc. for that places local time @print{} $l=$l$v @print{} $p $x @end cartouche @end group @end example gcal-4.1/doc/en/examples/cycle-2.texi0000664000000000000000000000163012353520450014272 00000000000000@c Automatically generated by mksamp-2.sed from cycle-2.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal %20000420 -Hno -f/dev/null -xdt -g::: \ > --here='0*d1#999_%ot+00+000_:_%o*a+5158+00738,120' \ > --cycle-end=10:00 --time=17:00 --cycle-step=1:15 @print{} @print{} Thu, Apr 20th 2000: +10h45': +38.038 @print{} Thu, Apr 20th 2000: +12h00': +45.962 @print{} Thu, Apr 20th 2000: +13h15': +49.665 @print{} Thu, Apr 20th 2000: +14h30': +47.882 @print{} Thu, Apr 20th 2000: +15h45': +41.267 @print{} Thu, Apr 20th 2000: +17h00': +31.633 @print{} ::: @print{} Fri, Apr 21st 2000: +10h45': +38.355 @print{} Fri, Apr 21st 2000: +12h00': +46.299 @print{} Fri, Apr 21st 2000: +13h15': +50.006 @print{} Fri, Apr 21st 2000: +14h30': +48.198 @print{} Fri, Apr 21st 2000: +15h45': +41.545 @print{} Fri, Apr 21st 2000: +17h00': +31.881 @end cartouche @end group @end example gcal-4.1/doc/en/examples/demo-2.rc0000664000000000000000000000050212244130561013546 00000000000000; demo-2.rc ; $a=%n+12 is a Friday%i0000 $b=#0000 $c=sun1 00000101 $a01$c$b01$c 00000201 $a02$c$b02$c 00000301 $a03$c$b03$c 00000401 $a04$c$b04$c 00000501 $a05$c$b05$c 00000601 $a06$c$b06$c 00000701 $a07$c$b07$c 00000801 $a08$c$b08$c 00000901 $a09$c$b09$c 00001001 $a10$c$b10$c 00001101 $a11$c$b11$c 00001201 $a12$c$b12$c gcal-4.1/doc/en/examples/include.in0000664000000000000000000000076412244130561014122 00000000000000; include.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat include.rc ***cat ./include.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::#include "$f" ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/speci-1a.in0000664000000000000000000000113212244130561014067 00000000000000; speci-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal --resource-file=speci-1.rc -H no -ox ***LANGUAGE=en GCAL= GCALPATH=. USER=esken ../../../src/gcal %19991004 --resource-file=speci-1.rc -H no -ox $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/wspc-1.rc0000664000000000000000000000032612244130561013601 000000000000000 BANG BANG 0 bogus 0 bogomips 0 \hello world 0 \ main(){for(;;)fork();} 0 \ sh $0 & $0 & 0 \ a \ b \\ c \\\ d 0 What happens now?\ ~0 \ This! 0 What happens now?\\ ~0 \ That! gcal-4.1/doc/en/examples/tdemo-1.sh0000775000000000000000000000022612244130561013745 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tdemo-1.in. echo "$ cat tdemo-1.txt" mv tdemo-1.rc tdemo-1.txt cat ./tdemo-1.txt exit 0 gcal-4.1/doc/en/examples/demo-1.in0000664000000000000000000000221212244130561013547 00000000000000; demo-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat demo-1.rc ***cat ./demo-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; demo-1.rc :::; :::$a=Friday the 13th%i0000 :::$b=#0000 :::$c=fri2 :::$d=fri3 :::00000113 $a01$c$b01$c :::00000113 $a01$d$b01$d :::00000213 $a02$c$b02$c :::00000213 $a02$d$b02$d :::00000313 $a03$c$b03$c :::00000313 $a03$d$b03$d :::00000413 $a04$c$b04$c :::00000413 $a04$d$b04$d :::00000513 $a05$c$b05$c :::00000513 $a05$d$b05$d :::00000613 $a06$c$b06$c :::00000613 $a06$d$b06$d :::00000713 $a07$c$b07$c :::00000713 $a07$d$b07$d :::00000813 $a08$c$b08$c :::00000813 $a08$d$b08$d :::00000913 $a09$c$b09$c :::00000913 $a09$d$b09$d :::00001013 $a10$c$b10$c :::00001013 $a10$d$b10$d :::00001113 $a11$c$b11$c :::00001113 $a11$d$b11$d :::00001213 $a12$c$b12$c :::00001213 $a12$d$b12$d ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tvar-1.in0000664000000000000000000000146412244130561013607 00000000000000; tvar-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat tvar-1.rc ***cat ./tvar-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; tvar-1.rc :::; :::$a=foo :::0 \$a:1=$a :::$c=$a :::0 \$c=$c :::$b=$c bar $a :::0 \$b=$b :::$a=bar $b baz $a booz :::0 \$a:2=$a :::$a= :::$b=0 $b $c frozz $a frozz :::$b ->That's \$b :::0 \$x='$x' and \$d is undefined: $d... :::$a= 0 ~ 1~2~\$3~%n~$c~\ :::now it's enough! :::0 \$a=---$a--- :::$a=0 \ \ \\ And this... :::$a works too! ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tdemo-1c.in0000664000000000000000000000100512244130561014075 00000000000000; tdemo-1c.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal2txt tdemo-1.rc ***LANGUAGE=en ../../../src/gcal2txt tdemo-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tdemo-1b.sh0000775000000000000000000000033112244130561014104 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tdemo-1b.in. echo "$ gcal %19960101 -H no -Ax -f ./tdemo-1.rc" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %19960101 -H no -Ax -f ./tdemo-1.rc $* exit 0 gcal-4.1/doc/en/examples/tdemo-1a.sh0000775000000000000000000000036312244130561014110 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tdemo-1a.in. echo "$ txt2gcal tdemo-1.txt 0*d1#999 > tdemo-1.rc" LANGUAGE=en ../../../src/txt2gcal tdemo-1.txt 0*d1#999 > tdemo-1.rc echo "$ cat tdemo-1.rc" cat ./tdemo-1.rc exit 0 gcal-4.1/doc/en/examples/tvar-1.sh0000775000000000000000000000016612244130561013614 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tvar-1.in. echo "$ cat tvar-1.rc" cat ./tvar-1.rc exit 0 gcal-4.1/doc/en/examples/cycle-1.texi0000664000000000000000000000162112353520452014273 00000000000000@c Automatically generated by mksamp-2.sed from cycle-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal %20000420 -Hno -f/dev/null -xdt -g::: \ > --here='0*d1#999_%ot+00+000_:_%oa+5158+00738,120' \ > --cycle-end=12:05 --time=12:00 @print{} @print{} Thu, Apr 20th 2000: +12h00': +045d58' @print{} Thu, Apr 20th 2000: +12h01': +046d03' @print{} Thu, Apr 20th 2000: +12h02': +046d07' @print{} Thu, Apr 20th 2000: +12h03': +046d12' @print{} Thu, Apr 20th 2000: +12h04': +046d17' @print{} Thu, Apr 20th 2000: +12h05': +046d22' @print{} ::: @print{} Fri, Apr 21st 2000: +12h00': +046d18' @print{} Fri, Apr 21st 2000: +12h01': +046d23' @print{} Fri, Apr 21st 2000: +12h02': +046d28' @print{} Fri, Apr 21st 2000: +12h03': +046d32' @print{} Fri, Apr 21st 2000: +12h04': +046d37' @print{} Fri, Apr 21st 2000: +12h05': +046d42' @end cartouche @end group @end example gcal-4.1/doc/en/examples/lbrk-1a.sh0000775000000000000000000000041212244130561013725 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from lbrk-1a.in. echo "$ gcal %00000101 --resource-file=./lbrk-1.rc --disable-highlighting" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %00000101 --resource-file=./lbrk-1.rc --disable-highlighting $* exit 0 gcal-4.1/doc/en/examples/redir-1a.sh0000775000000000000000000000042512244130561014104 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from redir-1a.in. echo "$ gcal --exe -QUx -f./redir-1.rc+XX -r'\$f=XX:\$c=echo \$f' -#'0 %!rm \$f'" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal --exe -QUx -f./redir-1.rc+XX -r'$f=XX:$c=echo $f' -#'0 %!rm $f' $* exit 0 gcal-4.1/doc/en/examples/include.sh0000775000000000000000000000017112244130561014121 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from include.in. echo "$ cat include.rc" cat ./include.rc exit 0 gcal-4.1/doc/en/examples/wspc-1a.sh0000775000000000000000000000036612244130561013757 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from wspc-1a.in. echo "$ gcal --resource-file=./wspc-1.rc --disable-highlighting" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal --resource-file=./wspc-1.rc --disable-highlighting $* exit 0 gcal-4.1/doc/en/examples/demo-1.texi0000664000000000000000000000203012244130561014110 00000000000000@c Automatically generated by mksamp-2.sed from demo-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat demo-1.rc @print{} ; demo-1.rc @print{} ; @print{} $a=Friday the 13th%i0000 @print{} $b=#0000 @print{} $c=fri2 @print{} $d=fri3 @print{} 00000113 $a01$c$b01$c @print{} 00000113 $a01$d$b01$d @print{} 00000213 $a02$c$b02$c @print{} 00000213 $a02$d$b02$d @print{} 00000313 $a03$c$b03$c @print{} 00000313 $a03$d$b03$d @print{} 00000413 $a04$c$b04$c @print{} 00000413 $a04$d$b04$d @print{} 00000513 $a05$c$b05$c @print{} 00000513 $a05$d$b05$d @print{} 00000613 $a06$c$b06$c @print{} 00000613 $a06$d$b06$d @print{} 00000713 $a07$c$b07$c @print{} 00000713 $a07$d$b07$d @print{} 00000813 $a08$c$b08$c @print{} 00000813 $a08$d$b08$d @print{} 00000913 $a09$c$b09$c @print{} 00000913 $a09$d$b09$d @print{} 00001013 $a10$c$b10$c @print{} 00001013 $a10$d$b10$d @print{} 00001113 $a11$c$b11$c @print{} 00001113 $a11$d$b11$d @print{} 00001213 $a12$c$b12$c @print{} 00001213 $a12$d$b12$d @end cartouche @end group @end example gcal-4.1/doc/en/examples/swtim-1.texi0000664000000000000000000000110212244130561014326 00000000000000@c Automatically generated by mksamp-2.sed from swtim-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat swtim-1.rc @print{} ; swtim-1.rc, daylight-saving time BRD @print{} ; @print{} $a=daylight-saving time starts Sunday @print{} ; @print{} a=03sun9 @print{} 0@@a-2#+2 Summer $a~+1 hrs. (02:00 --> 03:00 h.)%i1981 @print{} ; @print{} a=09sun9 @print{} 0@@a-2#+2 Winter $a~-1 hrs. (03:00 --> 02:00 h.)%i1981#1995 @print{} ; @print{} a=10sun9 @print{} 0@@a-2#+2 Winter $a~-1 hrs. (03:00 --> 02:00 h.)%i1996 @end cartouche @end group @end example gcal-4.1/doc/en/examples/lbrk-1.sh0000775000000000000000000000016612244130561013572 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from lbrk-1.in. echo "$ cat lbrk-1.rc" cat ./lbrk-1.rc exit 0 gcal-4.1/doc/en/examples/bio.texi0000664000000000000000000000123212353517071013610 00000000000000@c Automatically generated by mksamp-2.sed from bio.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat bio.rc @print{} 0*d1#999 %;19620921 $ gcal -fbio.rc %19961212 -s0 -xw --biorhythm-axis=19 @print{} @print{} Thu, Dec <12th>1996: 0- I P1 E +0 @print{} Fri, Dec 13th 1996: 0- I P 1 +0 @print{} Sat, Dec 14th 1996: 0- @@ E 0 +0 @print{} Sun, Dec 15th 1996: 0- P IE 0 +0 @print{} Mon, Dec 16th 1996: 0- P E I 0 +0 @print{} Tue, Dec 17th 1996: 1-P E I0 +0 @print{} Wed, Dec 18th 1996: 0- @@ 1 +0 @end cartouche @end group @end example gcal-4.1/doc/en/examples/sun-1a.in0000664000000000000000000000105312244130561013573 00000000000000; sun-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal -fsun-1.rc -Ux -Hno ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %19990912 -fsun-1.rc -Ux -Hno $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tvar-2.rc0000664000000000000000000000007712244130561013605 00000000000000; tvar-2.rc ; $a=$b foo $b=0@e $a bar $b \$b 0 \$a:$a 0 \$b:$b gcal-4.1/doc/en/examples/moon.texi0000664000000000000000000000137612353520456014021 00000000000000@c Automatically generated by mksamp-2.sed from moon.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal -f/dev/null -#0*d1#999_%Z__%O %19950407 -x --moon=8 @print{} @print{} Fri, Apr < 7th>1995: ( @@@@@@@@@@ @print{} ( @@@@@@@@@@@@@@@@ @print{} ( @@@@@@@@@@@@@@@@@@@@@@ @print{} ( @@@@@@@@@@@@@@@@@@@@@@@@ @print{} ( @@@@@@@@@@@@@@@@@@@@@@@@ @print{} ( @@@@@@@@@@@@@@@@@@@@@@ @print{} ( @@@@@@@@@@@@@@@@@@@@ @print{} ( @@@@@@@@@@@@@@ 42%+ @end cartouche @end group @end example gcal-4.1/doc/en/examples/tvar-1a.in0000664000000000000000000000115012244130561013740 00000000000000; tvar-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal %19960101 -H no -x -r '\$A=FROBOZZ:\$x=' -f ./tvar-1.rc ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %19960101 -H no -x -r '$A=FROBOZZ:$x=' -f ./tvar-1.rc $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tvarf-1a.in0000664000000000000000000000116612244130561014115 00000000000000; tvarf-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal -Ux --text-variable='\$b=XXX YY' --resource-file=./tvarf-1.rc ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -Ux --text-variable='$b=XXX YY' --resource-file=./tvarf-1.rc $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tvarc-1.texi0000664000000000000000000000033312244130561014307 00000000000000@c Automatically generated by mksamp-2.sed from tvarc-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat tvarc-1.rc @print{} %t $a $>+06*b $>1u*c @end cartouche @end group @end example gcal-4.1/doc/en/examples/demo-1a.in0000664000000000000000000000110612244130561013711 00000000000000; demo-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal -H no -u -x -f ./demo-1.rc 1996+2002 ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -H no -u -x -f ./demo-1.rc $* 1996+2002 ; ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/bio.in0000664000000000000000000000121312244130561013236 00000000000000; bio.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat bio.rc ***cat ./bio.rc ; %%%gcal -fbio.rc %19961212 -s0 -xw --biorhythm-axis=19 ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -fbio.rc %19961212 -s0 -xw --biorhythm-axis=19 $* ; The resource file line(s) used within this example are prefixed with `:::'. ; :::0*d1#999 %;19620921 ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/speci-1.rc0000664000000000000000000000043012244130561013724 00000000000000; I'm veracious very special :) ; 0 1. Today is %>1u*K , %>02&*D %U %Y ! 0 2. It's the %>03&*N day of the year. 0 3. The actual week number is: %k . 0 4. Currently, it's %t* o'clock, Mr. %-USER . 0 5. Hurry up with your work~\ by reason sunrise is at %o+5158+00738+61,2: . gcal-4.1/doc/en/examples/tvar-2.sh0000775000000000000000000000016612244130561013615 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tvar-2.in. echo "$ cat tvar-2.rc" cat ./tvar-2.rc exit 0 gcal-4.1/doc/en/examples/demo-3a.texi0000664000000000000000000000212212353520475014265 00000000000000@c Automatically generated by mksamp-2.sed from demo-3a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal -H no -u -x -r '$b=08:$f=demo-3.rc' -f ./include.rc Aug 1996 @print{} @print{} Thu, Aug 1st 1996: Work day @print{} Fri, Aug 2nd 1996: Work day @print{} Mon, Aug 5th 1996: Work day @print{} Tue, Aug 6th 1996: Work day @print{} Wed, Aug 7th 1996: Work day @print{} Thu, Aug 8th 1996: Work day @print{} Fri, Aug 9th 1996: Work day @print{} Mon, Aug 12th 1996: Work day @print{} Tue, Aug 13th 1996: Work day @print{} Wed, Aug 14th 1996: Work day @print{} Thu, Aug 15th 1996: Work day @print{} Fri, Aug 16th 1996: Work day @print{} Mon, Aug 19th 1996: Work day @print{} Tue, Aug 20th 1996: Work day @print{} Wed, Aug 21st 1996: Work day @print{} Thu, Aug 22nd 1996: Work day @print{} Fri, Aug 23rd 1996: Work day @print{} Mon, Aug 26th 1996: Work day @print{} Tue, Aug 27th 1996: Work day @print{} Wed, Aug 28th 1996: Work day @print{} Thu, Aug 29th 1996: Work day @print{} Fri, Aug 30th 1996: Work day @end cartouche @end group @end example gcal-4.1/doc/en/examples/redir-1.texi0000664000000000000000000000055012244130561014276 00000000000000@c Automatically generated by mksamp-2.sed from redir-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat redir-1.rc @print{} ; redir.rc, run shell command $c and redirect it to $f @print{} ; @print{} $p=0*d1#999 @print{} $c=$p %!$c @print{} $g=|txt2gcal - $p @print{} ; @print{} $c $g>$f @end cartouche @end group @end example gcal-4.1/doc/en/examples/tvar-2a.sh0000775000000000000000000000053712244130561013760 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tvar-2a.in. echo "$ gcal %19960101 -H no -x -f ./tvar-2.rc" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %19960101 -H no -x -f ./tvar-2.rc $* echo "$ gcal %19960101 -H no -x -f ./tvar-2.rc -y" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %19960101 -H no -x -f ./tvar-2.rc -y $* exit 0 gcal-4.1/doc/en/examples/tdemo-1.texi0000664000000000000000000000072312353520442014305 00000000000000@c Automatically generated by mksamp-2.sed from tdemo-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat tdemo-1.txt @print{} Hi friends, @print{} @print{} I'm the demo text containing funny characters and character @print{} sequences like ~~ \~ % %% $a $1 %%%\ @print{} %\ %s %%foo %bar \%Baz \\~ \~\ and so on... @print{} I'm be anxious how I'll be transformed by `txt2gcal'. @print{} @end cartouche @end group @end example gcal-4.1/doc/en/examples/tdemo-1.rc0000664000000000000000000000037112244130561013735 000000000000000*d1#999 \ Hi friends,~\ ~\ I'm the demo text containing funny characters and character~\ sequences like \~\~ \\~ % %% \$a $1 %%%\ ~\ %\ \%s %\%foo \%bar \\%Baz \\\~ \\~\ and so on...~\ I'm be anxious how I'll be transformed by `txt2gcal'.~\ gcal-4.1/doc/en/examples/demo-1a.texi0000664000000000000000000000147612353517542014277 00000000000000@c Automatically generated by mksamp-2.sed from demo-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal -H no -u -x -f ./demo-1.rc 1996+2002 @print{} @print{} Fri, Sep 13th 1996: Friday the 13th @print{} Fri, Dec 13th 1996: Friday the 13th @print{} @print{} Fri, Jun 13th 1997: Friday the 13th @print{} @print{} Fri, Feb 13th 1998: Friday the 13th @print{} Fri, Mar 13th 1998: Friday the 13th @print{} Fri, Nov 13th 1998: Friday the 13th @print{} @print{} Fri, Aug 13th 1999: Friday the 13th @print{} @print{} Fri, Oct 13th 2000: Friday the 13th @print{} @print{} Fri, Apr 13th 2001: Friday the 13th @print{} Fri, Jul 13th 2001: Friday the 13th @print{} @print{} Fri, Sep 13th 2002: Friday the 13th @print{} Fri, Dec 13th 2002: Friday the 13th @end cartouche @end group @end example gcal-4.1/doc/en/examples/limit.sh0000775000000000000000000000076512244130561013625 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from limit.in. echo "$ gcal %20000506 -f/dev/null -cxl4+ \\" echo "> -#'0*d1#999_%s9+5158+00738,120'" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %20000506 -f/dev/null -#'0*d1#999 %s9+5158+00738,120' -cxl4+ $* echo "$ gcal %20000506 -f/dev/null -cxl4+ --limit \\" echo "> -#'0*d1#999_%s9+5158+00738,120'" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %20000506 -f/dev/null -#'0*d1#999 %s9+5158+00738,120' -cxl4+ --limit $* exit 0 gcal-4.1/doc/en/examples/tvarc-1.rc0000664000000000000000000000002612244130561013741 00000000000000%t $a $>+06*b $>1u*c gcal-4.1/doc/en/examples/dvar-1.rc0000664000000000000000000000021112244130561013552 00000000000000; dvar-1.rc ; z=0202 0@z The local assigned date to `z' z= 0@z The global assigned date to `z' z=0404 0@z The local assigned date to `z' gcal-4.1/doc/en/examples/lbrk-1.rc0000664000000000000000000000043112244130561013554 00000000000000; Hi, I'm `lbrk-1.rc' and alive now ; 0 I know I'm a short text 0 I hope I'm long enough~here, a line break-up~\ and again~and now for the last time... 0 I hope I'm also long enough^here, a line break-up\ ~and again^and now for the last time... 0 Am I another short text? Dunno... gcal-4.1/doc/en/examples/tvar-1.rc0000664000000000000000000000043312244130561013600 00000000000000; tvar-1.rc ; $a=foo 0 \$a:1=$a $c=$a 0 \$c=$c $b=$c bar $a 0 \$b=$b $a=bar $b baz $a booz 0 \$a:2=$a $a= $b=0 $b $c frozz $a frozz $b ->That's \$b 0 \$x='$x' and \$d is undefined: $d... $a= 0 ~ 1~2~\$3~%n~$c~\ now it's enough! 0 \$a=---$a--- $a=0 \ \ \\ And this... $a works too! gcal-4.1/doc/en/examples/dvar-1a.in0000664000000000000000000000131612244130561013724 00000000000000; dvar-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal %1777 -H no -x -v z=1212 -f ./dvar-1.rc -y ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %1777 -H no -x -v z=1212 -f ./dvar-1.rc -y $* ; %%%gcal %1777 -H no -x -f ./dvar-1.rc -y ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %1777 -H no -x -f ./dvar-1.rc -y ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/speci-1.sh0000775000000000000000000000017112244130561013737 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from speci-1.in. echo "$ cat speci-1.rc" cat ./speci-1.rc exit 0 gcal-4.1/doc/en/examples/speci-1a.sh0000775000000000000000000000036012244130561014100 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from speci-1a.in. echo "$ gcal --resource-file=speci-1.rc -H no -ox" LANGUAGE=en GCAL= GCALPATH=. USER=esken ../../../src/gcal %19991004 --resource-file=speci-1.rc -H no -ox $* exit 0 gcal-4.1/doc/en/examples/tvaro-1.rc0000664000000000000000000000034412244130561013760 00000000000000; tvaro-1.rc ; $a=130 $b=2 0 1. \$b=$b $b++ 0 2. \$b=$b $b+=7 0 3. \$b=$b $b-- 0 4. \$b=$b $b-=-5 0 5. \$b=$b $b+=123 0 6. \$b=$b $b-=$a 0 7. \$b=$b $b-=10000 0 8. \$b=$b $b+=10000 0 9. \$b=$b $b=02 0 a. \$b=$b $b++ 0 b. \$b=$b gcal-4.1/doc/en/examples/tvar-2.texi0000664000000000000000000000050212244130561014143 00000000000000@c Automatically generated by mksamp-2.sed from tvar-2.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat tvar-2.rc @print{} ; tvar-2.rc @print{} ; @print{} $a=$b foo @print{} $b=0@@e @print{} $a bar @print{} $b \$b @print{} 0 \$a:$a @print{} 0 \$b:$b @end cartouche @end group @end example gcal-4.1/doc/en/examples/Makefile.am0000664000000000000000000000615312353315047014206 00000000000000# GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . EXTRA_DIST = bio.in \ bio.rc \ bio.sh \ bio.texi \ common.in \ common.rc \ common.sh \ common.texi \ cycle-1.in \ cycle-1.sh \ cycle-1.texi \ cycle-2.in \ cycle-2.sh \ cycle-2.texi \ demo-1a.in \ demo-1a.sh \ demo-1a.texi \ demo-1.in \ demo-1.rc \ demo-1.sh \ demo-1.texi \ demo-2a.in \ demo-2a.sh \ demo-2a.texi \ demo-2.in \ demo-2.rc \ demo-2.sh \ demo-2.texi \ demo-3a.in \ demo-3a.sh \ demo-3a.texi \ demo-3.in \ demo-3.rc \ demo-3.sh \ demo-3.texi \ dvar-1a.in \ dvar-1a.sh \ dvar-1a.texi \ dvar-1.in \ dvar-1.rc \ dvar-1.sh \ dvar-1.texi \ include.in \ include.rc \ include.sh \ include.texi \ lbrk-1a.in \ lbrk-1a.sh \ lbrk-1a.texi \ lbrk-1.in \ lbrk-1.rc \ lbrk-1.sh \ lbrk-1.texi \ limit.in \ limit.sh \ limit.texi \ moon.in \ moon.sh \ moon.texi \ redir-1a.in \ redir-1a.sh \ redir-1a.texi \ redir-1.in \ redir-1.rc \ redir-1.sh \ redir-1.texi \ remark.in \ remark.rc \ remark.sh \ remark.texi \ speci-1a.in \ speci-1a.sh \ speci-1a.texi \ speci-1.in \ speci-1.rc \ speci-1.sh \ speci-1.texi \ sun-1a.in \ sun-1a.sh \ sun-1a.texi \ sun-1.in \ sun-1.rc \ sun-1.sh \ sun-1.texi \ swtim-1a.in \ swtim-1a.sh \ swtim-1a.texi \ swtim-1.in \ swtim-1.rc \ swtim-1.sh \ swtim-1.texi \ tdemo-1a.in \ tdemo-1a.sh \ tdemo-1a.texi \ tdemo-1b.in \ tdemo-1b.sh \ tdemo-1b.texi \ tdemo-1c.in \ tdemo-1c.sh \ tdemo-1c.texi \ tdemo-1.in \ tdemo-1.rc \ tdemo-1.sh \ tdemo-1.texi \ tdemo-1.txt \ tvar-1a.in \ tvar-1a.sh \ tvar-1a.texi \ tvar-1.in \ tvar-1.rc \ tvar-1.sh \ tvar-1.texi \ tvar-2a.in \ tvar-2a.sh \ tvar-2a.texi \ tvar-2.in \ tvar-2.rc \ tvar-2.sh \ tvar-2.texi \ tvar-3a.in \ tvar-3a.sh \ tvar-3a.texi \ tvar-3.in \ tvar-3.rc \ tvar-3.sh \ tvar-3.texi \ tvarc-1a.in \ tvarc-1a.rc \ tvarc-1a.sh \ tvarc-1a.texi \ tvarc-1.in \ tvarc-1.rc \ tvarc-1.sh \ tvarc-1.texi \ tvarf-1a.in \ tvarf-1a.sh \ tvarf-1a.texi \ tvarf-1.in \ tvarf-1.rc \ tvarf-1.sh \ tvarf-1.texi \ tvaro-1a.in \ tvaro-1a.sh \ tvaro-1a.texi \ tvaro-1.in \ tvaro-1.rc \ tvaro-1.sh \ tvaro-1.texi \ wspc-1a.in \ wspc-1a.sh \ wspc-1a.texi \ wspc-1.in \ wspc-1.rc \ wspc-1.sh \ wspc-1.texi gcal-4.1/doc/en/examples/demo-1.rc0000664000000000000000000000112012244130561013542 00000000000000; demo-1.rc ; $a=Friday the 13th%i0000 $b=#0000 $c=fri2 $d=fri3 00000113 $a01$c$b01$c 00000113 $a01$d$b01$d 00000213 $a02$c$b02$c 00000213 $a02$d$b02$d 00000313 $a03$c$b03$c 00000313 $a03$d$b03$d 00000413 $a04$c$b04$c 00000413 $a04$d$b04$d 00000513 $a05$c$b05$c 00000513 $a05$d$b05$d 00000613 $a06$c$b06$c 00000613 $a06$d$b06$d 00000713 $a07$c$b07$c 00000713 $a07$d$b07$d 00000813 $a08$c$b08$c 00000813 $a08$d$b08$d 00000913 $a09$c$b09$c 00000913 $a09$d$b09$d 00001013 $a10$c$b10$c 00001013 $a10$d$b10$d 00001113 $a11$c$b11$c 00001113 $a11$d$b11$d 00001213 $a12$c$b12$c 00001213 $a12$d$b12$d gcal-4.1/doc/en/examples/tvaro-1a.texi0000664000000000000000000000062412244130561014467 00000000000000@c Automatically generated by mksamp-2.sed from tvaro-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal -QUx -f ./tvaro-1.rc @print{} 1. $b=2 @print{} 2. $b=3 @print{} 3. $b=10 @print{} 4. $b=09 @print{} 5. $b=14 @print{} 6. $b=137 @print{} 7. $b=007 @print{} 8. $b=-9993 @print{} 9. $b=00007 @print{} a. $b=02 @print{} b. $b=03 @end cartouche @end group @end example gcal-4.1/doc/en/examples/wspc-1a.in0000664000000000000000000000114012244130561013737 00000000000000; wspc-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal --resource-file=./wspc-1.rc --disable-highlighting ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal --resource-file=./wspc-1.rc --disable-highlighting $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/swtim-1.rc0000664000000000000000000000042712244130561013772 00000000000000; swtim-1.rc, daylight-saving time BRD ; $a=daylight-saving time starts Sunday ; a=03sun9 0@a-2#+2 Summer $a~+1 hrs. (02:00 --> 03:00 h.)%i1981 ; a=09sun9 0@a-2#+2 Winter $a~-1 hrs. (03:00 --> 02:00 h.)%i1981#1995 ; a=10sun9 0@a-2#+2 Winter $a~-1 hrs. (03:00 --> 02:00 h.)%i1996 gcal-4.1/doc/en/examples/tvarf-1.texi0000664000000000000000000000060412244130561014313 00000000000000@c Automatically generated by mksamp-2.sed from tvarf-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat tvarf-1.rc @print{} ; tvarf-1.rc @print{} ; @print{} $a=123 @print{} $b=$:010*a @print{} $c=$b @print{} $b= @print{} 0 1. \$c=.$c. @print{} 0 2. \$c=.$:20*c. @print{} 0 3. \$b=.$>1w*b. @print{} 0 4. \$a=.$>5#a. @end cartouche @end group @end example gcal-4.1/doc/en/examples/lbrk-1.texi0000664000000000000000000000103312244130561014120 00000000000000@c Automatically generated by mksamp-2.sed from lbrk-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat lbrk-1.rc @print{} ; Hi, I'm `lbrk-1.rc' and alive now @print{} ; @print{} 0 I know I'm a short text @print{} 0 I hope I'm long enough~here, a line break-up~\ @print{} and again~and now for the last time... @print{} 0 I hope I'm also long enough^here, a line break-up\ @print{} ~and again^and now for the last time... @print{} 0 Am I another short text? Dunno... @end cartouche @end group @end example gcal-4.1/doc/en/examples/demo-2.texi0000664000000000000000000000122512244130561014116 00000000000000@c Automatically generated by mksamp-2.sed from demo-2.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat demo-2.rc @print{} ; demo-2.rc @print{} ; @print{} $a=%n+12 is a Friday%i0000 @print{} $b=#0000 @print{} $c=sun1 @print{} 00000101 $a01$c$b01$c @print{} 00000201 $a02$c$b02$c @print{} 00000301 $a03$c$b03$c @print{} 00000401 $a04$c$b04$c @print{} 00000501 $a05$c$b05$c @print{} 00000601 $a06$c$b06$c @print{} 00000701 $a07$c$b07$c @print{} 00000801 $a08$c$b08$c @print{} 00000901 $a09$c$b09$c @print{} 00001001 $a10$c$b10$c @print{} 00001101 $a11$c$b11$c @print{} 00001201 $a12$c$b12$c @end cartouche @end group @end example gcal-4.1/doc/en/examples/demo-1a.sh0000775000000000000000000000033212244130561013720 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from demo-1a.in. echo "$ gcal -H no -u -x -f ./demo-1.rc 1996+2002" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -H no -u -x -f ./demo-1.rc $* 1996+2002 exit 0 gcal-4.1/doc/en/examples/tvar-3a.texi0000664000000000000000000000057512244130561014317 00000000000000@c Automatically generated by mksamp-2.sed from tvar-3a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal -QUx -f ./tvar-3.rc @print{} $c=+00+000 $h= $d=+00+000 $x=$x @print{} 05:57 18:04 $ gcal -QUx -r '$h=+1000:$x=' -f ./tvar-3.rc @print{} $c=+00+000 $h=+1000 $d=+00+000+1000 $x= @print{} 05:52 18:09 @end cartouche @end group @end example gcal-4.1/doc/en/examples/include.rc0000664000000000000000000000001612244130561014106 00000000000000#include "$f" gcal-4.1/doc/en/examples/tvarc-1.in0000664000000000000000000000077412244130561013755 00000000000000; tvarc-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat tvarc-1.rc ***cat ./tvarc-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::%t $a $>+06*b $>1u*c ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/swtim-1a.texi0000664000000000000000000000277112353517220014506 00000000000000@c Automatically generated by mksamp-2.sed from swtim-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal %1998 -Hno -xy -f ./swtim-1.rc @print{} @print{} Fri, Mar 27th 1998: Summer daylight-saving time starts Sunday @print{} +1 hrs. (02:00 --> 03:00 h.) @print{} Sat, Mar 28th 1998: Summer daylight-saving time starts Sunday @print{} +1 hrs. (02:00 --> 03:00 h.) @print{} Sun, Mar 29th 1998: Summer daylight-saving time starts Sunday @print{} +1 hrs. (02:00 --> 03:00 h.) @print{} Mon, Mar 30th 1998: Summer daylight-saving time starts Sunday @print{} +1 hrs. (02:00 --> 03:00 h.) @print{} Tue, Mar 31st 1998: Summer daylight-saving time starts Sunday @print{} +1 hrs. (02:00 --> 03:00 h.) @print{} Fri, Oct 23rd 1998: Winter daylight-saving time starts Sunday @print{} -1 hrs. (03:00 --> 02:00 h.) @print{} Sat, Oct 24th 1998: Winter daylight-saving time starts Sunday @print{} -1 hrs. (03:00 --> 02:00 h.) @print{} Sun, Oct 25th 1998: Winter daylight-saving time starts Sunday @print{} -1 hrs. (03:00 --> 02:00 h.) @print{} Mon, Oct 26th 1998: Winter daylight-saving time starts Sunday @print{} -1 hrs. (03:00 --> 02:00 h.) @print{} Tue, Oct 27th 1998: Winter daylight-saving time starts Sunday @print{} -1 hrs. (03:00 --> 02:00 h.) @end cartouche @end group @end example gcal-4.1/doc/en/examples/sun-1a.texi0000664000000000000000000000123212353520466014145 00000000000000@c Automatically generated by mksamp-2.sed from sun-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal -fsun-1.rc -Ux -Hno @print{} @print{} 18:53/12-Sep-1999 actual local time in Muenster @print{} 23:53/12-Sep-1999 actual local time in Bangkok @print{} Sun: @print{} 01:06rise, 13:22set, 12h16'day, 11h44'night @print{} Bangkok-time converted to Muenster's local time @print{} Sun: @print{} 06:06rise, 18:22set, 12h16'day, 11h44'night @print{} Bangkok for that places local time @print{} Sun: @print{} 06:56rise, 19:54set, 12h58'day, 11h02'night @print{} Muenster for that places local time @end cartouche @end group @end example gcal-4.1/doc/en/examples/lbrk-1.in0000664000000000000000000000142112244130561013556 00000000000000; lbrk-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat lbrk-1.rc ***cat ./lbrk-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; Hi, I'm `lbrk-1.rc' and alive now :::; :::0 I know I'm a short text :::0 I hope I'm long enough~here, a line break-up~\ :::and again~and now for the last time... :::0 I hope I'm also long enough^here, a line break-up\ :::~and again^and now for the last time... :::0 Am I another short text? Dunno... ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/redir-1.rc0000664000000000000000000000015512244130561013732 00000000000000; redir.rc, run shell command $c and redirect it to $f ; $p=0*d1#999 $c=$p %!$c $g=|txt2gcal - $p ; $c $g>$f gcal-4.1/doc/en/examples/Makefile.in0000664000000000000000000016240713041163550014217 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/en/examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acos.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asin.m4 \ $(top_srcdir)/m4/assert.m4 $(top_srcdir)/m4/atan.m4 \ $(top_srcdir)/m4/atan2.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/cond.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/cos.m4 $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/fatal-signal.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fflush.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/floor.m4 \ $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpurge.m4 \ $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fseek.m4 $(top_srcdir)/m4/fseeko.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftell.m4 \ $(top_srcdir)/m4/ftello.m4 $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/limits-h.m4 \ $(top_srcdir)/m4/link.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/log.m4 $(top_srcdir)/m4/log10.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mkostemp.m4 \ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \ $(top_srcdir)/m4/pipe2.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/posix_spawn.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/raise.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/realloc.m4 \ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/sched_h.m4 \ $(top_srcdir)/m4/secure_getenv.m4 \ $(top_srcdir)/m4/sig_atomic_t.m4 $(top_srcdir)/m4/sigaction.m4 \ $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sin.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/spawn-pipe.m4 \ $(top_srcdir)/m4/spawn_h.m4 $(top_srcdir)/m4/sqrt.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strcspn.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strstr.m4 \ $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tan.m4 \ $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/tmpdir.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/wait-process.m4 \ $(top_srcdir)/m4/waitpid.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ACOS_LIBM = @ACOS_LIBM@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASIN_LIBM = @ASIN_LIBM@ ATAN2_LIBM = @ATAN2_LIBM@ ATAN_LIBM = @ATAN_LIBM@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CEIL_LIBM = @CEIL_LIBM@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ COS_LIBM = @COS_LIBM@ CP = @CP@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FLOAT_H = @FLOAT_H@ FLOOR_LIBM = @FLOOR_LIBM@ GCAL_HD_OBJS = @GCAL_HD_OBJS@ GCAL_RC_OBJS = @GCAL_RC_OBJS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ACOSF = @GNULIB_ACOSF@ GNULIB_ACOSL = @GNULIB_ACOSL@ GNULIB_ASINF = @GNULIB_ASINF@ GNULIB_ASINL = @GNULIB_ASINL@ GNULIB_ATAN2F = @GNULIB_ATAN2F@ GNULIB_ATANF = @GNULIB_ATANF@ GNULIB_ATANL = @GNULIB_ATANL@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CBRT = @GNULIB_CBRT@ GNULIB_CBRTF = @GNULIB_CBRTF@ GNULIB_CBRTL = @GNULIB_CBRTL@ GNULIB_CEIL = @GNULIB_CEIL@ GNULIB_CEILF = @GNULIB_CEILF@ GNULIB_CEILL = @GNULIB_CEILL@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ GNULIB_COSF = @GNULIB_COSF@ GNULIB_COSHF = @GNULIB_COSHF@ GNULIB_COSL = @GNULIB_COSL@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXP2 = @GNULIB_EXP2@ GNULIB_EXP2F = @GNULIB_EXP2F@ GNULIB_EXP2L = @GNULIB_EXP2L@ GNULIB_EXPF = @GNULIB_EXPF@ GNULIB_EXPL = @GNULIB_EXPL@ GNULIB_EXPM1 = @GNULIB_EXPM1@ GNULIB_EXPM1F = @GNULIB_EXPM1F@ GNULIB_EXPM1L = @GNULIB_EXPM1L@ GNULIB_FABSF = @GNULIB_FABSF@ GNULIB_FABSL = @GNULIB_FABSL@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ GNULIB_FMA = @GNULIB_FMA@ GNULIB_FMAF = @GNULIB_FMAF@ GNULIB_FMAL = @GNULIB_FMAL@ GNULIB_FMOD = @GNULIB_FMOD@ GNULIB_FMODF = @GNULIB_FMODF@ GNULIB_FMODL = @GNULIB_FMODL@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPF = @GNULIB_FREXPF@ GNULIB_FREXPL = @GNULIB_FREXPL@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_HYPOT = @GNULIB_HYPOT@ GNULIB_HYPOTF = @GNULIB_HYPOTF@ GNULIB_HYPOTL = @GNULIB_HYPOTL@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_ILOGB = @GNULIB_ILOGB@ GNULIB_ILOGBF = @GNULIB_ILOGBF@ GNULIB_ILOGBL = @GNULIB_ILOGBL@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPF = @GNULIB_LDEXPF@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOG = @GNULIB_LOG@ GNULIB_LOG10 = @GNULIB_LOG10@ GNULIB_LOG10F = @GNULIB_LOG10F@ GNULIB_LOG10L = @GNULIB_LOG10L@ GNULIB_LOG1P = @GNULIB_LOG1P@ GNULIB_LOG1PF = @GNULIB_LOG1PF@ GNULIB_LOG1PL = @GNULIB_LOG1PL@ GNULIB_LOG2 = @GNULIB_LOG2@ GNULIB_LOG2F = @GNULIB_LOG2F@ GNULIB_LOG2L = @GNULIB_LOG2L@ GNULIB_LOGB = @GNULIB_LOGB@ GNULIB_LOGBF = @GNULIB_LOGBF@ GNULIB_LOGBL = @GNULIB_LOGBL@ GNULIB_LOGF = @GNULIB_LOGF@ GNULIB_LOGL = @GNULIB_LOGL@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_MODF = @GNULIB_MODF@ GNULIB_MODFF = @GNULIB_MODFF@ GNULIB_MODFL = @GNULIB_MODFL@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@ GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@ GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@ GNULIB_POSIX_SPAWNATTR_GETPGROUP = @GNULIB_POSIX_SPAWNATTR_GETPGROUP@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_GETSIGMASK = @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@ GNULIB_POSIX_SPAWNATTR_INIT = @GNULIB_POSIX_SPAWNATTR_INIT@ GNULIB_POSIX_SPAWNATTR_SETFLAGS = @GNULIB_POSIX_SPAWNATTR_SETFLAGS@ GNULIB_POSIX_SPAWNATTR_SETPGROUP = @GNULIB_POSIX_SPAWNATTR_SETPGROUP@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_SETSIGMASK = @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@ GNULIB_POSIX_SPAWNP = @GNULIB_POSIX_SPAWNP@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT@ GNULIB_POWF = @GNULIB_POWF@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMAINDER = @GNULIB_REMAINDER@ GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RINT = @GNULIB_RINT@ GNULIB_RINTF = @GNULIB_RINTF@ GNULIB_RINTL = @GNULIB_RINTL@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_ROUND = @GNULIB_ROUND@ GNULIB_ROUNDF = @GNULIB_ROUNDF@ GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SINF = @GNULIB_SINF@ GNULIB_SINHF = @GNULIB_SINHF@ GNULIB_SINL = @GNULIB_SINL@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTF = @GNULIB_SQRTF@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TANF = @GNULIB_TANF@ GNULIB_TANHF = @GNULIB_TANHF@ GNULIB_TANL = @GNULIB_TANL@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ HAVE_ATAN2F = @HAVE_ATAN2F@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@ HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@ HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@ HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@ HAVE_DECL_LOGB = @HAVE_DECL_LOGB@ HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_REMAINDER = @HAVE_DECL_REMAINDER@ HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@ HAVE_DECL_RINTF = @HAVE_DECL_RINTF@ HAVE_DECL_ROUND = @HAVE_DECL_ROUND@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FMA = @HAVE_FMA@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LOG10F = @HAVE_LOG10F@ HAVE_LOG10L = @HAVE_LOG10L@ HAVE_LOG1P = @HAVE_LOG1P@ HAVE_LOG1PF = @HAVE_LOG1PF@ HAVE_LOG1PL = @HAVE_LOG1PL@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MODFF = @HAVE_MODFF@ HAVE_MODFL = @HAVE_MODFL@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@ HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@ HAVE_POSIX_SPAWN_FILE_ACTIONS_T = @HAVE_POSIX_SPAWN_FILE_ACTIONS_T@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RINT = @HAVE_RINT@ HAVE_RINTL = @HAVE_RINTL@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCHED_H = @HAVE_SCHED_H@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SINF = @HAVE_SINF@ HAVE_SINHF = @HAVE_SINHF@ HAVE_SINL = @HAVE_SINL@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_SPAWN_H = @HAVE_SPAWN_H@ HAVE_SQRTF = @HAVE_SQRTF@ HAVE_SQRTL = @HAVE_SQRTL@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SCHED_PARAM = @HAVE_STRUCT_SCHED_PARAM@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LIB_POSIX_SPAWN = @LIB_POSIX_SPAWN@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOG10_LIBM = @LOG10_LIBM@ LOG_LIBM = @LOG_LIBM@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_SCHED_H = @NEXT_SCHED_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_SPAWN_H = @NEXT_SPAWN_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PAGER1 = @PAGER1@ PAGER2 = @PAGER2@ PAGER3 = @PAGER3@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ POW_LIBM = @POW_LIBM@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACOSF = @REPLACE_ACOSF@ REPLACE_ASINF = @REPLACE_ASINF@ REPLACE_ATAN2F = @REPLACE_ATAN2F@ REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_COSF = @REPLACE_COSF@ REPLACE_COSHF = @REPLACE_COSHF@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ REPLACE_EXPF = @REPLACE_EXPF@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ REPLACE_FABSL = @REPLACE_FABSL@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ REPLACE_FMA = @REPLACE_FMA@ REPLACE_FMAF = @REPLACE_FMAF@ REPLACE_FMAL = @REPLACE_FMAL@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ REPLACE_LOG10F = @REPLACE_LOG10F@ REPLACE_LOG10L = @REPLACE_LOG10L@ REPLACE_LOG1P = @REPLACE_LOG1P@ REPLACE_LOG1PF = @REPLACE_LOG1PF@ REPLACE_LOG1PL = @REPLACE_LOG1PL@ REPLACE_LOG2 = @REPLACE_LOG2@ REPLACE_LOG2F = @REPLACE_LOG2F@ REPLACE_LOG2L = @REPLACE_LOG2L@ REPLACE_LOGB = @REPLACE_LOGB@ REPLACE_LOGBF = @REPLACE_LOGBF@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_SPAWN = @REPLACE_POSIX_SPAWN@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SINF = @REPLACE_SINF@ REPLACE_SINHF = @REPLACE_SINHF@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TANF = @REPLACE_TANF@ REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SCHED_H = @SCHED_H@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIN_LIBM = @SIN_LIBM@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ SQRT_LIBM = @SQRT_LIBM@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TAN_LIBM = @TAN_LIBM@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ZDUMP = @ZDUMP@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = bio.in \ bio.rc \ bio.sh \ bio.texi \ common.in \ common.rc \ common.sh \ common.texi \ cycle-1.in \ cycle-1.sh \ cycle-1.texi \ cycle-2.in \ cycle-2.sh \ cycle-2.texi \ demo-1a.in \ demo-1a.sh \ demo-1a.texi \ demo-1.in \ demo-1.rc \ demo-1.sh \ demo-1.texi \ demo-2a.in \ demo-2a.sh \ demo-2a.texi \ demo-2.in \ demo-2.rc \ demo-2.sh \ demo-2.texi \ demo-3a.in \ demo-3a.sh \ demo-3a.texi \ demo-3.in \ demo-3.rc \ demo-3.sh \ demo-3.texi \ dvar-1a.in \ dvar-1a.sh \ dvar-1a.texi \ dvar-1.in \ dvar-1.rc \ dvar-1.sh \ dvar-1.texi \ include.in \ include.rc \ include.sh \ include.texi \ lbrk-1a.in \ lbrk-1a.sh \ lbrk-1a.texi \ lbrk-1.in \ lbrk-1.rc \ lbrk-1.sh \ lbrk-1.texi \ limit.in \ limit.sh \ limit.texi \ moon.in \ moon.sh \ moon.texi \ redir-1a.in \ redir-1a.sh \ redir-1a.texi \ redir-1.in \ redir-1.rc \ redir-1.sh \ redir-1.texi \ remark.in \ remark.rc \ remark.sh \ remark.texi \ speci-1a.in \ speci-1a.sh \ speci-1a.texi \ speci-1.in \ speci-1.rc \ speci-1.sh \ speci-1.texi \ sun-1a.in \ sun-1a.sh \ sun-1a.texi \ sun-1.in \ sun-1.rc \ sun-1.sh \ sun-1.texi \ swtim-1a.in \ swtim-1a.sh \ swtim-1a.texi \ swtim-1.in \ swtim-1.rc \ swtim-1.sh \ swtim-1.texi \ tdemo-1a.in \ tdemo-1a.sh \ tdemo-1a.texi \ tdemo-1b.in \ tdemo-1b.sh \ tdemo-1b.texi \ tdemo-1c.in \ tdemo-1c.sh \ tdemo-1c.texi \ tdemo-1.in \ tdemo-1.rc \ tdemo-1.sh \ tdemo-1.texi \ tdemo-1.txt \ tvar-1a.in \ tvar-1a.sh \ tvar-1a.texi \ tvar-1.in \ tvar-1.rc \ tvar-1.sh \ tvar-1.texi \ tvar-2a.in \ tvar-2a.sh \ tvar-2a.texi \ tvar-2.in \ tvar-2.rc \ tvar-2.sh \ tvar-2.texi \ tvar-3a.in \ tvar-3a.sh \ tvar-3a.texi \ tvar-3.in \ tvar-3.rc \ tvar-3.sh \ tvar-3.texi \ tvarc-1a.in \ tvarc-1a.rc \ tvarc-1a.sh \ tvarc-1a.texi \ tvarc-1.in \ tvarc-1.rc \ tvarc-1.sh \ tvarc-1.texi \ tvarf-1a.in \ tvarf-1a.sh \ tvarf-1a.texi \ tvarf-1.in \ tvarf-1.rc \ tvarf-1.sh \ tvarf-1.texi \ tvaro-1a.in \ tvaro-1a.sh \ tvaro-1a.texi \ tvaro-1.in \ tvaro-1.rc \ tvaro-1.sh \ tvaro-1.texi \ wspc-1a.in \ wspc-1a.sh \ wspc-1a.texi \ wspc-1.in \ wspc-1.rc \ wspc-1.sh \ wspc-1.texi all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/en/examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/en/examples/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gcal-4.1/doc/en/examples/remark.in0000664000000000000000000000410112244130561013745 00000000000000; remark.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat remark.rc ***cat ./remark.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::;00001031 ^\ ::: .......^\ ::: ;::;::,^\ ::: ;::;::;,^\ ::: ;;::;;:;;,^\ ::: .vmnv\%vnv\%,.;;;:::;;:;;, .,vnmv\%vnn,^\ ::: vmmmn\%vmmnv\%vnmmnv\%;;;;;;\%nmmmnv\%vnmv\%vmmv^\ ::: vmmnv\%vmmmnv\%vnmmmmmnv\%;:\%nmmmmmmnv\%vnm\%vnmmmv^\ ::: vmmnv\%vmmmnv\%vnmmmmmmmmnv\%nmmmmmmmmnv\%vnmm\%vnmmmv^\ ::: vmmnv\%vmmmnv\%vnmmmmmmmmnv\%vmmmmmmmmmmnv\%vnmv\%vnmmmv^\ ::: vmmnv\%vmmmnv\%vnmm;mmmmmmnv\%vmmmmmmmm;mmnv\%vnmv\%vnmmmv,^\ ::: vmmnv\%vmmmnv\%vnmm;' mmmmmnv\%vmmmmmmm;' mmnv\%vnmv\%vnmmmv,^\ ::: vmmnv\%vmmmnv\%vn;; mmmmnv\%vmmmmmm;; nv\%vnmmv\%vnmmmv^\ :::vmmnv\%vmmmmnv\%v;; mmmnv\%vmmmmm;; v\%vnmmmv\%vnmmmv^\ :::vmmnv\%vmmmmnv\%vnmmmmmmmmm;; mmmmmmmmmnv\%vnmmmmv\%vnmmmv^\ :::vmmnv\%vmmmmnv\%vnmmmmmmmmmm;; mmmmmmmmmmnv\%vnmmmmv\%vnmmmv^\ :::vmmnv\%vmmmmnv\%vnmmmmmmmmmmnv;,mmmmmmmmmmmmnv\%vn;mmmv\%vnmmmv^\ :::vmmnv\%vmmm. nv\%vnmmmmmmmmmnv\%;mmmmmmmmmmmnv\%vn; mmmv\%vnmmmv^\ :::`vmmnv\%vmm, v\%vnmmmmmmmmmmnv\%nmmmmmmmmmmnv\%v; mmv\%vnnmmv'^\ ::: vmmnv\%vmm;, \%vnmmmmmmmmmnv\%nmmmmmmmmmnv\%;' mv\%vnmmmmv^\ ::: vmmnv\%vmm;;, nmmm;' mmmm;;' mv\%vnmmmmv'^\ ::: `vmmnv\%vmmm;;,. mmnvv;, mmv\%vnmmmmv'^\ ::: `vmmnv\%vmmmmnv\%vnmmmmmmmmnvvnmmmmmmnv\%vnmmmv\%vnmmmmv'^\ ::: `vmvn\%vmmmmnv\%vnmmmmmmmnvvnmmmmmnv\%vnmmmm\%vnmmmv'^\ ::: `v\%mmmmmn%:\%vnmnmmmmn\%vnmmmnv%:\%vnmv\%nmv' ::: :::; A remarked line ::: ; Also a remarked line :::; A \ ::: formatted and multi-line \ ::: remark ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/cycle-2.sh0000775000000000000000000000070612244130561013740 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from cycle-2.in. echo "$ gcal %20000420 -Hno -f/dev/null -xdt -g::: \\" echo "> --here='0*d1#999_%ot+00+000_:_%o*a+5158+00738,120' \\" echo "> --cycle-end=10:00 --time=17:00 --cycle-step=1:15" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %20000420 -Hno -f/dev/null -xdt -g::: --here='0*d1#999_%ot+00+000_:_%o*a+5158+00738,120' --cycle-end=10:00 --time=17:00 --cycle-step=1:15 $* exit 0 gcal-4.1/doc/en/examples/tvar-3a.in0000664000000000000000000000122512244130561013745 00000000000000; tvar-3a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal -QUx -f ./tvar-3.rc ***GCAL= GCALPATH=. ../../../src/gcal -QUx -f ./tvar-3.rc $* %%%gcal -QUx -r '\$h=+1000:\$x=' -f ./tvar-3.rc ***GCAL= GCALPATH=. ../../../src/gcal -QUx -r '$h=+1000:$x=' -f ./tvar-3.rc $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/swtim-1a.in0000664000000000000000000000107112244130561014131 00000000000000; swtim-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal %1998 -Hno -xy -f ./swtim-1.rc ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %1998 -Hno -xy -f ./swtim-1.rc $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/dvar-1a.texi0000664000000000000000000000111112353517005014263 00000000000000@c Automatically generated by mksamp-2.sed from dvar-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal %1777 -H no -x -v z=1212 -f ./dvar-1.rc -y @print{} @print{} Sun, Feb 2nd 1777: The local assigned date to `z' @print{} Fri, Apr 4th 1777: The local assigned date to `z' @print{} Fri, Dec 12th 1777: The global assigned date to `z' $ gcal %1777 -H no -x -f ./dvar-1.rc -y @print{} @print{} Sun, Feb 2nd 1777: The local assigned date to `z' @print{} Fri, Apr 4th 1777: The local assigned date to `z' @end cartouche @end group @end example gcal-4.1/doc/en/examples/tvar-2a.texi0000664000000000000000000000065112353520413014311 00000000000000@c Automatically generated by mksamp-2.sed from tvar-2a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal %19960101 -H no -x -f ./tvar-2.rc @print{} @print{} Mon, Jan 1st 1996: $a:0@@e foo @print{} Mon, Jan 1st 1996: $b:0@@e $ gcal %19960101 -H no -x -f ./tvar-2.rc -y @print{} @print{} Sun, Apr 7th 1996: $b @print{} Sun, Apr 7th 1996: foo bar @end cartouche @end group @end example gcal-4.1/doc/en/examples/limit.in0000664000000000000000000000151712244130561013612 00000000000000; limit.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal %20000506 -f/dev/null -cxl4+ \\ %%> -#'0*d1#999_%s9+5158+00738,120' ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %20000506 -f/dev/null -#'0*d1#999 %s9+5158+00738,120' -cxl4+ $* %%%gcal %20000506 -f/dev/null -cxl4+ --limit \\ %%> -#'0*d1#999_%s9+5158+00738,120' ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %20000506 -f/dev/null -#'0*d1#999 %s9+5158+00738,120' -cxl4+ --limit $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tvarc-1a.sh0000775000000000000000000000043212244130561014114 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tvarc-1a.in. echo "$ cat tvarc-1a.rc" cat ./tvarc-1a.rc echo "$ gcal -f tvarc-1a.rc -QUx --exe -r'\$f=./tvarc-1.rc'" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -f tvarc-1a.rc -QUx --exe -r'$f=./tvarc-1.rc' $* exit 0 gcal-4.1/doc/en/examples/tvar-3.texi0000664000000000000000000000051412244130561014147 00000000000000@c Automatically generated by mksamp-2.sed from tvar-3.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat tvar-3.rc @print{} ; tvar-3.rc @print{} ; @print{} $c=+00+000 @print{} $h= @print{} $d=$c$h @print{} 0 %o$d %s$d @print{} 0 \$c=$c \$h=$h \$d=$d \$x=$x @end cartouche @end group @end example gcal-4.1/doc/en/examples/demo-2a.in0000664000000000000000000000110412244130561013710 00000000000000; demo-2a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal -H no -u -x -f ./demo-2.rc 1996+2002 ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -H no -u -x -f ./demo-2.rc $* 1996+2002 ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/demo-2.sh0000775000000000000000000000016612244130561013565 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from demo-2.in. echo "$ cat demo-2.rc" cat ./demo-2.rc exit 0 gcal-4.1/doc/en/examples/tvaro-1a.sh0000775000000000000000000000027312244130561014133 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tvaro-1a.in. echo "$ gcal -QUx -f ./tvaro-1.rc" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -QUx -f ./tvaro-1.rc $* exit 0 gcal-4.1/doc/en/examples/dvar-1.sh0000775000000000000000000000016612244130561013574 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from dvar-1.in. echo "$ cat dvar-1.rc" cat ./dvar-1.rc exit 0 gcal-4.1/doc/en/examples/swtim-1a.sh0000775000000000000000000000031712244130561014142 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from swtim-1a.in. echo "$ gcal %1998 -Hno -xy -f ./swtim-1.rc" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %1998 -Hno -xy -f ./swtim-1.rc $* exit 0 gcal-4.1/doc/en/examples/tdemo-1a.texi0000664000000000000000000000103112244130561014435 00000000000000@c Automatically generated by mksamp-2.sed from tdemo-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ txt2gcal tdemo-1.txt 0*d1#999 > tdemo-1.rc $ cat tdemo-1.rc @print{} 0*d1#999 \ Hi friends,~\ @print{} ~\ @print{} I'm the demo text containing funny characters and character~\ @print{} sequences like \~\~ \\~ % %% \$a $1 %%%\ ~\ @print{} %\ \%s %\%foo \%bar \\%Baz \\\~ \\~\ and so on...~\ @print{} I'm be anxious how I'll be transformed by `txt2gcal'.~\ @end cartouche @end group @end example gcal-4.1/doc/en/examples/demo-3a.sh0000775000000000000000000000041412244130561013723 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from demo-3a.in. echo "$ gcal -H no -u -x -r '\$b=08:\$f=demo-3.rc' -f ./include.rc Aug 1996" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -H no -u -x -r '$b=08:$f=demo-3.rc' -f ./include.rc $* Aug 1996 exit 0 gcal-4.1/doc/en/examples/tvarc-1a.in0000664000000000000000000000142612244130561014111 00000000000000; tvarc-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat tvarc-1a.rc ***cat ./tvarc-1a.rc ; %%%gcal -f tvarc-1a.rc -QUx --exe -r'\$f=./tvarc-1.rc' ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -f tvarc-1a.rc -QUx --exe -r'$f=./tvarc-1.rc' $* ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; tvarc-1a.rc :::; :::$a=bonjour :::$b=123 :::$c=bonsoir :::$x?cat $f :::0 \$x=---$:30*x--- :::$y:cat $f :::0 \$y=---$y--- :::0 \$y=:::$>1u*y::: ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/limit.texi0000664000000000000000000000117512353520467014166 00000000000000@c Automatically generated by mksamp-2.sed from limit.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal %20000506 -f/dev/null -cxl4+ \ > -#'0*d1#999_%s9+5158+00738,120' @print{} @print{} Sun, May 7th 2000: 23:52 @print{} Mon, May 8th 2000: 23:57 @print{} Tue, May 9th 2000: 00:01 @print{} Wed, May 10th 2000: 00:06 $ gcal %20000506 -f/dev/null -cxl4+ --limit \ > -#'0*d1#999_%s9+5158+00738,120' @print{} @print{} Sun, May 7th 2000: 23:52 @print{} Mon, May 8th 2000: 23:57 @print{} Tue, May 9th 2000: **:** @print{} Wed, May 10th 2000: **:** @end cartouche @end group @end example gcal-4.1/doc/en/examples/tvarc-1a.texi0000664000000000000000000000111312244130561014445 00000000000000@c Automatically generated by mksamp-2.sed from tvarc-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat tvarc-1a.rc @print{} ; tvarc-1a.rc @print{} ; @print{} $a=bonjour @print{} $b=123 @print{} $c=bonsoir @print{} $x?cat $f @print{} 0 \$x=---$:30*x--- @print{} $y:cat $f @print{} 0 \$y=---$y--- @print{} 0 \$y=:::$>1u*y::: $ gcal -f tvarc-1a.rc -QUx --exe -r'$f=./tvarc-1.rc' @print{} $x=--- 18:54 bonjour +00123 BONSOIR --- @print{} $y=---%t $a $>+06*b $>1u*c--- @print{} $y=:::%T $A $>+06*B $>1U*C::: @end cartouche @end group @end example gcal-4.1/doc/en/examples/swtim-1.in0000664000000000000000000000143612244130561013775 00000000000000; swtim-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat swtim-1.rc ***cat ./swtim-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; swtim-1.rc, daylight-saving time BRD :::; :::$a=daylight-saving time starts Sunday :::; :::a=03sun9 :::0@a-2#+2 Summer $a~+1 hrs. (02:00 --> 03:00 h.)%i1981 :::; :::a=09sun9 :::0@a-2#+2 Winter $a~-1 hrs. (03:00 --> 02:00 h.)%i1981#1995 :::; :::a=10sun9 :::0@a-2#+2 Winter $a~-1 hrs. (03:00 --> 02:00 h.)%i1996 ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/remark.sh0000775000000000000000000000016612244130561013763 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from remark.in. echo "$ cat remark.rc" cat ./remark.rc exit 0 gcal-4.1/doc/en/examples/tvaro-1a.in0000664000000000000000000000104512244130561014122 00000000000000; tvaro-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal -QUx -f ./tvaro-1.rc ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -QUx -f ./tvaro-1.rc $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/sun-1a.sh0000775000000000000000000000030112244130561013575 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from sun-1a.in. echo "$ gcal -fsun-1.rc -Ux -Hno" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %19990912 -fsun-1.rc -Ux -Hno $* exit 0 gcal-4.1/doc/en/examples/bio.rc0000664000000000000000000000002412244130561013233 000000000000000*d1#999 %;19620921 gcal-4.1/doc/en/examples/wspc-1.in0000664000000000000000000000132712244130561013605 00000000000000; wspc-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat wspc-1.rc ***cat ./wspc-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::0 BANG BANG :::0 bogus :::0 bogomips :::0 \hello world :::0 \ main(){for(;;)fork();} :::0 \ sh $0 & $0 & :::0 \ a \ b \\ c \\\ d :::0 What happens now?\ :::~0 \ This! :::0 What happens now?\\ :::~0 \ That! ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tdemo-1a.in0000664000000000000000000000113312244130561014075 00000000000000; tdemo-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%txt2gcal tdemo-1.txt 0*d1#999 > tdemo-1.rc ***LANGUAGE=en ../../../src/txt2gcal tdemo-1.txt 0*d1#999 > tdemo-1.rc ; %%%cat tdemo-1.rc ***cat ./tdemo-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/wspc-1.texi0000664000000000000000000000076512244130561014155 00000000000000@c Automatically generated by mksamp-2.sed from wspc-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat wspc-1.rc @print{} 0 BANG BANG @print{} 0 bogus @print{} 0 bogomips @print{} 0 \hello world @print{} 0 \ main()@{for(;;)fork();@} @print{} 0 \ sh $0 & $0 & @print{} 0 \ a \ b \\ c \\\ d @print{} 0 What happens now?\ @print{} ~0 \ This! @print{} 0 What happens now?\\ @print{} ~0 \ That! @end cartouche @end group @end example gcal-4.1/doc/en/examples/tdemo-1b.texi0000664000000000000000000000102412353517226014450 00000000000000@c Automatically generated by mksamp-2.sed from tdemo-1b.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal %19960101 -H no -Ax -f ./tdemo-1.rc @print{} @print{} Mon, Jan 1st 1996: @print{} Hi friends, @print{} @print{} I'm the demo text containing funny characters and character @print{} sequences like ~~ \~ % %% $a $1 %%%\ @print{} %\ %s %%foo %bar \%Baz \\~ \~\ and so on... @print{} I'm be anxious how I'll be transformed by `txt2gcal'. @print{} @end cartouche @end group @end example gcal-4.1/doc/en/examples/dvar-1a.sh0000775000000000000000000000054612244130561013737 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from dvar-1a.in. echo "$ gcal %1777 -H no -x -v z=1212 -f ./dvar-1.rc -y" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %1777 -H no -x -v z=1212 -f ./dvar-1.rc -y $* echo "$ gcal %1777 -H no -x -f ./dvar-1.rc -y" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %1777 -H no -x -f ./dvar-1.rc -y exit 0 gcal-4.1/doc/en/examples/moon.sh0000775000000000000000000000036512244130561013453 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from moon.in. echo "$ gcal -f/dev/null -#0*d1#999_%Z__%O %19950407 -x --moon=8" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -f/dev/null -#0*d1#999_%Z__%O %19950407 -x --moon=8 $* exit 0 gcal-4.1/doc/en/examples/redir-1.sh0000775000000000000000000000017112244130561013741 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from redir-1.in. echo "$ cat redir-1.rc" cat ./redir-1.rc exit 0 gcal-4.1/doc/en/examples/speci-1a.texi0000664000000000000000000000115512353520451014441 00000000000000@c Automatically generated by mksamp-2.sed from speci-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal --resource-file=speci-1.rc -H no -ox @print{} @print{} Mon, Oct 4th 1999: 1. Today is MONDAY, 04th October 1999! @print{} 2. It's the 277th day of the year. @print{} 3. The actual week number is: 40. @print{} 4. Currently, it's 06:53pm o'clock, Mr. esken. @print{} 5. Hurry up with your work @print{} by reason sunrise is at 07:33. @end cartouche @end group @end example gcal-4.1/doc/en/examples/common.sh0000775000000000000000000000016612244130561013772 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from common.in. echo "$ cat common.rc" cat ./common.rc exit 0 gcal-4.1/doc/en/examples/tvar-3.in0000664000000000000000000000111012244130561013575 00000000000000; tvar-3.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat tvar-3.rc ***cat ./tvar-3.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; tvar-3.rc :::; :::$c=+00+000 :::$h= :::$d=$c$h :::0 %o$d %s$d :::0 \$c=$c \$h=$h \$d=$d \$x=$x ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/common.rc0000664000000000000000000000232612244130561013761 00000000000000; common.rc, a common example of a resource file. ; 19940715 Local time: %t --> Dentist at 10:00 00000921 My %B1962 birthday%i1952#2062 0000093 Gregorian~Reformation\~is %y1752 years ago 0000Sep03 Gregorian~Reformation\~is %y1752 years ago 0 Every day in every month in every year 0000 Every day in every month in every year 00000000 Every day in every month in every year 199400fri Every Friday in 1994 000007mo3 Every third Monday~in July every year less 1980%i#1979 0000@e-10 Easter Sunday-10 days every year 0@e-10 Easter Sunday-10 days every year 0000@e+10 Easter Sunday+10 days every year a=1127 0@a+20 20 days after date of date variable `a' a=*W10FR 0@a-1 The Thursday of the 10th week every year 0@a The Friday of the 10th week every year 0@a1 The Saturday of the 10th week every year 1995*d10 The 10th absolute day in 1995 1995*d99tue The last Tuesday in 1995 0*w99su The Sunday of the last week every year ; ; Next entry is respected by ALL fixed date period modifiers. ; 1994*d1sun#99SUN.7 Each Sunday in 1994 ; ; Day of Prayer & Repentance is Wednesday before the Sunday, ; which is before the 1st Advent's Sunday. ; a=1225 a=a-5sun 0@a-4 Day of Prayer & Repentance ; or 0@a-1wed Day of Prayer & Repentance gcal-4.1/doc/en/examples/demo-3.sh0000775000000000000000000000016612244130561013566 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from demo-3.in. echo "$ cat demo-3.rc" cat ./demo-3.rc exit 0 gcal-4.1/doc/en/examples/tdemo-1c.sh0000775000000000000000000000023312244130561014106 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tdemo-1c.in. echo "$ gcal2txt tdemo-1.rc" LANGUAGE=en ../../../src/gcal2txt tdemo-1.rc exit 0 gcal-4.1/doc/en/examples/lbrk-1a.texi0000664000000000000000000000140412353520446014271 00000000000000@c Automatically generated by mksamp-2.sed from lbrk-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal %00000101 --resource-file=./lbrk-1.rc --disable-highlighting @print{} @print{} Fixed date list: @print{} @print{} Sat, Jan 1st 2000: Am I another short text? Dunno... @print{} Sat, Jan 1st 2000: I hope I'm also long enough @print{} here, a line break-up @print{} and again @print{} and now for the last time... @print{} Sat, Jan 1st 2000: I hope I'm long enough @print{} here, a line break-up @print{} and again @print{} and now for the last time... @print{} Sat, Jan 1st 2000: I know I'm a short text @end cartouche @end group @end example gcal-4.1/doc/en/examples/dvar-1.texi0000664000000000000000000000061612244130561014130 00000000000000@c Automatically generated by mksamp-2.sed from dvar-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat dvar-1.rc @print{} ; dvar-1.rc @print{} ; @print{} z=0202 @print{} 0@@z The local assigned date to `z' @print{} z= @print{} 0@@z The global assigned date to `z' @print{} z=0404 @print{} 0@@z The local assigned date to `z' @end cartouche @end group @end example gcal-4.1/doc/en/examples/tvarc-1.sh0000775000000000000000000000017112244130561013753 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tvarc-1.in. echo "$ cat tvarc-1.rc" cat ./tvarc-1.rc exit 0 gcal-4.1/doc/en/examples/speci-1.texi0000664000000000000000000000103412244130561014272 00000000000000@c Automatically generated by mksamp-2.sed from speci-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat speci-1.rc @print{} ; I'm veracious very special :) @print{} ; @print{} 0 1. Today is %>1u*K , %>02&*D %U %Y ! @print{} 0 2. It's the %>03&*N day of the year. @print{} 0 3. The actual week number is: %k . @print{} 0 4. Currently, it's %t* o'clock, Mr. %-USER . @print{} 0 5. Hurry up with your work~\ @print{} by reason sunrise is at %o+5158+00738+61,2: . @end cartouche @end group @end example gcal-4.1/doc/en/examples/demo-1.sh0000775000000000000000000000016612244130561013564 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from demo-1.in. echo "$ cat demo-1.rc" cat ./demo-1.rc exit 0 gcal-4.1/doc/en/examples/cycle-1.in0000664000000000000000000000137412244130561013732 00000000000000; cycle-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal %20000420 -Hno -f/dev/null -xdt -g::: \\ %%> --here='0*d1#999_%ot+00+000_:_%oa+5158+00738,120' \\ %%> --cycle-end=12:05 --time=12:00 ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %20000420 -Hno -f/dev/null -xdt -g::: --here='0*d1#999_%ot+00+000_:_%oa+5158+00738,120' --cycle-end=12:05 --time=12: $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/demo-3.rc0000664000000000000000000000032712244130561013554 00000000000000; demo-3.rc ; $a=%VWork day $c=%i#0000$b99 a=$bmon1 0@a#+4 $a a=$btue1 0@a#+3 $a a=$bwed1 0@a#+2 $a a=$bthu1 0@a#+1 $a a=$bfri1 0@a $a a=$bmon2 0@a#+4 $a a=$bmon3 0@a#+4 $a a=$bmon4 0@a#+4 $a$c a=$bmon9 0@a#+4 $a$c gcal-4.1/doc/en/examples/swtim-1.sh0000775000000000000000000000017112244130561013777 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from swtim-1.in. echo "$ cat swtim-1.rc" cat ./swtim-1.rc exit 0 gcal-4.1/doc/en/examples/redir-1.in0000664000000000000000000000114512244130561013734 00000000000000; redir-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat redir-1.rc ***cat ./redir-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; redir.rc, run shell command $c and redirect it to $f :::; :::$p=0*d1#999 :::$c=$p %!$c :::$g=|txt2gcal - $p :::; :::$c $g>$f ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/sun-1.in0000664000000000000000000000400412244130561013431 00000000000000; sun-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat sun-1.rc ***cat ./sun-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; sun-1.rc, comparison of sunrise / sunset, day length and night :::; length of two locations, namely: Muenster.DE / Bangkok.TH :::; All references are based on Muenster.DE ! :::; :::; Common definitions :::$p=0*d1#999 :::$v=%2%4 for that places local time :::$z=actual local time in :::; Definitions for winter time :::$a=%e#1980 %e0@a#0@b-1 :::$x=Sun:~%o$c,$w rise, %s$c,$w set, %u$c,$w day, %z$c,$w night~$l :::; Winter time in Germany == CEWT/GMT-1 (+60 minutes) :::$w=+60 :::; Starting date of winter time in Germany :::b=10sun9 :::; Definitions for summer time (daylight-saving time) :::$b=%e#1980 %i0@a#0@b-1 :::$y=Sun:~%o$c,$s rise, %s$c,$s set, %u$c,$s day, %z$c,$s night~$l :::; Summer time in Germany == CEST/GMT-2 (+120 minutes) :::$s=+120 :::; Starting date of summer time in Germany :::a=03sun9 :::; Geographic co-ordinate and name of the location Muenster, Germany :::$c=+5158+00738+61 :::$l=%1Muenster :::; Muenster's local time sunrise etc. for that places local time :::$p $a $x$v :::$p $b $y$v :::; Muenster's actual local time :::0 $a %1%@$w %2 $z $l :::0 $b %1%@$s %2 $z $l :::; Geographic co-ordinate and name of the location Bangkok, Thailand :::$c=+1345+10031+10 :::$l=%3Bangkok%4-time converted to $l's%2 local time :::; Bangkok's sunrise etc. based on Muenster's local time :::$p $a $x :::$p $b $y :::; Bangkok's local time == WAST/GMT-7 (+420 minutes) :::$t=+420 :::$w=$t :::; Bangkok's actual local time :::$l=%3Bangkok :::0 $a %3%@$t %4 $z $l :::0 $b %3%@$t %4 $z $l :::; Bangkok's sunrise etc. for that places local time :::$l=$l$v :::$p $x ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/demo-2a.sh0000775000000000000000000000033212244130561013721 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from demo-2a.in. echo "$ gcal -H no -u -x -f ./demo-2.rc 1996+2002" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -H no -u -x -f ./demo-2.rc $* 1996+2002 exit 0 gcal-4.1/doc/en/examples/tdemo-1b.in0000664000000000000000000000110312244130561014073 00000000000000; tdemo-1b.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal %19960101 -H no -Ax -f ./tdemo-1.rc ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %19960101 -H no -Ax -f ./tdemo-1.rc $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tvarf-1.rc0000664000000000000000000000015612244130561013750 00000000000000; tvarf-1.rc ; $a=123 $b=$:010*a $c=$b $b= 0 1. \$c=.$c. 0 2. \$c=.$:20*c. 0 3. \$b=.$>1w*b. 0 4. \$a=.$>5#a. gcal-4.1/doc/en/examples/tvarf-1a.sh0000775000000000000000000000041412244130561014117 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tvarf-1a.in. echo "$ gcal -Ux --text-variable='\$b=XXX YY' --resource-file=./tvarf-1.rc" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -Ux --text-variable='$b=XXX YY' --resource-file=./tvarf-1.rc $* exit 0 gcal-4.1/doc/en/examples/demo-3a.in0000664000000000000000000000116612244130561013721 00000000000000; demo-3a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal -H no -u -x -r '\$b=08:\$f=demo-3.rc' -f ./include.rc Aug 1996 ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -H no -u -x -r '$b=08:$f=demo-3.rc' -f ./include.rc $* Aug 1996 ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/sun-1.sh0000775000000000000000000000016312244130561013442 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from sun-1.in. echo "$ cat sun-1.rc" cat ./sun-1.rc exit 0 gcal-4.1/doc/en/examples/common.in0000664000000000000000000000344212244130561013763 00000000000000; common.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat common.rc ***cat ./common.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; common.rc, a common example of a resource file. :::; :::19940715 Local time: %t --> Dentist at 10:00 :::00000921 My %B1962 birthday%i1952#2062 :::0000093 Gregorian~Reformation\~is %y1752 years ago :::0000Sep03 Gregorian~Reformation\~is %y1752 years ago :::0 Every day in every month in every year :::0000 Every day in every month in every year :::00000000 Every day in every month in every year :::199400fri Every Friday in 1994 :::000007mo3 Every third Monday~in July every year less 1980%i#1979 :::0000@e-10 Easter Sunday-10 days every year :::0@e-10 Easter Sunday-10 days every year :::0000@e+10 Easter Sunday+10 days every year :::a=1127 :::0@a+20 20 days after date of date variable `a' :::a=*W10FR :::0@a-1 The Thursday of the 10th week every year :::0@a The Friday of the 10th week every year :::0@a1 The Saturday of the 10th week every year :::1995*d10 The 10th absolute day in 1995 :::1995*d99tue The last Tuesday in 1995 :::0*w99su The Sunday of the last week every year :::; :::; Next entry is respected by ALL fixed date period modifiers. :::; :::1994*d1sun#99SUN.7 Each Sunday in 1994 :::; :::; Day of Prayer & Repentance is Wednesday before the Sunday, :::; which is before the 1st Advent's Sunday. :::; :::a=1225 :::a=a-5sun :::0@a-4 Day of Prayer & Repentance :::; or :::0@a-1wed Day of Prayer & Repentance ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tvarf-1a.texi0000664000000000000000000000055512353517127014471 00000000000000@c Automatically generated by mksamp-2.sed from tvarf-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal -Ux --text-variable='$b=XXX YY' --resource-file=./tvarf-1.rc @print{} @print{} 1. $c=.0000000123. @print{} 2. $c=. 0000000123 . @print{} 3. $b=.Xxx Yy. @print{} 4. $a=. 123. @end cartouche @end group @end example gcal-4.1/doc/en/examples/demo-2a.texi0000664000000000000000000000163612353517206014273 00000000000000@c Automatically generated by mksamp-2.sed from demo-2a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal -H no -u -x -f ./demo-2.rc 1996+2002 @print{} @print{} Sun, Sep 1st 1996: 13-Sep-1996 is a Friday @print{} Sun, Dec 1st 1996: 13-Dec-1996 is a Friday @print{} @print{} Sun, Jun 1st 1997: 13-Jun-1997 is a Friday @print{} @print{} Sun, Feb 1st 1998: 13-Feb-1998 is a Friday @print{} Sun, Mar 1st 1998: 13-Mar-1998 is a Friday @print{} Sun, Nov 1st 1998: 13-Nov-1998 is a Friday @print{} @print{} Sun, Aug 1st 1999: 13-Aug-1999 is a Friday @print{} @print{} Sun, Oct 1st 2000: 13-Oct-2000 is a Friday @print{} @print{} Sun, Apr 1st 2001: 13-Apr-2001 is a Friday @print{} Sun, Jul 1st 2001: 13-Jul-2001 is a Friday @print{} @print{} Sun, Sep 1st 2002: 13-Sep-2002 is a Friday @print{} Sun, Dec 1st 2002: 13-Dec-2002 is a Friday @end cartouche @end group @end example gcal-4.1/doc/en/examples/demo-2.in0000664000000000000000000000152512244130561013556 00000000000000; demo-2.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat demo-2.rc ***cat ./demo-2.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; demo-2.rc :::; :::$a=%n+12 is a Friday%i0000 :::$b=#0000 :::$c=sun1 :::00000101 $a01$c$b01$c :::00000201 $a02$c$b02$c :::00000301 $a03$c$b03$c :::00000401 $a04$c$b04$c :::00000501 $a05$c$b05$c :::00000601 $a06$c$b06$c :::00000701 $a07$c$b07$c :::00000801 $a08$c$b08$c :::00000901 $a09$c$b09$c :::00001001 $a10$c$b10$c :::00001101 $a11$c$b11$c :::00001201 $a12$c$b12$c ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/cycle-2.in0000664000000000000000000000144412244130561013731 00000000000000; cycle-2.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal %20000420 -Hno -f/dev/null -xdt -g::: \\ %%> --here='0*d1#999_%ot+00+000_:_%o*a+5158+00738,120' \\ %%> --cycle-end=10:00 --time=17:00 --cycle-step=1:15 ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %20000420 -Hno -f/dev/null -xdt -g::: --here='0*d1#999_%ot+00+000_:_%o*a+5158+00738,120' --cycle-end=10:00 --time=17:00 --cycle-step=1:15 $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/bio.sh0000775000000000000000000000041412244130561013247 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from bio.in. echo "$ cat bio.rc" cat ./bio.rc echo "$ gcal -fbio.rc %19961212 -s0 -xw --biorhythm-axis=19" LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal -fbio.rc %19961212 -s0 -xw --biorhythm-axis=19 $* exit 0 gcal-4.1/doc/en/examples/tvarc-1a.rc0000664000000000000000000000016612244130561014107 00000000000000; tvarc-1a.rc ; $a=bonjour $b=123 $c=bonsoir $x?cat $f 0 \$x=---$:30*x--- $y:cat $f 0 \$y=---$y--- 0 \$y=:::$>1u*y::: gcal-4.1/doc/en/examples/tvar-3.sh0000775000000000000000000000016612244130561013616 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tvar-3.in. echo "$ cat tvar-3.rc" cat ./tvar-3.rc exit 0 gcal-4.1/doc/en/examples/tdemo-1c.texi0000664000000000000000000000071712353520450014452 00000000000000@c Automatically generated by mksamp-2.sed from tdemo-1c.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal2txt tdemo-1.rc @print{} Hi friends, @print{} @print{} I'm the demo text containing funny characters and character @print{} sequences like ~~ \~ % %% $a $1 %%%\ @print{} %\ %s %%foo %bar \%Baz \\~ \~\ and so on... @print{} I'm be anxious how I'll be transformed by `txt2gcal'. @end cartouche @end group @end example gcal-4.1/doc/en/examples/redir-1a.in0000664000000000000000000000117712244130561014102 00000000000000; redir-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal --exe -QUx -f./redir-1.rc+XX -r'\$f=XX:\$c=echo \$f' -#'0 %!rm \$f' ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal --exe -QUx -f./redir-1.rc+XX -r'$f=XX:$c=echo $f' -#'0 %!rm $f' $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tvar-2.in0000664000000000000000000000106712244130561013607 00000000000000; tvar-2.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat tvar-2.rc ***cat ./tvar-2.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; tvar-2.rc :::; :::$a=$b foo :::$b=0@e :::$a bar :::$b \$b :::0 \$a:$a :::0 \$b:$b ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/common.texi0000664000000000000000000000333512244130561014327 00000000000000@c Automatically generated by mksamp-2.sed from common.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat common.rc @print{} ; common.rc, a common example of a resource file. @print{} ; @print{} 19940715 Local time: %t --> Dentist at 10:00 @print{} 00000921 My %B1962 birthday%i1952#2062 @print{} 0000093 Gregorian~Reformation\~is %y1752 years ago @print{} 0000Sep03 Gregorian~Reformation\~is %y1752 years ago @print{} 0 Every day in every month in every year @print{} 0000 Every day in every month in every year @print{} 00000000 Every day in every month in every year @print{} 199400fri Every Friday in 1994 @print{} 000007mo3 Every third Monday~in July every year less 1980%i#1979 @print{} 0000@@e-10 Easter Sunday-10 days every year @print{} 0@@e-10 Easter Sunday-10 days every year @print{} 0000@@e+10 Easter Sunday+10 days every year @print{} a=1127 @print{} 0@@a+20 20 days after date of date variable `a' @print{} a=*W10FR @print{} 0@@a-1 The Thursday of the 10th week every year @print{} 0@@a The Friday of the 10th week every year @print{} 0@@a1 The Saturday of the 10th week every year @print{} 1995*d10 The 10th absolute day in 1995 @print{} 1995*d99tue The last Tuesday in 1995 @print{} 0*w99su The Sunday of the last week every year @print{} ; @print{} ; Next entry is respected by ALL fixed date period modifiers. @print{} ; @print{} 1994*d1sun#99SUN.7 Each Sunday in 1994 @print{} ; @print{} ; Day of Prayer & Repentance is Wednesday before the Sunday, @print{} ; which is before the 1st Advent's Sunday. @print{} ; @print{} a=1225 @print{} a=a-5sun @print{} 0@@a-4 Day of Prayer & Repentance @print{} ; or @print{} 0@@a-1wed Day of Prayer & Repentance @end cartouche @end group @end example gcal-4.1/doc/en/examples/tvar-1.texi0000664000000000000000000000120012244130561014136 00000000000000@c Automatically generated by mksamp-2.sed from tvar-1.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat tvar-1.rc @print{} ; tvar-1.rc @print{} ; @print{} $a=foo @print{} 0 \$a:1=$a @print{} $c=$a @print{} 0 \$c=$c @print{} $b=$c bar $a @print{} 0 \$b=$b @print{} $a=bar $b baz $a booz @print{} 0 \$a:2=$a @print{} $a= @print{} $b=0 $b $c frozz $a frozz @print{} $b ->That's \$b @print{} 0 \$x='$x' and \$d is undefined: $d... @print{} $a= 0 ~ 1~2~\$3~%n~$c~\ @print{} now it's enough! @print{} 0 \$a=---$a--- @print{} $a=0 \ \ \\ And this... @print{} $a works too! @end cartouche @end group @end example gcal-4.1/doc/en/examples/dvar-1.in0000664000000000000000000000120112244130561013554 00000000000000; dvar-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat dvar-1.rc ***cat ./dvar-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; dvar-1.rc :::; :::z=0202 :::0@z The local assigned date to `z' :::z= :::0@z The global assigned date to `z' :::z=0404 :::0@z The local assigned date to `z' ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/speci-1.in0000664000000000000000000000142312244130561013731 00000000000000; speci-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat speci-1.rc ***cat ./speci-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; I'm veracious very special :) :::; :::0 1. Today is %>1u*K , %>02&*D %U %Y ! :::0 2. It's the %>03&*N day of the year. :::0 3. The actual week number is: %k . :::0 4. Currently, it's %t* o'clock, Mr. %-USER . :::0 5. Hurry up with your work~\ ::: by reason sunrise is at %o+5158+00738+61,2: . ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/include.texi0000664000000000000000000000032312244130561014454 00000000000000@c Automatically generated by mksamp-2.sed from include.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat include.rc @print{} #include "$f" @end cartouche @end group @end example gcal-4.1/doc/en/examples/tvaro-1.sh0000775000000000000000000000017112244130561013767 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from tvaro-1.in. echo "$ cat tvaro-1.rc" cat ./tvaro-1.rc exit 0 gcal-4.1/doc/en/examples/wspc-1.sh0000775000000000000000000000016612244130561013614 00000000000000#! /bin/sh # Automatically generated by mksamp-1.sed from wspc-1.in. echo "$ cat wspc-1.rc" cat ./wspc-1.rc exit 0 gcal-4.1/doc/en/examples/tvar-1a.texi0000664000000000000000000000157312353517014014317 00000000000000@c Automatically generated by mksamp-2.sed from tvar-1a.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ gcal %19960101 -H no -x -r '$A=FROBOZZ:$x=' -f ./tvar-1.rc @print{} @print{} Mon, Jan 1st 1996: \ \\ And this... works too! @print{} Mon, Jan 1st 1996: $a:1=foo @print{} Mon, Jan 1st 1996: $a:2=bar foo bar foo baz foo booz @print{} Mon, Jan 1st 1996: $a=--- 0 @print{} 1 @print{} 2 @print{} $3 @print{} 01-Jan-1996 @print{} foo @print{} now it's enough!--- @print{} Mon, Jan 1st 1996: $b=foo bar foo @print{} Mon, Jan 1st 1996: $c=foo @print{} Mon, Jan 1st 1996: $x='' and $d is undefined: $d... @print{} Mon, Jan 1st 1996: foo bar foo foo frozz FROBOZZ frozz ->That's $b @end cartouche @end group @end example gcal-4.1/doc/en/examples/demo-3.in0000664000000000000000000000137112244130561013556 00000000000000; demo-3.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat demo-3.rc ***cat ./demo-3.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; demo-3.rc :::; :::$a=%VWork day :::$c=%i#0000$b99 :::a=$bmon1 :::0@a#+4 $a :::a=$btue1 :::0@a#+3 $a :::a=$bwed1 :::0@a#+2 $a :::a=$bthu1 :::0@a#+1 $a :::a=$bfri1 :::0@a $a :::a=$bmon2 :::0@a#+4 $a :::a=$bmon3 :::0@a#+4 $a :::a=$bmon4 :::0@a#+4 $a$c :::a=$bmon9 :::0@a#+4 $a$c ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tvarf-1.in0000664000000000000000000000115712244130561013754 00000000000000; tvarf-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat tvarf-1.rc ***cat ./tvarf-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; tvarf-1.rc :::; :::$a=123 :::$b=$:010*a :::$c=$b :::$b= :::0 1. \$c=.$c. :::0 2. \$c=.$:20*c. :::0 3. \$b=.$>1w*b. :::0 4. \$a=.$>5#a. ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/remark.texi0000664000000000000000000000372412353516777014344 00000000000000@c Automatically generated by mksamp-2.sed from remark.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat remark.rc @print{} ;00001031 ^\ @print{} .......^\ @print{} ;::;::,^\ @print{} ;::;::;,^\ @print{} ;;::;;:;;,^\ @print{} .vmnv\%vnv\%,.;;;:::;;:;;, .,vnmv\%vnn,^\ @print{} vmmmn\%vmmnv\%vnmmnv\%;;;;;;\%nmmmnv\%vnmv\%vmmv^\ @print{} vmmnv\%vmmmnv\%vnmmmmmnv\%;:\%nmmmmmmnv\%vnm\%vnmmmv^\ @print{} vmmnv\%vmmmnv\%vnmmmmmmmmnv\%nmmmmmmmmnv\%vnmm\%vnmmmv^\ @print{} vmmnv\%vmmmnv\%vnmmmmmmmmnv\%vmmmmmmmmmmnv\%vnmv\%vnmmmv^\ @print{} vmmnv\%vmmmnv\%vnmm;mmmmmmnv\%vmmmmmmmm;mmnv\%vnmv\%vnmmmv,^\ @print{} vmmnv\%vmmmnv\%vnmm;' mmmmmnv\%vmmmmmmm;' mmnv\%vnmv\%vnmmmv,^\ @print{} vmmnv\%vmmmnv\%vn;; mmmmnv\%vmmmmmm;; nv\%vnmmv\%vnmmmv^\ @print{} vmmnv\%vmmmmnv\%v;; mmmnv\%vmmmmm;; v\%vnmmmv\%vnmmmv^\ @print{} vmmnv\%vmmmmnv\%vnmmmmmmmmm;; mmmmmmmmmnv\%vnmmmmv\%vnmmmv^\ @print{} vmmnv\%vmmmmnv\%vnmmmmmmmmmm;; mmmmmmmmmmnv\%vnmmmmv\%vnmmmv^\ @print{} vmmnv\%vmmmmnv\%vnmmmmmmmmmmnv;,mmmmmmmmmmmmnv\%vn;mmmv\%vnmmmv^\ @print{} vmmnv\%vmmm. nv\%vnmmmmmmmmmnv\%;mmmmmmmmmmmnv\%vn; mmmv\%vnmmmv^\ @print{} `vmmnv\%vmm, v\%vnmmmmmmmmmmnv\%nmmmmmmmmmmnv\%v; mmv\%vnnmmv'^\ @print{} vmmnv\%vmm;, \%vnmmmmmmmmmnv\%nmmmmmmmmmnv\%;' mv\%vnmmmmv^\ @print{} vmmnv\%vmm;;, nmmm;' mmmm;;' mv\%vnmmmmv'^\ @print{} `vmmnv\%vmmm;;,. mmnvv;, mmv\%vnmmmmv'^\ @print{} `vmmnv\%vmmmmnv\%vnmmmmmmmmnvvnmmmmmmnv\%vnmmmv\%vnmmmmv'^\ @print{} `vmvn\%vmmmmnv\%vnmmmmmmmnvvnmmmmmnv\%vnmmmm\%vnmmmv'^\ @print{} `v\%mmmmmn%:\%vnmnmmmmn\%vnmmmnv%:\%vnmv\%nmv' @print{} @print{} ; A remarked line @print{} ; Also a remarked line @print{} ; A \ @print{} formatted and multi-line \ @print{} remark @end cartouche @end group @end example gcal-4.1/doc/en/examples/lbrk-1a.in0000664000000000000000000000116412244130561013723 00000000000000; lbrk-1a.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%gcal %00000101 --resource-file=./lbrk-1.rc --disable-highlighting ***LANGUAGE=en GCAL= GCALPATH=. ../../../src/gcal %00000101 --resource-file=./lbrk-1.rc --disable-highlighting $* ; The resource file line(s) used within this example are prefixed with `:::'. ; ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/tvaro-1.in0000664000000000000000000000142212244130561013760 00000000000000; tvaro-1.in ; ; The command(s) used within this example are prefixed with `%%%'. ; The real call(s) of these command(s) are prefixed with `***'. ; %%%cat tvaro-1.rc ***cat ./tvaro-1.rc ; The resource file line(s) used within this example are prefixed with `:::'. ; :::; tvaro-1.rc :::; :::$a=130 :::$b=2 :::0 1. \$b=$b :::$b++ :::0 2. \$b=$b :::$b+=7 :::0 3. \$b=$b :::$b-- :::0 4. \$b=$b :::$b-=-5 :::0 5. \$b=$b :::$b+=123 :::0 6. \$b=$b :::$b-=$a :::0 7. \$b=$b :::$b-=10000 :::0 8. \$b=$b :::$b+=10000 :::0 9. \$b=$b :::$b=02 :::0 a. \$b=$b :::$b++ :::0 b. \$b=$b ; Additionally leading Texinfo commands are prefixed with `+++'. ; +++example +++group +++cartouche ; Additionally trailing Texinfo commands are prefixed with `---'. ; ---end cartouche ---end group ---end example gcal-4.1/doc/en/examples/demo-3.texi0000664000000000000000000000114012244130561014113 00000000000000@c Automatically generated by mksamp-2.sed from demo-3.in. @c @c This file is included in gcal.texi. @c @example @group @cartouche $ cat demo-3.rc @print{} ; demo-3.rc @print{} ; @print{} $a=%VWork day @print{} $c=%i#0000$b99 @print{} a=$bmon1 @print{} 0@@a#+4 $a @print{} a=$btue1 @print{} 0@@a#+3 $a @print{} a=$bwed1 @print{} 0@@a#+2 $a @print{} a=$bthu1 @print{} 0@@a#+1 $a @print{} a=$bfri1 @print{} 0@@a $a @print{} a=$bmon2 @print{} 0@@a#+4 $a @print{} a=$bmon3 @print{} 0@@a#+4 $a @print{} a=$bmon4 @print{} 0@@a#+4 $a$c @print{} a=$bmon9 @print{} 0@@a#+4 $a$c @end cartouche @end group @end example gcal-4.1/Makefile.am0000664000000000000000000000237112244130561011212 00000000000000# GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = lib \ po \ src \ misc \ data \ doc EXTRA_DIST = BUGS LIMITATIONS .version BUILT_SOURCES = .version all-data-local: cp install-inf install-info chmod u+x install-info clean-generic: rm -f install-info .version: echo $(VERSION) > $@-t && mv $@-t $@ # Arrange so that .tarball-version appears only in the distribution # tarball, and never in a checked-out repository. dist-hook: $(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version gcal-4.1/ABOUT-NLS0000644000000000000000000022532613041163512010410 000000000000001 Notes on the Free Translation Project *************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that free software will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work on translations can contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. 1.1 Quick configuration advice ============================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. 1.2 INSTALL Matters =================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the included GNU `gettext' library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will, respectively, bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might not be desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages usually have many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. 1.3 Using This Package ====================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. If you happen to have the `LC_ALL' or some other `LC_xxx' environment variables set, you should unset them before setting `LANG', otherwise the setting of `LANG' will not have the desired effect. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your language by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. 1.4 Translating Teams ===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://translationproject.org/', in the "Teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `coordinator@translationproject.org' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skills are praised more than programming skills, here. 1.5 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of November 2007. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo +----------------------------------------------------+ Compendium | [] [] [] [] | a2ps | [] [] [] [] [] | aegis | () | ant-phone | () | anubis | [] | ap-utils | | aspell | [] [] [] [] [] | bash | [] | bfd | | bibshelf | [] | binutils | | bison | [] [] | bison-runtime | [] | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] [] | console-tools | [] [] | coreutils | [] [] [] [] | cpio | | cpplib | [] [] [] | cryptonit | [] | dialog | | diffutils | [] [] [] [] [] [] | doodle | [] | e2fsprogs | [] [] | enscript | [] [] [] [] | fetchmail | [] [] () [] [] | findutils | [] | findutils_stable | [] [] [] | flex | [] [] [] | fslint | | gas | | gawk | [] [] [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] | gip | [] | gliv | [] [] | glunarclock | [] | gmult | [] [] | gnubiff | () | gnucash | [] [] () () [] | gnuedu | | gnulib | [] | gnunet | | gnunet-gtk | | gnutls | [] | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | | gpe-clock | [] [] | gpe-conf | [] [] | gpe-contacts | | gpe-edit | [] | gpe-filemanager | | gpe-go | [] | gpe-login | [] [] | gpe-ownerinfo | [] [] | gpe-package | | gpe-sketchbook | [] [] | gpe-su | [] [] | gpe-taskmanager | [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | | gphoto2 | [] [] [] [] | gprof | [] [] | gpsdrive | | gramadoir | [] [] | grep | [] [] | gretl | () | gsasl | | gss | | gst-plugins-bad | [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] [] | gst-plugins-ugly | [] [] | gstreamer | [] [] [] [] [] [] [] | gtick | () | gtkam | [] [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] | herrie | [] | hylafax | | idutils | [] [] | indent | [] [] [] [] | iso_15924 | | iso_3166 | [] [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] [] | iso_639 | [] [] [] [] | jpilot | [] | jtag | | jwhois | | kbd | [] [] [] [] | keytouch | [] [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | () | ld | [] | leafpad | [] [] [] [] [] | libc | [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] | libgpg-error | [] | libgphoto2 | [] [] | libgphoto2_port | [] [] | libgsasl | | libiconv | [] [] | libidn | [] [] [] | lifelines | [] () | lilypond | [] | lingoteach | | lprng | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailfromd | | mailutils | [] | make | [] [] | man-db | [] [] [] | minicom | [] [] [] | nano | [] [] [] | opcodes | [] | parted | [] [] | pilot-qof | | popt | [] [] [] | psmisc | [] | pwdutils | | qof | | radius | [] | recode | [] [] [] [] [] [] | rpm | [] | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] | shared-mime-info | [] [] [] [] () [] [] [] | sharutils | [] [] [] [] [] [] | shishi | | skencil | [] () | solfege | | soundtracker | [] [] | sp | [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] | texinfo | [] [] [] | tin | () () | tuxpaint | [] [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | util-linux-ng | [] [] [] [] | vorbis-tools | [] | wastesedge | () | wdiff | [] [] [] [] | wget | [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] | xpad | [] [] [] | +----------------------------------------------------+ af am ar az be bg bs ca cs cy da de el en en_GB eo 6 0 2 1 8 26 2 40 48 2 56 88 15 1 15 18 es et eu fa fi fr ga gl gu he hi hr hu id is it +--------------------------------------------------+ Compendium | [] [] [] [] [] | a2ps | [] [] [] () | aegis | | ant-phone | [] | anubis | [] | ap-utils | [] [] | aspell | [] [] [] | bash | [] | bfd | [] [] | bibshelf | [] [] [] | binutils | [] [] [] | bison | [] [] [] [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] | console-tools | | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cpplib | [] [] | cryptonit | [] | dialog | [] [] [] | diffutils | [] [] [] [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] [] | enscript | [] [] [] | fetchmail | [] | findutils | [] [] [] | findutils_stable | [] [] [] [] | flex | [] [] [] | fslint | | gas | [] [] | gawk | [] [] [] [] () | gcal | [] [] | gcc | [] | gettext-examples | [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] [] | gip | [] [] [] [] | gliv | () | glunarclock | [] [] [] | gmult | [] [] [] | gnubiff | () () | gnucash | () () () | gnuedu | [] | gnulib | [] [] [] | gnunet | | gnunet-gtk | | gnutls | | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | | gpe-clock | [] [] [] [] | gpe-conf | [] | gpe-contacts | [] [] | gpe-edit | [] [] [] [] | gpe-filemanager | [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] [] [] [] | gpe-package | [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] | gphoto2 | [] [] [] [] [] | gprof | [] [] [] [] [] | gpsdrive | [] | gramadoir | [] [] | grep | [] [] [] | gretl | [] [] [] () | gsasl | [] [] | gss | [] [] | gst-plugins-bad | [] [] [] [] | gst-plugins-base | [] [] [] [] | gst-plugins-good | [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] | gstreamer | [] [] [] | gtick | [] [] [] | gtkam | [] [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | herrie | [] | hylafax | | idutils | [] [] [] [] [] | indent | [] [] [] [] [] [] [] [] [] [] | iso_15924 | [] | iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | [] | iso_4217 | [] [] [] [] [] [] | iso_639 | [] [] [] [] [] [] | jpilot | [] [] | jtag | [] | jwhois | [] [] [] [] [] | kbd | [] [] | keytouch | [] [] [] | keytouch-editor | [] | keytouch-keyboa... | [] [] | latrine | [] [] | ld | [] [] [] [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] [] [] | libgpg-error | [] | libgphoto2 | [] [] [] | libgphoto2_port | [] [] | libgsasl | [] [] | libiconv | [] [] [] | libidn | [] [] | lifelines | () | lilypond | [] [] [] | lingoteach | [] [] [] | lprng | | lynx | [] [] [] | m4 | [] [] [] [] | mailfromd | | mailutils | [] [] | make | [] [] [] [] [] [] [] [] | man-db | [] | minicom | [] [] [] [] | nano | [] [] [] [] [] [] [] | opcodes | [] [] [] [] | parted | [] [] [] | pilot-qof | | popt | [] [] [] [] | psmisc | [] [] | pwdutils | | qof | [] | radius | [] [] | recode | [] [] [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] | sed | [] [] [] [] [] | shared-mime-info | [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] [] | shishi | [] | skencil | [] [] | solfege | [] | soundtracker | [] [] [] | sp | [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] | texinfo | [] [] [] | tin | [] () | tuxpaint | [] [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux | [] [] [] [] [] [] [] | util-linux-ng | [] [] [] [] [] [] [] | vorbis-tools | | wastesedge | () | wdiff | [] [] [] [] [] [] [] [] | wget | [] [] [] [] [] [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ es et eu fa fi fr ga gl gu he hi hr hu id is it 85 22 14 2 48 101 61 12 2 8 2 6 53 29 1 52 ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn +--------------------------------------------------+ Compendium | [] | a2ps | () [] [] | aegis | () | ant-phone | [] | anubis | [] [] [] | ap-utils | [] | aspell | [] [] | bash | [] | bfd | | bibshelf | [] | binutils | | bison | [] [] [] | bison-runtime | [] [] [] | bluez-pin | [] [] [] | cflow | | clisp | [] | console-tools | | coreutils | [] | cpio | [] | cpplib | [] | cryptonit | [] | dialog | [] [] | diffutils | [] [] [] | doodle | | e2fsprogs | [] | enscript | [] | fetchmail | [] [] | findutils | [] | findutils_stable | [] | flex | [] [] | fslint | | gas | | gawk | [] [] | gcal | | gcc | | gettext-examples | [] [] [] | gettext-runtime | [] [] [] | gettext-tools | [] [] | gip | [] [] | gliv | [] | glunarclock | [] [] | gmult | [] [] [] | gnubiff | | gnucash | () () () | gnuedu | | gnulib | [] [] | gnunet | | gnunet-gtk | | gnutls | [] | gpe-aerial | [] | gpe-beam | [] | gpe-calendar | [] | gpe-clock | [] [] [] | gpe-conf | [] [] [] | gpe-contacts | [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | [] | gphoto2 | [] [] | gprof | [] | gpsdrive | [] | gramadoir | () | grep | [] [] | gretl | | gsasl | [] | gss | | gst-plugins-bad | [] | gst-plugins-base | [] | gst-plugins-good | [] | gst-plugins-ugly | [] | gstreamer | [] | gtick | [] | gtkam | [] [] | gtkorphan | [] | gtkspell | [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] | herrie | [] | hylafax | | idutils | [] | indent | [] [] | iso_15924 | [] | iso_3166 | [] [] [] [] [] [] [] [] | iso_3166_2 | [] | iso_4217 | [] [] [] | iso_639 | [] [] [] [] | jpilot | () () | jtag | | jwhois | [] | kbd | [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | | latrine | [] | ld | | leafpad | [] [] | libc | [] [] [] | libexif | | libextractor | | libgpewidget | [] | libgpg-error | | libgphoto2 | [] | libgphoto2_port | [] | libgsasl | [] | libiconv | [] | libidn | [] [] | lifelines | [] | lilypond | [] | lingoteach | [] | lprng | | lynx | [] [] | m4 | [] [] | mailfromd | | mailutils | | make | [] [] [] | man-db | | minicom | [] | nano | [] [] [] | opcodes | [] | parted | [] [] | pilot-qof | | popt | [] [] [] | psmisc | [] [] [] | pwdutils | | qof | | radius | | recode | [] | rpm | [] [] | screem | [] | scrollkeeper | [] [] [] [] | sed | [] [] | shared-mime-info | [] [] [] [] [] [] [] | sharutils | [] [] | shishi | | skencil | | solfege | () () | soundtracker | | sp | () | system-tools-ba... | [] [] [] [] | tar | [] [] [] | texinfo | [] [] | tin | | tuxpaint | () [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] | util-linux-ng | [] [] | vorbis-tools | | wastesedge | [] | wdiff | [] [] | wget | [] [] | xchat | [] [] [] [] | xkeyboard-config | [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn 51 2 25 3 2 0 6 0 2 2 20 0 11 1 103 6 or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta +--------------------------------------------------+ Compendium | [] [] [] [] [] | a2ps | () [] [] [] [] [] [] | aegis | () () | ant-phone | [] [] | anubis | [] [] [] | ap-utils | () | aspell | [] [] [] | bash | [] [] | bfd | | bibshelf | [] | binutils | [] [] | bison | [] [] [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] [] | cflow | [] | clisp | [] | console-tools | [] | coreutils | [] [] [] [] | cpio | [] [] [] | cpplib | [] | cryptonit | [] [] | dialog | [] | diffutils | [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | fetchmail | [] [] [] | findutils | [] [] [] | findutils_stable | [] [] [] [] [] [] | flex | [] [] [] [] [] | fslint | [] | gas | | gawk | [] [] [] [] | gcal | [] | gcc | [] [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] [] | gip | [] [] [] [] | gliv | [] [] [] [] [] [] | glunarclock | [] [] [] [] [] [] | gmult | [] [] [] [] | gnubiff | () [] | gnucash | () [] | gnuedu | | gnulib | [] [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gpe-aerial | [] [] [] [] [] [] [] | gpe-beam | [] [] [] [] [] [] [] | gpe-calendar | [] [] [] [] | gpe-clock | [] [] [] [] [] [] [] [] | gpe-conf | [] [] [] [] [] [] [] | gpe-contacts | [] [] [] [] [] | gpe-edit | [] [] [] [] [] [] [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] [] [] [] [] [] | gpe-login | [] [] [] [] [] [] [] [] | gpe-ownerinfo | [] [] [] [] [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] [] [] [] [] [] | gpe-su | [] [] [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] [] | gpe-todo | [] [] [] [] | gphoto2 | [] [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] | gramadoir | [] [] | grep | [] [] [] [] | gretl | [] [] [] | gsasl | [] [] [] | gss | [] [] [] [] | gst-plugins-bad | [] [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] | gst-plugins-ugly | [] [] [] | gstreamer | [] [] [] [] | gtick | [] | gtkam | [] [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] | herrie | [] [] [] | hylafax | | idutils | [] [] [] [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | | iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] [] [] [] [] [] | iso_639 | [] [] [] [] [] [] [] | jpilot | | jtag | [] | jwhois | [] [] [] [] | kbd | [] [] [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | | ld | [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] | libexif | [] [] | libextractor | [] [] | libgpewidget | [] [] [] [] [] [] [] [] | libgpg-error | [] [] [] | libgphoto2 | [] | libgphoto2_port | [] [] [] | libgsasl | [] [] [] [] | libiconv | [] [] [] | libidn | [] [] () | lifelines | [] [] | lilypond | | lingoteach | [] | lprng | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailfromd | [] | mailutils | [] [] [] | make | [] [] [] [] | man-db | [] [] [] [] | minicom | [] [] [] [] [] | nano | [] [] [] [] | opcodes | [] [] | parted | [] | pilot-qof | | popt | [] [] [] [] | psmisc | [] [] | pwdutils | [] [] | qof | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] | rpm | [] [] [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | shared-mime-info | [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | skencil | [] [] [] | solfege | [] | soundtracker | [] [] | sp | | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] [] | tin | () | tuxpaint | [] [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | util-linux-ng | [] [] [] [] | vorbis-tools | [] | wastesedge | | wdiff | [] [] [] [] [] [] [] | wget | [] [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta 0 5 77 31 53 4 58 72 3 45 46 9 45 122 3 tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu +---------------------------------------------------+ Compendium | [] [] [] [] | 19 a2ps | [] [] [] | 19 aegis | [] | 1 ant-phone | [] [] | 6 anubis | [] [] [] | 11 ap-utils | () [] | 4 aspell | [] [] [] | 16 bash | [] | 6 bfd | | 2 bibshelf | [] | 7 binutils | [] [] [] [] | 9 bison | [] [] [] [] | 20 bison-runtime | [] [] [] [] | 18 bluez-pin | [] [] [] [] [] [] | 28 cflow | [] [] | 5 clisp | | 9 console-tools | [] [] | 5 coreutils | [] [] [] | 18 cpio | [] [] [] [] | 11 cpplib | [] [] [] [] [] | 12 cryptonit | [] | 6 dialog | [] [] [] | 9 diffutils | [] [] [] [] [] | 29 doodle | [] | 6 e2fsprogs | [] [] | 10 enscript | [] [] [] | 16 fetchmail | [] [] | 12 findutils | [] [] [] | 11 findutils_stable | [] [] [] [] | 18 flex | [] [] | 15 fslint | [] | 2 gas | [] | 3 gawk | [] [] [] | 16 gcal | [] | 5 gcc | [] [] [] | 7 gettext-examples | [] [] [] [] [] [] | 29 gettext-runtime | [] [] [] [] [] [] | 28 gettext-tools | [] [] [] [] [] | 20 gip | [] [] | 13 gliv | [] [] | 11 glunarclock | [] [] [] | 15 gmult | [] [] [] [] | 16 gnubiff | [] | 2 gnucash | () [] | 5 gnuedu | [] | 2 gnulib | [] | 10 gnunet | | 0 gnunet-gtk | [] [] | 3 gnutls | | 4 gpe-aerial | [] [] | 14 gpe-beam | [] [] | 14 gpe-calendar | [] [] | 7 gpe-clock | [] [] [] [] | 21 gpe-conf | [] [] [] | 16 gpe-contacts | [] [] | 10 gpe-edit | [] [] [] [] [] | 22 gpe-filemanager | [] [] | 7 gpe-go | [] [] [] [] | 19 gpe-login | [] [] [] [] [] | 21 gpe-ownerinfo | [] [] [] [] | 21 gpe-package | [] | 6 gpe-sketchbook | [] [] | 16 gpe-su | [] [] [] [] | 21 gpe-taskmanager | [] [] [] [] | 21 gpe-timesheet | [] [] [] [] | 18 gpe-today | [] [] [] [] [] | 21 gpe-todo | [] [] | 8 gphoto2 | [] [] [] [] | 21 gprof | [] [] | 13 gpsdrive | [] | 5 gramadoir | [] | 7 grep | [] | 12 gretl | | 6 gsasl | [] [] [] | 9 gss | [] | 7 gst-plugins-bad | [] [] [] | 13 gst-plugins-base | [] [] | 11 gst-plugins-good | [] [] [] [] [] | 16 gst-plugins-ugly | [] [] [] | 13 gstreamer | [] [] [] | 18 gtick | [] [] | 7 gtkam | [] | 16 gtkorphan | [] | 7 gtkspell | [] [] [] [] [] [] | 27 gutenprint | | 4 hello | [] [] [] [] [] | 38 herrie | [] [] | 8 hylafax | | 0 idutils | [] [] | 15 indent | [] [] [] [] [] | 28 iso_15924 | [] [] | 4 iso_3166 | [] [] [] [] [] [] [] [] [] | 54 iso_3166_2 | [] [] | 4 iso_4217 | [] [] [] [] [] | 24 iso_639 | [] [] [] [] [] | 26 jpilot | [] [] [] [] | 7 jtag | [] | 3 jwhois | [] [] [] | 13 kbd | [] [] [] | 13 keytouch | [] | 8 keytouch-editor | [] | 5 keytouch-keyboa... | [] | 5 latrine | [] [] | 5 ld | [] [] [] [] | 10 leafpad | [] [] [] [] [] | 24 libc | [] [] [] | 19 libexif | [] | 5 libextractor | [] | 5 libgpewidget | [] [] [] | 20 libgpg-error | [] | 6 libgphoto2 | [] [] | 9 libgphoto2_port | [] [] [] | 11 libgsasl | [] | 8 libiconv | [] [] | 11 libidn | [] [] | 11 lifelines | | 4 lilypond | [] | 6 lingoteach | [] | 6 lprng | [] | 2 lynx | [] [] [] | 15 m4 | [] [] [] | 18 mailfromd | [] [] | 3 mailutils | [] [] | 8 make | [] [] [] | 20 man-db | [] | 9 minicom | [] | 14 nano | [] [] [] | 20 opcodes | [] [] | 10 parted | [] [] [] | 11 pilot-qof | [] | 1 popt | [] [] [] [] | 18 psmisc | [] [] | 10 pwdutils | [] | 3 qof | [] | 4 radius | [] [] | 7 recode | [] [] [] | 25 rpm | [] [] [] [] | 13 screem | [] | 2 scrollkeeper | [] [] [] [] | 26 sed | [] [] [] [] | 23 shared-mime-info | [] [] [] | 29 sharutils | [] [] [] | 23 shishi | [] | 3 skencil | [] | 7 solfege | [] | 3 soundtracker | [] [] | 9 sp | [] | 3 system-tools-ba... | [] [] [] [] [] [] [] | 38 tar | [] [] [] | 17 texinfo | [] [] [] | 15 tin | | 1 tuxpaint | [] [] [] | 19 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux | [] [] [] | 20 util-linux-ng | [] [] [] | 20 vorbis-tools | [] [] | 4 wastesedge | | 1 wdiff | [] [] | 23 wget | [] [] [] | 20 xchat | [] [] [] [] | 29 xkeyboard-config | [] [] [] | 14 xpad | [] [] [] | 15 +---------------------------------------------------+ 76 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu 163 domains 0 3 1 74 51 0 143 21 1 57 7 45 0 2036 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If November 2007 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://translationproject.org/extra/matrix.html'. 1.6 Using `gettext' in new packages =================================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `coordinator@translationproject.org' to make the `.pot' files available to the translation teams. gcal-4.1/.version0000664000000000000000000000000413041164027010633 000000000000004.1 gcal-4.1/po/0000775000000000000000000000000013041164075007654 500000000000000gcal-4.1/po/es.gmo0000664000000000000000000032427213041164031010711 00000000000000Ŝ•‰d,aĴX0v 1v">vavuvC†vAÊvE wBRw+•wLÁwKxKZxJĤxMñxD?yF„yFËy@zASzF•zFÜz=#{6a{7˜{1{7|':|Ab|E¤|Cê|A.}Ip}Hş}H~?L~*Œ~!·~FÙ~$ 4E?zMşH€HQ€Pš€Jë€K6+‚+?ځ6‚4Q‚=†‚@ĂJƒ>PƒJƒIڃK$„Jp„Eğ„D…JF…D‘…1օ1†9:†4t†<݆@ĉ†2'‡<Z‡9—‡0ч*ˆJ-ˆ<xˆMµˆ7‰N;‰?ЉBʉ. ŠN<Š.‹ŠBşŠ(ŭŠ-&‹;T‹-‹C‹#Œ&ŒKDŒJŒ?یH'dJŒ5׍! Ž4/Ž&dŽ"‹ŽŽ6ΎJ.PC:Fŝ6E3|5°Aĉ?(‘5h‘,ž‘JˑE’3\’(’6ı’/’+ “7L“7„“Eĵ“:” =”0^”(”2¸”Eë”C1•Du•Eş•C–ND–L“–Oà–B0—Ds—P¸—D ˜BN˜H‘˜KژI&™Fp™D·™Oü™MLšGššGâšJ*›Ju›MÀ›Kœ=ZœE˜œKŜœ@*Ek9ħ.ë7ž-RžJ€ž=˞- ŸJ7Ÿ0‚Ÿ=³Ÿ6ñŸC( 7l =¤ 8â 9Ħ/UĦ?…Ħ@ĊĦ0˘27˘Fj˘&ħ˘HĜ˘.!£BP£B“£XÖ£c/¤]“¤5ñ¤:'EbG¨,@ĤE^Ĥ*¤ĤEÏĤE§A[§C§Eá§7'¨@_¨: ¨-Û¨ İI)İIsݽİ;Ùİ:Ş=PŞ;ŽŞ8ÊŞ<Ğ>@Ğ@ĞMÀĞ6Ĵ;EĴĴ“Ĵ£ĴğĴÓĴêĴ ˙Ĵ ­ ­ $­ 0­=­BF­‰­BŽ­Ñ­á­(ñ­ >KZzšĦ$¨Í#ç' Ż&3Ż/ZŻ+ŠŻ ĥŻ;ÂŻ+ŝŻ*°%>°#d°ˆ°Ħ°)ĥ°à°$ŭ°+"ħ&Nħ%uħ(›ħ&Äħëħ=²"F²#i² ²!²"² ó²³³!³ 5³@³ S³^³ q³|³ ³š³­³ĵ³˳5ͳ´´ ´´ +´ 9´E´ Y´d´l´}´…´œ´Ğ´ğ´Ë´.Ú´ µµ %µ2µ :µDµMµ Vµwµ•µ­µ͵íµ ĥ'ĥBĥ]ĥsĥˆĥĦĥıĥÓĥëĥóĥ · ··#·)· 9·!C·e·ƒ· –·& ·Ç·Ĝ· à· î·ü·¸#¸)¸B¸ [¸ f¸t¸|¸ €¸¸˘¸Ĥ¸ ­¸·¸ʸä¸ıı3ıFıYıuı}ı “ıžı´ıÏıÓıÛıı úı şşş-ş AşLş^şpş€ş“şşğşÍşŜşúşğğğ-ğ4ğ<ğDğWğmğuğ~ğ“ğ¤ğ şğÄğ Ûğçğ ïğûğĵ "ĵ.ĵ 7ĵ Dĵ Oĵ ]ĵhĵoĵ‹ĵ§ĵĵĊĵ×ĵàĵ ĵŭĵ ½ ½&½7½?½ B½M½ V½a½h½w½½Ÿ½ ´½Ġ½è½÷½" 6 C4P0… ĥ ÁÍÖ ñŝż"ż1ż5żPżażfż }ż ‰ż•ż™ż´żżÛżáżçżŝżÀÀ!À 8À FÀTÀfÀxÀ ˆÀ–ÀÀ ·À ÁÀ ÎÀÛÀ9íÀ'Á8Á @ÁLÁlÁ…Á™Á ²ÁżÁĠÁäÁ ôÁ˙ÁÂÂ! & 2Â@ÂSÂYÂ`ÂoÂ~€ÂHÂÙÂ÷Â$5L[kˆžµÉŜġ Ä(ÄBÄ\ÄqÄˆÄŒÄ•Ä ĴÄşÄ%ÖÄüÄĊ#Ċ 7Ċ EĊSĊ\ĊeĊ xĊ…ĊœĊ·ĊÌĊĊ ġĊĈĈ Ĉ 'Ĉ5ĈDĈ\ĈdĈ jĈ vĈ‚Ĉ–ĈĤĈ ½Ĉ ÉĈÖĈöĈÇÇ.'ÇVÇpÇ ‚ǎǖǧǯÇÄÇÍÇċÇôÇÈÈ2!ÈTÈXÈ tÈ ÈŒÈ“È ¤ÈħÈÉÈÚÈïÈÉ ÉÉ2ÉGÉ0YÉ1ŠÉ1ĵÉ*îÉ.Ê:HÊ;ƒÊ:żÊúÊË!Ë)Ë=ËMË^ËgË%{ËĦ˸ËÓËóËöËŭË ÌÌ/ÌDÌHÌOÌWÌ fÌpÌ‰Ì‘Ì ˜Ì Ì%ĈÌìÌôÌÍ Í(Í8ÍGÍ[ÍjÍ z͈Í"ÍÀÍßÍüÍ Î!Î<ÎNÎUÎ [Î eÎqÎ ŠÎ•Î §ÎµÎĠÎôÎ Ï Ï Ï)Ï 1Ï <ÏJÏYÏ pÏ{Ï €ÏŠÏ‘ÏĦϸÏÁÏÉÏ ÏÏÙÏġÏ ( , 91Dv ħÍ Öàñ ùÑ Ñ;ÑACÑ …ѐїѨÑÂÑÜÑöÑ Ò'Ò=ÒEÒXÒ nÒzÒ~Ò‡Ò,ÒÊÒÏÒ×ÒÛÒòÒ ÓÓÓ.Ó?ÓSÓhÓpÓtÓ|Ó€Ó†ÓžÓĥÓÓäÓëÓïÓôÓĝÓ ŭÓ Ô Ô &Ô1Ô9ÔBÔYÔpÔ„Ô¤Ô ½ÔÈÔĜÔñÔĝÔ Ġ Ġ Ġ+Ġ CĠNĠ#aĠ…Ġ›Ġ˘Ġ'µĠŬĠċĠíĠüĠ ÖÖ /Ö=Ö RÖ _ÖiÖÖ ˆÖ –ÖĦÖ¸ÖÎÖ4Ö× × ×%×.?×n× u×€×‰×Ž× ”× Ħ× Ĵ×·×Ç×Ë×Ñ× ä×ï×Ĝ Ĝ Ĝ+Ĝ @ĜMĜcĜ{ĜĜĦĜ´ĜÑĜ âĜîĜŝĜÙ !Ù.Ù >Ù IÙSÙWÙ\ÙdÙlÙ ~ًْÙĦÙµÙÉÙÛÙêÙíÙñÙĝÙ˙ÙÚÚ -Ú18Ú jÚ uÚÚ‰Ú™Ú ­ÚşÚ ÔÚßÚóÚÛ ÛÛ)ÛAÛUÛfÛ|Û”ÛĴÛÁÛÔÛ ÚÛĉÛ îÛúÛÜ$5ÜZÜzÜ ‰Ü ”ܢÜĞÜÂÜ ÑÜ ŬÜçÜíÜġÜ Ŭ ŬŬ ŬAŬ^ŬeŬiŬ/rŬ9˘Ŭ-ÜŬ ŜŜ&Ŝ.Ŝ5Ŝ9ŜAŜQŜbŜwŜŒŜE‘Ŝ×ŜïŜß!ß9ßVßrߌßĤߪßß·ß ½ßÉßßàßïßà àà0à8à GàUàdà sà}àŽà¤à¨àÁàĈàÖà ġàá á á á*á3á:áCá Lá(Wá€áá·áÇáÚáòá ââ +â7âKâbâhâqâ†âŽâžâ­âĵâ ÌâĜâéâ #5Ib r}ž ıÓÛ÷ äää(ä:äPä0gä˜äħä´ä½ä×äġäûä ċ ċ$ċ:ċQċgċkċ tċ ~ċ‹ċšċ ĥċÄċÌċċ ßċéċŭċĉ %ĉ2ĉ EĉRĉ dĉ oĉ {ĉ ‰ĉ —ĉ£ĉżĉÎĉ ëĉ÷ĉ çç (ç 5çCçWç lçxçç–çŸç ´çÂçÑç áçîç öçè è( èIèfèlè |è ˆè•èè¸èËèÛèìèüè éé,é<éKé [é eéséˆé éıéÉéÜéîé÷éêê*ê;êLê ]ê kêyêŠêŸê´êÄêĠêċêĝêë+ë 4ëBë0Xë‰ëë ħëżëÂëÈëÙëġë ììì+ì 3ì>ì]ì mì yìƒì Šì •ì ˘ìì"Áì!äìíí/íDíXíkíƒí”í§ííÔíéíîî+îAîUîhîxî‹îœîĴîÀîÙîöî ŭîï ïï 6ïDïGï [ïfïwï“ï²ïÑïċïùï:#=^DœCá%ñ)ñ 2ñ<ñKñbñiñqñƒñ ‰ñ•ñ›ñĴñ ĵñÉñŬñ óñ5ŝñ)4ò^ò}ò€òžò˘òŞò³òğò ÂòÏòèòïò óó%ó,ó4ó;óCó _óió…óšó ­óğóÑóĉóüóô,ôCô]ô"tô—ô­ôôĜôìôġġ,ġAġXġpġ„ġ›ġ·ġÎġĉġöö-öDöYöuöŽö§ööÛööö ÷ ÷5÷P÷k÷ˆ÷£÷ğ÷Ï÷â÷ĝ÷ĝ(ĝDĝ\ĝrĝ„ĝ=Œĝ0Êĝ8ûĝK4ù7€ù.¸ùçù(ĝù !ú ,ú:ú BúLú \újú €ú ú™ú˘úĞú­úÂúÛúġúûû&û)û -û 7ûBûGû OûYûkû zû †û’û §û³ûĈû×ûàûçûéûñû ÷ûü ü?ü_üxüC—ü Ûü çüñüŭŭŭŭ7#ŭ#[ŭAŭ*Áŭ/ìŭŝ 3ŝ>ŝ%Wŝ.}ŝĴŝŻŝ Âŝ5Ïŝ˙ ˙˙#&˙!J˙l˙.s˙˘˙ĥ˙Ì˙˙4Ù˙#"2(U'~8Ĥ+ß 1 I3W5‹%Á4çNFk²&ÁHè1>4svy ‘ ŸĴ ÉÖòġŭEFO`%xž$ Ó Ŝ§ì”,£â>ġD4EyCż(M,Rz?ÍL NZ Oİ Gù QA C“ I× G! Ni =¸ Bö ?9 6y C° 'ô i T† GÛ D#JhO³GFK*’ ½TŜ+3:_CšEŜQ$NvSĊMIg+ħ+Ŭ? 6I5€?ĥCöR:@OÎMOlIĵC=JPˆDÙ+1J>|+ğ;çA#6e@œ0Ŭ*,9Rf7ıOñ9AY{BĠP:iR¤1÷;)(e3ŽFÂ1 E;& ¨NÉQ=jQ¨/úP*8{!´>Ö, +B -n Cœ Qà =2!Jp!Bğ!Sŝ!?R"?’"6Ò"B #@L#2#0À#Bñ#M4$5‚$1¸$8ê$C#%2g%Eš%Aà%H"&Rk&;&=ú&08'9i'J£'Hî'H7(H€(FÉ(Q)Ob)W²)F *HQ*[š*Iö*G@+Lˆ+RĠ+P(,Ky,IĊ,T-Rd-P·-P.QY.SĞ.P˙.NP/;Ÿ/4Û/Q09b0Nœ0Gë08317l1?¤1Jä1H/27x2k°2=3QZ33Ĵ3>à3A4Ha4HŞ4Pó4<D5X5YÚ5146?f6GĤ6"î6E7'W7F7GĈ7\8rk8lŜ8AK9<9JÊ9K:5a:L—:Fä:++;=W;G•;KŬ;F)<Ep<Nĥ<@=FF=3="Á=Fä=A+> m>AŽ><>2 ?<@?5}?H³?>ü?L;@Rˆ@GÛ@A#AeAxA‰A¤AżAĜA ñA ˙A B B %B 3B.=BlB3rBĤB·B1ÈBúB#C'C8C0IC#zCžCCĴC(ËC ôC,D)BD5lD0˘D ÓD=áD(EHE"cE †E§EE/áEF)0F1ZF+ŒF*¸F/F2G'FG>nG­G!ÌGîG H-+HYHoH‚H•HŻHżH ÚHçH ˙H I $I1IIIYIhI7jI˘IĤIŞIÂIÛI íIùIJJ&J;J!CJeJ‚J›J¸J-JŝJK K6K >KLKUK#]KK K#¸K!ÜK ŝKL">LaL|L’L§LÀLĜLòL MM$M 9MGMKMQM hM$vM›MğM ÑMCÛMN;NCNWNnN„N™NŸNıNÓNéNŝNO OO8OWKWOWlWWœW˘W¨W%ÁW çWñWġWX %X 0X>XRXeXtXŠX“X˘X³XÂXEßX%YEY MY [Y"|YŸYµY ĠYàYùYZ (Z3Z:Z!BZdZiZ|Z’ZĴZ²ZıZÊZÚZÜZM÷Z*E[,p[[°[Â[Ĝ[è["˙["\=\]\o\‚\š\²\Ñ\î\ ]!]9] =]G]\])s]+]"É] ì]ö] ^^2^;^D^Z^k^}^›^!ı^Û^ï^___/_H_!Y_{_ƒ_ Š_ –_˘_ĥ_É_ â_î_$`#(`L`P`2h`"›```ä`ì`a a*a3aNaea{aŽa3aÑaĠaïabbb4bCb\bqbb¨bĴb´bÔbîbIc?Jc?Šc@ÊcC dROdK˘dHîd%7e]e dene„e–e­eÀe)Üef!$f FfgfjfrfŽfžfħfÑfĠfŬfċf ĝf g$g-g4g#Eg-ig—gŸgżgÈgägġghh,h>hMh(ch"ŒhŻhÍhŜhôhi"i)i /i 9i!Giii|i i žiżißiġiüi jj&j8jKj^j }j‡j Œj–jj­jÄj Íj×jŜjîj k-kEkIk]k5qk§kÀkÛkĝk ll 'l1lNlWl#gl'‹l³l=ĵlúl mm$)m!Nmpm‹m£mmĠm Ŭmŝm n#n'n/n1Mnn„nŒnn­nËnÒnÙnñnoo3o;o?oEoIoPo(lo•o²oÊoÓo×oŬoáoço÷o p p'p /p] cq Œ–™Ğ½Î×ß èġ.€ 5€V€q€‰€¤€ Āċ€ù€ 5N Tax•ĴÁԁĉ ù‚‚3‚G‚!^‚€‚™‚Ş‚Ăׂ ö‚ƒƒ!ƒAƒRƒdƒkƒtƒˆƒ¨ƒ2Ĉƒùƒ„ „)„ A„b„h„|„ Ž„™„²„ʄê„ï„÷„……' … H…V…^…b… y…„…š……ąĜ…ġ…† † #† /† =†K†[†w†%ކ ´†*† é† ÷† ‡ ‡‡!7‡ Y‡"d‡ ‡‡ ’‡œ‡ ²‡À‡ԇ‡ġ‡ŭ‡ ˆ +ˆ+6ˆ%bˆˆˆˆ Ĥˆ²ˆLjۈòˆ‰‰1‰D‰V‰k‰€‰”‰§‰ ı‰Ċ‰׉ ñ‰)Š<ŠNŠ_Š uЂЗŠ݊ŠĠŠêŠ‹‹)‹>‹U‹k‹~‹”‹Ş‹À‹ً ġ‹ŒŒ50ŒfŒ~Œ—ŒĞŒŒµŒ"ьôŒ0 9C^n „—Ĥı ż̍鍎 Ž"Ž 1Ž ?ŽLŽ ^Ž iŽwŽˆŽ˜Ž§Ž şŽǎ׎ çŽ ġŽ    $ .%;a ‰•ž!°ҏĉé  $(%M$s˜ސğѐ<ĉE#‘Ki‘?µ‘ġ‘ù‘’’’3’:’B’]’c’s’y’—’¨’’ڒî’Fŭ’0D“#u“™“&œ““ǓΓĠ“ܓ ċ“ó“ ””$”4”K” R”^”e”m”‹”#”Á”ٔñ”••-•D•\•v•Ž•İ•#Á•ċ•ü•–)–>–V–m––—–Ż–ȖŬ–ġ–—*—C—^—v——œ—²—їí— ˜!$˜F˜f˜z˜’˜¨˜ĘŜ˜ŝ˜™5™J™^™v™Ž™¨™Ĉ™ߙö™šFš=`š?žšTŜšB3›8v›Ż›4Ċ› ú›œœ "œ,œ@œVœqœ‹œŸœ¨œ°œ²œɜèœŝœ/2 7 BM T ^hƒ•Н ĝѝâú ž#ž,ž.ž7ž =ž&Gž#nž&’ž ıž#ڞDŝž CŸMŸaŸ~Ÿ…ŸŸ–Ÿ>šŸ%ٟB˙Ÿ-B 0p Ħ  ½ $Ç 5ì 3"ĦVĦYĦwĦ9ŠĦÄĦ ÈĦÔĦ+èĦ-˘B˘DI˘Ž˘İ˘¢Ĉ˘C΢&£%9£#_£0ƒ£C´£2ĝ£+¤8;¤ t¤7‚¤Bş¤$ŭ¤>"taCÖĤ.,ĤH[Ĥ¤Ĥ:§ĤâĤċĤ#èĤ § "§0§O§,c§§ “§Ħ§@¤§ċ§ô§ ¨1+¨]¨,r¨ Ÿ¨ШEŜjÍf‡÷gG›Aj)’ϐ‚@0hŬô)•ÂA=V!Ävöž&İŠq)Z½”* ïà OÛ .…jş'Ğµ$6Ž^úŸ¨÷Ëĉüí?œ‡mq8œè§l\êò{ġu‰şġc×7ŞDR dĝÂúrwÛ.Q£Ŝ, Ĝ|*^^S™­ÓbĜN¤uz_tup%F}ı|<‡^B0¤|ıtJ ï yMgYĊ­"ˆn]xKqBmÀ\ü#R= dŞE ô?_áĠ~ĞÑn8}4F‘`Jžµî§ÓCy‘bĥ\eeİáäW3š½£–¨Ï.áCƒLW~ÑJÂâüĠYE/iÔ­°näW‹ż_€˜6ħn ËdrV…Ĉü+֞³`!É]²*Ú#0+K{Gc x0AŻYċu7üoQÏ#“sU!B257'ÓŬT RKY‹hO³9ŸÙδ5ŭçŒ6JŭË(è1I2t!:ŬÇkI—ô‚J_É;„ĵ-_{éĴQ'ñfy:h· EŜ”a>Y|e@ƒŝû†˘X `ÖV ħċï}ÌÁġàĉÛİ€YW×ÇF$3Z`ŒoP‰ ìršıĴXŻgo›GEHˆúh‰@”ŸÇ˜9ìÜM(ÊŽÒD_ßœ> ‡1xLT™ÛÉ8²mÊñ[¨ûeŝ™ë;`gû.&’5ö3AíD š•-żê"<„3|âd OCĈ2RŻƒâk[žrdŝ†9Š@˘[ë;È\İ]ïĠZfŻ6:òÛí!/ĤĥZÍôĝùÚöĥ1‚„2ÒHäʎÁéZmJèdĊbÔĊ)†T/4=ñÀS²ĴRÔD+#‰}ÜL2¸Îßy%NФ·² ĝ›˜Ѹ^I˜ŝÙs4 Qe—ppGĵ^ i€ġŜ,<ĵAƒÁjhT MÚ²t'H##z"vZˆ ÙÚğ­˙˘ aĥ´Nϋú‡–¸½Ĵ-X×ÊŻKÔ"Šaêcq…h×Ís´ÄÜŭaN‹ÄíÇ„)FĴT¤(÷î+4ħyˆ“Ŭ “+Ħ˙KcI/ö1ˆ>ĝµlÔìUĜĉ5H‡w…p>ó×°Áħ4ıSœÙ/l†>X:³ğsO:=î;ŝ Cĉ³PóPÌó“Bf;f7Ìö³Š.)}7MVŞPñNîĠj$ġş[,Ò1ÙŞUÀ1섟6Š¨z€oòç°ĥ•r?ž˘LbcT[‘  Dwu÷6ìĈ-ÇkŒżĦÚ qƒŬOêÎuòKƒ’<ĵßIckëQ*ûz–gŒmÄnĤA”0:óz`—Grjà8–wVú~ÖváçO  ŜPšI;Ğ÷È0MÀżĞùĤ&tÍÈG”€x&F½é°œ·ù?ÀŭŞL>í{ÌkĈ¤ó&v9òû-¨µë żÑ›59sw’Ÿ$Pä3<ÓĊVXğĦ/˙bUw"çF@WğkosÈ5"şÄ,€Í£iĜ£LñĠ$µé(mn?Öé‰%ɧSl§Nâv*Áİ9oıX„Ĥ}x–çaôŽ §% +lH·ĦSÈÒ3\Œ]¸ĝâ´iÎĉß‘W‚—£eHî Ñ 7[8à…´C˙2ù‰< ™lUïD’.…~ĵi菽Éŭğ@ê‹ċ|şRÜ‚BÓ&Ĝ$Ĥ\˜àvbUÜëߛ?‘!]ÏĊQ¸Ž~i †‚­˘ĈË x™E](SÎ'p%ċ{·ËĦ-~z(,ˆt='•†yù•Bá ˙š%°gÒa—äMÊċpħ4q=*“CÖ{8èfÌ, %s: abort, %s: program aborted by signal %d %s: warning, %s. `%s' line %ld: %-3s = %d...%d Length of a single axis %-3s = %d...%d Total number of lines %-3s = february Respect at `28-FEBRUARY' %-3s = march Respect at `01-MARCH' = %s Backwards = %s List yesterday until starting day of month = %s List yesterday until starting day of week = %s List yesterday until starting day of year N = 0 %s which isn't located in 1st week N = 0 1st week / last week of previous year N = 1...4 1st...4th weekday %s (always) N = 1...51 %s of 1st...51st week (always) N = 1...51 1st...51st weekday %s (always) N = 1...52 1st...52nd week (always) N = 5 5th weekday %s (sometimes) N = 52|53 %s of 52|53rd week (sometimes) N = 52|53 52|53rd weekday %s (sometimes) N = 53 53rd week (sometimes) N = 9 Last weekday %s N = 99 %s of last week N = 99 Last week N = 99 Last weekday %s Actual: `%s' = Manage `29-FEBRUARY' in non-leap years = Set height of the Moon phase text graphics = Set width of the biorhythm text graphics or: month name | %s | %s%s | %s%s | %s%s [MOD] = %s List tomorrow until ending day of month [MOD] = %s List tomorrow until ending day of week [MOD] = %s List tomorrow until ending day of year %s%cwN[%s], month name[%s], weekday name[N] or %s MOD = %s Forwards %-*s = Holidays in %s %-3s = Heading/Title text used for fixed date list %c = Exclusion of all %s Air pressure in Millibar (actual: %.3f) Air temperature in degrees Celsius (actual: %+.3f) E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2 E.g. %sH \x2%s\xAE Use hex values 2 and AE for sequence 1 E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca' E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to `bar' E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4 E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of List: %s[%s%s]%s...%s%s[%s%s] List: [%s%s]%s%s...%s[%s%s]%s Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s expressions separated by `%s' characters is a LOWER-CASE-LETTER, it means a non-exclusion! marked by # have an incomplete recording of holidays the preceding special characters in an individual date format, they are used by the character set used in Germany which are connected by `%s' characters. Countries/territories, which has a STYLE format instruction component, and that, how # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday # %c%c[[%s|%s]N] = Single day N relative to today's date # %c?[%s|%s]N%s = Single N'th weekday relative to date variable # %c?[[%s|%s]N] = Single day N relative to date variable # %cdN = Single absolute day N # %cdN%s = Single N'th weekday %s # %cwN%s = Single weekday %s of N'th week # %s%s = Single day %s of month %s # %s%sN = Single N'th weekday %s of month %s # A = Display using alternative list format # E = Include legal days only # J = Suppress text part of fixed dates # NMOD = Single day N relative to today # Nd = Single absolute day N # Nw = Complete week N # Q = Suppress leading blank line of fixed dates list # U = Suppress date part of fixed dates # Z = Display dates, for which fixed dates doesn't exist # a = Display origin of fixed date # d = Include actual date if list of periods is generated # e = Include legal days and memorial days # g[MOD] = Group fixed dates by day using text MOD # k = Display week number # l = Generate list of periods instead of a single period # m|M[MOD] = List complete month # o = Omit repeating date part of fixed dates # t|T = List tomorrow # w|W[MOD] = List complete week # x = Exclude title of fixed date list # y|Y[MOD] = List complete year # z = Display consecutive number of fixed date 1. Representation of text 2. Respected period = "TVAR[%s|%c%s]COMMAND" definitions separated by `%s' characters = abort Like `all' and abort if file name can't be handled = all Like `handled' and `unhandled' together = handled Like `internal' and file names which are handled = no Standard week numbers = unhandled Like `internal' and file names which are unhandled Actual respected period: %02d-%02d %s %0*d Actual: (%s) `%s' (%s) Change base time of astronomical functions Change base year of calendar Change cycle-ending time Change cycle-timestep Create response file for the `%cFILE' option Create shell script which contains the arguments of command line Define additional resource file line Define global date variable(s) "DVAR->a...d|f...s|u...|z" Define global text variable(s) "TVAR->%ca...%cz" Define translatable country specific special character pairs Determine type of week numbers (actual: %s) Direct output through external `%s' pager Direct output through simple internal pager Disable highlighting of text, holiday resp., actual day Display eternal holiday list (Year in range: %d...%d) Display extended help text and quit program Display help text and quit program Display only those fixed dates, whose date is not excluded by %s Display only those fixed dates, whose text is matched by %s Display software license and quit program Display some debug information Display version information and quit program Exclude title of eternal holiday list Execute `%c%c[%s]' shell commands Export local date variables from file to file Export local text variables from file to file Forces highlighting sequences if output is redirected/piped Ignore case distinctions if `%s' option is given Implies period: Today Limit rise/set times of Sun to the day Modify format of year calendar Provide calendar sheet with week numbers Provide eternal holiday list with BahĦ'i calendar holidays Provide eternal holiday list with BahĦ'i calendar months Provide eternal holiday list with Celtic calendar holidays Provide eternal holiday list with Chinese calendar holidays Provide eternal holiday list with Chinese calendar months Provide eternal holiday list with Chinese flexible calendar holidays Provide eternal holiday list with Chinese flexible calendar months Provide eternal holiday list with Christian Western calendar holidays Provide eternal holiday list with Coptic calendar months Provide eternal holiday list with Ethiopic calendar months Provide eternal holiday list with French Revolutionary calendar months Provide eternal holiday list with Hebrew calendar holidays Provide eternal holiday list with Hebrew calendar months Provide eternal holiday list with Indian civil-calendar months Provide eternal holiday list with Islamic civil-calendar holidays Provide eternal holiday list with Islamic civil-calendar months Provide eternal holiday list with Japanese calendar holidays Provide eternal holiday list with Japanese calendar months Provide eternal holiday list with Japanese flexible calendar holidays Provide eternal holiday list with Japanese flexible calendar months Provide eternal holiday list with Old-Armenic calendar months Provide eternal holiday list with Old-Egyptic calendar months Provide eternal holiday list with Orthodox new-calendar holidays Provide eternal holiday list with Orthodox old-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar months Provide eternal holiday list with astronomical data Provide eternal holiday list with country specific holidays Provide eternal holiday list with multicultural New Year holidays Provide eternal holiday list with zodiacal marker data Represent astronomical times and data with utmost precision Revert the sense of matching of the `%s' option Send output via `%s' program to user Set EXIT status of program to %d on `%s' etc. Set base data of Earth's atmosphere Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday) Set order of date elements using the %s format text Set period of Gregorian Reformation Set reference value for rise/set time respectively shadow length Set starting day of week (actual: %s) Suppress leading blank line of eternal holiday list Suppress output of calendar sheet explicitly Use alternative file(s) instead of standard resource file Use consecutive day of year in calendar sheet Use consecutive day of year in eternal holiday list Use consecutive day of year in fixed date list Use leap year rule of Eastern Orthodox churches Use special format for calendar sheet Use standard resource file `%s%s' for fixed date list Use standard resource file `.%s%s' for fixed date list and "TVAR[%s|%c%s]COMMAND" assignments respectively, change cycle-starting time %-3s = Single file or list of files connected by `%s' characters [MOD] = %s Descending sort order [MOD] = One or more of the following modifiers which are marked by # %-*d%*s = Set period to: %02d-%02d %s %0*d %-3s = "DVAR%s%s%s" definitions separated by `%s' characters %-3s = "TVAR%sTEXT" definitions separated by `%s' characters %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %s%c%s%s%s%s%s%s Set period explicitly %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d) %-3s = Air pressure and temperature separated by `%s' character %-3s = Angular value respectively factor in range: %+.1f...%+.1f %-3s = Any possible resource file line %-3s = Any text respectively "regular expression" you like %-3s = Define individual format. Respected format elements are: %-3s = File name of the shell script %-3s = Highlighting sequence pairs separated by `%s' characters %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]' %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d) %-3s = One or more of the following characters. If character %-3s = Single country resp., territory code or a list of these, %-3s = Store arguments of command line in file %s %-3s = UPPER-CASE-LETTER""LOWER-CASE-LETTER... definitions %-3s = [%s|%s]YYYY Year offset value (actual: %d) %-3s = yes ISO-8601:1988 week numbers %-6s = Format is: `%s' (%s) C = Display those dates, for which fixed dates doesn't exist, too F = Display those dates, for which fixed dates doesn't exist, too N = Legal days only [MOD] = b Use both date notations (day of month+year) %sL, %s Display software license and quit program %sV, %s Display version information and quit program %sh, %s Display this help text and quit program %shh, %s Display extended help text and quit program %sp, %s Direct output through external `%s' pager %sp, %s Direct output through simple internal pager [%-3s] = Email address, otherwise eMail is send to user `%s' [%-3s] = internal Information if program internal maximums are reached [MOD] = - Use standard format for calendar sheet [MOD] = b Use both date notations (day of month+year) (%.4s for Alpha) (%.4s for VAX) (BSD/386 1.1 or later) (FreeBSD 2.0 or later) (NetBSD 1.2 or later) (NetBSD before 0.9) 1.0 or 1.5? 4.0 or 4.02 ; Week %s = %+4d day = %+4d days `HERE' c = Display only those dates, for which fixed dates exists day f = Display only those dates, for which fixed dates exists later than 4.5 later than 5.0 n = Legal days and memorial days on # Day number (must be defined)# Month name# Month number# Weekday name (may be defined)# Year number (must be defined)%cDATE%cFILE%s = Month in range: %d...%d%s in search pattern `%s'%s%*s = Year in range: %d...%d%s%s contains %d maximum entries now!%s%s: for more, <%s> to quit...%s: The Gregorian calendar program (GNU cal) %s%s: Use `%s %s' with one of these arguments%s: abort, %s: command in environment variable `%s' found -- %s %s %s %s: error during program execution of `%s' %s: file not found %s: invalid date given -- %c%s %s %s %s: invalid date given -- %s %s %s %s: invalid option -- %s%s: no regular file %s: option `%s' doesn't allow an argument%s: option `%s' is ambiguous%s: option `%s' requires an argument%s: option `--%s' doesn't allow an argument%s: option `--%s' requires an argument%s: option requires an argument -- %s%s: option with ambiguous argument -- %s%s: option with invalid argument -- %s%s: unrecognized option `%s'%s: warning, eMail with empty message body not sent to <%s>. %s:%*sThe year %0*d is A leap year%s:%*sThe year %0*d is NO leap year%s:%*sThe year %d is A leap year%s:%*sThe year %d is NO leap year(`%s') date format `%s' is invalid(bad version)++ 1.0 or later++ 3.0 or later+++ FIXED DATES +++1st Advent1st Sunday in Lent2nd Advent2nd Sunday in Lent3rd Advent3rd Sunday in Lent4th Advent4th Sunday in Lent5.1 or earlier7-5-3 Festival:ALIGNMENT group (exactly one member must be defined):AMOARGAborigines DayAdelaide Cup DayAdmission DayAfghanistanAga Khan's BirthdayAlaska DayAlbaniaAleksis Kivi DayAlgeriaAlice-Springs Show DayAll Fool's DayAll Saints' DayAll Saints' EveAll Souls' DayAll format elements marked by # may optionallyAlphabet DayAmerican SamoaAmericas DayAndorraAngam DayAngola #AnguillaAnniversary of Amir's SuccessionAnniversary of Armed StruggleAnniversary of AucklandAnniversary of Canterbury NorthAnniversary of Canterbury SouthAnniversary of Chatham IslandsAnniversary of Green MarchAnniversary of Hawkes' BayAnniversary of MarlboroughAnniversary of NelsonAnniversary of OtagoAnniversary of SouthlandAnniversary of TaranakiAnniversary of WellingtonAnniversary of WestlandAnnularAntigua and BarbudaAntillian DayAnzac DayAprAprilArab League DayArbor DayArchbishop Makarios' Memorial DayArchbishop Makarios' Name-DayArengo AnniversaryArgentinaArgument `%s' of command line ignored.Armed Forces DayArmeniaArmistice DayArmy Coup DayArrival of the SwissArtigas' BirthdayArubaAscension of Abdu'l-BahaAscension of Baha'u'llahAsh MondayAsh WednesdayAshura'AstAsuncion DayAtaturk Memorial DayAugAugustAustraliaAustralia/CanberraAustralia/New South WalesAustralia/Northern TerritoryAustralia/QueenslandAustralia/Southern AustraliaAustralia/TasmaniaAustralia/VictoriaAustralia/Western AustraliaAustriaAuthority's Power DayAzerbaijanBa'ath Revolution DayBackslash ('%c') characterBahBahamasBahrainBahĦ'i New Year's DayBangladesh #Bank HolidayBarbadosBaron Bliss DayBasque National DayBataan DayBattle of AngamosBattle of BoyacĦBattle of BoyneBattle of CaraboboBattle of IquiqueBattle of Las PiedrasBattle of N¤felsBattle of PueblaBeginning of Financial YearBeginning of SummerBelarusBelgiumBelgrade's DayBelizeBeltaneBenin #Benito JuĦrez DayBennington Battle DayBermudaBhutan #Birth of Baha'u'llahBirth of the BabBlessing of the WaterBloomsdayBodhidharma's BirthdayBoganda DayBoliviaBonaire DayBoqueron Battle DayBosnia-HerzegovinaBosses' DayBotswanaBotswana DayBounty DayBouvet IslandBoxing DayBrazilBringing Home the Herds DayBringing in the Harvest DayBritish Virgin IslandsBruneiBuddha's BirthdayBulgariaBunker Hill DayBurkina FasoBurning of Jan HusBurns NightBurundi #C. Mapinduzi DayCOMMANDCWCambodia #CameroonCamoes DayCanadaCanada/AlbertaCanada/British ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland and LabradorCanada/Nova ScotiaCanada/OntarioCanada/Prince Edward IslandCanada/QuİbecCanada/SaskatchewanCanada/YukonCanberra DayCannot calculate lunisolar calendar for %d correctlyCannot execute command in file `%s' Line: %ld %sCape VerdeCaricom DayCarnivalCasimir Pulaski's BirthdayCassinga DayCatherine Show DayCayenne FestivalCayman IslandsCelCentral African Republic #Cesar Chavez DayChadCharacter replacement:Charter DayChen/DragonChiChiang Kai-shek's BirthdayChildren's DayChildren's White SundayChileChinaChinese New Year's DayChinese New Year's EveChou/OxChrChrist's Ascension DayChristmas DayChristmas EveChristmas IslandsChrysanthenum DayCitizenship DayCivic HolidayCocos Islands (Keeling)ColombiaColon DayColorado DayColumbus DayComing of Age DayCommand executed (exit code=%d) in file `%s' Line %ld: %sCommonwealth DayComorosCompact DayCompiled with %s%s for %s%s%s%sConfederal Agreement DayConfucius' BirthdayConstitution AnniversaryCook IslandsCoptic New Year's DayCoronation DayCosmonauts' DayCosta RicaCreatedCroatiaCross Raising DayCubaCulture DayCup Match DayCustom Chief's DayCycleCyprusCzech RepublicC´te d'IvoireDDarwin Show DayDate format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Day after Mid-Autumn FestivalDay after Tomb-Sweeping DayDay of AndaluciaDay of CataloniaDay of Czech StatehoodDay of GaliciaDay of GoodwillDay of Prayer and RepentanceDay of ReconciliationDay of Students RevoltDay of the CovenantDay of the Free LaosDeath of H. ChristopheDeath of J. DessalinesDeath of President AbdallahDeath of President CheikhDeath of President SoilihDeath of Qaid-i-AzamDeath of T. LouvertureDecDecemberDeclaration of the BabDefenders DayDefenders of Motherland DayDemocratic People's Republic of KoreaDemocratic Republic of Congo #DenmarkDia de los MaestrosDia del PadreDiscovery DayDjiboutiDominicaDominican RepublicDouble-9 DayDownfall of the DergueDr. Sun Yat-sen's BirthdayDragon Boat FestivalDry Season CelebrationDuarte's BirthdayDynasty DayE. Hostos' BirthdayEGOEaster MondayEaster SundayEaster TuesdayEconomic Liberation DayEcuadorEgyptEid-al-AdhaEid-al-FitrEid-i-Milad-un-NabiEight Hours DayEindhoven's LiberationEl SalvadorElection DayElections for National AssemblyEmail bug reports to <%s>EmoEmperor's BirthdayEnd of highlighting sequence/marking characterEpiphany/Three King's DayEquatorial GuineaEquinox DayEritreaErrol Barrow DayEstoniaEternal holiday listEthiopiaEthiopic New Year's DayEvacuation DayEve of EpiphanyExpedition of the 33FAO DayFORMAT group (exactly one member must be defined):FRRFalkland Islands (Malvinas)Family DayFarmers' DayFaroesFather Leval DayFather's DayFeast of Corpus ChristiFeast of FortuneFeast of Heart JesusFeast of Our TheotokosFebFebruaryFederated States of MicronesiaFestival of LanternsFestival of SadehField contents is converted to capitalized wordsField contents is converted to lower-case lettersField contents is converted to upper-case lettersField contents is cut after position WIDTHField contents is not cut after position WIDTHField contents placed at the left margin using width WIDTHField contents placed at the right margin using width WIDTHField contents placed in centered manner using width WIDTHField has the width N (%d...%d)Fiji #FinlandFirst Day of RidvanFisherman's DayFixed date list:Flag DayFlemish Culture DayFormer Yugoslav Republic of MacedoniaFoundation of NPLA DayFounding of People's PartyFounding of the Communist PartyFrFranceFrench Culture DayFrench GuianaFrench PolynesiaFrench RevolutionaryFriFridayFridaysFriendship DayFull MoonGNU gcal home page: <%s>Gabon #GambiaGarifuna DayGeneral San Martin's AnniversaryGeneral help using GNU software: <%s>GeorgiaGerman Unity DayGermanyGermany/Baden-WĵrttembergGermany/BavariaGermany/BerlinGermany/BrandenburgGermany/BremenGermany/HamburgGermany/HesseGermany/Lower SaxonyGermany/Mecklenburg-West PomeraniaGermany/North Rhine-WestphaliaGermany/Rhineland PalatinateGermany/SaxonyGermany/Saxony-AnhaltGermany/Schleswig-HolsteinGermany/ThuringiaGhadirGhanaGibraltarGood FridayGood Saturday/Easter EveGospel DayGrandparents' DayGreat BritainGreat Britain/England and WalesGreat Britain/Northern IrelandGreat Britain/ScotlandGreeceGreenery DayGreenlandGrenadaGrotto DayGroundhog DayGuacanaste DayGuadalupe Virgin's DayGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Gustavus Adolphus' DayGuyana #Hai/PigHaitiHalloweenHannukah/Festival of LightsHealth and Sport's DayHeard and Mc Donald IslandsHebHeritage DayHeroes DayHighlighting group (all members must be defined):Ho Chi Minh's BirthdayHobart Show DayHoly Innocent's DayHoly TrinityHoly WednesdayHondurasHong KongHuman Rights DayHungaryHuravee DayHurricane Supplication DayHurricane Thanksgiving DayIcelandIf you use this software, you agree without any exception to thisImamat DayImbolgIndependence DayIndependence Movement DayIndependence ProclamationIndependence of CartagenaIndependence of CuencaIndependence of GuayaquilIndependence of QuitoIndia #Indian Arrival DayIndian New Year's DayIndonesia #IntInternalInternal Autonomy DayInvalid argument in command line given -- %sIraqIrelandIslIslamic New Year's DayIslamic Republic of IranIsraelItalyJ. Barbosa's BirthdayJ. Chilembwe DayJ. Diego's BirthdayJ. Robert's BirthdayJamaicaJanJanuaryJapJapanJapanese New Year's DayJapanese New Year's EveJefferson Davis' BirthdayJesus' CircumcisionJordanJulJulyJunJuneJune HolidayKamarampaka DayKartini DayKazakhstanKenya #Kiev DayKim Il-Sung's BirthdayKim Jong-Il's BirthdayKing Kamehameha DayKing Rama I Memorial Day/ChakriKing Rama V Memorial DayKiribati #KnabenschiessenKonstantin and MethodiusKuwaitKwanzaaKyrgyzstanL. Rivera's BirthdayLabour DayLabour Thanksgiving DayLag B'OmerLao Tze's BirthdayLaos People's Democratic Republic #Lapp National HolidayLatviaLaunceston Cup DayLeap-day set to `%02d-%s' in file `%s'.LebanonLesothoLiberation DayLiberiaLiberty DayLibyan Arab Jamahiriya (Libya)LiechtensteinLine %ld ignored: %sLine %ld: %sLithuaniaLoss of Muslim NationLughnasaLunar EclipseLuxembourgLuxembourg City KermisLyndon B. Johnson DayMMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.MacauMadagascar #Madaraka DayMahatma Gandhi's BirthdayMail from \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaldivesMaliMaltaMalvinas DayManila DayMao/RabbitMaputo City DayMarMarchMarien Ngouabi DayMarine DayMarshall IslandsMartin L. King's DayMartinimasMartiniqueMartyrdom of the BabMartyrs' DayMary - Blessed VirginMary's Annunciation DayMary's Ascension DayMary's CandlemasMary's ExpectationMary's Immaculate ConceptionMary's MaternityMary's NameMary's NativityMary's SacrificeMary's VisitationMaryland DayMaundy ThursdayMauritaniaMauritiusMayMay May DayMayotteMelbourne Cup DayMerchant DayMexicoMi-CarŞme DayMid-Autumn FestivalMid-Spring FestivalMid-Year FestivalMissionary DayMoMonMonacoMondayMondaysMondays...FridaysMondays...ThursdaysMongolia #Month group (exactly one member must be defined):MontserratMorazan DayMoroccoMosheshoe's DayMother in Law's DayMother's DayMotherhood and Beauty DayMozambiqueMusic Water BanquetMyanmar (Burma) #NamibiaNaming DayNational Bun DayNational Foundation DayNational Heroes DayNational HolidayNational Mourning DayNational Redemption DayNational Resistance DayNational Revival DayNational Unity DayNauruNdadaye DayNepal #NetherlandsNetherlands Antilles/BonaireNetherlands Antilles/Cura§aoNetherlands Antilles/Saba and StatiaNetherlands Antilles/St MaartenNeutrality DayNevada DayNew CaledoniaNew MoonNew Regime AnniversaryNew Year's DayNew ZealandNicaraguaNigerNigeriaNinth Day of RidvanNiueNobel DayNoi DayNorthern Marian Islands (Saipan)Noruz/Persian New Year's DayNorwayNovNovemberNumerical value is filled with leading zero(es)Numerical value is provided with an ordinal number suffixNumerical value is provided with leading signNurses' DayNuzul-al-Qur'anOAU DayOPTIONOctOctoberOctober HolidayOil Industry DayOld-Armenic New YearOld-Egyptic New YearOmanOn principle I will not be liable for ANY damages or losses (implicitOrthodox New Year's DayOur Lady Aparecida DayOur Lady of Altagracia DayOur Lady of Camarin DayOur Lady of Las Mercedes DayOur Lady of Los Angeles DayOur Lady of Seven SorrowsOur Lady of Victories DayOxNOxOPakistanPalauPalm SundayPanamaPanama City DayPanamerica DayPapua New GuineaParaguayParent's DayParis Peace Agreement DayPartialPassion SundayPatriot's DayPeace FestivalPeach FestivalPenumbralPeople Power DayPeople's Uprising DayPerPercent ('%c') characterPeruPesach/PassoverPhilippine-American FriendshipPhilippinesPhyPichincha DayPicnic DayPioneer DayPitcairnPolandPortugalPoya DayPrayer DayPreload options and commands from `FILE'President Lincoln's BirthdayPresidential InaugurationPresidents' DayPresidents' InformPrince Kalanianaole DayPrince of Wales' BirthdayPrincess' DayProclamation DayPuerto RicoPurim/Feast of LotsQaid-i-Azam's BirthdayQatarQuds DayQuinquagesima SundayRamadanRatu Sukuma DayRecreation DayReferendum DayReformation DayRegatta DayRegency ExchangeRemembrance/Memorial DayRepublic DayRepublic of Congo #Republic of KoreaRepublic of MoldovaRespect for the Aged DayRestoration DayReturn DayReunification DayRevolution DayRio de Janeiro AnniversaryRizal DayRogation SundayRomaniaRosh Hashana/New Year's DayRussian FederationRwagasore DayRwandaRİunionS. Doe's BirthdaySAR Establishment DaySIGN (may be defined):STYLE group (exactly one member may be defined):SUFFIX (may be defined):SaSaba DaySaint-Pierre and MiquelonSamhain/Celtic New Year's DaySamoaSan Jacinto DaySan Josİ DaySan MarinoSao Paulo AnniversarySao Tomİ and PrincipeSapporo Snow FestivalSatSaturdaySaturdaysSaudi ArabiaSchool HolidaySeason Change/Bean-FestivalSechsel¤utenSenegalSepSeparation DaySeptemberSeptuagesima SundaySerbia and MontenegroSeretse Khama DaySettlers DaySeven Sleepers DaySeward's DaySexagesima SundaySeychellenShab-e QadrShab-e-Bara'tShab-e-Mi'rajShaheed DayShavuot/Giving of the TorahSheep FestivalSheikh Zayed's Ascension DayShen/MonkeyShrove Tuesday/Mardi GrasShushan PurimSi/SnakeSierra LeoneSimchat TorahSimon Bolivar's DaySinai-Liberation DaySingapore #Slave-Liberation DaySlovakiaSloveniaSniff the Breeze DaySolar EclipseSolidarity DaySolomon IslandsSolstice DaySomaliaSomers DaySoot-Sweeping DaySouth AfricaSouth Georgia and South Sandwich IslandsSpace/blank ('%c') characterSpainSpring FestivalSri Lanka #St Agata DaySt Andrew's DaySt Bartholomew DaySt Berchtold's DaySt Canute's DaySt Cedilia's DaySt Charles' DaySt David's DaySt Demetrius' DaySt Dİvote DaySt Edward's DaySt Eliah's DaySt George's DaySt HelenaSt James' DaySt Jean Baptiste DaySt John's/Midsummer DaySt John's/Midsummers EveSt Joseph's DaySt Kitts and NevisSt Laurentius DaySt LuciaSt Lucia's DaySt Marguerite's DaySt Maroon's DaySt Michael's DaySt Nicholas' DaySt Nicholas' EveSt Olav's DaySt Olav's EveSt Patrick's DaySt Paul's ShipswreckSt Peter and St PaulSt Rose of LimaSt Stephen's DaySt Ursula's DaySt Valentine's DaySt Vincent and GrenadinesSt Vincent de Paul's DayStandardStar FestivalStart of common monthStart of highlighting sequence/marking characterStart of leap monthStatia-American DayStudent's DaySuSudanSuez Victory DaySukkot/Feast of TabernaclesSultan Qaboos' BirthdaySunSundaySunday of the DeadSundaysSuriname #Svalbard and Jan Mayen IslandsSvetitskhovlobaSwallow DaySwazilandSwedenSweden DaySweetest DaySwitzerlandSwitzerland/AargauSwitzerland/Appenzell AusserrhodenSwitzerland/Appenzell InnerrhodenSwitzerland/Basel-StadtSwitzerland/BernSwitzerland/FribourgSwitzerland/Gen¨veSwitzerland/GlarusSwitzerland/GraubĵndenSwitzerland/JuraSwitzerland/LuzernSwitzerland/Neuch˘telSwitzerland/NidwaldenSwitzerland/ObwaldenSwitzerland/SchaffhausenSwitzerland/SchwyzSwitzerland/SolothurnSwitzerland/St GallenSwitzerland/ThurgauSwitzerland/TicinoSwitzerland/UriSwitzerland/ValaisSwitzerland/VaudSwitzerland/ZugSwitzerland/ZĵrichSylvester/New Year's EveSyrian Arab Republic (Syria)TaiwanTajikistanTanzaniaTeacher's DayTennant-Creek Show DayTerritory DayThThai New Year's DayThailand #Thanksgiving DayThe Crown Prince's BirthdayThe Crown Princesse's BirthdayThe Crown Princesse's Name-DayThe King's BirthdayThe King's Name-DayThe Queen's BirthdayThe Queen's Name-DayThere is NO warranty, without even the implied warranty ofThis is free software; see the source for copying conditions.This program is free software; you can redistribute it and/or modifyThis software doesn't claim completeness, correctness or usability.ThuThursdayThursdaysTiradentes DayTisha B'Av/Fasting DayTogo #TokelauTomb-Sweeping DayTongaTopou I DayTotalTown Meeting DayTraditional DayTransfer DayTransfiguration DayTrinidad and Tobago #Truman DayTry to open (level: %02d) include file `%s'... %s%s%sTry to open%sresource file `%s'... %s%s%sTry to write %s `%s'... %s%s%sTuTu B'Shevat/New Year of TreesTueTuesdayTuesdaysTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluTwelfth Day of RidvanTynwald DayU.S. Virgin IslandsU.S.A.UNKNOWNUgandaUkraineUnderscore ('%c') characterUnion DayUnion with Sweden dissolvedUnited Arab EmiratesUnited Nations DayUnited StatesUnited States/AlabamaUnited States/AlaskaUnited States/ArizonaUnited States/ArkansasUnited States/CaliforniaUnited States/ColoradoUnited States/ConnecticutUnited States/DelawareUnited States/District of ColumbiaUnited States/FloridaUnited States/GeorgiaUnited States/HawaiiUnited States/IdahoUnited States/IllinoisUnited States/IndianaUnited States/IowaUnited States/KansasUnited States/KentuckyUnited States/LouisianaUnited States/MaineUnited States/MarylandUnited States/MassachusettsUnited States/MichiganUnited States/MinnesotaUnited States/MississippiUnited States/MissouriUnited States/MontanaUnited States/NebraskaUnited States/NevadaUnited States/New HampshireUnited States/New JerseyUnited States/New MexicoUnited States/New YorkUnited States/North CarolinaUnited States/North DakotaUnited States/OhioUnited States/OklahomaUnited States/OregonUnited States/PennsylvaniaUnited States/Rhode IslandUnited States/South CarolinaUnited States/South DakotaUnited States/TennesseeUnited States/TexasUnited States/UtahUnited States/VermontUnited States/VirginiaUnited States/WashingtonUnited States/West VirginiaUnited States/WisconsinUnited States/WyomingUnity Factory DayUruguayUsage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...] Usage: %s [--%s | --%s] | [RESOURCE-FILE | -] Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART] Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]Use `%s %s|[%s?]Use given `DATE' instead of today's dateUzbekistanValborg's EveVanuatuVenezuelaVenice CarnivalVeteran's DayVictor-Schoelcher DayVictoria DayVictory DayVidovdanViet NamWW. Tubman's BirthdayWIDTH (must be defined):Wallis and Futuna IslandsWaning Half MoonWaqf-al-ArafatWaxing Half MoonWeWedWednesdayWednesdaysWeekWeek %sWei/SheepWest Virginia DayWestern SaharaWhit MondayWhitsun EveWhitsunday/PentecostWomen's DayWomen's Shrove DayWorld Animal DayWu/HorseXu/DogYYap DayYemenYin/TigerYom Ha Azmaut/Independence DayYom Hashoah/Holocaust MemorialYom Hazikaron/Soldiers MemorialYom Kippur/Atonement DayYom Yerushalayim/Jerusalem DayYou should have received a copy of the `GNU General Public License'You/RoosterYouth DayZERO (may be defined):ZambiaZi/RatZimbabweZod[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]`%s' line %ld: (`%s') `%s%d' failed`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'`%s' line %ld: (`%s') unmanaged error (%d)`%s' line %ld: virtual memory exhausted (%s=%d)`Eternal holiday list'`Internal'`termcap' file not foundagreement, which binds you LEGALLY !!along with this program; if not, write to the:amany later version.command linecontain a format instruction, which template is like:d'"defaultenvironment variableenvironment variable `%s' not foundenvironment variable `%s' not setfailedfile `%s' can't be written Storage media full!file `%s' not foundfor more information.h'"holidaysillegal character in response file `%s' Line %ld: %sillegal definition of variable `%c'illegal operation on variable `%c'illegal variable definition in file `%s'illegal variable operation in file `%s'invalid N'th weekday field(%d) in file `%s' Line %ld: %sinvalid date part in file `%s' Line %ld: %sinvalid dayinvalid day field(%02d) in file `%s' Line %ld: %sinvalid monthinvalid month field(%02d) in file `%s' Line %ld: %sinvalid recursive/cyclic %s in file `%s' Line %ld: %sinvalid search pattern `%s' specifiedinvalid value assigned to variable `%c' in file `%s'invalid year for computing Easter Sundays date Year must be in range (%d...%d)it under the terms of the `GNU General Public License' as published bylegal holidaysmalformed %s in file `%s' Line %ld: %smissing `whitespace' character after date part in file `%s' Line %ld: %sndor explicit), which result from using or handling my software.pmrdread error in file `%s'response fileself-definedsending eMail to <%s> failedshell scriptshift value `%s' is invalidstsuccessththe `Free Software Foundation'; either version 3, or (at your option)unknown unknown compilerunknown compiler (SDK?)unknown terminal type defined in `%s'unknown versionvariable `%c' undefined in file `%s'version %dversion %d.%dProject-Id-Version: GNU gcal 3.6.3 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 2013-04-01 08:53-0600 Last-Translator: Cristian Oth³n Mart­nez Vera Language-Team: Spanish Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. %s: abortar, %s: programa interrumpido por la seħal %d %s: aviso, %s. `%s' l­nea %ld: %-3s = %d...%d Longitud de un eje %-3s = %d...%d Nşmero total de l­neas %-3s = february Respecto al '28-FEBRERO' %-3s = march Respecto al '01-MARZO' = %s AtrĦs = %s Lista desde ayer hasta el principio del mes = %s Lista desde ayer hasta el principio de la semana = %s Lista todo el aħo hasta ayer N = 0 %s que no estĦ en la primera semana N = 0 1ÂŞ y şltima semana del aħo anterior N = 1...4 1Âş...4Âş d­a de la semana %s (siempre) N = 1...51 %s de 1a...51a semana (siempre) N = 1...51 1er...51Âş d­a de la semana %s (siempre) N = 1...52 1-a...52-a semana (siempre) N = 5 5° d­a de la semana %s (a veces) N = 52|53 %s de la semana 52|52 (a veces) N = 52|53 52|53Âş d­a de la semana %s (a veces) N = 53 53ÂŞ semana (a veces) N = 9 Ultimo d­a de la semana %s N = 99 %s de la şltima semana N = 99 šltima semana N = 99 Ultimo d­a de la semana %s Actual: `%s' = Contempla el '29-FEBRERO' en los aħos no bisiestos = Cambiar la altura del texto de las grĦfica de fase lunar = Cambiar anchura de la grĦfica de biorritmos o: nombre del mes | %s | %s%s | %s%s | %s%s [MOD] = %s Lista de maħana al şltimo d­a del mes [MOD] = %s Lista de maħana al şltimo d­a de la semana [MOD] = %s Lista desde maħana hasta fin de aħo %s%cwN[%s], nombre del mes[%s], nombre del d­a[N] or %s MOD = %s Adelante %-*s = Fiestas en %s %-3s = Texto de t­tulo/encabezado para la lista de fechas fijas %c = Exclusi³n de todos los %s Presi³n del aire en milibares (actual: %.3f) Temperatura del aire en grados Celsius (actual: %+.3f) p.e. %sH %s%s*%s* Usa `*' y `*' para la secuencia 2 p.e. %sH \x2%s\xAE Usa los valores hex. 2 y AE para la secuencia 1 p.e. %sr %ca%sfoo Almacena la salida del comando `foo' en `%ca' p.e. %sr %ca%sfoo%s%cb%sbar Almacena `foo' en `%ca' y `bar' en `%cb' p.e. %sv a%s1127%sb%s054 Almacena 27 Nov en `a' y 4 May en `b' p.e. `%s%s%s%s%s%s%s%s' %-3s causa la conversi³n correcta de Lista: %s[%s%s]%s...%s%s[%s%s] Lista: [%s%s]%s%s...%s[%s%s]%s Entre: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s Entre: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s expresiones separadas por `%s' caracteres es una LETRA MINšSCULA, ÂĦsignifica no-exclusi³n! marcados con # tienen un registro incompleto de fiestas los caracteres especiales precedentes en un formato personal de fecha, usa el conjunto de caracteres utilizados en Alemania que estĦn conectados por `%s' caracteres. Los pa­ses/territorios, el cual tiene un componente instrucci³n de formato ESTILO, y que # %c%c[%s|%s]N%s = d­a N de la semana respecto al Domingo de Pascua # %c%c[%s|%s]N%s = d­a de la semana N respecto al d­a de hoy # %c%c[[%s|%s]N] = d­a N respecto al Domingo de Pascua # %c%c[[%s|%s]N] = d­a N respecto al d­a de hoy # %c?[%s|%s]N%s = d­a de la semana N respecto a la variable de fecha # %c?[[%s|%s]N] = d­a N respecto a la variable de fecha # %cdN = d­a absoluto N # %cdN%s = D­a N de la semana %s # %cwN%s = D­a de la semana %s de la semana N # %s%s = D­a %s del mes %s # %s%sN = D­a N de la semana %s del mes %s # A = Utiliza un formato de listado distinto # e = Incluir solo d­as hĦbiles # J = Suprime la parte de texto de la fecha # NMOD = d­a N respecto a hoy # Nd = d­a absoluto N # Nw = Semana N completa # Q = Suprime la l­nea en blanco de la lista de fechas fijas # U = Suprime la parte de la fecha # Z = Muestra fechas, para las que no existen fechas fijas # a = Muestra el origen de una fecha # d = Incluye la fecha actual si se ha generado la lista de periodos # e = Incluir d­as hĦbiles y commemorativos # g[MOD] = Agrupa avisos de fechas por d­a usando el texto MOD # k = Muestra el nşmero de la semana # l = Genera una lista de periodos en lugar de unsolo periodo # m|M[MOD] = Lista el mes completo # o = Evita redundancias en las fechas # t|T = Lista maħana # w|W[MOD] = Lista la semana completa # x = No muestra el t­tulo en la lista de fechas # y|Y[MOD] = Lista el aħo completo # z = Muestra el siguiente nşmero de fecha fija 1. Representaci³n del texto 2. Periodo relacionado = Definiciones de "TVAR[%s|%c%s]ORDEN" separadas por `%s' caracteres = abort Como `all', pero aborta si el nombre del fichero da error = all Como `handled' y `unhandled' a la vez = handled Como `internal' y muestra los nombres de fichero tratados = no Nşmeros de semana estĦndard = unhandled Como `internal' y muestra nombres de fichero no tratados Periodo respecto al actual: %02d-%02d %s %0*d Actual: (%s) `%s' (%s) Cambia el tiempo base de las funciones astron³micas Cambia el aħo base del calendario Cambia el tiempo del fin de ciclo Cambia el lapso de tiempo del ciclo Crea un fichero de resultados para la opci³n `%cFICHERO' Crea un fichero de ³rdenes con los argumentos de la l­nea de ³rdenes Define una l­nea adicional del fichero de recursos Define la(s) var(s) globales de fecha "DVAR->a...d|f...s|u...|z" Define variable(s) global(es) de texto "TVAR->%ca...%cz" Define el par de caracteres especiales traducibles espec­ficos del pa­s Determina el tipo de nşmeros de semana (actual: %s) Dirige la salida a travİs del paginador externo `%s' Dirige la salida a travİs del visor interno Inhibe el brillo en el texto, d­as festivos y el actual Lista perpetua de d­as festivos (Aħo entre: %d...%d) Muestra informaci³n de ayuda y finaliza Muestra un mensaje de ayuda y finaliza Muestra s³lo las fechas constantes no exclu­das por %s Muestra s³lo las fechas constantes cuyo texto estİ marcado por %s Muestra la licencia del programa y finaliza Muestra algunos mensajes de depuraci³n Muestra informaci³n de la versi³n y finaliza Excluye el t­tulo de la lista perpetua de d­as festivos Ejecuta las ³rdenes de shell `%c%c[%s]' Exporta las variables locales de fecha de un fichero a otro Exporta variables locales de texto de un fichero a otro Fuerza el atributo de brillo aunque la salida estİ redirigida Ignora las distinciones de mayşsculas y minşsculas con la opci³n `%s' Implica que el periodo de aviso es el d­a de hoy Limita los tiempos de salida/puesta del sol al d­a Cambia el formato del calendario anual Da la hoja de calendario con nşmeros de semana Lista perpetua de fiestas con las fiestas del calendario BahĦ'i Lista perpetua de fiestas con los meses del calendario BahĦ'i Lista perpetua de fiestas con las fiestas del calendario Celta Lista perpetua de fiestas con las fiestas del calendario Chino Lista perpetua de fiestas con los meses del calendario Chino Lista perpetua de fiestas con las fiestas del calendario flexible Chino Lista perpetua de fiestas con los meses del calendario flexible Chino Lista perpetua de fiestas con las fiestas del calendario Cristiano Occidental Lista perpetua de fiestas con los meses del calendario Copto Lista perpetua de fiestas con los meses del calendario Et­ope Lista perpetua de fiestas con los meses del calendario de la Revoluci³n Francesa Lista perpetua de fiestas con las fiestas del calendario Hebreo Lista perpetua de fiestas con los meses del calendario Hebreo Lista perpetua de fiestas con los meses del calendario civil Indio Lista perpetua de fiestas con las fiestas del calendario civil IslĦmico Lista perpetua de fiestas con los meses del calendario civil IslĦmico Lista perpetua de fiestas con las fiestas del calendario Japonİs Lista perpetua de fiestas con los meses del calendario Japonİs Lista perpetua de fiestas con las fiestas del calendario flexible Japonİs Lista perpetua de fiestas con los meses del calendario flexible Japonİs Lista perpetua de fiestas con los meses del calendario Armenio Antiguo Lista perpetua de fiestas con los meses del calendario Egipcio Antiguo Lista perpetua de fiestas con las fiestas del nuevo calendario Ortodoxo Lista perpetua de fiestas con las fiestas del antiguo calendario Ortodoxo Lista perpetua de fiestas con las fiestas del calendario Jalaali Persa Lista perpetua de fiestas con los meses del calendario Jalaali Persa Lista perpetua de fiestas con datos astron³micos Lista de vacaciones incluyendo las locales Lista perpetua de fiestas con las fiestas multiculturales de Nueva York Lista perpetua de fiestas con datos del zodiaco Representa los tiempos y datos astron³micos con la mayor precisi³n Invierte el sentido de las coincidencias para la opci³n `%s' Redirige la salida a travİs del programa `%s' Cambia el c³digo de SALIDA a %d en `%s' etc. Establece la base de datos de la atm³sfera terrestre Cambia los pares de resaltado 1 (=d­a actual) y 2 (=vacaciones) Cambia el orden de los elementos de fecha usando el patr³n %s Establece el periodo de la Reforma Gregoriana Establece el valor de referencia para la longitud de la sombra en el tiempo de amanecer/atardecer Establece el primer d­a de la semana (actual: %s) Suprime la l­nea blanca del encabezado de la lista perpetua de fiestas No muestra expl­citamente del calendario Utiliza ficheros de recursos distintos del estĦndar Usa el siguiente d­a del aħo en la hoja de calendario Usa el siguiente d­a del aħo en la lista perpetua de fiestas Usa el siguiente d­a del aħo en la lista de vacaciones fijas Utiliza la regla de aħos bisiestos de las iglesias Ortodoxas del Este Usa un formato especial para la hoja de calendario Usa el fichero de recursos `%s%s' para la lista de fechas constantes Usa el fichero de recursos `.%s%s' para la lista de fechas constantes y las asignaciones "TVAR[%s|%c%s]ORDEN" respectivamente, cambia el tiempo de inicio del ciclo %-3s = fichero o lista de ficheros conectados por `%s' caracteres [MOD ] = %s Orden descendente [MOD] = Uno o mĦs de los siguientes modificadores marcados con # %-*d%*s = Periodo: %02d-%02d %s %0*d %-3s = Definici³n de "DVAR%s%s%s" separada por `%s' carĦcteres %-3s = Definiciones de "TVAR%sTEXT" separadas por `%s' caracteres %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Valor de tiempo final (actual: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Valor de desplazamiento de tiempo (actual: %s%02d%s%02d == GMT%s %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Valor de desplazamiento de tiempo (actual: %s%02d%s%02d == GMT%s %-3s = %s%c%s%s%s%s%s%s Cambia el periodo expl­citamente %-3s = 1|2|3|4|6|12 Nşmero de bloques (actual: %d) %-3s = Presi³n del aire y temperatura separados por `%s' caracteres %-3s = Factor de valor angular respectivo en el rango: %+.1f...%+.1f %-3s = Cualquier l­nea del fichero de recursos %-3s = Cualquier texto, respectivamente "expresi³n regular" que desee %-3s = Define un formato personal. Los elementos de formato son: %-3s = Nombre del fichero de ³rdenes %-3s = Pares de resaltado separados por `%s' caracteres %-3s = Lista de `%c[FECHA][%c[FECHA]]' y/o `%c[FECHA][%c[FECHA]]' %-3s = MMMM|HH%s[MM] Valor de lapso de tiempo (actual: %02d%s%02d) %-3s = Uno o mĦs de los siguientes caracteres. Si el carĦcter %-3s = C³digo de un pa­s, c³digo de territorio, o una lista, %-3s = Almacena los argumentos de la l­nea de ³rdenes en el fichero %s %-3s = Definiciones LETRA-MAYšSCULA" "LETRA-MINšSCULA... %-3s = [%s|%s]AAAA Valor de desplazamiento anual (actual: %d) %-3s = yes Nşmeros de semana ISO-8601:1988 %-6s = El formato es: `%s' (%s) C = Muestra las fechas que no estĦn en la lista de constantes F = Muestra tambiİn los d­as que no tienen fechas fijas N = S³lo d­as hĦbiles [MOD] = b Usa ambas notaciones de fecha (d­a del mes+aħo) %sL, %s Muestra la licencia del programa y finaliza %sV, %s Informa de la versi³n y finaliza %sh, %s Muestra este mensaje de ayuda y finaliza %shh, %s Muestra informaci³n de ayuda y finaliza %sp, %s Dirige la salida a travİs del paginador externo `%s' %sp, %s Dirige la salida a travİs del visor interno [%-3s] = Direcci³n de correo, si no el correo se env­a al usuario `%s' [%-3s] = internal Informa si se alcanzan los mĦximos internos del programa [MOD] = - Utiliza el formato estĦndar para la hola de calendario [MOD] = b Usa ambas notaciones de fecha (d­a del mes+aħo) (%.4s para Alpha) (%.4s para VAX) (BSD/386 1.1 o posterior) (FreeBSD 2.0 o posterior) (NetBSD 1.2 o posterior (NetBSD anterior a 0.9) Âż1.0 o 1.5? 4.0 o 4.02 ; Semana %s = %+4d d­a = %+4d d­as `AQU' c = Muestra solo las fechas constantes d­a f = Muestra solo los d­as con fechas fijas posterior a 4.5 posterior a 5.0 n = D­as hĦbiles y d­as conmemorativos activo # Nşmero de d­a (se debe definir)# Nombre del mes# Nşmero de mes# Nombre del d­a de la semana (se debe definir)# Nşmero de aħo (se debe definir)%cDATE%cFILE%s = Mes entre: %d...%d%s estĦ en el patr³n de bşsqueda `%s'%s%*s = Aħo entre: %d...%dÂĦ%s%s contiene un mĦximo de %d entradas!%s%s: para mĦs, <%s> para salir...%s: El programa de calendario Gregoriano (GNU cal) %s%s: Utilice `%s %s' con uno de estos parĦmetros%s: abortar, %s: orden hallada en la variable de entorno `%s' -- %s %s %s %s: error durante la ejecuci³n de `%s' %s: fichero no encontrado %s: fecha invĦlida -- %c%s %s %s %s: fecha invĦlida -- %s %s %s %s: opci³n invĦlida -- %s%s: no es un fichero regular %s: la opci³n `%s' no admite ningşn argumento%s: la opci³n `%s' es ambigua%s: la opci³n `%s' necesita un argumento%s: la opci³n `--%s' no admite ningşn argumento%s: la opci³n `--%s' necesita un argumento%s: la opci³n necesita un argumento -- %s%s: el argumento de la opci³n es ambiguo -- %s%s: la opci³n tiene un argumento no vĦlido -- %s%s: la opci³n `%s' no estĦ reconocida%s: aviso, no se envi³ el email a <%s> con el cuerpo vac­o. %s:%*sEl aħo %0*d es bisiesto%s:%*sEl aħo %0*d NO es bisiesto%s:%*sEl aħo %d es bisiesto%s:%*sEl aħo %d NO es bisiesto(`%s') el formato de fecha `%s' no es vĦlido(versi³n incorrecta)++ 1.0 o posterior++ 3.0 o posterior+++ FECHAS CONSTANTES +++Primer AdvientoPrimer domingo de Cuaresma2Âş Adviento2° domingo de Cuaresma3er Adviento3er domingo de Cuaresma4Âş Adviento4° domingo de Cuaresma5.1 o posteriorFestival 7-5-3:Grupo de ALINEACI“N (debe definirse s³lo un miembro):AMAARGD­a de los Abor­genesD­a de la Copa AdelaideD­a de Admisi³nAfganistĦnNatalicio de Aga KhanD­a de AlaskaAlbaniaD­a de Aleksis KiviAlgeriaD­a de la Feria de Alice SpringsD­a de los Santos InocentesD­a de Todos los SantosV­spera de Todos los SantosD­a de Todas las AlmasTodos los elementos de formato marcados con #D­a del AlfabetoSamoa AmericanaD­a de las AmİricasAndorraD­a de AngamAngola #AnguilaAniversario de la Sucesi³n de AmirAniversario de la Lucha ArmadaAniversario de AucklandAniversario de Canterbury del NorteAniversario de Canterbury del SurAniversario de las Islas ChathamAniversario de la Marcha VerdeAniversario de la Bah­a de HawkesAniversario de MarlboroughAniversario de NelsonAniversario de OtagoAniversario de SouthlandAniversario de TaranakiAniversario de WellingtonAniversario de WestlandAnularAntigua y BarbadosD­a de las AntillasD­a de AnzacabrabrilD­a de la Liga rabeD­a de ArborD­a Memorial del Arzobispo MakariosSantoral del Arzobizpo MakariosAniversario de ArengoArgentinaEl argumento `%s' de la l­nea de ³rdenes no se tendrĦ en cuenta.D­a de las Fuerzas ArmadasArmeniaD­a del ArmisticioD­a del Golpe MilitarLlegada de los SuizosNatalicio de ArtigasArubaAscensi³n de Abdu'l-BahaAscensi³n de Baha'u'llahLunes de PentecostİsMiİrcoles de CenizaAshura'AstD­a de la Asunci³nD­a Memorial de AtaturkagoagostoAustraliaAustralia/CanberraAustralia/Nueva Gales del SurAustralia/Territorio del NorteAustralia/QueenslandAustralia/Australia del SurAustralia/TasmaniaAustralia/VictoriaAustralia/Australia OccidentalAustriaD­a del Poder de la AutoridadAzerbayĦnD­a de la Revoluci³n Ba'athCarĦcter de diagonal invertida ('%c')BahBahamasBahrainD­a de Aħo Nuevo de BahĦ'iBangladesh #D­a FestivoBarbadosD­a del Bar³n BlissD­a de la Naci³n VascaD­a de BataanBatalla de AngamosBatalla de BoyacĦBatalla de BoyneBatalla de CaraboboBatalla de IquiqueBatalla de Las PiedrasBatalla de N¤felsBatalla de PueblaInicio del Aħo FinancieroInicio del VeranoBelarusBİlgicaD­a de BelgradoBeliceBeltaneBenin #D­a de Benito JuĦrezD­a de la Batalla de BenningtonBermudaBhutĦn #Nacimiento de Baha'u'llahNacimiento del BabBendici³n del AguaBloomsdayNatalicio de BodhidharmaD­a de BogandaBoliviaD­a de BonaireD­a de la Batalla de Boquer³nBosnia-HerzegovinaD­a de los JefesBotswanaD­a de BotswanaD­a del Mot­nIsla BouvetD­a despuİs de NavidadBrasilD­a para traer los Rebaħos a CasaD­a para traer la CosechaIslas V­rgenes BritĦnicasBruneiNatalicio de BudaBulgariaD­a de Bunker HillBurkina FasoD­a de la Muerte en la Hoguera de Juana de ArcoNoche del FuegoBurundi #D­a de C. MapinduziORDENCSCamboya #CamerşnD­a de CamoesCanadĦCanadĦ/AlbertaCanadĦ/Columbia BritĦnicaCanadĦ/ManitobaCanadĦ/Nueva BrunswickCanadĦ/Terranova y LabradorCanadĦ/Nueva EscociaCanadĦ/OntarioCanadĦ/Isla Pr­ncipe EduardoCanadĦ/QuİbecCanadĦ/SaskatchewanCanadĦ/Yuk³nD­a de CanberraNo se puede calcular correctamente el calendario lunisolar para %dNo se puede ejecutar una orden en el fichero `%s' L­nea: %ld %sCabo VerdeD­a de la CaricomCarnavalNatalicio de Casimir PulaskiD­a de CassingaD­a de la Feria CatherineFestival de CayenneIslas CaimĦnCelRepşblica Central Africana #oD­a de Cİsar ChĦvezChadSubstituci³n de caracteres:D­a de la CartaChen/Drag³nChiNatalicio de Chiang Kai-shekD­a de los NiħosDomingo Blanco de los NiħosChileChinaD­a de Aħo Nuevo ChinoV­spera del D­a de Aħo Nuevo ChinoChou/BueyCriD­a de la Ascensi³n de CristoD­a de NavidadNochebuenaIslas NavidadD­a del CrisantemoD­a del CiudadanoFiesta C­vicaIslas Cocos (Keeling)ColombiaD­a de Col³nD­a de ColoradoD­a de Col³nD­a de la Llegada de la EraOrden ejecutada (c³digo salida=%d) en el fichero `%s' L­nea %ld: %sD­a de la Comunidad BritĦnicaComorosD­a CompactoCompilado con %s%s para %s%s%s%sD­a del Acuerdo de Confederaci³nNatalicio de ConfucioAniversario de la Constituci³nIslas CookD­a de Aħo Nuevo CoptoD­a de la Coronaci³nD­a de los CosmonautasCosta RicaCreadoCroaciaD­a del Levantamiento de la CruzCubaD­a de la CulturaD­a de la Copa MatchD­a del Arreglo del JefeCicloChipreRepşblica ChecaCosta de MarfilDD­a de la Feria de DarwinFormato de Fecha: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]D­a despuİs del Festival de Medio OtoħoD­a despuİs del D­a de Limpieza de TumbasD­a de Andaluc­aD­a de CataluniaD­a del Estado ChecoD­a de GaliciaD­a de Buena VoluntadD­a de Oraci³n y ArrepentimientoD­a de la Reconciliaci³nD­a de la Revuelta EstudiantilD­a del ConvenioD­a de Laos LibreMuerte de H. ChristopheMuerte de J. DessalinesMuerte del Presidente AbdallahMuerte del Presidente CheikhMuerte del Presidente SoilihMuerte de Qaid-i-AzamMuerte de T. LouverturedicdiciembreDeclaraci³n del BabD­a de los DefensoresD­a de los Defensores de la Madre PatriaRepşblica del Pueblo DemocrĦtica de CoreaRepşblica DemocrĦtica de Congo #DinamarcaD­a de los MaestrosD­a del PadreD­a del DescubrimientoDjiboutiDominicaRepşblica DominicanaD­a del Doble 9Ca­da del DergueNatalicio del Dr. Sun Yat-senFestival del Bote del Drag³nCelebraci³n de la Estaci³n SecaNatalicio de DuarteD­a de la Dinast­aNatalicio de E. HostosEGALunes de PascuaDomingo de Resurrecci³nMartes de PascuaD­a de la Liberaci³n Econ³micaEcuadorEgiptoEid-al-AdhaEid-al-FitrEid-i-Milad-un-NabiD­a de Ocho HorasLiberaci³n de EindhovenEl SalvadorD­a de la Elecci³nElecciones para la Asamblea NacionalInformes de bichos por Email a <%s>EmoNatalicio del EmperadorFin de la secuencia resaltada/carĦcter de marcadoEpifan­a del Seħor/D­a de ReyesGuinea EcuatorialD­a del EquinoccioEritreaD­a de Errol BarrowEstoniaLista perpetua de d­as festivosEtiop­aD­a de Aħo Nuevo Et­opeD­a de la Evacuaci³nV­spera de Epifan­aExpedici³n del 33D­a de la FAOGrupo de FORMATO (debe definirse s³lo un miembro):RFRIslas Falkland (Malvinas)D­a de la FamiliaD­a de los GranjerosFaroesD­a del Padre LevalD­a del PadreFiesta del Corpus CristiFiesta de la FortunaFiesta del Coraz³n de JesşsFiesta de Nuestro SeħorfebfebreroEstados Federados de MicronesiaFestival de las LinternasFestival de SadehLos contenidos de los campos se convierten a letras iniciales mayşsculasLos contenidos de los campos se convierten a letras minşsculasLos contenidos de los campos se convierten a letras mayşsculasEl contenido del campo se corta despuİs de la posici³n ANCHURAEl contenido del campo no se corta despuİs de la posici³n ANCHURAEl contenido del campo se coloca al margen izquierdo utilizando la anchura ANCHURAEl contenido del campo se coloca a la derecha utilizando la anchura ANCHURAEl contenido del campo se coloca al centro utilizando la anchura ANCHURAEl campo tiene la anchura N (%d...%d)Fiji #FinlandiaPrimer D­a de RidvanD­a del PescadorLista de fechas fijas:D­a de la BanderaD­a de la Cultura FlamencaAntigua Repşblica Yugoslava de MacedoniaD­a de la Fundaci³n de NPLAFundaci³n del Partido del PuebloFundaci³n del Partido ComunistaviFranciaD­a de la Cultura FrancesaGuyana FrancesaPolinesia FrancesaD­a de la Revoluci³n FrancesavieviernesViernesD­a de la AmistadLuna LlenaPĦgina web de gcal de GNU: <%s>Gab³n #GambiaD­a de GarifunaAniversario del General San Mart­nAyuda general para usar software de GNU: <%s>GeorgiaD­a de la Unificaci³n AlemanaAlemaniaAlemania/Baden-WĵrttembergAlemania/BavariaAlemania/Berl­nAlemania/BrandenburgoAlemania/BremenAlemania/HamburgoAlemania/HesseAlemania/Sajonia BajaAlemania/Mecklenburg-Pomerania del OesteAlemania/Norte del Rhin-WestphaliaAlemania/Rhineland PalatinateAlemania/SajoniaAlemania/Sajonia AltaAlemania/Schleswig-HolsteinAlemania/TuringiaGhadirGhanaGibraltarViernes SantoSĦbado Santo/V­speras de PascuaD­a del EvangelioD­a de los AbuelosGran BretaħaGran Bretaħa/Inglaterra y GalesGran Bretaħa/Irlanda del NorteGran Bretaħa/EscociaGreciaD­a de las JardinerasGroelandiaGranadaD­a de la CriptaD­a de la MarmotaD­a de GuanacasteD­a de la Virgen de GuadalupeGuadalupeGuamGuatemalaGuineaGuinea-Bissau #D­a de Gustavo AdolfoGuyana #Hai/CerdoHait­Noche de BrujasHannukah/Festival de las LucesD­a de la Salud y los DeportesIslas Heard y Mc DonaldHebD­a de la HerenciaD­a de los HİroesGrupo resaltado (deben definirse todos sus miembros):Natalicio de Ho Chi MinhD­a de la Feria de HobartD­a de los Santos InocentesSant­simia TrinidadMiİrcoles SantoHondurasHong KongD­a de los Derechos HumanosHungr­aD­a de HuraveeD­a de la Sşplica por el HuracĦnD­a de Acci³n de Gracias del HuracĦnIslandiaSi usted utiliza İste programa, acepta sin excepciones İsteD­a de ImamatImbolcD­a de la IndependenciaD­a del Movimiento de IndependenciaProclamaci³n de la IndependenciaIndependencia de CartagenaIndependencia de CuencaIndependencia de GuayaquilIndependencia de QuitoIndia #D­a de la llegada de los IndiosD­a de Aħo Nuevo IndioIndonesia #IntInternoD­a de la Autonom­a InternaArgumento invĦlido en la l­nea de comando -- %sIrakIrlandaIslD­a de Aħo Nuevo IslĦmicoRepşblica IslĦmica de IrĦnIsraelItaliaNatalicio de J. BarbosaD­a de J. ChilembweNatalicio de J. DiegoNatalicio de J. RobertJamaicaeneeneroJapJap³nD­a de Aħo Nuevo JaponİsV­spera del D­a de Aħo Nuevo JaponİsNatalicio de Jefferson DavisCircuncisi³n de JesşsJordaniajuljuliojunjunioFiesta de JunioD­a de KamarampakaD­a de KartiniKazajistĦnKenya #D­a de KievNatalicio de Kim Il-SungNatalicio de Kim Jong-IlD­a del Rey KamehamehaD­a Memorial del Rey Rama I/ChakriD­a Memorial del Rey Rama VKiribati #KnabenschiessenConstantino y MİtodoKuwaitKwanzaaKyrgyzstĦnNatalicio de L. RiveraD­a del TrabajoD­a de Acci³n de Gracias del TrabajoLag B'OmerNatalicio de Lao TseRepşblica DemocrĦtica de la Gente de Laos #Vacaciones de la Naci³n LaponaLatviaD­a de la Copa LauncestonD­a bisiesto establecido a `%02d-%s' en el fichero `%s'.L­banoLesothoD­a de la Liberaci³nLiberiaD­a de la LibertadJamahiriya rabe Libia (LIbia)LiechtensteinL­nea %ld descartada: %sL­nea %ld: %sLituaniaPİrdida de la Naci³n MusulmanaLughnasaEclipse LunarLuxemburgoKermİs de la Ciudad de LuxemburgoD­a de Lyndon B. JohnsonMCOMERCIABILIDAD o IDONEIDAD PARA UNA TAREA DETERMINADAMacaoMagadascar #D­a de MadarakaNatalicio de Mahatma GandhiCorreo de \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalasia #MaldivasMaliMaltaD­a de las MalvinasD­a de ManilaMao/ConejoD­a de la Ciudad de MaputomarmarzoD­a de Marien NgouabiD­a de la MarinaIslas MarshallD­a de Martin L. KingMartinimasMartinicaMartirio del BabD­a de los MĦrtiresMar­a - Virgen BenditaD­a de la Anunciaci³n a Mar­aD­a de la Ascensi³n de Mar­aPurificaci³n de Mar­aEspera de Mar­aD­a de la Inmaculada Concepci³n de Mar­aMaternidad de Mar­aNombre de Mar­aNatividad de Mar­aSacrificio de Mar­aVisitaci³n de Mar­aD­a de Marylandšltima cena de JesucristoMauritaniaMauritaniamaymayoPrimero de MayoMayotteD­a de la Copa MelbourneD­a del ComercianteMİxicoD­a de Mi-CarŞmeFestival de Medio OtoħoFestival de Media PrimaveraFestival de Medio AħoD­a del MisioneriolulunM³nacolunesLunesLunes...ViernesLunes...JuevesMongolia #Grupo de meses (debe definirse solo un miembro):MontserratD­a de MorazanMarruecosD­a de MosheshoeD­a de la SuegraD­a de la MadreD­a de la Maternidad y la BellezaMozambiqueBanquete de la Mşsica AcuĦticaMyanmar (Burma) #NamibiaD­a del NombreD­a del Dolor NacionalD­a de la Fundaci³n NacionalD­a Nacional de los HİroesD­a NacionalD­a de Duelo NacionalD­a de la Redenci³n NacionalD­a de la Resistencia NacionalD­a del Revivir NacionalD­a de la Unidad NacionalNauruD­a de NdadayeNepal #HolandaAntillas Holandesas/BonaireAntillas Holandesas/Cura§aoAntillas Holandesas/Saba y EstatiaAntillas Holandesas/San MaartenD­a de la NeutralidadD­a de NevadaNueva CaledoniaLuna NuevaAniversario del Nuevo RİgimenD­a de Aħo NuevoNueva ZelandaNicaraguaN­gerNigeria9Âş D­a de RidvanNiueD­a del NobelD­a de NoiIslas Marianas del Norte (Saipan)Noruz/D­a de Aħo Nuevo PersaNorueganovnoviembreEl valor numİrico se rellena con ceros delanteSe provee un valur numİrico con un sufijo de nşmero ordinalSe proporciona un valor numİrico con un signo precedenteD­a de la EnfermeraNuzul-al-Qur'anD­a de la OAUOPCI“NoctoctubreFiesta de OctubreD­a de la Industria PetroleraAħo Nuevo del Armenio AntiguoAħo Nuevo del Egipcio AntiguoOmĦnPor principio no serİ responsable de NINGšN daħo o pİrdida (impl­citaD­a de Aħo Nuevo OrtodoxoD­a de Nuestra Seħora AparecidaD­a de Nuestra Seħora de AltagraciaD­a de Nuestra Seħora de Camar­nD­a de Nuestra Seħora de Las MercedesD­a de Nuestra Seħora de Los ngelesNuestra Seħora de los DoloresD­a de Nuestra Seħora de las VictoriasOxNOxAPaquistĦnPalauDomingo de RamosPanamĦD­a de la Ciudad de PanamĦD­a de PanamİricaPapşa Nueva GuineaParaguayD­a de los PadresD­a del Acuerdo de Paz de Par­sParcialDomingo de Pasi³nD­a del PatriotaFestival de la PazFestival del DuraznoPenumbralD­a del Poder de la GenteD­a de la Sublevaci³n del PuebloPerCarĦcter de porcentaje ('%c')PerşPesach/PascuaAmistad Filipino-AmericanaFilipinasFiD­a de PichinchaD­a del AlmuerzoD­a del PioneroPitcairnPoloniaPortugalD­a de PoyaD­a de Oraci³nCarga las opciones y las ³rdenes desde `FILE'Natalicio del Presidente LincolnInauguraci³n PresidencialD­a de los PresidentesInforme de los PresidentesD­a del Pr­ncipe KalanianaoleNatalicio del Pr­ncipe de GalesD­a de la PrincesaD­a de la Proclamaci³nPuerto RicoPurim/Fiesta de MuchosNatalicio de Qaid-i-AzamQatarD­a de QudsDomingo QuincuagİsimoRamadĦnD­a de Ratu SukumaD­a de la Recreaci³nD­a del ReferİndumD­a de la ReformaD­a de la RegataCambio de RegenciaD­a MemorialD­a de la RepşblicaRepşblica de Congo #Repşblica de CoreaRepşblica de MoldaviaD­a de Respeto para los AncianosD­a de la Restauraci³nD­a del RetornoD­a de la Reunificaci³nD­a de la ReformaAniversario de R­o de JaneiroD­a de RizalDomingo de Rogaci³nRumaniaRosh Hashana/D­a de Aħo NuevoFederaci³n RusaD­a de RwagasoreRuandaReuni³nNatalicio de S. DoeD­a de Establecimiento del SARSIGNO (puede estar definido):Grupo de ESTILO (debe definirse s³lo un miembro):SUFIJO (puede estar definido):sĦD­a de SabaSaint-Pierre y MiquelonSamhain/D­a de Aħo Nuevo CeltaSamoaD­a de San JacintoD­a de San JosİSan MarinoAniversario de Sao PauloSanto Tomİ y Pr­ncipeFestival de la Nieve de SapporosĦbsĦbadoSĦbadosArabia SauditaDescanso escolarCambio de Temporada/Festival del FrijolSechsel¤utenSenegalsepD­a de la Separaci³nseptiembreDomingo SeptuagİsimoSerbia y MontenegroD­a de Seretse KhamaD­a de los ColonosD­a de los Siete DurmientesD­a de SewardDomingo SexagİsimoSeychellesShab-e QadrShab-e-Bara'tShab-e-Mi'rajD­a de ShaheedShavout/Entrega de la TorahFestival de las OvejasD­a de la Ascensi³n de Sheikh ZayedShen/MonoD­a del Entierro de la Sardina/Mardi GrasShushan PurimSi/SerpienteSierra LeonaSimchat TorahD­a de Sim³n Bol­varD­a de la Liberaci³n del Sina­Singapur #D­a de la Liberaci³n de EsclavosEslovaquiaEsloveniaD­a de Oler la BrisaEclipse SolarD­a de SolidaridadIslas Salom³nD­a de SolsticioSomaliaD­a de SomersD­a de la Limpieza de Holl­nSudĦfricaIslas de Georgia del Sur y Sandwich del SurCarĦcter de espacio en blanco ('%c')EspaħaFestival de PrimaveraSri Lanka #D­a de Santa gataD­a de San AndrİsD­a de San BartolomİD­a de San BerchtoldD­a de San CanutoD­a de Santa CediliaD­a de San CarlosD­a de San DavidD­a de San DemetrioD­a de Santa DevotaD­a de San EduardoD­a de San El­asD­a de San JorgeSanta ElenaD­a de San JaimeD­a de San Juan BautistaD­a de San Juan/Noche de VeranoSan Juan/V­spera del Solsticio de VeranoD­a de San JosİSt Kitts y NevisD­a de San LaurencioSanta Luc­aD­a de Santa Luc­aD­a de Santa MargaritaD­a de San MaroonD­a de San MiguelD­a de San NicolĦsV­spera de San NicolĦsD­a de San OlavV­spera de San OlavD­a de San PatricioNaufragio de San PabloSan Pedro y San PabloSanta Rosa de LimaD­a de San EstİfanoD­a de Santa šrsulaD­a de San Valent­nSan Vicente y GranadinasD­a de San Vicente de PaulEstĦndardFestival de las EstrellasInicio del mes comşnInicio de la secuencia resaltada/carĦcter de marcadoInicio del mes bisiestoD­a de Statia AmericanaD­a del EstudiantedoSudĦnD­a de la Victoria de SuezSukkot/Fiesta de los TabernĦculosNatalicio del SultĦn QaboosdomdomingoDomingo de MuertosDomingosSurinam #Islas Svalbard y Jan MayenSvetitskhovlobaD­a de la GolondrinaSwazilandiaSueciaD­a de SueciaEl D­a mĦs DulceSuizaSuiza/AargauSuiza/Appenzell AusserrhodenSuiza/Appenzel InnerrhodenSuiza/Basel-StadtSuiza/BernaSuiza/FriburgoSuiza/GİnovaSuiza/GlarusSuiza/GraubĵndenSuiza/JuraSuiza/LucernaSuiza/Neuch˘telSuiza/NidwaldenSuiza/ObwaldenSuiza/SchaffhausenSuiza/SchwyzSuiza/SolothurnSuiza/St GallenSuiza/ThurgauSuiza/TicinoSuiza/UriSuiza/ValaisSuiza/VaudSuiza/ZugSuiza/ZurichSan Silvestre/V­spera del Aħo NuevoRepşblica rabe Siria (Siria)TaiwĦnTajikistĦnTanzaniaD­a del ProfesorD­a de la Feria de Tennant-CreekD­a del TerritoriojuD­a de Aħo Nuevo ThaiTailandia #D­a de Acci³n de GraciasNatalicio del Pr­ncipe de la CoronaNatalicio de la Princesa de la CoronaSantoral de la Princesa de la CoronaNatalicio del ReySantoral del ReyNatalicio de la ReinaSantoral de la ReinaNO existe garant­a alguna, ni incluso aquella impl­cita deEste es un programa de libre uso; lea las condiciones en los fuentes.Este programa es software libre; usted puede redistribuirlo y/o modificarloEste programa no afirma ser completo, sin errores o utilizable.juejuevesJuevesD­a de TiradentesTisha B'Av/D­a de AyunoTogo #TokelauD­a de Limpieza de TumbasTongaD­a de Topou ITotalD­a de la Junta de la CiudadD­a TradicionalD­a de TransferenciaD­a de la Transfiguraci³nTrinidad y Tobago #D­a de TrumanIntente abrir el fichero de inclusi³n (a nivel: %02d) `%s' ... %s%s%sIntente abrir%sfichero de recursos `%s'...%s%s%sIntente escribir %s `%s' ... %s%s%smaTu B'Shevat/Aħo Nuevo de los rbolesmarmartesMartesTşnezTurqu­aTurkmenistĦnIslas Turcas y CaicosTuvalu12Âş D­a de RidvanD­a de TynwaldIslas V­rgenes (E.U.)EE.UU.DESCONOCIDOUgandaUcraniaCarĦcter de subrayado ('%c')D­a de la Uni³nDisoluci³n de la uni³n con SueciaEmiratos rabes UnidosD­a de Naciones UnidasEstados UnidosEstados Unidos/AlabamaEstados Unidos/AlaskaEstados Unidos/ArizonaEstados Unidos/ArkansasEstados Unidos/CaliforniaEstados Unidos/ColoradoEstados Unidos/ConnecticutEstados Unidos/DelawareEstados Unidos/Distrito de ColumbiaEstados Unidos/FloridaEstados Unidos/GeorgiaEstados Unidos/HawaiiEstados Unidos/IdahoEstados Unidos/IllinoisEstados Unidos/IndianaEstados Unidos/IowaEstados Unidos/KansasEstados Unidos/KentuckyEstados Unidos/LouisianaEstados Unidos/MaineEstados Unidos/MarylandEstados Unidos/MassachusettsEstados Unidos/MichiganEstados Unidos/MinnesotaEstados Unidos/MississippiEstados Unidos/MissouriEstados Unidos/MontanaEstados UnidosEstados Unidos/NevadaEstados Unidos/Nueva HampshireEstados Unidos/Nueva JerseyEstados Unidos/Nuevo MİxicoEstados Unidos/Nueva YorkEstados Unidos/Carolina del NorteEstados Unidos/Dakota del NorteEstados Unidos/OhioEstados Unidos/OklahomaEstados Unidos/OregonEstados Unidos/PennsylvaniaEstados Unidos/Isla RhodeEstados Unidos/Carolina del SurEstados Unidos/Dakota del SurEstados Unidos/TennesseeEstados Unidos/TexasEstados Unidos/UtahEstados Unidos/VermonthEstados Unidos/VirginiaEstados Unidos/WashingtonEstados Unidos/Virginia OesteEstados Unidos/WisconsinEstados Unidos/WyomingD­a de la FĦbrica UnidadUruguayModo de empleo: %s [--%s | --%s] | [--%s=[+|-]NšMERO] [ARGUMENTO...] Modo de empleo: %s [--%s | --%s] | [FICHERO-DE-RECURSOS | -] Modo de empleo: %s [--%s | --%s] | [fichero-TEXTO | -] [FECHA] Modo de empleo: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Modo de empleo: %s [[OPCI“N...] [%cFECHA] [%cFICHERO...]] [ORDEN]Modo de empleo: %s [[OPCI“N...] [%cFICHERO...]] [ORDEN]Utilice `%s %s'|[%s?]Utiliza la `DATE' predeterminada en vez de la actualUzbekistĦnV­spera de ValborgVanuatuVenezuelaCarnaval de VeneciaD­a de los VeteranosD­a de V­ctor-SchoelcherD­a de la Reina VictoriaD­a de la VictoriaSan VitoVietnamSNatalicio de W. TubmanANCHURA (debe estar definida):Islas Wallis y FutunaCuarto MenguanteWaqf-al-ArafatCuarto CrecientemimiİmiİrcolesMiİrcolesSemanaSemana %sWei/OvejaD­a de Virginia del OesteSahara OccidentalLunes de PentecostİsV­spera de PentecostİsPentecostİsD­a de la MujerCarnaval de las MujeresD­a Mund­al de los AnimalesWu/CaballoXu/PerroAD­a YapYemenYin/TigreYom Ha Azmaut/D­a de la IndependenciaYom Hashoah/Memorial del HolocaustoYom Hazikaron/Memorial de los SoldadosYom Kippur/D­a de la Redenci³nYom Yerushalayim/D­a de JerusalİnDeber­a haber recibido una copia de la `GNU General Public License'You/GalloD­a de la JuventudCERO (puede estar definido):ZambiaZi/RataZimbabweZod[ALINEACI“N [SIGNO] [CERO] ANCHURA [ESTILO] [SUFIJO] FORMATO]`%s' l­nea %ld: (`%s') `%s%d' fall³`%s' l­nea %ld: (`%s') tamaħo de tabla incorrecto `sizeof %s>%d'`%s' l­nea %ld: (`%s') error imprevisto (%d)`%s' l­nea %ld: memoria virtual agotada (%s=%d)`Lista perpetua de fiestas'`Interno'no se encuentra el fichero `termcap'acuerdo, por el cual queda comprometido LEGALMENTE !!junto con İste programa; si no es as­, escriba a:amcualquier versi³n posterior.l­nea de ³rdenespueden contener una instrucci³n de formato, de la forma:g'"por defectovariable de entornono se encuentra la variable de entorno `%s'la variable de entorno `%s' no estĦ definidafall³no se puede guardar el fichero `%s' ÂĦMedio de almacenamiento lleno!fichero `%s' no encontradopara mĦs informaci³n .h'"fiestascarĦcter no permitido en fichero de resultados `%s' L­nea %ld: %sdefinici³n ilegal de la variable `%c'operaci³n ilegal en la variable `%c'definici³n ilegal de variable `%s'operaci³n ilegal de variable en el fichero `%s'd­a de la semana no vĦlido (%d) en el fichero `%s' L­nea %ld: %sfecha no vĦlida en el fichero `%s' L­nea %ld: %sd­a no vĦlidod­a no vĦlido (%02d) en el fichero `%s' L­nea %ld: %smes invĦlidomes no vĦlido (%02d) en el fichero `%s' L­nea %ld: %sno vĦlido recursivo/c­clico %s en el fichero `%s' L­nea %ld: %spatr³n de bşsqueda `%s' incorrectoValor invĦlido asignado a la variable `%c' en el fichero `%s'aħo no valido para calcular la fecha de los Domingos de Pascua El aħo debe estar comprendido en el rango (%d...%d)bajo los tİrminos de la 'GNU General Public License' publicada porfiestas oficiales%s erroneo/a en el fichero `%s' L­nea %ld: %s`espacio' ausente despuİs de la fecha en el fichero `%s' L­nea %ld: %sÂşo expl­cita), provocada por el uso o manejo del programa.pmÂşerror de lectura en el fichero `%s'fichero de resultadosauto-definidofall³ al enviar e-mail a <%s>fichero de ³rdenesel valor de desplazamiento `%s' es invĦlidoÂşsatisfactorioÂşla `Free Software Foundation'; en su versi³n 3, o (como quiera)desconocido/a compilador desconocidocompilador desconocido (ÂżSDK?)se desconoce el tipo de terminal definido en `%s'versi³n desconocidavariable `%c' no definida en el fichero `%s'versi³n %dversi³n %d.%dgcal-4.1/po/pl.po0000664000000000000000000041755313041164031010556 00000000000000# Polish translation for gcal 2.30 # Copyright (C) 1997 Free Software Foundation, Inc. # Wojciech Marek GaĊ‚Ä…zka , 1997. # msgid "" msgstr "" "Project-Id-Version: gcal 2.30\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 1997-05-03 18:31+0100\n" "Last-Translator: Wojciech Marek GaĊ‚Ä…zka \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "" #: lib/regcomp.c:135 #, fuzzy msgid "Success" msgstr "powiodĊ‚o się" #: lib/regcomp.c:138 msgid "No match" msgstr "" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:156 msgid "Unmatched [, [^, [:, [., or [=" msgstr "" #: lib/regcomp.c:159 #, fuzzy msgid "Unmatched ( or \\(" msgstr "brak nawiasu ()" #: lib/regcomp.c:162 #, fuzzy msgid "Unmatched \\{" msgstr "brak nawiasu ()" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:168 #, fuzzy msgid "Invalid range end" msgstr "bĊ‚Ä™dny zakres []" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "" #: lib/regcomp.c:180 #, fuzzy msgid "Regular expression too big" msgstr "regexp za duĊĵy" #: lib/regcomp.c:183 #, fuzzy msgid "Unmatched ) or \\)" msgstr "brak nawiasu ()" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, fuzzy, c-format msgid "%s subprocess" msgstr "powiodĊ‚o się" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Spr³buj napisać %s `%s'... %s%s%s" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "nie powiodĊ‚o się" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "powiodĊ‚o się" #: src/file-io.c:1685 #, fuzzy, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "Spr³buj otworzyć plik zasob³w `%s'... %s%s%s" #: src/file-io.c:1686 msgid " `HERE' " msgstr "" #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "Spr³buj otworzyć (poziom: %02d) plik nagĊ‚³wkowy `%s'... %s%s%s" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "Niemcy" #: src/gcal.c:1075 msgid "U.S.A." msgstr "USA" #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "Wielka Brytania" #: src/gcal.c:1852 msgid "default" msgstr "domyĊ›lny" #: src/gcal.c:1951 msgid ":" msgstr ":" #: src/gcal.c:1961 msgid "Y" msgstr "" #: src/gcal.c:1966 #, fuzzy msgid "M" msgstr "Pn" #: src/gcal.c:1971 #, fuzzy msgid "W" msgstr "CW" #: src/gcal.c:1976 msgid "D" msgstr "" #: src/gcal.c:2067 #, fuzzy msgid "Fixed date list:" msgstr "Ustalona lista dat" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "zmienna Ċ›rodowiskowa" #: src/gcal.c:2268 #, fuzzy, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%s: polecenie w zmiennej Ċ›rodowiskowej `%s' znaleziono -- %s\n" "%s\n" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "Wewnętrzny" #: src/gcal.c:2864 msgid "response file" msgstr "plik odpowiedzi" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "Utworzony" #: src/gcal.c:2872 msgid "shell script" msgstr "skrypt powĊ‚oki" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "List od \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "linia poleceĊ„" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: opcja `%s' jest niejednoznaczna" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: nierozpoznana opcja `%s'" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: bĊ‚Ä™dna opcja -- %s" #: src/gcal.c:5910 #, fuzzy, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s: opcja `%s' nie zezwala na podanie argumentu" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s: opcja `%s' nie zezwala na podanie argumentu" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: opcja `%s' wymaga podania argumentu" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: opcja wymaga podania argumentu -- %s" #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: opcja z bĊ‚Ä™dnym argumentem -- %s" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: opcja z niejednoznacznym argumentem -- %s" #: src/gcal.c:5995 #, fuzzy, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" "%s: podano bĊ‚Ä™dna datę -- %c%s\n" "%s\n" #: src/hd-data.c:64 #, fuzzy msgid "Australia" msgstr "Australijski" #: src/hd-data.c:65 src/hd-data.c:113 #, fuzzy msgid "Belgium" msgstr "Belgijski" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "" #: src/hd-data.c:67 #, fuzzy msgid "Canada" msgstr "Kanadyjski" #: src/hd-data.c:68 msgid "Switzerland" msgstr "" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "" #: src/hd-data.c:75 src/hd-data.c:250 #, fuzzy msgid "Italy" msgstr "WĊ‚oski" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "" #: src/hd-data.c:77 src/hd-data.c:261 #, fuzzy msgid "Republic of Korea" msgstr "DzieĊ„ Republiki" #: src/hd-data.c:78 src/hd-data.c:293 #, fuzzy msgid "Mexico" msgstr "MeksykaĊ„ski" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "" #: src/hd-data.c:81 src/hd-data.c:320 #, fuzzy msgid "Portugal" msgstr "Portugalski" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "" #: src/hd-data.c:83 #, fuzzy msgid "United States" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:85 msgid "Andorra" msgstr "" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "" #: src/hd-data.c:89 msgid "Anguilla" msgstr "" #: src/hd-data.c:90 msgid "Albania" msgstr "" #: src/hd-data.c:91 msgid "Armenia" msgstr "" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "" #: src/hd-data.c:96 msgid "Angola #" msgstr "" #: src/hd-data.c:97 msgid "Argentina" msgstr "" #: src/hd-data.c:98 msgid "American Samoa" msgstr "" #: src/hd-data.c:99 #, fuzzy msgid "Austria" msgstr "Austriacki" #: src/hd-data.c:100 #, fuzzy msgid "Australia/Canberra" msgstr "Australijski" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "" #: src/hd-data.c:102 #, fuzzy msgid "Australia/Queensland" msgstr "Australijski" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "" #: src/hd-data.c:105 #, fuzzy msgid "Australia/Tasmania" msgstr "Australijski" #: src/hd-data.c:106 #, fuzzy msgid "Australia/Victoria" msgstr "Australijski" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "" #: src/hd-data.c:108 msgid "Aruba" msgstr "" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "" #: src/hd-data.c:111 msgid "Barbados" msgstr "" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "" #: src/hd-data.c:115 #, fuzzy msgid "Bulgaria" msgstr "Węgierski" #: src/hd-data.c:116 msgid "Bahrain" msgstr "" #: src/hd-data.c:117 msgid "Burundi #" msgstr "" #: src/hd-data.c:118 msgid "Benin #" msgstr "" #: src/hd-data.c:119 msgid "Bermuda" msgstr "" #: src/hd-data.c:120 msgid "Brunei" msgstr "" #: src/hd-data.c:121 msgid "Bolivia" msgstr "" #: src/hd-data.c:123 msgid "Bahamas" msgstr "" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "" #: src/hd-data.c:126 msgid "Botswana" msgstr "" #: src/hd-data.c:127 msgid "Belarus" msgstr "" #: src/hd-data.c:128 msgid "Belize" msgstr "" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "" #: src/hd-data.c:131 #, fuzzy msgid "Canada/Manitoba" msgstr "Kanadyjski" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "" #: src/hd-data.c:135 msgid "Canada/Northwest Territories" msgstr "" #: src/hd-data.c:136 #, fuzzy msgid "Canada/Ontario" msgstr "Kanadyjski" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "" #: src/hd-data.c:140 #, fuzzy msgid "Canada/Yukon" msgstr "Kanadyjski" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "" #: src/hd-data.c:149 msgid "Switzerland/Basel-Landschaft" msgstr "" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "" #: src/hd-data.c:173 msgid "Chile" msgstr "" #: src/hd-data.c:174 msgid "Cameroon" msgstr "" #: src/hd-data.c:176 msgid "Colombia" msgstr "" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "" #: src/hd-data.c:178 msgid "Cuba" msgstr "" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "" #: src/hd-data.c:180 #, fuzzy msgid "Christmas Islands" msgstr "BoĊĵe Narodzenie" #: src/hd-data.c:181 msgid "Cyprus" msgstr "" #: src/hd-data.c:182 #, fuzzy msgid "Czech Republic" msgstr "DzieĊ„ Republiki" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "" #: src/hd-data.c:184 #, fuzzy msgid "Germany/Berlin" msgstr "Niemcy" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "" #: src/hd-data.c:186 #, fuzzy msgid "Germany/Bavaria" msgstr "Niemcy" #: src/hd-data.c:187 #, fuzzy msgid "Germany/Bremen" msgstr "Niemcy" #: src/hd-data.c:188 #, fuzzy msgid "Germany/Hesse" msgstr "Niemcy" #: src/hd-data.c:189 #, fuzzy msgid "Germany/Hamburg" msgstr "Niemcy" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saarland" msgstr "Niemcy" #: src/hd-data.c:196 #, fuzzy msgid "Germany/Saxony" msgstr "Niemcy" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "" #: src/hd-data.c:199 msgid "Djibouti" msgstr "" #: src/hd-data.c:200 msgid "Denmark" msgstr "" #: src/hd-data.c:201 msgid "Dominica" msgstr "" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "" #: src/hd-data.c:203 msgid "Algeria" msgstr "" #: src/hd-data.c:204 msgid "Ecuador" msgstr "" #: src/hd-data.c:205 msgid "Estonia" msgstr "" #: src/hd-data.c:206 msgid "Egypt" msgstr "" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "" #: src/hd-data.c:208 msgid "Eritrea" msgstr "" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "" #: src/hd-data.c:211 msgid "Finland" msgstr "" #: src/hd-data.c:212 msgid "Fiji #" msgstr "" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "" #: src/hd-data.c:215 msgid "Faroes" msgstr "" #: src/hd-data.c:217 msgid "Gabon #" msgstr "" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "" #: src/hd-data.c:219 #, fuzzy msgid "Great Britain/Northern Ireland" msgstr "Wielka Brytania" #: src/hd-data.c:220 #, fuzzy msgid "Great Britain/Scotland" msgstr "Wielka Brytania" #: src/hd-data.c:221 msgid "Grenada" msgstr "" #: src/hd-data.c:222 msgid "Georgia" msgstr "" #: src/hd-data.c:223 #, fuzzy msgid "French Guiana" msgstr "Francuski" #: src/hd-data.c:224 msgid "Ghana" msgstr "" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "" #: src/hd-data.c:226 msgid "Greenland" msgstr "" #: src/hd-data.c:227 msgid "Gambia" msgstr "" #: src/hd-data.c:228 msgid "Guinea" msgstr "" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "" #: src/hd-data.c:231 #, fuzzy msgid "Greece" msgstr "Grecki" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "" #: src/hd-data.c:233 msgid "Guatemala" msgstr "" #: src/hd-data.c:234 msgid "Guam" msgstr "" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "" #: src/hd-data.c:236 msgid "Guyana #" msgstr "" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "" #: src/hd-data.c:239 msgid "Honduras" msgstr "" #: src/hd-data.c:240 msgid "Croatia" msgstr "" #: src/hd-data.c:241 msgid "Haiti" msgstr "" #: src/hd-data.c:242 #, fuzzy msgid "Hungary" msgstr "Węgierski" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "" #: src/hd-data.c:244 msgid "Ireland" msgstr "" #: src/hd-data.c:246 msgid "India #" msgstr "" #: src/hd-data.c:247 msgid "Iraq" msgstr "" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "" #: src/hd-data.c:249 msgid "Iceland" msgstr "" #: src/hd-data.c:251 msgid "Jamaica" msgstr "" #: src/hd-data.c:252 msgid "Jordan" msgstr "" #: src/hd-data.c:254 msgid "Kenya #" msgstr "" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "" #: src/hd-data.c:258 msgid "Comoros" msgstr "" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "" #: src/hd-data.c:262 msgid "Kuwait" msgstr "" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "" #: src/hd-data.c:266 msgid "Lebanon" msgstr "" #: src/hd-data.c:267 #, fuzzy msgid "St Lucia" msgstr "DzieĊ„ Ċšw. Ċucji" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "" #: src/hd-data.c:270 #, fuzzy msgid "Liberia" msgstr "DzieĊ„ WolnoĊ›ci" #: src/hd-data.c:271 msgid "Lesotho" msgstr "" #: src/hd-data.c:272 msgid "Lithuania" msgstr "" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "" #: src/hd-data.c:274 msgid "Latvia" msgstr "" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "" #: src/hd-data.c:276 msgid "Morocco" msgstr "" #: src/hd-data.c:277 msgid "Monaco" msgstr "" #: src/hd-data.c:278 #, fuzzy msgid "Republic of Moldova" msgstr "DzieĊ„ Republiki" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "" #: src/hd-data.c:282 msgid "Mali" msgstr "" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "" #: src/hd-data.c:284 msgid "Macau" msgstr "" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "" #: src/hd-data.c:286 #, fuzzy msgid "Martinique" msgstr "Martinimas" #: src/hd-data.c:287 msgid "Mauritania" msgstr "" #: src/hd-data.c:288 msgid "Montserrat" msgstr "" #: src/hd-data.c:289 msgid "Malta" msgstr "" #: src/hd-data.c:290 #, fuzzy msgid "Mauritius" msgstr "Brytyjski" #: src/hd-data.c:291 msgid "Maldives" msgstr "" #: src/hd-data.c:292 msgid "Malawi" msgstr "" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "" #: src/hd-data.c:295 msgid "Mozambique" msgstr "" #: src/hd-data.c:296 msgid "Namibia" msgstr "" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "" #: src/hd-data.c:298 msgid "Niger" msgstr "" #: src/hd-data.c:299 msgid "Norfolk Island" msgstr "" #: src/hd-data.c:300 msgid "Nigeria" msgstr "" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "" #: src/hd-data.c:304 #, fuzzy msgid "Norway" msgstr "Norweski" #: src/hd-data.c:305 msgid "Nepal #" msgstr "" #: src/hd-data.c:306 msgid "Nauru" msgstr "" #: src/hd-data.c:307 msgid "Niue" msgstr "" #: src/hd-data.c:309 msgid "Oman" msgstr "" #: src/hd-data.c:310 msgid "Panama" msgstr "" #: src/hd-data.c:311 msgid "Peru" msgstr "" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "" #: src/hd-data.c:314 msgid "Philippines" msgstr "" #: src/hd-data.c:315 msgid "Pakistan" msgstr "" #: src/hd-data.c:316 msgid "Poland" msgstr "" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "" #: src/hd-data.c:321 msgid "Palau" msgstr "" #: src/hd-data.c:322 msgid "Paraguay" msgstr "" #: src/hd-data.c:323 msgid "Qatar" msgstr "" #: src/hd-data.c:324 msgid "Rİunion" msgstr "" #: src/hd-data.c:325 msgid "Romania" msgstr "" #: src/hd-data.c:327 msgid "Rwanda" msgstr "" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "" #: src/hd-data.c:330 msgid "Seychellen" msgstr "" #: src/hd-data.c:331 msgid "Sudan" msgstr "" #: src/hd-data.c:332 #, fuzzy msgid "Sweden" msgstr "Szwecki" #: src/hd-data.c:333 msgid "Singapore #" msgstr "" #: src/hd-data.c:334 msgid "St Helena" msgstr "" #: src/hd-data.c:335 #, fuzzy msgid "Slovenia" msgstr "SĊ‚oweĊ„ski" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "" #: src/hd-data.c:337 #, fuzzy msgid "Slovakia" msgstr "SĊ‚oweĊ„ski" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "" #: src/hd-data.c:339 msgid "San Marino" msgstr "" #: src/hd-data.c:340 msgid "Senegal" msgstr "" #: src/hd-data.c:341 msgid "Somalia" msgstr "" #: src/hd-data.c:342 msgid "Suriname #" msgstr "" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "" #: src/hd-data.c:344 msgid "El Salvador" msgstr "" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "" #: src/hd-data.c:346 msgid "Swaziland" msgstr "" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "" #: src/hd-data.c:348 msgid "Chad" msgstr "" #: src/hd-data.c:349 msgid "Togo #" msgstr "" #: src/hd-data.c:350 msgid "Thailand #" msgstr "" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "" #: src/hd-data.c:352 msgid "Tokelau" msgstr "" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "" #: src/hd-data.c:354 msgid "Tunisia" msgstr "" #: src/hd-data.c:355 msgid "Tonga" msgstr "" #: src/hd-data.c:356 msgid "Turkey" msgstr "" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "" #: src/hd-data.c:359 msgid "Taiwan" msgstr "" #: src/hd-data.c:360 msgid "Tanzania" msgstr "" #: src/hd-data.c:361 msgid "Ukraine" msgstr "" #: src/hd-data.c:362 msgid "Uganda" msgstr "" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "" #: src/hd-data.c:365 #, fuzzy msgid "United States/Arkansas" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:366 #, fuzzy msgid "United States/Arizona" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:367 #, fuzzy msgid "United States/California" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "" #: src/hd-data.c:371 #, fuzzy msgid "United States/Delaware" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "" #: src/hd-data.c:375 #, fuzzy msgid "United States/Iowa" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "" #: src/hd-data.c:377 #, fuzzy msgid "United States/Illinois" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:378 #, fuzzy msgid "United States/Indiana" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:379 #, fuzzy msgid "United States/Kansas" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "" #: src/hd-data.c:383 #, fuzzy msgid "United States/Maryland" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "" #: src/hd-data.c:386 #, fuzzy msgid "United States/Minnesota" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "" #: src/hd-data.c:389 #, fuzzy msgid "United States/Montana" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "" #: src/hd-data.c:397 msgid "United States/New York" msgstr "" #: src/hd-data.c:398 #, fuzzy msgid "United States/Ohio" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "" #: src/hd-data.c:407 #, fuzzy msgid "United States/Utah" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:408 #, fuzzy msgid "United States/Virginia" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "" #: src/hd-data.c:411 #, fuzzy msgid "United States/Wisconsin" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "" #: src/hd-data.c:414 msgid "Uruguay" msgstr "" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "" #: src/hd-data.c:417 msgid "Venezuela" msgstr "" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "" #: src/hd-data.c:423 msgid "Samoa" msgstr "" #: src/hd-data.c:424 msgid "Yemen" msgstr "" #: src/hd-data.c:425 msgid "Mayotte" msgstr "" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "" #: src/hd-data.c:427 msgid "South Africa" msgstr "" #: src/hd-data.c:428 msgid "Zambia" msgstr "" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "" #: src/hd-data.c:459 msgid "1st Advent" msgstr "Pierwszy Adwent" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "Drugi Adwent" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "Trzeci Adwent" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "" #: src/hd-data.c:465 msgid "4th Advent" msgstr "Czwarty Adwent" #: src/hd-data.c:466 #, fuzzy msgid "4th Sunday in Lent" msgstr "Ċšmiertelna Niedziela" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:468 #, fuzzy msgid "Aborigines Day" msgstr "DzieĊ„ KsięĊĵniczki" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "Prima Aprilis" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "DzieĊ„ Wszystkich Ċšwiętych" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "Zaduszki" #: src/hd-data.c:472 #, fuzzy msgid "Alphabet Day" msgstr "DzieĊ„ chorągwi" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "DzieĊ„ Anzaca" #: src/hd-data.c:486 #, fuzzy msgid "Arbor Day" msgstr "Ċšwięto Pracy" #: src/hd-data.c:487 #, fuzzy msgid "Armed Forces Day" msgstr "DzieĊ„ SiĊ‚ Zbrojnych" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "Armistice Day" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "Popielec" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "Popielec" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:499 #, fuzzy msgid "BahĦ'i New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "Dzisiaj banki zamknięte" #: src/hd-data.c:503 #, fuzzy msgid "Basque National Day" msgstr "Lapp National Holiday" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "Bitwa pod Boyne" #: src/hd-data.c:505 #, fuzzy msgid "Battle of Puebla" msgstr "Bitwa pod Boyne" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:507 #, fuzzy msgid "Benito JuĦrez Day" msgstr "DzieĊ„ Benito Juareza" #: src/hd-data.c:508 #, fuzzy msgid "Bodhidharma's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:509 #, fuzzy msgid "Bosses' Day" msgstr "DzieĊ„ Ċšw. J³zefa" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "Drugi dzieĊ„ BoĊĵego Narodzenia" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:513 #, fuzzy msgid "Buddha's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:514 msgid "Burns Night" msgstr "Burns Night" #: src/hd-data.c:515 #, fuzzy msgid "Camoes Day" msgstr "DzieĊ„ Ċšw. Jamesa" #: src/hd-data.c:516 msgid "Carnival" msgstr "" #: src/hd-data.c:517 msgid "Beltane" msgstr "" #: src/hd-data.c:518 msgid "Imbolg" msgstr "" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "" #: src/hd-data.c:520 #, fuzzy msgid "Samhain/Celtic New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:521 msgid "Children's Day" msgstr "DzieĊ„ Dziecka" #: src/hd-data.c:522 msgid "Cycle" msgstr "" #: src/hd-data.c:523 #, fuzzy msgid "Chinese New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:524 #, fuzzy msgid "Chinese New Year's Eve" msgstr "Nowy Rok" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "BoĊĵe Narodzenie" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "Wigilia" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "DzieĊ„ Wniebowstąpienia PaĊ„skiego" #: src/hd-data.c:528 #, fuzzy msgid "Chrysanthenum Day" msgstr "BoĊĵe Narodzenie" #: src/hd-data.c:529 #, fuzzy msgid "Citizenship Day" msgstr "DzieĊ„ Dziecka" #: src/hd-data.c:530 #, fuzzy msgid "Civic Holiday" msgstr "Dzisiaj banki zamknięte" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "DzieĊ„ Kolumba" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:533 #, fuzzy msgid "Confucius' Birthday" msgstr "Urodziny Koronowanej KsięĊĵniczki" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "Stulecie Konstytucji" #: src/hd-data.c:535 #, fuzzy msgid "Coptic New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:536 #, fuzzy msgid "Cosmonauts' Day" msgstr "DzieĊ„ Koronacji" #: src/hd-data.c:537 #, fuzzy msgid "Cross Raising Day" msgstr "DzieĊ„ Koronacji" #: src/hd-data.c:538 msgid "Culture Day" msgstr "DzieĊ„ Kultury" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "DzieĊ„ Modlitwy i Ċğalu" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:547 #, fuzzy msgid "Double-9 Day" msgstr "DzieĊ„ Nobla" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "DzieĊ„ Rodziny Kr³lewskiej" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "PoniedziaĊ‚ek Wielkanocny" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "Wielkanoc" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "" #: src/hd-data.c:554 msgid "Annular" msgstr "" #: src/hd-data.c:555 msgid "Partial" msgstr "" #: src/hd-data.c:556 msgid "Penumbral" msgstr "" #: src/hd-data.c:557 msgid "Total" msgstr "" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "Eindhoven's Liberation" #: src/hd-data.c:559 msgid "Election Day" msgstr "Wybory prezydenckie" #: src/hd-data.c:560 #, fuzzy msgid "Emperor's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:561 #, fuzzy msgid "Equinox Day" msgstr "Wybory prezydenckie" #: src/hd-data.c:562 #, fuzzy msgid "Ethiopic New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:563 msgid "Father's Day" msgstr "DzieĊ„ Ojca" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "BoĊĵe CiaĊ‚o" #: src/hd-data.c:565 #, fuzzy msgid "Feast of Fortune" msgstr "BoĊĵe CiaĊ‚o" #: src/hd-data.c:566 #, fuzzy msgid "Feast of Heart Jesus" msgstr "Feast of Our Theotokos" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:569 msgid "Flag Day" msgstr "DzieĊ„ chorągwi" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "DzieĊ„ Kultury Flandryjskiej" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "DzieĊ„ Kultury Francuskiej" #: src/hd-data.c:573 #, fuzzy msgid "French Revolutionary" msgstr "DzieĊ„ Rewolucji" #: src/hd-data.c:574 #, fuzzy msgid "Friendship Day" msgstr "DzieĊ„ Prezydenta" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "DzieĊ„ Zjednoczenia Niemiec" #: src/hd-data.c:576 msgid "Good Friday" msgstr "Wielki Piątek" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "Wielka Sobota/Jutro Wielkanoc" #: src/hd-data.c:578 #, fuzzy msgid "Grandparents' Day" msgstr "DzieĊ„ Prezydenta" #: src/hd-data.c:579 #, fuzzy msgid "Greenery Day" msgstr "DzieĊ„ Modlitwy" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "Grotto Day" #: src/hd-data.c:581 #, fuzzy msgid "Groundhog Day" msgstr "Grotto Day" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "Guadalupe Virgin's Day" #: src/hd-data.c:583 #, fuzzy msgid "Guy Fawkes Day" msgstr "DzieĊ„ Guy Fawke'a" #: src/hd-data.c:584 msgid "Halloween" msgstr "Halloween" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:590 #, fuzzy msgid "Rosh Hashana/New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:599 #, fuzzy msgid "Yom Ha Azmaut/Independence Day" msgstr "Ċšwięto NiepodlegĊ‚oĊ›ci" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "Holy Innocent's Day" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:604 #, fuzzy msgid "Huravee Day" msgstr "DzieĊ„ Modlitwy" #: src/hd-data.c:605 msgid "Independence Day" msgstr "Ċšwięto NiepodlegĊ‚oĊ›ci" #: src/hd-data.c:606 #, fuzzy msgid "Independence Movement Day" msgstr "Ċšwięto NiepodlegĊ‚oĊ›ci" #: src/hd-data.c:607 #, fuzzy msgid "Independence Proclamation" msgstr "Proklamacja NiepodlegĊ‚oĊ›ci" #: src/hd-data.c:608 #, fuzzy msgid "Indian New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:609 #, fuzzy msgid "Aga Khan's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:610 msgid "Ashura'" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:614 msgid "Ghadir" msgstr "" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "" #: src/hd-data.c:616 #, fuzzy msgid "Islamic New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:618 #, fuzzy msgid "Quds Day" msgstr "DzieĊ„ Kolumba" #: src/hd-data.c:619 msgid "Ramadan" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:624 #, fuzzy msgid "Japanese New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:628 msgid "Labour Day" msgstr "Ċšwięto Pracy" #: src/hd-data.c:629 #, fuzzy msgid "Labour Thanksgiving Day" msgstr "DzieĊ„ Dziękczynienia" #: src/hd-data.c:630 #, fuzzy msgid "Lao Tze's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "DzieĊ„ WolnoĊ›ci" #: src/hd-data.c:632 #, fuzzy msgid "Marine Day" msgstr "1 Maja" #: src/hd-data.c:633 msgid "Martinimas" msgstr "Martinimas" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "DzieĊ„ Martina L. Kinga" #: src/hd-data.c:635 #, fuzzy msgid "Martyrs' Day" msgstr "1 Maja" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "Mary's Annunciation Day" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "DzieĊ„ Wniebowstąpienia NMP" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:639 #, fuzzy msgid "Mary's Expectation" msgstr "Mary's Annunciation Day" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "Mary's Immaculate Conception" #: src/hd-data.c:641 #, fuzzy msgid "Mary's Maternity" msgstr "DzieĊ„ Wniebowstąpienia NMP" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:645 #, fuzzy msgid "Mary's Visitation" msgstr "Mary's Annunciation Day" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "Wielki Czwartek" #: src/hd-data.c:648 msgid "May Day" msgstr "1 Maja" #: src/hd-data.c:649 #, fuzzy msgid "St John's/Midsummer Day" msgstr "DzieĊ„ Ċšw. Jana" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:654 msgid "Full Moon" msgstr "" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:656 msgid "New Moon" msgstr "" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "DzieĊ„ Matki" #: src/hd-data.c:658 #, fuzzy msgid "Mother in Law's Day" msgstr "DzieĊ„ Matki" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:660 #, fuzzy msgid "National Foundation Day" msgstr "Narodowy DzieĊ„ Cierpienia" #: src/hd-data.c:661 msgid "National Holiday" msgstr "Narodowe wakacje" #: src/hd-data.c:662 #, fuzzy msgid "National Mourning Day" msgstr "Narodowe wakacje" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:664 #, fuzzy msgid "Nurses' Day" msgstr "DzieĊ„ KsięĊĵniczki" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:667 #, fuzzy msgid "Orthodox New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "Niedziela Palmowa" #: src/hd-data.c:670 #, fuzzy msgid "Parent's Day" msgstr "DzieĊ„ Prezydenta" #: src/hd-data.c:671 #, fuzzy msgid "Passion Sunday" msgstr "Niedziela Palmowa" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "Zielone Ċšwiątki" #: src/hd-data.c:675 #, fuzzy msgid "Noruz/Persian New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "DzieĊ„ Modlitwy" #: src/hd-data.c:677 #, fuzzy msgid "Presidential Inauguration" msgstr "President's Inform" #: src/hd-data.c:678 #, fuzzy msgid "Presidents' Day" msgstr "DzieĊ„ Prezydenta" #: src/hd-data.c:679 #, fuzzy msgid "Presidents' Inform" msgstr "President's Inform" #: src/hd-data.c:680 #, fuzzy msgid "President Lincoln's Birthday" msgstr "DzieĊ„ Prezydenta" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "DzieĊ„ KsięĊĵniczki" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "DzieĊ„ Reformacji" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "DzieĊ„ Pamięci PolegĊ‚ych" #: src/hd-data.c:685 msgid "Republic Day" msgstr "DzieĊ„ Republiki" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "DzieĊ„ Rewolucji" #: src/hd-data.c:688 #, fuzzy msgid "Rio de Janeiro Anniversary" msgstr "Stulecie Konstytucji" #: src/hd-data.c:689 #, fuzzy msgid "Rogation Sunday" msgstr "Ċšmiertelna Niedziela" #: src/hd-data.c:690 #, fuzzy msgid "Sao Paulo Anniversary" msgstr "Stulecie Konstytucji" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:693 #, fuzzy msgid "Septuagesima Sunday" msgstr "Niedziela Palmowa" #: src/hd-data.c:694 #, fuzzy msgid "Seven Sleepers Day" msgstr "DzieĊ„ Ċšw. Stefana" #: src/hd-data.c:695 #, fuzzy msgid "Sexagesima Sunday" msgstr "Niedziela Palmowa" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "TĊ‚usty Czwartek" #: src/hd-data.c:697 #, fuzzy msgid "Solstice Day" msgstr "Armistice Day" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "" #: src/hd-data.c:700 msgid "Start of common month" msgstr "" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "" #: src/hd-data.c:702 msgid "Star Festival" msgstr "" #: src/hd-data.c:703 #, fuzzy msgid "St Andrew's Day" msgstr "DzieĊ„ Ċšw. Grzegorza" #: src/hd-data.c:704 #, fuzzy msgid "St Bartholomew Day" msgstr "DzieĊ„ Ċšw. Berchtolda" #: src/hd-data.c:705 #, fuzzy msgid "St Berchtold's Day" msgstr "DzieĊ„ Ċšw. Berchtolda" #: src/hd-data.c:706 #, fuzzy msgid "St David's Day" msgstr "DzieĊ„ Ċšw. Dawida" #: src/hd-data.c:707 #, fuzzy msgid "St Edward's Day" msgstr "DzieĊ„ Ċšw. Edwarda" #: src/hd-data.c:708 #, fuzzy msgid "St George's Day" msgstr "DzieĊ„ Ċšw. Grzegorza" #: src/hd-data.c:709 #, fuzzy msgid "St James' Day" msgstr "DzieĊ„ Ċšw. Jamesa" #: src/hd-data.c:710 #, fuzzy msgid "St Joseph's Day" msgstr "DzieĊ„ Ċšw. J³zefa" #: src/hd-data.c:711 #, fuzzy msgid "St Laurentius Day" msgstr "DzieĊ„ zakochanych" #: src/hd-data.c:712 #, fuzzy msgid "St Nicholas' Day" msgstr "MikoĊ‚ajki" #: src/hd-data.c:713 #, fuzzy msgid "St Nicholas' Eve" msgstr "Jutro MikoĊ‚ajki" #: src/hd-data.c:714 #, fuzzy msgid "St Patrick's Day" msgstr "DzieĊ„ Ċšw. Patryka" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:716 #, fuzzy msgid "St Stephen's Day" msgstr "DzieĊ„ Ċšw. Stefana" #: src/hd-data.c:717 #, fuzzy msgid "St Valentine's Day" msgstr "DzieĊ„ zakochanych" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "Swallow Day" #: src/hd-data.c:720 #, fuzzy msgid "Sweetest Day" msgstr "DzieĊ„ weterana" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "DzieĊ„ Nauczyciela" #: src/hd-data.c:723 #, fuzzy msgid "Thai New Year's Day" msgstr "Nowy Rok" #: src/hd-data.c:724 #, fuzzy msgid "Thanksgiving Day" msgstr "DzieĊ„ Dziękczynienia" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "Urodziny Kr³lowej" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "Ċšwięto Trzech Kr³li" #: src/hd-data.c:728 #, fuzzy msgid "Tiradentes Day" msgstr "DzieĊ„ Prezydenta" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:730 #, fuzzy msgid "Transfiguration Day" msgstr "DzieĊ„ WolnoĊ›ci" #: src/hd-data.c:731 #, fuzzy msgid "Tynwald Day" msgstr "DzieĊ„ Rodziny Kr³lewskiej" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "DzieĊ„ weterana" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "DzieĊ„ Wiktorii" #: src/hd-data.c:736 msgid "Victory Day" msgstr "DzieĊ„ Zwycięstwa" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "ZesĊ‚anie Ducha Ċšwiętego" #: src/hd-data.c:738 #, fuzzy msgid "Women's Day" msgstr "DzieĊ„ Matki" #: src/hd-data.c:739 #, fuzzy msgid "Women's Shrove Day" msgstr "Ostatki" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "Ċšwiatowy DzieĊ„ Zwierząt" #: src/hd-data.c:741 #, fuzzy msgid "Youth Day" msgstr "DzieĊ„ Matki" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:748 #, fuzzy msgid "Admission Day" msgstr "Armistice Day" #: src/hd-data.c:749 #, fuzzy msgid "Alaska Day" msgstr "DzieĊ„ chorągwi" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:752 #, fuzzy msgid "All Saints' Eve" msgstr "DzieĊ„ Wszystkich Ċšwiętych" #: src/hd-data.c:753 #, fuzzy msgid "Americas Day" msgstr "DzieĊ„ SiĊ‚ Zbrojnych" #: src/hd-data.c:754 #, fuzzy msgid "Angam Day" msgstr "DzieĊ„ Anzaca" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:759 #, fuzzy msgid "Antillian Day" msgstr "DzieĊ„ Wszystkich Ċšwiętych" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:764 #, fuzzy msgid "Arengo Anniversary" msgstr "Stulecie Konstytucji" #: src/hd-data.c:765 #, fuzzy msgid "Army Coup Day" msgstr "DzieĊ„ SiĊ‚ Zbrojnych" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:767 #, fuzzy msgid "Artigas' Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:768 #, fuzzy msgid "Asuncion Day" msgstr "Wybory prezydenckie" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:771 #, fuzzy msgid "Ba'ath Revolution Day" msgstr "DzieĊ„ Rewolucji" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:773 #, fuzzy msgid "Bataan Day" msgstr "DzieĊ„ weterana" #: src/hd-data.c:774 #, fuzzy msgid "Battle of Angamos" msgstr "Bitwa pod Boyne" #: src/hd-data.c:775 #, fuzzy msgid "Battle of BoyacĦ" msgstr "Bitwa pod Boyne" #: src/hd-data.c:776 #, fuzzy msgid "Battle of Carabobo" msgstr "Bitwa pod Boyne" #: src/hd-data.c:777 #, fuzzy msgid "Battle of Iquique" msgstr "Bitwa pod Boyne" #: src/hd-data.c:778 #, fuzzy msgid "Battle of Las Piedras" msgstr "Bitwa pod Boyne" #: src/hd-data.c:779 #, fuzzy msgid "Battle of N¤fels" msgstr "Bitwa pod Boyne" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:781 #, fuzzy msgid "Belgrade's Day" msgstr "DzieĊ„ Nauczyciela" #: src/hd-data.c:782 #, fuzzy msgid "Bennington Battle Day" msgstr "DzieĊ„ Benito Juareza" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "" #: src/hd-data.c:785 #, fuzzy msgid "Boganda Day" msgstr "Drugi dzieĊ„ BoĊĵego Narodzenia" #: src/hd-data.c:786 #, fuzzy msgid "Bonaire Day" msgstr "Drugi dzieĊ„ BoĊĵego Narodzenia" #: src/hd-data.c:787 #, fuzzy msgid "Boqueron Battle Day" msgstr "DzieĊ„ Koronacji" #: src/hd-data.c:788 #, fuzzy msgid "Botswana Day" msgstr "Drugi dzieĊ„ BoĊĵego Narodzenia" #: src/hd-data.c:789 #, fuzzy msgid "Bounty Day" msgstr "Drugi dzieĊ„ BoĊĵego Narodzenia" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "Spalenie Jana Husa na stosie" #: src/hd-data.c:792 #, fuzzy msgid "Canberra Day" msgstr "DzieĊ„ Modlitwy" #: src/hd-data.c:793 #, fuzzy msgid "Caricom Day" msgstr "BoĊĵe Narodzenie" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:795 #, fuzzy msgid "Cassinga Day" msgstr "Drugi dzieĊ„ BoĊĵego Narodzenia" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:798 #, fuzzy msgid "Charter Day" msgstr "DzieĊ„ Ojca" #: src/hd-data.c:799 #, fuzzy msgid "Chiang Kai-shek's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:800 #, fuzzy msgid "Children's White Sunday" msgstr "DzieĊ„ Dziecka" #: src/hd-data.c:801 #, fuzzy msgid "Colon Day" msgstr "DzieĊ„ Rewolucji" #: src/hd-data.c:802 #, fuzzy msgid "Colorado Day" msgstr "DzieĊ„ Koronacji" #: src/hd-data.c:803 #, fuzzy msgid "Commonwealth Day" msgstr "DzieĊ„ Koronacji" #: src/hd-data.c:804 #, fuzzy msgid "Compact Day" msgstr "DzieĊ„ Koronacji" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "DzieĊ„ Koronacji" #: src/hd-data.c:807 #, fuzzy msgid "Cup Match Day" msgstr "1 Maja" #: src/hd-data.c:808 #, fuzzy msgid "Custom Chief's Day" msgstr "DzieĊ„ Dziecka" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "DzieĊ„ Rewolty Studenckiej" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:814 #, fuzzy msgid "Death of H. Christophe" msgstr "BoĊĵe CiaĊ‚o" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:821 #, fuzzy msgid "Defenders Day" msgstr "Ċšwięto NiepodlegĊ‚oĊ›ci" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:824 #, fuzzy msgid "Discovery Day" msgstr "DzieĊ„ Zwycięstwa" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:827 #, fuzzy msgid "Dr. Sun Yat-sen's Birthday" msgstr "Urodziny Kr³lowej" #: src/hd-data.c:828 #, fuzzy msgid "Duarte's Birthday" msgstr "Urodziny Kr³lowej" #: src/hd-data.c:829 #, fuzzy msgid "Easter Tuesday" msgstr "Wielkanoc" #: src/hd-data.c:830 #, fuzzy msgid "Economic Liberation Day" msgstr "DzieĊ„ WolnoĊ›ci" #: src/hd-data.c:831 #, fuzzy msgid "Eight Hours Day" msgstr "DzieĊ„ Zwycięstwa" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:834 #, fuzzy msgid "Evacuation Day" msgstr "Wybory prezydenckie" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:838 #, fuzzy msgid "Family Day" msgstr "1 Maja" #: src/hd-data.c:839 #, fuzzy msgid "FAO Day" msgstr "DzieĊ„ chorągwi" #: src/hd-data.c:840 #, fuzzy msgid "Farmers' Day" msgstr "DzieĊ„ Ojca" #: src/hd-data.c:841 #, fuzzy msgid "Father Leval Day" msgstr "DzieĊ„ Ojca" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "Feast of Our Theotokos" #: src/hd-data.c:843 #, fuzzy msgid "Fisherman's Day" msgstr "DzieĊ„ Ojca" #: src/hd-data.c:844 #, fuzzy msgid "Foundation of NPLA Day" msgstr "DzieĊ„ Koronacji" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:849 #, fuzzy msgid "Gospel Day" msgstr "DzieĊ„ Nobla" #: src/hd-data.c:850 #, fuzzy msgid "Guacanaste Day" msgstr "DzieĊ„ Rodziny Kr³lewskiej" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "DzieĊ„ Gustawa Adolfa" #: src/hd-data.c:852 #, fuzzy msgid "Heritage Day" msgstr "Armistice Day" #: src/hd-data.c:853 #, fuzzy msgid "Heroes Day" msgstr "DzieĊ„ Ojca" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:855 #, fuzzy msgid "Holy Wednesday" msgstr "Ċšroda" #: src/hd-data.c:856 #, fuzzy msgid "Ho Chi Minh's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:857 #, fuzzy msgid "Human Rights Day" msgstr "DzieĊ„ Zjednoczenia Niemiec" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:859 #, fuzzy msgid "Hurricane Thanksgiving Day" msgstr "DzieĊ„ Dziękczynienia" #: src/hd-data.c:860 #, fuzzy msgid "Independence of Cartagena" msgstr "Ċšwięto NiepodlegĊ‚oĊ›ci" #: src/hd-data.c:861 #, fuzzy msgid "Independence of Cuenca" msgstr "Ċšwięto NiepodlegĊ‚oĊ›ci" #: src/hd-data.c:862 #, fuzzy msgid "Independence of Guayaquil" msgstr "Ċšwięto NiepodlegĊ‚oĊ›ci" #: src/hd-data.c:863 #, fuzzy msgid "Independence of Quito" msgstr "Ċšwięto NiepodlegĊ‚oĊ›ci" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:865 #, fuzzy msgid "Internal Autonomy Day" msgstr "Międzynarodowy DzieĊ„ Kobiet" #: src/hd-data.c:866 #, fuzzy msgid "Jefferson Davis' Birthday" msgstr "Urodziny Koronowanej KsięĊĵniczki" #: src/hd-data.c:867 #, fuzzy msgid "June Holiday" msgstr "Dzisiaj banki zamknięte" #: src/hd-data.c:868 #, fuzzy msgid "J. Barbosa's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:869 #, fuzzy msgid "J. Chilembwe Day" msgstr "DzieĊ„ Dziecka" #: src/hd-data.c:870 #, fuzzy msgid "J. Diego's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:871 #, fuzzy msgid "J. Robert's Birthday" msgstr "Urodziny Kr³lowej" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:873 #, fuzzy msgid "Kartini Day" msgstr "Martinimas" #: src/hd-data.c:874 #, fuzzy msgid "Catherine Show Day" msgstr "DzieĊ„ Ojca" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "" #: src/hd-data.c:876 #, fuzzy msgid "Kim Il-Sung's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:877 #, fuzzy msgid "Kim Jong-Il's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:880 #, fuzzy msgid "King Rama V Memorial Day" msgstr "DzieĊ„ Pamięci PolegĊ‚ych" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "Lapp National Holiday" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:885 #, fuzzy msgid "Liberty Day" msgstr "DzieĊ„ WolnoĊ›ci" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:888 #, fuzzy msgid "Lyndon B. Johnson Day" msgstr "DzieĊ„ Ċšw. Jana" #: src/hd-data.c:889 #, fuzzy msgid "L. Rivera's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:890 #, fuzzy msgid "Madaraka Day" msgstr "1 Maja" #: src/hd-data.c:891 #, fuzzy msgid "Mahatma Gandhi's Birthday" msgstr "Urodziny Kr³la" #: src/hd-data.c:892 #, fuzzy msgid "Malvinas Day" msgstr "1 Maja" #: src/hd-data.c:893 #, fuzzy msgid "Manila Day" msgstr "1 Maja" #: src/hd-data.c:894 #, fuzzy msgid "Maputo City Day" msgstr "1 Maja" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:896 #, fuzzy msgid "Maryland Day" msgstr "1 Maja" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:898 #, fuzzy msgid "Merchant Day" msgstr "DzieĊ„ Zjednoczenia Niemiec" #: src/hd-data.c:899 #, fuzzy msgid "St John's/Midsummers Eve" msgstr "Jutro Ċšrodek Lata" #: src/hd-data.c:900 #, fuzzy msgid "Missionary Day" msgstr "1 Maja" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "" #: src/hd-data.c:902 #, fuzzy msgid "Morazan Day" msgstr "1 Maja" #: src/hd-data.c:903 #, fuzzy msgid "Mosheshoe's Day" msgstr "DzieĊ„ Matki" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:905 #, fuzzy msgid "Naming Day" msgstr "Drugi dzieĊ„ BoĊĵego Narodzenia" #: src/hd-data.c:906 #, fuzzy msgid "National Bun Day" msgstr "Narodowy DzieĊ„ Cierpienia" #: src/hd-data.c:907 #, fuzzy msgid "National Heroes Day" msgstr "Narodowe wakacje" #: src/hd-data.c:908 #, fuzzy msgid "National Redemption Day" msgstr "Narodowy DzieĊ„ Cierpienia" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "DzieĊ„ Narodowego Ruchu Oporu" #: src/hd-data.c:910 #, fuzzy msgid "National Revival Day" msgstr "DzieĊ„ Narodowego Ruchu Oporu" #: src/hd-data.c:911 #, fuzzy msgid "National Unity Day" msgstr "Narodowy DzieĊ„ Cierpienia" #: src/hd-data.c:912 #, fuzzy msgid "Ndadaye Day" msgstr "DzieĊ„ Modlitwy" #: src/hd-data.c:913 #, fuzzy msgid "Neutrality Day" msgstr "DzieĊ„ Zjednoczenia Niemiec" #: src/hd-data.c:914 #, fuzzy msgid "Nevada Day" msgstr "DzieĊ„ Nobla" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "DzieĊ„ Nobla" #: src/hd-data.c:917 #, fuzzy msgid "Noi Day" msgstr "DzieĊ„ Nobla" #: src/hd-data.c:918 #, fuzzy msgid "OAU Day" msgstr "DzieĊ„ Anzaca" #: src/hd-data.c:919 #, fuzzy msgid "October Holiday" msgstr "Narodowe wakacje" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:927 #, fuzzy msgid "Panama City Day" msgstr "DzieĊ„ Zjednoczenia Niemiec" #: src/hd-data.c:928 #, fuzzy msgid "Panamerica Day" msgstr "DzieĊ„ Modlitwy" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:930 #, fuzzy msgid "Patriot's Day" msgstr "DzieĊ„ Ċšw. Patryka" #: src/hd-data.c:931 #, fuzzy msgid "People's Uprising Day" msgstr "Majowe Powstanie Ludu Czeskiego" #: src/hd-data.c:932 msgid "People Power Day" msgstr "" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:934 #, fuzzy msgid "Pichincha Day" msgstr "DzieĊ„ Wiktorii" #: src/hd-data.c:935 #, fuzzy msgid "Picnic Day" msgstr "DzieĊ„ KsięĊĵniczki" #: src/hd-data.c:936 #, fuzzy msgid "Pioneer Day" msgstr "DzieĊ„ Modlitwy" #: src/hd-data.c:937 #, fuzzy msgid "Poya Day" msgstr "DzieĊ„ Modlitwy" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:939 #, fuzzy msgid "Prince of Wales' Birthday" msgstr "Urodziny Koronowanej KsięĊĵniczki" #: src/hd-data.c:940 #, fuzzy msgid "Proclamation Day" msgstr "DzieĊ„ Koronacji" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:943 #, fuzzy msgid "Recreation Day" msgstr "DzieĊ„ Reformacji" #: src/hd-data.c:944 #, fuzzy msgid "Referendum Day" msgstr "DzieĊ„ Reformacji" #: src/hd-data.c:945 #, fuzzy msgid "Regatta Day" msgstr "DzieĊ„ Reformacji" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:947 #, fuzzy msgid "Restoration Day" msgstr "DzieĊ„ Reformacji" #: src/hd-data.c:948 #, fuzzy msgid "Return Day" msgstr "DzieĊ„ weterana" #: src/hd-data.c:949 #, fuzzy msgid "Reunification Day" msgstr "DzieĊ„ Reformacji" #: src/hd-data.c:950 #, fuzzy msgid "Rizal Day" msgstr "DzieĊ„ Anzaca" #: src/hd-data.c:951 #, fuzzy msgid "Rwagasore Day" msgstr "Ċšwięto Pracy" #: src/hd-data.c:952 #, fuzzy msgid "Saba Day" msgstr "Ċšwięto Pracy" #: src/hd-data.c:953 #, fuzzy msgid "San Jacinto Day" msgstr "DzieĊ„ Ċšw. Jana Baptysty" #: src/hd-data.c:954 #, fuzzy msgid "San Josİ Day" msgstr "DzieĊ„ Ċšw. Jana" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:956 #, fuzzy msgid "School Holiday" msgstr "Narodowe wakacje" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "" #: src/hd-data.c:958 #, fuzzy msgid "Separation Day" msgstr "DzieĊ„ WolnoĊ›ci" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:960 #, fuzzy msgid "Settlers Day" msgstr "DzieĊ„ weterana" #: src/hd-data.c:961 #, fuzzy msgid "Seward's Day" msgstr "DzieĊ„ Ċšw. Edwarda" #: src/hd-data.c:962 #, fuzzy msgid "Shaheed Day" msgstr "DzieĊ„ Ojca" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:964 #, fuzzy msgid "Sheikh Zayed's Ascension Day" msgstr "DzieĊ„ Wniebowstąpienia NMP" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:966 #, fuzzy msgid "Sinai-Liberation Day" msgstr "DzieĊ„ WolnoĊ›ci" #: src/hd-data.c:967 #, fuzzy msgid "Slave-Liberation Day" msgstr "DzieĊ„ WolnoĊ›ci" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:970 #, fuzzy msgid "Somers Day" msgstr "DzieĊ„ Matki" #: src/hd-data.c:971 #, fuzzy msgid "Statia-American Day" msgstr "DzieĊ„ Ċšw. Patryka" #: src/hd-data.c:972 #, fuzzy msgid "Student's Day" msgstr "DzieĊ„ Prezydenta" #: src/hd-data.c:973 #, fuzzy msgid "St Agata Day" msgstr "DzieĊ„ Ċšw. Kanuta" #: src/hd-data.c:974 #, fuzzy msgid "St Canute's Day" msgstr "DzieĊ„ Ċšw. Kanuta" #: src/hd-data.c:975 #, fuzzy msgid "St Cedilia's Day" msgstr "DzieĊ„ Ċšw. Ċucji" #: src/hd-data.c:976 #, fuzzy msgid "St Charles' Day" msgstr "DzieĊ„ Ċšw. Jamesa" #: src/hd-data.c:977 #, fuzzy msgid "St Demetrius' Day" msgstr "DzieĊ„ Ċšw. Jamesa" #: src/hd-data.c:978 #, fuzzy msgid "St Dİvote Day" msgstr "DzieĊ„ Ċšw. J³zefa" #: src/hd-data.c:979 #, fuzzy msgid "St Eliah's Day" msgstr "DzieĊ„ Ċšw. Ċucji" #: src/hd-data.c:980 #, fuzzy msgid "St Jean Baptiste Day" msgstr "DzieĊ„ Ċšw. Jana Baptysty" #: src/hd-data.c:981 #, fuzzy msgid "St Lucia's Day" msgstr "DzieĊ„ Ċšw. Ċucji" #: src/hd-data.c:982 #, fuzzy msgid "St Marguerite's Day" msgstr "DzieĊ„ Ċšw. Kanuta" #: src/hd-data.c:983 #, fuzzy msgid "St Maroon's Day" msgstr "DzieĊ„ Ċšw. Jana" #: src/hd-data.c:984 #, fuzzy msgid "St Michael's Day" msgstr "MikoĊ‚ajki" #: src/hd-data.c:985 #, fuzzy msgid "St Olav's Day" msgstr "DzieĊ„ Ċšw. Dawida" #: src/hd-data.c:986 #, fuzzy msgid "St Olav's Eve" msgstr "Jutro DzieĊ„ Ċšw. Jana" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:989 #, fuzzy msgid "St Ursula's Day" msgstr "DzieĊ„ Ċšw. Ċucji" #: src/hd-data.c:990 #, fuzzy msgid "St Vincent de Paul's Day" msgstr "DzieĊ„ zakochanych" #: src/hd-data.c:991 #, fuzzy msgid "Suez Victory Day" msgstr "DzieĊ„ Zwycięstwa" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:994 #, fuzzy msgid "Sweden Day" msgstr "DzieĊ„ Prezydenta" #: src/hd-data.c:995 #, fuzzy msgid "S. Doe's Birthday" msgstr "Urodziny Kr³lowej" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:997 #, fuzzy msgid "Territory Day" msgstr "DzieĊ„ Zwycięstwa" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "Urodziny Koronowanej KsięĊĵniczki" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "DzieĊ„ Koronowanej KsięĊĵniczki" #: src/hd-data.c:1000 #, fuzzy msgid "The Crown Prince's Birthday" msgstr "Urodziny Koronowanej KsięĊĵniczki" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "DzieĊ„ Kr³la" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "DzieĊ„ Kr³lowej" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1004 #, fuzzy msgid "Town Meeting Day" msgstr "Drugi dzieĊ„ BoĊĵego Narodzenia" #: src/hd-data.c:1005 #, fuzzy msgid "Traditional Day" msgstr "DzieĊ„ Koronacji" #: src/hd-data.c:1006 #, fuzzy msgid "Transfer Day" msgstr "DzieĊ„ Modlitwy" #: src/hd-data.c:1007 #, fuzzy msgid "Truman Day" msgstr "DzieĊ„ Reformacji" #: src/hd-data.c:1008 #, fuzzy msgid "Union Day" msgstr "DzieĊ„ Koronacji" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "Rozpad unii ze Szwecją" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "DzieĊ„ Narod³w Zjednoczonych" #: src/hd-data.c:1011 #, fuzzy msgid "Unity Factory Day" msgstr "DzieĊ„ Zwycięstwa" #: src/hd-data.c:1012 #, fuzzy msgid "Victor-Schoelcher Day" msgstr "DzieĊ„ Zwycięstwa" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1014 #, fuzzy msgid "West Virginia Day" msgstr "DzieĊ„ Wiktorii" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "Jutro BoĊĵe CiaĊ‚o" #: src/hd-data.c:1016 #, fuzzy msgid "W. Tubman's Birthday" msgstr "Urodziny Kr³lowej" #: src/hd-data.c:1017 #, fuzzy msgid "Yap Day" msgstr "1 Maja" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "" #: src/hd-data.c:1287 #, fuzzy msgid "Ast" msgstr ". " #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "" #: src/hd-data.c:1550 msgid "Cel" msgstr "" #: src/hd-data.c:1692 src/hd-data.c:2225 #, fuzzy msgid "Chi" msgstr "Chr" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2227 src/hd-data.c:3730 #, fuzzy msgid "Jap" msgstr "Sty" #: src/hd-data.c:2423 msgid "Chr" msgstr "Chr" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "" #: src/hd-data.c:2778 src/hd-data.c:2960 #, fuzzy msgid "Heb" msgstr "Lut" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "" #: src/hd-data.c:4447 msgid "OxN" msgstr "" #: src/hd-data.c:4449 msgid "OxO" msgstr "" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "" #: src/hd-data.c:4847 msgid "Zod" msgstr "" #: src/hd-use.c:929 msgid " day" msgstr " dzieĊ„" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "Wieczna lista dni wolnych" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*sRok %0*d jest rokiem przestepnym" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*sRok %0*d nie jest rokiem przestepnym" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sRok %d jest rokiem przestepnym" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sRok %d nie jest rokiem przestepnym" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr " = %+4d dzieĊ„" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr " = %+4d dni" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s zawiera obecnie maksymalnie %d rekord³w!%s" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "Skompilowany z %s%s dla %s%s%s%s" #: src/help.c:75 #, fuzzy msgid "# Day number (must be defined)" msgstr "Grupa dni (dokĊ‚adnie jeden przedstawiciel musi być zdefiniowany):" #: src/help.c:76 #, fuzzy msgid "# Year number (must be defined)" msgstr "Grupa lat (dokĊ‚adnie jeden przedstawiciel musi być zdefiniowany):" #: src/help.c:77 #, fuzzy msgid "# Weekday name (may be defined)" msgstr "Nazwa dnia (jeden przedstawiciel moĊĵe być zdefiniowany):" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "Grupa miesięcy (dokĊ‚adnie jeden przedstawiciel musi być zdefiniowany):" #: src/help.c:79 msgid "# Month number" msgstr "" #: src/help.c:80 #, fuzzy msgid "# Month name" msgstr "PeĊ‚na nazwa miesiąca" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "Grupa wyr³Ċĵniająca (naleĊĵy zdefiniować wszystkich przedstawicieli):" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "Początek sekwencji wyr³Ċĵniającej/znak zaznaczający" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "Koniec sekwencji wyr³Ċĵniającej/znak zaznaczający" #: src/help.c:86 msgid "Character replacement:" msgstr "Zamiennik znaku:" #: src/help.c:87 #, fuzzy, c-format msgid "Space/blank ('%c') character" msgstr "Odstęp/znak pusty (' ')" #: src/help.c:88 #, fuzzy, c-format msgid "Underscore ('%c') character" msgstr "Znak podkreĊ›lenia ('_')" #: src/help.c:89 #, fuzzy, c-format msgid "Percent ('%c') character" msgstr "Znak procentu ('%')" #: src/help.c:90 #, fuzzy, c-format msgid "Backslash ('%c') character" msgstr "Odstęp/znak pusty (' ')" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:94 #, fuzzy msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "Grupa miesięcy (dokĊ‚adnie jeden przedstawiciel musi być zdefiniowany):" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:104 #, fuzzy msgid "Numerical value is filled with leading zero(es)" msgstr "Numer dnia z poprzedzającymi zerami" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:107 #, fuzzy msgid "STYLE group (exactly one member may be defined):" msgstr "Grupa lat (dokĊ‚adnie jeden przedstawiciel musi być zdefiniowany):" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:114 #, fuzzy msgid "FORMAT group (exactly one member must be defined):" msgstr "Grupa miesięcy (dokĊ‚adnie jeden przedstawiciel musi być zdefiniowany):" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:130 msgid "legal holidays" msgstr "Ċ›więta paĊ„stwowe" #: src/help.c:131 msgid "holidays" msgstr "dni wolne" #: src/help.c:132 msgid "Mondays" msgstr "PoniedziaĊ‚ki" #: src/help.c:133 msgid "Tuesdays" msgstr "Wtorki" #: src/help.c:134 msgid "Wednesdays" msgstr "Ċšrody" #: src/help.c:135 msgid "Thursdays" msgstr "Czwartki" #: src/help.c:136 msgid "Fridays" msgstr "Piątki" #: src/help.c:137 msgid "Saturdays" msgstr "Soboty" #: src/help.c:138 msgid "Sundays" msgstr "Niedziele" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "PoniedziaĊ‚ki...Czwartki" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "PoniedziaĊ‚ki...Piątki" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s: UĊĵyj `%s %s' z jednym z tych argument³w" #: src/help.c:243 msgid "OPTION" msgstr "OPCJA" #: src/help.c:256 msgid " Display help text and quit program" msgstr " WyĊ›wietl tekst pomocy i zakoĊ„cz program" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr " WyĊ›wietl obszerniejszy tekst pomocy i zakoĊ„cz program" #: src/help.c:291 msgid " Display software license and quit program" msgstr " WyĊ›wietl licencję programu i zakoĊ„cz program" #: src/help.c:302 #, fuzzy msgid " Display version information and quit program" msgstr " WyĊ›wietl numer wersji i zakoĊ„cz program" #: src/help.c:313 #, fuzzy, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr " Ustaw kod wyjĊ›cia programu na 127 dla --help, --version itp." #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Utw³rz plik odpowiedzi dla opcji `%cPLIK'" #: src/help.c:330 #, fuzzy, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " ARG = Zachowaj argumenty linii poleceĊ„ w pliku ARG" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr " Utw³rz skrypt powĊ‚oki zawierający argumenty wiersza poleceĊ„" #: src/help.c:346 #, fuzzy, c-format msgid " %-3s = File name of the shell script" msgstr " ARG = Nazwa skryptu powĊ‚oki" #: src/help.c:360 #, fuzzy msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" " Zdefiniuj globalną zmienną(e) daty \"dvar->a...d|f...s|u...|z\"" #: src/help.c:364 #, fuzzy, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr " wyraĊĵenia rozdzielone przez znaki `%s'" #: src/help.c:369 #, fuzzy, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" " np. %sv a%s1127%sb%s054 Ustaw `a' na 27 Lis a `b' na 4 Maj" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr " Eksportuj lokalną zmienną daty z pliku do pliku" #: src/help.c:393 #, fuzzy, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "" " Zdefiniuj globalną(e) zmienną(e) tekstową(e) \"tvar->%ca...%cz\"" #: src/help.c:398 #, fuzzy, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr " wyraĊĵenia rozdzielone przez znaki `%s'" #: src/help.c:403 #, fuzzy, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" " np. %sr %ca%sfoo%s%cb%sbar Ustaw `%ca' na `foo' a `%cb' na " "`bar'" #: src/help.c:409 #, fuzzy, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr " wyraĊĵenia rozdzielone przez znaki `%s'" #: src/help.c:414 #, fuzzy, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" " np. %sr %ca%sfoo%s%cb%sbar Ustaw `%ca' na `foo' a `%cb' na " "`bar'" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr " Eksportuj lokalne zmienne tekstowe z pliku do pliku" #: src/help.c:438 src/help.c:468 #, fuzzy, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "" " PokaĊĵ tylko te ustalone daty, kt³re nie są wyĊ‚Ä…czone przez ARG" #: src/help.c:443 #, fuzzy, c-format msgid " %-3s = One or more of the following characters. If character" msgstr " ARG = Jeden lub kilka z następujących znak³w. JeĊ›li znak" #: src/help.c:448 #, fuzzy msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " jest MAĊÄ„ LITERĄ, oznacza on bez wykluczania!" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Pominięcie wszystkich %s" #: src/help.c:473 #, fuzzy, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr " ARG = Lista `%c[DATA][%c[DATA]]' i/lub `%c[DATA][%c[DATA]]'" #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr " wyraĊĵenia rozdzielone przez znaki `%s'" #: src/help.c:490 #, fuzzy, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr " PokaĊĵ tylko te ustalone daty, kt³re pasują do ARG" #: src/help.c:495 #, fuzzy, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " ARG = Dowolny tekst albo \"wyraĊĵenie regularne\" kt³re lubisz" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:520 #, fuzzy, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Utw³rz plik odpowiedzi dla opcji `%cPLIK'" #: src/help.c:531 #, fuzzy msgid " Display some debug information" msgstr " WyĊ›wietl informacje diagnostyczne" #: src/help.c:539 #, fuzzy, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [ARG] = internal Informacja jeĊ›li osiągnięto wewnętrzne ograniczenia " "programu" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr " = handled Tak jak `internal' oraz nazwy uĊĵywanych plik³w" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled Tak jak `internal' oraz nazwy niewykorzystanych " "plik³w" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Tak jak `handled' i `unhandled' razem" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" " = abort Tak jak `all' i przerwij jesli pliku nie moĊĵna uĊĵyć" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr " Zastosuj specjalny format dla kartki kalendarza" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - UĊĵyj standardowego formatu kartki kalendarza" #: src/help.c:596 #, fuzzy msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" " UĊĵyj reguĊ‚y roku przestępnego Wschodnich KoĊ›cioĊ‚³w Ortodoksyjnych" #: src/help.c:606 #, fuzzy msgid " Provide calendar sheet with week numbers" msgstr " PokaĊĵ kartkę kalendarza z numerami ISO tygodni" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr "" #: src/help.c:618 msgid "Standard" msgstr "" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:631 #, fuzzy msgid " = no Standard week numbers" msgstr " PokaĊĵ kartkę kalendarza z numerami ISO tygodni" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr " Nie wyĊ›wietlaj kartek kalendarza" #: src/help.c:655 #, fuzzy, c-format msgid " Direct output through external `%s' pager" msgstr " PrzeĊ›lij wynik poprzez zewnetrzny pager `%s'" #: src/help.c:661 src/help.c:663 #, fuzzy msgid " Direct output through simple internal pager" msgstr " PrzeĊ›lij wynik poprzez prosty pager wewnętrzny" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " WyĊ‚Ä…cz wyr³Ċĵnianie tekstu, dni wolnych, bądĊş aktualnego dnia" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" " Wymuszaj kody wyr³Ċĵniania jeĊ›li wynik jest przeadresowany/idzie " "przez potok" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" " Ustaw pary kod³w wyr³Ċĵniania 1(=aktualny dzieĊ„), 2(=dni wolne)" #: src/help.c:711 #, fuzzy, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr " ARG = Pary kod³w wyr³Ċĵniania rozdzielone przez znaki `%s'" #: src/help.c:716 #, fuzzy, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" " np. %sH \\x2%s\\xAE UĊĵyj wartoĊ›Ä‡i hex 2 I AE dla sekwencji 1" #: src/help.c:721 #, fuzzy, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" " np. %sH %s%s*%s* UĊĵyj znak³w `*' i `*' dla sekwencji 2" #: src/help.c:732 msgid " Modify format of year calendar" msgstr " ZmieĊ„ format kalendarza lat" #: src/help.c:736 #, fuzzy, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr " ARG = 1|2|3|4|6|12 Liczba blok³w" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr " UĊĵyj kolejnych dni lat w kartce kalendarza" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [MOD] = b UĊĵyj obu notacji daty (dzieĊ„ miesiąca+rok)" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr " UĊĵyj kolejnych dni roku we wiecznej liĊ›cie dni wolnych" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [MOD] = b UĊĵyj obu notacji daty (dzieĊ„ miesiąca+rok)" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr " UĊĵyj kolejnych dni roku w liĊ›cie ustalonych dni" #: src/help.c:795 #, fuzzy, c-format msgid " Set starting day of week (actual: %s)" msgstr " Ustaw początkowy dzieĊ„ tygodnia" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr " PrzeĊ›lij wynik uĊĵytkownikowi poprzez program `%s'" #: src/help.c:857 msgid "UNKNOWN" msgstr "" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr " PokaĊĵ wieczną listę dni wolych (Lata w zakresie: %d...%d)" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr " n = Ċšwięta paĊ„stwowe i dni pamięci" #: src/help.c:883 msgid " N = Legal days only" msgstr " N = Tylko Ċ›więta paĊ„stwowe" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Opadajacy porządek sortowania" #: src/help.c:897 #, fuzzy msgid " Suppress leading blank line of eternal holiday list" msgstr " WyĊ‚Ä…cz tytuĊ‚ wiecznej listy dni wolnych" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr " WyĊ‚Ä…cz tytuĊ‚ wiecznej listy dni wolnych" #: src/help.c:919 #, fuzzy msgid " Provide eternal holiday list with astronomical data" msgstr " PokaĊĵ wieczną listę dni wolnych ze Ċ›więtami katolickimi" #: src/help.c:931 #, fuzzy msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:943 #, fuzzy msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:955 #, fuzzy msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:967 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr " PokaĊĵ wieczną listę dni wolnych ze Ċ›więtami katolickimi" #: src/help.c:979 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych ze Ċ›więtami katolickimi" #: src/help.c:991 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " PokaĊĵ wieczną listę dni wolnych ze Ċ›więtami katolickimi" #: src/help.c:1003 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych ze Ċ›więtami katolickimi" #: src/help.c:1015 #, fuzzy msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr " PokaĊĵ wieczną listę dni wolnych ze Ċ›więtami katolickimi" #: src/help.c:1027 #, fuzzy msgid " Provide eternal holiday list with Coptic calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1039 #, fuzzy msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1051 #, fuzzy msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1063 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1075 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1087 #, fuzzy msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych ze Ċ›więtami katolickimi" #: src/help.c:1099 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1111 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1123 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1135 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1147 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1159 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1172 #, fuzzy msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1184 #, fuzzy msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1196 #, fuzzy msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1208 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1220 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1232 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1244 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr " PokaĊĵ wieczną listę dni wolnych ze Ċ›więtami katolickimi" #: src/help.c:1256 #, fuzzy msgid " Provide eternal holiday list with zodiacal marker data" msgstr " PokaĊĵ wieczną listę dni wolnych bez typowych dni wolnych" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr "" " PokaĊĵ wieczną listę dni wolnych ze Ċ›więtami zaleĊĵnymi od kraju" #: src/help.c:1272 #, fuzzy, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr " ARG = PojedyĊ„czy kod kraju albo lista kod³w kraj³w" #: src/help.c:1277 #, fuzzy, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr " kt³re są poĊ‚Ä…czone znakami `%s'" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1286 #, fuzzy, c-format msgid " %-*s = Holidays in %s" msgstr " %s = %s dni wolnych" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1322 #, fuzzy msgid " Set base data of Earth's atmosphere" msgstr " Ustaw początkowy dzieĊ„ tygodnia" #: src/help.c:1326 #, fuzzy, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr " wyraĊĵenia rozdzielone przez znaki `%s'" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1344 #, fuzzy msgid " Limit rise/set times of Sun to the day" msgstr " 1. Przedstawienie tekstu" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1366 #, fuzzy, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " # B = Nie wykonuj komend powĊ‚oki`%c%c[ARG]'" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1453 #, fuzzy msgid " Change base year of calendar" msgstr " ZmieĊ„ format kalendarza lat" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr " Ustaw okres reformacji gregoriaĊ„skiej" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " Obecnie brany pod uwagę okres: %02d-%02d %s %0*d" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr " %-*d%*s = Ustaw okres na: %02d-%02d %s %0*d" #: src/help.c:1485 #, fuzzy, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr " ARG = %s%s%s%s%s%s%s Ustaw jawnie okres" #: src/help.c:1499 #, fuzzy, c-format msgid " Set order of date elements using the %s format text" msgstr "" " Ustaw porządek element³w daty uĊĵywając formatu tekstowego ARG" #: src/help.c:1502 #, fuzzy, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Obecny format: (%s) `%s' (%s)" #: src/help.c:1504 msgid "self-defined" msgstr "autozdefiniowany" #: src/help.c:1509 #, fuzzy, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = Przestaw format na: `%s' (%s)" #: src/help.c:1517 #, fuzzy, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr " ARG = Zdefiniuj format osobisty. Odpowiednie elemety formatu:" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1582 #, fuzzy msgid " they are used by the character set used in Germany" msgstr " kt³re są poĊ‚Ä…czone znakami `%s'" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ USTALONE DATY +++" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" " UĊĵyj standardowego pliku zasob³w `.%s%s' dla listy ustalonych dat" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" " UĊĵyj standardowego pliku zasob³w `%s%s' dla listy ustalonych dat" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr " Przyjmuje okres: Dzisiaj" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr " c = WyĊ›wietl tylko te dni dla kt³rych istnieją ustalone daty" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr "" " C = WyĊ›wietl takĊĵe te dni dla kt³rych nie istnieją ustalone daty" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" " [MOD] = Jeden lub kilka następujących modyfikator³w oznaczonych przez #" #: src/help.c:1654 #, fuzzy, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr " # x = PomiĊ„ tytuĊ‚ w liscie ustalonych dat" #: src/help.c:1657 #, fuzzy, c-format msgid " Actual: `%s'" msgstr " = %s Do tyĊ‚u" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" " # g[MOD] = Grupa ustalonych dat co dzieĊ„ korzystając z " "tekstu MOD" #: src/help.c:1682 msgid " 1. Representation of text" msgstr " 1. Przedstawienie tekstu" #: src/help.c:1694 #, fuzzy msgid " = Set width of the biorhythm text graphics" msgstr " # x = PomiĊ„ tytuĊ‚ w liscie ustalonych dat" #: src/help.c:1698 #, fuzzy, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " N = 99 Ostatni tydzieĊ„" #: src/help.c:1711 #, fuzzy msgid " = Set height of the Moon phase text graphics" msgstr " # x = PomiĊ„ tytuĊ‚ w liscie ustalonych dat" #: src/help.c:1715 #, fuzzy, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " = %s Do tyĊ‚u" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr " # a = WyĊ›wietl Ċşr³dĊ‚o ustalonych dat" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr "" " # A = WyĊ›wietl uĊĵywając alternatywnego formatu listy" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr " # e = DoĊ‚Ä…cz Ċ›więta paĊ„stwowe i dni pamięci" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr " # E = DoĊ‚Ä…cz tylko Ċ›więta paĊ„stwowe" #: src/help.c:1763 #, fuzzy msgid " # k = Display week number" msgstr " # k = WyĊ›wietl numer ISO tygodnia" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr "" " # o = PomiĊ„ powtarzającaą się częĊ›Ä‡ daty w ustalonych " "datach" #: src/help.c:1787 #, fuzzy msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr " # x = PomiĊ„ tytuĊ‚ w liscie ustalonych dat" #: src/help.c:1799 #, fuzzy msgid " # U = Suppress date part of fixed dates" msgstr "" " # o = PomiĊ„ powtarzającaą się częĊ›Ä‡ daty w ustalonych " "datach" #: src/help.c:1811 #, fuzzy msgid " # J = Suppress text part of fixed dates" msgstr "" " # o = PomiĊ„ powtarzającaą się częĊ›Ä‡ daty w ustalonych " "datach" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr " # x = PomiĊ„ tytuĊ‚ w liscie ustalonych dat" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr " # z = WyĊ›wietl kolejny numer ustalonych dat" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" " # Z = WyĊ›wietl daty, dla kt³rych brak ustalonych dni" #: src/help.c:1855 msgid " 2. Respected period" msgstr " 2. Odpowiedni okres" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" " = Uwzględniaj `29 lutego' w latach nieprzestępnych" #: src/help.c:1875 #, fuzzy, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " ARG = february Uwzględniaj `28 lutego'" #: src/help.c:1884 #, fuzzy, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " ARG = march Uwzględniaj `01 marca'" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" " # d = DoĊ‚Ä…cz bieĊĵącą datę jeĊ›li lista przedziaĊ‚³w jest " "generowana" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" " # l = Utw³rz listę przedziaĊ‚³w zamiast pojedyĊ„czego " "przedziaĊ‚u" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr " # Nd = PojedyĊ„czy Nty dzieĊ„ roku" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = PojedyĊ„czy Nty dzieĊ„ roku" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = PojedyĊ„czy Nty dzieĊ„ względem dzisiaj" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s Do przodu" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr " = %s Do tyĊ‚u" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr " # Nw = CaĊ‚kowita liczba tygodni N" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1. tydzieĊ„ / ostatni tydzieĊ„ " "poprzedniego roku" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 1...52. tydzieĊ„ (zawsze)" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53. tydzieĊ„ (czasami)" #: src/help.c:1953 msgid " N = 99 Last week" msgstr " N = 99 Ostatni tydzieĊ„" #: src/help.c:1956 #, fuzzy, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # `%s%s' = PojedyĊ„czy dzieĊ„ `%s' miesiąca `%s'" #: src/help.c:1962 #, fuzzy, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr "" " # `%s%s'N = PojedyĊ„czy Nty dzieĊ„ tygodnia `%s' miesiąca `%s'" #: src/help.c:1967 #, fuzzy, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" " N = 1...4 1...4. dzieĊ„ tygodnia `%s' (zawsze)" #: src/help.c:1972 #, fuzzy, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" " N = 5 5. dzieĊ„ tygodnia `%s' (czasami)" #: src/help.c:1976 #, fuzzy, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Ostatni dzieĊ„ tygodnia `%s'" #: src/help.c:1980 #, fuzzy, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN`%s' = PojedyĊ„czy Nty dzieĊ„ tygodnia `%s" #: src/help.c:1985 #, fuzzy, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" " N = 1...51 1...51. dzieĊ„ tygodnia `%s' (zawsze)" #: src/help.c:1990 #, fuzzy, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" " N = 52|53 52|53. dzieĊ„ tygodnia `%s' (czasami)" #: src/help.c:1994 #, fuzzy, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 Ostatni dzieĊ„ tygodnia `%s'" #: src/help.c:1999 #, fuzzy, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr " # %cwN`%s' = PojedyĊ„czy dzieĊ„ tygodnia `%s' z N tygodni" #: src/help.c:2004 #, fuzzy, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" " N = 0 `%s' kt³ry nie znajduje się w 1. " "tygodniu" #: src/help.c:2009 #, fuzzy, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr " N = 1...51 `%s' 1...51. tydzieĊ„ (zawsze)" #: src/help.c:2014 #, fuzzy, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr " N = 52|53 `%s' 52|53. tydzieĊ„ (czasami)" #: src/help.c:2018 #, fuzzy, c-format msgid " N = 99 %s of last week" msgstr " N = 99 `%s' ostatni tydzieĊ„" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "" " # %c%c[[%s|%s]N] = PojedyĊ„czy Nty dzieĊ„ względem Niedzieli " "Wielkanocnej" #: src/help.c:2030 #, fuzzy, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" " # %c%c[%s|%s]N`%s'= PojedyĊ„czy Nty dzieĊ„ tygodnia względem " "Niedzieli Wielkanocnej" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "" " # %c%c[[%s|%s]N] = PojedyĊ„czy Nty dzieĊ„ względem dzisiejszej daty" #: src/help.c:2042 #, fuzzy, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" " # %c%c[%s|%s]N`%s'= PojedyĊ„czy Nty dzieĊ„ tygodnia względem " "dzisiejszej daty" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr "" " # %c?[[%s|%s]N] = PojedyĊ„czy Nty dzieĊ„ względem zmiennej daty" #: src/help.c:2054 #, fuzzy, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" " # %c?[%s|%s]N`%s'= PojedyĊ„czy Nty dzieĊ„ tygodnia względem zmieenej " "daty" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr " # t|T = PokaĊĵ jutro" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = PokaĊĵ caĊ‚y tydzieĊ„" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr " [MOD] = %s PokaĊĵ od jutra aĊĵ do koĊ„ca tygodnia" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s PokaĊş od wczoraj aĊĵ do początku tygodnia" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = PokaĊĵ caĊ‚y miesiąc" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr " [MOD] = %s PokaĊĵ od jutra aĊĵ do koĊ„ca miesiąca" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s PokaĊş od wczoraj aĊĵ do początku miesiąca" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = PokaĊĵ caĊ‚y rok" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr " [MOD] = %s PokaĊĵ od jutra aĊĵ do koĊ„ca tygodnia" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr " = %s PokaĊş od wczoraj aĊĵ do początku roku" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr " UĊĵyj plik³w zastępczych zamiast standardowych pliku zasob³w" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = PokaĊĵ tylko te daty, dla kt³rych istnieją ustalone daty" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr " F = PokaĊĵ takĊĵe daty dla kt³rych nie istnieją ustalone daty" #: src/help.c:2173 #, fuzzy, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr " ARG = PojedyĊ„czy plik albo lista plik³w poĊ‚Ä…czone znakami `%s'" #: src/help.c:2184 #, fuzzy msgid " Define additional resource file line" msgstr " UĊĵyj plik³w zastępczych zamiast standardowych pliku zasob³w" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr "" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "%cDATA" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "UĊĵyj podanej DATY zamiast dzisiejszej" #: src/help.c:2202 #, fuzzy, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" "Format daty: %s[%s[%s|%s[N]]], %s%c%c|%c|dvar[[%s|%s]N[%s]], %s%cdN[%s]" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" " %s%cwN[%s]',nazwa miesiąca[%s], nazwa dnia tygodnia[N] lub %s" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "%cPLIK" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "ZaĊ‚aduj ustawienia i polecenia z 'PLIKu'" #: src/help.c:2224 msgid "COMMAND" msgstr "KOMENDA" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = Miesiąc w zakresie: %d...%d" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr " lub: nazwa miesiąca | %s | %s%s | %s%s | %s%s" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr " Wypisz: %s[%s%s]%s...%s%s[%s%s]" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr " Zakres: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = Lata w zakresie: %d...%d" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr " Wypisz: [%s%s]%s%s...%s[%s%s]%s" #: src/help.c:2257 #, fuzzy, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr " Zakres: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2283 #, fuzzy, c-format msgid " %sh, %s Display this help text and quit program" msgstr " WyĊ›wietl tekst pomocy i zakoĊ„cz program" #: src/help.c:2286 #, fuzzy, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " WyĊ›wietl obszerniejszy tekst pomocy i zakoĊ„cz program" #: src/help.c:2290 #, fuzzy, c-format msgid " %sL, %s Display software license and quit program" msgstr " WyĊ›wietl licencję programu i zakoĊ„cz program" #: src/help.c:2294 #, fuzzy, c-format msgid " %sV, %s Display version information and quit program" msgstr " WyĊ›wietl numer wersji i zakoĊ„cz program" #: src/help.c:2302 #, fuzzy, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " PrzeĊ›lij wynik poprzez zewnetrzny pager `%s'" #: src/help.c:2309 src/help.c:2314 #, fuzzy, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " PrzeĊ›lij wynik poprzez prosty pager wewnętrzny" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "Te oprogramowanie niekoniecznie jest kompletne, poprawne lub uĊĵyteczne" #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "Z zasady nie mogę odpowiadać za ĊğADNE zniszczenia lub straty (niejawne" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "lub jawne), poniesione w wyniku uĊĵywania lub dziaĊ‚ania tego programu" #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "Korzystając z tego programu zgadasz się bez Ċĵadnych ograniczeĊ„ na to" #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "porozumienie, kt³re wiąĊĵe ciebie PRAWNIE !!" #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "Ten program jest darmowy, moĊĵesz go rozpowszechniać i/lub zmieniać" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" "zgodnie z warunkami 'Og³lnej Licencji Publicznej GNU' opublikowanej przez" #: src/help.c:2366 #, fuzzy msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" "stowarzyszenie `Free Software Foundation', wersja 2 albo (jeĊ›li wolisz)" #: src/help.c:2368 msgid "any later version." msgstr "dowolna p³Ċşniejsza wersja" #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "PowinieneĊ› byĊ‚ otrzymać kopię 'Og³lnej Licencji Publicznej GNU'" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "razem z programem; jeĊ›li jej nie masz napisz do: " #: src/help.c:2424 #, fuzzy, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" "UĊĵycie: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sij%sn%sq%ssu%s}}] [[%s] [%s]]" #: src/help.c:2452 #, fuzzy, c-format msgid "Use `%s %s|[%s?]" msgstr "UĊĵyj `%s %s' albo " #: src/help.c:2461 #, fuzzy msgid "for more information." msgstr "`%s %s|[%s?]' dla peĊ‚niejszej informacji." #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, fuzzy, c-format msgid "Email bug reports to <%s>" msgstr "PrzeĊ›lij informacje o bĊ‚Ä™dach do esken@uni-muenster.de" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "Oprogramowanie darmowe, zajrzyj do Ċşr³deĊ‚ po warunki kopiowania" #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "Nie ma ĊğADNEJ gwarancji, nawet domyĊ›lnej gwarancji" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "UĊğYTECZNOĊšCI DO OKREĊšLONEGO CELU." #: src/help.c:2617 #, fuzzy, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr ":%*s Kalendarz GNU (" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "UĊĵycie: %s [[OPCJA...] [%cDATA] [%cPLIK...]] [POLECENIE]" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Usage: %s [[OPCJA...] [%cPLIK...]] [POLECENIE]" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr " 4.0 lub 4.02" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr " p³Ċşniejsza niĊĵ 5.0" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "++ 3.0 lub nowsza" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "5.1 lub wczeĊ›niejsza" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "nieznany kompilator" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr " na" #: src/help.c:2827 msgid "(bad version)" msgstr "(zĊ‚a wersja)" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "nieznany kompilator (SDK?)" #: src/help.c:2942 msgid " later than 4.5" msgstr " p³Ċşniejsza niĊĵ 4.5" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "++ 1.0 lub nowsza" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr " 1.0 lub 1.5?" #: src/help.c:3075 msgid "unknown " msgstr "nieznany " #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "wersja %d.%d" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "wersja %d" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "nieznana wersja" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s dla Alphy)" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s dla VAX)" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr " (NetBSD przed 0.9)" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 lub nowsze)" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 lub nowsze)" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 lub nowsze)" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "CW" #: src/print.c:566 msgid "Week" msgstr "TydzieĊ„" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "przed poĊ‚udniem" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "po poĊ‚udniu" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "Nie mogę wykonać polecenia z pliku `%s'\n" "Linia: %ld %s" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" "Wykonano polecenie (kod wyjĊ›cia=%d) z pliku `%s'\n" "Linia: %ld %s" #: src/rc-use.c:514 msgid "Emo" msgstr "" #: src/rc-use.c:519 msgid "Int" msgstr "" #: src/rc-use.c:524 msgid "Phy" msgstr "" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "Wieczna lista dni wolnych" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "`Wewnętrzny'" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr " ; TydzieĊ„ %s" #: src/rc-use.c:2349 #, fuzzy, c-format msgid "Week %s" msgstr " ; TydzieĊ„ %s" #: src/rc-utils.c:398 src/rc-utils.c:415 #, fuzzy, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%s: podano bĊ‚Ä™dna datę -- %c%s\n" "%s\n" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "DzieĊ„ przestępny ustawiony na `%02d-%s' w pliku `%s'." #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "Linia %ld: %s" #: src/rc-utils.c:3634 src/utils.c:275 #, fuzzy, c-format msgid "%s: abort, " msgstr "" "\n" "%s: przerwij, " #: src/rc-utils.c:3642 #, fuzzy, c-format msgid "illegal variable definition in file `%s'" msgstr "" "niepoprawna definicja zniennej tekstowej w pliku `%s'\n" "Linia %ld: %s" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3651 #, fuzzy, c-format msgid "illegal variable operation in file `%s'" msgstr "" "niepoprawna operacja na zmiennej daty w pliku `%s'\n" "Linia %ld: %s" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3659 #, fuzzy, c-format msgid "variable `%c' undefined in file `%s'" msgstr "Zmienna daty `%c' niezdefiniowana w pliku `%s'." #: src/rc-utils.c:3663 #, fuzzy, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "ZĊ‚a wartoĊ›Ä‡ daty (zmienna `%c') w pliku `%s'." #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "" #: src/rc-utils.c:3696 #, fuzzy, c-format msgid "Argument `%s' of command line ignored." msgstr "Argument `%s' lini poleceĊ„ zignorowany" #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "Linia %ld zignorowana: %s" #: src/tty.c:425 #, fuzzy, c-format msgid "%s: for more, <%s> to quit..." msgstr " aby kontynuować , <%s> by zakoĊ„czyć..." #: src/tty.c:1020 #, fuzzy, c-format msgid "environment variable `%s' not found" msgstr "" "\n" "Brak zmiennej Ċ›rodowiskowej `%s'" #: src/tty.c:1027 #, fuzzy, c-format msgid "environment variable `%s' not set" msgstr "" "\n" "Zmienna Ċ›rodowiskowa `%s' nie ustawiona" #: src/tty.c:1067 #, fuzzy msgid "`termcap' file not found" msgstr "" "\n" "nie znaleziono pliku `termcap'" #: src/tty.c:1072 #, fuzzy, c-format msgid "unknown terminal type defined in `%s'" msgstr "" "\n" "Zdefiniowano nieznany typ terminala w `%s'" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" "ZĊ‚y rok do obliczenia daty Niedziel Wielkanocnych\n" "Lata muszą być w zakresie (%d...%d)" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "`%s' linia %ld: zabrakĊ‚o pamięci wirtualnej (%s=%d)" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" "zĊ‚a częĊ›c daty w pliku `%s'\n" "Linia %ld: %s" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "zĊ‚e pole miesiąca (%02d) w pliku `%s'\n" "Linia %ld: %s" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "zĊ‚e pole dnia (%02d) w pliku `%s'\n" "Linia %ld: %s" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" "Ċşle okreĊ›lona %s w pliku `%s'\n" "Linia %ld: %s" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" "niepoprawna rekursja %s w pliku `%s'\n" "Linia %ld: %s" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "nie odnaleziono pliku `%s'" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" "zĊ‚e Nte pole dnia tygodnia (%d) w pliku `%s'\n" "Linia %ld: %s" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" "brak `biaĊ‚ego' znaku po dacie w pliku `%s'\n" "Linia %ld: %s" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "nie moĊĵna zapisać do pliku `%s'\n" "Dysk caĊ‚kowicie zapeĊ‚niony!" #: src/utils.c:333 #, fuzzy, c-format msgid "sending eMail to <%s> failed" msgstr "pr³ba wysĊ‚ania listu do `%s' nie powiodĊ‚a się" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "`%s' linia %ld: " #: src/utils.c:342 #, fuzzy, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "`%s' linia %ld: (`%s') `%s%d' bez powodzenia" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "bĊ‚Ä…d czytania z pliku `%s'" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "zĊ‚y znak w pliku odpowiedzi `%s'\n" "Linia %ld: %s" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "`%s' linia %ld: (`%s') zĊ‚a wartoĊ›c rozmiaru tabeli `sizeof %s>%d'" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s') bĊ‚Ä™dny format daty `%s'" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "%s w szukanym wzorcu `%s'" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "podany bĊ‚Ä™dny wzorzec `%s' przy przeszukiwaniu" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s' linia %ld: (`%s') nieoczekiwany bĊ‚Ä…d (%d)" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 #, fuzzy msgid "internal" msgstr "Wewnętrzny" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" #: src/utils.c:1081 msgid "th" msgstr ". " #: src/utils.c:1085 msgid "st" msgstr ". " #: src/utils.c:1089 msgid "nd" msgstr ". " #: src/utils.c:1093 msgid "rd" msgstr ". " #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "bĊ‚Ä™dny dzieĊ„" #: src/utils.c:1129 msgid "Mon" msgstr "Pon" #: src/utils.c:1134 msgid "Tue" msgstr "Wto" #: src/utils.c:1139 msgid "Wed" msgstr "Ċšro" #: src/utils.c:1144 msgid "Thu" msgstr "Czw" #: src/utils.c:1149 msgid "Fri" msgstr "Pią" #: src/utils.c:1154 msgid "Sat" msgstr "Sob" #: src/utils.c:1159 msgid "Sun" msgstr "Nie" #: src/utils.c:1180 msgid "Mo" msgstr "Pn" #: src/utils.c:1185 msgid "Tu" msgstr "Wt" #: src/utils.c:1190 msgid "We" msgstr "Ċšr" #: src/utils.c:1195 msgid "Th" msgstr "Cz" #: src/utils.c:1200 msgid "Fr" msgstr "Pt" #: src/utils.c:1205 msgid "Sa" msgstr "So" #: src/utils.c:1210 msgid "Su" msgstr "Nd" #: src/utils.c:1227 msgid "Monday" msgstr "PoniedziaĊ‚ek" #: src/utils.c:1227 msgid "Tuesday" msgstr "Wtorek" #: src/utils.c:1227 msgid "Wednesday" msgstr "Ċšroda" #: src/utils.c:1227 msgid "Thursday" msgstr "Czwartek" #: src/utils.c:1228 msgid "Friday" msgstr "Piątek" #: src/utils.c:1228 msgid "Saturday" msgstr "Sobota" #: src/utils.c:1228 msgid "Sunday" msgstr "Niedziela" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "bĊ‚Ä™dny miesiąc" #: src/utils.c:1249 msgid "Jan" msgstr "Sty" #: src/utils.c:1254 msgid "Feb" msgstr "Lut" #: src/utils.c:1259 msgid "Mar" msgstr "Mar" #: src/utils.c:1264 msgid "Apr" msgstr "Kwi" #: src/utils.c:1269 msgid "May" msgstr "Maj" #: src/utils.c:1274 msgid "Jun" msgstr "Cze" #: src/utils.c:1279 msgid "Jul" msgstr "Lip" #: src/utils.c:1284 msgid "Aug" msgstr "Sie" #: src/utils.c:1289 msgid "Sep" msgstr "Wrz" #: src/utils.c:1294 msgid "Oct" msgstr "PaĊş" #: src/utils.c:1299 msgid "Nov" msgstr "Lis" #: src/utils.c:1304 msgid "Dec" msgstr "Gru" #: src/utils.c:1322 msgid "January" msgstr "StyczeĊ„" #: src/utils.c:1322 msgid "February" msgstr "Luty" #: src/utils.c:1323 msgid "March" msgstr "Marzec" #: src/utils.c:1323 msgid "April" msgstr "KwiecieĊ„" #: src/utils.c:1333 #, fuzzy msgid "May " msgstr "1 Maja" #: src/utils.c:1334 msgid "June" msgstr "Czerwiec" #: src/utils.c:1334 msgid "July" msgstr "Lipiec" #: src/utils.c:1335 msgid "August" msgstr "SierpieĊ„" #: src/utils.c:1335 msgid "September" msgstr "WrzesieĊ„" #: src/utils.c:1336 msgid "October" msgstr "PaĊşdziernik" #: src/utils.c:1336 msgid "November" msgstr "Listopad" #: src/utils.c:1336 msgid "December" msgstr "GrudzieĊ„" #: src/tcal.c:193 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "" "UĊĵycie: %s [--help | --version] | [--przes=[+|-]NUMER] [ARGUMENT...]\n" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: przerwij, " #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "argument przesunięcia `%s' jest niepoprawny" #: src/tcal.c:909 #, fuzzy, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: opcja `%s' wymaga podania argumentu" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: bĊ‚Ä…d podczas dziaĊ‚ania programu `%s'\n" #: src/txt2gcal.c:132 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "UĊĵycie: %s [--help | --version] | Plik tekstowy | -] [Date-part]\n" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "%s: brak zwykĊ‚ego pliku\n" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "%s: nie odnaleziono pliku\n" #: src/gcal2txt.c:132 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "UĊĵycie: %s [--help | --version] | Plik zasob³w | -]\n" #~ msgid "Day number with leading spaces" #~ msgstr "Numer dnia z poprzedzającymi spacjami" #~ msgid "Day number with leading zeroes and trailing suffix" #~ msgstr "Numer dnia z poprzedzającymi zerami i następującym rozszerzeniem" #~ msgid "Day number with leading spaces and trailing suffix" #~ msgstr "Numer dnia z poprzedzającymi spacjami i następującym rozszerzeniem" #~ msgid "Abbreviated month name (3 letters)" #~ msgstr "Skr³cona nazwa miesiąca (3 litery)" #~ msgid "Month number with leading zero" #~ msgstr "Numer miesiąca z poprzedzającymi zerami" #~ msgid "Month number with leading space" #~ msgstr "Numer miesiąca z poprzedzającymi spacjami" #~ msgid "Complete year number with leading zeroes" #~ msgstr "PeĊ‚ny numer roku z poprzedzającymi zerami" #~ msgid "Complete year number with leading spaces" #~ msgstr "PeĊ‚ny numer roku z poprzedzającymi spacjami" #~ msgid "Last two digits of year number with leading zero" #~ msgstr "Ostatnie dwie cyfry roku z poprzedzającym zerem" #~ msgid "Last two digits of year number with leading space" #~ msgstr "Ostatnie dwie cyfry roku z poprzedzającą spacją" #~ msgid "Complete weekday name" #~ msgstr "PeĊ‚na nazwa dnia" #~ msgid "Abbreviated weekday name (3 letters)" #~ msgstr "Skr³cona nazwa dnia (3 litery)" #~ msgid "Abbreviated weekday name (2 letters)" #~ msgstr "Skr³cona nazwa dnia (2 litery)" #~ msgid "y" #~ msgstr "r" #~ msgid "m" #~ msgstr "m" #~ msgid "w" #~ msgstr "t" #~ msgid "d" #~ msgstr "d" #~ msgid "Swiss" #~ msgstr "Szwajcarski" #~ msgid "Czech" #~ msgstr "Czeski" #~ msgid "German" #~ msgstr "Niemiecki" #~ msgid "Danish" #~ msgstr "DuĊ„ski" #~ msgid "Spanish" #~ msgstr "HiszpaĊ„ski" #~ msgid "Finnish" #~ msgstr "FiĊ„ski" #~ msgid "Dutch" #~ msgstr "Holenderski" #~ msgid "Polish" #~ msgstr "Polski" #~ msgid "Thai" #~ msgstr "Thai" #~ msgid "U.S. American" #~ msgstr "AmerykaĊ„ski" #~ msgid "Std" #~ msgstr "Std" #~ msgid "Trinity Sunday" #~ msgstr "Niedziela Ċšw. Tr³jcy" #~ msgid "Slav Missionaries Method's Day" #~ msgstr "Slav Missionaries Method's Day" #~ msgid "Ferragosto" #~ msgstr "Ferragosto" #~ msgid "Puebla's Battle" #~ msgstr "Bitwa o Pueblo" #~ msgid "Breed fusion Day" #~ msgstr "Breed fusion Day" #~ msgid "Olsok Eve" #~ msgstr "Jutro Olsok" #~ msgid "Midsummer's Day" #~ msgstr "Ċšrodek Lata" #~ msgid "Sylvester" #~ msgstr "Sylwester" #~ msgid "Walpurgis Night" #~ msgstr "Walpurgis Night" #~ msgid "" #~ " ARG = Definition of \"dvar%s`%s%s'\" separated by `%s' characters" #~ msgstr " ARG = Definicja \"dvar%s`%s%s'\" rozdzielona przez znaki `%s'" #~ msgid "" #~ " ARG = Definition of \"tvar%s`text'\" separated by `%s' characters" #~ msgstr "" #~ " ARG = Definicja \"tvar%s`tekst'\" rozdzielona przez znaki `%s'" #~ msgid " ARG = Any text you like, metacharacters are not respected" #~ msgstr " ARG = Dowolny wĊ‚asny tekst, znaki specjalne są pomijane" #~ msgid " ARG = Email address" #~ msgstr " ARG = Adres poczty eletronicznej" #~ msgid " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr " Zakres: [%s%s]%s%s[%s%s]%s" #~ msgid "" #~ "%sh|hh = Help screen; %sL = License; %sV = Version; %su = Suppress " #~ "calendar sheet" #~ msgstr "" #~ "%sh|hh = Okno pomocy; %sL = Licencja; %sV = Wersja; %su = Powstrzymaj " #~ "kartki kalendarza" #~ msgid "%si[-] = Special calendar format; " #~ msgstr "%si[-] = Specjalny format kalendarza; " #~ msgid "%sp = Simple pager; " #~ msgstr "%sp = Prosty pager; " #~ msgid "%sH yes = Use highlighting" #~ msgstr "%sH yes = Wyr³Ċĵniaj" #~ msgid "" #~ "%sb ARG = Year calendar with 1|2|3|4|6|12 blocks; %sH no = Disable " #~ "highlighting" #~ msgstr "" #~ "%sb ARG = Kalendarz lat z 1|2|3|4|6|12 blokami; %sH no = WyĊ‚Ä…cz " #~ "wyr³Ċĵnianie" #~ msgid "%sj[] = Output of consecutive day of year (Modifiers: [b n nb" #~ msgstr "%sj[] = Wynik kolejnego dnia roku (Zmieniają: [b n nb" #~ msgid "" #~ "%ss ARG = Starting day of week (ARG = 0|Today | %d|%s | %d|%s | ... | %d|" #~ "%s)" #~ msgstr "" #~ "%ss ARG = Początkowy dzieĊ„ tygodnia (ARG = 0|Dzisiaj | %d|%s | %d|%s " #~ "| ... | %d|%s)" #~ msgid "%sn|N[%s] = Display eternal holiday list (Year in range: %d...%d)" #~ msgstr "" #~ "%sn|N[%s] = WyĊ›wietl wieczną listę dni wolnych (Lata w zakresie: %d...%d)" #~ msgid "" #~ "%sc|C[] = Fixed date list of file `.%s%s'; %sf|F ARG[%sARG%s...]=Use " #~ "file ARG" #~ msgstr "" #~ "%sc|C[] = Ustalona lista dat z pliku `.%s%s'; %sf|F ARG[%sARG%s...]=UĊĵyj " #~ "plik ARG" #~ msgid "" #~ "%sc|C[] = Fixed date list of file `%s%s'; %sf|F ARG[%sARG%s...]=Use file " #~ "ARG" #~ msgstr "" #~ "%sc|C[] = Ustalona lista dat z pliku `.%s%s'; %sf|F ARG[%sARG%s...]=UĊĵyj " #~ "plik ARG" #~ msgid "" #~ "%s = Month in range: %d...%d List: %s[%s%s]%s...%s" #~ "%s[%s%s]" #~ msgstr "" #~ "%s = Miesiące w zakresie: %d...%d PokaĊĵ: %s[%s%s]%s...%s" #~ "%s[%s%s]" #~ msgid "" #~ " or: month name|%s[%s|%s|%s] Range: %s[%s%s]%s%s[%s" #~ "%s]" #~ msgstr "" #~ " lub: nazwa miesiąca|%s[%s|%s|%s] Zakres: %s[%s%s]%s" #~ "%s[%s%s]" #~ msgid "" #~ "%s = Year in range: %d...%d%*s%*s List: [%s%s]%s%s...%s[%s" #~ "%s]%s" #~ msgstr "" #~ "%s = Zakres lat: %d...%d%*s%*s PokaĊĵ: [%s%s]%s%s...%s[%s" #~ "%s]%s" #~ msgid "" #~ " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr "" #~ " Zakres: [%s%s]%s%s[%s%s]%s" #~ msgid "Compilation options:" #~ msgstr "Opcje kompilacji:" #~ msgid "Gregorian Reformation: %02d-%02d %s %0*d" #~ msgstr "Reformacja gregoriaĊ„ska: %02d-%02d %s %0*d" #~ msgid "Date format: (%s) `%s' (%s)" #~ msgstr "Format daty: (%s) `%s' (%s)" #~ msgid "or (if this fails) to bug-gnu-utils@prep.ai.mit.edu" #~ msgstr "albo (jak się nie uda) do bug-gnu-utils@prep.ai.mit.edu" #~ msgid "" #~ " +++ If you specify two digits for the year I DON'T assume %2d%s +++" #~ msgstr " +++ JeĊ›li podasz dwie cyfry dla roku NIE ZAĊOĊğĘ, Ċĵe %2d%s +++" #~ msgid " +++ `%s' is free software, enjoy =8^) +++" #~ msgstr " +++ `%s' jest oprogramowaniem darmowym, baw się =8^) +++" #~ msgid " on %s" #~ msgstr " na %s" #~ msgid " unknown date" #~ msgstr " nieznana data" #~ msgid "" #~ "%s: invalid date given -- %s\n" #~ "%s\n" #~ msgstr "" #~ "%s: podano bĊ‚Ä™dna datę -- %s\n" #~ "%s\n" #~ msgid "Abort!" #~ msgstr "Przerwij!" #~ msgid "NULL argument" #~ msgstr "Argument NULL" #~ msgid "out of space" #~ msgstr "brak miejsca na dysku" #~ msgid "too many ()" #~ msgstr "za duĊĵo ()" #~ msgid "junk on end" #~ msgstr "Ċ›mieci na koĊ„cu" #~ msgid "*+ operand could be empty" #~ msgstr "operand *+ moĊĵe być pusty" #~ msgid "nested *?+" #~ msgstr "zagnieĊĵdzone *?+" #~ msgid "unmatched []" #~ msgstr "brak nawiasu []" #~ msgid "internal urp" #~ msgstr "wewnętrzny urp" #~ msgid "?+* follows nothing" #~ msgstr "po ?+* nic nie ma" #~ msgid "trailing \\" #~ msgstr "następujący \\" #~ msgid "internal disaster" #~ msgstr "wewnętrzny krach" #~ msgid "NULL parameter" #~ msgstr "Argument NULL" #~ msgid "corrupted program" #~ msgstr "program jest uszkodzony" #~ msgid "memory corruption" #~ msgstr "bĊ‚Ä…d pamięci" #~ msgid "corrupted pointers" #~ msgstr "uszkodzone znmienne dynamiczne" #~ msgid "internal foulup" #~ msgstr "wewnętrzny bĊ‚Ä…d" #~ msgid "start `%c' " #~ msgstr "uruchom `%c' " #~ msgid "anchored " #~ msgstr "zakotwiczony " #~ msgid "must have \"%s\"" #~ msgstr "musi mieć \"%s\"" #~ msgid "corrupted opcode" #~ msgstr "bĊ‚Ä™dny kod" #~ msgid "" #~ "illegal date variable operation (%s)\n" #~ "%s\n" #~ msgstr "" #~ "niepoprawna operacja na zmiennej daty (%s)\n" #~ "%s\n" #~ msgid "" #~ "illegal text variable definition (%s)\n" #~ "%s\n" #~ msgstr "" #~ "niepoprawna definicja zniennej tekstowej (%s)\n" #~ "%s\n" gcal-4.1/po/LINGUAS0000664000000000000000000000005513041163511010613 00000000000000ca da de es fr it lt nl pl ru rw sv tr zh_CN gcal-4.1/po/tr.gmo0000664000000000000000000032065613041164032010732 00000000000000Ŝ•‰d,aĴX0v 1v">vavuvC†vAÊvE wBRw+•wLÁwKxKZxJĤxMñxD?yF„yFËy@zASzF•zFÜz=#{6a{7˜{1{7|':|Ab|E¤|Cê|A.}Ip}Hş}H~?L~*Œ~!·~FÙ~$ 4E?zMşH€HQ€Pš€Jë€K6+‚+?ځ6‚4Q‚=†‚@ĂJƒ>PƒJƒIڃK$„Jp„Eğ„D…JF…D‘…1օ1†9:†4t†<݆@ĉ†2'‡<Z‡9—‡0ч*ˆJ-ˆ<xˆMµˆ7‰N;‰?ЉBʉ. ŠN<Š.‹ŠBşŠ(ŭŠ-&‹;T‹-‹C‹#Œ&ŒKDŒJŒ?یH'dJŒ5׍! Ž4/Ž&dŽ"‹ŽŽ6ΎJ.PC:Fŝ6E3|5°Aĉ?(‘5h‘,ž‘JˑE’3\’(’6ı’/’+ “7L“7„“Eĵ“:” =”0^”(”2¸”Eë”C1•Du•Eş•C–ND–L“–Oà–B0—Ds—P¸—D ˜BN˜H‘˜KژI&™Fp™D·™Oü™MLšGššGâšJ*›Ju›MÀ›Kœ=ZœE˜œKŜœ@*Ek9ħ.ë7ž-RžJ€ž=˞- ŸJ7Ÿ0‚Ÿ=³Ÿ6ñŸC( 7l =¤ 8â 9Ħ/UĦ?…Ħ@ĊĦ0˘27˘Fj˘&ħ˘HĜ˘.!£BP£B“£XÖ£c/¤]“¤5ñ¤:'EbG¨,@ĤE^Ĥ*¤ĤEÏĤE§A[§C§Eá§7'¨@_¨: ¨-Û¨ İI)İIsݽİ;Ùİ:Ş=PŞ;ŽŞ8ÊŞ<Ğ>@Ğ@ĞMÀĞ6Ĵ;EĴĴ“Ĵ£ĴğĴÓĴêĴ ˙Ĵ ­ ­ $­ 0­=­BF­‰­BŽ­Ñ­á­(ñ­ >KZzšĦ$¨Í#ç' Ż&3Ż/ZŻ+ŠŻ ĥŻ;ÂŻ+ŝŻ*°%>°#d°ˆ°Ħ°)ĥ°à°$ŭ°+"ħ&Nħ%uħ(›ħ&Äħëħ=²"F²#i² ²!²"² ó²³³!³ 5³@³ S³^³ q³|³ ³š³­³ĵ³˳5ͳ´´ ´´ +´ 9´E´ Y´d´l´}´…´œ´Ğ´ğ´Ë´.Ú´ µµ %µ2µ :µDµMµ Vµwµ•µ­µ͵íµ ĥ'ĥBĥ]ĥsĥˆĥĦĥıĥÓĥëĥóĥ · ··#·)· 9·!C·e·ƒ· –·& ·Ç·Ĝ· à· î·ü·¸#¸)¸B¸ [¸ f¸t¸|¸ €¸¸˘¸Ĥ¸ ­¸·¸ʸä¸ıı3ıFıYıuı}ı “ıžı´ıÏıÓıÛıı úı şşş-ş AşLş^şpş€ş“şşğşÍşŜşúşğğğ-ğ4ğ<ğDğWğmğuğ~ğ“ğ¤ğ şğÄğ Ûğçğ ïğûğĵ "ĵ.ĵ 7ĵ Dĵ Oĵ ]ĵhĵoĵ‹ĵ§ĵĵĊĵ×ĵàĵ ĵŭĵ ½ ½&½7½?½ B½M½ V½a½h½w½½Ÿ½ ´½Ġ½è½÷½" 6 C4P0… ĥ ÁÍÖ ñŝż"ż1ż5żPżażfż }ż ‰ż•ż™ż´żżÛżáżçżŝżÀÀ!À 8À FÀTÀfÀxÀ ˆÀ–ÀÀ ·À ÁÀ ÎÀÛÀ9íÀ'Á8Á @ÁLÁlÁ…Á™Á ²ÁżÁĠÁäÁ ôÁ˙ÁÂÂ! & 2Â@ÂSÂYÂ`ÂoÂ~€ÂHÂÙÂ÷Â$5L[kˆžµÉŜġ Ä(ÄBÄ\ÄqÄˆÄŒÄ•Ä ĴÄşÄ%ÖÄüÄĊ#Ċ 7Ċ EĊSĊ\ĊeĊ xĊ…ĊœĊ·ĊÌĊĊ ġĊĈĈ Ĉ 'Ĉ5ĈDĈ\ĈdĈ jĈ vĈ‚Ĉ–ĈĤĈ ½Ĉ ÉĈÖĈöĈÇÇ.'ÇVÇpÇ ‚ǎǖǧǯÇÄÇÍÇċÇôÇÈÈ2!ÈTÈXÈ tÈ ÈŒÈ“È ¤ÈħÈÉÈÚÈïÈÉ ÉÉ2ÉGÉ0YÉ1ŠÉ1ĵÉ*îÉ.Ê:HÊ;ƒÊ:żÊúÊË!Ë)Ë=ËMË^ËgË%{ËĦ˸ËÓËóËöËŭË ÌÌ/ÌDÌHÌOÌWÌ fÌpÌ‰Ì‘Ì ˜Ì Ì%ĈÌìÌôÌÍ Í(Í8ÍGÍ[ÍjÍ z͈Í"ÍÀÍßÍüÍ Î!Î<ÎNÎUÎ [Î eÎqÎ ŠÎ•Î §ÎµÎĠÎôÎ Ï Ï Ï)Ï 1Ï <ÏJÏYÏ pÏ{Ï €ÏŠÏ‘ÏĦϸÏÁÏÉÏ ÏÏÙÏġÏ ( , 91Dv ħÍ Öàñ ùÑ Ñ;ÑACÑ …ѐїѨÑÂÑÜÑöÑ Ò'Ò=ÒEÒXÒ nÒzÒ~Ò‡Ò,ÒÊÒÏÒ×ÒÛÒòÒ ÓÓÓ.Ó?ÓSÓhÓpÓtÓ|Ó€Ó†ÓžÓĥÓÓäÓëÓïÓôÓĝÓ ŭÓ Ô Ô &Ô1Ô9ÔBÔYÔpÔ„Ô¤Ô ½ÔÈÔĜÔñÔĝÔ Ġ Ġ Ġ+Ġ CĠNĠ#aĠ…Ġ›Ġ˘Ġ'µĠŬĠċĠíĠüĠ ÖÖ /Ö=Ö RÖ _ÖiÖÖ ˆÖ –ÖĦÖ¸ÖÎÖ4Ö× × ×%×.?×n× u×€×‰×Ž× ”× Ħ× Ĵ×·×Ç×Ë×Ñ× ä×ï×Ĝ Ĝ Ĝ+Ĝ @ĜMĜcĜ{ĜĜĦĜ´ĜÑĜ âĜîĜŝĜÙ !Ù.Ù >Ù IÙSÙWÙ\ÙdÙlÙ ~ًْÙĦÙµÙÉÙÛÙêÙíÙñÙĝÙ˙ÙÚÚ -Ú18Ú jÚ uÚÚ‰Ú™Ú ­ÚşÚ ÔÚßÚóÚÛ ÛÛ)ÛAÛUÛfÛ|Û”ÛĴÛÁÛÔÛ ÚÛĉÛ îÛúÛÜ$5ÜZÜzÜ ‰Ü ”ܢÜĞÜÂÜ ÑÜ ŬÜçÜíÜġÜ Ŭ ŬŬ ŬAŬ^ŬeŬiŬ/rŬ9˘Ŭ-ÜŬ ŜŜ&Ŝ.Ŝ5Ŝ9ŜAŜQŜbŜwŜŒŜE‘Ŝ×ŜïŜß!ß9ßVßrߌßĤߪßß·ß ½ßÉßßàßïßà àà0à8à GàUàdà sà}àŽà¤à¨àÁàĈàÖà ġàá á á á*á3á:áCá Lá(Wá€áá·áÇáÚáòá ââ +â7âKâbâhâqâ†âŽâžâ­âĵâ ÌâĜâéâ #5Ib r}ž ıÓÛ÷ äää(ä:äPä0gä˜äħä´ä½ä×äġäûä ċ ċ$ċ:ċQċgċkċ tċ ~ċ‹ċšċ ĥċÄċÌċċ ßċéċŭċĉ %ĉ2ĉ EĉRĉ dĉ oĉ {ĉ ‰ĉ —ĉ£ĉżĉÎĉ ëĉ÷ĉ çç (ç 5çCçWç lçxçç–çŸç ´çÂçÑç áçîç öçè è( èIèfèlè |è ˆè•èè¸èËèÛèìèüè éé,é<éKé [é eéséˆé éıéÉéÜéîé÷éêê*ê;êLê ]ê kêyêŠêŸê´êÄêĠêċêĝêë+ë 4ëBë0Xë‰ëë ħëżëÂëÈëÙëġë ììì+ì 3ì>ì]ì mì yìƒì Šì •ì ˘ìì"Áì!äìíí/íDíXíkíƒí”í§ííÔíéíîî+îAîUîhîxî‹îœîĴîÀîÙîöî ŭîï ïï 6ïDïGï [ïfïwï“ï²ïÑïċïùï:#=^DœCá%ñ)ñ 2ñ<ñKñbñiñqñƒñ ‰ñ•ñ›ñĴñ ĵñÉñŬñ óñ5ŝñ)4ò^ò}ò€òžò˘òŞò³òğò ÂòÏòèòïò óó%ó,ó4ó;óCó _óió…óšó ­óğóÑóĉóüóô,ôCô]ô"tô—ô­ôôĜôìôġġ,ġAġXġpġ„ġ›ġ·ġÎġĉġöö-öDöYöuöŽö§ööÛööö ÷ ÷5÷P÷k÷ˆ÷£÷ğ÷Ï÷â÷ĝ÷ĝ(ĝDĝ\ĝrĝ„ĝ=Œĝ0Êĝ8ûĝK4ù7€ù.¸ùçù(ĝù !ú ,ú:ú BúLú \újú €ú ú™ú˘úĞú­úÂúÛúġúûû&û)û -û 7ûBûGû OûYûkû zû †û’û §û³ûĈû×ûàûçûéûñû ÷ûü ü?ü_üxüC—ü Ûü çüñüŭŭŭŭ7#ŭ#[ŭAŭ*Áŭ/ìŭŝ 3ŝ>ŝ%Wŝ.}ŝĴŝŻŝ Âŝ5Ïŝ˙ ˙˙#&˙!J˙l˙.s˙˘˙ĥ˙Ì˙˙4Ù˙#"2(U'~8Ĥ+ß 1 I3W5‹%Á4çNFk²&ÁHè1>4svy ‘ ŸĴ ÉÖòġŭEFO`%xž$ Ó Ŝïì Ü'é$E7B}<À:ŭ+8VdVğT Cg RĞ Mŝ LL K™ Iċ >/ Gn Cĥ >ú 29 9l 1Ĥ ?Ĝ & E? L… KÒ ?O^OMŝ1L)~#¨OÌ1=NHŒRĠL(Pu_Ĉ[&O‚.Ò.A08r0Ğ:Ü.bFİSĞh˙QhGşB7ER}B.-B9p8ŞVH:7ƒEğ5-7&eOŒCÜB =cPĦ;òH.5wF­,ôG!+i0•IĈ.K?"‹KÇP=dA˘,äK0]!ŽE°-ö+$ -P <~ Eğ +!M-!D{!AÀ!;"D>"@ƒ"=Ä"C#EF#5Œ#GÂ#? $;J$1†$7¸$;$(,%>U%@”%HĠ%X&%w&D&,â&0'=@';~':ş'Bġ'@8(Hy(FÂ(C ):M)<ˆ)KĊ)<*BN*>‘*C*H+;]+9™+IÓ+G,Ge,H­,Kö,KB-JŽ-IÙ-<#.D`.P.=ö.M4/H‚/KË/<05T0RŠ0JŬ04(1T]1?²1<ò1?/2?o23Ż25273DQ33–3JÊ3J4<`4B4Eà4&5FF555B5B6[I6i6c78s77Ĵ7Aä7F&8/m8H8?ĉ8,&9ES9N™9Iè9M2:)€:AŞ:5ì:?";2b;•;@²;:ó;!.<4P<B…<>È<F=LN=R›=Qî=\@>U><ó>40?e?y?‹?¨?Ċ?á?˙?@ @ )@ 6@C@<L@‰@7Ž@ Ĉ@Ô@+ċ@A A :A DA+RA ~AŸA¨A#°AÔA$êA-B9=B+wB/£B ÓB<ŜB8CTC*nC)™CCàC/üC,D+ID1uD-§D,ĠD&E()EREIoE"ıE)ÜE F''F#OFsF„F™F­FĈFĠFġF"G'G%9G_G&rG™GŞGşG3ĵGGôGĝG H H ,H7H RH `HkHH‡HHµHÄH ĜH*ĉH II1I@I HIUI^I%gIIĞIÂIáIJ J@J\JvJ‹JŸJ·JÎJçJŝJKK *K7K;KAK VK#cK‡K¤KıK(ÂKëK LL!L3LGLaLgL€L˜L¨LşLÂLĈLÖLîLóL üLMM9MSMiM†MšMM ÊMÔM ïMúMN,N 0N:NBN _N lNyN‚N•N ¨NĥNÇNĜNçNùN OO0O@OXOjOrO{OŠO‘O™OĦO·OÑOÙOâOPP /P9PWPfPnP}P –P£P´P½PÍP ŜP ìPĝPQQ9QRQYQ sQQ ’QŸQ ·Q ÄQÎQâQèQ ëQ÷Q ˙Q RR#R@RPRfR†R™R¨RRÒR ĉRóR:S<>S {S†S•S!žSÀSSêSüS TT*T>TCTXT gTrT vT—T¨TÈTÎTÓTéT üTU U 'U2U7UJU[UoU€U ˜U ˘UŻUżUÏUTáU 6VBVJV YV zV›VĥV ÓVáV÷V W W 'W 4WAWSWYWiW|W‘W—W WħWÁWWJÜW'XEXaXrXƒX–XĤX·XÑXáXŝXY"Y=YYYwY’Y­YĈYáYċYíYZZ 9ZZZ yZƒZ —Z Z³ZşZÂZÖZċZ ŭZ[6[M[f[y[”[˜[­[[[[ĝ[\\!\0\B\ [\ g\u\)”\\Â\-Ŭ\ ]%]5]D]K]_]g]|]…]ž]­] ] È])Ó]ŭ]^ ^*^=^F^X^g^^’^§^^È^Ï^í^ŭ^6 _3D_2x_6Ğ_8â_H`Id`?`î`a a a8aNa caqa%‰aŻaÉaéab bb)boPobo xo ƒoŽo¤o³oÉoáoöopp7p HpTpdpup‡p—p §p ħpğpżp ĈpÔpÜpġpq qq:qVqmq}q€q„q ‹q •q£qşq Öq.äq rr-r1rFr[rjr†rr£rµr½rÒrérs s's9sQshss”sšsİsħsşsĠs!ñst1t FtTtctkt „t Žt ›ttĞt³tÉt Ît Ûtĉtuu%u)u00u4au+–uÂu,Ġu v vvv v+vEv]vvv`|vŬvòv w*w"Hw!kww­wÌwwÔwŬwwówúwx!x1x:x Kxlx tx‚x—xİx ĵxĈxàxöxúxyy'y ByMyQy bypyyŠy’y ›y §y*²y!Ŭy˙yz,z?zYzxz ‰z –zĦzµzÓz Ùzçzŭz{{4{ F{T{c{}{{Ħ{µ{Ĉ{Ú{ö{ || 7|E| b|o|~|†|¤|ĥ|Ç|Î|×||}&}F}_} b}n}ˆ}¨}}Á} Ò}Ŭ}ġ} ~!~ %~ /~<~ L~"X~ {~‰~‘~•~~Ĵ~ż~Ö~ë~ŝ~$ 7 B O]l{— § ÈÔ ï ŭ € €"€7€ T€_€|€…€Ž€Ĥ€ı€̀ Ŭ€ë€ ò€ *#Ngp €Œž݁Ċف쁂‚$‚9‚M‚^‚p‚ ‚‹‚›‚µ‚ӂƒ&ƒ/ƒAƒWƒjƒ~ƒ‘ƒƒĥƒȃڃôƒ„„0„C„U„n„Š„“„Ĥ„6À„÷„…&…:…=…C…U…q……”…š…İ…²…ş…مé… ĝ…† †† (†2† C†d†ƒ†™†¨†ğ†͆Ŝ†ô†‡‡)‡=‡P‡g‡x‡Œ‡ ‡²‡ ‡ч⇠ñ‡˙‡ˆ $ˆEˆ LˆWˆ`ˆuˆ “ˆ ˆ£ˆ ¸ˆˆ҈(‰>‰N‰h‰&|‰L£‰M‰N>ŠŠ ‘Š ›Š¨ŠşŠъĜŠàŠ÷ŠŭŠ ‹‹)‹9‹I‹Z‹ o‹C}‹2Á‹"ô‹ŒŒ9Œ=ŒCŒLŒRŒ [ŒiŒŒˆŒŸŒŒŒ ʌ׌ŜŒĉŒ/Jg{—²΍ë Ž(ŽHŽ(eŽŽŽގĈŽáŽûŽ4Mh…£½!ڏü7Wt­!Ȑê ‘(‘"E‘ h‘‰‘˘‘ż‘ ڑ û‘#’!@’b’€’š’³’ϒì’" “.“L“h““?‰“:ɓC”OH”>˜”3ה •6%• \•h•y• •‹•Ÿ•°•ɕ ٕĉ•ï•÷•ù•–2–L–]–l–}–– †– ‘–Ÿ–– –¸– ͖ٖê–ú–— —8—M— S—]— _—j— p—${— —ż—Ŝ—÷—D˜ [˜e˜u˜Ž˜•˜˜Ĥ˜Cޘ+î˜T™3o™/£™әê™ñ™"š&3šZš]šzšA‰š˚ Κۚ%š&› =›4J››™›°›´›9½›)÷›'!œ1Iœ0{œHĴœ8ġœ.C= AŽD)ž@?žQ€ž;ҞŸ1ŸYPŸŞŸ7ŸĉŸéŸìŸ   02  c q ‘  – ˘ :İ  ä  Ħ-!ĦOĦ2bĦ •Ħ  ĦEŜjÍf‡÷gG›Aj)’ϐ‚@0hŬô)•ÂA=V!Ävöž&İŠq)Z½”* ïà OÛ .…jş'Ğµ$6Ž^úŸ¨÷Ëĉüí?œ‡mq8œè§l\êò{ġu‰şġc×7ŞDR dĝÂúrwÛ.Q£Ŝ, Ĝ|*^^S™­ÓbĜN¤uz_tup%F}ı|<‡^B0¤|ıtJ ï yMgYĊ­"ˆn]xKqBmÀ\ü#R= dŞE ô?_áĠ~ĞÑn8}4F‘`Jžµî§ÓCy‘bĥ\eeİáäW3š½£–¨Ï.áCƒLW~ÑJÂâüĠYE/iÔ­°näW‹ż_€˜6ħn ËdrV…Ĉü+֞³`!É]²*Ú#0+K{Gc x0AŻYċu7üoQÏ#“sU!B257'ÓŬT RKY‹hO³9ŸÙδ5ŭçŒ6JŭË(è1I2t!:ŬÇkI—ô‚J_É;„ĵ-_{éĴQ'ñfy:h· EŜ”a>Y|e@ƒŝû†˘X `ÖV ħċï}ÌÁġàĉÛİ€YW×ÇF$3Z`ŒoP‰ ìršıĴXŻgo›GEHˆúh‰@”ŸÇ˜9ìÜM(ÊŽÒD_ßœ> ‡1xLT™ÛÉ8²mÊñ[¨ûeŝ™ë;`gû.&’5ö3AíD š•-żê"<„3|âd OCĈ2RŻƒâk[žrdŝ†9Š@˘[ë;È\İ]ïĠZfŻ6:òÛí!/ĤĥZÍôĝùÚöĥ1‚„2ÒHäʎÁéZmJèdĊbÔĊ)†T/4=ñÀS²ĴRÔD+#‰}ÜL2¸Îßy%NФ·² ĝ›˜Ѹ^I˜ŝÙs4 Qe—ppGĵ^ i€ġŜ,<ĵAƒÁjhT MÚ²t'H##z"vZˆ ÙÚğ­˙˘ aĥ´Nϋú‡–¸½Ĵ-X×ÊŻKÔ"Šaêcq…h×Ís´ÄÜŭaN‹ÄíÇ„)FĴT¤(÷î+4ħyˆ“Ŭ “+Ħ˙KcI/ö1ˆ>ĝµlÔìUĜĉ5H‡w…p>ó×°Áħ4ıSœÙ/l†>X:³ğsO:=î;ŝ Cĉ³PóPÌó“Bf;f7Ìö³Š.)}7MVŞPñNîĠj$ġş[,Ò1ÙŞUÀ1섟6Š¨z€oòç°ĥ•r?ž˘LbcT[‘  Dwu÷6ìĈ-ÇkŒżĦÚ qƒŬOêÎuòKƒ’<ĵßIckëQ*ûz–gŒmÄnĤA”0:óz`—Grjà8–wVú~ÖváçO  ŜPšI;Ğ÷È0MÀżĞùĤ&tÍÈG”€x&F½é°œ·ù?ÀŭŞL>í{ÌkĈ¤ó&v9òû-¨µë żÑ›59sw’Ÿ$Pä3<ÓĊVXğĦ/˙bUw"çF@WğkosÈ5"şÄ,€Í£iĜ£LñĠ$µé(mn?Öé‰%ɧSl§Nâv*Áİ9oıX„Ĥ}x–çaôŽ §% +lH·ĦSÈÒ3\Œ]¸ĝâ´iÎĉß‘W‚—£eHî Ñ 7[8à…´C˙2ù‰< ™lUïD’.…~ĵi菽Éŭğ@ê‹ċ|şRÜ‚BÓ&Ĝ$Ĥ\˜àvbUÜëߛ?‘!]ÏĊQ¸Ž~i †‚­˘ĈË x™E](SÎ'p%ċ{·ËĦ-~z(,ˆt='•†yù•Bá ˙š%°gÒa—äMÊċpħ4q=*“CÖ{8èfÌ, %s: abort, %s: program aborted by signal %d %s: warning, %s. `%s' line %ld: %-3s = %d...%d Length of a single axis %-3s = %d...%d Total number of lines %-3s = february Respect at `28-FEBRUARY' %-3s = march Respect at `01-MARCH' = %s Backwards = %s List yesterday until starting day of month = %s List yesterday until starting day of week = %s List yesterday until starting day of year N = 0 %s which isn't located in 1st week N = 0 1st week / last week of previous year N = 1...4 1st...4th weekday %s (always) N = 1...51 %s of 1st...51st week (always) N = 1...51 1st...51st weekday %s (always) N = 1...52 1st...52nd week (always) N = 5 5th weekday %s (sometimes) N = 52|53 %s of 52|53rd week (sometimes) N = 52|53 52|53rd weekday %s (sometimes) N = 53 53rd week (sometimes) N = 9 Last weekday %s N = 99 %s of last week N = 99 Last week N = 99 Last weekday %s Actual: `%s' = Manage `29-FEBRUARY' in non-leap years = Set height of the Moon phase text graphics = Set width of the biorhythm text graphics or: month name | %s | %s%s | %s%s | %s%s [MOD] = %s List tomorrow until ending day of month [MOD] = %s List tomorrow until ending day of week [MOD] = %s List tomorrow until ending day of year %s%cwN[%s], month name[%s], weekday name[N] or %s MOD = %s Forwards %-*s = Holidays in %s %-3s = Heading/Title text used for fixed date list %c = Exclusion of all %s Air pressure in Millibar (actual: %.3f) Air temperature in degrees Celsius (actual: %+.3f) E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2 E.g. %sH \x2%s\xAE Use hex values 2 and AE for sequence 1 E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca' E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to `bar' E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4 E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of List: %s[%s%s]%s...%s%s[%s%s] List: [%s%s]%s%s...%s[%s%s]%s Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s expressions separated by `%s' characters is a LOWER-CASE-LETTER, it means a non-exclusion! marked by # have an incomplete recording of holidays the preceding special characters in an individual date format, they are used by the character set used in Germany which are connected by `%s' characters. Countries/territories, which has a STYLE format instruction component, and that, how # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday # %c%c[[%s|%s]N] = Single day N relative to today's date # %c?[%s|%s]N%s = Single N'th weekday relative to date variable # %c?[[%s|%s]N] = Single day N relative to date variable # %cdN = Single absolute day N # %cdN%s = Single N'th weekday %s # %cwN%s = Single weekday %s of N'th week # %s%s = Single day %s of month %s # %s%sN = Single N'th weekday %s of month %s # A = Display using alternative list format # E = Include legal days only # J = Suppress text part of fixed dates # NMOD = Single day N relative to today # Nd = Single absolute day N # Nw = Complete week N # Q = Suppress leading blank line of fixed dates list # U = Suppress date part of fixed dates # Z = Display dates, for which fixed dates doesn't exist # a = Display origin of fixed date # d = Include actual date if list of periods is generated # e = Include legal days and memorial days # g[MOD] = Group fixed dates by day using text MOD # k = Display week number # l = Generate list of periods instead of a single period # m|M[MOD] = List complete month # o = Omit repeating date part of fixed dates # t|T = List tomorrow # w|W[MOD] = List complete week # x = Exclude title of fixed date list # y|Y[MOD] = List complete year # z = Display consecutive number of fixed date 1. Representation of text 2. Respected period = "TVAR[%s|%c%s]COMMAND" definitions separated by `%s' characters = abort Like `all' and abort if file name can't be handled = all Like `handled' and `unhandled' together = handled Like `internal' and file names which are handled = no Standard week numbers = unhandled Like `internal' and file names which are unhandled Actual respected period: %02d-%02d %s %0*d Actual: (%s) `%s' (%s) Change base time of astronomical functions Change base year of calendar Change cycle-ending time Change cycle-timestep Create response file for the `%cFILE' option Create shell script which contains the arguments of command line Define additional resource file line Define global date variable(s) "DVAR->a...d|f...s|u...|z" Define global text variable(s) "TVAR->%ca...%cz" Define translatable country specific special character pairs Determine type of week numbers (actual: %s) Direct output through external `%s' pager Direct output through simple internal pager Disable highlighting of text, holiday resp., actual day Display eternal holiday list (Year in range: %d...%d) Display extended help text and quit program Display help text and quit program Display only those fixed dates, whose date is not excluded by %s Display only those fixed dates, whose text is matched by %s Display software license and quit program Display some debug information Display version information and quit program Exclude title of eternal holiday list Execute `%c%c[%s]' shell commands Export local date variables from file to file Export local text variables from file to file Forces highlighting sequences if output is redirected/piped Ignore case distinctions if `%s' option is given Implies period: Today Limit rise/set times of Sun to the day Modify format of year calendar Provide calendar sheet with week numbers Provide eternal holiday list with BahĦ'i calendar holidays Provide eternal holiday list with BahĦ'i calendar months Provide eternal holiday list with Celtic calendar holidays Provide eternal holiday list with Chinese calendar holidays Provide eternal holiday list with Chinese calendar months Provide eternal holiday list with Chinese flexible calendar holidays Provide eternal holiday list with Chinese flexible calendar months Provide eternal holiday list with Christian Western calendar holidays Provide eternal holiday list with Coptic calendar months Provide eternal holiday list with Ethiopic calendar months Provide eternal holiday list with French Revolutionary calendar months Provide eternal holiday list with Hebrew calendar holidays Provide eternal holiday list with Hebrew calendar months Provide eternal holiday list with Indian civil-calendar months Provide eternal holiday list with Islamic civil-calendar holidays Provide eternal holiday list with Islamic civil-calendar months Provide eternal holiday list with Japanese calendar holidays Provide eternal holiday list with Japanese calendar months Provide eternal holiday list with Japanese flexible calendar holidays Provide eternal holiday list with Japanese flexible calendar months Provide eternal holiday list with Old-Armenic calendar months Provide eternal holiday list with Old-Egyptic calendar months Provide eternal holiday list with Orthodox new-calendar holidays Provide eternal holiday list with Orthodox old-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar months Provide eternal holiday list with astronomical data Provide eternal holiday list with country specific holidays Provide eternal holiday list with multicultural New Year holidays Provide eternal holiday list with zodiacal marker data Represent astronomical times and data with utmost precision Revert the sense of matching of the `%s' option Send output via `%s' program to user Set EXIT status of program to %d on `%s' etc. Set base data of Earth's atmosphere Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday) Set order of date elements using the %s format text Set period of Gregorian Reformation Set reference value for rise/set time respectively shadow length Set starting day of week (actual: %s) Suppress leading blank line of eternal holiday list Suppress output of calendar sheet explicitly Use alternative file(s) instead of standard resource file Use consecutive day of year in calendar sheet Use consecutive day of year in eternal holiday list Use consecutive day of year in fixed date list Use leap year rule of Eastern Orthodox churches Use special format for calendar sheet Use standard resource file `%s%s' for fixed date list Use standard resource file `.%s%s' for fixed date list and "TVAR[%s|%c%s]COMMAND" assignments respectively, change cycle-starting time %-3s = Single file or list of files connected by `%s' characters [MOD] = %s Descending sort order [MOD] = One or more of the following modifiers which are marked by # %-*d%*s = Set period to: %02d-%02d %s %0*d %-3s = "DVAR%s%s%s" definitions separated by `%s' characters %-3s = "TVAR%sTEXT" definitions separated by `%s' characters %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %s%c%s%s%s%s%s%s Set period explicitly %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d) %-3s = Air pressure and temperature separated by `%s' character %-3s = Angular value respectively factor in range: %+.1f...%+.1f %-3s = Any possible resource file line %-3s = Any text respectively "regular expression" you like %-3s = Define individual format. Respected format elements are: %-3s = File name of the shell script %-3s = Highlighting sequence pairs separated by `%s' characters %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]' %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d) %-3s = One or more of the following characters. If character %-3s = Single country resp., territory code or a list of these, %-3s = Store arguments of command line in file %s %-3s = UPPER-CASE-LETTER""LOWER-CASE-LETTER... definitions %-3s = [%s|%s]YYYY Year offset value (actual: %d) %-3s = yes ISO-8601:1988 week numbers %-6s = Format is: `%s' (%s) C = Display those dates, for which fixed dates doesn't exist, too F = Display those dates, for which fixed dates doesn't exist, too N = Legal days only [MOD] = b Use both date notations (day of month+year) %sL, %s Display software license and quit program %sV, %s Display version information and quit program %sh, %s Display this help text and quit program %shh, %s Display extended help text and quit program %sp, %s Direct output through external `%s' pager %sp, %s Direct output through simple internal pager [%-3s] = Email address, otherwise eMail is send to user `%s' [%-3s] = internal Information if program internal maximums are reached [MOD] = - Use standard format for calendar sheet [MOD] = b Use both date notations (day of month+year) (%.4s for Alpha) (%.4s for VAX) (BSD/386 1.1 or later) (FreeBSD 2.0 or later) (NetBSD 1.2 or later) (NetBSD before 0.9) 1.0 or 1.5? 4.0 or 4.02 ; Week %s = %+4d day = %+4d days `HERE' c = Display only those dates, for which fixed dates exists day f = Display only those dates, for which fixed dates exists later than 4.5 later than 5.0 n = Legal days and memorial days on # Day number (must be defined)# Month name# Month number# Weekday name (may be defined)# Year number (must be defined)%cDATE%cFILE%s = Month in range: %d...%d%s in search pattern `%s'%s%*s = Year in range: %d...%d%s%s contains %d maximum entries now!%s%s: for more, <%s> to quit...%s: The Gregorian calendar program (GNU cal) %s%s: Use `%s %s' with one of these arguments%s: abort, %s: command in environment variable `%s' found -- %s %s %s %s: error during program execution of `%s' %s: file not found %s: invalid date given -- %c%s %s %s %s: invalid date given -- %s %s %s %s: invalid option -- %s%s: no regular file %s: option `%s' doesn't allow an argument%s: option `%s' is ambiguous%s: option `%s' requires an argument%s: option `--%s' doesn't allow an argument%s: option `--%s' requires an argument%s: option requires an argument -- %s%s: option with ambiguous argument -- %s%s: option with invalid argument -- %s%s: unrecognized option `%s'%s: warning, eMail with empty message body not sent to <%s>. %s:%*sThe year %0*d is A leap year%s:%*sThe year %0*d is NO leap year%s:%*sThe year %d is A leap year%s:%*sThe year %d is NO leap year(`%s') date format `%s' is invalid(bad version)++ 1.0 or later++ 3.0 or later+++ FIXED DATES +++1st Advent1st Sunday in Lent2nd Advent2nd Sunday in Lent3rd Advent3rd Sunday in Lent4th Advent4th Sunday in Lent5.1 or earlier7-5-3 Festival:ALIGNMENT group (exactly one member must be defined):AMOARGAborigines DayAdelaide Cup DayAdmission DayAfghanistanAga Khan's BirthdayAlaska DayAlbaniaAleksis Kivi DayAlgeriaAlice-Springs Show DayAll Fool's DayAll Saints' DayAll Saints' EveAll Souls' DayAll format elements marked by # may optionallyAlphabet DayAmerican SamoaAmericas DayAndorraAngam DayAngola #AnguillaAnniversary of Amir's SuccessionAnniversary of Armed StruggleAnniversary of AucklandAnniversary of Canterbury NorthAnniversary of Canterbury SouthAnniversary of Chatham IslandsAnniversary of Green MarchAnniversary of Hawkes' BayAnniversary of MarlboroughAnniversary of NelsonAnniversary of OtagoAnniversary of SouthlandAnniversary of TaranakiAnniversary of WellingtonAnniversary of WestlandAnnularAntigua and BarbudaAntillian DayAnzac DayAprAprilArab League DayArbor DayArchbishop Makarios' Memorial DayArchbishop Makarios' Name-DayArengo AnniversaryArgentinaArgument `%s' of command line ignored.Armed Forces DayArmeniaArmistice DayArmy Coup DayArrival of the SwissArtigas' BirthdayArubaAscension of Abdu'l-BahaAscension of Baha'u'llahAsh MondayAsh WednesdayAshura'AstAsuncion DayAtaturk Memorial DayAugAugustAustraliaAustralia/CanberraAustralia/New South WalesAustralia/Northern TerritoryAustralia/QueenslandAustralia/Southern AustraliaAustralia/TasmaniaAustralia/VictoriaAustralia/Western AustraliaAustriaAuthority's Power DayAzerbaijanBa'ath Revolution DayBackslash ('%c') characterBahBahamasBahrainBahĦ'i New Year's DayBangladesh #Bank HolidayBarbadosBaron Bliss DayBasque National DayBataan DayBattle of AngamosBattle of BoyacĦBattle of BoyneBattle of CaraboboBattle of IquiqueBattle of Las PiedrasBattle of N¤felsBattle of PueblaBeginning of Financial YearBeginning of SummerBelarusBelgiumBelgrade's DayBelizeBeltaneBenin #Benito JuĦrez DayBennington Battle DayBermudaBhutan #Birth of Baha'u'llahBirth of the BabBlessing of the WaterBloomsdayBodhidharma's BirthdayBoganda DayBoliviaBonaire DayBoqueron Battle DayBosnia-HerzegovinaBosses' DayBotswanaBotswana DayBounty DayBouvet IslandBoxing DayBrazilBringing Home the Herds DayBringing in the Harvest DayBritish Virgin IslandsBruneiBuddha's BirthdayBulgariaBunker Hill DayBurkina FasoBurning of Jan HusBurns NightBurundi #C. Mapinduzi DayCOMMANDCWCambodia #CameroonCamoes DayCanadaCanada/AlbertaCanada/British ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland and LabradorCanada/Nova ScotiaCanada/OntarioCanada/Prince Edward IslandCanada/QuİbecCanada/SaskatchewanCanada/YukonCanberra DayCannot calculate lunisolar calendar for %d correctlyCannot execute command in file `%s' Line: %ld %sCape VerdeCaricom DayCarnivalCasimir Pulaski's BirthdayCassinga DayCatherine Show DayCayenne FestivalCayman IslandsCelCentral African Republic #Cesar Chavez DayChadCharacter replacement:Charter DayChen/DragonChiChiang Kai-shek's BirthdayChildren's DayChildren's White SundayChileChinaChinese New Year's DayChinese New Year's EveChou/OxChrChrist's Ascension DayChristmas DayChristmas EveChristmas IslandsChrysanthenum DayCitizenship DayCivic HolidayCocos Islands (Keeling)ColombiaColon DayColorado DayColumbus DayComing of Age DayCommand executed (exit code=%d) in file `%s' Line %ld: %sCommonwealth DayComorosCompact DayCompiled with %s%s for %s%s%s%sConfederal Agreement DayConfucius' BirthdayConstitution AnniversaryCook IslandsCoptic New Year's DayCoronation DayCosmonauts' DayCosta RicaCreatedCroatiaCross Raising DayCubaCulture DayCup Match DayCustom Chief's DayCycleCyprusCzech RepublicC´te d'IvoireDDarwin Show DayDate format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Day after Mid-Autumn FestivalDay after Tomb-Sweeping DayDay of AndaluciaDay of CataloniaDay of Czech StatehoodDay of GaliciaDay of GoodwillDay of Prayer and RepentanceDay of ReconciliationDay of Students RevoltDay of the CovenantDay of the Free LaosDeath of H. ChristopheDeath of J. DessalinesDeath of President AbdallahDeath of President CheikhDeath of President SoilihDeath of Qaid-i-AzamDeath of T. LouvertureDecDecemberDeclaration of the BabDefenders DayDefenders of Motherland DayDemocratic People's Republic of KoreaDemocratic Republic of Congo #DenmarkDia de los MaestrosDia del PadreDiscovery DayDjiboutiDominicaDominican RepublicDouble-9 DayDownfall of the DergueDr. Sun Yat-sen's BirthdayDragon Boat FestivalDry Season CelebrationDuarte's BirthdayDynasty DayE. Hostos' BirthdayEGOEaster MondayEaster SundayEaster TuesdayEconomic Liberation DayEcuadorEgyptEid-al-AdhaEid-al-FitrEid-i-Milad-un-NabiEight Hours DayEindhoven's LiberationEl SalvadorElection DayElections for National AssemblyEmail bug reports to <%s>EmoEmperor's BirthdayEnd of highlighting sequence/marking characterEpiphany/Three King's DayEquatorial GuineaEquinox DayEritreaErrol Barrow DayEstoniaEternal holiday listEthiopiaEthiopic New Year's DayEvacuation DayEve of EpiphanyExpedition of the 33FAO DayFORMAT group (exactly one member must be defined):FRRFalkland Islands (Malvinas)Family DayFarmers' DayFaroesFather Leval DayFather's DayFeast of Corpus ChristiFeast of FortuneFeast of Heart JesusFeast of Our TheotokosFebFebruaryFederated States of MicronesiaFestival of LanternsFestival of SadehField contents is converted to capitalized wordsField contents is converted to lower-case lettersField contents is converted to upper-case lettersField contents is cut after position WIDTHField contents is not cut after position WIDTHField contents placed at the left margin using width WIDTHField contents placed at the right margin using width WIDTHField contents placed in centered manner using width WIDTHField has the width N (%d...%d)Fiji #FinlandFirst Day of RidvanFisherman's DayFixed date list:Flag DayFlemish Culture DayFormer Yugoslav Republic of MacedoniaFoundation of NPLA DayFounding of People's PartyFounding of the Communist PartyFrFranceFrench Culture DayFrench GuianaFrench PolynesiaFrench RevolutionaryFriFridayFridaysFriendship DayFull MoonGNU gcal home page: <%s>Gabon #GambiaGarifuna DayGeneral San Martin's AnniversaryGeneral help using GNU software: <%s>GeorgiaGerman Unity DayGermanyGermany/Baden-WĵrttembergGermany/BavariaGermany/BerlinGermany/BrandenburgGermany/BremenGermany/HamburgGermany/HesseGermany/Lower SaxonyGermany/Mecklenburg-West PomeraniaGermany/North Rhine-WestphaliaGermany/Rhineland PalatinateGermany/SaxonyGermany/Saxony-AnhaltGermany/Schleswig-HolsteinGermany/ThuringiaGhadirGhanaGibraltarGood FridayGood Saturday/Easter EveGospel DayGrandparents' DayGreat BritainGreat Britain/England and WalesGreat Britain/Northern IrelandGreat Britain/ScotlandGreeceGreenery DayGreenlandGrenadaGrotto DayGroundhog DayGuacanaste DayGuadalupe Virgin's DayGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Gustavus Adolphus' DayGuyana #Hai/PigHaitiHalloweenHannukah/Festival of LightsHealth and Sport's DayHeard and Mc Donald IslandsHebHeritage DayHeroes DayHighlighting group (all members must be defined):Ho Chi Minh's BirthdayHobart Show DayHoly Innocent's DayHoly TrinityHoly WednesdayHondurasHong KongHuman Rights DayHungaryHuravee DayHurricane Supplication DayHurricane Thanksgiving DayIcelandIf you use this software, you agree without any exception to thisImamat DayImbolgIndependence DayIndependence Movement DayIndependence ProclamationIndependence of CartagenaIndependence of CuencaIndependence of GuayaquilIndependence of QuitoIndia #Indian Arrival DayIndian New Year's DayIndonesia #IntInternalInternal Autonomy DayInvalid argument in command line given -- %sIraqIrelandIslIslamic New Year's DayIslamic Republic of IranIsraelItalyJ. Barbosa's BirthdayJ. Chilembwe DayJ. Diego's BirthdayJ. Robert's BirthdayJamaicaJanJanuaryJapJapanJapanese New Year's DayJapanese New Year's EveJefferson Davis' BirthdayJesus' CircumcisionJordanJulJulyJunJuneJune HolidayKamarampaka DayKartini DayKazakhstanKenya #Kiev DayKim Il-Sung's BirthdayKim Jong-Il's BirthdayKing Kamehameha DayKing Rama I Memorial Day/ChakriKing Rama V Memorial DayKiribati #KnabenschiessenKonstantin and MethodiusKuwaitKwanzaaKyrgyzstanL. Rivera's BirthdayLabour DayLabour Thanksgiving DayLag B'OmerLao Tze's BirthdayLaos People's Democratic Republic #Lapp National HolidayLatviaLaunceston Cup DayLeap-day set to `%02d-%s' in file `%s'.LebanonLesothoLiberation DayLiberiaLiberty DayLibyan Arab Jamahiriya (Libya)LiechtensteinLine %ld ignored: %sLine %ld: %sLithuaniaLoss of Muslim NationLughnasaLunar EclipseLuxembourgLuxembourg City KermisLyndon B. Johnson DayMMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.MacauMadagascar #Madaraka DayMahatma Gandhi's BirthdayMail from \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaldivesMaliMaltaMalvinas DayManila DayMao/RabbitMaputo City DayMarMarchMarien Ngouabi DayMarine DayMarshall IslandsMartin L. King's DayMartinimasMartiniqueMartyrdom of the BabMartyrs' DayMary - Blessed VirginMary's Annunciation DayMary's Ascension DayMary's CandlemasMary's ExpectationMary's Immaculate ConceptionMary's MaternityMary's NameMary's NativityMary's SacrificeMary's VisitationMaryland DayMaundy ThursdayMauritaniaMauritiusMayMay May DayMayotteMelbourne Cup DayMerchant DayMexicoMi-CarŞme DayMid-Autumn FestivalMid-Spring FestivalMid-Year FestivalMissionary DayMoMonMonacoMondayMondaysMondays...FridaysMondays...ThursdaysMongolia #Month group (exactly one member must be defined):MontserratMorazan DayMoroccoMosheshoe's DayMother in Law's DayMother's DayMotherhood and Beauty DayMozambiqueMusic Water BanquetMyanmar (Burma) #NamibiaNaming DayNational Bun DayNational Foundation DayNational Heroes DayNational HolidayNational Mourning DayNational Redemption DayNational Resistance DayNational Revival DayNational Unity DayNauruNdadaye DayNepal #NetherlandsNetherlands Antilles/BonaireNetherlands Antilles/Cura§aoNetherlands Antilles/Saba and StatiaNetherlands Antilles/St MaartenNeutrality DayNevada DayNew CaledoniaNew MoonNew Regime AnniversaryNew Year's DayNew ZealandNicaraguaNigerNigeriaNinth Day of RidvanNiueNobel DayNoi DayNorthern Marian Islands (Saipan)Noruz/Persian New Year's DayNorwayNovNovemberNumerical value is filled with leading zero(es)Numerical value is provided with an ordinal number suffixNumerical value is provided with leading signNurses' DayNuzul-al-Qur'anOAU DayOPTIONOctOctoberOctober HolidayOil Industry DayOld-Armenic New YearOld-Egyptic New YearOmanOn principle I will not be liable for ANY damages or losses (implicitOrthodox New Year's DayOur Lady Aparecida DayOur Lady of Altagracia DayOur Lady of Camarin DayOur Lady of Las Mercedes DayOur Lady of Los Angeles DayOur Lady of Seven SorrowsOur Lady of Victories DayOxNOxOPakistanPalauPalm SundayPanamaPanama City DayPanamerica DayPapua New GuineaParaguayParent's DayParis Peace Agreement DayPartialPassion SundayPatriot's DayPeace FestivalPeach FestivalPenumbralPeople Power DayPeople's Uprising DayPerPercent ('%c') characterPeruPesach/PassoverPhilippine-American FriendshipPhilippinesPhyPichincha DayPicnic DayPioneer DayPitcairnPolandPortugalPoya DayPrayer DayPreload options and commands from `FILE'President Lincoln's BirthdayPresidential InaugurationPresidents' DayPresidents' InformPrince Kalanianaole DayPrince of Wales' BirthdayPrincess' DayProclamation DayPuerto RicoPurim/Feast of LotsQaid-i-Azam's BirthdayQatarQuds DayQuinquagesima SundayRamadanRatu Sukuma DayRecreation DayReferendum DayReformation DayRegatta DayRegency ExchangeRemembrance/Memorial DayRepublic DayRepublic of Congo #Republic of KoreaRepublic of MoldovaRespect for the Aged DayRestoration DayReturn DayReunification DayRevolution DayRio de Janeiro AnniversaryRizal DayRogation SundayRomaniaRosh Hashana/New Year's DayRussian FederationRwagasore DayRwandaRİunionS. Doe's BirthdaySAR Establishment DaySIGN (may be defined):STYLE group (exactly one member may be defined):SUFFIX (may be defined):SaSaba DaySaint-Pierre and MiquelonSamhain/Celtic New Year's DaySamoaSan Jacinto DaySan Josİ DaySan MarinoSao Paulo AnniversarySao Tomİ and PrincipeSapporo Snow FestivalSatSaturdaySaturdaysSaudi ArabiaSchool HolidaySeason Change/Bean-FestivalSechsel¤utenSenegalSepSeparation DaySeptemberSeptuagesima SundaySerbia and MontenegroSeretse Khama DaySettlers DaySeven Sleepers DaySeward's DaySexagesima SundaySeychellenShab-e QadrShab-e-Bara'tShab-e-Mi'rajShaheed DayShavuot/Giving of the TorahSheep FestivalSheikh Zayed's Ascension DayShen/MonkeyShrove Tuesday/Mardi GrasShushan PurimSi/SnakeSierra LeoneSimchat TorahSimon Bolivar's DaySinai-Liberation DaySingapore #Slave-Liberation DaySlovakiaSloveniaSniff the Breeze DaySolar EclipseSolidarity DaySolomon IslandsSolstice DaySomaliaSomers DaySoot-Sweeping DaySouth AfricaSouth Georgia and South Sandwich IslandsSpace/blank ('%c') characterSpainSpring FestivalSri Lanka #St Agata DaySt Andrew's DaySt Bartholomew DaySt Berchtold's DaySt Canute's DaySt Cedilia's DaySt Charles' DaySt David's DaySt Demetrius' DaySt Dİvote DaySt Edward's DaySt Eliah's DaySt George's DaySt HelenaSt James' DaySt Jean Baptiste DaySt John's/Midsummer DaySt John's/Midsummers EveSt Joseph's DaySt Kitts and NevisSt Laurentius DaySt LuciaSt Lucia's DaySt Marguerite's DaySt Maroon's DaySt Michael's DaySt Nicholas' DaySt Nicholas' EveSt Olav's DaySt Olav's EveSt Patrick's DaySt Paul's ShipswreckSt Peter and St PaulSt Rose of LimaSt Stephen's DaySt Ursula's DaySt Valentine's DaySt Vincent and GrenadinesSt Vincent de Paul's DayStandardStar FestivalStart of common monthStart of highlighting sequence/marking characterStart of leap monthStatia-American DayStudent's DaySuSudanSuez Victory DaySukkot/Feast of TabernaclesSultan Qaboos' BirthdaySunSundaySunday of the DeadSundaysSuriname #Svalbard and Jan Mayen IslandsSvetitskhovlobaSwallow DaySwazilandSwedenSweden DaySweetest DaySwitzerlandSwitzerland/AargauSwitzerland/Appenzell AusserrhodenSwitzerland/Appenzell InnerrhodenSwitzerland/Basel-StadtSwitzerland/BernSwitzerland/FribourgSwitzerland/Gen¨veSwitzerland/GlarusSwitzerland/GraubĵndenSwitzerland/JuraSwitzerland/LuzernSwitzerland/Neuch˘telSwitzerland/NidwaldenSwitzerland/ObwaldenSwitzerland/SchaffhausenSwitzerland/SchwyzSwitzerland/SolothurnSwitzerland/St GallenSwitzerland/ThurgauSwitzerland/TicinoSwitzerland/UriSwitzerland/ValaisSwitzerland/VaudSwitzerland/ZugSwitzerland/ZĵrichSylvester/New Year's EveSyrian Arab Republic (Syria)TaiwanTajikistanTanzaniaTeacher's DayTennant-Creek Show DayTerritory DayThThai New Year's DayThailand #Thanksgiving DayThe Crown Prince's BirthdayThe Crown Princesse's BirthdayThe Crown Princesse's Name-DayThe King's BirthdayThe King's Name-DayThe Queen's BirthdayThe Queen's Name-DayThere is NO warranty, without even the implied warranty ofThis is free software; see the source for copying conditions.This program is free software; you can redistribute it and/or modifyThis software doesn't claim completeness, correctness or usability.ThuThursdayThursdaysTiradentes DayTisha B'Av/Fasting DayTogo #TokelauTomb-Sweeping DayTongaTopou I DayTotalTown Meeting DayTraditional DayTransfer DayTransfiguration DayTrinidad and Tobago #Truman DayTry to open (level: %02d) include file `%s'... %s%s%sTry to open%sresource file `%s'... %s%s%sTry to write %s `%s'... %s%s%sTuTu B'Shevat/New Year of TreesTueTuesdayTuesdaysTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluTwelfth Day of RidvanTynwald DayU.S. Virgin IslandsU.S.A.UNKNOWNUgandaUkraineUnderscore ('%c') characterUnion DayUnion with Sweden dissolvedUnited Arab EmiratesUnited Nations DayUnited StatesUnited States/AlabamaUnited States/AlaskaUnited States/ArizonaUnited States/ArkansasUnited States/CaliforniaUnited States/ColoradoUnited States/ConnecticutUnited States/DelawareUnited States/District of ColumbiaUnited States/FloridaUnited States/GeorgiaUnited States/HawaiiUnited States/IdahoUnited States/IllinoisUnited States/IndianaUnited States/IowaUnited States/KansasUnited States/KentuckyUnited States/LouisianaUnited States/MaineUnited States/MarylandUnited States/MassachusettsUnited States/MichiganUnited States/MinnesotaUnited States/MississippiUnited States/MissouriUnited States/MontanaUnited States/NebraskaUnited States/NevadaUnited States/New HampshireUnited States/New JerseyUnited States/New MexicoUnited States/New YorkUnited States/North CarolinaUnited States/North DakotaUnited States/OhioUnited States/OklahomaUnited States/OregonUnited States/PennsylvaniaUnited States/Rhode IslandUnited States/South CarolinaUnited States/South DakotaUnited States/TennesseeUnited States/TexasUnited States/UtahUnited States/VermontUnited States/VirginiaUnited States/WashingtonUnited States/West VirginiaUnited States/WisconsinUnited States/WyomingUnity Factory DayUruguayUsage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...] Usage: %s [--%s | --%s] | [RESOURCE-FILE | -] Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART] Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]Use `%s %s|[%s?]Use given `DATE' instead of today's dateUzbekistanValborg's EveVanuatuVenezuelaVenice CarnivalVeteran's DayVictor-Schoelcher DayVictoria DayVictory DayVidovdanViet NamWW. Tubman's BirthdayWIDTH (must be defined):Wallis and Futuna IslandsWaning Half MoonWaqf-al-ArafatWaxing Half MoonWeWedWednesdayWednesdaysWeekWeek %sWei/SheepWest Virginia DayWestern SaharaWhit MondayWhitsun EveWhitsunday/PentecostWomen's DayWomen's Shrove DayWorld Animal DayWu/HorseXu/DogYYap DayYemenYin/TigerYom Ha Azmaut/Independence DayYom Hashoah/Holocaust MemorialYom Hazikaron/Soldiers MemorialYom Kippur/Atonement DayYom Yerushalayim/Jerusalem DayYou should have received a copy of the `GNU General Public License'You/RoosterYouth DayZERO (may be defined):ZambiaZi/RatZimbabweZod[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]`%s' line %ld: (`%s') `%s%d' failed`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'`%s' line %ld: (`%s') unmanaged error (%d)`%s' line %ld: virtual memory exhausted (%s=%d)`Eternal holiday list'`Internal'`termcap' file not foundagreement, which binds you LEGALLY !!along with this program; if not, write to the:amany later version.command linecontain a format instruction, which template is like:d'"defaultenvironment variableenvironment variable `%s' not foundenvironment variable `%s' not setfailedfile `%s' can't be written Storage media full!file `%s' not foundfor more information.h'"holidaysillegal character in response file `%s' Line %ld: %sillegal definition of variable `%c'illegal operation on variable `%c'illegal variable definition in file `%s'illegal variable operation in file `%s'invalid N'th weekday field(%d) in file `%s' Line %ld: %sinvalid date part in file `%s' Line %ld: %sinvalid dayinvalid day field(%02d) in file `%s' Line %ld: %sinvalid monthinvalid month field(%02d) in file `%s' Line %ld: %sinvalid recursive/cyclic %s in file `%s' Line %ld: %sinvalid search pattern `%s' specifiedinvalid value assigned to variable `%c' in file `%s'invalid year for computing Easter Sundays date Year must be in range (%d...%d)it under the terms of the `GNU General Public License' as published bylegal holidaysmalformed %s in file `%s' Line %ld: %smissing `whitespace' character after date part in file `%s' Line %ld: %sndor explicit), which result from using or handling my software.pmrdread error in file `%s'response fileself-definedsending eMail to <%s> failedshell scriptshift value `%s' is invalidstsuccessththe `Free Software Foundation'; either version 3, or (at your option)unknown unknown compilerunknown compiler (SDK?)unknown terminal type defined in `%s'unknown versionvariable `%c' undefined in file `%s'version %dversion %d.%dProject-Id-Version: gcal 3.6.3 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 2013-11-07 22:24+0100 Last-Translator: Volkan Gezer Language-Team: Turkish Language: tr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Lokalize 1.5 Plural-Forms: nplurals=2; plural=(n > 1); %s: durdur, %s: program sinyal ile %d durduruldu %s: uyarÄħ, %s. `%s' satÄħr %ld: %-3s = %d...%d Tek bir eksenin uzunluğu %-3s = %d...%d Toplam satÄħr sayÄħsÄħ %-3s = february `28-ĊžUBAT'a uy %-3s = march `01-MART'a uy = %s Geriletir = %s Dĵnĵ haftanÄħn baĊŸlangÄħ§ tarihine kadar listele = %s Dĵnĵ haftanÄħn baĊŸlangÄħĊŸ gĵnĵne kadar listele = %s Dĵnĵ yÄħlÄħn baĊŸlangÄħ§ gĵnĵne kadar listele N = 0 birinci haftada olmayan %s N = 0 İlk hafta / ge§en yÄħlÄħnÄħ son haftasÄħ N = 1...4 Birinci...4ĵncğ gĵnĵ %s (herzaman) N = 1...51 %s Birinci...51inci hafta (herzaman) N = 1...51 Birinci...51inci gĵn %s (herzaman) N = 1...52 Birinci...52inci hafta (herzaman) N = 5 5inci gĵnĵ %s (bazen) N = 52|53 52|53ĵnci haftanÄħn %s (bazen) N = 52|53 52|53ĵncĵ gĵn %s (bazen) N = 53 53ĵncĵ hafta (bazen) N = 9 Son gĵn %s N = 99 son haftanÄħn %s N = 99 Son hafta N = 99 HaftanÄħn son gĵnĵ %s AsÄħl: `%s' = ArtÄħk olmayan yÄħlda `29-ĊžUBAT'Äħ ayarla = Ay evresi metni grafiğinin yĵksekliğini ayarla = Bioritm metin grafiklerinin geniĊŸliğini ayarla veya: ay adÄħ | %s | %s%s | %s%s | %s%s [MOD] = %s YarÄħnÄħ haftanÄħn son gĵnĵne kadar listele [MOD] = %s YarÄħnÄħ haftanÄħn son gĵnĵne kadar listele [MOD] = %s YarÄħnÄħ yÄħlÄħn spn gĵnĵne kadar listele %s%cwN[%s], ay[%s], gĵn[N] veya %s MOD = %s İletir %-*s = %s deki tatiller %-3s = sabit tarih listesi i§in kullanÄħlan BaĊŸlÄħk metni %c = Tĵm %s lerin dÄħĊŸta tutulmasÄħ Millibar cinsinden hava basÄħncÄħ (mevcut: %.3f) Celsius derece cinsinden hava sÄħcaklÄħğÄħ (mevcut: %+.3f) E.g. %sH %s%s*%s* SÄħra 2 i§in `*' ve `*' karakterlerini kullan E.g. %sH \x2%s\xAE SÄħra 1 i§in hex değerler 2 ve AE kullan –rneğin %sr %ca%sfoo `foo' komutunun §ÄħktÄħsÄħnÄħ `%ca'ya ata –rneğin %sr %ca%sfoo%s%cb%sbar `%ca' yÄħ`foo' and `%cb' yi `bar' olarak ayarla –rneğin %sv a%s1127%sb%s054 Kas 27'yi `a' ve May 4'ĵ de `b' olarak ayarla –rneğin `%s%s%s%s%s%s%s%s' %-3s, Almanya'da kullanÄħlan karakter Listele: %s[%s%s]%s...%s%s[%s%s] Listele: [%s%s]%s%s...%s[%s%s]%s AralÄħk: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s AralÄħk: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s ifadeler `%s' karakteriyle ayrÄħldÄħ Kœ‡œK-HARF ise, §ÄħkarÄħlmayacak demektir! tatil listesi tamamlanmamÄħĊŸtÄħr. kĵmesinin sahip olduğu B݇EM bi§im talimat bileĊŸenine sahip olan baĊŸtaki ĥzel `%s'karakteri ile bağlananlar. # ile iĊŸaretlenen ĵlkeler/bĥlgelerin karakterlerin ge§erli bağÄħmsÄħz bir tarih bi§imine doğru dĥnĵĊŸtĵrĵlmesini sağlar. # %c%c[[%s|%s]N%s] = Paskalya PazarÄħna gĥre haftanÄħn N'inci gĵnĵ # %c%c[%s|%s]N%s = Bugĵne gĥre haftanÄħn N'inci tek gĵnĵ # %c%c[[%s|%s]N] = Paskalya PazarÄħna gĥre tek gĵn N # %c%c[[%s|%s]N] = Bugĵne gĥre N tek gĵn # %c?[%s|%s]N%s = Tarih değiĊŸkenine gĥre haftanÄħn N'inci tek gĵnĵ # %c?[[%s|%s]N] = Tarih değiĊŸkenine gĥre tek gĵn N # %cdN = Belirli tek gĵn N # %cdN%s = Tek N'inci gĵn %s # %cwN%s = N'inci haftanÄħn tek gĵnĵ %s # %s%s = %s ayÄħnÄħn tek bir gĵnĵ %s # %1$s%2$sN = %4$s ayÄħnÄħn tek N sÄħralÄħ, %3$s'inci hafta i§i gĵnĵ # A = BaĊŸka bir liste bi§imini kullanarak gĥster # E = Sadece kanuni gĵnleri kapsa # J = Sabit tarihlerin metin bĥlĵmlerini gizle # NMOD = Bugĵne bağlÄħ tek gĵn N # Nd = Belirli tek gĵn N # Nw = Tam hafta N # Q = Sabit tarihler listesinin ilk boĊŸ satÄħrÄħnÄħ gizle # U = Sabit tarihlerin gĵn bĥlĵmĵnĵ gizle # Z = Sabit tarih bulunmayan gĵnleri gĥster # a = Sabit tarihin kaynağÄħnÄħ gĥster # d = Sĵre listesi oluĊŸturulmuĊŸsa mevcut tarihi de kapsa # e = Kanuni ve anÄħsal gĵnleri kapsa # g[MOD] = MOD metnini kullanarak sabit tarihleri grupla # k = Hafta numarasÄħnÄħ gĥster # l = Tek bir sĵre yerine sĵre listesi oluĊŸtur # m|M[MOD] = Tĵm ayÄħ listele # o = Sabit tarihlerin tekrarlayan gĵnlerini alma # t|T = YarÄħnÄħ listele # w|W[MOD] = Tĵm haftayÄħ listele # x = Sabit tarih listesinin baĊŸlÄħğÄħnÄħ §Äħkart # y|Y[MOD] = Tĵm yÄħlÄħ listele # z = Sabit tarihlerin ardÄħĊŸÄħk numarasÄħnÄħ gĥster 1. Metnin a§ÄħklanmasÄħ 2. Uygun sĵre = "TVAR[%s|%c%s]COMMAND" tanÄħmlar `%s' karakterleriyle ayrÄħldÄħ = abort `all' ve abort eğer dosya isimleri handled edilemiyorsa = all `handled' ve `unhandled' beraber gibi = handled `internal' gibi ve handled dosya isimleri = no Standart hafta numaralarÄħ = handled `internal' gibi ve handled edilmeyen dosya isimleri Mevcut uygun sĵre: %02d-%02d %s %0*d Mevcut: (%s) `%s' (%s) Temel astronomik iĊŸlevlerin temel zamanlarÄħnÄħ değiĊŸtir Takvimin temel yÄħlÄħnÄħ değiĊŸtir Dĥgĵ bitiĊŸ tarihini değiĊŸtir Dĥngĵ ilerleme zamanÄħ değiĊŸtir `%cDOSYA' se§eneği i§in cevap dosyasÄħ hazÄħrla Komut satÄħrÄħ argĵmanlarÄħnÄħ i§eren kabuk betiği yarat Ek kaynak dosya satÄħrÄħ tanÄħmla Kĵresel tarih değiĊŸken(ler)i tanÄħmla "DVAR->a...d|f...s|u...|z" Kĵresel metin değiĊŸken(ler)i tanÄħmla "TVAR->%ca...%cz" œlkeye ĥzel, §evrilebilir ikili karakterler tanÄħmla Hafta numaralarÄħnÄħn tipini belirle (asÄħl: %s) DÄħĊŸ `%s' sayfacÄħsÄħ aracÄħlÄħğÄħyla doğrudan §ÄħktÄħ Basit i§ sayfacÄħ aracÄħlÄħğÄħyla doğrudan §ÄħktÄħ Metin, tatil ve mevcut gĵnĵn se§ilmesini engelle Sonsuz tatil listesini gĥster (YÄħl aralÄħğÄħ: %d...%d) GeniĊŸletilmiĊŸ yardÄħm metnini gĥster ve programdan §Äħk YardÄħm metnini gĥster ve programdan §Äħk Sadece %s tarafÄħndan kabul edilmeyen sabit tarihleri gĥster Sadece metinleri %s ile tutan sabit tarihleri gĥster YazÄħlÄħm lisansÄħnÄħ gĥster ve programdan §Äħk Bir ka§ hata dĵzeltme bilgisi gĥster Sĵrĵm bilgisini gĥster ve programdan §Äħk Sonsoz tatil listesinin baĊŸlÄħğÄħnÄħ hari§ tut `%c%c[%s]' kabuk komutlarÄħnÄħ Yerel tarih değiĊŸkenlerini dosyadan dosyaya taĊŸÄħ Yerel tarih değiĊŸkenlerinin dosyadan dosyaya gĥnder Eğer §ÄħktÄħ yĥnlendirilmiĊŸ ise se§me sÄħrasÄħnÄħn zorlar `%s' se§eneği verildiyse bĵyĵk harf/kĵ§ĵk harf ayrÄħmÄħnÄħ dikkate alma KapsadÄħğÄħ sĵre: Bugĵn GĵneĊŸin doğuĊŸ/batÄħĊŸ zamanlarÄħnÄħ gĵn ile sÄħnÄħrla Takvim yÄħlÄħ bi§imini değiĊŸtir Hafta numaralÄħ takvim sayfasÄħ sağla Sonsuz tatil listesini BahĦ'i tatilleri ile sağla Sonsuz tatil listesini BahĦ'i aylarÄħ ile sağla Sonsuz tatil listesini Kelt tatilleri ile sağla Sonsuz tatil listesini ‡in takvimi tatilleri ile sağla Sonsuz tatil listesini ‡in takvimi aylarÄħ ile sağla Sonsuz tatil listesini ‡in esnek takvimi tatilleri ile sağla Sonsuz tatil listesini ‡in esnek takvimi aylarÄħ ile sağla Sonsuz tatil listesini BatÄħ takvimi tatilleri ile sağla Sonsuz tatil listesini Coptic aylarÄħ ile sağla Sonsuz tatil listesini Etiyopya aylarÄħ ile sağla Sonsuz tatil listesini FransÄħz Devrim takvimi aylarÄħ ile sağla Sonsuz tatil listesini Yahudi tatilleri ile sağla Sonsuz tatil listesini Yahudi takvimi aylarÄħ ile sağla Sonsuz tatil listesini Hint sivil aylarÄħ ile sağla Sonsuz tatil listesini İslami sivil tatilleri ile sağla Sonsuz tatil listesini İslami sivil takvim aylarÄħ ile sağla Sonsuz tatil listesini Japon tatilleri ile sağla Sonsuz tatil listesini Japon aylarÄħ ile sağla Sonsuz tatil listesini Japon esnek takvimi tatilleri ile sağla Sonsuz tatil listesini Japon esnek takvimi aylarÄħ ile sağla Sonsuz tatil listesini Eski Ermeni takvimi aylarÄħ ile sağla Sonsuz tatil listesini Eski MÄħsÄħr takvimi aylarÄħ ile sağla Sonsuz tatil listesini Ortodoks yeni takvimi tatilleri ile sağla Sonsuz tatil listesini Ortodoks eski takvimi tatilleri ile sağla Sonsuz tatil listesini İran Celali takvimi tatilleri ile sağla Sonsuz tatil listesini Ortodoks yeni takvimi AylarÄħ ile sağla Sonsuz tatil listesini astronomik verilerle sağla Sonsuz tatil listesini ĵlkelere ĥzel tatiller ile sağla Sonsuz tatil listesini §ok kĵltĵrlĵ yeni yÄħl tatilleri ile sağla Sonsuz tatil listesini bur§ iĊŸaretleri ile sağla Astronomik zamanlar mĵmkĵn olan en yĵksek kesinlik ile temsil et `%s' se§eneğinin eĊŸleĊŸtirilmesini eski haline dĥnĵĊŸtĵr ‡ÄħktÄħyÄħ kullanÄħcÄħya `%s' programÄħ aracÄħlÄħğÄħyla gĥnder `%2$s' vs.de ‡IKIĊž durumunu %1$d olarak ayarla . Dĵnya atmosferini temel veri olarak ayarla Se§me sÄħrasÄħ §iftlerini 1 (=mevcut gĵn) ve 2 (=tatil) olarak ayarla Veri elemanlarÄħnÄħn sÄħrasÄħnÄħ %s metin bi§imine gĥre ayarla Gregorian Yeniden-oluĊŸum sĵresini ayarla Referans değerini gĥlgeye bağlÄħ doğuĊŸ/batÄħĊŸ zamanÄħna gĥre ayarla HaftanÄħn baĊŸlangÄħĊŸ gĵnĵnĵ ayarla (mevcut: %s) Sonsuz tatil listesinin ilk boĊŸ satÄħrÄħnÄħ gizle Takvim sayfalarÄħnÄħn §ÄħktÄħlarÄħnÄħ a§Äħkca gizle Standart kaynak dosya yerine baĊŸka dosya(lar) kullan Takvim sayfasÄħnda ardÄħĊŸÄħk gĵn kullan ݧ tatillistesinde ardÄħĊŸÄħk gĵn kullan Sabit tarih listesinde ardÄħĊŸÄħk gĵn kullan Doğu Ortodoks Kiliselerinin artÄħk yÄħl kuralÄħnÄħ kullan Takvim sayfasÄħ i§in ĥzel bi§im kullan Standart kaynak dosyayÄħ kullan Sabit tarih listesi i§in`.%s%s' Standart kaynak dosyayÄħ kullan Sabit tarih listesi i§in`.%s%s' ve "TVAR[%s|%c%s]KOMUT" atamalarÄħnÄħ §alÄħĊŸtÄħr Dĥngĵ baĊŸlangÄħ§ tarihini kiĊŸisel olarak değiĊŸtir %-3s = `%s' karakteriyle bağlanan tek dosya veya dosya listesi [MOD] = %s Azalan sÄħrada [MOD] = # ile iĊŸaretlenmiĊŸ bir veya birden fazla dĵzenleyiciler %-*d%*s = Sĵreyi %02d-%02d %s %0*d olarak ayarla %-3s = "DVAR%s%s%s" tanÄħmlar `%s' karkaterleriyle ayrÄħldÄħ %-3s = "TVAR%sTEXT" tanÄħmlar `%s' karakterleriyle ayrÄħldÄħ %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] BitiĊŸ zaman değeri (mevcut: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Zaman dengeleme değeri (mevcut: %s%02d%s%02d == GMT%s) %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Zaman dengeleme değeri (mevcut: %s%02d%s%02d == GMT%s) %-3s = %s%c%s%s%s%s%s%s Sĵreyi a§Äħk§a ayarla %-3s = 1|2|3|4|6|12 Blok sayÄħsÄħ (mevcut: %d) %-3s = Hava basÄħncÄħ ve ÄħsÄħ `%s' karakteri ile ayrÄħldÄħ %-3s = %+.1f...%+.1f aralÄħğÄħndaki a§Äħsal değerli etmenler %-3s = Herhangi bir kaynak dosya satÄħrÄħ %-3s = İstediğiniz herhangi bir kiĊŸisel metin "kurallÄħ ifade " %-3s = Tek tek bi§im tanÄħmla. Uygun bi§im elemanlarÄħ: %-3s = Kabuk betiği dosyasÄħnÄħn ismi %-3s = Se§me sÄħrasÄħ §iftleri `%s' karakterleriyle ayrÄħldÄħ %-3s = `%c[TARİH][%c[TARİH]]' listesi ve/veya `%c[TARİH][%c[TARİH]]' %-3s = MMMM|HH%s[MM] Zaman ilerleme değeri (mevcut: %02d%s%02d) %-3s = Takibeden karakterlerden bir veya daha fazlasÄħ. Eğer karakter %-3s = Tek ĵlke, bĥlge kodu veya %-3s = %s dosyasÄħnda komut satÄħrÄħ argĵmanlarÄħnÄħ sakla %-3s = BœYœK HARF""Kœ‡œK HARF... tanÄħmlar %-3s = [%s|%s]YYYY YÄħl dengeleme değeri (mevcut: %d) %-3s = yes ISO-8601:1988 hafta numaralarÄħ %-6s = Bi§im: `%s' (%s) c = Sadece sabit tarihlerin olmadÄħğÄħ gĵnleri gĥster F = Sadece sabit tarihler olmayan gĵnleri gĥster N = Sadece kanuni gĵnler [MOD] = b Her ikisini de kullan (gĵn ve yÄħl) %sL, %s YazÄħlÄħm lisansÄħnÄħ gĥster ve programdan §Äħk %sV, %s Sĵrĵm bilgisini gĥster ve programdan §Äħk %sh, %s Bu yardÄħm dosyasÄħnÄħ gĥster ve programdan §Äħk %shh, %s GeniĊŸletilmiĊŸ yardÄħm dosyasÄħnÄħ gĥster ve programdan §Äħk %sp, %s DÄħĊŸ `%s' sayfalayÄħcÄħsÄħ aracÄħlÄħğÄħyla doğrudan §ÄħktÄħ %sp, %s Basit i§ sayfalayÄħcÄħsÄħ aracÄħlÄħğÄħyla doğrudan §ÄħktÄħ [%-3s] = Elektronik Posta Adresi, yoksa kullanÄħcÄħ `%s' ye elektronik posta gĥnderilir [%-3s] = internal Bilgi eğer programÄħn internal maksimumlarÄħna eriĊŸildiyse [MOD] = - Takvim sayfasÄħ i§in standart bi§im kullan [MOD] = b Her ikisini de kullan (gĵn ve yÄħl) (%.4s i§in Alpha) (%.4s i§in VAX) (BSD/386 1.1 veya sonrasÄħ) (FreeBSD 2.0 veya sonrasÄħ) (NetBSD 1.2 veya sonrasÄħ) (NetBSD sĵrĵm 0.9 ĥncesi) 1.0 veya 1.5? 4.0 veya 4.02 ; Hafta %s = %+4d gĵn = %+4d gĵn'BURASI' c = Sadece sabit tarihlerin olduğu gĵnleri gĥstergĵn f = Sadece sabit tarihler olan gĵnleri gĥster4.5'ten sonra5.0'dan sonrasÄħ n = Kanuni gĵnler ve anÄħ gĵnleri a§Äħk# Gĵn sayÄħsÄħ (tanÄħmlanmalÄħ)# Ay ismi# Ay sayÄħsÄħ# Haftai§i Gĵn SayÄħsÄħ (tanÄħmlanabilir)# YÄħl sayÄħsÄħ (tanÄħmlanmalÄħ)%cTARİH%cDOSYA%s = Ay aralÄħğÄħ: %d...%d`%s'arama yolunda %s %s%*s = yÄħl aralÄħğÄħ: %d...%d%s%s %d maksimum giriĊŸ sayÄħsÄħ i§eriyor!%s%s: daha fazlasÄħ i§in , §Äħkmak i§in <%s>...%s: Gregoryen takvim programÄħ (GNU cal) %s%s: argĵmanlardan biriyle `%s %s' kullanÄħnÄħz%s: durdur%s: §evresel değiĊŸkendeki komut `%s' bulundu -- %s %s %s %s: `%s' §alÄħĊŸtÄħrÄħlmasÄħ sÄħrasÄħnda hata oluĊŸtu %s: dosyasÄħ bulunamadÄħ %s: ge§ersiz tarih verildi -- %c%s %s %s %s: ge§ersiz tarih veilmiĊŸ -- %s %s %s %s: ge§ersiz se§enek -- %s%s: dĵzgĵn bir dosya yok %s: `%s' se§eneği bir argĵmana izin vermiyor%s: `%s' se§eneği belirsiz%s: `%s' se§eneği bir argĵman gerektirir%s: `--%s' se§eneği bir argĵmana izin vermiyor%s: `--%s' se§eneği bir argĵman gerektirir%s: se§eneği bir argĵman gerektirir -- %s%s: belirsiz argĵmanlÄħ se§enek --%s%s: ge§ersiz argĵmanlÄħ se§enek -- %s%s: bilinmeyen se§enek `%s'%s: uyarÄħ, mesaj bĥlĵmĵ boĊŸ elektronik posta <%s>'ye gĥnderilmedi. %s:%*s %0*d yÄħlÄħ bir artÄħk yÄħl%s:%*s %0*d yÄħlÄħ artÄħk bir yÄħl değil%s:%*s %d yÄħlÄħ artÄħk bir yÄħl%s:%*s %d yÄħlÄħ artÄħk bir yÄħl değil(`%s') tarih bi§imi `%s' ge§ersiz(kĥtĵ sĵrĵm)++ 1.0 veya sonrasÄħ++ 3.0 veya ĥncesi+++ SABİT TARİHLER +++Birinci GeliĊŸPaskalya'daki İlk Pazar Gĵnĵİkinci GeliĊŸPaskalya'daki İkinci Pazar Gĵnĵœ§ĵncĵ GeliĊŸPaskalya'daki œ§ĵncĵ Pazar GĵnĵDĥrdĵncĵ GeliĊŸPaskalya'daki Dĥrdĵncĵ Pazar Gĵnĵ5.1 veya ĥncesi7-5-3 Festivali:HİZALAMA grubu (bir ĵye kesinlikle tanÄħmlanmalÄħAMOARGAborigines GĵnĵAdelaide Kupa GĵnĵKabul GĵnĵAfganistanAga Khan'Äħn Doğum GĵnĵAlaska GĵnĵArnavutlukAleksis Kivi GĵnĵCezayirAlice-Springs Gĥsteri GĵnĵAptallar GĵnĵAzizler GĵnĵTğm Azizler GĵnĵRuhlar Gĵnĵ# ile iĊŸaretlenen tĵm bi§im elemanlarÄħAlfabe GĵnĵAmerikan SamoasÄħAmerika GĵnĵAndorraAngam GĵnĵAngola #AnguillaEmir'in BaĊŸarÄħsÄħnÄħn YÄħldĥnĵmĵSilahlÄħ SavaĊŸ YÄħldĥnĵmĵAuckland YÄħldĥnĵmĵKuzey Cantenbury YÄħldĥnĵmĵGĵney Cantenbury yÄħldĥnĵmĵCatham AdalarÄħ YÄħldĥnĵmĵYeĊŸil YĵrĵyĵĊŸ YÄħldĥnĵmĵHawkes Sahili YÄħldĥnĵmĵMarlborough YÄħldĥnĵmĵNelson YÄħldĥnĵmĵOtago YÄħldĥnĵmĵSouthland YÄħldĥnĵmĵTaranaki YÄħldĥnĵmĵWellington YÄħldĥnĵmĵWestland YÄħldĥnĵmĵAnnularAntigua ve BarbudaAntillian GĵnĵAnzac GĵnĵNisNisanArap Birliği GĵnĵArbor GĵnĵBaĊŸpiskopos Makarios'u Anma GĵnĵBaĊŸpiskopos Makarios GĵnĵArengo YÄħldĥnĵmĵArjantinKomut satÄħrÄħ argĵmanÄħ `%s' atlandÄħ.SilahlÄħ Kuvvetler GĵnĵErmenistanArmistice GĵnĵOrdu Darbe GĵnĵSwiss'in DĥnĵĊŸĵArtigas'Äħn Doğum GĵnĵArubaAscension of Abdu'l-BahaBaha'u'llah'Äħn MiracÄħAsh PazartesisiAsh ‡arĊŸambasÄħAshura'AstAsuncion GĵnĵAtatĵrk'ĵ Anma GĵnĵAğuAğustosAvustralyaAvustralya/CanberraAvustralya/Yeni Gĵney GallerAvustralya/Kuzey BĥlgesiAvustralya/QueenslandAvustralya/Gĵney AvustralyaAvustralya/TazmanyaAvustralya/VictoriaAvustralya/BatÄħ AvustralyaAvusturyaOtoritenin İktidar GĵnĵAzerbaycanBa'ath Devrimi GĵnĵTers slaĊŸ ('%c') karakteriBahBahamalarBahreynBahĦ'i'nin Yeni YÄħl GĵnĵBangladeĊŸ #Banka TatiliBarbadosBaron Bliss GĵnĵBask Ulusal GĵnĵBataan GĵnĵAngamos SavaĊŸÄħBoyacĦ SavaĊŸÄħBoyne SavaĊŸÄħCarabobo SavaĊŸÄħIquique SavaĊŸÄħLas Piedras SavaĊŸÄħN¤fels SavaĊŸÄħPuebla SavaĊŸÄħMali yÄħl BaĊŸlangÄħcÄħYaz BaĊŸlangÄħcÄħBelarusBel§ikaBelgrad GĵnĵBelizeBeltaneBenin #Benito JuĦrez GĵnĵBennigton SavaĊŸÄħ GĵnĵBermudaBhutan #Baha'u'llah'Äħn Doğum GĵnĵBab'Äħn Doğum GĵnĵSuyun KutsanmasÄħ GĵnĵBloomsdayBodhidharma'Äħn Doğum GĵnĵBoganda GĵnĵBolivyaBonaire GĵnĵBoqueron SavaĊŸÄħ GĵnĵBosna-HersekPatronlar GĵnĵBotswanaBotswana Gĵnĵİkramiye GĵnĵBouvet AdasÄħBoks GĵnĵBrezilyaBringing Home the Herds DayBringing in the Harvest DayBritanya Virgin AdalarÄħBruneiBudhaa'nÄħn Doğum GĵnĵBulgaristanBunker Hill GĵnĵBurkina FasoJan Hus'un YakÄħlÄħĊŸÄħBurns GecesiBurundi #C. Mapinduzi GĵnĵKOMUTTHKambo§ya #KamerunCamoes GĵnĵKanadaKanada/AlbertaKanada/Britanya KolumbiyasÄħKanada/ManitobaKanada/Yeni BrunswickKanada/Newfoundland ve LabradorKanada/Nova ScotiaKanada/OntarioKanada/Prens Edward AdasÄħKanada/QuİbecKanada/SaskatchewanKanada/YukonCanberra Gĵnĵ%d i§in lunisolar takvimi doğru olarak hesaplayamÄħyorum`%s' dosyasÄħnda komut §alÄħĊŸtÄħrÄħlamÄħyorSatÄħr: %ld %sCape VerdeCaricom GĵnĵKarnavalCasimir Pulaski'nin Doğum GĵnĵCassinga GĵnĵCatherina Gĥsteri GĵnĵCayenne FestivaliCayman AdalarÄħCelOrta Afrika Cumhuriyeti #Cesar Chavez Gĵnĵ‡adKarakter değiĊŸimi:Charter GĵnĵChen/EjderChiChiang Kai-shek'in Doğum Gĵnĵ‡ocuklar Gĵnĵ‡ocuklarÄħn Beyaz Pazar GĵnĵĊžili‡in‡in Yeni YÄħl Gĵnĵ‡in YÄħlbaĊŸÄħsÄħChou/–kĵzChrChrist'in ĊžÄħkÄħĊŸ GĵnĵYÄħlbaĊŸÄħNoelChristmas AdalarÄħKrizantem GĵnĵYurttaĊŸlÄħk GĵnĵKentliler GĵnĵCocos AdalarÄħ(Keeling)KolombiyaColon GĵnĵColorado GĵnĵColumbus GĵnĵComing of Age Day`%2$s' dosyasÄħnda komut §alÄħĊŸtÄħrÄħldÄħ (§ÄħkÄħĊŸ kodu=%1$d) SatÄħr %3$ld: %4$sUlus GĵnĵComorosCompact Gĵnĵ%s%s ile %s%s%s%s i§in derlendiKonfederasyon AnlaĊŸmasÄħ GĵnĵConfucius'un Doğum GĵnĵKuruluĊŸ YÄħldĥnĵmĵ (ABD)Cook AdalarÄħCoptic New Year's DayTa§ Giyme GĵnĵKozmonotlar GĵnĵKosta RikaOluĊŸturulduHÄħrvatistanCross Raising DayKĵbaKĵltĵr GĵnĵKupa Ma§Äħ GĵnĵTĥresel Ċžef GĵnĵDaireKÄħbrÄħs‡ek CumhuriyetiFildiĊŸi SahiliGDarwin Gĥsterisi GĵnĵTarih bi§imi: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Day after Mid-Autumn FestivalDay after Tomb-Sweeping DayDay of AndaluciaKatalonya Gĵnĵ‡ek Devlet GĵnĵGali§ya Gĵnĵİyiniyet GĵnĵDua ve PiĊŸmanlÄħk GĵnĵUzlaĊŸma Gĵnĵ–ÄŸrencilerin İsyan GĵnĵAnlaĊŸma Gĵnĵ–zgĵr Laos GĵnĵH. Christophe'nin –lĵmĵJ. Dessalines 'Äħn –lĵmĵBaĊŸkan Abdallah'Äħn –lĵmĵBaĊŸkan Cheikh'in –lĵmĵBaĊŸkan Soilih'in –lĵmĵQaid-i-Azam'Äħn –lĵmĵT. Louverture'Äħn –lĵmĵAraAralÄħkBab'Äħn A§ÄħklanmasÄħSavunmacÄħlar GĵnĵAnavatan SavunmacÄħlarÄħ GĵnĵKore Demokratik Halk CumhuriyetiDemokratik Kongo Cumhuriyeti #DanimarkaDia de los MaestrosDia del PadreKeĊŸif GĵnĵCibutiDominikDominik Cumhuriyeti‡ift-9 GĵnĵDergue'nĵn DĵĊŸĵĊŸĵDr. Sun Yat-sen'in Doğum GĵnĵDragon Gemisi FestivaliKuru Mevsim KutlamasÄħDuarte'nin Doğum GĵnĵHanedanlÄħk GĵnĵE. Hostos'un Doğum GĵnĵEGOPaskalya PazartesisiPaskalya PazarÄħPaskalya SalÄħsÄħEkonomik BağÄħmsÄħzlÄħk GĵnĵEkvatorMÄħsÄħrKurban BayramÄħRamazan BayramÄħMevlit KandiliSekiz Saat GĵnĵEindhoven'Äħn KurtuluĊŸuEl SalvadorSe§im GĵnĵUlusal Birlik ݧin Se§imlerHata raporlarÄħnÄħ <%s>'ye postalayÄħnÄħzDuyİmparatorun Doğum GĵnĵDĵzenleme/iĊŸaretleme karakteri se§imi sonuEpiphany/3 KralÄħn GĵnĵEktavoryal GineEkinoks GĵnĵEritreErrol Barrow GĵnĵEstonyaSonsuz tatil listesiEtiyopyaEtyopya Yeni YÄħl GĵnĵTahliye GĵnĵEpiphany Arifesi33 SeferiFAO GĵnĵB݇İM grubu (bir ĵye tanÄħmlanmalÄħ):FRRFalkland AdalarÄħ (Malvinas)Aile Gĵnĵ‡ift§iler GĵnĵFaroelerLeval Baba GĵnĵBabalar GĵnĵCorpus Christi ĊžĥleniZenginlik ĊžĥleniHeart Jesus ĊžĥleniBizim Theotokos'un ZiyafetiĊžubĊžubatMicronesia Federal DevletleriFener FestivaliSadeh FestivaliAlan i§eriği capitalized harflere dĥnĵĊŸtĵrĵldĵAlan i§eriği kĵ§ĵk harflere dĥnĵĊŸtĵrĵldĵAlan i§eriği bĵyĵk harflere dĥnĵĊŸtĵrĵldĵAlan i§eriği GENİĊžLİK pozisyonundan sonra kesildiAlan i§eriği GENİĊžLİK pozisyonundan sonra kesilmediAlan i§eriği GENİĊžLİK geniĊŸliği kullanÄħlarak sola yerleĊŸtirildiAlan i§eriği GENİĊžLİK geniĊŸliği kullanÄħlarak sağa yerleĊŸtirildiAlan i§eriği GENİĊžLİK geniĊŸliği kullanÄħlarak ortalandÄħAlan N geniĊŸliğinde (%d...%d)Fiji #FinlandiyaRÄħdvan'Äħn İlk GĵnĵBalÄħk§ÄħnÄħn GĵnĵSabit tarih listesi:Bayrak GĵnĵFlemish Kĵltĵr GĵnĵMakedonya Eski Yugoslavya CumhuriyetiNPLA'nÄħn KuruluĊŸ GĵnĵHalk Partisinin KuruluĊŸ GĵnĵKomĵnist Partinin KuruluĊŸuCuFransaFransÄħz Kĵltĵr GĵnĵFransÄħz GuyanasÄħFransÄħz PolonezyasÄħFransÄħz DevrimiCumCumaCumalarArkadaĊŸlÄħk GĵnĵDolunayGNU gcal ana sayfasÄħ: <%s>Gabon #GambiyaGarifuna GĵnĵGeneral San Martin'in YÄħldĥnĵmĵGNU yazÄħlÄħmÄħ kullanÄħmÄħ hakkÄħnda genel yardÄħm: <%s>GĵrcistanAlman Birlik GĵnĵAlmanyaAlmanya/Baden-WĵrttembergAlmanya/BavyeraAlmanya/BerlinAlmanya/BrandenburgAlmanya/BremenAlmanya/HamburgAlmanya/HesseAlmanya/AĊŸağÄħ SaksonyaAlmanya/Mecklenburg-West PomeraniaAlmanya/Kuzey Rhine-WestphaliaAlmanya/Rhineland PalatinateAlmanya/SaksonyaAlmanya/Saxony-AnhaltAlmanya/Schleswig-HolsteinAlmanya/ThuringiaGhadirGanaGibraltarİyi Cumaİyi Cumartesi/Paskalya YortusuGospel GĵnĵDede-Nine GĵnĵBĵyĵk BritanyaBĵyĵk Britanya/İngiltere ve GallerBĵyĵk Britanya/Kuzey İrlandaBĵyĵk Britanya/İsko§yaYunanistanYeĊŸil Yaprak GĵnĵGrĥnlandGrenadaMağara GĵnĵGroundhog GĵnĵGuacanaste GĵnĵGuadalupe Bakiresi GĵnĵGuadeloupeGuamGuatemalaGineGine-Bissau #Gustavus Adolphus GĵnĵGuyana #Hai/DomuzHaitiCadÄħlar BayramÄħHannukah/IĊŸÄħk FestivaliSağlÄħk ve Spor BayramÄħHeard ve Mc Donald AdalarÄħHebMiras GĵnĵKahramanlar GĵnĵGrubu se§me (tĵm ĵyeler tanÄħmlanmalÄħ):Ho Chi Minh'in Doğum GĵnĵHobart Show GĵnĵKutsal Masum GĵnĵHoly TrinityKutsal ‡arĊŸambaHondurasHong Kongİnsan HaklarÄħ GĵnĵMacaristanHuravee DayKasÄħrga Yakarma GĵnĵKasÄħrga Ċžĵkran GĵnĵİzlandaEğer bu programÄħ kullanÄħrsanÄħz bunu koĊŸulsuz olarak kabul edersinizImamat DayImbolgBağÄħmsÄħzlÄħk GĵnĵBağÄħmsÄħzlÄħk Hareketi GĵnĵBağÄħmsÄħzlÄħk İlanÄħCartagena'nÄħn BağÄħmsÄħzlÄħğÄħCuenca'nÄħn BağÄħmsÄħzlÄħğÄħGuayaquil'nÄħn BağÄħmsÄħzlÄħğÄħQuito'nÄħn BağÄħmsÄħzlÄħğÄħHindistan #Yerli DĥnĵĊŸ GĵnĵHint Yeni YÄħl GĵnĵEndonezyaEntDahiliYurti§i –zerklik GĵnĵKomut satÄħrÄħnda ge§ersiz -- %s verildiIrakİrlandaIslHicret YÄħldĥnĵmĵİran İslam CumhuriyetiİsrailİtalyaJ. Barbosa'nÄħn Doğum GĵnĵJ. Chilembwe GĵnĵJ. Diego'nun Doğum GĵnĵJ. Robert'in Doğum GĵnĵJamaikaOcaOcakJapJaponyaJapon Yeni YÄħl GĵnĵJapon NoeliJefferson Davis'in Doğum Gĵnĵİsa'nÄħn SĵnnetiœrdĵnTemTemmuzHazHaziranHaziran TatiliKamarampaka GĵnĵKartini GĵnĵKazakistanKenya #Kiev GĵnĵKim Il-Sung'un Doğum GĵnĵKim Jong-Il'un Doğum GĵnĵKral Kamehameha GĵnĵKral Rama I Anma Gĵnĵ/ChakriKral Rama V Anma GĵnĵKiribati #KnabenschiessenKonstantin ve MethodiusKuveytKwanzaaKÄħrgÄħzistanL. Rivera'nÄħn Doğum GĵnĵİĊŸ§i GĵnĵİĊŸ§i Ċžĵkran GĵnĵLag B'OmerLao Tze'nin Doğum GĵnĵLaos Demokratik Halk Cumhuriyeti #Lapp Ulusal TatiliLatviaLaunceston KupasÄħ Gĵnĵ`%3$s' dosyasÄħnda artÄħk-gĵn `%1$02d-%2$s' olarak ayarlanmÄħĊŸLĵbnanLesotho–zgĵrlĵk GĵnĵLiberya–zgĵrlĵk GĵnĵLibya Arap CumhuriyetiLiechtensteinSatÄħr %ld atlandÄħ: %sSatÄħr %ld: %sLitvanyaMĵslĵman Ulusun KayÄħp GĵnĵLughnasaAy TutulmasÄħLuksemburgLuxembourg Ċžehir KermesiLyndon B. Johnson GĵnĵAMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.MacauMadagaskar #Madaraka GĵnĵMahatma Gandhi'nin Doğum Gĵnĵ\`%s' 'den posta (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalezya #MaldivlerMaliMaltaMalvinas GĵnĵManila GĵnĵMao/TavĊŸanMaputo Ċžehri GĵnĵMarMartMarien Ngouabi GĵnĵDenizcilik GĵnĵMarshall AdalarÄħMartin L. King GĵnĵMartinimasMartiniqueBab'Äħn Ċžehit OluĊŸuMartyrs GĵnĵMary - Blessed VirginMary's Annunciation DayMary's Ascension DayMary's CandlemasMary's ExpectationMary's Immaculate ConceptionMary's MaternityMary's NameMary's NativityMary's SacrificeMary's VisitationMaryland GĵnĵMaundy ThursdayMoritanyaMauritiusMayMayÄħsMayÄħs GĵnĵMayotteMelbourne KupasÄħ GĵnĵİĊŸyeri GĵnĵMeksikaMi-CarŞme GĵnĵSonbahar OrtasÄħ Festivaliİlkbahar OrtasÄħ FestivaliYÄħl OrtasÄħ FestivaliMisyoner GĵnĵPtPtsMonakoPazartesiPazartesileriPazartesiler...CumalarPazartesiler...PerĊŸembelerMoğolistan #Ay grubu (bir ĵye kesinlikle tanÄħmlanmalÄħ):MontserratMorazan GĵnĵFasMosheshoe'nin Gĵnĵœvey Anneler GĵnĵAnneler GĵnĵAnnelik ve Gĵzellik GĵnĵMozambikMuzik Suyu ĊžĥleniMyanmar (Burma) #Namibyaİsimlendirme GĵnĵUlusal Kurabiye GĵnĵUlusal KuruluĊŸ GĵnĵUlusal Kahramanlar GĵnĵUlusal TatilUlusal Yas GĵnĵUlusal KurtuluĊŸ GĵnĵUlusal DireniĊŸ GĵnĵUlusal UyanÄħĊŸ GĵnĵUlusal Birlik GĵnĵNauruNdadaye GĵnĵNepal #HollandaHollanda Antilleri/BonaireHollanda Antilleri/Cura§aoHollanda Antilleri/Saba ve StatiaHollanda Antilleri/St MaartenTarafsÄħzlÄħk GĵnĵNevada GĵnĵYeni KaledonyaYeni AyYeni Rejim YÄħldĥnĵmĵYeni YÄħlYeni ZelandaNikaraguaNijerNijeryaRÄħdvan'Äħn 9. GĵnĵNiueNobel GĵnĵNoi GĵnĵKuzey Marian AdalarÄħ (Saipan)Noruz/İran Yeni YÄħlÄħNorve§KasKasÄħmNumerik değer ĥndeki sÄħfÄħr(larla) doldurulduNumerik değer sÄħralÄħ numara soneki ile sağlandÄħNumerik değer ĥndeki iĊŸaretle sağlandÄħHemĊŸireler GĵnĵKuran-Äħ Kerim'in inmeye baĊŸladÄħğÄħ tarihOAU GĵnĵSE‡ENEKEkiEkimEkim TatiliPetrol Endĵstrisi GĵnĵEski Ermeni Yeni YÄħlÄħEski MÄħsÄħr Yeni YÄħlÄħUmmanPrensip olarak (dolaylÄħ veya dolaysÄħz olarak) yazÄħlÄħmÄħmÄħ kullanmanÄħzdan kaynaklanabilecekOrtodoks Yeni YÄħlÄħOur Lady Aparecida DayBizim Altagracia KadÄħnÄħ GĵnĵBizim Camarin KadÄħnÄħ GĵnĵBizim Las Mercedes KadÄħnÄħ GĵnĵBizim Los Angeles KadÄħnÄħ GĵnĵBizim Yedi AcÄħ KadÄħnÄħ GĵnĵBizim Zaferler KadÄħnÄħ GĵnĵOxNOxOPakistanPalauPalmiye PazarÄħPanamaPanama Ċžehri GĵnĵPanamerica GĵnĵPapua Yeni GineParaguayAnne Baba GĵnĵParis BarÄħĊŸ AnlaĊŸmasÄħ GĵnĵPartialTutku PazarÄħVatanseverler GĵnĵBarÄħĊŸ FestivaliĊžeftali FestivaliPenumbralHalkÄħn İktidarÄħ GĵnĵHalkÄħn İsyan GĵnĵPerYĵzde ('%c') karakteriPeruPesach/PassoverFilipin-Amerikan DostluğuFilipinlerFizPichincha GĵnĵPiknik Gĵnĵ–ncĵler GĵnĵPitcairnPolonyaPortekizPoya GĵnĵDua Gĵnĵ`FILE'dan se§enek ve komutlarÄħ ĥnyĵkleBaĊŸkan Lincoln'ĵn Doğum GĵnĵBaĊŸkanÄħn Gĥreve GeliĊŸiBaĊŸkanlar GĵnĵBaĊŸkanÄħn BilgisiPrens Kalanianaole GĵnĵGaller Prensinin Doğum GĵnĵPrensesin Gĵnĵİlan GĵnĵPorto RikoPurim/Feast of LotsQaid-i-Azam'nin Doğum GĵnĵKatarKudĵs GecesiQuinquagesima PazarÄħRamazanRatu Sukuma GĵnĵYeniden YaratÄħlÄħĊŸ GĵnĵReferandum GĵnĵReform GĵnĵRegatta GĵnĵKral Naibliği DeğiĊŸimiAnma/AnÄħt GĵnĵCumhuriyet GĵnĵKongo Cumhuriyeti #Kore CumhuriyetiMoldova CumhuriyetiEski Gĵnlere SaygÄħ GĵnĵRestorasyon GĵnĵGeri DĥnĵĊŸ GĵnĵYeniden BirleĊŸme GĵnĵDevrim GĵnĵRio de Janeiro YÄħldĥnĵmĵRizal GĵnĵRogation PazarRomanyaRosh Hashana/Yeni YÄħl GĵnĵRusya FederasyonuRwagasore GĵnĵRuandaRİunionS. Doe'nin Doğum GĵnĵSAR Kurulum GĵnĵİĊžARET (tanÄħmlanabilir):STİL grubu (bir ĵye tanÄħmlanmalÄħ):SONEK (tanÄħmlanabilir):CtSaba GĵnĵSaint-Pierre and MiquelonSamhain/Celtic Yeni YÄħl GĵnĵSamoaSan Jacinto GĵnĵSan Josİ GĵnĵSan MarinoSao Paulo YÄħldĥnĵmĵSao Tomİ ve PrincipeSapporo Kar FestivaliCtsCumartesiCumartesilerSuudi ArabistanOkul TatiliMevsim Dĥnĵmĵ/Fasulye FestivaliSechsel¤utenSenegalEylAyrÄħlma GĵnĵEylĵlSeptuagesima PazarSÄħrbistan ve KaradağSeretse Khama GĵnĵGĥ§menler GĵnĵYedi Uyurlar GĵnĵSeward'Äħn GĵnĵSexagesima PazarÄħSeychellerKadir GecesiBerat KandiliMira§ KandiliShaheed GĵnĵShavuot/Giving of the TorahKoyun FestivaliĊžeyh Zayid'in YĵkseliĊŸ GĵnĵShen/MaymunShrove SalÄħsÄħ/Mardi GrasShushan PurimSi/YÄħlanSierra LeoneSimchat TorahSimon Bolivar GĵnĵSinai-BağÄħmsÄħzlÄħk GĵnĵSingapur #Kĥle-BağÄħmsÄħzlÄħk GĵnĵSlovakyaSlovenyaEsintiyi Koklama GĵnĵGĵneĊŸ TutulmasÄħDayanÄħĊŸma GĵnĵSolomon AdalarÄħGĵndĥnĵmĵSomaliSomers GĵnĵSoot-Sweeping GĵnĵGĵney AfrikaGĵney Georgia ve Gĵney Sandwich AdalarÄħBoĊŸluk ('%c') karakteriİspanyaBahar FestivaliSri Lanka #Aziz Agata GĵnĵSt Andrew GĵnĵSt Bartholomew GĵnĵSt Berchtold GĵnĵAziz Canute GĵnĵAziz Cedilia GĵnĵAziz Charles GĵnĵSt David GĵnĵAziz Demetrus GĵnĵAziz Dİvote GĵnĵSt Edward GĵnĵAziz Eliah GĵnĵSt George GĵnĵSt HelenaSt James GĵnĵAziz Jean Baptiste GĵnĵSt John'un Yaz OrtasÄħ GĵnĵSt John's/YazortasÄħ GĵnĵSt Joseph GĵnĵSt Kitts ve NevisSt Laurentis GĵnĵSt LuciaAziz Lucia GĵnĵAziz Marqurite GĵnĵAziz Maroon GĵnĵAziz Michael GĵnĵSt Nicholas GĵnĵSt Nicholas ArifesiAziz Olav GĵnĵAziz Olav ArifesiSt Patrick GĵnĵAziz Paul2un Gemi EnkazÄħSt Peter ve St PaulLima'nÄħn Aziz Rose'uSt Stephen GĵnĵAziz Ursula GĵnĵSevgililer GĵnĵSt Vincent ve GrenadinesAziz Vincent de Paul GĵnĵStandartYÄħldÄħz FestivaliOrtak ayÄħn baĊŸlangÄħcÄħDĵzenleme/iĊŸaretleme karakteri se§imi baĊŸlangÄħcÄħArtÄħk ay baĊŸlangÄħcÄħStatia-Amerikan Gĵnĵ–ÄŸrenciler GĵnĵPzSudanSuez Zafer GĵnĵSukkot/Feast of TabernaclesSultan Qaboos'un Doğum GĵnĵPazPazar–lĵm PazarÄħPazarlarSurinamSvalbard ve Jan Mayen AdalarÄħSvetitskhovlobaSwallow GĵnĵSwazilandİsve§Ä°sve§ GĵnĵEn TatlÄħ Gĵnİsvi§reİsvi§re/Aargauİsvi§re/Appenzell Ausserrhodenİsv§re/Appenzell Innerrhodenİsvi§re/Basel-Stadtİsvi§re/Bernİsvi§re/Fribourgİsvi§re/Cenevreİsvi§re/Glarusİsvi§re/Graubĵndenİsvi§re/Juraİsvi§re/Luzernİsvi§re/Neuch˘telİsvi§re/Nidwaldenİsvi§re/Obwaldenİsvi§re/Schaffhausenİsvi§re/Schwyzİsvi§re/Solothurnİsvi§re/St Gallenİsvi§re/Thurgauİsvi§re/Ticinoİsvi§re/Uriİsvi§re/Valaisİsvi§re/Vaudİsvi§re/Zugİsvi§re/ZĵrihSylvester/Yeni YÄħlSuriye Arap Cumhuriyeti (Suriye)TayvanTacikistanTanzanya–ÄŸretmenler GĵnĵTennant-Creek Gĥsteri GĵnĵKarasal GĵnPeThai'nin Yeni YÄħlÄħTayland #Ċžĵkran GĵnĵCrown Prensinin DoğumgĵnĵCrown Prensesinin DoğumgĵnĵCrown Prensesinin VaftiziKralÄħn Doğum GĵnĵKralÄħn VaftiziKrali§enin Doğum GĵnĵKrali§enin Vaftiziİma edilmiĊŸ olsa bile garanti yoktur–zgĵr yazÄħlÄħmdÄħr; kopyalama koĊŸullarÄħ i§in kaynak kodlara bakÄħnÄħz.BU program ĥzgĵr yazÄħlÄħmdÄħr; değiĊŸtirebilir ve/veya dağÄħtabilirsinizBu yazÄħlÄħm tamamlanmÄħĊŸ, doğru veya kullanÄħlabilir olduğunu iddia etmez.PerPerĊŸembePerĊŸembelerTiradentes GĵnĵTisha B'Av/Fasting DayTogo #TokelauMezar Sĵpĵrme GĵnĵTongaTopou I GĵnĵTotalKasaba BuluĊŸma GĵnĵGeleneksel GĵnTaĊŸÄħma GĵnĵYĵceltme GĵnĵTrinidad ve Tobago #Truman Gĵnĵ(seviye: %02d) include dosyasÄħ `%s'... %s%s%s 'yi a§mayÄħ deneyin%skaynak dosya `%s'... %s%s%s 'yi a§mayÄħ deneyin%s `%s'... %s%s%s yazmayÄħ deneyinSaTu B'Shevat/Ağa§ Yeni YÄħlÄħSalSalÄħSalÄħlarTunusTĵrkiyeTĵrkmenistanTurk ve Caicos AdalarÄħTuvaluRÄħdvan'Äħn 12. GĵnĵTynwald GĵnĵU.S. Virgin AdalarÄħA.B.D.BİLİNMEYENUgandaUkraynaAlt§izgi ('%c') karakteriBirleĊŸme Gĵnĵİsve§'le Birlik feshedildiBirleĊŸik Arap EmirlikleriBirleĊŸmiĊŸ Milletler GĵnĵBirleĊŸik DevletlerBirleĊŸik Devletler/AlabamaBirleĊŸik Devletler/AlaskaBirleĊŸik Devletler/ArizonaBirleĊŸik Devletler/ArkansasBirleĊŸik Devletler/KaliforniyaBirleĊŸik Devletler/ColoradoBirleĊŸik Devletler/ConnecticutBirleĊŸik Devletler/DelawareBirleĊŸik Devletler/District of ColumbiaBirleĊŸik Devletler/FloridaBirleĊŸik Devletler/GeorgiaBirleĊŸik Devletler/HawaiiBirleĊŸik Devletler/IdahoBirleĊŸik Devletler/IllinoisBirleĊŸik Devletler/IndianaBirleĊŸik Devletler/IowaBirleĊŸik Devletler/KansasBirleĊŸik Devletler/KentuckyBirleĊŸik Devletler/LouisianaBirleĊŸik Devletler/MaineBirleĊŸik Devletler/MarylandBirleĊŸik Devletler/MassachusettsBirleĊŸik Devletler/MichiganBirleĊŸik Devletler/MinnesotaBirleĊŸik Devletler/MississippiBirleĊŸik Devletler/MissouriBirleĊŸik Devletler/MontanaBirleĊŸik Devletler/NebraskaBirleĊŸik Devletler/NevadaBirleĊŸik Devletler/New HampshireBirleĊŸik Devletler/New JerseyBirleĊŸik Devletler/New MexicoBirleĊŸik Devletler/New YorkBirleĊŸik Devletler/Kuzey CarolinaBirleĊŸik Devletler/Kuzey DakotaBirleĊŸik Devletler/OhioBirleĊŸik Devletler/OklahomaBirleĊŸik Devletler/OregonBirleĊŸik Devletler/PennsylvaniaBirleĊŸik Devletler/Rhode AdasÄħBirleĊŸik Devletler/Gĵney CarolinaBirleĊŸik Devletler/Gĵney DakotaBirleĊŸik Devletler/TennesseeBirleĊŸik Devletler/TexasBirleĊŸik Devletler/UtahBirleĊŸik Devletler/VermontBirleĊŸik Devletler/VirginiaBirleĊŸik Devletler/WashingtonBirleĊŸik Devletler/BatÄħ VirginiaBirleĊŸik Devletler/WisconsinBirleĊŸik Devletler/WyomingBirleĊŸik Fabrika GĵnĵUruguayKullanÄħm: %s [--%s | --%s] | [--%s=[+|-]SAYI] [ARGœMAN...] KullanÄħm ĊŸekli: %s [--%s | --%s] | [RESOURCE-FILE | -] KullanÄħm Ċžekli: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART] KullanÄħm: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]KullanÄħm: %s [[SE‡ENEK...] [%cTARİH] [%cDOSYA...]] [KOMUT]KullanÄħm: %s [[SE‡ENEK...] [%cDOSYA...]] [KOMUT]`%s %s|[%s?] kullanÄħnÄħzBugĵnĵn tarihi yerine verilen `DATE' tarihini kullan–zbekistanValbourg ArifesiVanuatuVenezuelaVenedeik KarnavalÄħEmekliler GĵnĵVictor-Schoelcher GĵnĵVictoria GĵnĵZafer GĵnĵVidovdanVietnamHW. Tubman'Äħn DoğumgĵnĵGENİĊžLİK (tanÄħmlanmalÄħ):Wallis ve Futuna AdalarÄħWaning Half MoonWaqf-al-ArafatWaxing Half Moon‡a‡ar‡arĊŸamba‡arĊŸambalarHaftaHafta %sWei/KoyunBatu Virginia GĵnĵBatÄħ SahraWhit PazartesisiWhitsun ArifesiWhitsunday/PentecostKadÄħnlar GĵnĵKadÄħn –rtĵsĵ GĵnĵDĵnya Hayvan GĵnĵWu/AtXu/KĥpekYYap GĵnĵYemenYin/KaplanYom Ha Azmaut/BağÄħmsÄħzlÄħk GĵnĵYom Hashoah/SoykÄħrÄħm AnÄħtÄħYom Hazikaron/Askerler AnÄħtÄħYom Kippur/Atonement DayYom Yerushalayim/Kudĵs Gĵnĵ'GNU Genel Kamu LisansÄħ'nÄħn bir kopyasÄħnÄħ almÄħĊŸ olmalÄħsÄħnÄħzYou/HorozGen§lik GĵnĵSIFIR (tanÄħmlanabilir):ZambiaZi/FareZimbabweZod[HİZALAMA [İĊžARET] [SIFIR] GENİĊžLİK [STİL] [SONEK] B݇İM]`%s' satÄħr %ld: (`%s') `%s%d' baĊŸarÄħsÄħz`%s' satÄħrÄħ %ld: (`%s') tablo bĵyĵklĵğĵ `sizeof %s>%d' i§in ge§ersiz değer`%s' satÄħr %ld: (`%s') baĊŸarÄħlamamÄħĊŸ hata (%d)`%s' satÄħr %ld: sanal bellek aĊŸÄħldÄħ (%s=%d)`Sonsuz tatil listesi'`ݧ'`termcap' dosyasÄħ bulunamadÄħkanunen bağlayÄħcÄħ olan anlaĊŸmabu program yanÄħnda: değilse yazÄħn: amsonraki herhangi bir sĵrĵmkomut satÄħrÄħaĊŸağÄħdaki gibi bir ĊŸablonda bilgilendiren bi§im i§erebilir.dmĥntanÄħmlÄħ§evresel değiĊŸken§evresel değiĊŸken `%s' bulunamadÄħ§evresel değiĊŸken `%s' ayarlanmadÄħbaĊŸarÄħsÄħz`%s' dosyaasÄħ yazÄħlamadÄħ Kaydedilecek ortam dolu!`%s' dosyasÄħ bulunamadÄħdaha fazla bilgi i§insdstatillercevap dosyasÄħ`%s' da yasadÄħĊŸÄħ karakterSatÄħr %ld: %s`%c' değiĊŸkeninin tanÄħmÄħ sÄħradÄħĊŸÄħ`%c' değiĊŸkeninde sÄħradÄħĊŸÄħ iĊŸlem`%s' dosyasÄħnda sÄħradÄħĊŸÄħ değiĊŸken tanÄħmÄħ`%s' dosyasÄħnda sÄħradÄħĊŸÄħ değiĊŸken iĊŸlemi`%2$s' dosyasÄħnda ge§ersiz N'inci gĵn alanÄħ(%1$d) SatÄħr %3$ld: %4$s`%s' dosyasÄħnda ge§ersiz gĵn bĥlĵmĵSatÄħr %ld: %sge§ersiz gĵn`%2$s' dosyasÄħnda ge§ersiz gĵn alanÄħ(%1$02d) SatÄħr %3$ld: %4$sge§ersiz ay`%2$s' dosyasÄħnda ge§ersiz ay alanÄħ(%1$02d) SatÄħr %3$ld: %4$s`%s' dosyasÄħnda ge§ersiz tekrarlayan/dĥngĵsel %s SatÄħr %ld: %sge§ersiz arama yĥntemi `%s' ile arandÄħ`%2$s' dosyasÄħnda `%1$c' değiĊŸkenine ge§ersiz değer atandÄħPaskalya PazarÄħ i§in ge§ersiz yÄħl YÄħl aralÄħğÄħ (%d...%d) arasÄħnda olmalÄħ'GNU Genel Kamu LisansÄħ' kurallarÄħnca yayÄħnlanmÄħĊŸtÄħr.kanuni tatiller`%s' dosyasÄħnda bozuk ĊŸekilli %sSatÄħr %ld: %s`%s' dosyasÄħnda tarih bĥlĵmĵnden sonraki 'whitespace' karakteri kayÄħpSatÄħr %ld: %snciherhangi bir zarar veya kayÄħptan sorumlu olmayacağÄħmpmrd`%s' dosyasÄħnda okuma hatasÄħcevap dosyasÄħkendince tanÄħmlanmÄħĊŸ<%s>'ye elektronik posta gĥnderimi baĊŸarÄħsÄħzkabuk betiğideğiĊŸen değer `%s' ge§ersizincibaĊŸarÄħlÄħĵncĵ'–zgĵr YazÄħlÄħm VakfÄħ'; sĵrĵm 3 veya (size kalmÄħĊŸ)bilinmeyen bilinmeyen derleyicibilinmeyen derleyici (SDK?)`%s' de bilinmeyen terminal tipi tanÄħmlandÄħbilinmeyen sĵrĵm`%c' değiĊŸkeni `%s' dosyasÄħnda tanÄħmlanmamÄħĊŸsĵrĵm %dsĵrĵm %d.%dgcal-4.1/po/remove-potcdate.sin0000644000000000000000000000066013041163512013400 00000000000000# Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } gcal-4.1/po/Makefile.in.in0000644000000000000000000003552413041163512012250 00000000000000# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2007 by Ulrich Drepper # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # # Origin: gettext-0.17 GETTEXT_MACRO_VERSION = 0.17 PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ GMSGFMT_ = @GMSGFMT@ GMSGFMT_no = @GMSGFMT@ GMSGFMT_yes = @GMSGFMT_015@ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) MSGFMT_ = @MSGFMT@ MSGFMT_no = @MSGFMT@ MSGFMT_yes = @MSGFMT_015@ MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) XGETTEXT_ = @XGETTEXT@ XGETTEXT_no = @XGETTEXT@ XGETTEXT_yes = @XGETTEXT_015@ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = msgmerge MSGMERGE_UPDATE = @MSGMERGE@ --update MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ # Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update .po.mo: @echo "$(MSGFMT) -c -o $@ $<"; \ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all: check-macro-version all-@USE_NLS@ all-yes: stamp-po all-no: # Ensure that the gettext macros and this Makefile.in.in are in sync. check-macro-version: @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ exit 1; \ } # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because # we don't want to bother translators with empty POT files). We assume that # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. # In this case, stamp-po is a nop (i.e. a phony target). # stamp-po is a timestamp denoting the last time at which the CATALOGS have # been loosely updated. Its purpose is that when a developer or translator # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent # invocations of "make" will do nothing. This timestamp would not be necessary # if updating the $(CATALOGS) would always touch them; however, the rule for # $(POFILES) has been designed to not touch files that don't need to be # changed. stamp-po: $(srcdir)/$(DOMAIN).pot test ! -f $(srcdir)/$(DOMAIN).pot || \ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) @test ! -f $(srcdir)/$(DOMAIN).pot || { \ echo "touch stamp-po" && \ echo timestamp > stamp-poT && \ mv stamp-poT stamp-po; \ } # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ package_gnu='GNU '; \ else \ package_gnu=''; \ fi; \ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --package-name="$${package_gnu}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ esac test ! -f $(DOMAIN).po || { \ if test -f $(srcdir)/$(DOMAIN).pot; then \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ else \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(srcdir)/$(DOMAIN).pot @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ if test -f "$(srcdir)/$${lang}.po"; then \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \ else \ $(MAKE) $${lang}.po-create; \ fi install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all $(mkdir_p) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: $(mkdir_p) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: mostlyclean: rm -f remove-potcdate.sed rm -f stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f stamp-po $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: stamp-po $(DISTFILES) dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ dists="$$dists $(DOMAIN).pot stamp-po"; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir) || exit 1; \ else \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for creating PO files. .nop.po-create: @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ exit 1 # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi $(DUMMYPOFILES): update-gmo: Makefile $(GMOFILES) @: Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && $(SHELL) ./config.status $(subdir)/$@.in po-directories force: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gcal-4.1/po/rw.gmo0000664000000000000000000000354313041164032010726 00000000000000Ŝ•'T5Œ`acgmqx€„‘š˘Ş³·żÈÌÑĠÛßçëôĝ    $.7 :EJR!(0@ H T `k s}† œİ°¸À É Ó Ŝéî ÷  ) 2= D O Y%$&  '# "!:AprAprilAugAugustCreatedDecDecemberFebFebruaryFridaysGermanyInternalJanJanuaryJulJulyJunJuneMarMarchMayMondaysNovNovemberOctOctoberSaturdaysSepSeptemberSunSundaysThursdaysTuesdaysWeWednesdaysWeekdefaultProject-Id-Version: gcal 2.40 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 2005-04-04 10:55-0700 Last-Translator: Steven Michael Murphy Language-Team: Kinyarwanda Language: rw MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. :MatMatakan.KanamakiremyeUkub. (Ukuboza)UkubozaGashyantareGashyantarekwa gatanuUbudageBy'imbereMutaramaMutaramaNyak. (anga)NyakangaKamKamenaWerurweWerurweGicurasikwa mbereugushyingoUgushyingoukw.Ukwakirakwa gatandatuItandukanyaNzeriIzubaKu kyumwerukwa kanekwa kabiriTwebwekwa gatatuIcyumwerumburabuzigcal-4.1/po/insert-header.sin0000644000000000000000000000124013041163512013027 00000000000000# Sed script that inserts the file called HEADER before the header entry. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } gcal-4.1/po/de.gmo0000664000000000000000000032262613041164031010673 00000000000000Ŝ•ĤL-‹|Z¨x İx"ĥxÙxíxCŝxAByE„yBÊy+ zL9zK†zKÒzJ{Mi{D·{Fü{FC|@Š|AË|F }FT}=›}6Ù}7~1H~7z~'²~AÚ~ECbAĤIèH2€H{€?Ā*!/FQ$˜4½?òM2‚H€‚HɂPƒJcƒKƒ+úƒ+&„?R„6’„4Ʉ=ŝ„@<…J}…>ȅJ†IR†Kœ†Jè†E3‡Dy‡J‡D ˆ1Nˆ1€ˆ9²ˆ4ìˆ<!‰@^‰2Ÿ‰<҉9Š0IŠ*zŠJŠ<ŠM-‹7{‹N³‹?ŒBBŒ.…ŒN´Œ.B2(u-ž;̍-ŽC6Ž#zŽžŽKĵŽJ?SH“'܏J5O!…4§&ܐ"‘&‘6F‘J}‘.ȑC÷‘:;’Fv’6½’3ô’5(“A^“? “5à“,”JC”EŽ”3Ԕ(•61•/h•+˜•7ĕ7ü•E4–:z– µ–0֖(—20—Ec—Cİ—Dí—E2˜Cx˜Nĵ˜L ™OX™B¨™Dë™P0šDšBĈšH ›KR›Iž›Fè›D/œOtœMĜGGZJ˘JíM8žK†ž=ҞEŸKVŸ@˘ŸEŸ9) .c 7’ -Ê Jĝ =CĦ-ĦJŻĦ0úĦ=+˘6i˘C ˘7ä˘=£8Z£9“£/Í£?ŭ£@=¤0~¤2ݤFâ¤&)HP.™BÈB ĤXNĤc§Ĥ] §5i§:Ÿ§EÚ§G ¨,h¨@•¨EÖ¨*İEGİEİAÓİCŞEYŞ7ŸŞ@ת:Ğ-SЁĞIĦĞIëĞ5Ĵ;QĴ:Ĵ=ÈĴ;­8B­<{­>¸­@÷­M86†;½ù ŻŻ3ŻKŻbŻ wŻ „Ż ‘Ż œŻ ¨ŻµŻBݰB°I°Y°(i°’°—° ĥ°°Ò°ò°ħħ$ ħEħ _ħmħ!‚ħ#¤ħ'Èħ&ħ/²+G² s²;²+ğ²ç²%û²#!³E³^³)s³³$ş³+ß³& ´%2´(X´&´¨´=Ċ´"µ#&µ Jµ!kµ"µ °µµεŜµ òµŭµ ĥĥ .ĥ9ĥ LĥWĥjĥyĥˆĥ5ŠĥÀĥÄĥÈĥ×ĥ èĥ öĥ· ·!·)·:·B·Y·h·x·ˆ·.—· Ĉ·Ó· â·ï· ÷·¸ ¸ ¸4¸R¸j¸Џ޸ɸä¸˙¸ı0ıEı^ıvıı¨ı°ı Äı ÒıÜıàıĉı öı!ş"ş@ş Sş&]ş„ş•ş ş ĞşışÎşàşĉş˙ş ğ #ğ1ğ9ğ =ğJğ_ğcğ jğtğ‡ğĦğğÓğğĵĵ2ĵ:ĵ Pĵ[ĵqĵŒĵĵ˜ĵ ĵ ·ĵ ÄĵÑĵÚĵêĵ ŝĵ ½½-½=½P½b½x½н›½·½˽Ó½Û½ê½ñ½ù½*2;Pa w ˜¤ Ĵ¸Ì ßë ô ż ż ż%ż,żHżdż{ż‚ż”żż ­żşż Íż Ùżżôżüż ˙ż À ÀÀ%À4ÀLÀ\À qÀ’ÀŻÀÂÀÑÀíÀüÀ Á Á4*Á0_Á Á ›Á§Á°Á ËÁĜÁëÁüÁ ÂÂ*Â;Â@ W cÂoÂsŽµÂğÂÁÂĜÂïÂ÷Âû  .@R bpˆ ‘ › ¨µ9ÇÄÄ Ä&ÄFÄ_ÄsÄ ŒÄ™ÄŻÄÄ ÎÄÙÄáÄéÄûÄ Ċ ĊĊ-Ċ3Ċ:ĊIĊXĊZĊHjĊ³ĊÑĊíĊŝĊĈ&Ĉ5ĈEĈbĈxĈĈ£Ĉ¸ĈÏĈĉĈÇÇ6ÇKÇbÇfÇoÇ †Ç”Ç%°ÇÖÇġÇŭÇ È È-È6È?È RÈ_ÈvÈ‘ÈĤÈ½È ÏÈÛÈïÈ óÈ ÉÉÉ6É>É DÉ PÉ\ÉpÉ€É —É £É°ÉÉêÉîÉ.Ê0ÊJÊ \ÊhÊpÊÊ‰ÊžÊ§ÊżÊÎÊŜÊóÊ2ûÊ.Ë2Ë NË YËfËmË ~ˋˣ˴ËÉËàËäËíË Ì!Ì03Ì1dÌ1–Ì*ÈÌ.óÌ:"Í;]Í:™ÍÔÍôÍûÍÎÎ'Î8ÎAÎ%UÎ{ΒέÎÍÎÎ×Î êÎĝÎ ÏÏ"Ï)Ï1Ï @ÏJÏcÏkÏ rÏ Ï% ÏĈÏÎÏßÏçÏ!5D Tb"wšıÖçö Ñ'Ñ9Ñ@Ñ FÑ PÑ\Ñ uÑ€Ñ ’Ñ ÑÀÑßÑöÑ ŭÑ ÒÒ Ò 'Ò5ÒDÒ [ÒfÒ kÒuÒ|ҌңÒĴÒ´Ò şÒÄÒàÒ÷ÒÓ Ó $Ó1/ÓaÓxÓˆÓ œÓİÓ¸Ó ÁÓËÓÜÓ äÓÓ Ô&ÔA.Ô pÔ{Ô‚Ô“Ô­ÔÇÔáÔĝÔĠ(Ġ0ĠCĠ YĠeĠiĠrĠ,ˆĠµĠÌĠéĠÖ$ÖBÖTÖoÖtÖ|Ö€Ö—Ö°Ö·Ö½ÖÓÖäÖĝÖ ×××!×%×+×C×[×u×‰××”×™×× ˘×Ż× ż× Ë×Ö×Ŝ×ç×ŝ×Ĝ)ĜIĜ bĜmĜ}Ĝ–ĜĜ Ĝ°Ĝ ĊĜĜ èĜóĜ#Ù*Ù@ÙGÙ'ZقيْÙĦÙ İÙµÙ ÔÙâÙ ÷Ù ÚÚ$Ú -Ú ;ÚFÚ]ÚsÚ4uÚŞÚ °Ú ½ÚÊÚ.äÚÛ Û%Û.Û3Û 9Û FÛ QÛ\ÛlÛpÛvÛ ‰Û”ÛÛ şÛ ĊÛÛ ċÛòÛÜ Ü5ÜFÜYÜvÜ ‡Ü“Ü£Ü´Ü ĈÜÓÜ Ü îÜĝÜüÜŬ ŬŬ#Ŭ 4ŬAŬHŬWŬkŬŬ‘Ŭ Ŭ£Ŭ§ŬŬµŬ½ŬÏŬ Ŭ1îŬ Ŝ +Ŝ7Ŝ?ŜOŜ cŜpŜ ŠŜ•ŜİŜğŜ ŜÎŜßŜ÷Ŝ ßß2ßJßbßwßŠß ßœß ¤ß°ßÍß$ëßà0à ?à JàXàaàxà ‡à “àà£àĞàżàÄàÍà ìàöà ŝàá<áCáGá/Pá9€á-şá èáôáâ ââââ/â@âUâjâEoâµâÍâäâ˙â4Pj„ˆŒ• ›§ÍŜ çôää %ä3äBä Qä[älä‚ä†äŸä¤ä´ä Óäßä ä ñä üäċċċ!ċ *ċ(5ċ#^ċ‚ċŸċıċÉċÜċôċ ĉĉ -ĉ9ĉMĉdĉjĉsĉˆĉĉ ĉŻĉĉ ÎĉÚĉëĉç ç,ç@çRçfçç çšçĴçğç Öçàççĝçè 'è5è<èEèWèmè0„èµèÎèÑèÚèôèéé (é 6éAéWéné„éˆé ‘é ›é¨é·é Óéáéééíé üéêê0ê BêOê bêoê ê Œê ˜ê Ĥê ´êÀêÜêëê ëë .ë<ë Eë Rë`ëtë ‰ë•ëŞë³ëĵë Ñëßëîë ŝë ì ìì 0ì(=ìfìƒì‰ì ™ì ì²ìÂìĠìèìĝì íí(í:íIíYíhí xí ‚ííí½íÖíĉíùí îî#î7îGîXîiî zî ˆî–î§îĵîÑîáîòîïï/ïHï Qï_ï0uïĤïşï ÎïÜïßïçïíïŝï26=P Xc‚ ’ ž¨ Ż ş ÇÓ"ĉ! ñ+ñHñ`ñqñ†ñšñ­ñĊñÖñéñòò+òDòWòmòƒò—òŞòşòÍòŜòîòóó8ó ?óJó Sóaó xó†ó‰ó ó¨óıóĠóôóô'ô;ôPô:eô= ôDŜôC#ġgġkġ tġ~ġġ¤ġĞġ³ġĊġ Ëġ×ġŬġîġŝġ öö2ö Hö5Sö)‰ö³öÒöĠöóö÷ö˙ö÷÷ ÷$÷=÷D÷ Z÷f÷z÷÷‰÷÷˜÷ ´÷÷Ú÷ï÷ ĝĝ&ĝ;ĝQĝhĝĝ˜ĝ²ĝ"Éĝìĝùù-ùAùXùnùù–ù­ùĊùÙùù ú#ú;úUúlú‚ú™úúÊúúüúû0ûKû^ûuûŠûûÀûŬûĝûü$ü7üMüdü}ü™üħüÇüÙüîüŭ ŭŭ='ŭ0eŭ8–ŭKÏŭ7ŝ.Sŝ‚ŝ(“ŝ ĵŝ ÇŝĠŝ Ŭŝçŝ ÷ŝ˙ ˙ (˙4˙=˙F˙H˙]˙v˙˙Ħ˙°˙Á˙Ä˙ È˙ Ò˙Ŭ˙â˙ ê˙ô˙  !- BNar{‚„Œ ’œğÚúC2 v ‚Œ£Şħş7ö# A1*s/žÎ ċ% ./^at!‡ İ5ĥìĝ# !1S.Z‰³·4À#ġ"(<'e8–+Ï û1 93G5{%ħ4×N F[˘&ħĜHé2>5twz ’  ­ Ê×óöŝE G P a %y Ÿ $Ż  Ô  ß ċí Ó %â   H0 Cy O½ M -[ I‰ HÓ IHfMŻEŭGCG‹@ÓAGVGž<ĉ;#<_4œ<Ñ+M:DˆFÍBFWEžFäC++o"›K$ 2/<bWŸO÷YGfĦ[[d,À,í@7[?“GÓQNmEĵQNTO£HóF<?ƒQH5^7”AÌ7BF>‰>È2;:4v*ĞJÖ3!OU8JŜI) Ks 0ż W 9H!8‚!0ğ!8ì!A%"9g"=Ħ"#ß"'#N+#Mz#BÈ#I $(U$O~$@Î$$%94%)n%!˜%%ş%;à%C&6`&H—&@à&J!'8l'9'<ß'H(Be(=¨(1ĉ(E)E^)6¤)-Û); *9E*+*>Ğ*=ê*P(+Dy+%+Bä+.',2V,>‰,;È,A-CF-@Š-MË-J.Cd.>¨.Aç.M)/Cw/@ğ/=ü/B:0?}0B½0?1L@1I1C×1D2E`2EĤ2Aì2>.3@m3I3Fĝ3<?4M|4<Ê4?5@G51ˆ5Sş5E69T6MŽ65Ü6B7<U7I’7AÜ7I8?h8E¨8=î8E,9Fr95ı92ï9R":"u:N˜:4ç:D;Fa;T¨;bŭ;\`<7½<=ġ<C3=>w=7ĥ==î=M,>(z>F£>Qê>EŒEËE>EF F0,F]F&bF ‰F–F)F'ÏF÷F˙F%G-GEGTG4rG$§G(ÌG4ġG4*H0_H HJžH.éHI.2I,aIŽIŞI'ĊI íI(J)7J*aJ'ŒJ*´J)ßJ KC&K&jK'‘K$ıK%ŜK)L.LDLVLhL xL†LŸLLÈL×LñLMM *M5M>7MvMzM~M‘M¤M µMÁM ÖMáMêMûMN "N /N=N TN:`N›N­N ÀNÌN ÔNŜNçNN!O0OGOeOƒO OżOÙOóOPP4PKPdP {P‡P›P ĴPĥPşPÀPĜPçPQ%Q :Q-FQtQŠQ“Q¨QÁQ×QëQñQ R #R/R>RER IRVRiRmR tRR“RĞRĈRÜRöR SS 9SES ^SlS‚SœS S¨S°S ÀSÎSŬSĉSöS TT2TGTZTpT…TžT³TÇT ßT ìTúT UUUU%U8UPUXUaUyUˆU œU§U żUËU ÔUàUöU VV V (V 3V?V UV_V|VšV³VV ÖVàV ùVWW 1W;WLWSWVWmW uW€W‡W–W°WÀW×W÷WX(X7XQX`X tX XAŽXBXY 'Y3Y|U| m|={|ı|Ì|ç|}!$} F}"g}Š}}İ}­}ĥ} ĵ}È}Ï}à}ö}~~!~@~I~Y~ k~ x~…~›~Ż~Ĉ~Ê~â~ç~.ú~ )5 9 GTetzƒŒ,“)Àê €*€?€\€s€€ž€ ²€ €̀ä€ê€ó€ !2J Ze ~ Ÿ݁şˁځ큂‚-‚G‚Z‚ w‚‚ ‚š‚ ħ‚ ҂à‚ç‚‚+ƒ#0ƒ6Tƒ‹ƒЃƒ·ƒуìƒòƒ „ „„/„F„Y„]„e„ n„ |„Š„İ„Ĉ„΄ ҄ ߄é„ŝ„…'…7… G…S… f… q… }… ‹… ™…… Ċ…υ ê…ô…† † #† 0†Q†c† |†‡† † ݆³†̆Ŭ†î†ŭ†‡ ‡$‡6‡.J‡y‡އ–‡ ‡ ħ‡ ğ‡LJ هç‡ ‡ü‡ ˆ ˆ ˆ 'ˆ 2ˆ <ˆ Fˆ Qˆ[ˆmˆ‡ˆ žˆ¨ˆĵˆ ˈ Ġˆ߈ îˆ ùˆ ‰‰(‰1‰ C‰O‰d‰{‰ ‰ ˜‰£‰½‰Ĝ‰ì‰ ġ‰Š1ŠFŠYŠrЄР‡Š“Š™Š¨ŠżŠيŬŠ ċŠòŠ ûŠ‹ ‹ 0‹ =‹G‹ P‹ ]‹i‹q‹€‹Ÿ‹½‹֋ ê‹÷‹ ŒŒ$Œ 8ŒEŒTŒfŒxŒ‰ŒžŒ­ŒżŒҌ⌠ñŒŭŒ  % 5?Y `nw†¤´· ύ ڍ荎!Ž>ŽUŽkŽƒŽBšŽAŬŽ>;^š ž ݏµďڏáéŭ   44BwŒ  ĥQÁ@‘2T‘‡‘Š‘Ş‘‘ ·‘Á‘ʑ ґߑ÷‘ŝ‘ ’#’@’ D’N’U’]’y’–’´’ђì’ ’ ü’ “ “ “ 0“=“ M“Z“ s“ “ ‹“ –“  “ ­“ı“ “ ͓ ړ è“ ò“˙“ ” ”,” <” I” U” b”m””Ž” ”Ş”½”Δ ה ä”•$• 5• C•M• V• b•o•~• • ž•Ş•ĕ!Ŭ•!˙• !–B–<J–3‡–9ğ–Lġ–9B—/|—Ĵ—=ȗ ˜˜ ˜ (˜2˜ F˜S˜ i˜ v˜€˜‰˜ݘИÁ˜á˜ó˜™™,™/™3™ <™F™L™ U™_™ q™ |™Š™š™ İ™³™™֙ߙç™é™ñ™ ÷™!š#š Cšdšš9Ÿšٚ âšìš ›››#›?'›g›2†›Oı›4 œ>>œ}œ –œ)ĦœŒËœQXޝA­.ï,ž Kž3XžŒžžĦž(³ž&ܞ ŸSŸcŸŸ›Ÿ ŸŸ8İŸ)âŸ*  17 5i Ÿ BĤ 6é  Ħ30ĦdĦ5vĦ@ĴĦ-íĦ;˘VW˘A˘˘/£6£BQ£”£<–£Ó£Ö£Ĝ£ ó£¤+¤ <¤H¤g¤ i¤u¤@w¤ ¸¤"¤)ĉ¤->+Q } ˆÓàñ]Ë)ŭŻ›•ÇŜ‰TYDœ5·ÜFĠGÓç]ó`]¤žmm<Sò›ğ;ĝbfh„„ΖÉe3Ž|ÎTî~7Uê*œúÖÇ~ĥ¸-b,ĦäażAŝÚ-ЀރÛ(œĦŭ\I4Ĵ\ŜS34\Â6úŭaò„îHiì˜è‰¨OçO£í{şmĝ=çMĴëġLĤÊrKGc >ä‘ÑĜ•Qj c@ù}’–£9Ĵxöż!ûj’ĥ<JÊPŬàQS0 Ċûä"ñ‹ 5òk€!ÙÎ"RŠWĉAv@ôNh‹Œĵƒë*T}Zà²T4ŬÖj602Ĉ%ĦŽvëÉ duzċŽß˙ŒU ?ù,o÷⟞ıš]ıhĈ_vÚmI¨i‚dZiÄÊ–A¨ĥ{ġK?gPM˘VYxqëiDnĉĵUG³k{šݤ˜ŝ°…uï=t‚òÂĝúÄY¸Tċ’5á¤Óá\ˆ!z‡1 Äġɏ;‡Fyƒ{ÏyÚ8ïö]ÀÈ í?CBV1/H‰agO˘CËlß µs/%M(ŬğÌĵ¸—ş[Ù­u7ÍĠ„ ‡CĈoö3ô“ËbĤñ*ó)\‰0ĥħPì+jV[³s}ù­³žLĊ" ÙĴUŻŬ’“E~nMÒ…(ü·]Ì •™q'ü†)$÷ĵEċ'ˆ0Müz |˜,PPílĈÎŝeÑ+ßyĉ?°ŽW+Áš*Fú*ĜSĦ=L5@‹Í´|÷:e|¨ì:ġ~VÏl nryáWš-=޽sêÊ ĊI9[fm½&g_aˆĞwcWsb)£U kß°nô`.¨şİÇf ğt=ÒPî—g>³do/>†}iVçXxGħ2ùö!ŒDG™íqvGˆÜ”ˆâQ^ħÊöX”Ï"Ĝ'Ħš^—Ŝ™—k)ÌR§^µr$OŻéFÏ™™îĠw²èìï Wiħĝ§<Aâkà q’ŽhR~ÑĵKۛŞÒÁfœC‹ċF—Í BŠJĤĤ:ZÄ2q4é8ÈŠN^wZ ˜`-j&_éÓfOŸ34µ.,8¤(x˙ ½óïWlôŭ1‡Â&:Àá‚Dż÷˜¤µtÁp5X2m,ùƒòî*Zl£­.Eğžz?‘dotwÖÂâ8ÍuR‰oZ[g ‘Ċp%Á.7À_yĴäÔ˘YŜç?;ô/ĝż¸qŻ()[àF/‚ƒBYĈ T•ûÎŭf  6$À Hè-×´ñXuz+`:Ÿ·Dé!>Ÿ`İĉÛ;Ì×<™ä(6{êÛ9–ӅgnŒáú^Ëü·…vk8KÔÛÁ##,_´´§J1ê”ëwŠí˙Ñ"|ND׸İÒLpġ}9-|´Ô’‚Ùĉ3ƒŬI6xdñS÷œÖ•&.„ıÑÍcÚ²<žyQŸ¤$ ŝŸ½”˙ó U9L› XèAĜ85$ɍÜŜ‚ê1èljz˜Ş%é Èp†'ıHeÉ6Şï—IÒœğ­€×BÈû%ó47µj²ż…ÙĤN€ĠÖvE†h#c%[ÈeJ2Ĝu$›Ës~b=şr›0KJ>##. :ÇJI˘ÄĊ°tüh7x cħÌ…0#ċQÜ˙R–<L“Żoš°l&@a£Ĥ!”İÚ‡ĦKĞ VtâE\ 'BpB§ˆ;He‘‘˘ÔC×'s £&M`ܞĞßr ĠŝOd_1p–nû€+{Š^Hĥ3ìwC"@r@³‹b A²§ŠŒ„Ž‘a“SEX ı†‹;Q ­Ô2€N‡“ Ğ•9·ş˘Ï†}/“+RY>”À7NŒ½ %s: abort, %s: program aborted by signal %d %s: warning, %s. `%s' line %ld: %-3s = %d...%d Length of a single axis %-3s = %d...%d Total number of lines %-3s = february Respect at `28-FEBRUARY' %-3s = march Respect at `01-MARCH' = %s Backwards = %s List yesterday until starting day of month = %s List yesterday until starting day of week = %s List yesterday until starting day of year N = 0 %s which isn't located in 1st week N = 0 1st week / last week of previous year N = 1...4 1st...4th weekday %s (always) N = 1...51 %s of 1st...51st week (always) N = 1...51 1st...51st weekday %s (always) N = 1...52 1st...52nd week (always) N = 5 5th weekday %s (sometimes) N = 52|53 %s of 52|53rd week (sometimes) N = 52|53 52|53rd weekday %s (sometimes) N = 53 53rd week (sometimes) N = 9 Last weekday %s N = 99 %s of last week N = 99 Last week N = 99 Last weekday %s Actual: `%s' = Manage `29-FEBRUARY' in non-leap years = Set height of the Moon phase text graphics = Set width of the biorhythm text graphics or: month name | %s | %s%s | %s%s | %s%s [MOD] = %s List tomorrow until ending day of month [MOD] = %s List tomorrow until ending day of week [MOD] = %s List tomorrow until ending day of year %s%cwN[%s], month name[%s], weekday name[N] or %s MOD = %s Forwards %-*s = Holidays in %s %-3s = Heading/Title text used for fixed date list %c = Exclusion of all %s Air pressure in Millibar (actual: %.3f) Air temperature in degrees Celsius (actual: %+.3f) E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2 E.g. %sH \x2%s\xAE Use hex values 2 and AE for sequence 1 E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca' E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to `bar' E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4 E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of List: %s[%s%s]%s...%s%s[%s%s] List: [%s%s]%s%s...%s[%s%s]%s Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s expressions separated by `%s' characters is a LOWER-CASE-LETTER, it means a non-exclusion! marked by # have an incomplete recording of holidays the preceding special characters in an individual date format, they are used by the character set used in Germany which are connected by `%s' characters. Countries/territories, which has a STYLE format instruction component, and that, how # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday # %c%c[[%s|%s]N] = Single day N relative to today's date # %c?[%s|%s]N%s = Single N'th weekday relative to date variable # %c?[[%s|%s]N] = Single day N relative to date variable # %cdN = Single absolute day N # %cdN%s = Single N'th weekday %s # %cwN%s = Single weekday %s of N'th week # %s%s = Single day %s of month %s # %s%sN = Single N'th weekday %s of month %s # A = Display using alternative list format # E = Include legal days only # J = Suppress text part of fixed dates # NMOD = Single day N relative to today # Nd = Single absolute day N # Nw = Complete week N # Q = Suppress leading blank line of fixed dates list # U = Suppress date part of fixed dates # Z = Display dates, for which fixed dates doesn't exist # a = Display origin of fixed date # d = Include actual date if list of periods is generated # e = Include legal days and memorial days # g[MOD] = Group fixed dates by day using text MOD # k = Display week number # l = Generate list of periods instead of a single period # m|M[MOD] = List complete month # o = Omit repeating date part of fixed dates # t|T = List tomorrow # w|W[MOD] = List complete week # x = Exclude title of fixed date list # y|Y[MOD] = List complete year # z = Display consecutive number of fixed date 1. Representation of text 2. Respected period = "TVAR[%s|%c%s]COMMAND" definitions separated by `%s' characters = abort Like `all' and abort if file name can't be handled = all Like `handled' and `unhandled' together = handled Like `internal' and file names which are handled = no Standard week numbers = unhandled Like `internal' and file names which are unhandled Actual respected period: %02d-%02d %s %0*d Actual: (%s) `%s' (%s) Change base time of astronomical functions Change base year of calendar Change cycle-ending time Change cycle-timestep Create response file for the `%cFILE' option Create shell script which contains the arguments of command line Define additional resource file line Define global date variable(s) "DVAR->a...d|f...s|u...|z" Define global text variable(s) "TVAR->%ca...%cz" Define translatable country specific special character pairs Determine type of week numbers (actual: %s) Direct output through external `%s' pager Direct output through simple internal pager Disable highlighting of text, holiday resp., actual day Display eternal holiday list (Year in range: %d...%d) Display extended help text and quit program Display help text and quit program Display only those fixed dates, whose date is not excluded by %s Display only those fixed dates, whose text is matched by %s Display software license and quit program Display some debug information Display version information and quit program Exclude title of eternal holiday list Execute `%c%c[%s]' shell commands Export local date variables from file to file Export local text variables from file to file Forces highlighting sequences if output is redirected/piped Ignore case distinctions if `%s' option is given Implies period: Today Limit rise/set times of Sun to the day Modify format of year calendar Provide calendar sheet with week numbers Provide eternal holiday list with BahĦ'i calendar holidays Provide eternal holiday list with BahĦ'i calendar months Provide eternal holiday list with Celtic calendar holidays Provide eternal holiday list with Chinese calendar holidays Provide eternal holiday list with Chinese calendar months Provide eternal holiday list with Chinese flexible calendar holidays Provide eternal holiday list with Chinese flexible calendar months Provide eternal holiday list with Christian Western calendar holidays Provide eternal holiday list with Coptic calendar months Provide eternal holiday list with Ethiopic calendar months Provide eternal holiday list with French Revolutionary calendar months Provide eternal holiday list with Hebrew calendar holidays Provide eternal holiday list with Hebrew calendar months Provide eternal holiday list with Indian civil-calendar months Provide eternal holiday list with Islamic civil-calendar holidays Provide eternal holiday list with Islamic civil-calendar months Provide eternal holiday list with Japanese calendar holidays Provide eternal holiday list with Japanese calendar months Provide eternal holiday list with Japanese flexible calendar holidays Provide eternal holiday list with Japanese flexible calendar months Provide eternal holiday list with Old-Armenic calendar months Provide eternal holiday list with Old-Egyptic calendar months Provide eternal holiday list with Orthodox new-calendar holidays Provide eternal holiday list with Orthodox old-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar months Provide eternal holiday list with astronomical data Provide eternal holiday list with country specific holidays Provide eternal holiday list with multicultural New Year holidays Provide eternal holiday list with zodiacal marker data Represent astronomical times and data with utmost precision Revert the sense of matching of the `%s' option Send output via `%s' program to user Set EXIT status of program to %d on `%s' etc. Set base data of Earth's atmosphere Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday) Set order of date elements using the %s format text Set period of Gregorian Reformation Set reference value for rise/set time respectively shadow length Set starting day of week (actual: %s) Suppress leading blank line of eternal holiday list Suppress output of calendar sheet explicitly Use alternative file(s) instead of standard resource file Use consecutive day of year in calendar sheet Use consecutive day of year in eternal holiday list Use consecutive day of year in fixed date list Use leap year rule of Eastern Orthodox churches Use special format for calendar sheet Use standard resource file `%s%s' for fixed date list Use standard resource file `.%s%s' for fixed date list and "TVAR[%s|%c%s]COMMAND" assignments respectively, change cycle-starting time %-3s = Single file or list of files connected by `%s' characters [MOD] = %s Descending sort order [MOD] = One or more of the following modifiers which are marked by # %-*d%*s = Set period to: %02d-%02d %s %0*d %-3s = "DVAR%s%s%s" definitions separated by `%s' characters %-3s = "TVAR%sTEXT" definitions separated by `%s' characters %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %s%c%s%s%s%s%s%s Set period explicitly %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d) %-3s = Air pressure and temperature separated by `%s' character %-3s = Angular value respectively factor in range: %+.1f...%+.1f %-3s = Any possible resource file line %-3s = Any text respectively "regular expression" you like %-3s = Define individual format. Respected format elements are: %-3s = File name of the shell script %-3s = Highlighting sequence pairs separated by `%s' characters %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]' %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d) %-3s = One or more of the following characters. If character %-3s = Single country resp., territory code or a list of these, %-3s = Store arguments of command line in file %s %-3s = UPPER-CASE-LETTER""LOWER-CASE-LETTER... definitions %-3s = [%s|%s]YYYY Year offset value (actual: %d) %-3s = yes ISO-8601:1988 week numbers %-6s = Format is: `%s' (%s) C = Display those dates, for which fixed dates doesn't exist, too F = Display those dates, for which fixed dates doesn't exist, too N = Legal days only [MOD] = b Use both date notations (day of month+year) %sL, %s Display software license and quit program %sV, %s Display version information and quit program %sh, %s Display this help text and quit program %shh, %s Display extended help text and quit program %sp, %s Direct output through external `%s' pager %sp, %s Direct output through simple internal pager [%-3s] = Email address, otherwise eMail is send to user `%s' [%-3s] = internal Information if program internal maximums are reached [MOD] = - Use standard format for calendar sheet [MOD] = b Use both date notations (day of month+year) (%.4s for Alpha) (%.4s for VAX) (BSD/386 1.1 or later) (FreeBSD 2.0 or later) (NetBSD 1.2 or later) (NetBSD before 0.9) 1.0 or 1.5? 4.0 or 4.02 ; Week %s = %+4d day = %+4d days `HERE' c = Display only those dates, for which fixed dates exists day f = Display only those dates, for which fixed dates exists later than 4.5 later than 5.0 n = Legal days and memorial days on # Day number (must be defined)# Month name# Month number# Weekday name (may be defined)# Year number (must be defined)%cDATE%cFILE%s = Month in range: %d...%d%s in search pattern `%s'%s subprocess%s subprocess failed%s subprocess got fatal signal %d%s%*s = Year in range: %d...%d%s%s contains %d maximum entries now!%s%s: for more, <%s> to quit...%s: The Gregorian calendar program (GNU cal) %s%s: Use `%s %s' with one of these arguments%s: abort, %s: command in environment variable `%s' found -- %s %s %s %s: error during program execution of `%s' %s: file not found %s: invalid date given -- %c%s %s %s %s: invalid date given -- %s %s %s %s: invalid option -- %s%s: no regular file %s: option `%s' doesn't allow an argument%s: option `%s' is ambiguous%s: option `%s' requires an argument%s: option `--%s' doesn't allow an argument%s: option `--%s' requires an argument%s: option requires an argument -- %s%s: option with ambiguous argument -- %s%s: option with invalid argument -- %s%s: unrecognized option `%s'%s: warning, eMail with empty message body not sent to <%s>. %s:%*sThe year %0*d is A leap year%s:%*sThe year %0*d is NO leap year%s:%*sThe year %d is A leap year%s:%*sThe year %d is NO leap year(`%s') date format `%s' is invalid(bad version)++ 1.0 or later++ 3.0 or later+++ FIXED DATES +++1st Advent1st Sunday in Lent2nd Advent2nd Sunday in Lent3rd Advent3rd Sunday in Lent4th Advent4th Sunday in Lent5.1 or earlier7-5-3 Festival:ALIGNMENT group (exactly one member must be defined):AMOARGAborigines DayAdelaide Cup DayAdmission DayAfghanistanAga Khan's BirthdayAlaska DayAlbaniaAleksis Kivi DayAlgeriaAlice-Springs Show DayAll Fool's DayAll Saints' DayAll Saints' EveAll Souls' DayAll format elements marked by # may optionallyAlphabet DayAmerican SamoaAmericas DayAndorraAngam DayAngola #AnguillaAnniversary of Amir's SuccessionAnniversary of Armed StruggleAnniversary of AucklandAnniversary of Canterbury NorthAnniversary of Canterbury SouthAnniversary of Chatham IslandsAnniversary of Green MarchAnniversary of Hawkes' BayAnniversary of MarlboroughAnniversary of NelsonAnniversary of OtagoAnniversary of SouthlandAnniversary of TaranakiAnniversary of WellingtonAnniversary of WestlandAnnularAntigua and BarbudaAntillian DayAnzac DayAprAprilArab League DayArbor DayArchbishop Makarios' Memorial DayArchbishop Makarios' Name-DayArengo AnniversaryArgentinaArgument `%s' of command line ignored.Armed Forces DayArmeniaArmistice DayArmy Coup DayArrival of the SwissArtigas' BirthdayArubaAscension of Abdu'l-BahaAscension of Baha'u'llahAsh MondayAsh WednesdayAshura'AstAsuncion DayAtaturk Memorial DayAugAugustAustraliaAustralia/CanberraAustralia/New South WalesAustralia/Northern TerritoryAustralia/QueenslandAustralia/Southern AustraliaAustralia/TasmaniaAustralia/VictoriaAustralia/Western AustraliaAustriaAuthority's Power DayAzerbaijanBa'ath Revolution DayBackslash ('%c') characterBahBahamasBahrainBahĦ'i New Year's DayBangladesh #Bank HolidayBarbadosBaron Bliss DayBasque National DayBataan DayBattle of AngamosBattle of BoyacĦBattle of BoyneBattle of CaraboboBattle of IquiqueBattle of Las PiedrasBattle of N¤felsBattle of PueblaBeginning of Financial YearBeginning of SummerBelarusBelgiumBelgrade's DayBelizeBeltaneBenin #Benito JuĦrez DayBennington Battle DayBermudaBhutan #Birth of Baha'u'llahBirth of the BabBlessing of the WaterBloomsdayBodhidharma's BirthdayBoganda DayBoliviaBonaire DayBoqueron Battle DayBosnia-HerzegovinaBosses' DayBotswanaBotswana DayBounty DayBouvet IslandBoxing DayBrazilBringing Home the Herds DayBringing in the Harvest DayBritish Virgin IslandsBruneiBuddha's BirthdayBulgariaBunker Hill DayBurkina FasoBurning of Jan HusBurns NightBurundi #C. Mapinduzi DayCOMMANDCWCambodia #CameroonCamoes DayCanadaCanada/AlbertaCanada/British ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland and LabradorCanada/Northwest TerritoriesCanada/Nova ScotiaCanada/OntarioCanada/Prince Edward IslandCanada/QuİbecCanada/SaskatchewanCanada/YukonCanberra DayCannot calculate lunisolar calendar for %d correctlyCannot execute command in file `%s' Line: %ld %sCape VerdeCaricom DayCarnivalCasimir Pulaski's BirthdayCassinga DayCatherine Show DayCayenne FestivalCayman IslandsCelCentral African Republic #Cesar Chavez DayChadCharacter replacement:Charter DayChen/DragonChiChiang Kai-shek's BirthdayChildren's DayChildren's White SundayChileChinaChinese New Year's DayChinese New Year's EveChou/OxChrChrist's Ascension DayChristmas DayChristmas EveChristmas IslandsChrysanthenum DayCitizenship DayCivic HolidayCocos Islands (Keeling)ColombiaColon DayColorado DayColumbus DayComing of Age DayCommand executed (exit code=%d) in file `%s' Line %ld: %sCommonwealth DayComorosCompact DayCompiled with %s%s for %s%s%s%sConfederal Agreement DayConfucius' BirthdayConstitution AnniversaryCook IslandsCoptic New Year's DayCoronation DayCosmonauts' DayCosta RicaCreatedCroatiaCross Raising DayCubaCulture DayCup Match DayCustom Chief's DayCycleCyprusCzech RepublicC´te d'IvoireDDarwin Show DayDate format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Day after Mid-Autumn FestivalDay after Tomb-Sweeping DayDay of AndaluciaDay of CataloniaDay of Czech StatehoodDay of GaliciaDay of GoodwillDay of Prayer and RepentanceDay of ReconciliationDay of Students RevoltDay of the CovenantDay of the Free LaosDeath of H. ChristopheDeath of J. DessalinesDeath of President AbdallahDeath of President CheikhDeath of President SoilihDeath of Qaid-i-AzamDeath of T. LouvertureDecDecemberDeclaration of the BabDefenders DayDefenders of Motherland DayDemocratic People's Republic of KoreaDemocratic Republic of Congo #DenmarkDia de los MaestrosDia del PadreDiscovery DayDjiboutiDominicaDominican RepublicDouble-9 DayDownfall of the DergueDr. Sun Yat-sen's BirthdayDragon Boat FestivalDry Season CelebrationDuarte's BirthdayDynasty DayE. Hostos' BirthdayEGOEaster MondayEaster SundayEaster TuesdayEconomic Liberation DayEcuadorEgyptEid-al-AdhaEid-al-FitrEid-i-Milad-un-NabiEight Hours DayEindhoven's LiberationEl SalvadorElection DayElections for National AssemblyEmail bug reports to <%s>EmoEmperor's BirthdayEnd of highlighting sequence/marking characterEpiphany/Three King's DayEquatorial GuineaEquinox DayEritreaErrol Barrow DayEstoniaEternal holiday listEthiopiaEthiopic New Year's DayEvacuation DayEve of EpiphanyExpedition of the 33FAO DayFORMAT group (exactly one member must be defined):FRRFalkland Islands (Malvinas)Family DayFarmers' DayFaroesFather Leval DayFather's DayFeast of Corpus ChristiFeast of FortuneFeast of Heart JesusFeast of Our TheotokosFebFebruaryFederated States of MicronesiaFestival of LanternsFestival of SadehField contents is converted to capitalized wordsField contents is converted to lower-case lettersField contents is converted to upper-case lettersField contents is cut after position WIDTHField contents is not cut after position WIDTHField contents placed at the left margin using width WIDTHField contents placed at the right margin using width WIDTHField contents placed in centered manner using width WIDTHField has the width N (%d...%d)Fiji #FinlandFirst Day of RidvanFisherman's DayFixed date list:Flag DayFlemish Culture DayFormer Yugoslav Republic of MacedoniaFoundation of NPLA DayFounding of People's PartyFounding of the Communist PartyFrFranceFrench Culture DayFrench GuianaFrench PolynesiaFrench RevolutionaryFriFridayFridaysFriendship DayFull MoonGNU gcal home page: <%s>Gabon #GambiaGarifuna DayGeneral San Martin's AnniversaryGeneral help using GNU software: <%s>GeorgiaGerman Unity DayGermanyGermany/Baden-WĵrttembergGermany/BavariaGermany/BerlinGermany/BrandenburgGermany/BremenGermany/HamburgGermany/HesseGermany/Lower SaxonyGermany/Mecklenburg-West PomeraniaGermany/North Rhine-WestphaliaGermany/Rhineland PalatinateGermany/SaarlandGermany/SaxonyGermany/Saxony-AnhaltGermany/Schleswig-HolsteinGermany/ThuringiaGhadirGhanaGibraltarGood FridayGood Saturday/Easter EveGospel DayGrandparents' DayGreat BritainGreat Britain/England and WalesGreat Britain/Northern IrelandGreat Britain/ScotlandGreeceGreenery DayGreenlandGrenadaGrotto DayGroundhog DayGuacanaste DayGuadalupe Virgin's DayGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Gustavus Adolphus' DayGuyana #Hai/PigHaitiHalloweenHannukah/Festival of LightsHealth and Sport's DayHeard and Mc Donald IslandsHebHeritage DayHeroes DayHighlighting group (all members must be defined):Ho Chi Minh's BirthdayHobart Show DayHoly Innocent's DayHoly TrinityHoly WednesdayHondurasHong KongHuman Rights DayHungaryHuravee DayHurricane Supplication DayHurricane Thanksgiving DayIcelandIf you use this software, you agree without any exception to thisImamat DayImbolgIndependence DayIndependence Movement DayIndependence ProclamationIndependence of CartagenaIndependence of CuencaIndependence of GuayaquilIndependence of QuitoIndia #Indian Arrival DayIndian New Year's DayIndonesia #IntInternalInternal Autonomy DayInvalid argument in command line given -- %sInvalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionIraqIrelandIslIslamic New Year's DayIslamic Republic of IranIsraelItalyJ. Barbosa's BirthdayJ. Chilembwe DayJ. Diego's BirthdayJ. Robert's BirthdayJamaicaJanJanuaryJapJapanJapanese New Year's DayJapanese New Year's EveJefferson Davis' BirthdayJesus' CircumcisionJordanJulJulyJunJuneJune HolidayKamarampaka DayKartini DayKazakhstanKenya #Kiev DayKim Il-Sung's BirthdayKim Jong-Il's BirthdayKing Kamehameha DayKing Rama I Memorial Day/ChakriKing Rama V Memorial DayKiribati #KnabenschiessenKonstantin and MethodiusKuwaitKwanzaaKyrgyzstanL. Rivera's BirthdayLabour DayLabour Thanksgiving DayLag B'OmerLao Tze's BirthdayLaos People's Democratic Republic #Lapp National HolidayLatviaLaunceston Cup DayLeap-day set to `%02d-%s' in file `%s'.LebanonLesothoLiberation DayLiberiaLiberty DayLibyan Arab Jamahiriya (Libya)LiechtensteinLine %ld ignored: %sLine %ld: %sLithuaniaLoss of Muslim NationLughnasaLunar EclipseLuxembourgLuxembourg City KermisLyndon B. Johnson DayMMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.MacauMadagascar #Madaraka DayMahatma Gandhi's BirthdayMail from \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaldivesMaliMaltaMalvinas DayManila DayMao/RabbitMaputo City DayMarMarchMarien Ngouabi DayMarine DayMarshall IslandsMartin L. King's DayMartinimasMartiniqueMartyrdom of the BabMartyrs' DayMary - Blessed VirginMary's Annunciation DayMary's Ascension DayMary's CandlemasMary's ExpectationMary's Immaculate ConceptionMary's MaternityMary's NameMary's NativityMary's SacrificeMary's VisitationMaryland DayMaundy ThursdayMauritaniaMauritiusMayMay May DayMayotteMelbourne Cup DayMemory exhaustedMerchant DayMexicoMi-CarŞme DayMid-Autumn FestivalMid-Spring FestivalMid-Year FestivalMissionary DayMoMonMonacoMondayMondaysMondays...FridaysMondays...ThursdaysMongolia #Month group (exactly one member must be defined):MontserratMorazan DayMoroccoMosheshoe's DayMother in Law's DayMother's DayMotherhood and Beauty DayMozambiqueMusic Water BanquetMyanmar (Burma) #NamibiaNaming DayNational Bun DayNational Foundation DayNational Heroes DayNational HolidayNational Mourning DayNational Redemption DayNational Resistance DayNational Revival DayNational Unity DayNauruNdadaye DayNepal #NetherlandsNetherlands Antilles/BonaireNetherlands Antilles/Cura§aoNetherlands Antilles/Saba and StatiaNetherlands Antilles/St MaartenNeutrality DayNevada DayNew CaledoniaNew MoonNew Regime AnniversaryNew Year's DayNew ZealandNicaraguaNigerNigeriaNinth Day of RidvanNiueNo matchNo previous regular expressionNobel DayNoi DayNorthern Marian Islands (Saipan)Noruz/Persian New Year's DayNorwayNovNovemberNumerical value is filled with leading zero(es)Numerical value is provided with an ordinal number suffixNumerical value is provided with leading signNurses' DayNuzul-al-Qur'anOAU DayOPTIONOctOctoberOctober HolidayOil Industry DayOld-Armenic New YearOld-Egyptic New YearOmanOn principle I will not be liable for ANY damages or losses (implicitOrthodox New Year's DayOur Lady Aparecida DayOur Lady of Altagracia DayOur Lady of Camarin DayOur Lady of Las Mercedes DayOur Lady of Los Angeles DayOur Lady of Seven SorrowsOur Lady of Victories DayOxNOxOPakistanPalauPalm SundayPanamaPanama City DayPanamerica DayPapua New GuineaParaguayParent's DayParis Peace Agreement DayPartialPassion SundayPatriot's DayPeace FestivalPeach FestivalPenumbralPeople Power DayPeople's Uprising DayPerPercent ('%c') characterPeruPesach/PassoverPhilippine-American FriendshipPhilippinesPhyPichincha DayPicnic DayPioneer DayPitcairnPolandPortugalPoya DayPrayer DayPreload options and commands from `FILE'Premature end of regular expressionPresident Lincoln's BirthdayPresidential InaugurationPresidents' DayPresidents' InformPrince Kalanianaole DayPrince of Wales' BirthdayPrincess' DayProclamation DayPuerto RicoPurim/Feast of LotsQaid-i-Azam's BirthdayQatarQuds DayQuinquagesima SundayRamadanRatu Sukuma DayRecreation DayReferendum DayReformation DayRegatta DayRegency ExchangeRegular expression too bigRemembrance/Memorial DayRepublic DayRepublic of Congo #Republic of KoreaRepublic of MoldovaRespect for the Aged DayRestoration DayReturn DayReunification DayRevolution DayRio de Janeiro AnniversaryRizal DayRogation SundayRomaniaRosh Hashana/New Year's DayRussian FederationRwagasore DayRwandaRİunionS. Doe's BirthdaySAR Establishment DaySIGN (may be defined):STYLE group (exactly one member may be defined):SUFFIX (may be defined):SaSaba DaySaint-Pierre and MiquelonSamhain/Celtic New Year's DaySamoaSan Jacinto DaySan Josİ DaySan MarinoSao Paulo AnniversarySao Tomİ and PrincipeSapporo Snow FestivalSatSaturdaySaturdaysSaudi ArabiaSchool HolidaySeason Change/Bean-FestivalSechsel¤utenSenegalSepSeparation DaySeptemberSeptuagesima SundaySerbia and MontenegroSeretse Khama DaySettlers DaySeven Sleepers DaySeward's DaySexagesima SundaySeychellenShab-e QadrShab-e-Bara'tShab-e-Mi'rajShaheed DayShavuot/Giving of the TorahSheep FestivalSheikh Zayed's Ascension DayShen/MonkeyShrove Tuesday/Mardi GrasShushan PurimSi/SnakeSierra LeoneSimchat TorahSimon Bolivar's DaySinai-Liberation DaySingapore #Slave-Liberation DaySlovakiaSloveniaSniff the Breeze DaySolar EclipseSolidarity DaySolomon IslandsSolstice DaySomaliaSomers DaySoot-Sweeping DaySouth AfricaSouth Georgia and South Sandwich IslandsSpace/blank ('%c') characterSpainSpring FestivalSri Lanka #St Agata DaySt Andrew's DaySt Bartholomew DaySt Berchtold's DaySt Canute's DaySt Cedilia's DaySt Charles' DaySt David's DaySt Demetrius' DaySt Dİvote DaySt Edward's DaySt Eliah's DaySt George's DaySt HelenaSt James' DaySt Jean Baptiste DaySt John's/Midsummer DaySt John's/Midsummers EveSt Joseph's DaySt Kitts and NevisSt Laurentius DaySt LuciaSt Lucia's DaySt Marguerite's DaySt Maroon's DaySt Michael's DaySt Nicholas' DaySt Nicholas' EveSt Olav's DaySt Olav's EveSt Patrick's DaySt Paul's ShipswreckSt Peter and St PaulSt Rose of LimaSt Stephen's DaySt Ursula's DaySt Valentine's DaySt Vincent and GrenadinesSt Vincent de Paul's DayStandardStar FestivalStart of common monthStart of highlighting sequence/marking characterStart of leap monthStatia-American DayStudent's DaySuSuccessSudanSuez Victory DaySukkot/Feast of TabernaclesSultan Qaboos' BirthdaySunSundaySunday of the DeadSundaysSuriname #Svalbard and Jan Mayen IslandsSvetitskhovlobaSwallow DaySwazilandSwedenSweden DaySweetest DaySwitzerlandSwitzerland/AargauSwitzerland/Appenzell AusserrhodenSwitzerland/Appenzell InnerrhodenSwitzerland/Basel-LandschaftSwitzerland/Basel-StadtSwitzerland/BernSwitzerland/FribourgSwitzerland/Gen¨veSwitzerland/GlarusSwitzerland/GraubĵndenSwitzerland/JuraSwitzerland/LuzernSwitzerland/Neuch˘telSwitzerland/NidwaldenSwitzerland/ObwaldenSwitzerland/SchaffhausenSwitzerland/SchwyzSwitzerland/SolothurnSwitzerland/St GallenSwitzerland/ThurgauSwitzerland/TicinoSwitzerland/UriSwitzerland/ValaisSwitzerland/VaudSwitzerland/ZugSwitzerland/ZĵrichSylvester/New Year's EveSyrian Arab Republic (Syria)TaiwanTajikistanTanzaniaTeacher's DayTennant-Creek Show DayTerritory DayThThai New Year's DayThailand #Thanksgiving DayThe Crown Prince's BirthdayThe Crown Princesse's BirthdayThe Crown Princesse's Name-DayThe King's BirthdayThe King's Name-DayThe Queen's BirthdayThe Queen's Name-DayThere is NO warranty, without even the implied warranty ofThis is free software; see the source for copying conditions.This program is free software; you can redistribute it and/or modifyThis software doesn't claim completeness, correctness or usability.ThuThursdayThursdaysTiradentes DayTisha B'Av/Fasting DayTogo #TokelauTomb-Sweeping DayTongaTopou I DayTotalTown Meeting DayTraditional DayTrailing backslashTransfer DayTransfiguration DayTrinidad and Tobago #Truman DayTry to open (level: %02d) include file `%s'... %s%s%sTry to open%sresource file `%s'... %s%s%sTry to write %s `%s'... %s%s%sTuTu B'Shevat/New Year of TreesTueTuesdayTuesdaysTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluTwelfth Day of RidvanTynwald DayU.S. Virgin IslandsU.S.A.UNKNOWNUgandaUkraineUnderscore ('%c') characterUnion DayUnion with Sweden dissolvedUnited Arab EmiratesUnited Nations DayUnited StatesUnited States/AlabamaUnited States/AlaskaUnited States/ArizonaUnited States/ArkansasUnited States/CaliforniaUnited States/ColoradoUnited States/ConnecticutUnited States/DelawareUnited States/District of ColumbiaUnited States/FloridaUnited States/GeorgiaUnited States/HawaiiUnited States/IdahoUnited States/IllinoisUnited States/IndianaUnited States/IowaUnited States/KansasUnited States/KentuckyUnited States/LouisianaUnited States/MaineUnited States/MarylandUnited States/MassachusettsUnited States/MichiganUnited States/MinnesotaUnited States/MississippiUnited States/MissouriUnited States/MontanaUnited States/NebraskaUnited States/NevadaUnited States/New HampshireUnited States/New JerseyUnited States/New MexicoUnited States/New YorkUnited States/North CarolinaUnited States/North DakotaUnited States/OhioUnited States/OklahomaUnited States/OregonUnited States/PennsylvaniaUnited States/Rhode IslandUnited States/South CarolinaUnited States/South DakotaUnited States/TennesseeUnited States/TexasUnited States/UtahUnited States/VermontUnited States/VirginiaUnited States/WashingtonUnited States/West VirginiaUnited States/WisconsinUnited States/WyomingUnity Factory DayUnknown system errorUnmatched ( or \(Unmatched ) or \)Unmatched \{UruguayUsage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...] Usage: %s [--%s | --%s] | [RESOURCE-FILE | -] Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART] Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]Use `%s %s|[%s?]Use given `DATE' instead of today's dateUzbekistanValborg's EveVanuatuVenezuelaVenice CarnivalVeteran's DayVictor-Schoelcher DayVictoria DayVictory DayVidovdanViet NamWW. Tubman's BirthdayWIDTH (must be defined):Wallis and Futuna IslandsWaning Half MoonWaqf-al-ArafatWaxing Half MoonWeWedWednesdayWednesdaysWeekWeek %sWei/SheepWest Virginia DayWestern SaharaWhit MondayWhitsun EveWhitsunday/PentecostWomen's DayWomen's Shrove DayWorld Animal DayWu/HorseXu/DogYYap DayYemenYin/TigerYom Ha Azmaut/Independence DayYom Hashoah/Holocaust MemorialYom Hazikaron/Soldiers MemorialYom Kippur/Atonement DayYom Yerushalayim/Jerusalem DayYou should have received a copy of the `GNU General Public License'You/RoosterYouth DayZERO (may be defined):ZambiaZi/RatZimbabweZod[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]_open_osfhandle failed`%s' line %ld: (`%s') `%s%d' failed`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'`%s' line %ld: (`%s') unmanaged error (%d)`%s' line %ld: virtual memory exhausted (%s=%d)`Eternal holiday list'`Internal'`termcap' file not foundagreement, which binds you LEGALLY !!along with this program; if not, write to the:amany later version.cannot create pipecannot restore fd %d: dup2 failedcommand linecontain a format instruction, which template is like:d'"defaultenvironment variableenvironment variable `%s' not foundenvironment variable `%s' not setfailedfile `%s' can't be written Storage media full!file `%s' not foundfor more information.h'"holidaysillegal character in response file `%s' Line %ld: %sillegal definition of variable `%c'illegal operation on variable `%c'illegal variable definition in file `%s'illegal variable operation in file `%s'internalinvalid N'th weekday field(%d) in file `%s' Line %ld: %sinvalid date part in file `%s' Line %ld: %sinvalid dayinvalid day field(%02d) in file `%s' Line %ld: %sinvalid monthinvalid month field(%02d) in file `%s' Line %ld: %sinvalid recursive/cyclic %s in file `%s' Line %ld: %sinvalid search pattern `%s' specifiedinvalid value assigned to variable `%c' in file `%s'invalid year for computing Easter Sundays date Year must be in range (%d...%d)it under the terms of the `GNU General Public License' as published bylegal holidaysmalformed %s in file `%s' Line %ld: %smemory exhaustedmissing `whitespace' character after date part in file `%s' Line %ld: %sndor explicit), which result from using or handling my software.pmrdread error in file `%s'response fileself-definedsending eMail to <%s> failedshell scriptshift value `%s' is invalidstsuccessththe `Free Software Foundation'; either version 3, or (at your option)unknown unknown compilerunknown compiler (SDK?)unknown terminal type defined in `%s'unknown versionvariable `%c' undefined in file `%s'version %dversion %d.%dProject-Id-Version: GNU gcal 3.6.3.34 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 2014-12-31 17:45+0100 Last-Translator: Karlheinz Geyer Language-Team: German Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n != 1); %s: Abbruch, %s: Programmabbruch durch Signal %d %s: Warnung, %s. Âğ%sÂĞ Zeile %ld: %-3s = %d...%d L¤nge einer einzelnen Achse %-3s = %d...%d Gesamtanzahl der Zeilen %-3s = february Am Âğ28-FEBRUARÂĞ berĵcksichtigen %-3s = march Am Âğ01-M„RZÂĞ berĵcksichtigen = %s Rĵckw¤rts = %s Liste von gestern bis Anfang der Monats = %s Liste von gestern bis Anfang der Woche = %s Liste von gestern bis Anfang des Jahres N = 0 %s der nicht in der 1. Woche ist N = 0 Erste Woche / letzte Woche im Vorjahr N = 1...4 1. ... 4. Wochentag %s (stets) N = 1...51 %s der 1. ... 51. Woche (stets) N = 1...51 1. ... 51. Wochentag %s (stets) N = 1...52 1. ... 52. Woche (stets) N = 5 5. Wochentag %s (manchmal) N = 52|53 %s der 52.|53. Woche (manchmal) N = 52|53 52.|53. Wochentag %s (manchmal) N = 53 53. Woche (manchmal) N = 9 Letzter Wochentag %s N = 99 %s der letzten Woche N = 99 Letzte Woche N = 99 Letzter Wochentag %s Aktuell: Âğ%sÂĞ = Den Âğ29-FEBRUARÂĞ in Nicht-Schaltjahren handhaben = Hĥhe der Mondphasen-Textgrafik festlegen = Breite der Biorhythmus-Textgrafik festlegen oder: Monatsname | %s | %s%s | %s%s | %s%s [MOD] = %s Liste von morgen bis Ende des Monats [MOD] = %s Liste von morgen bis Ende der Woche [MOD] = %s Liste von morgen bis Ende des Jahres %s%cwN[%s], Monatsname[%s], Wochentagsname[N] oder %s MOD = %s Vorw¤rts %-*s = Feiertage in %s %-3s = Verwendeter Text fĵr Terminlisten-œberschrift %c = Ausschluss aller %s Luftdruck in Millibar (aktuell: %.3f) Lufttemperatur in Grad Celsius (aktuell: %+.3f) Beispiel: %sH %s%s*%s* Benutzt Zeichen Âğ*ÂĞ und Âğ*ÂĞ fĵr Sequenz 2 Beispiel: %sH \x2%s\xAE Benutzt Hex-Wert 2 und AE fĵr Sequenz 1 Durch %sr %ca%sfoo wird die Ausgabe des Befehls ÂğfooÂĞ an Âğ%caÂĞ zugewiesen So setzt beispielsweise %sr %ca%sfoo%s%cb%sbar Âğ%caÂĞ auf ÂğfooÂĞ und Âğ%cbÂĞ auf ÂğbarÂĞ Beispielsweise setzt %sv a%s1127%sb%s054 ÂğaÂĞ auf 27. Nov und ÂğbÂĞ auf 4. Mai Damit bewirkt ein Âğ%s%s%s%s%s%s%s%sÂĞ %-3s die korrekte Umsetzung vorstehender Liste: %s[%s%s]%s...%s%s[%s%s] Liste: [%s%s]%s%s...%s[%s%s]%s Bereich: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s Bereich: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s Ausdrĵcken, die durch Âğ%sÂĞ-Zeichen getrennt sind KLEINBUCHSTABE ist, so bedeutet dies einen Nichtausschluss! L¤nder/Territorien liegt nur eine unvollst¤ndige Feiertagsliste vor Sonderzeichen in einem selbstdefinierten Datumformat, welches eine dem in Deutschland benutzten Zeichensatz verwendet werden die durch Âğ%sÂĞ-Zeichen verbunden werden. Von allen mit # markierten STIL-Formatanweisungskomponente aufweist, und zwar so, wie sie von # %c%c[%s|%s]N%s = Einzelner N-ter Wochentag relativ zu Ostersonntag # %c%c[%s|%s]N%s = Einzelner N-ter Wochentag relativ zu heute # %c%c[[%s|%s]N] = Einzelner Tag N relativ zu Ostersonntag # %c%c[[%s|%s]N] = Einzelner Tag N relativ zu heute # %c?[%s|%s]N%s = Einzelner N-ter Wochentag relativ zur Datumvariablen # %c?[[%s|%s]N] = Einzelner Tag N relativ zur Datumvariablen # %cdN = Einzelner absoluter Tag N # %cdN%s = Einzelner N-ter Wochentag %s # %cwN%s = Einzelner Wochentag %s der N-ten Woche # %s%s = Einzelner Tag %s im Monat %s # %s%sN = Einzelner N-ter Wochentag %s im Monat %s # A = Alternatives Listenformat verwenden # E = Nur gesetzliche Feiertage einfĵgen # J = Textfeld nicht ausgeben # NMOD = Einzelner Tag N relativ zu heute # Nd = Einzelner absoluter Tag N # Nw = Gesamte Woche N # Q = Terminliste ohne anfĵhrende Leerzeile ausgeben # U = Datumfeld nicht ausgeben # Z = Nur Daten ausgeben, fĵr die keine Termine vorliegen # a = Herkunft des Termins ausgeben # d = Aktuelles Datum in der Datumliste einschlieŸen # e = Gesetzliche Feiertage und Gedenktage einfĵgen # g[MOD] = Benutzt Trenntext MOD fĵr tageweise Gruppierung # k = Wochennummer ausgeben # l = Erzeugt eine Liste von Zeitr¤umen, anstelle eines einzelnen # m|M[MOD] = Datumliste des gesamten Monats # o = Datumfeld nur einmal ausgeben # t|T = Datumliste von morgen # w|W[MOD] = Datumliste der gesamten Woche # x = Terminliste ohne œberschrift ausgeben # y|Y[MOD] = Datumliste des gesamten Jahres # z = Fortlaufende Postennummer ausgeben 1. Darstellung des Textes 2. Berĵcksichtigter Zeitraum = ÂğTVAR[%s|%c%s]BEFEHLÂĞ Definitionen getrennt durch Âğ%sÂĞ Zeichen = abort Wie ÂğallÂĞ und Abbruch bei unhandhabbaren Dateinamen = all Wie ÂğhandledÂĞ und ÂğunhandledÂĞ zusammen = handled Wie ÂğinternalÂĞ und zudem gehandhabte Dateinamen = no Standard-Wochennummern = unhandled Wie ÂğinternalÂĞ und zudem nicht gehandhabte Dateinamen Aktuell berĵcksichtigter Zeitraum: %02d-%02d %s %0*d Aktuell: (%s) Âğ%sÂĞ (%s) Basiszeit der astronomischen Funktionen ¤ndern Basisjahr des Kalenders ¤ndern Zyklus-Endezeit ¤ndern Zyklus-Schrittweite ¤ndern Antwortdatei fĵr die Âğ%cDATEIÂĞ-Option erzeugen Shell-Script mit den Argumenten der Befehlszeile erzeugen Zus¤tzliche Ressourcendateizeile definieren Globale Datumvariable(n) "DVAR->a...d|f...s|u...|z" definieren Globale Textvariable(n) ÂğTVAR->%ca...%czÂĞ definieren Zu ĵbersetzende landesspezifische Sonderzeichenpaare definieren Art der Wochennummern bestimmen (aktuell: %s) Ausgabe durch externen Âğ%sÂĞ-Betrachter leiten Ausgabe durch einfachen internen Betrachter leiten Text, Feiertag bzw. aktuelles Datum ohne Hervorhebung ausgeben Ewige Feiertagsliste ausgeben (Jahr im Bereich: %d...%d) Erweiterten Hilfetext ausgeben und Programm beenden Hilfetext ausgeben und Programm beenden Nur die Termine ausgeben, deren Datum %s nicht ausschlieŸt Nur die Termine ausgeben, deren Datum %s nicht ausschlieŸt Softwarelizenz ausgeben und Programm beenden Einige Debug-Informationen ausgeben Versionsinformation ausgeben und Programm beenden Ewige Feiertagsliste ohne œberschrift ausgeben fĵhrt Âğ%c%c[%s]ÂĞ Shell-Befehle Lokale Datumvariablen von Datei zu Datei exportieren Lokale Textvariablen von Datei zu Datei exportieren Bel¤sst Hervorhebungssequenzen der Ausgabe bei einer Ausgabeumlenkung Fallunterscheidung ignorieren, wenn Âğ%sÂĞ angegeben wurde Impliziert Zeitraum: Heute Auf-/Untergangszeiten der Sonne auf den Tag beschr¤nken Format des Jahreskalenders festlegen Kalenderblatt mit Wochennummern versehen Ewige Feiertagsliste mit BahĦ'i Feiertagen versehen Ewige Feiertagsliste mit BahĦ'i Monaten versehen Ewige Feiertagsliste mit keltischen Feiertagen versehen Ewige Feiertagsliste mit chinesischen Feiertagen versehen Ewige Feiertagsliste mit chinesischen Monaten versehen Ewige Feiertagsliste mit flexiblen chinesischen Feiertagen versehen Ewige Feiertagsliste mit flexiblen chinesischen Monaten versehen Ewige Feiertagsliste mit christlichen Feiertagen versehen Ewige Feiertagsliste mit koptischen Monaten versehen Ewige Feiertagsliste mit ¤thiopischen Monaten versehen Ewige Feiertagsliste mit franz. Revolutionskalendermonaten versehen Ewige Feiertagsliste mit hebr¤ischen Feiertagen versehen Ewige Feiertagsliste mit hebr¤ischen Monaten versehen Ewige Feiertagsliste mit indischen Monaten versehen Ewige Feiertagsliste mit islamischen Feiertagen versehen Ewige Feiertagsliste mit islamischen Monaten versehen Ewige Feiertagsliste mit japanischen Feiertagen versehen Ewige Feiertagsliste mit japanischen Monaten versehen Ewige Feiertagsliste mit flexiblen japanischen Feiertagen versehen Ewige Feiertagsliste mit flexiblen japanischen Monaten versehen Ewige Feiertagsliste mit alt-armenischen Monaten versehen Ewige Feiertagsliste mit alt-¤gyptischen Monaten versehen Ewige Feiertagsliste mit neu-orthodoxen Feiertagen versehen Ewige Feiertagsliste mit alt-orthodoxen Feiertagen versehen Ewige Feiertagsliste mit persischen Feiertagen versehen Ewige Feiertagsliste mit persischen Monaten versehen Ewige Feiertagsliste mit astronomischen Daten versehen Ewige Feiertagsliste mit landesspezifischen Feiertagen versehen Ewige Feiertagsliste mit multikulturellen Neujahren versehen Ewige Feiertagsliste mit Tierkreiszeichen versehen Astronomische Zeiten und Daten mit hĥchster Genauigkeit darstellen Den Sinn des Vergleichs der Âğ%sÂĞ Option umkehren Versenden der Ausgabe via Âğ%sÂĞ Programm an Benutzer Setzt Exit-Status des Programms auf %d bei Âğ%sÂĞ etc. Basisdaten der Erdatmosph¤re festlegen Verwendet Hervorhebungssequenz-Paare 1 (=aktueller Tag) und 2 (=Feiertag) Anordnung der Datumelemente mit dem Formattext %s festlegen Zeitraum der Gregorianischen Reformation setzen Referenzwert fĵr Auf-/Untergangszeit bzw. Schattenl¤nge festlegen Starttag der Woche festlegen (aktuell: %s) Ewige Feiertagsliste ohne anfĵhrende Leerzeile ausgeben Ausgabe des Kalenderblattes explizit unterdrĵcken Benutze alternative Datei(en) anstelle Standard-Ressourcendatei Fortlaufenden Tag des Jahres im Kalenderblatt verwenden Fortlaufenden Tag des Jahres in ewiger Feiertagsliste verwenden Fortlaufenden Tag des Jahres in Terminliste verwenden Schaltjahrregel der ĥstlichen orthodoxen Kirchen verwenden Spezial-Kalenderformat fĵr Kalenderblatt verwenden Standard-Ressourcendatei Âğ%s%sÂĞ fĵr Terminliste benutzen Standard-Ressourcendatei Âğ.%s%sÂĞ fĵr Terminliste benutzen und ÂğTVAR[%s|%c%s]BEFEHLÂĞ Zuweisungen aus beziehungsweise Zyklus-Startzeit ¤ndern %-3s = Einzelne Datei oder durch Âğ%sÂĞ Zeichen verbundene Liste von Dateien [MOD] = %s Absteigend sortiert [MOD] = Einer oder mehrere der folgenden Modifizierer; hier markiert mit # %-*d%*s = Zeitraum setzen auf: %02d-%02d %s %0*d %-3s = "DVAR%s%s%s" Definitionen getrennt durch Âğ%sÂĞ Zeichen %-3s = ÂğTVAR%sTEXTÂĞ Definitionen getrennt durch Âğ%sÂĞ Zeichen %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Endezeitwert (aktuell: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Zeitversatzwert (aktuell: %s%02d%s%02d == GMT%s) %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Zeitversatzwert (aktuell: %s%02d%s%02d == GMT%s) %-3s = %s%c%s%s%s%s%s%s Setzt Zeitraum explizit %-3s = 1|2|3|4|6|12 Anzahl der Blĥcke (aktuell: %d) %-3s = Luftdruck und Temperatur getrennt durch Âğ%sÂĞ-Zeichen %-3s = Winkelwert bzw. Faktor im Bereich: %+.1f...%+.1f %-3s = Jede mĥgliche Zeile einer Ressourcendatei %-3s = Jeder beliebige Text oder Âğregul¤re AusdruckÂĞ %-3s = Eigenes Format definieren. Berĵcksichtigte Formatelemente sind: %-3s = Dateiname des Shell-Scripts %-3s = Durch Âğ%sÂĞ Zeichen getrennte Hervorhebungssequenz-Paare %-3s = Liste von Âğ%c[DATUM][%c[DATUM]]ÂĞ und/oder Âğ%c[DATUM][%c[DATUM]]ÂĞ %-3s = MMMM|HH%s[MM] Schrittweitenwert (aktuell: %02d%s%02d) %-3s = Eines oder mehrere der folgenden Zeichen. Wenn Zeichen ein %-3s = Einzelner Landes- oder Territoriumskode bzw. Liste dieser, %-3s = Argumente der Befehlszeile in Datei %s schreiben %-3s = Definitionen fĵr GROSS- und KLEINBUCHSTABEN %-3s = [%s|%s]JJJJ Jahrversatzwert (aktuell: %d) %-3s = yes ISO-8601:1988 Wochennummern %-6s = Format ist: Âğ%sÂĞ (%s) C = Auch die Daten ausgeben, zu denen keine Termine vorliegen F = Auch die Daten ausgeben, zu denen keine Termine vorliegen N = Nur gesetzliche Feiertage [MOD] = b Beide Datumnotationen (Tag des Monats+Jahres) verwenden %sL, %s Softwarelizenz ausgeben und Programm beenden %sV, %s Versionsinformation ausgeben und Programm beenden %sh, %s Diesen Hilfetext ausgeben und Programm beenden %shh, %s Erweiterten Hilfetext ausgeben und Programm beenden %sp, %s Ausgabe durch externen Âğ%sÂĞ Betrachter lenken %sp, %s Ausgabe durch einfachen internen Betrachter lenken [%-3s] = E-Mail Adresse, sonst E-Mail-Versand an Benutzer Âğ%sÂĞ [%-3s] = internal Informationen bei Erreichen programminterner Maxima [MOD] = - Standard-Kalenderformat fĵr Kalenderblatt verwenden [MOD] = b Beide Datumnotationen (Tag des Monats+Jahres) verwenden (%.4s fĵr Alpha) (%.4s fĵr VAX) (BSD/386 1.1 oder neuer) (FreeBSD 2.0 oder neuer) (NetBSD 1.2 oder neuer (NetBSD vor 0.9) 1.0 oder 1.5?4.0 oder 4.02 ; Woche %s = %+4d Tag = %+4d Tage ÂğHIERÂĞ c = Nur die Daten ausgeben, zu denen Termine vorliegen tag f = Nur die Daten ausgeben, zu denen Termine vorliegen neuer als 4.5neuer als 5.0 n = Gesetzliche Feiertage und Gedenktage am # Tagesnummer (muss festgelegt werden)# Monatsname# Monatsnummer# Wochentagsname (darf festgelegt werden)# Jahresnummer (muss festgelegt werden)%cDATUM%cDATEI%s = Monat im Bereich: %d...%d%s im Suchmuster Âğ%sÂĞ%s-Teilprozess%s-Teilprozess fehlgeschlagen%s-Teilprozess erhielt ein schwerwiegendes Signal %d%s%*s = Jahr im Bereich: %d...%d%s%s enth¤lt nun %d Maximaleintr¤ge!%s%s: fĵr weiter , <%s> zum Beenden...%s: Das Gregorianische Kalenderprogramm (GNU cal) %s%s: Benutzt Âğ%s %sÂĞ mit einem dieser Argumente%s: Abbruch, %s: Es wurde ein Befehl in Umgebungsvariable Âğ%sÂĞ angegeben -- %s %s %s %s: Fehler bei Programmausfĵhrung von Âğ%sÂĞ %s: Datei nicht gefunden %s: ungĵltiges Datum angegeben -- %c%s %s %s %s: ungĵltiges Datum angegeben -- %s %s %s %s: ungĵltige Option -- %s%s: keine regul¤re Datei %s: Option Âğ%sÂĞ erlaubt kein Argument%s: Option Âğ%sÂĞ ist mehrdeutig%s: Option Âğ%sÂĞ benĥtigt ein Argument%s: Option Âğ--%sÂĞ erlaubt kein Argument%s: Option Âğ--%sÂĞ benĥtigt ein Argument%s: Option benĥtigt ein Argument -- %s%s: Option mit mehrdeutigem Argument -- %s%s: Option mit ungĵltigem Argument -- %s%s: unbekannte Option Âğ%sÂĞ%s: Achtung, die inhaltslose E-Mail wurde nicht an <%s> versendet. %s:%*sDas Jahr %0*d ist ein Schaltjahr%s:%*sDas Jahr %0*d ist kein Schaltjahr%s:%*sDas Jahr %d ist ein Schaltjahr%s:%*sDas Jahr %d ist kein Schaltjahr(Âğ%sÂĞ) Datumformat Âğ%sÂĞ ist ungĵltig(fehlerhafte Version)++ 1.0 oder neuer++ 3.0 oder neuer+++ TERMINE +++Erster AdventErster FrĵhlingssonntagZweiter AdventZweiter FrĵhlingssonntagDritter AdventDritter FrĵhlingssonntagVierter AdventVierter Frĵhlingssonntag5.1 oder ¤lter7-5-3-Fest.AUSRICHTUNGS-Gruppe (genau ein Element muss definiert werden):AMAARGTag der AboriginesAdelaide-Pokal-TagTag der AufnahmeAfghanistanAga Khans GeburtstagAlaska-TagAlbanienAleksis-Kivi-TagAlgerienAlice-Springs AusstellungstagErster AprilAllerheiligenVorabend AllerheiligenAllerseelenAlle mit # markierten Formatelemente dĵrfen optional nochTag des AlphabetsAmerikanisch-SamoaAmerika-TagAndorraAngam-TagAngola #AnguillaJahrestag der Nachfolge AmirsJahrestag des bewaffneten KampfesJahrestag von AucklandJahrestag von Canterbury-NordJahrestag von Canterbury-SĵdJahrestag der Chatham-InselnJahrestag des Grĵnen MarschesJahrestag von Hawkes' BayJahrestag von MarlboroughJahrestag von NelsonJahrestag von OtagoJahrestag von SouthlandJahrestag von TaranakiJahrestag von WellingtonJahrestag von WestlandringfĥrmigAntigua und BarbudaTag der AntillenAnzac-TagAprAprilTag der Arabischen LigaTag des BaumesErzbischof Makarios' GedenktagErzbischof Makarios' NamenstagJahrestag von ArengoArgentinienArgument Âğ%sÂĞ in der Befehlszeile ignoriertTag der Streitkr¤fteArmenienWaffenstillstandstagTag des Milit¤rputschesAnkunft der SchweizerArtigas' GeburtstagArubaAbdu'l-Bahas HimmelfahrtBaha'u'llahs HimmelfahrtRosenmontagAschermittwochAshuraAstAsuncion-TagAtatĵrk-GedenktagAugAugustAustralienAustralien/CanberraAustralien/NeusĵdwalesAustralien/NordterritoriumAustralien/QueenslandAustralien/SĵdaustralienAustralien/TasmanienAustralien/VictoriaAustralien/Westaustralien–sterreichTag der AmtsgewaltskraftAserbaidschanBa'ath-RevolutionstagBackslashzeichen (Âğ%cÂĞ)BahBahamasBahrainBahĦ'i NeujahrBangladesch #BankenfeiertagBarbadosBaron-Bliss-TagBaskischer NationalfeiertagBataan-TagSchlacht von AngamosSchlacht von BoyacĦSchlacht von BoyneSchlacht von CaraboboSchlacht von IquiqueSchlacht von Las PiedrasSchlacht von N¤felsSchlacht von PueblaBeginn des FinanzjahresSommeranfangWeiŸrusslandBelgienBelgrad-TagBelizeBeltaneBenin #Benito-JuĦrez-TagSchlacht von BenningtonBermudaBhutan #Baha'u'llahs GeburtstagGeburt des BabSegnung des WassersBlĵtentagBodhidharmas GeburtstagBoganda-TagBolivienBonaire-TagSchlacht von BoqueronBosnien-HerzegowinaCheftagBotswanaBotswana-TagBounty-TagBouvetinselZweiter WeihnachtstagBrasilienTag des Einholens der HerdenTag des Einbringens der ErnteBritische JungferninselnSultanat BruneiBuddhas GeburtstagBulgarienSchlacht von Bunker HillBurkina FasoVerbrennung des Jan HusRobert-Burns-NachtBurundi #C. Mapinduzi-TagBEFEHLKWKĥnigreich KambodschaKamerunCamoes-TagKanadaKanada/AlbertaKanada/Britisch-KolumbienKanada/ManitobaKanada/NeubraunschweigKanada/Neufundland und LabradorKanada/Nordwest-TerritorienKanada/NeuschottlandKanada/OntarioKanada/Prinz-Edward-InselKanada/QuİbecKanada/SaskatchewanKanada/YukonCanberra-TagDer Lunisolarkalender fĵr %d kann nicht korrekt berechnet werdenBefehl kann nicht ausgefĵhrt werden in Datei Âğ%sÂĞ Zeile %ld: %sRepublik Cabo VerdeCaricom-TagKarnevalCasimir Pulaskis GeburtstagCassinga-TagCatherine-AusstellungstagCayennefestKaimaninselnKelZentralafrikanische Republik #Cesar-Chavez-TagTschadZeichenersetzung:Urkunden-TagChen/DracheChiChiang Kai-sheks GeburtstagTag der KinderWeiŸer Sonntag der KinderChileChinaChinesisches NeujahrVorabend Chinesisches NeujahrChou/RindChrChristi HimmelfahrtErster WeihnachtstagHeiliger AbendWeihnachtsinselChrysanthementagBĵrgerschaftstagBĵrgerlicher FeiertagKokosinseln (Keeling)KolumbienColon-TagColorado-TagKolumbustagTag der Vollj¤hrigkeitBefehl ausgefĵhrt (Status=%d) in Datei Âğ%sÂĞ Zeile %ld: %sTag des CommonwealthUnion der KomorenVertragstagKompiliert mit %s%s fĵr %s%s%s%sTag des BĵndnisabkommensKonfuzius' GeburtstagJahrestag der VerfassungCookinselnKoptisches NeujahrKrĥnungstagKosmonautentagCosta RicaerstelltKroatienTag der KreuzerhebungKubaKulturtagPokalspiel-TagBrauchtumschefs-TagZyklusZypernTschechienElfenbeinkĵsteTDarwin-AusstellungstagDatumformat: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Tag nach dem Fest der HerbstmitteTag nach dem Tag des GrabkehrensAndalusien-TagKatalonien-TagTag der Tschechischen StaatlichkeitGalizien-TagTag des WohlwollensBuŸ- und BettagTag der AussĥhnungTag der StudentenrevolteTag des BundesTag des freien LaosTodestag von H. ChristopheTodestag von J. DessalinesTodestag von Pr¤sident AbdallahTodestag von Pr¤sident CheikhTodestag von Pr¤sident SoilihTodestag von Qaid-i-AzamTodestag von T. LouvertureDezDezemberErkl¤rung des BabTag der VerteidigerTag der MutterlandverteidigerDemokratische Volksrepublik KoreaDemokratische Republik Kongo #D¤nemarkDia de los MaestrosDia del PadreTag der EntdeckungDschibutiDominicaDominikanische RepublikTag der Doppel-9Sturz des DergenDr. Sun Yat-sens GeburtstagDrachenbootfestFeier der TrockenzeitDuartes GeburtstagTag des HerrscherhausesE. Hostos' GeburtstagEGAOstermontagOstersonntagOsterdienstagTag der wirtschaftlichen BefreiungEcuador„gyptenEid-al-AdhaEid-al-FitrEid-i-Midlad-un-NabiAcht-Stunden-TagEindhovens BefreiungEl SalvadorWahltagWahl zur NationalversammlungFehlerberichte bitte mittels E-Mail an <%s>EmoGeburtstag des KaisersEnde von Hervorhebungssequenz/MarkierungszeichenEpiphanias/Heilige Drei Kĥnige„quatorialguineaTagundnachtgleicheEritreaErrol-Barrow-TagEstlandEwige Feiertagsliste„thiopien„thiopisches NeujahrTag der AussiedlungVorabend EpiphaniasExpedition der 33FAO-TagFORMAT-Gruppe (genau ein Element muss definiert werden):FRRFalklandinseln (Malvinas)Tag der FamilieTag der LandwirteF¤rĥer-InselnVater-Leval-TagVatertagFronleichnamGlĵcksfestHerz-Jesu-FestFest des TheotokosFebFebruarFĥderierte Staaten von MikronesienLaternenfestSadehfestFeldinhalt in WortgroŸschreibung umwandelnFeldinhalt in Kleinbuchstaben umwandelnFeldinhalt in GroŸbuchstaben umwandelnFeldinhalt wird nach Position BREITE abgeschnittenFeldinhalt wird nicht nach Position BREITE abgeschnittenFeldinhalt linksbĵndig im Feld der Breite BREITE anordnenFeldinhalt rechtsbĵndig im Feld der Breite BREITE anordnenFeldinhalt mittig im Feld der Breite BREITE anordnenFeld hat die Breite N (%d...%d)Republik Fidschi #FinnlandErster Tag des RidvanTag der FischerTerminliste:FlaggentagFl¤mischer-KulturtagRepublik MazedonienGrĵndungstag der NPLAGrĵndungstag der VolksparteiGrĵndungstag der Kommunistischen ParteiFrFrankreichFranzĥsischer-KulturtagFranzĥsisch-GuyanaFranzĥsisch-PolynesienJahrestag der Franzĥsischen RevolutionFreFreitagFreitageFreundschaftstagVollmondGNU gcal Webseite: <%s>Gabun #GambiaGarifuna-TagJahrestag General San MartinAllgemeine Hilfe zur Benutzung von GNU-Software: <%s>GeorgienTag der Deutschen EinheitDeutschlandDeutschland/Baden-WĵrttembergDeutschland/BayernDeutschland/BerlinDeutschland/BrandenburgDeutschland/BremenDeutschland/HamburgDeutschland/HessenDeutschland/NiedersachsenDeutschland/Mecklenburg-VorpommernDeutschland/Nordrhein-WestfalenDeutschland/Rheinland-PfalzDeutschland/SaarlandDeutschland/SachsenDeutschland/Sachsen-AnhaltDeutschland/Schleswig-HolsteinDeutschland/ThĵringenGhadirGhanaGibraltarKarfreitagKarsamstag/OstervorabendGospel-TagGroŸelterntagGroŸbritannienGroŸbritannien/England und WalesGroŸbritannien/NordirlandGroŸbritannien/SchottlandGriechenlandTag der UmweltGrĥnlandGrenadaGrotten-TagMurmeltier-TagGuacanaste-TagTag der Jungfrau von GuadalupeGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Gustav-Adolph-TagGuyana #Hai/SchweinHaitiReformationstagChanukka/LichterfestGesundheits- und SporttagHeard und McDonald-InselnHebTag der ErbschaftTag der HeldenHervorhebung-Gruppe (alle Element mĵssen definiert werden):Ho Chi Minhs GeburtstagHobart AusstellungstagTag der heiligen UnschuldigenHeilige DreifaltigkeitMittwoch vor OsternHondurasHongkongTag der MenschenrechteUngarnHuravee-TagTag des HurrikananflehensHurrikan-ErntedankfestIslandHandhabung dieser Software hervorgehen, wird grunds¤tzlichImamat-TagImbolgUnabh¤ngigkeitstagTag der Unabh¤ngigkeitsbewegungVerkĵndung der Unabh¤ngigkeitUnabh¤ngigkeit von CartagenaUnabh¤ngigkeit von CuencaUnabh¤ngigkeit von GuayaquilUnabh¤ngigkeit von QuitoIndien #Ankunft der InderIndisches NeujahrIndonesien #IntinternTag der internen AutonomieUngĵltiges Argumente in der Befehlszeile -- %sUngĵltiger Rĵckw¤rtsbezugUngĵltiger Name der ZeichenklasseUngĵltiges VergleichszeichenUngĵltiger Inhalt von \{\}Ungĵltiger vorangestellter regul¤rer AusdruckUngĵltiges BereichsendeUngĵltiger regul¤rer AusdruckIrakIrlandIslIslamisches NeujahrIslamische Republik IranIsraelItalienJ. Barbosas GeburtstagJ.-Chilembwe-TagJ.-Diegos-GeburtstagJ.-Roberts-GeburtstagJamaikaJanJanuarJapJapanJapanisches NeujahrVorabend Japanisches NeujahrJefferson Davis' GeburtstagBeschneidung JesuJordanienJulJuliJunJuniJunifeiertagKamarampaka-TagKartini-TagKasachstanKenia #Kiew-TagKim-Il-Sung-GeburtstagKim-Jong-Il-GeburtstagKĥnig-Kamehameha-TagKĥnig Rama I Gedenktag/ChakriKĥnig Rama V GedenktagKiribati #KnabenschieŸenKonstantin und MethodiusEmirat KuwaitKwanzaaKirgisistanL. Riveras GeburtstagTag der ArbeitArbeiter-ErntedanktagLag Beomer/Rabbi Jochais TodestagLao Tses GeburtstagDemokratische Volksrepublik Laos #Nationalfeiertag der LappenLettlandLaunceston-Pokal-TagSchalttag auf Âğ%02d-%sÂĞ gesetzt in Datei Âğ%sÂĞ.LibanonLesothoTag der BefreiungLiberiaFreiheitstagArabischer Staat LibyenLiechtensteinZeile %ld ignoriert: %sZeile %ld: %sLitauenVerlust des MoslemstaatsLughnasaMondfinsternisLuxemburgLuxemburg-Stadt KirmesLyndon-B.-Johnson-TagMdie TAUGLICHKEIT oder die VERWENDBARKEIT ZU EINEM ANGEGEBENEN ZWECK.MacaoMadagaskar #Madaraka-TagMahatma Gandhis GeburtstagE-Mail von \Âğ%sÂĞ (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaledivenMaliMaltaMalvinas-TagManila-TagMao/HaseMaputo-Stadt-TagMrzM¤rzMarien-Ngouabi-TagTag der MarineMarshallinselnMartin-Luther-King-TagSt. MartinMartiniqueM¤rtyrerschaft des BabTag der M¤rtyrerMari¤ - Mutter GottesMari¤ VerkĵndigungMari¤ HimmelfahrtMari¤ LichtmessMari¤ ErwartungMari¤ Empf¤ngnisMari¤ MutterschaftMari¤ NamenMari¤ GeburtMari¤ OpferungMari¤ HeimsuchungMaryland-TagGrĵndonnerstagMauretanienMauritiusMaiMaiMaifeiertagMayotteMelbourne-Pokal-TagHauptspeicher ist aufgebrauchtTag des HandelsMexikoMi-CarŞme-TagFest der HerbstmitteFest der FrĵhlingsmitteFest der JahresmitteTag der MissionierungMoMonMonacoMontagMontageMontage...FreitageMontage...DonnerstageMongolei #Monat-Gruppe (genau ein Element muss definiert werden):MontserratMorazan-TagMarokkoMosheshoes-TagSchwiegermutter-TagMuttertagMutterschafts- und SchĥnheitstagMozambikMusikwasser-BankettRepublik der Union Myanmar (Burma) #NamibiaNamenstagSticky Bun DayTag der StaatsgrĵndungTag der NationalheldenNationalfeiertagVolkstrauertagNationaler WiedergutmachungstagTag des nationalen WiderstandesTag der nationalen ErneuerungTag der nationalen EinheitNauruNdadaye-TagNepal #NiederlandeNiederl¤ndische Antillen/BonaireNiederl¤ndische Antillen/Cura§aoNiederl¤ndische Antillen/Saba und StatiaNiederl¤ndische Antillen/St. MaartenNeutralit¤tstagNevada-TagNeukaledonienNeumondJahrestag der neuen RegierungNeujahrNeuseelandNicaraguaNigerNigeriaNeunter Tag des RidvanNiueKeine œbereinstimmungKein vorhergehender regul¤rer AusdruckNobel-TagNoi-TagNĥrdliche Marianeninseln (Saipan)Noruz/Persisches NeujahrNorwegenNovNovemberNumerischen Wert mit fĵhrenden Nullen auffĵllenNumerischen Wert mit Ordnungszahlanhang versehenNumerischen Wert mit fĵhrendem Vorzeichen versehenKinderm¤dchen-TagNuzul-al-Qur'anOAU-TagOPTIONOktOktoberOktoberfeiertagTag der –lindustrieAltarmenisches NeujahrAlt¤gyptisches NeujahrSultanat OmanVerwendungsf¤higkeit oder Korrektheit. Fĵr JEDWEDE Sch¤denOrthodoxes NeujahrTag der Jungfrau AparecidaTag der Jungfrau von AltagraciaTag der Jungfrau von CamarinTag der Jungfrau von Las MercedesTag der Jungfrau von Los AngelesTag der Jungfrau der sieben LeidenTag der Jungfrau der SiegeOxNOxOPakistanPalauPalmsonntagPanamaPanama Stadt-TagPanamerikanischer-TagPapua-NeuguineaParaguayTag der ElternTag des Pariser FriedensabkommenspartiellPassionssonntagTag der PatriotenFriedensfestPfirsichfestpenumbral/ringfĥrmigTag der VolksmassenTag des VolksaufstandsPerProzentzeichen (Âğ%cÂĞ)PeruPessach/PassahfestPhilippinisch-amerikanisches FreundschaftsfestPhilippinenPhyPichincha-TagPicknick-TagTag der PionierePitcairninselnPolenPortugalPoya-TagBettagL¤dt Optionen und Befehle aus ÂğDATEIÂĞ vorVorzeitiges Ende des regul¤ren AusdrucksPr¤sident Lincolns GeburtstagAmtseinfĵhrung des Pr¤sidentenTag des Pr¤sidentenBerichtstag des Pr¤sidentenPrinz-Kalanianaole-TagPrinz von Wales' GeburtstagPrinzessin-TagTag der VerkĵndungPuerto RicoPurim/LosfestQaid-i-Azams GeburtstagKatarQuds-TagQuinquagesima-SonntagRamadanRatu-Sukuma-TagTag der ErholungTag des VolksentscheidsReformationstagRegattatagWechsel der RegentschaftRegul¤rer Ausdruck ist zu groŸGedenktagTag der RepublikRepublik Kongo #Republik KoreaRepublik MoldawienTag der AhnenverehrungWiederherstellungstagTag der WiederkehrTag der WiedervereinigungTag der RevolutionJahrestag von Rio de JaneiroRizal-TagSonntag RogateRum¤nienRosch Haschana/NeujahrRussische Fĥderation (Russland)Rwagasore-TagRuandaRİunionS. Does' GeburtstagGrĵndungstag des Such-Rettungsdienstes SARVORZEICHEN (darf definiert werden):STIL-Gruppe (genau ein Element darf definiert werden):ANHANG (kann definiert werden):SaSaba-TagSaint-Pierre und MiquelonSamhain/Keltisches NeujahrSamoaSan-Jacinto-TagSan-Josİ-TagSan MarinoJahrestag Sao PauloSao Tomİ und PrincipeSapporo-SchneefestSamSamstagSamstageSaudi-ArabienSchulfeiertagJahreszeitenwechsel/BohnenfestSechsel¤uten/S¤chsilĵĵteSenegalSepTrennungstagSeptemberSonntag SeptuagesimaSerbien und MontenegroSeretse-Khama-TagTag der SiedlerSiebenschl¤ferSewards-TagSonntag SexagesimaSeychellenShab-e QadrShab-e-Bara'tShab-e-Mi'rajShaheed-TagSchawuot/Fest der ToraĵbergabeSchaffestScheich Zayeds HimmelfahrtShen/AffeFastnacht/FaschingSchuschan PurimSi/SchlangeSierra LeoneSimchat Tora/GesetzesfreudenfestSimon-Bolivar-TagTag der Befreiung SinaisSingapur #Tag der SklavenbefreiungSlowakeiSlowenienTag des BriseschnuppernsSonnenfinsternisSolidarit¤tstagSalomon-InselnTag der SonnenwendeSomaliaSomers-TagTag der RĵckkehrRepublik SĵdafrikaSĵdgeorgien und die Sĵdlichen SandwichinselnLeerzeichen (Âğ%cÂĞ)SpanienFrĵhlingsfestSri Lanka #St. AgataSt. AndreasSt. Bartholom¤usSt. BerchtoldSt. KnutSt. CediliaSt. KarlSt. DavidSt. DemeterSt. DİvoteSt. EduardSt. EliahSt. GeorgSt. HelenaSt. JakobSt. Jean BaptisteSt. Johann/MittsommerfestSt. Johann/JohannistagSt. JosefSt. Kitts und NevisSt. LaurentiusSt. LuciaSt. LuziaSt. MargaretheSt. MarounSt. MichaelSt. NikolausVorabend St. NikolausSt. OlafVorabend St. OlafSt. PatrickSchiffbruch St. PaulSt. Peter und St. PaulSt. Rose von LimaSt. StefanSt. UrsulaSt. Valentin/ValentinstagSt. Vincent und GrenadinenSt. Vincent de PaulStandardSternenfestBeginn GemeinmonatStart von Hervorhebungssequenz/MarkierungszeichenBeginn SchaltmonatSt. Eustatius-AmerikatagTag der StudentenSoerfolgreichSudanSuez-SiegestagSukkot/LaubhĵttenfestSultan Qaboos' GeburtstagSonSonntagTotensonntagSonntageSuriname #Spitzbergen und Jan MayenSvetitskhovlobaSchwalbentagSwasilandSchwedenSchweden-TagFreundestagSchweizSchweiz/AargauSchweiz/Appenzell AusserrhodenSchweiz/Appenzell InnerrhodenSchweiz/Basel-LandschaftSchweiz/Basel-StadtSchweiz/BernSchweiz/FreiburgSchweiz/GenfSchweiz/GlarusSchweiz/GraubĵndenSchweiz/JuraSchweiz/LuzernSchweiz/NeuenburgSchweiz/NidwaldenSchweiz/ObwaldenSchweiz/SchaffhausenSchweiz/SchwyzSchweiz/SolothurnSchweiz/St. GallenSchweiz/ThurgauSchweiz/TessinSchweiz/UriSchweiz/WallisSchweiz/WaadSchweiz/ZugSchweiz/ZĵrichSilvesterArabische Republik SyrienTaiwanTadschikistanTansaniaTag der LehrerTennant-Creek AusstellungstagTerritoriumstagDoThail¤ndisches NeujahrThailand #ErntedankfestGeburtstag des KronprinzenGeburtstag der KronprinzessinNamenstag der KronprinzessinGeburtstag des KĥnigsNamenstag des KĥnigsGeburtstag der KĥniginNamenstag der Kĥniginund Kopierbedingung. Es gibt KEINERLEI Garantie, nicht einmal fĵrDies ist freie Software; in den Quellen befindet sich die Lizenz-Dieses Programm ist freie Software. Sie kĥnnen es gem¤Ÿ denDiese Software erhebt keinen Anspruch auf Vollst¤ndigkeit,DonDonnerstagDonnerstageTiradentes-TagTischa b'Aw/FastentagTogo #TokelauTag des GrabkehrensTongaTopou-I-Tagvollst¤ndigTag des St¤dtetreffensTraditionstagAnh¤ngender linksseitiger Schr¤gstrich (Backslash)Tag der œbertragungVerkl¤rung ChristiTrinidad und Tobago #Truman-TagEs wird versucht, Ebene: %02d der einzubindende Datei Âğ%sÂĞ zu ĥffnen... %s%s%sEs wird versucht, %s Ressourcendatei Âğ%sÂĞ zu ĥffnen... %s%s%sEs wird versucht, %s Âğ%sÂĞ zu schreiben... %s%s%sDiTu Beschewat/Neujahr der B¤umeDieDienstagDienstageTunesienTĵrkeiTurkmenistanTurks- und CaicosinselnTuvaluZwĥlfter Tag des RidvanTynwald-TagAmerikanische JungferninselnUSAUNBEKANNTUgandaUkraineUnterstrichzeichen (Âğ%cÂĞ)Tag der Union/Tag des BundesUnion mit Schweden aufgelĥstVereinigte Arabische EmirateTag der Vereinten NationenUSAUSA/AlabamaUSA/AlaskaUSA/ArizonaUSA/ArkansasUSA/KalifornienUSA/ColoradoUSA/ConnecticutUSA/DelawareUSA/District of ColumbiaUSA/FloridaUSA/GeorgiaUSA/HawaiiUSA/IdahoUSA/IllinoisUSA/IndianaUSA/IowaUSA/KansasUSA/KentuckyUSA/LouisianaUSA/MaineUSA/MarylandUSA/MassachusettsUSA/MichiganUSA/MinnesotaUSA/MississippiUSA/MissouriUSA/MontanaUSA/NebraskaUSA/NevadaUSA/New HampshireUSA/New JerseyUSA/New MexicoUSA/New YorkUSA/North CarolinaUSA/North DakotaUSA/OhioUSA/OklahomaUSA/OregonUSA/PennyslvaniaUSA/Rhode IslandUSA/South CarolinaUSA/South DakotaUSA/TennesseeUSA/TexasUSA/UtahUSA/VermontUSA/VirginiaUSA/WashingtonUSA/West VirginiaUSA/WisconsinUSA/WyomingTag der FabrikvereinigungUnbekannter SystemfehlerUnpaarige runde Klammer ( oder \(Unpaarige runde Klammer ) oder \)Unpaarige geschweifte Klammer \{UruguayAufruf: %s [--%s | --%s] | [--%s=[+|-]ZAHL] [ARGUMENT...] Aufruf: %s [--%s | --%s] | [RESSOURCENDATEI | -] Aufruf: %s [--%s | --%s] | [TEXTDATEI | -] [DATUMTEIL] Aufruf: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Aufruf: %s [[OPTION...] [%cDATUM] [%cDATEI...]] [BEFEHL]Aufruf: %s [[OPTION...] [%cDATEI...]] [BEFEHL]Verwenden Sie Âğ%s %s|[%s?]Vorgegebenes ÂğDATUMÂĞ anstelle des heutigen Datums verwendenUsbekistanWalpurgisnachtVanuatuVenezuelaKarneval in VenedigVeteranentagVictor-Schoelcher-TagVictoria-TagSiegestagVidovdanSozialistische Republik VietnamWW.-Tubmans-GeburtstagBREITE (muss definiert werden):Wallis und FutunaAbnehmender HalbmondWaqf-al-ArafatZunehmender HalbmondMiMitMittwochMittwocheWocheWoche %sWei/SchafWest-Virginia-TagWestsaharaPfingstmontagPfingstvorabendPfingstsonntagFrauentagWeiberfastnachtWelt-TierschutztagWu/PferdXu/HundJYap-TagJemenYin/TigerJom Ha-Azmaut/Unabh¤ngigkeitstagJom Haschoa/Holocaust-GedenktagJom Hasikaron/Soldaten-GedenktagJom Kippur/VersĥhnungstagJom Jeruschalajim/Jerusalem-TagSie sollten eine Kopie der ÂğGNU General Public LicenseÂĞYou/HahnJugendtagNULL (darf definiert werden):SambiaZi/RatteSimbabweZod[AUSRICHTUNG [VORZEICHEN] [NULL] BREITE [STIL] [ANHANG] FORMAT]_open_osfhandle fehlgeschlagenÂğ%sÂĞ Zeile %ld: (Âğ%sÂĞ) Âğ%s%dÂĞ fehlgeschlagenÂğ%sÂĞ Zeile %ld: (Âğ%sÂĞ) ungĵltiger Wert fĵr TabellengrĥŸe Âğsizeof %s>%dÂğ%sÂĞ Zeile %ld: (Âğ%sÂĞ) unbehandelter Fehler (%d)Âğ%sÂĞ Zeile %ld: virtueller Speicher ist aufgebraucht (%s=%d)ÂğEwige FeiertagslisteÂĞÂğInternÂĞÂğtermcapÂĞ-Datei wurde nicht vorgefundenkeine Haftung ĵbernommen. Bei Verwendung dieser Software erkl¤rt sich der Benutzer mit dieser Vereinbarung in vollem Umfang einverstanden.zusammen mit diesem Programm erhalten haben; falls nicht, schreiben Sie bitte an:amjeder sp¤teren Version — weitervertreiben und/oder ver¤ndern.Weiterleitung (pipe) kann nicht erzeugt werdenWiederherstellung fd %d: dup2 fehlgeschlagenBefehlszeileeine Formatierungswanweisung dieser Form enthalten:d'"GrundeinstellungUmgebungsvariableUmgebungsvariable Âğ%sÂĞ nicht vorhandenUmgebungsvariable Âğ%sÂĞ nicht gesetztgescheitertDatei Âğ%sÂĞ kann nicht geschrieben werden, Speichermedium ist vollst¤ndig belegt!Datei Âğ%sÂĞ nicht gefundenfĵr weitere Informationen.h'"Feiertageungĵltiges Zeichen in Antwortdatei Âğ%sÂĞ Zeile %ld: %sUngĵltige Definition der Variable Âğ%cÂĞUngĵltige Handhabung der Variablen Âğ%cÂĞUngĵltige Variablen-Definitionen in Datei Âğ%sÂĞUngĵltige Handhabung einer Variablen in Datei Âğ%sÂĞinternungĵltiges N-ter Wochentagsfeld(%d) in Datei Âğ%sÂĞ Zeile %ld: %sungĵltiger Datumeintrag in Datei Âğ%sÂĞ Zeile %ld: %sungĵltiger Tagungĵltiger Tag(%02d) in Datei Âğ%sÂĞ Zeile %ld: %sungĵltiger Monatungĵltiger Monat(%02d) in Datei Âğ%sÂĞ Zeile %ld: %sungĵltig rekursives/zyklisches %s in Datei Âğ%sÂĞ Zeile %ld: %sungĵltiges Suchmuster Âğ%sÂĞ wurde angegebenUngĵltige Wertzuweisung an Variable Âğ%cÂĞ in Datei Âğ%sÂĞungĵltiges Jahr fĵr Ostertagsberechnung Jahr muss sich im Bereich (%d...%d) befindenBestimmungen der ÂğGNU General Public LicenseÂР— herausgegebengesetzliche Feiertagemissgebildetes %s in Datei Âğ%sÂĞ Zeile %ld: %sHauptspeicher aufgebrauchtfehlendes Leerzeichen nach Datumteil in Datei Âğ%sÂĞ Zeile %ld: %s.oder Verluste (implizit oder explizit), die aus Nutzung oderpm.Lesefehler in Datei Âğ%sÂĞAntwortdateiSelbstdefiniertVersenden der E-Mail an <%s> fehlgeschlagenShellscriptUngĵltiger Versatzwert Âğ%sÂĞ.erfolgreich.von der ÂğFree Software Foundation, Inc.ÂĞ in der Version 3 oderunbekannt unbekannter œbersetzer (Compiler)unbekannter œbersetzer (Compiler) (SDK?)Unbekannter Terminaltyp in Âğ%sÂĞ eingetragenunbekannte VersionVariable Âğ%cÂĞ undefiniert in Datei Âğ%sÂĞVersion %dVersion %d.%dgcal-4.1/po/da.po0000664000000000000000000040753313041164031010524 00000000000000# Danish messages for gcal 3.00 # Copyright (C) 2001 Thomas Esken (msgids) # This file is distributed under the same license as the gcal package. # # Keld J¸rn Simonsen , 2001. # Ask Hjorth Larsen , 2011. # # Jeg har brugt henvisningerne fra # # http://da.wikipedia.org/wiki/Verdens_landes_arealer # # til at finde formelle navne p lande msgid "" msgstr "" "Project-Id-Version: gcal-3.6\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 2011-03-20 15:58+0100\n" "Last-Translator: Ask Hjorth Larsen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "" #: lib/regcomp.c:135 #, fuzzy msgid "Success" msgstr "lykkedes" #: lib/regcomp.c:138 msgid "No match" msgstr "" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:156 msgid "Unmatched [, [^, [:, [., or [=" msgstr "" #: lib/regcomp.c:159 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:162 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:168 msgid "Invalid range end" msgstr "" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "" #: lib/regcomp.c:180 msgid "Regular expression too big" msgstr "" #: lib/regcomp.c:183 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, fuzzy, c-format msgid "%s subprocess" msgstr "lykkedes" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Fors¸g at skrive %s \"%s\"... %s%s%s" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "mislykkedes" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "lykkedes" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "Fors¸g at bne%sresursefilen \"%s\"... %s%s%s" #: src/file-io.c:1686 msgid " `HERE' " msgstr " \"HER\" " #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "Fors¸g at bne (niveau: %02d) inkluderingsfil \"%s\"... %s%s%s" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "ARG" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "Tyskland" #: src/gcal.c:1075 msgid "U.S.A." msgstr "USA" #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "Storbritannien" #: src/gcal.c:1852 msgid "default" msgstr "standard" #: src/gcal.c:1951 msgid ":" msgstr ":" #: src/gcal.c:1961 msgid "Y" msgstr "…" #: src/gcal.c:1966 msgid "M" msgstr "M" #: src/gcal.c:1971 msgid "W" msgstr "U" #: src/gcal.c:1976 msgid "D" msgstr "D" #: src/gcal.c:2067 msgid "Fixed date list:" msgstr "Fast datoliste:" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "milj¸variabel" #: src/gcal.c:2268 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%s: kommando fundet i milj¸variablen \"%s\" - %s\n" "%s\n" "%s\n" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "Intern" #: src/gcal.c:2864 msgid "response file" msgstr "responsfil" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "Oprettet" #: src/gcal.c:2872 msgid "shell script" msgstr "skalprogram" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "E-post fra \\\"%s\" (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "%s: Advarsel, eMail med tom br¸dtekst ikke sendt til <%s>.\n" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "kommandolinje" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: flag \"%s\" er tvetydig" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: ukendt flag \"%s\"" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: ugyldigt flag -- %s" #: src/gcal.c:5910 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s: flaget \"--%s\" tillader intet argument" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s: flag \"%s\" tager intet argument" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: flag \"%s\" beh¸ver et argument" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: flag beh¸ver et argument -- %s" #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: flag med ugyldigt argument -- %s" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: flag med tvetydigt argument -- %s" #: src/gcal.c:5995 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" "%s: ugyldig dato angivet -- %c%s\n" "%s\n" "%s\n" #: src/hd-data.c:64 msgid "Australia" msgstr "Australien" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "Belgien" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "Brasilien" #: src/hd-data.c:67 msgid "Canada" msgstr "Canada" #: src/hd-data.c:68 msgid "Switzerland" msgstr "Schweiz" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "Kina" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "Spanien" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "Frankrig" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "Israel" #: src/hd-data.c:75 src/hd-data.c:250 msgid "Italy" msgstr "Italien" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "Japan" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "Republikken Korea" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "Mexico" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "Holland" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "New Zealand" #: src/hd-data.c:81 src/hd-data.c:320 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "Den Russiske F¸deration" #: src/hd-data.c:83 msgid "United States" msgstr "USA" #: src/hd-data.c:85 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "De Forenede Arabiske Emirater" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "Afghanistan" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "Antigua og Barbuda" #: src/hd-data.c:89 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:90 msgid "Albania" msgstr "Albanien" #: src/hd-data.c:91 msgid "Armenia" msgstr "Armenien" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "Nederlandske Antiller/Bonaire" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "Nederlandske Antiller/Cura§ao" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "Nederlandske Antiller/St Maarten" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "Nederlandske Antiller/Saba og Statia" #: src/hd-data.c:96 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:97 msgid "Argentina" msgstr "Argentina" #: src/hd-data.c:98 msgid "American Samoa" msgstr "Amerikansk Samoa" #: src/hd-data.c:99 msgid "Austria" msgstr "˜strig" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "Australien/Canberra" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "Australien/Northern Territory" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "Australien/Queensland" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "Australien/Southern Australia" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "Australien/New South Wales" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "Australien/Tasmanien" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "Australien/Victoria" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "Australien/Western Australia" #: src/hd-data.c:108 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "Aserbajdsjan" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "Bosnien-Hercegovina" #: src/hd-data.c:111 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "Bangladesh #" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:115 msgid "Bulgaria" msgstr "Bulgarien" #: src/hd-data.c:116 msgid "Bahrain" msgstr "Bahrain" #: src/hd-data.c:117 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:118 msgid "Benin #" msgstr "Benin #" #: src/hd-data.c:119 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:120 msgid "Brunei" msgstr "Brunei" #: src/hd-data.c:121 msgid "Bolivia" msgstr "Bolivia" #: src/hd-data.c:123 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "Bouvet¸en" #: src/hd-data.c:126 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:127 msgid "Belarus" msgstr "Hviderusland" #: src/hd-data.c:128 msgid "Belize" msgstr "Belize" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "Canada/Alberta" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "Canada/British Columbia" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "Canada/Manitoba" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "Canada/New Brunswick" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "Canada/Newfoundland og Labrador" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "Canada/Nova Scotia" #: src/hd-data.c:135 #, fuzzy msgid "Canada/Northwest Territories" msgstr "Canada/Nordwest Territories" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "Canada/Ontario" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "Canada/Prince Edward Island" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "Canada/Quİbec" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "Canada/Saskatchewan" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "Canada/Yukon" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "Kokos¸erne (Keeling)" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "Den Demokratiske Republik Congo #" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "Den Centralafrikanske Republik #" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "Republikken Congo #" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "Schweiz/Aargau" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Schweiz/Appenzell Innerrhoden" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Schweiz/Appenzell Ausserrhoden" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "Schweiz/Bern" #: src/hd-data.c:149 #, fuzzy msgid "Switzerland/Basel-Landschaft" msgstr "Schweiz/Basel-Land" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "Schweiz/Basel-Stadt" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "Schweiz/Fribourg" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "Schweiz/Gen¨ve" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "Schweiz/Glarus" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "Schweiz/Graubĵnden" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "Schweiz/Jura" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "Schweiz/Luzern" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "Schweiz/Neuch˘tel" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "Schweiz/Nidwalden" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "Schweiz/Obwalden" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "Schweiz/St Gallen" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "Schweiz/Schaffhausen" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "Schweiz/Solothurn" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "Schweiz/Schwyz" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "Schweiz/Thurgau" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "Schweiz/Ticino" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "Schweiz/Uri" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "Schweiz/Vaud" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "Schweiz/Valais" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "Schweiz/Zug" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "Schweiz/Zĵrich" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "Elfenbenskysten" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "Cook¸erne" #: src/hd-data.c:173 msgid "Chile" msgstr "Chile" #: src/hd-data.c:174 msgid "Cameroon" msgstr "Cameroon" #: src/hd-data.c:176 msgid "Colombia" msgstr "Columbia" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:178 msgid "Cuba" msgstr "Cuba" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "Kap Verde" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "Jule¸erne" #: src/hd-data.c:181 msgid "Cyprus" msgstr "Cypern" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "Den Tjekkiske Republik" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "Tyskland/Brandenburg" #: src/hd-data.c:184 msgid "Germany/Berlin" msgstr "Tyskland/Berlin" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "Tyskland/Baden-Wĵrttemberg" #: src/hd-data.c:186 msgid "Germany/Bavaria" msgstr "Tyskland/Bayern" #: src/hd-data.c:187 msgid "Germany/Bremen" msgstr "Tyskland/Bremen" #: src/hd-data.c:188 msgid "Germany/Hesse" msgstr "Tyskland/Hessen" #: src/hd-data.c:189 msgid "Germany/Hamburg" msgstr "Tyskland/Hamburg" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Tyskland/Mecklenburg-Vorpommern" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "Tyskland/Niedersachsen" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "Tyskland/Nordrhein-Westfalen" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "Tyskland/Rheinland-Pfalz" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "Tyskland/Schleswig-Holstein" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saarland" msgstr "Tyskland/Saarland" #: src/hd-data.c:196 msgid "Germany/Saxony" msgstr "Tyskland/Sachsen" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "Tyskland/Sachsen-Anhalt" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "Tyskland/Thĵringen" #: src/hd-data.c:199 msgid "Djibouti" msgstr "Djibouti" #: src/hd-data.c:200 msgid "Denmark" msgstr "Danmark" #: src/hd-data.c:201 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "Dominikanske Republik" #: src/hd-data.c:203 msgid "Algeria" msgstr "Algeriet" #: src/hd-data.c:204 msgid "Ecuador" msgstr "Ecuador" #: src/hd-data.c:205 msgid "Estonia" msgstr "Estland" #: src/hd-data.c:206 msgid "Egypt" msgstr "†gypten" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "Vestsahara" #: src/hd-data.c:208 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "Etiopien" #: src/hd-data.c:211 msgid "Finland" msgstr "Finland" #: src/hd-data.c:212 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "Falklands¸erne (Malvinas)" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "F¸derale Statsforbund Mikronesien" #: src/hd-data.c:215 msgid "Faroes" msgstr "FĤr¸erne" #: src/hd-data.c:217 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "Storbritannien/England og Wales" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "Storbritannien/Nordirland" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "Storbritannien/Skotland" #: src/hd-data.c:221 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:222 msgid "Georgia" msgstr "Georgien" #: src/hd-data.c:223 msgid "French Guiana" msgstr "Fransk Guyana" #: src/hd-data.c:224 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:226 msgid "Greenland" msgstr "Gr¸nland" #: src/hd-data.c:227 msgid "Gambia" msgstr "Gambia" #: src/hd-data.c:228 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "Guadeloupe" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "†kvatorialguinea" #: src/hd-data.c:231 msgid "Greece" msgstr "GrĤkenland" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "Sydgeorgien og Sydsandwich¸erne" #: src/hd-data.c:233 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:234 msgid "Guam" msgstr "Guam" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "Guinea-Bissau #" #: src/hd-data.c:236 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "Heard- og McDonald¸erne" #: src/hd-data.c:239 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:240 msgid "Croatia" msgstr "Kroatien" #: src/hd-data.c:241 msgid "Haiti" msgstr "Haiti" #: src/hd-data.c:242 msgid "Hungary" msgstr "Ungarn" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "Indonesien #" #: src/hd-data.c:244 msgid "Ireland" msgstr "Irland" #: src/hd-data.c:246 msgid "India #" msgstr "Indien #" #: src/hd-data.c:247 msgid "Iraq" msgstr "Irak" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "Den Islamiske Republik Iran" #: src/hd-data.c:249 msgid "Iceland" msgstr "Island" #: src/hd-data.c:251 msgid "Jamaica" msgstr "Jamaica" #: src/hd-data.c:252 msgid "Jordan" msgstr "Jordan" #: src/hd-data.c:254 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "Kirgisistan" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "Cambodia #" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:258 msgid "Comoros" msgstr "Comoros" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "St Kitts og Nevis" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "Den Demokratiske Folkerepublik Korea" #: src/hd-data.c:262 msgid "Kuwait" msgstr "Kuwait" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "Cayman¸erne" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "Kazakhstan" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "Den Demokratiske Folkerepublik Laos #" #: src/hd-data.c:266 msgid "Lebanon" msgstr "Libanon" #: src/hd-data.c:267 msgid "St Lucia" msgstr "St Lucia" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:270 msgid "Liberia" msgstr "Liberia" #: src/hd-data.c:271 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:272 msgid "Lithuania" msgstr "Litauen" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "Luxembourg" #: src/hd-data.c:274 msgid "Latvia" msgstr "Letland" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Den Store Folkesocialistiske Libyske Arabiske Jamahiriya (Libyen)" #: src/hd-data.c:276 msgid "Morocco" msgstr "Marokko" #: src/hd-data.c:277 msgid "Monaco" msgstr "Monaco" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "Republikken Moldova" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "Madagaskar #" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "Marshall¸erne" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "Tidligere Jugoslaviske Republik Makedonien" #: src/hd-data.c:282 msgid "Mali" msgstr "Mali" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "Mongoliet #" #: src/hd-data.c:284 msgid "Macau" msgstr "Macau" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "De nordlige Marianer¸er (Saipan)" #: src/hd-data.c:286 msgid "Martinique" msgstr "Martinique" #: src/hd-data.c:287 msgid "Mauritania" msgstr "Mauretanien" #: src/hd-data.c:288 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:289 msgid "Malta" msgstr "Malta" #: src/hd-data.c:290 msgid "Mauritius" msgstr "Mauritius" #: src/hd-data.c:291 msgid "Maldives" msgstr "Maldiverne" #: src/hd-data.c:292 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "Malaysia #" #: src/hd-data.c:295 msgid "Mozambique" msgstr "Mozambique" #: src/hd-data.c:296 msgid "Namibia" msgstr "Namibia" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "Ny Kaledonien" #: src/hd-data.c:298 msgid "Niger" msgstr "Niger" #: src/hd-data.c:299 #, fuzzy msgid "Norfolk Island" msgstr "Norfolk¸erne" #: src/hd-data.c:300 msgid "Nigeria" msgstr "Nigeria" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "Myanmar (Burma) #" #: src/hd-data.c:304 msgid "Norway" msgstr "Norge" #: src/hd-data.c:305 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:306 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:307 msgid "Niue" msgstr "Niue" #: src/hd-data.c:309 msgid "Oman" msgstr "Oman" #: src/hd-data.c:310 msgid "Panama" msgstr "Panama" #: src/hd-data.c:311 msgid "Peru" msgstr "Peru" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "Fransk Polynesien" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "Papua Ny Guinea" #: src/hd-data.c:314 msgid "Philippines" msgstr "Filippinerne" #: src/hd-data.c:315 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:316 msgid "Poland" msgstr "Polen" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre og Miquelon" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "Pitcairn" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "Puerto Rico" #: src/hd-data.c:321 msgid "Palau" msgstr "Palau" #: src/hd-data.c:322 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:323 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:324 msgid "Rİunion" msgstr "Rİunion" #: src/hd-data.c:325 msgid "Romania" msgstr "RumĤnien" #: src/hd-data.c:327 msgid "Rwanda" msgstr "Rwanda" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "Saudi-arabien" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "Salomon¸erne" #: src/hd-data.c:330 msgid "Seychellen" msgstr "Seychellerne" #: src/hd-data.c:331 msgid "Sudan" msgstr "Sudan" #: src/hd-data.c:332 msgid "Sweden" msgstr "Sverige" #: src/hd-data.c:333 msgid "Singapore #" msgstr "Singapore #" #: src/hd-data.c:334 msgid "St Helena" msgstr "St Helena" #: src/hd-data.c:335 msgid "Slovenia" msgstr "Slovenien" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard og Jan Mayen-¸erne" #: src/hd-data.c:337 msgid "Slovakia" msgstr "Slovakiet" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:339 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:340 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:341 msgid "Somalia" msgstr "Somalia" #: src/hd-data.c:342 msgid "Suriname #" msgstr "Surinam #" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "Sao Tomİ og Principe" #: src/hd-data.c:344 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "Den Syriske Arabiske Republik (Syrien)" #: src/hd-data.c:346 msgid "Swaziland" msgstr "Swaziland" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "Turks- og Caicos¸erne" #: src/hd-data.c:348 msgid "Chad" msgstr "Tchad" #: src/hd-data.c:349 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:350 msgid "Thailand #" msgstr "Thailand #" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "Tajikistan" #: src/hd-data.c:352 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "Turkmenistan" #: src/hd-data.c:354 msgid "Tunisia" msgstr "Tunesien" #: src/hd-data.c:355 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:356 msgid "Turkey" msgstr "Tyrkiet" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "Trinidad og Tobago #" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:359 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:360 msgid "Tanzania" msgstr "Tanzania" #: src/hd-data.c:361 msgid "Ukraine" msgstr "Ukraine" #: src/hd-data.c:362 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "USA/Alaska" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "USA/Alabama" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "USA/Arkansas" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "USA/Arizona" #: src/hd-data.c:367 msgid "United States/California" msgstr "USA/Californien" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "USA/Colorado" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "USA/Connecticut" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "USA/District of Columbia" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "USA/Delaware" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "USA/Florida" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "USA/Georgia" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "USA/Hawaii" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "USA/Iowa" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "USA/Idaho" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "USA/Illinois" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "USA/Indiana" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "USA/Kansas" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "USA/Kentucky" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "USA/Louisiana" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "USA/Massachusetts" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "USA/Maryland" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "USA/Maine" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "USA/Michigan" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "USA/Minnesota" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "USA/Missouri" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "USA/Mississippi" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "USA/Montana" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "USA/North Carolina" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "USA/North Dakota" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "USA/Nebraska" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "USA/New Hampshire" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "USA/New Jersey" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "USA/New Mexico" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "USA/Nevada" #: src/hd-data.c:397 msgid "United States/New York" msgstr "USA/New York" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "USA/Ohio" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "USA/Oklahoma" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "USA/Oregon" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "USA/Pennsylvania" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "USA/Rhode Island" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "USA/South Carolina" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "USA/South Dakota" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "USA/Tennessee" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "USA/Texas" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "USA/Utah" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "USA/Virginia" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "USA/Vermont" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "USA/Washington" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "USA/Wisconsin" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "USA/West Virginia" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "USA/Wyoming" #: src/hd-data.c:414 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "Uzbekistan" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "Saint Vincent og Grenadinerne" #: src/hd-data.c:417 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "De Britiske Jomfru¸er" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "De Amerikanske Jomfru¸er" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "Wallis og Futuna-¸erne" #: src/hd-data.c:423 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:424 msgid "Yemen" msgstr "Yemen" #: src/hd-data.c:425 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "Serbien og Montenegro" #: src/hd-data.c:427 msgid "South Africa" msgstr "Sydafrika" #: src/hd-data.c:428 msgid "Zambia" msgstr "Zambia" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:459 msgid "1st Advent" msgstr "1. s¸ndag i advent" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "F¸rste fastes¸ndag" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "2. s¸ndag i advent" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "Anden fastes¸ndag" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "3. s¸ndag i advent" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "Tredje fastes¸ndag" #: src/hd-data.c:465 msgid "4th Advent" msgstr "4. s¸ndag i advent" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "Fjerde fastes¸ndag" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "7-5-3-festivalen" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "Aboriginerdagen" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "F¸rste april" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "Allehelgensdag" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "Alle sjĤles dag" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "Alfabet-dagen" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "Aucklands rsdag" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "Canterbury Norths rsdag" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "Canterbury Souths rsdag" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "Chatham¸ernes rsdag" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "Hawkes' Bays rsdag" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "Marlboroughs rsdag" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "Nelsons rsdag" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "Otagos rsdag" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "Southlands rsdag" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "Taranakis rsdag" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "Wellingtons rsdag" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "Westlands rsdag" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "Anzacdagen" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "Plant et trĤ" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "MilitĤrets dag" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "Vbenstilstandsdagen" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "Askeonsdag" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "Baha'u'llahs f¸dsel" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "BahĦ'i nytrsdag" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "Ridvans niende dag" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "Ridvans tolvte dag" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "Bankfridag" #: src/hd-data.c:503 msgid "Basque National Day" msgstr "Den baskiske nationaldag" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "Slaget ved Boyne" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "Slaget ved Puebla" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "Finansrets begyndelse" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "Benito JuĦrez-dag" #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "Bodhidharmas f¸dselsdag" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "Bosses' dag" # Boxing Day is a bank or public holiday that occurs on 26 December, or the first or second weekday after Christmas Day, depending on national or regional laws. It is observed in Australia, Canada, New Zealand, the United Kingdom and some other Commonwealth nations. #: src/hd-data.c:510 #, fuzzy msgid "Boxing Day" msgstr "Anden juledag" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "Buddhas f¸dselsdag" #: src/hd-data.c:514 msgid "Burns Night" msgstr "Burns nat" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "Camoes dag" #: src/hd-data.c:516 msgid "Carnival" msgstr "Karneval" #: src/hd-data.c:517 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:518 msgid "Imbolg" msgstr "Imbolg" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/keltisk nytrsdag" #: src/hd-data.c:521 msgid "Children's Day" msgstr "B¸rnenes dag" #: src/hd-data.c:522 msgid "Cycle" msgstr "" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "Kinesisk nytrsdag" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "Kinesisk nytrsaften" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "Juledag" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "Juleaften" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "Kristi himmelsfartsdag" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "Chrysanthemumsdag" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "Borgerskabsdag" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "Columbus dag" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "Confusius' f¸dselsdag" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "Koptisk nytrsdag" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "Kosmonautdag" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "" #: src/hd-data.c:538 msgid "Culture Day" msgstr "Kulturdagen" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "Andalusiens dag" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "Kataloniens dag" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "Galiciens dag" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "B¸ne- og ngerdagen" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:547 #, fuzzy msgid "Double-9 Day" msgstr "Nobeldagen" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "Dragebdsfestivalen" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "Dynastidagen" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "Anden pskedag" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "Pskedag" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "Mneform¸rkelse" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "Solform¸rkelse" #: src/hd-data.c:554 msgid "Annular" msgstr "Ringformet" #: src/hd-data.c:555 msgid "Partial" msgstr "Delvis" #: src/hd-data.c:556 msgid "Penumbral" msgstr "Halvskygge" #: src/hd-data.c:557 msgid "Total" msgstr "Total" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "Eindhovens befrielse" #: src/hd-data.c:559 msgid "Election Day" msgstr "Valgdagen" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "Kejserens f¸dselsdag" #: src/hd-data.c:561 #, fuzzy msgid "Equinox Day" msgstr "Valdagen" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "Etiopisk nytrsdag" #: src/hd-data.c:563 msgid "Father's Day" msgstr "Fars dag" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "" #: src/hd-data.c:565 #, fuzzy msgid "Feast of Fortune" msgstr "Kristi kropps og blods h¸gtid" #: src/hd-data.c:566 #, fuzzy msgid "Feast of Heart Jesus" msgstr "Theotokos h¸gtid" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "Sadehfestivalen" #: src/hd-data.c:569 msgid "Flag Day" msgstr "Flagets dag" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "Flamske kulturdag" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "Kommunistpartiets grundlĤggelse" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "Franske kulturdag" #: src/hd-data.c:573 #, fuzzy msgid "French Revolutionary" msgstr "Revolutionsdagen" #: src/hd-data.c:574 #, fuzzy msgid "Friendship Day" msgstr "Presidentens dag" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "Dagen for Tysklands forening" #: src/hd-data.c:576 msgid "Good Friday" msgstr "Langfredag" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "Pskeaften" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "BedsteforĤlderdagen" #: src/hd-data.c:579 #, fuzzy msgid "Greenery Day" msgstr "B¸nedagen" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "Grottodagen" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "Jordsvinedagen" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "Guadalupe Virgins dag" #: src/hd-data.c:583 #, fuzzy msgid "Guy Fawkes Day" msgstr "Guy Fawkes dag" #: src/hd-data.c:584 msgid "Halloween" msgstr "Allehelligensaften" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "Sundheds- og idrĤtsdag" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "Hannukah/lysets festival" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "Lag B'Omer" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "Rosh Hashana/nytrsdag" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "Shushan Purim" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "Simchat Torah" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tu B'Shevat/TrĤernes nytr" #: src/hd-data.c:597 #, fuzzy msgid "Yom Hashoah/Holocaust Memorial" msgstr "Yom Hashoah/holocaust-mindedagen" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "Yom Ha Azmaut/uafhĤngighedsdagen" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Yom Yerushalayim/Jerusalemdag" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:604 #, fuzzy msgid "Huravee Day" msgstr "B¸nedagen" #: src/hd-data.c:605 msgid "Independence Day" msgstr "UafhĤngighedsdagen" #: src/hd-data.c:606 #, fuzzy msgid "Independence Movement Day" msgstr "OavhĤngighedsdagen" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "UafhĤngighedserklĤringen" #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "Indisk nytrsdag" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "Aga Khans f¸dselsdag" #: src/hd-data.c:610 msgid "Ashura'" msgstr "Ashura'" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "Eid-al-Adha" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "Eid-al-Fitr" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "Eid-i-Milad-un-Nabi" #: src/hd-data.c:614 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "Imamat-dagen" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "Islamisk nytrsdag" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "Nuzul-al-Qur'an" #: src/hd-data.c:618 msgid "Quds Day" msgstr "Quds dag" #: src/hd-data.c:619 msgid "Ramadan" msgstr "Ramadanen" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "Shab-e-Bara't" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "Shab-e-Mi'raj" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "Shab-e Qadr" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "Japansk nytrsdag" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "Japansk nytrsaften" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:628 msgid "Labour Day" msgstr "F¸rste maj" #: src/hd-data.c:629 #, fuzzy msgid "Labour Thanksgiving Day" msgstr "TacksĤgelsedagen" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "Lao Tzes f¸dselsdag" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "Befrielsedagen" #: src/hd-data.c:632 #, fuzzy msgid "Marine Day" msgstr "Majdagen" #: src/hd-data.c:633 msgid "Martinimas" msgstr "Martinimas" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "Martin L. Kings dag" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "Martyrernes dag" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "Marie bebudelsedag" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "Marie himmelsfarts dag" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:639 #, fuzzy msgid "Mary's Expectation" msgstr "Marie bebdelsedag" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "" #: src/hd-data.c:641 #, fuzzy msgid "Mary's Maternity" msgstr "Marie himmelsfĤrds dag" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:645 #, fuzzy msgid "Mary's Visitation" msgstr "Marie bebdelsedag" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "SkĤrtorsdagen" #: src/hd-data.c:648 msgid "May Day" msgstr "Majdagen" #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "Midt-efterrsfestival" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "Midt-forrsfestival" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "Midt-rsfestival" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "Tiltagende halvmne" #: src/hd-data.c:654 msgid "Full Moon" msgstr "Fuldmne" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "Aftagende halvmne" #: src/hd-data.c:656 msgid "New Moon" msgstr "Nymne" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "Mors dag" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "Svigermordag" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "Den nationale grundlĤggelsesdag" #: src/hd-data.c:661 msgid "National Holiday" msgstr "National helligdag" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "National s¸rgedag" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "Nyrsdag" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "Oldarmensk nytr" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "OldĤgyptisk nytr" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "Ortodoks nytrsdag" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "Palmes¸ndag" #: src/hd-data.c:670 #, fuzzy msgid "Parent's Day" msgstr "Presidentens dag" #: src/hd-data.c:671 #, fuzzy msgid "Passion Sunday" msgstr "Palms¸ndagen" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "Fredsfestival" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "Ferskenfestival" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "Pinsedag" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "Noruz/persisk nytrsdag" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "Bededag" #: src/hd-data.c:677 #, fuzzy msgid "Presidential Inauguration" msgstr "Presidentens tal" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "PrĤsidentdag" #: src/hd-data.c:679 #, fuzzy msgid "Presidents' Inform" msgstr "Presidentens tal" #: src/hd-data.c:680 #, fuzzy msgid "President Lincoln's Birthday" msgstr "PrĤsident Lincolns f¸dselsdag" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "Prinsessans dag" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "Quinquagesima-s¸ndag" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "Reformationsdagen" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:685 msgid "Republic Day" msgstr "Republikens dag" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "Respekt for de Ĥldre-dagen" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "Revolutionsdagen" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "Rio de Janeiros rsdag" #: src/hd-data.c:689 #, fuzzy msgid "Rogation Sunday" msgstr "Doms¸ndagen" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "Sao Paulos rsdag" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "Sapporos snefestival" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "…rstidsĤndring/b¸nnefestival" #: src/hd-data.c:693 #, fuzzy msgid "Septuagesima Sunday" msgstr "Palms¸ndagen" #: src/hd-data.c:694 #, fuzzy msgid "Seven Sleepers Day" msgstr "S:t Stefans dag" #: src/hd-data.c:695 #, fuzzy msgid "Sexagesima Sunday" msgstr "Palms¸ndagen" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "Hvidetirsdag" #: src/hd-data.c:697 #, fuzzy msgid "Solstice Day" msgstr "Vapenstillestndsdagen" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "Skorstensfejerdag" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "Forrsfestival" #: src/hd-data.c:700 msgid "Start of common month" msgstr "Start p almindelig mned" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "Start p skudmned" #: src/hd-data.c:702 msgid "Star Festival" msgstr "Stjernefestival" #: src/hd-data.c:703 #, fuzzy msgid "St Andrew's Day" msgstr "S:t G¸rans dag" #: src/hd-data.c:704 #, fuzzy msgid "St Bartholomew Day" msgstr "S:t Berchtolds dag" #: src/hd-data.c:705 #, fuzzy msgid "St Berchtold's Day" msgstr "S:t Berchtolds dag" #: src/hd-data.c:706 #, fuzzy msgid "St David's Day" msgstr "S:t Davids dag" #: src/hd-data.c:707 #, fuzzy msgid "St Edward's Day" msgstr "S:t Edwards dag" #: src/hd-data.c:708 #, fuzzy msgid "St George's Day" msgstr "S:t G¸rans dag" #: src/hd-data.c:709 #, fuzzy msgid "St James' Day" msgstr "S:t James dag" #: src/hd-data.c:710 #, fuzzy msgid "St Joseph's Day" msgstr "S:t Josefs dag" #: src/hd-data.c:711 #, fuzzy msgid "St Laurentius Day" msgstr "Alla hjĤrtans dag" #: src/hd-data.c:712 #, fuzzy msgid "St Nicholas' Day" msgstr "S:t Nikolaus dag" #: src/hd-data.c:713 #, fuzzy msgid "St Nicholas' Eve" msgstr "S:t Nikolaus aften" #: src/hd-data.c:714 #, fuzzy msgid "St Patrick's Day" msgstr "S:t Patricks dag" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:716 #, fuzzy msgid "St Stephen's Day" msgstr "S:t Stefans dag" #: src/hd-data.c:717 #, fuzzy msgid "St Valentine's Day" msgstr "Alla hjĤrtans dag" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "" #: src/hd-data.c:720 #, fuzzy msgid "Sweetest Day" msgstr "Veteranernas dag" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "LĤrerens dag" #: src/hd-data.c:723 #, fuzzy msgid "Thai New Year's Day" msgstr "Nyrsdagen" #: src/hd-data.c:724 #, fuzzy msgid "Thanksgiving Day" msgstr "TacksĤgelsedagen" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "Kongens f¸dselsdag" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "Dronningens f¸dselsdag" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "Hellig tre kongers dag" #: src/hd-data.c:728 #, fuzzy msgid "Tiradentes Day" msgstr "Presidentens dag" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:730 #, fuzzy msgid "Transfiguration Day" msgstr "Kr¸ningsdagen" #: src/hd-data.c:731 #, fuzzy msgid "Tynwald Day" msgstr "Dynastidagen" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "Veteranernes dag" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "Viktoriadagen" #: src/hd-data.c:736 msgid "Victory Day" msgstr "Sejersdagen" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "Anden pinsedag" #: src/hd-data.c:738 #, fuzzy msgid "Women's Day" msgstr "Mors dag" #: src/hd-data.c:739 #, fuzzy msgid "Women's Shrove Day" msgstr "Kvinnans fastedag" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "" #: src/hd-data.c:741 #, fuzzy msgid "Youth Day" msgstr "Mors dag" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:748 #, fuzzy msgid "Admission Day" msgstr "Vapenstillestndsdagen" #: src/hd-data.c:749 #, fuzzy msgid "Alaska Day" msgstr "Flaggans dag" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:752 #, fuzzy msgid "All Saints' Eve" msgstr "Allhelligonadagen" #: src/hd-data.c:753 #, fuzzy msgid "Americas Day" msgstr "MilitĤrens dag" #: src/hd-data.c:754 #, fuzzy msgid "Angam Day" msgstr "Anzacdagen" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:759 #, fuzzy msgid "Antillian Day" msgstr "Allhelligonadagen" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:764 #, fuzzy msgid "Arengo Anniversary" msgstr "F¸rfattningsdagen" #: src/hd-data.c:765 #, fuzzy msgid "Army Coup Day" msgstr "MilitĤrens dag" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:767 #, fuzzy msgid "Artigas' Birthday" msgstr "Konungens f¸dselsdag" #: src/hd-data.c:768 #, fuzzy msgid "Asuncion Day" msgstr "Anzacdagen" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:771 #, fuzzy msgid "Ba'ath Revolution Day" msgstr "Revolutionsdagen" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:773 #, fuzzy msgid "Bataan Day" msgstr "Veteranernas dag" #: src/hd-data.c:774 #, fuzzy msgid "Battle of Angamos" msgstr "Slaget vid Boyne" #: src/hd-data.c:775 #, fuzzy msgid "Battle of BoyacĦ" msgstr "Slaget vid Boyne" #: src/hd-data.c:776 #, fuzzy msgid "Battle of Carabobo" msgstr "Slaget vid Boyne" #: src/hd-data.c:777 #, fuzzy msgid "Battle of Iquique" msgstr "Slaget vid Boyne" #: src/hd-data.c:778 #, fuzzy msgid "Battle of Las Piedras" msgstr "Slaget vid Boyne" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "Slaget ved N¤fels" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "Start p sommeren" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "Beograds dag" #: src/hd-data.c:782 #, fuzzy msgid "Bennington Battle Day" msgstr "Benito Juarez dag" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "" #: src/hd-data.c:785 #, fuzzy msgid "Boganda Day" msgstr "Annandag jul" #: src/hd-data.c:786 #, fuzzy msgid "Bonaire Day" msgstr "Annandag jul" #: src/hd-data.c:787 #, fuzzy msgid "Boqueron Battle Day" msgstr "Kr¸ningsdagen" #: src/hd-data.c:788 #, fuzzy msgid "Botswana Day" msgstr "Annandag jul" #: src/hd-data.c:789 #, fuzzy msgid "Bounty Day" msgstr "Annandag jul" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "Jan Hus eldbegĤngelse" #: src/hd-data.c:792 #, fuzzy msgid "Canberra Day" msgstr "B¸nedagen" #: src/hd-data.c:793 #, fuzzy msgid "Caricom Day" msgstr "Juldagen" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:795 #, fuzzy msgid "Cassinga Day" msgstr "Annandag jul" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "Cayennefestivalen" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:798 #, fuzzy msgid "Charter Day" msgstr "Fars dag" #: src/hd-data.c:799 #, fuzzy msgid "Chiang Kai-shek's Birthday" msgstr "Konungens f¸dselsdag" #: src/hd-data.c:800 #, fuzzy msgid "Children's White Sunday" msgstr "Barnens dag" #: src/hd-data.c:801 #, fuzzy msgid "Colon Day" msgstr "Revolutionsdagen" #: src/hd-data.c:802 #, fuzzy msgid "Colorado Day" msgstr "Kr¸ningsdagen" #: src/hd-data.c:803 #, fuzzy msgid "Commonwealth Day" msgstr "Kr¸ningsdagen" #: src/hd-data.c:804 #, fuzzy msgid "Compact Day" msgstr "Kr¸ningsdagen" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "Kr¸ningsdagen" #: src/hd-data.c:807 #, fuzzy msgid "Cup Match Day" msgstr "Majdagen" #: src/hd-data.c:808 #, fuzzy msgid "Custom Chief's Day" msgstr "Barnens dag" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "Studentrevoltens dag" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:814 msgid "Death of H. Christophe" msgstr "H. Christophes d¸d" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "J. Dessalines' d¸d" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "PrĤsident Abdallahs d¸d" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "PrĤsident Cheikhs d¸d" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "PrĤsident Soilihs d¸d" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "Qaid-i-Azams d¸d" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "T. Louvertures d¸d" #: src/hd-data.c:821 #, fuzzy msgid "Defenders Day" msgstr "OavhĤngighedsdagen" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:824 #, fuzzy msgid "Discovery Day" msgstr "Segerdagen" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:827 #, fuzzy msgid "Dr. Sun Yat-sen's Birthday" msgstr "Drottningens f¸dselsdag" #: src/hd-data.c:828 #, fuzzy msgid "Duarte's Birthday" msgstr "Drottningens f¸dselsdag" #: src/hd-data.c:829 #, fuzzy msgid "Easter Tuesday" msgstr "Pskdagen" #: src/hd-data.c:830 #, fuzzy msgid "Economic Liberation Day" msgstr "Befrielsedagen" #: src/hd-data.c:831 #, fuzzy msgid "Eight Hours Day" msgstr "Segerdagen" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:834 #, fuzzy msgid "Evacuation Day" msgstr "Valdagen" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:838 #, fuzzy msgid "Family Day" msgstr "Majdagen" #: src/hd-data.c:839 #, fuzzy msgid "FAO Day" msgstr "Flaggans dag" #: src/hd-data.c:840 #, fuzzy msgid "Farmers' Day" msgstr "Fars dag" #: src/hd-data.c:841 #, fuzzy msgid "Father Leval Day" msgstr "Fars dag" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "Theotokos h¸jtid" #: src/hd-data.c:843 #, fuzzy msgid "Fisherman's Day" msgstr "Fars dag" #: src/hd-data.c:844 #, fuzzy msgid "Foundation of NPLA Day" msgstr "Kr¸ningsdagen" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:849 #, fuzzy msgid "Gospel Day" msgstr "Nobeldagen" #: src/hd-data.c:850 #, fuzzy msgid "Guacanaste Day" msgstr "Dynastidagen" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "Gustav Adolfsdagen" #: src/hd-data.c:852 #, fuzzy msgid "Heritage Day" msgstr "Vapenstillestndsdagen" #: src/hd-data.c:853 #, fuzzy msgid "Heroes Day" msgstr "Fars dag" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:855 #, fuzzy msgid "Holy Wednesday" msgstr "onsdag" #: src/hd-data.c:856 #, fuzzy msgid "Ho Chi Minh's Birthday" msgstr "Konungens f¸dselsdag" #: src/hd-data.c:857 #, fuzzy msgid "Human Rights Day" msgstr "Dagen for Tysklands enande" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:859 #, fuzzy msgid "Hurricane Thanksgiving Day" msgstr "TacksĤgelsedagen" #: src/hd-data.c:860 #, fuzzy msgid "Independence of Cartagena" msgstr "OavhĤngighedsdagen" #: src/hd-data.c:861 #, fuzzy msgid "Independence of Cuenca" msgstr "OavhĤngighedsdagen" #: src/hd-data.c:862 #, fuzzy msgid "Independence of Guayaquil" msgstr "OavhĤngighedsdagen" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:865 #, fuzzy msgid "Internal Autonomy Day" msgstr "Internationella kvinnodagen" #: src/hd-data.c:866 #, fuzzy msgid "Jefferson Davis' Birthday" msgstr "Kronprinsessans f¸dselsdag" #: src/hd-data.c:867 #, fuzzy msgid "June Holiday" msgstr "Bankfridag" #: src/hd-data.c:868 #, fuzzy msgid "J. Barbosa's Birthday" msgstr "Konungens f¸dselsdag" #: src/hd-data.c:869 #, fuzzy msgid "J. Chilembwe Day" msgstr "Barnens dag" #: src/hd-data.c:870 #, fuzzy msgid "J. Diego's Birthday" msgstr "Konungens f¸dselsdag" #: src/hd-data.c:871 #, fuzzy msgid "J. Robert's Birthday" msgstr "Drottningens f¸dselsdag" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "Kamarampaka-dag" #: src/hd-data.c:873 #, fuzzy msgid "Kartini Day" msgstr "MrtensmĤssa" #: src/hd-data.c:874 #, fuzzy msgid "Catherine Show Day" msgstr "Fars dag" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "" #: src/hd-data.c:876 #, fuzzy msgid "Kim Il-Sung's Birthday" msgstr "Konungens f¸dselsdag" #: src/hd-data.c:877 #, fuzzy msgid "Kim Jong-Il's Birthday" msgstr "Konungens f¸dselsdag" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:880 #, fuzzy msgid "King Rama V Memorial Day" msgstr "Minnesdagen" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "Knabenschiessen" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "Samernas nationaldag" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:885 #, fuzzy msgid "Liberty Day" msgstr "Befrielsedagen" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:888 #, fuzzy msgid "Lyndon B. Johnson Day" msgstr "S:t Johns dag" #: src/hd-data.c:889 #, fuzzy msgid "L. Rivera's Birthday" msgstr "Konungens f¸dselsdag" #: src/hd-data.c:890 #, fuzzy msgid "Madaraka Day" msgstr "Majdagen" #: src/hd-data.c:891 #, fuzzy msgid "Mahatma Gandhi's Birthday" msgstr "Konungens f¸dselsdag" #: src/hd-data.c:892 #, fuzzy msgid "Malvinas Day" msgstr "Majdagen" #: src/hd-data.c:893 #, fuzzy msgid "Manila Day" msgstr "Majdagen" #: src/hd-data.c:894 #, fuzzy msgid "Maputo City Day" msgstr "Majdagen" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:896 #, fuzzy msgid "Maryland Day" msgstr "Majdagen" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:898 #, fuzzy msgid "Merchant Day" msgstr "Dagen for Tysklands enande" #: src/hd-data.c:899 #, fuzzy msgid "St John's/Midsummers Eve" msgstr "Midsommaraften" #: src/hd-data.c:900 #, fuzzy msgid "Missionary Day" msgstr "Majdagen" #: src/hd-data.c:901 #, fuzzy msgid "Mi-CarŞme Day" msgstr "Majdagen" #: src/hd-data.c:902 #, fuzzy msgid "Morazan Day" msgstr "Majdagen" #: src/hd-data.c:903 #, fuzzy msgid "Mosheshoe's Day" msgstr "Mors dag" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:905 #, fuzzy msgid "Naming Day" msgstr "Annandag jul" #: src/hd-data.c:906 #, fuzzy msgid "National Bun Day" msgstr "Nationell sorgedag" #: src/hd-data.c:907 #, fuzzy msgid "National Heroes Day" msgstr "Nationell helligdag" #: src/hd-data.c:908 #, fuzzy msgid "National Redemption Day" msgstr "Nationell sorgedag" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:910 #, fuzzy msgid "National Revival Day" msgstr "Nationella motstndsr¸relsens dag" #: src/hd-data.c:911 #, fuzzy msgid "National Unity Day" msgstr "Nationell sorgedag" #: src/hd-data.c:912 #, fuzzy msgid "Ndadaye Day" msgstr "B¸nedagen" #: src/hd-data.c:913 #, fuzzy msgid "Neutrality Day" msgstr "Dagen for Tysklands enande" #: src/hd-data.c:914 #, fuzzy msgid "Nevada Day" msgstr "Nobeldagen" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "Nobeldagen" #: src/hd-data.c:917 #, fuzzy msgid "Noi Day" msgstr "Nobeldagen" #: src/hd-data.c:918 #, fuzzy msgid "OAU Day" msgstr "Anzacdagen" #: src/hd-data.c:919 #, fuzzy msgid "October Holiday" msgstr "Nationell helligdag" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:927 #, fuzzy msgid "Panama City Day" msgstr "Dagen for Tysklands enande" #: src/hd-data.c:928 #, fuzzy msgid "Panamerica Day" msgstr "B¸nedagen" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:930 #, fuzzy msgid "Patriot's Day" msgstr "S:t Patricks dag" #: src/hd-data.c:931 #, fuzzy msgid "People's Uprising Day" msgstr "Tjeckiska folkets majuppror" #: src/hd-data.c:932 msgid "People Power Day" msgstr "" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:934 #, fuzzy msgid "Pichincha Day" msgstr "Viktoriadagen" #: src/hd-data.c:935 #, fuzzy msgid "Picnic Day" msgstr "Prinsessans dag" #: src/hd-data.c:936 #, fuzzy msgid "Pioneer Day" msgstr "B¸nedagen" #: src/hd-data.c:937 #, fuzzy msgid "Poya Day" msgstr "B¸nedagen" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:939 #, fuzzy msgid "Prince of Wales' Birthday" msgstr "Kronprinsessans f¸dselsdag" #: src/hd-data.c:940 #, fuzzy msgid "Proclamation Day" msgstr "Kr¸ningsdagen" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:943 #, fuzzy msgid "Recreation Day" msgstr "Reformationsdagen" #: src/hd-data.c:944 #, fuzzy msgid "Referendum Day" msgstr "Reformationsdagen" #: src/hd-data.c:945 #, fuzzy msgid "Regatta Day" msgstr "Reformationsdagen" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:947 #, fuzzy msgid "Restoration Day" msgstr "Reformationsdagen" #: src/hd-data.c:948 #, fuzzy msgid "Return Day" msgstr "Veteranernas dag" #: src/hd-data.c:949 #, fuzzy msgid "Reunification Day" msgstr "Reformationsdagen" #: src/hd-data.c:950 #, fuzzy msgid "Rizal Day" msgstr "Anzacdagen" #: src/hd-data.c:951 #, fuzzy msgid "Rwagasore Day" msgstr "F¸rsta maj" #: src/hd-data.c:952 #, fuzzy msgid "Saba Day" msgstr "F¸rsta maj" #: src/hd-data.c:953 #, fuzzy msgid "San Jacinto Day" msgstr "S:t Jean Baptistes dag" #: src/hd-data.c:954 #, fuzzy msgid "San Josİ Day" msgstr "S:t Johns dag" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:956 #, fuzzy msgid "School Holiday" msgstr "Nationell helligdag" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "Sechsel¤uten" #: src/hd-data.c:958 #, fuzzy msgid "Separation Day" msgstr "Befrielsedagen" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:960 #, fuzzy msgid "Settlers Day" msgstr "Veteranernas dag" #: src/hd-data.c:961 #, fuzzy msgid "Seward's Day" msgstr "S:t Edwards dag" #: src/hd-data.c:962 #, fuzzy msgid "Shaheed Day" msgstr "Fars dag" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:964 #, fuzzy msgid "Sheikh Zayed's Ascension Day" msgstr "Marie himmelsfĤrds dag" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "Simon Bolivars dag" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "Sinais befrielsesdag" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "Slavernes befrielsesdag" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:970 #, fuzzy msgid "Somers Day" msgstr "Mors dag" #: src/hd-data.c:971 #, fuzzy msgid "Statia-American Day" msgstr "S:t Patricks dag" #: src/hd-data.c:972 #, fuzzy msgid "Student's Day" msgstr "Presidentens dag" #: src/hd-data.c:973 #, fuzzy msgid "St Agata Day" msgstr "Tjugondag Knut" #: src/hd-data.c:974 #, fuzzy msgid "St Canute's Day" msgstr "Tjugondag Knut" #: src/hd-data.c:975 #, fuzzy msgid "St Cedilia's Day" msgstr "Luciadagen" #: src/hd-data.c:976 #, fuzzy msgid "St Charles' Day" msgstr "S:t James dag" #: src/hd-data.c:977 #, fuzzy msgid "St Demetrius' Day" msgstr "S:t James dag" #: src/hd-data.c:978 #, fuzzy msgid "St Dİvote Day" msgstr "S:t Josefs dag" #: src/hd-data.c:979 #, fuzzy msgid "St Eliah's Day" msgstr "Luciadagen" #: src/hd-data.c:980 #, fuzzy msgid "St Jean Baptiste Day" msgstr "S:t Jean Baptistes dag" #: src/hd-data.c:981 #, fuzzy msgid "St Lucia's Day" msgstr "Luciadagen" #: src/hd-data.c:982 #, fuzzy msgid "St Marguerite's Day" msgstr "Tjugondag Knut" #: src/hd-data.c:983 #, fuzzy msgid "St Maroon's Day" msgstr "S:t Johns dag" #: src/hd-data.c:984 #, fuzzy msgid "St Michael's Day" msgstr "S:t Nikolaus dag" #: src/hd-data.c:985 #, fuzzy msgid "St Olav's Day" msgstr "S:t Davids dag" #: src/hd-data.c:986 #, fuzzy msgid "St Olav's Eve" msgstr "S:t Nikolaus aften" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:988 #, fuzzy msgid "St Rose of Lima" msgstr "S:t Josefs dag" #: src/hd-data.c:989 #, fuzzy msgid "St Ursula's Day" msgstr "Luciadagen" #: src/hd-data.c:990 #, fuzzy msgid "St Vincent de Paul's Day" msgstr "Alla hjĤrtans dag" #: src/hd-data.c:991 #, fuzzy msgid "Suez Victory Day" msgstr "Segerdagen" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "Sultan Qaboos' f¸dselsdag" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:994 #, fuzzy msgid "Sweden Day" msgstr "Presidentens dag" #: src/hd-data.c:995 #, fuzzy msgid "S. Doe's Birthday" msgstr "Drottningens f¸dselsdag" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:997 #, fuzzy msgid "Territory Day" msgstr "Segerdagen" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "Kronprinsessans f¸dselsdag" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "Kronprinsessans navnsdag" #: src/hd-data.c:1000 #, fuzzy msgid "The Crown Prince's Birthday" msgstr "Kronprinsessans f¸dselsdag" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "Konungens navnsdag" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "Drottningens navnsdag" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1004 #, fuzzy msgid "Town Meeting Day" msgstr "Annandag jul" #: src/hd-data.c:1005 #, fuzzy msgid "Traditional Day" msgstr "Kr¸ningsdagen" #: src/hd-data.c:1006 #, fuzzy msgid "Transfer Day" msgstr "B¸nedagen" #: src/hd-data.c:1007 #, fuzzy msgid "Truman Day" msgstr "Reformationsdagen" #: src/hd-data.c:1008 #, fuzzy msgid "Union Day" msgstr "Kr¸ningsdagen" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "Unionsopl¸sningen med Sverige" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "FN-dagen" #: src/hd-data.c:1011 #, fuzzy msgid "Unity Factory Day" msgstr "Segerdagen" #: src/hd-data.c:1012 #, fuzzy msgid "Victor-Schoelcher Day" msgstr "Segerdagen" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1014 #, fuzzy msgid "West Virginia Day" msgstr "Viktoriadagen" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "Pinseaften" #: src/hd-data.c:1016 #, fuzzy msgid "W. Tubman's Birthday" msgstr "Drottningens f¸dselsdag" #: src/hd-data.c:1017 #, fuzzy msgid "Yap Day" msgstr "Majdagen" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "Zi/rotte" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "Chou/okse" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "Yin/tiger" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "Mao/kanin" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "Chen/drage" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "Si/slange" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "Wu/hest" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "Wei/fr" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "Shen/abe" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "You/hane" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "Xu/hund" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "Hai/gris" #: src/hd-data.c:1287 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1550 msgid "Cel" msgstr "Cel" #: src/hd-data.c:1692 src/hd-data.c:2225 msgid "Chi" msgstr "Chi" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2227 src/hd-data.c:3730 #, fuzzy msgid "Jap" msgstr "jan" #: src/hd-data.c:2423 msgid "Chr" msgstr "Kr" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "" #: src/hd-data.c:2778 src/hd-data.c:2960 #, fuzzy msgid "Heb" msgstr "feb" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "" #: src/hd-data.c:4447 msgid "OxN" msgstr "" #: src/hd-data.c:4449 msgid "OxO" msgstr "" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "" #: src/hd-data.c:4847 msgid "Zod" msgstr "" #: src/hd-use.c:929 msgid " day" msgstr " dag" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "Evighedskalender for helligdage" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*s…r %0*d ER et skudr" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*s…r %0*d ER IKKE et skudr" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*s…r %d ER et skudr" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*s…r %d ER IKKE et skudr" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr " = %+4d dag" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr " = %+4d dage" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s indeholder nu %d maxposter!%s" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "Kompileret med %s%s for %s%s%s%s" #: src/help.c:75 #, fuzzy msgid "# Day number (must be defined)" msgstr "Daggruppe (exakt en medlem mste definieras):" #: src/help.c:76 #, fuzzy msgid "# Year number (must be defined)" msgstr "…rsgruppe (exakt en medlem mste definieras):" #: src/help.c:77 #, fuzzy msgid "# Weekday name (may be defined)" msgstr "Namngruppe med ugedage (en medlem kan definieras):" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "Mnedsgruppe (exakt en medlem mste definieras):" #: src/help.c:79 msgid "# Month number" msgstr "# Mnedsnummer" #: src/help.c:80 msgid "# Month name" msgstr "# Mnedsnavn" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "FremhĤver gruppe (alle medlemmer skal vĤre defineret):" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "Start p fremhĤvningssekvens/markeringstegn" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "Slut p fremhĤvningssekvens/markeringstegn" #: src/help.c:86 msgid "Character replacement:" msgstr "Erstatningstegn:" #: src/help.c:87 #, c-format msgid "Space/blank ('%c') character" msgstr "Mellemrumstegn (\"%c\")" #: src/help.c:88 #, c-format msgid "Underscore ('%c') character" msgstr "Bundstregstegn (\"%c\")" #: src/help.c:89 #, c-format msgid "Percent ('%c') character" msgstr "Procenttegn (\"%c\")" #: src/help.c:90 #, c-format msgid "Backslash ('%c') character" msgstr "Omvendt skrstreg (\"%c\")" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "Alle formatelementer, der er markeret med #, kan valgfrit" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "indeholde en formateringsinstruktion, hvis skabelon ligner:" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[JUSTERING [FORTEGN] [NUL] BREDDE [STIL] [SUFFIKS] FORMAT]" #: src/help.c:94 #, fuzzy msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "Mnedsgruppe (exakt en medlem mste definieras):" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "Feltindhold placeres ved venstre margen med bredden BREDDE" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "Feltindhold placeres centreret med bredden BREDDE" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "Feltindhold placeres ved h¸jre margen med bredden BREDDE" # (i modsĤtning til "must be defined", s denne fortolkning burde vĤre rigtig) #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "FORTEGN (kan defineres):" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "Numerisk vĤrdi udstyres med foranstillet fortegn" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "NUL (kan defineres):" #: src/help.c:104 #, fuzzy msgid "Numerical value is filled with leading zero(es)" msgstr "Dagnummer med inledende nollor" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "BREDDE (skal defineres):" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "Felt har bredden N (%d...%d)" #: src/help.c:107 #, fuzzy msgid "STYLE group (exactly one member may be defined):" msgstr "…rsgruppe (exakt en medlem mste definieras):" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "Feltindhold omdannes til store bogstaver" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "Feltindhold omdannes til sm bogstaver" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "Feltindhold omdannes til ord med stort begyndelsesbogstav" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "SUFFIKS (kan defineres):" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:114 #, fuzzy msgid "FORMAT group (exactly one member must be defined):" msgstr "Mnedsgruppe (exakt en medlem mste definieras):" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:130 msgid "legal holidays" msgstr "offentlige helligdage" #: src/help.c:131 msgid "holidays" msgstr "helligdage" #: src/help.c:132 msgid "Mondays" msgstr "mandage" #: src/help.c:133 msgid "Tuesdays" msgstr "tirsdage" #: src/help.c:134 msgid "Wednesdays" msgstr "onsdage" #: src/help.c:135 msgid "Thursdays" msgstr "torsdage" #: src/help.c:136 msgid "Fridays" msgstr "fredage" #: src/help.c:137 msgid "Saturdays" msgstr "l¸rdage" #: src/help.c:138 msgid "Sundays" msgstr "s¸ndage" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "mandage - torsdage" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "mandage - fredage" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s: Brug \"%s %s\" med et af dessa argument" #: src/help.c:243 msgid "OPTION" msgstr "FLAG" #: src/help.c:256 msgid " Display help text and quit program" msgstr " Vis hjĤlpetekst og afslut" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr " Visa udvidet hjĤlpetekst og afslut" #: src/help.c:291 msgid " Display software license and quit program" msgstr " Visa programlicens og afslut" #: src/help.c:302 #, fuzzy msgid " Display version information and quit program" msgstr " Visa versionsnummer og afslut" #: src/help.c:313 #, fuzzy, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "" " SĤt programmets slutstatus til 127 vid --help, --version osv." #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Opret responsfil for \"%cFIL-flaget\"" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " %-3s = Gem argumenter fra kommandolinjen i filen %s" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" " Skapa et skalprogram som inneholder argumenten fra kommandolinjen" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Skalprogrammets filnavn" #: src/help.c:360 #, fuzzy msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr " Definiera globala datovariabler \"dvar->a...d|f...s|u...|z\"" #: src/help.c:364 #, fuzzy, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr " %-3s = Definition af \"dvar%s'%s%s'\" skilda t med \"%s\"-tegn" #: src/help.c:369 #, fuzzy, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" " t.ex. %sv a%s1127%sb%s054 SĤtt \"a\" til 27 nov og \"b\" til " "4 maj" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr " Exportera lokala datovariabler fra fil til fil" #: src/help.c:393 #, fuzzy, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr " Definiera globala textvariabler \"tvar->%ca...%cz\"" #: src/help.c:398 #, fuzzy, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr " %-3s = Definition af \"dvar%s'%s%s'\" skilda t med \"%s\"-tegn" #: src/help.c:403 #, fuzzy, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" " t.ex. %sr %ca%sfoo%s%cb%sbar SĤtt \"%ca\" til \"foo\" og \"%cb" "\" til \"bar\"" #: src/help.c:409 #, fuzzy, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr " uttryck skilda t med \"%s\"-tegn" #: src/help.c:414 #, fuzzy, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" " t.ex. %sr %ca%sfoo%s%cb%sbar SĤtt \"%ca\" til \"foo\" og \"%cb" "\" til \"bar\"" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr " Exportera lokala textvariabler fra fil til fil" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr " Visa bara de fasta dato, som ikke utesluts af %s" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr " %-3s = Ett eller fler af f¸ljende tegn. Hvis tecknet" #: src/help.c:448 #, fuzzy msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " er en GEMEN, betyder det \"icke uteslutning\"!" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Uteslutning af %s" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "" " %-3s = Lista med \"%c[DATUM][%c[DATUM]]\" og/eller \"%c[DATUM]" "[%c[DATUM]]\"" #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr " uttryck skilda t med \"%s\"-tegn" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr " Visa bara de fasta dato, vars text overensstĤmmer med %s" #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " %-3s = Vilken text eller \"reguljĤrt uttryck\" som helst" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" " Ingen forskel p store/sm bogstaver hvis tilvalget \"%s\" er givet" #: src/help.c:520 #, fuzzy, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Skapa responsfil for \"%cFIL-flaggan\"" #: src/help.c:531 #, fuzzy msgid " Display some debug information" msgstr " Visa lite fejls¸kningsinformation" #: src/help.c:539 #, fuzzy, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal Information ifall programmets interne maxima opns" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr " = handled Som \"internal\" plus filnavn som hanteras" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled Som \"internal\" plus filnavn som ikke hanteras" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Som \"handled\" og \"unhandled\" tillsammans" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" " = abort Som \"all\" men afbryt om filnavnet ikke kan hanteras" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr " AnvĤnd speciellt format for kalenderblad" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - AnvĤnd standardformat for kalenderblad" #: src/help.c:596 #, fuzzy msgid " Use leap year rule of Eastern Orthodox churches" msgstr " AnvĤnd regeln for skudr i ortodoxa kyrkan" #: src/help.c:606 #, fuzzy msgid " Provide calendar sheet with week numbers" msgstr " Tillhandahll kalenderblad med ugenummer" #: src/help.c:617 #, fuzzy, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Bestem typen af ugenumre (nuvĤrende: %s)" #: src/help.c:618 msgid "Standard" msgstr "Standard" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:631 #, fuzzy msgid " = no Standard week numbers" msgstr " Tillhandahll kalenderblad med ugenummer" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr " Undertryck utmatning af kalenderblad explicit" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr " Skicka utdata genom en extern \"%s\"-sidvisare" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr " Skicka utdata genom en enkel intern sidvisare" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " StĤng af framhĤvning af text, helligdage resp. aktuell dag" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr " Framtvinga framhĤvningssekvens om utdata styrs om" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" " SĤtt framhĤvningssekvenspar 1 (=aktuell dag) og 2 (=helligdag)" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr " %-3s = FramhĤvningssekvenspar skilda t med \"%s\"-tegn" #: src/help.c:716 #, fuzzy, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" " t.ex. %sH \\x2%s\\xAE AnvĤnd hexvĤrdina 2 og AE for sekvens 1" #: src/help.c:721 #, fuzzy, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" " t.ex. %sH %s%s*%s* AnvĤnd tecknen \"*\" og \"*\" for " "sekvens 2" #: src/help.c:732 msgid " Modify format of year calendar" msgstr " „ndra format p rskalender" #: src/help.c:736 #, fuzzy, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr " %-3s = 1|2|3|4|6|12 Antalet block" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr " AnvĤnd fortl¸bende dage p ret p kalenderbladet" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b AnvĤnd bda datobeteckningarna (dag i mneden+dag p ret)" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr " AnvĤnd fortl¸bende dage p ret i evighedskalendern" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b AnvĤnd bda datobeteckningarna (dag i mneden+dag p ret)" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr " AnvĤnd fortl¸bende dage p ret p listan med fasta dato" #: src/help.c:795 #, fuzzy, c-format msgid " Set starting day of week (actual: %s)" msgstr " SĤtt dag som veckan begynder med" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr " Skicka utdata via programmet \"%s\" til anvĤndare" #: src/help.c:857 msgid "UNKNOWN" msgstr "" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "" " Visa evighedskalender for helligdage (r i intervallet: %d - %d)" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr " n = AllmĤnna helligdage og minnesdage" #: src/help.c:883 msgid " N = Legal days only" msgstr " N = Enbart allmĤnna helligdage" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Fallende sorteringsordning" #: src/help.c:897 #, fuzzy msgid " Suppress leading blank line of eternal holiday list" msgstr " Evighedskalender for helligdage uden titel" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr " Evighedskalender for helligdage uden titel" #: src/help.c:919 #, fuzzy msgid " Provide eternal holiday list with astronomical data" msgstr " Tillhandahll en evighedskalender med kristna helligdage" #: src/help.c:931 #, fuzzy msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:943 #, fuzzy msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:955 #, fuzzy msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:967 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr " Tillhandahll en evighedskalender med kristna helligdage" #: src/help.c:979 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr " Tillhandahll en evighedskalender med kristna helligdage" #: src/help.c:991 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " Tillhandahll en evighedskalender med kristna helligdage" #: src/help.c:1003 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar months" msgstr " Tillhandahll en evighedskalender med kristna helligdage" #: src/help.c:1015 #, fuzzy msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr " Tillhandahll en evighedskalender med kristna helligdage" #: src/help.c:1027 #, fuzzy msgid " Provide eternal holiday list with Coptic calendar months" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1039 #, fuzzy msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1051 #, fuzzy msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1063 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1075 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1087 #, fuzzy msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " Tillhandahll en evighedskalender med kristna helligdage" #: src/help.c:1099 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1111 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1123 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1135 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1147 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1159 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar months" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1172 #, fuzzy msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1184 #, fuzzy msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1196 #, fuzzy msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1208 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1220 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1232 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1244 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr " Tillhandahll en evighedskalender med kristna helligdage" #: src/help.c:1256 #, fuzzy msgid " Provide eternal holiday list with zodiacal marker data" msgstr " Tillhandahll en evighedskalender uden standardhelligdage" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr "" " Tillhandahll en evighedskalender med landsspecifika helligdage" #: src/help.c:1272 #, fuzzy, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr " %-3s = Enstaka landskod eller en lista med landskoder" #: src/help.c:1277 #, fuzzy, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr " som er sammanbundna med \"%s\"-tegn" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1286 #, fuzzy, c-format msgid " %-*s = Holidays in %s" msgstr " %s = %s helligdage" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1322 #, fuzzy msgid " Set base data of Earth's atmosphere" msgstr " SĤtt dag som veckan begynder med" #: src/help.c:1326 #, fuzzy, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr " %-3s = FramhĤvningssekvenspar skilda t med \"%s\"-tegn" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1344 #, fuzzy msgid " Limit rise/set times of Sun to the day" msgstr " 1. Representation af text" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1366 #, fuzzy, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " # B = Utf¸r ikke skalkommandona \"%c%c[%s]\"" #: src/help.c:1369 #, fuzzy, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " uttryck skilda t med \"%s\"-tegn" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1453 #, fuzzy msgid " Change base year of calendar" msgstr " „ndra format p rskalender" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr " StĤll in perioden for gregorianska reformationen" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " Aktuell tidsperiod: %02d-%02d %s %0*d" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr " %-*d%*s = SĤtt tidsperioden till: %02d-%02d %s %0*d" #: src/help.c:1485 #, fuzzy, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr " %-3s = %s%s%s%s%s%s%s SĤtt tidsperioden uttryckligen" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" " SĤtt ordningen p datoelementen genom at anvĤnda formattexten %s" #: src/help.c:1502 #, fuzzy, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Aktuellt format: (%s) \"%s\" (%s)" #: src/help.c:1504 msgid "self-defined" msgstr "eget" #: src/help.c:1509 #, fuzzy, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = SĤtt formatet till: \"%s\" (%s)" #: src/help.c:1517 #, fuzzy, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr " %-3s = Definiera eget format. Formatelement som kĤnns igen Ĥr:" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1582 #, fuzzy msgid " they are used by the character set used in Germany" msgstr " som er sammanbundna med \"%s\"-tegn" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ FASTA DATUM +++" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" " AnvĤnd standardresursfilen \".%s%s\" for listan med fasta dato" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" " AnvĤnd standardresursfilen \"%s%s\" for listan med fasta dato" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr " Medf¸r tidsperioden: idag" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr " c = Visa bara de dage, som har fasta dato" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr " C = Visa ocks de dage, som ikke har fasta dato" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr " [MOD] = En eller fler af f¸ljende modifierare markerede med #" #: src/help.c:1654 #, fuzzy, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr " # x = Lista med fasta dato uden titel" #: src/help.c:1657 #, fuzzy, c-format msgid " Actual: `%s'" msgstr " = %s Bakt" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" " # g[MOD] = Gruppera fasta dato genom at anvĤnda texten MOD" #: src/help.c:1682 msgid " 1. Representation of text" msgstr " 1. Representation af text" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr " = SĤtt bredden p biorytmens textgrafik" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d - %d LĤngden p en axel" #: src/help.c:1711 #, fuzzy msgid " = Set height of the Moon phase text graphics" msgstr " = SĤtt h¸jden p mnfasens textgrafik" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Totala antalet linjer" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr " # a = Visa ursprunget til fast dato" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr "" " # A = Visa genom at anvĤnda et alternativt listformat" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr " # e = Tag med allmĤnna helligdage og minnesdage" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr " # E = Tag bara med allmĤnna helligdage" #: src/help.c:1763 #, fuzzy msgid " # k = Display week number" msgstr " # k = Visa ugenummer" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = UtelĤmna del af datoet som oprepas" #: src/help.c:1787 #, fuzzy msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr " # U = UtelĤmna datodelen af fasta dato" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr " # U = UtelĤmna datodelen af fasta dato" #: src/help.c:1811 #, fuzzy msgid " # J = Suppress text part of fixed dates" msgstr " # U = UtelĤmna datodelen af fasta dato" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr " # x = Lista med fasta dato uden titel" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr " # z = Visa fortl¸bende fasta dato" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr " # Z = Visa dage, som mangler fasta dato" #: src/help.c:1855 msgid " 2. Respected period" msgstr " 2. Aktuell tidsperiod" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr " = Hantera 29 FEBRUARI under icke skudr" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february Beakta den 28 FEBRUARI" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march Beakta den 1 MARS" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr " # d = Tag med aktuellt dato om periodlista skapas" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" " # l = Skapa periodlista i stĤllet for en enstaka period" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr " # Nd = Enstaka dag N" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = Enstaka dag N" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = Enstaka dag N relativt idag" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s Framt" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr " = %s Bakt" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr " # Nw = Hel vecka N" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1:a veckan / sista veckan foregende " "r" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1 - 52 1:a - 52:a veckan (alltid)" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53:e veckan (ibland)" #: src/help.c:1953 msgid " N = 99 Last week" msgstr " N = 99 Sista veckan" #: src/help.c:1956 #, fuzzy, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # \"%s%s\" = Enstaka dag \"%s\" i mneden \"%s\"" #: src/help.c:1962 #, fuzzy, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr " # \"%s%s\"N = Enstaka N:e ugedag \"%s\" i mneden \"%s\"" #: src/help.c:1967 #, fuzzy, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" " N = 1 - 4 1:a - 4:e ugedagen \"%s\" (alltid)" #: src/help.c:1972 #, fuzzy, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr " N = 5 5:e ugedagen \"%s\" (ibland)" #: src/help.c:1976 #, fuzzy, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Sista ugedagen \"%s\"" #: src/help.c:1980 #, fuzzy, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN\"%s\" = Enstaka N:e ugedag \"%s\"" #: src/help.c:1985 #, fuzzy, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" " N = 1 - 51 1:a - 51:a ugedagen \"%s\" (alltid)" #: src/help.c:1990 #, fuzzy, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" " N = 52|53 52|53:e ugedagen \"%s\" (ibland)" #: src/help.c:1994 #, fuzzy, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 Sista ugedagen \"%s\"" #: src/help.c:1999 #, fuzzy, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr " # %cwN\"%s\" = Enstaka ugedag \"%s\" i N:e veckan" #: src/help.c:2004 #, fuzzy, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" " N = 0 \"%s\" som ikke finns i 1:a veckan" #: src/help.c:2009 #, fuzzy, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" " N = 1 - 51 \"%s\" i 1:a - 51:a veckan (alltid)" #: src/help.c:2014 #, fuzzy, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" " N = 52|53 \"%s\" i 52:a|53:e veckan (ibland)" #: src/help.c:2018 #, fuzzy, c-format msgid " N = 99 %s of last week" msgstr " N = 99 \"%s\" i sista veckan" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr " # %c%c[[%s|%s]N] = Enstaka dag N relativt pskdagen" #: src/help.c:2030 #, fuzzy, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr " # %c%c[%s|%s]N\"%s\"= Enstaka N:e ugedag relativt pskdagen" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr " # %c%c[[%s|%s]N] = Enstaka dag N relativt dagens dato" #: src/help.c:2042 #, fuzzy, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" " # %c%c[%s|%s]N\"%s\"= Enstaka N:e ugedag relativt dagens dato" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr " # %c?[[%s|%s]N] = Enstaka dag N relativt datovariabel" #: src/help.c:2054 #, fuzzy, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" " # %c?[%s|%s]N\"%s\"= Enstaka N:e ugedag relativt datovariabel" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr " # t|T = Lista imorgon" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Lista hela veckan" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" " [MOD] = %s Lista fra imorgon til slutet p veckan" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s Lista fra igr til begyndelsen p veckan" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Lista hela mneden" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" " [MOD] = %s Lista fra imorgon til slutet p mneden" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s Lista fra igr til begyndelsen p mneden" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Lista hela ret" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr " [MOD] = %s Lista fra imorgon til slutet p ret" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" " = %s Lista fra igr til begyndelsen p ret" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr " AnvĤnd alternativ(a) fil(er) i stĤllet for standardresursfil" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = Visa bara de dage, som har fasta dato" #: src/help.c:2169 #, fuzzy msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr " F = Visa ocks de dage, som ikke har fasta dato" #: src/help.c:2173 #, fuzzy, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" " %-3s = Enstaka fil eller lista med filer sammanbundna med \"%s\"-tegn" #: src/help.c:2184 #, fuzzy msgid " Define additional resource file line" msgstr " Definiera ytterligare linjer i resursfilen" #: src/help.c:2186 #, fuzzy, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Vilken resursfillinje som helst" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "%cDATO" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "Anvend angivet \"DATO\" i stedet for dagens dato" #: src/help.c:2202 #, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" "Datoformat: %s[%s[%s|%s[N]]], %s%c%c|%c|dvar[[%s|%s]N[%s]], %s%cdN[%s]" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" " %s%cwN[%s], navn p mned[%s], navn p ugedag[N] eller %s" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "%cFIL" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "LĤs flag og kommandon fra \"FIL\"" #: src/help.c:2224 msgid "COMMAND" msgstr "KOMMANDO" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = Mned i intervallet: %d - %d" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr " eller: navn p mned | %s | %s%s | %s%s | %s%s" #: src/help.c:2236 #, fuzzy, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr " Lista: %s[%s%s]%s...%s%s[%s%s]" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr " Interval: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = …r i intervallet: %d - %d" #: src/help.c:2252 #, fuzzy, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr " Lista: [%s%s]%s%s...%s[%s%s]%s" #: src/help.c:2257 #, fuzzy, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr " Intervall: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2283 #, fuzzy, c-format msgid " %sh, %s Display this help text and quit program" msgstr " Visa hjĤlptext og afslutte" #: src/help.c:2286 #, fuzzy, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " Visa utvidgad hjĤlptext og afslutte" #: src/help.c:2290 #, fuzzy, c-format msgid " %sL, %s Display software license and quit program" msgstr " Visa programlicens og afslutte" #: src/help.c:2294 #, fuzzy, c-format msgid " %sV, %s Display version information and quit program" msgstr " Visa versionsnummer og afslutte" #: src/help.c:2302 #, fuzzy, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " Skicka utdata genom en extern \"%s\"-sidvisare" #: src/help.c:2309 src/help.c:2314 #, fuzzy, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " Skicka utdata genom en enkel intern sidvisare" #: src/help.c:2339 #, fuzzy msgid "This software doesn't claim completeness, correctness or usability." msgstr "Dette program g¸r ikke ansprk p fullstĤndighet, korrekthet eller" #: src/help.c:2343 #, fuzzy msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "anvĤndbarhet. Jag tar af princip ikke ansvar for N…GON skada eller" #: src/help.c:2347 #, fuzzy msgid "or explicit), which result from using or handling my software." msgstr "forlust (direkt eller indirekt), som anvĤndendet eller handhavandet" #: src/help.c:2351 #, fuzzy msgid "If you use this software, you agree without any exception to this" msgstr "af mitt program gett ophov till. Hvis du anvĤnder detta program," #: src/help.c:2353 #, fuzzy msgid "agreement, which binds you LEGALLY !!" msgstr "accepterar du uden undantag detta aftal!!" #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "Dette program er fri software; du m distribuere det og/eller Ĥndre" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "det under vilkrene i \"GNU General Public License\" udgivet af" #: src/help.c:2366 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" "\"Free Software Foundation\"; enten version 3, eller (hvis du ¸nsker det)" #: src/help.c:2368 msgid "any later version." msgstr "enhver senere version." #: src/help.c:2373 #, fuzzy msgid "You should have received a copy of the `GNU General Public License'" msgstr "Du skall ha ftt en kopia af \"GNU General Public License\"" #: src/help.c:2375 #, fuzzy msgid "along with this program; if not, write to the:" msgstr "tillsammans med detta program; om inte, skriv till:" #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" "Brug: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" #: src/help.c:2452 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Brug '%s %s|[%s?]" #: src/help.c:2461 msgid "for more information." msgstr "for at f mere information." #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, c-format msgid "Email bug reports to <%s>" msgstr "Rapportİr fejl til <%s>" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "Detta er fri programvara; se kĤllkoden for kopieringsvillkor" #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "Det finns INGEN garanti, ej heller ngon underforstdd garanti om" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "S„LJBARHET eller L„MPLIGHET F˜R N…GOT SPECIELLT „NDAM…L" #: src/help.c:2617 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%s: Det gregorianske kalenderprogram (GNU cal) %s" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Brug: %s [[FLAG...] [%cDATUM] [%cFIL...]] [KOMMANDO]" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Brug: %s [[FLAG...] [%cFIL...]] [KOMMANDO]" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr " 4.0 eller 4.02" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr " senere end 5.0" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "++ 3.0 eller senere" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "5.1 eller tidigare" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "ukendt oversĤtter" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr " p " #: src/help.c:2827 msgid "(bad version)" msgstr "(dlig version)" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "ukendt oversĤtter (SDK?)" #: src/help.c:2942 msgid " later than 4.5" msgstr " senere end 4.5" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "++ 1.0 eller senere" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr " 1.0 eller 1.5?" #: src/help.c:3075 msgid "unknown " msgstr "ukendt " #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "version %d.%d" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "version %d" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "ukendt version" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s for Alpha)" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s for VAX)" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr " (NetBSD f¸r 0.9)" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 eller senere)" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 eller senere)" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 eller senere)" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "VE" #: src/print.c:566 msgid "Week" msgstr "Vecka" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "em" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "fm" #: src/rc-insert.c:2019 src/rc-insert.c:2029 #, fuzzy msgid "d'\"" msgstr "d'\"" #: src/rc-insert.c:2039 #, fuzzy msgid "h'\"" msgstr "t'\"" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "Kan ikke utf¸ra kommando i filen \"%s\"\n" "Linje: %ld %s" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" "Kommando udf¸rt (statuskode=%d) i filen \"%s\"\n" "Linje %ld: %s" #: src/rc-use.c:514 msgid "Emo" msgstr "Emo" #: src/rc-use.c:519 msgid "Int" msgstr "Int" #: src/rc-use.c:524 msgid "Phy" msgstr "Fys" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "\"Evighedskalender for helligdage\"" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "\"Intern\"" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr " ; uge %s" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "Uge %s" #: src/rc-utils.c:398 src/rc-utils.c:415 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%s: ugyldig dato angivet -- %s\n" "%s\n" "%s\n" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "Skottdagen satt til \"%02d-%s\" i filen \"%s\"." #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "Linje %ld: %s" #: src/rc-utils.c:3634 src/utils.c:275 #, c-format msgid "%s: abort, " msgstr "%s: afbryd, " #: src/rc-utils.c:3642 #, c-format msgid "illegal variable definition in file `%s'" msgstr "ugyldig variabeldefinition i filen \"%s\"" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "ugyldig variabeldefinition \"%c\"" #: src/rc-utils.c:3651 #, c-format msgid "illegal variable operation in file `%s'" msgstr "ugyldig variabeloperation i filen \"%s\"" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "ugyldig operation p variabel \"%c\"" #: src/rc-utils.c:3659 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "variabel \"%c\" udefineret i filen \"%s\"" #: src/rc-utils.c:3663 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "ugyldig vĤrdi tildelt variabel \"%c\" i filen \"%s\"" #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Ugyldigt argument givet i kommandolinje -- %s" #: src/rc-utils.c:3696 #, c-format msgid "Argument `%s' of command line ignored." msgstr "Argumentet \"%s\" p kommandolinjen ignoreres." #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "Linje %ld ignoreret: %s" #: src/tty.c:425 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: for mere, <%s> for at afslutte..." #: src/tty.c:1020 #, c-format msgid "environment variable `%s' not found" msgstr "Milj¸variablen \"%s\" blev ikke fundet" #: src/tty.c:1027 #, c-format msgid "environment variable `%s' not set" msgstr "milj¸variablen \"%s\" er ikke sat" #: src/tty.c:1067 msgid "`termcap' file not found" msgstr "\"termcap\"-fil blev ikke fundet" #: src/tty.c:1072 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "ukendt terminaltype defineret i \"%s\"" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: advarsel, %s.\n" "\n" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" "ugyldigt r for at kunne beregne dato for pskedag\n" "…ret skal vare i intervallet (%d - %d)" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "\"%s\" linje %ld: virtuel hukommelse slut (%s=%d)" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" "del af dato ugyldig i filen \"%s\"\n" "Linje %ld: %s" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "ugyldigt mnedsfelt(%02d) i filen \"%s\"\n" "Linje %ld: %s" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "ugyldigt dagsfelt(%02d) i filen \"%s\"\n" "Linje %ld: %s" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" "ugyldig %s i filen \"%s\"\n" "Linje %ld: %s" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" "ugyldig rekursiv/cyklisk %s i filen \"%s\"\n" "Linje %ld: %s" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "filen \"%s\" ej fundet" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" "ugyldigt N. ugedagsfelt(%d) i filen \"%s\"\n" "Linje %ld: %s" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" "blanktegn mangler efter datodelen i filen \"%s\"\n" "Linje %ld: %s" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "filen \"%s\" kan ikke skrivas\n" "Lagringsmediet fuldt!" #: src/utils.c:333 #, c-format msgid "sending eMail to <%s> failed" msgstr "forsendelse af e-post til <%s> mislykkedes" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "\"%s\" linje %ld: " #: src/utils.c:342 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "\"%s\" linje %ld: (\"%s\") \"%s%d\" mislykkedes" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "lĤsefejl i filen \"%s\"" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "ugyldigt tegn i responsfilen \"%s\"\n" "Linje %ld: %s" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "" "\"%s\" linje %ld: (\"%s\") ugyldig vĤrdi p tabelst¸rrelsen \"sizeof %s>%d\"" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(\"%s\") datoformatet \"%s\" er ugyldigt" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "%s i s¸gem¸nstret \"%s\"" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "ugyldigt s¸gem¸nster \"%s\" specificeret" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "\"%s\" linje %ld: (\"%s\") ikke-behandlet fejl (%d)" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 #, fuzzy msgid "internal" msgstr "Intern" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: programmet afbrudt af signalet %d\n" #: src/utils.c:1081 msgid "th" msgstr "." #: src/utils.c:1085 msgid "st" msgstr "." #: src/utils.c:1089 msgid "nd" msgstr "." #: src/utils.c:1093 msgid "rd" msgstr "." #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "ugyldig dag" #: src/utils.c:1129 msgid "Mon" msgstr "man" #: src/utils.c:1134 msgid "Tue" msgstr "tir" #: src/utils.c:1139 msgid "Wed" msgstr "ons" #: src/utils.c:1144 msgid "Thu" msgstr "tor" #: src/utils.c:1149 msgid "Fri" msgstr "fre" #: src/utils.c:1154 msgid "Sat" msgstr "l¸r" #: src/utils.c:1159 msgid "Sun" msgstr "s¸n" #: src/utils.c:1180 msgid "Mo" msgstr "ma" #: src/utils.c:1185 msgid "Tu" msgstr "ti" #: src/utils.c:1190 msgid "We" msgstr "on" #: src/utils.c:1195 msgid "Th" msgstr "to" #: src/utils.c:1200 msgid "Fr" msgstr "fr" #: src/utils.c:1205 msgid "Sa" msgstr "l¸" #: src/utils.c:1210 msgid "Su" msgstr "s¸" #: src/utils.c:1227 msgid "Monday" msgstr "mandag" #: src/utils.c:1227 msgid "Tuesday" msgstr "tirsdag" #: src/utils.c:1227 msgid "Wednesday" msgstr "onsdag" #: src/utils.c:1227 msgid "Thursday" msgstr "torsdag" #: src/utils.c:1228 msgid "Friday" msgstr "fredag" #: src/utils.c:1228 msgid "Saturday" msgstr "l¸rdag" #: src/utils.c:1228 msgid "Sunday" msgstr "s¸ndag" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "ugyldig mned" #: src/utils.c:1249 msgid "Jan" msgstr "jan" #: src/utils.c:1254 msgid "Feb" msgstr "feb" #: src/utils.c:1259 msgid "Mar" msgstr "mar" #: src/utils.c:1264 msgid "Apr" msgstr "apr" #: src/utils.c:1269 msgid "May" msgstr "maj" #: src/utils.c:1274 msgid "Jun" msgstr "jun" #: src/utils.c:1279 msgid "Jul" msgstr "jul" #: src/utils.c:1284 msgid "Aug" msgstr "aug" #: src/utils.c:1289 msgid "Sep" msgstr "sep" #: src/utils.c:1294 msgid "Oct" msgstr "okt" #: src/utils.c:1299 msgid "Nov" msgstr "nov" #: src/utils.c:1304 msgid "Dec" msgstr "dec" #: src/utils.c:1322 msgid "January" msgstr "januar" #: src/utils.c:1322 msgid "February" msgstr "februar" #: src/utils.c:1323 msgid "March" msgstr "marts" #: src/utils.c:1323 msgid "April" msgstr "april" #: src/utils.c:1333 msgid "May " msgstr "maj" #: src/utils.c:1334 msgid "June" msgstr "juni" #: src/utils.c:1334 msgid "July" msgstr "juli" #: src/utils.c:1335 msgid "August" msgstr "august" #: src/utils.c:1335 msgid "September" msgstr "september" #: src/utils.c:1336 msgid "October" msgstr "oktober" #: src/utils.c:1336 msgid "November" msgstr "november" #: src/utils.c:1336 msgid "December" msgstr "december" #: src/tcal.c:193 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Brug: %s [--%s | --%s] | [--%s=[+|-]TAL] [ARGUMENT...]\n" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: abrudt, " #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "skiftevĤrdien \"%s\" er ugyldigt" #: src/tcal.c:909 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: flaget \"--%s\" beh¸ver et argument" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: fejl da programmet \"%s\" k¸rtes\n" #: src/txt2gcal.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "Brug: %s [--%s | --%s] | [TEKSTFIL | -] [DATO-DEL]\n" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "%s: ingen normal fil\n" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "%s: filen ikke fundet\n" #: src/gcal2txt.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "Brug: %s [--%s| --%s] | [RESSOURCEFIL | -]\n" #~ msgid "" #~ " +++ If you specify two digits for the year I DON'T assume %2d%s +++" #~ msgstr " +++ Hvis du anger ret med tv siffror ANTAR JAG IKKE %2d%s +++" #~ msgid " +++ `%s' is free software, enjoy =8^) +++" #~ msgstr " +++ \"%s\" er \"fri programvara\". Mycket n¸je! =8^) +++" gcal-4.1/po/ca.po0000664000000000000000000042605213041164031010520 00000000000000# Catalan messages for the GNU Gregorian calendar program (GNU cal) # Copyright (C) 2001 Free Software Foundation, Inc. # Ernest Adroguİ Calveras , 2001. # msgid "" msgstr "" "Project-Id-Version: gcal 3.00\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 2002-04-23 13:47+0200\n" "Last-Translator: Ernest Adroguİ Calveras \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "" #: lib/regcomp.c:135 #, fuzzy msgid "Success" msgstr "reeixit" #: lib/regcomp.c:138 msgid "No match" msgstr "" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:156 msgid "Unmatched [, [^, [:, [., or [=" msgstr "" #: lib/regcomp.c:159 #, fuzzy msgid "Unmatched ( or \\(" msgstr "() no correspost" #: lib/regcomp.c:162 #, fuzzy msgid "Unmatched \\{" msgstr "() no correspost" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:168 #, fuzzy msgid "Invalid range end" msgstr "recorregut [] no v lid" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "" #: lib/regcomp.c:180 #, fuzzy msgid "Regular expression too big" msgstr "expressi³ regular massa gran" #: lib/regcomp.c:183 #, fuzzy msgid "Unmatched ) or \\)" msgstr "() no correspost" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, fuzzy, c-format msgid "%s subprocess" msgstr "reeixit" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Provant d'escriure %s `%s'... %s%s%s" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "error" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "reeixit" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "Provant d'obrir%sel fitxer de recursos `%s'... %s%s%s" #: src/file-io.c:1686 msgid " `HERE' " msgstr " `AQU' " # include file #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "Provant d'obrir (nivell: %02d) el fitxer adjunt `%s'... %s%s%s" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "ARG" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "Alemanya" #: src/gcal.c:1075 msgid "U.S.A." msgstr "E.U.A." #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "Gran Bretanya" #: src/gcal.c:1852 msgid "default" msgstr "per defecte" #: src/gcal.c:1951 msgid ":" msgstr ":" #: src/gcal.c:1961 msgid "Y" msgstr "A" #: src/gcal.c:1966 msgid "M" msgstr "M" #: src/gcal.c:1971 msgid "W" msgstr "S" #: src/gcal.c:1976 msgid "D" msgstr "D" #: src/gcal.c:2067 #, fuzzy msgid "Fixed date list:" msgstr "Llista de dates fixes" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "variable d'entorn" #: src/gcal.c:2268 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%s: ordre trobada a la variable d'entorn `%s' -- %s\n" "%s\n" "%s\n" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "Intern" #: src/gcal.c:2864 msgid "response file" msgstr "fitxer de resposta" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "Creat el" #: src/gcal.c:2872 msgid "shell script" msgstr "shell script" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "Missatge del \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "%s: atenci³, no s'ha enviat un correu electr²nic en blanc a <%s>.\n" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "l­nia d'ordres" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: l'opci³ `%s' İs ambigua" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: opci³ no reconeguda `%s'" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: opci³ no v lida -- %s" #: src/gcal.c:5910 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s: l'opci³ `--%s' no permet cap argument" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s: l'opci³ `%s' no permet cap argument" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: l'opci³ `%s' requereix un argument" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: l'opci³ requereix un argument -- %s" #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: opci³ amb argument no v lid -- %s" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: opci³ amb argument ambigu -- %s" #: src/gcal.c:5995 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" "%s: heu introduŻt una data no v lida -- %c%s\n" "%s\n" "%s\n" #: src/hd-data.c:64 msgid "Australia" msgstr "Austr lia" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "B¨lgica" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "Brasil" #: src/hd-data.c:67 msgid "Canada" msgstr "Canad " #: src/hd-data.c:68 msgid "Switzerland" msgstr "SuŻssa" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "Xina" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "Espanya" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "Fran§a" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "Israel" #: src/hd-data.c:75 src/hd-data.c:250 msgid "Italy" msgstr "It lia" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "Jap³" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "Repşblica de Corea" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "M¨xic" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "PaŻsos Baixos" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "Nova Zelanda" #: src/hd-data.c:81 src/hd-data.c:320 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "Rşssia" #: src/hd-data.c:83 msgid "United States" msgstr "Estats Units (EUA)" #: src/hd-data.c:85 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "Uni³ dels Emirats €rabs" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "Afganistan" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "Antigua i Barbuda" #: src/hd-data.c:89 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:90 msgid "Albania" msgstr "Alb nia" #: src/hd-data.c:91 msgid "Armenia" msgstr "Arm¨nia" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "Antilles Holandeses/Bonaire" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "Antilles Holandeses/Cura§ao" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "Antilles Holandeses/Saint Martin" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "Antilles Holandeses/Saba i Statia" #: src/hd-data.c:96 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:97 msgid "Argentina" msgstr "Argentina" #: src/hd-data.c:98 msgid "American Samoa" msgstr "Samoa Americana" #: src/hd-data.c:99 msgid "Austria" msgstr "€ustria" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "Austr lia/Canberra" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "Austr lia/Territori del Nord" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "Austr lia/Queensland" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "Austr lia/Austr lia del Sud" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "Austr lia/Nova Gal·les del Sud" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "Austr lia/Tasm nia" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "Austr lia/Vict²ria" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "Austr lia/Austr lia Occidental" #: src/hd-data.c:108 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "Azerbaidjan" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "B²snia i Hercegovina" #: src/hd-data.c:111 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "Bangla Desh #" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:115 msgid "Bulgaria" msgstr "Bulg ria" #: src/hd-data.c:116 msgid "Bahrain" msgstr "Bahrain" #: src/hd-data.c:117 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:118 msgid "Benin #" msgstr "Ben­n #" #: src/hd-data.c:119 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:120 msgid "Brunei" msgstr "" #: src/hd-data.c:121 msgid "Bolivia" msgstr "Bol­via" #: src/hd-data.c:123 msgid "Bahamas" msgstr "Bahames" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "Illa Bouvet" #: src/hd-data.c:126 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:127 msgid "Belarus" msgstr "Bielorşssia" #: src/hd-data.c:128 msgid "Belize" msgstr "Belize" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "Canad /Alberta" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "Canad /Colşmbia Brit nica" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "Canad /Manitoba" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "Canad /New Brunswick" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "Canad /Terranova i Labrador" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "Canad /Nova Scotia" #: src/hd-data.c:135 #, fuzzy msgid "Canada/Northwest Territories" msgstr "Canad /Territoris del Nord-oest" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "Canad /Ontario" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "Canad /Illa de Prince Edward" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "Canad /Quİbec" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "Canad /Saskatchewan" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "Canad /Yukon" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "Illes Cocos (Keeling)" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "Repşblica Democr tica del Congo #" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "Repşblica Centrafricana" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "Congo #" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "SuŻssa/Aargau" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "SuŻssa/Appenzell Innerrhoden" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "SuŻssa/Appenzell Ausserrhoden" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "SuŻssa/Berna" #: src/hd-data.c:149 #, fuzzy msgid "Switzerland/Basel-Landschaft" msgstr "SuŻssa/Basel-Land" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "SuŻssa/Basel-Stadt" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "SuŻssa/Friburg" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "SuŻssa/Ginebra" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "SuŻssa/Glarus" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "SuŻssa/Graubĵnden" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "SuŻssa/Jura" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "SuŻssa/Lucerna" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "SuŻssa/Neuch˘tel" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "SuŻssa/Nidwalden" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "SuŻssa/Obwalden" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "SuŻssa/St. Gallen" #: src/hd-data.c:161 #, fuzzy msgid "Switzerland/Schaffhausen" msgstr "SuŻssa/Schwyz" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "SuŻssa/Solothurn" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "SuŻssa/Schwyz" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "SuŻssa/Thurgau" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "SuŻssa/Ticino" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "SuŻssa/Uri" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "SuŻssa/Vaud" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "SuŻssa/Valais" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "SuŻssa/Zug" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "SuŻssa/Zuric" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "Costa d'Ivori" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "Illes Cook" #: src/hd-data.c:173 msgid "Chile" msgstr "Xile" #: src/hd-data.c:174 msgid "Cameroon" msgstr "Camerun" #: src/hd-data.c:176 msgid "Colombia" msgstr "Col²mbia" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:178 msgid "Cuba" msgstr "Cuba" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "Cap Verd" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "Illes Christmas" #: src/hd-data.c:181 msgid "Cyprus" msgstr "Xipre" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "Repşblica Txeca" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "Alemanya/Brandenburg" #: src/hd-data.c:184 msgid "Germany/Berlin" msgstr "Alemanya/Berlin" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "Alemanya/Baden-Wĵrttemberg" #: src/hd-data.c:186 msgid "Germany/Bavaria" msgstr "Alemanya/Baviera" #: src/hd-data.c:187 msgid "Germany/Bremen" msgstr "Alemanya/Bremen" #: src/hd-data.c:188 msgid "Germany/Hesse" msgstr "Alemanya/Hessen" #: src/hd-data.c:189 msgid "Germany/Hamburg" msgstr "Alemanya/Hamburg" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Alemanya/Mecklenburg-Pomer nia Occidental" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "Alemanya/Baixa Sax²nia" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "Alemanya/Rin del Nord-Westf lia" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "Alemanya/Ren nia Palatinat" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "Alemanya/Schleswig-Holstein" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saarland" msgstr "Alemanya/Saar" #: src/hd-data.c:196 msgid "Germany/Saxony" msgstr "Alemanya/Sax²nia" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "Alemanya/Sax²nia-Anhalt" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "Alemanya/Tur­ngia" #: src/hd-data.c:199 msgid "Djibouti" msgstr "Djibouti" #: src/hd-data.c:200 msgid "Denmark" msgstr "Dinamarca" #: src/hd-data.c:201 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "Repşblica Dominicana" #: src/hd-data.c:203 msgid "Algeria" msgstr "Alg¨ria" #: src/hd-data.c:204 msgid "Ecuador" msgstr "Equador" #: src/hd-data.c:205 msgid "Estonia" msgstr "Est²nia" #: src/hd-data.c:206 msgid "Egypt" msgstr "Egipte" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "S hara Occidental" #: src/hd-data.c:208 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "Eti²pia" #: src/hd-data.c:211 msgid "Finland" msgstr "Finl ndia" #: src/hd-data.c:212 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "Illes Malvines" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "Estats Federats de Micron¨sia" #: src/hd-data.c:215 msgid "Faroes" msgstr "Illes Faroe" #: src/hd-data.c:217 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "Gran Bretanya/Anglaterra i Gal·les" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "Gran Bretanya/Irlanda del Nord" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "Gran Bretanya/Esc²cia" #: src/hd-data.c:221 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:222 msgid "Georgia" msgstr "Ge²rgia" #: src/hd-data.c:223 msgid "French Guiana" msgstr "Guaiana Francesa" #: src/hd-data.c:224 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:226 msgid "Greenland" msgstr "Groenl ndia" #: src/hd-data.c:227 msgid "Gambia" msgstr "G mbia" #: src/hd-data.c:228 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "Guadalupe" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "Guinea Equatorial" #: src/hd-data.c:231 msgid "Greece" msgstr "Gr¨cia" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "Illes Ge²rgia del Sud i Sandwich del Sud" #: src/hd-data.c:233 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:234 msgid "Guam" msgstr "Guam" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "Guinea Bissau #" #: src/hd-data.c:236 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "Illes Heard i McDonald" #: src/hd-data.c:239 msgid "Honduras" msgstr "Hondures" #: src/hd-data.c:240 msgid "Croatia" msgstr "Cro cia" #: src/hd-data.c:241 msgid "Haiti" msgstr "Hait­" #: src/hd-data.c:242 msgid "Hungary" msgstr "Hongria" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "Indon¨sia #" #: src/hd-data.c:244 msgid "Ireland" msgstr "Irlanda" #: src/hd-data.c:246 msgid "India #" msgstr "ndia #" #: src/hd-data.c:247 msgid "Iraq" msgstr "Iraq" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "Iran" #: src/hd-data.c:249 msgid "Iceland" msgstr "Isl ndia" #: src/hd-data.c:251 msgid "Jamaica" msgstr "Jamaica" #: src/hd-data.c:252 msgid "Jordan" msgstr "Jord nia" #: src/hd-data.c:254 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "Kirguizistan" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "Cambodja #" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:258 msgid "Comoros" msgstr "Comores" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "Saint Christopher i Nevis" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "Repşblica Democr tica Popular de Corea" #: src/hd-data.c:262 msgid "Kuwait" msgstr "Kuwait" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "Illes Caiman" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "Kazakhstan" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "Laos #" #: src/hd-data.c:266 msgid "Lebanon" msgstr "L­ban" #: src/hd-data.c:267 msgid "St Lucia" msgstr "Saint Lucia" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "SrŻ Lanka #" #: src/hd-data.c:270 msgid "Liberia" msgstr "Lib¨ria" #: src/hd-data.c:271 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:272 msgid "Lithuania" msgstr "Litu nia" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "Luxemburg" #: src/hd-data.c:274 msgid "Latvia" msgstr "Let²nia" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "L­bia" #: src/hd-data.c:276 msgid "Morocco" msgstr "Marroc" #: src/hd-data.c:277 msgid "Monaco" msgstr "M²naco" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "Mold via" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "Madagascar #" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "Illes Marshall" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "Maced²nia" #: src/hd-data.c:282 msgid "Mali" msgstr "Mali" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "Mong²lia #" #: src/hd-data.c:284 msgid "Macau" msgstr "Macau" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "Illes Marianes del Nord (Saipan)" #: src/hd-data.c:286 msgid "Martinique" msgstr "Martinica" #: src/hd-data.c:287 msgid "Mauritania" msgstr "Maurit nia" #: src/hd-data.c:288 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:289 msgid "Malta" msgstr "Malta" #: src/hd-data.c:290 msgid "Mauritius" msgstr "Maurici" #: src/hd-data.c:291 msgid "Maldives" msgstr "Maldives" #: src/hd-data.c:292 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "Mal isia #" #: src/hd-data.c:295 msgid "Mozambique" msgstr "Mo§ambic" #: src/hd-data.c:296 msgid "Namibia" msgstr "Nam­bia" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "Nova Caled²nia" #: src/hd-data.c:298 msgid "Niger" msgstr "N­ger" #: src/hd-data.c:299 #, fuzzy msgid "Norfolk Island" msgstr "Illes Norfolk" #: src/hd-data.c:300 msgid "Nigeria" msgstr "Nig¨ria" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "Myanmar (Burma) #" #: src/hd-data.c:304 msgid "Norway" msgstr "Noruega" #: src/hd-data.c:305 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:306 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:307 msgid "Niue" msgstr "Niue" #: src/hd-data.c:309 msgid "Oman" msgstr "Oman" #: src/hd-data.c:310 msgid "Panama" msgstr "Panam " #: src/hd-data.c:311 msgid "Peru" msgstr "Perş" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "Polin¨sia Francesa" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "Papua Nova Guinea" #: src/hd-data.c:314 msgid "Philippines" msgstr "Filipines" #: src/hd-data.c:315 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:316 msgid "Poland" msgstr "Pol²nia" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "Saint Pierre i Miquelon" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "Pitcairn" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "Puerto Rico" #: src/hd-data.c:321 msgid "Palau" msgstr "Palau" #: src/hd-data.c:322 msgid "Paraguay" msgstr "Paraguai" #: src/hd-data.c:323 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:324 msgid "Rİunion" msgstr "Reunion" #: src/hd-data.c:325 msgid "Romania" msgstr "Romania" #: src/hd-data.c:327 msgid "Rwanda" msgstr "Rwanda" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "Ar bia Saudita" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "Salom³" #: src/hd-data.c:330 msgid "Seychellen" msgstr "Seychelles" #: src/hd-data.c:331 msgid "Sudan" msgstr "Sudan" #: src/hd-data.c:332 msgid "Sweden" msgstr "Su¨cia" #: src/hd-data.c:333 msgid "Singapore #" msgstr "Singapur #" #: src/hd-data.c:334 msgid "St Helena" msgstr "Saint Helena" #: src/hd-data.c:335 msgid "Slovenia" msgstr "Eslov¨nia" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "Illes Svalbard i Jan Mayen" #: src/hd-data.c:337 msgid "Slovakia" msgstr "Eslov quia" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:339 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:340 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:341 msgid "Somalia" msgstr "Som lia" #: src/hd-data.c:342 msgid "Suriname #" msgstr "Surinam #" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "S£o Tomİ i Pr­ncipe" #: src/hd-data.c:344 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "S­ria" #: src/hd-data.c:346 msgid "Swaziland" msgstr "Swazil ndia" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "Illes Turks i Caicos" #: src/hd-data.c:348 msgid "Chad" msgstr "Txad" #: src/hd-data.c:349 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:350 msgid "Thailand #" msgstr "Tail ndia" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "Tadjikistan" #: src/hd-data.c:352 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "Turkmenistan" #: src/hd-data.c:354 msgid "Tunisia" msgstr "Tun­sia" #: src/hd-data.c:355 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:356 msgid "Turkey" msgstr "Turquia" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "Trinitat i Tobago #" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:359 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:360 msgid "Tanzania" msgstr "Tanz nia" #: src/hd-data.c:361 msgid "Ukraine" msgstr "UcraŻna" #: src/hd-data.c:362 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "Estats Units/Alaska" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "Estats Units/Alabama" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "Estats Units/Arkansas" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "Estats Units/Arizona" #: src/hd-data.c:367 msgid "United States/California" msgstr "Estats Units/California" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "Estats Units/Colorado" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "Estats Units/Connecticut" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "Estats Units/Columbia" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "Estats Units/Delaware" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "Estats Units/Florida" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "Estats Units/Georgia" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "Estats Units/Hawaii" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "Estats Units/Iowa" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "Estats Units/Idaho" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "Estats Units/Illinois" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "Estats Units/Indiana" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "Estats Units/Kansas" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "Estats Units/Kentucky" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "Estats Units/Louisiana" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "Estats Units/Massachusetts" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "Estats Units/Maryland" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "Estats Units/Maine" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "Estats Units/Michigan" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "Estats Units/Minnesota" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "Estats Units/Missouri" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "Estats Units/Mississippi" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "Estats Units/Montana" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "Estats Units/Carolina del Nord" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "Estats Units/Dakota del Nord" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "Estats Units/Nebraska" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "Estats Units/New Hampshire" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "Estats Units/Nova Jersey" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "Estats Units/Nou M¨xic" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "Estats Units/Nevada" #: src/hd-data.c:397 msgid "United States/New York" msgstr "Estats Units/Nova York" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "Estats Units/Ohio" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "Estats Units/Oklahoma" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "Estats Units/Oregon" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "Estats Units/Pennsylvania" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "Estats Units/Rhode Island" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "Estats Units/Carolina del Sud" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "Estats Units/Dakota del Sud" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "Estats Units/Tennessee" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "Estats Units/Texas" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "Estats Units/Utah" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "Estats Units/Virginia" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "Estats Units/Vermont" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "Estats Units/Washington" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "Estats Units/Wisconsin" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "Estats Units/West Virginia" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "Estats Units/Wyoming" #: src/hd-data.c:414 msgid "Uruguay" msgstr "Uruguai" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "Uzbekistan" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "Saint Vincent i les Grenadines" #: src/hd-data.c:417 msgid "Venezuela" msgstr "Vene§uela" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "Illes Verge (Brit niques)" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "Illes Verge (EUA)" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "Illes Wallis i Futuna" #: src/hd-data.c:423 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:424 msgid "Yemen" msgstr "Iemen" #: src/hd-data.c:425 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "S¨rbia i Montenegro" #: src/hd-data.c:427 msgid "South Africa" msgstr "Repşblica de Sud- frica" #: src/hd-data.c:428 msgid "Zambia" msgstr "Z mbia" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:459 msgid "1st Advent" msgstr "1r Diumenge d'Advent" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "1r Diumenge de Quaresma" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "2n Diumenge d'Advent" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "2n Diumenge de Quaresma" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "3r Diumenge d'Advent" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "3r Diumenge de Quaresma" #: src/hd-data.c:465 msgid "4th Advent" msgstr "4t Diumenge d'Advent" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "4t Diumenge de Quaresma" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "Festival del 7-5-3" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "Dia dels Aborigens" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "Dia dels Bromistes" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "Dia de Tots Sants" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "Dia dels Difunts" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "Dia de l'Alfabet" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "Aniversari d'Auckland" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "Aniversari de Canterbury del Nord" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "Aniversari de Canterbury del Sud" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "Aniversari de les Illes Chatham" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "Aniversari de la Badia de Hawkes" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "Aniversari de Marlborough" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "Aniversari de Nelson" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "Aniversari d'Otago" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "Aniversari de Southland" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "Aniversari de Taranaki" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "Aniversari de Wellington" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "Aniversari de Westland" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "Dia dels Anzac" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "Dia de l'Arbre" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "Dia de les Forces Armades" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "Dia de l'Armistici" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "Dilluns de Cendra" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "Dimecres de Cendra" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "Ascensi³ d'Abdu'l-Baha" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "Ascensi³ de Baha'u'llah" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "Naixement de Baha'u'llah" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "Naixement del Bab" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "Dia de l'Alian§a" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "Declaraci³ del Bab" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "Primer Dia de Ridvan" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "Martiri del Bab" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "Dia d'Any Nou del BahĦ'i" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "Nov¨ Dia de Ridvan" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "Dotz¨ Dia de Ridvan" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "Festa de Bank" #: src/hd-data.c:503 msgid "Basque National Day" msgstr "Dia de la P tria Basca" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "Batalla de Boyne" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "Batalla de Puebla" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "Comen§ament de l'Any Econ²mic" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "Dia de Benito JuĦrez" #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "Aniversari de Bodhidharma" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "Dia dels Amos" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "Dia de Sant Esteve" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "Dia de Menar el Ramat a Casa" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "Dia de la Collita" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "Aniversari de Buda" #: src/hd-data.c:514 msgid "Burns Night" msgstr "Nit de Burns" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "Dia de Camoes" #: src/hd-data.c:516 msgid "Carnival" msgstr "Carnaval" #: src/hd-data.c:517 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:518 msgid "Imbolg" msgstr "Imbolg" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/Any Nou Celta" #: src/hd-data.c:521 msgid "Children's Day" msgstr "Dia de la Inf ncia" #: src/hd-data.c:522 msgid "Cycle" msgstr "Cicle" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "Any Nou Xin¨s" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "Vig­lia de l'Any Nou Xin¨s" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "Dia de Nadal" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "Vig­lia de Nadal" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "Dia de l'Ascensi³ de Crist" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "Dia del Crisantem" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "Dia de la Ciutadania" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "Festa del Civisme" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "Dia de Colom" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "Dia de l'Arribada a l'Edat" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "Aniversari de Confuci" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "Aniversari de la Constituci³" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "Dia d'Any Nou Copte" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "Dia dels Cosmonautes" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "Dia de l'Aixecament de la Creu" #: src/hd-data.c:538 msgid "Culture Day" msgstr "Dia de la Cultura" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "Dia desprİs del Festival de Tardor" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "Dia desprİs d'Escombrar la Tomba" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "Dia d'Andalusia" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "Diada Nacional de Catalunya" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "Dia de Gal­cia" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "Dia de la Preg ria i el Penediment" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "Dia de la Reconciliaci³" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "Dia dels Defensors de la P tria" #: src/hd-data.c:547 msgid "Double-9 Day" msgstr "Dia del doble-9" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "Festival de la Barca Drag³" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "Dia de la Dinastia" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "Dilluns de Pasqua" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "Diumenge de Pasqua" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "Eclipsi Lunar" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "Eclipsi Solar" #: src/hd-data.c:554 msgid "Annular" msgstr "Anular" #: src/hd-data.c:555 msgid "Partial" msgstr "Parcial" #: src/hd-data.c:556 msgid "Penumbral" msgstr "Penombr³s" #: src/hd-data.c:557 msgid "Total" msgstr "Total" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "Alliberaci³ d'Eindhoven" #: src/hd-data.c:559 msgid "Election Day" msgstr "Dia de les Eleccions" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "Aniversari de l'Emperador" #: src/hd-data.c:561 msgid "Equinox Day" msgstr "Dia de l'Equinocci" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "Any Nou Et­op" #: src/hd-data.c:563 msgid "Father's Day" msgstr "Dia del Pare" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "Festa de Corpus Cristi" #: src/hd-data.c:565 msgid "Feast of Fortune" msgstr "Festa de la Fortuna" #: src/hd-data.c:566 msgid "Feast of Heart Jesus" msgstr "Festa del Sagrat Cor de Jesşs" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "Festival dels Fanalets" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "Festival de Sadeh" #: src/hd-data.c:569 msgid "Flag Day" msgstr "Dia de la Bandera" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "Dia de la Cultura Flamenca" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "Fundaci³ del Partit Comunista" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "Dia de la Cultura Francesa" #: src/hd-data.c:573 msgid "French Revolutionary" msgstr "Revolucionaris Francesos" #: src/hd-data.c:574 msgid "Friendship Day" msgstr "Dia de l'Amistat" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "Dia de la Unitat Alemanya" #: src/hd-data.c:576 msgid "Good Friday" msgstr "Divendres Sant" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "Dissabte Sant/Vig­lia de Pasqua" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "Dia dels Avis" #: src/hd-data.c:579 msgid "Greenery Day" msgstr "Dia dels Aliments" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "Dia de la Gruta" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "Dia de la Marmota" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "Dia de la Verge de Guadalupe" #: src/hd-data.c:583 #, fuzzy msgid "Guy Fawkes Day" msgstr "Dia del Noi Fawkes" #: src/hd-data.c:584 msgid "Halloween" msgstr "Dia de Halloween" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "Dia de la Salut i l'Esport" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "Hannukah/Festival de les Llanternes" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "Lag B'Omer" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "Pesach/Pasqua" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "Purim/Festa dels Terrenys" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "Rosh Hashana/Dia d'Any Nou" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "Shavuot/L'Oferiment del Torah" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "Shushan Purim" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "Simchat Torah" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "Sukkot/Festa dels Tabernacles" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "Tisha B'Av/Dia del Dejuni" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tu B'Shevat/Any Nou dels Arbres" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Yom Hashoah/Record de l'Holocaust" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Yom Hazikaron/Record dels Soldats" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "Yom Ha Azmaut/Dia de l'Independ¨ncia" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "Yom Kippur/Dia del Gran Perd³" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Yom Yerushalayim/Dia de Jerusalem" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "Dia dels Sants Innocents" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "Sant­ssima Trinitat" #: src/hd-data.c:604 msgid "Huravee Day" msgstr "Dia de Huravee" #: src/hd-data.c:605 msgid "Independence Day" msgstr "Dia de l'Independ¨ncia" #: src/hd-data.c:606 msgid "Independence Movement Day" msgstr "Dia del Moviment Independentista" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "Proclamaci³ de la Independ¨ncia" #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "Dia d'Any Nou Indi" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "Aniversari d'Aga Khan" #: src/hd-data.c:610 msgid "Ashura'" msgstr "Ashura'" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "Eid-al-Adha" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "Eid-al-Fitr" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "Eid-i-Milad-un-Nabi" #: src/hd-data.c:614 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "Dia d'Imamat" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "Dia d'Any Nou Isl mic" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "Nuzul-al-Qur'an" #: src/hd-data.c:618 msgid "Quds Day" msgstr "Dia de Quds" #: src/hd-data.c:619 msgid "Ramadan" msgstr "Ramad " #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "Shab-e-Bara't" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "Shab-e-Mi'raj" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "Shab-e Qadr" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "Dia d'Any Nou Japon¨s" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "Vig­lia de l'Any Nou Japon¨s" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "Circumcisi³ de Jesşs" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:628 msgid "Labour Day" msgstr "Dia dels Treballadors" #: src/hd-data.c:629 msgid "Labour Thanksgiving Day" msgstr "Dia de Gr cia dels Treballadors" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "Aniversari de Lao Tse" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "Dia de l'Alliberaci³" #: src/hd-data.c:632 msgid "Marine Day" msgstr "Dia de la Marina" #: src/hd-data.c:633 msgid "Martinimas" msgstr "Sant Mart­" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "Dia de Martin L. King" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "Dia dels M rtirs" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "Dia de l'Anunciaci³ de la Verge" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "Dia de l'Ascensi³ de la Verge" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "La Candelera" #: src/hd-data.c:639 msgid "Mary's Expectation" msgstr "Mare de Dİu de l'Esperan§a" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "Immaculada Concepci³" #: src/hd-data.c:641 msgid "Mary's Maternity" msgstr "Festa de la Maternitat de la Verge" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "El Dol§ Nom de la Verge" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "Nativitat de la Mare de Dİu" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "Presentaci³ de la Mare de Dİu" #: src/hd-data.c:645 msgid "Mary's Visitation" msgstr "Visitaci³ de la Verge" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "Santa Maria Mare de Dİu" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "Dijous Sant" #: src/hd-data.c:648 msgid "May Day" msgstr "Primer de Maig" #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "Sant Joan/Solstici d'Estiu" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "Festival de Tardor" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "Festival de Primavera" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "Festival del Mig Any" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "Lluna en Quart Creixent" #: src/hd-data.c:654 msgid "Full Moon" msgstr "Lluna Plena" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "Lluna en Quart Minvant" #: src/hd-data.c:656 msgid "New Moon" msgstr "Lluna Nova" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "Dia de la Mare" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "Dia de la Sogra" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "Banquet d'Aigua de Mşsica" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "Dia de la Fundaci³ Nacional" #: src/hd-data.c:661 msgid "National Holiday" msgstr "Festa Nacional" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "Dia de Dol Nacional" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "Dia d'Any Nou" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "Dia de les Infermeres" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "Antic Any Nou Arm¨ni" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "Antic Any Nou Egipci" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "Dia de l'Any Nou Ortodox" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "Dia de Nostra Senyora Aparecida" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "Diumenge de Rams" #: src/hd-data.c:670 msgid "Parent's Day" msgstr "Dia dels Pares" #: src/hd-data.c:671 msgid "Passion Sunday" msgstr "Diumenge de Passi³" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "Festival de la Pau" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "Festival del Presseguer" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "2a Pasqua/Pentecosta" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "Noruz/Any Nou Persa" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "Dia de les Preg ries" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "Inauguraci³ Presidencial" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "Dia dels Presidents" #: src/hd-data.c:679 msgid "Presidents' Inform" msgstr "Informe dels Presidents" #: src/hd-data.c:680 msgid "President Lincoln's Birthday" msgstr "Aniversari del President Lincoln" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "Dia de la Princesa" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "Diumenge de Quinquag¨sima" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "Dia de la Reforma" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "Dia de la Commemoraci³/Recordaci³" #: src/hd-data.c:685 msgid "Republic Day" msgstr "Dia de la Repşblica" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "Dia del Respecte per la Gent Gran" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "Dia de la Revoluci³" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "Aniversari de Rio de Janeiro" #: src/hd-data.c:689 msgid "Rogation Sunday" msgstr "Diumenge de Tİmpores" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "Aniversari de Sao Paulo" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "Festival de la Neu de Sapporo" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "Festival de la Mongeta" #: src/hd-data.c:693 msgid "Septuagesima Sunday" msgstr "Diumenge de Septuag¨sima" #: src/hd-data.c:694 msgid "Seven Sleepers Day" msgstr "Dia dels Set Dorments" #: src/hd-data.c:695 msgid "Sexagesima Sunday" msgstr "Diumenge de Sexag¨sima" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "Dimarts de Carnaval/Dimarts Gras" #: src/hd-data.c:697 msgid "Solstice Day" msgstr "Dia del Solstici" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "Dia d'Escurar la Xemeneia" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "Festival de Primavera" #: src/hd-data.c:700 msgid "Start of common month" msgstr "Principi del mes comş" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "Principi del mes de trasp s" #: src/hd-data.c:702 msgid "Star Festival" msgstr "Festival de l'Estrella" #: src/hd-data.c:703 msgid "St Andrew's Day" msgstr "Dia de Sant Andreu" #: src/hd-data.c:704 msgid "St Bartholomew Day" msgstr "Dia de Sant Bartomeu" #: src/hd-data.c:705 msgid "St Berchtold's Day" msgstr "Dia de Sant Berchtold" #: src/hd-data.c:706 msgid "St David's Day" msgstr "Dia de Sant David" #: src/hd-data.c:707 msgid "St Edward's Day" msgstr "Dia de Sant Eduard" #: src/hd-data.c:708 msgid "St George's Day" msgstr "Dia de Sant Jordi" #: src/hd-data.c:709 msgid "St James' Day" msgstr "Dia de Sant Jaume" #: src/hd-data.c:710 msgid "St Joseph's Day" msgstr "Dia de Sant Josep" #: src/hd-data.c:711 msgid "St Laurentius Day" msgstr "Dia de Sant Lloren§" #: src/hd-data.c:712 msgid "St Nicholas' Day" msgstr "Dia de Sant Nicolau" #: src/hd-data.c:713 msgid "St Nicholas' Eve" msgstr "Vig­lia de Sant Nicolau" #: src/hd-data.c:714 msgid "St Patrick's Day" msgstr "Dia de Sant Patrici" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "Sant Pere i Sant Pol" #: src/hd-data.c:716 msgid "St Stephen's Day" msgstr "Dia de Sant Esteve" #: src/hd-data.c:717 msgid "St Valentine's Day" msgstr "Dia de Sant Valent­" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "Dimenge de la Mort" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "Dia de l'Oreneta" #: src/hd-data.c:720 msgid "Sweetest Day" msgstr "Dia de la Preciositat" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "Sant Silvestre/Vig­lia d'Any Nou" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "Dia del Mestre" #: src/hd-data.c:723 msgid "Thai New Year's Day" msgstr "Any Nou Tailand¨s" #: src/hd-data.c:724 msgid "Thanksgiving Day" msgstr "Dia d'Acci³ de Gr cies" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "Aniversari del Rei" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "Aniversari de la Reina" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "Epifania/Dia de Reis" #: src/hd-data.c:728 msgid "Tiradentes Day" msgstr "Dia de Tiradentes" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "Dia d'Escombrar la Tomba" #: src/hd-data.c:730 msgid "Transfiguration Day" msgstr "Dia de la Transfiguraci³" #: src/hd-data.c:731 msgid "Tynwald Day" msgstr "Dia de Tynwald" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "Vig­lia de Valborg" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "Carnaval de Ven¨cia" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "Dia dels Veterans" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "Dia de Vict²ria" #: src/hd-data.c:736 msgid "Victory Day" msgstr "Dia de la Vict²ria" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "Dilluns de Pentecosta" #: src/hd-data.c:738 msgid "Women's Day" msgstr "Dia de les Dones" #: src/hd-data.c:739 msgid "Women's Shrove Day" msgstr "Dia del Carnaval de les Dones" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "Dia Mundial dels Animals" #: src/hd-data.c:741 msgid "Youth Day" msgstr "Dia de la Joventut" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "Dia de la Copa d'Adelaida" #: src/hd-data.c:748 msgid "Admission Day" msgstr "Dia de l'Admissi³" #: src/hd-data.c:749 msgid "Alaska Day" msgstr "Dia d'Alaska" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "Dia d'Aleksis Kivi" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "Dia de la Mostra d'Alice-Springs" #: src/hd-data.c:752 msgid "All Saints' Eve" msgstr "Vig­lia de Tots Sants" #: src/hd-data.c:753 msgid "Americas Day" msgstr "Dia de les Am¨riques" #: src/hd-data.c:754 msgid "Angam Day" msgstr "Dia d'Angam" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "Aniversari de la Successi³ d'Amir" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "Aniversari de la Lluita Armada" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "Aniversari de la Marxa Verda" #: src/hd-data.c:759 msgid "Antillian Day" msgstr "Dia de les Antilles" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "Dia de la Lliga €rab" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "Record de l'Arquebisbe Makarios" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "Sant de l'Arquebisbe Makarios" #: src/hd-data.c:764 msgid "Arengo Anniversary" msgstr "Aniversari d'Arengo" #: src/hd-data.c:765 msgid "Army Coup Day" msgstr "Dia del Cop de l'Ex¨rcit" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "Arribada dels SuŻssos" #: src/hd-data.c:767 msgid "Artigas' Birthday" msgstr "Aniversari d'Artigas" #: src/hd-data.c:768 msgid "Asuncion Day" msgstr "Dia de l'Asunci³n" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "Dia Commemoratiu d'Ataturk" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "Dia del Poder Autoritari" #: src/hd-data.c:771 msgid "Ba'ath Revolution Day" msgstr "Dia de la Revoluci³ Ba'ath" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "Dia del Bar³ Bliss" #: src/hd-data.c:773 msgid "Bataan Day" msgstr "Dia de Bataan" #: src/hd-data.c:774 msgid "Battle of Angamos" msgstr "Batalla d'Angamos" #: src/hd-data.c:775 msgid "Battle of BoyacĦ" msgstr "Batalla de BoyacĦ" #: src/hd-data.c:776 msgid "Battle of Carabobo" msgstr "Batalla de Carabobo" #: src/hd-data.c:777 msgid "Battle of Iquique" msgstr "Batalla de Iquique" #: src/hd-data.c:778 msgid "Battle of Las Piedras" msgstr "Batalla de Las Piedras" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "Batalla de N¤fels" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "Comen§ament de l'Estiu" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "Dia de Belgrad" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "Dia de la Batalla de Bennington" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "Benedicci³ de l'Aigua" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "Dia de la Floraci³" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "Dia de Boganda" #: src/hd-data.c:786 msgid "Bonaire Day" msgstr "Dia de Bonaire" #: src/hd-data.c:787 msgid "Boqueron Battle Day" msgstr "Dia de la Batalla de Boquer³n" #: src/hd-data.c:788 msgid "Botswana Day" msgstr "Dia de Botswana" #: src/hd-data.c:789 msgid "Bounty Day" msgstr "Dia de Bounty" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "Dia del Tur³ del Bunker" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "Incendi de Jan Hus" #: src/hd-data.c:792 msgid "Canberra Day" msgstr "Dia de Canberra" #: src/hd-data.c:793 msgid "Caricom Day" msgstr "Dia de Caricom" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "Aniversari de Casimir Pulaski" #: src/hd-data.c:795 msgid "Cassinga Day" msgstr "Dia de Cassinga" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "Festival de Cayenne" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "Dia de Cesar Chavez" #: src/hd-data.c:798 msgid "Charter Day" msgstr "Dia de Charter" #: src/hd-data.c:799 msgid "Chiang Kai-shek's Birthday" msgstr "Aniversari de Chiang Kai-shek" #: src/hd-data.c:800 msgid "Children's White Sunday" msgstr "Diumenge Blanc de la Inf ncia" #: src/hd-data.c:801 msgid "Colon Day" msgstr "Dia de Colon" #: src/hd-data.c:802 msgid "Colorado Day" msgstr "Dia de Colorado" #: src/hd-data.c:803 msgid "Commonwealth Day" msgstr "Dia de la Commonwealth" #: src/hd-data.c:804 msgid "Compact Day" msgstr "Compact Day" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "Dia de l'Acord de la Confederaci³" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "Dia de la Coronaci³" #: src/hd-data.c:807 msgid "Cup Match Day" msgstr "Dia de la Copa Match" #: src/hd-data.c:808 msgid "Custom Chief's Day" msgstr "Dia del Cap de Vendes" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "Dia de C. Mapinduzi" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "Dia de la Mostra de Darwin" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "Dia de la Bona Voluntat" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "Dia de la Revolta dels Estudiants" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "Dia de Laos Lliure" #: src/hd-data.c:814 msgid "Death of H. Christophe" msgstr "Mort de H. Christophe" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "Mort de J. Dessalines" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "Mort del President Abdallah" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "Mort del President Cheikh" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "Mort del President Soilih" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "Mort de Qaid-i-Azam" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "Mort de T. Louverture" #: src/hd-data.c:821 msgid "Defenders Day" msgstr "Dia dels Defensors" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "Dia del Padre" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "Dia de los Maestros" #: src/hd-data.c:824 msgid "Discovery Day" msgstr "Dia del Descobriment" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "L'Enfonsament de Dergue" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "Celebraci³ de la Sessi³ Seca" #: src/hd-data.c:827 msgid "Dr. Sun Yat-sen's Birthday" msgstr "Aniversari del Dr. Sun Yat-sen" #: src/hd-data.c:828 msgid "Duarte's Birthday" msgstr "Aniversari de Duarte" #: src/hd-data.c:829 msgid "Easter Tuesday" msgstr "Dimarts de Pasqua" #: src/hd-data.c:830 msgid "Economic Liberation Day" msgstr "Dia de l'Alliberaci³ Econ²mica" #: src/hd-data.c:831 msgid "Eight Hours Day" msgstr "Dia de les Vuit Hores" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "Eleccions de l'Assamblea Nacional" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "Dia d'Errol Barrow" #: src/hd-data.c:834 msgid "Evacuation Day" msgstr "Dia de l'Evacuaci³" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "Vig­lia de l'Epifania" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "Expedici³ del 33" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "Aniversari de E. Hostos" #: src/hd-data.c:838 msgid "Family Day" msgstr "Dia de la Fam­lia" #: src/hd-data.c:839 msgid "FAO Day" msgstr "Dia de FAO" #: src/hd-data.c:840 msgid "Farmers' Day" msgstr "Dia dels Grangers" #: src/hd-data.c:841 msgid "Father Leval Day" msgstr "Dia del Pare Leval" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "Festa de Nostra Theotokos" #: src/hd-data.c:843 msgid "Fisherman's Day" msgstr "Dia dels Pescadors" #: src/hd-data.c:844 msgid "Foundation of NPLA Day" msgstr "Dia de la Fundaci³ del NPLA" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "Fundaci³ del Partit Popular" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "Dia de Garifuna" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "Aniversari del General San Martin" #: src/hd-data.c:849 msgid "Gospel Day" msgstr "Dia de l'Evangeli" #: src/hd-data.c:850 msgid "Guacanaste Day" msgstr "Dia de Guacanaste" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "Dia de Gustavus Adolphus" #: src/hd-data.c:852 msgid "Heritage Day" msgstr "Dia del Patrimoni" #: src/hd-data.c:853 msgid "Heroes Day" msgstr "Dia dels Herois" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "Dia de la Mostra de Hobart" #: src/hd-data.c:855 msgid "Holy Wednesday" msgstr "Dimecres Sant" #: src/hd-data.c:856 msgid "Ho Chi Minh's Birthday" msgstr "Aniversari de Ho Chi Minh" #: src/hd-data.c:857 msgid "Human Rights Day" msgstr "Dia dels Drets Humans" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "Dia de la Suplicaci³ a l'Hurac " #: src/hd-data.c:859 msgid "Hurricane Thanksgiving Day" msgstr "Dia d'AgraŻment a l'Hurac " #: src/hd-data.c:860 msgid "Independence of Cartagena" msgstr "Independ¨ncia de Cartagena" #: src/hd-data.c:861 msgid "Independence of Cuenca" msgstr "Independ¨ncia de Cuenca" #: src/hd-data.c:862 msgid "Independence of Guayaquil" msgstr "Independ¨ncia de Guayaquil" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "Independ¨ncia de Quito" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "Dia de l'Arribada dels Indis" #: src/hd-data.c:865 msgid "Internal Autonomy Day" msgstr "Dia de l'Autonomia Interna" #: src/hd-data.c:866 msgid "Jefferson Davis' Birthday" msgstr "Aniversari de Jefferson Davis" #: src/hd-data.c:867 msgid "June Holiday" msgstr "Festa de Juny" #: src/hd-data.c:868 msgid "J. Barbosa's Birthday" msgstr "Aniversari de J. Barbosa" #: src/hd-data.c:869 msgid "J. Chilembwe Day" msgstr "Dia de J. Chilembwe" #: src/hd-data.c:870 msgid "J. Diego's Birthday" msgstr "Aniversari de J. Diego" #: src/hd-data.c:871 msgid "J. Robert's Birthday" msgstr "Aniversari de J. Robert" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "Dia de Kamarampaka" #: src/hd-data.c:873 msgid "Kartini Day" msgstr "Dia de Kartini" #: src/hd-data.c:874 msgid "Catherine Show Day" msgstr "Dia de la Mostra de Catherine" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "Dia de Kiev" #: src/hd-data.c:876 msgid "Kim Il-Sung's Birthday" msgstr "Aniversari de Kim Il-Sung" #: src/hd-data.c:877 msgid "Kim Jong-Il's Birthday" msgstr "Aniversari de Kim Jong-Il" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "Dia del Rei Kamehameha" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "Record del Rei Rama I/Chakri" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "Record del Rei Rama V" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "Knabenschiessen" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "Konstantin i Methodius" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "Festa Nacional Lapona" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "Dia de la Copa Launceston" #: src/hd-data.c:885 msgid "Liberty Day" msgstr "Dia de la Llibertat" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "P¨rdua de la Naci³ Musulmana" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "Kermis de la Ciutat de Luxemburg" #: src/hd-data.c:888 msgid "Lyndon B. Johnson Day" msgstr "Dia de Lyndon b. Johnson" #: src/hd-data.c:889 msgid "L. Rivera's Birthday" msgstr "Aniversari de L. Rivera" #: src/hd-data.c:890 msgid "Madaraka Day" msgstr "Dia de Madaraka" #: src/hd-data.c:891 msgid "Mahatma Gandhi's Birthday" msgstr "Aniversari de Mahatma Gandhi" #: src/hd-data.c:892 msgid "Malvinas Day" msgstr "Dia de les Malvines" #: src/hd-data.c:893 msgid "Manila Day" msgstr "Dia de Manila" #: src/hd-data.c:894 msgid "Maputo City Day" msgstr "Dia de la Ciutat de Maputo" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "Dia de Marien Ngouabi" #: src/hd-data.c:896 msgid "Maryland Day" msgstr "Dia de Maryland" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "Dia de la Copa Melbourne" #: src/hd-data.c:898 msgid "Merchant Day" msgstr "Dia del Comerciant" #: src/hd-data.c:899 msgid "St John's/Midsummers Eve" msgstr "Vig­lia de Sant Joan" #: src/hd-data.c:900 msgid "Missionary Day" msgstr "Dia dels Missioners" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "Dia de Mi-CarŞme" #: src/hd-data.c:902 msgid "Morazan Day" msgstr "Dia de Morazan" #: src/hd-data.c:903 msgid "Mosheshoe's Day" msgstr "Dia de Mosheshoe" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "Dia de la Maternitat i la Bellesa" #: src/hd-data.c:905 msgid "Naming Day" msgstr "Dia de l'Anomenament" #: src/hd-data.c:906 msgid "National Bun Day" msgstr "Dia Nacional Bun" #: src/hd-data.c:907 msgid "National Heroes Day" msgstr "Dia dels Herois Nacionals" #: src/hd-data.c:908 msgid "National Redemption Day" msgstr "Dia de la Redempci³ Nacional" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "Dia de la Resist¨ncia Nacional" #: src/hd-data.c:910 msgid "National Revival Day" msgstr "Dia del Restabliment Nacional" #: src/hd-data.c:911 msgid "National Unity Day" msgstr "Dia de la Unitat Nacional" #: src/hd-data.c:912 msgid "Ndadaye Day" msgstr "Dia de Ndadaye" #: src/hd-data.c:913 msgid "Neutrality Day" msgstr "Dia de la Neutralitat" #: src/hd-data.c:914 msgid "Nevada Day" msgstr "Dia de Nevada" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "Aniversari del Nou R¨gim" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "Dia de Nobel" #: src/hd-data.c:917 msgid "Noi Day" msgstr "Dia de Noi" #: src/hd-data.c:918 msgid "OAU Day" msgstr "Dia d'OAU" #: src/hd-data.c:919 msgid "October Holiday" msgstr "Festa d'Octubre" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "Dia de la Indşstria Petrol­fera" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "Nostra Senyora d'Altagracia" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "Nostra Senyora de Camarin" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "Nostra Senyora de Las Mercedes" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "Nostra Senyora de Los Angeles" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "Nostra Senyora de les Set Penes" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "Nostra Senyora de les Vict²ries" #: src/hd-data.c:927 msgid "Panama City Day" msgstr "Dia de la Ciutat de Panam " #: src/hd-data.c:928 msgid "Panamerica Day" msgstr "Dia de Panam¨rica" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "Dia de la Pau de Par­s" #: src/hd-data.c:930 msgid "Patriot's Day" msgstr "Dia del Patriota" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "Dia de la Sublevaci³ Popular" #: src/hd-data.c:932 msgid "People Power Day" msgstr "Dia del Poder Popular" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "Amistat Filipina-Americana" #: src/hd-data.c:934 msgid "Pichincha Day" msgstr "Dia de Pichincha" #: src/hd-data.c:935 msgid "Picnic Day" msgstr "Dia de Picnic" #: src/hd-data.c:936 msgid "Pioneer Day" msgstr "Dia de Pioneer" #: src/hd-data.c:937 msgid "Poya Day" msgstr "Dia de Poya" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "Dia del Pr­ncep Kalanianaole" #: src/hd-data.c:939 msgid "Prince of Wales' Birthday" msgstr "Aniversari del Pr­ncep de Gal·les" #: src/hd-data.c:940 msgid "Proclamation Day" msgstr "Dia de la Proclamaci³" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "Aniversari de Qaid-i-Azam" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "Dia de Ratu Sukuma" #: src/hd-data.c:943 msgid "Recreation Day" msgstr "Dia de la Recreaci³" #: src/hd-data.c:944 msgid "Referendum Day" msgstr "Dia del Refer¨ndum" #: src/hd-data.c:945 msgid "Regatta Day" msgstr "Dia de Regatta" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "Intercanvi de Reg¨ncia" #: src/hd-data.c:947 msgid "Restoration Day" msgstr "Dia de la Restauraci³" #: src/hd-data.c:948 msgid "Return Day" msgstr "Dia del Retorn" #: src/hd-data.c:949 msgid "Reunification Day" msgstr "Dia de la Reunificaci³" #: src/hd-data.c:950 msgid "Rizal Day" msgstr "Dia de Rizal" #: src/hd-data.c:951 msgid "Rwagasore Day" msgstr "Dia de Rwagasore" #: src/hd-data.c:952 msgid "Saba Day" msgstr "Dia de Saba" #: src/hd-data.c:953 msgid "San Jacinto Day" msgstr "Dia de San Jacinto" #: src/hd-data.c:954 msgid "San Josİ Day" msgstr "Dia de San Josİ" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "Dia de l'Establiment de SAR" #: src/hd-data.c:956 msgid "School Holiday" msgstr "Festa de l'Escola" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "Sechsel¤uten" #: src/hd-data.c:958 msgid "Separation Day" msgstr "Dia de la Separaci³" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "Dia de Seretse Khama" #: src/hd-data.c:960 msgid "Settlers Day" msgstr "Dia dels Colons" #: src/hd-data.c:961 msgid "Seward's Day" msgstr "Dia de Seward" #: src/hd-data.c:962 msgid "Shaheed Day" msgstr "Dia de Shaheed" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "Festival de l'Ovella" #: src/hd-data.c:964 msgid "Sheikh Zayed's Ascension Day" msgstr "Dia de l'Ascensi³ de Xeic Zayed" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "Dia de Simon Bolivar" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "Dia de l'Alliberaci³ del Sina­" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "Dia de l'Alliberaci³ dels Esclaus" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "Dia d'Ensumar la Brisa" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "Dia de la Solidaritat" #: src/hd-data.c:970 msgid "Somers Day" msgstr "Dia de Somers" #: src/hd-data.c:971 msgid "Statia-American Day" msgstr "Dia de la Statia-Americana" #: src/hd-data.c:972 msgid "Student's Day" msgstr "Dia de l'Estudiant" #: src/hd-data.c:973 msgid "St Agata Day" msgstr "Dia de Santa €gata" #: src/hd-data.c:974 msgid "St Canute's Day" msgstr "Dia de Sant Canute" #: src/hd-data.c:975 msgid "St Cedilia's Day" msgstr "Dia de Santa Cedilia" #: src/hd-data.c:976 msgid "St Charles' Day" msgstr "Dia de Sant Carles" #: src/hd-data.c:977 msgid "St Demetrius' Day" msgstr "Dia de Sant Demetrius" #: src/hd-data.c:978 msgid "St Dİvote Day" msgstr "Dia de Sant Dİvote" #: src/hd-data.c:979 msgid "St Eliah's Day" msgstr "Dia de Sant Eliah" #: src/hd-data.c:980 msgid "St Jean Baptiste Day" msgstr "Dia de Sant Jean Baptiste" #: src/hd-data.c:981 msgid "St Lucia's Day" msgstr "Dia de Santa Lucia" #: src/hd-data.c:982 msgid "St Marguerite's Day" msgstr "Dia de Santa Margarida" #: src/hd-data.c:983 msgid "St Maroon's Day" msgstr "Dia de Sant Maroon" #: src/hd-data.c:984 msgid "St Michael's Day" msgstr "Dia de Sant Miquel" #: src/hd-data.c:985 msgid "St Olav's Day" msgstr "Dia de Sant Olav" #: src/hd-data.c:986 msgid "St Olav's Eve" msgstr "Vig­lia de Sant Olav" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "Naufragi de Sant Pol" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "Santa Rosa de Lima" #: src/hd-data.c:989 msgid "St Ursula's Day" msgstr "Dia de Santa šrsula" #: src/hd-data.c:990 msgid "St Vincent de Paul's Day" msgstr "Dia de Sant Vincent de Paul" #: src/hd-data.c:991 msgid "Suez Victory Day" msgstr "Dia de la Vict²ria de Suez" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "Aniversari del Sult  Qaboos" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:994 msgid "Sweden Day" msgstr "Dia de Su¨cia" #: src/hd-data.c:995 msgid "S. Doe's Birthday" msgstr "Aniversari de S. Doe" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "Dia de la Mostra de Tennant-Creek" #: src/hd-data.c:997 msgid "Territory Day" msgstr "Dia del Territori" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "Aniversari de la Princesa Reial" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "Sant de la Princesa Reial" #: src/hd-data.c:1000 msgid "The Crown Prince's Birthday" msgstr "Aniversari del Pr­ncep Hereu" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "Sant del Rei" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "Sant de la Reina" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "Dia de Topou I" #: src/hd-data.c:1004 msgid "Town Meeting Day" msgstr "Dia de la Trobada de la Vila" #: src/hd-data.c:1005 msgid "Traditional Day" msgstr "Dia de la Tradici³" #: src/hd-data.c:1006 msgid "Transfer Day" msgstr "Dia de la Transfer¨ncia" #: src/hd-data.c:1007 msgid "Truman Day" msgstr "Dia de Truman" #: src/hd-data.c:1008 msgid "Union Day" msgstr "Dia de l'Uni³" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "Dissoluci³ de l'Uni³ amb Su¨cia" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "Dia de les Nacions Unides" #: src/hd-data.c:1011 msgid "Unity Factory Day" msgstr "Dia de la Unitat Fabril" #: src/hd-data.c:1012 msgid "Victor-Schoelcher Day" msgstr "Dia de Victor-Schoelcher" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "Vidovdan" #: src/hd-data.c:1014 msgid "West Virginia Day" msgstr "Dia de West Virginia" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "Vig­lia de la Segona Pasqua" #: src/hd-data.c:1016 msgid "W. Tubman's Birthday" msgstr "Aniversari de W. Tubman" #: src/hd-data.c:1017 msgid "Yap Day" msgstr "Dia de Yap" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "Zi/Rata" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "Chou/Bou" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "Yin/Tigre" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "Mao/Conill" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "Chen/Drac" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "Si/Serp" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "Wu/Cavall" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "Wei/Ovella" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "Shen/Mico" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "You/Gall" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "Xu/Gos" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "Hai/Porc" #: src/hd-data.c:1287 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1550 msgid "Cel" msgstr "Cel" #: src/hd-data.c:1692 src/hd-data.c:2225 msgid "Chi" msgstr "Xin" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "No s'ha pogut calcular el calendari luni-solar de l'any %d" #: src/hd-data.c:2227 src/hd-data.c:3730 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2423 msgid "Chr" msgstr "Cri" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "RFF" #: src/hd-data.c:2778 src/hd-data.c:2960 msgid "Heb" msgstr "Heb" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "MAA" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "EGA" #: src/hd-data.c:4447 msgid "OxN" msgstr "OxN" #: src/hd-data.c:4449 msgid "OxO" msgstr "OxA" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "Per" #: src/hd-data.c:4847 msgid "Zod" msgstr "Zod" #: src/hd-use.c:929 msgid " day" msgstr " dia" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "Llista eterna de festes" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*sL'any %0*d İs de trasp s" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*sL'any %0*d NO İs de trasp s" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sL'any %d İs de trasp s" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sL'any %d NO İs de trasp s" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr " = %+4d dia" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr " = %+4d dies" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s contİ el m xim (%d) d'entrades possibles!%s" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "Compilat amb %s%s per %s%s%s%s" #: src/help.c:75 msgid "# Day number (must be defined)" msgstr "# Nombre del dia (s'ha de definir)" #: src/help.c:76 msgid "# Year number (must be defined)" msgstr "# Nombre de l'any (s'ha de definir)" #: src/help.c:77 msgid "# Weekday name (may be defined)" msgstr "# Nom del dia (es pot definir)" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "Mes (s'ha de definir exactament un element):" #: src/help.c:79 msgid "# Month number" msgstr "# Nombre del mes" #: src/help.c:80 msgid "# Month name" msgstr "# Nom del mes" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "Ressalt (s'han de definir tots els elements):" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "Inici de la seqĵ¨ncia de ressalt/car cter indicador" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "Fi de la seqĵ¨ncia de ressalt/car cter indicador" #: src/help.c:86 msgid "Character replacement:" msgstr "Substituci³ de car cters:" #: src/help.c:87 #, c-format msgid "Space/blank ('%c') character" msgstr "Car cter ('%c') espai en blanc" #: src/help.c:88 #, c-format msgid "Underscore ('%c') character" msgstr "Car cter ('%c') gui³ baix" #: src/help.c:89 #, c-format msgid "Percent ('%c') character" msgstr "Car cter ('%c') tant per cent" #: src/help.c:90 #, c-format msgid "Backslash ('%c') character" msgstr "Car cter ('%c') barra invertida" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "Tots els elements de format marcats amb un # poden contenir" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "una instrucci³ de format, d'acord amb el segĵent model:" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[ALINIAMENT [SIGNE] [ZERO] AMPLADA [ESTIL] [SUFIX] FORMAT]" #: src/help.c:94 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "ALINIAMENT (s'ha de definir exactament un element):" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" "Situa el contingut del camp al marge esquerra, usant\n" " l'amplada AMPLADA" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "Centra el contingut del camp, usant l'amplada AMPLADA" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" "Situa el contingut del camp al marge dret, usant l'amplada\n" " AMPLADA" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "SIGNE (es pot definir)" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "Escriu el valor num¨ric precedit pel signe" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "ZERO (es pot definir):" #: src/help.c:104 msgid "Numerical value is filled with leading zero(es)" msgstr "El valor num¨ric s'ajusta amb zeros a l'esquerra" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "AMPLADA (s'ha de definir):" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "Defineix l'amplada del camp en N (%d...%d)" #: src/help.c:107 msgid "STYLE group (exactly one member may be defined):" msgstr "ESTIL (es pot definir exactament un membre):" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "Converteix el contingut del camp a lletres majşscules" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "Converteix el contingut del camp a lletres minşscules" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "Converteix la primera lletra de cada paraula a majşscula" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "SUFIX (es pot definir):" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "Escriu el valor num¨ric amb un sufix num¨ric ordinal" #: src/help.c:114 msgid "FORMAT group (exactly one member must be defined):" msgstr "FORMAT (s'ha de definir exactament un membre):" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "El contingut del camp no es talla a la posici³ AMPLADA" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "El contingut del camp es talla a la posici³ AMPLADA" #: src/help.c:130 msgid "legal holidays" msgstr "totes les festes oficials" #: src/help.c:131 msgid "holidays" msgstr "tots els dies festius" #: src/help.c:132 msgid "Mondays" msgstr "tots els dilluns" #: src/help.c:133 msgid "Tuesdays" msgstr "tots els dimarts" #: src/help.c:134 msgid "Wednesdays" msgstr "tots els dimecres" #: src/help.c:135 msgid "Thursdays" msgstr "tots els dijous" #: src/help.c:136 msgid "Fridays" msgstr "tots els divendres" #: src/help.c:137 msgid "Saturdays" msgstr "tots els dissabtes" #: src/help.c:138 msgid "Sundays" msgstr "tots els diumenges" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "tots els dilluns...dijous" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "tots els dilluns...divendres" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s: Useu `%s %s' amb un d'aquests arguments" #: src/help.c:243 msgid "OPTION" msgstr "OPCI“" #: src/help.c:256 msgid " Display help text and quit program" msgstr " Mostra el text d'ajuda i surt" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr " Mostra el text d'ajuda detallat i surt" #: src/help.c:291 msgid " Display software license and quit program" msgstr " Mostra la llic¨ncia i surt" #: src/help.c:302 msgid " Display version information and quit program" msgstr " Mostra informaci³ sobre la versi³ i surt" #: src/help.c:313 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr " Defineix l'estat de SORTIDA en %d per `%s', etc." #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Crea un fitxer de resposta per l'opci³ `%cFILE'" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " %-3s = Desa els arguments de la l­nia d'ordres en el fitxer %s" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr " Crea un shell script amb els arguments de la l­nia d'ordres" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Nom de fitxer del shell script" #: src/help.c:360 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" " Defineix la variable global de data \"DVAR->a...d|f...s|u...|z\"" #: src/help.c:364 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr " %-3s = \"DVAR%s%s%s\" definicions separades per car cters `%s'" # massa llarg #: src/help.c:369 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" " P.e. %sv a%s1127%sb%s054 Defineix `a' com Nov 27 i `b' com " "Maig 4" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr " Exporta les variables locals de data d'un fitxer a un altre" #: src/help.c:393 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr " Defineix la variable global de text \"TVAR->%ca...%cz\"" #: src/help.c:398 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr " %-3s = \"TVAR%sTEXT\" definicions separades per car cters `%s'" # massa llarg #: src/help.c:403 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" " P.e. %sr %ca%sfoo%s%cb%sbar Defineix `%ca' com `foo' i `%cb' " "com `bar'" #: src/help.c:409 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" " = \"TVAR[%s|%c%s]ORDRE\" definicions separades per car cters `%s'" #: src/help.c:414 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" " P.e. %sr %ca%sfoo Assigna la sortida de l'ordre `foo' a `%ca'" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr " Exporta les variables locals de text d'un fitxer a un altre" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr " Mostra nomİs aquelles dates fixes, no excloses per %s" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr " %-3s = Un o mİs dels segĵents car cters. Si el car cter İs una" #: src/help.c:448 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " LLETRA MINšSCULA, significa no exclusi³!" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Exclusi³ de %s" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr " %-3s = Llista de `%c[DATA][%c[DATA]]' i/o `%c[DATA][%c[DATA]]'" #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr " expressions separades per car cters `%s'" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr " Mostra nomİs aquelles dates fixes que corresponen a %s" #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " %-3s = Qualsevol text per cada \"expressi³ regular\" que volgueu" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" " Amb l'opci³ `%s' ignora les difer¨ncies entre majşscules\n" " i minşscules" #: src/help.c:520 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Inverteix el sentit de l'opci³ `%s'" #: src/help.c:531 msgid " Display some debug information" msgstr " Mostra informaci³ per a la depuraci³ del programa" #: src/help.c:539 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal Informa si el programa assoleix els m xims interns" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr " = handled Com `internal' i els noms de fitxer que s'usen" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled Com `internal' i els noms de fitxer que no s'usen" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Com `handled' i `unhandled' junts" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" " = abort Com `all' i avorta si el nom de fitxer no es pot usar" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr " Usa un format especial pel full del calendari" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - Usa el format est ndard pel full del calendari" #: src/help.c:596 msgid " Use leap year rule of Eastern Orthodox churches" msgstr " Usa la regla de l'any de trasp s de l'Esglİsia Ortodoxa" #: src/help.c:606 msgid " Provide calendar sheet with week numbers" msgstr " Escriu el calendari amb els nombres setmanals" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Determina el tipus de nombres setmanals (actual: %s)" #: src/help.c:618 msgid "Standard" msgstr "Est ndard" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes nombres setmanals d'acord amb l'ISO-8601:1988" #: src/help.c:631 msgid " = no Standard week numbers" msgstr " = no Nombres setmanals est ndards" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr " Suprimeix expl­citament la sortida del full del calendari" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr " Dirigeix la sortida cap al paginador extern `%s'" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr " Dirigeix la sortida cap al paginador intern simple" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " Desactiva el ressalt de text, de festius, i dia actual" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" " For§a el ressalt encara que la sortida sigui redirigida/reconduŻda" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" " Defineix els parells 1 (=dia actual) i 2 (=festiu) de la " "seqĵ¨ncia\n" " de ressalt" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "" " %-3s = Parells de la seqĵ¨ncia de ressalt separats per car cters `%s'" #: src/help.c:716 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" " P.e. %sH \\x2%s\\xAE Usa els valors 0x2 i 0xAE per la " "seqĵ¨ncia 1" #: src/help.c:721 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" " P.e. %sH %s%s*%s* Usa els car cters `*' i `*' per la " "seqĵ¨ncia 2" #: src/help.c:732 msgid " Modify format of year calendar" msgstr " Modifica el format del calendari anual" #: src/help.c:736 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr " %-3s = 1|2|3|4|6|12 Nombre de blocs (actual: %d)" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr " Usa els dies de l'any en el full del calendari" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [MOD] = b Usa les dues notacions (dia del mes i de l'any)" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr " Usa els dies de l'any a la llista eterna de festes" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [MOD] = b Usa les dues notacions (dia del mes i de l'any)" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr " Usa els dies de l'any a la llista de dates fixes" #: src/help.c:795 #, c-format msgid " Set starting day of week (actual: %s)" msgstr " Defineix el dia inicial de la setmana (actual: %s)" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr " Envia la sortida a l'usuari a travİs del programa `%s'" #: src/help.c:857 msgid "UNKNOWN" msgstr "DESCONEGUT" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr " [%-3s] = Adre§a electr²nica, o el correu s'envia a l'usuari `%s'" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr " Mostra la llista eterna de festes (Anys entre %d i %d)" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr " n = Dies oficials i commemoratius" #: src/help.c:883 msgid " N = Legal days only" msgstr " N = Nomİs dies oficials" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Ordre descendent" #: src/help.c:897 msgid " Suppress leading blank line of eternal holiday list" msgstr "" " Suprimeix la l­nia en blanc inicial de la llista eterna de festes" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr " Exclou el t­tol de la llista eterna de festes" #: src/help.c:919 msgid " Provide eternal holiday list with astronomical data" msgstr " Escriu la llista amb dades astron²miques" #: src/help.c:931 msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr " Escriu la llista amb les festes del calendari BahĦ'i" #: src/help.c:943 msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr " Escriu la llista amb els mesos del calendari BahĦ'i" #: src/help.c:955 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " Escriu la llista amb els dies festius celtes" #: src/help.c:967 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr " Escriu la llista amb les festes del calendari xin¨s flexible" #: src/help.c:979 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr " Escriu la llista amb els mesos del calendari xin¨s flexible" #: src/help.c:991 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " Escriu la llista amb les festes del calendari xin¨s" #: src/help.c:1003 msgid " Provide eternal holiday list with Chinese calendar months" msgstr " Escriu la llista amb els mesos del calendari xin¨s" #: src/help.c:1015 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" " Escriu la llista amb les festes del calendari cristi  occidental" #: src/help.c:1027 msgid " Provide eternal holiday list with Coptic calendar months" msgstr " Escriu la llista amb els mesos del calendari copte" #: src/help.c:1039 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " Escriu la llista amb els mesos del calendari eti²pic" #: src/help.c:1051 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" " Escriu la llista amb els mesos del calendari revolucionari franc¨s" #: src/help.c:1063 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " Escriu la llista amb les festes del calendari hebreu" #: src/help.c:1075 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " Escriu la llista amb els mesos del calendari hebreu" #: src/help.c:1087 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " Escriu la llista amb els mesos del calendari indi civil" #: src/help.c:1099 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr " Escriu la llista amb les festes del calendari isl mic civil" #: src/help.c:1111 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr " Escriu la llista amb els mesos del calendari isl mic civil" #: src/help.c:1123 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" " Escriu la llista amb les festes del calendari japon¨s flexible" #: src/help.c:1135 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" " Escriu la llista amb els mesos del calendari japon¨s flexible" #: src/help.c:1147 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " Escriu la llista amb les festes del calendari japon¨s" #: src/help.c:1159 msgid " Provide eternal holiday list with Japanese calendar months" msgstr " Escriu la llista amb els mesos del calendari japon¨s" #: src/help.c:1172 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr " Escriu la llista amb les festes d'any nou \"multiculturals\"" #: src/help.c:1184 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr " Escriu la llista amb les mesos de l'antic calendari armeni" #: src/help.c:1196 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr " Escriu la llista amb els mesos de l'antic calendari egipci" #: src/help.c:1208 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " Escriu la llista amb les festes del nou calendari ortodox" #: src/help.c:1220 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr " Escriu la llista amb les festes del vell calendari ortodox" #: src/help.c:1232 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr " Escriu la llista amb les festes del calendari persa" #: src/help.c:1244 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr " Escriu la llista amb els mesos del calendari persa" #: src/help.c:1256 msgid " Provide eternal holiday list with zodiacal marker data" msgstr " Escriu la llista amb dades del zod­ac" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr " Escriu la llista amb les festes espec­fiques d'un pa­s" #: src/help.c:1272 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr " %-3s = Un şnic pa­s, codi de territori, o una llista d'aquests," #: src/help.c:1277 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" " connectats per car cters `%s'. Els paŻsos/territoris marcats" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr " amb un signe # tenen un registre de festes incomplet" #: src/help.c:1286 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = Festes a %s" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" " Defineix el valor de refer¨ncia a l'hora de la posta i la sortida\n" " del sol respectivament de la llargada de l'ombra" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr " %-3s = Valor angular del factor respectivament, de %+.1f a %+.1f" #: src/help.c:1322 msgid " Set base data of Earth's atmosphere" msgstr " Defineix les dades base de l'atmosfera terrestre" #: src/help.c:1326 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "" " %-3s = Pressi³ de l'aire i temperatura separats pel car cter `%s'" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " Pressi³ de l'aire en mil·libars (actual: %.3f)" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr " Temperatura de l'aire en graus cent­grads (actual: %+.3f)" #: src/help.c:1344 msgid " Limit rise/set times of Sun to the day" msgstr " Hora l­mit de la sortida/posta de sol del dia" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" " Representa el temps i dades astron²miques amb la m xima precisi³" #: src/help.c:1366 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " Executa les ordres `%c%c[%s]' de l'int¨rpret (shell)" #: src/help.c:1369 #, fuzzy, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " i les assignacions \"TVAR[%s|%c%s]ORDRE\"" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr " Canvia el temps base de les respectives funcions" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr " astron²miques, canvia l'hora d'inici del cicle" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Difer¨ncia hor ria\n" " (actual: %s%02d%s%02d == " "GMT%s)" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Difer¨ncia hor ria (actual: %s" "%02d%s%02d == GMT%s)" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr " Canvia l'hora del final del cicle" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Valor de l'hora final " "(actual: %02d%s%02d)" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr " Canvia la durada del cicle" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr " %-3s = MMMM|HH%s[MM] Valor de la durada (actual: %02d%s%02d)" #: src/help.c:1453 msgid " Change base year of calendar" msgstr " Canvia l'any base del calendari" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr " %-3s = [%s|%s]YYYY Valor de compensaci³ anual (actual: %d)" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr " Defineix el per­ode de la reforma gregoriana" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " El per­ode respectat actual İs: %02d-%02d %s %0*d" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr " %-*d%*s = Defineix el per­ode en: %02d-%02d %s %0*d" #: src/help.c:1485 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr " %-3s = %s%c%s%s%s%s%s%s Defineix el per­ode expl­citament" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr " Defineix el format de la data, d'acord amb el text %s" #: src/help.c:1502 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Actual: (%s) `%s' (%s)" #: src/help.c:1504 msgid "self-defined" msgstr "autodefinit" #: src/help.c:1509 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = El format İs: `%s' (%s)" #: src/help.c:1517 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" " %-3s = Defineix el format individual. Els elements respectats s³n:" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr "" " Defineix les parelles de car cters especials traduŻbles " "espec­fiques\n" " del pa­s" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr " %-3s = LLETRA-EN-MAJšSCULA\"\"LLETRA-EN-MINšSCULA... definicions" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" " P.e. a `%s%s%s%s%s%s%s%s' %-3s provoca la conversi³ correcta dels" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" " car cters especials precedents en un format de data individual," #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr " que tİ una instrucci³ de format ESTIL, com s³n utilitzats" #: src/help.c:1582 msgid " they are used by the character set used in Germany" msgstr " en el joc de car cters utilitzat a Alemanya" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ DATES FIXES +++" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr " Usa el fitxer de recursos est ndard `.%s%s'" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" " Usa el fitxer de recursos `%s%s' per la llista de dates fixes" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr " Implica el per­ode: Avui" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr "" " c = Mostra nomİs aquells dies, pels quals existeixen dates fixes" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr " C = Mostra tambİ els dies pels quals no existeix cap data fixa" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr " [MOD] = Un o mİs dels segĵents modificadors marcats amb el signe #" #: src/help.c:1654 #, fuzzy, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr " # x = Exclou el t­tol de la llista de dates fixes" #: src/help.c:1657 #, fuzzy, c-format msgid " Actual: `%s'" msgstr " = %s Endarrera" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr " # g[MOD] = Grup de dates fixes per dia amb el text MOD" #: src/help.c:1682 msgid " 1. Representation of text" msgstr " 1. Representaci³ del text" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr " = Defineix l'amplada del gr fic del bioritme" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d...%d Longitud de l'eix" #: src/help.c:1711 msgid " = Set height of the Moon phase text graphics" msgstr "" " = Defineix l'al§ada del gr fic de la fase lunar" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Nombre total de l­nies" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr " # a = Mostra l'or­gen de la data fixa" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr " # A = Usa un format de llista alternatiu" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr " # e = Inclou els dies oficials i commemoratius" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr " # E = Inclou nomİs els dies oficials" #: src/help.c:1763 msgid " # k = Display week number" msgstr " # k = Mostra els nombres setmanals" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = Omet la part repetitiva de les dates fixes" #: src/help.c:1787 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" " # Q = Suprimeix la l­nia inicial en blanc de la llista" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr " # U = Suprimeix la data de les dates fixes" #: src/help.c:1811 msgid " # J = Suppress text part of fixed dates" msgstr " # J = Suprimeix el text de les dates fixes" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr " # x = Exclou el t­tol de la llista de dates fixes" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr " # z = Mostra el nombre consecutiu de la data fixa" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr " # Z = Mostra els dies que no tenen cap data fixa" #: src/help.c:1855 msgid " 2. Respected period" msgstr " 2. Per­ode respectat" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr " = Considera el 29 de Febrer en anys corrents" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february Respecte el 28 de Febrer" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march Respecte l'1 de Mar§" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" " # d = Inclou la data actual a la llista de per­odes" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" " # l = Genera una llista de per­odes, no d'un de sol" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr " # Nd = Dia absolut N" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = Dia absolut N" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = Dia N relatiu a la data actual" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s Endavant" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr " = %s Endarrera" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr " # Nw = Setmana completa N" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1a / şltima setmana de l'any passat" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 1a...52a setmana (sempre)" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53a setmana (de vegades)" #: src/help.c:1953 msgid " N = 99 Last week" msgstr " N = 99 šltima setmana" #: src/help.c:1956 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # %s%s = Dia %s del mes %s" #: src/help.c:1962 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr " # %s%sN = Dia N de la setmana %s del mes %s" #: src/help.c:1967 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" " N = 1...4 1r...4t dia %s de la setmana (sempre)" #: src/help.c:1972 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" " N = 5 5¨ dia %s de la setmana (de vegades)" #: src/help.c:1976 #, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 šltim dia %s de la setmana" #: src/help.c:1980 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN%s = Dia N de la setmana %s" #: src/help.c:1985 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" " N = 1...51 1r...51¨ dia %s de la setmana (sempre)" # llargada de l­nia #: src/help.c:1990 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" " N = 52|53 Dia 52|53 %s de la setmana (de " "vegades)" #: src/help.c:1994 #, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 šltim dia %s de la setmana" #: src/help.c:1999 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr " # %cwN%s = Dia %s de la setmana N" #: src/help.c:2004 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" " N = 0 %s que no es troba a la 1a setmana" #: src/help.c:2009 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" " N = 1...51 %s de la 1a...51a setmana (sempre)" #: src/help.c:2014 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" " N = 52|53 %s de la 52|53a setmana (de vegades)" #: src/help.c:2018 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 %s de l'şltima setmana" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr " # %c%c[[%s|%s]N] = Dia N relatiu al Diumenge de Pasqua" #: src/help.c:2030 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" " # %c%c[%s|%s]N%s = Dia N de la setmana relatiu al Diumenge de " "Pasqua" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr " # %c%c[[%s|%s]N] = Dia N relatiu a la data d'avui" #: src/help.c:2042 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" " # %c%c[%s|%s]N%s = Dia N de la setmana relatiu a la data d'avui" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr " # %c?[[%s|%s]N] = Dia N relatiu a la variable de data" #: src/help.c:2054 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" " # %c?[%s|%s]N%s = Dia N de la setmana relatiu a la variable de " "data" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr " # t|T = Llista de dem " #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Llista de la setmana completa" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" " [MOD] = %s Llista de dem  i fins a finals de setmana" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s Llista des d'ahir fins a principis de " "setmana" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr " # m|m[MOD] = Llista del mes complet" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" " [MOD] = %s Llista des de dem  fins a finals de mes" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s Llista des d'ahir fins a principis de mes" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Llista de l'any complet" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" " [MOD] = %s Llista des de dem  fins a finals d'any" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" " = %s Llista des d'ahir fins a principis d'any" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr "" " Usa fitxer(s) alternatiu(s) en lloc del fitxer de recursos " "est ndard" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr "" " f = Mostra nomİs aquells dies pels quals existeixen dates fixes" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr "" " F = Mostra els dies, encara que no es corresponguin amb cap data fixa" #: src/help.c:2173 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" " %-3s = Un şnic fitxer, o una llista connectada per car cters `%s'" #: src/help.c:2184 msgid " Define additional resource file line" msgstr " Defineix una l­nia adicional en el fitxer de recursos" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Qualsevol l­nia possible del fitxer de recursos" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "%cDATA" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "Usa `DATA' en lloc de la data actual" #: src/help.c:2202 #, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" "Format de data: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr " %s%cwN[%s], nom del mes[%s], nom del dia[N] o %s" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "%cFITXER" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "Carrega les opcions i ordres de `FITXER'" #: src/help.c:2224 msgid "COMMAND" msgstr "ORDRE" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = Mes, entre %d i %d" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr " o: nom del mes | %s | %s%s | %s%s | %s%s" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr " Llista: %s[%s%s]%s...%s%s[%s%s]" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr " Abast: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = Any, entre %d i %d" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr " Llista: [%s%s]%s%s...%s[%s%s]%s" #: src/help.c:2257 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr " Abast: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" #: src/help.c:2283 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr " %sh, %s Mostra aquest text d'ajuda i surt" #: src/help.c:2286 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " %shh, %s Mostra el text d'ajuda detallat i surt" #: src/help.c:2290 #, c-format msgid " %sL, %s Display software license and quit program" msgstr " %sL, %s Mostra la llic¨ncia del programa i surt" #: src/help.c:2294 #, c-format msgid " %sV, %s Display version information and quit program" msgstr " %sV, %s Mostra informaci³ sobre la versi³ i surt" #: src/help.c:2302 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " %sp, %s Dirigeix la sortida al paginador extern `%s'" #: src/help.c:2309 src/help.c:2314 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " %sp, %s Dirigeix la sortida al paginador intern simple" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "Aquest programa pot no ser complet, correcte, o utilitzable." #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "" "L'autor no es responsabilitza en cap cas dels possibles danys (directes" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "o indirectes) ocasionats per l'şs d'aquest programa. En utilitzar" #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "aquest programa esteu acceptant sense exepci³ aquest contracte, que" #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "us vincula LEGALMENT !!" #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "Aquest programa İs lliure; el podeu redistribuŻr i/o modificar d'acord" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" "amb els termes de la Llic¨ncia Pşblica General GNU com va ser publicada" #: src/help.c:2366 #, fuzzy msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "per la `Free Software Foundation'; ja sigui la versi³ 2, o a la vostra" #: src/help.c:2368 msgid "any later version." msgstr "elecci³, qualsevol altra versi³ posterior." #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "Haurieu d'haver rebut una c²pia de la Llic¨ncia Pşblica General GNU" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "junt amb aquest programa; en cas contrari, escriviu a:" #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" "Sintaxi: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" #: src/help.c:2452 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Proveu `%s %s|[%s?]" #: src/help.c:2461 msgid "for more information." msgstr "per obtenir mİs informaci³." #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, c-format msgid "Email bug reports to <%s>" msgstr "Comuniqueu `bugs' a <%s>" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "Aquest programa İs lliure; vegeu el codi font per les condicions de" #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "c²pia. No hi ha CAP garantia, ni tan sols la garantia presuposada" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "de COMERCIABILITAT o ADEQUACI“ A UN PROP’SIT PARTICULAR." #: src/help.c:2617 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%s: El programa del calendari gregori  (GNU cal) %s" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Sintaxi: %s [[OPCI“...] [%cDATA] [%cFITXER...]] [ORDRE]" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Sintaxi: %s [[OPCI“...] [%cFITXER...]] [ORDRE]" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr " 4.0 o 4.02" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr " posterior a la 5.0" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "++ 3.0 o superior" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "5.1 o anterior" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "compilador desconegut" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr " en " #: src/help.c:2827 msgid "(bad version)" msgstr "(versi³ incorrecta)" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "compilador desconegut (SDK?)" #: src/help.c:2942 msgid " later than 4.5" msgstr " superior a la 4.5" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "++ 1.0 o superior" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr "1.0 o 1.5?" #: src/help.c:3075 msgid "unknown " msgstr "desconegut " #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "versi³ %d.%d" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "versi³ %d" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "versi³ desconeguda" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s per Alpha)" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s per VAX)" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr " (NetBDS anterior a la 0.9)" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 o superior)" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 o superior)" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 o superior)" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "CS" #: src/print.c:566 msgid "Week" msgstr "Setmana" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "pm" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "am" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "°'" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "hms" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "No s'ha pogut executar ordre en el fitxer `%s'\n" "L­nia: %ld %s" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" "S'ha executat l'ordre (senyal de sortida=%d) en el fitxer `%s'\n" "L­nia %ld: %s" #: src/rc-use.c:514 msgid "Emo" msgstr "Emo" #: src/rc-use.c:519 msgid "Int" msgstr "Int" #: src/rc-use.c:524 msgid "Phy" msgstr "Fis" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "`Llista eterna de festes'" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "`Intern'" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr " ; Setmana %s" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "Setmana %s" #: src/rc-utils.c:398 src/rc-utils.c:415 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%s: heu introduŻt una data inv lida -- %s\n" "%s\n" "%s\n" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "Dia de trasp s fixat a `%02d-%s' en el fitxer `%s'." #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "L­nia %ld: %s" #: src/rc-utils.c:3634 src/utils.c:275 #, c-format msgid "%s: abort, " msgstr "%s: programa avortat, " #: src/rc-utils.c:3642 #, c-format msgid "illegal variable definition in file `%s'" msgstr "definici³ il·legal de variable en el fitxer `%s'" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "definici³ il·legal de la variable `%c'" #: src/rc-utils.c:3651 #, c-format msgid "illegal variable operation in file `%s'" msgstr "operaci³ il·legal de variable en el fitxer `%s'" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "operaci³ il·legal a la variable `%c'" #: src/rc-utils.c:3659 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "la variable `%c' no est  definida, en el fitxer `%s'" #: src/rc-utils.c:3663 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "Heu assignat un valor inv lid a la variable `%c', en el fitxer `%s'" #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Heu introduŻt un argument inv lid a la l­nia d'ordres -- %s" #: src/rc-utils.c:3696 #, c-format msgid "Argument `%s' of command line ignored." msgstr "S'ha ignorat l'argument `%s' de la l­nia d'ordres." #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "S'ha ignorat la l­nia %ld: %s" #: src/tty.c:425 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: per mİs informaci³, <%s> surt..." #: src/tty.c:1020 #, c-format msgid "environment variable `%s' not found" msgstr "no s'ha trobat la variable d'entorn `%s'" #: src/tty.c:1027 #, c-format msgid "environment variable `%s' not set" msgstr "la variable d'entorn `%s' no est  definida" #: src/tty.c:1067 msgid "`termcap' file not found" msgstr "no s'ha trobat el fitxer `termcap'" #: src/tty.c:1072 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "el tipus de terminal definit a `%s' İs desconegut" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: atenci³, %s.\n" "\n" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" "any inv lid per calcular les dates del Diumenge de Pasqua\n" "L'any ha d'estar entre %d i %d" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "`%s' l­nia %ld: la mem²ria virtual s'ha esgotat (%s=%d)" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" "la part de la data, en el fitxer `%s', no İs v lida\n" "L­nia %ld: %s" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "el camp(%02d) del mes, en el fitxer `%s', no İs v lid\n" "L­nia %ld: %s" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "el camp(%02d) del dia, en el fitxer `%s', no İs v lid\n" "L­nia %ld: %s" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" "%s malformat, en el fitxer `%s'\n" "L­nia %ld: %s" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" "cicle o recursi³ %s no v lida, en el fitxer `%s'\n" "L­nia %ld: %s" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "no s'ha trobat el fitxer `%s'" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" "camp(%d) del dia de la setmana inv lid, en el fitxer `%s'\n" "L­nia %ld: %s" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" "falta un car cter `espai' desprİs de la data en el fitxer `%s'\n" "L­nia %ld: %s" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "no s'ha pogut escriure el fitxer `%s'\n" "El disc est  ple!" #: src/utils.c:333 #, c-format msgid "sending eMail to <%s> failed" msgstr "s'ha produŻt un error en enviar el correu electr²nic a <%s>" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "`%s' l­nia %ld: " #: src/utils.c:342 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "`%s' l­nia %ld: (`%s') `%s%d' error" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "s'ha produŻt un error de lectura pel fitxer `%s'" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "car cter il·legal en el fitxer de resposta `%s'\n" "L­nia %ld: %s" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "`%s' l­nia %ld: (`%s') la mida de la taula İs inv lida `sizeof %s>%d'" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s') el format de la data `%s' no İs v lid" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "%s en el patr³ de recerca `%s'" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "el patr³ de recerca especificat `%s' no İs v lid" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s' l­nia %ld: (`%s') error irrecuperable (%d)" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 #, fuzzy msgid "internal" msgstr "Intern" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: programa avortat pel senyal %d\n" #: src/utils.c:1081 msgid "th" msgstr "¨" #: src/utils.c:1085 msgid "st" msgstr "r" #: src/utils.c:1089 msgid "nd" msgstr "n" #: src/utils.c:1093 msgid "rd" msgstr "r" #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "dia no v lid" #: src/utils.c:1129 msgid "Mon" msgstr "Dll" #: src/utils.c:1134 msgid "Tue" msgstr "Dts" #: src/utils.c:1139 msgid "Wed" msgstr "Dcr" #: src/utils.c:1144 msgid "Thu" msgstr "Djs" #: src/utils.c:1149 msgid "Fri" msgstr "Dvs" #: src/utils.c:1154 msgid "Sat" msgstr "Dsb" #: src/utils.c:1159 msgid "Sun" msgstr "Dmg" #: src/utils.c:1180 msgid "Mo" msgstr "Dl" #: src/utils.c:1185 msgid "Tu" msgstr "Dt" #: src/utils.c:1190 msgid "We" msgstr "Dc" #: src/utils.c:1195 msgid "Th" msgstr "Dj" #: src/utils.c:1200 msgid "Fr" msgstr "Dv" #: src/utils.c:1205 msgid "Sa" msgstr "Ds" #: src/utils.c:1210 msgid "Su" msgstr "Dg" #: src/utils.c:1227 msgid "Monday" msgstr "Dilluns" #: src/utils.c:1227 msgid "Tuesday" msgstr "Dimarts" #: src/utils.c:1227 msgid "Wednesday" msgstr "Dimecres" #: src/utils.c:1227 msgid "Thursday" msgstr "Dijous" #: src/utils.c:1228 msgid "Friday" msgstr "Divendres" #: src/utils.c:1228 msgid "Saturday" msgstr "Dissabte" #: src/utils.c:1228 msgid "Sunday" msgstr "Diumenge" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "mes no v lid" #: src/utils.c:1249 msgid "Jan" msgstr "Gen" #: src/utils.c:1254 msgid "Feb" msgstr "Feb" #: src/utils.c:1259 msgid "Mar" msgstr "Mar" #: src/utils.c:1264 msgid "Apr" msgstr "Abr" #: src/utils.c:1269 msgid "May" msgstr "Mai" #: src/utils.c:1274 msgid "Jun" msgstr "Jun" #: src/utils.c:1279 msgid "Jul" msgstr "Jul" #: src/utils.c:1284 msgid "Aug" msgstr "Ago" #: src/utils.c:1289 msgid "Sep" msgstr "Set" #: src/utils.c:1294 msgid "Oct" msgstr "Oct" #: src/utils.c:1299 msgid "Nov" msgstr "Nov" #: src/utils.c:1304 msgid "Dec" msgstr "Dec" #: src/utils.c:1322 msgid "January" msgstr "Gener" #: src/utils.c:1322 msgid "February" msgstr "Febrer" #: src/utils.c:1323 msgid "March" msgstr "Mar§" #: src/utils.c:1323 msgid "April" msgstr "Abril" #: src/utils.c:1333 msgid "May " msgstr "Maig" #: src/utils.c:1334 msgid "June" msgstr "Juny" #: src/utils.c:1334 msgid "July" msgstr "Juliol" #: src/utils.c:1335 msgid "August" msgstr "Agost" #: src/utils.c:1335 msgid "September" msgstr "Setembre" #: src/utils.c:1336 msgid "October" msgstr "Octubre" #: src/utils.c:1336 msgid "November" msgstr "Novembre" #: src/utils.c:1336 msgid "December" msgstr "Desembre" #: src/tcal.c:193 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Sintaxi: %s [--%s | --%s] | [--%s=[+|-]NOMBRE] [ARGUMENT...]\n" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: programa avortat, " #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "el valor de canvi `%s' no İs v lid" #: src/tcal.c:909 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: l'opci³ `--%s' requereix un argument" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: s'ha produŻt un error durant l'execuci³ de `%s'\n" #: src/txt2gcal.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "Sintaxi: %s [--%s | --%s] | [FITXER-TEXT | -] [SECCI“-DATA]\n" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "%s: no s'ha trobat el fitxer regular\n" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "%s: no s'ha trobat el fitxer\n" #: src/gcal2txt.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "Sintaxi: %s [--%s | --%s] | [FITXER-RECURSOS | -]\n" #~ msgid "Brunei Darussalam" #~ msgstr "Brunei" #~ msgid " %-3s = Any text you like, metacharacters are not respected" #~ msgstr "" #~ " %-3s = Qualsevol text que volgueu, els metacar cters no s³n " #~ "respectats" #~ msgid "Compilation options:" #~ msgstr "Opcions de compilaci³:" #~ msgid "Starting day of week: %s" #~ msgstr "Dia inicial de la setmana: %s" #~ msgid "Type of week numbers: %s" #~ msgstr "Tipus de nombres setmanals: %s" #~ msgid "Base year of calendar: %d" #~ msgstr "Any base del calendari: %d" #~ msgid "Gregorian Reformation: %02d-%02d %s %0*d" #~ msgstr "Reforma Gregoriana: %02d-%02d %s %0*d" #~ msgid "Date format: (%s) `%s' (%s)" #~ msgstr "Format de data: (%s) `%s' (%s)" #~ msgid "Respected countries/territories: %d" #~ msgstr "PaŻsos/territoris respectats: %d" #~ msgid "Time offset value of astronomical functions: %s%02d%s%02d == GMT%s" #~ msgstr "" #~ "Difer¨ncia hor ria de les funcions astron²miques: %s%02d%s%02d == GMT%s" #~ msgid "or (if this fails) to <%s>." #~ msgstr "o (si l'anterior no funciona) a <%s>." #~ msgid "" #~ " +++ If you specify two digits for the year I DON'T assume %2d%s +++" #~ msgstr "" #~ " +++ Si especifiqueu dos d­gits per l'any, NO s'assumeix que İs %2d%s " #~ "+++" #~ msgid " +++ `%s' is free software, enjoy =8^) +++" #~ msgstr " +++ `%s' İs programari lliure, divertiu-vos =8^) +++" #~ msgid "NULL argument" #~ msgstr "argument nul" #~ msgid "out of space" #~ msgstr "no hi ha espai" #~ msgid "too many ()" #~ msgstr "massa ()" #~ msgid "junk on end" #~ msgstr "error al final" #~ msgid "*+ operand could be empty" #~ msgstr "l'operand *+ podria estar buit" #~ msgid "nested *?+" #~ msgstr "*?+ agrupat" #~ msgid "unmatched []" #~ msgstr "[] no correspost" #~ msgid "internal urp" #~ msgstr "problema intern" #~ msgid "?+* follows nothing" #~ msgstr "?+* no acompanya res" #~ msgid "trailing \\" #~ msgstr "\\ arrossegat" #~ msgid "internal disaster" #~ msgstr "desastre intern" #~ msgid "NULL parameter" #~ msgstr "par metre nul" #~ msgid "corrupted program" #~ msgstr "programa corromput" #~ msgid "memory corruption" #~ msgstr "corrupci³ de la mem²ria" #~ msgid "corrupted pointers" #~ msgstr "punters corrumputs" #~ msgid "internal foulup" #~ msgstr "programa empantanegat" #~ msgid "start `%c' " #~ msgstr "comen§a `%c' " #~ msgid "anchored " #~ msgstr "ancorat" #~ msgid "must have \"%s\"" #~ msgstr "ha de tenir \"%s\"" #~ msgid "corrupted opcode" #~ msgstr "codi d'operaci³ corromput" gcal-4.1/po/rw.po0000664000000000000000000036671213041164032010574 00000000000000# Kinyarwanda translations for gcal package. # Copyright (C) 2005 Free Software Foundation, Inc. # Steve Murphy , 2005. # Steve performed initial rough translation from compendium built from translations provided by the following translators: # Philibert Ndandali , 2005. # Viateur MUGENZI , 2005. # NoĞlla Mupole , 2005. # Carole Karema , 2005. # JEAN BAPTISTE NGENDAHAYO , 2005. # Augustin KIBERWA , 2005. # Donatien NSENGIYUMVA , 2005. # Antoine Bigirimana , 2005. # msgid "" msgstr "" "Project-Id-Version: gcal 2.40\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 2005-04-04 10:55-0700\n" "Last-Translator: Steven Michael Murphy \n" "Language-Team: Kinyarwanda \n" "Language: rw\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "" #: lib/regcomp.c:135 #, fuzzy msgid "Success" msgstr "Ibyatunganye" #: lib/regcomp.c:138 msgid "No match" msgstr "" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:156 msgid "Unmatched [, [^, [:, [., or [=" msgstr "" #: lib/regcomp.c:159 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:162 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "" # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\src\dbnamdlg.src:RID_SCDLG_DBNAMES.STR_DB_INVALID.text # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_ERR_INVALID_AREA.text #: lib/regcomp.c:168 #, fuzzy msgid "Invalid range end" msgstr "Igice kitaricyo" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "" #: lib/regcomp.c:180 msgid "Regular expression too big" msgstr "" #: lib/regcomp.c:183 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, fuzzy, c-format msgid "%s subprocess" msgstr "Ibyatunganye" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "" #: src/file-io.c:1562 #, fuzzy, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Kuri Kwandika" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 #, fuzzy msgid "failed" msgstr "Byanze" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 #, fuzzy msgid "success" msgstr "Ibyatunganye" #: src/file-io.c:1685 #, fuzzy, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "Kuri Gufungura IDOSIYE" #: src/file-io.c:1686 msgid " `HERE' " msgstr "" #: src/file-io.c:1698 #, fuzzy, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "Kuri Gufungura urwego Gushyiramo IDOSIYE" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "Ubudage" #: src/gcal.c:1075 #, fuzzy msgid "U.S.A." msgstr "U. A." #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "" # Lock column values #: src/gcal.c:1852 msgid "default" msgstr "mburabuzi" # setup2/source\ui\pages\pcfgserver.src:RESID_PAGE_PAGECONFIGSERVER.FT_INFO3.text #: src/gcal.c:1951 msgid ":" msgstr ":" #: src/gcal.c:1961 msgid "Y" msgstr "" #: src/gcal.c:1966 #, fuzzy msgid "M" msgstr "ukwezi" #: src/gcal.c:1971 #, fuzzy msgid "W" msgstr "Twebwe" #: src/gcal.c:1976 msgid "D" msgstr "" #: src/gcal.c:2067 #, fuzzy msgid "Fixed date list:" msgstr "Itariki Urutonde" #: src/gcal.c:2084 src/gcal.c:2099 #, fuzzy msgid "environment variable" msgstr "IMPINDURAGACIRO" #: src/gcal.c:2268 #, fuzzy, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "%s:Komandi: in IMPINDURAGACIRO Byabonetse" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "By'imbere" # setup2/source\ui\pages\pipath.src:RESID_PAGE_PAGEINSTPATH.FT_INFO3.text #: src/gcal.c:2864 #, fuzzy msgid "response file" msgstr "Idosiye y'igisubizo" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "kiremye" #: src/gcal.c:2872 #, fuzzy msgid "shell script" msgstr "Igikonoshwa IYANDIKA" #: src/gcal.c:3083 #, fuzzy, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "Bivuye" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4945 src/gcal.c:4978 #, fuzzy msgid "command line" msgstr "Komandi: Umurongo" #: src/gcal.c:5895 #, fuzzy, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s:Ihitamo ni" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, fuzzy, c-format msgid "%s: unrecognized option `%s'" msgstr "%s:Ihitamo" #: src/gcal.c:5903 #, fuzzy, c-format msgid "%s: invalid option -- %s" msgstr "%s:Sibyo Ihitamo" #: src/gcal.c:5910 #, fuzzy, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s:Ihitamo Kwemerera" #: src/gcal.c:5915 #, fuzzy, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s:Ihitamo Kwemerera" #: src/gcal.c:5921 #, fuzzy, c-format msgid "%s: option `%s' requires an argument" msgstr "%s:Ihitamo" #: src/gcal.c:5925 #, fuzzy, c-format msgid "%s: option requires an argument -- %s" msgstr "%s:Ihitamo" #: src/gcal.c:5930 src/tcal.c:943 #, fuzzy, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s:Ihitamo Na: Sibyo" #: src/gcal.c:5935 #, fuzzy, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s:Ihitamo Na:" #: src/gcal.c:5995 #, fuzzy, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "%s:Sibyo Itariki" #: src/hd-data.c:64 #, fuzzy msgid "Australia" msgstr "Igitariyani" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "" #: src/hd-data.c:67 msgid "Canada" msgstr "" #: src/hd-data.c:68 msgid "Switzerland" msgstr "" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "" #: src/hd-data.c:75 src/hd-data.c:250 #, fuzzy msgid "Italy" msgstr "Igitariyani" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "" #: src/hd-data.c:81 src/hd-data.c:320 #, fuzzy msgid "Portugal" msgstr "Igiporutugari" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "" #: src/hd-data.c:83 msgid "United States" msgstr "" #: src/hd-data.c:85 msgid "Andorra" msgstr "" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "" #: src/hd-data.c:89 msgid "Anguilla" msgstr "" #: src/hd-data.c:90 msgid "Albania" msgstr "" #: src/hd-data.c:91 msgid "Armenia" msgstr "" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "" #: src/hd-data.c:96 msgid "Angola #" msgstr "" #: src/hd-data.c:97 msgid "Argentina" msgstr "" #: src/hd-data.c:98 msgid "American Samoa" msgstr "" #: src/hd-data.c:99 msgid "Austria" msgstr "" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "" #: src/hd-data.c:108 msgid "Aruba" msgstr "" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "" #: src/hd-data.c:111 msgid "Barbados" msgstr "" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "" #: src/hd-data.c:115 #, fuzzy msgid "Bulgaria" msgstr "Nyahongiriya" #: src/hd-data.c:116 msgid "Bahrain" msgstr "" #: src/hd-data.c:117 msgid "Burundi #" msgstr "" #: src/hd-data.c:118 msgid "Benin #" msgstr "" #: src/hd-data.c:119 msgid "Bermuda" msgstr "" #: src/hd-data.c:120 msgid "Brunei" msgstr "" #: src/hd-data.c:121 msgid "Bolivia" msgstr "" #: src/hd-data.c:123 msgid "Bahamas" msgstr "" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "" #: src/hd-data.c:126 msgid "Botswana" msgstr "" #: src/hd-data.c:127 msgid "Belarus" msgstr "" #: src/hd-data.c:128 msgid "Belize" msgstr "" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "" #: src/hd-data.c:135 msgid "Canada/Northwest Territories" msgstr "" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "" #: src/hd-data.c:149 msgid "Switzerland/Basel-Landschaft" msgstr "" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "" #: src/hd-data.c:173 msgid "Chile" msgstr "" #: src/hd-data.c:174 msgid "Cameroon" msgstr "" #: src/hd-data.c:176 msgid "Colombia" msgstr "" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "" #: src/hd-data.c:178 msgid "Cuba" msgstr "" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "" #: src/hd-data.c:181 msgid "Cyprus" msgstr "" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "" #: src/hd-data.c:184 #, fuzzy msgid "Germany/Berlin" msgstr "Ubudage" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "" #: src/hd-data.c:186 #, fuzzy msgid "Germany/Bavaria" msgstr "Ubudage" #: src/hd-data.c:187 #, fuzzy msgid "Germany/Bremen" msgstr "Ubudage" #: src/hd-data.c:188 #, fuzzy msgid "Germany/Hesse" msgstr "Ubudage" #: src/hd-data.c:189 #, fuzzy msgid "Germany/Hamburg" msgstr "Ubudage" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saarland" msgstr "Ubudage" #: src/hd-data.c:196 #, fuzzy msgid "Germany/Saxony" msgstr "Ubudage" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "" #: src/hd-data.c:199 msgid "Djibouti" msgstr "" #: src/hd-data.c:200 msgid "Denmark" msgstr "" #: src/hd-data.c:201 msgid "Dominica" msgstr "" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "" #: src/hd-data.c:203 msgid "Algeria" msgstr "" #: src/hd-data.c:204 msgid "Ecuador" msgstr "" #: src/hd-data.c:205 msgid "Estonia" msgstr "" #: src/hd-data.c:206 msgid "Egypt" msgstr "" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "" #: src/hd-data.c:208 msgid "Eritrea" msgstr "" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "" #: src/hd-data.c:211 msgid "Finland" msgstr "" #: src/hd-data.c:212 msgid "Fiji #" msgstr "" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "" #: src/hd-data.c:215 msgid "Faroes" msgstr "" #: src/hd-data.c:217 msgid "Gabon #" msgstr "" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "" #: src/hd-data.c:221 msgid "Grenada" msgstr "" #: src/hd-data.c:222 msgid "Georgia" msgstr "" #: src/hd-data.c:223 #, fuzzy msgid "French Guiana" msgstr "Igifaransa" #: src/hd-data.c:224 msgid "Ghana" msgstr "" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "" #: src/hd-data.c:226 msgid "Greenland" msgstr "" #: src/hd-data.c:227 msgid "Gambia" msgstr "" #: src/hd-data.c:228 msgid "Guinea" msgstr "" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "" #: src/hd-data.c:231 #, fuzzy msgid "Greece" msgstr "Ikigereki" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "" #: src/hd-data.c:233 msgid "Guatemala" msgstr "" #: src/hd-data.c:234 msgid "Guam" msgstr "" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "" #: src/hd-data.c:236 msgid "Guyana #" msgstr "" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "" #: src/hd-data.c:239 msgid "Honduras" msgstr "" #: src/hd-data.c:240 msgid "Croatia" msgstr "" #: src/hd-data.c:241 msgid "Haiti" msgstr "" #: src/hd-data.c:242 #, fuzzy msgid "Hungary" msgstr "Nyahongiriya" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "" #: src/hd-data.c:244 msgid "Ireland" msgstr "" #: src/hd-data.c:246 msgid "India #" msgstr "" #: src/hd-data.c:247 msgid "Iraq" msgstr "" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "" #: src/hd-data.c:249 msgid "Iceland" msgstr "" #: src/hd-data.c:251 msgid "Jamaica" msgstr "" #: src/hd-data.c:252 msgid "Jordan" msgstr "" #: src/hd-data.c:254 msgid "Kenya #" msgstr "" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "" #: src/hd-data.c:258 msgid "Comoros" msgstr "" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "" #: src/hd-data.c:262 msgid "Kuwait" msgstr "" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "" #: src/hd-data.c:266 msgid "Lebanon" msgstr "" #: src/hd-data.c:267 msgid "St Lucia" msgstr "" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "" #: src/hd-data.c:270 msgid "Liberia" msgstr "" #: src/hd-data.c:271 msgid "Lesotho" msgstr "" #: src/hd-data.c:272 msgid "Lithuania" msgstr "" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "" #: src/hd-data.c:274 msgid "Latvia" msgstr "" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "" #: src/hd-data.c:276 msgid "Morocco" msgstr "" #: src/hd-data.c:277 msgid "Monaco" msgstr "" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "" #: src/hd-data.c:282 msgid "Mali" msgstr "" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "" #: src/hd-data.c:284 msgid "Macau" msgstr "" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "" #: src/hd-data.c:286 msgid "Martinique" msgstr "" #: src/hd-data.c:287 msgid "Mauritania" msgstr "" #: src/hd-data.c:288 msgid "Montserrat" msgstr "" #: src/hd-data.c:289 msgid "Malta" msgstr "" #: src/hd-data.c:290 msgid "Mauritius" msgstr "" #: src/hd-data.c:291 msgid "Maldives" msgstr "" #: src/hd-data.c:292 msgid "Malawi" msgstr "" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "" #: src/hd-data.c:295 msgid "Mozambique" msgstr "" #: src/hd-data.c:296 msgid "Namibia" msgstr "" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "" #: src/hd-data.c:298 msgid "Niger" msgstr "" #: src/hd-data.c:299 msgid "Norfolk Island" msgstr "" #: src/hd-data.c:300 msgid "Nigeria" msgstr "" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "" #: src/hd-data.c:304 #, fuzzy msgid "Norway" msgstr "Ikinyanoruveji" #: src/hd-data.c:305 msgid "Nepal #" msgstr "" #: src/hd-data.c:306 msgid "Nauru" msgstr "" #: src/hd-data.c:307 msgid "Niue" msgstr "" #: src/hd-data.c:309 msgid "Oman" msgstr "" #: src/hd-data.c:310 msgid "Panama" msgstr "" #: src/hd-data.c:311 msgid "Peru" msgstr "" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "" #: src/hd-data.c:314 msgid "Philippines" msgstr "" #: src/hd-data.c:315 msgid "Pakistan" msgstr "" #: src/hd-data.c:316 msgid "Poland" msgstr "" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "" #: src/hd-data.c:321 msgid "Palau" msgstr "" #: src/hd-data.c:322 msgid "Paraguay" msgstr "" #: src/hd-data.c:323 msgid "Qatar" msgstr "" #: src/hd-data.c:324 msgid "Rİunion" msgstr "" #: src/hd-data.c:325 msgid "Romania" msgstr "" #: src/hd-data.c:327 msgid "Rwanda" msgstr "" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "" #: src/hd-data.c:330 msgid "Seychellen" msgstr "" #: src/hd-data.c:331 msgid "Sudan" msgstr "" #: src/hd-data.c:332 #, fuzzy msgid "Sweden" msgstr "Igisuwedi" #: src/hd-data.c:333 msgid "Singapore #" msgstr "" #: src/hd-data.c:334 msgid "St Helena" msgstr "" #: src/hd-data.c:335 #, fuzzy msgid "Slovenia" msgstr "Ikinyasiloveniya" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "" #: src/hd-data.c:337 #, fuzzy msgid "Slovakia" msgstr "Ikinyasiloveniya" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "" #: src/hd-data.c:339 msgid "San Marino" msgstr "" #: src/hd-data.c:340 msgid "Senegal" msgstr "" #: src/hd-data.c:341 msgid "Somalia" msgstr "" #: src/hd-data.c:342 msgid "Suriname #" msgstr "" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "" #: src/hd-data.c:344 msgid "El Salvador" msgstr "" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "" #: src/hd-data.c:346 msgid "Swaziland" msgstr "" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "" #: src/hd-data.c:348 msgid "Chad" msgstr "" #: src/hd-data.c:349 msgid "Togo #" msgstr "" #: src/hd-data.c:350 msgid "Thailand #" msgstr "" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "" #: src/hd-data.c:352 msgid "Tokelau" msgstr "" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "" #: src/hd-data.c:354 msgid "Tunisia" msgstr "" #: src/hd-data.c:355 msgid "Tonga" msgstr "" #: src/hd-data.c:356 msgid "Turkey" msgstr "" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "" #: src/hd-data.c:359 msgid "Taiwan" msgstr "" #: src/hd-data.c:360 msgid "Tanzania" msgstr "" #: src/hd-data.c:361 msgid "Ukraine" msgstr "" #: src/hd-data.c:362 msgid "Uganda" msgstr "" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "" #: src/hd-data.c:367 msgid "United States/California" msgstr "" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "" #: src/hd-data.c:397 msgid "United States/New York" msgstr "" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "" #: src/hd-data.c:414 msgid "Uruguay" msgstr "" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "" #: src/hd-data.c:417 msgid "Venezuela" msgstr "" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "" #: src/hd-data.c:423 msgid "Samoa" msgstr "" #: src/hd-data.c:424 msgid "Yemen" msgstr "" #: src/hd-data.c:425 msgid "Mayotte" msgstr "" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "" #: src/hd-data.c:427 msgid "South Africa" msgstr "" #: src/hd-data.c:428 msgid "Zambia" msgstr "" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "" #: src/hd-data.c:459 msgid "1st Advent" msgstr "" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "" #: src/hd-data.c:465 msgid "4th Advent" msgstr "" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "" #: src/hd-data.c:503 msgid "Basque National Day" msgstr "" #: src/hd-data.c:504 #, fuzzy msgid "Battle of Boyne" msgstr "Bya" #: src/hd-data.c:505 #, fuzzy msgid "Battle of Puebla" msgstr "Bya" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "" #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "" #: src/hd-data.c:514 msgid "Burns Night" msgstr "" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "" #: src/hd-data.c:516 msgid "Carnival" msgstr "" #: src/hd-data.c:517 msgid "Beltane" msgstr "" #: src/hd-data.c:518 msgid "Imbolg" msgstr "" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "" #: src/hd-data.c:521 msgid "Children's Day" msgstr "" #: src/hd-data.c:522 msgid "Cycle" msgstr "" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "" #: src/hd-data.c:538 msgid "Culture Day" msgstr "" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:544 #, fuzzy msgid "Day of Prayer and Repentance" msgstr "Bya Na" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:547 msgid "Double-9 Day" msgstr "" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "" #: src/hd-data.c:554 msgid "Annular" msgstr "" #: src/hd-data.c:555 msgid "Partial" msgstr "" #: src/hd-data.c:556 msgid "Penumbral" msgstr "" #: src/hd-data.c:557 msgid "Total" msgstr "" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "" #: src/hd-data.c:559 msgid "Election Day" msgstr "" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "" #: src/hd-data.c:561 msgid "Equinox Day" msgstr "" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "" #: src/hd-data.c:563 msgid "Father's Day" msgstr "" #: src/hd-data.c:564 #, fuzzy msgid "Feast of Corpus Christi" msgstr "Bya" #: src/hd-data.c:565 #, fuzzy msgid "Feast of Fortune" msgstr "Bya" #: src/hd-data.c:566 #, fuzzy msgid "Feast of Heart Jesus" msgstr "Bya" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:569 msgid "Flag Day" msgstr "" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "" #: src/hd-data.c:573 msgid "French Revolutionary" msgstr "" #: src/hd-data.c:574 msgid "Friendship Day" msgstr "" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "" #: src/hd-data.c:576 msgid "Good Friday" msgstr "" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "" #: src/hd-data.c:579 msgid "Greenery Day" msgstr "" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "" #: src/hd-data.c:583 msgid "Guy Fawkes Day" msgstr "" #: src/hd-data.c:584 msgid "Halloween" msgstr "" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:604 msgid "Huravee Day" msgstr "" #: src/hd-data.c:605 msgid "Independence Day" msgstr "" #: src/hd-data.c:606 msgid "Independence Movement Day" msgstr "" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "" #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "" #: src/hd-data.c:610 msgid "Ashura'" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:614 msgid "Ghadir" msgstr "" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:618 msgid "Quds Day" msgstr "" #: src/hd-data.c:619 msgid "Ramadan" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:628 msgid "Labour Day" msgstr "" #: src/hd-data.c:629 msgid "Labour Thanksgiving Day" msgstr "" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "" #: src/hd-data.c:632 msgid "Marine Day" msgstr "" #: src/hd-data.c:633 msgid "Martinimas" msgstr "" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:639 msgid "Mary's Expectation" msgstr "" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "" #: src/hd-data.c:641 msgid "Mary's Maternity" msgstr "" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:645 msgid "Mary's Visitation" msgstr "" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "" #: src/hd-data.c:648 msgid "May Day" msgstr "" #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:654 msgid "Full Moon" msgstr "" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:656 msgid "New Moon" msgstr "" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "" #: src/hd-data.c:661 msgid "National Holiday" msgstr "" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "" #: src/hd-data.c:670 msgid "Parent's Day" msgstr "" #: src/hd-data.c:671 msgid "Passion Sunday" msgstr "" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "" #: src/hd-data.c:679 msgid "Presidents' Inform" msgstr "" #: src/hd-data.c:680 msgid "President Lincoln's Birthday" msgstr "" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:685 msgid "Republic Day" msgstr "" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "" #: src/hd-data.c:689 msgid "Rogation Sunday" msgstr "" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:693 msgid "Septuagesima Sunday" msgstr "" #: src/hd-data.c:694 msgid "Seven Sleepers Day" msgstr "" #: src/hd-data.c:695 msgid "Sexagesima Sunday" msgstr "" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "" #: src/hd-data.c:697 msgid "Solstice Day" msgstr "" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "" #: src/hd-data.c:700 msgid "Start of common month" msgstr "" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "" #: src/hd-data.c:702 msgid "Star Festival" msgstr "" #: src/hd-data.c:703 msgid "St Andrew's Day" msgstr "" #: src/hd-data.c:704 msgid "St Bartholomew Day" msgstr "" #: src/hd-data.c:705 msgid "St Berchtold's Day" msgstr "" #: src/hd-data.c:706 msgid "St David's Day" msgstr "" #: src/hd-data.c:707 msgid "St Edward's Day" msgstr "" #: src/hd-data.c:708 msgid "St George's Day" msgstr "" #: src/hd-data.c:709 msgid "St James' Day" msgstr "" #: src/hd-data.c:710 msgid "St Joseph's Day" msgstr "" #: src/hd-data.c:711 msgid "St Laurentius Day" msgstr "" #: src/hd-data.c:712 msgid "St Nicholas' Day" msgstr "" #: src/hd-data.c:713 msgid "St Nicholas' Eve" msgstr "" #: src/hd-data.c:714 msgid "St Patrick's Day" msgstr "" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:716 msgid "St Stephen's Day" msgstr "" #: src/hd-data.c:717 msgid "St Valentine's Day" msgstr "" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "" #: src/hd-data.c:720 msgid "Sweetest Day" msgstr "" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "" #: src/hd-data.c:723 msgid "Thai New Year's Day" msgstr "" #: src/hd-data.c:724 msgid "Thanksgiving Day" msgstr "" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "" #: src/hd-data.c:728 msgid "Tiradentes Day" msgstr "" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:730 msgid "Transfiguration Day" msgstr "" #: src/hd-data.c:731 msgid "Tynwald Day" msgstr "" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "" #: src/hd-data.c:736 msgid "Victory Day" msgstr "" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "" #: src/hd-data.c:738 #, fuzzy msgid "Women's Day" msgstr "UMUNSI" #: src/hd-data.c:739 #, fuzzy msgid "Women's Shrove Day" msgstr "UMUNSI" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "" #: src/hd-data.c:741 msgid "Youth Day" msgstr "" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:748 msgid "Admission Day" msgstr "" #: src/hd-data.c:749 msgid "Alaska Day" msgstr "" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:752 msgid "All Saints' Eve" msgstr "" #: src/hd-data.c:753 msgid "Americas Day" msgstr "" #: src/hd-data.c:754 msgid "Angam Day" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:759 msgid "Antillian Day" msgstr "" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:764 msgid "Arengo Anniversary" msgstr "" #: src/hd-data.c:765 msgid "Army Coup Day" msgstr "" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:767 msgid "Artigas' Birthday" msgstr "" #: src/hd-data.c:768 msgid "Asuncion Day" msgstr "" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:771 msgid "Ba'ath Revolution Day" msgstr "" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:773 msgid "Bataan Day" msgstr "" #: src/hd-data.c:774 #, fuzzy msgid "Battle of Angamos" msgstr "Bya" #: src/hd-data.c:775 #, fuzzy msgid "Battle of BoyacĦ" msgstr "Bya" #: src/hd-data.c:776 #, fuzzy msgid "Battle of Carabobo" msgstr "Bya" #: src/hd-data.c:777 #, fuzzy msgid "Battle of Iquique" msgstr "Bya" #: src/hd-data.c:778 #, fuzzy msgid "Battle of Las Piedras" msgstr "Bya" #: src/hd-data.c:779 #, fuzzy msgid "Battle of N¤fels" msgstr "Bya" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "" #: src/hd-data.c:786 msgid "Bonaire Day" msgstr "" #: src/hd-data.c:787 msgid "Boqueron Battle Day" msgstr "" #: src/hd-data.c:788 msgid "Botswana Day" msgstr "" #: src/hd-data.c:789 msgid "Bounty Day" msgstr "" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:791 #, fuzzy msgid "Burning of Jan Hus" msgstr "Bya" #: src/hd-data.c:792 msgid "Canberra Day" msgstr "" #: src/hd-data.c:793 msgid "Caricom Day" msgstr "" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:795 msgid "Cassinga Day" msgstr "" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:798 msgid "Charter Day" msgstr "" #: src/hd-data.c:799 msgid "Chiang Kai-shek's Birthday" msgstr "" #: src/hd-data.c:800 msgid "Children's White Sunday" msgstr "" #: src/hd-data.c:801 msgid "Colon Day" msgstr "" #: src/hd-data.c:802 msgid "Colorado Day" msgstr "" #: src/hd-data.c:803 msgid "Commonwealth Day" msgstr "" #: src/hd-data.c:804 msgid "Compact Day" msgstr "" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "" #: src/hd-data.c:807 msgid "Cup Match Day" msgstr "" #: src/hd-data.c:808 msgid "Custom Chief's Day" msgstr "" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:812 #, fuzzy msgid "Day of Students Revolt" msgstr "Bya" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:814 #, fuzzy msgid "Death of H. Christophe" msgstr "Bya" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:821 msgid "Defenders Day" msgstr "" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:824 msgid "Discovery Day" msgstr "" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:827 msgid "Dr. Sun Yat-sen's Birthday" msgstr "" #: src/hd-data.c:828 msgid "Duarte's Birthday" msgstr "" #: src/hd-data.c:829 #, fuzzy msgid "Easter Tuesday" msgstr "kwa kabiri" #: src/hd-data.c:830 msgid "Economic Liberation Day" msgstr "" #: src/hd-data.c:831 msgid "Eight Hours Day" msgstr "" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:834 msgid "Evacuation Day" msgstr "" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:838 msgid "Family Day" msgstr "" #: src/hd-data.c:839 msgid "FAO Day" msgstr "" #: src/hd-data.c:840 msgid "Farmers' Day" msgstr "" #: src/hd-data.c:841 msgid "Father Leval Day" msgstr "" #: src/hd-data.c:842 #, fuzzy msgid "Feast of Our Theotokos" msgstr "Bya" #: src/hd-data.c:843 msgid "Fisherman's Day" msgstr "" #: src/hd-data.c:844 msgid "Foundation of NPLA Day" msgstr "" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:849 msgid "Gospel Day" msgstr "" #: src/hd-data.c:850 msgid "Guacanaste Day" msgstr "" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "" #: src/hd-data.c:852 msgid "Heritage Day" msgstr "" #: src/hd-data.c:853 msgid "Heroes Day" msgstr "" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:855 #, fuzzy msgid "Holy Wednesday" msgstr "kwa gatatu" #: src/hd-data.c:856 msgid "Ho Chi Minh's Birthday" msgstr "" #: src/hd-data.c:857 msgid "Human Rights Day" msgstr "" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:859 msgid "Hurricane Thanksgiving Day" msgstr "" #: src/hd-data.c:860 msgid "Independence of Cartagena" msgstr "" #: src/hd-data.c:861 msgid "Independence of Cuenca" msgstr "" #: src/hd-data.c:862 msgid "Independence of Guayaquil" msgstr "" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:865 msgid "Internal Autonomy Day" msgstr "" #: src/hd-data.c:866 msgid "Jefferson Davis' Birthday" msgstr "" #: src/hd-data.c:867 #, fuzzy msgid "June Holiday" msgstr "By'amategeko Konji" #: src/hd-data.c:868 msgid "J. Barbosa's Birthday" msgstr "" #: src/hd-data.c:869 msgid "J. Chilembwe Day" msgstr "" #: src/hd-data.c:870 msgid "J. Diego's Birthday" msgstr "" #: src/hd-data.c:871 msgid "J. Robert's Birthday" msgstr "" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:873 msgid "Kartini Day" msgstr "" #: src/hd-data.c:874 msgid "Catherine Show Day" msgstr "" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "" #: src/hd-data.c:876 msgid "Kim Il-Sung's Birthday" msgstr "" #: src/hd-data.c:877 msgid "Kim Jong-Il's Birthday" msgstr "" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:885 msgid "Liberty Day" msgstr "" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:888 msgid "Lyndon B. Johnson Day" msgstr "" #: src/hd-data.c:889 msgid "L. Rivera's Birthday" msgstr "" #: src/hd-data.c:890 msgid "Madaraka Day" msgstr "" #: src/hd-data.c:891 msgid "Mahatma Gandhi's Birthday" msgstr "" #: src/hd-data.c:892 msgid "Malvinas Day" msgstr "" #: src/hd-data.c:893 msgid "Manila Day" msgstr "" #: src/hd-data.c:894 msgid "Maputo City Day" msgstr "" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:896 msgid "Maryland Day" msgstr "" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:898 msgid "Merchant Day" msgstr "" #: src/hd-data.c:899 msgid "St John's/Midsummers Eve" msgstr "" #: src/hd-data.c:900 msgid "Missionary Day" msgstr "" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "" #: src/hd-data.c:902 msgid "Morazan Day" msgstr "" #: src/hd-data.c:903 msgid "Mosheshoe's Day" msgstr "" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:905 msgid "Naming Day" msgstr "" #: src/hd-data.c:906 msgid "National Bun Day" msgstr "" #: src/hd-data.c:907 msgid "National Heroes Day" msgstr "" #: src/hd-data.c:908 msgid "National Redemption Day" msgstr "" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:910 msgid "National Revival Day" msgstr "" #: src/hd-data.c:911 msgid "National Unity Day" msgstr "" #: src/hd-data.c:912 msgid "Ndadaye Day" msgstr "" #: src/hd-data.c:913 msgid "Neutrality Day" msgstr "" #: src/hd-data.c:914 msgid "Nevada Day" msgstr "" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "" #: src/hd-data.c:917 msgid "Noi Day" msgstr "" #: src/hd-data.c:918 msgid "OAU Day" msgstr "" #: src/hd-data.c:919 #, fuzzy msgid "October Holiday" msgstr "Ukwakira" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:927 msgid "Panama City Day" msgstr "" #: src/hd-data.c:928 msgid "Panamerica Day" msgstr "" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:930 msgid "Patriot's Day" msgstr "" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "" #: src/hd-data.c:932 msgid "People Power Day" msgstr "" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:934 msgid "Pichincha Day" msgstr "" #: src/hd-data.c:935 msgid "Picnic Day" msgstr "" #: src/hd-data.c:936 msgid "Pioneer Day" msgstr "" #: src/hd-data.c:937 msgid "Poya Day" msgstr "" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:939 msgid "Prince of Wales' Birthday" msgstr "" #: src/hd-data.c:940 msgid "Proclamation Day" msgstr "" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:943 msgid "Recreation Day" msgstr "" #: src/hd-data.c:944 msgid "Referendum Day" msgstr "" #: src/hd-data.c:945 msgid "Regatta Day" msgstr "" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:947 msgid "Restoration Day" msgstr "" #: src/hd-data.c:948 msgid "Return Day" msgstr "" #: src/hd-data.c:949 msgid "Reunification Day" msgstr "" #: src/hd-data.c:950 msgid "Rizal Day" msgstr "" #: src/hd-data.c:951 msgid "Rwagasore Day" msgstr "" #: src/hd-data.c:952 msgid "Saba Day" msgstr "" #: src/hd-data.c:953 msgid "San Jacinto Day" msgstr "" #: src/hd-data.c:954 msgid "San Josİ Day" msgstr "" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "" # #-#-#-#-# scaddins.pot (PACKAGE VERSION) #-#-#-#-# # scaddins/source\analysis\analysis.src:RID_ANALYSIS_FUNCTION_DESCRIPTIONS.ANALYSIS_Workday.6.text # #-#-#-#-# scaddins.pot (PACKAGE VERSION) #-#-#-#-# # scaddins/source\analysis\analysis.src:RID_ANALYSIS_FUNCTION_DESCRIPTIONS.ANALYSIS_Networkdays.6.text #: src/hd-data.c:956 #, fuzzy msgid "School Holiday" msgstr "Konji" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "" #: src/hd-data.c:958 msgid "Separation Day" msgstr "" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:960 msgid "Settlers Day" msgstr "" #: src/hd-data.c:961 msgid "Seward's Day" msgstr "" #: src/hd-data.c:962 msgid "Shaheed Day" msgstr "" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:964 msgid "Sheikh Zayed's Ascension Day" msgstr "" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:970 msgid "Somers Day" msgstr "" #: src/hd-data.c:971 msgid "Statia-American Day" msgstr "" #: src/hd-data.c:972 msgid "Student's Day" msgstr "" #: src/hd-data.c:973 msgid "St Agata Day" msgstr "" #: src/hd-data.c:974 msgid "St Canute's Day" msgstr "" #: src/hd-data.c:975 msgid "St Cedilia's Day" msgstr "" #: src/hd-data.c:976 msgid "St Charles' Day" msgstr "" #: src/hd-data.c:977 msgid "St Demetrius' Day" msgstr "" #: src/hd-data.c:978 msgid "St Dİvote Day" msgstr "" #: src/hd-data.c:979 msgid "St Eliah's Day" msgstr "" #: src/hd-data.c:980 msgid "St Jean Baptiste Day" msgstr "" #: src/hd-data.c:981 msgid "St Lucia's Day" msgstr "" #: src/hd-data.c:982 msgid "St Marguerite's Day" msgstr "" #: src/hd-data.c:983 msgid "St Maroon's Day" msgstr "" #: src/hd-data.c:984 msgid "St Michael's Day" msgstr "" #: src/hd-data.c:985 msgid "St Olav's Day" msgstr "" #: src/hd-data.c:986 msgid "St Olav's Eve" msgstr "" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:989 msgid "St Ursula's Day" msgstr "" #: src/hd-data.c:990 msgid "St Vincent de Paul's Day" msgstr "" #: src/hd-data.c:991 msgid "Suez Victory Day" msgstr "" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:994 msgid "Sweden Day" msgstr "" #: src/hd-data.c:995 msgid "S. Doe's Birthday" msgstr "" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:997 msgid "Territory Day" msgstr "" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "" #: src/hd-data.c:1000 msgid "The Crown Prince's Birthday" msgstr "" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1004 msgid "Town Meeting Day" msgstr "" #: src/hd-data.c:1005 msgid "Traditional Day" msgstr "" #: src/hd-data.c:1006 msgid "Transfer Day" msgstr "" #: src/hd-data.c:1007 msgid "Truman Day" msgstr "" #: src/hd-data.c:1008 msgid "Union Day" msgstr "" #: src/hd-data.c:1009 #, fuzzy msgid "Union with Sweden dissolved" msgstr "Na:" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "" #: src/hd-data.c:1011 msgid "Unity Factory Day" msgstr "" #: src/hd-data.c:1012 msgid "Victor-Schoelcher Day" msgstr "" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1014 msgid "West Virginia Day" msgstr "" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "" #: src/hd-data.c:1016 msgid "W. Tubman's Birthday" msgstr "" #: src/hd-data.c:1017 msgid "Yap Day" msgstr "" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "" #: src/hd-data.c:1287 #, fuzzy msgid "Ast" msgstr "ST" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "" #: src/hd-data.c:1550 msgid "Cel" msgstr "" #: src/hd-data.c:1692 src/hd-data.c:2225 msgid "Chi" msgstr "" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2227 src/hd-data.c:3730 #, fuzzy msgid "Jap" msgstr "Mutarama" #: src/hd-data.c:2423 msgid "Chr" msgstr "" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "" #: src/hd-data.c:2778 src/hd-data.c:2960 #, fuzzy msgid "Heb" msgstr "Gashyantare" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "" #: src/hd-data.c:4447 msgid "OxN" msgstr "" #: src/hd-data.c:4449 msgid "OxO" msgstr "" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "" #: src/hd-data.c:4847 msgid "Zod" msgstr "" # sc/source\core\src\compiler.src:RID_SC_FUNCTION_NAMES.SC_OPCODE_GET_DAY.text #: src/hd-use.c:929 #, fuzzy msgid " day" msgstr "UMUNSI" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 #, fuzzy msgid "Eternal holiday list" msgstr "ikiruhuko Urutonde" #: src/hd-use.c:1978 #, fuzzy, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*sTheUmwaka ni A Umwaka" #: src/hd-use.c:1982 #, fuzzy, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*sTheUmwaka ni Umwaka" #: src/hd-use.c:1989 #, fuzzy, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sTheUmwaka ni A Umwaka" #: src/hd-use.c:1993 #, fuzzy, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sTheUmwaka ni Umwaka" #: src/hd-use.c:2243 #, fuzzy, c-format msgid " = %+4d day" msgstr "=%+4dUMUNSI" #: src/hd-use.c:2245 #, fuzzy, c-format msgid " = %+4d days" msgstr "=%+4dIminsi" #: src/hd-use.c:2272 #, fuzzy, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%sKirimo Kinini Ibyinjijwe NONEAHA" #: src/help.c:65 #, fuzzy, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "Na: kugirango" #: src/help.c:75 #, fuzzy msgid "# Day number (must be defined)" msgstr "Itsinda" #: src/help.c:76 #, fuzzy msgid "# Year number (must be defined)" msgstr "Itsinda" #: src/help.c:77 #, fuzzy msgid "# Weekday name (may be defined)" msgstr "Izina: Itsinda Gicurasi" #: src/help.c:78 #, fuzzy msgid "Month group (exactly one member must be defined):" msgstr "Itsinda" #: src/help.c:79 msgid "# Month number" msgstr "" #: src/help.c:80 #, fuzzy msgid "# Month name" msgstr "Ukwezi Izina:" #: src/help.c:81 #, fuzzy msgid "Highlighting group (all members must be defined):" msgstr "Itsinda Byose" #: src/help.c:82 #, fuzzy msgid "Start of highlighting sequence/marking character" msgstr "Gutangira Bya Igaragaza cyane Inyuguti" #: src/help.c:84 #, fuzzy msgid "End of highlighting sequence/marking character" msgstr "Impera Bya Igaragaza cyane Inyuguti" #: src/help.c:86 msgid "Character replacement:" msgstr "" #: src/help.c:87 #, fuzzy, c-format msgid "Space/blank ('%c') character" msgstr "Ahatanditseho Inyuguti" #: src/help.c:88 #, fuzzy, c-format msgid "Underscore ('%c') character" msgstr "Inyuguti" #: src/help.c:89 #, fuzzy, c-format msgid "Percent ('%c') character" msgstr "Inyuguti" #: src/help.c:90 #, fuzzy, c-format msgid "Backslash ('%c') character" msgstr "Ahatanditseho Inyuguti" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:94 #, fuzzy msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "Itsinda" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:104 #, fuzzy msgid "Numerical value is filled with leading zero(es)" msgstr "Umubare Na: Nyobora" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:107 #, fuzzy msgid "STYLE group (exactly one member may be defined):" msgstr "Itsinda" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:114 #, fuzzy msgid "FORMAT group (exactly one member must be defined):" msgstr "Itsinda" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:130 #, fuzzy msgid "legal holidays" msgstr "By'amategeko Konji" # #-#-#-#-# scaddins.pot (PACKAGE VERSION) #-#-#-#-# # scaddins/source\analysis\analysis.src:RID_ANALYSIS_FUNCTION_DESCRIPTIONS.ANALYSIS_Workday.6.text # #-#-#-#-# scaddins.pot (PACKAGE VERSION) #-#-#-#-# # scaddins/source\analysis\analysis.src:RID_ANALYSIS_FUNCTION_DESCRIPTIONS.ANALYSIS_Networkdays.6.text #: src/help.c:131 #, fuzzy msgid "holidays" msgstr "Konji" #: src/help.c:132 msgid "Mondays" msgstr "kwa mbere" #: src/help.c:133 msgid "Tuesdays" msgstr "kwa kabiri" #: src/help.c:134 msgid "Wednesdays" msgstr "kwa gatatu" #: src/help.c:135 msgid "Thursdays" msgstr "kwa kane" #: src/help.c:136 msgid "Fridays" msgstr "kwa gatanu" #: src/help.c:137 msgid "Saturdays" msgstr "kwa gatandatu" #: src/help.c:138 msgid "Sundays" msgstr "Ku kyumweru" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "" #: src/help.c:170 #, fuzzy, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s:Na: Bya ingingo" # padmin/source\rtsetup.src:RID_RTS_DEVICEPAGE.RID_RTS_DEVICE_PPDKEY_TXT.text #: src/help.c:243 #, fuzzy msgid "OPTION" msgstr "Ihitamo" #: src/help.c:256 #, fuzzy msgid " Display help text and quit program" msgstr "Ifashayobora Umwandiko Na Kuvamo Porogaramu" #: src/help.c:273 #, fuzzy msgid " Display extended help text and quit program" msgstr "Byongerewe... Ifashayobora Umwandiko Na Kuvamo Porogaramu" #: src/help.c:291 #, fuzzy msgid " Display software license and quit program" msgstr "Na Kuvamo Porogaramu" #: src/help.c:302 #, fuzzy msgid " Display version information and quit program" msgstr "Verisiyo Umubare Na Kuvamo Porogaramu" #: src/help.c:313 #, fuzzy, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "Imimerere Bya Porogaramu Kuri ku Ifashayobora Verisiyo" #: src/help.c:326 #, fuzzy, c-format msgid " Create response file for the `%cFILE' option" msgstr "IDOSIYE kugirango i Ihitamo" #: src/help.c:330 #, fuzzy, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr "%-3s=ingingo Bya Komandi: Umurongo in IDOSIYE" #: src/help.c:344 #, fuzzy, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "Igikonoshwa IYANDIKA Kirimo i ingingo Bya Komandi: Umurongo" #: src/help.c:346 #, fuzzy, c-format msgid " %-3s = File name of the shell script" msgstr "%-3s=Idosiye Izina: Bya i Igikonoshwa IYANDIKA" #: src/help.c:360 #, fuzzy msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "Itariki IMPINDURAGACIRO S DVAR a D F S u Z" #: src/help.c:364 #, fuzzy, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "%-3s=Bya DVAR ku Inyuguti" #: src/help.c:369 #, fuzzy, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "E. g." #: src/help.c:381 #, fuzzy msgid " Export local date variables from file to file" msgstr "Itariki Ibihinduka Bivuye IDOSIYE Kuri IDOSIYE" #: src/help.c:393 #, fuzzy, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "Umwandiko IMPINDURAGACIRO S" #: src/help.c:398 #, fuzzy, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "%-3s=Bya DVAR ku Inyuguti" #: src/help.c:403 #, fuzzy, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "E. g." #: src/help.c:409 #, fuzzy, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "ku Inyuguti" #: src/help.c:414 #, fuzzy, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "E. g." #: src/help.c:426 #, fuzzy msgid " Export local text variables from file to file" msgstr "Umwandiko Ibihinduka Bivuye IDOSIYE Kuri IDOSIYE" #: src/help.c:438 src/help.c:468 #, fuzzy, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "BIHAMYE Amatariki bya Itariki ni OYA ku" #: src/help.c:443 #, fuzzy, c-format msgid " %-3s = One or more of the following characters. If character" msgstr "%-3s=Cyangwa Birenzeho Bya i Inyuguti Inyuguti" #: src/help.c:448 #, fuzzy msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr "ni a a" #: src/help.c:452 #, fuzzy, c-format msgid " %c = Exclusion of all %s" msgstr "%c=Bya Byose" #: src/help.c:473 #, fuzzy, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "%-3s=Bya Na Cyangwa" #: src/help.c:477 #, fuzzy, c-format msgid " expressions separated by `%s' characters" msgstr "ku Inyuguti" #: src/help.c:490 #, fuzzy, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr "BIHAMYE Amatariki bya Umwandiko ni ku" #: src/help.c:495 #, fuzzy, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "%-3s=Umwandiko Ibisanzwe imvugo nka" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:520 #, fuzzy, c-format msgid " Revert the sense of matching of the `%s' option" msgstr "IDOSIYE kugirango i Ihitamo" #: src/help.c:531 #, fuzzy msgid " Display some debug information" msgstr "Kosora amakosa" #: src/help.c:539 #, fuzzy, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "[%-3s]=By'imbere NIBA Porogaramu By'imbere" #: src/help.c:548 #, fuzzy msgid "" " = handled Like `internal' and file names which are handled" msgstr "=Na IDOSIYE Amazina" #: src/help.c:556 #, fuzzy msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "=Na IDOSIYE Amazina" #: src/help.c:564 #, fuzzy msgid " = all Like `handled' and `unhandled' together" msgstr "=Byose Na" #: src/help.c:572 #, fuzzy msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "=Kureka Na Kureka NIBA IDOSIYE Izina:" #: src/help.c:582 #, fuzzy msgid " Use special format for calendar sheet" msgstr "Bidasanzwe Imiterere kugirango Kalindari URUPAPURO" #: src/help.c:585 #, fuzzy msgid " [MOD] = - Use standard format for calendar sheet" msgstr "[Bisanzwe Imiterere kugirango Kalindari URUPAPURO" #: src/help.c:596 #, fuzzy msgid " Use leap year rule of Eastern Orthodox churches" msgstr "Umwaka Bya" #: src/help.c:606 #, fuzzy msgid " Provide calendar sheet with week numbers" msgstr "Kalindari URUPAPURO Na: Icyumweru Imibare" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr "" #: src/help.c:618 msgid "Standard" msgstr "" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:631 #, fuzzy msgid " = no Standard week numbers" msgstr "Kalindari URUPAPURO Na: Icyumweru Imibare" #: src/help.c:642 #, fuzzy msgid " Suppress output of calendar sheet explicitly" msgstr "Ibisohoka Bya Kalindari URUPAPURO" #: src/help.c:655 #, fuzzy, c-format msgid " Direct output through external `%s' pager" msgstr "Ibisohoka Gihinguranya external Peja" #: src/help.c:661 src/help.c:663 #, fuzzy msgid " Direct output through simple internal pager" msgstr "Ibisohoka Gihinguranya Byoroheje By'imbere Peja" #: src/help.c:680 #, fuzzy msgid " Disable highlighting of text, holiday resp., actual day" msgstr "Igaragaza cyane Bya Umwandiko ikiruhuko UMUNSI" #: src/help.c:695 #, fuzzy msgid " Forces highlighting sequences if output is redirected/piped" msgstr "Igaragaza cyane NIBA Ibisohoka ni" #: src/help.c:707 #, fuzzy msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "Igaragaza cyane 1. UMUNSI Na 2. ikiruhuko" #: src/help.c:711 #, fuzzy, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "%-3s=ku Inyuguti" #: src/help.c:716 #, fuzzy, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "E. g." #: src/help.c:721 #, fuzzy, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "E. g." #: src/help.c:732 #, fuzzy msgid " Modify format of year calendar" msgstr "Imiterere Bya Umwaka Kalindari" #: src/help.c:736 #, fuzzy, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr "%-3s=1. 2. 3. 4. 6 12 Bya" #: src/help.c:748 #, fuzzy msgid " Use consecutive day of year in calendar sheet" msgstr "UMUNSI Bya Umwaka in Kalindari URUPAPURO" #: src/help.c:752 #, fuzzy msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "[B Byombi Itariki UMUNSI Bya Ukwezi Umwaka" #: src/help.c:764 #, fuzzy msgid " Use consecutive day of year in eternal holiday list" msgstr "UMUNSI Bya Umwaka in ikiruhuko Urutonde" #: src/help.c:768 src/help.c:784 #, fuzzy msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "[B Byombi Itariki UMUNSI Bya Ukwezi Umwaka" #: src/help.c:780 #, fuzzy msgid " Use consecutive day of year in fixed date list" msgstr "UMUNSI Bya Umwaka in BIHAMYE Itariki Urutonde" #: src/help.c:795 #, fuzzy, c-format msgid " Set starting day of week (actual: %s)" msgstr "UMUNSI Bya Icyumweru" #: src/help.c:828 #, fuzzy, c-format msgid " Send output via `%s' program to user" msgstr "Ibisohoka Biturutse Porogaramu Kuri Ukoresha:" #: src/help.c:857 msgid "UNKNOWN" msgstr "" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:878 #, fuzzy, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "ikiruhuko Urutonde in Urutonde" #: src/help.c:881 #, fuzzy msgid " n = Legal days and memorial days" msgstr "N Iminsi Na Iminsi" #: src/help.c:883 #, fuzzy msgid " N = Legal days only" msgstr "Iminsi" #: src/help.c:885 src/help.c:1631 #, fuzzy, c-format msgid " [MOD] = %s Descending sort order" msgstr "[Ishungura Itondekanya" #: src/help.c:897 #, fuzzy msgid " Suppress leading blank line of eternal holiday list" msgstr "Umutwe Bya ikiruhuko Urutonde" #: src/help.c:907 #, fuzzy msgid " Exclude title of eternal holiday list" msgstr "Umutwe Bya ikiruhuko Urutonde" #: src/help.c:919 #, fuzzy msgid " Provide eternal holiday list with astronomical data" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:931 #, fuzzy msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:943 #, fuzzy msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:955 #, fuzzy msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:967 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:979 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:991 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:1003 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar months" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:1015 #, fuzzy msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:1027 #, fuzzy msgid " Provide eternal holiday list with Coptic calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1039 #, fuzzy msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1051 #, fuzzy msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1063 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1075 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1087 #, fuzzy msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:1099 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1111 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1123 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1135 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1147 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1159 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1172 #, fuzzy msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1184 #, fuzzy msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1196 #, fuzzy msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1208 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1220 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1232 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1244 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "ikiruhuko Urutonde Na: Konji" #: src/help.c:1256 #, fuzzy msgid " Provide eternal holiday list with zodiacal marker data" msgstr "ikiruhuko Urutonde Bisanzwe Konji" #: src/help.c:1268 #, fuzzy msgid " Provide eternal holiday list with country specific holidays" msgstr "ikiruhuko Urutonde Na: Igihugu Konji" #: src/help.c:1272 #, fuzzy, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr "%-3s=Igihugu ITEGEKONGENGA Cyangwa Urutonde Bya Igihugu" #: src/help.c:1277 #, fuzzy, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "ku Inyuguti" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1286 #, fuzzy, c-format msgid " %-*s = Holidays in %s" msgstr "%s=%sKonji" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1322 #, fuzzy msgid " Set base data of Earth's atmosphere" msgstr "UMUNSI Bya Icyumweru" #: src/help.c:1326 #, fuzzy, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "%-3s=ku Inyuguti" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1344 #, fuzzy msgid " Limit rise/set times of Sun to the day" msgstr "1.." #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1366 #, fuzzy, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr "#Gukora Igikonoshwa Amabwiriza" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1453 #, fuzzy msgid " Change base year of calendar" msgstr "Imiterere Bya Umwaka Kalindari" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1469 #, fuzzy msgid " Set period of Gregorian Reformation" msgstr "Igihe Bya" #: src/help.c:1471 #, fuzzy, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr "Igihe" #: src/help.c:1477 #, fuzzy, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr "%-*d%*s=Igihe Kuri" #: src/help.c:1485 #, fuzzy, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr "%-3s=%s%s%s%s%s%s%sIgihe" #: src/help.c:1499 #, fuzzy, c-format msgid " Set order of date elements using the %s format text" msgstr "Itondekanya Bya Itariki Ibintu ikoresha i Imiterere Umwandiko" #: src/help.c:1502 #, fuzzy, c-format msgid " Actual: (%s) `%s' (%s)" msgstr "Imiterere" #: src/help.c:1504 msgid "self-defined" msgstr "" #: src/help.c:1509 #, fuzzy, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr "%-6s=Imiterere Kuri" #: src/help.c:1517 #, fuzzy, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "%-3s=Bwite Imiterere Imiterere Ibintu" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1582 #, fuzzy msgid " they are used by the character set used in Germany" msgstr "ku Inyuguti" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "" #: src/help.c:1612 #, fuzzy, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "Bisanzwe IDOSIYE kugirango BIHAMYE Itariki Urutonde" #: src/help.c:1617 #, fuzzy, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "Bisanzwe IDOSIYE kugirango BIHAMYE Itariki Urutonde" #: src/help.c:1621 src/help.c:2161 #, fuzzy msgid " Implies period: Today" msgstr "Igihe" #: src/help.c:1625 #, fuzzy msgid " c = Display only those dates, for which fixed dates exists" msgstr "C Amatariki kugirango BIHAMYE Amatariki" #: src/help.c:1629 #, fuzzy msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr "C Amatariki kugirango BIHAMYE Amatariki" #: src/help.c:1641 #, fuzzy msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "[Cyangwa Birenzeho Bya i cy/ byagarajwe ku" #: src/help.c:1654 #, fuzzy, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "#X Umutwe Bya BIHAMYE Itariki Urutonde" #: src/help.c:1657 #, fuzzy, c-format msgid " Actual: `%s'" msgstr "9 UMUNSIICYUMWERU" #: src/help.c:1670 #, fuzzy msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "#g BIHAMYE Amatariki ku UMUNSI ikoresha Umwandiko" #: src/help.c:1682 #, fuzzy msgid " 1. Representation of text" msgstr "1.." #: src/help.c:1694 #, fuzzy msgid " = Set width of the biorhythm text graphics" msgstr "=Ubugari Bya i Umwandiko Ibishushanyo" #: src/help.c:1698 #, fuzzy, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr "%-3s=%d...%dBya a UMWE Umurongo fatizo" #: src/help.c:1711 #, fuzzy msgid " = Set height of the Moon phase text graphics" msgstr "=Ubuhagarike Bya i Umwandiko Ibishushanyo" #: src/help.c:1715 #, fuzzy, c-format msgid " %-3s = %d...%d Total number of lines" msgstr "%-3s=%d...%dUmubare Bya Imirongo" #: src/help.c:1727 #, fuzzy msgid " # a = Display origin of fixed date" msgstr "#a Inkomoko Bya BIHAMYE Itariki" #: src/help.c:1739 #, fuzzy msgid " # A = Display using alternative list format" msgstr "#A ikoresha Urutonde Imiterere" #: src/help.c:1751 #, fuzzy msgid " # e = Include legal days and memorial days" msgstr "#E By'amategeko Iminsi Na Iminsi" #: src/help.c:1753 #, fuzzy msgid " # E = Include legal days only" msgstr "#E By'amategeko Iminsi" #: src/help.c:1763 #, fuzzy msgid " # k = Display week number" msgstr "#K Icyumweru Umubare" #: src/help.c:1775 #, fuzzy msgid " # o = Omit repeating date part of fixed dates" msgstr "#o Itariki Bya BIHAMYE Amatariki" #: src/help.c:1787 #, fuzzy msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "#U Itariki Bya BIHAMYE Amatariki" #: src/help.c:1799 #, fuzzy msgid " # U = Suppress date part of fixed dates" msgstr "#U Itariki Bya BIHAMYE Amatariki" #: src/help.c:1811 #, fuzzy msgid " # J = Suppress text part of fixed dates" msgstr "#U Itariki Bya BIHAMYE Amatariki" #: src/help.c:1823 #, fuzzy msgid " # x = Exclude title of fixed date list" msgstr "#X Umutwe Bya BIHAMYE Itariki Urutonde" #: src/help.c:1835 #, fuzzy msgid " # z = Display consecutive number of fixed date" msgstr "#Z Umubare Bya BIHAMYE Itariki" #: src/help.c:1847 #, fuzzy msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "#Amatariki kugirango BIHAMYE Amatariki" #: src/help.c:1855 #, fuzzy msgid " 2. Respected period" msgstr "2.." #: src/help.c:1867 #, fuzzy msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "=in IMYAKA" #: src/help.c:1875 #, fuzzy, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "%-3s=Gashyantare ku" #: src/help.c:1884 #, fuzzy, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr "%-3s=Werurwe ku 01" #: src/help.c:1897 #, fuzzy msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "#D Itariki NIBA Urutonde Bya ni" #: src/help.c:1909 #, fuzzy msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "#L Urutonde Bya Bya a UMWE Igihe" #: src/help.c:1925 #, fuzzy msgid " # Nd = Single absolute day N" msgstr "#UMUNSI" #: src/help.c:1927 #, fuzzy, c-format msgid " # %cdN = Single absolute day N" msgstr "#%cdN=UMUNSI" #: src/help.c:1932 #, fuzzy msgid " # NMOD = Single day N relative to today" msgstr "#UMUNSI Bifitanye isano Kuri UYUMUNSI" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr "" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr "" #: src/help.c:1939 #, fuzzy msgid " # Nw = Complete week N" msgstr "#Icyumweru" #: src/help.c:1943 #, fuzzy msgid "" " N = 0 1st week / last week of previous year" msgstr "0 Icyumweru Iheruka Icyumweru Bya Ibanjirije Umwaka" #: src/help.c:1947 #, fuzzy msgid " N = 1...52 1st...52nd week (always)" msgstr "1. Icyumweru Buri gihe" #: src/help.c:1951 #, fuzzy msgid " N = 53 53rd week (sometimes)" msgstr "Icyumweru" #: src/help.c:1953 #, fuzzy msgid " N = 99 Last week" msgstr "Icyumweru" #: src/help.c:1956 #, fuzzy, c-format msgid " # %s%s = Single day %s of month %s" msgstr "#`%s%s'=UMUNSI Bya Ukwezi" #: src/help.c:1962 #, fuzzy, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr "#`%s%s'UMUNSIICYUMWERU Bya Ukwezi" #: src/help.c:1967 #, fuzzy, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "1. 4. UMUNSIICYUMWERU Buri gihe" #: src/help.c:1972 #, fuzzy, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "5 UMUNSIICYUMWERU" #: src/help.c:1976 #, fuzzy, c-format msgid " N = 9 Last weekday %s" msgstr "9 UMUNSIICYUMWERU" #: src/help.c:1980 #, fuzzy, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr "#%cdN`%s'=UMUNSIICYUMWERU" #: src/help.c:1985 #, fuzzy, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "1. UMUNSIICYUMWERU Buri gihe" #: src/help.c:1990 #, fuzzy, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "UMUNSIICYUMWERU" #: src/help.c:1994 #, fuzzy, c-format msgid " N = 99 Last weekday %s" msgstr "UMUNSIICYUMWERU" #: src/help.c:1999 #, fuzzy, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr "#%cwN`%s'=UMUNSIICYUMWERU Bya Icyumweru" #: src/help.c:2004 #, fuzzy, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "0 si in Icyumweru" #: src/help.c:2009 #, fuzzy, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "1. Bya Icyumweru Buri gihe" #: src/help.c:2014 #, fuzzy, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "Bya Icyumweru" #: src/help.c:2018 #, fuzzy, c-format msgid " N = 99 %s of last week" msgstr "Bya Iheruka Icyumweru" #: src/help.c:2024 #, fuzzy, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "#%c%c[[%s|%s]N]=UMUNSI Bifitanye isano Kuri" #: src/help.c:2030 #, fuzzy, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "#%c%c[%s|%s]N`%s'=UMUNSIICYUMWERU Bifitanye isano Kuri" #: src/help.c:2036 #, fuzzy, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "#%c%c[[%s|%s]N]=UMUNSI Bifitanye isano Kuri Itariki" #: src/help.c:2042 #, fuzzy, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "#%c%c[%s|%s]N`%s'=UMUNSIICYUMWERU Bifitanye isano Kuri Itariki" #: src/help.c:2048 #, fuzzy, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr "" "#%c[[%s|%s]N]=Project- Id- Version: basctl\n" "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" "Content- Type: text/ plain; charset= UTF- 8\n" "Content- Transfer- Encoding: 8bit\n" "X- Generator: KBabel 1. 0\n" "." #: src/help.c:2054 #, fuzzy, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" "#%c[%s|%s]N`%s'=Project- Id- Version: basctl\n" "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" "Content- Type: text/ plain; charset= UTF- 8\n" "Content- Transfer- Encoding: 8bit\n" "X- Generator: KBabel 1. 0\n" "." #: src/help.c:2062 #, fuzzy msgid " # t|T = List tomorrow" msgstr "#T" #: src/help.c:2079 #, fuzzy msgid " # w|W[MOD] = List complete week" msgstr "#W Byuzuye Icyumweru" #: src/help.c:2083 #, fuzzy, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "[UMUNSI Bya Icyumweru" #: src/help.c:2088 #, fuzzy, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "=%sEjo UMUNSI Bya Icyumweru" #: src/help.c:2108 #, fuzzy msgid " # m|M[MOD] = List complete month" msgstr "#M Byuzuye Ukwezi" #: src/help.c:2112 #, fuzzy, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "[UMUNSI Bya Ukwezi" #: src/help.c:2117 #, fuzzy, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "=%sEjo UMUNSI Bya Ukwezi" #: src/help.c:2137 #, fuzzy msgid " # y|Y[MOD] = List complete year" msgstr "#Y Byuzuye Umwaka" #: src/help.c:2141 #, fuzzy, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "[UMUNSI Bya Umwaka" #: src/help.c:2146 #, fuzzy, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "=%sEjo UMUNSI Bya Umwaka" #: src/help.c:2159 #, fuzzy msgid " Use alternative file(s) instead of standard resource file" msgstr "IDOSIYE S Bya Bisanzwe IDOSIYE" #: src/help.c:2165 #, fuzzy msgid " f = Display only those dates, for which fixed dates exists" msgstr "F Amatariki kugirango BIHAMYE Amatariki" #: src/help.c:2169 #, fuzzy msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr "Amatariki kugirango BIHAMYE Amatariki" #: src/help.c:2173 #, fuzzy, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "%-3s=IDOSIYE Cyangwa Urutonde Bya Idosiye ku Inyuguti" #: src/help.c:2184 #, fuzzy msgid " Define additional resource file line" msgstr "IDOSIYE Umurongo" #: src/help.c:2186 #, fuzzy, c-format msgid " %-3s = Any possible resource file line" msgstr "%-3s=IDOSIYE Umurongo" # basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text #: src/help.c:2196 #, fuzzy, c-format msgid "%cDATE" msgstr "%cDATE" #: src/help.c:2198 #, fuzzy msgid "Use given `DATE' instead of today's date" msgstr "Bya Itariki" #: src/help.c:2202 #, fuzzy, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "Imiterere DVAR" #: src/help.c:2209 #, fuzzy, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "%s%cwN[%s],Ukwezi Izina: UMUNSIICYUMWERU Izina: Cyangwa" # basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text #: src/help.c:2218 #, fuzzy, c-format msgid "%cFILE" msgstr "%cFILE" #: src/help.c:2220 #, fuzzy msgid "Preload options and commands from `FILE'" msgstr "Amahitamo Na Amabwiriza Bivuye" # padmin/source\rtsetup.src:RID_RTS_RTSDIALOG.RID_RTS_RTSDIALOG_TABCONTROL.RID_RTS_COMMANDPAGE.text #: src/help.c:2224 #, fuzzy msgid "COMMAND" msgstr "Icyo wifuza" #: src/help.c:2226 #, fuzzy, c-format msgid "%s = Month in range: %d...%d" msgstr "%s=in Urutonde" #: src/help.c:2231 #, fuzzy, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr "Cyangwa Ukwezi Izina:" # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....DefaultFont.List.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....DefaultFontCJK.List.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....DefaultFontCTL.List.text #: src/help.c:2236 #, fuzzy, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr "Urutonde" # filter/source\pdf\impdialog.src:RID_PDF_EXPORT_DLG.RB_RANGE.text #: src/help.c:2242 #, fuzzy, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr "Urutonde" #: src/help.c:2248 #, fuzzy, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s=in Urutonde" # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....DefaultFont.List.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....DefaultFontCJK.List.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....DefaultFontCTL.List.text #: src/help.c:2252 #, fuzzy, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr "Urutonde" # filter/source\pdf\impdialog.src:RID_PDF_EXPORT_DLG.RB_RANGE.text #: src/help.c:2257 #, fuzzy, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr "Urutonde" #: src/help.c:2283 #, fuzzy, c-format msgid " %sh, %s Display this help text and quit program" msgstr "Ifashayobora Umwandiko Na Kuvamo Porogaramu" #: src/help.c:2286 #, fuzzy, c-format msgid " %shh, %s Display extended help text and quit program" msgstr "Byongerewe... Ifashayobora Umwandiko Na Kuvamo Porogaramu" #: src/help.c:2290 #, fuzzy, c-format msgid " %sL, %s Display software license and quit program" msgstr "Na Kuvamo Porogaramu" #: src/help.c:2294 #, fuzzy, c-format msgid " %sV, %s Display version information and quit program" msgstr "Verisiyo Umubare Na Kuvamo Porogaramu" #: src/help.c:2302 #, fuzzy, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "Ibisohoka Gihinguranya external Peja" #: src/help.c:2309 src/help.c:2314 #, fuzzy, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr "Ibisohoka Gihinguranya Byoroheje By'imbere Peja" #: src/help.c:2339 #, fuzzy msgid "This software doesn't claim completeness, correctness or usability." msgstr "Cyangwa" #: src/help.c:2343 #, fuzzy msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "OYA kugirango Cyangwa" #: src/help.c:2347 #, fuzzy msgid "or explicit), which result from using or handling my software." msgstr "Cyangwa Igisubizo Bivuye ikoresha Cyangwa" #: src/help.c:2351 #, fuzzy msgid "If you use this software, you agree without any exception to this" msgstr "Gukoresha iyi Irengayobora(-) Kuri iyi" #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "" #: src/help.c:2358 #, fuzzy msgid "This program is free software; you can redistribute it and/or modify" msgstr "Porogaramu ni Kigenga Na Cyangwa Guhindura" #: src/help.c:2362 #, fuzzy msgid "it under the terms of the `GNU General Public License' as published by" msgstr "i Bya i Nka ku" #: src/help.c:2366 #, fuzzy msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "i Verisiyo 2. Cyangwa ku Ihitamo" #: src/help.c:2368 #, fuzzy msgid "any later version." msgstr "Verisiyo" #: src/help.c:2373 #, fuzzy msgid "You should have received a copy of the `GNU General Public License'" msgstr "BYAKIRIWE a Gukoporora Bya i" #: src/help.c:2375 #, fuzzy msgid "along with this program; if not, write to the:" msgstr "Na: iyi Porogaramu NIBA OYA Kwandika Kuri i" #: src/help.c:2424 #, fuzzy, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" "h. Project- Id- Version: basctl\n" "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" "Content- Type: text/ plain; charset= UTF- 8\n" "Content- Transfer- Encoding: 8bit\n" "X- Generator: KBabel 1. 0\n" "." #: src/help.c:2452 #, fuzzy, c-format msgid "Use `%s %s|[%s?]" msgstr "Cyangwa" #: src/help.c:2461 #, fuzzy msgid "for more information." msgstr "" "`%s%s|[%s]'Project- Id- Version: basctl\n" "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" "Content- Type: text/ plain; charset= UTF- 8\n" "Content- Transfer- Encoding: 8bit\n" "X- Generator: KBabel 1. 0\n" "." #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, fuzzy, c-format msgid "Email bug reports to <%s>" msgstr "Raporo Kuri" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, fuzzy, c-format msgid "This is free software; see the source for copying conditions." msgstr "ni Kigenga i Inkomoko kugirango" #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, fuzzy, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "ni ATARIIGIHARWE i Bya" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, fuzzy, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "Cyangwa A" #: src/help.c:2617 #, fuzzy, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr ":%*sKalindari Porogaramu" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2704 src/help.c:2850 #, fuzzy msgid " 4.0 or 4.02" msgstr "4.." #: src/help.c:2712 src/help.c:2858 #, fuzzy msgid " later than 5.0" msgstr "5 0" #: src/help.c:2723 src/help.c:2865 #, fuzzy msgid "++ 3.0 or later" msgstr "++3.." #: src/help.c:2750 src/help.c:2971 #, fuzzy msgid "5.1 or earlier" msgstr "5." #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 #, fuzzy msgid "unknown compiler" msgstr "Kitazwi" # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\dbgui\scendlg.src:RID_SCDLG_NEWSCENARIO.STR_ON.text # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_ON.text #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 #, fuzzy msgid " on " msgstr "ku" #: src/help.c:2827 #, fuzzy msgid "(bad version)" msgstr "(Verisiyo" #: src/help.c:2874 #, fuzzy msgid "unknown compiler (SDK?)" msgstr "Kitazwi" #: src/help.c:2942 #, fuzzy msgid " later than 4.5" msgstr "4. 5" #: src/help.c:2952 #, fuzzy msgid "++ 1.0 or later" msgstr "++1.." #: src/help.c:2960 #, fuzzy msgid " 1.0 or 1.5?" msgstr "1.. 5." # filter/source\xsltdialog\xmlfilterdialogstrings.src:STR_UNKNOWN_APPLICATION.text #: src/help.c:3075 #, fuzzy msgid "unknown " msgstr "Kitazwi" # goodies/source\filter.vcl\eps\dlgeps.src:DLG_EXPORT_EPS.GRP_VERSION.text #: src/help.c:3087 #, fuzzy, c-format msgid "version %d.%d" msgstr "Verisiyo" # sfx2/source\dialog\filedlghelper.src:STR_LB_VERSION.text #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, fuzzy, c-format msgid "version %d" msgstr "Uburyo:" #: src/help.c:3092 #, fuzzy, c-format msgid "unknown version" msgstr "Kitazwi Verisiyo" #: src/help.c:3206 #, fuzzy, c-format msgid " (%.4s for Alpha)" msgstr "" "(%.Project- Id- Version: basctl\n" "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" "Content- Type: text/ plain; charset= UTF- 8\n" "Content- Transfer- Encoding: 8bit\n" "X- Generator: KBabel 1. 0\n" "." #: src/help.c:3209 #, fuzzy, c-format msgid " (%.4s for VAX)" msgstr "" "(%.Project- Id- Version: basctl\n" "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" "Content- Type: text/ plain; charset= UTF- 8\n" "Content- Transfer- Encoding: 8bit\n" "X- Generator: KBabel 1. 0\n" "." #: src/help.c:3360 #, fuzzy msgid " (NetBSD before 0.9)" msgstr "(Mbere 0 9" #: src/help.c:3360 #, fuzzy msgid " (NetBSD 1.2 or later)" msgstr "(1. 2. Cyangwa" #: src/help.c:3367 #, fuzzy msgid " (FreeBSD 2.0 or later)" msgstr "(2. 0 Cyangwa" #: src/help.c:3370 #, fuzzy msgid " (BSD/386 1.1 or later)" msgstr "(1. 1. Cyangwa" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "" #: src/print.c:566 msgid "Week" msgstr "Icyumweru" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, fuzzy, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "Gukora Komandi: in IDOSIYE" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, fuzzy, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "Gusohoka ITEGEKONGENGA in IDOSIYE" #: src/rc-use.c:514 msgid "Emo" msgstr "" # sc/source\core\src\compiler.src:RID_SC_FUNCTION_NAMES.SC_OPCODE_INT.text #: src/rc-use.c:519 #, fuzzy msgid "Int" msgstr "INT" #: src/rc-use.c:524 msgid "Phy" msgstr "" #: src/rc-use.c:1087 src/rc-use.c:1178 #, fuzzy msgid "`Eternal holiday list'" msgstr "`ikiruhuko" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr "" # svtools/source\control\calendar.src:STR_SVT_CALENDAR_WEEK.text #: src/rc-use.c:2349 #, fuzzy, c-format msgid "Week %s" msgstr "Icyumweru" #: src/rc-utils.c:398 src/rc-utils.c:415 #, fuzzy, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "%s:Sibyo Itariki" #: src/rc-utils.c:3270 #, fuzzy, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "UMUNSI Gushyiraho Kuri in IDOSIYE" # #-#-#-#-# sch.pot (PACKAGE VERSION) #-#-#-#-# # sch/source\ui\app\strings.src:STR_LINE.text # #-#-#-#-# sch.pot (PACKAGE VERSION) #-#-#-#-# # sch/source\ui\dlg\attrib2.src:TAB_AXIS.1.RID_SVXPAGE_LINE.text # #-#-#-#-# sch.pot (PACKAGE VERSION) #-#-#-#-# # sch/source\ui\dlg\attrib2.src:TAB_X_AXIS.1.RID_SVXPAGE_LINE.text # #-#-#-#-# sch.pot (PACKAGE VERSION) #-#-#-#-# # sch/source\ui\dlg\attrib2.src:TAB_Y_AXIS.1.RID_SVXPAGE_LINE.text # #-#-#-#-# sch.pot (PACKAGE VERSION) #-#-#-#-# # sch/source\ui\dlg\attrib2.src:TAB_Z_AXIS.1.RID_SVXPAGE_LINE.text # #-#-#-#-# sch.pot (PACKAGE VERSION) #-#-#-#-# # sch/source\ui\dlg\attrib2.src:TAB_GRID.1.RID_SVXPAGE_LINE.text # #-#-#-#-# sch.pot (PACKAGE VERSION) #-#-#-#-# # sch/source\ui\dlg\attrib2.src:TAB_LINE.1.RID_SVXPAGE_LINE.text # #-#-#-#-# sch.pot (PACKAGE VERSION) #-#-#-#-# # sch/source\ui\dlg\attrib.src:TAB_DATA_LINE.1.RID_SVXPAGE_LINE.text #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, fuzzy, c-format msgid "Line %ld: %s" msgstr "Umurongo" #: src/rc-utils.c:3634 src/utils.c:275 #, fuzzy, c-format msgid "%s: abort, " msgstr "%s:Kureka" #: src/rc-utils.c:3642 #, fuzzy, c-format msgid "illegal variable definition in file `%s'" msgstr "Umwandiko IMPINDURAGACIRO Insobanuro in IDOSIYE" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3651 #, fuzzy, c-format msgid "illegal variable operation in file `%s'" msgstr "Itariki IMPINDURAGACIRO in IDOSIYE" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3659 #, fuzzy, c-format msgid "variable `%c' undefined in file `%s'" msgstr "IMPINDURAGACIRO kidasobanuye in IDOSIYE" #: src/rc-utils.c:3663 #, fuzzy, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "Itariki Agaciro IMPINDURAGACIRO in IDOSIYE" #: src/rc-utils.c:3684 #, fuzzy, c-format msgid "Invalid argument in command line given -- %s" msgstr "%-3s=ingingo Bya Komandi: Umurongo in IDOSIYE" #: src/rc-utils.c:3696 #, fuzzy, c-format msgid "Argument `%s' of command line ignored." msgstr "Bya Komandi: Umurongo" #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "" #: src/tty.c:425 #, fuzzy, c-format msgid "%s: for more, <%s> to quit..." msgstr " failed" msgstr "Kuri Byanze" #: src/utils.c:335 src/utils.c:353 #, fuzzy, c-format msgid "" "\n" "`%s' line %ld: " msgstr "`%s'Umurongo" #: src/utils.c:342 #, fuzzy, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "`%s'Umurongo Byanze" #: src/utils.c:351 #, fuzzy, c-format msgid "read error in file `%s'" msgstr "Gusoma Ikosa in IDOSIYE" #: src/utils.c:359 #, fuzzy, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "Inyuguti in IDOSIYE" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, fuzzy, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "`%s'Umurongo Sibyo Agaciro kugirango imbonerahamwe# Ingano" #: src/utils.c:370 #, fuzzy, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s')Itariki Imiterere ni Sibyo" #: src/utils.c:376 #, fuzzy, c-format msgid "%s in search pattern `%s'" msgstr "%sin Gushaka Ishusho" #: src/utils.c:379 #, fuzzy, c-format msgid "invalid search pattern `%s' specified" msgstr "Sibyo Gushaka Ishusho" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, fuzzy, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s'Umurongo Ikosa" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 #, fuzzy msgid "internal" msgstr "By'imbere" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, fuzzy, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "%s:Porogaramu ku" #: src/utils.c:1081 msgid "th" msgstr "" #: src/utils.c:1085 #, fuzzy msgid "st" msgstr "ST" #: src/utils.c:1089 msgid "nd" msgstr "" #: src/utils.c:1093 msgid "rd" msgstr "" #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 #, fuzzy msgid "invalid day" msgstr "Sibyo UMUNSI" #: src/utils.c:1129 msgid "Mon" msgstr "" #: src/utils.c:1134 msgid "Tue" msgstr "" #: src/utils.c:1139 msgid "Wed" msgstr "" #: src/utils.c:1144 msgid "Thu" msgstr "" #: src/utils.c:1149 msgid "Fri" msgstr "" #: src/utils.c:1154 msgid "Sat" msgstr "" #: src/utils.c:1159 msgid "Sun" msgstr "Izuba" #: src/utils.c:1180 #, fuzzy msgid "Mo" msgstr "ukwezi" #: src/utils.c:1185 msgid "Tu" msgstr "" #: src/utils.c:1190 msgid "We" msgstr "Twebwe" #: src/utils.c:1195 msgid "Th" msgstr "" #: src/utils.c:1200 msgid "Fr" msgstr "" #: src/utils.c:1205 msgid "Sa" msgstr "" #: src/utils.c:1210 msgid "Su" msgstr "" #: src/utils.c:1227 msgid "Monday" msgstr "" #: src/utils.c:1227 msgid "Tuesday" msgstr "" #: src/utils.c:1227 msgid "Wednesday" msgstr "" #: src/utils.c:1227 msgid "Thursday" msgstr "" #: src/utils.c:1228 msgid "Friday" msgstr "" #: src/utils.c:1228 msgid "Saturday" msgstr "" #: src/utils.c:1228 msgid "Sunday" msgstr "" #: src/utils.c:1244 src/utils.c:1321 #, fuzzy msgid "invalid month" msgstr "Sibyo Ukwezi" #: src/utils.c:1249 msgid "Jan" msgstr "Mutarama" #: src/utils.c:1254 msgid "Feb" msgstr "Gashyantare" #: src/utils.c:1259 msgid "Mar" msgstr "Werurwe" #: src/utils.c:1264 msgid "Apr" msgstr "Mat" #: src/utils.c:1269 msgid "May" msgstr "Gicurasi" #: src/utils.c:1274 msgid "Jun" msgstr "Kam" #: src/utils.c:1279 msgid "Jul" msgstr "Nyak. (anga)" #: src/utils.c:1284 msgid "Aug" msgstr "kan." #: src/utils.c:1289 msgid "Sep" msgstr "Itandukanya" #: src/utils.c:1294 msgid "Oct" msgstr "ukw." #: src/utils.c:1299 msgid "Nov" msgstr "ugushyingo" #: src/utils.c:1304 msgid "Dec" msgstr "Ukub. (Ukuboza)" #: src/utils.c:1322 msgid "January" msgstr "Mutarama" #: src/utils.c:1322 msgid "February" msgstr "Gashyantare" #: src/utils.c:1323 msgid "March" msgstr "Werurwe" #: src/utils.c:1323 msgid "April" msgstr "Mata" #: src/utils.c:1333 msgid "May " msgstr "" #: src/utils.c:1334 msgid "June" msgstr "Kamena" #: src/utils.c:1334 msgid "July" msgstr "Nyakanga" #: src/utils.c:1335 msgid "August" msgstr "Kanama" #: src/utils.c:1335 msgid "September" msgstr "Nzeri" #: src/utils.c:1336 msgid "October" msgstr "Ukwakira" #: src/utils.c:1336 msgid "November" msgstr "Ugushyingo" #: src/utils.c:1336 msgid "December" msgstr "Ukuboza" #: src/tcal.c:193 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Ifashayobora Verisiyo Gusunika" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, fuzzy, c-format msgid "" "\n" "%s: abort, " msgstr "%s:Kureka" #: src/tcal.c:337 #, fuzzy, c-format msgid "shift value `%s' is invalid" msgstr "Gusunika Agaciro ni Sibyo" #: src/tcal.c:909 #, fuzzy, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s:Ihitamo" #: src/tcal.c:1073 #, fuzzy, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s:Ikosa Porogaramu Bya" #: src/txt2gcal.c:132 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "Ifashayobora Verisiyo" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, fuzzy, c-format msgid "%s: no regular file\n" msgstr "%s:Oya Ibisanzwe" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, fuzzy, c-format msgid "%s: file not found\n" msgstr "%s:IDOSIYE OYA" #: src/gcal2txt.c:132 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "Ifashayobora Verisiyo" #, fuzzy #~ msgid "Day number with leading spaces" #~ msgstr "Umubare Na: Nyobora Imyanya" #, fuzzy #~ msgid "Day number with leading zeroes and trailing suffix" #~ msgstr "Umubare Na: Nyobora Na Ingereka" #, fuzzy #~ msgid "Day number with leading spaces and trailing suffix" #~ msgstr "Umubare Na: Nyobora Imyanya Na Ingereka" #, fuzzy #~ msgid "Abbreviated month name (3 letters)" #~ msgstr "Ukwezi Izina: 3." #, fuzzy #~ msgid "Month number with leading zero" #~ msgstr "Umubare Na: Nyobora Zeru" #, fuzzy #~ msgid "Month number with leading space" #~ msgstr "Umubare Na: Nyobora Umwanya" #, fuzzy #~ msgid "Complete year number with leading zeroes" #~ msgstr "Umwaka Umubare Na: Nyobora" #, fuzzy #~ msgid "Complete year number with leading spaces" #~ msgstr "Umwaka Umubare Na: Nyobora Imyanya" #, fuzzy #~ msgid "Last two digits of year number with leading zero" #~ msgstr "Bya Umwaka Umubare Na: Nyobora Zeru" #, fuzzy #~ msgid "Last two digits of year number with leading space" #~ msgstr "Bya Umwaka Umubare Na: Nyobora Umwanya" #, fuzzy #~ msgid "Complete weekday name" #~ msgstr "UMUNSIICYUMWERU Izina:" #, fuzzy #~ msgid "Abbreviated weekday name (3 letters)" #~ msgstr "UMUNSIICYUMWERU Izina: 3." #, fuzzy #~ msgid "Abbreviated weekday name (2 letters)" #~ msgstr "UMUNSIICYUMWERU Izina: 2." #~ msgid "y" #~ msgstr "y" #~ msgid "m" #~ msgstr "m" #~ msgid "w" #~ msgstr "w" #~ msgid "d" #~ msgstr "d" # officecfg/registry\schema\org\openoffice\Office\Common.xcs:....Font.Family..5.text #, fuzzy #~ msgid "Swiss" #~ msgstr "NYABUSWISI" #~ msgid "Czech" #~ msgstr "Ceke" #~ msgid "German" #~ msgstr "Ikidage" #~ msgid "Danish" #~ msgstr "Ikidanwa" #~ msgid "Spanish" #~ msgstr "Icyesipanyoro" #~ msgid "Finnish" #~ msgstr "Ikinyafinirande" #~ msgid "Dutch" #~ msgstr "Igihorandi" #~ msgid "Polish" #~ msgstr "Ikinyapolonye" #~ msgid "Thai" #~ msgstr "Tayi" #, fuzzy #~ msgid "U.S. American" #~ msgstr "U." # svx/source\stbctrls\stbctrls.src:RID_SVXSTR_SELMODE_STD.text #, fuzzy #~ msgid "Std" #~ msgstr "STD" #, fuzzy #~ msgid "" #~ " %-3s = Definition of \"tvar%s`text'\" separated by `%s' characters" #~ msgstr "%-3s=Bya ku Inyuguti" #, fuzzy #~ msgid " %-3s = Any text you like, metacharacters are not respected" #~ msgstr "%-3s=Umwandiko nka OYA" #, fuzzy #~ msgid " %-3s = Email address" #~ msgstr "%-3s=Aderesi" # filter/source\pdf\impdialog.src:RID_PDF_EXPORT_DLG.RB_RANGE.text #, fuzzy #~ msgid " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr "Urutonde" #, fuzzy #~ msgid "" #~ "%sh|hh = Help screen; %sL = License; %sV = Version; %su = Suppress " #~ "calendar sheet" #~ msgstr "%sh|Mugaragaza Kalindari URUPAPURO" #, fuzzy #~ msgid "%si[-] = Special calendar format; " #~ msgstr "%si[-]=Kalindari Imiterere" #, fuzzy #~ msgid "%sp = Simple pager; " #~ msgstr "%sp=Peja" #, fuzzy #~ msgid "%sH yes = Use highlighting" #~ msgstr "%sHYego Igaragaza cyane" #, fuzzy #~ msgid "" #~ "%sb %-3s = Year calendar with 1|2|3|4|6|12 blocks; %sH no = Disable " #~ "highlighting" #~ msgstr "%sb%-3s=Kalindari Na: 1. 2. 3. 4. 6 12 Oya Igaragaza cyane" #, fuzzy #~ msgid "%sj[] = Output of consecutive day of year (Modifiers: [b n nb" #~ msgstr "%sj[]=Bya UMUNSI Bya Umwaka B N" #, fuzzy #~ msgid "" #~ "%ss %-3s = Starting day of week (%s = 0|today | %d|%s | %d|%s | ... | %d|" #~ "%s)" #~ msgstr "%ss%-3s=UMUNSI Bya Icyumweru 0 UYUMUNSI" #, fuzzy #~ msgid "%sn|N[%s] = Display eternal holiday list (Year in range: %d...%d)" #~ msgstr "%sn|ikiruhuko Urutonde in Urutonde" #, fuzzy #~ msgid "" #~ "%sc|C[] = Fixed date list of file `.%s%s'; %sf|F %s[%s%s%s...]=Use file " #~ "%s" #~ msgstr "%sc|C Itariki Urutonde Bya IDOSIYE IDOSIYE" #, fuzzy #~ msgid "" #~ "%sc|C[] = Fixed date list of file `%s%s'; %sf|F %s[%s%s%s...]=Use file %s" #~ msgstr "%sc|C Itariki Urutonde Bya IDOSIYE IDOSIYE" #, fuzzy #~ msgid "" #~ "%s = Month in range: %d...%d List: %s[%s%s]%s...%s" #~ "%s[%s%s]" #~ msgstr "%s=in Urutonde" #, fuzzy #~ msgid "" #~ " or: month name|%s[%s|%s|%s] Range: %s[%s%s]%s%s[%s" #~ "%s]" #~ msgstr "Cyangwa Ukwezi Izina:" #, fuzzy #~ msgid "" #~ "%s = Year in range: %d...%d%*s%*s List: [%s%s]%s%s...%s[%s" #~ "%s]%s" #~ msgstr "%s=in Urutonde" # filter/source\pdf\impdialog.src:RID_PDF_EXPORT_DLG.RB_RANGE.text #, fuzzy #~ msgid "" #~ " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr "Urutonde" #, fuzzy #~ msgid "Compilation options:" #~ msgstr "Amahitamo" #, fuzzy #~ msgid "Date format: (%s) `%s' (%s)" #~ msgstr "Imiterere y'itariki" #, fuzzy #~ msgid "or (if this fails) to ." #~ msgstr "Cyangwa NIBA iyi Kuri" #, fuzzy #~ msgid "" #~ " +++ If you specify two digits for the year I DON'T assume %2d%s +++" #~ msgstr "+++kugirango i Umwaka" #, fuzzy #~ msgid " +++ `%s' is free software, enjoy =8^) +++" #~ msgstr "+++`%s'ni Kigenga 8" # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\dbgui\scendlg.src:RID_SCDLG_NEWSCENARIO.STR_ON.text # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_ON.text #, fuzzy #~ msgid " on %s" #~ msgstr "ku" #, fuzzy #~ msgid " unknown date" #~ msgstr "Kitazwi Itariki" #, fuzzy #~ msgid "" #~ "%s: invalid date given -- %s\n" #~ "%s\n" #~ msgstr "%s:Sibyo Itariki" # vcl/source\src\btntext.src:SV_BUTTONTEXT_ABORT.text #, fuzzy #~ msgid "Abort!" #~ msgstr "Kureka" #, fuzzy #~ msgid "out of space" #~ msgstr "Umwanya warenzwe" #, fuzzy #~ msgid "junk on end" #~ msgstr "Umwanda ku Impera" #, fuzzy #~ msgid "*+ operand could be empty" #~ msgstr "*+ubusa" #, fuzzy #~ msgid "internal urp" #~ msgstr "By'imbere" #, fuzzy #~ msgid "?+* follows nothing" #~ msgstr "" #~ "+*Project- Id- Version: basctl\n" #~ "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" #~ "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" #~ "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" #~ "Content- Type: text/ plain; charset= UTF- 8\n" #~ "Content- Transfer- Encoding: 8bit\n" #~ "X- Generator: KBabel 1. 0\n" #~ "." #, fuzzy #~ msgid "internal disaster" #~ msgstr "By'imbere" #, fuzzy #~ msgid "corrupted program" #~ msgstr "Porogaramu" #, fuzzy #~ msgid "memory corruption" #~ msgstr "Ububiko" #, fuzzy #~ msgid "internal foulup" #~ msgstr "By'imbere" # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\navipi\navipi.src:RID_SCDLG_NAVIGATOR.TBX_CMD.IID_UP.text # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\src\scfuncs.src:RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_PROB.6.text # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\src\scfuncs.src:RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_BETA_DIST.8.text # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\src\scfuncs.src:RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_BETA_INV.8.text #, fuzzy #~ msgid "start `%c' " #~ msgstr "Gutangira" #, fuzzy #~ msgid "" #~ "illegal date variable operation (%s)\n" #~ "%s\n" #~ msgstr "Itariki IMPINDURAGACIRO" #, fuzzy #~ msgid "" #~ "illegal text variable definition (%s)\n" #~ "%s\n" #~ msgstr "Umwandiko IMPINDURAGACIRO Insobanuro" gcal-4.1/po/en@boldquot.header0000644000000000000000000000247113041163512013217 00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # gcal-4.1/po/lt.gmo0000664000000000000000000002007013041164031010706 00000000000000Ŝ•ıäûĴ ˜™ ›§Ż·ĈÎ ×áé ïù  %-5<DL Ucj s€‰ ›ŞŻµğÄ Ì Ùäìôù"+>F LXjrzƒŠ’ ™§¸żÇÏ Ġ ßí ,C JT \g lv}ƒ Œ–žĤгşÀÈÎ Ġà çòù    )46=FKQ b m x‚Š‘ ˜£ ĞĥÈÖ Ŝ ê ĝ !(-6<CT] bnw~ ‡“™Ħ´ğ Á ÌÙ á ìù  #06 < GQ Xd ˆ“ œ§Żµ½ ÄÑĜßĉî  $ ,6?APRX_.h— ™ĤݏÇÎ Ö àê û  %07?GPY b m w  šĦ´ÊÑ Ĝâ ê ÷ 35 <FO dn v„ – §°¸ ÀÌŜöŝ  !%5$[€ Ĥ² şĊ ÌÖß ĉ ú  $,4= FS \hpx€‰™ ĦŻħıÂÈÎ Ŭ ç óŝ " *5IR Xbk~ š˘Ğ ²ĵ ÎÔÛ òŭ    *7@I\c i u ƒ  ˜  ŻşÊÒìġ ŭ  *1: I S_gmu}”˜Ÿ§Â × áî ö     & .  ]7a·p¨Š—ˆŞ+1ƒŸ`OK‰“WvĥžĦ$œ\Z!”w­ŒH ^~>°,(Lšc")_SlPV<EĤ–ħ¸‘jeFı[˘´q4²D  †f}ng-dXU'@…İ„IJ=ĞĴzxMsµY™8u€•’6*2y:b›kt£ i9‚ %‹|{Q‡0B?Am³;&˜#3Rh§CŽT5¤Ż. No/Gr:AfghanistanAlbaniaAlgeriaAmerican SamoaAndorraAnguillaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBarbadosBelarusBelgiumBelizeBermudaBoliviaBotswanaBouvet IslandBrazilBulgariaBurkina FasoCameroonCanadaCape VerdeCayman IslandsChadChileChinaColombiaComorosCook IslandsCosta RicaCreatedCroatiaCubaCyprusCzech RepublicDDenmarkDjiboutiDominicaDominican RepublicEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEthiopiaFaroesFinlandFranceFrench GuianaFrench PolynesiaGambiaGeorgiaGermanyGhanaGibraltarGreat BritainGreat Britain/England and WalesGreat Britain/Northern IrelandGreat Britain/ScotlandGreeceGreenlandGrenadaGuadeloupeGuamGuatemalaGuineaHaitiHondurasHong KongHungaryIcelandIraqIrelandIsraelItalyJamaicaJapanJordanKazakhstanKuwaitKyrgyzstanLatviaLebanonLesothoLiberiaLiechtensteinLithuaniaLuxembourgMMalawiMaldivesMaliMaltaMarshall IslandsMartiniqueMauritaniaMauritiusMayotteMexicoMonacoMontserratMoroccoMozambiqueMyanmar (Burma) #NamibiaNauruNepal #NetherlandsNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorwayOmanPakistanPalauPanamaPapua New GuineaParaguayPeruPhilippinesPitcairnPolandPortugalPuerto RicoQatarRomaniaRussian FederationRwandaSamoaSan MarinoSaudi ArabiaSenegalSeychellenSierra LeoneSlovakiaSloveniaSolomon IslandsSomaliaSouth AfricaSpainSudanSuriname #SwazilandSwedenSwitzerlandSyrian Arab Republic (Syria)TaiwanTajikistanTanzaniaThailand #TokelauTongaTunisiaTurkeyTurkmenistanTuvaluU.S.A.UgandaUkraineUnited Arab EmiratesUnited StatesUruguayUzbekistanVanuatuVenezuelaViet NamWWestern SaharaYYemenZambiaZimbabweProject-Id-Version: gcal-3.00 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 2009-02-12 16:26+0200 Last-Translator: Gintautas Miliauskas Language-Team: Lithuanian Language: lt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: KBabel 1.11.4 Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2); :AfganistanasAlbanijaAlĊyrasAmerikos SamoaAndoraAngvilaArgentinaArmėnijaArubaAustralijaAustrijaAzerbaidĊanasBahamaiBahreinasBarbadosasGudijaBelgijaBelizasBermudaiBolivijaBotsvanaBuvė salaBrazilijaBulgarijaBurkina FasasKamerĊĞnasKanadaĊ½aliasis kyĊĦulysKaimanĊ³ salosČadasČilėKinijaKolumbijaKomoraiKuko SalynasKosta RikaSukurtaKroatijaKubaKiprasČekijos respublikaDDanijaDĊibutisDominikaDominikos respublikaEkvadorasEgiptasEl SalvadorasPusiaujo GvinėjaEritrėjaEstijaEtiopijaFareraiSuomijaPrancĊĞzijaPrancĊĞzĊ³ GvianaPrancĊĞzijos PolinezijaGambijaGruzijaVokietijaGanaGibraltarasDidĊioji BritanijaDidĊioji Britanija/Anglija ir VelsasDidĊioji Britanija/Ċ iaurės AirijaDidĊioji Britanija/Ċ kotijaGraikijaGrenlandijaGrenadaGvadelupėGuamasGvatemalaGvinėjaHaitisHondĊĞrasHonkongasVengrijaIslandijaIrakasAirijaIzraelisItalijaJamaikaJaponijaJordanasKazachstanasKuveitasKirgistanasLatvijaLibanasLesotasLiberijaLichtenĊĦteinasLietuvaLiuksemburgasMMalavisMaldyvaiMalisMaltaMarĊĦalo salosMartinikaMauritanijaMauricijusMajotasMeksikaMonakasMontseratasMarokasMozambikasMianmaras (Birma) #NamibijaNauruNepalas #OlandijaNaujoji KaledonijaNaujoji ZelandijaNikaragvaNigerisNigerijaNiujėNorvegijaOmanasPakistanasPalauPanamaPapua Naujoji GvinėjaParagvajusPeruFilipinaiPitkernasLenkijaPortugalijaPuerto RikasKvatarasRumunijaRusijos federacijaRuandaSamoaSan MarinasSaudo ArabijaSenegalasSeiĊĦeliaiSiera LeonėSlovakijaSlovėnijaSaliamono salosSomalisPietĊ³ Afrikos respublikaIspanijaSudanasSurinamas #SvazilendasĊ vedijaĊ veicarijaSirijaTaivanasTadĊikistanasTanzanijaTailandas #TokelauTongaTunisasTurkijaTurkmėnistanasTuvaluJAVUgandaUkrainaJungtiniai ArabĊ³ EmyrataiJungtinės ValstijosUrugvajusUzbekistanasVanuatuVenesuelaVietnamasSVakarĊ³ SacharaYJemenasZambijaZimbabvėgcal-4.1/po/nl.gmo0000664000000000000000000012730013041164031010704 00000000000000Ŝ•òĴñKSKpKƒK–K²K şKĊKàKäKìKôK L L%L.L>LOLkLsL{L‚LŠL’LšL£L¸L ÉLÓLÛL îLúL M MM#M:MAM JM WM cM mMxMMˆM—MŻMżM ÔMġMN%N4NPN_N sN €N‹N”N£N§NÂNÇN ŜNêNîNŭNO O O7O?OCO ZO hOvOˆO ˜OĤOO ÇOÔOÜOüOP )P6PLP \PgPoPwP‰PŽP”P›PŞPıPğPÌPŬPìP QQ3Q7Q@QWQ%sQ™Q¸QÀQÉQÒQċQ úQ RR%R-R 3R ?RKR bR nR{R•R.¨R×RñR SSSS(S2@SsSwS“S šS§SĵSÀSÉS0èS1T1KT*}T.¨T:×T;U:NU‰UİU°U¸UÌU%ĠUûUŝU VV$V(V/V7V FVPViVqV%xVžVĤV·VżVÚVêVùV WW ,W:W"OWrW‘WWżWÎWäW˙WX X !X-XFX XXfX†XXĵX X XÚX âX XûX Y YY!Y*Y2Y 8YBY^YuY‘Y•Y¤Y ­Y·YÈYYĜYßYY ĝYZ Z$ZAZ]Z$uZšZĴZÇZÌZÔZĜZïZ[[[[![)[-[3[K[c[w[~[‚[‡[‹[ [›[ £[[ µ[ À[ Ë[Ö[#é[ \\\$\3\;\ Z\ h\r\ {\ ‰\”\–\ œ\.İ\Ĝ\ ß\ê\ó\ĝ\ ŝ\ ] ]]$] 9] D]O] d]q]‰]ž]Ż] Ì]Ĝ]è]ú] ^ ^^#^(^0^8^I^P^S^W^^^e^m^^ “^1ž^ ^Û^^ ÷^ __!_)_:_P_V_ ^_j_‡_$_Ê_ ê_ĝ_` ` `&`,`4`H`M`V` u`–`³`ş``/Ç`9÷`-1a_afajara‡aœaĦaıaÂa ÈaÔaÛaìa ġab bb(b 7bAbZb_b ob{b„b‹b ”b#Ÿbb àb îbúbccc 7cDcXcjc~cc•cħcÄcËcÔc0ëcd5d8dRdpd vdd˜dœd d ŻdĵdÄd ÈdÒdĉdüd ee 5eAe [eie re e e™e˘e Ğeıe ÉeÖe Ŝe(ëef1f7f Gf Sf]fufˆf‘f˘f³fĈfàféf0˙f0gDgGgOgUgqgug|g „gg g¸g żgËg"Ŝg!h#h@hXhih~h’hh½hÎháhĝhi#io[ovo‰o oµooëop#p;pOpbpxpp¨pÄpÜpòpqq +q8q @qKq Sq ]qkqtqvqqİqşqËqÎq Òq Üqçqìq ôqŝq rr .r:rKrTr[r]r crmrŒrĞrËrär ss&s-s4s7=susŒs!Ÿs Ás5Îst t#!t!Etgtntwt €t Œtštİtşt½t Àt ÎtÛtŜtĉtïét(Ùv9w9ûx2:yImy9·y(ñy9zFTz7›z,ÓzP{ Q{ ]{k{t{y{ ‘{ {Ğ{Ċ{ Ŝ{ë{*|).|/X|=ˆ|Ĉ|,á|(}7}Q}&j} ‘}#²}(Ö}%˙}$%~)J~%t~š~I´~,ŝ~)+*U'€¨½Üñ€$€B€W€v€1x€Ş€ €ş€€ ̀ ׀ċ€ ĝ€; @K\dmvށ!΁ ‚&‚<‚Q‚j‚‚‚œ‚ ´‚À‚ӂׂ Ŭ‚ ê‚ö‚ƒƒ#ƒ)ƒCƒ^ƒ mƒxƒ€ƒ„ƒ ƒ˜ƒĴƒ!ȃꃄ„0„D„ _„ j„w„„‘„™„Ħ„ ż„̄à„é„û„ … )…5…=…D…M…U…]…f…„… œ…Ĥ………˅ ԅá… ñ…û…† † #† 0† ;† E†P†Y†`†o†…†•†ކʆç†ú† ‡ #‡1‡ E‡ R‡^‡g‡w‡{‡›‡˘‡³‡ı‡ ½‡LJ͇Ӈċ‡ġ‡ĝ‡ü‡ ˆ ˆ&ˆ6ˆFˆ Zˆhˆ qˆ}ˆ#…ˆ݈ˆ Ŝˆëˆŝˆ ‰ ‰#‰,‰<‰A‰H‰ O‰ Y‰c‰e‰x‰‹‰œ‰ş‰͉á‰ċ‰î‰)Š 1Š=Š NŠYŠbŠkЂВŠĦŠ °ŠĵŠĊ ˊ ֊⊠ûŠ‹k‹‚‹$›‹ À‹͋ à‹ë‹ó‹ û‹Œ/ŒJŒNŒ_ŒhŒqŒ„ŒˆŒ ‘Œ:œŒ*׌(,+1X5Š0À0ñ*"ŽMŽTŽ\Ž sŽ ~Ž‰Ž ŒŽ –Ž£Ž´Ž¸Ž ÀŽʎ ڎċŽŝŽ0 >G dn‹ŻĊ֏èù#3Qj}ސĤĜ Ŝ èö ‘‘%&‘!L‘n‘ Œ‘˜‘ °‘ş‘‘ ґŬ‘ â‘ì‘ó‘’ ’’ ’$’C’_’y’}’Ž’—’ ’ ħ’ğ’’ʒà’ è’ġ’ü’“0“L“*f“‘“Ĥ“ēɓѓĠ“ë““ĝ“”” ””””/”>” T”^”b”g”k” p”{” ƒ”Ž” –” ” ²”½”Ġ”ܔä”ì”ô”• • • • )•4• G•Q•S• Y•-f•”• ›•§•°•µ•ğ••Ĉ•̕Ŭ• ó• – – "–0–@–X–g–„–›–Ş–ş– ʖ ֖à–ä– è–ô– ü–—$—'—+—2— :—D—Z— r—&~— —°—¸— ȗ җŬ—ï—ĝ— ˜˜#˜ +˜5˜R˜+p˜!œ˜˜ Ϙ ۘ é˜ ÷˜™™™'™,™ @™a™v™ ‰™“™—™0 ™=љ-š=šCšGšOšgšš„š—š š Ĥšħš¸š̚Ġš Ŝš ìšùš››!›5›:› O›Z›k›q› z›(„›!­› ϛ Ŭ›é›ŭ›œ œ+œ@œ Tœ _œiœ ~œˆœ§œݜĥœżœ)Ҝüœ3P Vaw{ „  ݝ ³À ֝ áìž žž"ž (ž"5ž Xž dž nžxžŠž ›žĤž Żž/ğž ëžùž Ÿ Ÿ Ÿ &Ÿ2Ÿ GŸ SŸaŸ rŸ€Ÿ ŸŸİŸ$ÀŸċŸŝŸ   ( , 3  < G  ` j  q } " !³ Ġ ì ĦĦ)Ħ=ĦPĦhĦyĦŒĦ£ĦıĦÎĦçĦúĦ˘)˘=˘P˘`˘s˘„˘”˘¨˘·˘˘ Ċ˘Ò˘Û˘ Ŝ˘é˘ í˘ ÷˘9£=£D£U£[£b£y£<Ž£4Ë£&¤'¤%*¤P¤T¤ \¤f¤o¤ w¤„¤¤¤¤½¤Ù¤Ŝ¤ ĉ¤¤%6Og€š·Ñî%Ĥ.ĤGĤ`ĤxĤĤİĤÂĤĜĤĤ §%§<§V§u§§ާǧá§ú§¨,¨K¨g¨ƒ¨¨½¨Û¨ñ¨ İ#İAİ_İݝݸİÏİċİŝİŞ4ŞSŞnŞ‡ŞŞ°Ş ŞÑŞ ÙŞċŞ íŞ ÷ŞĞ ĞĞ#Ğ4ĞEĞUĞXĞ\Ğ eĞpĞuĞ}ЄЖРİĞ ´Ğ żĞÉĞÏĞÔĞÖĞÜĞ3Ğ!Ĵ/9ĴiĴ ‡Ĵ”Ĵ™ĴŞĴħĴµĴFĴ­"­<9­ v­,„­ ħ­ğ­%έ&ô­ #1 8FV o“– Ĥ³·?‰Šu­F‚éıĵ,MœûJ6Ü7YÄ;‡'NŒÒ䚳ϟbGZş?àÖ›E Ñ÷i+Ĝ†ìƒY†péiż5ŭŬNqż˘Â´ZÛ• €fE£WŻ8ÍWœ¤µñoŒ4&e! *<ÁĝµġżlgñĞĈ…-˜Me Ÿ ğ~c˘¨ÎŬŻòŽÉ’âÁ"꨽Ġ.‘S_‚ƒŜQ:) ë†HKÉĴL)œñè7U3•w/9 á§§šÊ°tĊ"n‹ÚAžDIĉÛ –<&(É ßá“×ß´ċŜbħyY| ŠÌ$ƒ^ŞwOĝú@è (IGğ¨SF)ˆ?NçòÔڏǂ5Ô]²~x|ûÖTş@™R7SÄxo*îz³[ÁìEIô”d.scˆĵŸ2K]´{-/gVŞUljG]€žŭu›ÇĜDÓş%>˙°ÀŠ·‡ĤZ³!ĴH˜ğP‹¤ar $} 3wm1ŜäÏöÓ2O¤rüj°Êàâ0“Ô=Tĵú3Û0k & 0“ĥİ8¸ċêÑ-`VÏ™}( İ·v£Ru> Që/p˙ŝ{‘X˘=n§+mÎÖÌŝ’Ž6öÊËŻ%JȍĤ„Aíî–`;ïtĴPkâĊ­çÑ—,ÌÚËéÎ,’OĦPibs#\ ĥÀrĠ…'a×ċĞË:™½tB:µq˜LV#=.k¸£­TóW>^Èĉ‰”²sX·\ž$ ĉ9z_2×}6ħ‘_v—èä8`ïag”„%ÈáùpŽßhız<\o@{ÜÍ[Kİ–xCˆRëÇJÒê€9ĤyqQ!A'ü1;Ħ+B4ÍĞšĥ‡mì…fhcÒÄeÜ^CħFBŒ—çíÓj„vUŬô[*ïl h²Ùn"ġ~Ù÷#òĦ4DíL1CĜùàdyM‹óHĈd¸ĈĠ‰ĊX5fÙıŞ| À• %c = Exclusion of all %s expressions separated by `%s' characters is a LOWER-CASE-LETTER, it means a non-exclusion! = abort Like `all' and abort if file name can't be handled = all Like `handled' and `unhandled' together = handled Like `internal' and file names which are handled = no Standard week numbers = unhandled Like `internal' and file names which are unhandled Determine type of week numbers (actual: %s) Display extended help text and quit program Display help text and quit program Display only those fixed dates, whose text is matched by %s Display software license and quit program Display some debug information Display version information and quit program %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]' %-3s = One or more of the following characters. If character %-3s = yes ISO-8601:1988 week numbers [%-3s] = internal Information if program internal maximums are reached = %+4d day = %+4d days `HERE' day# Day number (must be defined)# Month name# Month number# Weekday name (may be defined)# Year number (must be defined)%s subprocess%s subprocess failed%s subprocess got fatal signal %d%s%s contains %d maximum entries now!%s%s: Use `%s %s' with one of these arguments%s: command in environment variable `%s' found -- %s %s %s %s: file not found %s: invalid date given -- %c%s %s %s %s: invalid date given -- %s %s %s %s: invalid option -- %s%s: no regular file %s: option `%s' doesn't allow an argument%s: option `%s' is ambiguous%s: option `%s' requires an argument%s: option `--%s' doesn't allow an argument%s: option `--%s' requires an argument%s: option requires an argument -- %s%s: option with ambiguous argument -- %s%s: option with invalid argument -- %s%s: unrecognized option `%s'%s: warning, eMail with empty message body not sent to <%s>. %s:%*sThe year %0*d is A leap year%s:%*sThe year %0*d is NO leap year%s:%*sThe year %d is A leap year%s:%*sThe year %d is NO leap year1st Advent1st Sunday in Lent2nd Advent2nd Sunday in Lent3rd Advent3rd Sunday in Lent4th Advent4th Sunday in Lent:ALIGNMENT group (exactly one member must be defined):ARGAfghanistanAlbaniaAlgeriaAll Fool's DayAll Saints' DayAll Saints' EveAll Souls' DayAll format elements marked by # may optionallyAlphabet DayAmerican SamoaAndorraAngola #AnguillaAnniversary of AucklandAnniversary of Canterbury NorthAnniversary of Canterbury SouthAnniversary of Chatham IslandsAnniversary of Hawkes' BayAnniversary of MarlboroughAnniversary of NelsonAnniversary of OtagoAnniversary of SouthlandAnniversary of TaranakiAnniversary of WellingtonAnniversary of WestlandAnnularAntigua and BarbudaAprAprilArbor DayArgentinaArmed Forces DayArmeniaArmistice DayArubaAscension of Abdu'l-BahaAscension of Baha'u'llahAsh MondayAsh WednesdayAshura'AugAugustAustraliaAustralia/CanberraAustralia/New South WalesAustralia/Northern TerritoryAustralia/QueenslandAustralia/Southern AustraliaAustralia/TasmaniaAustralia/VictoriaAustralia/Western AustraliaAustriaAzerbaijanBackslash ('%c') characterBahBahamasBahrainBahĦ'i New Year's DayBangladesh #Bank HolidayBarbadosBattle of BoyneBattle of PueblaBeginning of Financial YearBelarusBelgiumBelizeBeltaneBenin #BermudaBhutan #Birth of Baha'u'llahBirth of the BabBloomsdayBoliviaBosnia-HerzegovinaBosses' DayBotswanaBouvet IslandBoxing DayBrazilBritish Virgin IslandsBruneiBulgariaBurkina FasoBurns NightBurundi #Cambodia #CameroonCanadaCanada/AlbertaCanada/British ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland and LabradorCanada/Northwest TerritoriesCanada/Nova ScotiaCanada/OntarioCanada/Prince Edward IslandCanada/QuİbecCanada/SaskatchewanCanada/YukonCape VerdeCarnivalCayman IslandsCelCentral African Republic #ChadCharacter replacement:Chen/DragonChiChildren's DayChileChinaChinese New Year's DayChinese New Year's EveChou/OxChrChrist's Ascension DayChristmas DayChristmas EveChristmas IslandsCitizenship DayCivic HolidayCocos Islands (Keeling)ColombiaColumbus DayComorosCompiled with %s%s for %s%s%s%sConfucius' BirthdayConstitution AnniversaryCook IslandsCoptic New Year's DayCosmonauts' DayCosta RicaCreatedCroatiaCross Raising DayCubaCycleCyprusCzech RepublicC´te d'IvoireDDay of AndaluciaDay of CataloniaDay of GaliciaDay of Prayer and RepentanceDay of ReconciliationDay of the CovenantDecDecemberDeclaration of the BabDefenders of Motherland DayDemocratic People's Republic of KoreaDemocratic Republic of Congo #DenmarkDjiboutiDominicaDominican RepublicDragon Boat FestivalEaster MondayEaster SundayEaster TuesdayEcuadorEgyptEid-al-AdhaEid-al-FitrEindhoven's LiberationEl SalvadorElection DayEmail bug reports to <%s>Emperor's BirthdayEnd of highlighting sequence/marking characterEpiphany/Three King's DayEquatorial GuineaEquinox DayEritreaEstoniaEthiopiaEthiopic New Year's DayFORMAT group (exactly one member must be defined):FRRFalkland Islands (Malvinas)FaroesFather's DayFeast of Heart JesusFebFebruaryFederated States of MicronesiaField contents is converted to capitalized wordsField contents is converted to lower-case lettersField contents is converted to upper-case lettersField contents is cut after position WIDTHField contents is not cut after position WIDTHField contents placed at the left margin using width WIDTHField contents placed at the right margin using width WIDTHField contents placed in centered manner using width WIDTHField has the width N (%d...%d)Fiji #FinlandFirst Day of RidvanFlag DayFormer Yugoslav Republic of MacedoniaFrFranceFrench GuianaFrench PolynesiaFriFridayFridaysFriendship DayFull MoonGNU gcal home page: <%s>Gabon #GambiaGeneral help using GNU software: <%s>GeorgiaGerman Unity DayGermanyGermany/Baden-WĵrttembergGermany/BavariaGermany/BerlinGermany/BrandenburgGermany/BremenGermany/HamburgGermany/HesseGermany/Lower SaxonyGermany/Mecklenburg-West PomeraniaGermany/North Rhine-WestphaliaGermany/Rhineland PalatinateGermany/SaarlandGermany/SaxonyGermany/Saxony-AnhaltGermany/Schleswig-HolsteinGermany/ThuringiaGhanaGibraltarGood FridayGood Saturday/Easter EveGrandparents' DayGreat BritainGreat Britain/England and WalesGreat Britain/Northern IrelandGreat Britain/ScotlandGreeceGreenery DayGreenlandGrenadaGroundhog DayGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Guyana #Hai/PigHaitiHalloweenHannukah/Festival of LightsHealth and Sport's DayHeard and Mc Donald IslandsHebHoly WednesdayHondurasHong KongHuman Rights DayHungaryIcelandImbolgIndependence DayIndia #Indonesia #InternalInvalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionIraqIrelandIslIslamic New Year's DayIslamic Republic of IranIsraelItalyJamaicaJanJanuaryJapJapanJapanese New Year's DayJapanese New Year's EveJesus' CircumcisionJordanJulJulyJunJuneKazakhstanKenya #Kiribati #KuwaitKyrgyzstanLabour DayLag B'OmerLao Tze's BirthdayLaos People's Democratic Republic #LatviaLebanonLesothoLiberation DayLiberiaLibyan Arab Jamahiriya (Libya)LiechtensteinLithuaniaLughnasaLunar EclipseLuxembourgMMacauMadagascar #Mail from \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaldivesMaliMaltaMao/RabbitMarMarchMarshall IslandsMartin L. King's DayMartinimasMartiniqueMartyrdom of the BabMartyrs' DayMary's Annunciation DayMary's Ascension DayMary's CandlemasMary's Immaculate ConceptionMary's NameMary's NativityMary's VisitationMaundy ThursdayMauritaniaMauritiusMayMay May DayMayotteMemory exhaustedMexicoMoMonMonacoMondayMondaysMondays...FridaysMondays...ThursdaysMongolia #Month group (exactly one member must be defined):MontserratMoroccoMother in Law's DayMother's DayMozambiqueMyanmar (Burma) #NamibiaNational HolidayNational Mourning DayNauruNepal #NetherlandsNetherlands Antilles/BonaireNetherlands Antilles/Cura§aoNetherlands Antilles/Saba and StatiaNetherlands Antilles/St MaartenNew CaledoniaNew MoonNew Year's DayNew ZealandNicaraguaNigerNigeriaNinth Day of RidvanNiueNo matchNo previous regular expressionNorthern Marian Islands (Saipan)Noruz/Persian New Year's DayNorwayNovNovemberNumerical value is filled with leading zero(es)Numerical value is provided with an ordinal number suffixNumerical value is provided with leading signOPTIONOctOctoberOld-Armenic New YearOld-Egyptic New YearOmanOrthodox New Year's DayPakistanPalauPalm SundayPanamaPapua New GuineaParaguayParent's DayPartialPassion SundayPeace FestivalPeach FestivalPenumbralPercent ('%c') characterPeruPesach/PassoverPhilippinesPitcairnPolandPortugalPrayer DayPremature end of regular expressionPresident Lincoln's BirthdayPrincess' DayPuerto RicoPurim/Feast of LotsQatarRamadanRegular expression too bigRepublic DayRepublic of Congo #Republic of KoreaRepublic of MoldovaRevolution DayRomaniaRosh Hashana/New Year's DayRussian FederationRwandaRİunionSIGN (may be defined):STYLE group (exactly one member may be defined):SUFFIX (may be defined):SaSaint-Pierre and MiquelonSamhain/Celtic New Year's DaySamoaSan MarinoSao Tomİ and PrincipeSatSaturdaySaturdaysSaudi ArabiaSenegalSepSeptemberSeptuagesima SundaySerbia and MontenegroSexagesima SundaySeychellenShavuot/Giving of the TorahShen/MonkeyShrove Tuesday/Mardi GrasShushan PurimSi/SnakeSierra LeoneSimchat TorahSingapore #SlovakiaSloveniaSolar EclipseSolomon IslandsSolstice DaySomaliaSouth AfricaSouth Georgia and South Sandwich IslandsSpace/blank ('%c') characterSpainSpring FestivalSri Lanka #St HelenaSt John's/Midsummer DaySt Kitts and NevisSt LuciaSt Nicholas' DaySt Nicholas' EveSt Valentine's DaySt Vincent and GrenadinesStandardStart of common monthStart of highlighting sequence/marking characterStart of leap monthSuSuccessSudanSukkot/Feast of TabernaclesSunSundaySundaysSuriname #Svalbard and Jan Mayen IslandsSwazilandSwedenSwitzerlandSwitzerland/AargauSwitzerland/Appenzell AusserrhodenSwitzerland/Appenzell InnerrhodenSwitzerland/Basel-LandschaftSwitzerland/Basel-StadtSwitzerland/BernSwitzerland/FribourgSwitzerland/Gen¨veSwitzerland/GlarusSwitzerland/GraubĵndenSwitzerland/JuraSwitzerland/LuzernSwitzerland/Neuch˘telSwitzerland/NidwaldenSwitzerland/ObwaldenSwitzerland/SchaffhausenSwitzerland/SchwyzSwitzerland/SolothurnSwitzerland/St GallenSwitzerland/ThurgauSwitzerland/TicinoSwitzerland/UriSwitzerland/ValaisSwitzerland/VaudSwitzerland/ZugSwitzerland/ZĵrichSylvester/New Year's EveSyrian Arab Republic (Syria)TaiwanTajikistanTanzaniaThThailand #ThuThursdayThursdaysTisha B'Av/Fasting DayTogo #TokelauTongaTotalTrailing backslashTrinidad and Tobago #Try to open (level: %02d) include file `%s'... %s%s%sTry to open%sresource file `%s'... %s%s%sTry to write %s `%s'... %s%s%sTuTu B'Shevat/New Year of TreesTueTuesdayTuesdaysTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluTwelfth Day of RidvanU.S. Virgin IslandsU.S.A.UgandaUkraineUnderscore ('%c') characterUnited Arab EmiratesUnited StatesUnited States/AlabamaUnited States/AlaskaUnited States/ArizonaUnited States/ArkansasUnited States/CaliforniaUnited States/ColoradoUnited States/ConnecticutUnited States/DelawareUnited States/District of ColumbiaUnited States/FloridaUnited States/GeorgiaUnited States/HawaiiUnited States/IdahoUnited States/IllinoisUnited States/IndianaUnited States/IowaUnited States/KansasUnited States/KentuckyUnited States/LouisianaUnited States/MaineUnited States/MarylandUnited States/MassachusettsUnited States/MichiganUnited States/MinnesotaUnited States/MississippiUnited States/MissouriUnited States/MontanaUnited States/NebraskaUnited States/NevadaUnited States/New HampshireUnited States/New JerseyUnited States/New MexicoUnited States/New YorkUnited States/North CarolinaUnited States/North DakotaUnited States/OhioUnited States/OklahomaUnited States/OregonUnited States/PennsylvaniaUnited States/Rhode IslandUnited States/South CarolinaUnited States/South DakotaUnited States/TennesseeUnited States/TexasUnited States/UtahUnited States/VermontUnited States/VirginiaUnited States/WashingtonUnited States/West VirginiaUnited States/WisconsinUnited States/WyomingUnknown system errorUnmatched ( or \(Unmatched ) or \)Unmatched \{UruguayUzbekistanVanuatuVenezuelaVeteran's DayViet NamWWIDTH (must be defined):Wallis and Futuna IslandsWaning Half MoonWaxing Half MoonWeWedWednesdayWednesdaysWeekWeek %sWei/SheepWestern SaharaWhit MondayWhitsunday/PentecostWomen's DayWorld Animal DayWu/HorseXu/DogYYemenYin/TigerYom Ha Azmaut/Independence DayYom Hashoah/Holocaust MemorialYom Hazikaron/Soldiers MemorialYom Kippur/Atonement DayYom Yerushalayim/Jerusalem DayYou/RoosterZERO (may be defined):ZambiaZi/RatZimbabwe[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]_open_osfhandle failedcannot create pipecannot restore fd %d: dup2 failedcommand linecontain a format instruction, which template is like:defaultenvironment variableenvironment variable `%s' not foundenvironment variable `%s' not setfailedholidaysinternalinvalid dayinvalid monthlegal holidaysmemory exhaustedndrdresponse fileshell scriptstsuccessthProject-Id-Version: gcal-3.6.3.34 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 2015-01-01 22:53+0100 Last-Translator: Benno Schulenberg Language-Team: Dutch Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. X-Generator: Lokalize 1.0 Plural-Forms: nplurals=2; plural=(n != 1); %c = Uitsluiting van alle %s uitdrukkingen, gescheiden door '%s' karakters KLEINE LETTER betekent hier niet-uitsluiting! = abort Zoals 'all' en afbreken indien bestandsnaam niet verwerkt kan worden = all Zoals 'handled' en 'unhandled' samen = handled Zoals 'internal' en verwerkte bestandsnamen = no Standaard weeknumbers = unhandled Zoals 'internal' en onverwerkte bestandsnamen Het type weeknummers vaststellen (huidig: %s) Uitgebreide hulptekst tonen en programma beĞindigen Hulptekst tonen en programma beĞindigen Enkel de vaste datums waarvan de tekst overeenkomt met %s tonen Softwarelicentie tonen en programma beĞindigen Foutopsporingsinformatie tonen Versieinformatie tonen en programma beĞindigen %-3s = Lijst van '%c[DATE][%c[DATE]]' en/of '%c[DATE][%c[DATE]]' %-3s = Een of meer van de volgende karakters. Een %-3s = yes ISO-8601:1988 weeknummers [%-3s] = internal Informatie of interne maxima van programma zijn bereikt = %+4d dag = %+4d dagen 'HIER' dag# Dagnummer (verplicht)# Maandnaam# Maandnummer# Weekdagnaam (optioneel)# Jaarnummer (verplicht)subproces %ssubproces %s is misluktsubproces %s ontving het fatale signaal %d%s%s bevat nu het maximum van %d items!%s%s: Gebruik '%s %s' met een van deze argumenten%s: commando in omgevingsvariabele '%s' gevonden -- %s %s %s %s: bestand niet gevonden %s: ongeldige datum opgegeven -- %c%s %s %s %s: ongeldige datum gegeven -- %s %s %s %s: ongeldige optie -- %s%s: geen gewoon bestand %s: optie '%s' staat geen argument toe%s: optie '%s' is niet eenduidig%s: optie '%s' vereist een argument%s: optie '--%s' staat geen argument toe%s: optie '--%s' vereist een argument%s: optie vereist een argument -- %s%s: optie met dubbelzinnig argument -- %s%s: optie met ongeldig argument -- %s%s: onbekende optie: '%s'%s: waarschuwing, e-mail met lege berichttekst niet verzonden naar <%s>. %s:%*sHet jaar %0*d is WEL een schrikkeljaar%s:%*sHet jaar %0*d is GEEN schrikkeljaar%s:%*sHet jaar %d is WEL een schrikkeljaar%s:%*sHet jaar %d is GEEN schrikkeljaareerste Adventszondageerste zondag in de Vastentijdtweede Adventszondagtweede zondag in de Vastentijdderde Adventszondagderde zondag in de Vastentijdvierde Adventszondagvierde zondag in de Vastentijd:UITLIJNING (verplicht İİn kiezen uit de lijst):ARGAfghanistanAlbaniĞAlgerijeEİn aprilAllerheiligenAllerheiligenavondAllerzielenAlle formatelementen gemarkeerd door een # kunnen optioneelAlfabetdagAmerikaans SamoaAndorraAngola #AnguillaVerjaardag van AucklandVerjaardag van Canterbury NorthVerjaardag van Canterbury SouthVerjaardag van de ChathameilandenVerjaardag van Hawkes' BayVerjaardag van MarlboroughVerjaardag van NelsonVerjaardag van OtagoVerjaardag van SouthlandVerjaardag van TaranakiVerjaardag van WellingtonVerjaardag van WestlandRingvormigeAntigua-en-BarbudaapraprilBoomfeestdagArgentiniĞStrijdkrachtendagArmeniĞWapenstilstanddagArubaHeengaan van Abdu'l-BahĦHeengaan van BahĦ'u'llĦhSchone maandagAswoensdagAsjoeraaugaugustusAustraliĞAustraliĞ/CanberraAustraliĞ/Nieuw-Zuid-WalesAustraliĞ/Noordelijk TerritoriumAustraliĞ/QueenslandAustraliĞ/Zuid-AustraliĞAustraliĞ/TasmaniĞAustraliĞ/VictoriaAustraliĞ/West-AustraliĞOostenrijkAzerbeidzjanBackslashteken ('%c')BahBahamasBahreinNaw-Rşz (BahĦ'­ nieuwjaar)Bangladesh #Nationale vrije dagBarbadosSlag aan de BoyneSlag bij PueblaBegin van het financieel jaarWit-RuslandBelgiĞBelizeBeltaineBenin #BermudaBhutan #Geboortedag van BahĦ'u'llĦhGeboortedag van de BĦbBloomsdayBoliviaBosniĞ-HerzegovinaBazendagBotswanaBouveteilandTweede KerstdagBraziliĞBritse MaagdeneilandenBruneiBulgarijeBurkina FasoBurnsnachtBurundi #Cambodja #KameroenCanadaCanada/AlbertaCanada/Brits-ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland en LabradorCanada/Northwest TerritoriesCanada/Nova ScotiaCanada/OntarioCanada/Prins EdwardeilandCanada/QuebecCanada/SaskatchewanCanada/YukonKaapverdiĞCarnavalKaaimaneilandenKelCentraal-Afrikaanse Republiek #TsjaadTekenvervanging:DraakChiKinderdagChiliChinaChinees nieuwjaarChinees oudjaarOsChrHemelvaartsdagEerste KerstdagKerstavondChristmaseilandBurgerschapsdagWettelijke feestdagCocoseilandenColombiaColumbusdagComorenGecompileerd met %s%s voor %s%s%s%sGeboortedag van ConfuciusVerjaardag van de grondwetCookeilandenKoptisch nieuwjaarKosmonautendagCosta RicaAangemaaktKroatiĞKruisverheffingCubaCyclusCyprusTsjechiĞIvoorkustDDag van AndalusiĞDag van CataloniĞDag van GaliciĞDag van gebed en boetedoeningDag van verzoeningDag van het VerbonddecdecemberVerkondiging van de BĦbDag van de verdedigers van het moederlandNoord-KoreaCongo-Kinshasa #DenemarkenDjiboutiDominicaDominicaanse republiekDrakenbootfeestTweede PaasdagEerste PaasdagPaasdinsdagEcuadorEgypteOfferfeestSuikerfeestBevrijding van EindhovenEl SalvadorVerkiezingsdagRapporteer gebreken in het programma aan <%s>; meld fouten in de vertaling aan .Verjaardag van de KeizerEinde van markeersequentie/merktekenDriekoningenEquatoriaal-GuineaEquinoxdagEritreaEstlandEthiopiĞEthiopisch nieuwjaarAFKAPGEDRAG (verplicht İİn kiezen uit lijst):FRRFalklandeilandenFaerĥerVaderdagHeilighartvereringfebfebruariMicronesiaVeldinhoud wordt omgezet naar woorden met beginhoofdletterVeldinhoud wordt omgezet in kleine lettersVeldinhoud wordt omgezet in hoofdletterdVeldinhoud wordt na positie BREEDTE afgekaptVeldinhoud wordt niet na positie BREEDTE afgekaptVeldinhoud wordt links uitgelijnd met breedte BREEDTEVeldinhoud wordt gecentreerd met breedte BREEDTEVeldinhoud wordt gecentreerd met breedte BREEDTEHet aantal posities van het veld (%d...%d)Fiji #FinlandEerste dag van RidvĦnVlaggendagMacedoniĞvrFrankrijkFrans GuyanaFrans-PolynesiĞvrivrijdagvrijdagenVriendschapsdagVolle maanGNU Gcal-webpagina: <%s>Gabon #GambiaAlgemene hulp bij gebruik van GNU-software: <%s>GeorgiĞDag van de Duitse herenigingDuitslandDuitsland/Baden-WĵrttembergDuitsland/BeierenDuitsland/BerlijnDuitsland/BrandenburgDuitsland/BremenDuitsland/HamburgDuitsland/HessenDuitsland/NedersaksenDuitsland/Mecklenburg-Voor-PommerenDuitsland/Noordrijn-WestfalenDuitsland/Rijnland-PaltsDuitsland/SaarlandDuitsland/SaksenDuitsland/Saksen-AnhaltDuitsland/Sleeswijk-HolsteinDuitsland/ThĵringenGhanaGibraltarGoede VrijdagStille ZaterdagGrootouderdagGroot-BrittanniĞVerenigd Koninkrijk/Engeland en WalesVerenigd Koninkrijk/Noord-IerlandVerenigd Koninkrijk/SchotlandGriekenlandDag van het natuurgroenGroenlandGrenadaBosmarmottendagGuadeloupeGuamGuatemalaGuineaGuinee-Bissau #Guyana #VarkenHaŻtiHalloweenChanoeka (Feest van het licht)Dag van gezondheid en sportHeard en McDonaldeilandenHebSchortelwoensdagHondurasHongkongMensenrechtendagHongarijeIJslandImbolcOnafhankelijkheidsdagIndia #IndonesiĞ #InternOngeldige terugverwijzingOngeldige tekenklassenaamOngeldig samengesteld tekenOngeldige inhoud van \{\}Ongeldige voorafgaande reguliere expressieOngeldig bereikeindeOngeldige reguliere expressieIrakIerlandIslIslamitisch nieuwjaarIranIsraĞlItaliĞJamaicajanjanuariJapJapanJapans nieuwjaarJapans oudjaarBesnijdenis des HerenJordaniĞjuljulijunjuniKazachstanKenia #Kiribati #KoeweitKirgiziĞDag van de ArbeidLag baOmerGeboortedag van Lao TseLaos #LetlandLibanonLesothoBevrijdingsdagLiberiaLibiĞLiechtensteinLitouwenLughnasadhMaansverduisteringLuxemburgMMacauMadagascar #Post van \'%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMaleisiĞ #MaldivenMaliMaltaKonijnmrtmaartMarshalleilandenMartin Luther KingdagSint-MaartenMartiniqueMarteldood van de BĦbMartelarendagMaria BoodschapMaria ten HemelopnemingMaria LichtmisMaria Onbevlekte OntvangenisHeilige Naam van MariaMaria GeboorteMaria VisitatieWitte DonderdagMauritaniĞMauritiusmeimeiEenmeifeestMayotteOnvoldoende geheugen beschikbaarMexicomamaaMonacomaandagmaandagenmaandagen...vrijdagenmaandagen...donderdagenMongoliĞ #Maand (kies exact İİn uit de lijst):MontserratMarokkoSchoonmoederdagMoederdagMozambiqueMyanmar (Birma) #NamibiĞNationale feestdagNationale rouwdagNauruNepal #NederlandNederlandse Antillen/BonaireNederlandse Antillen/Cura§aoNederlandse Antillen/Saba en Sint-EustatiusNederlandse Antillen/Sint-MaartenNieuw-CaledoniĞNieuwe maanNieuwjaarsdagNieuw-ZeelandNicaraguaNigerNigeriaNegende dag van RidvĦnNiueGeen overeenkomstenGeen eerdere reguliere expressieNoordelijke MarianenPerzisch nieuwjaarNoorwegennovnovemberGetalwaarde wordt aangevuld met voorloopnul(len)Getalwaarde wordt gevolgd door een rangtelwoord-achtervoegselGetalwaarde wordt voorafgegaan door een tekenOPTIEoktoktoberOud-Armenisch nieuwjaarOud-Egyptisch nieuwjaarOmanOrthodox nieuwjaarPakistanPalauPalmzondagPanamaPapoea-Nieuw-GuineaParaguayOuderdagGedeeltelijkePassiezondagVredesfestivalPerzikenfestivalHybrideProcentteken ('%c')PeruPesach (joods Pasen)FilipijnenPitcairneilandenPolenPortugalGebedsdagVoortijdig einde van reguliere expressieGeboortedag van president LincolnPrinsessendagPuerto RicoPoerim (Lotenfeest)QatarRamadanReguliere expressie is te grootDag van de republiekCongo-Brazzaville #Zuid-KoreaMoldaviĞDag van de revolutieRoemeniĞRosj Hasjana (joods nieuwjaar)RuslandRwandaRİunionTEKEN (optioneel):STIJL (optioneel İİn kiezen uit lijst):ACHTERVOEGSEL (optioneel):zaSaint-Pierre en MiquelonSamhain (Keltisch nieuwjaar)SamoaSan MarinoSao Tomİ en PrincipezatzaterdagzaterdagenSaudi-ArabiĞSenegalsepseptemberSeptuagesimaServiĞ en MontenegroSexagesimaSeychellenSjavoeot (Wekenfeest)AapVastenavondSjoesjan PoerimSlangSierra LeoneSimchat Thora (Vreugde van de Wet)Singapore #SlowakijeSloveniĞZonsverduisteringSalomonseilandenZonnewendeSomaliĞZuid-AfrikaZuid-GeorgiĞ en de Zuidelijke SandwicheilandenSpatie ('%c')SpanjeLentefestivalSri Lanka #Sint-HelenaMidzomerdagSaint Kitts en NevisSaint LuciaSint NicolaasSinterklaasavondValentijnsdagSaint Vincent en de GrenadinesStandaardStart van gewone maandBegin van markeersequentie/merktekenStart van schrikkelmaandzoGeluktSoedanSoekot (Loofhuttenfeest)zonzondagzondagenSuriname #Spitsbergen en Jan MayenSwazilandZwedenZwitserlandZwitserland/AargauZwitserland/Appenzell AusserrhodenZwitserland/Appenzell InnerrhodenZwitserland/Bazel-LandZwitserland/Bazel-StadZwitserland/BernZwitserland/FribourgZwitserland/Gen¨veZwitserland/GlarusZwitserland/GraubĵndenZwitserland/JuraZwitserland/LuzernZwitserland/Neuch˘telZwitserland/NidwaldenZwitserland/ObwaldenZwitserland/SchaffhausenZwitserland/SchwyzZwitserland/SolothurnZwitserland/Sankt GallenZwitserland/ThurgauZwitserland/TicinoZwitserland/UriZwitserland/WallisZwitserland/VaudZwitserland/ZugZwitserland/ZĵrichOudejaarsavondSyriĞTaiwanTadzjikistanTanzaniadoThailand #dondonderdagdonderdagenTisja be'Aaw (Verwoesting van de Eerste en Tweede Tempel)Togo #Tokelau-eilandenTongaTotaleBackslash aan het eindTrinidad en Tobago #Probeer (niveau %02d) invoegbestand '%s' te openen... %s%s%sProbeer het%sbronnenbestand '%s' te openen... %s%s%sProbeer %s '%s' te schrijven... %s%s%sdiToe Biesjwat (Nieuwjaar van de Bomen)dindinsdagdinsdagenTunesiĞTurkijeTurkmenistanTurks- en CaicoseilandenTuvaluTwaalfde dag van RidvĦnAmerikaanse MaagdeneilandenV.S.OegandaOekraŻneLiggend streepje ('%c')Verenigde Arabische EmiratenVerenigde StatenVerenigde Staten/AlabamaVerenigde Staten/AlaskaVerenigde Staten/ArizonaVerenigde Staten/ArkansasVerenigde Staten/CaliforniĞVerenigde Staten/ColoradoVerenigde Staten/ConnecticutVerenigde Staten/DelawareVerenigde Staten/District of ColumbiaVerenigde Staten/FloridaVerenigde Staten/GeorgiaVerenigde Staten/HawaŻVerenigde Staten/IdahoVerenigde Staten/IllinoisVerenigde Staten/IndianaVerenigde Staten/IowaVerenigde Staten/KansasVerenigde Staten/KentuckyVerenigde Staten/LouisianaVerenigde Staten/MaineVerenigde Staten/MarylandVerenigde Staten/MassachusettsVerenigde Staten/MichiganVerenigde Staten/MinnesotaVerenigde Staten/MississippiVerenigde Staten/MissouriVerenigde Staten/MontanaVerenigde Staten/NebraskaVerenigde Staten/NevadaVerenigde Staten/New HampshireVerenigde Staten/New JerseyVerenigde Staten/New MexicoVerenigde Staten/New YorkVerenigde Staten/North CarolinaVerenigde Staten/North DakotaVerenigde Staten/OhioVerenigde Staten/OklahomaVerenigde Staten/OregonVerenigde Staten/PennsylvaniaVerenigde Staten/Rhode IslandVerenigde Staten/South CarolinaVerenigde Staten/South DakotaVerenigde Staten/TennesseeVerenigde Staten/TexasVerenigde Staten/UtahVerenigde Staten/VermontVerenigde Staten/VirginiaVerenigde Staten/WashingtonVerenigde Staten/West VirginiaVerenigde Staten/WisconsinVerenigde Staten/WyomingOnbekende systeemfoutOngepaarde ( of \(Ongepaarde ) of \)Ongepaarde \{UruguayOezbekistanVanuatuVenezuelaVeteranendagVietnamWBREEDTE (verplicht):Wallis en FutunaLaatste kwartierEerste kwartierwowoewoensdagwoensdagenWeekWeek %sSchaapWestelijke SaharaTweede pinksterdagPinksterenVrouwendagDierendagPaardHondJJemenTijgerJom Ha-atsmaoet (onafhankelijkheidsdag van IsraĞl)Jom Hasjoa (herdenking holocaust)Jom Ha-zikaron (herdenking oorlogsslachtoffers)Jom Kipoer (Grote Verzoendag)JeruzalemdagHaanNUL (optioneel):ZambiaRatZimbabwe[UITLIJNING [TEKEN] [NUL] BREEDTE [STIJL] [ACHTERVOEGSEL] AFKAPGEDRAG]_open_osfhandle() is misluktkan geen pijp aanmakenkan bestandsdescriptor %d niet herstellen: dup2() is misluktcommandoregeleen formatinstructie bevatten met de syntax:standaardomgevingsvariabeleomgevingsvariabele '%s' niet gevondenomgevingsvariabele '%s' niet ingesteldmisluktvakantiedageninternongeldige dagongeldige maandwettelijke vakantiedagenonvoldoende geheugen beschikbaardedeantwoordbestandshell-scriptstegeluktegcal-4.1/po/ru.gmo0000664000000000000000000011657613041164032010737 00000000000000Ŝ•` ߘ ™"ĤÉCÚAE`BĤ+éLKbKMú@H =‰ 1Ç Aù C;!A!IÁ!H "HT"?"*Ŭ"$#+-#+Y#?…#4Ċ#Eú#D@$D…$1Ê$@ü$2=%9p%0Ş%*Û%<&MC&7‘&NÉ&?'BX'N›'.ê'B((\(-…(;³(-ï(C)#a)…)J£)?î)H.*Jw*5Â*6ĝ*J/+.z+3İ+5Ŭ+A,?U,5•,,Ë,Jĝ,EC-3‰-/½-7í-7%.E]. £.(Ä.Eí..3/Jb/=­/-ë/60CP07”0=Ì08 1/C1?s1@³1Fô1&;2Hb2.Ğ2,Ú2@3*H3Es3Eı3C˙37C4I{4IĊ45;+56g5;ž5Ú5ì5ü56,6C6 X6 e6 r6 }6 ‰6–6BŸ6â6Bç6*7:7(J7s7x77$†7Ğ7#Ċ7'é7+8+=8i8}8–8)Ğ8Ġ8$ò8%9(=9&f99"Ş9#Í9 ñ9!:"4: W:e:u:…: ™: ¤: Ż: ş:Ċ:Ô:Ĝ:ç:÷:; ; ; ; );7;;;B;U;];0`;‘;¨;·;ğ; Ò; à; î;9û;5<U<n<}< …<‘<<Ċ<É< Ò< Ŝ< ì< ú<=. =:= O=\=t=x==Š=ž=Ħ=´=¸=ż=Ç=Ĝ= à=î= >1>AA>ƒ>”>˜>Ħ>>­>ħ>ĥ>ş> ż>'Ê>ò>? ?4#?.X?‡?‹?‘? Ĥ?ħ?É?Ŝ?î?ò?ú?ŭ?@@@"@16@ h@u@†@•@™@˘@İ@­@Eµ@ û@A A(A ?AMA ]AjAyA|A€A ‰A“A —A0ĦAÒAĠAÙAàA èAöAùA B:"B=]BD›BCàB$C(C 1C5;C)qC›CşC½CÁCÉCÒCÙCKìC78D.pD(ŸD ÈD ÖD DïDòD öD E EE E $E0EEECVEAšE*ÜE/F7F%NF.tF£F ĥFFËFàF.çFG*G43G8hG+ĦG ÍG1ÙG H3H%MHNsHFÂH IHI>aI I ¸I ĈI ÓIàIüIJ JJ6J FJ QJ _JL3LJL=cLLĦLOîLK>M,ŠMŸ·MŸWN›÷NĴ“OU@PJ–PHáPh*Q^“QXòQ˘KR˘îRž‘Sp0T1ĦT+ÓT3˙T33UNgUMĥU{Vm€VjîVVYWu°Wb&Xu‰XU˙X8UYaŽYtY\eZ~ÂZ]A[ŞŸ[fJ\Lħ\zŝ\Oy]NÉ]t^H^yÖ^4P_8…_˘_Da`hĤ`laf|aOaƒ3bh·b| cŒco*dqšdJ e7Wee…f9•f`Ïfs0g}¤g"hF°hK÷h|Ci_Ài£ j|ÄjSAkC•k£ÙkN}ljÌl…7mm½m›+nœÇnldoLÑo†pVpWüpSTq@¨qéq]krgÉrc1sm•smt6qtt¨tvur”uvv//v/_v.v'vĉv÷vww,w=w{Lw Èw{Òw&Nx&ux=œxÚx Üx çx8òx-+y3YyTySâyN6z…z#z6ÉzU{,V{Rƒ{SÖ{E*|;p|(Ĵ|)Ġ|.˙|'.},V}2ƒ}3ĥ}'ê}'~+:~!f~!ˆ~!Ş~'Ì~"ô~8Wp w„) Êè ï ü€,€^1€"€³€ǀ%à€7pO1À)ò‚ 8‚E‚+_‚6‹‚‚ɂĜ‚+ò‚+ƒJƒbƒQiƒ.ğƒêƒ*ŝƒ)„0„?„0S„„„0‰„ş„Á„„0߄…!…&>…e…_v…Ö…#f†І‘†Ĥ† ­†ş†Á†ʆцچUî†!D‡-f‡”‡m݇4ˆLˆSˆ&\ˆƒˆ,ˆ)ʈôˆ‰‰-‰2‰9‰P‰)i‰+“‰fż‰&Š)>ŠhŠzŠ ŠŽŠ—ŠžŠ”­Š%B‹h‹o‹A‡‹ɋċ‹Œ!Œ=ŒBŒIŒXŒgŒnŒSŒӌĜŒߌöŒ '&,*Sp~†ï|vŽ•óŽ‰Ÿg°O1hšŸĤµĈ,͐[ú]V‘P´‘X’^’z’”’Ş’Ż’ ĥ’ Á’ ْ̒é’"ŭ’ “,8“e“lċ“NR”SĦ”0ġ”P&•nw•2ĉ•–9–Q–q–c„–è–—\—ex—LŜ—+˜PE˜–˜T²˜C™²K™Œŝ™)‹š}µš3›)ћû› œB4œ1wœİœ¸œ/œ6#7[kb´½ YH”>Eú;Ë7.U(XŠ!ÁgĜTÑòhFNÍŞ—"×4ó alşêwÙeQZ÷˙ŜXIsQr9ż%Ò1ċ•Ûâ\&c#ݲ4ZˆĤ'ğR`?áDj§k6vF9éʆPàÌÚ3]@ D !,M=i-[6ı%V+:É*3><Ĵ[ß2ñëÎ)Ż·ŽpĝÀdĦĵ8Cù|_ÓMBĠ/5…°îKG<- SOLG‘Níy^0]öԉJ^šÜ&Ċ–’ĥƒz7è›û/ï‹I¸mx@W,™ÏŬÄ$Âf+~Což£(L_ŝħ¤Ÿ ˘tœ€VĞŭUŒ)OçġKnRB1µEä =³Ĉ2 `Y\‡8$*üT'“‚¨; „:#ÖAAH˜"uìĉ­.ôÇP {J }Sq 05WÈ ? %s: abort, %s: program aborted by signal %d `%s' line %ld: %-3s = %d...%d Length of a single axis %-3s = %d...%d Total number of lines %-3s = february Respect at `28-FEBRUARY' %-3s = march Respect at `01-MARCH' = %s Backwards = %s List yesterday until starting day of month = %s List yesterday until starting day of week = %s List yesterday until starting day of year N = 0 1st week / last week of previous year N = 1...52 1st...52nd week (always) N = 53 53rd week (sometimes) N = 99 Last week = Manage `29-FEBRUARY' in non-leap years = Set width of the biorhythm text graphics or: month name | %s | %s%s | %s%s | %s%s [MOD] = %s List tomorrow until ending day of month [MOD] = %s List tomorrow until ending day of week [MOD] = %s List tomorrow until ending day of year %s%cwN[%s], month name[%s], weekday name[N] or %s MOD = %s Forwards %c = Exclusion of all %s List: %s[%s%s]%s...%s%s[%s%s] List: [%s%s]%s%s...%s[%s%s]%s Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s expressions separated by `%s' characters # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday # %c%c[[%s|%s]N] = Single day N relative to today's date # %c?[[%s|%s]N] = Single day N relative to date variable # %cdN = Single absolute day N # A = Display using alternative list format # E = Include legal days only # NMOD = Single day N relative to today # Nd = Single absolute day N # Nw = Complete week N # U = Suppress date part of fixed dates # Z = Display dates, for which fixed dates doesn't exist # a = Display origin of fixed date # d = Include actual date if list of periods is generated # e = Include legal days and memorial days # g[MOD] = Group fixed dates by day using text MOD # l = Generate list of periods instead of a single period # m|M[MOD] = List complete month # o = Omit repeating date part of fixed dates # t|T = List tomorrow # w|W[MOD] = List complete week # x = Exclude title of fixed date list # y|Y[MOD] = List complete year # z = Display consecutive number of fixed date 1. Representation of text 2. Respected period = abort Like `all' and abort if file name can't be handled = all Like `handled' and `unhandled' together = handled Like `internal' and file names which are handled = unhandled Like `internal' and file names which are unhandled Actual respected period: %02d-%02d %s %0*d Create response file for the `%cFILE' option Create shell script which contains the arguments of command line Define additional resource file line Direct output through external `%s' pager Direct output through simple internal pager Disable highlighting of text, holiday resp., actual day Display eternal holiday list (Year in range: %d...%d) Display extended help text and quit program Display help text and quit program Display only those fixed dates, whose date is not excluded by %s Display only those fixed dates, whose text is matched by %s Display software license and quit program Exclude title of eternal holiday list Export local date variables from file to file Export local text variables from file to file Forces highlighting sequences if output is redirected/piped Implies period: Today Modify format of year calendar Provide eternal holiday list with country specific holidays Send output via `%s' program to user Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday) Set order of date elements using the %s format text Set period of Gregorian Reformation Suppress output of calendar sheet explicitly Use alternative file(s) instead of standard resource file Use consecutive day of year in calendar sheet Use consecutive day of year in eternal holiday list Use consecutive day of year in fixed date list Use special format for calendar sheet Use standard resource file `%s%s' for fixed date list Use standard resource file `.%s%s' for fixed date list %-3s = Single file or list of files connected by `%s' characters [MOD] = %s Descending sort order [MOD] = One or more of the following modifiers which are marked by # %-*d%*s = Set period to: %02d-%02d %s %0*d %-3s = Any possible resource file line %-3s = Any text respectively "regular expression" you like %-3s = File name of the shell script %-3s = Highlighting sequence pairs separated by `%s' characters %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]' %-3s = One or more of the following characters. If character %-3s = Store arguments of command line in file %s C = Display those dates, for which fixed dates doesn't exist, too F = Display those dates, for which fixed dates doesn't exist, too N = Legal days only [MOD] = b Use both date notations (day of month+year) [MOD] = - Use standard format for calendar sheet [MOD] = b Use both date notations (day of month+year) (%.4s for Alpha) (%.4s for VAX) (BSD/386 1.1 or later) (FreeBSD 2.0 or later) (NetBSD 1.2 or later) (NetBSD before 0.9) 1.0 or 1.5? 4.0 or 4.02 ; Week %s = %+4d day = %+4d days `HERE' c = Display only those dates, for which fixed dates exists day f = Display only those dates, for which fixed dates exists later than 4.5 later than 5.0 n = Legal days and memorial days on %cDATE%cFILE%s = Month in range: %d...%d%s in search pattern `%s'%s%*s = Year in range: %d...%d%s%s contains %d maximum entries now!%s%s: Use `%s %s' with one of these arguments%s: error during program execution of `%s' %s: file not found %s: invalid option -- %s%s: no regular file %s: option `%s' doesn't allow an argument%s: option `%s' is ambiguous%s: option `%s' requires an argument%s: option requires an argument -- %s%s: option with ambiguous argument -- %s%s: option with invalid argument -- %s%s: unrecognized option `%s'%s:%*sThe year %0*d is A leap year%s:%*sThe year %0*d is NO leap year%s:%*sThe year %d is A leap year%s:%*sThe year %d is NO leap year(`%s') date format `%s' is invalid(bad version)++ 1.0 or later++ 3.0 or later+++ FIXED DATES +++1st Advent2nd Advent3rd Advent4th Advent5.1 or earlierARGAll Fool's DayAll Saints' DayAll Souls' DayAprAprilArmistice DayAsh MondayAsh WednesdayAugAugustBurning of Jan HusCOMMANDCWCannot execute command in file `%s' Line: %ld %sCharacter replacement:Children's DayChrChrist's Ascension DayChristmas DayChristmas EveColumbus DayCommand executed (exit code=%d) in file `%s' Line %ld: %sCompiled with %s%s for %s%s%s%sConstitution AnniversaryCoronation DayCreatedCulture DayDay of Prayer and RepentanceDay of Students RevoltDecDecemberDynasty DayEaster MondayEaster SundayElection DayEmoEnd of highlighting sequence/marking characterEternal holiday listFather's DayFeast of Corpus ChristiFebFebruaryFlag DayFlemish Culture DayFrFrench Culture DayFriFridayFridaysGerman Unity DayGermanyGreat BritainGustavus Adolphus' DayHalloweenHighlighting group (all members must be defined):If you use this software, you agree without any exception to thisIndependence DayIntInternalJanJanuaryJulJulyJunJuneLabour DayLeap-day set to `%02d-%s' in file `%s'.Liberation DayLine %ld ignored: %sLine %ld: %sMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.Mail from \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMarMarchMartin L. King's DayMartinimasMary's Annunciation DayMary's Ascension DayMaundy ThursdayMayMay DayMoMonMondayMondaysMondays...FridaysMondays...ThursdaysMonth group (exactly one member must be defined):Mother's DayNational HolidayNew Year's DayNovNovemberOPTIONOctOctoberOn principle I will not be liable for ANY damages or losses (implicitPalm SundayPhyPrayer DayPreload options and commands from `FILE'Princess' DayReformation DayRepublic DayRevolution DaySaSatSaturdaySaturdaysSepSeptemberStart of highlighting sequence/marking characterSuSunSundaySundaysTeacher's DayThThe King's BirthdayThe Queen's BirthdayThere is NO warranty, without even the implied warranty ofThis is free software; see the source for copying conditions.This program is free software; you can redistribute it and/or modifyThis software doesn't claim completeness, correctness or usability.ThuThursdayThursdaysTry to open (level: %02d) include file `%s'... %s%s%sTry to open%sresource file `%s'... %s%s%sTry to write %s `%s'... %s%s%sTuTueTuesdayTuesdaysU.S.A.United Nations DayUsage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]Use given `DATE' instead of today's dateVeteran's DayVictoria DayVictory DayWeWedWednesdayWednesdaysWeekWeek %sWhit MondayWhitsun EveWhitsunday/PentecostWorld Animal DayYou should have received a copy of the `GNU General Public License'`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'`%s' line %ld: (`%s') unmanaged error (%d)`%s' line %ld: virtual memory exhausted (%s=%d)`Eternal holiday list'agreement, which binds you LEGALLY !!along with this program; if not, write to the:any later version.command linedefaultenvironment variablefailedfile `%s' can't be written Storage media full!file `%s' not foundholidaysillegal character in response file `%s' Line %ld: %sinvalid N'th weekday field(%d) in file `%s' Line %ld: %sinvalid date part in file `%s' Line %ld: %sinvalid dayinvalid day field(%02d) in file `%s' Line %ld: %sinvalid monthinvalid month field(%02d) in file `%s' Line %ld: %sinvalid search pattern `%s' specifiedinvalid year for computing Easter Sundays date Year must be in range (%d...%d)it under the terms of the `GNU General Public License' as published bylegal holidaysmissing `whitespace' character after date part in file `%s' Line %ld: %sor explicit), which result from using or handling my software.read error in file `%s'response fileself-definedshell scriptshift value `%s' is invalidsuccessunknown unknown compilerunknown compiler (SDK?)unknown versionversion %dversion %d.%dProject-Id-Version: gcal 2.40 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 1999-03-17 03:04+03:00 Last-Translator: Oleg S. Tihonov Language-Team: Russian Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. %s: ст°½², %s: ст°½²ğµ½° ż с¸³½°ğу %d `%s' стрş° %ld: %-3s = %d...%d ”𸽰 с¸ %-3s = %d...%d žħщµµ ч¸Ñğ стрş %-3s = february Ħч¸Ñ‚°Ñ‚ÑŒ `28 фµ²Ñ€°ğя' %-3s = march Ħч¸Ñ‚°Ñ‚ÑŒ `01 ĵ°Ñ€Ñ‚°' = %s °·°´ = %s ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ²Ñ‡µÑ€°Ñˆ½¸ı ´µ½ÑŒ, µÑğ¸ ½µ ½°Ñ‡°ğ ĵµÑÑÑ†° = %s ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ²Ñ‡µÑ€°Ñˆ½¸ı ´µ½ÑŒ, µÑğ¸ ½µ ½°Ñ‡°ğ ½µ´µğ¸ = %s ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ²Ñ‡µÑ€°Ñˆ½¸ı ´µ½ÑŒ, µÑğ¸ ½µ ½°Ñ‡°ğ ³´°  = 0 żµÑ€²°Ñ ½µ´µğя / żÑğµ´½ÑÑ ½µ´µğя żÑ€µ´Ñ‹´ÑƒÑ‰µ³ ³´°  = 1...52 1-°Ñ...52-°Ñ ½µ´µğя (²Ñµ³´°)  = 53 53-я ½µ´µğя (¸½³´°)  = 99 ŸÑğµ´½ÑÑ ½µ´µğя = žħр°ħтş° `29 фµ²Ñ€°ğя' ² ½µ²¸ÑşÑ½Ñ‹Ñ… ³´°Ñ… = £ÑÑ‚°½²¸Ñ‚ÑŒ ш¸Ñ€¸½Ñƒ ³Ñ€°Ñ„¸ş° ħ¸Ñ€¸Ñ‚ĵ² ¸ğ¸: ½°·²°½¸µ ĵµÑÑÑ†° | %s | %s%s | %s%s | %s%s [œž”] = %s ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ·°²Ñ‚Ñ€°Ñˆ½¸ı ´µ½ÑŒ, µÑğ¸ ½µ ş½µÑ† ĵµÑÑÑ†° [œž”] = %s ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ·°²Ñ‚Ñ€°Ñˆ½¸ı ´µ½ÑŒ, µÑğ¸ ½µ ş½µÑ† ½µ´µğ¸ [œž”] = %s ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ·°²Ñ‚Ñ€°Ñˆ½¸ı ´µ½ÑŒ, µÑğ¸ ½µ ş½µÑ† ³´° %s%cw[%s], ½°·²°½¸µ ĵµÑÑÑ†°[%s], ½°·²°½¸µ ´½Ñ ½µ´µğ¸[] ¸ğ¸ %s œž” = %s ’żµÑ€µ´ %c = ˜Ñşğюч°Ñ ²Ñµ %s Ħż¸Ñş: %s[%s%s]%s...%s%s[%s%s] Ħż¸Ñş: [%s%s]%s%s...%s[%s%s]%s ŸÑ€ĵµĥутş: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s ²Ñ‹Ñ€°ĥµ½¸Ñ р°·´µğяются с¸ĵ²ğ°ĵ¸ `%s' # %c%c[[%s|%s]] = ž´¸½ ´µ½ÑŒ  т½Ñ¸Ñ‚µğь½ Ÿ°ÑÑ…°ğь½³ ²ÑşÑ€µÑµ½ÑŒÑ # %c%c[[%s|%s]] = ž´¸½ ´µ½ÑŒ  т½Ñ¸Ñ‚µğь½ сµ³´½ÑÑˆ½µı ´°Ñ‚Ñ‹ # %c?[[%s|%s]] = ž´¸½ ´µ½ÑŒ  т½Ñ¸Ñ‚µğь½ żµÑ€µĵµ½½ı ´°Ñ‚Ñ‹ # %cd = •´¸½ÑÑ‚²µ½½Ñ‹ı °ħсğют½Ñ‹ı ´µ½ÑŒ  # A = ’Ñ‹²´¸Ñ‚ÑŒ ¸Ñżğь·ÑƒÑ °ğьтµÑ€½°Ñ‚¸²½Ñ‹ı фрĵ°Ñ‚ сż¸Ñş° # E = ’şğюч¸Ñ‚ÑŒ тğьş ф¸Ñ†¸°ğь½Ñ‹µ żÑ€°·´½¸ş¸ # œž” = •´¸½ÑÑ‚²µ½½Ñ‹ı ´µ½ÑŒ  т½Ñ¸Ñ‚µğь½ сµ³´½ÑÑˆ½µ³ # d = •´¸½ÑÑ‚²µ½½Ñ‹ı °ħсğют½Ñ‹ı ´µ½ÑŒ  # w = Ÿğ½°Ñ ½µ´µğя  # U = ŸÑ€żÑƒÑş°Ñ‚ÑŒ ´°Ñ‚у ² ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚°Ñ… # Z = Ÿş°·°Ñ‚ÑŒ ´°Ñ‚Ñ‹, ´ğя şÑ‚рых ½µÑ‚ ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚ # a = Ÿş°·°Ñ‚ÑŒ ½°Ñ‡°ğ ф¸şÑ¸Ñ€²°½½ı ´°Ñ‚Ñ‹ # d = ’şğюч¸Ñ‚ÑŒ тµşÑƒÑ‰ÑƒÑŽ ´°Ñ‚у, µÑğ¸ с·´°µÑ‚ся сż¸Ñş żµÑ€¸´² # e = ’şğюч¸Ñ‚ÑŒ ф¸Ñ†¸°ğь½Ñ‹µ ¸ ż°ĵ°Ñ‚½Ñ‹µ ´½¸ # g[œž”] = “руżż¸Ñ€²°Ñ‚ÑŒ ф¸şÑ¸Ñ€²°½½Ñ‹µ ´°Ñ‚Ñ‹ ż ´½Ñĵ, ¸Ñżğь·ÑƒÑ тµşÑÑ‚ œž” # l = Ħ·´°Ñ‚ÑŒ сż¸Ñş żµÑ€¸´², ° ½µ ´¸½ żµÑ€¸´ # m|M[œž”] = ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ żğ½Ñ‹ı ĵµÑÑÑ† # o = žżÑƒÑş°Ñ‚ÑŒ ż²Ñ‚ряющуюся ч°ÑÑ‚ÑŒ ² ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚°Ñ… # t|T = ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ·°²Ñ‚Ñ€°Ñˆ½¸ı ´µ½ÑŒ # w|W[œž”] = ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ żğ½ÑƒÑŽ ½µ´µğю # x = ˜Ñşğюч¸Ñ‚ÑŒ ·°³ğ²ş ¸· сż¸Ñş° ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚ # y|Y[œž”] = ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ żğ½Ñ‹ı ³´ # z = Ÿş°·°Ñ‚ÑŒ żÑğµ´²°Ñ‚µğь½µ ч¸Ñğ ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚ 1. ŸÑ€µ´ÑÑ‚°²ğµ½¸µ тµşÑÑ‚° 2. ’сżÑ€¸½¸ĵ°µĵыµ żµÑ€¸´Ñ‹ = abort š°ş `all' ¸ ст°½²¸Ñ‚ься, µÑğ¸ ¸ĵя ф°ığ° ½µ ĵĥµÑ‚ ħыть ħр°ħт°½ = all š°ş `handled' ¸ `unhandled' ²ĵµÑÑ‚µ = handled š°ş żÑ€¸ `internal' ¸ ¸ĵµ½° ħр°ħ°Ñ‚Ñ‹²°µĵых ф°ığ² = unhandled š°ş żÑ€¸ `internal' ¸ ¸ĵµ½° ½µħр°ħ°Ñ‚Ñ‹²°µĵых ф°ığ² ”µıст²¸Ñ‚µğь½Ñ‹ı р°ÑÑĵ°Ñ‚Ñ€¸²°µĵыı żµÑ€¸´: %02d-%02d %s %0*d Ħ·´°Ñ‚ÑŒ ф°ığ тşğ¸ş° ´ğя şğюч° `%c¤™›' Ħ·´°Ñ‚ÑŒ сцµ½°Ñ€¸ı ħğчş¸, с´µÑ€ĥ°Ñ‰¸ı °Ñ€³Ñƒĵµ½Ñ‚Ñ‹ şĵ°½´½ı стрş¸ žżÑ€µ´µğ¸Ñ‚ÑŒ ´żğ½¸Ñ‚µğь½ÑƒÑŽ стрşÑƒ рµÑÑƒÑ€Ñ½³ ф°ı𰠝°żÑ€°²¸Ñ‚ÑŒ ²Ñ‹²´ ²½µÑˆ½µı żÑ€³Ñ€°ĵĵµ żÑÑ‚Ñ€°½¸Ñ‡½³ żÑ€Ñĵтр° `%s' °żÑ€°²¸Ñ‚ÑŒ ²Ñ‹²´ żÑ€ÑÑ‚ı ²½ÑƒÑ‚Ñ€µ½½µı żÑ€³Ñ€°ĵĵµ żÑÑ‚Ñ€°½¸Ñ‡½³ żÑ€Ñĵтр° žÑ‚ĵµ½¸Ñ‚ÑŒ ²Ñ‹´µğµ½¸Ñ тµşÑÑ‚°, żÑ€°·´½¸ş² ¸ğ¸ тµşÑƒÑ‰µ³ ´½Ñ ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² (’ żÑ€ĵµĥутşµ ğµÑ‚: %d...%d) Ÿş°·°Ñ‚ÑŒ ż´Ñ€ħ½ÑƒÑŽ сżÑ€°²şÑƒ ¸ ²Ñ‹ıт¸ Ÿş°·°Ñ‚ÑŒ сżÑ€°²şÑƒ ¸ ²Ñ‹ıт¸ Ÿş°·Ñ‹²°Ñ‚ÑŒ тğьş тµ ф¸şÑ¸Ñ€²°½½Ñ‹µ ´°Ñ‚Ñ‹, şÑ‚рыµ ½µ ¸Ñşğючµ½Ñ‹ %s Ÿş°·Ñ‹²°Ñ‚ÑŒ тğьş тµ ф¸şÑ¸Ñ€²°½½Ñ‹µ ´°Ñ‚Ñ‹, чµı тµşÑÑ‚ ст²µÑ‚ст²ÑƒµÑ‚ %s Ÿş°·°Ñ‚ÑŒ ğ¸Ñ†µ½·¸ÑŽ ¸ ²Ñ‹ıт¸ ˜Ñşğюч¸Ñ‚ÑŒ ·°³ğ²ş ²µÑ‡½³ сż¸Ñş° żÑ€°·´½¸ş² ­şÑżÑ€Ñ‚¸Ñ€²°Ñ‚ÑŒ ğş°ğь½Ñ‹µ żµÑ€µĵµ½½Ñ‹µ ´°Ñ‚Ñ‹ ¸· ф°ığ° ² ф°ığ ­şÑżÑ€Ñ‚¸Ñ€²°Ñ‚ÑŒ ğş°ğь½Ñ‹µ тµşÑÑ‚²Ñ‹µ żµÑ€µĵµ½½Ñ‹µ ¸· ф°ığ° ² ф°ı𠟵ч°Ñ‚°Ñ‚ÑŒ ²Ñ‹´µğяющ¸µ żÑğµ´²°Ñ‚µğь½ÑÑ‚¸, ´°ĥµ µÑğ¸ ²Ñ‹²´ żµÑ€µ½°żÑ€°²ğµ½ Ÿ´Ñ€°·Ñƒĵµ²°µÑ‚ся żµÑ€¸´: Ħµ³´½Ñ ˜·ĵµ½¸Ñ‚ÑŒ фрĵ°Ñ‚ ³´²³ ş°ğµ½´°Ñ€Ñ ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² с ½°Ñ†¸½°ğь½Ñ‹ĵ¸ żÑ€°·´½¸ş°ĵ¸ ŸÑğ°Ñ‚ÑŒ żğь·²°Ñ‚µğю ²Ñ‹²´ чµÑ€µ· żÑ€³Ñ€°ĵĵу `%s' £ÑÑ‚°½²¸Ñ‚ÑŒ ż°Ñ€Ñ‹ ²Ñ‹´µğяющ¸Ñ… żÑğµ´²°Ñ‚µğь½ÑÑ‚µı 1 (=тµşÑƒÑ‰¸ı ´µ½ÑŒ) ¸ 2 (=żÑ€°·´½¸ş) £ÑÑ‚°½²¸Ñ‚ÑŒ żÑ€Ñ´ş эğµĵµ½Ñ‚² ´°Ñ‚Ñ‹, ¸Ñżğь·ÑƒÑ стрşÑƒ фрĵ°Ñ‚° %s —°´°µÑ‚ żµÑ€¸´ “Ñ€¸³Ñ€¸°½Ñşı рµÑ„Ñ€ĵ°Ñ†¸¸ ݲ½ ż´°²¸Ñ‚ÑŒ żµÑ‡°Ñ‚ÑŒ ş°ğµ½´°Ñ€Ñ ˜Ñżğь·²°Ñ‚ÑŒ °ğьтµÑ€½°Ñ‚¸²½Ñ‹ı ф°ığ (ф°ığы) ²ĵµÑÑ‚ ст°½´°Ñ€Ñ‚½Ñ‹Ñ… рµÑÑƒÑ€Ñ½Ñ‹Ñ… ф°ığ² ’Ñ‹²´¸Ñ‚ÑŒ ² ş°ğµ½´°Ñ€µ ½ĵµÑ€ ´½Ñ ² ³´Ñƒ ’Ñ‹²´¸Ñ‚ÑŒ ² ²µÑ‡½ĵ сż¸Ñşµ żÑ€°·´½¸ş² ½ĵµÑ€ ´½Ñ ² ³´Ñƒ ˜Ñżğь·²°Ñ‚ÑŒ żÑğµ´²°Ñ‚µğь½Ñ‹µ ´½¸ ³´° ² сż¸Ñşµ ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚ ˜Ñżğь·²°Ñ‚ÑŒ сżµÑ†¸°ğь½Ñ‹ı фрĵ°Ñ‚ ´ğя ²Ñ‹²´° ş°ğµ½´°Ñ€Ñ ˜Ñżğь·²°Ñ‚ÑŒ ст°½´°Ñ€Ñ‚½Ñ‹ı ф°ığ рµÑÑƒÑ€Ñ² `%s%s' ´ğя сż¸Ñş° ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚ ˜Ñżğь·²°Ñ‚ÑŒ ст°½´°Ñ€Ñ‚½Ñ‹ı ф°ığ рµÑÑƒÑ€Ñ² `.%s%s' ´ğя сż¸Ñş° ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚ %-3s = ž´¸½ ¸ğ¸ ½µÑşğьş ф°ığ², р°·´µğµ½½Ñ‹Ñ… с¸ĵ²ğ°ĵ¸ `%s' [œž”] = %s ¸ÑÑ…´ÑÑ‰¸ı żÑ€Ñ´ş срт¸Ñ€²ş¸ [œž”] = ž´¸½ ¸ğ¸ ½µÑşğьş сğµ´ÑƒÑŽÑ‰¸Ñ… ĵ´¸Ñ„¸ş°Ñ‚Ñ€², żĵµÑ‡µ½Ñ‹Ñ… с¸ĵ²ğĵ # %-*d%*s = £ÑÑ‚°½²¸Ñ‚ÑŒ żµÑ€¸´ ² ·½°Ñ‡µ½¸µ: %02d-%02d %s %0*d %-3s = ›ÑŽħ°Ñ ²·ĵĥ½°Ñ стрş° рµÑÑƒÑ€Ñ½³ ф°ığ° %-3s = ›ÑŽħı тµşÑÑ‚ ¸ğ¸ "рµ³Ñƒğяр½µ ²Ñ‹Ñ€°ĥµ½¸µ" %-3s = ˜ĵя ф°ığ° сцµ½°Ñ€¸Ñ ħğчş¸ %-3s = Ÿ°Ñ€Ñ‹ ²Ñ‹´µğяющ¸Ñ… żÑğµ´²°Ñ‚µğь½ÑÑ‚µı, р°·´µğµ½½Ñ‹µ с¸ĵ²ğ°ĵ¸ `%s' %-3s = Ħż¸Ñş `%c[”˘][%c[”˘]]' ¸/¸ğ¸ `%c[”˘][%c[”˘]]' %-3s = ž´¸½ ¸ğ¸ ħğµµ żÑğµ´ÑƒÑŽÑ‰¸Ñ… с¸ĵ²ğ². •сğ¸ с¸ĵ²ğ %-3s = Ħхр°½¸Ñ‚ÑŒ °Ñ€³Ñƒĵµ½Ñ‚Ñ‹ şĵ°½´½ı стрş¸ ² ф°ığµ %s C = Ÿş°·°Ñ‚ÑŒ ¸ тµ ´°Ñ‚Ñ‹, ´ğя şÑ‚рых ½µÑ‚ ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚ F = Ÿş°·°Ñ‚ÑŒ ¸ тµ ´°Ñ‚Ñ‹, ´ğя şÑ‚рых ½µÑ‚ ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚ N = ˘ğьş ф¸Ñ†¸°ğь½Ñ‹µ ´½¸ [œž”] = b ˜Ñżğь·²°Ñ‚ÑŒ ħµ фрĵы ·°ż¸Ñ¸ ´°Ñ‚Ñ‹ (´µ½ÑŒ ĵµÑÑÑ†°+³´°) [œž”] = - ˜Ñżğь·²°Ñ‚ÑŒ ст°½´°Ñ€Ñ‚½Ñ‹ı фрĵ°Ñ‚ ´ğя ²Ñ‹²´° ş°ğµ½´°Ñ€Ñ [œž”] = b ˜Ñżğь·²°Ñ‚ÑŒ ħµ фрĵы ·°ż¸Ñ¸ ´½Ñ (´µ½ÑŒ ĵµÑÑÑ†°+³´°) (%.4s ´ğя Alpha) (%.4s ´ğя VAX) (BSD/386 1.1 ¸ğ¸ ħğµµ ż·´½ÑÑ) (FreeBSD 2.0 ¸ğ¸ ħğµµ ż·´½ÑÑ) (NetBSD 1.2 ¸ğ¸ ħğµµ ż·´½ÑÑ) (NetBSD р°½ÑŒÑˆµ ²µÑ€Ñ¸¸ 0.9) 1.0 ¸ğ¸ 1.5? 4.0 ¸ğ¸ 4.02 ; µ´µğя %s = %+4d ´µ½ÑŒ = %+4d ´½µı `—”•ĦĴ' c = Ÿş°·°Ñ‚ÑŒ тğьş тµ ´°Ñ‚Ñ‹, ´ğя şÑ‚рых µÑÑ‚ÑŒ ф¸şÑ¸Ñ€²°½½Ñ‹µ ´°Ñ‚Ñ‹ ´µ½ÑŒ f = Ÿş°·°Ñ‚ÑŒ тğьş тµ ´°Ñ‚Ñ‹, ´ğя şÑ‚рых µÑÑ‚ÑŒ ф¸şÑ¸Ñ€²°½½Ñ‹µ ´°Ñ‚Ñ‹ ħğµµ ż·´½¸ĵ, чµĵ 4.5 ħğµµ ż·´½ÑÑ, чµĵ 5.0 n = žÑ„¸Ñ†¸°ğь½Ñ‹µ ¸ ż°ĵ°Ñ‚½Ñ‹µ ´½¸ %c”˘%c¤™›%s = œµÑÑÑ† ² żÑ€ĵµĥутşµ: %d...%d%s ² ħр°·Ñ†µ ´ğя ż¸Ñş° `%s'%s%*s = “´ ² żÑ€ĵµĥутşµ: %d...%d%s%s с´µÑ€ĥ¸Ñ‚ ĵ°şÑ¸ĵ°ğь½µ ч¸Ñğ (%d) ²Ñ…ĥ´µ½¸ı!%s%s: ˜Ñżğь·Ñƒıтµ `%s %s' с ´½¸ĵ ¸· эт¸Ñ… °Ñ€³Ñƒĵµ½Ñ‚²%s: ш¸ħş° ² ²Ñ€µĵя ²Ñ‹żğ½µ½¸Ñ żÑ€³Ñ€°ĵĵы `%s' %s: ф°ığ ½µ ½°ı´µ½ %s: ½µ²µÑ€½Ñ‹ı şğюч -- %s%s: ½µ я²ğяµÑ‚ся ħыч½Ñ‹ĵ ф°ığĵ %s: şğюч `%s' ´ğĥµ½ ¸Ñżğь·²°Ñ‚ься ħµ· °Ñ€³Ñƒĵµ½Ñ‚°%s: ½µ´½·½°Ñ‡½Ñ‹ı şğюч `%s'%s: şğюч `%s' ´ğĥµ½ ¸Ñżğь·²°Ñ‚ься c °Ñ€³Ñƒĵµ½Ñ‚ĵ%s: şğюч ´ğĥµ½ ¸Ñżğь·²°Ñ‚ься c °Ñ€³Ñƒĵµ½Ñ‚ĵ -- %s%s: şğюч с ½µ´½·½°Ñ‡½Ñ‹ĵ °Ñ€³Ñƒĵµ½Ñ‚ĵ -- %s%s: şğюч с ½µ²µÑ€½Ñ‹ĵ °Ñ€³Ñƒĵµ½Ñ‚ĵ -- %s%s: ½µ¸·²µÑÑ‚½Ñ‹ı şğюч `%s'%s:%*s“´ %0*d -- ²¸ÑşÑ½Ñ‹ı%s:%*s“´ %0*d -- • ²¸ÑşÑ½Ñ‹ı%s:%*s“´ %d -- ²¸ÑşÑ½Ñ‹ı%s:%*s“´ %d -- • ²¸ÑşÑ½Ñ‹ı(`%s') ½µ²µÑ€½Ñ‹ı фрĵ°Ñ‚ ´°Ñ‚Ñ‹ `%s'(½µşÑ€°²¸ğь½Ñ‹ı ½ĵµÑ€ ²µÑ€Ñ¸¸) ++ 1.0 ¸ğ¸ ħğµµ ż·´½¸ĵ++ 3.0 ¸ğ¸ ħğµµ ż·´½ÑÑ+++ ¤˜šĦ˜ ž’Ğ• ”˘Ğ +++ŸµÑ€²µ ŸÑ€¸ÑˆµÑÑ‚²¸µ’трµ ŸÑ€¸ÑˆµÑÑ‚²¸µ˘Ñ€µÑ‚ÑŒµ ŸÑ€¸ÑˆµÑÑ‚²¸µ§µÑ‚²µÑ€Ñ‚µ ŸÑ€¸ÑˆµÑÑ‚²¸µ5.1 ¸ğ¸ ħ𵵠р°½½ÑÑ “ŸµÑ€²µ °żÑ€µğя”µ½ÑŒ с²µÑ… с²ÑÑ‚ых”µ½ÑŒ ²ÑµÑ… ´ÑƒÑˆżÑ€żÑ€µğь”µ½ÑŒ żµÑ€µĵ¸Ñ€¸ÑŸµżµğь½Ñ‹ı ż½µ´µğь½¸şŸµżµğь½°Ñ срµ´°²³²³ÑƒÑÑ‚Ħĥĥµ½¸µ ݽ° “ус°šžœ”´µ²·ĵĥ½ ²Ñ‹żğ½¸Ñ‚ÑŒ şĵ°½´Ñƒ ² ф°ığµ `%s' Ħтрş°: %ld %s—°ĵµÑ‰µ½¸µ с¸ĵ²ğ°:”µ½ÑŒ ´µÑ‚µıр¸ÑÑ‚¸°½Ñş¸ı’·½µÑµ½¸µ р¸ÑÑ‚² ĥ´µÑÑ‚²š°½Ñƒ½ рĥ´µÑÑ‚²°”µ½ÑŒ šğуĵħ°šĵ°½´° ²Ñ‹żğ½µ½° (²Ñ‹Ñ…´½µ ·½°Ñ‡µ½¸µ=%d) ² ф°ığµ `%s' Ħтрş° %ld: %sĦşĵż¸ğ¸Ñ€²°½° %s%s ´ğя %s%s%s%s“´²Ñ‰¸½° ş½ÑÑ‚¸Ñ‚уц¸¸”µ½ÑŒ şÑ€½°Ñ†¸¸Ħ·´°½”µ½ÑŒ şÑƒğьтуры”µ½ÑŒ ĵğ¸Ñ‚²Ñ‹ ¸ żş°Ñ½¸Ñ”µ½ÑŒ сту´µ½Ñ‡µÑş³ ²ÑÑÑ‚°½¸Ñ”µş”µş°ħрь”µ½ÑŒ ´¸½°ÑÑ‚¸¸Ÿ°ÑÑ…°ğь½Ñ‹ı ż½µ´µğь½¸şŸ°ÑÑ…°ğь½µ ²ÑşÑ€µÑµ½ÑŒµ”µ½ÑŒ ²Ñ‹ħр²­ĵĦ¸ĵ²ğ ş½Ñ†° ²Ñ‹´µğяющµı żÑğµ´²°Ñ‚µğь½ÑÑ‚¸’µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş²”µ½ÑŒ тц²ŸÑ€°·´½¸ş ˘µğ° р¸ÑÑ‚²°¤µ²¤µ²Ñ€°ğь”µ½ÑŒ ф𰳰”µ½ÑŒ фğ°ĵ°½´Ñşı şÑƒğьтурыŸÑ‚”µ½ÑŒ фр°½Ñ†Ñƒ·Ñşı şÑƒğьтурыŸÑÑ‚ŸÑÑ‚½¸Ñ†°żÑÑ‚½¸Ñ†Ñ‹”µ½ÑŒ ħъµ´¸½µ½¸Ñ “µÑ€ĵ°½¸¸“µÑ€ĵ°½¸Ñ’µğ¸şħр¸Ñ‚°½¸Ñ”µ½ÑŒ “уст°²° ´ğьф°Ñğğу¸½“Ñ€Ñƒżż° ²Ñ‹´µğµ½¸Ñ (´ğĥ½Ñ‹ ħыть żÑ€µ´µğµ½Ñ‹ ²Ñµ чğµ½Ñ‹):•с𸠲ы żğь·ÑƒµÑ‚µÑÑŒ этı żÑ€³Ñ€°ĵĵı, ²Ñ‹ с³ğ°Ñˆ°µÑ‚µÑÑŒ с ²Ñµĵ¸ эт¸ĵ¸ усğ²¸Ñĵ¸”µ½ÑŒ ½µ·°²¸Ñ¸ĵст¸˜½Ñ‚’½ÑƒÑ‚Ñ€µ½½¸ıݽ²Ż½²°Ñ€ÑŒ˜ÑŽğ˜ÑŽğь˜Ñ޽˜ÑŽ½ÑŒ”µ½ÑŒ тру´°’¸ÑşÑ½Ñ‹ı ´µ½ÑŒ уст°½²ğµ½ ½° `%02d-%s' ² ф°ığµ `%s'.”µ½ÑŒ с²ħĥ´µ½¸ÑĦтрş° %ld ¸³½Ñ€¸Ñ€²°½°: %sĦтрş° %ld: %sšžœœ• §•Ħšž™ Ĥ•žĦ˘˜ ¸ğ¸ Ÿ ˜“ž”žĦ˘˜ ”›Ż šžš •˘ž™ Ĥ•›˜.ŸÑ‡Ñ‚° т \`%s' (%02d-%s-%04d %02d%s%02d%s%02dœ°Ñ€œ°Ñ€Ñ‚”µ½ÑŒ œ°Ñ€Ñ‚¸½° ›. š¸½³°œ°Ñ€Ñ‚Ñ‹½² ´µ½ÑŒ”µ½ÑŒ ħğ°³²µÑ‰µ½¸Ñ œ°Ñ€¸¸’·½µÑµ½¸µ ‘³Ñ€´¸Ñ†Ñ‹’µğ¸ş¸ı чµÑ‚²µÑ€³œ°ıŸµÑ€²µ œ°ÑŸ½Ÿ½Ÿ½µ´µğь½¸şż½µ´µğь½¸ş¸ż½µ´µğь½¸ş¸...żÑÑ‚½¸Ñ†Ñ‹ż½µ´µğь½¸ş¸...чµÑ‚²µÑ€³¸“руżż° ĵµÑÑÑ†µ² (´ğĥµ½ ħыть żÑ€µ´µğµ½ тğьş ´¸½ чğµ½):”µ½ÑŒ ĵ°Ñ‚µÑ€µı°Ñ†¸½°ğь½Ñ‹ı żÑ€°·´½¸ş²Ñ‹ı “´ÑÑħрьš›§žşÑ‚žşÑ‚яħрь˜· żÑ€¸½Ñ†¸ż° я ½µ ½µÑÑƒ т²µÑ‚ст²µ½½ÑÑ‚¸ ·° ›‘Ğ• ż²Ñ€µĥ´µ½¸Ñ ¸ğ¸ żÑ‚µÑ€¸ (şÑ²µ½½Ñ‹µ’µÑ€ħ½µ ²ÑşÑ€µÑµ½ÑŒµ¤¸·”µ½ÑŒ ĵğ¸Ñ‚²Ñ‹—°³Ñ€Ñƒ·¸Ñ‚ÑŒ şğюч¸ ¸ şĵ°½´Ñ‹ ¸· `¤™›'”µ½ÑŒ ŸÑ€¸½Ñ†µÑÑÑ‹”µ½ÑŒ  µÑ„Ñ€ĵ°Ñ†¸¸”µ½ÑŒ рµÑżÑƒħğ¸ş¸”µ½ÑŒ рµ²ğюц¸¸ĦħĦуħĦуħħт°ÑÑƒħħтыĦµ½Ħµ½Ñ‚яħрьĦ¸ĵ²ğ ½°Ñ‡°ğ° ²Ñ‹´µğяющµı żÑğµ´²°Ñ‚µğь½ÑÑ‚¸’с’с’сşÑ€µÑµ½ÑŒµ²ÑşÑ€µÑµ½ÑŒÑ”µ½ÑŒ уч¸Ñ‚µğµı§Ñ‚”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğµ²Ñ‹ œÑ‹ • żÑ€µ´ÑÑ‚°²ğяµĵ ³°Ñ€°½Ñ‚¸ı; ´°ĥµ ż´Ñ€°·Ñƒĵµ²°µĵых ³°Ñ€°½Ñ‚¸ı­Ñ‚ с²ħ´½°Ñ żÑ€³Ñ€°ĵĵ°; усğ²¸Ñ şż¸Ñ€²°½¸Ñ сĵтр¸Ñ‚µ ² ¸ÑÑ…´½ĵ тµşÑÑ‚µ.­Ñ‚ с²ħ´½°Ñ żÑ€³Ñ€°ĵĵ°; ²Ñ‹ ĵĥµÑ‚µ ż²Ñ‚Ñ€½ р°ÑżÑ€ÑÑ‚Ñ€°½ÑÑ‚ÑŒ µµ ¸/¸ğ¸­Ñ‚° żÑ€³Ñ€°ĵĵ° ½µ żÑ€µÑ‚µ½´ÑƒµÑ‚ ½° żğ½Ñ‚у, żÑ€°²¸ğь½ÑÑ‚ÑŒ ¸ğ¸ żÑ€ÑÑ‚ту ¸Ñżğь·²°½¸Ñ.§µÑ‚§µÑ‚²µÑ€³Ñ‡µÑ‚²µÑ€³¸ŸżÑ‹Ñ‚ş° тşÑ€Ñ‹Ñ‚¸Ñ (ур²µ½ÑŒ: %02d) ²şğюч°µĵ³ ф°ığ° `%s'... %s%s%sŸżÑ‹Ñ‚ş° тşÑ€Ñ‹Ñ‚¸Ñ%sрµÑÑƒÑ€Ñ½³ ф°ığ° `%s'... %s%s%sŸżÑ‹Ñ‚ş° ·°ż¸Ñ°Ñ‚ÑŒ %s `%s'... %s%s%s’Ñ‚’Ñ‚’тр½¸ş²Ñ‚Ñ€½¸ş¸Ħ¨”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı˜Ñżğь·²°½¸µ: %s [%s|%s{[h|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]˜Ñżğь·²°½¸µ: %s [[š›§...] [%c”˘] [%c¤™›...]] [šžœ”]˜Ñżğь·²°½¸µ: %s [[š›§...] [%c¤™›...]] [šžœ”]˜Ñżğь·²°Ñ‚ÑŒ ·°´°½½ÑƒÑŽ `”˘£' ²ĵµÑÑ‚ сµ³´½ÑÑˆ½µı”µ½ÑŒ ²µÑ‚µÑ€°½²”µ½ÑŒ ’¸şÑ‚Ñ€¸¸”µ½ÑŒ Ÿħµ´Ñ‹ĦрĦрµĦрµ´°ÑÑ€µ´Ñ‹µ´µğяµ´µğя %s”ух² ´µ½ÑŒš°½Ñƒ½ тр¸Ñ†Ñ‹½° ´½Ñ˘Ñ€¸Ñ†Ñ‹½ ´µ½ÑŒ’сµĵ¸Ñ€½Ñ‹ı ´µ½ÑŒ ĥ¸²Ñ‚½Ñ‹Ñ…’Ñ‹ ´ğĥ½Ñ‹ ħÑ‹ğ¸ żğуч¸Ñ‚ÑŒ şż¸ÑŽ £½¸²µÑ€Ñ°ğь½ı žħщµÑÑ‚²µ½½ı ›¸Ñ†µ½·¸¸ GNU`%s' стрş° %ld: (`%s') ½µ²µÑ€½µ ·½°Ñ‡µ½¸µ р°·ĵµÑ€° т°ħğ¸Ñ†Ñ‹ `sizeof %s>%d'`%s' стрş° %ld: (`%s') ½µş½Ñ€ğ¸Ñ€Ñƒµĵ°Ñ ш¸ħş° (%d)`%s' стрş° %ld: ²¸Ñ€Ñƒ°ğь½°Ñ ż°ĵять ¸ÑÑ‡µÑ€ż°½° (%s=%d)`’µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş²'ħµ· ¸Ñşğючµ½¸Ñ, ş чµĵу ²°Ñ ħя·Ñ‹²°µÑ‚ —šž !!²ĵµÑÑ‚µ с этı żÑ€³Ñ€°ĵĵı; µÑğ¸ ½µÑ‚, ½°ż¸Ñˆ¸Ñ‚µ ż этĵу °´Ñ€µÑÑƒ:ğюħı ħğµµ ż·´½µı ²µÑ€Ñ¸¸.şĵ°½´½°Ñ стрş°ż уĵğч°½¸ÑŽżµÑ€µĵµ½½°Ñ срµ´Ñ‹½µÑƒÑżµÑˆ½°½µ²·ĵĥ½ ·°ż¸Ñ°Ñ‚ÑŒ ф°ığ `%s' Ñ¸Ñ‚µğь ´°½½Ñ‹Ñ… ·°żğ½µ½!ф°ığ `%s' ½µ ½°ı´µ½żÑ€°·´½¸ş¸½µ´żÑƒÑÑ‚¸ĵыı с¸ĵ²ğ ² ф°ığµ тşğ¸ş° `%s' Ħтрş° %ld: %s½µ²µÑ€½µ żğµ -½³ ´½Ñ ½µ´µğ¸(%d) ² ф°ığµ `%s' Ħтрş° %ld: %s½µ²µÑ€½°Ñ ч°ÑÑ‚ÑŒ ´°Ñ‚Ñ‹ ² ф°ığµ `%s' Ħтрş° %ld: %s½µ²µÑ€½Ñ‹ı ´µ½ÑŒ½µ²µÑ€½µ żğµ ´°Ñ‚Ñ‹(%02d) ² ф°ığµ `%s' Ħтрş° %ld: %s½µ²µÑ€½Ñ‹ı ĵµÑÑÑ†½µ²µÑ€½µ żğµ ĵµÑÑÑ†°(%02d) ² ф°ığµ `%s' Ħтрş° %ld: %s·°´°½ ½µ²µÑ€½Ñ‹ı ħр°·µÑ† ´ğя ż¸Ñş° `%s'½µ²µÑ€½ ·°´°½ ³´ ´ğя ²Ñ‹Ñ‡¸Ñğµ½¸Ñ ´°Ñ‚Ñ‹ Ÿ°ÑÑ…°ğь½³ ²ÑşÑ€µÑµ½ÑŒÑ “´ ´ğĥµ½ ħыть ² żÑ€ĵµĥутşµ (%d...%d)ĵ´¸Ñ„¸Ñ†¸Ñ€²°Ñ‚ÑŒ µµ ² ст²µÑ‚ст²¸¸ с £½¸²µÑ€Ñ°ğь½ı žħщµÑÑ‚²µ½½ı ›¸Ñ†µ½·¸µı GNU,ф¸Ñ†¸°ğь½Ñ‹µ żÑ€°·´½¸ş¸żÑ€żÑƒÑ‰µ½Ñ‹ żÑ€ħµğь½Ñ‹µ с¸ĵ²ğы żÑğµ ч°ÑÑ‚¸ ´°Ñ‚Ñ‹ ² ф°ığµ `%s' Ħтрş° %ld: %s¸ğ¸ ½µżÑÑ€µ´ÑÑ‚²µ½½Ñ‹µ), żÑ€¸·Ñˆµ´Ñˆ¸µ ¸·-·° żÑ€¸ĵµ½µ½¸Ñ ¸ğ¸ ħр°Ñ‰µ½¸Ñ с ĵµı żÑ€³Ñ€°ĵĵı.ш¸ħş° чтµ½¸Ñ ф°ığ° `%s'ф°ığ тşğ¸ş°Ñ°ĵżÑ€µ´µğяµĵыıсцµ½°Ñ€¸ı şĵ°½´½³ ¸½Ñ‚µÑ€żÑ€µÑ‚°Ñ‚Ñ€°·½°Ñ‡µ½¸µ с´²¸³° `%s' ½µ²µÑ€½ÑƒÑżµÑˆ½°½µ¸·²µÑÑ‚½Ñ‹ĵ ½µ¸·²µÑÑ‚½Ñ‹ĵ şĵż¸ğятрĵ½µ¸·²µÑÑ‚½Ñ‹ĵ şĵż¸ğятрĵ (SDK?)½µ¸·²µÑÑ‚½ı ²µÑ€Ñ¸¸²µÑ€Ñ¸¸ %d²µÑ€Ñ¸¸ %d.%dgcal-4.1/po/boldquot.sed0000644000000000000000000000033113041163512012110 00000000000000s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g s/“/“/g s/”/”/g s/‘/‘/g s/’/’/g gcal-4.1/po/fr.po0000664000000000000000000045427613041164031010555 00000000000000# Messages fran§ais pour GNU concernant gcal. # Copyright (C) 2004 Thomas Esken (msgids) # This file is distributed under the same license as the gcal package. # Michel Robitaille , traducteur depuis/since 1996. # Stİphane Aulery , 2015. # msgid "" msgstr "" "Project-Id-Version: gcal 3.6.3.34\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 2015-03-23 02:42+0100\n" "Last-Translator: Stİphane Aulery \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "Erreur syst¨me inconnue" #: lib/regcomp.c:135 msgid "Success" msgstr "Succ¨s" #: lib/regcomp.c:138 msgid "No match" msgstr "Pas de correspondance" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "Expression rİguli¨re invalide" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "Collation invalide" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "Nom de classe de caract¨re invalide" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "Barre oblique inverse" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "Rİfİrence arri¨re invalide" #: lib/regcomp.c:156 #, fuzzy msgid "Unmatched [, [^, [:, [., or [=" msgstr "[ ou [^ non appairİ" #: lib/regcomp.c:159 msgid "Unmatched ( or \\(" msgstr "( ou \\( non appairİe" #: lib/regcomp.c:162 msgid "Unmatched \\{" msgstr "\\{ non appairİ" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "Contenu de \\{\\} invalide" #: lib/regcomp.c:168 msgid "Invalid range end" msgstr "Fin d'intervalle invalide" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "Mİmoire İpuisİ" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "Expression rİguli¨re prİcİdente invalide" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "Fin inattendue de l'expression rİguli¨re" #: lib/regcomp.c:180 msgid "Regular expression too big" msgstr "Expression rİguli¨re trop grande" #: lib/regcomp.c:183 msgid "Unmatched ) or \\)" msgstr ") ou \\) non appairİes" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "Pas d'expression rİguli¨re antİcİdente" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "Impossible de crİer le tube" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "sous-processus %s İchouİ" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "_open_osfhandle İchouİe" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "Impossible de restaurer le descripteur de fichier %d : dup2 İchouİe" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, c-format msgid "%s subprocess" msgstr "%s sous-processus" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "%s sous-processus a re§u le signal fatal %d" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "mİmoire İpuisİe" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Tentative d'İcriture %s ÂĞ %s Âğâ€Ĥ %s%s%s" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "İchec" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "succ¨s" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "Tentative d'ouverture %s du fichier ressource ÂĞ %s Âğâ€Ĥ %s%s%s" #: src/file-io.c:1686 msgid " `HERE' " msgstr " ÂĞ ICI Âğ " #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "" "Tentative d'ouverture (niveau : %02d) du fichier include ÂĞ %s Âğâ€Ĥ %s%s%s" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "PARAMˆTRE(S)" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "Allemagne" #: src/gcal.c:1075 msgid "U.S.A." msgstr "‰tats-Unis" #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "Grande-Bretagne" #: src/gcal.c:1852 msgid "default" msgstr "dİfaut" #: src/gcal.c:1951 msgid ":" msgstr ":" #: src/gcal.c:1961 msgid "Y" msgstr "A" #: src/gcal.c:1966 msgid "M" msgstr "M" #: src/gcal.c:1971 msgid "W" msgstr "S" #: src/gcal.c:1976 msgid "D" msgstr "J" #: src/gcal.c:2067 msgid "Fixed date list:" msgstr "Liste de dates fixes :" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "variable d'environnement" #: src/gcal.c:2268 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%s: commande repİrİe dans la variable d'environnement ÂĞ %s Âğ -- %s\n" "%s\n" "%s\n" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "Interne" #: src/gcal.c:2864 msgid "response file" msgstr "fichier rİponse" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "Crİİ" #: src/gcal.c:2872 msgid "shell script" msgstr "script" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "Courrier de \\ÂĞ %s Âğ (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" "%s : AVERTISSEMENT, courrier avec un message vide n'a pas İtİ envoyİ   <" "%s>.\n" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "ligne de commande" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s : l'option ÂĞ %s Âğ est ambiguĞ" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s : l'option ÂĞ %s Âğ n'est pas reconnue" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "%s : l'option %s est invalide" #: src/gcal.c:5910 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s : l'option ÂĞ --%s Âğ ne permet pas d'argument" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s : l'option ÂĞ %s Âğ ne permet pas d'argument" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s : l'option ÂĞ %s Âğ requiert un argument" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s : l'option -- %s requiert un argument" #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s : l'argument -- %s de l'option est invalide" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s : l'argument -- %s de l'option est ambiguĞ" #: src/gcal.c:5995 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" "%s: date donnİe invalide -- %c%s\n" "%s\n" "%s\n" #: src/hd-data.c:64 msgid "Australia" msgstr "Australie" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "Belgique" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "Brİsil" #: src/hd-data.c:67 msgid "Canada" msgstr "Canada" #: src/hd-data.c:68 msgid "Switzerland" msgstr "Suisse" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "Chine" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "Espagne" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "France" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "IsraĞl" #: src/hd-data.c:75 src/hd-data.c:250 msgid "Italy" msgstr "Italie" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "Japon" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "Rİpublique de Corİe" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "Mexique" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "Pays-Bas" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "Nouvelle Zİlande" #: src/hd-data.c:81 src/hd-data.c:320 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "Fİdİration de Russie" #: src/hd-data.c:83 msgid "United States" msgstr "‰tats-Unis" #: src/hd-data.c:85 msgid "Andorra" msgstr "Andorre" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "‰mirats Arabes Unis" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "Afghanistan" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "Antigua et Barbade" #: src/hd-data.c:89 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:90 msgid "Albania" msgstr "Albanie" #: src/hd-data.c:91 msgid "Armenia" msgstr "Armİnie" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "Antilles nİerlandaises/Bonaire" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "Antilles nİerlandaises/Cura§ao" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "Antilles nİerlandaises/St Maarten" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "Antilles nİerlandaises/Saba et Statia" #: src/hd-data.c:96 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:97 msgid "Argentina" msgstr "Argentine" #: src/hd-data.c:98 msgid "American Samoa" msgstr "Žles Samoa (E.U)" #: src/hd-data.c:99 msgid "Austria" msgstr "Autriche" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "Australie/Canberra" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "Australie/Territoire du Nord" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "Australie/Queensland" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "Australie/Australie Mİridionale" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "Australie/Nouvelle Galles du Sud" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "Australie/Tasmanie" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "Australie/Victoria" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "Australie/Australie Occidentale" #: src/hd-data.c:108 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "AzerbaŻdjan" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "Bosnie-Herzİgovine" #: src/hd-data.c:111 msgid "Barbados" msgstr "Barbade" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "Bangladesh #" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "Burkina" #: src/hd-data.c:115 msgid "Bulgaria" msgstr "Bulgarie" #: src/hd-data.c:116 msgid "Bahrain" msgstr "BahreŻn" #: src/hd-data.c:117 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:118 msgid "Benin #" msgstr "Bİnin #" #: src/hd-data.c:119 msgid "Bermuda" msgstr "Bermudes" #: src/hd-data.c:120 msgid "Brunei" msgstr "Brunei" #: src/hd-data.c:121 msgid "Bolivia" msgstr "Bolivie" #: src/hd-data.c:123 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "Žle Bouvet" #: src/hd-data.c:126 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:127 msgid "Belarus" msgstr "Bİlarus" #: src/hd-data.c:128 msgid "Belize" msgstr "Belize" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "Canada/Alberta" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "Canada/Colombie Britannique" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "Canada/Manitoba" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "Canada/Nouveau Brunswick" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "Canada/Terre-Neuve et Labrador" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "Canada/Nouvelle ‰cosse" #: src/hd-data.c:135 msgid "Canada/Northwest Territories" msgstr "Canada/Territoires du Nord Ouest" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "Canada/Ontario" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "Canada/Žle du Prince ‰douard" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "Canada/Quİbec" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "Canada/Saskatchewan" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "Canada/Yukon" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "Žles Cocos (Keeling)" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "Rİpublique Dİmocratique du Congo #" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "Rİpublique Centre Africaine #" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "Rİpublique du Congo #" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "Suisse/Aargau" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Suisse/Appenzell Innerrhoden" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Suisse/Appenzell Ausserrhoden" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "Suisse/Berne" #: src/hd-data.c:149 msgid "Switzerland/Basel-Landschaft" msgstr "Suisse/Basel-Land" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "Suisse/Basel-Stadt" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "Suisse/Fribourg" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "Suisse/Gen¨ve" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "Suisse/Glarus" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "Suisse/Graubĵnden" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "Suisse/Jura" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "Suisse/Luzern" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "Suisse/Neuch˘tel" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "Suisse/Nidwalden" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "Suisse/Obwalden" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "Suisse/St Gallen" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "Suisse/Schaffhausen" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "Suisse/Solothurn" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "Suisse/Schwyz" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "Suisse/Thurgau" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "Suisse/Ticino" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "Suisse/Uri" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "Suisse/Vaud" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "Suisse/Valais" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "Suisse/Zug" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "Suisse/Zĵrich" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "C´te d'Ivoire" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "Žles Cook" #: src/hd-data.c:173 msgid "Chile" msgstr "Chili" #: src/hd-data.c:174 msgid "Cameroon" msgstr "Cameroun" #: src/hd-data.c:176 msgid "Colombia" msgstr "Colombie" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:178 msgid "Cuba" msgstr "Cuba" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "Cap Vert" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "Žles de Christmas" #: src/hd-data.c:181 msgid "Cyprus" msgstr "Chypre" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "Rİpublique Tch¨que" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "Allemagne/Brandebourg" #: src/hd-data.c:184 msgid "Germany/Berlin" msgstr "Allemagne/Berlin" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "Allemagne/Bade-Wĵrtemberg" #: src/hd-data.c:186 msgid "Germany/Bavaria" msgstr "Allemagne/Bavi¨re" #: src/hd-data.c:187 msgid "Germany/Bremen" msgstr "Allemagne/BrŞme" #: src/hd-data.c:188 msgid "Germany/Hesse" msgstr "Allemagne/Hesse" #: src/hd-data.c:189 msgid "Germany/Hamburg" msgstr "Allemagne/Hambourg" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Allemagne/Mecklenbour Pomİranie Antİrieure" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "Allemagne/Basse Saxe" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "Allemagne/Rhİnanie du Nord Westphalie" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "Allemagne/Rhİnanie-Palatinat" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "Allemagne/Schleswig-Holstein" #: src/hd-data.c:195 msgid "Germany/Saarland" msgstr "Allemagne/Sarre" #: src/hd-data.c:196 msgid "Germany/Saxony" msgstr "Allemagne/Saxe" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "Allemagne/Saxe-Anhalt" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "Allemagne/Thuringe" #: src/hd-data.c:199 msgid "Djibouti" msgstr "Djibouti" #: src/hd-data.c:200 msgid "Denmark" msgstr "Danemark" #: src/hd-data.c:201 msgid "Dominica" msgstr "Dominique" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "Rİpublique dominicaine" #: src/hd-data.c:203 msgid "Algeria" msgstr "Algİrie" #: src/hd-data.c:204 msgid "Ecuador" msgstr "‰quateur" #: src/hd-data.c:205 msgid "Estonia" msgstr "Estonie" #: src/hd-data.c:206 msgid "Egypt" msgstr "‰gypte" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "Sahara de l'Ouest" #: src/hd-data.c:208 msgid "Eritrea" msgstr "‰rythrİe" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "‰thiopie" #: src/hd-data.c:211 msgid "Finland" msgstr "Finlande" #: src/hd-data.c:212 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "Žles Falkland (Malvinas)" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "‰tats fİdİrİs de Micronİsie" #: src/hd-data.c:215 msgid "Faroes" msgstr "Žles Fİroİ" #: src/hd-data.c:217 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "Grande-Bretagne/Angleterre et pays de Galles" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "Grande-Bretagne/Ireland du Nord" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "Grande-Bretagne/‰cosse" #: src/hd-data.c:221 msgid "Grenada" msgstr "Grenade" #: src/hd-data.c:222 msgid "Georgia" msgstr "Georgie" #: src/hd-data.c:223 msgid "French Guiana" msgstr "Guinİe Fran§aise" #: src/hd-data.c:224 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:226 msgid "Greenland" msgstr "Groenland" #: src/hd-data.c:227 msgid "Gambia" msgstr "Gambie" #: src/hd-data.c:228 msgid "Guinea" msgstr "Guinİe" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "Guadeloupe" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "Guinİe İquatoriale" #: src/hd-data.c:231 msgid "Greece" msgstr "Gr¨ce" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "Georgie du Sud et Žles Sandwich du Sud" #: src/hd-data.c:233 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:234 msgid "Guam" msgstr "Guam" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "Guinİe-Bissau #" #: src/hd-data.c:236 msgid "Guyana #" msgstr "Guyane #" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "Žles Heard et Mc Donald" #: src/hd-data.c:239 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:240 msgid "Croatia" msgstr "Croatie" #: src/hd-data.c:241 msgid "Haiti" msgstr "Haiti" #: src/hd-data.c:242 msgid "Hungary" msgstr "Hongrie" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "Indonİsie #" #: src/hd-data.c:244 msgid "Ireland" msgstr "Ireland" #: src/hd-data.c:246 msgid "India #" msgstr "Indes #" #: src/hd-data.c:247 msgid "Iraq" msgstr "Iraq" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "Rİpublique Islamique d'Iran" #: src/hd-data.c:249 msgid "Iceland" msgstr "Iceland" #: src/hd-data.c:251 msgid "Jamaica" msgstr "JamaŻque" #: src/hd-data.c:252 msgid "Jordan" msgstr "Jordanie" #: src/hd-data.c:254 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "Kyrgyzstan" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "Cambodge #" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:258 msgid "Comoros" msgstr "Comores" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "St Kitts et Nevis" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "Rİpublique populaire dİmocratique de Corİe" #: src/hd-data.c:262 msgid "Kuwait" msgstr "Kuwait" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "Žles Cayman" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "Kazakhstan" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "Rİpublique dİmocratique populaire du Laos" #: src/hd-data.c:266 msgid "Lebanon" msgstr "Liban" #: src/hd-data.c:267 msgid "St Lucia" msgstr "Ste Lucie" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:270 msgid "Liberia" msgstr "Liberia" #: src/hd-data.c:271 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:272 msgid "Lithuania" msgstr "Lituanie" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "Luxembourg" #: src/hd-data.c:274 msgid "Latvia" msgstr "Lettonie" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Jamahiriya arabe libyenne populaire et socialiste (Libye)" #: src/hd-data.c:276 msgid "Morocco" msgstr "Maroc" #: src/hd-data.c:277 msgid "Monaco" msgstr "Monaco" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "Rİpublique de Moldavie" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "Madagascar #" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "Žles Marshall" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "Ex-Rİpublique yougoslave de Macİdoine" #: src/hd-data.c:282 msgid "Mali" msgstr "Mali" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "Mongolie #" #: src/hd-data.c:284 msgid "Macau" msgstr "Macao" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "Žles Mariannes du Nord (Saipan)" #: src/hd-data.c:286 msgid "Martinique" msgstr "Martinique" #: src/hd-data.c:287 msgid "Mauritania" msgstr "Mauritanie" #: src/hd-data.c:288 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:289 msgid "Malta" msgstr "Malte" #: src/hd-data.c:290 msgid "Mauritius" msgstr "Maurice" #: src/hd-data.c:291 msgid "Maldives" msgstr "Maldives" #: src/hd-data.c:292 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "Malaisie #" #: src/hd-data.c:295 msgid "Mozambique" msgstr "Mozambique" #: src/hd-data.c:296 msgid "Namibia" msgstr "Namibie" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "Nouvelle Calİdonie" #: src/hd-data.c:298 msgid "Niger" msgstr "Niger" #: src/hd-data.c:299 #, fuzzy msgid "Norfolk Island" msgstr "Žles Norfolk" #: src/hd-data.c:300 msgid "Nigeria" msgstr "Nigeria" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "Myanmar (Birmanie) #" #: src/hd-data.c:304 msgid "Norway" msgstr "Norv¨ge" #: src/hd-data.c:305 msgid "Nepal #" msgstr "Nİpal #" #: src/hd-data.c:306 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:307 msgid "Niue" msgstr "Niue" #: src/hd-data.c:309 msgid "Oman" msgstr "Oman" #: src/hd-data.c:310 msgid "Panama" msgstr "Panama" #: src/hd-data.c:311 msgid "Peru" msgstr "Pİrou" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "Polynİsie Fran§aise" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "Papouasie-Nouvelle-Guinİe" #: src/hd-data.c:314 msgid "Philippines" msgstr "Philippines" #: src/hd-data.c:315 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:316 msgid "Poland" msgstr "Pologne" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre et Miquelon" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "Žles Pitcairn" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "Porto Rico" #: src/hd-data.c:321 msgid "Palau" msgstr "Belau" #: src/hd-data.c:322 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:323 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:324 msgid "Rİunion" msgstr "Rİunion" #: src/hd-data.c:325 msgid "Romania" msgstr "Roumanie" #: src/hd-data.c:327 msgid "Rwanda" msgstr "Rwanda" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "Arabie Saoudite" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "Žles Salomon" #: src/hd-data.c:330 msgid "Seychellen" msgstr "Seychelles" #: src/hd-data.c:331 msgid "Sudan" msgstr "Soudan" #: src/hd-data.c:332 msgid "Sweden" msgstr "Su¨de" #: src/hd-data.c:333 msgid "Singapore #" msgstr "Singapore #" #: src/hd-data.c:334 msgid "St Helena" msgstr "Ste Hİl¨ne" #: src/hd-data.c:335 msgid "Slovenia" msgstr "Slovİnie" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "Žles Svalbard et Jan Mayen" #: src/hd-data.c:337 msgid "Slovakia" msgstr "Slovaquie" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:339 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:340 msgid "Senegal" msgstr "Sİnİgal" #: src/hd-data.c:341 msgid "Somalia" msgstr "Somalie" #: src/hd-data.c:342 msgid "Suriname #" msgstr "Suriname #" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "Sao Tomİ et Principe" #: src/hd-data.c:344 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "Rİpublique arabe syrienne (Syrie)" #: src/hd-data.c:346 msgid "Swaziland" msgstr "Swaziland" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "Žles Turks et CaŻcos" #: src/hd-data.c:348 msgid "Chad" msgstr "Tchad" #: src/hd-data.c:349 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:350 msgid "Thailand #" msgstr "ThaŻlande #" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "Tajikistan" #: src/hd-data.c:352 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "Turkmİnistan" #: src/hd-data.c:354 msgid "Tunisia" msgstr "Tunisie" #: src/hd-data.c:355 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:356 msgid "Turkey" msgstr "Turquie" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "Trinidad et Tobago #" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:359 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:360 msgid "Tanzania" msgstr "Tanzanie" #: src/hd-data.c:361 msgid "Ukraine" msgstr "Ukraine" #: src/hd-data.c:362 msgid "Uganda" msgstr "Ouganda" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "‰tats-Unis/Alaska" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "‰tats-Unis/Alabama" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "‰tats-Unis/Arkansas" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "‰tats-Unis/Arizona" #: src/hd-data.c:367 msgid "United States/California" msgstr "‰tats-Unis/Californie" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "‰tats-Unis/Colorado" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "‰tats-Unis/Connecticut" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "‰tats-Unis/District de Colombia" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "‰tats-Unis/Delaware" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "‰tats-Unis/Floride" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "‰tats-Unis/Georgie" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "‰tats-Unis/Hawaii" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "‰tats-Unis/Iowa" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "‰tats-Unis/Idaho" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "‰tats-Unis/Illinois" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "‰tats-Unis/Indiana" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "‰tats-Unis/Kansas" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "‰tats-Unis/Kentucky" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "‰tats-Unis/Lousiane" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "‰tats-Unis/Massachusetts" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "‰tats-Unis/maryland" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "‰tats-Unis/Maine" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "‰tats-Unis/Michigan" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "‰tats-Unis/Minnesota" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "‰tats-Unis/Missouri" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "‰tats-Unis/Missisippi" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "‰tats-Unis/Montana" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "‰tats-Unis/Caroline du Nord" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "‰tats-Unis/Dakota du Nord" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "‰tats-Unis/Nebraska" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "‰tats-Unis/New Hampshire" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "‰tats-Unis/New Jersey" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "‰tats-Unis/Nouveau Mexique" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "‰tats-Unis/Nevada" #: src/hd-data.c:397 msgid "United States/New York" msgstr "‰tats-Unis/New York" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "‰tats-Unis/Ohio" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "‰tats-Unis/Oklahoma" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "‰tats-Unis/Oregon" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "‰tats-Unis/Pennsylvanie" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "‰tats-Unis/Rhode Island" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "‰tats-Unis/Caroline du Sud" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "‰tats-Unis/Dakota du Sud" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "‰tats-Unis/Tennessee" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "‰tats-Unis/Texas" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "‰tats-Unis/Utah" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "‰tats-Unis/Virginie" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "‰tats-Unis/Vermont" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "‰tats-Unis/Washington" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "‰tats-Unis/Wisconsin" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "‰tats-Unis/Virgine de l'Ouest" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "‰tats-Unis/Wyoming" #: src/hd-data.c:414 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "Uzbekistan" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "St Vincent et les Grenadines" #: src/hd-data.c:417 msgid "Venezuela" msgstr "Vİnİzuela" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "Žles Vierges britanniques" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "Žles Vierges amİricaines" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "Viet Nam" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "Žles Wallis et Futuna" #: src/hd-data.c:423 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:424 msgid "Yemen" msgstr "Yİmen" #: src/hd-data.c:425 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "Serbie et Montİnİgro" #: src/hd-data.c:427 msgid "South Africa" msgstr "Afrique du Sud" #: src/hd-data.c:428 msgid "Zambia" msgstr "Zambie" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:459 msgid "1st Advent" msgstr "1er dimanche de l'Avant" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "1er dimanche du CarŞme" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "2e dimanche de l'Avant" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "2e dimanche du CarŞme" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "3e dimanche de l'Avant" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "3e dimanche du CarŞme" #: src/hd-data.c:465 msgid "4th Advent" msgstr "4e dimanche de l'Avant" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "4e dimanche du CarŞme" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "Festival 7-5-3" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "FŞtes des Arborig¨nes" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "FŞte du Poisson d'Avril" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "FŞte de la Toussaint" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "FŞte de la Toussaint" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "FŞte de l'Alphabet" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "Anniversaire de Auckland" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "Anniversaire de Canterbury Nord" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "Anniversaire de Canterbury Sud" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "Anniversaire des Žles Chatham" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "Anniversaire de la Baie Hawkes" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "Anniversaire de Marlborough" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "Anniversaire de Nelson" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "Anniversaire de Otago" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "Anniversaire du Southland" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "Anniversaire de Taranaki" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "Anniversaire de Wellington" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "Anniversaire de Westland" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "Jour de Anzac" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "FŞte de Arbor" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "Jour des Forces Armİes (‰tats-Unis)" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "Jour de l'Armistice" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "Lundi des Cendres" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "Mercredi des Cendres" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "Ascension de Abdu'l-Baha" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "Ascension de Baha'u'llah" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "Naissance de Baha'u'llah" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "Naissance de Bab" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "Jour de l'Alliance" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "Dİclaration de Bab" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "Premier Jour de Ridvan" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "Jour du martyr de Bab" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "Jour du Nouvel An de Baha'i" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "Neuvi¨me Jour de Ridvan" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "Douzi¨me Jour de Ridvan" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "FŞte de la Banque" #: src/hd-data.c:503 msgid "Basque National Day" msgstr "FŞte Nationale des Basques" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "Jour la Bataille de Boyne" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "Jour la Bataille de Puebla" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "Dİbut de l'Annİe Financi¨re" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "Jour de Bİnito JuĦrez" #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "Naissance de Bodhidharma" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "Jour de Bosses" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "Boxing Day" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "Jour du Retour   la Maison des Herds" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "Jour de la Rİcolte" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "Anniversaire du Bouddha" #: src/hd-data.c:514 msgid "Burns Night" msgstr "Nuit des Feux" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "Jour de Camoes" #: src/hd-data.c:516 msgid "Carnival" msgstr "Carnaval" #: src/hd-data.c:517 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:518 msgid "Imbolg" msgstr "Imbolg" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/Jour du Nouvel An Celte" #: src/hd-data.c:521 msgid "Children's Day" msgstr "Journİe des Enfants" #: src/hd-data.c:522 msgid "Cycle" msgstr "Cycle" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "Jour du Nouvel An chinois" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "Veille du Nouvel An chinois" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "FŞte de NoĞl" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "Veille de NoĞl" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "Ascension du Christ" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "Jour du Chrysanth¨me" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "Jour de la Citoyennetİ" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "Congİ civique" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "FŞte de Christophe Colomb (‰tats-Unis)" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "Jour de la Venue de l'‚ge" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "Naissance de Confucius" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "Anniversaire de la Constitution" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "Jour du Nouvel An Copte" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "Jour des Cosmonautes" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "Jour du Soul¨vement Croisİ" #: src/hd-data.c:538 msgid "Culture Day" msgstr "Jour de la Culture" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "Jour apr¨s le Festival de la Mi-automne" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "Jour apr¨s le Jour des Tombeaux" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "Jour de l'Andalousie" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "Jour de Catalonia" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "Jour de la Galice" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "Jour de Pri¨res et de Repentance" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "Jour de la Rİconciliation" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "Jour des Dİfenseurs de la Terre M¨re" #: src/hd-data.c:547 msgid "Double-9 Day" msgstr "Jour du Double-9" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "Festival des bateaux Dragon" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "Jour de la Dynastie" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "Lundi de P˘ques" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "Dimanche de P˘ques" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "‰clipse lunaire" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "‰clipse solaire" #: src/hd-data.c:554 msgid "Annular" msgstr "Annulaire" #: src/hd-data.c:555 msgid "Partial" msgstr "Partiel" #: src/hd-data.c:556 msgid "Penumbral" msgstr "Pİnombre" #: src/hd-data.c:557 msgid "Total" msgstr "Total" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "Jour de la Libİration de Eindhoven" #: src/hd-data.c:559 msgid "Election Day" msgstr "Jour des ‰lections (‰tats-Unis)" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "Naissance de l'Empereur" #: src/hd-data.c:561 msgid "Equinox Day" msgstr "Jour de l'İquinoxe" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "Jour du Nouvel An ‰thiopien" #: src/hd-data.c:563 msgid "Father's Day" msgstr "FŞte des P¨res" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "FŞte Dieu" #: src/hd-data.c:565 msgid "Feast of Fortune" msgstr "FŞte de la Fortune" #: src/hd-data.c:566 msgid "Feast of Heart Jesus" msgstr "FŞte du Sacrİ-CĊ“ur de Jİsus-Christ" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "Festival des Lanternes" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "Festival de Sadeh" #: src/hd-data.c:569 msgid "Flag Day" msgstr "Jour du Drapeau (‰tats-Unis)" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "Journİe ce la Culture (Flandre)" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "Fondation du Parti Communiste" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "Journİe de la Culture (France)" #: src/hd-data.c:573 msgid "French Revolutionary" msgstr "Jour de la Rİvolution Fran§aise" #: src/hd-data.c:574 msgid "Friendship Day" msgstr "Jour de l'Amitiİ" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "Jour de la rİunification de l'Allemagne" #: src/hd-data.c:576 msgid "Good Friday" msgstr "Vendredi Saint" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "Samedi Saint/Veille de P˘ques" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "FŞte des Grand Parents" #: src/hd-data.c:579 msgid "Greenery Day" msgstr "Jour de la Verdure" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "FŞte de la Grotte" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "Jour de la Marmotte" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "Jour de la Vierge de la Guadeloupe" #: src/hd-data.c:583 #, fuzzy msgid "Guy Fawkes Day" msgstr "Jour de Guy Fawke" #: src/hd-data.c:584 msgid "Halloween" msgstr "Halloween (Canada-‰tats-Unis)" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "FŞte de la Santİ et du Sport" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "Hhanouka/FŞte des Lumi¨res" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "Lag ba Omer" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "Pessah/P˘que juive" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "Pourim/" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "Rosh Hashana/Jour du Nouvel An" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "Shavouot/Don de la Torah" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "Shushan Purim" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "Simchat Torah" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "Souccot/FŞtes des cabanes" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "Tisha be Av/Jour de Deuil" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tou bi Shvat/Nouvel An des Arbres" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Yom Hashoah/Jour du Mİmorial de l'Holocauste" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Yom Hazikaron/Jour du Mİmorial des Soldats" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "Yom Ha Azmaut/Jour de l'Indİpendance" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "Yom Kipour/Jour du Grand Pardon" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Yom Yerushalayim/FŞte de Jİrusalem" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "FŞte des Saints Innocents" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "Sainte Trinitİ" #: src/hd-data.c:604 msgid "Huravee Day" msgstr "FŞte de Huravee" #: src/hd-data.c:605 msgid "Independence Day" msgstr "FŞte de l'Indİpendance" #: src/hd-data.c:606 msgid "Independence Movement Day" msgstr "Jour du Mouvement de l'Indİpendance" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "Proclamation de l'Indİpendance" #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "Jour du Nouvel An Indien" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "Naissance de Aga Khan" #: src/hd-data.c:610 msgid "Ashura'" msgstr "Ashura'" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "Eid-al-Adha" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "Eid-al-Fitr" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "Eid-i-Milad-un-Nabi" #: src/hd-data.c:614 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "Jour de Imamat" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "Jour du Nouvel An Islamique" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "Nuzul-al-Qur'an" #: src/hd-data.c:618 msgid "Quds Day" msgstr "Jour de Quds" #: src/hd-data.c:619 msgid "Ramadan" msgstr "Ramadan" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "Shab-e-Bara't" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "Shab-e-Mi'raj" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "Shab-e Qadr" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "Jour du Nouvel An japonais" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "Veille du Jour du Nouvel An Japonais" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "Circoncision de Jİsus" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:628 msgid "Labour Day" msgstr "FŞte du Travail" #: src/hd-data.c:629 msgid "Labour Thanksgiving Day" msgstr "FŞte du Travail et de l'Action de Gr˘ce" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "Naissance de Lao Tze" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "Jour de la Libİration" #: src/hd-data.c:632 msgid "Marine Day" msgstr "FŞte de la Marine" #: src/hd-data.c:633 msgid "Martinimas" msgstr "Martinimas" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "Jour de Martin L. King (‰tats-Unis)" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "FŞte des Martyrs" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "Annonciation de la Vierge" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "Assomption de la Vierge" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "Prİsentation" #: src/hd-data.c:639 msgid "Mary's Expectation" msgstr "Expectation de Marie" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "Immaculİe Conception" #: src/hd-data.c:641 msgid "Mary's Maternity" msgstr "Maternitİ de Marie" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "Jour du Saint Nom de Marie" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "Nativitİ de Marie" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "Sacrifice de Marie" #: src/hd-data.c:645 msgid "Mary's Visitation" msgstr "Visitation de la Vierge" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "Immaculİe Conception de Marie" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "Jeudi Saint" #: src/hd-data.c:648 msgid "May Day" msgstr "1er Mai" #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "FŞte de la Saint Jean/Jour du milieu de l'‰tİ" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "Festival de la mi-automne" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "Festival de la mi-printemps" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "Festival de la mi-annİe" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "Demi lune croissante" #: src/hd-data.c:654 msgid "Full Moon" msgstr "Pleine lune" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "Demi lune dİcroissante" #: src/hd-data.c:656 msgid "New Moon" msgstr "Nouvelle lune" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "FŞte des M¨res" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "FŞte des Belles M¨res" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "Banquet de la musique d'eau" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "FŞte de la Fondation Nationale" #: src/hd-data.c:661 msgid "National Holiday" msgstr "FŞte Nationale" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "Jour de Deuil National" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "Jour de l'An" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "FŞte des Infirmi¨res" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "Ancien Nouvel An Armİnien" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "Ancien Nouvel An ‰gyptien" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "Jour du Nouvel An Orthodoxe" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "FŞte de l'Apparition de Notre-Dame" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "Dimanche des rameaux" #: src/hd-data.c:670 msgid "Parent's Day" msgstr "FŞte des Parents" #: src/hd-data.c:671 msgid "Passion Sunday" msgstr "Dimanche de la Passion" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "Festival de la Paix" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "Festival de la PŞche" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "Dimanche de la Pentec´te" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "Jour du Nouvel An Perse/Noruz" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "Jour de la Pri¨re" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "Jour de l'Inauguration Prİsidentielle" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "Jour du Prİsident (‰tats-Unis)" #: src/hd-data.c:679 msgid "Presidents' Inform" msgstr "Avis du Prİsident" #: src/hd-data.c:680 msgid "President Lincoln's Birthday" msgstr "Naissance du Prİsident Lincoln (‰tats-Unis)" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "FŞte de la Princesse" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "Dimanche des Quinquagİnaires" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "Jour de la Rİforme (Slovİnie)" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "Jour du Souvenir" #: src/hd-data.c:685 msgid "Republic Day" msgstr "FŞte de la Rİpublique" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "Jour de Respect des Anİs" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "Jour de la Rİvolution" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "Anniversaire de Rio de Janeiro" #: src/hd-data.c:689 msgid "Rogation Sunday" msgstr "Dimanche de Rogation" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "Anniversaire de Sao Paulo" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "Festival des Neiges de Sapporo" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "Changement de Saison/Festival des f¨ves" #: src/hd-data.c:693 msgid "Septuagesima Sunday" msgstr "Dimanche des Septuagİnaires" #: src/hd-data.c:694 msgid "Seven Sleepers Day" msgstr "Jour des Sept Dormeurs" #: src/hd-data.c:695 msgid "Sexagesima Sunday" msgstr "Dimanche des Sexagİnaires" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "Mardi Gras" #: src/hd-data.c:697 msgid "Solstice Day" msgstr "Jour du solstice" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "Jour du Balayage de la Suie" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "Festival du Printemps" #: src/hd-data.c:700 msgid "Start of common month" msgstr "Dİbut d'un mois commun" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "Dİbut du mois bissextile" #: src/hd-data.c:702 msgid "Star Festival" msgstr "Festival des ‰toiles" #: src/hd-data.c:703 msgid "St Andrew's Day" msgstr "FŞte de Saint Andrİ" #: src/hd-data.c:704 msgid "St Bartholomew Day" msgstr "FŞte de Saint Bartholomew" #: src/hd-data.c:705 msgid "St Berchtold's Day" msgstr "FŞte de Saint Berchtold" #: src/hd-data.c:706 msgid "St David's Day" msgstr "FŞte de Saint David" #: src/hd-data.c:707 msgid "St Edward's Day" msgstr "FŞte de Saint ‰douard" #: src/hd-data.c:708 msgid "St George's Day" msgstr "FŞte de Saint George" #: src/hd-data.c:709 msgid "St James' Day" msgstr "FŞte de Saint Jacques" #: src/hd-data.c:710 msgid "St Joseph's Day" msgstr "FŞte de Saint Joseph" #: src/hd-data.c:711 msgid "St Laurentius Day" msgstr "FŞte de Saint Laurent" #: src/hd-data.c:712 msgid "St Nicholas' Day" msgstr "FŞte de Saint Nicolas" #: src/hd-data.c:713 msgid "St Nicholas' Eve" msgstr "Vigiles de la FŞte de Saint Nicholas" #: src/hd-data.c:714 msgid "St Patrick's Day" msgstr "FŞte de Saint Patrick" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "Saint Pierre et Saint Paul" #: src/hd-data.c:716 msgid "St Stephen's Day" msgstr "FŞte de Saint ‰tienne" #: src/hd-data.c:717 msgid "St Valentine's Day" msgstr "FŞte de Saint Valentin" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "Dimanche des Morts" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "Journİe des Hirondelles" #: src/hd-data.c:720 msgid "Sweetest Day" msgstr "Jour de la Sympathie" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "Saint Sylvestre/Veille du Nouvel An" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "FŞte des Professeurs (TaŻwan)" #: src/hd-data.c:723 msgid "Thai New Year's Day" msgstr "Jour du Nouvel An Thai" #: src/hd-data.c:724 msgid "Thanksgiving Day" msgstr "Thanksgiving" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "Naissance du Roi" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "Naissance de la Reine" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "‰piphanie/FŞte des Rois" #: src/hd-data.c:728 msgid "Tiradentes Day" msgstr "Jour de Tiradentes" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "Jour des Tombeaux" #: src/hd-data.c:730 msgid "Transfiguration Day" msgstr "Transfiguration de N.S.J.C" #: src/hd-data.c:731 msgid "Tynwald Day" msgstr "Jour de Tynwald" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "Veille de Valborg" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "Carnaval de Venise" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "Jour du souvenir" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "FŞte de la Reine (Ca)/FŞte du Dollard (Fr-Ca)" #: src/hd-data.c:736 msgid "Victory Day" msgstr "Jour de la Victoire" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "Lundi de Pentec´te" #: src/hd-data.c:738 msgid "Women's Day" msgstr "FŞte des Femmes" #: src/hd-data.c:739 msgid "Women's Shrove Day" msgstr "Jour de la Confession des Femmes" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "Journİe mondiale des animaux" #: src/hd-data.c:741 msgid "Youth Day" msgstr "FŞte des Jeunes" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "FŞte de la Coupe Adelaide" #: src/hd-data.c:748 msgid "Admission Day" msgstr "Jour de l'Admission" #: src/hd-data.c:749 msgid "Alaska Day" msgstr "FŞte de l'Alaska" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "Jour de Aleksis Kivi" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "Jour de Alice-Springs" #: src/hd-data.c:752 msgid "All Saints' Eve" msgstr "Vigiles de la Toussaint" #: src/hd-data.c:753 msgid "Americas Day" msgstr "FŞtes des Amİriques" #: src/hd-data.c:754 msgid "Angam Day" msgstr "FŞte de Angam" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "Anniversaire de la Succession de Amir" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "Anniversaire de la Bataille Armİe" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "Anniversaire de la Marche Verte" #: src/hd-data.c:759 msgid "Antillian Day" msgstr "FŞte des Antilles" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "FŞte de la Ligue Arabe" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "Jour du Mİmorial de l'ArchevŞque Makarios" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "Jour de l'ArchevŞque Makarios" #: src/hd-data.c:764 msgid "Arengo Anniversary" msgstr "Anniversaire de Arengo" #: src/hd-data.c:765 msgid "Army Coup Day" msgstr "Jour du Coup de l'Armİe" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "Arrivİe des Suisses" #: src/hd-data.c:767 msgid "Artigas' Birthday" msgstr "FŞte de Artigas" #: src/hd-data.c:768 msgid "Asuncion Day" msgstr "FŞte de l'Assomption" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "Jour du Mİmorial de Ataturk" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "Jour de la Force de l'Autoritİ" #: src/hd-data.c:771 msgid "Ba'ath Revolution Day" msgstr "FŞte de la Rİvolution Ba'ath" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "Jour du Baron Bliss" #: src/hd-data.c:773 msgid "Bataan Day" msgstr "Jour de Bataan" #: src/hd-data.c:774 msgid "Battle of Angamos" msgstr "Jour la Bataille de Angamos" #: src/hd-data.c:775 msgid "Battle of BoyacĦ" msgstr "Jour la Bataille de BoyacĦ" #: src/hd-data.c:776 msgid "Battle of Carabobo" msgstr "Jour la Bataille de Carabobo" #: src/hd-data.c:777 msgid "Battle of Iquique" msgstr "Jour la Bataille de Iquique" #: src/hd-data.c:778 msgid "Battle of Las Piedras" msgstr "Jour la Bataille de Las Piedras" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "Jour la Bataille de N¤fels" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "Dİbut de l'‰tİ" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "FŞte de Belgrade" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "Jour de la Bataille de Bennington" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "Bİnİdiction de l'Eau" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "Journİe de la Floraison" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "FŞte de Boganda" #: src/hd-data.c:786 msgid "Bonaire Day" msgstr "FŞte de Bonaire" #: src/hd-data.c:787 msgid "Boqueron Battle Day" msgstr "Jour la Bataille de Boqueron" #: src/hd-data.c:788 msgid "Botswana Day" msgstr "FŞte du Botswana" #: src/hd-data.c:789 msgid "Bounty Day" msgstr "FŞte de Bounty" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "FŞte de Bunker Hill" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "Jan Hus au bğcher" #: src/hd-data.c:792 msgid "Canberra Day" msgstr "FŞte de Canberra" #: src/hd-data.c:793 msgid "Caricom Day" msgstr "FŞte de la Caricom" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "Anniversaire de Casimir Pulaski" #: src/hd-data.c:795 msgid "Cassinga Day" msgstr "FŞte de Cassinga" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "Festival de Cayenne" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "Jour de Cİsar Chavez" #: src/hd-data.c:798 msgid "Charter Day" msgstr "FŞte de Charter" #: src/hd-data.c:799 msgid "Chiang Kai-shek's Birthday" msgstr "Anniversaire de Chiang Kai-shek" #: src/hd-data.c:800 msgid "Children's White Sunday" msgstr "Dimanche Blancs des Enfants" #: src/hd-data.c:801 msgid "Colon Day" msgstr "Jour de Colon" #: src/hd-data.c:802 msgid "Colorado Day" msgstr "FŞte du Colorado" #: src/hd-data.c:803 msgid "Commonwealth Day" msgstr "Jour du Commonwealth" #: src/hd-data.c:804 msgid "Compact Day" msgstr "Jour de Compact" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "Jour de l'Accord Confİdİral" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "FŞte du Couronnement" #: src/hd-data.c:807 msgid "Cup Match Day" msgstr "Jour du Match de la Coupe" #: src/hd-data.c:808 msgid "Custom Chief's Day" msgstr "Jour de la Coutume des Chefs" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "FŞte de C. Mapinduzi" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "Jour de Darwin" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "Jour de la Bonne Volontİ" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "Jour de la Rİvolte ‰tudiante" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "Jour de la Libİration du Laos" #: src/hd-data.c:814 msgid "Death of H. Christophe" msgstr "Mort de H. Christophe" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "Mort de J. Dessalines" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "Mort du Prİsident Abdallah" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "Mort du Prİsident Cheikh" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "Mort du Prİsident Soilih" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "Mort de Qaid-i-Azam" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "Mort de T. Louverture" #: src/hd-data.c:821 msgid "Defenders Day" msgstr "Jour des Dİfenseurs" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "Jour du P¨re" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "Jour des Matres" #: src/hd-data.c:824 msgid "Discovery Day" msgstr "Jour de la Dİcouverte" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "Chute de Dergue" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "Cİlİbration de la Saison S¨che" #: src/hd-data.c:827 msgid "Dr. Sun Yat-sen's Birthday" msgstr "Anniversaire du Dr. Sun Yat-Sen" #: src/hd-data.c:828 msgid "Duarte's Birthday" msgstr "Anniversaire de Duarte" #: src/hd-data.c:829 msgid "Easter Tuesday" msgstr "Mardi de P˘ques" #: src/hd-data.c:830 msgid "Economic Liberation Day" msgstr "Jour de la Libİration ‰conomique" #: src/hd-data.c:831 msgid "Eight Hours Day" msgstr "Jour des Huit Heures" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "‰lection de l'Assemblİe Nationale" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "Jour d'Errol Barrow" #: src/hd-data.c:834 msgid "Evacuation Day" msgstr "Jour de l'‰vacuation" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "Vigiles de l'‰piphanie" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "Expİdition des 33" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "Anniversaire de E. Hostos" #: src/hd-data.c:838 msgid "Family Day" msgstr "Jour de la Famille" #: src/hd-data.c:839 msgid "FAO Day" msgstr "Jour de FAO" #: src/hd-data.c:840 msgid "Farmers' Day" msgstr "FŞte des Fermiers" #: src/hd-data.c:841 msgid "Father Leval Day" msgstr "FŞte du P¨re Leval" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "FŞte de la Theotokos" #: src/hd-data.c:843 msgid "Fisherman's Day" msgstr "Jour des Pİcheurs" #: src/hd-data.c:844 msgid "Foundation of NPLA Day" msgstr "FŞte de la Fondation du NPLA" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "Fondation du Parti du Peuple" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "FŞte de Garifuna" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "Anniversaire du Gİnİral San Martin" #: src/hd-data.c:849 msgid "Gospel Day" msgstr "Jour de l'‰vangile" #: src/hd-data.c:850 msgid "Guacanaste Day" msgstr "FŞte de Guacanaste" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "Jour de Gustavus Adolphus" #: src/hd-data.c:852 msgid "Heritage Day" msgstr "FŞte de l'Hİritage" #: src/hd-data.c:853 msgid "Heroes Day" msgstr "FŞte des Hİros" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "Jour de Hobart" #: src/hd-data.c:855 msgid "Holy Wednesday" msgstr "Mercredi Saint" #: src/hd-data.c:856 msgid "Ho Chi Minh's Birthday" msgstr "Anniversaire de Ho Chi Minh" #: src/hd-data.c:857 msgid "Human Rights Day" msgstr "Jour des Droits de la Personne" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "Jour de la Supplication de l'Ouragan" #: src/hd-data.c:859 msgid "Hurricane Thanksgiving Day" msgstr "Jour de Remerciement de l'Ouragan" #: src/hd-data.c:860 msgid "Independence of Cartagena" msgstr "Jour de l'Indİpendance de Cartag¨ne" #: src/hd-data.c:861 msgid "Independence of Cuenca" msgstr "Jour de l'Indİpendance de Cuenca" #: src/hd-data.c:862 msgid "Independence of Guayaquil" msgstr "Jour de l'Indİpendance de Guayaquil" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "Jour de l'Indİpendance de Quito" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "Jour de l'Arrivİe des Indiens" #: src/hd-data.c:865 msgid "Internal Autonomy Day" msgstr "Jour de l'Autonomie Interne" #: src/hd-data.c:866 msgid "Jefferson Davis' Birthday" msgstr "Anniversaire de Jefferson Davis" #: src/hd-data.c:867 msgid "June Holiday" msgstr "Congİ de juin" #: src/hd-data.c:868 msgid "J. Barbosa's Birthday" msgstr "Anniversaire de J. Barbosa" #: src/hd-data.c:869 msgid "J. Chilembwe Day" msgstr "Jour de J. Chilembwe" #: src/hd-data.c:870 msgid "J. Diego's Birthday" msgstr "Anniversaire de J. Diego" #: src/hd-data.c:871 msgid "J. Robert's Birthday" msgstr "Anniversaire de J. Robert" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "FŞte de Kamarampaka" #: src/hd-data.c:873 msgid "Kartini Day" msgstr "FŞte de Kartini" #: src/hd-data.c:874 msgid "Catherine Show Day" msgstr "Jour de Catherine" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "FŞte de Kiev" #: src/hd-data.c:876 msgid "Kim Il-Sung's Birthday" msgstr "Anniversaire de Kim Il-Sung" #: src/hd-data.c:877 msgid "Kim Jong-Il's Birthday" msgstr "Anniversaire de Kim Jong-Il" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "FŞte de King Kamehameha" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "FŞte du Mİmorial de King Rama I/Chakri" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "FŞte du Mİmorial de King Rama V" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "Knabenschiessen" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "FŞte de Saints Cyrille et Mİthode" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "Congİ National de Lapp" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "FŞte de la Coupe Launceston" #: src/hd-data.c:885 msgid "Liberty Day" msgstr "FŞte de la Libİration" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "Perte de la Nation Musulmane" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "Kermesse de la Ville de Luxembourg" #: src/hd-data.c:888 msgid "Lyndon B. Johnson Day" msgstr "FŞte de Lyndon B. Johnson" #: src/hd-data.c:889 msgid "L. Rivera's Birthday" msgstr "Anniversaire de L. Rivera" #: src/hd-data.c:890 msgid "Madaraka Day" msgstr "FŞte de Madaraka" #: src/hd-data.c:891 msgid "Mahatma Gandhi's Birthday" msgstr "Anniversaire de Mahatma Gandhi" #: src/hd-data.c:892 msgid "Malvinas Day" msgstr "FŞte des Žles Falkland (Malvinas)" #: src/hd-data.c:893 msgid "Manila Day" msgstr "FŞte de Manila" #: src/hd-data.c:894 msgid "Maputo City Day" msgstr "FŞte de la Ville de Maputo" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "FŞte de Marien Ngouabi" #: src/hd-data.c:896 msgid "Maryland Day" msgstr "FŞte du Maryland" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "FŞte de la Coupe de Melbourne" #: src/hd-data.c:898 msgid "Merchant Day" msgstr "FŞte des Marchands" #: src/hd-data.c:899 msgid "St John's/Midsummers Eve" msgstr "Vigiles de la Saint Jean/milieu de l'İtİ" #: src/hd-data.c:900 msgid "Missionary Day" msgstr "FŞte des Missionnaires" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "Mi-CarŞme" #: src/hd-data.c:902 msgid "Morazan Day" msgstr "FŞte de Morazan" #: src/hd-data.c:903 msgid "Mosheshoe's Day" msgstr "FŞte de Mosheshoe" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "Jour de la Maternitİ et de la Beautİ" #: src/hd-data.c:905 msgid "Naming Day" msgstr "Jour des Noms" #: src/hd-data.c:906 msgid "National Bun Day" msgstr "Jour National du Petit Pain" #: src/hd-data.c:907 msgid "National Heroes Day" msgstr "FŞte Nationale des Hİros" #: src/hd-data.c:908 msgid "National Redemption Day" msgstr "FŞte Nationale de la Rİdemption" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "FŞte Nationale de la Rİsistance" #: src/hd-data.c:910 msgid "National Revival Day" msgstr "Jour du Redressement National" #: src/hd-data.c:911 msgid "National Unity Day" msgstr "FŞte Nationale de l'Unitİ" #: src/hd-data.c:912 msgid "Ndadaye Day" msgstr "FŞte de Ndadaye" #: src/hd-data.c:913 msgid "Neutrality Day" msgstr "FŞte de la Neutralitİ" #: src/hd-data.c:914 msgid "Nevada Day" msgstr "FŞte du Nİvada" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "Anniversaire du Nouveau Rİgime" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "FŞte de Nobel" #: src/hd-data.c:917 msgid "Noi Day" msgstr "FŞte de Noi" #: src/hd-data.c:918 msgid "OAU Day" msgstr "FŞte de OAU" #: src/hd-data.c:919 msgid "October Holiday" msgstr "FŞte d'Octobre" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "Jour de l'Industrie Pİtroli¨re" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "Notre-Dame de Alagracia" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "Notre-Dame de Camarin" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "Notre-Dame de Las Mercedes" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "Notre-Dame de Los Angeles" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "Notre-Dame des 7 Douleurs" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "Notre-Dame des Victoires" #: src/hd-data.c:927 msgid "Panama City Day" msgstr "FŞte de la Ville de Panama" #: src/hd-data.c:928 msgid "Panamerica Day" msgstr "Jour panamİricain" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "Jour de Paix de l'Entente de Paris" #: src/hd-data.c:930 msgid "Patriot's Day" msgstr "FŞte des Patriotes" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "Jour du Soul¨vement du Peuple" #: src/hd-data.c:932 msgid "People Power Day" msgstr "Jour de la Force du Peuple" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "Amitiİ Philippine-‰tats Unis d'Amİrique" #: src/hd-data.c:934 msgid "Pichincha Day" msgstr "FŞte de Pichincha" #: src/hd-data.c:935 msgid "Picnic Day" msgstr "FŞte du Pique-Nique" #: src/hd-data.c:936 msgid "Pioneer Day" msgstr "FŞte des Pionniers" #: src/hd-data.c:937 msgid "Poya Day" msgstr "FŞte de Poya" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "FŞte du Prince Kalanianaole" #: src/hd-data.c:939 msgid "Prince of Wales' Birthday" msgstr "Anniversaire du Prince de Gale" #: src/hd-data.c:940 msgid "Proclamation Day" msgstr "FŞte de la Proclamation" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "Anniversaire de Qaid-i-Azam" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "FŞte de Ratu Sukuma" #: src/hd-data.c:943 msgid "Recreation Day" msgstr "Jour de la Rİcrİation" #: src/hd-data.c:944 msgid "Referendum Day" msgstr "FŞte du Rİfİrendum" #: src/hd-data.c:945 msgid "Regatta Day" msgstr "FŞte de Regatta" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "Changement de Rİgence" #: src/hd-data.c:947 msgid "Restoration Day" msgstr "Jour de la Restoration" #: src/hd-data.c:948 msgid "Return Day" msgstr "FŞte du Retour" #: src/hd-data.c:949 msgid "Reunification Day" msgstr "FŞte de la Rİunification" #: src/hd-data.c:950 msgid "Rizal Day" msgstr "FŞte de Rizal" #: src/hd-data.c:951 msgid "Rwagasore Day" msgstr "FŞte de Rwagasore" #: src/hd-data.c:952 msgid "Saba Day" msgstr "FŞte de Saba" #: src/hd-data.c:953 msgid "San Jacinto Day" msgstr "Bataille de San Jacinto" #: src/hd-data.c:954 msgid "San Josİ Day" msgstr "FŞte de Saint Joseph" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "Jour de l'‰tablissement de SAR" #: src/hd-data.c:956 msgid "School Holiday" msgstr "Congİ scolaire" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "Sechsel¤uten" #: src/hd-data.c:958 msgid "Separation Day" msgstr "FŞte de la Sİparation" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "FŞte de Seretse Khama" #: src/hd-data.c:960 msgid "Settlers Day" msgstr "Jour des Pionniers" #: src/hd-data.c:961 msgid "Seward's Day" msgstr "FŞte de Seward" #: src/hd-data.c:962 msgid "Shaheed Day" msgstr "FŞte de Shaheed" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "Festival du Mouton" #: src/hd-data.c:964 msgid "Sheikh Zayed's Ascension Day" msgstr "FŞte de l'Ascension de lSheikh Zayed" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "FŞte de Simon Bolivar" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "FŞte de la Libİration du SinaŻ" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "Jour de la Libİration des Esclaves" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "Jour de l'Odeur de la Brise" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "FŞte de la Solidaritİ" #: src/hd-data.c:970 msgid "Somers Day" msgstr "Jour de Somers" #: src/hd-data.c:971 msgid "Statia-American Day" msgstr "Jour de Statia-Amİrique" #: src/hd-data.c:972 msgid "Student's Day" msgstr "FŞtes des ‰tudiants" #: src/hd-data.c:973 msgid "St Agata Day" msgstr "FŞte de Saint Agathe" #: src/hd-data.c:974 msgid "St Canute's Day" msgstr "FŞte de Saint Canute" #: src/hd-data.c:975 msgid "St Cedilia's Day" msgstr "FŞte de Sainte Cİcile" #: src/hd-data.c:976 msgid "St Charles' Day" msgstr "FŞte de Saint Charles" #: src/hd-data.c:977 msgid "St Demetrius' Day" msgstr "FŞte de Saint Dİmİtrius" #: src/hd-data.c:978 msgid "St Dİvote Day" msgstr "FŞte de Saint Dİvote" #: src/hd-data.c:979 msgid "St Eliah's Day" msgstr "FŞte de la Saint ‰lie" #: src/hd-data.c:980 msgid "St Jean Baptiste Day" msgstr "FŞte de Saint Jean-Baptiste" #: src/hd-data.c:981 msgid "St Lucia's Day" msgstr "FŞte de Sainte Lucie" #: src/hd-data.c:982 msgid "St Marguerite's Day" msgstr "FŞte de la Sainte Marguerite" #: src/hd-data.c:983 msgid "St Maroon's Day" msgstr "FŞte de Saint Maron" #: src/hd-data.c:984 msgid "St Michael's Day" msgstr "FŞte de Saint Michel Archange" #: src/hd-data.c:985 msgid "St Olav's Day" msgstr "FŞte de Saint Olav" #: src/hd-data.c:986 msgid "St Olav's Eve" msgstr "Vigiles de la Saint Olav" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "‰pave de Saint-Paul" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "Sainte Rose de Lima" #: src/hd-data.c:989 msgid "St Ursula's Day" msgstr "FŞte de Saint Ursule" #: src/hd-data.c:990 msgid "St Vincent de Paul's Day" msgstr "FŞte de la Saint Vincent de Paul" #: src/hd-data.c:991 msgid "Suez Victory Day" msgstr "FŞte de la Victoire de Suez" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "Anniversaire de Sultan Qaboos" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:994 msgid "Sweden Day" msgstr "FŞte de la Su¨de" #: src/hd-data.c:995 msgid "S. Doe's Birthday" msgstr "Anniversaire de S. Doe" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "Jour de Tennant-Creek" #: src/hd-data.c:997 msgid "Territory Day" msgstr "FŞte du Territoire" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "Anniversaire du Couronnement de la Princesse" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "Couronnement de la Princesse" #: src/hd-data.c:1000 msgid "The Crown Prince's Birthday" msgstr "Anniversaire du Couronnement du Prince" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "FŞte du Roi" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "FŞte de la Reine" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "FŞte de Topou I" #: src/hd-data.c:1004 msgid "Town Meeting Day" msgstr "Jour du Conseil Municipal" #: src/hd-data.c:1005 msgid "Traditional Day" msgstr "Journİe traditionnelle" #: src/hd-data.c:1006 msgid "Transfer Day" msgstr "Jour du Transfert" #: src/hd-data.c:1007 msgid "Truman Day" msgstr "FŞte de Truman" #: src/hd-data.c:1008 msgid "Union Day" msgstr "FŞte de l'Union" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "Dissolution de l'Union d'avec la Su¨de" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "Journİe des Nations Unies" #: src/hd-data.c:1011 msgid "Unity Factory Day" msgstr "Jour de l'Unitİ des Manifactures" #: src/hd-data.c:1012 msgid "Victor-Schoelcher Day" msgstr "FŞte de Victor-Schoelcher" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "Vidovdan" #: src/hd-data.c:1014 msgid "West Virginia Day" msgstr "FŞte de la Virginie de l'Ouest" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "Vigiles de la Pentec´te" #: src/hd-data.c:1016 msgid "W. Tubman's Birthday" msgstr "Anniversaire de W. Tubman" #: src/hd-data.c:1017 msgid "Yap Day" msgstr "FŞte de Yap" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "Journİe de la Nation tch¨que" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "Zi/Rat" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "Chou/Boeuf" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "Yin/Tigre" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "Mao/Lapin" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "Chen/Dragon" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "Si/Serpent" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "Wu/Cheval" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "Wei/Mouton" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "Shen/Singe" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "You/Coq" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "Xu/Chien" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "Hai/Cochon" #: src/hd-data.c:1287 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1550 msgid "Cel" msgstr "Cel" #: src/hd-data.c:1692 src/hd-data.c:2225 msgid "Chi" msgstr "Chi" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "Ne peut produire correctement le calendrier luni-solaire pour %d" #: src/hd-data.c:2227 src/hd-data.c:3730 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2423 msgid "Chr" msgstr "Chr" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "FRR" #: src/hd-data.c:2778 src/hd-data.c:2960 msgid "Heb" msgstr "Hİb" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "AMO" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "EGO" #: src/hd-data.c:4447 msgid "OxN" msgstr "OxN" #: src/hd-data.c:4449 msgid "OxO" msgstr "OxO" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "Per" #: src/hd-data.c:4847 msgid "Zod" msgstr "Zod" #: src/hd-use.c:929 msgid " day" msgstr " jour" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "Liste permanente des jours de fŞte" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*s l'annİe %0*d est une annİe bissextile" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*s l'annİe %0*d n'est pas une annİe bissextile" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*s l'annİe %d est une annİe bissextile" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*s l'annİe %d n'est pas une annİe bissextile" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr " = %+4d jour" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr " = %+4d jours" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s contient %d le maximum d'entrİes maintenant!%s" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "Compilİ avec %s%s pour %s%s%s%s" #: src/help.c:75 msgid "# Day number (must be defined)" msgstr "# nombre du jour (doit Ştre dİfini)" #: src/help.c:76 msgid "# Year number (must be defined)" msgstr "# nombre de l'annİe (doit Ştre dİfini)" #: src/help.c:77 msgid "# Weekday name (may be defined)" msgstr "# nombre de la semaine (peut Ştre dİfini)" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "Groupe mois (exactement un champs doit Ştre dİfini) :" #: src/help.c:79 msgid "# Month number" msgstr "# nombre du mois" #: src/help.c:80 msgid "# Month name" msgstr "# nom du mois" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "Mise en İvidence des groupes (tous les membres doivent Ştre dİfinis) :" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "Dİbut de la sİquence de mise en İvidence (caract¨re marqueur)" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "Fin de la sİquence de mise en İvidence (caract¨re marqueur)" #: src/help.c:86 msgid "Character replacement:" msgstr "Caract¨re de remplacement :" #: src/help.c:87 #, c-format msgid "Space/blank ('%c') character" msgstr "Caract¨re d'espacement (ÂĞ %c Âğ)" #: src/help.c:88 #, c-format msgid "Underscore ('%c') character" msgstr "Caract¨re de soulignement (ÂĞ %c Âğ)" #: src/help.c:89 #, c-format msgid "Percent ('%c') character" msgstr "Caract¨re de pourcentage (ÂĞ %c Âğ)" #: src/help.c:90 #, c-format msgid "Backslash ('%c') character" msgstr "Caract¨re barre oblique inverse (ÂĞ %c Âğ)" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "Tous les İlİments de format marquİs par # peuvent Ştre optionnels" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "contient une instruction de format, dont le patron est comme suit :" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[ALIGNEMENT [SIGNE] [Z‰RO] LARGEUR [STYLE] [SUFFIXE] FORMAT]" #: src/help.c:94 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "Groupe d'alignement (exactement un membre doit Ştre dİfini) :" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "contenu du champ placİ   la marge de gauche utilisant la LARGEUR" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "contenu du champ placİ au centre utilisant la LARGEUR" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "contenu du champ placİ   la marge de droite utilisant la LARGEUR" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "SIGNE (peut Ştre dİfini) :" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "La valeur numİrique est prİcİdİe d'un signe" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "Z‰RO (peut Ştre dİfini) :" #: src/help.c:104 msgid "Numerical value is filled with leading zero(es)" msgstr "La valeur numİrique est prİcİdİe de zİros" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "LARGEUR (doit Ştre dİfinie) :" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "Le champ est de largeur N (%d..%d)" #: src/help.c:107 msgid "STYLE group (exactly one member may be defined):" msgstr "Groupe de STYLE (exactement un membre peut Ştre dİfini) :" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "contenu du champ converti en majuscules" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "contenu du champ converti en minuscules" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "contenu du champ converti en mots en majuscules" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "SUFFIXE (peut Ştre dİfini) :" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "Valeur numİrique est fournie avec un nombre ordinal en suffixe" #: src/help.c:114 msgid "FORMAT group (exactly one member must be defined):" msgstr "Groupe FORMAT (exactement un membre doit Ştre dİfini) :" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "" "le contenu du champ n'est pas coupİ apr¨s la position dİfinie par la LARGEUR" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "le contenu du champ est coupİ apr¨s la position dİfinie par la LARGEUR" #: src/help.c:130 msgid "legal holidays" msgstr "jours de fŞte lİgaux" #: src/help.c:131 msgid "holidays" msgstr "jours de fŞte" #: src/help.c:132 msgid "Mondays" msgstr "Lundi" #: src/help.c:133 msgid "Tuesdays" msgstr "Mardi" #: src/help.c:134 msgid "Wednesdays" msgstr "Mercredi" #: src/help.c:135 msgid "Thursdays" msgstr "Jeudi" #: src/help.c:136 msgid "Fridays" msgstr "Vendredi" #: src/help.c:137 msgid "Saturdays" msgstr "Samedi" #: src/help.c:138 msgid "Sundays" msgstr "Dimanche" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "Lundi...jeudi" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "Lundi...vendredi" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s : utilise ÂĞ %s %s Âğ avec un de ces arguments" #: src/help.c:243 msgid "OPTION" msgstr "OPTION" #: src/help.c:256 msgid " Display help text and quit program" msgstr " afficher l'aide-mİmoire" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr " afficher l'aide-mİmoire İtendu" #: src/help.c:291 msgid " Display software license and quit program" msgstr " afficher la license du logiciel" #: src/help.c:302 msgid " Display version information and quit program" msgstr " afficher la version du logiciel et quitter" #: src/help.c:313 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr " fixer le statut de fin d'exİcution   %d pour ÂĞ %s Âğ etc." #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " crİer un fichier rİponse pour l'option ÂĞ %cFILE Âğ" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr "" " %-3s = conserver les arguments de la ligne de commande dans le fichier " "%s" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" " crİer le script de shell qui contiendra les arguments de la ligne " "de commande" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Nom du fichier script" #: src/help.c:360 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" " dİfinir des dates globales variables \"DVAR->a...d|f...s|u...|z\"" #: src/help.c:364 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" " %-3s = dİfinition de \"DVAR%s%s%s\" sİparİe par les caract¨res ÂĞ %s Âğ" #: src/help.c:369 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" " i.e. %sv a%s1127%sb%s054 fixer ÂĞ a Âğ au 27 Nov et ÂĞ b Âğ au 4 " "Mai" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr "" " exporter les variables locales des dates d'un fichier   l'autre" #: src/help.c:393 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr " dİfinir les variables globales de texte \"TVAR->%ca...%cz\"" #: src/help.c:398 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" " %-3s = dİfinition de \"TVAR%sTEXTE\" sİparİ par les caract¨res ÂĞ %s Âğ" #: src/help.c:403 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" " i.e. %sr %ca%sfoo%s%cb%sbar fixer ÂĞ %ca Âğ   ÂĞ foo Âğ et ÂĞ %cb " "Âğ   ÂĞ bar Âğ" #: src/help.c:409 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" " = dİfinition de \"TVAR[%s|%c%s]COMMANDE\" sİparİe par les " "caract¨res ÂĞ %s Âğ" #: src/help.c:414 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" " i.e. %sr %ca%sfoo assigner la sortie de la commande ÂĞ foo Âğ   " "ÂĞ %ca Âğ" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr "" " exporter les variables locales de texte d'un fichier   l'autre" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "" " Afficher seulement les dates fixes qui ne sont pas exclues par %s" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr " %-3s = un ou plusieurs des caract¨res suivants. Si le caract¨re" #: src/help.c:448 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " est une MINUSCULE, cela implique une non-exclusion !" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = exclusion de tout %s" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "" " %-3s = liste de ÂĞ %c[DATE][%c[DATE]] Âğ et/ou ÂĞ %c[DATE][%c[DATE]] Âğ" #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr " expressions sİparİes par des caract¨res ÂĞ %s Âğ" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr " Afficher seulement les dates fixes concordant avec %s" #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "" " %-3s = Tout texte respectivement \\\"expression rİguli¨re\\\" prİfİrİ" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr " ignorer la casse si l'option ÂĞ %s Âğ est fournie" #: src/help.c:520 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " renverser le sens de l'appairage de l'option ÂĞ %s Âğ" #: src/help.c:531 msgid " Display some debug information" msgstr " afficher quelques informations de dİbogage" #: src/help.c:539 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal informations si les maximums internes sont atteints" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" " = handled comme ÂĞ internal Âğ et les noms de fichier qui sont " "traitİs" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled comme ÂĞ internal Âğ et les noms de fichier qui ne " "sont pas traitİs" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr "" " = all identique   ÂĞ handled Âğ et ÂĞ unhandled Âğ ensemble" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" " = abort identique   ÂĞ all Âğ et abandonner si le fichier ne " "peut-Ştre traitİ" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr " utiliser un format spİcial pour la feuille de calendrier" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr "" " [MOD] = - utiliser un format standard pour la feuille de calendrier" #: src/help.c:596 msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" " utiliser la r¨gle des annİes bissextiles pour les ‰glises " "orthodoxes de l'Est" #: src/help.c:606 msgid " Provide calendar sheet with week numbers" msgstr "" " afficher la feuille de calendrier avec les numİros de semaine" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " dİterminer le type de numİros semaine (actuellement: %s)" #: src/help.c:618 msgid "Standard" msgstr "Standard" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes numİros de semaine ISO-8601:1988" #: src/help.c:631 msgid " = no Standard week numbers" msgstr " = no numİros standards de semaine" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr "" " supprimer la sortie de la feuille de calendrier explicitement" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr " relayer la sortie   un paginateur externe ÂĞ %s Âğ" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr " relayer la sortie au paginateur interne simple" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr "" " dİsactiver le surlignage du texte, jours de fŞte, jour courant" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr " forcer le surlignage des sİquences si la sortie est relayİe" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" " fixer le surlignage des paires de sİquence 1 (=jour actuel) et 2 " "(=jour de fŞte)" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "" " %-3s = surligner les paires de sİquence sİparİes par les caract¨res ÂĞ " "%s Âğ" #: src/help.c:716 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" " i.e. %sH \\x2%s\\xAE utiliser les valeurs hexadİcimales 2 et " "AE pour la sİquence 1" #: src/help.c:721 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" " i.e. %sH %s%s*%s* utiliser les caract¨res ÂĞ * Âğ et ÂĞ * Âğ " "pour la sİquence 2" #: src/help.c:732 msgid " Modify format of year calendar" msgstr " modifier le format du calendrier de l'annİe" #: src/help.c:736 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr " %-3s = 1|2|3|4|6|12 nombre de blocs (actuellement: %d)" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr "" " utiliser des jours consİcutifs de l'annİe dans la feuille de " "calendrier" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b utiliser les deux notations de date (jour du mois+annİe)" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr "" " utiliser les jours consİcutifs de l'annİe de la liste perpİtuelle " "des FŞtes" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b utiliser les deux notations de date (jour du mois+annİe)" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr "" " utiliser les jours consİcutifs de l'annİe d'une liste fixe de dates" #: src/help.c:795 #, c-format msgid " Set starting day of week (actual: %s)" msgstr " fixer le jour du dİbut de la semaine (actuellement: %s)" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr " relayer la sortie via ÂĞ %s Âğ" #: src/help.c:857 msgid "UNKNOWN" msgstr "INCONNU" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" " [%-3s] = adresse de courrier, autrement le courrier est expİdiİ   ÂĞ %s Âğ" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "" " afficher la liste perpİtuelle des jours de fŞte (annİes de %d   %d)" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr " n = jours lİgaux et fİriİs" #: src/help.c:883 msgid " N = Legal days only" msgstr " N = jours lİgaux seulement" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s ordre dİcroissant de trie" #: src/help.c:897 msgid " Suppress leading blank line of eternal holiday list" msgstr "" " exclure les lignes blanches en prİfixe de la liste perpİtuelle des " "FŞtes" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr " exclure les titres de la liste perpİtuelle des FŞtes" #: src/help.c:919 msgid " Provide eternal holiday list with astronomical data" msgstr "" " afficher la liste perpİtuelle des FŞtes avec des donnİes " "astronomiques" #: src/help.c:931 msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier Baha " "des FŞtes" #: src/help.c:943 msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier Baha " "des mois" #: src/help.c:955 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier Celte " "des FŞtes" #: src/help.c:967 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier " "flexible Chinois des FŞtes" #: src/help.c:979 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier " "flexible Chinois des mois" #: src/help.c:991 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier Chinois " "des FŞtes" #: src/help.c:1003 msgid " Provide eternal holiday list with Chinese calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier Chinois " "des mois" #: src/help.c:1015 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier " "Chrİtien de l'Ouest des FŞtes" #: src/help.c:1027 msgid " Provide eternal holiday list with Coptic calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier Copte " "des mois" #: src/help.c:1039 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier " "‰thyopien des mois" #: src/help.c:1051 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier de la " "Rİvolution Fran§aise des mois" #: src/help.c:1063 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier Hİbreux " "des FŞtes" #: src/help.c:1075 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier Hİbreux " "des mois" #: src/help.c:1087 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier civil " "Indien des mois" #: src/help.c:1099 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier civil " "Islamique des FŞtes" #: src/help.c:1111 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier civil " "Islamique des mois" #: src/help.c:1123 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier " "flexible Japonais des FŞtes" #: src/help.c:1135 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier " "flexible Japonais des mois" #: src/help.c:1147 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier " "Japonais des FŞtes" #: src/help.c:1159 msgid " Provide eternal holiday list with Japanese calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier " "Japonais des mois" #: src/help.c:1172 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier " "multiculturel des FŞtes du Nouvel An" #: src/help.c:1184 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec l'ancien calendrier " "Armİnien des mois" #: src/help.c:1196 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec l'ancien calendrier " "‰gyptien des mois" #: src/help.c:1208 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le nouveau calendrier " "Orthodoxe des FŞtes" #: src/help.c:1220 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec l'ancien calendrier " "Orthodoxe des FŞtes" #: src/help.c:1232 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier Perse " "Jalaali des FŞtes" #: src/help.c:1244 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" " afficher la liste perpİtuelle des FŞtes avec le calendrier Perse " "Jalaali des mois" #: src/help.c:1256 msgid " Provide eternal holiday list with zodiacal marker data" msgstr "" " afficher la liste perpİtuelle des FŞtes avec les rep¨res du Zodiac" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr "" " afficher la liste perpİtuelle des FŞtes avec les FŞtes spİcifiques " "du pays" #: src/help.c:1272 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr "" " %-3s = code simple du pays, code de territoire ou une liste de ceux-ci," #: src/help.c:1277 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" " lesquels sont reliİs par les caract¨res ÂĞ %s Âğ. Pays/territoires," #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr " indiquİs par # ont un registre incomplet des FŞtes" #: src/help.c:1286 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = FŞtes dans %s" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" " fixer la valeur de rİfİrence pour l'augmentation/l'initialisation " "du temps respectivement selon la longueur" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" " %-3s = valeur angulaire respectivement factorise dans la gamme: " "%+.1f...%+.1f" #: src/help.c:1322 msgid " Set base data of Earth's atmosphere" msgstr " utiliser la base de donnİes de l'atmosph¨re terrestre" #: src/help.c:1326 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "" " %-3s = pression de l'air et tempİrature sİparİs par le caract¨re ÂĞ %s Âğ" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " pression de l'air en millibar (actuellement: %.3f)" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" " tempİrature de l'air en degrİs Celsius (actuellement: %+.3f)" #: src/help.c:1344 msgid " Limit rise/set times of Sun to the day" msgstr " limiter l'augmentation/fixer l'heure Solaire   celle du jour" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" " reprİsenter les temps astronomiques et les donnİes avec la plus " "grande prİcision" #: src/help.c:1366 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " exİcuter les commandes ÂĞ %c%c[%s] Âğ du shell" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " et les affectations \"TVAR[%s|%c%s]COMMANDE\"" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr " modifier la base de temps astronomique des fonctions" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr " respectivement, modifier le temps du dİbut du cycle" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] valeur du dİcalage de temps " "(actuellement: %s%02d%s%02d == GMT%s)" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] valeur du dİcalage de temps " "(actuellement: %s%02d%s%02d == GMT%s)" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr " modifier le temps du fin de cycle" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] valeur de fin " "(actuellement: %02d%s%02d)" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr " modifier le cycle-pas-du-temps" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" " %-3s = MMMM|HH%s[MM] valeur du pas du temps (actuellement: %02d%s" "%02d)" #: src/help.c:1453 msgid " Change base year of calendar" msgstr " modifier l'annİe de base du calendrier" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" " %-3s = [%s|%s]AAAA valeur de dİcalage de l'annİe (actuellement: %d)" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr " utiliser la pİriode de la rİforme grİgorienne" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " pİriode actuelle respectİe: %02d-%02d %s %0*d" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr " %-*d%*s = fixer la pİriode  : %02d-%02d %s %0*d" #: src/help.c:1485 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr " %-3s = %s%c%s%s%s%s%s%s fixer la pİriode explicitement" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" " fixer l'ordre des champs de date en utilisant le format texte %s" #: src/help.c:1502 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " format actuel: (%s) ÂĞ %s Âğ (%s)" #: src/help.c:1504 msgid "self-defined" msgstr "auto-dİfini" #: src/help.c:1509 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = le format est: ÂĞ %s Âğ (%s)" #: src/help.c:1517 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" " %-3s = dİfinir le format individuel. Les İlİments de format respectİs " "sont:" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr " dİfinir une paire traduisible de caract¨res spİciaux du pays" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr " %-3s = dİfinitions en MAJUSCULES\"\"MINUSCULES..." #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" " i.e. ÂĞ %s%s%s%s%s%s%s%s Âğ %-3s provoque la conversion correcte " "des" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" " caract¨res prİcİdents spİciaux dans un format individuel de " "format de date," #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" " lequel a un composant d'instruction de format de STYLE et dont" #: src/help.c:1582 msgid " they are used by the character set used in Germany" msgstr "" " lesquels sont utilisİs par le jeu de caract¨res utilisİ en " "Allemagne" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ DATES FIXES +++" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" " utiliser le fichier standard des ressources ÂĞ .%s%s Âğ pour la " "liste des dates fixes" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" " utiliser le fichier standard des ressources ÂĞ %s%s Âğ pour la liste " "des dates fixes" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr " pİriode impliquİe: Aujourd'hui" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr "" " c = afficher seulement les dates pour les dates fixes existantes" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr " C = afficher les dates pour les dates fixes inexistantes aussi" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" " [MOD] = un (ou plusieurs) des modificateurs suivants indiquİs par #" #: src/help.c:1654 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" " %-3s = Titre du texte utilisİ pour la liste des dates " "fixes" #: src/help.c:1657 #, c-format msgid " Actual: `%s'" msgstr " Actuel : ÂĞ %s Âğ" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" " # g[MODE] = groupe des dates fixes par jour utilisant le MODE " "texte" #: src/help.c:1682 msgid " 1. Representation of text" msgstr " 1. reprİsentation du texte" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr "" " = fixer la largeur graphique textuelle du biorythme" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d...%d longueur d'un axe simple" #: src/help.c:1711 msgid " = Set height of the Moon phase text graphics" msgstr "" " = fixer la hauteur graphique textuelle des phases " "de la lune" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d nombre total de lignes" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr " # a = afficher l'origine des dates fixes" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr "" " # A = afficher   l'aide d'une liste alternative de " "format" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr " # e = inclure les jours lİgaux et fİriİs" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr " # E = inclure les jours lİgaux seulement" #: src/help.c:1763 msgid " # k = Display week number" msgstr " # k = afficher les numİros de semaine" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr "" " # o = omettre la rİpİtition des champs des dates fixes" #: src/help.c:1787 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" " # Q = omettre les lignes blanches prİcİdent la liste " "des dates fixes" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr " # U = omettre la partie date des dates fixes" #: src/help.c:1811 msgid " # J = Suppress text part of fixed dates" msgstr " # J = omettre la partie texte des dates fixes" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr "" " # x = exclure les titres de la liste des dates fixes" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr "" " # z = afficher les nombres consİcutifs des dates fixes" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" " # Z = afficher les dates pour les dates fixes " "inexistantes" #: src/help.c:1855 msgid " 2. Respected period" msgstr " 2. pİriode respectİe" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" " = gİrer le ÂĞ 29 fİvrier Âğ pour les annİes non-" "bissextiles" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "" " %-3s = february respecter le ÂĞ 28 fİvrier Âğ" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march respecter le ÂĞ 1er mars Âğ" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" " # d = inclure la date courante si la liste des pİriodes " "est gİnİrİe" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" " # l = gİnİrer la liste des pİriodes au lieu d'une " "pİriode simple" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr " # Nd = jour simple absolu N" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = jour simple absolu N" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = jour simple N relatif au jour courant" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s futurs" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr " = %s passİs" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr " # Nw = N semaines compl¨tes" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1¨re semaine / derni¨re semaine de " "l'annİe prİcİdente" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 1¨re...52e semaine (toujours)" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53e semaine (parfois)" #: src/help.c:1953 msgid " N = 99 Last week" msgstr " N = 99 derni¨re semaine" #: src/help.c:1956 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # %s%s = jour unique %s du mois %s" #: src/help.c:1962 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr " # %s%sN = Ni¨me jour simple de semaine %s du mois %s" #: src/help.c:1967 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" " N = 1...4 1er...4e jour de semaine %s (toujours)" #: src/help.c:1972 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" " N = 5 5e jour de semaine %s (quelques fois)" #: src/help.c:1976 #, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 dernier jour de semaine %s" #: src/help.c:1980 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN%s = Ni¨me simple jour de semaine %s" #: src/help.c:1985 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" " N = 1...51 1er...51e jour de semaine %s " "(toujours)" #: src/help.c:1990 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" " N = 52|53 52|53e jour de semaine %s (quelques " "fois)" #: src/help.c:1994 #, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 dernier jour de semaine %s" #: src/help.c:1999 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr "" " # %cwN%s = jour simple de semaine %s de la Ni¨me semaine" #: src/help.c:2004 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" " N = 0 %s lequel n'est pas dans la 1¨re " "semaine" #: src/help.c:2009 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" " N = 1...51 %s de la 1¨re...51e semaine " "(toujours)" #: src/help.c:2014 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" " N = 52|53 %s de 52|53e semaine (quelques fois)" #: src/help.c:2018 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 %s de la derni¨re semaine" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "" " # %c%c[[%s|%s]N] = Ni¨me jour relatif au dimanche de P˘ques" #: src/help.c:2030 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" " # %c%c[%s|%s]N%s = simple Ni¨me jour de semaine relatif au " "dimanche de P˘ques" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "" " # %c%c[[%s|%s]N] = Ni¨me jour relatif au dimanche de P˘ques" #: src/help.c:2042 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" " # %c%c[%s|%s]N%s = simple Ni¨me jour de semaine relatif   la date " "courante de P˘ques" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr " # %c?[[%s|%s]N] = Ni¨me jour relatif   une date variable" #: src/help.c:2054 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" " # %c?[%s|%s]N%s = simple Ni¨me jour de semaine relatif   une date " "variable" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr " # t|T = afficher demain" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = afficher une semaine compl¨te" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" " [MOD] = %s afficher les prochains jusqu'  la fin de " "la semaine" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s afficher les prİcİdents jusqu'au dİbut de " "la semaine" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = afficher un mois complet" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" " [MOD] = %s afficher les prochains jours jusqu'au\n" " dernier jour du mois" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s afficher les prİcİdents jusqu'au dİbut du\n" " mois" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = afficher une annİe compl¨te" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" " [MOD] = %s afficher les prochains jours jusqu'  \n" " la fin de l'annİe" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" " = %s afficher les jours prİcİdents jusqu'au\n" " dİbut de l'annİe" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr "" " utiliser des fichiers alternatifs au lieu du fichier standard de\n" " ressources" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = afficher seulement les dates fixes existantes" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr " F = afficher les dates fixes n'ayant pas d'existence aussi" #: src/help.c:2173 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr " %-3s = lister les fichiers reliİs par le caract¨res ÂĞ %s Âğ" #: src/help.c:2184 msgid " Define additional resource file line" msgstr "" " utiliser des fichiers alternatifs au lieu du fichier standard de\n" " ressources" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = n'importe quel ligne d'un fichier ressource" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "%cDATE" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "Utiliser la ÂĞ DATE Âğ au lieu de la date courante" #: src/help.c:2202 #, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" "Format date: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" " %s%cwN[%s], nom du mois[%s], \n" " nom du jour de la semaine[N] or %s" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "%cFICHIER" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "Prİcharger les options et les commandes du ÂĞ FICHIER Âğ" #: src/help.c:2224 msgid "COMMAND" msgstr "COMMANDE" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = mois dans l'intervalle: %d...%d" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr " ou: nom du mois | %s | %s%s | %s%s | %s%s" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr " Liste: %s[%s%s]%s...%s%s[%s%s]" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr " Intervalle: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = intervalle des annİes: %d...%d" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr " Liste: [%s%s]%s%s...%s[%s%s]%s" #: src/help.c:2257 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr " Intervalle: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" #: src/help.c:2283 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr " %sh, %s afficher l'aide-mİmoire et quitter" #: src/help.c:2286 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " %shh, %s afficher l'aide-mİmoire İtendu et quitter" #: src/help.c:2290 #, c-format msgid " %sL, %s Display software license and quit program" msgstr " %sL, %s afficher la license du logiciel et quitter" #: src/help.c:2294 #, c-format msgid " %sV, %s Display version information and quit program" msgstr " %sV, %s afficher le nom et la version du logiciel et quitter" #: src/help.c:2302 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " %sp, %s relayer la sortie   un paginateur externe ÂĞ %s Âğ" #: src/help.c:2309 src/help.c:2314 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " %sp, %s relayer la sortie au paginateur interne simple" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "Ce logiciel n'a pas la prİtention d'Ştre complet, correct ou utile." #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "En principe, je ne suis pas responsable pour tous dommages ou pertes" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "(implicites ou explicites) rİsultant de son utilisation." #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "Si vous utilisez ce logiciel, vous acceptez sans restriction " #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "cette entente qui vous lie L‰GALEMENT !!" #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "Ce logiciel est gratuit; vous pouvez le redistribuer ou le modifier" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" "selon les termes de la ÂĞ GNU General Public License Âğ telle que publiİe par" #: src/help.c:2366 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "par la ÂĞ Free Software Foundation Âğ; soit pour la version 3, ou (selon" #: src/help.c:2368 msgid "any later version." msgstr "votre option) toutes autres version ultİrieures." #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "Vous devriez avoir re§u une copie ÂĞ GNU General Public License Âğ" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "distribuİe avec ce logiciel; sinon İcrivez moi   l'adresse suivante:" #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" #: src/help.c:2452 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Utiliser ÂĞ %s %s|[%s?] Âğ" #: src/help.c:2461 msgid "for more information." msgstr "pour plus informations." #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, c-format msgid "Email bug reports to <%s>" msgstr "Rapporter toutes anomalies   <%s>" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "Page d'accueil de GNU gcal : <%s>" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "Guide utilisateur gİnİral de logiciel GNU : <%s>" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "" "Ce logiciel est gratuit; voir les sources pour les conditions de copie." #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "Il n'y a aucune garantie, ni mŞme la garantie implicite liİe   des" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "raisons COMMER‡IALES ou pour R‰PONDRE € UN BESOIN PARTICULIER." #: src/help.c:2617 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%s : le programme de calendrier Grİgorien (GNU cal) %s" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Usage : %s [[OPTION...] [%cDATE] [%cFICHIER...]] [COMMANDE]" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Usage : %s [[OPTION...] [%cFICHIER...]] [COMMANDE]" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr " 4.0 ou 4.02" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr " plus rİcente que 5.0" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "++ 3.0 ou plus rİcente" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "5.1 ou plus rİcente" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "compilateur inconnu" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr " sur " #: src/help.c:2827 msgid "(bad version)" msgstr "(mauvaise version)" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "compilateur inconnu (SDK?)" #: src/help.c:2942 msgid " later than 4.5" msgstr " plus rİcente que 4.5" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "++ 1.0 ou plus" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr " 1.0 ou 1.5?" #: src/help.c:3075 msgid "unknown " msgstr "inconnu " #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "Version %d.%d" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "Version %d" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "version inconnue" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s sur Alpha)" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s sous VAX)" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr " (NetBSD avant 0.9)" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 ou plus)" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 ou plus)" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 ou plus)" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "CW" #: src/print.c:566 msgid "Week" msgstr "Semaine" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "pm" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "am" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "°'\"" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "h'\"" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "Ne peut exİcuter la commande dans le fichier ÂĞ %s Âğ.\n" "Ligne %ld: %s" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" "Commande exİcutİe (statut de fin d'exİcution=%d) du fichier ÂĞ %s Âğ.\n" "Ligne %ld: %s" #: src/rc-use.c:514 msgid "Emo" msgstr "Emo" #: src/rc-use.c:519 msgid "Int" msgstr "Int" #: src/rc-use.c:524 msgid "Phy" msgstr "Phy" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "ÂĞ Liste perpİtuelle des fŞtes Âğ" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "ÂĞ Interne Âğ" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr " ; Semaine %s" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "Semaine %s" #: src/rc-utils.c:398 src/rc-utils.c:415 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%s: date fournie invalide -- %s\n" "%s\n" "%s\n" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "Jour de l'annİe bissextile fixİ   ÂĞ %02d-%s Âğ dans le fichier ÂĞ %s Âğ." #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "Ligne %ld: %s" #: src/rc-utils.c:3634 src/utils.c:275 #, c-format msgid "%s: abort, " msgstr "%s: abandon, " #: src/rc-utils.c:3642 #, c-format msgid "illegal variable definition in file `%s'" msgstr "Dİfinition de variable illİgale dans le fichier ÂĞ %s Âğ" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "dİfinition illİgale de variable ÂĞ %c Âğ" #: src/rc-utils.c:3651 #, c-format msgid "illegal variable operation in file `%s'" msgstr "opİration illİgale sur une variable dans le fichier ÂĞ %s Âğ" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "opİration illİgale sur la variable ÂĞ %c Âğ" #: src/rc-utils.c:3659 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "Variable ÂĞ %c Âğ est indİfinie dans le fichier ÂĞ %s Âğ" #: src/rc-utils.c:3663 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "valeur invalide assignİe   la variable ÂĞ %c Âğ dans le fichier ÂĞ %s Âğ" #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Argument invalide dans la ligne de commande fournie -- %s" #: src/rc-utils.c:3696 #, c-format msgid "Argument `%s' of command line ignored." msgstr "Argument ÂĞ %s Âğ de la ligne de commande est ignorİ." #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "Ligne %ld ignorİe: %s" #: src/tty.c:425 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: pour en savoir plus, <%s> pour quitter..." #: src/tty.c:1020 #, c-format msgid "environment variable `%s' not found" msgstr "la variable d'environnement ÂĞ %s Âğ n'a pas İtİ repİrİe" #: src/tty.c:1027 #, c-format msgid "environment variable `%s' not set" msgstr "la variable d'environnement ÂĞ %s Âğ n'est pas initialisİe" #: src/tty.c:1067 msgid "`termcap' file not found" msgstr "fichier ÂĞ termcap Âğ non repİrİ" #: src/tty.c:1072 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "type de terminal inconnu dİfini dans ÂĞ %s Âğ" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: AVERTISSEMENT, %s.\n" "\n" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" "L'annİe invalide pour calculer la date du jour de P˘ques\n" "L'annİe doit se situer dans les bornes (%d...%d)" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "ÂĞ %s Âğ ligne %ld: mİmoire virtuelle İpuisİe (%s=%d)" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" "Champ date invalide dans le fichier ÂĞ %s Âğ.\n" "Ligne %ld: %s" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "Champ du mois invalide (%02d) dans le fichier ÂĞ %s Âğ.\n" "Ligne %ld: %s" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "Champ du jour invalide (%02d) dans le fichier ÂĞ %s Âğ.\n" "Ligne %ld: %s" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" "Dİfinition(s) mal formİes %s dans le fichier ÂĞ %s Âğ.\n" "Ligne %ld: %s" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" "Dİfinition rİcursive ou cyclique %s dans le fichier ÂĞ %s Âğ.\n" "Ligne %ld: %s" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "fichier ÂĞ %s Âğ non repİrİ" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" "Ni¨me jour de la semaine invalide (%d) dans le fichier ÂĞ %s Âğ.\n" "Ligne %ld: %s" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" "Caract¨re d'espacement manquant apr¨s le champ date dans le fichier ÂĞ %s Âğ.\n" "Ligne %ld: %s" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "Ne peut İcrire dans le fichier ÂĞ %s Âğ.\n" "Le disque est plein!" #: src/utils.c:333 #, c-format msgid "sending eMail to <%s> failed" msgstr "İchec d'expİdition de courrier vers ÂĞ %s Âğ" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "ÂĞ %s Âğ ligne %ld: " #: src/utils.c:342 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "ÂĞ %s Âğ ligne %ld: (ÂĞ %s Âğ) ÂĞ %s%d Âğ a İchouİ" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "Erreur de lecture de ÂĞ %s Âğ" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "Caract¨re illİgal dans le fichier rİponse ÂĞ %s Âğ\n" "Ligne %ld: %s" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "ÂĞ %s Âğ ligne %ld: (ÂĞ %s Âğ) taille de table invalide ÂĞ sizeof %s>%d Âğ" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(ÂĞ %s Âğ) le format de la date ÂĞ %s Âğ est invalide" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "%s dans le patron de recherche ÂĞ %s Âğ" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "patron de recherche ÂĞ %s Âğ invalide" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "ÂĞ %s Âğ ligne %ld: (ÂĞ %s Âğ) erreur imprİvue (%d)" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 msgid "internal" msgstr "interne" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: programme stoppİ par le signal %d\n" #: src/utils.c:1081 msgid "th" msgstr "i¨me" #: src/utils.c:1085 msgid "st" msgstr "er" #: src/utils.c:1089 msgid "nd" msgstr "i¨me" #: src/utils.c:1093 msgid "rd" msgstr "i¨me" #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "jour invalide" #: src/utils.c:1129 msgid "Mon" msgstr "Lun" #: src/utils.c:1134 msgid "Tue" msgstr "Mar" #: src/utils.c:1139 msgid "Wed" msgstr "Mer" #: src/utils.c:1144 msgid "Thu" msgstr "Jeu" #: src/utils.c:1149 msgid "Fri" msgstr "Ven" #: src/utils.c:1154 msgid "Sat" msgstr "Sam" #: src/utils.c:1159 msgid "Sun" msgstr "Dim" #: src/utils.c:1180 msgid "Mo" msgstr "Lu" #: src/utils.c:1185 msgid "Tu" msgstr "Ma" #: src/utils.c:1190 msgid "We" msgstr "Me" #: src/utils.c:1195 msgid "Th" msgstr "Je" #: src/utils.c:1200 msgid "Fr" msgstr "Ve" #: src/utils.c:1205 msgid "Sa" msgstr "Sa" #: src/utils.c:1210 msgid "Su" msgstr "Di" #: src/utils.c:1227 msgid "Monday" msgstr "Lundi" #: src/utils.c:1227 msgid "Tuesday" msgstr "Mardi" #: src/utils.c:1227 msgid "Wednesday" msgstr "Mercredi" #: src/utils.c:1227 msgid "Thursday" msgstr "Jeudi" #: src/utils.c:1228 msgid "Friday" msgstr "Vendredi" #: src/utils.c:1228 msgid "Saturday" msgstr "Samedi" #: src/utils.c:1228 msgid "Sunday" msgstr "Dimanche" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "mois invalide" #: src/utils.c:1249 msgid "Jan" msgstr "Jan" #: src/utils.c:1254 msgid "Feb" msgstr "Fİv" #: src/utils.c:1259 msgid "Mar" msgstr "Mar" #: src/utils.c:1264 msgid "Apr" msgstr "Avr" #: src/utils.c:1269 msgid "May" msgstr "Mai" #: src/utils.c:1274 msgid "Jun" msgstr "Jui" #: src/utils.c:1279 msgid "Jul" msgstr "Jui" #: src/utils.c:1284 msgid "Aug" msgstr "Aoğ" #: src/utils.c:1289 msgid "Sep" msgstr "Sep" #: src/utils.c:1294 msgid "Oct" msgstr "Oct" #: src/utils.c:1299 msgid "Nov" msgstr "Nov" #: src/utils.c:1304 msgid "Dec" msgstr "Dİc" #: src/utils.c:1322 msgid "January" msgstr "Janvier" #: src/utils.c:1322 msgid "February" msgstr "Fİvrier" #: src/utils.c:1323 msgid "March" msgstr "Mars" #: src/utils.c:1323 msgid "April" msgstr "Avril" #: src/utils.c:1333 msgid "May " msgstr "Mai" #: src/utils.c:1334 msgid "June" msgstr "Juin" #: src/utils.c:1334 msgid "July" msgstr "Juillet" #: src/utils.c:1335 msgid "August" msgstr "Aoğt" #: src/utils.c:1335 msgid "September" msgstr "Septembre" #: src/utils.c:1336 msgid "October" msgstr "Octobre" #: src/utils.c:1336 msgid "November" msgstr "Novembre" #: src/utils.c:1336 msgid "December" msgstr "Dİcembre" #: src/tcal.c:193 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Usage: %s [--%s | --%s] | [--%s=[+|-]NOMBRE] [ARGUMENT...]\n" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: abandon, " #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "valeur de dİcalage ÂĞ %s Âğ invalide" #: src/tcal.c:909 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: l'option ÂĞ %s Âğ requiert un argument" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: erreur lors de l'exİcution de ÂĞ %s Âğ.\n" #: src/txt2gcal.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "Usage: %s [--%s | --%s] | [FICHIER-TEXTE | -] [DATES]\n" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "%s: pas un fichier rİgulier\n" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "%s: fichier n'a pas İtİ repİrİ.\n" #: src/gcal2txt.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "Usage: %s [--%s | --%s] | [FICHIER-RESSOURCE | -]\n" #~ msgid "Brunei Darussalam" #~ msgstr "Brunei" #~ msgid " %-3s = Any text you like, metacharacters are not respected" #~ msgstr "" #~ " %-3s = tout texte prİfİrİ, les mİtacaract¨res ne sont pas recpectİs" #~ msgid "Compilation options:" #~ msgstr "Options de compilation:" #~ msgid "Starting day of week: %s" #~ msgstr "Dİbut du jour de semaine: %s" #~ msgid "Type of week numbers: %s" #~ msgstr "Type de numİros de semaine: %s" #~ msgid "Base year of calendar: %d" #~ msgstr "Annİe de base du calendier: %d" #~ msgid "Gregorian Reformation: %02d-%02d %s %0*d" #~ msgstr "Rİforme du calendrier Grİgorien: %02d-%02d %s %0*d" #~ msgid "Date format: (%s) `%s' (%s)" #~ msgstr "Format de date: (%s) ÂĞ %s Âğ (%s)" #~ msgid "Respected countries/territories: %d" #~ msgstr "Pays/territoires compris: %d" #~ msgid "Time offset value of astronomical functions: %s%02d%s%02d == GMT%s" #~ msgstr "" #~ "Valeur de dİcalage du temps des fonctions astronimiques: %s%02d%s%02d == " #~ "GMT%s" #~ msgid "or (if this fails) to <%s>." #~ msgstr "ou (en cas d'İchec)   <%s>." #~ msgid "" #~ " +++ If you specify two digits for the year I DON'T assume %2d%s +++" #~ msgstr "" #~ " +++ Si 2 chiffres sont spİcifiİs pour l'annİe %2d%s n'est pas assumİ ++" #~ "+" #~ msgid " +++ `%s' is free software, enjoy =8^) +++" #~ msgstr " +++ ÂĞ %s Âğ est un ÂĞ logiciel gratuit Âğ, amusez-vous =8^) +++" #~ msgid "NULL argument" #~ msgstr "Argument NUL" #~ msgid "out of space" #~ msgstr "Manque d'espace" #~ msgid "too many ()" #~ msgstr "trop de ()" #~ msgid "junk on end" #~ msgstr "rebut rencontrİ   la fin" #~ msgid "*+ operand could be empty" #~ msgstr "*+ l'opİrande pourrait Ştre vide" #~ msgid "nested *?+" #~ msgstr "imbrications *?+" #~ msgid "internal urp" #~ msgstr "urp interne" #~ msgid "?+* follows nothing" #~ msgstr "?+* ne termine pas une expression" #~ msgid "trailing \\" #~ msgstr "suffixe \\" #~ msgid "internal disaster" #~ msgstr "catastrophe interne" #~ msgid "NULL parameter" #~ msgstr "param¨tre ÂĞ NULL Âğ" #~ msgid "corrupted program" #~ msgstr "corruption du programme" #~ msgid "memory corruption" #~ msgstr "corruption de la mİmoire" #~ msgid "corrupted pointers" #~ msgstr "corruption des pointeurs" #~ msgid "internal foulup" #~ msgstr "confusion interne" #~ msgid "start `%c' " #~ msgstr "ÂĞ %c Âğ de dİpart" #~ msgid "anchored " #~ msgstr "ancrİ " #~ msgid "must have \"%s\"" #~ msgstr "devrait avoir ÂĞ %s Âğ" #~ msgid "corrupted opcode" #~ msgstr "opcode corrompu" #~ msgid " Day" #~ msgstr " Jour" #~ msgid "Day number with leading spaces" #~ msgstr "Le jour numİrique prİcİdİ de blancs." #~ msgid "Day number with leading zeroes and trailing suffix" #~ msgstr "Le jour numİrique prİcİdİ de zİros et suivi d'un suffixe." #~ msgid "Day number with leading spaces and trailing suffix" #~ msgstr "Le jour numİrique prİcİdİ de blancs et suivi d'un suffixe." #~ msgid "Abbreviated month name (3 letters)" #~ msgstr "Nom abrİgİ du mois (3 lettres)." #~ msgid "Month number with leading zero" #~ msgstr "Le numİro du mois prİcİdİ de zİros." #~ msgid "Month number with leading space" #~ msgstr "Le numİro du mois prİcİdİ de blancs." #~ msgid "Complete year number with leading zeroes" #~ msgstr "L'annİe numİrique prİcİdİ de zİros." #~ msgid "Complete year number with leading spaces" #~ msgstr "L'annİe numİrique prİcİdİ de blancs." #~ msgid "Last two digits of year number with leading zero" #~ msgstr "Les 2 derniers chiffres de l'annİe prİcİdİs de zİros." #~ msgid "Last two digits of year number with leading space" #~ msgstr "Les 2 derniers chiffres de l'annİe prİcİdİs de blancs." #~ msgid "Complete weekday name" #~ msgstr "Nom complet des jours de la semaine." #~ msgid "Abbreviated weekday name (3 letters)" #~ msgstr "Nom abrİgİ des jours de la semaine (3 lettres)" #~ msgid "Abbreviated weekday name (2 letters)" #~ msgstr "Nom abrİgİ des jours de la semaine (2 lettres)" #~ msgid "y" #~ msgstr "a" #~ msgid "m" #~ msgstr "m" #~ msgid "w" #~ msgstr "s" #~ msgid "d" #~ msgstr "j" #~ msgid "Swiss" #~ msgstr "Suisse" #~ msgid "Czech" #~ msgstr "Tch¨que" #~ msgid "Danish" #~ msgstr "Danois" #~ msgid "Finnish" #~ msgstr "Finlandais" #~ msgid "British" #~ msgstr "Britannique" #~ msgid "Dutch" #~ msgstr "Hollandais" #~ msgid "Polish" #~ msgstr "Polonais" #~ msgid "U.S. American" #~ msgstr "Amİricain ‰.U." #~ msgid "Std" #~ msgstr "Std" #~ msgid "Trinity Sunday" #~ msgstr "Dimanche de la Trinitİ" #~ msgid "Slav Missionaries Method's Day" #~ msgstr "Jour des missionnaires mİthodistes slaves" #~ msgid "Ferragosto" #~ msgstr "Ferragosto" #~ msgid "Puebla's Battle" #~ msgstr "Bataille de la Puebla" #~ msgid "Breed fusion Day" #~ msgstr "Breed fusion Day" #~ msgid "Olsok Eve" #~ msgstr "Veille de la fŞte de Olsok" #~ msgid "St. John's Eve" #~ msgstr "Veille de la St-Jean" #~ msgid "Midsummer's Day" #~ msgstr "Solstice d'İtİ" #~ msgid "Sylvester" #~ msgstr "St-Sylvestre" #~ msgid "Walpurgis Night" #~ msgstr "Nuit de Walpurgis" #~ msgid "" #~ " %-3s = Definition of \"tvar%s`text'\" separated by `%s' characters" #~ msgstr "" #~ " %-3s = dİfinition de \"tvar%s`text'\"\n" #~ " sİparİ par les caract¨res `%s'" #~ msgid " %-3s = Email address" #~ msgstr " %-3s = transmettre   l'adresse de courrier İlectronique" #~ msgid " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr " Intervalle: [%s%s]%s%s[%s%s]%s" #~ msgid "" #~ "%sh|hh = Help screen; %sL = License; %sV = Version; %su = Suppress " #~ "calendar sheet" #~ msgstr "" #~ "%sh|hh = İcran d'aide; %sL = License; %sV = Version; \n" #~ "%su = supprimer la feuille de calendrier" #~ msgid "%si[-] = Special calendar format; " #~ msgstr "%si[-] = format spİcial de calendrier; " #~ msgid "%sp = Simple pager; " #~ msgstr "%sp = paginateur simple; " #~ msgid "%sH yes = Use highlighting" #~ msgstr "%sH yes = faire la mise en İvidence" #~ msgid "" #~ "%sb %-3s = Year calendar with 1|2|3|4|6|12 blocks; %sH no = Disable " #~ "highlighting" #~ msgstr "" #~ "%sb %-3s = annİe de calendrier avec 1|2|3|4|6|12 blocs; \n" #~ "%sH no = dİsactiver la mise en İvidence " #~ msgid "%sj[] = Output of consecutive day of year (Modifiers: [b n nb" #~ msgstr "" #~ "%sj[] = afficher les jours consİcutifs d'une annİe (modificateurs: [b " #~ "n nb" #~ msgid "" #~ "%ss %-3s = Starting day of week (%s = 0|today | %d|%s | %d|%s | ... | %d|" #~ "%s)" #~ msgstr "" #~ "%ss %-3s = dİbut des jours de semaine (%s = 0|aujourd'hui \n" #~ " | %d|%s | %d|%s | ... | %d|%s)" #~ msgid "%sn|N[%s] = Display eternal holiday list (Year in range: %d...%d)" #~ msgstr "" #~ "%sn|N[%s] = afficher la liste perpİtuelle des fŞtes \n" #~ " (intervalle des annİes: %d...%d)" #~ msgid "" #~ "%sc|C[] = Fixed date list of file `.%s%s'; %sf|F %s[%s%s%s...]=Use file " #~ "%s" #~ msgstr "" #~ "%sc|C[] = fichier de la liste des dates fixes\n" #~ " `.%s%s'; %sf|F %s[%s%s%s...]=\n" #~ " utiliser le fichier %s" #~ msgid "" #~ "%sc|C[] = Fixed date list of file `%s%s'; %sf|F %s[%s%s%s...]=Use file %s" #~ msgstr "" #~ "%sc|C[] = fichier de la liste des dates fixes\n" #~ " `%s%s'; %sf|F %s[%s%s%s...]=\n" #~ " utiliser le fichier %s" #~ msgid "" #~ "%s = Month in range: %d...%d List: %s[%s%s]%s...%s" #~ "%s[%s%s]" #~ msgstr "" #~ "%s = intervalle des mois: %d...%d List:\n" #~ " %s[%s%s]%s...%s%s[%s%s]" #~ msgid "" #~ " or: month name|%s[%s|%s|%s] Range: %s[%s%s]%s%s[%s" #~ "%s]" #~ msgstr "" #~ " ou: nom de mois|%s[%s|%s|%s] intervalle:\n" #~ " %s[%s%s]%s%s[%s%s]" #~ msgid "" #~ "%s = Year in range: %d...%d%*s%*s List: [%s%s]%s%s...%s[%s" #~ "%s]%s" #~ msgstr "" #~ "%s = intervalle des annİes: %d...%d%*s%*s Liste: [%s%s]%s%s...%s[%s" #~ "%s]%s" #~ msgid "" #~ " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr "" #~ " intervalle: [%s%s]%s%s[%s%s]%s" #~ msgid " on %s" #~ msgstr " sur %s" #~ msgid " unknown date" #~ msgstr " date inconnue" #~ msgid "" #~ "%s: invalid date given -- %s\n" #~ "%s\n" #~ msgstr "" #~ "%s: date donnİe invalide -- %s\n" #~ "%s\n" #~ msgid "Abort!" #~ msgstr "Abandon!" #~ msgid "" #~ "illegal date variable operation (%s)\n" #~ "%s\n" #~ msgstr "" #~ "Opİration illİgale sur une variable de date (%s).\n" #~ "%s\n" #~ msgid "" #~ "illegal text variable definition (%s)\n" #~ "%s\n" #~ msgstr "" #~ "Texte illİgal pour une dİfinition de variable (%s).\n" #~ "%s\n" #~ msgid "A" #~ msgstr "est" #~ msgid "NO" #~ msgstr "n'est pas" gcal-4.1/po/zh_CN.po0000664000000000000000000042754313041164032011145 00000000000000# Chinese simplified translation for GNU gcal. # Copyright (C) 2004 Thomas Esken (msgids) # This file is distributed under the same license as the gcal package. # Tianze Wang , 2016. # msgid "" msgstr "" "Project-Id-Version: GNU gcal 3.6.3.34\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 2016-01-29 22:36+0800\n" "Last-Translator: Tianze Wang \n" "Language-Team: Chinese (simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.8.6\n" "X-Poedit-Bookmarks: -1,923,790,-1,-1,-1,-1,-1,-1,-1\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "ĉœŞçŸç³ğçğŸé”™èŻŻ" #: lib/regcomp.c:135 msgid "Success" msgstr "ĉˆċŠŸ" #: lib/regcomp.c:138 msgid "No match" msgstr "ĉ— ċŒı配" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "ĉ­£ċˆ™èĦ¨èċĵĉ— ĉ•ˆ" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "ċ½’çħğċ­—çĴĤĉ— ĉ•ˆ" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "ċ­—çĴĤçħğċž‹ċĉ— ĉ•ˆ" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "ċ°çĞŻçš„ċĉ–œĉ " #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "ċċ‘ċĵ•用ĉ— ĉ•ˆ" #: lib/regcomp.c:156 #, fuzzy msgid "Unmatched [, [^, [:, [., or [=" msgstr "[ ĉˆ– [^ 不配ċŻı" #: lib/regcomp.c:159 msgid "Unmatched ( or \\(" msgstr "( ĉˆ– \\( 不配ċŻı" #: lib/regcomp.c:162 msgid "Unmatched \\{" msgstr "\\{ 不配ċŻı" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "\\{\\} ċ†…ċıĉ— ĉ•ˆ" #: lib/regcomp.c:168 msgid "Invalid range end" msgstr "范ċ›´ä¸Šç•Œĉ— ĉ•ˆ" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "ċ†…ċ­˜è€—ċ°½" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "ċ‰ç½ĉ­£ċˆ™èĦ¨èċĵĉ— ĉ•ˆ" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "ĉ­£ċˆ™èĦ¨èċĵéžĉ­£ċ¸¸çğ“ĉŸ" #: lib/regcomp.c:180 msgid "Regular expression too big" msgstr "ĉ­£ċˆ™èĦ¨èċĵċ¤Şé•ż" #: lib/regcomp.c:183 msgid "Unmatched ) or \\)" msgstr ") ĉˆ– \\) 不配ċŻı" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "ċ‰é˘ĉ²Ħĉœ‰ĉ­£ċˆ™èĦ¨èċĵ" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "ĉ— ĉ³•ċˆ›ċğşçĦ" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "%s ċ­èż›ç¨‹ċ¤ħè´" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "_open_osfhandle ċ¤ħè´" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "ĉ— ĉ³•保ċ­˜ċˆ° fd %dïĵšdup2 ċ¤ħè´" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, c-format msgid "%s subprocess" msgstr "%s ċ­èż›ç¨‹" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "%s ċ­èż›ç¨‹ĉ”ĥċˆ°çğˆĉ­˘äżĦċ· %d" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "ċ†…ċ­˜ċ·²è€—ċ°½" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "ċ°èŻ• %s ċ†™ċ…“%s”... %s%s%s" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "ċ¤ħè´" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "ĉˆċŠŸ" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "ċ°èŻ•ĉ‰“ċĵ€ %s 资ĉşĉ–‡äğĥ“%s”...%s%s%s" #: src/file-io.c:1686 msgid " `HERE' " msgstr " â€œèż™é‡Œâ€ " #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "ċ°èŻ•ĉ‰“ċĵ€ïĵˆç­‰çş§ïĵš%02dïĵ‰ċŒ…ċĞĉ–‡äğĥ“%s”...%s%s%s" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "ċ‚ĉ•°" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "ċ·ċ›½" #: src/gcal.c:1075 msgid "U.S.A." msgstr "çŽċ›½" #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "è‹ħċ›½" #: src/gcal.c:1852 msgid "default" msgstr "éğ˜è¤" #: src/gcal.c:1951 msgid ":" msgstr ":" #: src/gcal.c:1961 msgid "Y" msgstr "ċı´" #: src/gcal.c:1966 msgid "M" msgstr "ĉœˆ" #: src/gcal.c:1971 msgid "W" msgstr "ċ‘¨" #: src/gcal.c:1976 msgid "D" msgstr "ĉ—" #: src/gcal.c:2067 msgid "Fixed date list:" msgstr "ĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨ïĵš" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "环ċ˘ƒċ˜é‡" #: src/gcal.c:2268 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%sïĵšċœ¨çŽŻċ˘ƒċ˜é‡â€œ%s”中ĉ‰ċˆ°ċ‘½äğ¤ -- %s\n" "%s\n" "%s\n" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "ċ†…部" #: src/gcal.c:2864 msgid "response file" msgstr "ċ“ċş”ĉ–‡äğĥ" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "ċ·²ċˆ›ċğş" #: src/gcal.c:2872 msgid "shell script" msgstr "shell 脚ĉœĴ" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "ċ‘è‡Ş \\%s” (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "%sïĵšè­Ĥċ‘ŠïĵŒĉĥˆĉŻċ†…ċı为çİşçš„ç”µċ­é‚äğĥĉœŞè˘Ğċ‘送çğ™ <%s>€‚\n" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "ċ‘½äğ¤èĦŒ" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%sïĵšé€‰éĦı“%s”ĉœ‰äşŒäı‰ĉ€§" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: ĉ— ĉ³•è݆ċˆĞ选éĦı“%s”" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "%sïĵšĉ— ĉ•ˆé€‰éĦı -- %s" #: src/gcal.c:5910 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%sïĵšé€‰éĦı“--%s”不ĉŽċ—ċ‚ĉ•°" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%sïĵšé€‰éĦı“%s”不ĉŽċ—ċ‚ĉ•°" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%sïĵšé€‰éĦı“%s”需èĤä¸€ä¸Şċ‚ĉ•°" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%sïĵšé€‰éĦı需èĤä¸€ä¸Şċ‚ĉ•° --%s " #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%sïĵšé€‰éĦı的ċ‚ĉ•°ĉ— ĉ•ˆ -- %s" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%sïĵšé€‰éĦı的ċ‚ĉ•°ĉœ‰äşŒäı‰ĉ€§ -- %s" #: src/gcal.c:5995 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" "%sïĵšĉŒ‡ċšäş†ĉ— ĉ•ˆçš„ĉ—ĉœŸ -- %c%s\n" "%s\n" "%s\n" #: src/hd-data.c:64 msgid "Australia" msgstr "ĉ³ċ¤§ċˆİ亚" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "ĉŻ”ċˆİĉ—ĥ" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "ċ·´èż" #: src/hd-data.c:67 msgid "Canada" msgstr "ċŠ ĉ‹żċ¤§" #: src/hd-data.c:68 msgid "Switzerland" msgstr "瑞ċ£Ğ" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "中ċ›½" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "èżç­ç‰™" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "ĉ³•ċ›½" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "äğ色ċˆ—" #: src/hd-data.c:75 src/hd-data.c:250 msgid "Italy" msgstr "ĉ„ċ¤§ċˆİ" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "ĉ—ĉœĴ" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "éŸİċ›½" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "ċ˘¨èżċ“" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "荷ċ…°" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "ĉ–°èżċ…°" #: src/hd-data.c:81 src/hd-data.c:320 msgid "Portugal" msgstr "è‘Ħ萄牙" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "äż„ç½—ĉ–Ż" #: src/hd-data.c:83 msgid "United States" msgstr "çŽċ›½" #: src/hd-data.c:85 msgid "Andorra" msgstr "ċ‰é“ċ°”" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "阿ĉ‹‰äĵŻè”ċˆé…‹é•żċ›½" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "阿ċ݌ĉħ—" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "ċ‰ĉç“œċ’Œċ·´ċ¸ƒè" #: src/hd-data.c:89 msgid "Anguilla" msgstr "ċ‰ċœ­ĉ‹‰" #: src/hd-data.c:90 msgid "Albania" msgstr "阿ċ°”ċ·´ċ°ĵ亚" #: src/hd-data.c:91 msgid "Armenia" msgstr "亚çŽċ°ĵ亚" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "荷ċħžċ‰çš„ċˆ—ĉ–Ż/ċšċ†…ċ°”" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "荷ċħžċ‰çš„ċˆ—ĉ–Ż/ċş“ĉ‹‰ç´˘" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "荷ċħžċ‰çš„ċˆ—ĉ–Ż/ċœ£éİĴ丁" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "荷ċħžċ‰çš„ċˆ—ĉ–Ż/萨ċ·´ċ²›ċ’Œĉ–ŻċĦ”è’‚äşš" #: src/hd-data.c:96 msgid "Angola #" msgstr "ċ‰ċ“ĉ‹‰ #" #: src/hd-data.c:97 msgid "Argentina" msgstr "阿ĉ ıċğ·" #: src/hd-data.c:98 msgid "American Samoa" msgstr "çŽċħžè¨ĉ‘İ亚" #: src/hd-data.c:99 msgid "Austria" msgstr "ċċœ°ċˆİ" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "ĉ³ċ¤§ċˆİ亚/ċ ŞċŸıĉ‹‰" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "ĉ³ċ¤§ċˆİ亚/ċŒ—部ċœ°ċŒş" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "ĉ³ċ¤§ċˆİ亚/ĉ˜†ċ£Ğċ…°" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "ĉ³ċ¤§ċˆİ亚/ċ—ĉ³ċ¤§ċˆİ亚" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "ĉ³ċ¤§ċˆİ亚/ĉ–°ċ—ċ¨ċ°”ċ£Ğ" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "ĉ³ċ¤§ċˆİ亚/ċĦ”ĉ–ŻéİĴċ°ĵ亚" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "ĉ³ċ¤§ċˆİ亚/çğ´ċ¤šċˆİ亚" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "ĉ³ċ¤§ċˆİ亚/èżĉ³ċ¤§ċˆİ亚" #: src/hd-data.c:108 msgid "Aruba" msgstr "é˜żé²ċ·´" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "阿ċĦžĉ‹œç–†" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "ĉ³˘ĉ–Żċ°ĵ亚éğ‘ċĦžċ“çğ´é‚£" #: src/hd-data.c:111 msgid "Barbados" msgstr "ċ·´ċ·´ċ¤šĉ–Ż" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "ċ­ŸċŠ ĉ‹‰ċ›½ #" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "ċ¸ƒċŸşçş³ĉ³•ç´˘" #: src/hd-data.c:115 msgid "Bulgaria" msgstr "保ċŠ ċˆİ亚" #: src/hd-data.c:116 msgid "Bahrain" msgstr "ċ·´ĉž—" #: src/hd-data.c:117 msgid "Burundi #" msgstr "ċ¸ƒéš†èżŞ #" #: src/hd-data.c:118 msgid "Benin #" msgstr "贝ċ #" #: src/hd-data.c:119 msgid "Bermuda" msgstr "ç™ĉ…•ċ¤§" #: src/hd-data.c:120 msgid "Brunei" msgstr "ĉ–‡èŽħ" #: src/hd-data.c:121 msgid "Bolivia" msgstr "çŽğċˆİçğ´äşš" #: src/hd-data.c:123 msgid "Bahamas" msgstr "ċ·´ċ“ˆéİĴ" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "不ä¸ı #" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "ċ¸ƒçğ´ċ²›" #: src/hd-data.c:126 msgid "Botswana" msgstr "ċšèŒ¨ç“Ĥçş³" #: src/hd-data.c:127 msgid "Belarus" msgstr "ç™½äż„ç½—ĉ–Ż" #: src/hd-data.c:128 msgid "Belize" msgstr "äĵŻċˆİċ…ı" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "ċŠ ĉ‹żċ¤§/阿ċ°”äĵŻè" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "ċŠ ĉ‹żċ¤§/不ċˆ—颠ċ“äĵĤĉŻ”äşš" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "ċŠ ĉ‹żċ¤§/éİĴċ°ĵĉ‰˜ċ·´" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "ċŠ ĉ‹żċ¤§/ĉ–°ä¸äĵĤ瑞ċ…‹" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "ċŠ ĉ‹żċ¤§/çş½èŠĴċ…°ċ’Œĉ‹‰ċ¸ƒĉ‹‰ċ¤š" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "ċŠ ĉ‹żċ¤§/ĉ–°ĉ–Żç§‘舍" #: src/hd-data.c:135 msgid "Canada/Northwest Territories" msgstr "ċŠ ĉ‹żċ¤§/èżċŒ—ċœ°ċŒş" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "ċŠ ĉ‹żċ¤§/ċ‰ċ¤§ç•" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "ċŠ ĉ‹żċ¤§/çˆħċ·ċŽçŽ‹ċ­ċ²›" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "ċŠ ĉ‹żċ¤§/魁ċŒ—ċ…‹" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "ċŠ ĉ‹żċ¤§/萨ĉ–Żċ–€ċ½ğĉ¸İ" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "ċŠ ĉ‹żċ¤§/育çİş" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "科科ĉ–Żç¤ċ²›ïĵˆċŸşĉž—ïĵ‰" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "ċˆšĉžœĉ°‘ä¸ğċ…ħċ’Œċ›½ #" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "中非ċ…ħċ’Œċ›½ #" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "ċˆšĉžœċ…ħċ’Œċ›½ #" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "瑞ċ£Ğ/阿ċ°”éИ" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "瑞ċ£Ğ/ċ†…é˜żċ½­ç­–ċ°”" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "瑞ċ£Ğ/ċ¤–é˜żċ½­ç­–ċ°”" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "瑞ċ£Ğ/äĵŻċ°”ċ°ĵ" #: src/hd-data.c:149 msgid "Switzerland/Basel-Landschaft" msgstr "瑞ċ£Ğ/ċ·´ċĦžċ°”äıĦĉ‘" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "瑞ċ£Ğ/ċ·´ċĦžċ°”ċŸŽċ¸‚" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "瑞ċ£Ğ/ċĵ—里ċ Ħ" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "瑞ċ£Ğ/ĉ—ċ†…ç“Ĥ" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "瑞äżĦ/ĉ ĵĉ‹‰é²ĉ–Ż" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "瑞äżĦ/ĉ ĵċгċç™ğ" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "瑞ċ£Ğ/ĉħĉ‹‰" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "瑞ċ£Ğ/ċ˘ċĦžĉİ" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "瑞ċ£Ğ/çş³ĉ²™ĉ³°ċ°”" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "瑞ċ£Ğ/下ç“Ĥċ°”ç™ğ" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "瑞ċ£Ğ/上ç“Ĥċ°”ç™ğ" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "瑞ċ£Ğ/ċœ£ċŠ äğ‘" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "瑞ċ£Ğ/ĉ²™ċ¤ĞèħŞĉ£" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "瑞ċ£Ğ/ç´˘ĉ´›ċ›ĉİ" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "瑞ċ£Ğ/ĉ–½çğ´èŒ¨" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "瑞ċ£Ğ/ċ›ċ°”éИ" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "瑞ċ£Ğ/ĉċ‘èŻş" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "瑞ċ£Ğ/äıŒé‡Œ" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "瑞ċ£Ğ/ĉ²ƒċ·ž" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "瑞ċ£Ğ/ç“ĤèŽħ" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "瑞ċ£Ğ/ç–ĉ ĵ" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "瑞ċ£Ğ/苏éğŽä¸–" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "科ç‰ıèżŞç“Ĥ" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "ċş“ċ…‹ç¤ċ²›" #: src/hd-data.c:173 msgid "Chile" msgstr "ĉ™şċˆİ" #: src/hd-data.c:174 msgid "Cameroon" msgstr "ċ–€éşĤ隆" #: src/hd-data.c:176 msgid "Colombia" msgstr "ċ“äĵĤĉŻ”äşš" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "ċ“ĉ–ŻèéğŽċŠ " #: src/hd-data.c:178 msgid "Cuba" msgstr "ċ¤ċ·´" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "佛ċ—è§’" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "ċœ£èŻžç¤ċ²›" #: src/hd-data.c:181 msgid "Cyprus" msgstr "ċĦžĉµĤè·Żĉ–Ż" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "ĉ·ċ…‹ċ…ħċ’Œċ›½" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "ċ·ċ›½/ċ‹ƒċ…°ç™ğċ Ħ" #: src/hd-data.c:184 msgid "Germany/Berlin" msgstr "ċ·ċ›½/ĉŸĉž—" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "ċ·ċ›½/ċ·´ç™ğ - çĴĤè…ċ Ħ" #: src/hd-data.c:186 msgid "Germany/Bavaria" msgstr "ċ·ċ›½/ċ·´äĵċˆİ亚" #: src/hd-data.c:187 msgid "Germany/Bremen" msgstr "ċ·ċ›½/不ĉĉ˘…" #: src/hd-data.c:188 msgid "Germany/Hesse" msgstr "ċ·ċ›½/éğ‘ĉ£" #: src/hd-data.c:189 msgid "Germany/Hamburg" msgstr "ċ·ċ›½/ĉħ‰ċ Ħ" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "ċ·ċ›½/ĉ˘…ċ…‹äĵĤċ Ħ - èżĉ³˘èŽĞċ°ĵ亚" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "ċ·ċ›½/下萨ċ…‹ĉ£" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "ċ·ċ›½/ċŒ—èŽħ茵 - ċ¨ĉ–Żç‰ıĉ³•äĵĤ" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "ċ·ċ›½/èŽħ茵ċ…°ĉ™ĉ³•ċ°”茨" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "ċ·ċ›½/石ċ‹’苏益ĉ ĵ - 荷ċ°”ĉ–Żĉ³°ċ› " #: src/hd-data.c:195 msgid "Germany/Saarland" msgstr "ċ·ċ›½/萨ċ°”" #: src/hd-data.c:196 msgid "Germany/Saxony" msgstr "ċ·ċ›½/萨ċ…‹ĉ£" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "ċ·ċ›½/萨ċ…‹ĉ£ - ċ‰ċ“ˆċ°”ç‰ı" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "ċ·ċ›½/ċ›ĉž—ĉ ı" #: src/hd-data.c:199 msgid "Djibouti" msgstr "ċ‰ċ¸ƒĉ" #: src/hd-data.c:200 msgid "Denmark" msgstr "ä¸ıéşĤ" #: src/hd-data.c:201 msgid "Dominica" msgstr "ċ¤šçħ³ċ°ĵċŠ " #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "ċ¤šçħ³ċ°ĵċŠ ċ…ħċ’Œċ›½" #: src/hd-data.c:203 msgid "Algeria" msgstr "阿ċ°”ċŠċ°”" #: src/hd-data.c:204 msgid "Ecuador" msgstr "ċŽ„ç“œċ¤šċ°”" #: src/hd-data.c:205 msgid "Estonia" msgstr "çˆħĉ²™ċ°ĵ亚" #: src/hd-data.c:206 msgid "Egypt" msgstr "ċŸƒċŠ" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "èżĉ’’ċ“ˆĉ‹‰" #: src/hd-data.c:208 msgid "Eritrea" msgstr "ċŽ„çĞ‹ç‰ı里亚" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "ċŸƒċĦžäż„ĉŻ”äşš" #: src/hd-data.c:211 msgid "Finland" msgstr "èŠĴċ…°" #: src/hd-data.c:212 msgid "Fiji #" msgstr "ĉ–ĉµŽ #" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "çĤċ…‹ċ…°ç¤ċ²›ïĵˆéİĴċ°”çğ´çş³ĉ–Żç¤ċ²›ïĵ‰" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "ċ݆ċ…‹ç½—ċ°ĵèżäşšè”é‚Ĥ" #: src/hd-data.c:215 msgid "Faroes" msgstr "ĉ³•ç½—ç¤ċ²›" #: src/hd-data.c:217 msgid "Gabon #" msgstr "ċŠ è“Ĵ #" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "è‹ħċ›½/è‹ħĉ ĵċ…°ċ’Œċ¨ċ°”ċ£Ğ" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "è‹ħċ›½/ċŒ—çˆħċ°”ċ…°" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "è‹ħċ›½/苏ĉ ĵċ…°" #: src/hd-data.c:221 msgid "Grenada" msgstr "ĉ ĵĉž—çş³è" #: src/hd-data.c:222 msgid "Georgia" msgstr "ĉ ĵ鲁ċ‰äşš" #: src/hd-data.c:223 msgid "French Guiana" msgstr "ĉ³•ċħžċœ­äşšé‚£" #: src/hd-data.c:224 msgid "Ghana" msgstr "ċŠ çş³" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "直ċ¸ƒç½—陀" #: src/hd-data.c:226 msgid "Greenland" msgstr "ĉ ĵĉž—ċ…°" #: src/hd-data.c:227 msgid "Gambia" msgstr "ċ†ˆĉŻ”äşš" #: src/hd-data.c:228 msgid "Guinea" msgstr "ċ‡ ċ†…äşš" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "瓜ċ·ç½—ĉ™" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "赤道ċ‡ ċ†…äşš" #: src/hd-data.c:231 msgid "Greece" msgstr "ċ¸Œè…Š" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "ċ—äı”ĉ²ğ亚ċ²›ċ’Œċ—ĉĦ‘ċ¨ċ‡ç¤ċ²›" #: src/hd-data.c:233 msgid "Guatemala" msgstr "ċħċœ°éİĴĉ‹‰" #: src/hd-data.c:234 msgid "Guam" msgstr "ċ…³ċ²›" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "ċ‡ ċ†…äşšĉŻ”çğ #" #: src/hd-data.c:236 msgid "Guyana #" msgstr "ċœ­äşšé‚£ #" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "éĤ™ĉ¸Ż" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "èµĞċ·ċ’ŒéşĤċ…‹ċ”çş³ç¤ċ²›" #: src/hd-data.c:239 msgid "Honduras" msgstr "ĉ´Şéƒ½ĉ‹‰ĉ–Ż" #: src/hd-data.c:240 msgid "Croatia" msgstr "ċ…‹ç½—ċœ°äşš" #: src/hd-data.c:241 msgid "Haiti" msgstr "ĉµ·ċœ°" #: src/hd-data.c:242 msgid "Hungary" msgstr "ċŒˆç‰™ċˆİ" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "ċ°ċşĤċ°ĵèżäşš #" #: src/hd-data.c:244 msgid "Ireland" msgstr "çˆħċ°”ċ…°" #: src/hd-data.c:246 msgid "India #" msgstr "ċ°ċşĤ #" #: src/hd-data.c:247 msgid "Iraq" msgstr "äĵŠĉ‹‰ċ…‹" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "äĵŠĉœ—äĵŠĉ–Żċ…°ċ…ħċ’Œċ›½" #: src/hd-data.c:249 msgid "Iceland" msgstr "ċ†°ċ²›" #: src/hd-data.c:251 msgid "Jamaica" msgstr "牙äı°ċŠ " #: src/hd-data.c:252 msgid "Jordan" msgstr "çşĤĉ—Ĥ" #: src/hd-data.c:254 msgid "Kenya #" msgstr "è‚Żċ°ĵ亚 #" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "ċ‰ċ°”ċ‰ĉ–Żĉ–ŻċĤ" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "ĉŸĴċŸ”ċݍ ïĵƒ" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "ċŸşé‡Œċ·´ĉ–Ż #" #: src/hd-data.c:258 msgid "Comoros" msgstr "科ĉ‘İ罗" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "ċœ£ċŸşèŒ¨ċ’Œċ°ĵçğ´ĉ–Ż" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "ĉœé²œäşşĉ°‘ĉ°‘ä¸ğċ…ħċ’Œċ›½" #: src/hd-data.c:262 msgid "Kuwait" msgstr "科ċ¨ç‰ı" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "ċĵ€ĉ›ĵç¤ċ²›" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "ċ“ˆè¨ċ…‹ĉ–ŻċĤ" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "老ĉŒäşşĉ°‘ĉ°‘ä¸ğċ…ħċ’Œċ›½ïĵƒ" #: src/hd-data.c:266 msgid "Lebanon" msgstr "éğŽċ·´ċĞİ" #: src/hd-data.c:267 msgid "St Lucia" msgstr "ċœ£ċ˘èżäşš" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "ċˆ—ĉ”Żĉ•Ĥċ£Ğç™ğ" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "ĉ–Żé‡Œċ…°ċĦ ïĵƒ" #: src/hd-data.c:270 msgid "Liberia" msgstr "ċˆİĉŻ”é‡Œäşš" #: src/hd-data.c:271 msgid "Lesotho" msgstr "èŽħç´˘ĉ‰˜" #: src/hd-data.c:272 msgid "Lithuania" msgstr "çĞ‹é™ĥċ›" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "ċ˘ĉ£ċ Ħ" #: src/hd-data.c:274 msgid "Latvia" msgstr "ĉ‹‰è„ħçğ´äşš" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "阿ĉ‹‰äĵŻċˆİĉŻ”äşšĉ°‘äĵ—ċ›½ïĵˆċˆİĉŻ”äşšïĵ‰" #: src/hd-data.c:276 msgid "Morocco" msgstr "ĉ‘İĉ´›ċ“" #: src/hd-data.c:277 msgid "Monaco" msgstr "ĉ‘İçş³ċ“" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "ĉ‘İċ°”ċ¤šç“Ĥċ…ħċ’Œċ›½" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "éİĴèċŠ ĉ–ŻċŠ  #" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "éİĴçğċ°”ç¤ċ²›" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "ċ‰ċ—ĉ–Żĉ‹‰ċ¤ĞéİĴċ…ĥéĦżċ…ħċ’Œċ›½" #: src/hd-data.c:282 msgid "Mali" msgstr "éİĴ里" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "蒙ċ¤ #" #: src/hd-data.c:284 msgid "Macau" msgstr "ĉ³é—¨" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "ċŒ—éİĴé‡Œäşšçş³ç¤ċ²›ïĵˆċĦžç­ïĵ‰" #: src/hd-data.c:286 msgid "Martinique" msgstr "éİĴĉċ°ĵċ…‹" #: src/hd-data.c:287 msgid "Mauritania" msgstr "ĉŻ›é‡ŒċĦ”ċ°ĵ亚" #: src/hd-data.c:288 msgid "Montserrat" msgstr "蒙ç‰ıċĦžĉ‹‰ç‰ı" #: src/hd-data.c:289 msgid "Malta" msgstr "éİĴ耳äğ–" #: src/hd-data.c:290 msgid "Mauritius" msgstr "ĉŻ›é‡Œĉħ‚ĉ–Ż" #: src/hd-data.c:291 msgid "Maldives" msgstr "éİĴċ°”äğ£ċ¤Ğ" #: src/hd-data.c:292 msgid "Malawi" msgstr "éİĴĉ‹‰çğ´" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "éİĴĉèżäşš #" #: src/hd-data.c:295 msgid "Mozambique" msgstr "èŽĞĉĦ‘ĉŻ”ċ…‹" #: src/hd-data.c:296 msgid "Namibia" msgstr "çş³çħ³ĉŻ”äşš" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "ĉ–°ċ–€é‡Œċ¤šċ°ĵ亚" #: src/hd-data.c:298 msgid "Niger" msgstr "ċ°ĵĉ—ċ°”" #: src/hd-data.c:299 #, fuzzy msgid "Norfolk Island" msgstr "èŻşçĤċ…‹ç¤ċ²›" #: src/hd-data.c:300 msgid "Nigeria" msgstr "ċ°ĵĉ—ċˆİ亚" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "ċ°ĵċŠ ĉ‹‰ç“œ" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "çĵ…甸 #" #: src/hd-data.c:304 msgid "Norway" msgstr "ĉŒŞċ¨" #: src/hd-data.c:305 msgid "Nepal #" msgstr "ċ°ĵĉ³Šċ°” #" #: src/hd-data.c:306 msgid "Nauru" msgstr "瑙鲁" #: src/hd-data.c:307 msgid "Niue" msgstr "çş½ċŸƒ" #: src/hd-data.c:309 msgid "Oman" msgstr "阿ĉ›ĵ" #: src/hd-data.c:310 msgid "Panama" msgstr "ċ·´ĉ‹żéİĴ" #: src/hd-data.c:311 msgid "Peru" msgstr "秘鲁" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "ĉ³•ċħžĉ³˘ċˆİċ°ĵèżäşš" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "ċ·´ċ¸ƒäşšĉ–°ċ‡ ċ†…äşš" #: src/hd-data.c:314 msgid "Philippines" msgstr "菲ċ‹ċ" #: src/hd-data.c:315 msgid "Pakistan" msgstr "ċ·´ċŸşĉ–ŻċĤ" #: src/hd-data.c:316 msgid "Poland" msgstr "ĉ³˘ċ…°" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "ċœ£çšċŸƒċ°”ċ’Œċ݆ċ…‹éš†" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "çšç‰ıċ‡Żĉİ" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "ĉ³˘ċ¤šéğŽċ„" #: src/hd-data.c:321 msgid "Palau" msgstr "ċ¸•ċг" #: src/hd-data.c:322 msgid "Paraguay" msgstr "ċ·´ĉ‹‰ċœ­" #: src/hd-data.c:323 msgid "Qatar" msgstr "ċĦċĦ”ċ°”" #: src/hd-data.c:324 msgid "Rİunion" msgstr "留ċ°ĵĉħŞ" #: src/hd-data.c:325 msgid "Romania" msgstr "罗éİĴċ°ĵ亚" #: src/hd-data.c:327 msgid "Rwanda" msgstr "ċ˘ĉ—şè" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "ĉ²™ç‰ı阿ĉ‹‰äĵŻ" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "ĉ‰€ç½—é—¨ç¤ċ²›" #: src/hd-data.c:330 msgid "Seychellen" msgstr "ċĦžèˆŒċ°”" #: src/hd-data.c:331 msgid "Sudan" msgstr "苏ä¸ı" #: src/hd-data.c:332 msgid "Sweden" msgstr "瑞ċ…¸" #: src/hd-data.c:333 msgid "Singapore #" msgstr "ĉ–°ċŠ ċĦ #" #: src/hd-data.c:334 msgid "St Helena" msgstr "ċœ£èµĞċ‹’ĉ‹żċ²›" #: src/hd-data.c:335 msgid "Slovenia" msgstr "ĉ–Żĉ´›ĉ–‡ċ°ĵ亚" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "ĉ–Żç“Ĥċ°”ċ·´ç¤ċ²›ċ’Œĉ‰ĴéİĴċğĥċ²›" #: src/hd-data.c:337 msgid "Slovakia" msgstr "ĉ–Żĉ´›äĵċ…‹" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "ċĦžĉ‹‰ċˆİĉ˜‚" #: src/hd-data.c:339 msgid "San Marino" msgstr "ċœ£éİĴċŠ›èŻş" #: src/hd-data.c:340 msgid "Senegal" msgstr "ċĦžċ†…ċŠ ċ°”" #: src/hd-data.c:341 msgid "Somalia" msgstr "ç´˘éİĴ里" #: src/hd-data.c:342 msgid "Suriname #" msgstr "苏里ċ— #" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "ċœ£ċ¤šçŽċ’Œĉ™ĉž—èżĉŻ”" #: src/hd-data.c:344 msgid "El Salvador" msgstr "萨ċ°”ç“Ĥċ¤š" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "阿ĉ‹‰äĵŻċ™ċˆİ亚ċ…ħċ’Œċ›½ïĵˆċ™ċˆİ亚ïĵ‰" #: src/hd-data.c:346 msgid "Swaziland" msgstr "ĉ–Żċ¨ċ£Ğċ…°" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "ç‰ıċ…‹ĉ–Żċ’Œċ‡Żç§‘ĉ–Żç¤ċ²›" #: src/hd-data.c:348 msgid "Chad" msgstr "äıċ—" #: src/hd-data.c:349 msgid "Togo #" msgstr "ċ¤šċ“ #" #: src/hd-data.c:350 msgid "Thailand #" msgstr "ĉ³°ċ›½ #" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "ċĦ”ċ‰ċ…‹ĉ–ŻċĤ" #: src/hd-data.c:352 msgid "Tokelau" msgstr "ĉ‰˜ċ…‹ċг" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "ċœŸċş“ĉ›ĵĉ–ŻċĤ" #: src/hd-data.c:354 msgid "Tunisia" msgstr "突ċ°ĵĉ–Ż" #: src/hd-data.c:355 msgid "Tonga" msgstr "ĉħ¤ċŠ " #: src/hd-data.c:356 msgid "Turkey" msgstr "ċœŸè€³ċ…ĥ" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "ç‰ıçĞ‹ċ°ĵèċ’Œċ¤šċ·´ċ“ #" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "ċ›ç“Ĥċ˘" #: src/hd-data.c:359 msgid "Taiwan" msgstr "ċ°ĉı" #: src/hd-data.c:360 msgid "Tanzania" msgstr "ċĤĉĦ‘ċ°ĵ亚" #: src/hd-data.c:361 msgid "Ukraine" msgstr "äıŒċ…‹ċ…°" #: src/hd-data.c:362 msgid "Uganda" msgstr "äıŒċı²è" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "çŽċ›½/阿ĉ‹‰ĉ–ŻċŠ " #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "çŽċ›½/亚ĉ‹‰ċ·´éİĴ" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "çŽċ›½/é˜żè‚Żè‰²" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "çŽċ›½/亚ċˆİĉĦ‘é‚£" #: src/hd-data.c:367 msgid "United States/California" msgstr "çŽċ›½/ċŠ ċˆİçĤċ°ĵ亚" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "çŽċ›½/科罗ĉ‹‰ċ¤š" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "çŽċ›½/ċş·ĉĥ…ç‹„ĉ ĵ" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "çŽċ›½/ċ“äĵĤĉŻ”äşšç‰ıċŒş" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "çŽċ›½/ç‰ıĉ‹‰ċŽ" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "çŽċ›½/佛罗里è" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "çŽċ›½/佐ĉ²ğ亚" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "çŽċ›½/ċ¤ċ¨ċ¤·" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "çŽċ›½/çˆħ荷ċŽ" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "çŽċ›½/çˆħè荷ċ·ž" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "çŽċ›½/äĵŠċˆİèŻşĉ–Ż" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "çŽċ›½/ċ°çĴĴċ‰çş³" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "çŽċ›½/ċ Şè¨ĉ–Ż" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "çŽċ›½/è‚ŻċĦ”ċŸş" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "çŽċ›½/è·Żĉ˜“ĉ–Żċ‰é‚£" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "çŽċ›½/éİĴè¨èŻ¸ċĦž" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "çŽċ›½/éİĴ里ċ…°" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "çŽċ›½/çĵ…ċ› " #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "çŽċ›½/ċ݆ĉ­‡ĉ ı" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "çŽċ›½/ĉ˜Žċ°ĵ苏è" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "çŽċ›½/ċŻ†è‹é‡Œ" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "çŽċ›½/ċ݆èżèżĉŻ”" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "çŽċ›½/蒙ċ¤§ĉ‹ż" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "çŽċ›½/ċŒ—ċĦ罗ĉçş³" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "çŽċ›½/ċŒ—è科äğ–ċ·ž" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "çŽċ›½/ċ†…ċ¸ƒĉ‹‰ĉ–ŻċŠ ċ·ž" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "çŽċ›½/ĉ–°ç½•ċ¸ƒäğ€ċ°”" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "çŽċ›½/ĉ–°ĉ³½èż" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "çŽċ›½/ĉ–°ċ˘¨èżċ“" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "çŽċ›½/ċ†…ċŽèċ·ž" #: src/hd-data.c:397 msgid "United States/New York" msgstr "çŽċ›½/çş½çşĤ" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "çŽċ›½/俄äşäż„" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "çŽċ›½/ċċ…‹ĉ‹‰è·éİĴ" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "çŽċ›½/ċċ°”è‰Ż" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "çŽċ›½/ċċ¤•ĉ³•ċ°ĵ亚" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "çŽċ›½/罗ċ—ċ²›" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "çŽċ›½/ċ—ċĦ罗ĉçş³" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "çŽċ›½/ċ—è科äğ–" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "çŽċ›½/ç”°çş³èż" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "çŽċ›½/ċ·ċ…‹è¨ĉ–Ż" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "çŽċ›½/çŠıäğ–" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "çŽċ›½/ċĵ—ċ‰ċ°ĵ亚" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "çŽċ›½/佛蒙ç‰ı" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "çŽċ›½/ċŽç››éĦż" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "çŽċ›½/ċ¨ĉ–Żċş·è›" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "çŽċ›½/èżċĵ—ċ‰ċ°ĵ亚" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "çŽċ›½/ĉ€€äż„ĉ˜Ž" #: src/hd-data.c:414 msgid "Uruguay" msgstr "äıŒĉ‹‰ċœ­" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "äıŒċ…ıċˆĞċ…‹ĉ–ŻċĤ" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "ċœ£ĉ–‡ĉ£ç‰ıċ’Œĉ ĵĉž—çş³ä¸ĉ–Ż" #: src/hd-data.c:417 msgid "Venezuela" msgstr "ċ§”ċ†…瑞ĉ‹‰" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "è‹ħċħžçğ´ċ°”äşĴç¤ċ²›" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "çŽċħžçğ´ċ°”äşĴç¤ċ²›" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "èĥŠċ—" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "ç“ĤċŠŞé˜żċ›" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "ç“Ĥċˆİĉ–Żċ’Œċ݌ċ›çş³ç¤ċ²›" #: src/hd-data.c:423 msgid "Samoa" msgstr "萨ĉ‘İè€ĥ" #: src/hd-data.c:424 msgid "Yemen" msgstr "äıŸé—¨" #: src/hd-data.c:425 msgid "Mayotte" msgstr "éİĴ耳äğ–" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "ċĦžċ°”çğ´äşšċ’Œéğ‘ċħħ" #: src/hd-data.c:427 msgid "South Africa" msgstr "ċ—非" #: src/hd-data.c:428 msgid "Zambia" msgstr "赞ĉŻ”äşš" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "ĉ´ċ·´ċ¸ƒéŸĤ" #: src/hd-data.c:459 msgid "1st Advent" msgstr "çĴĴ一个降临ĉ—" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "ċ››ĉ—Ĵ节çĴĴ一个ċ‘¨ĉ—" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "çĴĴ二个降临ĉ—" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "ċ››ĉ—Ĵ节çĴĴ二个ċ‘¨ĉ—" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "çĴĴ三个降临ĉ—" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "ċ››ĉ—Ĵ节çĴĴ三个ċ‘¨ĉ—" #: src/hd-data.c:465 msgid "4th Advent" msgstr "çĴĴċ››ä¸Şé™ä¸´ĉ—" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "ċ››ĉ—Ĵ节çĴĴċ››ä¸Şċ‘¨ĉ—" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "7-5-3节" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "ċœŸè‘—ĉ—" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "ĉ„šäşşèŠ‚" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "万ċœ£èŠ‚" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "万灵节" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "谚ĉ–‡ĉ—" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "ċċ…‹ċ…°çşŞċżµĉ—" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "ċŒ—ċŽç‰ıäĵŻé›·çşŞċżµĉ—" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "ċ—ċŽç‰ıäĵŻé›·çşŞċżµĉ—" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "ĉŸċĦ”ċ§†ç¤ċ²›çşŞċżµĉ—" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "霍ċ…‹ĉ–Żĉı纪ċżµĉ—" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "éİĴċ°”äĵŻċ‹’纪ċżµĉ—" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "ċ°ĵċ°”ĉ£çşŞċżµĉ—" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "ċċĦ”ċ“纪ċżµĉ—" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "ċ—éƒ¨çœçşŞċżµĉ—" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "ċĦ”ĉ‹‰çş³ċŸşçşŞċżµĉ—" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "ĉƒ çµéĦżçşŞċżµĉ—" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "èżéƒ¨çœçşŞċżµĉ—" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "ĉ³ĉ–°ċ†›ċ›˘ĉ—" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "ĉ¤ĉ ‘节" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "ċ†›äşşèŠ‚" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "ċœĉˆ˜çşŞċżµĉ—" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "ċ‘¨ä¸€ĉ¸…ĉ‰Ğ节" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "ċ‘¨ä¸‰ĉ¸…ĉ‰Ğ节" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "阿ċœĉœċ‹’·ċ·´ċ“ˆċ‡ċ¤İĉ—" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "ċ·´ċ“ˆĉĴ§ĉ‹‰ċ‡ċ¤İĉ—" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "ċ·´ċ“ˆĉĴ§ĉ‹‰èŻžè°" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "ċ·´ċ­›èŻžè°" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "盟çşĤĉ—" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "ċ·´ċ­›ċ£è¨€" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "ċ·´ċ­›ĉ‰éšĉ—" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "ċ·´ċ“ˆäĵŠċ…ƒĉ—Ĥ" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "é“ĥèĦŒċ‡ĉ—ïĵˆĉ³•ċšċ‡ĉ—ïĵ‰" #: src/hd-data.c:503 msgid "Basque National Day" msgstr "ċ·´ĉ–Żċ…‹ċ›½ċş†èŠ‚" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "ċšäĵŠĉİĉˆ˜ċ½ı" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "ĉ™ċŸƒċ¸ƒĉ‹‰ĉˆ˜ċ½ı" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "è´˘ĉ”żċı´ċşĤéĤ–ĉ—" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "贝ċ°ĵĉ‰˜Â·ċŽé›·ĉ–Żĉ—" #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "èĉ‘İèŻžè°" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "老ĉżèŠ‚" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "节ç¤ĵĉ—" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "ä½›èŻžĉ—" #: src/hd-data.c:514 msgid "Burns Night" msgstr "ċ½­ĉ–Żäı‹ċ¤œ" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "è´ĉ˘…ċ£Ğĉ—" #: src/hd-data.c:516 msgid "Carnival" msgstr "狂ĉĴ˘èŠ‚" #: src/hd-data.c:517 msgid "Beltane" msgstr "五ĉœ”节" #: src/hd-data.c:518 msgid "Imbolg" msgstr "ċœ£ċ¸ƒé‡Œċ‰ċ·èŠ‚" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "ċœ£ċ¸ƒé‡Œċ‰ċ·èŠ‚" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "萨ĉ¸İ节/ċ‡Żċ°”ç‰ıċ…ƒĉ—Ĥ" #: src/hd-data.c:521 msgid "Children's Day" msgstr "ċ„żçĞ节" #: src/hd-data.c:522 msgid "Cycle" msgstr "è½" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "ċ†œċކĉ–°ċı´" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "除ċ¤•" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "ċœ£èŻžèŠ‚" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "ċı³ċ‰ċ¤œ" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "è€ĥ稣ċ‡ċ¤İĉ—" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "菊èŠħ节" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "ċ…Ĵĉ°‘ĉ—" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "ċ…Ĵĉ°‘节" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "ċ“äĵĤċ¸ƒçşŞċżµĉ—" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "ĉˆäşşèŠ‚" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "ċ­”ċ­èŻžè°" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "ċŞĉ³•纪ċżµĉ—" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "科ĉ™ç‰ıċ…ƒĉ—Ĥ" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "ċ‡èˆŞċ‘˜èŠ‚" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "ċ—éšċċ­—ĉžĥĉŠĴä¸ĉ—" #: src/hd-data.c:538 msgid "Culture Day" msgstr "ċ¤šċ…ƒĉ–‡ċŒ–ĉ—" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "中秋节ċŽä¸€ċ¤İ" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "ĉ¸…ĉ˜ŽèŠ‚ċ‰ä¸€ċ¤İ" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "ċ‰èċ˘èżäşšĉ—" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "ċŠ ĉ³°ç½—ċ°ĵ亚ĉ—" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "ċŠ ċˆİèżäşšĉ—" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "ç·ċ‘Šċżĉ‚”ĉ—" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "ċ’Œè§£ĉ—" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "ç–ċ›½äżċĞ者ĉ—" #: src/hd-data.c:547 msgid "Double-9 Day" msgstr "重阳节" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "çĞŻċˆèŠ‚" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "ċ¤ĉ´ğ节ċ‘¨ä¸€" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "ċ¤ĉ´ğ节ċ‘¨ĉ—" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "ĉœˆé£Ÿ" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "ĉ—食" #: src/hd-data.c:554 msgid "Annular" msgstr "çŽŻé£Ÿ" #: src/hd-data.c:555 msgid "Partial" msgstr "ċé£Ÿ" #: src/hd-data.c:556 msgid "Penumbral" msgstr "ċŠċ½ħ" #: src/hd-data.c:557 msgid "Total" msgstr "ċ…¨é£Ÿ" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "ċŸƒċ› éœĉ¸İè§£ĉ”ĉ—" #: src/hd-data.c:559 msgid "Election Day" msgstr "选ä¸ĉ—" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "ċ¤İçš‡èŻžè°" #: src/hd-data.c:561 msgid "Equinox Day" msgstr "ĉ˜ċˆ†" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "ċŸƒċĦžäż„ĉŻ”äşšċ…ƒĉ—Ĥ" #: src/hd-data.c:563 msgid "Father's Day" msgstr "çˆĥäş²èŠ‚" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "ċŸşç£ċœ£ä½“节" #: src/hd-data.c:565 msgid "Feast of Fortune" msgstr "çĤä¸´ċ–„ċżƒäşşĉ—" #: src/hd-data.c:566 msgid "Feast of Heart Jesus" msgstr "è€ĥ稣ċœ£ċżƒèŠ‚" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "ċ…ƒċµèŠ‚" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "世纪çĞ节" #: src/hd-data.c:569 msgid "Flag Day" msgstr "ċ›½ĉ——纪ċżµĉ—" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "佛ċ…°èŠ’èŻ­ĉ–‡ċŒ–ĉ—" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "ċğşċ…šèŠ‚" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "ĉ³•ċ›½ĉ–‡ċŒ–节" #: src/hd-data.c:573 msgid "French Revolutionary" msgstr "ĉ³•ċ›½éİċ‘½çşŞċżµĉ—" #: src/hd-data.c:574 msgid "Friendship Day" msgstr "ċ‹è°Šĉ—" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "ċ·ċ›½çğŸä¸€ĉ—" #: src/hd-data.c:576 msgid "Good Friday" msgstr "è€ĥ稣ċ—éšĉ—" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "ċ¤ĉ´ğ节ċ‰ċ¤œ" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "ç–çˆĥĉŻèŠ‚" #: src/hd-data.c:579 msgid "Greenery Day" msgstr "çğżäı‹ĉ—" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "ĉ‰‡è´çŸ³çޟ节" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "ċœŸĉ‹¨éĵ èŠ‚" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "瓜èċ˘ä½İċœ£ĉŻ" #: src/hd-data.c:583 #, fuzzy msgid "Guy Fawkes Day" msgstr "盖äĵŠÂ·çĤċ…‹ĉ–Żĉ—" #: src/hd-data.c:584 msgid "Halloween" msgstr "万ċœ£èŠ‚" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "体育节" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "çŻèŠ‚" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "篝çĞ节" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "é€èĥŠèŠ‚" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "ĉ™ĉ´ħ节" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "çŠıċ¤Şĉ–°ċı´" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "五ĉ—Ĵ节" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "ĉ™çèŠ‚" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "èżèµĞĉ‰˜ĉ‹‰èŠ‚" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "住ĉ£šèŠ‚" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "ĉ–‹ĉˆ’ĉ—" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "ĉ¤ĉ ‘节" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "ċ¤§ċħ ĉ€çşŞċżµĉ—" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "äğ色ċˆ—阵äşĦċ°†ċ£Ğ纪ċżµĉ—" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "ç‹ĴçĞ‹ĉ—" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "èµŽç½Şĉ—" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "è€ĥè·Żĉ’’ċ†·ĉ—" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "ċœ£ċݴ节" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "ċ¤ĉ´ğä¸ğĉ—" #: src/hd-data.c:604 msgid "Huravee Day" msgstr "è§£ĉ”ĉ—" #: src/hd-data.c:605 msgid "Independence Day" msgstr "ç‹ĴçĞ‹ĉ—" #: src/hd-data.c:606 msgid "Independence Movement Day" msgstr "ç‹ĴçĞ‹èżċŠ¨çşŞċżµĉ—" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "ç‹ĴçĞ‹ċ£è¨€çşŞċżµĉ—" #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "ċ°ċşĤċ…ƒĉ—Ĥ" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "阿ċŠ ĉħ—èŻžè°" #: src/hd-data.c:610 msgid "Ashura'" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:614 msgid "Ghadir" msgstr "ç›–èżŞċ°”节" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "ç­ċ¸ĉ—" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "äĵŠĉ–Żċ…°ċ…ƒĉ—Ĥ" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:618 msgid "Quds Day" msgstr "è€ĥè·Żĉ’’ċ†·ĉ—" #: src/hd-data.c:619 msgid "Ramadan" msgstr "ĉ–‹ĉœˆ" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "ç™ğ霄äı‹ċ¤œ" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "ĉ—ĉœĴċ…ƒĉ—Ĥ" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "ĉ—ĉœĴ除ċ¤•" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "è€ĥ稣ċ‰²ç¤ĵĉ—" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "ċ½ĉ‰ŽèŠ‚" #: src/hd-data.c:628 msgid "Labour Day" msgstr "ċгċŠ¨èŠ‚" #: src/hd-data.c:629 msgid "Labour Thanksgiving Day" msgstr "ċ‹¤ċгĉ„Ÿè°˘ĉ—" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "老ċ­èŻžè°" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "è§£ĉ”ĉ—" #: src/hd-data.c:632 msgid "Marine Day" msgstr "ĉµ·ĉ´‹èŠ‚" #: src/hd-data.c:633 msgid "Martinimas" msgstr "ċœ£éİĴ丁节" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "éİĴä¸Â·è·Żċ·é‡‘ĉ—" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "烈ċ£Ğ节" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "ċœ£ĉŻé˘†ĉŠèŠ‚" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "ċœ£ĉŻċ‡ċ¤İĉ—" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "ċœ£ĉŻċœ£çƒ›èŠ‚" #: src/hd-data.c:639 msgid "Mary's Expectation" msgstr "" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "ċœ£ĉŻĉ— ċŽŸç½Şĉ—" #: src/hd-data.c:641 msgid "Mary's Maternity" msgstr "ċœ£ĉŻç”Ÿäş§ĉ—" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "ċœ£ĉŻċ‘½ċĉ—" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "ċœ£ĉŻèŻžè°" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "ċœ£ĉŻç‰şç‰²ĉ—" #: src/hd-data.c:645 msgid "Mary's Visitation" msgstr "ċœ£ĉŻĉ˜ċœ£ĉ—" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "ĉżŻèĥ³èŠ‚" #: src/hd-data.c:648 msgid "May Day" msgstr "ċгċŠ¨èŠ‚" #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "äğ²ċ¤èŠ‚" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "中秋节" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "上ċĵĤĉœˆ" #: src/hd-data.c:654 msgid "Full Moon" msgstr "ĉğĦĉœˆ" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "下ċĵĤĉœˆ" #: src/hd-data.c:656 msgid "New Moon" msgstr "ĉ–°ĉœˆ" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "ĉŻäş²èŠ‚" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "ċ݆ċ݆节" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "ċğşċ›½çşŞċżµĉ—" #: src/hd-data.c:661 msgid "National Holiday" msgstr "ĉ³•ċšċ‡ĉ—" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "ċ…¨ċ›½ċ“€ĉ‚ĵĉ—" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "ċ…ƒĉ—Ĥ" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "ĉФċ£Ğ节" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "亚çŽċ°ĵ亚ĉ—§ċކĉ–°ċı´" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "ċŸƒċŠĉ—§ċކĉ–°ċı´" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "东ĉ­£ĉ•™ċ…ƒĉ—Ĥ" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "ċœ£ĉŻĉ˜çµĉ—" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "ĉ£•ĉžä¸ğĉ—" #: src/hd-data.c:670 msgid "Parent's Day" msgstr "ċĥ长ĉ—" #: src/hd-data.c:671 msgid "Passion Sunday" msgstr "è€ĥ稣ċ—éšĉ—" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "ċ’Œċı³èŠ‚" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "ĉĦƒèŠ‚" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "ċœ£çµé™ä¸´èŠ‚" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "èŻşċċ…ı节/ĉ³˘ĉ–Żĉ–°ċı´" #: src/hd-data.c:676 msgid "Prayer Day" msgstr " çˆç·ĉ—" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "ĉ€ğçğŸċ°ħ职ċ…¸ç¤ĵ" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "ĉ€ğçğŸĉ—" #: src/hd-data.c:679 msgid "Presidents' Inform" msgstr "" #: src/hd-data.c:680 msgid "President Lincoln's Birthday" msgstr "ĉž—è‚Żĉ€ğçğŸèŻžè°" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "ċ…Ĵä¸ğ节" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "ċ››ĉ—Ĵĉ–‹ċ‘¨ĉ—" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "ċ—ĉ•™ĉ”ıéİĉ—" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "纪ċżµĉ—" #: src/hd-data.c:685 msgid "Republic Day" msgstr "ċ…ħċ’Œċ›½ĉ—" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "ĉ•Ĵ老ĉ—" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "éİċ‘½çşŞċżµĉ—" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "里çşĤ热ċ†…ċ˘ċ‘¨ċı´çşŞċżµĉ—" #: src/hd-data.c:689 msgid "Rogation Sunday" msgstr "çˆç·ċ‘¨ĉ—" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "ċœ£äżç½—ċ‘¨ċı´çşŞċżµĉ—" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "ĉœ­ċıŒċ†°é›ŞèŠ‚" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "èħ†èŠ‚" #: src/hd-data.c:693 msgid "Septuagesima Sunday" msgstr "七ĉ—Ĵĉ–‹ċ‘¨ĉ—" #: src/hd-data.c:694 msgid "Seven Sleepers Day" msgstr "七çĦäğ™èŠ‚" #: src/hd-data.c:695 msgid "Sexagesima Sunday" msgstr "ċ››ĉ—Ĵĉ–‹ċ‘¨ĉ—" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "ċżĉ‚”ċ‘¨äşŒ" #: src/hd-data.c:697 msgid "Solstice Day" msgstr "ċ†Ĵ至" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "ç­çĥĉ—" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "ĉ˜èŠ‚" #: src/hd-data.c:700 msgid "Start of common month" msgstr "ċı³ĉœˆçĴĴ一ċ¤İ" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "闰ĉœˆçĴĴ一ċ¤İ" #: src/hd-data.c:702 msgid "Star Festival" msgstr "七ċ¤•" #: src/hd-data.c:703 msgid "St Andrew's Day" msgstr "ċœ£ċ‰ċ·é²ĉ—" #: src/hd-data.c:704 msgid "St Bartholomew Day" msgstr "ċœ£ċ·´ċĦžĉ´›çĵŞĉ—" #: src/hd-data.c:705 msgid "St Berchtold's Day" msgstr "ċœ£ċ·èżˆĉ—" #: src/hd-data.c:706 msgid "St David's Day" msgstr "ċœ£ċ¤§ċĞĉ—" #: src/hd-data.c:707 msgid "St Edward's Day" msgstr "ċœ£çˆħċ·ċŽĉ—" #: src/hd-data.c:708 msgid "St George's Day" msgstr "ċœ£äı”ĉ²ğĉ—" #: src/hd-data.c:709 msgid "St James' Day" msgstr "ċœ£èİıċ§†ĉ–Żĉ—" #: src/hd-data.c:710 msgid "St Joseph's Day" msgstr "ċœ£è‹ç‘Ÿĉ—" #: src/hd-data.c:711 msgid "St Laurentius Day" msgstr "ċœ£ĉ´›äĵĤ佐ĉ—" #: src/hd-data.c:712 msgid "St Nicholas' Day" msgstr "ċœ£ċ°ĵċ¤ĉ‹‰ĉ–Żĉ—" #: src/hd-data.c:713 msgid "St Nicholas' Eve" msgstr "ċœ£ċ°ĵċ¤ĉ‹‰ĉ–Żĉ—ċ‰ċ¤œ" #: src/hd-data.c:714 msgid "St Patrick's Day" msgstr "ċœ£ċ¸•ç‰ı里ċ…‹ĉ—" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "ċœ£ċ½ĵċ—ċ’Œċœ£äżç½—ĉ—" #: src/hd-data.c:716 msgid "St Stephen's Day" msgstr "ċœ£ċ²è’‚èŠĴĉ—" #: src/hd-data.c:717 msgid "St Valentine's Day" msgstr "ċœ£ç“ĤäĵĤ丁节ïĵˆĉƒ…äşşèŠ‚ïĵ‰" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "逝者ċ‘¨ĉ—" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "燕ċ­èŠ‚" #: src/hd-data.c:720 msgid "Sweetest Day" msgstr "甜蜜ĉ—" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "除ċ¤•" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "ĉ•™ċ¸ˆèŠ‚" #: src/hd-data.c:723 msgid "Thai New Year's Day" msgstr "ĉ³°ċ›½ċ…ƒĉ—Ĥ" #: src/hd-data.c:724 msgid "Thanksgiving Day" msgstr "ĉ„Ÿĉİ节" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "ċ›½çŽ‹èŻžè°" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "ċ³çŽ‹èŻžè°" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "三王节" #: src/hd-data.c:728 msgid "Tiradentes Day" msgstr "蒂ĉ‹‰ç™ğç‰ıĉ–Żĉ—" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "ĉ¸…ĉ˜ŽèŠ‚" #: src/hd-data.c:730 msgid "Transfiguration Day" msgstr "ċ˜èşĞĉ—" #: src/hd-data.c:731 msgid "Tynwald Day" msgstr "éİĴĉİċ²›ċ›½ċş†" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "ĉ²ƒĉ™ċ°”ċ‰ĉ–Żäı‹ċ¤œ" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "ċ¨ċ°ĵĉ–Żç‹‚ĉĴ˘èŠ‚" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "退äĵċ†›äşşèŠ‚" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "çğ´ċ¤šċˆİ亚ĉ—" #: src/hd-data.c:736 msgid "Victory Day" msgstr "胜ċˆİĉ—" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "ċœ£çµé™ä¸´èŠ‚" #: src/hd-data.c:738 msgid "Women's Day" msgstr "ċĤ‡ċ³èŠ‚" #: src/hd-data.c:739 msgid "Women's Shrove Day" msgstr "ċĤ‡ċ³ċżĉ‚”ĉ—" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "世界ċЍç‰İĉ—" #: src/hd-data.c:741 msgid "Youth Day" msgstr "青ċı´èŠ‚" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "阿ċ—èŽħċ·ĉŻèµ›éİĴĉ—" #: src/hd-data.c:748 msgid "Admission Day" msgstr "ċŠ é‚Ĥĉ—" #: src/hd-data.c:749 msgid "Alaska Day" msgstr "阿ĉ‹‰ĉ–ŻċŠ ĉ—" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "阿èŽħċ…‹èżĉ–ŻÂ·ċŸşçğ´ĉ—" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "丽ĉ–Żĉ³‰ċ†œċħ•äĵšĉ—" #: src/hd-data.c:752 msgid "All Saints' Eve" msgstr "万ċœ£èŠ‚ċ‰ċ¤œ" #: src/hd-data.c:753 msgid "Americas Day" msgstr "çŽĉ´²ĉ—" #: src/hd-data.c:754 msgid "Angam Day" msgstr "èż”äıĦĉ—" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "ĉ­Ĥ装ĉ–—争纪ċżµĉ—" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "çğżĉœˆċ‘¨ċı´çşŞċżµĉ—" #: src/hd-data.c:759 msgid "Antillian Day" msgstr "ċ‰çš„ċˆ—ĉ–Żĉ—" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "阿盟ĉ—" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "éİĴċĦ里ċĉ–Żċ¤§ä¸ğĉ•™çşŞċżµ" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "éİĴċĦ里ċĉ–Żċ¤§ä¸ğĉ•™ċ‘½ċĉ—" #: src/hd-data.c:764 msgid "Arengo Anniversary" msgstr "阿äĵĤĉˆˆĉˆçĞ‹ċ‘¨ċı´çşŞċżµĉ—" #: src/hd-data.c:765 msgid "Army Coup Day" msgstr "ċ†›é˜Ÿĉ”żċ˜ĉ—" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:767 msgid "Artigas' Birthday" msgstr "é˜żè’‚ċŠ ĉ–ŻèŻžè°" #: src/hd-data.c:768 msgid "Asuncion Day" msgstr "亚ĉĉ£ĉ—" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "阿ċĦ”ċ›ċ°”ċ…‹çşŞċżµĉ—" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "ĉƒċŠ›ĉ—" #: src/hd-data.c:771 msgid "Ba'ath Revolution Day" msgstr "ċ¤ċ…´ċ…šéİċ‘½ĉ—" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "äĵŻċˆİċ…ıċ¸ƒċˆİĉ–Żç”·çˆµĉ—" #: src/hd-data.c:773 msgid "Bataan Day" msgstr "ċ·´ä¸ıĉ—" #: src/hd-data.c:774 msgid "Battle of Angamos" msgstr "ċ‰ċŠ èŽĞĉ–Żĉˆ˜ċ½ı纪ċżµĉ—" #: src/hd-data.c:775 msgid "Battle of BoyacĦ" msgstr "ċšäşšċĦĉˆ˜ċ½ı纪ċżµĉ—" #: src/hd-data.c:776 msgid "Battle of Carabobo" msgstr "ċĦĉ‹‰ĉ²ƒĉ²ƒĉˆ˜ċ½ı纪ċżµĉ—" #: src/hd-data.c:777 msgid "Battle of Iquique" msgstr "äĵŠċŸşċ…‹ĉˆ˜ċ½ı纪ċżµĉ—" #: src/hd-data.c:778 msgid "Battle of Las Piedras" msgstr "ĉ‹‰ĉ–Żċ½ĵċ·ĉ‹‰ĉ–Żĉˆ˜ċ½ı纪ċżµĉ—" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "那菲ċ‹’ĉ–Żĉˆ˜ċ½ı纪ċżµĉ—" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "çĞ‹ċ¤" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "贝ċ°”ĉ ĵèŽħċ·èŠ‚" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "ĉœĴċéĦżĉˆ˜ĉ–—纪ċżµĉ—" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "çĉ°´ç¤ĵ" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "ċ¸ƒé²ċ§†ĉ—" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "ċšċ†ˆèĉ—" #: src/hd-data.c:786 msgid "Bonaire Day" msgstr "ċšċ†…ċ°”ĉ—" #: src/hd-data.c:787 msgid "Boqueron Battle Day" msgstr "ċšċ…‹é™ĉˆ˜ċ½ı纪ċżµĉ—" #: src/hd-data.c:788 msgid "Botswana Day" msgstr "ċšèŒ¨ç“Ĥçş³ĉ—" #: src/hd-data.c:789 msgid "Bounty Day" msgstr "é‚Ĥ蒂ĉ—" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "é‚Ĥċ…‹ċħħĉˆ˜ċ½ı纪ċżµĉ—" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "ĉ‰Ĵ·èƒĦĉ–Żċ—ċˆ‘ĉ—" #: src/hd-data.c:792 msgid "Canberra Day" msgstr "ċ ŞċŸıĉ‹‰ĉ—" #: src/hd-data.c:793 msgid "Caricom Day" msgstr "ċŠ ċ‹’ĉŻ”ċ…ħċŒä½“ĉ—" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "ċĦèżçħ³ċ°”·ĉ™ĉ‹‰ĉ–ŻċŸşçşŞċżµĉ—" #: src/hd-data.c:795 msgid "Cassinga Day" msgstr "ċĦè›ċŠ ĉ—" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "ċĦċ´èŠ‚" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "ċĦžè¨ċ°”·ĉŸéŸĤĉ–Żĉ—" #: src/hd-data.c:798 msgid "Charter Day" msgstr "ċŞçĞ ĉ—" #: src/hd-data.c:799 msgid "Chiang Kai-shek's Birthday" msgstr "蒋äğ‹çŸ³èŻžè°" #: src/hd-data.c:800 msgid "Children's White Sunday" msgstr "白色ċ„żçĞ节" #: src/hd-data.c:801 msgid "Colon Day" msgstr "" #: src/hd-data.c:802 msgid "Colorado Day" msgstr "科罗ĉ‹‰ċ¤šĉ—" #: src/hd-data.c:803 msgid "Commonwealth Day" msgstr "联é‚Ĥĉ—" #: src/hd-data.c:804 msgid "Compact Day" msgstr "" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "ċŒç›Ÿċèĉ—" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "ċŠ ċ†•ĉ—" #: src/hd-data.c:807 msgid "Cup Match Day" msgstr "ĉŻèµ›ĉ—" #: src/hd-data.c:808 msgid "Custom Chief's Day" msgstr "酋长ĉ—" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "ċĤĉĦ‘ċ°ĵ亚éİċ‘½ċ…šĉ—" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "èċ°”ĉ–‡ċ†œċħ•äĵšĉ—" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "ċ•†èމĉ—" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "ċ­Ĥ生起äı‰çşŞċżµĉ—" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "老ĉŒè‡Şç”ħ" #: src/hd-data.c:814 msgid "Death of H. Christophe" msgstr "ċ…‹é‡Œĉ–Żċ¤šċ¤Ğ逝世ĉ—" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "ċ·è¨ĉž—逝世ĉ—" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "阿ċœĉœĉ‹‰ĉ€ğçğŸé€ä¸–ĉ—" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "è°˘èµĞĉ€ğçğŸé€ä¸–ĉ—" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "ċ˘çğ´ĉœċ°”逝世ĉ—" #: src/hd-data.c:821 msgid "Defenders Day" msgstr "" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "çˆĥäş²èŠ‚" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "ĉ•™ċ¸ˆèŠ‚" #: src/hd-data.c:824 msgid "Discovery Day" msgstr "ċ¤§ċ‘现纪ċżµĉ—" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "ċ·ĉ ĵĉ”żĉƒċ€’ċ°ĉ—" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "ĉ—ħċ­£ċş†ċ…¸" #: src/hd-data.c:827 msgid "Dr. Sun Yat-sen's Birthday" msgstr "ċ­™ä¸­ċħħèŻžè°" #: src/hd-data.c:828 msgid "Duarte's Birthday" msgstr "ĉœé˜żċ°”ç‰ıèŻžè°" #: src/hd-data.c:829 msgid "Easter Tuesday" msgstr "ċ¤ĉ´ğ节ċ‘¨äşŒ" #: src/hd-data.c:830 msgid "Economic Liberation Day" msgstr "çğĉµŽè§£ĉ”ĉ—" #: src/hd-data.c:831 msgid "Eight Hours Day" msgstr "ċгċŠ¨èŠ‚" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "ċ›½ĉ°‘èäĵšé€‰ä¸ĉ—" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "ċŸƒç½—ċ°”·ċ·´ç½—ĉ—" #: src/hd-data.c:834 msgid "Evacuation Day" msgstr "è‹ħċ†›ĉ’¤é€€çşŞċżµĉ—" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "ä¸ğĉ˜èŠ‚ċ‰ċ¤œ" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "ISS çĴĴ 33 ĉ‰ıċ¸¸éİğäşşċ‘˜ċ‡şċ‘" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "霍ĉ–Żĉ‰˜äğ€èŻžè°" #: src/hd-data.c:838 msgid "Family Day" msgstr "ċĥċş­ĉ—" #: src/hd-data.c:839 msgid "FAO Day" msgstr "ç²ċ†œçğ„çğ‡ĉ—" #: src/hd-data.c:840 msgid "Farmers' Day" msgstr "ċ†œĉ°‘节" #: src/hd-data.c:841 msgid "Father Leval Day" msgstr "ĉ‹‰ç“Ĥċ°”çžçˆĥĉ—" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "ċœ£ĉŻèŠ‚" #: src/hd-data.c:843 msgid "Fisherman's Day" msgstr "ĉ¸”ċ¤Ğ节" #: src/hd-data.c:844 msgid "Foundation of NPLA Day" msgstr "NPLA ĉˆçĞ‹çşŞċżµĉ—" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "äşşĉ°‘ċ…šċğşċ…šèŠ‚" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "ċŠ é‡ŒċŻŒçş³ĉ—" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "ċœ£éİĴ丁ċ°†ċ†›ċ‘¨ċı´çşŞċżµĉ—" #: src/hd-data.c:849 msgid "Gospel Day" msgstr "çĤéŸ³ĉ—" #: src/hd-data.c:850 msgid "Guacanaste Day" msgstr "ç“œçş³ċĦĉ–Żç‰ıĉ—" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "ċ¤ĉ–ŻċĦ”ċ¤ĞÂ·é˜żé“ċ¤Ğĉ—" #: src/hd-data.c:852 msgid "Heritage Day" msgstr "ĉ–‡ċŒ–äĵ çğŸèŠ‚" #: src/hd-data.c:853 msgid "Heroes Day" msgstr "è‹ħ雄纪ċżµĉ—" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "荷äĵŻç‰ıċ†œċħ•äĵš" #: src/hd-data.c:855 msgid "Holy Wednesday" msgstr "ċœ£ċ‘¨ċ‘¨ä¸‰" #: src/hd-data.c:856 msgid "Ho Chi Minh's Birthday" msgstr "èƒĦċż—ĉ˜ŽèŻžè°" #: src/hd-data.c:857 msgid "Human Rights Day" msgstr "äşşĉƒĉ—" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "飓风çˆç·ĉ—" #: src/hd-data.c:859 msgid "Hurricane Thanksgiving Day" msgstr "飓风ĉ„Ÿĉİ节" #: src/hd-data.c:860 msgid "Independence of Cartagena" msgstr "ċĦċĦ”èµĞçş³ç‹ĴçĞ‹ĉ—" #: src/hd-data.c:861 msgid "Independence of Cuenca" msgstr "ĉ˜†ċĦç‹ĴçĞ‹ĉ—" #: src/hd-data.c:862 msgid "Independence of Guayaquil" msgstr "瓜亚ċŸşċ°”ç‹ĴçĞ‹ĉ—" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "ċŸşċ¤šç‹ĴçĞ‹ĉ—" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "ċ°ċşĤäşşċˆ°èĉ—" #: src/hd-data.c:865 msgid "Internal Autonomy Day" msgstr "ċ†…éƒ¨è‡Şĉ²ğĉ—" #: src/hd-data.c:866 msgid "Jefferson Davis' Birthday" msgstr "ĉ°ċĵ—逊·ĉˆ´çğ´ĉ–ŻèŻžè°" #: src/hd-data.c:867 msgid "June Holiday" msgstr "ċ…­ĉœˆċ‡ĉœŸ" #: src/hd-data.c:868 msgid "J. Barbosa's Birthday" msgstr "J. ċ·´ċšè¨èŻžè°" #: src/hd-data.c:869 msgid "J. Chilembwe Day" msgstr "齐ĉċ¸ƒéŸĤĉ—" #: src/hd-data.c:870 msgid "J. Diego's Birthday" msgstr "J. èż­ĉˆˆèŻžè°" #: src/hd-data.c:871 msgid "J. Robert's Birthday" msgstr "J. 罗äĵŻç‰ıèŻžè°" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:873 msgid "Kartini Day" msgstr "ċĦ蒂ċĤ节" #: src/hd-data.c:874 msgid "Catherine Show Day" msgstr "ċ‡Żç‘Ÿç³ċ†œċħ•äĵš" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "ċŸşè…ĉ—" #: src/hd-data.c:876 msgid "Kim Il-Sung's Birthday" msgstr "金ĉ—ĉˆèŻžè°" #: src/hd-data.c:877 msgid "Kim Jong-Il's Birthday" msgstr "金ĉ­£ĉ—èŻžè°" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "ċĦçħ³ċ“ˆçħ³ċ“ˆĉ—" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "ĉ‹‰çŽ›äşŒä¸–çşŞċżµĉ—" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "ĉ‹‰çŽ›äş”ä¸–çşŞċżµĉ—" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "ċ°‘ċı´ċ°„ċ‡ğ节" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "ĉ‹‰ĉ™ċ›½ċĥĉ³•ċšèŠ‚ċ‡ĉ—" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "ĉœ—ċĦžĉ–ŻéĦżĉŻĉ—" #: src/hd-data.c:885 msgid "Liberty Day" msgstr "è‡Şç”ħĉ—" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "ċ˘ĉ£ċ Ħċ¸‚ċş™äĵš " #: src/hd-data.c:888 msgid "Lyndon B. Johnson Day" msgstr "ĉž—ç™ğ·çşĤ翰逊ĉ—" #: src/hd-data.c:889 msgid "L. Rivera's Birthday" msgstr "里çğ´ĉ‹‰èŻžè°" #: src/hd-data.c:890 msgid "Madaraka Day" msgstr "è‚Żċ°ĵäşšè‡Şĉ²ğĉ—" #: src/hd-data.c:891 msgid "Mahatma Gandhi's Birthday" msgstr "ċœ£é›„甘ċœ°èŻžè°" #: src/hd-data.c:892 msgid "Malvinas Day" msgstr "éİĴċ°”çğ´çş³ĉ–Żĉ—" #: src/hd-data.c:893 msgid "Manila Day" msgstr "éİĴċ°ĵĉ‹‰ĉ—" #: src/hd-data.c:894 msgid "Maputo City Day" msgstr "éİĴĉ™ĉ‰˜ċ¸‚ĉ—" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "éİĴ里ċ‰Â·ĉİċ¤ç“ĤĉŻ”ĉ—" #: src/hd-data.c:896 msgid "Maryland Day" msgstr "éİĴ里ċ…°ĉ—" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "ċ˘¨ċ°”ĉœĴĉŻèµ›éİĴ节" #: src/hd-data.c:898 msgid "Merchant Day" msgstr "ċ•†äşşèŠ‚ " #: src/hd-data.c:899 msgid "St John's/Midsummers Eve" msgstr "äğ²ċ¤äı‹ċ¤œ" #: src/hd-data.c:900 msgid "Missionary Day" msgstr "äĵ ĉ•™èŠ‚" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "" #: src/hd-data.c:902 msgid "Morazan Day" msgstr "èŽĞĉ‹‰ĉĦ‘ĉ—" #: src/hd-data.c:903 msgid "Mosheshoe's Day" msgstr "" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "ĉŻäş²ä¸ŽçŽé˘œĉ—" #: src/hd-data.c:905 msgid "Naming Day" msgstr "ċ‘½ċĉ—" #: src/hd-data.c:906 msgid "National Bun Day" msgstr "ċ…¨ċ›½é˘ċŒ…ĉ—" #: src/hd-data.c:907 msgid "National Heroes Day" msgstr "ċ›½ċĥè‹ħ雄ĉ—" #: src/hd-data.c:908 msgid "National Redemption Day" msgstr "ĉ•‘ċ›½ĉ—" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "ċ…¨ċ›½ĉеĉŠ—ĉ—" #: src/hd-data.c:910 msgid "National Revival Day" msgstr "ĉ°‘ĉ—ċ¤ċ…´ĉ—" #: src/hd-data.c:911 msgid "National Unity Day" msgstr "ċ›½ċĥċ›˘çğ“ĉ—" #: src/hd-data.c:912 msgid "Ndadaye Day" msgstr "ĉİèèè€ĥĉ—" #: src/hd-data.c:913 msgid "Neutrality Day" msgstr "中çĞ‹ĉ—" #: src/hd-data.c:914 msgid "Nevada Day" msgstr "ċ†…ċŽèĉ—" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "ĉ–°ĉ”żĉƒċ‘¨ċı´çşŞċżµĉ— " #: src/hd-data.c:916 msgid "Nobel Day" msgstr " èŻşè´ċ°”ĉ— " #: src/hd-data.c:917 msgid "Noi Day" msgstr "" #: src/hd-data.c:918 msgid "OAU Day" msgstr "非çğŸçğ„çğ‡ĉ—" #: src/hd-data.c:919 msgid "October Holiday" msgstr "ċĉœˆċ‡ĉœŸ " #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "石ĉ²ıċ·ä¸šĉ—" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "阿ċ°”ċĦ”ĉ ĵĉ‹‰èżäşšċœ£ĉŻĉ—" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "ċĦ玛琳ċœ£ĉŻĉ—" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "ĉ‹‰ĉ–Żĉ˘…ċĦžċ·ĉ–Żċœ£ĉŻĉ—" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "ĉ´›ĉ‰çŸĥċœ£ĉŻĉ—" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "ċœ£ĉŻä¸ƒè‹Ĥĉ—" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "çğ´ċ¤šċˆİ亚ċœ£ĉŻĉ—" #: src/hd-data.c:927 msgid "Panama City Day" msgstr "ċ·´ĉ‹żéİĴċ¸‚ĉ—" #: src/hd-data.c:928 msgid "Panamerica Day" msgstr "ĉ³›çŽĉ—" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "ċ·´éğŽċ’Œċı³ċċšçşŞċżµĉ—" #: src/hd-data.c:930 msgid "Patriot's Day" msgstr "çˆħċ›½è€…ĉ—" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "äşşĉ°‘èµ·äı‰ĉ—" #: src/hd-data.c:932 msgid "People Power Day" msgstr "äşşĉ°‘ċŠ›é‡èŠ‚" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "菲çŽċ‹è°Šĉ—" #: src/hd-data.c:934 msgid "Pichincha Day" msgstr "çšé’ĤĉŸĉ—" #: src/hd-data.c:935 msgid "Picnic Day" msgstr "野餐ĉ— " #: src/hd-data.c:936 msgid "Pioneer Day" msgstr "ċĵ€ĉ‹“节" #: src/hd-data.c:937 msgid "Poya Day" msgstr "ĉğĦĉœˆèŠ‚" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "ċĦĉ‹‰ċ°ĵé˜żé‚£ĉĴ§é‡ŒçŽ‹ċ­ĉ—" #: src/hd-data.c:939 msgid "Prince of Wales' Birthday" msgstr "ċ¨ċ°”ĉ–Żäş²çŽ‹èŻžè°" #: src/hd-data.c:940 msgid "Proclamation Day" msgstr "ċ£è¨€ĉ—" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:943 msgid "Recreation Day" msgstr "ċ¨ħäıĉ—" #: src/hd-data.c:944 msgid "Referendum Day" msgstr "ċ…ĴĉŠ•ĉ—" #: src/hd-data.c:945 msgid "Regatta Day" msgstr "赛èˆı节" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:947 msgid "Restoration Day" msgstr "ċ›ä¸ğċ¤èŸĉ—" #: src/hd-data.c:948 msgid "Return Day" msgstr "ċ›žċ½’ĉ—" #: src/hd-data.c:949 msgid "Reunification Day" msgstr "çğŸä¸€ĉ—" #: src/hd-data.c:950 msgid "Rizal Day" msgstr "éğŽċˆıĉ—" #: src/hd-data.c:951 msgid "Rwagasore Day" msgstr "鲁ç“ĤċŠ ç´˘ċ°”ĉ—" #: src/hd-data.c:952 msgid "Saba Day" msgstr "萨ċ·´èŠ‚" #: src/hd-data.c:953 msgid "San Jacinto Day" msgstr "ċœ£ċ“ˆè›ĉ‰˜ĉ—" #: src/hd-data.c:954 msgid "San Josİ Day" msgstr "ċœ£ä½•ċĦžĉ—" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "éĤ™ĉ¸Żç‰ıċˆĞèĦŒĉ”żċŒşĉˆçĞ‹çşŞċżµĉ—" #: src/hd-data.c:956 msgid "School Holiday" msgstr "ċ­Ĥĉ Ħċ‡ĉœŸ" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "苏éğŽä¸–ċ…­é¸£èŠ‚" #: src/hd-data.c:958 msgid "Separation Day" msgstr "ç‹ĴçĞ‹ĉ—" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "ċĦžé›·èŒ¨Â·ċĦéİĴĉ—" #: src/hd-data.c:960 msgid "Settlers Day" msgstr "ç§ğĉ°‘ĉ—" #: src/hd-data.c:961 msgid "Seward's Day" msgstr "èżĉ²ƒċ·ĉ—" #: src/hd-data.c:962 msgid "Shaheed Day" msgstr "ĉ²™ċ¸Œċ·ĉ—" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "çŠèŠ‚" #: src/hd-data.c:964 msgid "Sheikh Zayed's Ascension Day" msgstr "ĉ‰Žè€ĥċ·ċ‡ċ¤İĉ—" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "èżè’™Â·çŽğċˆİç“Ĥċ°”ĉ—" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "èżċˆè§£ĉ”ĉ—" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "ċ´éšĥè§£ĉ”ĉ—" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "èżŽĉ˜ĉ—" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "ċ›˘çğ“ĉ—" #: src/hd-data.c:970 msgid "Somers Day" msgstr "萨éğ˜ĉ–Żĉ—" #: src/hd-data.c:971 msgid "Statia-American Day" msgstr "ĉ–ŻċĦ”è’‚äşš-çŽċ›½ĉ—" #: src/hd-data.c:972 msgid "Student's Day" msgstr "ċ­Ĥ生节" #: src/hd-data.c:973 msgid "St Agata Day" msgstr "ċœ£é˜żċŠ ċĦ”ĉ—" #: src/hd-data.c:974 msgid "St Canute's Day" msgstr "ċœ£ċ…‹ċŠŞç‰ıĉ—" #: src/hd-data.c:975 msgid "St Cedilia's Day" msgstr "ċœ£ċĦžèżèŽ‰äşšĉ—" #: src/hd-data.c:976 msgid "St Charles' Day" msgstr "ċœ£ĉŸċ°”ĉ–Żĉ—" #: src/hd-data.c:977 msgid "St Demetrius' Day" msgstr "ċœ£ċ·çħ³ç‰ı里ĉ—" #: src/hd-data.c:978 msgid "St Dİvote Day" msgstr "ċœ£ċ·ċ¨ç‰ıĉ—" #: src/hd-data.c:979 msgid "St Eliah's Day" msgstr "ċœ£äğċˆİ雅ĉ—" #: src/hd-data.c:980 msgid "St Jean Baptiste Day" msgstr "ċœ£èİ·ċ·´è’‚ĉ–Żç‰ıĉ—" #: src/hd-data.c:981 msgid "St Lucia's Day" msgstr "ċœ£ċ˘èżäşšĉ—" #: src/hd-data.c:982 msgid "St Marguerite's Day" msgstr "ċœ£çŽ›ĉ ĵ丽ç‰ıĉ—" #: src/hd-data.c:983 msgid "St Maroon's Day" msgstr "ċœ£éİĴé™ĉ—" #: src/hd-data.c:984 msgid "St Michael's Day" msgstr "ċœ£èżˆċ…‹ċ°”ĉ—" #: src/hd-data.c:985 msgid "St Olav's Day" msgstr "ċœ£ċĉ‹‰ċ¤Ğĉ—" #: src/hd-data.c:986 msgid "St Olav's Eve" msgstr "ċœ£ċĉ‹‰ċ¤Ğĉ—ċ‰ċ¤œ" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "ċœ£äżç½—ĉµ·éšçşŞċżµĉ—" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "ċˆİéİĴ·罗ĉ–Żĉ—" #: src/hd-data.c:989 msgid "St Ursula's Day" msgstr "ċœ£ċŽ„äĵ‘ĉ‹‰ĉ—" #: src/hd-data.c:990 msgid "St Vincent de Paul's Day" msgstr "ċœ£ĉ–‡ĉ£ç‰ıċ·äżç½—ĉ—" #: src/hd-data.c:991 msgid "Suez Victory Day" msgstr "苏äĵŠċ£Ğ胜ċˆİĉ—" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "苏ä¸ıċĦċ¸ƒĉ–ŻèŻžè°" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "ç´˘ċ·´ç‹‚ĉĴ˘èŠ‚" #: src/hd-data.c:994 msgid "Sweden Day" msgstr "瑞ċ…¸ĉ—" #: src/hd-data.c:995 msgid "S. Doe's Birthday" msgstr "ċ¤šäèŻžè°" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "ĉ³°èƒ½ç‰ıĉşŞċ†œċħ•äĵšĉ—" #: src/hd-data.c:997 msgid "Territory Day" msgstr "领ċœŸĉ—" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "ċ¤Şċ­ċĤƒç”Ÿĉ—" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "ċ¤Şċ­ċĤƒċ‘½ċĉ—" #: src/hd-data.c:1000 msgid "The Crown Prince's Birthday" msgstr "皇ċ¤Şċ­ç”Ÿĉ—" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "ċ›½çŽ‹ċ‘½ċĉ—" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "皇ċŽċ‘½ċĉ—" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1004 msgid "Town Meeting Day" msgstr "镇ĉ°‘ċ¤§äĵšĉ—" #: src/hd-data.c:1005 msgid "Traditional Day" msgstr "äĵ çğŸĉ—" #: src/hd-data.c:1006 msgid "Transfer Day" msgstr "领ċœŸç§ğ交ĉ—" #: src/hd-data.c:1007 msgid "Truman Day" msgstr "ĉœé²é—¨ĉ—" #: src/hd-data.c:1008 msgid "Union Day" msgstr "联ċˆĉ—" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "与瑞ċ…¸çš„联盟解ĉ•£" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "联ċˆċ›½ĉ—" #: src/hd-data.c:1011 msgid "Unity Factory Day" msgstr "ċ·ċŽ‚è”ĉĴ˘ĉ—" #: src/hd-data.c:1012 msgid "Victor-Schoelcher Day" msgstr "çğ´ċ…‹ċ¤šÂ·èˆċ°”ĉ­‡ĉ—" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "ċœ£çğ´ç‰ıĉ—" #: src/hd-data.c:1014 msgid "West Virginia Day" msgstr "èżċĵ—ċ‰ċ°ĵ亚ĉ—" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "ċœ£çµé™ä¸´èŠ‚ċ‰ċ¤œ" #: src/hd-data.c:1016 msgid "W. Tubman's Birthday" msgstr "ċĦ”ċ¸ƒĉ›ĵèŻžè°" #: src/hd-data.c:1017 msgid "Yap Day" msgstr "雅蒲节" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "ĉ·ċ…‹ċğşċ›½ĉ—" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "ċ­/éĵ " #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "丑/牛" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "ċŻ…/虎" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "ċŻ/ċ…”" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "è°/é™" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "ċ·³/蛇" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "ċˆ/éİĴ" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "ĉœŞ/çŠ" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "申/猴" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "酉/é¸Ħ" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "ĉˆŒ/狗" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "äş/猪" #: src/hd-data.c:1287 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1550 msgid "Cel" msgstr "Cel" #: src/hd-data.c:1692 src/hd-data.c:2225 msgid "Chi" msgstr "Chi" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "ĉ— ĉ³•ĉ­£çĦèĦç— %d 的阴阳ċކĉ—ĉœŸ" #: src/hd-data.c:2227 src/hd-data.c:3730 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2423 msgid "Chr" msgstr "Chr" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "FRR" #: src/hd-data.c:2778 src/hd-data.c:2960 msgid "Heb" msgstr "Hİb" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "AMO" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "EGO" #: src/hd-data.c:4447 msgid "OxN" msgstr "OxN" #: src/hd-data.c:4449 msgid "OxO" msgstr "OxO" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "Per" #: src/hd-data.c:4847 msgid "Zod" msgstr "Zod" #: src/hd-use.c:929 msgid " day" msgstr " ĉ—" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "ċ†…部节ċ‡ĉ—ċˆ—èĦ¨" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%sïĵš%*s %0*d ċı´ĉ˜Żé—°ċı´" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%sïĵš%*s %0*d ċı´ĉ˜Żċı³ċı´" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*s %d ċı´ĉ˜Żé—°ċı´" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*s %d ċı´ĉ˜Żċı³ċı´" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr " = %+4d ĉ—" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr " = %+4d ĉ—" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s ç›ċ‰ċĞĉœ‰ĉœ€ċ¤š %d éĦıïĵ%s" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "äğ %s%s çĵ–èŻ‘ä¸ş %s%s%s%s" #: src/help.c:75 msgid "# Day number (must be defined)" msgstr "# ĉ—ïĵˆċż…éĦğċšäı‰ïĵ‰" #: src/help.c:76 msgid "# Year number (must be defined)" msgstr "# ċı´ïĵˆċż…éĦğċšäı‰ïĵ‰" #: src/help.c:77 msgid "# Weekday name (may be defined)" msgstr "# 一ċ‘¨ä¸­ċ„ċ¤İ的ċç§°ïĵˆċŻé€‰ïĵ‰" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "ĉœˆäğ½çğ„ïĵˆċż…éĦğċŞċšäı‰ä¸€ä¸Şĉˆċ‘˜ïĵ‰" #: src/help.c:79 msgid "# Month number" msgstr "# ĉœˆ" #: src/help.c:80 msgid "# Month name" msgstr "# ĉœˆäğ½ċ" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "éИ两çğ„ïĵˆċż…éĦğċšäı‰ĉ‰€ĉœ‰ĉˆċ‘˜ïĵ‰ïĵš" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "éИäşċşċˆ—/ĉ ‡è°ċ­—çĴĤ的起ċ§‹ä½ç½" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "éИäşċşċˆ—/ĉ ‡è°ċ­—çĴĤ的çğ“ĉŸä½ç½" #: src/help.c:86 msgid "Character replacement:" msgstr "ċ­—çĴĤĉ›żĉ˘ïĵš" #: src/help.c:87 #, c-format msgid "Space/blank ('%c') character" msgstr "çİşĉ ĵ/çİşç™½ïĵˆâ€œ%c”ïĵ‰ċ­—çĴĤ" #: src/help.c:88 #, c-format msgid "Underscore ('%c') character" msgstr "下ċˆ’çşżïĵˆâ€œ%c”ïĵ‰ċ­—çĴĤ" #: src/help.c:89 #, c-format msgid "Percent ('%c') character" msgstr "ç™ċˆ†ċ·ïĵˆâ€œ%c”ïĵ‰ċ­—çĴĤ" #: src/help.c:90 #, c-format msgid "Backslash ('%c') character" msgstr "ċĉ–œĉ ïĵˆâ€œ%c”ïĵ‰ċ­—çĴĤ" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "ĉ‰€ĉœ‰ĉ ‡ĉœ‰ # 的ċ…ƒç´ éƒ½ĉ˜ŻċŻé€‰éĦı" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "ċŒ…ċĞ一个ĉ ĵċĵèŻ´ĉ˜ŽïĵŒċ…·ä½“ċŻäğċ‚考äğ下ĉ¨Ħĉżïĵš" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[ċŻı齐 [çĴĤċ·] [é›ĥ位] ċ½ċşĤ [ĉ ·ċĵ] [ċŽçĵ€] ĉ ĵċĵ]" #: src/help.c:94 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "ċŻı齐çğ„ïĵˆċż…éĦğċŞċšäı‰ä¸€ä¸Şĉˆċ‘˜ïĵ‰ïĵš" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "ċœ¨ĉŒ‡ċšċ½ċşĤċ†…äğċ·ĤċŻı齐ĉ–ıċĵĉ˜ç¤şċ­—ĉµċ†…ċı" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "ċœ¨ĉŒ‡ċšċ½ċşĤċ†…äğċħ…中ċŻı齐ĉ–ıċĵĉ˜ç¤şċ­—ĉµċ†…ċı" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "ċœ¨ĉŒ‡ċšċ½ċşĤċ†…äğċ³ċŻı齐ĉ–ıċĵĉ˜ç¤şċ­—ĉµċ†…ċı" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "ĉ ‡ċż—ïĵˆċŻé€‰ïĵ‰ïĵš" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "用于ĉ•°ċ€ĵ的ċ‰ċŻĵçĴĤċ·" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "é›ĥ位ïĵˆċŻé€‰ïĵ‰ïĵš" #: src/help.c:104 msgid "Numerical value is filled with leading zero(es)" msgstr "é›ĥ位ïĵˆç”¨äşŽĉ•°ċ€ĵ的ċ‰ċŻĵé›ĥïĵ‰" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "ċ½ċşĤïĵˆċż…éĦğċšäı‰ïĵ‰ïĵš" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "ċ­—ĉµçš„ċ½ċşĤïĵˆ%d..%dïĵ‰" #: src/help.c:107 msgid "STYLE group (exactly one member may be defined):" msgstr "ĉ ·ċĵçğ„ïĵˆċż…éĦğċŞċšäı‰ä¸€ä¸Şĉˆċ‘˜ïĵ‰ïĵš" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "è‡ŞċЍè½Ĵĉ˘ċ­—ĉµċ†…ċı为ċ¤§ċ†™ċ­—çĴĤ" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "è‡ŞċЍè½Ĵĉ˘ċ­—ĉµċ†…ċı为ċ°ċ†™ċ­—çĴĤ" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "è‡ŞċЍè½Ĵĉ˘ċ­—ĉµċ†…ċı为éĤ–ċ­—ĉŻċ¤§ċ†™" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "ċŽçĵ€ïĵˆċŻé€‰ïĵ‰ïĵš" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "用于ĉ•°ċ€ĵ的ċşĉ•°èŻċŽçĵ€" #: src/help.c:114 msgid "FORMAT group (exactly one member must be defined):" msgstr "ĉ ĵċĵçğ„ïĵˆċż…éĦğċŞċšäı‰ä¸€ä¸Şĉˆċ‘˜ïĵ‰ïĵš" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "不ĉˆŞĉ–­ċ­—ĉµċ†…ċı中èĥ…ċ‡şĉŒ‡ċšċ½ċşĤ的部ċˆ†" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "ĉˆŞĉ–­ċ­—ĉµċ†…ċı中èĥ…ċ‡şĉŒ‡ċšċ½ċşĤ的部ċˆ†" #: src/help.c:130 msgid "legal holidays" msgstr "ĉ³•ċšċ‡ĉ—" #: src/help.c:131 msgid "holidays" msgstr "节ċ‡ĉ—" #: src/help.c:132 msgid "Mondays" msgstr "ċ‘¨ä¸€" #: src/help.c:133 msgid "Tuesdays" msgstr "ċ‘¨äşŒ" #: src/help.c:134 msgid "Wednesdays" msgstr "ċ‘¨ä¸‰" #: src/help.c:135 msgid "Thursdays" msgstr "ċ‘¨ċ››" #: src/help.c:136 msgid "Fridays" msgstr "ċ‘¨äş”" #: src/help.c:137 msgid "Saturdays" msgstr "ċ‘¨ċ…­" #: src/help.c:138 msgid "Sundays" msgstr "ċ‘¨ĉ—" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "ċ‘¨ä¸€è‡³ċ‘¨ċ››" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "ċ‘¨ä¸€è‡³ċ‘¨äş”" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%sïĵšċœ¨â€œ%s %sâ€ä¸­ä½żç”¨èż™äş›ċ‚ĉ•°" #: src/help.c:243 msgid "OPTION" msgstr "选éĦı" #: src/help.c:256 msgid " Display help text and quit program" msgstr " ĉ˜ç¤şċ¸ċŠİĉ–‡ĉœĴïĵŒç„ĥċŽé€€ċ‡ş" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr " ĉ˜ç¤şĉ‰İċħ•ċ¸ċŠİĉ–‡ĉœĴïĵŒç„ĥċŽé€€ċ‡ş" #: src/help.c:291 msgid " Display software license and quit program" msgstr " ĉ˜ç¤şè½Żäğĥè¸ċŻċèïĵŒç„ĥċŽé€€ċ‡ş" #: src/help.c:302 msgid " Display version information and quit program" msgstr " ĉ˜ç¤şç‰ˆĉœĴäżĦĉŻïĵŒç„ĥċŽé€€ċ‡ş" #: src/help.c:313 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr " è‹èç½äş†â€œ%2$s”ïĵŒċˆ™ċ°†ç½ç¨‹ċşçš„退ċ‡şçŠĥĉ€è为“%1$d”€‚" #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " 为“%cFILE”选éĦıċğşçĞ‹ċ“ċş”ĉ–‡äğĥ" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " %-3s = ċ°†ċ‘½äğ¤èĦŒċ‚ĉ•°ċ­˜äşŽĉ–‡äğĥ %s" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr " ċˆ›ċğşċĞĉœ‰ċ‘½äğ¤èĦŒċ‚ĉ•°çš„ shell 脚ĉœĴ" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = shell 脚ĉœĴ的ĉ–‡äğĥċ" #: src/help.c:360 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr " ċšäı‰ċ…¨ċħ€ĉ—ĉœŸċ˜é‡â€œDVAR->a...d|f...s|u...|z”" #: src/help.c:364 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr " %-3s = ċšäı‰â€œDVAR%s%s%s”ïĵŒç”ħ“%s”ċ­—çĴĤċˆ†éš”" #: src/help.c:369 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" " ä‹ċĤ‚ïĵŒ%sv a%s1127%sb%s054 èç½â€œa”的ċ€ĵ为 11ĉœˆ27ĉ—ïĵŒâ€œb”的ċ€ĵ为5ĉœˆ4" "ĉ—" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr " ċ°†ĉ–‡äğĥ中的ĉœĴċœ°ĉ—ĉœŸċ˜é‡ċŻĵċ‡şċˆ°ċĤ一ĉ–‡äğĥ" #: src/help.c:393 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr " ċšäı‰ċ…¨ċħ€ĉ–‡ĉœĴċ˜é‡â€œTVAR->%ca...%cz”" #: src/help.c:398 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr " %-3s = ċšäı‰â€œTVAR%sTEXTE”ïĵŒç”ħ“%s”ċ­—çĴĤċˆ†éš”" #: src/help.c:403 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" " ä‹ċĤ‚ïĵŒ%sr %ca%sfoo%s%cb%sbar èç½â€œ%ca”的ċ€ĵ为“foo”ïĵŒâ€œ%cb”的ċ€ĵ" "为“bar”" #: src/help.c:409 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr " = ċšäı‰â€œTVAR[%s|%c%s]COMMANDE”ïĵŒç”ħ“%s”ċ­—çĴĤċˆ†éš”" #: src/help.c:414 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr " ä‹ċĤ‚ïĵŒ%sr %ca%sfoo ċ°†ċ‘½äğ¤â€œfoo”的è“ċ‡şċ†…ċı赋çğ™ċ˜é‡â€œ%ca”" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr " ċ°†ĉ–‡äğĥ中的ĉœĴċœ°ĉ–‡ĉœĴċ˜é‡ċŻĵċ‡şċˆ°ċĤ一ĉ–‡äğĥ" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr " ĉ˜ç¤şĉœŞè˘Ğ %s ĉŽ’é™¤çš„ĉŒ‡ċšĉ—ĉœŸ" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr " %-3s = 下ċˆ—ċ­—çĴĤ中的一个ĉˆ–ċ¤šä¸Şċ­—çĴĤ€‚ċĤ‚ĉžœċ­—çĴĤ" #: src/help.c:448 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " ĉ˜Żċ°ċ†™ċ­—çĴĤïĵŒĉ„ċ‘³ç€ċƒä¸äĵšè˘Ğĉޒ除ïĵ" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = ĉޒ除ĉ‰€ĉœ‰ %s" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr " %-3s = “%c[DATE][%c[DATE]]” ċ’Œ/ĉˆ–“%c[DATE][%c[DATE]]”的ċˆ—èĦ¨" #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr " ç”ħ“%s”ċ­—çĴĤċˆ†éš”çš„èĦ¨èċĵ" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr " ĉ˜ç¤şĉ‰€ĉœ‰ĉ–‡ĉœĴċŒı配 %s 的ĉŒ‡ċšĉ—ĉœŸ" #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " %-3s = äğğ何你ĉ‰€éœ€èĤçš„“ĉ­£ċˆ™èĦ¨èċĵâ€" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr " è‹ĉŒ‡ċšäş†â€œ%s”选éĦıïĵŒċˆ™ċż½ç•ċ¤§ċ°ċ†™ċŒşċˆĞ" #: src/help.c:520 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " ċè½Ĵ“%s”选éĦı的ċ¤§ċ°ċ†™ċŒşċˆ†" #: src/help.c:531 msgid " Display some debug information" msgstr " ĉ˜ç¤şè°ƒèŻ•äżĦĉŻ" #: src/help.c:539 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr " [%-3s] = internal ĉœ‰ċ…³ç¨‹ċşċ†…éƒ¨é™é˘ĉ˜ŻċĤ用ċ°½çš„äżĦĉŻ" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr " = handled 与“internal”相äĵĵïĵŒä¸”ċŒ…ċĞĉ‰€ċ¤„理ĉ–‡äğĥċçš„äżĦĉŻ" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr " = unhandled 与“internal”相äĵĵïĵŒä¸”ċŒ…ċĞĉœŞċ¤„理ĉ–‡äğĥċçš„äżĦĉŻ" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr " = all 与“handled”ċ’Œâ€œunhandled”相äĵĵ" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr " = abort 与“all”相äĵĵïĵ›ċĤ‚ĉžœĉ— ĉ³•ċ¤„理ĉ–‡äğĥċïĵŒċˆ™é€€ċ‡ş" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr " 用ç‰ıĉŠĉ ĵċĵĉ˜ç¤şĉ—ċކèĦ¨" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - 用ĉ ‡ċ‡†ĉ ĵċĵĉ˜ç¤şĉ—ċކèĦ¨" #: src/help.c:596 msgid " Use leap year rule of Eastern Orthodox churches" msgstr " 为东ĉ­£ĉ•™ä½żç”¨é—°ċı´è§„ċˆ™" #: src/help.c:606 msgid " Provide calendar sheet with week numbers" msgstr " ċœ¨ĉ—ċކèĦ¨ä¸­ĉ˜ç¤şċ‘¨ĉ•°" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " ċˆ¤ĉ–­ċ‘¨ĉ•°çš„çħğċž‹ïĵˆċ½“ċ‰ċ€ĵïĵš%sïĵ‰" #: src/help.c:618 msgid "Standard" msgstr "ĉ ‡ċ‡†" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes ISO-8601:1988 规范" #: src/help.c:631 msgid " = no Standard week numbers" msgstr " = no ĉ ‡ċ‡†ċ‘¨ĉ•°" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr " ĉ˜ċĵçĤĉ­˘ĉ—ċކèĦ¨çš„è“ċ‡ş" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr " 直ĉŽè“ċ‡şċˆ°ċ¤–部“%s”ċˆ†éĦµċ™¨" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr " 直ĉŽè“ċ‡şċˆ°ċ†…部ç€ĉ˜“ċˆ†éĦµċ™¨" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " çĤĉ­˘éИäşĉ–‡ĉœĴ€èŠ‚ĉ—ĉ—ĉœŸċ’Œċ½“ċ‰ĉ—ĉœŸ" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr " fċĵşċˆĥéИäşċşċˆ—ïĵŒċ³ä½żè“ċ‡şè˘Ğ重ċšċ‘" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr " èç½éИäşċşċˆ—ċŻı 1ïĵˆ=ċ½“ċ‰ĉ—ïĵ‰ċ’Œ2ïĵˆ=节ċ‡ĉ—ïĵ‰" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr " %-3s = ç”ħ“%s”ċ­—çĴĤċˆ†ċ‰²çš„éИäşċşċˆ—ċŻı" #: src/help.c:716 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr " ä‹ċĤ‚ %sH \\x2%s\\xAE ċœ¨ċşċˆ— 1 ä¸­ä½żç”¨ċċ…­èż›ċˆĥċ€ĵ 2 ċ’Œ AE" #: src/help.c:721 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr " ä‹ċĤ‚ %sH %s%s*%s* ċœ¨ċşċˆ— 2 ä¸­ä½żç”¨ċ­—çĴĤ“*”ċ’Œâ€œ*”" #: src/help.c:732 msgid " Modify format of year calendar" msgstr " äżĉ”ıċı´ċŽ†çš„ĉ ĵċĵ" #: src/help.c:736 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr " %-3s = 1|2|3|4|6|12 ċŒşċ—ĉ•°ïĵˆċ½“ċ‰ċ€ĵïĵš%dïĵ‰" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr " ç”¨èżžçğ­ĉ—ĉ¨Ħċĵĉ˜ç¤şĉ—ċކèĦ¨" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [MOD] = b ä½żç”¨ä¸¤ç§ĉ—ĉœŸèĦ¨ç¤şĉ³•ïĵˆĉ—+ċı´ïĵ‰" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr " ç”¨èżžçğ­ĉ—ĉ¨Ħċĵĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [MOD] = b ä½żç”¨ä¸¤ç§ĉ—ĉœŸèĦ¨ç¤şĉ³•ïĵˆĉ—+ċı´ïĵ‰" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr " ç”¨èżžçğ­ĉ—ĉ¨Ħċĵĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨" #: src/help.c:795 #, c-format msgid " Set starting day of week (actual: %s)" msgstr " èç½ä¸€ċ‘¨çš„èµ·ċ§‹ĉ—ïĵˆċ½“ċ‰ċ€ĵïĵš%sïĵ‰" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr " ċ°†è“ċ‡şé€šèż‡â€œ%s”程ċşċ‘送çğ™ç”¨ĉˆ·" #: src/help.c:857 msgid "UNKNOWN" msgstr "ĉœŞçŸ" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr " [%-3s] = é‚äğĥċœ°ċ€ïĵ›è‹ç•™çİşïĵŒċˆ™ċ‘送çğ™ç”¨ĉˆ·â€œ%s”" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ïĵˆċı´äğ½èŒƒċ›´ïĵš%d...%dïĵ‰" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr " n = ĉ³•ċšċ‡ĉ—ċ’ŒçşŞċżµĉ—" #: src/help.c:883 msgid " N = Legal days only" msgstr " N = äğ…ĉ³•ċšċ‡ĉ—" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s 降ċşĉŽ’ċˆ—" #: src/help.c:897 msgid " Suppress leading blank line of eternal holiday list" msgstr " 不ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨çš„éĤ–èĦŒçİşç™½" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr " 不ċŒ…ċĞċ¤–部ċ‡ĉ—ċˆ—èĦ¨çš„ĉ ‡é˘˜" #: src/help.c:919 msgid " Provide eternal holiday list with astronomical data" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ¤İĉ–‡ĉ•°ĉ" #: src/help.c:931 msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ·´ċ“ˆäĵŠċŽ†èŠ‚ĉ—" #: src/help.c:943 msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ·´ċ“ˆäĵŠċކĉœˆäğ½" #: src/help.c:955 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ‡Żċ°”ç‰ıċŽ†èŠ‚ĉ—" #: src/help.c:967 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„中ċ›½é˜´ċŽ†èŠ‚ĉ—" #: src/help.c:979 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„中ċ›½é˜´ċކĉœˆäğ½" #: src/help.c:991 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„中ċ›½é˜³ċŽ†èŠ‚ĉ—" #: src/help.c:1003 msgid " Provide eternal holiday list with Chinese calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„中ċ›½é˜³ċކĉœˆäğ½" #: src/help.c:1015 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċŸşç£ĉ•™ċކĉ³•ċ‡ĉ—" #: src/help.c:1027 msgid " Provide eternal holiday list with Coptic calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ç§‘ĉ™ç‰ıċކĉœˆäğ½" #: src/help.c:1039 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċŸƒċĦžäż„ĉŻ”äşšċކĉœˆäğ½" #: src/help.c:1051 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ĉ³•ċ›½ċ…ħċ’Œċކĉœˆäğ½" #: src/help.c:1063 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ¸ŒäĵŻĉċŽ†èŠ‚ĉ—" #: src/help.c:1075 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ¸ŒäĵŻĉċކĉœˆäğ½" #: src/help.c:1087 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ°ċşĤĉ°‘用ċކĉœˆäğ½" #: src/help.c:1099 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„äĵŠĉ–Żċ…°ĉ°‘用ċŽ†èŠ‚ĉ—" #: src/help.c:1111 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„äĵŠĉ–Żċ…°ĉ°‘用ċކ" #: src/help.c:1123 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ĉ—ĉœĴ阴ċŽ†èŠ‚ĉ—" #: src/help.c:1135 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ĉ—ĉœĴċ†œċކĉœˆäğ½" #: src/help.c:1147 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ĉ—ĉœĴ阳ċŽ†èŠ‚ĉ—" #: src/help.c:1159 msgid " Provide eternal holiday list with Japanese calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ĉ—ĉœĴ阳ċކĉœˆäğ½" #: src/help.c:1172 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ„ċ›½ĉ–°ċı´ċ‡ĉœŸ" #: src/help.c:1184 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„äşšçŽċ°ĵ亚ĉ—§ċކĉœˆäğ½" #: src/help.c:1196 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċŸƒċŠĉ—§ċކĉœˆäğ½" #: src/help.c:1208 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„东ĉ­£ĉ•™ĉ–°ċŽ†èŠ‚ĉ—" #: src/help.c:1220 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„东ĉ­£ĉ•™ĉ—§ċŽ†èŠ‚ĉ—" #: src/help.c:1232 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„è´ĉ‹‰ċˆİċŽ†èŠ‚ĉ—" #: src/help.c:1244 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„è´ĉ‹‰ċˆİċކĉœˆäğ½" #: src/help.c:1256 msgid " Provide eternal holiday list with zodiacal marker data" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„éğ„道位ç‚ı" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr " ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ç‰ıċšċ›½ċĥ节ĉ—" #: src/help.c:1272 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr " %-3s = 相ċş”çš„ċ›½ċĥ€ċœ°ċŒşäğ£ç ïĵˆċŻäğĉ˜Żċˆ—èĦ¨ïĵŒ" #: src/help.c:1277 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr " ç”ħ“%s”ċ­—çĴĤèżžĉŽ€‚ĉœ‰ # ĉ ‡è°çš„" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr " ċ›½ċĥ/ċœ°ċŒşçš„节ċ‡ĉ—ċˆ—èĦ¨ä¸ċŒĉ•´" #: src/help.c:1286 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = %s 节ċ‡ĉ—" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr " èç½ĉ—ċ‡ş/ĉ—落ĉ—ĥ间的阴ċ½ħ长ċşĤċ‚考ċ€ĵ" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr " %-3s = 相ċş”的角ċşĤċ€ĵïĵŒèŒƒċ›´ä¸ş %+.1f...%+.1f" #: src/help.c:1322 msgid " Set base data of Earth's atmosphere" msgstr " èç½ċœ°çƒċ¤§ĉ°”çš„ċŸşçĦ€ĉ•°ĉ" #: src/help.c:1326 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr " %-3s = ç”ħ“%s”ċˆ†éš”çš„ĉ°”ċŽ‹ċ’Œĉ¸İċşĤċ€ĵ" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " ĉ°”ċŽ‹ċ€ĵïĵŒċ•位ĉ˜Żç™ċ¸•ïĵˆċ½“ċ‰ċ€ĵïĵš%.3fïĵ‰" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr " ĉ°”ĉ¸İċ€ĵïĵŒċ•位ĉ˜Żĉ‘„ĉ°ċşĤïĵˆċ½“ċ‰ċ€ĵïĵš%+.3fïĵ‰" #: src/help.c:1344 msgid " Limit rise/set times of Sun to the day" msgstr " èç½ĉŒ‡ċšĉ—çš„ĉ—ċ‡ş/ĉ—落ĉ—ĥ间" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr " 用ĉœ€ä½³ç²ċşĤèĦ¨ç¤şċ‡ċ™ĉ—ĥ间ċ’Œĉ•°ĉ" #: src/help.c:1366 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " ĉ‰§èĦŒ shell ċ‘½äğ¤â€œ%c%c[%s]”" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " ċ’ŒĉŒ‡ċšâ€œTVAR[%s|%c%s]COMMAND”" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr " ĉ”ıċ˜ċ‡ċ™ĉ—ĥ间的ċŸşçĦ€ĉ—ĥ间" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr " 相ċş”ċœ°ïĵŒĉ”ıċ˜ċŞçŽŻèµ·ċ§‹ĉ—ĥ间" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] ĉ—ĥ间ċç§ğ量ïĵˆċ½“ċ‰ċ€ĵïĵš%s%02d%s" "%02d == GMT%sïĵ‰" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] ĉ—ĥ间ċç§ğ量ïĵˆċ½“ċ‰ċ€ĵïĵš %s%02d%s%02d " "== GMT%sïĵ‰" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr " ĉ”ıċ˜ċŞçŽŻçğ“ĉŸĉ—ĥ间" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] çğ“ĉŸĉ—ĥ间ċ€ĵïĵšïĵˆċ½“ċ‰ċ€ĵïĵš%02d%s" "%02dïĵ‰" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr " ĉ”ıċ˜ċŞçŽŻçš„ĉ—ĥ间ĉ­é•żċ€ĵ" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr " %-3s = MMMM|HH%s[MM] ĉ—ĥ间ĉ­é•żċ€ĵïĵˆċ½“ċ‰ċ€ĵïĵš %02d%s%02dïĵ‰ċ½“ċ‰ċ€ĵ" #: src/help.c:1453 msgid " Change base year of calendar" msgstr " ĉ”ıċ˜ĉ—ċŽ†çš„ċŸşçĦ€ċı´äğ½" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr " %-3s = [%s|%s]YYYY ċı´äğ½ċç§ğ量ïĵˆċ½“ċ‰ċ€ĵïĵš%dïĵ‰" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr " èç½ĉ ĵ里éИċŽ†çš„ĉ”ıéİċ‘¨ĉœŸ" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " ċ½“ċ‰çš„ċ‘¨ĉœŸïĵš%02d-%02d %s %0*d" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr " %-*d%*s = ċ°†ċ‘¨ĉœŸèç½ä¸şïĵš %02d-%02d %s %0*d" #: src/help.c:1485 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr " %-3s = %s%c%s%s%s%s%s%s ĉ˜ċĵċœ°èç½ċ‘¨ĉœŸ" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr " ä½żç”¨ĉ ĵċĵċŒ–ĉ–‡ĉœĴ %s ĉèç½ĉ—ĉœŸċ…ƒç´ çš„éĦşċş" #: src/help.c:1502 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " ċ½“ċ‰ĉ ĵċĵïĵš(%s) “%s” (%s)" #: src/help.c:1504 msgid "self-defined" msgstr "è‡ŞċЍċˆ¤ĉ–­" #: src/help.c:1509 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = ĉ ĵċĵä¸şïĵš “ %s” (%s)" #: src/help.c:1517 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr " %-3s = ċšäı‰ċ•ç‹Ĵ的ĉ ĵċĵ€‚ĉŽ¨èçš„ċ…ƒç´ ĉ ĵċĵä¸şïĵš" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr " ċšäı‰ċŻçżğèŻ‘çš„€ç”¨äşŽç‰ıċšċ›½ċĥ的ç‰ıĉŠċ­—çĴĤċŻı" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr " %-3s = ċ¤§ċ†™ċ­—çĴĤ\"\"ċ°ċ†™ċ­—çĴĤ... ċšäı‰" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr " ä‹ċĤ‚ïĵŒâ€œ %s%s%s%s%s%s%s%s” %-3s ċŻäğĉ­£çĦçżğèŻ‘" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr " äı‹ċ‰ĉ‰€èż°çš„€ä¸€ä¸Şç‹ĴçĞ‹ĉ—ĉœŸĉ ĵċĵä¸­çš„ç‰ıĉŠċ­—çĴĤïĵŒ" #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr " ïĵŒċ…ĥ中ċŒ…ċĞ了ĉ ·ċĵĉŒ‡ċŻĵ部ċˆ†ïĵŒäğċŠ" #: src/help.c:1582 msgid " they are used by the character set used in Germany" msgstr " ċƒäğĴċœ¨ċ·èŻ­ċ­—çĴĤé›†ä¸­çš„ä½żç”¨ĉ–ıċĵ" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ ĉŒ‡ċšĉ—ĉœŸ +++" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr " ċ°†ĉ ‡ċ‡†èµ„ĉşĉ–‡äğĥ“.%s%s”用于ĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr " ċ°†ĉ ‡ċ‡†èµ„ĉşĉ–‡äğĥ“%s%s”用于ĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨ " #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr " ĉĥ‰ċŠçš„ċ‘¨ĉœŸïĵšäğŠċ¤İ" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr " c = ċŞĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸċ­˜ċœ¨çš„ĉ—ĉœŸ" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr " C = äıŸĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸä¸ċ­˜ċœ¨çš„ĉ—ĉœŸ" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr " [MOD] = 下ċˆ—äżé°çĴĤ中ĉœ‰ä¸€ä¸Şĉˆ–ċ¤šä¸Şè˘Ğ # ĉ ‡è°" #: src/help.c:1654 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr " %-3s = 用于ĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨çš„ĉ ‡é˘˜ĉ–‡ĉœĴ" #: src/help.c:1657 #, c-format msgid " Actual: `%s'" msgstr " ċ½“ċ‰ċ€ĵïĵš “%s” " #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr " # g[MOD] = ä½żç”¨ĉ–‡ĉœĴ MOD ċŻıĉŒ‡ċšĉ—ĉœŸèż›èĦŒċˆ†çğ„" #: src/help.c:1682 msgid " 1. Representation of text" msgstr " 1. ĉ–‡ĉœĴèĦ¨ç¤ş" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr " =èç½ç”Ÿç‰İ节ċ‹ĉ–‡ĉœĴċ›ċ½˘çš„ċ½ċşĤ" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d...%d ċ•è½´çš„é•żċşĤ" #: src/help.c:1711 msgid " = Set height of the Moon phase text graphics" msgstr " = èç½ĉœˆç›¸ĉ–‡ċ­—ċ›ċ½˘" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d ĉ€ğèĦŒĉ•°" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr " # a = ĉ˜ç¤şċŽŸċ§‹çš„ĉŒ‡ċšĉ—ĉœŸ" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr " # A = ä½żç”¨ċ¤‡ç”¨ċˆ—èĦ¨ĉ ĵċĵĉĉ˜ç¤ş" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr " # e = ċŒ…ĉ‹Ĵĉ³•ċšċ‡ĉ—ċ’ŒçşŞċżµĉ—" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr " # E = äğ…ċŒ…ĉ‹Ĵĉ³•ċšċ‡ĉ—" #: src/help.c:1763 msgid " # k = Display week number" msgstr " # k = ĉ˜ç¤şċ‘¨ĉ•°" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = ċż½ç•ĉŒ‡ċšĉ—ĉœŸä¸­çš„重ċ¤ĉ—ĉœŸ" #: src/help.c:1787 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr " # Q = ċż½ç•ĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨ä¸­çš„éĤ–èĦŒçİşç™½" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr " # U = ċż½ç•ĉŒ‡ċšĉ—ĉœŸä¸­çš„ĉ—ĉœŸéƒ¨ċˆ†" #: src/help.c:1811 msgid " # J = Suppress text part of fixed dates" msgstr " # J = ċż½ç•ĉŒ‡ċšĉ—ĉœŸä¸­çš„ĉ–‡ĉœĴ部ċˆ†" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr " # x = ĉޒ除ĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨çš„ĉ ‡é˘˜" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr " # z = ĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸçš„èżžçğ­ĉ—ĉ•°" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr " # Z = ĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸä¸­ä¸ċ­˜ċœ¨çš„ĉ—ĉœŸ" #: src/help.c:1855 msgid " 2. Respected period" msgstr " 2. ç‰ıĉŠċ‘¨ĉœŸ" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr " = ċœ¨ċı³ċı´ä¸­èç½â€œäşŒĉœˆ29ĉ—”" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february ĉċ‰è‡³â€œäşŒĉœˆ28ĉ—”" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march ċğĥċŽè‡³â€œä¸‰ĉœˆ1ĉ—”" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr " # d = 生ĉˆäş†ċ‘¨ĉœŸç³ğċˆ—ĉ—ĥċŒ…ċĞċ½“ċ‰ĉ—ĉœŸ" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr " # l = 生ĉˆä¸€ç³ğċˆ—ċ‘¨ĉœŸïĵŒè€Œéžċ•个ċ‘¨ĉœŸ" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr " # Nd = ċ•个çğċŻıĉ— N" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = ċ•个çğċŻıĉ— N" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = 相ċŻı于äğŠċ¤İ的çĴĴ N ĉ—" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s ċ‘ċ‰" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr " = %s ċ‘ċŽ" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr " # Nw = ċŒċ…¨ċ‘¨ N" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr " N = 0 上一ċı´çš„çĴĴ一ċ‘¨ / ĉœ€ċŽä¸€ċ‘¨" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 çĴĴ 1...52 ċ‘¨ïĵˆċ›şċšïĵ‰" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 çĴĴ 53 ċ‘¨ïĵˆċĥċ°”ċ‡şçްïĵ‰" #: src/help.c:1953 msgid " N = 99 Last week" msgstr " N = 99 ĉœ€ċŽä¸€ċ‘¨" #: src/help.c:1956 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # %1$s%2$s = %4$s ĉœˆçš„çĴĴ %3$s ĉ—" #: src/help.c:1962 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr " # %1$s%2$sN = %4$s ĉœˆçš„çĴĴ N 个ĉ˜ŸĉœŸ %3$s" #: src/help.c:1967 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr " N = 1...4 çĴĴ 1...4 个ĉ˜ŸĉœŸ %sïĵˆċ›şċšïĵ‰" #: src/help.c:1972 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr " N = 5 çĴĴ五个ĉ˜ŸĉœŸ %sïĵˆċĥċ°”ċ‡şçްïĵ‰" #: src/help.c:1976 #, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 ĉœ€ċŽä¸€ä¸Şĉ˜ŸĉœŸ %s" #: src/help.c:1980 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN%s = çĴĴ N 个ĉ˜ŸĉœŸ %s" #: src/help.c:1985 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr " N = 1...51 çĴĴ 1...51 个ĉ˜ŸĉœŸ %sïĵˆċ›şċšïĵ‰" #: src/help.c:1990 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr " N = 52|53 çĴĴ 52|53 个ĉ˜ŸĉœŸ %sïĵˆċĥċ°”ċ‡şçްïĵ‰" #: src/help.c:1994 #, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 ĉœ€ċŽä¸€ä¸Şĉ˜ŸĉœŸ %s" #: src/help.c:1999 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr " # %cwN%s = çĴĴ N ċ‘¨çš„ĉ˜ŸĉœŸ %s" #: src/help.c:2004 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr " N = 0 ä¸ä½äşŽçĴĴ一ċ‘¨ä¸­çš„ %s" #: src/help.c:2009 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr " N = 1...51 çĴĴ 1...51 ċ‘¨çš„ %sïĵˆċ›şċšïĵ‰" #: src/help.c:2014 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr " N = 52|53 çĴĴ 52|53 ċ‘¨çš„ %sïĵˆċĥċ°”ċ‡şçްïĵ‰" #: src/help.c:2018 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 ĉœ€ċŽä¸€ċ‘¨çš„ %s" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr " # %c%c[[%s|%s]N] = 相ċŻı于ċ¤ĉ´ğ节ĉ˜ŸĉœŸĉ—çš„çĴĴ N ċ¤İ" #: src/help.c:2030 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr " # %c%c[%s|%s]N%s = 相ċŻı于ċ¤ĉ´ğ节ĉ˜ŸĉœŸĉ—çš„çĴĴ N 个ĉ˜ŸĉœŸ" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr " # %c%c[[%s|%s]N] = 相ċŻı于äğŠċ¤İ的çĴĴ N ċ¤İ" #: src/help.c:2042 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr " # %c%c[%s|%s]N%s = 相ċŻı于äğŠċ¤İ的çĴĴ N 个ĉ˜ŸĉœŸ" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr " # %c?[[%s|%s]N] = 相ċŻı于çğ™ċšĉ—ĉœŸċ˜é‡çš„çĴĴ N ċ¤İ" #: src/help.c:2054 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr " # %c?[%s|%s]N%s = 相ċŻı于çğ™ċšĉ—ĉœŸċ˜é‡çš„çĴĴ N 个ĉ˜ŸĉœŸ" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr " # t|T = ċˆ—ċ‡şĉ˜Žċ¤İ的ĉ—ĉœŸ" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = ċˆ—ċ‡şĉ•´ä¸Şĉ˜ŸĉœŸ" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr " [MOD] = %s ċˆ—ċ‡şäğŽĉ˜Žċ¤İċˆ°ċ‘¨ĉœĞ的ĉ—ĉœŸ" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr " = %s ċˆ—ċ‡şäğŽĉ˜¨ċ¤İċˆ°ä¸€ċ‘¨ċĵ€ċ§‹äı‹ĉ—çš„ĉ—ĉœŸ" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = ċˆ—ċ‡şĉ•´ä¸Şĉœˆ" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr " [MOD] = %s ċˆ—ċ‡şäğŽĉ˜Žċ¤İċˆ°ĉœˆĉœĞ的ĉ—ĉœŸ" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr " = %s ċˆ—ċ‡şäğŽĉ˜¨ċ¤İċˆ°ä¸€ĉœˆċĵ€ċ§‹äı‹ĉ—çš„ĉ—ĉœŸ" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = ċˆ—ċ‡şċ…¨ċı´çš„ĉ—ĉœŸ" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr " [MOD] = %s ċˆ—ċ‡şäğŽĉ˜Žċ¤İċˆ°ċı´ĉœĞ的ĉ—ĉœŸ" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr " = %s ċˆ—ċ‡şäğŽĉ˜¨ċ¤İċˆ°ä¸€ċı´ċĵ€ċ§‹äı‹ĉ—çš„ĉ—ĉœŸ" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr " ä½żç”¨ċ¤‡é€‰ĉ–‡äğĥïĵŒè€Œéžĉ ‡ċ‡†èµ„ĉşĉ–‡äğĥ" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = ċŞĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸċ­˜ċœ¨çš„ĉ—ĉœŸ" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr " F = äıŸĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸä¸ċ­˜ċœ¨çš„ĉ—ĉœŸ" #: src/help.c:2173 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr " %-3s = ç”ħ“%s”ċ­—çĴĤèżžĉŽçš„ċ•个ĉ–‡äğĥĉˆ–ĉ–‡äğĥċˆ—èĦ¨" #: src/help.c:2184 msgid " Define additional resource file line" msgstr " ċšäı‰é™„ċŠ çš„èµ„ĉşĉ–‡äğĥèĦŒ" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = ċŻç”¨çš„资ĉşĉ–‡äğĥèĦŒ" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "%cĉ—ĉœŸ" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "ä½żç”¨ĉŒ‡ċšĉ—ĉœŸïĵŒè€ŒéžäğŠċ¤İ的ĉ—ĉœŸ" #: src/help.c:2202 #, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "ĉ—ĉœŸĉ ĵċĵïĵš%s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr " %s%cwN[%s]ïĵŒĉœˆäğ½ċ[%s]ïĵŒĉ˜ŸĉœŸä¸­ä¸Şċ¤İ的ċç§°[N] ĉˆ– %s" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "%cĉ–‡äğĥ" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "预ċ…ˆäğŽĉŒ‡ċšĉ–‡äğĥ中ċŠ è½½é€‰éĦıċ’Œċ‘½äğ¤" #: src/help.c:2224 msgid "COMMAND" msgstr "ċ‘½äğ¤" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = %d...%d äı‹é—´çš„ĉœˆäğ½" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr " ĉˆ–ïĵšĉœˆäğ½ċ | %s | %s%s | %s%s | %s%s" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr " ċˆ—èĦ¨ïĵš%s[%s%s]%s...%s%s[%s%s]" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr " 范ċ›´ïĵš%s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = %d...%d äı‹é—´çš„ċı´äğ½" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr " ċˆ—èĦ¨ïĵš [%s%s]%s%s...%s[%s%s]%s" #: src/help.c:2257 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr " 范ċ›´ïĵš[%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" #: src/help.c:2283 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr " %sh, %s ĉ˜ç¤şĉœĴċ¸ċŠİïĵŒç„ĥċŽé€€ċ‡ş" #: src/help.c:2286 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " %shh, %s ĉ˜ç¤şĉ‰İċħ•ċ¸ċŠİïĵŒç„ĥċŽé€€ċ‡ş" #: src/help.c:2290 #, c-format msgid " %sL, %s Display software license and quit program" msgstr " %sL, %s ĉ˜ç¤şè½Żäğĥè¸ċŻċèïĵŒç„ĥċŽé€€ċ‡ş" #: src/help.c:2294 #, c-format msgid " %sV, %s Display version information and quit program" msgstr " %sV, %s ĉ˜ç¤şç‰ˆĉœĴäżĦĉŻïĵŒç„ĥċŽé€€ċ‡ş" #: src/help.c:2302 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " %sp, %s è“ċ‡şċˆ°ċ¤–部“%s”ċˆ†éĦµċ™¨" #: src/help.c:2309 src/help.c:2314 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " %sp, %s è“ċ‡şċˆ°ċ†…部ç€ĉ˜“ċˆ†éĦµċ™¨" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "ĉœĴè½Żäğĥä¸äżèŻċŒċ¤‡€ĉ— é”™ĉˆ–ċŻç”¨ĉ€§€‚" #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "ċŽŸċˆ™ä¸Šĉˆ‘不äĵšċŻıäğğ何ċ› ä½żç”¨ĉˆ–ĉ“ä½œĉœĴè½Żäğĥ而ċ¸Ĥĉçš„ĉŸċ³ĉˆ–ĉŸċ¤ħĉ‰żĉ‹…" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "ïĵˆĉ˜ċĵĉˆ–隐ċĵçš„ïĵ‰è´£äğğ€‚" #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "ċĤ‚ĉžœä½ ä½żç”¨ĉœĴè½ŻäğĥïĵŒä½ ċŒĉ„ĉ— ä¸€ä‹ċ¤–ċœ°éµċˆèŻ" #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "ċċšïĵŒèż™ä¸€ċċšċ…·ċ¤‡ĉ³•ċ‹ĉ•ˆċŠ›ïĵ" #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "ĉœĴ程ċşä¸şè‡Şç”ħè½ŻäğĥïĵŒä½ ċŻäğċŻıċ…ĥèż›èĦŒċ†ċˆ†ċ‘ĉˆ–äżĉ”ıïĵŒ" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "ċŞèĤéµċŞâ€œGNU 通用ċ…Ĵċ…ħè¸ċŻèŻâ€ċèïĵˆç”ħ" #: src/help.c:2366 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "â€œè‡Şç”ħè½ŻäğĥċŸşé‡‘äĵšâ€ċ‘ċ¸ƒïĵ‰çĴĴ三版ĉˆ–ïĵˆĉŒ‰ç…§ä½ çš„ĉ„ĉ„żïĵ‰" #: src/help.c:2368 msgid "any later version." msgstr "ĉ›´éИ版ĉœĴ€‚" #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "ä½ ċş”ċ½“ċ·²çğéšç¨‹ċşĉ”ĥċˆ°â€œGNU 通用ċ…Ĵċ…ħè¸ċŻèŻâ€çš„ċ‰ŻĉœĴïĵ›" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "ċĤ‚ĉžœĉ²Ħĉœ‰ïĵŒèŻ·ċ†™äżĦçğ™ïĵš" #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" "用ĉ³•ïĵš%s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" #: src/help.c:2452 #, c-format msgid "Use `%s %s|[%s?]" msgstr "ä½żç”¨ċ‘½ä𤠑 %s %s|[%s?]" #: src/help.c:2461 msgid "for more information." msgstr "ĉèŽ·ċ–ĉ›´ċ¤šäżĦĉŻ€‚" #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, c-format msgid "Email bug reports to <%s>" msgstr "èŻ·ċ°†è½Żäğĥçĵşé™·ĉŠċ‘Šè‡³ <%s>" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "GNU gcal ä¸ğéĦµïĵš<%s>" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "GNU è½Żäğĥ的通用ċ¸ċŠİïĵš<%s>" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "ĉœĴè½Żäğĥĉ˜Żè‡Şç”ħè½Żäğĥïĵ›èŻ·ċ‚考ĉşäğ£ç ä¸­ĉœ‰ċ…³çš„版ĉƒĉĦçşĤ€‚" #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "不ĉä›äğğ何ĉ‹…保ïĵŒäıŸä¸äżè݁" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "适销ĉ€§ĉˆ–ċ…·ĉœ‰ç‰ıċšç”¨é€”€‚" #: src/help.c:2617 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%sïĵšĉ ĵ里éИċˆİċŽ†ç¨‹ċşïĵˆGNU calïĵ‰%s" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "用ĉ³•ïĵš %s [[选éĦı...] [%cĉ—ĉœŸ] [%cĉ–‡äğĥ..]] [ċ‘½äğ¤]" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "用ĉ³•ïĵš %s [[选éĦı...] [%cĉ–‡äğĥ...]] [ċ‘½äğ¤]" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr " 4.0 ĉˆ– 4.02" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr " 5.0 äı‹ċŽ" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "++ 3.0 ĉˆ–ĉ›´éИïĵ‰" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "5.1 ĉˆ–ĉ›´éИ" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "ĉœŞçŸçĵ–èŻ‘ċ™¨" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr " 于 " #: src/help.c:2827 msgid "(bad version)" msgstr "ïĵˆç‰ˆĉœĴĉœ‰èŻŻïĵ‰" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "ĉœŞçŸçĵ–èŻ‘ċ™¨ïĵˆSDKïĵŸïĵ‰" #: src/help.c:2942 msgid " later than 4.5" msgstr " 4.5 äı‹ċŽ" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "++ 1.0 ĉˆ–ĉ›´éИ" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr " 1.0 ĉˆ– 1.5ïĵŸ" #: src/help.c:3075 msgid "unknown " msgstr "ĉœŞçŸ " #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "版ĉœĴ %d.%d" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "版ĉœĴ %d" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "ĉœŞçŸç‰ˆĉœĴ" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s for Alpha)" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s for VAX)" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr "ïĵˆNetBSD 0.9 äğċ‰ïĵ‰" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr "ïĵˆNetBSD 1.2 ĉˆ–ĉ›´éИïĵ‰" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr "ïĵˆFreeBSD 2.0 ĉˆ–ĉ›´éИïĵ‰" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr "ïĵˆBSD/386 1.1 ĉˆ–ĉ›´éИïĵ‰" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "CW" #: src/print.c:566 msgid "Week" msgstr "ċ‘¨" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "pm" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "am" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "°'\"" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "h'\"" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "ĉ— ĉ³•ĉ‰§èĦŒĉ–‡äğĥ“%s”中的ċ‘½äğ¤\n" "çĴĴ %ld èĦŒïĵš%s" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" "ċ‘½äğ¤ċ·²ĉ‰§èĦŒïĵˆé€€ċ‡şçŠĥĉ€ç =%dïĵ‰äşŽĉ–‡äğĥ“%s”\n" "çĴĴ %ld èĦŒïĵš%s" #: src/rc-use.c:514 msgid "Emo" msgstr "" #: src/rc-use.c:519 msgid "Int" msgstr "" #: src/rc-use.c:524 msgid "Phy" msgstr "" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "“ċ¤–部节ĉ—ċˆ—èĦ¨â€" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "“ċ†…部”" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr "ïĵ›çĴĴ %s ċ‘¨" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "çĴĴ %s ċ‘¨" #: src/rc-utils.c:398 src/rc-utils.c:415 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%sïĵšĉŒ‡ċšäş†ĉ— ĉ•ˆçš„ĉ—ĉœŸ -- %s\n" "%s\n" "%s\n" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "闰ĉ—èċšä¸şâ€œ%02d-%s”于ĉ–‡äğĥ“%s”€‚" #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "çĴĴ %ld èĦŒïĵš%s" #: src/rc-utils.c:3634 src/utils.c:275 #, c-format msgid "%s: abort, " msgstr "%sïĵšé€€ċ‡şïĵŒ" #: src/rc-utils.c:3642 #, c-format msgid "illegal variable definition in file `%s'" msgstr "ĉ–‡äğĥ“%s”中ĉœ‰éžĉ³•çš„ċ˜é‡ċšäı‰" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "ċŻıċ˜é‡â€œ%c”的ċšäı‰éžĉ³•" #: src/rc-utils.c:3651 #, c-format msgid "illegal variable operation in file `%s'" msgstr "ĉ–‡äğĥ“%s”中ĉœ‰éžĉ³•çš„ċ˜é‡ĉ“ä½œ" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "ċŻıċ˜é‡â€œ%c”的ĉ“ä½œéžĉ³•" #: src/rc-utils.c:3659 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "ċ˜é‡â€œ%c”ċœ¨ĉ–‡äğĥ“%s”中ĉœŞċšäı‰" #: src/rc-utils.c:3663 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "ĉ–‡äğĥ“%2$s”中为ċ˜é‡â€œ%1$c”ĉŒ‡ċšäş†ĉ— ĉ•ˆçš„ċ€ĵ" #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "ĉŒ‡ċšäş†ĉ— ĉ•ˆçš„ċ‘½äğ¤èĦŒċ‚ĉ•° -- %s" #: src/rc-utils.c:3696 #, c-format msgid "Argument `%s' of command line ignored." msgstr "ċż½ç•ċ‘½äğ¤èĦŒċ‚ĉ•°â€œ%s”€‚" #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "ċż½ç•çĴĴ %ld èĦŒïĵš%s" #: src/tty.c:425 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%sïĵšĉŒ‰ ĉ˜ç¤şĉ›´ċ¤šïĵŒĉŒ‰ <%s> 退ċ‡ş..." #: src/tty.c:1020 #, c-format msgid "environment variable `%s' not found" msgstr "ĉ‰ä¸ċˆ°çŽŻċ˘ƒċ˜é‡â€œ%s”" #: src/tty.c:1027 #, c-format msgid "environment variable `%s' not set" msgstr "ĉœŞèç½çŽŻċ˘ƒċ˜é‡â€œ%s”" #: src/tty.c:1067 msgid "`termcap' file not found" msgstr "ĉ‰ä¸ċˆ°â€œtermcap”ĉ–‡äğĥ" #: src/tty.c:1072 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "“%s”中ċšäı‰äş†ĉœŞçŸçš„çğˆçĞŻçħğċž‹" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%sïĵšè­Ĥċ‘ŠïĵŒ%s€‚\n" "\n" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "用于èĦç—ċ¤ĉ´ğ节ĉ˜ŸĉœŸĉ—çš„ċı´äğ½ĉ— ĉ•ˆċı´äğ½ċż…éĦğċœ¨ %d 至%d äı‹é—´" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "“%s” çĴĴ %ld èĦŒïĵšè™šĉ‹Ÿċ†…ċ­˜ç”¨ċ°½ïĵˆ%s=%dïĵ‰" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" "ĉ–‡äğĥ“%s”中的ĉ—ĉœŸéƒ¨ċˆ†ĉ— ĉ•ˆ\n" "çĴĴ %ld èĦŒïĵš%s" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "ĉ–‡äğĥ“%2$s”中的ĉœˆäğ½ċ­—ĉµïĵˆ%1$02dïĵ‰ĉ— ĉ•ˆ\n" "çĴĴ %3$ld èĦŒïĵš%4$s" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "ĉ–‡äğĥ“%2$s”中的ĉ˜ŸĉœŸċ­—ĉµïĵˆ%1$02dïĵ‰ĉ— ĉ•ˆ\n" "çĴĴ %3$ld èĦŒïĵš%4$s" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" "ĉ–‡äğĥ“%s”中的 %s ĉ ĵċĵé”™èŻŻ\n" "çĴĴ %ld èĦŒïĵš%s" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" "ĉ–‡äğĥ“%2$s”中ĉœ‰ĉ— ĉ•ˆçš„ċŞçŽŻ/递ċ½’ %1$s\n" "çĴĴ %3$ld èĦŒïĵš%4$s" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "ĉ‰ä¸ċˆ°ĉ–‡äğĥ“%s”" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" "ĉ–‡äğĥ“%2$s”中的çĴĴċ‡ ä¸Şĉ˜ŸĉœŸċ­—ĉµïĵˆ%1$dïĵ‰ĉ— ĉ•ˆ\n" "çĴĴ %3$ld èĦŒïĵš%4$s" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "ĉ–‡äğĥ“%s”中的ĉ—ĉœŸéƒ¨ċˆ†ċŽçĵşċ°‘“çİşĉ ĵ”ċ­—çĴĤçĴĴ %ld èĦŒïĵš%s" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "ĉ— ĉ³•ċ†™ċ…ĉ–‡äğĥ“%s”\n" "ċ‚¨ċ­˜ċޒ体ċ·²ĉğĦïĵ" #: src/utils.c:333 #, c-format msgid "sending eMail to <%s> failed" msgstr "ċ‘送电ċ­é‚äğĥ至 <%s> ċ¤ħè´" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "“%s”çĴĴ %ld èĦŒïĵš" #: src/utils.c:342 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "“%s”çĴĴ %ld èĦŒïĵšïĵˆâ€œ%s”ïĵ‰â€œ%s%d”ċ¤ħè´" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "èŻğċ–ĉ–‡äğĥ“%s”ĉ—ĥċ‡şé”™" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "ċ“ċş”ĉ–‡äğĥ“%s”中ĉœ‰éžĉ³•ċ­—çĴĤ\n" "çĴĴ %ld èĦŒïĵš%s" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "“%s”çĴĴ %ld èĦŒïĵšïĵˆâ€œ%s”ïĵ‰èĦ¨ċ¤§ċ°ĉ— ĉ•ˆâ€œsizeof %s>%d”" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "ïĵˆâ€œ%s”ïĵ‰ĉ—ĉœŸĉ ĵċĵâ€œ%s”ĉ— ĉ•ˆ" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "“%2$s”中ċĞĉœ‰ĉœç´˘ĉ ·ċĵâ€œ%1$s”" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "ĉŒ‡ċšäş†ĉ— ĉ•ˆçš„ĉœç´˘ĉ¨Ħċĵâ€œ%s”" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "“%s”çĴĴ %ld èĦŒïĵšïĵˆâ€œ%s”ïĵ‰ĉœ‰ĉœŞċ¤„ç†çš„é”™èŻŻïĵˆ%dïĵ‰" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 msgid "internal" msgstr "ċ†…部" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%sïĵšç¨‹ċşĉ”ĥċˆ° %d äżĦċ·ïĵŒċ·²é€€ċ‡ş\n" #: src/utils.c:1081 msgid "th" msgstr "th" #: src/utils.c:1085 msgid "st" msgstr "st" #: src/utils.c:1089 msgid "nd" msgstr "nd" #: src/utils.c:1093 msgid "rd" msgstr "rd" #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "ĉ˜ŸĉœŸĉ— ĉ•ˆ" #: src/utils.c:1129 msgid "Mon" msgstr "ċ‘¨ä¸€" #: src/utils.c:1134 msgid "Tue" msgstr "ċ‘¨äşŒ" #: src/utils.c:1139 msgid "Wed" msgstr "ċ‘¨ä¸‰" #: src/utils.c:1144 msgid "Thu" msgstr "ċ‘¨ċ››" #: src/utils.c:1149 msgid "Fri" msgstr "ċ‘¨äş”" #: src/utils.c:1154 msgid "Sat" msgstr "ċ‘¨ċ…­" #: src/utils.c:1159 msgid "Sun" msgstr "ċ‘¨ĉ—" #: src/utils.c:1180 msgid "Mo" msgstr "ċ‘¨ä¸€" #: src/utils.c:1185 msgid "Tu" msgstr "ċ‘¨äşŒ" #: src/utils.c:1190 msgid "We" msgstr "ċ‘¨ä¸‰" #: src/utils.c:1195 msgid "Th" msgstr "ċ‘¨ċ››" #: src/utils.c:1200 msgid "Fr" msgstr "ċ‘¨äş”" #: src/utils.c:1205 msgid "Sa" msgstr "ċ‘¨ċ…­" #: src/utils.c:1210 msgid "Su" msgstr "ċ‘¨ĉ—" #: src/utils.c:1227 msgid "Monday" msgstr "ĉ˜ŸĉœŸä¸€" #: src/utils.c:1227 msgid "Tuesday" msgstr "ĉ˜ŸĉœŸäşŒ" #: src/utils.c:1227 msgid "Wednesday" msgstr "ĉ˜ŸĉœŸċ››" #: src/utils.c:1227 msgid "Thursday" msgstr "ĉ˜ŸĉœŸċ››" #: src/utils.c:1228 msgid "Friday" msgstr "ĉ˜ŸĉœŸäş”" #: src/utils.c:1228 msgid "Saturday" msgstr "ĉ˜ŸĉœŸċ…­" #: src/utils.c:1228 msgid "Sunday" msgstr "ĉ˜ŸĉœŸĉ—" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "ĉœˆäğ½ĉ— ĉ•ˆ" #: src/utils.c:1249 msgid "Jan" msgstr "一ĉœˆ" #: src/utils.c:1254 msgid "Feb" msgstr "二ĉœˆ" #: src/utils.c:1259 msgid "Mar" msgstr "三ĉœˆ" #: src/utils.c:1264 msgid "Apr" msgstr "ċ››ĉœˆ" #: src/utils.c:1269 msgid "May" msgstr "五ĉœˆ" #: src/utils.c:1274 msgid "Jun" msgstr "ċ…­ĉœˆ" #: src/utils.c:1279 msgid "Jul" msgstr "七ĉœˆ" #: src/utils.c:1284 msgid "Aug" msgstr "ċ…Ğĉœˆ" #: src/utils.c:1289 msgid "Sep" msgstr "äıĉœˆ" #: src/utils.c:1294 msgid "Oct" msgstr "ċĉœˆ" #: src/utils.c:1299 msgid "Nov" msgstr "ċä¸€ĉœˆ" #: src/utils.c:1304 msgid "Dec" msgstr "ċäşŒĉœˆ" #: src/utils.c:1322 msgid "January" msgstr "一ĉœˆ" #: src/utils.c:1322 msgid "February" msgstr "二ĉœˆ" #: src/utils.c:1323 msgid "March" msgstr "三ĉœˆ" #: src/utils.c:1323 msgid "April" msgstr "ċ››ĉœˆ" #: src/utils.c:1333 msgid "May " msgstr "五ĉœˆ" #: src/utils.c:1334 msgid "June" msgstr "ċ…­ĉœˆ" #: src/utils.c:1334 msgid "July" msgstr "七ĉœˆ" #: src/utils.c:1335 msgid "August" msgstr "ċ…Ğĉœˆ" #: src/utils.c:1335 msgid "September" msgstr "äıĉœˆ" #: src/utils.c:1336 msgid "October" msgstr "ċĉœˆ" #: src/utils.c:1336 msgid "November" msgstr "ċä¸€ĉœˆ" #: src/utils.c:1336 msgid "December" msgstr "ċäşŒĉœˆ" #: src/tcal.c:193 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "用ĉ³•ïĵš%s [--%s | --%s] | [--%s=[+|-]ĉ•°ċ€ĵ] [çĵ–ċ·...]\n" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%sïĵšé€€ċ‡şïĵŒ" #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "ċç§ğ量“%s”ĉ— ĉ•ˆ" #: src/tcal.c:909 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%sïĵšé€‰éĦı“--%s”需èĤä¸€ä¸Şċ‚ĉ•°" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%sïĵšç¨‹ċşĉ‰§èĦŒâ€œ%s”ĉ—ĥċ‡şé”™\n" #: src/txt2gcal.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "用ĉ³•ïĵš %s [--%s | --%s] | [ĉ–‡ĉœĴĉ–‡äğĥ | -] [ĉ—ĉœŸ]\n" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "%sïĵšéžĉ™é€šĉ–‡äğĥ\n" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "%sïĵšĉ–‡äğĥĉœŞĉ‰ċˆ°\n" #: src/gcal2txt.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "用ĉ³•ïĵš%s [--%s | --%s] | [资ĉşĉ–‡äğĥ | -]\n" #~ msgid "Brunei Darussalam" #~ msgstr "Brunei" #~ msgid " %-3s = Any text you like, metacharacters are not respected" #~ msgstr "" #~ " %-3s = tout texte prİfİrİ, les mİtacaract¨res ne sont pas recpectİs" #~ msgid "Compilation options:" #~ msgstr "Options de compilation:" #~ msgid "Starting day of week: %s" #~ msgstr "Dİbut du jour de semaine: %s" #~ msgid "Type of week numbers: %s" #~ msgstr "Type de numİros de semaine: %s" #~ msgid "Base year of calendar: %d" #~ msgstr "Annİe de base du calendier: %d" #~ msgid "Gregorian Reformation: %02d-%02d %s %0*d" #~ msgstr "Rİforme du calendrier Grİgorien: %02d-%02d %s %0*d" #~ msgid "Date format: (%s) `%s' (%s)" #~ msgstr "Format de date: (%s) ÂĞ %s Âğ (%s)" #~ msgid "Respected countries/territories: %d" #~ msgstr "Pays/territoires compris: %d" #~ msgid "Time offset value of astronomical functions: %s%02d%s%02d == GMT%s" #~ msgstr "" #~ "Valeur de dİcalage du temps des fonctions astronimiques: %s%02d%s%02d == " #~ "GMT%s" #~ msgid "or (if this fails) to <%s>." #~ msgstr "ou (en cas d'İchec)   <%s>." #~ msgid "" #~ " +++ If you specify two digits for the year I DON'T assume %2d%s +++" #~ msgstr " +++ è‹ĉŒ‡ċšä¸¤ä½ĉ•°ċı´äğ½ïĵŒċˆ™ä¸äĵšċ‡ċšä¸ş %2d%s +++" #~ msgid " +++ `%s' is free software, enjoy =8^) +++" #~ msgstr " +++ “%sâ€ä¸şè‡Şç”ħè½ŻäğĥïĵŒċ°½ĉƒ…äşĞċ—ċ§ =8^) +++" #~ msgid "NULL argument" #~ msgstr "Argument NUL" #~ msgid "out of space" #~ msgstr "Manque d'espace" #~ msgid "too many ()" #~ msgstr "trop de ()" #~ msgid "junk on end" #~ msgstr "rebut rencontrİ   la fin" #~ msgid "*+ operand could be empty" #~ msgstr "*+ l'opİrande pourrait Ştre vide" #~ msgid "nested *?+" #~ msgstr "imbrications *?+" #~ msgid "internal urp" #~ msgstr "urp interne" #~ msgid "?+* follows nothing" #~ msgstr "?+* ne termine pas une expression" #~ msgid "trailing \\" #~ msgstr "suffixe \\" #~ msgid "internal disaster" #~ msgstr "catastrophe interne" #~ msgid "NULL parameter" #~ msgstr "param¨tre ÂĞ NULL Âğ" #~ msgid "corrupted program" #~ msgstr "corruption du programme" #~ msgid "memory corruption" #~ msgstr "corruption de la mİmoire" #~ msgid "corrupted pointers" #~ msgstr "corruption des pointeurs" #~ msgid "internal foulup" #~ msgstr "confusion interne" #~ msgid "start `%c' " #~ msgstr "ÂĞ %c Âğ de dİpart" #~ msgid "anchored " #~ msgstr "ancrİ " #~ msgid "must have \"%s\"" #~ msgstr "devrait avoir ÂĞ %s Âğ" #~ msgid "corrupted opcode" #~ msgstr "opcode corrompu" #~ msgid " Day" #~ msgstr " Jour" #~ msgid "Day number with leading spaces" #~ msgstr "Le jour numİrique prİcİdİ de blancs." #~ msgid "Day number with leading zeroes and trailing suffix" #~ msgstr "Le jour numİrique prİcİdİ de zİros et suivi d'un suffixe." #~ msgid "Day number with leading spaces and trailing suffix" #~ msgstr "Le jour numİrique prİcİdİ de blancs et suivi d'un suffixe." #~ msgid "Abbreviated month name (3 letters)" #~ msgstr "Nom abrİgİ du mois (3 lettres)." #~ msgid "Month number with leading zero" #~ msgstr "Le numİro du mois prİcİdİ de zİros." #~ msgid "Month number with leading space" #~ msgstr "Le numİro du mois prİcİdİ de blancs." #~ msgid "Complete year number with leading zeroes" #~ msgstr "L'annİe numİrique prİcİdİ de zİros." #~ msgid "Complete year number with leading spaces" #~ msgstr "L'annİe numİrique prİcİdİ de blancs." #~ msgid "Last two digits of year number with leading zero" #~ msgstr "Les 2 derniers chiffres de l'annİe prİcİdİs de zİros." #~ msgid "Last two digits of year number with leading space" #~ msgstr "Les 2 derniers chiffres de l'annİe prİcİdİs de blancs." #~ msgid "Complete weekday name" #~ msgstr "Nom complet des jours de la semaine." #~ msgid "Abbreviated weekday name (3 letters)" #~ msgstr "Nom abrİgİ des jours de la semaine (3 lettres)" #~ msgid "Abbreviated weekday name (2 letters)" #~ msgstr "Nom abrİgİ des jours de la semaine (2 lettres)" #~ msgid "y" #~ msgstr "a" #~ msgid "m" #~ msgstr "m" #~ msgid "w" #~ msgstr "s" #~ msgid "d" #~ msgstr "j" #~ msgid "Swiss" #~ msgstr "Suisse" #~ msgid "Czech" #~ msgstr "Tch¨que" #~ msgid "Danish" #~ msgstr "Danois" #~ msgid "Finnish" #~ msgstr "Finlandais" #~ msgid "British" #~ msgstr "Britannique" #~ msgid "Dutch" #~ msgstr "Hollandais" #~ msgid "Polish" #~ msgstr "Polonais" #~ msgid "U.S. American" #~ msgstr "Amİricain ‰.U." #~ msgid "Std" #~ msgstr "Std" #~ msgid "Trinity Sunday" #~ msgstr "Dimanche de la Trinitİ" #~ msgid "Slav Missionaries Method's Day" #~ msgstr "Jour des missionnaires mİthodistes slaves" #~ msgid "Ferragosto" #~ msgstr "Ferragosto" #~ msgid "Puebla's Battle" #~ msgstr "Bataille de la Puebla" #~ msgid "Breed fusion Day" #~ msgstr "Breed fusion Day" #~ msgid "Olsok Eve" #~ msgstr "Veille de la fŞte de Olsok" #~ msgid "St. John's Eve" #~ msgstr "Veille de la St-Jean" #~ msgid "Midsummer's Day" #~ msgstr "Solstice d'İtİ" #~ msgid "Sylvester" #~ msgstr "St-Sylvestre" #~ msgid "Walpurgis Night" #~ msgstr "Nuit de Walpurgis" #~ msgid "" #~ " %-3s = Definition of \"tvar%s`text'\" separated by `%s' characters" #~ msgstr "" #~ " %-3s = dİfinition de \"tvar%s`text'\"\n" #~ " sİparİ par les caract¨res `%s'" #~ msgid " %-3s = Email address" #~ msgstr " %-3s = transmettre   l'adresse de courrier İlectronique" #~ msgid " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr " Intervalle: [%s%s]%s%s[%s%s]%s" #~ msgid "" #~ "%sh|hh = Help screen; %sL = License; %sV = Version; %su = Suppress " #~ "calendar sheet" #~ msgstr "" #~ "%sh|hh = İcran d'aide; %sL = License; %sV = Version; \n" #~ "%su = supprimer la feuille de calendrier" #~ msgid "%si[-] = Special calendar format; " #~ msgstr "%si[-] = format spİcial de calendrier; " #~ msgid "%sp = Simple pager; " #~ msgstr "%sp = paginateur simple; " #~ msgid "%sH yes = Use highlighting" #~ msgstr "%sH yes = faire la mise en İvidence" #~ msgid "" #~ "%sb %-3s = Year calendar with 1|2|3|4|6|12 blocks; %sH no = Disable " #~ "highlighting" #~ msgstr "" #~ "%sb %-3s = annİe de calendrier avec 1|2|3|4|6|12 blocs; \n" #~ "%sH no = dİsactiver la mise en İvidence " #~ msgid "%sj[] = Output of consecutive day of year (Modifiers: [b n nb" #~ msgstr "" #~ "%sj[] = afficher les jours consİcutifs d'une annİe (modificateurs: [b " #~ "n nb" #~ msgid "" #~ "%ss %-3s = Starting day of week (%s = 0|today | %d|%s | %d|%s | ... | %d|" #~ "%s)" #~ msgstr "" #~ "%ss %-3s = dİbut des jours de semaine (%s = 0|aujourd'hui \n" #~ " | %d|%s | %d|%s | ... | %d|%s)" #~ msgid "%sn|N[%s] = Display eternal holiday list (Year in range: %d...%d)" #~ msgstr "" #~ "%sn|N[%s] = afficher la liste perpİtuelle des fŞtes \n" #~ " (intervalle des annİes: %d...%d)" #~ msgid "" #~ "%sc|C[] = Fixed date list of file `.%s%s'; %sf|F %s[%s%s%s...]=Use file " #~ "%s" #~ msgstr "" #~ "%sc|C[] = fichier de la liste des dates fixes\n" #~ " `.%s%s'; %sf|F %s[%s%s%s...]=\n" #~ " utiliser le fichier %s" #~ msgid "" #~ "%sc|C[] = Fixed date list of file `%s%s'; %sf|F %s[%s%s%s...]=Use file %s" #~ msgstr "" #~ "%sc|C[] = fichier de la liste des dates fixes\n" #~ " `%s%s'; %sf|F %s[%s%s%s...]=\n" #~ " utiliser le fichier %s" #~ msgid "" #~ "%s = Month in range: %d...%d List: %s[%s%s]%s...%s" #~ "%s[%s%s]" #~ msgstr "" #~ "%s = intervalle des mois: %d...%d List:\n" #~ " %s[%s%s]%s...%s%s[%s%s]" #~ msgid "" #~ " or: month name|%s[%s|%s|%s] Range: %s[%s%s]%s%s[%s" #~ "%s]" #~ msgstr "" #~ " ou: nom de mois|%s[%s|%s|%s] intervalle:\n" #~ " %s[%s%s]%s%s[%s%s]" #~ msgid "" #~ "%s = Year in range: %d...%d%*s%*s List: [%s%s]%s%s...%s[%s" #~ "%s]%s" #~ msgstr "" #~ "%s = intervalle des annİes: %d...%d%*s%*s Liste: [%s%s]%s%s...%s[%s" #~ "%s]%s" #~ msgid "" #~ " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr "" #~ " intervalle: [%s%s]%s%s[%s%s]%s" #~ msgid " on %s" #~ msgstr " sur %s" #~ msgid " unknown date" #~ msgstr " date inconnue" #~ msgid "" #~ "%s: invalid date given -- %s\n" #~ "%s\n" #~ msgstr "" #~ "%s: date donnİe invalide -- %s\n" #~ "%s\n" #~ msgid "Abort!" #~ msgstr "Abandon!" #~ msgid "" #~ "illegal date variable operation (%s)\n" #~ "%s\n" #~ msgstr "" #~ "Opİration illİgale sur une variable de date (%s).\n" #~ "%s\n" #~ msgid "" #~ "illegal text variable definition (%s)\n" #~ "%s\n" #~ msgstr "" #~ "Texte illİgal pour une dİfinition de variable (%s).\n" #~ "%s\n" #~ msgid "A" #~ msgstr "est" #~ msgid "NO" #~ msgstr "n'est pas" gcal-4.1/po/fr.gmo0000664000000000000000000033534313041164031010712 00000000000000Ŝ•ĤL-‹|Z¨x İx"ĥxÙxíxCŝxAByE„yBÊy+ zL9zK†zKÒzJ{Mi{D·{Fü{FC|@Š|AË|F }FT}=›}6Ù}7~1H~7z~'²~AÚ~ECbAĤIèH2€H{€?Ā*!/FQ$˜4½?òM2‚H€‚HɂPƒJcƒKƒ+úƒ+&„?R„6’„4Ʉ=ŝ„@<…J}…>ȅJ†IR†Kœ†Jè†E3‡Dy‡J‡D ˆ1Nˆ1€ˆ9²ˆ4ìˆ<!‰@^‰2Ÿ‰<҉9Š0IŠ*zŠJŠ<ŠM-‹7{‹N³‹?ŒBBŒ.…ŒN´Œ.B2(u-ž;̍-ŽC6Ž#zŽžŽKĵŽJ?SH“'܏J5O!…4§&ܐ"‘&‘6F‘J}‘.ȑC÷‘:;’Fv’6½’3ô’5(“A^“? “5à“,”JC”EŽ”3Ԕ(•61•/h•+˜•7ĕ7ü•E4–:z– µ–0֖(—20—Ec—Cİ—Dí—E2˜Cx˜Nĵ˜L ™OX™B¨™Dë™P0šDšBĈšH ›KR›Iž›Fè›D/œOtœMĜGGZJ˘JíM8žK†ž=ҞEŸKVŸ@˘ŸEŸ9) .c 7’ -Ê Jĝ =CĦ-ĦJŻĦ0úĦ=+˘6i˘C ˘7ä˘=£8Z£9“£/Í£?ŭ£@=¤0~¤2ݤFâ¤&)HP.™BÈB ĤXNĤc§Ĥ] §5i§:Ÿ§EÚ§G ¨,h¨@•¨EÖ¨*İEGİEİAÓİCŞEYŞ7ŸŞ@ת:Ğ-SЁĞIĦĞIëĞ5Ĵ;QĴ:Ĵ=ÈĴ;­8B­<{­>¸­@÷­M86†;½ù ŻŻ3ŻKŻbŻ wŻ „Ż ‘Ż œŻ ¨ŻµŻBݰB°I°Y°(i°’°—° ĥ°°Ò°ò°ħħ$ ħEħ _ħmħ!‚ħ#¤ħ'Èħ&ħ/²+G² s²;²+ğ²ç²%û²#!³E³^³)s³³$ş³+ß³& ´%2´(X´&´¨´=Ċ´"µ#&µ Jµ!kµ"µ °µµεŜµ òµŭµ ĥĥ .ĥ9ĥ LĥWĥjĥyĥˆĥ5ŠĥÀĥÄĥÈĥ×ĥ èĥ öĥ· ·!·)·:·B·Y·h·x·ˆ·.—· Ĉ·Ó· â·ï· ÷·¸ ¸ ¸4¸R¸j¸Џ޸ɸä¸˙¸ı0ıEı^ıvıı¨ı°ı Äı ÒıÜıàıĉı öı!ş"ş@ş Sş&]ş„ş•ş ş ĞşışÎşàşĉş˙ş ğ #ğ1ğ9ğ =ğJğ_ğcğ jğtğ‡ğĦğğÓğğĵĵ2ĵ:ĵ Pĵ[ĵqĵŒĵĵ˜ĵ ĵ ·ĵ ÄĵÑĵÚĵêĵ ŝĵ ½½-½=½P½b½x½н›½·½˽Ó½Û½ê½ñ½ù½*2;Pa w ˜¤ Ĵ¸Ì ßë ô ż ż ż%ż,żHżdż{ż‚ż”żż ­żşż Íż Ùżżôżüż ˙ż À ÀÀ%À4ÀLÀ\À qÀ’ÀŻÀÂÀÑÀíÀüÀ Á Á4*Á0_Á Á ›Á§Á°Á ËÁĜÁëÁüÁ ÂÂ*Â;Â@ W cÂoÂsŽµÂğÂÁÂĜÂïÂ÷Âû  .@R bpˆ ‘ › ¨µ9ÇÄÄ Ä&ÄFÄ_ÄsÄ ŒÄ™ÄŻÄÄ ÎÄÙÄáÄéÄûÄ Ċ ĊĊ-Ċ3Ċ:ĊIĊXĊZĊHjĊ³ĊÑĊíĊŝĊĈ&Ĉ5ĈEĈbĈxĈĈ£Ĉ¸ĈÏĈĉĈÇÇ6ÇKÇbÇfÇoÇ †Ç”Ç%°ÇÖÇġÇŭÇ È È-È6È?È RÈ_ÈvÈ‘ÈĤÈ½È ÏÈÛÈïÈ óÈ ÉÉÉ6É>É DÉ PÉ\ÉpÉ€É —É £É°ÉÉêÉîÉ.Ê0ÊJÊ \ÊhÊpÊÊ‰ÊžÊ§ÊżÊÎÊŜÊóÊ2ûÊ.Ë2Ë NË YËfËmË ~ˋˣ˴ËÉËàËäËíË Ì!Ì03Ì1dÌ1–Ì*ÈÌ.óÌ:"Í;]Í:™ÍÔÍôÍûÍÎÎ'Î8ÎAÎ%UÎ{ΒέÎÍÎÎ×Î êÎĝÎ ÏÏ"Ï)Ï1Ï @ÏJÏcÏkÏ rÏ Ï% ÏĈÏÎÏßÏçÏ!5D Tb"wšıÖçö Ñ'Ñ9Ñ@Ñ FÑ PÑ\Ñ uÑ€Ñ ’Ñ ÑÀÑßÑöÑ ŭÑ ÒÒ Ò 'Ò5ÒDÒ [ÒfÒ kÒuÒ|ҌңÒĴÒ´Ò şÒÄÒàÒ÷ÒÓ Ó $Ó1/ÓaÓxÓˆÓ œÓİÓ¸Ó ÁÓËÓÜÓ äÓÓ Ô&ÔA.Ô pÔ{Ô‚Ô“Ô­ÔÇÔáÔĝÔĠ(Ġ0ĠCĠ YĠeĠiĠrĠ,ˆĠµĠÌĠéĠÖ$ÖBÖTÖoÖtÖ|Ö€Ö—Ö°Ö·Ö½ÖÓÖäÖĝÖ ×××!×%×+×C×[×u×‰××”×™×× ˘×Ż× ż× Ë×Ö×Ŝ×ç×ŝ×Ĝ)ĜIĜ bĜmĜ}Ĝ–ĜĜ Ĝ°Ĝ ĊĜĜ èĜóĜ#Ù*Ù@ÙGÙ'ZقيْÙĦÙ İÙµÙ ÔÙâÙ ÷Ù ÚÚ$Ú -Ú ;ÚFÚ]ÚsÚ4uÚŞÚ °Ú ½ÚÊÚ.äÚÛ Û%Û.Û3Û 9Û FÛ QÛ\ÛlÛpÛvÛ ‰Û”ÛÛ şÛ ĊÛÛ ċÛòÛÜ Ü5ÜFÜYÜvÜ ‡Ü“Ü£Ü´Ü ĈÜÓÜ Ü îÜĝÜüÜŬ ŬŬ#Ŭ 4ŬAŬHŬWŬkŬŬ‘Ŭ Ŭ£Ŭ§ŬŬµŬ½ŬÏŬ Ŭ1îŬ Ŝ +Ŝ7Ŝ?ŜOŜ cŜpŜ ŠŜ•ŜİŜğŜ ŜÎŜßŜ÷Ŝ ßß2ßJßbßwßŠß ßœß ¤ß°ßÍß$ëßà0à ?à JàXàaàxà ‡à “àà£àĞàżàÄàÍà ìàöà ŝàá<áCáGá/Pá9€á-şá èáôáâ ââââ/â@âUâjâEoâµâÍâäâ˙â4Pj„ˆŒ• ›§ÍŜ çôää %ä3äBä Qä[älä‚ä†äŸä¤ä´ä Óäßä ä ñä üäċċċ!ċ *ċ(5ċ#^ċ‚ċŸċıċÉċÜċôċ ĉĉ -ĉ9ĉMĉdĉjĉsĉˆĉĉ ĉŻĉĉ ÎĉÚĉëĉç ç,ç@çRçfçç çšçĴçğç Öçàççĝçè 'è5è<èEèWèmè0„èµèÎèÑèÚèôèéé (é 6éAéWéné„éˆé ‘é ›é¨é·é Óéáéééíé üéêê0ê BêOê bêoê ê Œê ˜ê Ĥê ´êÀêÜêëê ëë .ë<ë Eë Rë`ëtë ‰ë•ëŞë³ëĵë Ñëßëîë ŝë ì ìì 0ì(=ìfìƒì‰ì ™ì ì²ìÂìĠìèìĝì íí(í:íIíYíhí xí ‚ííí½íÖíĉíùí îî#î7îGîXîiî zî ˆî–î§îĵîÑîáîòîïï/ïHï Qï_ï0uïĤïşï ÎïÜïßïçïíïŝï26=P Xc‚ ’ ž¨ Ż ş ÇÓ"ĉ! ñ+ñHñ`ñqñ†ñšñ­ñĊñÖñéñòò+òDòWòmòƒò—òŞòşòÍòŜòîòóó8ó ?óJó Sóaó xó†ó‰ó ó¨óıóĠóôóô'ô;ôPô:eô= ôDŜôC#ġgġkġ tġ~ġġ¤ġĞġ³ġĊġ Ëġ×ġŬġîġŝġ öö2ö Hö5Sö)‰ö³öÒöĠöóö÷ö˙ö÷÷ ÷$÷=÷D÷ Z÷f÷z÷÷‰÷÷˜÷ ´÷÷Ú÷ï÷ ĝĝ&ĝ;ĝQĝhĝĝ˜ĝ²ĝ"Éĝìĝùù-ùAùXùnùù–ù­ùĊùÙùù ú#ú;úUúlú‚ú™úúÊúúüúû0ûKû^ûuûŠûûÀûŬûĝûü$ü7üMüdü}ü™üħüÇüÙüîüŭ ŭŭ='ŭ0eŭ8–ŭKÏŭ7ŝ.Sŝ‚ŝ(“ŝ ĵŝ ÇŝĠŝ Ŭŝçŝ ÷ŝ˙ ˙ (˙4˙=˙F˙H˙]˙v˙˙Ħ˙°˙Á˙Ä˙ È˙ Ò˙Ŭ˙â˙ ê˙ô˙  !- BNar{‚„Œ ’œğÚúC2 v ‚Œ£Şħş7ö# A1*s/žÎ ċ% ./^at!‡ İ5ĥìĝ# !1S.Z‰³·4À#ġ"(<'e8–+Ï û1 93G5{%ħ4×N F[˘&ħĜHé2>5twz ’  ­ Ê×óöŝE G P a %y Ÿ $Ż  Ô  ß Èí ĥ (Ċ î  D Bc KĤ Hò ); ue YÛ 5QµbMjO¸OFXLŸLìQ9=‹AÉB 9NBˆ+ËW÷UOLBò~5V´} \‰(ĉ!P1%‚?¨Kèd4a™YûaUS·P +\+ˆ?´6ô?+@k@Ĵ[íSIQKïZ;b–IùICWFċ0,;]I™4EO^>Bí@0 /q 0Ħ [Ò A.!Op!=À!\ŝ!@["Rœ";ï"Y+#3…#Mı#*$92$Il$8ĥ$Lï$%<% b%Yƒ%`Ŭ%N>&U&/&\':p',Ğ'>Ĝ'1(+I((u(?ž(XŜ(_7)J—)Dâ)I'*Eq*=·*8ġ*J.+Qy+*Ë+"ö+K,?e,),5Ï,4-@:-9{-Jµ-I.GJ.;’.*Î.Gù.6A/Hx/VÁ/T0Wm0YĊ0W1bw1`Ú1f;2U˘2Zĝ2lS3ZÀ3X4\t4aÑ4_35Z“5Xî5cG6aĞ6_ 7_m7cÍ7a18_“8]ó8SQ9X9lŝ9Ok:]ğ:?;(Y;F‚;AÉ;\ <Jh<:³<wî<Bf=Uİ=G˙=_G>S§>Yû>OU?Z?C@^D@_£@5A>9ACxA+ĵAHèA51BOgBO·BZCtbCn×C?FD>†DSĊDTE8nEL§EUôE!JFVlFMFOGGaGMİGO÷G6GHN~H4ÍH'IF*IBqI#´IIĜI;"JE^J7¤J8ÜJFKA\KQžKLKI=LI‡LÑLLôL M"M8M LM YM fM tM M MH›MäM9êM$N;N%RNxN%~N ¤N²N+N)ïNO O,*O'WOO‘O,ĴO+ÙO4P6:P7qP1İP ÛPMéP-7Q$eQ(ŠQ&³QÚQĝQ/R#FR+jR1–R*ÈR(óR.S.KS)zSQ¤S.öS4%T,ZT2‡T5şTTUU*U>UVUnU…UœU³UÊUáUĝU VV?V^V bVpVˆV£V ·VVÙVëVóVWW'W@WVWnWE„WÊWŜWWXXX&X%/X"UXxX‘XħXXïXY.YJYaYwY‘YŞYĊY ŜYèYûY ZZ Z&Z>Z+MZyZ˜Z ŻZ6ıZ%Z[[3[L[a[r[x[‘[Ş[ĵ[Ñ[Ù[Ŭ[ó[\\ \%\ 8\Y\v\ ‹\Ĵ\ż\Ò\ò\û\ ](]+G]s]w]]ˆ] ¤]ħ]Ä]Ì]à]ü] ^'^C^]^z^–^ĥ^Ò^í^ __'_0_B_I_Q_Z_!r_”__Ĥ_ż__ç_``*`2`C```t`ƒ`Œ`ž` ` ş`Ċ`%Í`ó`a"a)aAaJa_aga za ˆa’a¨aħa ´ażaÈa×aŜaía bb2b QbrbŠb™b¸bÇb Ûbèb@úbE;ccŠcžc§cÇcÙcëc ˙c dd/dEdKdhd yd…d‰dİddÚdàdĉde e'e+e?eNe^eqe‡eŸeeÄe ÍeÛe(íefV1fˆfff µfÖfôf g +g6gNgdg yg„g‹g“g°gµgÈgâg˙gh h!h0h2hHAh(Šh ³hÔhéhûhi,i!Fihiƒi˘iµiÔiêijj6jPjdjzj j‰jj&²j-Ùj$k,k5k GkUklk ukk—k¨k¸kĜk!ôkl-lAl[l_lpl„l"•l ¸lÂl Êl Ölâlöl# m /m!;m#]m"m¤m¨m>Àm˙mn.n BnMnan#in n—n´nÊnân ġn9o;o?oYolo oo˘o ³oo&Òoùopp p>pUp/gp'—p'żpIçpO1qBqBÄq6r">rarhrqrˆr›r²r r'ñrs7sTsrsus|sœsŻs!Ċsçsësôsŭs t!t=tEtLt$^t2ƒtĥt(t çtñt uu0uFuWujuzu,u&ĵuuvv v6vSvfvmv sv}vŒvĞvżv×v,çvw4wLwSw fwpwxw‹wŸw"³w Öwáw ĉwwĝw x#x ,x7x=x\xyx˜xħxĥxËxIÜx&yByQyly|y‹y ”yžy½yĊy$Öy!ûyz=%zczrzyz$’z·z%×z!ŭz${ D{e{m{Œ{ {²{ĥ{{9Ú{|$2|W|j|,ƒ|°|Ê|ê|ï|÷|û|}4}<}C}^}s}Œ} Ĥ}°}´}ĵ}À}Ĉ}$á}~&~=~F~J~R~V~[~j~~ ~›~ £~ħ~Í~é~(!+ MX#hŒ“ ›ĤÀ)Ñ û€+€H€`€i€L†€Ӏـá€ĝ€9 R` w…ށЁ´ Ċ"ó‚A‚R‚ X‚e‚w‚4–‚˂ ҂Ŭ‚ĉ‚ë‚#ñ‚ƒ %ƒ/ƒKƒOƒTƒlƒƒ$Žƒ ³ƒ ƒɃ߃ñƒ„*„ B„P„e„{„„Ş„½„„è„ ú„ …………!…)…1…P…b…v… ~…‰…£…ż…Ĝ……ó…÷…ŝ…† † † )†74† l†w†ˆ†ކĦ†ı†&ʆ ñ†ü†‡-‡ 5‡C‡_‡‡š‡އ!Á‡!‡ˆ#ˆ?ˆEˆVˆ_ˆhˆ ˆˆ&݈"ˆóˆ ‰‰ 0‰>‰ ^‰k‰ }‰‡‰‰•‰‰³‰*ɉô‰ Š Š1ŠOŠXŠ\Š.eŠ?”Š/Ԋ‹‹ +‹8‹?‹C‹K‹ [‹|‹—‹²‹D·‹ü‹#Œ<ŒTŒjŒ…ŒŸŒıŒҌ֌ڌŒéŒŝŒ!4OX"j•ĴÀԍ êôŽ.Ž$2ŽWŽ^Ž*rŽ Žݎ­ŽÀŽĠŽéŽĝŽ 9**d-&½ 䏐5Tj ƒސ–² ¸Ċë‘‘.‘N‘_‘"v‘™‘Ş‘‘ّï‘’#’:’J’e’|’›’Ş’ż’Ȓç’ŝ’““!“8“X“;u“ħ““ ӓá“ú“” ”8” N”Y”s”‰”¨”Ĵ”³”ş”ʔ(ڔ • ••• 7•A•^•u•Œ•Ÿ•ĥ•Ĉ• á• ì• ĝ• ––%–>–%Q– w– ‚– – ›– Ĥ– ³–Á–!Ĝ– ú–#— *— 4—>—Z—k— ƒ—‘—˘—Ş—ı—Ġ—'ä—" ˜/˜7˜ M˜Y˜o˜…˜ ˜ı˜Ϙç˜ŝ˜™.™E™]™u™ ‹™˜™Ż™0̙*ŭ™(š>šPš gšqš‡ššşšٚ%š›*›C›Z›o›Š›ž›ĥ›̛ä›!œ#œ,œBœAZœœœĥœϜċœèœœ÷œ/MQZm v­ Ĉםê˙ žž2žOžaž tžž‘ž  žž Áž ͞۞ížŝžŸ "Ÿ0ŸAŸRŸ aŸ oŸ zŸ ˆŸ ”ŸŸŸ#Ÿ"ҟġŸ üŸ  0 F Z ]  t   &Ž ,µ â ˙  ĦĦ3ĦEEĦG‹ĦCÓĦE˘]˘a˘g˘m˘€˘š˘Ħ˘İ˘ğ˘Á˘Ò˘Ĝ˘ò˘ £ £2£M£b£Kr£@£+˙£+¤!.¤P¤T¤Z¤`¤h¤ p¤~¤•¤œ¤µ¤Ċ¤ à¤ì¤ô¤ü¤%*';cx “Ÿ³ĈÚïĤĤ3Ĥ HĤiĤ}Ĥ‘Ĥ¤ĤĥĤËĤßĤĤ§§-§?§T§n§ƒ§™§°§Ċ§Ù§î§¨¨2¨N¨c¨€¨›¨Ĵ¨Á¨Ô¨í¨İ"İ<İRİdİuİ‰İžİµİÔİêİ!ŝİ Ş9ŞOŞfŞvŞ=~Ş4ĵŞ8ñŞK*Ğ<vĞ3³ĞçĞ2Ĵ 5Ĵ@ĴRĴ ZĴfĴyĴŠĴ/ĴĠĴéĴòĴûĴŭĴ­7­N­f­u­Š­­‘­š­£­ Ğ­ ĥ­Á­á­ó­ : Kl Š” ŸĴ ³%½-+Ż=Ż$]ŻC‚ŻĈŻÎŻ߯üݰ °°=°U°4o°J¤°4ï°8$ħ#]ħ ħ"ħ)²ħGÜħ$²1'²Y²Ev²ĵ²Cβ³³³<8³;u³ħ³>¸³÷³´-´1´C@´*„´-Ż´:Ŭ´>µWµO_µ;ݵ ëµEùµ ?ĥEMĥM“ĥ%áĥJ·lR·Nż·¸F%¸l¸]¸Ŭ¸9¸ı ı&ıDı Uı.bı‘ı%˜ııÁıÉıHÏış!ş5ş.Pşş9ş Êş ĠşÓàñ]Ë)ŭŻ›•ÇŜ‰TYDœ5·ÜFĠGÓç]ó`]¤žmm<Sò›ğ;ĝbfh„„ΖÉe3Ž|ÎTî~7Uê*œúÖÇ~ĥ¸-b,ĦäażAŝÚ-ЀރÛ(œĦŭ\I4Ĵ\ŜS34\Â6úŭaò„îHiì˜è‰¨OçO£í{şmĝ=çMĴëġLĤÊrKGc >ä‘ÑĜ•Qj c@ù}’–£9Ĵxöż!ûj’ĥ<JÊPŬàQS0 Ċûä"ñ‹ 5òk€!ÙÎ"RŠWĉAv@ôNh‹Œĵƒë*T}Zà²T4ŬÖj602Ĉ%ĦŽvëÉ duzċŽß˙ŒU ?ù,o÷⟞ıš]ıhĈ_vÚmI¨i‚dZiÄÊ–A¨ĥ{ġK?gPM˘VYxqëiDnĉĵUG³k{šݤ˜ŝ°…uï=t‚òÂĝúÄY¸Tċ’5á¤Óá\ˆ!z‡1 Äġɏ;‡Fyƒ{ÏyÚ8ïö]ÀÈ í?CBV1/H‰agO˘CËlß µs/%M(ŬğÌĵ¸—ş[Ù­u7ÍĠ„ ‡CĈoö3ô“ËbĤñ*ó)\‰0ĥħPì+jV[³s}ù­³žLĊ" ÙĴUŻŬ’“E~nMÒ…(ü·]Ì •™q'ü†)$÷ĵEċ'ˆ0Müz |˜,PPílĈÎŝeÑ+ßyĉ?°ŽW+Áš*Fú*ĜSĦ=L5@‹Í´|÷:e|¨ì:ġ~VÏl nryáWš-=޽sêÊ ĊI9[fm½&g_aˆĞwcWsb)£U kß°nô`.¨şİÇf ğt=ÒPî—g>³do/>†}iVçXxGħ2ùö!ŒDG™íqvGˆÜ”ˆâQ^ħÊöX”Ï"Ĝ'Ħš^—Ŝ™—k)ÌR§^µr$OŻéFÏ™™îĠw²èìï Wiħĝ§<Aâkà q’ŽhR~ÑĵKۛŞÒÁfœC‹ċF—Í BŠJĤĤ:ZÄ2q4é8ÈŠN^wZ ˜`-j&_éÓfOŸ34µ.,8¤(x˙ ½óïWlôŭ1‡Â&:Àá‚Dż÷˜¤µtÁp5X2m,ùƒòî*Zl£­.Eğžz?‘dotwÖÂâ8ÍuR‰oZ[g ‘Ċp%Á.7À_yĴäÔ˘YŜç?;ô/ĝż¸qŻ()[àF/‚ƒBYĈ T•ûÎŭf  6$À Hè-×´ñXuz+`:Ÿ·Dé!>Ÿ`İĉÛ;Ì×<™ä(6{êÛ9–ӅgnŒáú^Ëü·…vk8KÔÛÁ##,_´´§J1ê”ëwŠí˙Ñ"|ND׸İÒLpġ}9-|´Ô’‚Ùĉ3ƒŬI6xdñS÷œÖ•&.„ıÑÍcÚ²<žyQŸ¤$ ŝŸ½”˙ó U9L› XèAĜ85$ɍÜŜ‚ê1èljz˜Ş%é Èp†'ıHeÉ6Şï—IÒœğ­€×BÈû%ó47µj²ż…ÙĤN€ĠÖvE†h#c%[ÈeJ2Ĝu$›Ës~b=şr›0KJ>##. :ÇJI˘ÄĊ°tüh7x cħÌ…0#ċQÜ˙R–<L“Żoš°l&@a£Ĥ!”İÚ‡ĦKĞ VtâE\ 'BpB§ˆ;He‘‘˘ÔC×'s £&M`ܞĞßr ĠŝOd_1p–nû€+{Š^Hĥ3ìwC"@r@³‹b A²§ŠŒ„Ž‘a“SEX ı†‹;Q ­Ô2€N‡“ Ğ•9·ş˘Ï†}/“+RY>”À7NŒ½ %s: abort, %s: program aborted by signal %d %s: warning, %s. `%s' line %ld: %-3s = %d...%d Length of a single axis %-3s = %d...%d Total number of lines %-3s = february Respect at `28-FEBRUARY' %-3s = march Respect at `01-MARCH' = %s Backwards = %s List yesterday until starting day of month = %s List yesterday until starting day of week = %s List yesterday until starting day of year N = 0 %s which isn't located in 1st week N = 0 1st week / last week of previous year N = 1...4 1st...4th weekday %s (always) N = 1...51 %s of 1st...51st week (always) N = 1...51 1st...51st weekday %s (always) N = 1...52 1st...52nd week (always) N = 5 5th weekday %s (sometimes) N = 52|53 %s of 52|53rd week (sometimes) N = 52|53 52|53rd weekday %s (sometimes) N = 53 53rd week (sometimes) N = 9 Last weekday %s N = 99 %s of last week N = 99 Last week N = 99 Last weekday %s Actual: `%s' = Manage `29-FEBRUARY' in non-leap years = Set height of the Moon phase text graphics = Set width of the biorhythm text graphics or: month name | %s | %s%s | %s%s | %s%s [MOD] = %s List tomorrow until ending day of month [MOD] = %s List tomorrow until ending day of week [MOD] = %s List tomorrow until ending day of year %s%cwN[%s], month name[%s], weekday name[N] or %s MOD = %s Forwards %-*s = Holidays in %s %-3s = Heading/Title text used for fixed date list %c = Exclusion of all %s Air pressure in Millibar (actual: %.3f) Air temperature in degrees Celsius (actual: %+.3f) E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2 E.g. %sH \x2%s\xAE Use hex values 2 and AE for sequence 1 E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca' E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to `bar' E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4 E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of List: %s[%s%s]%s...%s%s[%s%s] List: [%s%s]%s%s...%s[%s%s]%s Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s expressions separated by `%s' characters is a LOWER-CASE-LETTER, it means a non-exclusion! marked by # have an incomplete recording of holidays the preceding special characters in an individual date format, they are used by the character set used in Germany which are connected by `%s' characters. Countries/territories, which has a STYLE format instruction component, and that, how # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday # %c%c[[%s|%s]N] = Single day N relative to today's date # %c?[%s|%s]N%s = Single N'th weekday relative to date variable # %c?[[%s|%s]N] = Single day N relative to date variable # %cdN = Single absolute day N # %cdN%s = Single N'th weekday %s # %cwN%s = Single weekday %s of N'th week # %s%s = Single day %s of month %s # %s%sN = Single N'th weekday %s of month %s # A = Display using alternative list format # E = Include legal days only # J = Suppress text part of fixed dates # NMOD = Single day N relative to today # Nd = Single absolute day N # Nw = Complete week N # Q = Suppress leading blank line of fixed dates list # U = Suppress date part of fixed dates # Z = Display dates, for which fixed dates doesn't exist # a = Display origin of fixed date # d = Include actual date if list of periods is generated # e = Include legal days and memorial days # g[MOD] = Group fixed dates by day using text MOD # k = Display week number # l = Generate list of periods instead of a single period # m|M[MOD] = List complete month # o = Omit repeating date part of fixed dates # t|T = List tomorrow # w|W[MOD] = List complete week # x = Exclude title of fixed date list # y|Y[MOD] = List complete year # z = Display consecutive number of fixed date 1. Representation of text 2. Respected period = "TVAR[%s|%c%s]COMMAND" definitions separated by `%s' characters = abort Like `all' and abort if file name can't be handled = all Like `handled' and `unhandled' together = handled Like `internal' and file names which are handled = no Standard week numbers = unhandled Like `internal' and file names which are unhandled Actual respected period: %02d-%02d %s %0*d Actual: (%s) `%s' (%s) Change base time of astronomical functions Change base year of calendar Change cycle-ending time Change cycle-timestep Create response file for the `%cFILE' option Create shell script which contains the arguments of command line Define additional resource file line Define global date variable(s) "DVAR->a...d|f...s|u...|z" Define global text variable(s) "TVAR->%ca...%cz" Define translatable country specific special character pairs Determine type of week numbers (actual: %s) Direct output through external `%s' pager Direct output through simple internal pager Disable highlighting of text, holiday resp., actual day Display eternal holiday list (Year in range: %d...%d) Display extended help text and quit program Display help text and quit program Display only those fixed dates, whose date is not excluded by %s Display only those fixed dates, whose text is matched by %s Display software license and quit program Display some debug information Display version information and quit program Exclude title of eternal holiday list Execute `%c%c[%s]' shell commands Export local date variables from file to file Export local text variables from file to file Forces highlighting sequences if output is redirected/piped Ignore case distinctions if `%s' option is given Implies period: Today Limit rise/set times of Sun to the day Modify format of year calendar Provide calendar sheet with week numbers Provide eternal holiday list with BahĦ'i calendar holidays Provide eternal holiday list with BahĦ'i calendar months Provide eternal holiday list with Celtic calendar holidays Provide eternal holiday list with Chinese calendar holidays Provide eternal holiday list with Chinese calendar months Provide eternal holiday list with Chinese flexible calendar holidays Provide eternal holiday list with Chinese flexible calendar months Provide eternal holiday list with Christian Western calendar holidays Provide eternal holiday list with Coptic calendar months Provide eternal holiday list with Ethiopic calendar months Provide eternal holiday list with French Revolutionary calendar months Provide eternal holiday list with Hebrew calendar holidays Provide eternal holiday list with Hebrew calendar months Provide eternal holiday list with Indian civil-calendar months Provide eternal holiday list with Islamic civil-calendar holidays Provide eternal holiday list with Islamic civil-calendar months Provide eternal holiday list with Japanese calendar holidays Provide eternal holiday list with Japanese calendar months Provide eternal holiday list with Japanese flexible calendar holidays Provide eternal holiday list with Japanese flexible calendar months Provide eternal holiday list with Old-Armenic calendar months Provide eternal holiday list with Old-Egyptic calendar months Provide eternal holiday list with Orthodox new-calendar holidays Provide eternal holiday list with Orthodox old-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar months Provide eternal holiday list with astronomical data Provide eternal holiday list with country specific holidays Provide eternal holiday list with multicultural New Year holidays Provide eternal holiday list with zodiacal marker data Represent astronomical times and data with utmost precision Revert the sense of matching of the `%s' option Send output via `%s' program to user Set EXIT status of program to %d on `%s' etc. Set base data of Earth's atmosphere Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday) Set order of date elements using the %s format text Set period of Gregorian Reformation Set reference value for rise/set time respectively shadow length Set starting day of week (actual: %s) Suppress leading blank line of eternal holiday list Suppress output of calendar sheet explicitly Use alternative file(s) instead of standard resource file Use consecutive day of year in calendar sheet Use consecutive day of year in eternal holiday list Use consecutive day of year in fixed date list Use leap year rule of Eastern Orthodox churches Use special format for calendar sheet Use standard resource file `%s%s' for fixed date list Use standard resource file `.%s%s' for fixed date list and "TVAR[%s|%c%s]COMMAND" assignments respectively, change cycle-starting time %-3s = Single file or list of files connected by `%s' characters [MOD] = %s Descending sort order [MOD] = One or more of the following modifiers which are marked by # %-*d%*s = Set period to: %02d-%02d %s %0*d %-3s = "DVAR%s%s%s" definitions separated by `%s' characters %-3s = "TVAR%sTEXT" definitions separated by `%s' characters %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %s%c%s%s%s%s%s%s Set period explicitly %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d) %-3s = Air pressure and temperature separated by `%s' character %-3s = Angular value respectively factor in range: %+.1f...%+.1f %-3s = Any possible resource file line %-3s = Any text respectively "regular expression" you like %-3s = Define individual format. Respected format elements are: %-3s = File name of the shell script %-3s = Highlighting sequence pairs separated by `%s' characters %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]' %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d) %-3s = One or more of the following characters. If character %-3s = Single country resp., territory code or a list of these, %-3s = Store arguments of command line in file %s %-3s = UPPER-CASE-LETTER""LOWER-CASE-LETTER... definitions %-3s = [%s|%s]YYYY Year offset value (actual: %d) %-3s = yes ISO-8601:1988 week numbers %-6s = Format is: `%s' (%s) C = Display those dates, for which fixed dates doesn't exist, too F = Display those dates, for which fixed dates doesn't exist, too N = Legal days only [MOD] = b Use both date notations (day of month+year) %sL, %s Display software license and quit program %sV, %s Display version information and quit program %sh, %s Display this help text and quit program %shh, %s Display extended help text and quit program %sp, %s Direct output through external `%s' pager %sp, %s Direct output through simple internal pager [%-3s] = Email address, otherwise eMail is send to user `%s' [%-3s] = internal Information if program internal maximums are reached [MOD] = - Use standard format for calendar sheet [MOD] = b Use both date notations (day of month+year) (%.4s for Alpha) (%.4s for VAX) (BSD/386 1.1 or later) (FreeBSD 2.0 or later) (NetBSD 1.2 or later) (NetBSD before 0.9) 1.0 or 1.5? 4.0 or 4.02 ; Week %s = %+4d day = %+4d days `HERE' c = Display only those dates, for which fixed dates exists day f = Display only those dates, for which fixed dates exists later than 4.5 later than 5.0 n = Legal days and memorial days on # Day number (must be defined)# Month name# Month number# Weekday name (may be defined)# Year number (must be defined)%cDATE%cFILE%s = Month in range: %d...%d%s in search pattern `%s'%s subprocess%s subprocess failed%s subprocess got fatal signal %d%s%*s = Year in range: %d...%d%s%s contains %d maximum entries now!%s%s: for more, <%s> to quit...%s: The Gregorian calendar program (GNU cal) %s%s: Use `%s %s' with one of these arguments%s: abort, %s: command in environment variable `%s' found -- %s %s %s %s: error during program execution of `%s' %s: file not found %s: invalid date given -- %c%s %s %s %s: invalid date given -- %s %s %s %s: invalid option -- %s%s: no regular file %s: option `%s' doesn't allow an argument%s: option `%s' is ambiguous%s: option `%s' requires an argument%s: option `--%s' doesn't allow an argument%s: option `--%s' requires an argument%s: option requires an argument -- %s%s: option with ambiguous argument -- %s%s: option with invalid argument -- %s%s: unrecognized option `%s'%s: warning, eMail with empty message body not sent to <%s>. %s:%*sThe year %0*d is A leap year%s:%*sThe year %0*d is NO leap year%s:%*sThe year %d is A leap year%s:%*sThe year %d is NO leap year(`%s') date format `%s' is invalid(bad version)++ 1.0 or later++ 3.0 or later+++ FIXED DATES +++1st Advent1st Sunday in Lent2nd Advent2nd Sunday in Lent3rd Advent3rd Sunday in Lent4th Advent4th Sunday in Lent5.1 or earlier7-5-3 Festival:ALIGNMENT group (exactly one member must be defined):AMOARGAborigines DayAdelaide Cup DayAdmission DayAfghanistanAga Khan's BirthdayAlaska DayAlbaniaAleksis Kivi DayAlgeriaAlice-Springs Show DayAll Fool's DayAll Saints' DayAll Saints' EveAll Souls' DayAll format elements marked by # may optionallyAlphabet DayAmerican SamoaAmericas DayAndorraAngam DayAngola #AnguillaAnniversary of Amir's SuccessionAnniversary of Armed StruggleAnniversary of AucklandAnniversary of Canterbury NorthAnniversary of Canterbury SouthAnniversary of Chatham IslandsAnniversary of Green MarchAnniversary of Hawkes' BayAnniversary of MarlboroughAnniversary of NelsonAnniversary of OtagoAnniversary of SouthlandAnniversary of TaranakiAnniversary of WellingtonAnniversary of WestlandAnnularAntigua and BarbudaAntillian DayAnzac DayAprAprilArab League DayArbor DayArchbishop Makarios' Memorial DayArchbishop Makarios' Name-DayArengo AnniversaryArgentinaArgument `%s' of command line ignored.Armed Forces DayArmeniaArmistice DayArmy Coup DayArrival of the SwissArtigas' BirthdayArubaAscension of Abdu'l-BahaAscension of Baha'u'llahAsh MondayAsh WednesdayAshura'AstAsuncion DayAtaturk Memorial DayAugAugustAustraliaAustralia/CanberraAustralia/New South WalesAustralia/Northern TerritoryAustralia/QueenslandAustralia/Southern AustraliaAustralia/TasmaniaAustralia/VictoriaAustralia/Western AustraliaAustriaAuthority's Power DayAzerbaijanBa'ath Revolution DayBackslash ('%c') characterBahBahamasBahrainBahĦ'i New Year's DayBangladesh #Bank HolidayBarbadosBaron Bliss DayBasque National DayBataan DayBattle of AngamosBattle of BoyacĦBattle of BoyneBattle of CaraboboBattle of IquiqueBattle of Las PiedrasBattle of N¤felsBattle of PueblaBeginning of Financial YearBeginning of SummerBelarusBelgiumBelgrade's DayBelizeBeltaneBenin #Benito JuĦrez DayBennington Battle DayBermudaBhutan #Birth of Baha'u'llahBirth of the BabBlessing of the WaterBloomsdayBodhidharma's BirthdayBoganda DayBoliviaBonaire DayBoqueron Battle DayBosnia-HerzegovinaBosses' DayBotswanaBotswana DayBounty DayBouvet IslandBoxing DayBrazilBringing Home the Herds DayBringing in the Harvest DayBritish Virgin IslandsBruneiBuddha's BirthdayBulgariaBunker Hill DayBurkina FasoBurning of Jan HusBurns NightBurundi #C. Mapinduzi DayCOMMANDCWCambodia #CameroonCamoes DayCanadaCanada/AlbertaCanada/British ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland and LabradorCanada/Northwest TerritoriesCanada/Nova ScotiaCanada/OntarioCanada/Prince Edward IslandCanada/QuİbecCanada/SaskatchewanCanada/YukonCanberra DayCannot calculate lunisolar calendar for %d correctlyCannot execute command in file `%s' Line: %ld %sCape VerdeCaricom DayCarnivalCasimir Pulaski's BirthdayCassinga DayCatherine Show DayCayenne FestivalCayman IslandsCelCentral African Republic #Cesar Chavez DayChadCharacter replacement:Charter DayChen/DragonChiChiang Kai-shek's BirthdayChildren's DayChildren's White SundayChileChinaChinese New Year's DayChinese New Year's EveChou/OxChrChrist's Ascension DayChristmas DayChristmas EveChristmas IslandsChrysanthenum DayCitizenship DayCivic HolidayCocos Islands (Keeling)ColombiaColon DayColorado DayColumbus DayComing of Age DayCommand executed (exit code=%d) in file `%s' Line %ld: %sCommonwealth DayComorosCompact DayCompiled with %s%s for %s%s%s%sConfederal Agreement DayConfucius' BirthdayConstitution AnniversaryCook IslandsCoptic New Year's DayCoronation DayCosmonauts' DayCosta RicaCreatedCroatiaCross Raising DayCubaCulture DayCup Match DayCustom Chief's DayCycleCyprusCzech RepublicC´te d'IvoireDDarwin Show DayDate format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Day after Mid-Autumn FestivalDay after Tomb-Sweeping DayDay of AndaluciaDay of CataloniaDay of Czech StatehoodDay of GaliciaDay of GoodwillDay of Prayer and RepentanceDay of ReconciliationDay of Students RevoltDay of the CovenantDay of the Free LaosDeath of H. ChristopheDeath of J. DessalinesDeath of President AbdallahDeath of President CheikhDeath of President SoilihDeath of Qaid-i-AzamDeath of T. LouvertureDecDecemberDeclaration of the BabDefenders DayDefenders of Motherland DayDemocratic People's Republic of KoreaDemocratic Republic of Congo #DenmarkDia de los MaestrosDia del PadreDiscovery DayDjiboutiDominicaDominican RepublicDouble-9 DayDownfall of the DergueDr. Sun Yat-sen's BirthdayDragon Boat FestivalDry Season CelebrationDuarte's BirthdayDynasty DayE. Hostos' BirthdayEGOEaster MondayEaster SundayEaster TuesdayEconomic Liberation DayEcuadorEgyptEid-al-AdhaEid-al-FitrEid-i-Milad-un-NabiEight Hours DayEindhoven's LiberationEl SalvadorElection DayElections for National AssemblyEmail bug reports to <%s>EmoEmperor's BirthdayEnd of highlighting sequence/marking characterEpiphany/Three King's DayEquatorial GuineaEquinox DayEritreaErrol Barrow DayEstoniaEternal holiday listEthiopiaEthiopic New Year's DayEvacuation DayEve of EpiphanyExpedition of the 33FAO DayFORMAT group (exactly one member must be defined):FRRFalkland Islands (Malvinas)Family DayFarmers' DayFaroesFather Leval DayFather's DayFeast of Corpus ChristiFeast of FortuneFeast of Heart JesusFeast of Our TheotokosFebFebruaryFederated States of MicronesiaFestival of LanternsFestival of SadehField contents is converted to capitalized wordsField contents is converted to lower-case lettersField contents is converted to upper-case lettersField contents is cut after position WIDTHField contents is not cut after position WIDTHField contents placed at the left margin using width WIDTHField contents placed at the right margin using width WIDTHField contents placed in centered manner using width WIDTHField has the width N (%d...%d)Fiji #FinlandFirst Day of RidvanFisherman's DayFixed date list:Flag DayFlemish Culture DayFormer Yugoslav Republic of MacedoniaFoundation of NPLA DayFounding of People's PartyFounding of the Communist PartyFrFranceFrench Culture DayFrench GuianaFrench PolynesiaFrench RevolutionaryFriFridayFridaysFriendship DayFull MoonGNU gcal home page: <%s>Gabon #GambiaGarifuna DayGeneral San Martin's AnniversaryGeneral help using GNU software: <%s>GeorgiaGerman Unity DayGermanyGermany/Baden-WĵrttembergGermany/BavariaGermany/BerlinGermany/BrandenburgGermany/BremenGermany/HamburgGermany/HesseGermany/Lower SaxonyGermany/Mecklenburg-West PomeraniaGermany/North Rhine-WestphaliaGermany/Rhineland PalatinateGermany/SaarlandGermany/SaxonyGermany/Saxony-AnhaltGermany/Schleswig-HolsteinGermany/ThuringiaGhadirGhanaGibraltarGood FridayGood Saturday/Easter EveGospel DayGrandparents' DayGreat BritainGreat Britain/England and WalesGreat Britain/Northern IrelandGreat Britain/ScotlandGreeceGreenery DayGreenlandGrenadaGrotto DayGroundhog DayGuacanaste DayGuadalupe Virgin's DayGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Gustavus Adolphus' DayGuyana #Hai/PigHaitiHalloweenHannukah/Festival of LightsHealth and Sport's DayHeard and Mc Donald IslandsHebHeritage DayHeroes DayHighlighting group (all members must be defined):Ho Chi Minh's BirthdayHobart Show DayHoly Innocent's DayHoly TrinityHoly WednesdayHondurasHong KongHuman Rights DayHungaryHuravee DayHurricane Supplication DayHurricane Thanksgiving DayIcelandIf you use this software, you agree without any exception to thisImamat DayImbolgIndependence DayIndependence Movement DayIndependence ProclamationIndependence of CartagenaIndependence of CuencaIndependence of GuayaquilIndependence of QuitoIndia #Indian Arrival DayIndian New Year's DayIndonesia #IntInternalInternal Autonomy DayInvalid argument in command line given -- %sInvalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionIraqIrelandIslIslamic New Year's DayIslamic Republic of IranIsraelItalyJ. Barbosa's BirthdayJ. Chilembwe DayJ. Diego's BirthdayJ. Robert's BirthdayJamaicaJanJanuaryJapJapanJapanese New Year's DayJapanese New Year's EveJefferson Davis' BirthdayJesus' CircumcisionJordanJulJulyJunJuneJune HolidayKamarampaka DayKartini DayKazakhstanKenya #Kiev DayKim Il-Sung's BirthdayKim Jong-Il's BirthdayKing Kamehameha DayKing Rama I Memorial Day/ChakriKing Rama V Memorial DayKiribati #KnabenschiessenKonstantin and MethodiusKuwaitKwanzaaKyrgyzstanL. Rivera's BirthdayLabour DayLabour Thanksgiving DayLag B'OmerLao Tze's BirthdayLaos People's Democratic Republic #Lapp National HolidayLatviaLaunceston Cup DayLeap-day set to `%02d-%s' in file `%s'.LebanonLesothoLiberation DayLiberiaLiberty DayLibyan Arab Jamahiriya (Libya)LiechtensteinLine %ld ignored: %sLine %ld: %sLithuaniaLoss of Muslim NationLughnasaLunar EclipseLuxembourgLuxembourg City KermisLyndon B. Johnson DayMMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.MacauMadagascar #Madaraka DayMahatma Gandhi's BirthdayMail from \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaldivesMaliMaltaMalvinas DayManila DayMao/RabbitMaputo City DayMarMarchMarien Ngouabi DayMarine DayMarshall IslandsMartin L. King's DayMartinimasMartiniqueMartyrdom of the BabMartyrs' DayMary - Blessed VirginMary's Annunciation DayMary's Ascension DayMary's CandlemasMary's ExpectationMary's Immaculate ConceptionMary's MaternityMary's NameMary's NativityMary's SacrificeMary's VisitationMaryland DayMaundy ThursdayMauritaniaMauritiusMayMay May DayMayotteMelbourne Cup DayMemory exhaustedMerchant DayMexicoMi-CarŞme DayMid-Autumn FestivalMid-Spring FestivalMid-Year FestivalMissionary DayMoMonMonacoMondayMondaysMondays...FridaysMondays...ThursdaysMongolia #Month group (exactly one member must be defined):MontserratMorazan DayMoroccoMosheshoe's DayMother in Law's DayMother's DayMotherhood and Beauty DayMozambiqueMusic Water BanquetMyanmar (Burma) #NamibiaNaming DayNational Bun DayNational Foundation DayNational Heroes DayNational HolidayNational Mourning DayNational Redemption DayNational Resistance DayNational Revival DayNational Unity DayNauruNdadaye DayNepal #NetherlandsNetherlands Antilles/BonaireNetherlands Antilles/Cura§aoNetherlands Antilles/Saba and StatiaNetherlands Antilles/St MaartenNeutrality DayNevada DayNew CaledoniaNew MoonNew Regime AnniversaryNew Year's DayNew ZealandNicaraguaNigerNigeriaNinth Day of RidvanNiueNo matchNo previous regular expressionNobel DayNoi DayNorthern Marian Islands (Saipan)Noruz/Persian New Year's DayNorwayNovNovemberNumerical value is filled with leading zero(es)Numerical value is provided with an ordinal number suffixNumerical value is provided with leading signNurses' DayNuzul-al-Qur'anOAU DayOPTIONOctOctoberOctober HolidayOil Industry DayOld-Armenic New YearOld-Egyptic New YearOmanOn principle I will not be liable for ANY damages or losses (implicitOrthodox New Year's DayOur Lady Aparecida DayOur Lady of Altagracia DayOur Lady of Camarin DayOur Lady of Las Mercedes DayOur Lady of Los Angeles DayOur Lady of Seven SorrowsOur Lady of Victories DayOxNOxOPakistanPalauPalm SundayPanamaPanama City DayPanamerica DayPapua New GuineaParaguayParent's DayParis Peace Agreement DayPartialPassion SundayPatriot's DayPeace FestivalPeach FestivalPenumbralPeople Power DayPeople's Uprising DayPerPercent ('%c') characterPeruPesach/PassoverPhilippine-American FriendshipPhilippinesPhyPichincha DayPicnic DayPioneer DayPitcairnPolandPortugalPoya DayPrayer DayPreload options and commands from `FILE'Premature end of regular expressionPresident Lincoln's BirthdayPresidential InaugurationPresidents' DayPresidents' InformPrince Kalanianaole DayPrince of Wales' BirthdayPrincess' DayProclamation DayPuerto RicoPurim/Feast of LotsQaid-i-Azam's BirthdayQatarQuds DayQuinquagesima SundayRamadanRatu Sukuma DayRecreation DayReferendum DayReformation DayRegatta DayRegency ExchangeRegular expression too bigRemembrance/Memorial DayRepublic DayRepublic of Congo #Republic of KoreaRepublic of MoldovaRespect for the Aged DayRestoration DayReturn DayReunification DayRevolution DayRio de Janeiro AnniversaryRizal DayRogation SundayRomaniaRosh Hashana/New Year's DayRussian FederationRwagasore DayRwandaRİunionS. Doe's BirthdaySAR Establishment DaySIGN (may be defined):STYLE group (exactly one member may be defined):SUFFIX (may be defined):SaSaba DaySaint-Pierre and MiquelonSamhain/Celtic New Year's DaySamoaSan Jacinto DaySan Josİ DaySan MarinoSao Paulo AnniversarySao Tomİ and PrincipeSapporo Snow FestivalSatSaturdaySaturdaysSaudi ArabiaSchool HolidaySeason Change/Bean-FestivalSechsel¤utenSenegalSepSeparation DaySeptemberSeptuagesima SundaySerbia and MontenegroSeretse Khama DaySettlers DaySeven Sleepers DaySeward's DaySexagesima SundaySeychellenShab-e QadrShab-e-Bara'tShab-e-Mi'rajShaheed DayShavuot/Giving of the TorahSheep FestivalSheikh Zayed's Ascension DayShen/MonkeyShrove Tuesday/Mardi GrasShushan PurimSi/SnakeSierra LeoneSimchat TorahSimon Bolivar's DaySinai-Liberation DaySingapore #Slave-Liberation DaySlovakiaSloveniaSniff the Breeze DaySolar EclipseSolidarity DaySolomon IslandsSolstice DaySomaliaSomers DaySoot-Sweeping DaySouth AfricaSouth Georgia and South Sandwich IslandsSpace/blank ('%c') characterSpainSpring FestivalSri Lanka #St Agata DaySt Andrew's DaySt Bartholomew DaySt Berchtold's DaySt Canute's DaySt Cedilia's DaySt Charles' DaySt David's DaySt Demetrius' DaySt Dİvote DaySt Edward's DaySt Eliah's DaySt George's DaySt HelenaSt James' DaySt Jean Baptiste DaySt John's/Midsummer DaySt John's/Midsummers EveSt Joseph's DaySt Kitts and NevisSt Laurentius DaySt LuciaSt Lucia's DaySt Marguerite's DaySt Maroon's DaySt Michael's DaySt Nicholas' DaySt Nicholas' EveSt Olav's DaySt Olav's EveSt Patrick's DaySt Paul's ShipswreckSt Peter and St PaulSt Rose of LimaSt Stephen's DaySt Ursula's DaySt Valentine's DaySt Vincent and GrenadinesSt Vincent de Paul's DayStandardStar FestivalStart of common monthStart of highlighting sequence/marking characterStart of leap monthStatia-American DayStudent's DaySuSuccessSudanSuez Victory DaySukkot/Feast of TabernaclesSultan Qaboos' BirthdaySunSundaySunday of the DeadSundaysSuriname #Svalbard and Jan Mayen IslandsSvetitskhovlobaSwallow DaySwazilandSwedenSweden DaySweetest DaySwitzerlandSwitzerland/AargauSwitzerland/Appenzell AusserrhodenSwitzerland/Appenzell InnerrhodenSwitzerland/Basel-LandschaftSwitzerland/Basel-StadtSwitzerland/BernSwitzerland/FribourgSwitzerland/Gen¨veSwitzerland/GlarusSwitzerland/GraubĵndenSwitzerland/JuraSwitzerland/LuzernSwitzerland/Neuch˘telSwitzerland/NidwaldenSwitzerland/ObwaldenSwitzerland/SchaffhausenSwitzerland/SchwyzSwitzerland/SolothurnSwitzerland/St GallenSwitzerland/ThurgauSwitzerland/TicinoSwitzerland/UriSwitzerland/ValaisSwitzerland/VaudSwitzerland/ZugSwitzerland/ZĵrichSylvester/New Year's EveSyrian Arab Republic (Syria)TaiwanTajikistanTanzaniaTeacher's DayTennant-Creek Show DayTerritory DayThThai New Year's DayThailand #Thanksgiving DayThe Crown Prince's BirthdayThe Crown Princesse's BirthdayThe Crown Princesse's Name-DayThe King's BirthdayThe King's Name-DayThe Queen's BirthdayThe Queen's Name-DayThere is NO warranty, without even the implied warranty ofThis is free software; see the source for copying conditions.This program is free software; you can redistribute it and/or modifyThis software doesn't claim completeness, correctness or usability.ThuThursdayThursdaysTiradentes DayTisha B'Av/Fasting DayTogo #TokelauTomb-Sweeping DayTongaTopou I DayTotalTown Meeting DayTraditional DayTrailing backslashTransfer DayTransfiguration DayTrinidad and Tobago #Truman DayTry to open (level: %02d) include file `%s'... %s%s%sTry to open%sresource file `%s'... %s%s%sTry to write %s `%s'... %s%s%sTuTu B'Shevat/New Year of TreesTueTuesdayTuesdaysTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluTwelfth Day of RidvanTynwald DayU.S. Virgin IslandsU.S.A.UNKNOWNUgandaUkraineUnderscore ('%c') characterUnion DayUnion with Sweden dissolvedUnited Arab EmiratesUnited Nations DayUnited StatesUnited States/AlabamaUnited States/AlaskaUnited States/ArizonaUnited States/ArkansasUnited States/CaliforniaUnited States/ColoradoUnited States/ConnecticutUnited States/DelawareUnited States/District of ColumbiaUnited States/FloridaUnited States/GeorgiaUnited States/HawaiiUnited States/IdahoUnited States/IllinoisUnited States/IndianaUnited States/IowaUnited States/KansasUnited States/KentuckyUnited States/LouisianaUnited States/MaineUnited States/MarylandUnited States/MassachusettsUnited States/MichiganUnited States/MinnesotaUnited States/MississippiUnited States/MissouriUnited States/MontanaUnited States/NebraskaUnited States/NevadaUnited States/New HampshireUnited States/New JerseyUnited States/New MexicoUnited States/New YorkUnited States/North CarolinaUnited States/North DakotaUnited States/OhioUnited States/OklahomaUnited States/OregonUnited States/PennsylvaniaUnited States/Rhode IslandUnited States/South CarolinaUnited States/South DakotaUnited States/TennesseeUnited States/TexasUnited States/UtahUnited States/VermontUnited States/VirginiaUnited States/WashingtonUnited States/West VirginiaUnited States/WisconsinUnited States/WyomingUnity Factory DayUnknown system errorUnmatched ( or \(Unmatched ) or \)Unmatched \{UruguayUsage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...] Usage: %s [--%s | --%s] | [RESOURCE-FILE | -] Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART] Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]Use `%s %s|[%s?]Use given `DATE' instead of today's dateUzbekistanValborg's EveVanuatuVenezuelaVenice CarnivalVeteran's DayVictor-Schoelcher DayVictoria DayVictory DayVidovdanViet NamWW. Tubman's BirthdayWIDTH (must be defined):Wallis and Futuna IslandsWaning Half MoonWaqf-al-ArafatWaxing Half MoonWeWedWednesdayWednesdaysWeekWeek %sWei/SheepWest Virginia DayWestern SaharaWhit MondayWhitsun EveWhitsunday/PentecostWomen's DayWomen's Shrove DayWorld Animal DayWu/HorseXu/DogYYap DayYemenYin/TigerYom Ha Azmaut/Independence DayYom Hashoah/Holocaust MemorialYom Hazikaron/Soldiers MemorialYom Kippur/Atonement DayYom Yerushalayim/Jerusalem DayYou should have received a copy of the `GNU General Public License'You/RoosterYouth DayZERO (may be defined):ZambiaZi/RatZimbabweZod[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]_open_osfhandle failed`%s' line %ld: (`%s') `%s%d' failed`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'`%s' line %ld: (`%s') unmanaged error (%d)`%s' line %ld: virtual memory exhausted (%s=%d)`Eternal holiday list'`Internal'`termcap' file not foundagreement, which binds you LEGALLY !!along with this program; if not, write to the:amany later version.cannot create pipecannot restore fd %d: dup2 failedcommand linecontain a format instruction, which template is like:d'"defaultenvironment variableenvironment variable `%s' not foundenvironment variable `%s' not setfailedfile `%s' can't be written Storage media full!file `%s' not foundfor more information.h'"holidaysillegal character in response file `%s' Line %ld: %sillegal definition of variable `%c'illegal operation on variable `%c'illegal variable definition in file `%s'illegal variable operation in file `%s'internalinvalid N'th weekday field(%d) in file `%s' Line %ld: %sinvalid date part in file `%s' Line %ld: %sinvalid dayinvalid day field(%02d) in file `%s' Line %ld: %sinvalid monthinvalid month field(%02d) in file `%s' Line %ld: %sinvalid recursive/cyclic %s in file `%s' Line %ld: %sinvalid search pattern `%s' specifiedinvalid value assigned to variable `%c' in file `%s'invalid year for computing Easter Sundays date Year must be in range (%d...%d)it under the terms of the `GNU General Public License' as published bylegal holidaysmalformed %s in file `%s' Line %ld: %smemory exhaustedmissing `whitespace' character after date part in file `%s' Line %ld: %sndor explicit), which result from using or handling my software.pmrdread error in file `%s'response fileself-definedsending eMail to <%s> failedshell scriptshift value `%s' is invalidstsuccessththe `Free Software Foundation'; either version 3, or (at your option)unknown unknown compilerunknown compiler (SDK?)unknown terminal type defined in `%s'unknown versionvariable `%c' undefined in file `%s'version %dversion %d.%dProject-Id-Version: gcal 3.6.3.34 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 2015-03-23 02:42+0100 Last-Translator: Stİphane Aulery Language-Team: French Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=2; plural=(n > 1); %s: abandon, %s: programme stoppİ par le signal %d %s: AVERTISSEMENT, %s. ÂĞ %s Âğ ligne %ld: %-3s = %d...%d longueur d'un axe simple %-3s = %d...%d nombre total de lignes %-3s = february respecter le ÂĞ 28 fİvrier Âğ %-3s = march respecter le ÂĞ 1er mars Âğ = %s passİs = %s afficher les prİcİdents jusqu'au dİbut du mois = %s afficher les prİcİdents jusqu'au dİbut de la semaine = %s afficher les jours prİcİdents jusqu'au dİbut de l'annİe N = 0 %s lequel n'est pas dans la 1¨re semaine N = 0 1¨re semaine / derni¨re semaine de l'annİe prİcİdente N = 1...4 1er...4e jour de semaine %s (toujours) N = 1...51 %s de la 1¨re...51e semaine (toujours) N = 1...51 1er...51e jour de semaine %s (toujours) N = 1...52 1¨re...52e semaine (toujours) N = 5 5e jour de semaine %s (quelques fois) N = 52|53 %s de 52|53e semaine (quelques fois) N = 52|53 52|53e jour de semaine %s (quelques fois) N = 53 53e semaine (parfois) N = 9 dernier jour de semaine %s N = 99 %s de la derni¨re semaine N = 99 derni¨re semaine N = 99 dernier jour de semaine %s Actuel : ÂĞ %s Âğ = gİrer le ÂĞ 29 fİvrier Âğ pour les annİes non-bissextiles = fixer la hauteur graphique textuelle des phases de la lune = fixer la largeur graphique textuelle du biorythme ou: nom du mois | %s | %s%s | %s%s | %s%s [MOD] = %s afficher les prochains jours jusqu'au dernier jour du mois [MOD] = %s afficher les prochains jusqu'  la fin de la semaine [MOD] = %s afficher les prochains jours jusqu'  la fin de l'annİe %s%cwN[%s], nom du mois[%s], nom du jour de la semaine[N] or %s MOD = %s futurs %-*s = FŞtes dans %s %-3s = Titre du texte utilisİ pour la liste des dates fixes %c = exclusion de tout %s pression de l'air en millibar (actuellement: %.3f) tempİrature de l'air en degrİs Celsius (actuellement: %+.3f) i.e. %sH %s%s*%s* utiliser les caract¨res ÂĞ * Âğ et ÂĞ * Âğ pour la sİquence 2 i.e. %sH \x2%s\xAE utiliser les valeurs hexadİcimales 2 et AE pour la sİquence 1 i.e. %sr %ca%sfoo assigner la sortie de la commande ÂĞ foo Âğ   ÂĞ %ca Âğ i.e. %sr %ca%sfoo%s%cb%sbar fixer ÂĞ %ca Âğ   ÂĞ foo Âğ et ÂĞ %cb Âğ   ÂĞ bar Âğ i.e. %sv a%s1127%sb%s054 fixer ÂĞ a Âğ au 27 Nov et ÂĞ b Âğ au 4 Mai i.e. ÂĞ %s%s%s%s%s%s%s%s Âğ %-3s provoque la conversion correcte des Liste: %s[%s%s]%s...%s%s[%s%s] Liste: [%s%s]%s%s...%s[%s%s]%s Intervalle: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s Intervalle: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s expressions sİparİes par des caract¨res ÂĞ %s Âğ est une MINUSCULE, cela implique une non-exclusion ! indiquİs par # ont un registre incomplet des FŞtes caract¨res prİcİdents spİciaux dans un format individuel de format de date, lesquels sont utilisİs par le jeu de caract¨res utilisİ en Allemagne lesquels sont reliİs par les caract¨res ÂĞ %s Âğ. Pays/territoires, lequel a un composant d'instruction de format de STYLE et dont # %c%c[%s|%s]N%s = simple Ni¨me jour de semaine relatif au dimanche de P˘ques # %c%c[%s|%s]N%s = simple Ni¨me jour de semaine relatif   la date courante de P˘ques # %c%c[[%s|%s]N] = Ni¨me jour relatif au dimanche de P˘ques # %c%c[[%s|%s]N] = Ni¨me jour relatif au dimanche de P˘ques # %c?[%s|%s]N%s = simple Ni¨me jour de semaine relatif   une date variable # %c?[[%s|%s]N] = Ni¨me jour relatif   une date variable # %cdN = jour simple absolu N # %cdN%s = Ni¨me simple jour de semaine %s # %cwN%s = jour simple de semaine %s de la Ni¨me semaine # %s%s = jour unique %s du mois %s # %s%sN = Ni¨me jour simple de semaine %s du mois %s # A = afficher   l'aide d'une liste alternative de format # E = inclure les jours lİgaux seulement # J = omettre la partie texte des dates fixes # NMOD = jour simple N relatif au jour courant # Nd = jour simple absolu N # Nw = N semaines compl¨tes # Q = omettre les lignes blanches prİcİdent la liste des dates fixes # U = omettre la partie date des dates fixes # Z = afficher les dates pour les dates fixes inexistantes # a = afficher l'origine des dates fixes # d = inclure la date courante si la liste des pİriodes est gİnİrİe # e = inclure les jours lİgaux et fİriİs # g[MODE] = groupe des dates fixes par jour utilisant le MODE texte # k = afficher les numİros de semaine # l = gİnİrer la liste des pİriodes au lieu d'une pİriode simple # m|M[MOD] = afficher un mois complet # o = omettre la rİpİtition des champs des dates fixes # t|T = afficher demain # w|W[MOD] = afficher une semaine compl¨te # x = exclure les titres de la liste des dates fixes # y|Y[MOD] = afficher une annİe compl¨te # z = afficher les nombres consİcutifs des dates fixes 1. reprİsentation du texte 2. pİriode respectİe = dİfinition de "TVAR[%s|%c%s]COMMANDE" sİparİe par les caract¨res ÂĞ %s Âğ = abort identique   ÂĞ all Âğ et abandonner si le fichier ne peut-Ştre traitİ = all identique   ÂĞ handled Âğ et ÂĞ unhandled Âğ ensemble = handled comme ÂĞ internal Âğ et les noms de fichier qui sont traitİs = no numİros standards de semaine = unhandled comme ÂĞ internal Âğ et les noms de fichier qui ne sont pas traitİs pİriode actuelle respectİe: %02d-%02d %s %0*d format actuel: (%s) ÂĞ %s Âğ (%s) modifier la base de temps astronomique des fonctions modifier l'annİe de base du calendrier modifier le temps du fin de cycle modifier le cycle-pas-du-temps crİer un fichier rİponse pour l'option ÂĞ %cFILE Âğ crİer le script de shell qui contiendra les arguments de la ligne de commande utiliser des fichiers alternatifs au lieu du fichier standard de ressources dİfinir des dates globales variables "DVAR->a...d|f...s|u...|z" dİfinir les variables globales de texte "TVAR->%ca...%cz" dİfinir une paire traduisible de caract¨res spİciaux du pays dİterminer le type de numİros semaine (actuellement: %s) relayer la sortie   un paginateur externe ÂĞ %s Âğ relayer la sortie au paginateur interne simple dİsactiver le surlignage du texte, jours de fŞte, jour courant afficher la liste perpİtuelle des jours de fŞte (annİes de %d   %d) afficher l'aide-mİmoire İtendu afficher l'aide-mİmoire Afficher seulement les dates fixes qui ne sont pas exclues par %s Afficher seulement les dates fixes concordant avec %s afficher la license du logiciel afficher quelques informations de dİbogage afficher la version du logiciel et quitter exclure les titres de la liste perpİtuelle des FŞtes exİcuter les commandes ÂĞ %c%c[%s] Âğ du shell exporter les variables locales des dates d'un fichier   l'autre exporter les variables locales de texte d'un fichier   l'autre forcer le surlignage des sİquences si la sortie est relayİe ignorer la casse si l'option ÂĞ %s Âğ est fournie pİriode impliquİe: Aujourd'hui limiter l'augmentation/fixer l'heure Solaire   celle du jour modifier le format du calendrier de l'annİe afficher la feuille de calendrier avec les numİros de semaine afficher la liste perpİtuelle des FŞtes avec le calendrier Baha des FŞtes afficher la liste perpİtuelle des FŞtes avec le calendrier Baha des mois afficher la liste perpİtuelle des FŞtes avec le calendrier Celte des FŞtes afficher la liste perpİtuelle des FŞtes avec le calendrier Chinois des FŞtes afficher la liste perpİtuelle des FŞtes avec le calendrier Chinois des mois afficher la liste perpİtuelle des FŞtes avec le calendrier flexible Chinois des FŞtes afficher la liste perpİtuelle des FŞtes avec le calendrier flexible Chinois des mois afficher la liste perpİtuelle des FŞtes avec le calendrier Chrİtien de l'Ouest des FŞtes afficher la liste perpİtuelle des FŞtes avec le calendrier Copte des mois afficher la liste perpİtuelle des FŞtes avec le calendrier ‰thyopien des mois afficher la liste perpİtuelle des FŞtes avec le calendrier de la Rİvolution Fran§aise des mois afficher la liste perpİtuelle des FŞtes avec le calendrier Hİbreux des FŞtes afficher la liste perpİtuelle des FŞtes avec le calendrier Hİbreux des mois afficher la liste perpİtuelle des FŞtes avec le calendrier civil Indien des mois afficher la liste perpİtuelle des FŞtes avec le calendrier civil Islamique des FŞtes afficher la liste perpİtuelle des FŞtes avec le calendrier civil Islamique des mois afficher la liste perpİtuelle des FŞtes avec le calendrier Japonais des FŞtes afficher la liste perpİtuelle des FŞtes avec le calendrier Japonais des mois afficher la liste perpİtuelle des FŞtes avec le calendrier flexible Japonais des FŞtes afficher la liste perpİtuelle des FŞtes avec le calendrier flexible Japonais des mois afficher la liste perpİtuelle des FŞtes avec l'ancien calendrier Armİnien des mois afficher la liste perpİtuelle des FŞtes avec l'ancien calendrier ‰gyptien des mois afficher la liste perpİtuelle des FŞtes avec le nouveau calendrier Orthodoxe des FŞtes afficher la liste perpİtuelle des FŞtes avec l'ancien calendrier Orthodoxe des FŞtes afficher la liste perpİtuelle des FŞtes avec le calendrier Perse Jalaali des FŞtes afficher la liste perpİtuelle des FŞtes avec le calendrier Perse Jalaali des mois afficher la liste perpİtuelle des FŞtes avec des donnİes astronomiques afficher la liste perpİtuelle des FŞtes avec les FŞtes spİcifiques du pays afficher la liste perpİtuelle des FŞtes avec le calendrier multiculturel des FŞtes du Nouvel An afficher la liste perpİtuelle des FŞtes avec les rep¨res du Zodiac reprİsenter les temps astronomiques et les donnİes avec la plus grande prİcision renverser le sens de l'appairage de l'option ÂĞ %s Âğ relayer la sortie via ÂĞ %s Âğ fixer le statut de fin d'exİcution   %d pour ÂĞ %s Âğ etc. utiliser la base de donnİes de l'atmosph¨re terrestre fixer le surlignage des paires de sİquence 1 (=jour actuel) et 2 (=jour de fŞte) fixer l'ordre des champs de date en utilisant le format texte %s utiliser la pİriode de la rİforme grİgorienne fixer la valeur de rİfİrence pour l'augmentation/l'initialisation du temps respectivement selon la longueur fixer le jour du dİbut de la semaine (actuellement: %s) exclure les lignes blanches en prİfixe de la liste perpİtuelle des FŞtes supprimer la sortie de la feuille de calendrier explicitement utiliser des fichiers alternatifs au lieu du fichier standard de ressources utiliser des jours consİcutifs de l'annİe dans la feuille de calendrier utiliser les jours consİcutifs de l'annİe de la liste perpİtuelle des FŞtes utiliser les jours consİcutifs de l'annİe d'une liste fixe de dates utiliser la r¨gle des annİes bissextiles pour les ‰glises orthodoxes de l'Est utiliser un format spİcial pour la feuille de calendrier utiliser le fichier standard des ressources ÂĞ %s%s Âğ pour la liste des dates fixes utiliser le fichier standard des ressources ÂĞ .%s%s Âğ pour la liste des dates fixes et les affectations "TVAR[%s|%c%s]COMMANDE" respectivement, modifier le temps du dİbut du cycle %-3s = lister les fichiers reliİs par le caract¨res ÂĞ %s Âğ [MOD] = %s ordre dİcroissant de trie [MOD] = un (ou plusieurs) des modificateurs suivants indiquİs par # %-*d%*s = fixer la pİriode  : %02d-%02d %s %0*d %-3s = dİfinition de "DVAR%s%s%s" sİparİe par les caract¨res ÂĞ %s Âğ %-3s = dİfinition de "TVAR%sTEXTE" sİparİ par les caract¨res ÂĞ %s Âğ %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] valeur de fin (actuellement: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] valeur du dİcalage de temps (actuellement: %s%02d%s%02d == GMT%s) %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] valeur du dİcalage de temps (actuellement: %s%02d%s%02d == GMT%s) %-3s = %s%c%s%s%s%s%s%s fixer la pİriode explicitement %-3s = 1|2|3|4|6|12 nombre de blocs (actuellement: %d) %-3s = pression de l'air et tempİrature sİparİs par le caract¨re ÂĞ %s Âğ %-3s = valeur angulaire respectivement factorise dans la gamme: %+.1f...%+.1f %-3s = n'importe quel ligne d'un fichier ressource %-3s = Tout texte respectivement \"expression rİguli¨re\" prİfİrİ %-3s = dİfinir le format individuel. Les İlİments de format respectİs sont: %-3s = Nom du fichier script %-3s = surligner les paires de sİquence sİparİes par les caract¨res ÂĞ %s Âğ %-3s = liste de ÂĞ %c[DATE][%c[DATE]] Âğ et/ou ÂĞ %c[DATE][%c[DATE]] Âğ %-3s = MMMM|HH%s[MM] valeur du pas du temps (actuellement: %02d%s%02d) %-3s = un ou plusieurs des caract¨res suivants. Si le caract¨re %-3s = code simple du pays, code de territoire ou une liste de ceux-ci, %-3s = conserver les arguments de la ligne de commande dans le fichier %s %-3s = dİfinitions en MAJUSCULES""MINUSCULES... %-3s = [%s|%s]AAAA valeur de dİcalage de l'annİe (actuellement: %d) %-3s = yes numİros de semaine ISO-8601:1988 %-6s = le format est: ÂĞ %s Âğ (%s) C = afficher les dates pour les dates fixes inexistantes aussi F = afficher les dates fixes n'ayant pas d'existence aussi N = jours lİgaux seulement [MOD] = b utiliser les deux notations de date (jour du mois+annİe) %sL, %s afficher la license du logiciel et quitter %sV, %s afficher le nom et la version du logiciel et quitter %sh, %s afficher l'aide-mİmoire et quitter %shh, %s afficher l'aide-mİmoire İtendu et quitter %sp, %s relayer la sortie   un paginateur externe ÂĞ %s Âğ %sp, %s relayer la sortie au paginateur interne simple [%-3s] = adresse de courrier, autrement le courrier est expİdiİ   ÂĞ %s Âğ [%-3s] = internal informations si les maximums internes sont atteints [MOD] = - utiliser un format standard pour la feuille de calendrier [MOD] = b utiliser les deux notations de date (jour du mois+annİe) (%.4s sur Alpha) (%.4s sous VAX) (BSD/386 1.1 ou plus) (FreeBSD 2.0 ou plus) (NetBSD 1.2 ou plus) (NetBSD avant 0.9) 1.0 ou 1.5? 4.0 ou 4.02 ; Semaine %s = %+4d jour = %+4d jours ÂĞ ICI Âğ c = afficher seulement les dates pour les dates fixes existantes jour f = afficher seulement les dates fixes existantes plus rİcente que 4.5 plus rİcente que 5.0 n = jours lİgaux et fİriİs sur # nombre du jour (doit Ştre dİfini)# nom du mois# nombre du mois# nombre de la semaine (peut Ştre dİfini)# nombre de l'annİe (doit Ştre dİfini)%cDATE%cFICHIER%s = mois dans l'intervalle: %d...%d%s dans le patron de recherche ÂĞ %s Âğ%s sous-processussous-processus %s İchouİ%s sous-processus a re§u le signal fatal %d%s%*s = intervalle des annİes: %d...%d%s%s contient %d le maximum d'entrİes maintenant!%s%s: pour en savoir plus, <%s> pour quitter...%s : le programme de calendrier Grİgorien (GNU cal) %s%s : utilise ÂĞ %s %s Âğ avec un de ces arguments%s: abandon, %s: commande repİrİe dans la variable d'environnement ÂĞ %s Âğ -- %s %s %s %s: erreur lors de l'exİcution de ÂĞ %s Âğ. %s: fichier n'a pas İtİ repİrİ. %s: date donnİe invalide -- %c%s %s %s %s: date fournie invalide -- %s %s %s %s : l'option %s est invalide%s: pas un fichier rİgulier %s : l'option ÂĞ %s Âğ ne permet pas d'argument%s : l'option ÂĞ %s Âğ est ambiguĞ%s : l'option ÂĞ %s Âğ requiert un argument%s : l'option ÂĞ --%s Âğ ne permet pas d'argument%s: l'option ÂĞ %s Âğ requiert un argument%s : l'option -- %s requiert un argument%s : l'argument -- %s de l'option est ambiguĞ%s : l'argument -- %s de l'option est invalide%s : l'option ÂĞ %s Âğ n'est pas reconnue%s : AVERTISSEMENT, courrier avec un message vide n'a pas İtİ envoyİ   <%s>. %s:%*s l'annİe %0*d est une annİe bissextile%s:%*s l'annİe %0*d n'est pas une annİe bissextile%s:%*s l'annİe %d est une annİe bissextile%s:%*s l'annİe %d n'est pas une annİe bissextile(ÂĞ %s Âğ) le format de la date ÂĞ %s Âğ est invalide(mauvaise version)++ 1.0 ou plus++ 3.0 ou plus rİcente+++ DATES FIXES +++1er dimanche de l'Avant1er dimanche du CarŞme2e dimanche de l'Avant2e dimanche du CarŞme3e dimanche de l'Avant3e dimanche du CarŞme4e dimanche de l'Avant4e dimanche du CarŞme5.1 ou plus rİcenteFestival 7-5-3:Groupe d'alignement (exactement un membre doit Ştre dİfini) :AMOPARAMˆTRE(S)FŞtes des Arborig¨nesFŞte de la Coupe AdelaideJour de l'AdmissionAfghanistanNaissance de Aga KhanFŞte de l'AlaskaAlbanieJour de Aleksis KiviAlgİrieJour de Alice-SpringsFŞte du Poisson d'AvrilFŞte de la ToussaintVigiles de la ToussaintFŞte de la ToussaintTous les İlİments de format marquİs par # peuvent Ştre optionnelsFŞte de l'AlphabetŽles Samoa (E.U)FŞtes des AmİriquesAndorreFŞte de AngamAngola #AnguillaAnniversaire de la Succession de AmirAnniversaire de la Bataille ArmİeAnniversaire de AucklandAnniversaire de Canterbury NordAnniversaire de Canterbury SudAnniversaire des Žles ChathamAnniversaire de la Marche VerteAnniversaire de la Baie HawkesAnniversaire de MarlboroughAnniversaire de NelsonAnniversaire de OtagoAnniversaire du SouthlandAnniversaire de TaranakiAnniversaire de WellingtonAnniversaire de WestlandAnnulaireAntigua et BarbadeFŞte des AntillesJour de AnzacAvrAvrilFŞte de la Ligue ArabeFŞte de ArborJour du Mİmorial de l'ArchevŞque MakariosJour de l'ArchevŞque MakariosAnniversaire de ArengoArgentineArgument ÂĞ %s Âğ de la ligne de commande est ignorİ.Jour des Forces Armİes (‰tats-Unis)ArmİnieJour de l'ArmisticeJour du Coup de l'ArmİeArrivİe des SuissesFŞte de ArtigasArubaAscension de Abdu'l-BahaAscension de Baha'u'llahLundi des CendresMercredi des CendresAshura'AstFŞte de l'AssomptionJour du Mİmorial de AtaturkAoğAoğtAustralieAustralie/CanberraAustralie/Nouvelle Galles du SudAustralie/Territoire du NordAustralie/QueenslandAustralie/Australie MİridionaleAustralie/TasmanieAustralie/VictoriaAustralie/Australie OccidentaleAutricheJour de la Force de l'AutoritİAzerbaŻdjanFŞte de la Rİvolution Ba'athCaract¨re barre oblique inverse (ÂĞ %c Âğ)BahBahamasBahreŻnJour du Nouvel An de Baha'iBangladesh #FŞte de la BanqueBarbadeJour du Baron BlissFŞte Nationale des BasquesJour de BataanJour la Bataille de AngamosJour la Bataille de BoyacĦJour la Bataille de BoyneJour la Bataille de CaraboboJour la Bataille de IquiqueJour la Bataille de Las PiedrasJour la Bataille de N¤felsJour la Bataille de PueblaDİbut de l'Annİe Financi¨reDİbut de l'‰tİBİlarusBelgiqueFŞte de BelgradeBelizeBeltaneBİnin #Jour de Bİnito JuĦrezJour de la Bataille de BenningtonBermudesBhutan #Naissance de Baha'u'llahNaissance de BabBİnİdiction de l'EauJournİe de la FloraisonNaissance de BodhidharmaFŞte de BogandaBolivieFŞte de BonaireJour la Bataille de BoqueronBosnie-HerzİgovineJour de BossesBotswanaFŞte du BotswanaFŞte de BountyŽle BouvetBoxing DayBrİsilJour du Retour   la Maison des HerdsJour de la RİcolteŽles Vierges britanniquesBruneiAnniversaire du BouddhaBulgarieFŞte de Bunker HillBurkinaJan Hus au bğcherNuit des FeuxBurundi #FŞte de C. MapinduziCOMMANDECWCambodge #CamerounJour de CamoesCanadaCanada/AlbertaCanada/Colombie BritanniqueCanada/ManitobaCanada/Nouveau BrunswickCanada/Terre-Neuve et LabradorCanada/Territoires du Nord OuestCanada/Nouvelle ‰cosseCanada/OntarioCanada/Žle du Prince ‰douardCanada/QuİbecCanada/SaskatchewanCanada/YukonFŞte de CanberraNe peut produire correctement le calendrier luni-solaire pour %dNe peut exİcuter la commande dans le fichier ÂĞ %s Âğ. Ligne %ld: %sCap VertFŞte de la CaricomCarnavalAnniversaire de Casimir PulaskiFŞte de CassingaJour de CatherineFestival de CayenneŽles CaymanCelRİpublique Centre Africaine #Jour de Cİsar ChavezTchadCaract¨re de remplacement :FŞte de CharterChen/DragonChiAnniversaire de Chiang Kai-shekJournİe des EnfantsDimanche Blancs des EnfantsChiliChineJour du Nouvel An chinoisVeille du Nouvel An chinoisChou/BoeufChrAscension du ChristFŞte de NoĞlVeille de NoĞlŽles de ChristmasJour du Chrysanth¨meJour de la CitoyennetİCongİ civiqueŽles Cocos (Keeling)ColombieJour de ColonFŞte du ColoradoFŞte de Christophe Colomb (‰tats-Unis)Jour de la Venue de l'‚geCommande exİcutİe (statut de fin d'exİcution=%d) du fichier ÂĞ %s Âğ. Ligne %ld: %sJour du CommonwealthComoresJour de CompactCompilİ avec %s%s pour %s%s%s%sJour de l'Accord ConfİdİralNaissance de ConfuciusAnniversaire de la ConstitutionŽles CookJour du Nouvel An CopteFŞte du CouronnementJour des CosmonautesCosta RicaCrİİCroatieJour du Soul¨vement CroisİCubaJour de la CultureJour du Match de la CoupeJour de la Coutume des ChefsCycleChypreRİpublique Tch¨queC´te d'IvoireJJour de DarwinFormat date: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Jour apr¨s le Festival de la Mi-automneJour apr¨s le Jour des TombeauxJour de l'AndalousieJour de CataloniaJournİe de la Nation tch¨queJour de la GaliceJour de la Bonne VolontİJour de Pri¨res et de RepentanceJour de la RİconciliationJour de la Rİvolte ‰tudianteJour de l'AllianceJour de la Libİration du LaosMort de H. ChristopheMort de J. DessalinesMort du Prİsident AbdallahMort du Prİsident CheikhMort du Prİsident SoilihMort de Qaid-i-AzamMort de T. LouvertureDİcDİcembreDİclaration de BabJour des DİfenseursJour des Dİfenseurs de la Terre M¨reRİpublique populaire dİmocratique de CorİeRİpublique Dİmocratique du Congo #DanemarkJour des MatresJour du P¨reJour de la DİcouverteDjiboutiDominiqueRİpublique dominicaineJour du Double-9Chute de DergueAnniversaire du Dr. Sun Yat-SenFestival des bateaux DragonCİlİbration de la Saison S¨cheAnniversaire de DuarteJour de la DynastieAnniversaire de E. HostosEGOLundi de P˘quesDimanche de P˘quesMardi de P˘quesJour de la Libİration ‰conomique‰quateur‰gypteEid-al-AdhaEid-al-FitrEid-i-Milad-un-NabiJour des Huit HeuresJour de la Libİration de EindhovenEl SalvadorJour des ‰lections (‰tats-Unis)‰lection de l'Assemblİe NationaleRapporter toutes anomalies   <%s>EmoNaissance de l'EmpereurFin de la sİquence de mise en İvidence (caract¨re marqueur)‰piphanie/FŞte des RoisGuinİe İquatorialeJour de l'İquinoxe‰rythrİeJour d'Errol BarrowEstonieListe permanente des jours de fŞte‰thiopieJour du Nouvel An ‰thiopienJour de l'‰vacuationVigiles de l'‰piphanieExpİdition des 33Jour de FAOGroupe FORMAT (exactement un membre doit Ştre dİfini) :FRRŽles Falkland (Malvinas)Jour de la FamilleFŞte des FermiersŽles FİroİFŞte du P¨re LevalFŞte des P¨resFŞte DieuFŞte de la FortuneFŞte du Sacrİ-CĊ“ur de Jİsus-ChristFŞte de la TheotokosFİvFİvrier‰tats fİdİrİs de MicronİsieFestival des LanternesFestival de Sadehcontenu du champ converti en mots en majusculescontenu du champ converti en minusculescontenu du champ converti en majusculesle contenu du champ est coupİ apr¨s la position dİfinie par la LARGEURle contenu du champ n'est pas coupİ apr¨s la position dİfinie par la LARGEURcontenu du champ placİ   la marge de gauche utilisant la LARGEURcontenu du champ placİ   la marge de droite utilisant la LARGEURcontenu du champ placİ au centre utilisant la LARGEURLe champ est de largeur N (%d..%d)Fiji #FinlandePremier Jour de RidvanJour des PİcheursListe de dates fixes :Jour du Drapeau (‰tats-Unis)Journİe ce la Culture (Flandre)Ex-Rİpublique yougoslave de MacİdoineFŞte de la Fondation du NPLAFondation du Parti du PeupleFondation du Parti CommunisteVeFranceJournİe de la Culture (France)Guinİe Fran§aisePolynİsie Fran§aiseJour de la Rİvolution Fran§aiseVenVendrediVendrediJour de l'AmitiİPleine lunePage d'accueil de GNU gcal : <%s>Gabon #GambieFŞte de GarifunaAnniversaire du Gİnİral San MartinGuide utilisateur gİnİral de logiciel GNU : <%s>GeorgieJour de la rİunification de l'AllemagneAllemagneAllemagne/Bade-WĵrtembergAllemagne/Bavi¨reAllemagne/BerlinAllemagne/BrandebourgAllemagne/BrŞmeAllemagne/HambourgAllemagne/HesseAllemagne/Basse SaxeAllemagne/Mecklenbour Pomİranie AntİrieureAllemagne/Rhİnanie du Nord WestphalieAllemagne/Rhİnanie-PalatinatAllemagne/SarreAllemagne/SaxeAllemagne/Saxe-AnhaltAllemagne/Schleswig-HolsteinAllemagne/ThuringeGhadirGhanaGibraltarVendredi SaintSamedi Saint/Veille de P˘quesJour de l'‰vangileFŞte des Grand ParentsGrande-BretagneGrande-Bretagne/Angleterre et pays de GallesGrande-Bretagne/Ireland du NordGrande-Bretagne/‰cosseGr¨ceJour de la VerdureGroenlandGrenadeFŞte de la GrotteJour de la MarmotteFŞte de GuacanasteJour de la Vierge de la GuadeloupeGuadeloupeGuamGuatemalaGuinİeGuinİe-Bissau #Jour de Gustavus AdolphusGuyane #Hai/CochonHaitiHalloween (Canada-‰tats-Unis)Hhanouka/FŞte des Lumi¨resFŞte de la Santİ et du SportŽles Heard et Mc DonaldHİbFŞte de l'HİritageFŞte des HİrosMise en İvidence des groupes (tous les membres doivent Ştre dİfinis) :Anniversaire de Ho Chi MinhJour de HobartFŞte des Saints InnocentsSainte TrinitİMercredi SaintHondurasHong KongJour des Droits de la PersonneHongrieFŞte de HuraveeJour de la Supplication de l'OuraganJour de Remerciement de l'OuraganIcelandSi vous utilisez ce logiciel, vous acceptez sans restriction Jour de ImamatImbolgFŞte de l'IndİpendanceJour du Mouvement de l'IndİpendanceProclamation de l'IndİpendanceJour de l'Indİpendance de Cartag¨neJour de l'Indİpendance de CuencaJour de l'Indİpendance de GuayaquilJour de l'Indİpendance de QuitoIndes #Jour de l'Arrivİe des IndiensJour du Nouvel An IndienIndonİsie #IntInterneJour de l'Autonomie InterneArgument invalide dans la ligne de commande fournie -- %sRİfİrence arri¨re invalideNom de classe de caract¨re invalideCollation invalideContenu de \{\} invalideExpression rİguli¨re prİcİdente invalideFin d'intervalle invalideExpression rİguli¨re invalideIraqIrelandIslJour du Nouvel An IslamiqueRİpublique Islamique d'IranIsraĞlItalieAnniversaire de J. BarbosaJour de J. ChilembweAnniversaire de J. DiegoAnniversaire de J. RobertJamaŻqueJanJanvierJapJaponJour du Nouvel An japonaisVeille du Jour du Nouvel An JaponaisAnniversaire de Jefferson DavisCirconcision de JİsusJordanieJuiJuilletJuiJuinCongİ de juinFŞte de KamarampakaFŞte de KartiniKazakhstanKenya #FŞte de KievAnniversaire de Kim Il-SungAnniversaire de Kim Jong-IlFŞte de King KamehamehaFŞte du Mİmorial de King Rama I/ChakriFŞte du Mİmorial de King Rama VKiribati #KnabenschiessenFŞte de Saints Cyrille et MİthodeKuwaitKwanzaaKyrgyzstanAnniversaire de L. RiveraFŞte du TravailFŞte du Travail et de l'Action de Gr˘ceLag ba OmerNaissance de Lao TzeRİpublique dİmocratique populaire du LaosCongİ National de LappLettonieFŞte de la Coupe LauncestonJour de l'annİe bissextile fixİ   ÂĞ %02d-%s Âğ dans le fichier ÂĞ %s Âğ.LibanLesothoJour de la LibİrationLiberiaFŞte de la LibİrationJamahiriya arabe libyenne populaire et socialiste (Libye)LiechtensteinLigne %ld ignorİe: %sLigne %ld: %sLituaniePerte de la Nation MusulmaneLughnasa‰clipse lunaireLuxembourgKermesse de la Ville de LuxembourgFŞte de Lyndon B. JohnsonMraisons COMMER‡IALES ou pour R‰PONDRE € UN BESOIN PARTICULIER.MacaoMadagascar #FŞte de MadarakaAnniversaire de Mahatma GandhiCourrier de \ÂĞ %s Âğ (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaisie #MaldivesMaliMalteFŞte des Žles Falkland (Malvinas)FŞte de ManilaMao/LapinFŞte de la Ville de MaputoMarMarsFŞte de Marien NgouabiFŞte de la MarineŽles MarshallJour de Martin L. King (‰tats-Unis)MartinimasMartiniqueJour du martyr de BabFŞte des MartyrsImmaculİe Conception de MarieAnnonciation de la ViergeAssomption de la ViergePrİsentationExpectation de MarieImmaculİe ConceptionMaternitİ de MarieJour du Saint Nom de MarieNativitİ de MarieSacrifice de MarieVisitation de la ViergeFŞte du MarylandJeudi SaintMauritanieMauriceMaiMai1er MaiMayotteFŞte de la Coupe de MelbourneMİmoire İpuisİFŞte des MarchandsMexiqueMi-CarŞmeFestival de la mi-automneFestival de la mi-printempsFestival de la mi-annİeFŞte des MissionnairesLuLunMonacoLundiLundiLundi...vendrediLundi...jeudiMongolie #Groupe mois (exactement un champs doit Ştre dİfini) :MontserratFŞte de MorazanMarocFŞte de MosheshoeFŞte des Belles M¨resFŞte des M¨resJour de la Maternitİ et de la BeautİMozambiqueBanquet de la musique d'eauMyanmar (Birmanie) #NamibieJour des NomsJour National du Petit PainFŞte de la Fondation NationaleFŞte Nationale des HİrosFŞte NationaleJour de Deuil NationalFŞte Nationale de la RİdemptionFŞte Nationale de la RİsistanceJour du Redressement NationalFŞte Nationale de l'UnitİNauruFŞte de NdadayeNİpal #Pays-BasAntilles nİerlandaises/BonaireAntilles nİerlandaises/Cura§aoAntilles nİerlandaises/Saba et StatiaAntilles nİerlandaises/St MaartenFŞte de la NeutralitİFŞte du NİvadaNouvelle CalİdonieNouvelle luneAnniversaire du Nouveau RİgimeJour de l'AnNouvelle ZİlandeNicaraguaNigerNigeriaNeuvi¨me Jour de RidvanNiuePas de correspondancePas d'expression rİguli¨re antİcİdenteFŞte de NobelFŞte de NoiŽles Mariannes du Nord (Saipan)Jour du Nouvel An Perse/NoruzNorv¨geNovNovembreLa valeur numİrique est prİcİdİe de zİrosValeur numİrique est fournie avec un nombre ordinal en suffixeLa valeur numİrique est prİcİdİe d'un signeFŞte des Infirmi¨resNuzul-al-Qur'anFŞte de OAUOPTIONOctOctobreFŞte d'OctobreJour de l'Industrie Pİtroli¨reAncien Nouvel An ArmİnienAncien Nouvel An ‰gyptienOmanEn principe, je ne suis pas responsable pour tous dommages ou pertesJour du Nouvel An OrthodoxeFŞte de l'Apparition de Notre-DameNotre-Dame de AlagraciaNotre-Dame de CamarinNotre-Dame de Las MercedesNotre-Dame de Los AngelesNotre-Dame des 7 DouleursNotre-Dame des VictoiresOxNOxOPakistanBelauDimanche des rameauxPanamaFŞte de la Ville de PanamaJour panamİricainPapouasie-Nouvelle-GuinİeParaguayFŞte des ParentsJour de Paix de l'Entente de ParisPartielDimanche de la PassionFŞte des PatriotesFestival de la PaixFestival de la PŞchePİnombreJour de la Force du PeupleJour du Soul¨vement du PeuplePerCaract¨re de pourcentage (ÂĞ %c Âğ)PİrouPessah/P˘que juiveAmitiİ Philippine-‰tats Unis d'AmİriquePhilippinesPhyFŞte de PichinchaFŞte du Pique-NiqueFŞte des PionniersŽles PitcairnPolognePortugalFŞte de PoyaJour de la Pri¨rePrİcharger les options et les commandes du ÂĞ FICHIER ÂğFin inattendue de l'expression rİguli¨reNaissance du Prİsident Lincoln (‰tats-Unis)Jour de l'Inauguration PrİsidentielleJour du Prİsident (‰tats-Unis)Avis du PrİsidentFŞte du Prince KalanianaoleAnniversaire du Prince de GaleFŞte de la PrincesseFŞte de la ProclamationPorto RicoPourim/Anniversaire de Qaid-i-AzamQatarJour de QudsDimanche des QuinquagİnairesRamadanFŞte de Ratu SukumaJour de la RİcrİationFŞte du RİfİrendumJour de la Rİforme (Slovİnie)FŞte de RegattaChangement de RİgenceExpression rİguli¨re trop grandeJour du SouvenirFŞte de la RİpubliqueRİpublique du Congo #Rİpublique de CorİeRİpublique de MoldavieJour de Respect des AnİsJour de la RestorationFŞte du RetourFŞte de la RİunificationJour de la RİvolutionAnniversaire de Rio de JaneiroFŞte de RizalDimanche de RogationRoumanieRosh Hashana/Jour du Nouvel AnFİdİration de RussieFŞte de RwagasoreRwandaRİunionAnniversaire de S. DoeJour de l'‰tablissement de SARSIGNE (peut Ştre dİfini) :Groupe de STYLE (exactement un membre peut Ştre dİfini) :SUFFIXE (peut Ştre dİfini) :SaFŞte de SabaSaint-Pierre et MiquelonSamhain/Jour du Nouvel An CelteSamoaBataille de San JacintoFŞte de Saint JosephSan MarinoAnniversaire de Sao PauloSao Tomİ et PrincipeFestival des Neiges de SapporoSamSamediSamediArabie SaouditeCongİ scolaireChangement de Saison/Festival des f¨vesSechsel¤utenSİnİgalSepFŞte de la SİparationSeptembreDimanche des SeptuagİnairesSerbie et MontİnİgroFŞte de Seretse KhamaJour des PionniersJour des Sept DormeursFŞte de SewardDimanche des SexagİnairesSeychellesShab-e QadrShab-e-Bara'tShab-e-Mi'rajFŞte de ShaheedShavouot/Don de la TorahFestival du MoutonFŞte de l'Ascension de lSheikh ZayedShen/SingeMardi GrasShushan PurimSi/SerpentSierra LeoneSimchat TorahFŞte de Simon BolivarFŞte de la Libİration du SinaŻSingapore #Jour de la Libİration des EsclavesSlovaquieSlovİnieJour de l'Odeur de la Brise‰clipse solaireFŞte de la Solidaritݎles SalomonJour du solsticeSomalieJour de SomersJour du Balayage de la SuieAfrique du SudGeorgie du Sud et Žles Sandwich du SudCaract¨re d'espacement (ÂĞ %c Âğ)EspagneFestival du PrintempsSri Lanka #FŞte de Saint AgatheFŞte de Saint AndrİFŞte de Saint BartholomewFŞte de Saint BerchtoldFŞte de Saint CanuteFŞte de Sainte CİcileFŞte de Saint CharlesFŞte de Saint DavidFŞte de Saint DİmİtriusFŞte de Saint DİvoteFŞte de Saint ‰douardFŞte de la Saint ‰lieFŞte de Saint GeorgeSte Hİl¨neFŞte de Saint JacquesFŞte de Saint Jean-BaptisteFŞte de la Saint Jean/Jour du milieu de l'‰tİVigiles de la Saint Jean/milieu de l'İtİFŞte de Saint JosephSt Kitts et NevisFŞte de Saint LaurentSte LucieFŞte de Sainte LucieFŞte de la Sainte MargueriteFŞte de Saint MaronFŞte de Saint Michel ArchangeFŞte de Saint NicolasVigiles de la FŞte de Saint NicholasFŞte de Saint OlavVigiles de la Saint OlavFŞte de Saint Patrick‰pave de Saint-PaulSaint Pierre et Saint PaulSainte Rose de LimaFŞte de Saint ‰tienneFŞte de Saint UrsuleFŞte de Saint ValentinSt Vincent et les GrenadinesFŞte de la Saint Vincent de PaulStandardFestival des ‰toilesDİbut d'un mois communDİbut de la sİquence de mise en İvidence (caract¨re marqueur)Dİbut du mois bissextileJour de Statia-AmİriqueFŞtes des ‰tudiantsDiSucc¨sSoudanFŞte de la Victoire de SuezSouccot/FŞtes des cabanesAnniversaire de Sultan QaboosDimDimancheDimanche des MortsDimancheSuriname #Žles Svalbard et Jan MayenSvetitskhovlobaJournİe des HirondellesSwazilandSu¨deFŞte de la Su¨deJour de la SympathieSuisseSuisse/AargauSuisse/Appenzell AusserrhodenSuisse/Appenzell InnerrhodenSuisse/Basel-LandSuisse/Basel-StadtSuisse/BerneSuisse/FribourgSuisse/Gen¨veSuisse/GlarusSuisse/GraubĵndenSuisse/JuraSuisse/LuzernSuisse/Neuch˘telSuisse/NidwaldenSuisse/ObwaldenSuisse/SchaffhausenSuisse/SchwyzSuisse/SolothurnSuisse/St GallenSuisse/ThurgauSuisse/TicinoSuisse/UriSuisse/ValaisSuisse/VaudSuisse/ZugSuisse/ZĵrichSaint Sylvestre/Veille du Nouvel AnRİpublique arabe syrienne (Syrie)TaiwanTajikistanTanzanieFŞte des Professeurs (TaŻwan)Jour de Tennant-CreekFŞte du TerritoireJeJour du Nouvel An ThaiThaŻlande #ThanksgivingAnniversaire du Couronnement du PrinceAnniversaire du Couronnement de la PrincesseCouronnement de la PrincesseNaissance du RoiFŞte du RoiNaissance de la ReineFŞte de la ReineIl n'y a aucune garantie, ni mŞme la garantie implicite liİe   desCe logiciel est gratuit; voir les sources pour les conditions de copie.Ce logiciel est gratuit; vous pouvez le redistribuer ou le modifierCe logiciel n'a pas la prİtention d'Ştre complet, correct ou utile.JeuJeudiJeudiJour de TiradentesTisha be Av/Jour de DeuilTogo #TokelauJour des TombeauxTongaFŞte de Topou ITotalJour du Conseil MunicipalJournİe traditionnelleBarre oblique inverseJour du TransfertTransfiguration de N.S.J.CTrinidad et Tobago #FŞte de TrumanTentative d'ouverture (niveau : %02d) du fichier include ÂĞ %s Âğâ€Ĥ %s%s%sTentative d'ouverture %s du fichier ressource ÂĞ %s Âğâ€Ĥ %s%s%sTentative d'İcriture %s ÂĞ %s Âğâ€Ĥ %s%s%sMaTou bi Shvat/Nouvel An des ArbresMarMardiMardiTunisieTurquieTurkmİnistanŽles Turks et CaŻcosTuvaluDouzi¨me Jour de RidvanJour de TynwaldŽles Vierges amİricaines‰tats-UnisINCONNUOugandaUkraineCaract¨re de soulignement (ÂĞ %c Âğ)FŞte de l'UnionDissolution de l'Union d'avec la Su¨de‰mirats Arabes UnisJournİe des Nations Unies‰tats-Unis‰tats-Unis/Alabama‰tats-Unis/Alaska‰tats-Unis/Arizona‰tats-Unis/Arkansas‰tats-Unis/Californie‰tats-Unis/Colorado‰tats-Unis/Connecticut‰tats-Unis/Delaware‰tats-Unis/District de Colombia‰tats-Unis/Floride‰tats-Unis/Georgie‰tats-Unis/Hawaii‰tats-Unis/Idaho‰tats-Unis/Illinois‰tats-Unis/Indiana‰tats-Unis/Iowa‰tats-Unis/Kansas‰tats-Unis/Kentucky‰tats-Unis/Lousiane‰tats-Unis/Maine‰tats-Unis/maryland‰tats-Unis/Massachusetts‰tats-Unis/Michigan‰tats-Unis/Minnesota‰tats-Unis/Missisippi‰tats-Unis/Missouri‰tats-Unis/Montana‰tats-Unis/Nebraska‰tats-Unis/Nevada‰tats-Unis/New Hampshire‰tats-Unis/New Jersey‰tats-Unis/Nouveau Mexique‰tats-Unis/New York‰tats-Unis/Caroline du Nord‰tats-Unis/Dakota du Nord‰tats-Unis/Ohio‰tats-Unis/Oklahoma‰tats-Unis/Oregon‰tats-Unis/Pennsylvanie‰tats-Unis/Rhode Island‰tats-Unis/Caroline du Sud‰tats-Unis/Dakota du Sud‰tats-Unis/Tennessee‰tats-Unis/Texas‰tats-Unis/Utah‰tats-Unis/Vermont‰tats-Unis/Virginie‰tats-Unis/Washington‰tats-Unis/Virgine de l'Ouest‰tats-Unis/Wisconsin‰tats-Unis/WyomingJour de l'Unitİ des ManifacturesErreur syst¨me inconnue( ou \( non appairİe) ou \) non appairİes\{ non appairİUruguayUsage: %s [--%s | --%s] | [--%s=[+|-]NOMBRE] [ARGUMENT...] Usage: %s [--%s | --%s] | [FICHIER-RESSOURCE | -] Usage: %s [--%s | --%s] | [FICHIER-TEXTE | -] [DATES] Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Usage : %s [[OPTION...] [%cDATE] [%cFICHIER...]] [COMMANDE]Usage : %s [[OPTION...] [%cFICHIER...]] [COMMANDE]Utiliser ÂĞ %s %s|[%s?] ÂğUtiliser la ÂĞ DATE Âğ au lieu de la date couranteUzbekistanVeille de ValborgVanuatuVİnİzuelaCarnaval de VeniseJour du souvenirFŞte de Victor-SchoelcherFŞte de la Reine (Ca)/FŞte du Dollard (Fr-Ca)Jour de la VictoireVidovdanViet NamSAnniversaire de W. TubmanLARGEUR (doit Ştre dİfinie) :Žles Wallis et FutunaDemi lune dİcroissanteWaqf-al-ArafatDemi lune croissanteMeMerMercrediMercrediSemaineSemaine %sWei/MoutonFŞte de la Virginie de l'OuestSahara de l'OuestLundi de Pentec´teVigiles de la Pentec´teDimanche de la Pentec´teFŞte des FemmesJour de la Confession des FemmesJournİe mondiale des animauxWu/ChevalXu/ChienAFŞte de YapYİmenYin/TigreYom Ha Azmaut/Jour de l'IndİpendanceYom Hashoah/Jour du Mİmorial de l'HolocausteYom Hazikaron/Jour du Mİmorial des SoldatsYom Kipour/Jour du Grand PardonYom Yerushalayim/FŞte de JİrusalemVous devriez avoir re§u une copie ÂĞ GNU General Public License ÂğYou/CoqFŞte des JeunesZ‰RO (peut Ştre dİfini) :ZambieZi/RatZimbabweZod[ALIGNEMENT [SIGNE] [Z‰RO] LARGEUR [STYLE] [SUFFIXE] FORMAT]_open_osfhandle İchouİeÂĞ %s Âğ ligne %ld: (ÂĞ %s Âğ) ÂĞ %s%d Âğ a İchouİÂĞ %s Âğ ligne %ld: (ÂĞ %s Âğ) taille de table invalide ÂĞ sizeof %s>%d ÂğÂĞ %s Âğ ligne %ld: (ÂĞ %s Âğ) erreur imprİvue (%d)ÂĞ %s Âğ ligne %ld: mİmoire virtuelle İpuisİe (%s=%d)ÂĞ Liste perpİtuelle des fŞtes ÂğÂĞ Interne Âğfichier ÂĞ termcap Âğ non repİrİcette entente qui vous lie L‰GALEMENT !!distribuİe avec ce logiciel; sinon İcrivez moi   l'adresse suivante:amvotre option) toutes autres version ultİrieures.Impossible de crİer le tubeImpossible de restaurer le descripteur de fichier %d : dup2 İchouİeligne de commandecontient une instruction de format, dont le patron est comme suit :°'"dİfautvariable d'environnementla variable d'environnement ÂĞ %s Âğ n'a pas İtİ repİrİela variable d'environnement ÂĞ %s Âğ n'est pas initialisİeİchecNe peut İcrire dans le fichier ÂĞ %s Âğ. Le disque est plein!fichier ÂĞ %s Âğ non repİrİpour plus informations.h'"jours de fŞteCaract¨re illİgal dans le fichier rİponse ÂĞ %s Âğ Ligne %ld: %sdİfinition illİgale de variable ÂĞ %c Âğopİration illİgale sur la variable ÂĞ %c ÂğDİfinition de variable illİgale dans le fichier ÂĞ %s Âğopİration illİgale sur une variable dans le fichier ÂĞ %s ÂğinterneNi¨me jour de la semaine invalide (%d) dans le fichier ÂĞ %s Âğ. Ligne %ld: %sChamp date invalide dans le fichier ÂĞ %s Âğ. Ligne %ld: %sjour invalideChamp du jour invalide (%02d) dans le fichier ÂĞ %s Âğ. Ligne %ld: %smois invalideChamp du mois invalide (%02d) dans le fichier ÂĞ %s Âğ. Ligne %ld: %sDİfinition rİcursive ou cyclique %s dans le fichier ÂĞ %s Âğ. Ligne %ld: %spatron de recherche ÂĞ %s Âğ invalidevaleur invalide assignİe   la variable ÂĞ %c Âğ dans le fichier ÂĞ %s ÂğL'annİe invalide pour calculer la date du jour de P˘ques L'annİe doit se situer dans les bornes (%d...%d)selon les termes de la ÂĞ GNU General Public License Âğ telle que publiİe parjours de fŞte lİgauxDİfinition(s) mal formİes %s dans le fichier ÂĞ %s Âğ. Ligne %ld: %smİmoire İpuisİeCaract¨re d'espacement manquant apr¨s le champ date dans le fichier ÂĞ %s Âğ. Ligne %ld: %si¨me(implicites ou explicites) rİsultant de son utilisation.pmi¨meErreur de lecture de ÂĞ %s Âğfichier rİponseauto-dİfiniİchec d'expİdition de courrier vers ÂĞ %s Âğscriptvaleur de dİcalage ÂĞ %s Âğ invalideersucc¨si¨mepar la ÂĞ Free Software Foundation Âğ; soit pour la version 3, ou (seloninconnu compilateur inconnucompilateur inconnu (SDK?)type de terminal inconnu dİfini dans ÂĞ %s Âğversion inconnueVariable ÂĞ %c Âğ est indİfinie dans le fichier ÂĞ %s ÂğVersion %dVersion %d.%dgcal-4.1/po/Makevars0000664000000000000000000000372613041163550011275 00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ \ \ --flag=_:1:pass-c-format\ --flag=N_:1:pass-c-format\ --flag=error:3:c-format --flag=error_at_line:5:c-format\ --from-code=iso-8859-1\ $${end_of_xgettext_options+} # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Free Software Foundation, Inc. # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = bug-gcal@gnu.org # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = gcal-4.1/po/nl.po0000664000000000000000000033736013041164031010551 00000000000000# Dutch translations for GNU gcal. # Copyright (C) 2000 Thomas Esken (msgids) # This file is distributed under the same license as the gcal package. # # Erick Branderhorst , 1996. # Mark Haanen , 2008. # Benno Schulenberg , 2015. msgid "" msgstr "" "Project-Id-Version: gcal-3.6.3.34\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 2015-01-01 22:53+0100\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "Onbekende systeemfout" #: lib/regcomp.c:135 msgid "Success" msgstr "Gelukt" #: lib/regcomp.c:138 msgid "No match" msgstr "Geen overeenkomsten" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "Ongeldige reguliere expressie" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "Ongeldig samengesteld teken" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "Ongeldige tekenklassenaam" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "Backslash aan het eind" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "Ongeldige terugverwijzing" #: lib/regcomp.c:156 #, fuzzy msgid "Unmatched [, [^, [:, [., or [=" msgstr "Ongepaarde [ of [^" #: lib/regcomp.c:159 msgid "Unmatched ( or \\(" msgstr "Ongepaarde ( of \\(" #: lib/regcomp.c:162 msgid "Unmatched \\{" msgstr "Ongepaarde \\{" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "Ongeldige inhoud van \\{\\}" #: lib/regcomp.c:168 msgid "Invalid range end" msgstr "Ongeldig bereikeinde" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "Onvoldoende geheugen beschikbaar" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "Ongeldige voorafgaande reguliere expressie" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "Voortijdig einde van reguliere expressie" #: lib/regcomp.c:180 msgid "Regular expression too big" msgstr "Reguliere expressie is te groot" #: lib/regcomp.c:183 msgid "Unmatched ) or \\)" msgstr "Ongepaarde ) of \\)" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "Geen eerdere reguliere expressie" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "kan geen pijp aanmaken" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "subproces %s is mislukt" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "_open_osfhandle() is mislukt" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "kan bestandsdescriptor %d niet herstellen: dup2() is mislukt" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, c-format msgid "%s subprocess" msgstr "subproces %s" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "subproces %s ontving het fatale signaal %d" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "onvoldoende geheugen beschikbaar" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Probeer %s '%s' te schrijven... %s%s%s" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "mislukt" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "gelukt" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "Probeer het%sbronnenbestand '%s' te openen... %s%s%s" #: src/file-io.c:1686 msgid " `HERE' " msgstr " 'HIER' " #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "Probeer (niveau %02d) invoegbestand '%s' te openen... %s%s%s" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "ARG" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "Duitsland" #: src/gcal.c:1075 msgid "U.S.A." msgstr "V.S." #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "Groot-BrittanniĞ" #: src/gcal.c:1852 msgid "default" msgstr "standaard" #: src/gcal.c:1951 msgid ":" msgstr ":" #: src/gcal.c:1961 msgid "Y" msgstr "J" #: src/gcal.c:1966 msgid "M" msgstr "M" #: src/gcal.c:1971 msgid "W" msgstr "W" #: src/gcal.c:1976 msgid "D" msgstr "D" #: src/gcal.c:2067 msgid "Fixed date list:" msgstr "" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "omgevingsvariabele" #: src/gcal.c:2268 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%s: commando in omgevingsvariabele '%s' gevonden -- %s\n" "%s\n" "%s\n" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "Intern" #: src/gcal.c:2864 msgid "response file" msgstr "antwoordbestand" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "Aangemaakt" #: src/gcal.c:2872 msgid "shell script" msgstr "shell-script" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "Post van \\'%s' (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" "%s: waarschuwing, e-mail met lege berichttekst niet verzonden naar <%s>.\n" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "commandoregel" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: optie '%s' is niet eenduidig" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: onbekende optie: '%s'" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: ongeldige optie -- %s" #: src/gcal.c:5910 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s: optie '--%s' staat geen argument toe" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s: optie '%s' staat geen argument toe" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: optie '%s' vereist een argument" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: optie vereist een argument -- %s" #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: optie met ongeldig argument -- %s" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: optie met dubbelzinnig argument -- %s" #: src/gcal.c:5995 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" "%s: ongeldige datum opgegeven -- %c%s\n" "%s\n" "%s\n" #: src/hd-data.c:64 msgid "Australia" msgstr "AustraliĞ" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "BelgiĞ" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "BraziliĞ" #: src/hd-data.c:67 msgid "Canada" msgstr "Canada" #: src/hd-data.c:68 msgid "Switzerland" msgstr "Zwitserland" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "China" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "Spanje" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "Frankrijk" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "IsraĞl" #: src/hd-data.c:75 src/hd-data.c:250 msgid "Italy" msgstr "ItaliĞ" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "Japan" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "Zuid-Korea" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "Mexico" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "Nederland" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "Nieuw-Zeeland" #: src/hd-data.c:81 src/hd-data.c:320 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "Rusland" #: src/hd-data.c:83 msgid "United States" msgstr "Verenigde Staten" #: src/hd-data.c:85 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "Verenigde Arabische Emiraten" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "Afghanistan" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "Antigua-en-Barbuda" #: src/hd-data.c:89 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:90 msgid "Albania" msgstr "AlbaniĞ" #: src/hd-data.c:91 msgid "Armenia" msgstr "ArmeniĞ" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "Nederlandse Antillen/Bonaire" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "Nederlandse Antillen/Cura§ao" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "Nederlandse Antillen/Sint-Maarten" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "Nederlandse Antillen/Saba en Sint-Eustatius" #: src/hd-data.c:96 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:97 msgid "Argentina" msgstr "ArgentiniĞ" #: src/hd-data.c:98 msgid "American Samoa" msgstr "Amerikaans Samoa" #: src/hd-data.c:99 msgid "Austria" msgstr "Oostenrijk" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "AustraliĞ/Canberra" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "AustraliĞ/Noordelijk Territorium" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "AustraliĞ/Queensland" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "AustraliĞ/Zuid-AustraliĞ" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "AustraliĞ/Nieuw-Zuid-Wales" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "AustraliĞ/TasmaniĞ" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "AustraliĞ/Victoria" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "AustraliĞ/West-AustraliĞ" #: src/hd-data.c:108 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "Azerbeidzjan" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "BosniĞ-Herzegovina" #: src/hd-data.c:111 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "Bangladesh #" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:115 msgid "Bulgaria" msgstr "Bulgarije" #: src/hd-data.c:116 msgid "Bahrain" msgstr "Bahrein" #: src/hd-data.c:117 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:118 msgid "Benin #" msgstr "Benin #" #: src/hd-data.c:119 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:120 msgid "Brunei" msgstr "Brunei" #: src/hd-data.c:121 msgid "Bolivia" msgstr "Bolivia" #: src/hd-data.c:123 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "Bouveteiland" #: src/hd-data.c:126 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:127 msgid "Belarus" msgstr "Wit-Rusland" #: src/hd-data.c:128 msgid "Belize" msgstr "Belize" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "Canada/Alberta" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "Canada/Brits-Columbia" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "Canada/Manitoba" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "Canada/New Brunswick" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "Canada/Newfoundland en Labrador" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "Canada/Nova Scotia" #: src/hd-data.c:135 msgid "Canada/Northwest Territories" msgstr "Canada/Northwest Territories" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "Canada/Ontario" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "Canada/Prins Edwardeiland" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "Canada/Quebec" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "Canada/Saskatchewan" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "Canada/Yukon" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "Cocoseilanden" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "Congo-Kinshasa #" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "Centraal-Afrikaanse Republiek #" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "Congo-Brazzaville #" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "Zwitserland/Aargau" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Zwitserland/Appenzell Innerrhoden" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Zwitserland/Appenzell Ausserrhoden" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "Zwitserland/Bern" #: src/hd-data.c:149 msgid "Switzerland/Basel-Landschaft" msgstr "Zwitserland/Bazel-Land" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "Zwitserland/Bazel-Stad" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "Zwitserland/Fribourg" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "Zwitserland/Gen¨ve" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "Zwitserland/Glarus" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "Zwitserland/Graubĵnden" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "Zwitserland/Jura" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "Zwitserland/Luzern" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "Zwitserland/Neuch˘tel" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "Zwitserland/Nidwalden" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "Zwitserland/Obwalden" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "Zwitserland/Sankt Gallen" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "Zwitserland/Schaffhausen" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "Zwitserland/Solothurn" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "Zwitserland/Schwyz" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "Zwitserland/Thurgau" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "Zwitserland/Ticino" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "Zwitserland/Uri" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "Zwitserland/Vaud" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "Zwitserland/Wallis" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "Zwitserland/Zug" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "Zwitserland/Zĵrich" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "Ivoorkust" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "Cookeilanden" #: src/hd-data.c:173 msgid "Chile" msgstr "Chili" #: src/hd-data.c:174 msgid "Cameroon" msgstr "Kameroen" #: src/hd-data.c:176 msgid "Colombia" msgstr "Colombia" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:178 msgid "Cuba" msgstr "Cuba" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "KaapverdiĞ" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "Christmaseiland" #: src/hd-data.c:181 msgid "Cyprus" msgstr "Cyprus" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "TsjechiĞ" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "Duitsland/Brandenburg" #: src/hd-data.c:184 msgid "Germany/Berlin" msgstr "Duitsland/Berlijn" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "Duitsland/Baden-Wĵrttemberg" #: src/hd-data.c:186 msgid "Germany/Bavaria" msgstr "Duitsland/Beieren" #: src/hd-data.c:187 msgid "Germany/Bremen" msgstr "Duitsland/Bremen" #: src/hd-data.c:188 msgid "Germany/Hesse" msgstr "Duitsland/Hessen" #: src/hd-data.c:189 msgid "Germany/Hamburg" msgstr "Duitsland/Hamburg" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Duitsland/Mecklenburg-Voor-Pommeren" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "Duitsland/Nedersaksen" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "Duitsland/Noordrijn-Westfalen" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "Duitsland/Rijnland-Palts" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "Duitsland/Sleeswijk-Holstein" #: src/hd-data.c:195 msgid "Germany/Saarland" msgstr "Duitsland/Saarland" #: src/hd-data.c:196 msgid "Germany/Saxony" msgstr "Duitsland/Saksen" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "Duitsland/Saksen-Anhalt" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "Duitsland/Thĵringen" #: src/hd-data.c:199 msgid "Djibouti" msgstr "Djibouti" #: src/hd-data.c:200 msgid "Denmark" msgstr "Denemarken" #: src/hd-data.c:201 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "Dominicaanse republiek" #: src/hd-data.c:203 msgid "Algeria" msgstr "Algerije" #: src/hd-data.c:204 msgid "Ecuador" msgstr "Ecuador" #: src/hd-data.c:205 msgid "Estonia" msgstr "Estland" #: src/hd-data.c:206 msgid "Egypt" msgstr "Egypte" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "Westelijke Sahara" #: src/hd-data.c:208 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "EthiopiĞ" #: src/hd-data.c:211 msgid "Finland" msgstr "Finland" #: src/hd-data.c:212 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "Falklandeilanden" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "Micronesia" #: src/hd-data.c:215 msgid "Faroes" msgstr "Faerĥer" #: src/hd-data.c:217 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "Verenigd Koninkrijk/Engeland en Wales" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "Verenigd Koninkrijk/Noord-Ierland" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "Verenigd Koninkrijk/Schotland" #: src/hd-data.c:221 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:222 msgid "Georgia" msgstr "GeorgiĞ" #: src/hd-data.c:223 msgid "French Guiana" msgstr "Frans Guyana" #: src/hd-data.c:224 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:226 msgid "Greenland" msgstr "Groenland" #: src/hd-data.c:227 msgid "Gambia" msgstr "Gambia" #: src/hd-data.c:228 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "Guadeloupe" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "Equatoriaal-Guinea" #: src/hd-data.c:231 msgid "Greece" msgstr "Griekenland" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "Zuid-GeorgiĞ en de Zuidelijke Sandwicheilanden" #: src/hd-data.c:233 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:234 msgid "Guam" msgstr "Guam" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "Guinee-Bissau #" #: src/hd-data.c:236 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "Hongkong" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "Heard en McDonaldeilanden" #: src/hd-data.c:239 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:240 msgid "Croatia" msgstr "KroatiĞ" #: src/hd-data.c:241 msgid "Haiti" msgstr "HaŻti" #: src/hd-data.c:242 msgid "Hungary" msgstr "Hongarije" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "IndonesiĞ #" #: src/hd-data.c:244 msgid "Ireland" msgstr "Ierland" #: src/hd-data.c:246 msgid "India #" msgstr "India #" #: src/hd-data.c:247 msgid "Iraq" msgstr "Irak" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "Iran" #: src/hd-data.c:249 msgid "Iceland" msgstr "IJsland" #: src/hd-data.c:251 msgid "Jamaica" msgstr "Jamaica" #: src/hd-data.c:252 msgid "Jordan" msgstr "JordaniĞ" #: src/hd-data.c:254 msgid "Kenya #" msgstr "Kenia #" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "KirgiziĞ" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "Cambodja #" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:258 msgid "Comoros" msgstr "Comoren" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "Saint Kitts en Nevis" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "Noord-Korea" #: src/hd-data.c:262 msgid "Kuwait" msgstr "Koeweit" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "Kaaimaneilanden" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "Kazachstan" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "Laos #" #: src/hd-data.c:266 msgid "Lebanon" msgstr "Libanon" #: src/hd-data.c:267 msgid "St Lucia" msgstr "Saint Lucia" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:270 msgid "Liberia" msgstr "Liberia" #: src/hd-data.c:271 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:272 msgid "Lithuania" msgstr "Litouwen" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "Luxemburg" #: src/hd-data.c:274 msgid "Latvia" msgstr "Letland" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "LibiĞ" #: src/hd-data.c:276 msgid "Morocco" msgstr "Marokko" #: src/hd-data.c:277 msgid "Monaco" msgstr "Monaco" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "MoldaviĞ" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "Madagascar #" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "Marshalleilanden" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "MacedoniĞ" #: src/hd-data.c:282 msgid "Mali" msgstr "Mali" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "MongoliĞ #" #: src/hd-data.c:284 msgid "Macau" msgstr "Macau" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "Noordelijke Marianen" #: src/hd-data.c:286 msgid "Martinique" msgstr "Martinique" #: src/hd-data.c:287 msgid "Mauritania" msgstr "MauritaniĞ" #: src/hd-data.c:288 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:289 msgid "Malta" msgstr "Malta" #: src/hd-data.c:290 msgid "Mauritius" msgstr "Mauritius" #: src/hd-data.c:291 msgid "Maldives" msgstr "Maldiven" #: src/hd-data.c:292 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "MaleisiĞ #" #: src/hd-data.c:295 msgid "Mozambique" msgstr "Mozambique" #: src/hd-data.c:296 msgid "Namibia" msgstr "NamibiĞ" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "Nieuw-CaledoniĞ" #: src/hd-data.c:298 msgid "Niger" msgstr "Niger" #: src/hd-data.c:299 #, fuzzy msgid "Norfolk Island" msgstr "Norfolk" #: src/hd-data.c:300 msgid "Nigeria" msgstr "Nigeria" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "Myanmar (Birma) #" #: src/hd-data.c:304 msgid "Norway" msgstr "Noorwegen" #: src/hd-data.c:305 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:306 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:307 msgid "Niue" msgstr "Niue" #: src/hd-data.c:309 msgid "Oman" msgstr "Oman" #: src/hd-data.c:310 msgid "Panama" msgstr "Panama" #: src/hd-data.c:311 msgid "Peru" msgstr "Peru" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "Frans-PolynesiĞ" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "Papoea-Nieuw-Guinea" #: src/hd-data.c:314 msgid "Philippines" msgstr "Filipijnen" #: src/hd-data.c:315 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:316 msgid "Poland" msgstr "Polen" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre en Miquelon" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "Pitcairneilanden" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "Puerto Rico" #: src/hd-data.c:321 msgid "Palau" msgstr "Palau" #: src/hd-data.c:322 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:323 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:324 msgid "Rİunion" msgstr "Rİunion" #: src/hd-data.c:325 msgid "Romania" msgstr "RoemeniĞ" #: src/hd-data.c:327 msgid "Rwanda" msgstr "Rwanda" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "Saudi-ArabiĞ" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "Salomonseilanden" #: src/hd-data.c:330 msgid "Seychellen" msgstr "Seychellen" #: src/hd-data.c:331 msgid "Sudan" msgstr "Soedan" #: src/hd-data.c:332 msgid "Sweden" msgstr "Zweden" #: src/hd-data.c:333 msgid "Singapore #" msgstr "Singapore #" #: src/hd-data.c:334 msgid "St Helena" msgstr "Sint-Helena" #: src/hd-data.c:335 msgid "Slovenia" msgstr "SloveniĞ" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "Spitsbergen en Jan Mayen" #: src/hd-data.c:337 msgid "Slovakia" msgstr "Slowakije" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:339 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:340 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:341 msgid "Somalia" msgstr "SomaliĞ" #: src/hd-data.c:342 msgid "Suriname #" msgstr "Suriname #" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "Sao Tomİ en Principe" #: src/hd-data.c:344 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "SyriĞ" #: src/hd-data.c:346 msgid "Swaziland" msgstr "Swaziland" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "Turks- en Caicoseilanden" #: src/hd-data.c:348 msgid "Chad" msgstr "Tsjaad" #: src/hd-data.c:349 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:350 msgid "Thailand #" msgstr "Thailand #" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "Tadzjikistan" #: src/hd-data.c:352 msgid "Tokelau" msgstr "Tokelau-eilanden" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "Turkmenistan" #: src/hd-data.c:354 msgid "Tunisia" msgstr "TunesiĞ" #: src/hd-data.c:355 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:356 msgid "Turkey" msgstr "Turkije" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "Trinidad en Tobago #" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:359 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:360 msgid "Tanzania" msgstr "Tanzania" #: src/hd-data.c:361 msgid "Ukraine" msgstr "OekraŻne" #: src/hd-data.c:362 msgid "Uganda" msgstr "Oeganda" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "Verenigde Staten/Alaska" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "Verenigde Staten/Alabama" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "Verenigde Staten/Arkansas" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "Verenigde Staten/Arizona" #: src/hd-data.c:367 msgid "United States/California" msgstr "Verenigde Staten/CaliforniĞ" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "Verenigde Staten/Colorado" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "Verenigde Staten/Connecticut" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "Verenigde Staten/District of Columbia" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "Verenigde Staten/Delaware" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "Verenigde Staten/Florida" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "Verenigde Staten/Georgia" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "Verenigde Staten/HawaŻ" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "Verenigde Staten/Iowa" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "Verenigde Staten/Idaho" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "Verenigde Staten/Illinois" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "Verenigde Staten/Indiana" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "Verenigde Staten/Kansas" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "Verenigde Staten/Kentucky" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "Verenigde Staten/Louisiana" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "Verenigde Staten/Massachusetts" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "Verenigde Staten/Maryland" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "Verenigde Staten/Maine" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "Verenigde Staten/Michigan" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "Verenigde Staten/Minnesota" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "Verenigde Staten/Missouri" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "Verenigde Staten/Mississippi" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "Verenigde Staten/Montana" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "Verenigde Staten/North Carolina" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "Verenigde Staten/North Dakota" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "Verenigde Staten/Nebraska" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "Verenigde Staten/New Hampshire" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "Verenigde Staten/New Jersey" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "Verenigde Staten/New Mexico" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "Verenigde Staten/Nevada" #: src/hd-data.c:397 msgid "United States/New York" msgstr "Verenigde Staten/New York" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "Verenigde Staten/Ohio" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "Verenigde Staten/Oklahoma" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "Verenigde Staten/Oregon" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "Verenigde Staten/Pennsylvania" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "Verenigde Staten/Rhode Island" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "Verenigde Staten/South Carolina" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "Verenigde Staten/South Dakota" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "Verenigde Staten/Tennessee" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "Verenigde Staten/Texas" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "Verenigde Staten/Utah" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "Verenigde Staten/Virginia" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "Verenigde Staten/Vermont" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "Verenigde Staten/Washington" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "Verenigde Staten/Wisconsin" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "Verenigde Staten/West Virginia" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "Verenigde Staten/Wyoming" #: src/hd-data.c:414 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "Oezbekistan" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "Saint Vincent en de Grenadines" #: src/hd-data.c:417 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "Britse Maagdeneilanden" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "Amerikaanse Maagdeneilanden" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "Wallis en Futuna" #: src/hd-data.c:423 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:424 msgid "Yemen" msgstr "Jemen" #: src/hd-data.c:425 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "ServiĞ en Montenegro" #: src/hd-data.c:427 msgid "South Africa" msgstr "Zuid-Afrika" #: src/hd-data.c:428 msgid "Zambia" msgstr "Zambia" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:459 msgid "1st Advent" msgstr "eerste Adventszondag" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "eerste zondag in de Vastentijd" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "tweede Adventszondag" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "tweede zondag in de Vastentijd" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "derde Adventszondag" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "derde zondag in de Vastentijd" #: src/hd-data.c:465 msgid "4th Advent" msgstr "vierde Adventszondag" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "vierde zondag in de Vastentijd" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "Eİn april" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "Allerheiligen" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "Allerzielen" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "Alfabetdag" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "Verjaardag van Auckland" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "Verjaardag van Canterbury North" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "Verjaardag van Canterbury South" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "Verjaardag van de Chathameilanden" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "Verjaardag van Hawkes' Bay" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "Verjaardag van Marlborough" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "Verjaardag van Nelson" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "Verjaardag van Otago" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "Verjaardag van Southland" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "Verjaardag van Taranaki" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "Verjaardag van Wellington" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "Verjaardag van Westland" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "Boomfeestdag" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "Strijdkrachtendag" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "Wapenstilstanddag" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "Schone maandag" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "Aswoensdag" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "Heengaan van Abdu'l-BahĦ" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "Heengaan van BahĦ'u'llĦh" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "Geboortedag van BahĦ'u'llĦh" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "Geboortedag van de BĦb" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "Dag van het Verbond" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "Verkondiging van de BĦb" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "Eerste dag van RidvĦn" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "Marteldood van de BĦb" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "Naw-Rşz (BahĦ'­ nieuwjaar)" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "Negende dag van RidvĦn" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "Twaalfde dag van RidvĦn" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "Nationale vrije dag" #: src/hd-data.c:503 msgid "Basque National Day" msgstr "" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "Slag aan de Boyne" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "Slag bij Puebla" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "Begin van het financieel jaar" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "" #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "Bazendag" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "Tweede Kerstdag" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "" #: src/hd-data.c:514 msgid "Burns Night" msgstr "Burnsnacht" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "" #: src/hd-data.c:516 msgid "Carnival" msgstr "Carnaval" #: src/hd-data.c:517 msgid "Beltane" msgstr "Beltaine" #: src/hd-data.c:518 msgid "Imbolg" msgstr "Imbolc" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "Lughnasadh" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain (Keltisch nieuwjaar)" #: src/hd-data.c:521 msgid "Children's Day" msgstr "Kinderdag" #: src/hd-data.c:522 msgid "Cycle" msgstr "Cyclus" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "Chinees nieuwjaar" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "Chinees oudjaar" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "Eerste Kerstdag" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "Kerstavond" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "Hemelvaartsdag" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "Burgerschapsdag" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "Wettelijke feestdag" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "Columbusdag" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "Geboortedag van Confucius" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "Verjaardag van de grondwet" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "Koptisch nieuwjaar" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "Kosmonautendag" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "Kruisverheffing" #: src/hd-data.c:538 msgid "Culture Day" msgstr "" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "Dag van AndalusiĞ" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "Dag van CataloniĞ" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "Dag van GaliciĞ" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "Dag van gebed en boetedoening" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "Dag van verzoening" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "Dag van de verdedigers van het moederland" #: src/hd-data.c:547 msgid "Double-9 Day" msgstr "" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "Drakenbootfeest" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "Tweede Paasdag" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "Eerste Paasdag" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "Maansverduistering" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "Zonsverduistering" #: src/hd-data.c:554 msgid "Annular" msgstr "Ringvormige" #: src/hd-data.c:555 msgid "Partial" msgstr "Gedeeltelijke" #: src/hd-data.c:556 msgid "Penumbral" msgstr "Hybride" #: src/hd-data.c:557 msgid "Total" msgstr "Totale" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "Bevrijding van Eindhoven" #: src/hd-data.c:559 msgid "Election Day" msgstr "Verkiezingsdag" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "Verjaardag van de Keizer" #: src/hd-data.c:561 msgid "Equinox Day" msgstr "Equinoxdag" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "Ethiopisch nieuwjaar" #: src/hd-data.c:563 msgid "Father's Day" msgstr "Vaderdag" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "" #: src/hd-data.c:565 msgid "Feast of Fortune" msgstr "" #: src/hd-data.c:566 msgid "Feast of Heart Jesus" msgstr "Heilighartverering" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:569 msgid "Flag Day" msgstr "Vlaggendag" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "" #: src/hd-data.c:573 msgid "French Revolutionary" msgstr "" #: src/hd-data.c:574 msgid "Friendship Day" msgstr "Vriendschapsdag" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "Dag van de Duitse hereniging" #: src/hd-data.c:576 msgid "Good Friday" msgstr "Goede Vrijdag" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "Stille Zaterdag" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "Grootouderdag" #: src/hd-data.c:579 msgid "Greenery Day" msgstr "Dag van het natuurgroen" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "Bosmarmottendag" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "" #: src/hd-data.c:583 #, fuzzy msgid "Guy Fawkes Day" msgstr "Guy Fawkesdag" #: src/hd-data.c:584 msgid "Halloween" msgstr "Halloween" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "Dag van gezondheid en sport" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "Chanoeka (Feest van het licht)" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "Lag baOmer" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "Pesach (joods Pasen)" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "Poerim (Lotenfeest)" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "Rosj Hasjana (joods nieuwjaar)" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "Sjavoeot (Wekenfeest)" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "Sjoesjan Poerim" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "Simchat Thora (Vreugde van de Wet)" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "Soekot (Loofhuttenfeest)" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "Tisja be'Aaw (Verwoesting van de Eerste en Tweede Tempel)" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "Toe Biesjwat (Nieuwjaar van de Bomen)" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Jom Hasjoa (herdenking holocaust)" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Jom Ha-zikaron (herdenking oorlogsslachtoffers)" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "Jom Ha-atsmaoet (onafhankelijkheidsdag van IsraĞl)" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "Jom Kipoer (Grote Verzoendag)" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Jeruzalemdag" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:604 msgid "Huravee Day" msgstr "" #: src/hd-data.c:605 msgid "Independence Day" msgstr "Onafhankelijkheidsdag" #: src/hd-data.c:606 msgid "Independence Movement Day" msgstr "" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "" #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "" #: src/hd-data.c:610 msgid "Ashura'" msgstr "Asjoera" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "Offerfeest" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "Suikerfeest" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:614 msgid "Ghadir" msgstr "" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "Islamitisch nieuwjaar" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:618 msgid "Quds Day" msgstr "" #: src/hd-data.c:619 msgid "Ramadan" msgstr "Ramadan" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "Japans nieuwjaar" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "Japans oudjaar" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "Besnijdenis des Heren" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:628 msgid "Labour Day" msgstr "Dag van de Arbeid" #: src/hd-data.c:629 msgid "Labour Thanksgiving Day" msgstr "" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "Geboortedag van Lao Tse" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "Bevrijdingsdag" #: src/hd-data.c:632 msgid "Marine Day" msgstr "" #: src/hd-data.c:633 msgid "Martinimas" msgstr "Sint-Maarten" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "Martin Luther Kingdag" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "Martelarendag" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "Maria Boodschap" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "Maria ten Hemelopneming" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "Maria Lichtmis" #: src/hd-data.c:639 msgid "Mary's Expectation" msgstr "" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "Maria Onbevlekte Ontvangenis" #: src/hd-data.c:641 msgid "Mary's Maternity" msgstr "" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "Heilige Naam van Maria" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "Maria Geboorte" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:645 msgid "Mary's Visitation" msgstr "Maria Visitatie" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "Witte Donderdag" #: src/hd-data.c:648 msgid "May Day" msgstr "Eenmeifeest" #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "Midzomerdag" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "Eerste kwartier" #: src/hd-data.c:654 msgid "Full Moon" msgstr "Volle maan" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "Laatste kwartier" #: src/hd-data.c:656 msgid "New Moon" msgstr "Nieuwe maan" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "Moederdag" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "Schoonmoederdag" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "" #: src/hd-data.c:661 msgid "National Holiday" msgstr "Nationale feestdag" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "Nationale rouwdag" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "Nieuwjaarsdag" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "Oud-Armenisch nieuwjaar" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "Oud-Egyptisch nieuwjaar" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "Orthodox nieuwjaar" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "Palmzondag" #: src/hd-data.c:670 msgid "Parent's Day" msgstr "Ouderdag" #: src/hd-data.c:671 msgid "Passion Sunday" msgstr "Passiezondag" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "Vredesfestival" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "Perzikenfestival" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "Pinksteren" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "Perzisch nieuwjaar" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "Gebedsdag" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "" #: src/hd-data.c:679 msgid "Presidents' Inform" msgstr "" #: src/hd-data.c:680 msgid "President Lincoln's Birthday" msgstr "Geboortedag van president Lincoln" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "Prinsessendag" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:685 msgid "Republic Day" msgstr "Dag van de republiek" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "Dag van de revolutie" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "" #: src/hd-data.c:689 msgid "Rogation Sunday" msgstr "" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:693 msgid "Septuagesima Sunday" msgstr "Septuagesima" #: src/hd-data.c:694 msgid "Seven Sleepers Day" msgstr "" #: src/hd-data.c:695 msgid "Sexagesima Sunday" msgstr "Sexagesima" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "Vastenavond" #: src/hd-data.c:697 msgid "Solstice Day" msgstr "Zonnewende" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "Lentefestival" #: src/hd-data.c:700 msgid "Start of common month" msgstr "Start van gewone maand" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "Start van schrikkelmaand" #: src/hd-data.c:702 msgid "Star Festival" msgstr "" #: src/hd-data.c:703 msgid "St Andrew's Day" msgstr "" #: src/hd-data.c:704 msgid "St Bartholomew Day" msgstr "" #: src/hd-data.c:705 msgid "St Berchtold's Day" msgstr "" #: src/hd-data.c:706 msgid "St David's Day" msgstr "" #: src/hd-data.c:707 msgid "St Edward's Day" msgstr "" #: src/hd-data.c:708 msgid "St George's Day" msgstr "" #: src/hd-data.c:709 msgid "St James' Day" msgstr "" #: src/hd-data.c:710 msgid "St Joseph's Day" msgstr "" #: src/hd-data.c:711 msgid "St Laurentius Day" msgstr "" #: src/hd-data.c:712 msgid "St Nicholas' Day" msgstr "Sint Nicolaas" #: src/hd-data.c:713 msgid "St Nicholas' Eve" msgstr "Sinterklaasavond" #: src/hd-data.c:714 msgid "St Patrick's Day" msgstr "" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:716 msgid "St Stephen's Day" msgstr "" #: src/hd-data.c:717 msgid "St Valentine's Day" msgstr "Valentijnsdag" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "" #: src/hd-data.c:720 msgid "Sweetest Day" msgstr "" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "Oudejaarsavond" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "" #: src/hd-data.c:723 msgid "Thai New Year's Day" msgstr "" #: src/hd-data.c:724 #, fuzzy msgid "Thanksgiving Day" msgstr "Thanksgiving Day" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "Driekoningen" #: src/hd-data.c:728 msgid "Tiradentes Day" msgstr "" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:730 msgid "Transfiguration Day" msgstr "" #: src/hd-data.c:731 msgid "Tynwald Day" msgstr "" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "Veteranendag" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "" #: src/hd-data.c:736 msgid "Victory Day" msgstr "" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "Tweede pinksterdag" #: src/hd-data.c:738 msgid "Women's Day" msgstr "Vrouwendag" #: src/hd-data.c:739 msgid "Women's Shrove Day" msgstr "" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "Dierendag" #: src/hd-data.c:741 msgid "Youth Day" msgstr "" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:748 msgid "Admission Day" msgstr "" #: src/hd-data.c:749 msgid "Alaska Day" msgstr "" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:752 msgid "All Saints' Eve" msgstr "Allerheiligenavond" #: src/hd-data.c:753 msgid "Americas Day" msgstr "" #: src/hd-data.c:754 msgid "Angam Day" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:759 msgid "Antillian Day" msgstr "" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:764 msgid "Arengo Anniversary" msgstr "" #: src/hd-data.c:765 msgid "Army Coup Day" msgstr "" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:767 msgid "Artigas' Birthday" msgstr "" #: src/hd-data.c:768 msgid "Asuncion Day" msgstr "" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:771 msgid "Ba'ath Revolution Day" msgstr "" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:773 msgid "Bataan Day" msgstr "" #: src/hd-data.c:774 msgid "Battle of Angamos" msgstr "" #: src/hd-data.c:775 msgid "Battle of BoyacĦ" msgstr "" #: src/hd-data.c:776 msgid "Battle of Carabobo" msgstr "" #: src/hd-data.c:777 msgid "Battle of Iquique" msgstr "" #: src/hd-data.c:778 msgid "Battle of Las Piedras" msgstr "" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "Bloomsday" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "" #: src/hd-data.c:786 msgid "Bonaire Day" msgstr "" #: src/hd-data.c:787 msgid "Boqueron Battle Day" msgstr "" #: src/hd-data.c:788 msgid "Botswana Day" msgstr "" #: src/hd-data.c:789 msgid "Bounty Day" msgstr "" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "" #: src/hd-data.c:792 msgid "Canberra Day" msgstr "" #: src/hd-data.c:793 msgid "Caricom Day" msgstr "" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:795 msgid "Cassinga Day" msgstr "" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:798 msgid "Charter Day" msgstr "" #: src/hd-data.c:799 msgid "Chiang Kai-shek's Birthday" msgstr "" #: src/hd-data.c:800 msgid "Children's White Sunday" msgstr "" #: src/hd-data.c:801 msgid "Colon Day" msgstr "" #: src/hd-data.c:802 msgid "Colorado Day" msgstr "" #: src/hd-data.c:803 msgid "Commonwealth Day" msgstr "" #: src/hd-data.c:804 msgid "Compact Day" msgstr "" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "" #: src/hd-data.c:807 msgid "Cup Match Day" msgstr "" #: src/hd-data.c:808 msgid "Custom Chief's Day" msgstr "" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:814 msgid "Death of H. Christophe" msgstr "" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:821 msgid "Defenders Day" msgstr "" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:824 msgid "Discovery Day" msgstr "" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:827 msgid "Dr. Sun Yat-sen's Birthday" msgstr "" #: src/hd-data.c:828 msgid "Duarte's Birthday" msgstr "" #: src/hd-data.c:829 msgid "Easter Tuesday" msgstr "Paasdinsdag" #: src/hd-data.c:830 msgid "Economic Liberation Day" msgstr "" #: src/hd-data.c:831 msgid "Eight Hours Day" msgstr "" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:834 msgid "Evacuation Day" msgstr "" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:838 msgid "Family Day" msgstr "" #: src/hd-data.c:839 msgid "FAO Day" msgstr "" #: src/hd-data.c:840 msgid "Farmers' Day" msgstr "" #: src/hd-data.c:841 msgid "Father Leval Day" msgstr "" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "" #: src/hd-data.c:843 msgid "Fisherman's Day" msgstr "" #: src/hd-data.c:844 msgid "Foundation of NPLA Day" msgstr "" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:849 msgid "Gospel Day" msgstr "" #: src/hd-data.c:850 msgid "Guacanaste Day" msgstr "" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "" #: src/hd-data.c:852 msgid "Heritage Day" msgstr "" #: src/hd-data.c:853 msgid "Heroes Day" msgstr "" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:855 msgid "Holy Wednesday" msgstr "Schortelwoensdag" #: src/hd-data.c:856 msgid "Ho Chi Minh's Birthday" msgstr "" #: src/hd-data.c:857 msgid "Human Rights Day" msgstr "Mensenrechtendag" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:859 msgid "Hurricane Thanksgiving Day" msgstr "" #: src/hd-data.c:860 msgid "Independence of Cartagena" msgstr "" #: src/hd-data.c:861 msgid "Independence of Cuenca" msgstr "" #: src/hd-data.c:862 msgid "Independence of Guayaquil" msgstr "" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:865 msgid "Internal Autonomy Day" msgstr "" #: src/hd-data.c:866 msgid "Jefferson Davis' Birthday" msgstr "" #: src/hd-data.c:867 msgid "June Holiday" msgstr "" #: src/hd-data.c:868 msgid "J. Barbosa's Birthday" msgstr "" #: src/hd-data.c:869 msgid "J. Chilembwe Day" msgstr "" #: src/hd-data.c:870 msgid "J. Diego's Birthday" msgstr "" #: src/hd-data.c:871 msgid "J. Robert's Birthday" msgstr "" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:873 msgid "Kartini Day" msgstr "" #: src/hd-data.c:874 msgid "Catherine Show Day" msgstr "" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "" #: src/hd-data.c:876 msgid "Kim Il-Sung's Birthday" msgstr "" #: src/hd-data.c:877 msgid "Kim Jong-Il's Birthday" msgstr "" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:885 msgid "Liberty Day" msgstr "" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:888 msgid "Lyndon B. Johnson Day" msgstr "" #: src/hd-data.c:889 msgid "L. Rivera's Birthday" msgstr "" #: src/hd-data.c:890 msgid "Madaraka Day" msgstr "" #: src/hd-data.c:891 msgid "Mahatma Gandhi's Birthday" msgstr "" #: src/hd-data.c:892 msgid "Malvinas Day" msgstr "" #: src/hd-data.c:893 msgid "Manila Day" msgstr "" #: src/hd-data.c:894 msgid "Maputo City Day" msgstr "" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:896 msgid "Maryland Day" msgstr "" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:898 msgid "Merchant Day" msgstr "" #: src/hd-data.c:899 msgid "St John's/Midsummers Eve" msgstr "" #: src/hd-data.c:900 msgid "Missionary Day" msgstr "" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "" #: src/hd-data.c:902 msgid "Morazan Day" msgstr "" #: src/hd-data.c:903 msgid "Mosheshoe's Day" msgstr "" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:905 msgid "Naming Day" msgstr "" #: src/hd-data.c:906 msgid "National Bun Day" msgstr "" #: src/hd-data.c:907 msgid "National Heroes Day" msgstr "" #: src/hd-data.c:908 msgid "National Redemption Day" msgstr "" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:910 msgid "National Revival Day" msgstr "" #: src/hd-data.c:911 msgid "National Unity Day" msgstr "" #: src/hd-data.c:912 msgid "Ndadaye Day" msgstr "" #: src/hd-data.c:913 msgid "Neutrality Day" msgstr "" #: src/hd-data.c:914 msgid "Nevada Day" msgstr "" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "" #: src/hd-data.c:917 msgid "Noi Day" msgstr "" #: src/hd-data.c:918 msgid "OAU Day" msgstr "" #: src/hd-data.c:919 msgid "October Holiday" msgstr "" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:927 msgid "Panama City Day" msgstr "" #: src/hd-data.c:928 msgid "Panamerica Day" msgstr "" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:930 msgid "Patriot's Day" msgstr "" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "" #: src/hd-data.c:932 msgid "People Power Day" msgstr "" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:934 msgid "Pichincha Day" msgstr "" #: src/hd-data.c:935 msgid "Picnic Day" msgstr "" #: src/hd-data.c:936 msgid "Pioneer Day" msgstr "" #: src/hd-data.c:937 msgid "Poya Day" msgstr "" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:939 msgid "Prince of Wales' Birthday" msgstr "" #: src/hd-data.c:940 msgid "Proclamation Day" msgstr "" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:943 msgid "Recreation Day" msgstr "" #: src/hd-data.c:944 msgid "Referendum Day" msgstr "" #: src/hd-data.c:945 msgid "Regatta Day" msgstr "" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:947 msgid "Restoration Day" msgstr "" #: src/hd-data.c:948 msgid "Return Day" msgstr "" #: src/hd-data.c:949 msgid "Reunification Day" msgstr "" #: src/hd-data.c:950 msgid "Rizal Day" msgstr "" #: src/hd-data.c:951 msgid "Rwagasore Day" msgstr "" #: src/hd-data.c:952 msgid "Saba Day" msgstr "" #: src/hd-data.c:953 msgid "San Jacinto Day" msgstr "" #: src/hd-data.c:954 msgid "San Josİ Day" msgstr "" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:956 msgid "School Holiday" msgstr "" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "" #: src/hd-data.c:958 msgid "Separation Day" msgstr "" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:960 msgid "Settlers Day" msgstr "" #: src/hd-data.c:961 msgid "Seward's Day" msgstr "" #: src/hd-data.c:962 msgid "Shaheed Day" msgstr "" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:964 msgid "Sheikh Zayed's Ascension Day" msgstr "" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:970 msgid "Somers Day" msgstr "" #: src/hd-data.c:971 msgid "Statia-American Day" msgstr "" #: src/hd-data.c:972 msgid "Student's Day" msgstr "" #: src/hd-data.c:973 msgid "St Agata Day" msgstr "" #: src/hd-data.c:974 msgid "St Canute's Day" msgstr "" #: src/hd-data.c:975 msgid "St Cedilia's Day" msgstr "" #: src/hd-data.c:976 msgid "St Charles' Day" msgstr "" #: src/hd-data.c:977 msgid "St Demetrius' Day" msgstr "" #: src/hd-data.c:978 msgid "St Dİvote Day" msgstr "" #: src/hd-data.c:979 msgid "St Eliah's Day" msgstr "" #: src/hd-data.c:980 msgid "St Jean Baptiste Day" msgstr "" #: src/hd-data.c:981 msgid "St Lucia's Day" msgstr "" #: src/hd-data.c:982 msgid "St Marguerite's Day" msgstr "" #: src/hd-data.c:983 msgid "St Maroon's Day" msgstr "" #: src/hd-data.c:984 msgid "St Michael's Day" msgstr "" #: src/hd-data.c:985 msgid "St Olav's Day" msgstr "" #: src/hd-data.c:986 msgid "St Olav's Eve" msgstr "" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:989 msgid "St Ursula's Day" msgstr "" #: src/hd-data.c:990 msgid "St Vincent de Paul's Day" msgstr "" #: src/hd-data.c:991 msgid "Suez Victory Day" msgstr "" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:994 msgid "Sweden Day" msgstr "" #: src/hd-data.c:995 msgid "S. Doe's Birthday" msgstr "" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:997 msgid "Territory Day" msgstr "" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "" #: src/hd-data.c:1000 msgid "The Crown Prince's Birthday" msgstr "" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1004 msgid "Town Meeting Day" msgstr "" #: src/hd-data.c:1005 msgid "Traditional Day" msgstr "" #: src/hd-data.c:1006 msgid "Transfer Day" msgstr "" #: src/hd-data.c:1007 msgid "Truman Day" msgstr "" #: src/hd-data.c:1008 msgid "Union Day" msgstr "" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "" #: src/hd-data.c:1011 msgid "Unity Factory Day" msgstr "" #: src/hd-data.c:1012 msgid "Victor-Schoelcher Day" msgstr "" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1014 msgid "West Virginia Day" msgstr "" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "" #: src/hd-data.c:1016 msgid "W. Tubman's Birthday" msgstr "" #: src/hd-data.c:1017 msgid "Yap Day" msgstr "" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "Rat" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "Os" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "Tijger" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "Konijn" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "Draak" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "Slang" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "Paard" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "Schaap" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "Aap" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "Haan" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "Hond" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "Varken" #: src/hd-data.c:1287 msgid "Ast" msgstr "" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1550 msgid "Cel" msgstr "Kel" #: src/hd-data.c:1692 src/hd-data.c:2225 msgid "Chi" msgstr "Chi" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2227 src/hd-data.c:3730 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2423 msgid "Chr" msgstr "Chr" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "FRR" #: src/hd-data.c:2778 src/hd-data.c:2960 msgid "Heb" msgstr "Heb" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "" #: src/hd-data.c:4447 msgid "OxN" msgstr "" #: src/hd-data.c:4449 msgid "OxO" msgstr "" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "" #: src/hd-data.c:4847 msgid "Zod" msgstr "" #: src/hd-use.c:929 msgid " day" msgstr " dag" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*sHet jaar %0*d is WEL een schrikkeljaar" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*sHet jaar %0*d is GEEN schrikkeljaar" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sHet jaar %d is WEL een schrikkeljaar" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sHet jaar %d is GEEN schrikkeljaar" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr " = %+4d dag" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr " = %+4d dagen" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s bevat nu het maximum van %d items!%s" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "Gecompileerd met %s%s voor %s%s%s%s" #: src/help.c:75 msgid "# Day number (must be defined)" msgstr "# Dagnummer (verplicht)" #: src/help.c:76 msgid "# Year number (must be defined)" msgstr "# Jaarnummer (verplicht)" #: src/help.c:77 msgid "# Weekday name (may be defined)" msgstr "# Weekdagnaam (optioneel)" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "Maand (kies exact İİn uit de lijst):" #: src/help.c:79 msgid "# Month number" msgstr "# Maandnummer" #: src/help.c:80 msgid "# Month name" msgstr "# Maandnaam" #: src/help.c:81 #, fuzzy msgid "Highlighting group (all members must be defined):" msgstr "Arceren (alle leden verplicht):" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "Begin van markeersequentie/merkteken" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "Einde van markeersequentie/merkteken" #: src/help.c:86 msgid "Character replacement:" msgstr "Tekenvervanging:" #: src/help.c:87 #, c-format msgid "Space/blank ('%c') character" msgstr "Spatie ('%c')" #: src/help.c:88 #, c-format msgid "Underscore ('%c') character" msgstr "Liggend streepje ('%c')" #: src/help.c:89 #, c-format msgid "Percent ('%c') character" msgstr "Procentteken ('%c')" #: src/help.c:90 #, c-format msgid "Backslash ('%c') character" msgstr "Backslashteken ('%c')" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "Alle formatelementen gemarkeerd door een # kunnen optioneel" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "een formatinstructie bevatten met de syntax:" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[UITLIJNING [TEKEN] [NUL] BREEDTE [STIJL] [ACHTERVOEGSEL] AFKAPGEDRAG]" #: src/help.c:94 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "UITLIJNING (verplicht İİn kiezen uit de lijst):" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "Veldinhoud wordt links uitgelijnd met breedte BREEDTE" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "Veldinhoud wordt gecentreerd met breedte BREEDTE" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "Veldinhoud wordt gecentreerd met breedte BREEDTE" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "TEKEN (optioneel):" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "Getalwaarde wordt voorafgegaan door een teken" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "NUL (optioneel):" #: src/help.c:104 msgid "Numerical value is filled with leading zero(es)" msgstr "Getalwaarde wordt aangevuld met voorloopnul(len)" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "BREEDTE (verplicht):" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "Het aantal posities van het veld (%d...%d)" #: src/help.c:107 msgid "STYLE group (exactly one member may be defined):" msgstr "STIJL (optioneel İİn kiezen uit lijst):" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "Veldinhoud wordt omgezet in hoofdletterd" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "Veldinhoud wordt omgezet in kleine letters" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "Veldinhoud wordt omgezet naar woorden met beginhoofdletter" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "ACHTERVOEGSEL (optioneel):" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "Getalwaarde wordt gevolgd door een rangtelwoord-achtervoegsel" #: src/help.c:114 msgid "FORMAT group (exactly one member must be defined):" msgstr "AFKAPGEDRAG (verplicht İİn kiezen uit lijst):" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "Veldinhoud wordt niet na positie BREEDTE afgekapt" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "Veldinhoud wordt na positie BREEDTE afgekapt" #: src/help.c:130 msgid "legal holidays" msgstr "wettelijke vakantiedagen" #: src/help.c:131 msgid "holidays" msgstr "vakantiedagen" #: src/help.c:132 msgid "Mondays" msgstr "maandagen" #: src/help.c:133 msgid "Tuesdays" msgstr "dinsdagen" #: src/help.c:134 msgid "Wednesdays" msgstr "woensdagen" #: src/help.c:135 msgid "Thursdays" msgstr "donderdagen" #: src/help.c:136 msgid "Fridays" msgstr "vrijdagen" #: src/help.c:137 msgid "Saturdays" msgstr "zaterdagen" #: src/help.c:138 msgid "Sundays" msgstr "zondagen" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "maandagen...donderdagen" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "maandagen...vrijdagen" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s: Gebruik '%s %s' met een van deze argumenten" #: src/help.c:243 msgid "OPTION" msgstr "OPTIE" #: src/help.c:256 msgid " Display help text and quit program" msgstr " Hulptekst tonen en programma beĞindigen" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr " Uitgebreide hulptekst tonen en programma beĞindigen" #: src/help.c:291 msgid " Display software license and quit program" msgstr " Softwarelicentie tonen en programma beĞindigen" #: src/help.c:302 msgid " Display version information and quit program" msgstr " Versieinformatie tonen en programma beĞindigen" #: src/help.c:313 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "" #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr "" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr "" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr "" #: src/help.c:360 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" #: src/help.c:364 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" #: src/help.c:369 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr "" #: src/help.c:393 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "" #: src/help.c:398 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" #: src/help.c:403 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" #: src/help.c:409 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" #: src/help.c:414 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr "" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr " %-3s = Een of meer van de volgende karakters. Een" #: src/help.c:448 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " KLEINE LETTER betekent hier niet-uitsluiting!" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Uitsluiting van alle %s" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr " %-3s = Lijst van '%c[DATE][%c[DATE]]' en/of '%c[DATE][%c[DATE]]'" #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr " uitdrukkingen, gescheiden door '%s' karakters" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr "" " Enkel de vaste datums waarvan de tekst overeenkomt met %s tonen" #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:520 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr "" #: src/help.c:531 msgid " Display some debug information" msgstr " Foutopsporingsinformatie tonen" #: src/help.c:539 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal Informatie of interne maxima van programma zijn " "bereikt" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr " = handled Zoals 'internal' en verwerkte bestandsnamen" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr " = unhandled Zoals 'internal' en onverwerkte bestandsnamen" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Zoals 'handled' en 'unhandled' samen" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" " = abort Zoals 'all' en afbreken indien bestandsnaam niet " "verwerkt kan worden" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr "" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr "" #: src/help.c:596 msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" #: src/help.c:606 msgid " Provide calendar sheet with week numbers" msgstr "" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Het type weeknummers vaststellen (huidig: %s)" #: src/help.c:618 msgid "Standard" msgstr "Standaard" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes ISO-8601:1988 weeknummers" #: src/help.c:631 msgid " = no Standard week numbers" msgstr " = no Standaard weeknumbers" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr "" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr "" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr "" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr "" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "" #: src/help.c:716 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" #: src/help.c:721 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" #: src/help.c:732 msgid " Modify format of year calendar" msgstr "" #: src/help.c:736 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr "" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr "" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr "" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr "" #: src/help.c:795 #, c-format msgid " Set starting day of week (actual: %s)" msgstr "" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr "" #: src/help.c:857 msgid "UNKNOWN" msgstr "" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr "" #: src/help.c:883 msgid " N = Legal days only" msgstr "" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr "" #: src/help.c:897 msgid " Suppress leading blank line of eternal holiday list" msgstr "" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr "" #: src/help.c:919 msgid " Provide eternal holiday list with astronomical data" msgstr "" #: src/help.c:931 msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr "" #: src/help.c:943 msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr "" #: src/help.c:955 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "" #: src/help.c:967 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" #: src/help.c:979 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" #: src/help.c:991 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "" #: src/help.c:1003 msgid " Provide eternal holiday list with Chinese calendar months" msgstr "" #: src/help.c:1015 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" #: src/help.c:1027 msgid " Provide eternal holiday list with Coptic calendar months" msgstr "" #: src/help.c:1039 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "" #: src/help.c:1051 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" #: src/help.c:1063 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "" #: src/help.c:1075 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "" #: src/help.c:1087 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "" #: src/help.c:1099 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "" #: src/help.c:1111 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "" #: src/help.c:1123 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" #: src/help.c:1135 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" #: src/help.c:1147 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "" #: src/help.c:1159 msgid " Provide eternal holiday list with Japanese calendar months" msgstr "" #: src/help.c:1172 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" #: src/help.c:1184 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "" #: src/help.c:1196 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "" #: src/help.c:1208 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "" #: src/help.c:1220 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" #: src/help.c:1232 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" #: src/help.c:1244 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" #: src/help.c:1256 msgid " Provide eternal holiday list with zodiacal marker data" msgstr "" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr "" #: src/help.c:1272 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr "" #: src/help.c:1277 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1286 #, c-format msgid " %-*s = Holidays in %s" msgstr "" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1322 msgid " Set base data of Earth's atmosphere" msgstr "" #: src/help.c:1326 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1344 msgid " Limit rise/set times of Sun to the day" msgstr "" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1366 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr "" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1453 msgid " Change base year of calendar" msgstr "" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr "" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1485 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr "" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" #: src/help.c:1502 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr "" #: src/help.c:1504 msgid "self-defined" msgstr "" #: src/help.c:1509 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr "" #: src/help.c:1517 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1582 msgid " they are used by the character set used in Germany" msgstr "" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr "" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" #: src/help.c:1654 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" #: src/help.c:1657 #, c-format msgid " Actual: `%s'" msgstr "" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" #: src/help.c:1682 msgid " 1. Representation of text" msgstr "" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr "" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr "" #: src/help.c:1711 msgid " = Set height of the Moon phase text graphics" msgstr "" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr "" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr "" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr "" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr "" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr "" #: src/help.c:1763 msgid " # k = Display week number" msgstr "" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr "" #: src/help.c:1787 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr "" #: src/help.c:1811 msgid " # J = Suppress text part of fixed dates" msgstr "" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr "" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr "" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" #: src/help.c:1855 msgid " 2. Respected period" msgstr "" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr "" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr "" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr "" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr "" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr "" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr "" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr "" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr "" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr "" #: src/help.c:1953 msgid " N = 99 Last week" msgstr "" #: src/help.c:1956 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr "" #: src/help.c:1962 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr "" #: src/help.c:1967 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" #: src/help.c:1972 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" #: src/help.c:1976 #, c-format msgid " N = 9 Last weekday %s" msgstr "" #: src/help.c:1980 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr "" #: src/help.c:1985 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" #: src/help.c:1990 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" #: src/help.c:1994 #, c-format msgid " N = 99 Last weekday %s" msgstr "" #: src/help.c:1999 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr "" #: src/help.c:2004 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" #: src/help.c:2009 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" #: src/help.c:2014 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" #: src/help.c:2018 #, c-format msgid " N = 99 %s of last week" msgstr "" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "" #: src/help.c:2030 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "" #: src/help.c:2042 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr "" #: src/help.c:2054 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr "" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr "" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr "" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr "" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr "" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:2173 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" #: src/help.c:2184 msgid " Define additional resource file line" msgstr "" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr "" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "" #: src/help.c:2202 #, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "" #: src/help.c:2224 msgid "COMMAND" msgstr "" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr "" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr "" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr "" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr "" #: src/help.c:2257 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr "" #: src/help.c:2283 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr "" #: src/help.c:2286 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr "" #: src/help.c:2290 #, c-format msgid " %sL, %s Display software license and quit program" msgstr "" #: src/help.c:2294 #, c-format msgid " %sV, %s Display version information and quit program" msgstr "" #: src/help.c:2302 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "" #: src/help.c:2309 src/help.c:2314 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr "" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "" #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "" #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "" #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "" #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" #: src/help.c:2366 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" #: src/help.c:2368 msgid "any later version." msgstr "" #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "" #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" #: src/help.c:2452 #, c-format msgid "Use `%s %s|[%s?]" msgstr "" #: src/help.c:2461 msgid "for more information." msgstr "" #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, c-format msgid "Email bug reports to <%s>" msgstr "" "Rapporteer gebreken in het programma aan <%s>;\n" "meld fouten in de vertaling aan ." #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "GNU Gcal-webpagina: <%s>" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "Algemene hulp bij gebruik van GNU-software: <%s>" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "" #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" #: src/help.c:2617 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr "" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr "" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr "" #: src/help.c:2827 msgid "(bad version)" msgstr "" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "" #: src/help.c:2942 msgid " later than 4.5" msgstr "" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr "" #: src/help.c:3075 msgid "unknown " msgstr "" #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr "" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr "" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr "" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr "" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr "" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr "" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "" #: src/print.c:566 msgid "Week" msgstr "Week" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/rc-use.c:514 msgid "Emo" msgstr "" #: src/rc-use.c:519 msgid "Int" msgstr "" #: src/rc-use.c:524 msgid "Phy" msgstr "" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr "" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "Week %s" #: src/rc-utils.c:398 src/rc-utils.c:415 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%s: ongeldige datum gegeven -- %s\n" "%s\n" "%s\n" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "" #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "" #: src/rc-utils.c:3634 src/utils.c:275 #, c-format msgid "%s: abort, " msgstr "" #: src/rc-utils.c:3642 #, c-format msgid "illegal variable definition in file `%s'" msgstr "" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3651 #, c-format msgid "illegal variable operation in file `%s'" msgstr "" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3659 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "" #: src/rc-utils.c:3663 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "" #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "" #: src/rc-utils.c:3696 #, c-format msgid "Argument `%s' of command line ignored." msgstr "" #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "" #: src/tty.c:425 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "" #: src/tty.c:1020 #, c-format msgid "environment variable `%s' not found" msgstr "omgevingsvariabele '%s' niet gevonden" #: src/tty.c:1027 #, c-format msgid "environment variable `%s' not set" msgstr "omgevingsvariabele '%s' niet ingesteld" #: src/tty.c:1067 msgid "`termcap' file not found" msgstr "" #: src/tty.c:1072 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" #: src/utils.c:333 #, c-format msgid "sending eMail to <%s> failed" msgstr "" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" #: src/utils.c:342 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 msgid "internal" msgstr "intern" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" #: src/utils.c:1081 msgid "th" msgstr "e" #: src/utils.c:1085 msgid "st" msgstr "ste" #: src/utils.c:1089 msgid "nd" msgstr "de" #: src/utils.c:1093 msgid "rd" msgstr "de" #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "ongeldige dag" #: src/utils.c:1129 msgid "Mon" msgstr "maa" #: src/utils.c:1134 msgid "Tue" msgstr "din" #: src/utils.c:1139 msgid "Wed" msgstr "woe" #: src/utils.c:1144 msgid "Thu" msgstr "don" #: src/utils.c:1149 msgid "Fri" msgstr "vri" #: src/utils.c:1154 msgid "Sat" msgstr "zat" #: src/utils.c:1159 msgid "Sun" msgstr "zon" #: src/utils.c:1180 msgid "Mo" msgstr "ma" #: src/utils.c:1185 msgid "Tu" msgstr "di" #: src/utils.c:1190 msgid "We" msgstr "wo" #: src/utils.c:1195 msgid "Th" msgstr "do" #: src/utils.c:1200 msgid "Fr" msgstr "vr" #: src/utils.c:1205 msgid "Sa" msgstr "za" #: src/utils.c:1210 msgid "Su" msgstr "zo" #: src/utils.c:1227 msgid "Monday" msgstr "maandag" #: src/utils.c:1227 msgid "Tuesday" msgstr "dinsdag" #: src/utils.c:1227 msgid "Wednesday" msgstr "woensdag" #: src/utils.c:1227 msgid "Thursday" msgstr "donderdag" #: src/utils.c:1228 msgid "Friday" msgstr "vrijdag" #: src/utils.c:1228 msgid "Saturday" msgstr "zaterdag" #: src/utils.c:1228 msgid "Sunday" msgstr "zondag" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "ongeldige maand" #: src/utils.c:1249 msgid "Jan" msgstr "jan" #: src/utils.c:1254 msgid "Feb" msgstr "feb" #: src/utils.c:1259 msgid "Mar" msgstr "mrt" #: src/utils.c:1264 msgid "Apr" msgstr "apr" #: src/utils.c:1269 msgid "May" msgstr "mei" #: src/utils.c:1274 msgid "Jun" msgstr "jun" #: src/utils.c:1279 msgid "Jul" msgstr "jul" #: src/utils.c:1284 msgid "Aug" msgstr "aug" #: src/utils.c:1289 msgid "Sep" msgstr "sep" #: src/utils.c:1294 msgid "Oct" msgstr "okt" #: src/utils.c:1299 msgid "Nov" msgstr "nov" #: src/utils.c:1304 msgid "Dec" msgstr "dec" #: src/utils.c:1322 msgid "January" msgstr "januari" #: src/utils.c:1322 msgid "February" msgstr "februari" #: src/utils.c:1323 msgid "March" msgstr "maart" #: src/utils.c:1323 msgid "April" msgstr "april" #: src/utils.c:1333 msgid "May " msgstr "mei" #: src/utils.c:1334 msgid "June" msgstr "juni" #: src/utils.c:1334 msgid "July" msgstr "juli" #: src/utils.c:1335 msgid "August" msgstr "augustus" #: src/utils.c:1335 msgid "September" msgstr "september" #: src/utils.c:1336 msgid "October" msgstr "oktober" #: src/utils.c:1336 msgid "November" msgstr "november" #: src/utils.c:1336 msgid "December" msgstr "december" #: src/tcal.c:193 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "" #: src/tcal.c:909 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: optie '--%s' vereist een argument" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "" #: src/txt2gcal.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "%s: geen gewoon bestand\n" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "%s: bestand niet gevonden\n" #: src/gcal2txt.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "" gcal-4.1/po/it.po0000664000000000000000000033611713041164031010553 00000000000000# Italian translation for gcal. # Copyright (C) 2010 Thomas Esken (msgids) # Copyright (C) 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gcal package. # Sergio Zanchetta , 2010. # msgid "" msgstr "" "Project-Id-Version: gcal-3.6\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 2010-10-05 00:20+0200\n" "Last-Translator: Sergio Zanchetta \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "" #: lib/regcomp.c:135 msgid "Success" msgstr "" #: lib/regcomp.c:138 msgid "No match" msgstr "" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:156 msgid "Unmatched [, [^, [:, [., or [=" msgstr "" #: lib/regcomp.c:159 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:162 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:168 msgid "Invalid range end" msgstr "" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "" #: lib/regcomp.c:180 msgid "Regular expression too big" msgstr "" #: lib/regcomp.c:183 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, c-format msgid "%s subprocess" msgstr "" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "" #: src/file-io.c:1686 msgid " `HERE' " msgstr "" #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "Germania" #: src/gcal.c:1075 msgid "U.S.A." msgstr "U.S.A." #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "Gran Bretagna" #: src/gcal.c:1852 msgid "default" msgstr "" #: src/gcal.c:1951 msgid ":" msgstr "" #: src/gcal.c:1961 msgid "Y" msgstr "A" #: src/gcal.c:1966 msgid "M" msgstr "M" #: src/gcal.c:1971 msgid "W" msgstr "S" #: src/gcal.c:1976 msgid "D" msgstr "G" #: src/gcal.c:2067 msgid "Fixed date list:" msgstr "" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "variabile ambiente" #: src/gcal.c:2268 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%s: trovato comando nella variabile ambiente \"%s\" -- %s\n" "%s\n" "%s\n" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "" #: src/gcal.c:2864 msgid "response file" msgstr "" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "" #: src/gcal.c:2872 msgid "shell script" msgstr "" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "Posta da \\\"%s\" (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "riga di comando" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: l'opzione \"%s\" ¨ ambigua" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: opzione non riconosciuta \"%s\"" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: opzione non valida -- %s" #: src/gcal.c:5910 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s: l'opzione \"--%s\" non ammette argomenti" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s: l'opzione \"%s\" non ammette argomenti" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: l'opzione \"%s\" richiede un argomento" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: l'opzione richiede un argomento -- %s" #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: opzione con argomento non valido -- %s" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: opzione con argomento ambiguo -- %s" #: src/gcal.c:5995 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" "%s: data fornita non valida -- %c%s\n" "%s\n" "%s\n" #: src/hd-data.c:64 msgid "Australia" msgstr "Australia" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "Belgio" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "Brasile" #: src/hd-data.c:67 msgid "Canada" msgstr "Canada" #: src/hd-data.c:68 msgid "Switzerland" msgstr "Svizzera" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "Cina" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "Spagna" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "Francia" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "Israele" #: src/hd-data.c:75 src/hd-data.c:250 msgid "Italy" msgstr "Italia" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "Giappone" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "Repubblica di Corea" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "Messico" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "Paesi Bassi" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "Nuova Zelanda" #: src/hd-data.c:81 src/hd-data.c:320 msgid "Portugal" msgstr "Portogallo" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "Federazione Russa" #: src/hd-data.c:83 msgid "United States" msgstr "Stati Uniti" #: src/hd-data.c:85 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "Emirati Arabi Uniti" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "Afghanistan" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "Antigua e Barbuda" #: src/hd-data.c:89 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:90 msgid "Albania" msgstr "Albania" #: src/hd-data.c:91 msgid "Armenia" msgstr "Armenia" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "Antille olandesi/Bonaire" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "Antille olandesi/Cura§ao" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "Antille olandesi/Sint Maarten" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "Antille olandesi/Saba e Sint Eustatius" #: src/hd-data.c:96 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:97 msgid "Argentina" msgstr "Argentina" #: src/hd-data.c:98 msgid "American Samoa" msgstr "Samoa americane" #: src/hd-data.c:99 msgid "Austria" msgstr "Austria" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "Australia/Canberra" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "Australia/Territorio del Nord" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "Australia/Queensland" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "Australia/Australia Meridionale" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "Australia/Nuovo Galles del Sud" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "Australia/Tasmania" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "Australia/Victoria" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "Australia/Australia Occidentale" #: src/hd-data.c:108 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "Azerbaigian" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "Bosnia-Erzegovina" #: src/hd-data.c:111 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "Bangladesh #" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:115 msgid "Bulgaria" msgstr "Bulgaria" #: src/hd-data.c:116 msgid "Bahrain" msgstr "Bahrain" #: src/hd-data.c:117 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:118 msgid "Benin #" msgstr "Benin #" #: src/hd-data.c:119 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:120 msgid "Brunei" msgstr "Brunei" #: src/hd-data.c:121 msgid "Bolivia" msgstr "Bolivia" #: src/hd-data.c:123 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "Isola Bouvet" #: src/hd-data.c:126 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:127 msgid "Belarus" msgstr "Bielorussia" #: src/hd-data.c:128 msgid "Belize" msgstr "Belize" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "Canada/Alberta" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "Canada/Columbia Britannica" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "Canada/Manitoba" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "Canada/Nuovo Brunswick" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "Canada/Terranova e Labrador" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "Canada/Nuova Scozia" #: src/hd-data.c:135 #, fuzzy msgid "Canada/Northwest Territories" msgstr "Canada/Territori del Nordovest" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "Canada/Ontario" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "Canada/Isola del Principe Edoardo" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "Canada/Quİbec" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "Canada/Saskatchewan" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "Canada/Yukon" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "Isole Cocos e Keeling" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "Repubblica democratica del Congo #" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "Repubblica Centrafricana #" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "Repubblica del Congo #" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "Svizzera/Argovia" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Svizzera/Appenzello Interno" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Svizzera/Appenzello Esterno" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "Svizzera/Berna" #: src/hd-data.c:149 #, fuzzy msgid "Switzerland/Basel-Landschaft" msgstr "Svizzera/Basilea Campagna" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "Svizzera/Basilea Citt " #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "Svizzera/Friburgo" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "Svizzera/Ginevra" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "Svizzera/Glarona" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "Svizzera/Grigioni" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "Svizzera/Giura" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "Svizzera/Lucerna" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "Svizzera/Neuch˘tel" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "Svizzera/Nidvaldo" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "Svizzera/Obvaldo" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "Svizzera/San Gallo" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "Svizzera/Sciaffusa" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "Svizzera/Soletta" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "Svizzera/Svitto" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "Svizzera/Turgovia" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "Svizzera/Ticino" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "Svizzera/Uri" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "Svizzera/Vaud" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "Svizzera/Vallese" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "Svizzera/Zugo" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "Svizzera/Zurigo" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "Costa d'Avorio" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "Isole Cook" #: src/hd-data.c:173 msgid "Chile" msgstr "Cile" #: src/hd-data.c:174 msgid "Cameroon" msgstr "Camerun" #: src/hd-data.c:176 msgid "Colombia" msgstr "Colombia" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:178 msgid "Cuba" msgstr "Cuba" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "Capo Verde" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "Isole di Natale" #: src/hd-data.c:181 msgid "Cyprus" msgstr "Cipro" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "Repubblica Ceca" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "Germania/Brandeburgo" #: src/hd-data.c:184 msgid "Germany/Berlin" msgstr "Germania/Berlino" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "Germania/Baden-Wĵrttemberg" #: src/hd-data.c:186 msgid "Germany/Bavaria" msgstr "Germania/Baviera" #: src/hd-data.c:187 msgid "Germany/Bremen" msgstr "Germania/Brema" #: src/hd-data.c:188 msgid "Germany/Hesse" msgstr "Germania/Assia" #: src/hd-data.c:189 msgid "Germany/Hamburg" msgstr "Germania/Amburgo" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Germania/Meclemburgo-Pomerania Anteriore" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "Germania/Bassa Sassonia" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "Germania/Nord Reno-Westfalia" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "Germania/Renania-Palatinato" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "Germania/Schleswig-Holstein" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saarland" msgstr "Germania/Saarland" #: src/hd-data.c:196 msgid "Germany/Saxony" msgstr "Germania/Sassonia" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "Germania/Sassonia-Anhalt" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "Germania/Turingia" #: src/hd-data.c:199 msgid "Djibouti" msgstr "Gibuti" #: src/hd-data.c:200 msgid "Denmark" msgstr "Danimarca" #: src/hd-data.c:201 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "Repubblica Dominicana" #: src/hd-data.c:203 msgid "Algeria" msgstr "Algeria" #: src/hd-data.c:204 msgid "Ecuador" msgstr "Ecuador" #: src/hd-data.c:205 msgid "Estonia" msgstr "Estonia" #: src/hd-data.c:206 msgid "Egypt" msgstr "Egitto" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "Sahara Occidentale" #: src/hd-data.c:208 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "Etiopia" #: src/hd-data.c:211 msgid "Finland" msgstr "Finlandia" #: src/hd-data.c:212 msgid "Fiji #" msgstr "Figi #" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "Isole Falkland (Malvine)" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "Stati Federati di Micronesia" #: src/hd-data.c:215 msgid "Faroes" msgstr "Far Oer" #: src/hd-data.c:217 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "Gran Bretagna/Inghilterra e Galles" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "Gran Bretagna/Irlanda del Nord" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "Gran Bretagna/Scozia" #: src/hd-data.c:221 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:222 msgid "Georgia" msgstr "Georgia" #: src/hd-data.c:223 msgid "French Guiana" msgstr "Guiana Francese" #: src/hd-data.c:224 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "Gibilterra" #: src/hd-data.c:226 msgid "Greenland" msgstr "Groenlandia" #: src/hd-data.c:227 msgid "Gambia" msgstr "Gambia" #: src/hd-data.c:228 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "Guadalupa" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "Guinea Equatoriale" #: src/hd-data.c:231 msgid "Greece" msgstr "Grecia" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "Georgia del Sud e isole Sandwich meridionali" #: src/hd-data.c:233 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:234 msgid "Guam" msgstr "Guam" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "Guinea-Bissau #" #: src/hd-data.c:236 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "Isole Heard e McDonald" #: src/hd-data.c:239 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:240 msgid "Croatia" msgstr "Croazia" #: src/hd-data.c:241 msgid "Haiti" msgstr "Haiti" #: src/hd-data.c:242 msgid "Hungary" msgstr "Ungheria" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "Indonesia #" #: src/hd-data.c:244 msgid "Ireland" msgstr "Irlanda" #: src/hd-data.c:246 msgid "India #" msgstr "India #" #: src/hd-data.c:247 msgid "Iraq" msgstr "Iraq" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "Repubblica Islamica dell'Iran" #: src/hd-data.c:249 msgid "Iceland" msgstr "Islanda" #: src/hd-data.c:251 msgid "Jamaica" msgstr "Giamaica" #: src/hd-data.c:252 msgid "Jordan" msgstr "Giordania" #: src/hd-data.c:254 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "Kirghizistan" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "Cambogia #" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:258 msgid "Comoros" msgstr "Comore" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "St Kitts e Nevis" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "Repubblica Democratica Popolare di Corea" #: src/hd-data.c:262 msgid "Kuwait" msgstr "Kuwait" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "Isole Cayman" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "Kazakistan" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "Repubblica Popolare Democratica del Laos #" #: src/hd-data.c:266 msgid "Lebanon" msgstr "Libano" #: src/hd-data.c:267 msgid "St Lucia" msgstr "Santa Lucia" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:270 msgid "Liberia" msgstr "Liberia" #: src/hd-data.c:271 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:272 msgid "Lithuania" msgstr "Lituania" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "Lussemburgo" #: src/hd-data.c:274 msgid "Latvia" msgstr "Lettonia" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Libia" #: src/hd-data.c:276 msgid "Morocco" msgstr "Marocco" #: src/hd-data.c:277 msgid "Monaco" msgstr "Monaco" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "Repubblica di Moldova" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "Madagascar #" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "Isole Marshall" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "Repubblica di Macedonia" #: src/hd-data.c:282 msgid "Mali" msgstr "Mali" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "Mongolia #" #: src/hd-data.c:284 msgid "Macau" msgstr "Macao" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "Isole Marianne Settentrionali (Saipan)" #: src/hd-data.c:286 msgid "Martinique" msgstr "Martinica" #: src/hd-data.c:287 msgid "Mauritania" msgstr "Mauritania" #: src/hd-data.c:288 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:289 msgid "Malta" msgstr "Malta" #: src/hd-data.c:290 msgid "Mauritius" msgstr "Mauritius" #: src/hd-data.c:291 msgid "Maldives" msgstr "Maldive" #: src/hd-data.c:292 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "Malesia #" #: src/hd-data.c:295 msgid "Mozambique" msgstr "Mozambico" #: src/hd-data.c:296 msgid "Namibia" msgstr "Namibia" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "Nuova Caledonia" #: src/hd-data.c:298 msgid "Niger" msgstr "Niger" #: src/hd-data.c:299 #, fuzzy msgid "Norfolk Island" msgstr "Isola Norfolk" #: src/hd-data.c:300 msgid "Nigeria" msgstr "Nigeria" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "Myanmar (Birmania) #" #: src/hd-data.c:304 msgid "Norway" msgstr "Norvegia" #: src/hd-data.c:305 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:306 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:307 msgid "Niue" msgstr "Niue" #: src/hd-data.c:309 msgid "Oman" msgstr "Oman" #: src/hd-data.c:310 msgid "Panama" msgstr "Panama" #: src/hd-data.c:311 msgid "Peru" msgstr "Peru" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "Polinesia francese" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "Papua Nuova Guinea" #: src/hd-data.c:314 msgid "Philippines" msgstr "Filippine" #: src/hd-data.c:315 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:316 msgid "Poland" msgstr "Polonia" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre e Miquelon" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "Pitcairn" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "Porto Rico" #: src/hd-data.c:321 msgid "Palau" msgstr "Palau" #: src/hd-data.c:322 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:323 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:324 msgid "Rİunion" msgstr "Rİunion" #: src/hd-data.c:325 msgid "Romania" msgstr "Romania" #: src/hd-data.c:327 msgid "Rwanda" msgstr "Ruanda" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "Arabia Saudita" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "Isole Salomone" #: src/hd-data.c:330 msgid "Seychellen" msgstr "Seychelles" #: src/hd-data.c:331 msgid "Sudan" msgstr "Sudan" #: src/hd-data.c:332 msgid "Sweden" msgstr "Svezia" #: src/hd-data.c:333 msgid "Singapore #" msgstr "Singapore #" #: src/hd-data.c:334 msgid "St Helena" msgstr "Sant'Elena" #: src/hd-data.c:335 msgid "Slovenia" msgstr "Slovenia" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "Isole Svalbard e di Jan Mayen" #: src/hd-data.c:337 msgid "Slovakia" msgstr "Slovacchia" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:339 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:340 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:341 msgid "Somalia" msgstr "Somalia" #: src/hd-data.c:342 msgid "Suriname #" msgstr "Suriname #" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "Sao Tomİ e Principe" #: src/hd-data.c:344 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "Repubblica Araba di Siria (Siria)" #: src/hd-data.c:346 msgid "Swaziland" msgstr "Swaziland" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "Isole Turks e Caicos" #: src/hd-data.c:348 msgid "Chad" msgstr "Ciad" #: src/hd-data.c:349 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:350 msgid "Thailand #" msgstr "Thailandia" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "Tagikistan" #: src/hd-data.c:352 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "Turkmenistan" #: src/hd-data.c:354 msgid "Tunisia" msgstr "Tunisia" #: src/hd-data.c:355 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:356 msgid "Turkey" msgstr "Turchia" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "Trinidad e Tobago #" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:359 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:360 msgid "Tanzania" msgstr "Tanzania" #: src/hd-data.c:361 msgid "Ukraine" msgstr "Ucraina" #: src/hd-data.c:362 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "Stati Uniti/Alaska" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "Stati Uniti/Alabama" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "Stati Uniti/Arkansas" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "Stati Uniti/Arizona" #: src/hd-data.c:367 msgid "United States/California" msgstr "Stati Uniti/California" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "Stati Uniti/Colorado" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "Stati Uniti/Connecticut" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "Stati Uniti/Distretto di Columbia" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "Stati Uniti/Delaware" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "Stati Uniti/Florida" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "Stati Uniti/Georgia" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "Stati Uniti/Hawaii" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "Stati Uniti/Iowa" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "Stati Uniti/Idaho" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "Stati Uniti/Illinois" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "Stati Uniti/Indiana" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "Stati Uniti/Kansas" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "Stati Uniti/Kentucky" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "Stati Uniti/Louisiana" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "Stati Uniti/Massachusetts" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "Stati Uniti/Maryland" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "Stati Uniti/Maine" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "Stati Uniti/Michigan" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "Stati Uniti/Minnesota" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "Stati Uniti/Missouri" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "Stati Uniti/Mississippi" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "Stati Uniti/Montana" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "Stati Uniti/Carolina del Nord" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "Stati Uniti/Dakota del Nord" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "Stati Uniti/Nebraska" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "Stati Uniti/New Hampshire" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "Stati Uniti/New Jersey" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "Stati Uniti/Nuovo Messico" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "Stati Uniti/Nevada" #: src/hd-data.c:397 msgid "United States/New York" msgstr "Stati Uniti/New York" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "Stati Uniti/Ohio" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "Stati Uniti/Oklahoma" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "Stati Uniti/Oregon" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "Stati Uniti/Pennsylvania" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "Stati Uniti/Rhode Island" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "Stati Uniti/Carolina del Sud" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "Stati Uniti/Dakota del Sud" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "Stati Uniti/Tennessee" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "Stati Uniti/Texas" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "Stati Uniti/Utah" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "Stati Uniti/Virginia" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "Stati Uniti/Vermont" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "Stati Uniti/Washington" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "Stati Uniti/Wisconsin" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "Stati Uniti/Virginia Occidentale" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "Stati Uniti/Wyoming" #: src/hd-data.c:414 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "Uzbekistan" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "St Vincent e Grenadine" #: src/hd-data.c:417 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "Isole Vergini britanniche" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "Isole Vergini americane" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "Isole Wallis e Futuna" #: src/hd-data.c:423 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:424 msgid "Yemen" msgstr "Yemen" #: src/hd-data.c:425 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "Serbia e Montenegro" #: src/hd-data.c:427 msgid "South Africa" msgstr "Sudafrica" #: src/hd-data.c:428 msgid "Zambia" msgstr "Zambia" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:459 msgid "1st Advent" msgstr "1ÂŞ di Avvento" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "1ÂŞ domenica di Quaresima" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "2ÂŞ di Avvento" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "2ÂŞ domenica di Quaresima" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "3ÂŞ di Avvento" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "3ÂŞ domenica di Quaresima" #: src/hd-data.c:465 msgid "4th Advent" msgstr "4ÂŞ di Avvento" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "4ÂŞ domenica di Quaresima" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "Festival 7-5-3" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "Giorno degli Aborigeni" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "Pesce d'Aprile" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "Tutti i Santi" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "Commemorazione dei defunti" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "Giorno dell'Alfabeto Coreano" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "Anniversario di Auckland" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "Anniversario di Canterbury Nord" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "Anniversario di Canterbury Sud" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "Anniversario delle isole Chatham" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "Anniversario della baia di Hawkes" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "Anniversario di Marlborough" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "Anniversario di Nelson" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "Anniversario di Otago" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "Anniversario di Southland" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "Anniversario di Taranaki" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "Anniversario di Wellington" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "Anniversario di Westland" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "Anzac Day" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "Arbor Day" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "Giorno delle Forze Armate" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "Giorno dell'armistizio" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "Ascensione di Abdu'l-Baha" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "Ascensione di Baha'u'llah" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "Nascita di Baha'u'llah" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "Nascita del Bab" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "Bank Holiday" #: src/hd-data.c:503 msgid "Basque National Day" msgstr "" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "" #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "" #: src/hd-data.c:514 msgid "Burns Night" msgstr "" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "" #: src/hd-data.c:516 msgid "Carnival" msgstr "Carnevale" #: src/hd-data.c:517 msgid "Beltane" msgstr "" #: src/hd-data.c:518 msgid "Imbolg" msgstr "" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "" #: src/hd-data.c:521 msgid "Children's Day" msgstr "" #: src/hd-data.c:522 msgid "Cycle" msgstr "" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "Natale" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "Vigilia di Natale" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "" #: src/hd-data.c:538 msgid "Culture Day" msgstr "Giorno della Cultura" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:547 msgid "Double-9 Day" msgstr "" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "LunedĴ dell'Angelo" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "Eclisse lunare" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "Eclisse solare" #: src/hd-data.c:554 msgid "Annular" msgstr "" #: src/hd-data.c:555 msgid "Partial" msgstr "" #: src/hd-data.c:556 msgid "Penumbral" msgstr "" #: src/hd-data.c:557 msgid "Total" msgstr "" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "" #: src/hd-data.c:559 msgid "Election Day" msgstr "" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "" #: src/hd-data.c:561 msgid "Equinox Day" msgstr "Equinozio" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "" #: src/hd-data.c:563 msgid "Father's Day" msgstr "" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "" #: src/hd-data.c:565 msgid "Feast of Fortune" msgstr "" #: src/hd-data.c:566 msgid "Feast of Heart Jesus" msgstr "" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:569 msgid "Flag Day" msgstr "" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "" #: src/hd-data.c:573 msgid "French Revolutionary" msgstr "" #: src/hd-data.c:574 msgid "Friendship Day" msgstr "" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "" #: src/hd-data.c:576 msgid "Good Friday" msgstr "" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "" #: src/hd-data.c:579 msgid "Greenery Day" msgstr "" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "" #: src/hd-data.c:583 msgid "Guy Fawkes Day" msgstr "" #: src/hd-data.c:584 msgid "Halloween" msgstr "Halloween" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:604 msgid "Huravee Day" msgstr "" #: src/hd-data.c:605 msgid "Independence Day" msgstr "" #: src/hd-data.c:606 msgid "Independence Movement Day" msgstr "" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "" #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "" #: src/hd-data.c:610 msgid "Ashura'" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:614 msgid "Ghadir" msgstr "" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:618 msgid "Quds Day" msgstr "" #: src/hd-data.c:619 msgid "Ramadan" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:628 msgid "Labour Day" msgstr "" #: src/hd-data.c:629 msgid "Labour Thanksgiving Day" msgstr "" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "" #: src/hd-data.c:632 msgid "Marine Day" msgstr "" #: src/hd-data.c:633 msgid "Martinimas" msgstr "" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "Annunciazione di Maria" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "Assunzione di Maria" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "Candelora" #: src/hd-data.c:639 msgid "Mary's Expectation" msgstr "Attesa di Maria" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "Immacolata Concezione di Maria" #: src/hd-data.c:641 msgid "Mary's Maternity" msgstr "Maternit  di Maria" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "Nome di Maria" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "Nativit  di Maria" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "Sacrificio di Maria" #: src/hd-data.c:645 msgid "Mary's Visitation" msgstr "Visitazione della Beata Vergine Maria" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "Maria - Vergine benedetta" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "" #: src/hd-data.c:648 msgid "May Day" msgstr "" #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:654 msgid "Full Moon" msgstr "Luna piena" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:656 msgid "New Moon" msgstr "Luna nuova" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "" #: src/hd-data.c:661 msgid "National Holiday" msgstr "" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "Domenica delle Palme" #: src/hd-data.c:670 msgid "Parent's Day" msgstr "" #: src/hd-data.c:671 msgid "Passion Sunday" msgstr "Domenica della Passione" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "Giorno della preghiera" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "" #: src/hd-data.c:679 msgid "Presidents' Inform" msgstr "" #: src/hd-data.c:680 msgid "President Lincoln's Birthday" msgstr "" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:685 msgid "Republic Day" msgstr "" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "" #: src/hd-data.c:689 msgid "Rogation Sunday" msgstr "" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:693 msgid "Septuagesima Sunday" msgstr "" #: src/hd-data.c:694 msgid "Seven Sleepers Day" msgstr "" #: src/hd-data.c:695 msgid "Sexagesima Sunday" msgstr "" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "" #: src/hd-data.c:697 msgid "Solstice Day" msgstr "Solstizio" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "Festival di primavera" #: src/hd-data.c:700 msgid "Start of common month" msgstr "" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "" #: src/hd-data.c:702 msgid "Star Festival" msgstr "" #: src/hd-data.c:703 msgid "St Andrew's Day" msgstr "Sant'Andrea" #: src/hd-data.c:704 msgid "St Bartholomew Day" msgstr "San Bartolomeo" #: src/hd-data.c:705 msgid "St Berchtold's Day" msgstr "" #: src/hd-data.c:706 msgid "St David's Day" msgstr "" #: src/hd-data.c:707 msgid "St Edward's Day" msgstr "" #: src/hd-data.c:708 msgid "St George's Day" msgstr "San Giorgio" #: src/hd-data.c:709 msgid "St James' Day" msgstr "" #: src/hd-data.c:710 msgid "St Joseph's Day" msgstr "San Giuseppe" #: src/hd-data.c:711 msgid "St Laurentius Day" msgstr "" #: src/hd-data.c:712 msgid "St Nicholas' Day" msgstr "" #: src/hd-data.c:713 msgid "St Nicholas' Eve" msgstr "" #: src/hd-data.c:714 msgid "St Patrick's Day" msgstr "San Patrizio" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "Santi Pietro e Paolo" #: src/hd-data.c:716 msgid "St Stephen's Day" msgstr "Santo Stefano" #: src/hd-data.c:717 msgid "St Valentine's Day" msgstr "San Valentino" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "" #: src/hd-data.c:720 msgid "Sweetest Day" msgstr "" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "San Silvestro/Capodanno" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "" #: src/hd-data.c:723 msgid "Thai New Year's Day" msgstr "" #: src/hd-data.c:724 msgid "Thanksgiving Day" msgstr "Giorno del Ringraziamento" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "" #: src/hd-data.c:728 msgid "Tiradentes Day" msgstr "" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:730 msgid "Transfiguration Day" msgstr "Trasfigurazione di Nostro Signore" #: src/hd-data.c:731 msgid "Tynwald Day" msgstr "" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "" #: src/hd-data.c:736 msgid "Victory Day" msgstr "" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "" #: src/hd-data.c:738 msgid "Women's Day" msgstr "" #: src/hd-data.c:739 msgid "Women's Shrove Day" msgstr "" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "" #: src/hd-data.c:741 msgid "Youth Day" msgstr "" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:748 msgid "Admission Day" msgstr "" #: src/hd-data.c:749 msgid "Alaska Day" msgstr "" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:752 msgid "All Saints' Eve" msgstr "" #: src/hd-data.c:753 msgid "Americas Day" msgstr "" #: src/hd-data.c:754 msgid "Angam Day" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:759 msgid "Antillian Day" msgstr "" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:764 msgid "Arengo Anniversary" msgstr "" #: src/hd-data.c:765 msgid "Army Coup Day" msgstr "" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:767 msgid "Artigas' Birthday" msgstr "" #: src/hd-data.c:768 msgid "Asuncion Day" msgstr "" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:771 msgid "Ba'ath Revolution Day" msgstr "" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:773 msgid "Bataan Day" msgstr "" #: src/hd-data.c:774 msgid "Battle of Angamos" msgstr "" #: src/hd-data.c:775 msgid "Battle of BoyacĦ" msgstr "" #: src/hd-data.c:776 msgid "Battle of Carabobo" msgstr "" #: src/hd-data.c:777 msgid "Battle of Iquique" msgstr "" #: src/hd-data.c:778 msgid "Battle of Las Piedras" msgstr "" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "" #: src/hd-data.c:786 msgid "Bonaire Day" msgstr "" #: src/hd-data.c:787 msgid "Boqueron Battle Day" msgstr "" #: src/hd-data.c:788 msgid "Botswana Day" msgstr "" #: src/hd-data.c:789 msgid "Bounty Day" msgstr "" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "" #: src/hd-data.c:792 msgid "Canberra Day" msgstr "" #: src/hd-data.c:793 msgid "Caricom Day" msgstr "" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:795 msgid "Cassinga Day" msgstr "" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:798 msgid "Charter Day" msgstr "" #: src/hd-data.c:799 msgid "Chiang Kai-shek's Birthday" msgstr "" #: src/hd-data.c:800 msgid "Children's White Sunday" msgstr "" #: src/hd-data.c:801 msgid "Colon Day" msgstr "" #: src/hd-data.c:802 msgid "Colorado Day" msgstr "" #: src/hd-data.c:803 msgid "Commonwealth Day" msgstr "" #: src/hd-data.c:804 msgid "Compact Day" msgstr "" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "" #: src/hd-data.c:807 msgid "Cup Match Day" msgstr "" #: src/hd-data.c:808 msgid "Custom Chief's Day" msgstr "" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:814 msgid "Death of H. Christophe" msgstr "" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:821 msgid "Defenders Day" msgstr "" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:824 msgid "Discovery Day" msgstr "" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:827 msgid "Dr. Sun Yat-sen's Birthday" msgstr "" #: src/hd-data.c:828 msgid "Duarte's Birthday" msgstr "" #: src/hd-data.c:829 msgid "Easter Tuesday" msgstr "" #: src/hd-data.c:830 msgid "Economic Liberation Day" msgstr "" #: src/hd-data.c:831 msgid "Eight Hours Day" msgstr "" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:834 msgid "Evacuation Day" msgstr "" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:838 msgid "Family Day" msgstr "" #: src/hd-data.c:839 msgid "FAO Day" msgstr "" #: src/hd-data.c:840 msgid "Farmers' Day" msgstr "" #: src/hd-data.c:841 msgid "Father Leval Day" msgstr "" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "" #: src/hd-data.c:843 msgid "Fisherman's Day" msgstr "" #: src/hd-data.c:844 msgid "Foundation of NPLA Day" msgstr "" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:849 msgid "Gospel Day" msgstr "" #: src/hd-data.c:850 msgid "Guacanaste Day" msgstr "" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "" #: src/hd-data.c:852 msgid "Heritage Day" msgstr "" #: src/hd-data.c:853 msgid "Heroes Day" msgstr "" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:855 msgid "Holy Wednesday" msgstr "" #: src/hd-data.c:856 msgid "Ho Chi Minh's Birthday" msgstr "" #: src/hd-data.c:857 msgid "Human Rights Day" msgstr "" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:859 msgid "Hurricane Thanksgiving Day" msgstr "" #: src/hd-data.c:860 msgid "Independence of Cartagena" msgstr "" #: src/hd-data.c:861 msgid "Independence of Cuenca" msgstr "" #: src/hd-data.c:862 msgid "Independence of Guayaquil" msgstr "" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:865 msgid "Internal Autonomy Day" msgstr "" #: src/hd-data.c:866 msgid "Jefferson Davis' Birthday" msgstr "" #: src/hd-data.c:867 msgid "June Holiday" msgstr "" #: src/hd-data.c:868 msgid "J. Barbosa's Birthday" msgstr "" #: src/hd-data.c:869 msgid "J. Chilembwe Day" msgstr "" #: src/hd-data.c:870 msgid "J. Diego's Birthday" msgstr "" #: src/hd-data.c:871 msgid "J. Robert's Birthday" msgstr "" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:873 msgid "Kartini Day" msgstr "" #: src/hd-data.c:874 msgid "Catherine Show Day" msgstr "" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "" #: src/hd-data.c:876 msgid "Kim Il-Sung's Birthday" msgstr "" #: src/hd-data.c:877 msgid "Kim Jong-Il's Birthday" msgstr "" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:885 msgid "Liberty Day" msgstr "" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:888 msgid "Lyndon B. Johnson Day" msgstr "" #: src/hd-data.c:889 msgid "L. Rivera's Birthday" msgstr "" #: src/hd-data.c:890 msgid "Madaraka Day" msgstr "" #: src/hd-data.c:891 msgid "Mahatma Gandhi's Birthday" msgstr "" #: src/hd-data.c:892 msgid "Malvinas Day" msgstr "" #: src/hd-data.c:893 msgid "Manila Day" msgstr "" #: src/hd-data.c:894 msgid "Maputo City Day" msgstr "" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:896 msgid "Maryland Day" msgstr "" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:898 msgid "Merchant Day" msgstr "" #: src/hd-data.c:899 msgid "St John's/Midsummers Eve" msgstr "" #: src/hd-data.c:900 msgid "Missionary Day" msgstr "" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "" #: src/hd-data.c:902 msgid "Morazan Day" msgstr "" #: src/hd-data.c:903 msgid "Mosheshoe's Day" msgstr "" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:905 msgid "Naming Day" msgstr "" #: src/hd-data.c:906 msgid "National Bun Day" msgstr "" #: src/hd-data.c:907 msgid "National Heroes Day" msgstr "" #: src/hd-data.c:908 msgid "National Redemption Day" msgstr "" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:910 msgid "National Revival Day" msgstr "" #: src/hd-data.c:911 msgid "National Unity Day" msgstr "" #: src/hd-data.c:912 msgid "Ndadaye Day" msgstr "" #: src/hd-data.c:913 msgid "Neutrality Day" msgstr "" #: src/hd-data.c:914 msgid "Nevada Day" msgstr "" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "" #: src/hd-data.c:917 msgid "Noi Day" msgstr "" #: src/hd-data.c:918 msgid "OAU Day" msgstr "" #: src/hd-data.c:919 msgid "October Holiday" msgstr "" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:927 msgid "Panama City Day" msgstr "" #: src/hd-data.c:928 msgid "Panamerica Day" msgstr "" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:930 msgid "Patriot's Day" msgstr "" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "" #: src/hd-data.c:932 msgid "People Power Day" msgstr "" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:934 msgid "Pichincha Day" msgstr "" #: src/hd-data.c:935 msgid "Picnic Day" msgstr "" #: src/hd-data.c:936 msgid "Pioneer Day" msgstr "" #: src/hd-data.c:937 msgid "Poya Day" msgstr "" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:939 msgid "Prince of Wales' Birthday" msgstr "" #: src/hd-data.c:940 msgid "Proclamation Day" msgstr "" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:943 msgid "Recreation Day" msgstr "" #: src/hd-data.c:944 msgid "Referendum Day" msgstr "" #: src/hd-data.c:945 msgid "Regatta Day" msgstr "" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:947 msgid "Restoration Day" msgstr "" #: src/hd-data.c:948 msgid "Return Day" msgstr "" #: src/hd-data.c:949 msgid "Reunification Day" msgstr "" #: src/hd-data.c:950 msgid "Rizal Day" msgstr "" #: src/hd-data.c:951 msgid "Rwagasore Day" msgstr "" #: src/hd-data.c:952 msgid "Saba Day" msgstr "" #: src/hd-data.c:953 msgid "San Jacinto Day" msgstr "" #: src/hd-data.c:954 msgid "San Josİ Day" msgstr "" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:956 msgid "School Holiday" msgstr "" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "" #: src/hd-data.c:958 msgid "Separation Day" msgstr "" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:960 msgid "Settlers Day" msgstr "" #: src/hd-data.c:961 msgid "Seward's Day" msgstr "" #: src/hd-data.c:962 msgid "Shaheed Day" msgstr "" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:964 msgid "Sheikh Zayed's Ascension Day" msgstr "" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:970 msgid "Somers Day" msgstr "" #: src/hd-data.c:971 msgid "Statia-American Day" msgstr "" #: src/hd-data.c:972 msgid "Student's Day" msgstr "" #: src/hd-data.c:973 msgid "St Agata Day" msgstr "" #: src/hd-data.c:974 msgid "St Canute's Day" msgstr "" #: src/hd-data.c:975 msgid "St Cedilia's Day" msgstr "" #: src/hd-data.c:976 msgid "St Charles' Day" msgstr "" #: src/hd-data.c:977 msgid "St Demetrius' Day" msgstr "" #: src/hd-data.c:978 msgid "St Dİvote Day" msgstr "" #: src/hd-data.c:979 msgid "St Eliah's Day" msgstr "" #: src/hd-data.c:980 msgid "St Jean Baptiste Day" msgstr "" #: src/hd-data.c:981 msgid "St Lucia's Day" msgstr "" #: src/hd-data.c:982 msgid "St Marguerite's Day" msgstr "" #: src/hd-data.c:983 msgid "St Maroon's Day" msgstr "" #: src/hd-data.c:984 msgid "St Michael's Day" msgstr "" #: src/hd-data.c:985 msgid "St Olav's Day" msgstr "" #: src/hd-data.c:986 msgid "St Olav's Eve" msgstr "" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:989 msgid "St Ursula's Day" msgstr "" #: src/hd-data.c:990 msgid "St Vincent de Paul's Day" msgstr "" #: src/hd-data.c:991 msgid "Suez Victory Day" msgstr "" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:994 msgid "Sweden Day" msgstr "" #: src/hd-data.c:995 msgid "S. Doe's Birthday" msgstr "" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:997 msgid "Territory Day" msgstr "" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "" #: src/hd-data.c:1000 msgid "The Crown Prince's Birthday" msgstr "" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1004 msgid "Town Meeting Day" msgstr "" #: src/hd-data.c:1005 msgid "Traditional Day" msgstr "" #: src/hd-data.c:1006 msgid "Transfer Day" msgstr "" #: src/hd-data.c:1007 msgid "Truman Day" msgstr "" #: src/hd-data.c:1008 msgid "Union Day" msgstr "" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "" #: src/hd-data.c:1011 msgid "Unity Factory Day" msgstr "" #: src/hd-data.c:1012 msgid "Victor-Schoelcher Day" msgstr "" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1014 msgid "West Virginia Day" msgstr "" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "" #: src/hd-data.c:1016 msgid "W. Tubman's Birthday" msgstr "" #: src/hd-data.c:1017 msgid "Yap Day" msgstr "" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "Zi/Topo" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "Chou/Bue" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "Yin/Tigre" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "Mao/Coniglio" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "Chen/Drago" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "Si/Serpente" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "Wu/Cavallo" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "Wei/Pecora" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "Shen/Scimmia" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "You/Gallo" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "Xu/Cane" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "Hai/Maiale" #: src/hd-data.c:1287 msgid "Ast" msgstr "" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "" #: src/hd-data.c:1550 msgid "Cel" msgstr "" #: src/hd-data.c:1692 src/hd-data.c:2225 msgid "Chi" msgstr "" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2227 src/hd-data.c:3730 msgid "Jap" msgstr "" #: src/hd-data.c:2423 msgid "Chr" msgstr "" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "" #: src/hd-data.c:2778 src/hd-data.c:2960 msgid "Heb" msgstr "" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "" #: src/hd-data.c:4447 msgid "OxN" msgstr "" #: src/hd-data.c:4449 msgid "OxO" msgstr "" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "" #: src/hd-data.c:4847 msgid "Zod" msgstr "" #: src/hd-use.c:929 msgid " day" msgstr " giorno" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr " = %+4d giorno" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr " = %+4d giorni" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "" #: src/help.c:75 msgid "# Day number (must be defined)" msgstr "" #: src/help.c:76 msgid "# Year number (must be defined)" msgstr "" #: src/help.c:77 msgid "# Weekday name (may be defined)" msgstr "" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "" #: src/help.c:79 msgid "# Month number" msgstr "" #: src/help.c:80 msgid "# Month name" msgstr "" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "" #: src/help.c:86 msgid "Character replacement:" msgstr "" #: src/help.c:87 #, c-format msgid "Space/blank ('%c') character" msgstr "" #: src/help.c:88 #, c-format msgid "Underscore ('%c') character" msgstr "" #: src/help.c:89 #, c-format msgid "Percent ('%c') character" msgstr "" #: src/help.c:90 #, c-format msgid "Backslash ('%c') character" msgstr "" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:94 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:104 msgid "Numerical value is filled with leading zero(es)" msgstr "" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:107 msgid "STYLE group (exactly one member may be defined):" msgstr "" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "SUFFISSO (pu² essere definito):" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:114 msgid "FORMAT group (exactly one member must be defined):" msgstr "" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:130 msgid "legal holidays" msgstr "tutte le feste nazionali" #: src/help.c:131 msgid "holidays" msgstr "tutte le ferie" #: src/help.c:132 msgid "Mondays" msgstr "tutti i lunedĴ" #: src/help.c:133 msgid "Tuesdays" msgstr "tutti i martedĴ" #: src/help.c:134 msgid "Wednesdays" msgstr "tutti i mercoledĴ" #: src/help.c:135 msgid "Thursdays" msgstr "tutti i giovedĴ" #: src/help.c:136 msgid "Fridays" msgstr "tutti i venerdĴ" #: src/help.c:137 msgid "Saturdays" msgstr "tutti i sabati" #: src/help.c:138 msgid "Sundays" msgstr "tutte le domeniche" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "tutti i lunedĴ...giovedĴ" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "tutti i lunedĴ...venerdĴ" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s: usare \"%s %s\" con uno di questi argomenti" #: src/help.c:243 msgid "OPTION" msgstr "OPZIONE" #: src/help.c:256 msgid " Display help text and quit program" msgstr " Mostra questo aiuto ed esce da programma" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr " Mostra un aiuto esteso ed esce dal programma" #: src/help.c:291 msgid " Display software license and quit program" msgstr " Mostra la licenza ed esce dal programma" #: src/help.c:302 msgid " Display version information and quit program" msgstr " Mostra le informazioni sulla versione ed esce dal programma" #: src/help.c:313 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "" #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr "" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " %-3s = Memorizza gli argomenti della riga di comando nel file %s" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" " Crea script di shell contenente gli argomenti della riga di comando" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Nome file dello script di shell" #: src/help.c:360 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" #: src/help.c:364 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" #: src/help.c:369 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr " Esporta variabili locali della data da file a file" #: src/help.c:393 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "" #: src/help.c:398 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" #: src/help.c:403 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" #: src/help.c:409 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" #: src/help.c:414 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr " Esporta variabili locali di testo da file a file" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr " %-3s = Uno o piı dei seguenti caratteri. Se il carattere" #: src/help.c:448 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " ¨ una LETTERA MINUSCOLA, significa non-esclusione." #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Esclusione di %s" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "" #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr " espressioni separate da caratteri \"%s\"" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr "" #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:520 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr "" #: src/help.c:531 msgid " Display some debug information" msgstr " Mostra alcune informazioni di debug" #: src/help.c:539 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr "" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr "" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr "" #: src/help.c:596 msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" #: src/help.c:606 msgid " Provide calendar sheet with week numbers" msgstr " Fornisce un calendario con in tabella i numeri di settimana" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Determina il tipo di numeri di settimana (attuale: %s)" #: src/help.c:618 msgid "Standard" msgstr "Standard" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = sĴ Numeri di settimana ISO-8601:1988" #: src/help.c:631 msgid " = no Standard week numbers" msgstr " = no Numeri di settimana standard" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr "" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr "" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr "" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr "" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "" #: src/help.c:716 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" #: src/help.c:721 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" #: src/help.c:732 msgid " Modify format of year calendar" msgstr "" #: src/help.c:736 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr " %-3s = 1|2|3|4|6|12 Numero di blocchi (attuale: %d)" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr "" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b Usa entrambe le notazioni di data (giorno del mese+anno)" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr "" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b Usa entrambe le notazioni di data (giorno del mese+anno)" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr "" #: src/help.c:795 #, c-format msgid " Set starting day of week (actual: %s)" msgstr " Imposta giorno iniziale della settimana (attuale: %s)" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr "" #: src/help.c:857 msgid "UNKNOWN" msgstr "" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" " [%-3s] = Indirizzo email, diversamente l'email ¨ inviata all'utente \"%s" "\"" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr "" #: src/help.c:883 msgid " N = Legal days only" msgstr " N = Solo feste nazionali" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Ordinamento decrescente" #: src/help.c:897 msgid " Suppress leading blank line of eternal holiday list" msgstr "" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr "" #: src/help.c:919 msgid " Provide eternal holiday list with astronomical data" msgstr "" #: src/help.c:931 msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr "" #: src/help.c:943 msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr "" #: src/help.c:955 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "" #: src/help.c:967 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" #: src/help.c:979 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" #: src/help.c:991 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "" #: src/help.c:1003 msgid " Provide eternal holiday list with Chinese calendar months" msgstr "" #: src/help.c:1015 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" #: src/help.c:1027 msgid " Provide eternal holiday list with Coptic calendar months" msgstr "" #: src/help.c:1039 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "" #: src/help.c:1051 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" #: src/help.c:1063 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "" #: src/help.c:1075 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "" #: src/help.c:1087 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "" #: src/help.c:1099 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "" #: src/help.c:1111 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "" #: src/help.c:1123 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" #: src/help.c:1135 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" #: src/help.c:1147 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "" #: src/help.c:1159 msgid " Provide eternal holiday list with Japanese calendar months" msgstr "" #: src/help.c:1172 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" #: src/help.c:1184 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "" #: src/help.c:1196 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "" #: src/help.c:1208 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "" #: src/help.c:1220 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" #: src/help.c:1232 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" #: src/help.c:1244 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" #: src/help.c:1256 msgid " Provide eternal holiday list with zodiacal marker data" msgstr "" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr "" #: src/help.c:1272 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr "" #: src/help.c:1277 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1286 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = Ferie in %s" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1322 msgid " Set base data of Earth's atmosphere" msgstr "" #: src/help.c:1326 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "" " %-3s = Pressione atmosferica e temperatura separati dal carattere \"%s" "\"" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " Pressione atmosferica in Millibar (attuale: %.3f)" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr " Temperatura dell'aria in gradi Celsius (attuale: %+.3f)" #: src/help.c:1344 msgid " Limit rise/set times of Sun to the day" msgstr "" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1366 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr "" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1453 msgid " Change base year of calendar" msgstr "" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr "" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1485 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr "" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" #: src/help.c:1502 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Attuale: (%s) \"%s\" (%s)" #: src/help.c:1504 msgid "self-defined" msgstr "" #: src/help.c:1509 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = Il formato ¨: \"%s\" (%s)" #: src/help.c:1517 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1582 msgid " they are used by the character set used in Germany" msgstr "" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ DATE FISSE +++" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr "" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr " c = Mostra solamente le date per le quali esistono date fisse" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr " c = Mostra anche le date per le quali non esistono date fisse" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" #: src/help.c:1654 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" #: src/help.c:1657 #, c-format msgid " Actual: `%s'" msgstr " Attuale: \"%s\"" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" #: src/help.c:1682 msgid " 1. Representation of text" msgstr " 1. Rappresentazione del testo" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr "" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr "" #: src/help.c:1711 msgid " = Set height of the Moon phase text graphics" msgstr "" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr "" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr "" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr "" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr "" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr "" #: src/help.c:1763 msgid " # k = Display week number" msgstr "" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr "" #: src/help.c:1787 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr "" #: src/help.c:1811 msgid " # J = Suppress text part of fixed dates" msgstr "" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr "" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr "" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" " # Z = Mostra le date per le quali non esistono date " "fisse" #: src/help.c:1855 msgid " 2. Respected period" msgstr "" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr "" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr "" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr "" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr "" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr "" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr "" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr "" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1ÂŞ / ultima settimana dell'anno " "precedente" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 1ÂŞ...52ÂŞ settimana (sempre)" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53ÂŞ settimana (qualche volta)" #: src/help.c:1953 msgid " N = 99 Last week" msgstr " N = 99 Ultima settimana" #: src/help.c:1956 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr "" #: src/help.c:1962 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr "" #: src/help.c:1967 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" " N = 1...4 1°...4° giorno della settimana %s " "(sempre)" #: src/help.c:1972 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" " N = 5 5° giorno della settimana %s (qualche " "volta)" #: src/help.c:1976 #, c-format msgid " N = 9 Last weekday %s" msgstr "" " N = 9 Ultimo giorno della settimana %s" #: src/help.c:1980 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr "" #: src/help.c:1985 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" " N = 1...51 1°...51° giorno della settimana %s " "(sempre)" #: src/help.c:1990 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" " N = 52|53 52°|53° giorno della settimana %s " "(qualche volta)" #: src/help.c:1994 #, c-format msgid " N = 99 Last weekday %s" msgstr "" " N = 99 Ultimo giorno della settimana %s" #: src/help.c:1999 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr "" #: src/help.c:2004 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" #: src/help.c:2009 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" " N = 1...51 %s della 1ÂŞ...51ÂŞ settimana (sempre)" #: src/help.c:2014 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" " N = 52|53 %s della 52ÂŞ|53ÂŞ settimana (qualche " "volta)" #: src/help.c:2018 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 %s dell'ultima settimana" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "" #: src/help.c:2030 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "" #: src/help.c:2042 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr "" #: src/help.c:2054 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr " # t|T = Elenca domani" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Elenca l'intera settimana" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Elenca l'intero mese" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Elenca l'intero anno" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr "" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:2173 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" #: src/help.c:2184 msgid " Define additional resource file line" msgstr "" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr "" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "%cDATA" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "" #: src/help.c:2202 #, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" "Formato data: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "%cFILE" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "Precarica le opzioni e i comandi da \"FILE\"" #: src/help.c:2224 msgid "COMMAND" msgstr "COMANDO" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr "" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr "" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr "" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr "" #: src/help.c:2257 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr "" #: src/help.c:2283 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr " %sh, %s Mostra questo aiuto ed esce dal programma" #: src/help.c:2286 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " %shh, %s Mostra un aiuto esteso ed esce dal programma" #: src/help.c:2290 #, c-format msgid " %sL, %s Display software license and quit program" msgstr " %sL, %s Mostra la licenza ed esce dal programma" #: src/help.c:2294 #, c-format msgid " %sV, %s Display version information and quit program" msgstr "" " %sV, %s Mostra le informazioni sulla versione ed esce dal programma" #: src/help.c:2302 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "" #: src/help.c:2309 src/help.c:2314 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr "" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "" #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "" #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "" #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "" #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" #: src/help.c:2366 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" #: src/help.c:2368 msgid "any later version." msgstr "" #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "" #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" #: src/help.c:2452 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Usare \"%s %s|[%s?]" #: src/help.c:2461 msgid "for more information." msgstr "per maggiori informazioni." #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, c-format msgid "Email bug reports to <%s>" msgstr "Segnalare i bug via email a <%s>" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "" #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" #: src/help.c:2617 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Uso: %s [[OPZIONE...] [%cDATA] [%cFILE...]] [COMANDO]" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Uso: %s [[OPZIONE...] [%cFILE...]] [COMANDO]" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr " 4.0 oppure 4.02" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr " successiva alla 5.0" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "++ 3.0 o successiva" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "5.1 o precedente" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "compilatore sconosciuto" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr "" #: src/help.c:2827 msgid "(bad version)" msgstr "(versione errata)" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "compilatore sconosciuto (SDK?)" #: src/help.c:2942 msgid " later than 4.5" msgstr " successiva alla 4.5" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "++ 1.0 o successiva" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr " 1.0 oppure 1.5?" #: src/help.c:3075 msgid "unknown " msgstr "" #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "versione %d.%d" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "versione %d" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "versione sconosciuta" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s per Alpha)" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s per VAX)" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr " (NetBSD prima della 0.9)" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 o successiva)" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 o successiva)" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 o successiva)" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "" #: src/print.c:566 msgid "Week" msgstr "Settimana" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "pm" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "am" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "Impossibile eseguire il comando nel file \"%s\"\n" "Riga: %ld %s" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" "Comando eseguito (codice uscita=%d) nel file \"%s\"\n" "Riga %ld: %s" #: src/rc-use.c:514 msgid "Emo" msgstr "" #: src/rc-use.c:519 msgid "Int" msgstr "" #: src/rc-use.c:524 msgid "Phy" msgstr "" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr " ; Settimana %s" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "Settimana %s" #: src/rc-utils.c:398 src/rc-utils.c:415 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%s: data fornita non valida -- %s\n" "%s\n" "%s\n" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "" #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "Riga %ld: %s" #: src/rc-utils.c:3634 src/utils.c:275 #, c-format msgid "%s: abort, " msgstr "" #: src/rc-utils.c:3642 #, c-format msgid "illegal variable definition in file `%s'" msgstr "definizione non valida della variabile nel file \"%s\"" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "definizione non valida della variabile \"%c\"" #: src/rc-utils.c:3651 #, c-format msgid "illegal variable operation in file `%s'" msgstr "operazione non valida sulla variabile nel file \"%s\"" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "operazione non valida sulla variabile \"%c\"" #: src/rc-utils.c:3659 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "variabile \"%c\" non definita nel file \"%s\"" #: src/rc-utils.c:3663 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "valore non valido assegnato alla variabile \"%c\" nel file \"%s\"" #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Fornito argomento non valido nella riga di comando -- %s" #: src/rc-utils.c:3696 #, c-format msgid "Argument `%s' of command line ignored." msgstr "Ignorato argomento \"%s\" della riga di comando." #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "Riga %ld ignorata: %s" #: src/tty.c:425 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "" #: src/tty.c:1020 #, c-format msgid "environment variable `%s' not found" msgstr "variabile ambiente \"%s\" non trovata" #: src/tty.c:1027 #, c-format msgid "environment variable `%s' not set" msgstr "variabile ambiente \"%s\" non impostata" #: src/tty.c:1067 msgid "`termcap' file not found" msgstr "file \"termcap\" non trovato" #: src/tty.c:1072 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "tipo di terminale sconosciuto definito in \"%s\"" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: attenzione, %s.\n" "\n" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "file \"%s\" non trovato" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "il file \"%s\" non pu² essere scritto\n" "Supporto di memorizzazione pieno" #: src/utils.c:333 #, c-format msgid "sending eMail to <%s> failed" msgstr "invio dell'email a <%s> non riuscito" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "\"%s\" riga %ld: " #: src/utils.c:342 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "\"%s\" riga %ld: (\"%s\") \"%s%d\" non riuscito" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "errore di lettura nel file \"%s\"" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 msgid "internal" msgstr "" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" #: src/utils.c:1081 msgid "th" msgstr "°" #: src/utils.c:1085 msgid "st" msgstr "°" #: src/utils.c:1089 msgid "nd" msgstr "°" #: src/utils.c:1093 msgid "rd" msgstr "°" #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "giorno non valido" #: src/utils.c:1129 msgid "Mon" msgstr "Lun" #: src/utils.c:1134 msgid "Tue" msgstr "Mar" #: src/utils.c:1139 msgid "Wed" msgstr "Mer" #: src/utils.c:1144 msgid "Thu" msgstr "Gio" #: src/utils.c:1149 msgid "Fri" msgstr "Ven" #: src/utils.c:1154 msgid "Sat" msgstr "Sab" #: src/utils.c:1159 msgid "Sun" msgstr "Dom" #: src/utils.c:1180 msgid "Mo" msgstr "Lu" #: src/utils.c:1185 msgid "Tu" msgstr "Ma" #: src/utils.c:1190 msgid "We" msgstr "Me" #: src/utils.c:1195 msgid "Th" msgstr "Gi" #: src/utils.c:1200 msgid "Fr" msgstr "Ve" #: src/utils.c:1205 msgid "Sa" msgstr "Sa" #: src/utils.c:1210 msgid "Su" msgstr "Do" #: src/utils.c:1227 msgid "Monday" msgstr "LunedĴ" #: src/utils.c:1227 msgid "Tuesday" msgstr "MartedĴ" #: src/utils.c:1227 msgid "Wednesday" msgstr "MercoledĴ" #: src/utils.c:1227 msgid "Thursday" msgstr "GiovedĴ" #: src/utils.c:1228 msgid "Friday" msgstr "VenerdĴ" #: src/utils.c:1228 msgid "Saturday" msgstr "Sabato" #: src/utils.c:1228 msgid "Sunday" msgstr "Domenica" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "mese non valido" #: src/utils.c:1249 msgid "Jan" msgstr "Gen" #: src/utils.c:1254 msgid "Feb" msgstr "Feb" #: src/utils.c:1259 msgid "Mar" msgstr "Mar" #: src/utils.c:1264 msgid "Apr" msgstr "Apr" #: src/utils.c:1269 msgid "May" msgstr "Mag" #: src/utils.c:1274 msgid "Jun" msgstr "Giu" #: src/utils.c:1279 msgid "Jul" msgstr "Lug" #: src/utils.c:1284 msgid "Aug" msgstr "Ago" #: src/utils.c:1289 msgid "Sep" msgstr "Set" #: src/utils.c:1294 msgid "Oct" msgstr "Ott" #: src/utils.c:1299 msgid "Nov" msgstr "Nov" #: src/utils.c:1304 msgid "Dec" msgstr "Dic" #: src/utils.c:1322 msgid "January" msgstr "Gennaio" #: src/utils.c:1322 msgid "February" msgstr "Febbraio" #: src/utils.c:1323 msgid "March" msgstr "Marzo" #: src/utils.c:1323 msgid "April" msgstr "Aprile" #: src/utils.c:1333 msgid "May " msgstr "Maggio" #: src/utils.c:1334 msgid "June" msgstr "Giugno" #: src/utils.c:1334 msgid "July" msgstr "Luglio" #: src/utils.c:1335 msgid "August" msgstr "Agosto" #: src/utils.c:1335 msgid "September" msgstr "Settembre" #: src/utils.c:1336 msgid "October" msgstr "Ottobre" #: src/utils.c:1336 msgid "November" msgstr "Novembre" #: src/utils.c:1336 msgid "December" msgstr "Dicembre" #: src/tcal.c:193 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Uso: %s [--%s | --%s] | [--%s=[+|-]NUMERO] [ARGOMENTO...]\n" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "" #: src/tcal.c:909 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: l'opzione \"--%s\" richiede un argomento" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: errore durante l'esecuzione del programma \"%s\"\n" #: src/txt2gcal.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "%s: file non trovato\n" #: src/gcal2txt.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "" gcal-4.1/po/da.gmo0000664000000000000000000017220213041164031010660 00000000000000Ŝ•Ġì9@M AM"NMqM…MC–MAÚMENBbN+NLÑNKOKjOMĥO@P=EP1ƒPAµPC÷PA;QI}QHÇQHR?YR*™R$ÄR?éR4)SE^SD¤SDéS1.T@`T2ĦT9ÔT0U*?U<jUM§U7ġUN-V?|VBĵVN˙V.NWB}W(ÀW-éW;X-SXCX#ĊXéXJY?RYH’YJÛY5&Z6\ZJ“Z3ŜZ5[AH[?Š[5Ê[,\J-\Ex\3\/ò\7"]7Z]E’]:Ĝ] ^(4^E]^.£^JÒ^=_-[_6‰_CÀ_7`=<`8z`/³`?`@#a&daH‹a.Ôa@b*DbEobEµbCûb7?cIwcÁc;Ŭc6d;PdŒdžddĈdŜdġd e e $e /e ;eHeBQe”eB™eÜeìe(üe%f *f7fFfMf$Tfyf#“f'·f&ßf/g+6g bg;ng+ŞgÖg%êg#h4hMh)bhŒh$İh+Îh&úh%!i(Gi&pi—i=´i"òi#j 9j!Zj"|j Ÿj­j½jÍj ájìj ˙j k k(k ;kFkYkhkwkyk}k Œk˜kĴk´kĵkËkÛk.êk l&l5l=lFlOlgl‡l§lĈlálülm'm@mXmrmŠm’m Ĥm°m´m şm Äm&Îmġmn nn "n0n8n‹L‹0b‹“‹§‹Ş‹°‹ȋ̋Ӌ ۋĉ‹Œ ŒŒ &Œ2Œ"EŒ!hŒŠŒ˘Œ³ŒȌ܌+BXm†™ŻĊٍìüŽ Ž0ŽDŽaŽ hŽsŽ |ŽŠŽ Ž˜Ž·Ž֎êŽŝŽ:(=cDĦĉê óŭ 5.)dސ­°ΐҐڐë ò˙‘‘5‘I‘P‘W‘_‘{‘—‘Ĵ‘ ż‘͑‘ĝ‘’%’>’U’o’"†’İ’ż’Ġ’ê’ŝ’“+“>“S“j“‚“–“­“ɓà“ĝ“”)”?”V”k”‡” ”ı””픕•2•G•b•}•𕵕͕á•ô• –!–:–V–n–„–=Œ–0ʖ8û–K4—7€—.¸—ç—(ĝ— !˜,˜ 4˜ >˜ L˜ Y˜e˜n˜p˜‰˜£˜´˜˜Ԙט ۘ ċ˜˜ġ˜ ŭ˜™ ™ "™.™C™L™S™U™ [™e™„™ £™Ż™Ĉ™͙ԙ7Ŭ™#šA9š*{š/Ĥš֚ íšĝš›› '›54›j›r›#‡›!Ğ›͛.ԛœœ-œ46œ#kœ"œ(²œ'ۜ8+< h1t Ĥ3´5è%ž4DžNyžFȞŸ&ŸHEŸŽŸ‘Ÿ”Ÿ—Ÿ ݟ ½Ÿʟ çŸôŸ   E d m ~ %– ĵ $Ì  ñ  ü ¤ Ħ Ż˘'½˘ċ˘ú˘@ £AM£C£>Ó£(¤N;¤LФKפQ#Bu<¸4ġA*ĤBlĤHŻĤKĝĤID§HާJ×§)"¨"L¨Ao¨,ħ¨@Ŝ¨AİAaİ)£İKÍİ<Ş6VŞ(Ş&ĥŞ<ŬŞ<Ğ8WĞFĞE×ĞKĴMiĴ.·Ĵ>ĉĴ(%­,N­:{­+ĥ­7â­#>K^@Ş@ëE,Ż0rŻ-£ŻKÑŻ6°7T°FŒ°KÓ°-ħ$Mħ:rħC­ħ&ñħ4²8M²8†²<ż²Mü²%J³(p³J™³:ä³J´Mj´;¸´7ô´H,µ@uµAĥµGĝµ3@ĥFtĥGğĥ+·B/·8r·=Ğ·$é·=¸ML¸<š¸9׸8ı'JıOrı7ÂıOúıJş\şlşˆş¤şżşÒşâş òş üş ğğ1ğOğ1Tğ†ğ–ğ.ĤğĠğ Ûğéğùğĵ*ĵ1ĵ&Jĵ"qĵ-”ĵ2Âĵ)ġĵ ½6,½$c½ˆ½'Ÿ½%ǽí½">"X){&#Ì%$ż;ż<Pżż!ŞżÌżçż$À,À=ÀQÀeÀyÀÀ˘ÀĥÀÉÀŬÀñÀÁÁ,Á=Á?ÁCÁ SÁ_ÁuÁ~Á ‡Á•Á¤Á9µÁ ïÁŭÁÂÂÂ(Â:ÂTÂn…š¯¿ÂÎÂáÂó $ 7BF L Z-d’˘ĞÁ ÇÒÚŜâ éôÄ#ÄAÄWÄuÄŠÄžÄğÄ ÄÄêÄîÄöÄŝÄ Ċ Ċ)Ċ2ĊKĊ\ĊoĊĊ™Ċ ĴĊıĊ ÁĊÎĊĠĊŬĊċĊĝĊĈ ĈĈ7Ĉ?Ĉ SĈ_Ĉ hĈ sĈ}Ĉ”Ĉ›Ĉ ŻĈ ıĈĈĈ ŬĈ çĈñĈúĈ ŭĈÇ ÇÇ#Ç2ÇJÇZÇoǏǢÇħÇÍÇÜÇ Ç4ŭÇ 2È<ÈEÈ WÈdÈ hÈ‰ÈÈ  ÈĞÈ ŻÈ½ÈÈÈÈÜÈ òÈüÈ˙ÈÉ É (É3ÉEÉTÉjÉ sÉ;€ÉĵÉ ÄÉċÉ üÉÊÊ )Ê 6ÊAÊJÊSÊ XÊdÊkʂʒÊG”ÊÜÊìÊ üÊ Ë Ë5ËIË]Ëwˏ˧ËıËÍËÑË$ÚË!˙Ë!Ì)Ì2Ì;ÌQÌ fÌsÌ ƒÌÌ•Ì žÌ ŞÌĥÌÊÌ ßÌ ëÌġÌÍÍ,(ÍUÍlÍ~͎͆ÍÍ·ÍËÍ ĉÍñÍúÍ ÎÎ"Î;Î9KÎ'…Î(­Î:ÖÎ9Ï1KÏ}ÏšÏĦÏİÏ ıÏĊÏ*×Ï #&/ AOael t~†–³ĵĜèĝ ÑÑ.Ñ>ÑUÑuÑ’ÑĞÑĵÑÔÑÑÒ Ò Ò Ò &Ò2ÒGÒVÒvÒÒ ¨Ò ´ÒÒ ĈÒÒÒáÒ ÷ÒÓ ÓÓÓ(Ó;ÓDÓMÓSÓfÓÓ—Ó8°ÓéÓ òÓüÓÔ ÔÔÔ2ÔMÔVÔ hÔuÔyÔ-€ÔÔ³ÔşÔÎÔêÔñÔùÔĠĠ ĠĠ%Ġ:ĠAĠEĠJĠNĠSĠ cĠnĠ vĠĠ‘Ġ˜Ġ  Ġ ĴĠ ¸ĠĠ%ĜĠŝĠÖ+ÖGÖOÖWÖfÖAnÖ °ÖÖ ÖÖäÖìÖġÖ ××=×R× X×/e×•× œ× §×²×·× ½×Ç×Ë×Ñ×à× ô× ˙× ĜĜ-ĜDĜ SĜ _ĜiĜmĜqĜzĜ‚Ĝ‰Ĝ ĜµĜÇĜÊĜÎĜĠĜÜĜäĜöĜ Ù2Ù HÙSÙ [ÙhÙ qÙ|ÙŽÙ –Ù·ÙÊÙŬÙÙëÙóÙÚ$0Ú UÚ vÚ„Ú ŒÚ –Ú ˘ÚĴÚ²ÚşÚÍÚ ÒÚ!ŬÚ˙ÚÛÛ"Û1+Û]ÛmÛrÛvÛ~ېۤÛİÛ½ÛĈÛ ÌÛÙÛàÛÛùÛ ÜÜ Ü)Ü<Ü AÜNÜRÜ[ÜaÜjÜ rÜ “ÜĦÜ ħܽÜÜÌÜ âÜìÜŝÜŬ"Ŭ4ŬHŬdŬuŬ Ŭ—ŬŻŬÈŬÏŬĜŬñŬ ŜŜ'ŜBŜ HŜSŜfŜ|Ŝ‘Ŝ–ŜžŜ §ŜµŜ ĠŜŜëŜ ïŜùŜ ß ß (ß 6ßDß Mß Zß hß rß ßß ß µßÁß Ùß ßíß ŭß àà %à /àPàfànà ~à Šà”àĤàŻàÍàÖàĉà-á0áEáIáOájáoáwá €áŠá§á ·áÁáÉáÑáàá˙áâ 1â>âOâ_ân⠂ââžâħââÔâéâĝâ , ;G V co&Ĥ ­¸ ÁÏ ÒŬùä&ä9äQäCgä=ĞäEéä/ċ3ċ;ċDċKċSċYċ_ċ>tċ-³ċ#áċĉĉ%ĉ)ĉ1ĉ:ĉCĉ KĉXĉoĉvĉ‰ĉ£ĉ§ĉĉĥĉÌĉëĉ çç ç "ç -ç 9çFç Vçcç sç€ç ™ç ç ħç ĵç Ĉç Óçßç èç óç è è è%è 7è DèRè bè oè {è ˆè“èè´è èèèôè ŭè éé&é7éJé [é iésé |é ˆé•é¤é ĥé Äéé9Ĝé-ê5@êKvê5Âê+ĝê$ë.6ë eëpë xë‚ë “ë Ħë­ëµë·ëëèëüë ì ì#ì'ì.ì6ì<ìCì LìWì fìqìzì‚ìŠìì “ì!ìżìŬìĉìûìí í:í)OíIyí/í/óí!#îEîNîmîpî ‡î;•îÑîÚî%éî ï 0ï1<ïnïƒï  ï/ĞïÛï#ûï'&G6n. Ô2àñ5"ñ6Xñ(ñ1¸ñ\êñ>Gò†ò%œò<Âò˙òóóó ó(ó*-ó Xódó„ó†óóH‘óÚóâóġó$ô4ô%Cô iô tô´EŻĈu(ċŒ—uS°@HÖš‰„RçŜÜ\gg ĠMœa–<ZLİç[ŽĞÖ=rFÈ0Óü”êOyއ `y!Šv^q€7( ‡. >˙0“˜#f.òXāŭO ĝvƒ&,6ş‘úSıż-ÎoJâ} 4È?Ñĉy>C ¸!HYtñ6˜ĝ~x¤­nġr… E×ĥ{èd…Rñşo+QËŝQàH¨lĥŻǨ²Aw“´YOPž?„ĤZßyœWŒá;ŸWG.ċäëżħŭpÉûK•˙Ñ’N(aôŽÒòĤts R°ÑĴL½$Ĵ6ŝĤ?Á$Ġ· D3–Kì âœ%o%^2ŭiˆè+ĥ­İ`·w–×Isc£żeh¤êzµċ’M uû‚­šgÛE\Ŝ49Ĉ³š.&58@pí›İ—ÍÀxBbDêŬŠ‹8zT;†ŬRn‘ÄéäY0ô:D)çBkS‚ :èFA•iğJe9Y ²Ŝ ĵ¨™BkUVjÓ\°ĜMġz~ĊĉF ¤+"#T_P~Ó2×ò;1qI‚ UÀWÉŻĝv”]E¸- óm‘ı’kK;@fxxd^ğ[Ç3Zƒ¸óÜ/Jdġß:q€µÎ!BpVĦ`³•½uÍ´Ú*‹£lwJl˜PÊL1_î%ğĴÀí,‡Áž½^ĦpˌĉZ—_aúŸñh ’Ş"ÛˆH|ŝÌ“²Ċjà…ô*ÏAµÏĵĈUXî,˘$<›ì#3Ġí<û‘îcëÛ·ĵ9Ù8nóÂT€9§+›˙kŽIˆ”ЉÚÇԁ51[vħœĞe{]Ğ\Ħ§ƒbDöÏ"=s/éAU?l„)T“ÊbÒeL7m‹qËÎ, àQˆüÙGáÒ|5Ä™™Œü”Mùħö-ú„m'N!}b54)g[ i÷&'df£'IĜ}i'>{F%Ö/önëXŸşŬtùƒh4QÂocâ3÷‡S)…ÌNj ›Ô` f{š*§éĊ†ı=ctìŞÍ†aNù-w2/#<Ù ™Ôr$Ì"G]7]Ĝ˘}ސ˜˘ï :8_=ß—á|ڏ‹>6³j(G*& |ÁmCÈC•KV@WsŠ–‰OÉ2~P1hžX÷ ïz†0r‚ÊC‰ÜäV7 %s: abort, %s: program aborted by signal %d %s: warning, %s. `%s' line %ld: %-3s = %d...%d Length of a single axis %-3s = %d...%d Total number of lines %-3s = february Respect at `28-FEBRUARY' %-3s = march Respect at `01-MARCH' = %s Backwards = %s List yesterday until starting day of month = %s List yesterday until starting day of week = %s List yesterday until starting day of year N = 0 1st week / last week of previous year N = 1...52 1st...52nd week (always) N = 53 53rd week (sometimes) N = 99 Last week = Manage `29-FEBRUARY' in non-leap years = Set width of the biorhythm text graphics or: month name | %s | %s%s | %s%s | %s%s [MOD] = %s List tomorrow until ending day of month [MOD] = %s List tomorrow until ending day of week [MOD] = %s List tomorrow until ending day of year %s%cwN[%s], month name[%s], weekday name[N] or %s MOD = %s Forwards %c = Exclusion of all %s Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s expressions separated by `%s' characters # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday # %c%c[[%s|%s]N] = Single day N relative to today's date # %c?[[%s|%s]N] = Single day N relative to date variable # %cdN = Single absolute day N # A = Display using alternative list format # E = Include legal days only # NMOD = Single day N relative to today # Nd = Single absolute day N # Nw = Complete week N # U = Suppress date part of fixed dates # Z = Display dates, for which fixed dates doesn't exist # a = Display origin of fixed date # d = Include actual date if list of periods is generated # e = Include legal days and memorial days # g[MOD] = Group fixed dates by day using text MOD # l = Generate list of periods instead of a single period # m|M[MOD] = List complete month # o = Omit repeating date part of fixed dates # t|T = List tomorrow # w|W[MOD] = List complete week # x = Exclude title of fixed date list # y|Y[MOD] = List complete year # z = Display consecutive number of fixed date 1. Representation of text 2. Respected period = abort Like `all' and abort if file name can't be handled = all Like `handled' and `unhandled' together = handled Like `internal' and file names which are handled = unhandled Like `internal' and file names which are unhandled Actual respected period: %02d-%02d %s %0*d Create response file for the `%cFILE' option Create shell script which contains the arguments of command line Direct output through external `%s' pager Direct output through simple internal pager Disable highlighting of text, holiday resp., actual day Display eternal holiday list (Year in range: %d...%d) Display extended help text and quit program Display help text and quit program Display only those fixed dates, whose date is not excluded by %s Display only those fixed dates, whose text is matched by %s Display software license and quit program Exclude title of eternal holiday list Export local date variables from file to file Export local text variables from file to file Forces highlighting sequences if output is redirected/piped Ignore case distinctions if `%s' option is given Implies period: Today Modify format of year calendar Provide eternal holiday list with country specific holidays Send output via `%s' program to user Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday) Set order of date elements using the %s format text Set period of Gregorian Reformation Suppress output of calendar sheet explicitly Use alternative file(s) instead of standard resource file Use consecutive day of year in calendar sheet Use consecutive day of year in eternal holiday list Use consecutive day of year in fixed date list Use special format for calendar sheet Use standard resource file `%s%s' for fixed date list Use standard resource file `.%s%s' for fixed date list [MOD] = %s Descending sort order [MOD] = One or more of the following modifiers which are marked by # %-*d%*s = Set period to: %02d-%02d %s %0*d %-3s = Any text respectively "regular expression" you like %-3s = File name of the shell script %-3s = Highlighting sequence pairs separated by `%s' characters %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]' %-3s = One or more of the following characters. If character %-3s = Store arguments of command line in file %s C = Display those dates, for which fixed dates doesn't exist, too N = Legal days only [MOD] = b Use both date notations (day of month+year) [MOD] = - Use standard format for calendar sheet [MOD] = b Use both date notations (day of month+year) (%.4s for Alpha) (%.4s for VAX) (BSD/386 1.1 or later) (FreeBSD 2.0 or later) (NetBSD 1.2 or later) (NetBSD before 0.9) 1.0 or 1.5? 4.0 or 4.02 ; Week %s = %+4d day = %+4d days `HERE' c = Display only those dates, for which fixed dates exists day f = Display only those dates, for which fixed dates exists later than 4.5 later than 5.0 n = Legal days and memorial days on # Month name# Month number%cDATE%cFILE%s = Month in range: %d...%d%s in search pattern `%s'%s%*s = Year in range: %d...%d%s%s contains %d maximum entries now!%s%s: for more, <%s> to quit...%s: The Gregorian calendar program (GNU cal) %s%s: Use `%s %s' with one of these arguments%s: abort, %s: command in environment variable `%s' found -- %s %s %s %s: error during program execution of `%s' %s: file not found %s: invalid date given -- %c%s %s %s %s: invalid date given -- %s %s %s %s: invalid option -- %s%s: no regular file %s: option `%s' doesn't allow an argument%s: option `%s' is ambiguous%s: option `%s' requires an argument%s: option `--%s' doesn't allow an argument%s: option `--%s' requires an argument%s: option requires an argument -- %s%s: option with ambiguous argument -- %s%s: option with invalid argument -- %s%s: unrecognized option `%s'%s: warning, eMail with empty message body not sent to <%s>. %s:%*sThe year %0*d is A leap year%s:%*sThe year %0*d is NO leap year%s:%*sThe year %d is A leap year%s:%*sThe year %d is NO leap year(`%s') date format `%s' is invalid(bad version)++ 1.0 or later++ 3.0 or later+++ FIXED DATES +++1st Advent1st Sunday in Lent2nd Advent2nd Sunday in Lent3rd Advent3rd Sunday in Lent4th Advent4th Sunday in Lent5.1 or earlier7-5-3 Festival:ARGAborigines DayAfghanistanAga Khan's BirthdayAlbaniaAlgeriaAll Fool's DayAll Saints' DayAll Souls' DayAll format elements marked by # may optionallyAlphabet DayAmerican SamoaAndorraAngola #AnguillaAnniversary of AucklandAnniversary of Canterbury NorthAnniversary of Canterbury SouthAnniversary of Chatham IslandsAnniversary of Hawkes' BayAnniversary of MarlboroughAnniversary of NelsonAnniversary of OtagoAnniversary of SouthlandAnniversary of TaranakiAnniversary of WellingtonAnniversary of WestlandAnnularAntigua and BarbudaAnzac DayAprAprilArbor DayArgentinaArgument `%s' of command line ignored.Armed Forces DayArmeniaArmistice DayArubaAsh WednesdayAshura'AstAugAugustAustraliaAustralia/CanberraAustralia/New South WalesAustralia/Northern TerritoryAustralia/QueenslandAustralia/Southern AustraliaAustralia/TasmaniaAustralia/VictoriaAustralia/Western AustraliaAustriaAzerbaijanBackslash ('%c') characterBahBahamasBahrainBahĦ'i New Year's DayBangladesh #Bank HolidayBarbadosBasque National DayBattle of BoyneBattle of N¤felsBattle of PueblaBeginning of Financial YearBeginning of SummerBelarusBelgiumBelgrade's DayBelizeBeltaneBenin #Benito JuĦrez DayBermudaBhutan #Birth of Baha'u'llahBodhidharma's BirthdayBoliviaBosnia-HerzegovinaBosses' DayBotswanaBouvet IslandBrazilBritish Virgin IslandsBruneiBuddha's BirthdayBulgariaBurkina FasoBurning of Jan HusBurns NightBurundi #COMMANDCWCambodia #CameroonCamoes DayCanadaCanada/AlbertaCanada/British ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland and LabradorCanada/Nova ScotiaCanada/OntarioCanada/Prince Edward IslandCanada/QuİbecCanada/SaskatchewanCanada/YukonCannot execute command in file `%s' Line: %ld %sCape VerdeCarnivalCayenne FestivalCayman IslandsCelCentral African Republic #ChadCharacter replacement:Chen/DragonChiChildren's DayChileChinaChinese New Year's DayChinese New Year's EveChou/OxChrChrist's Ascension DayChristmas DayChristmas EveChristmas IslandsChrysanthenum DayCitizenship DayCocos Islands (Keeling)ColombiaColumbus DayCommand executed (exit code=%d) in file `%s' Line %ld: %sComorosCompiled with %s%s for %s%s%s%sConfucius' BirthdayCook IslandsCoptic New Year's DayCoronation DayCosmonauts' DayCosta RicaCreatedCroatiaCubaCulture DayCyprusCzech RepublicC´te d'IvoireDDate format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Day of AndaluciaDay of CataloniaDay of GaliciaDay of Prayer and RepentanceDay of Students RevoltDeath of H. ChristopheDeath of J. DessalinesDeath of President AbdallahDeath of President CheikhDeath of President SoilihDeath of Qaid-i-AzamDeath of T. LouvertureDecDecemberDemocratic People's Republic of KoreaDemocratic Republic of Congo #DenmarkDjiboutiDominicaDominican RepublicDragon Boat FestivalDynasty DayEaster MondayEaster SundayEcuadorEgyptEid-al-AdhaEid-al-FitrEid-i-Milad-un-NabiEindhoven's LiberationEl SalvadorElection DayEmail bug reports to <%s>EmoEmperor's BirthdayEnd of highlighting sequence/marking characterEpiphany/Three King's DayEquatorial GuineaEritreaEstoniaEternal holiday listEthiopiaEthiopic New Year's DayFalkland Islands (Malvinas)FaroesFather's DayFeast of Our TheotokosFebFebruaryFederated States of MicronesiaFestival of SadehField contents is converted to capitalized wordsField contents is converted to lower-case lettersField contents is converted to upper-case lettersField contents placed at the left margin using width WIDTHField contents placed at the right margin using width WIDTHField contents placed in centered manner using width WIDTHField has the width N (%d...%d)Fiji #FinlandFixed date list:Flag DayFlemish Culture DayFormer Yugoslav Republic of MacedoniaFounding of the Communist PartyFrFranceFrench Culture DayFrench GuianaFrench PolynesiaFriFridayFridaysFull MoonGabon #GambiaGeorgiaGerman Unity DayGermanyGermany/Baden-WĵrttembergGermany/BavariaGermany/BerlinGermany/BrandenburgGermany/BremenGermany/HamburgGermany/HesseGermany/Lower SaxonyGermany/Mecklenburg-West PomeraniaGermany/North Rhine-WestphaliaGermany/Rhineland PalatinateGermany/SaxonyGermany/Saxony-AnhaltGermany/Schleswig-HolsteinGermany/ThuringiaGhadirGhanaGibraltarGood FridayGood Saturday/Easter EveGrandparents' DayGreat BritainGreat Britain/England and WalesGreat Britain/Northern IrelandGreat Britain/ScotlandGreeceGreenlandGrenadaGrotto DayGroundhog DayGuadalupe Virgin's DayGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Gustavus Adolphus' DayGuyana #Hai/PigHaitiHalloweenHannukah/Festival of LightsHealth and Sport's DayHeard and Mc Donald IslandsHighlighting group (all members must be defined):HondurasHong KongHungaryIcelandImamat DayImbolgIndependence DayIndependence ProclamationIndia #Indian New Year's DayIndonesia #IntInternalInvalid argument in command line given -- %sIraqIrelandIslamic New Year's DayIslamic Republic of IranIsraelItalyJamaicaJanJanuaryJapanJapanese New Year's DayJapanese New Year's EveJordanJulJulyJunJuneKamarampaka DayKazakhstanKenya #Kiribati #KnabenschiessenKuwaitKwanzaaKyrgyzstanLabour DayLag B'OmerLao Tze's BirthdayLaos People's Democratic Republic #Lapp National HolidayLatviaLeap-day set to `%02d-%s' in file `%s'.LebanonLesothoLiberation DayLiberiaLibyan Arab Jamahiriya (Libya)LiechtensteinLine %ld ignored: %sLine %ld: %sLithuaniaLughnasaLunar EclipseLuxembourgMMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.MacauMadagascar #Mail from \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaldivesMaliMaltaMao/RabbitMarMarchMarshall IslandsMartin L. King's DayMartinimasMartiniqueMartyrs' DayMary's Annunciation DayMary's Ascension DayMaundy ThursdayMauritaniaMauritiusMayMay May DayMayotteMexicoMid-Autumn FestivalMid-Spring FestivalMid-Year FestivalMoMonMonacoMondayMondaysMondays...FridaysMondays...ThursdaysMongolia #Month group (exactly one member must be defined):MontserratMoroccoMother in Law's DayMother's DayMozambiqueMyanmar (Burma) #NamibiaNational Foundation DayNational HolidayNational Mourning DayNauruNepal #NetherlandsNetherlands Antilles/BonaireNetherlands Antilles/Cura§aoNetherlands Antilles/Saba and StatiaNetherlands Antilles/St MaartenNew CaledoniaNew MoonNew Year's DayNew ZealandNicaraguaNigerNigeriaNinth Day of RidvanNiueNobel DayNorthern Marian Islands (Saipan)Noruz/Persian New Year's DayNorwayNovNovemberNumerical value is provided with leading signNuzul-al-Qur'anOPTIONOctOctoberOld-Armenic New YearOld-Egyptic New YearOmanOrthodox New Year's DayPakistanPalauPalm SundayPanamaPapua New GuineaParaguayPartialPeace FestivalPeach FestivalPenumbralPercent ('%c') characterPeruPhilippinesPhyPitcairnPolandPortugalPrayer DayPreload options and commands from `FILE'Presidents' DayPrincess' DayPuerto RicoQatarQuds DayQuinquagesima SundayRamadanReformation DayRepublic DayRepublic of Congo #Republic of KoreaRepublic of MoldovaRespect for the Aged DayRevolution DayRio de Janeiro AnniversaryRomaniaRosh Hashana/New Year's DayRussian FederationRwandaRİunionSIGN (may be defined):SUFFIX (may be defined):SaSaint-Pierre and MiquelonSamhain/Celtic New Year's DaySamoaSan MarinoSao Paulo AnniversarySao Tomİ and PrincipeSapporo Snow FestivalSatSaturdaySaturdaysSaudi ArabiaSeason Change/Bean-FestivalSechsel¤utenSenegalSepSeptemberSerbia and MontenegroSeychellenShab-e QadrShab-e-Bara'tShab-e-Mi'rajShen/MonkeyShrove Tuesday/Mardi GrasShushan PurimSi/SnakeSierra LeoneSimchat TorahSimon Bolivar's DaySinai-Liberation DaySingapore #Slave-Liberation DaySlovakiaSloveniaSolar EclipseSolomon IslandsSomaliaSoot-Sweeping DaySouth AfricaSouth Georgia and South Sandwich IslandsSpace/blank ('%c') characterSpainSpring FestivalSri Lanka #St HelenaSt Kitts and NevisSt LuciaSt Vincent and GrenadinesStandardStar FestivalStart of common monthStart of highlighting sequence/marking characterStart of leap monthSuSudanSultan Qaboos' BirthdaySunSundaySundaysSuriname #Svalbard and Jan Mayen IslandsSvetitskhovlobaSwazilandSwedenSwitzerlandSwitzerland/AargauSwitzerland/Appenzell AusserrhodenSwitzerland/Appenzell InnerrhodenSwitzerland/Basel-StadtSwitzerland/BernSwitzerland/FribourgSwitzerland/Gen¨veSwitzerland/GlarusSwitzerland/GraubĵndenSwitzerland/JuraSwitzerland/LuzernSwitzerland/Neuch˘telSwitzerland/NidwaldenSwitzerland/ObwaldenSwitzerland/SchaffhausenSwitzerland/SchwyzSwitzerland/SolothurnSwitzerland/St GallenSwitzerland/ThurgauSwitzerland/TicinoSwitzerland/UriSwitzerland/ValaisSwitzerland/VaudSwitzerland/ZugSwitzerland/ZĵrichSyrian Arab Republic (Syria)TaiwanTajikistanTanzaniaTeacher's DayThThailand #The Crown Princesse's BirthdayThe Crown Princesse's Name-DayThe King's BirthdayThe King's Name-DayThe Queen's BirthdayThe Queen's Name-DayThere is NO warranty, without even the implied warranty ofThis is free software; see the source for copying conditions.This program is free software; you can redistribute it and/or modifyThuThursdayThursdaysTogo #TokelauTongaTotalTrinidad and Tobago #Try to open (level: %02d) include file `%s'... %s%s%sTry to open%sresource file `%s'... %s%s%sTry to write %s `%s'... %s%s%sTuTu B'Shevat/New Year of TreesTueTuesdayTuesdaysTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluTwelfth Day of RidvanU.S. Virgin IslandsU.S.A.UgandaUkraineUnderscore ('%c') characterUnion with Sweden dissolvedUnited Arab EmiratesUnited Nations DayUnited StatesUnited States/AlabamaUnited States/AlaskaUnited States/ArizonaUnited States/ArkansasUnited States/CaliforniaUnited States/ColoradoUnited States/ConnecticutUnited States/DelawareUnited States/District of ColumbiaUnited States/FloridaUnited States/GeorgiaUnited States/HawaiiUnited States/IdahoUnited States/IllinoisUnited States/IndianaUnited States/IowaUnited States/KansasUnited States/KentuckyUnited States/LouisianaUnited States/MaineUnited States/MarylandUnited States/MassachusettsUnited States/MichiganUnited States/MinnesotaUnited States/MississippiUnited States/MissouriUnited States/MontanaUnited States/NebraskaUnited States/NevadaUnited States/New HampshireUnited States/New JerseyUnited States/New MexicoUnited States/New YorkUnited States/North CarolinaUnited States/North DakotaUnited States/OhioUnited States/OklahomaUnited States/OregonUnited States/PennsylvaniaUnited States/Rhode IslandUnited States/South CarolinaUnited States/South DakotaUnited States/TennesseeUnited States/TexasUnited States/UtahUnited States/VermontUnited States/VirginiaUnited States/WashingtonUnited States/West VirginiaUnited States/WisconsinUnited States/WyomingUruguayUsage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...] Usage: %s [--%s | --%s] | [RESOURCE-FILE | -] Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART] Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]Use `%s %s|[%s?]Use given `DATE' instead of today's dateUzbekistanVanuatuVenezuelaVeteran's DayVictoria DayVictory DayViet NamWWIDTH (must be defined):Wallis and Futuna IslandsWaning Half MoonWaqf-al-ArafatWaxing Half MoonWeWedWednesdayWednesdaysWeekWeek %sWei/SheepWestern SaharaWhit MondayWhitsun EveWhitsunday/PentecostWu/HorseXu/DogYYemenYin/TigerYom Ha Azmaut/Independence DayYom Yerushalayim/Jerusalem DayYou/RoosterZERO (may be defined):ZambiaZi/RatZimbabwe[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]`%s' line %ld: (`%s') `%s%d' failed`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'`%s' line %ld: (`%s') unmanaged error (%d)`%s' line %ld: virtual memory exhausted (%s=%d)`Eternal holiday list'`Internal'`termcap' file not foundamany later version.command linecontain a format instruction, which template is like:defaultenvironment variableenvironment variable `%s' not foundenvironment variable `%s' not setfailedfile `%s' can't be written Storage media full!file `%s' not foundfor more information.holidaysillegal character in response file `%s' Line %ld: %sillegal definition of variable `%c'illegal operation on variable `%c'illegal variable definition in file `%s'illegal variable operation in file `%s'invalid N'th weekday field(%d) in file `%s' Line %ld: %sinvalid date part in file `%s' Line %ld: %sinvalid dayinvalid day field(%02d) in file `%s' Line %ld: %sinvalid monthinvalid month field(%02d) in file `%s' Line %ld: %sinvalid recursive/cyclic %s in file `%s' Line %ld: %sinvalid search pattern `%s' specifiedinvalid value assigned to variable `%c' in file `%s'invalid year for computing Easter Sundays date Year must be in range (%d...%d)it under the terms of the `GNU General Public License' as published bylegal holidaysmalformed %s in file `%s' Line %ld: %smissing `whitespace' character after date part in file `%s' Line %ld: %sndpmrdread error in file `%s'response fileself-definedsending eMail to <%s> failedshell scriptshift value `%s' is invalidstsuccessththe `Free Software Foundation'; either version 3, or (at your option)unknown unknown compilerunknown compiler (SDK?)unknown terminal type defined in `%s'unknown versionvariable `%c' undefined in file `%s'version %dversion %d.%dProject-Id-Version: gcal-3.6 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 2011-03-20 15:58+0100 Last-Translator: Ask Hjorth Larsen Language-Team: Danish Language: da MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. %s: abrudt, %s: programmet afbrudt af signalet %d %s: advarsel, %s. "%s" linje %ld: %-3s = %d - %d LĤngden p en axel %-3s = %d...%d Totala antalet linjer %-3s = february Beakta den 28 FEBRUARI %-3s = march Beakta den 1 MARS = %s Bakt = %s Lista fra igr til begyndelsen p mneden = %s Lista fra igr til begyndelsen p veckan = %s Lista fra igr til begyndelsen p ret N = 0 1:a veckan / sista veckan foregende r N = 1 - 52 1:a - 52:a veckan (alltid) N = 53 53:e veckan (ibland) N = 99 Sista veckan = Hantera 29 FEBRUARI under icke skudr = SĤtt bredden p biorytmens textgrafik eller: navn p mned | %s | %s%s | %s%s | %s%s [MOD] = %s Lista fra imorgon til slutet p mneden [MOD] = %s Lista fra imorgon til slutet p veckan [MOD] = %s Lista fra imorgon til slutet p ret %s%cwN[%s], navn p mned[%s], navn p ugedag[N] eller %s MOD = %s Framt %c = Uteslutning af %s Interval: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s uttryck skilda t med "%s"-tegn # %c%c[[%s|%s]N] = Enstaka dag N relativt pskdagen # %c%c[[%s|%s]N] = Enstaka dag N relativt dagens dato # %c?[[%s|%s]N] = Enstaka dag N relativt datovariabel # %cdN = Enstaka dag N # A = Visa genom at anvĤnda et alternativt listformat # E = Tag bara med allmĤnna helligdage # NMOD = Enstaka dag N relativt idag # Nd = Enstaka dag N # Nw = Hel vecka N # U = UtelĤmna datodelen af fasta dato # Z = Visa dage, som mangler fasta dato # a = Visa ursprunget til fast dato # d = Tag med aktuellt dato om periodlista skapas # e = Tag med allmĤnna helligdage og minnesdage # g[MOD] = Gruppera fasta dato genom at anvĤnda texten MOD # l = Skapa periodlista i stĤllet for en enstaka period # m|M[MOD] = Lista hela mneden # o = UtelĤmna del af datoet som oprepas # t|T = Lista imorgon # w|W[MOD] = Lista hela veckan # x = Lista med fasta dato uden titel # y|Y[MOD] = Lista hela ret # z = Visa fortl¸bende fasta dato 1. Representation af text 2. Aktuell tidsperiod = abort Som "all" men afbryt om filnavnet ikke kan hanteras = all Som "handled" og "unhandled" tillsammans = handled Som "internal" plus filnavn som hanteras = unhandled Som "internal" plus filnavn som ikke hanteras Aktuell tidsperiod: %02d-%02d %s %0*d Opret responsfil for "%cFIL-flaget" Skapa et skalprogram som inneholder argumenten fra kommandolinjen Skicka utdata genom en extern "%s"-sidvisare Skicka utdata genom en enkel intern sidvisare StĤng af framhĤvning af text, helligdage resp. aktuell dag Visa evighedskalender for helligdage (r i intervallet: %d - %d) Visa udvidet hjĤlpetekst og afslut Vis hjĤlpetekst og afslut Visa bara de fasta dato, som ikke utesluts af %s Visa bara de fasta dato, vars text overensstĤmmer med %s Visa programlicens og afslut Evighedskalender for helligdage uden titel Exportera lokala datovariabler fra fil til fil Exportera lokala textvariabler fra fil til fil Framtvinga framhĤvningssekvens om utdata styrs om Ingen forskel p store/sm bogstaver hvis tilvalget "%s" er givet Medf¸r tidsperioden: idag „ndra format p rskalender Tillhandahll en evighedskalender med landsspecifika helligdage Skicka utdata via programmet "%s" til anvĤndare SĤtt framhĤvningssekvenspar 1 (=aktuell dag) og 2 (=helligdag) SĤtt ordningen p datoelementen genom at anvĤnda formattexten %s StĤll in perioden for gregorianska reformationen Undertryck utmatning af kalenderblad explicit AnvĤnd alternativ(a) fil(er) i stĤllet for standardresursfil AnvĤnd fortl¸bende dage p ret p kalenderbladet AnvĤnd fortl¸bende dage p ret i evighedskalendern AnvĤnd fortl¸bende dage p ret p listan med fasta dato AnvĤnd speciellt format for kalenderblad AnvĤnd standardresursfilen "%s%s" for listan med fasta dato AnvĤnd standardresursfilen ".%s%s" for listan med fasta dato [MOD] = %s Fallende sorteringsordning [MOD] = En eller fler af f¸ljende modifierare markerede med # %-*d%*s = SĤtt tidsperioden till: %02d-%02d %s %0*d %-3s = Vilken text eller "reguljĤrt uttryck" som helst %-3s = Skalprogrammets filnavn %-3s = FramhĤvningssekvenspar skilda t med "%s"-tegn %-3s = Lista med "%c[DATUM][%c[DATUM]]" og/eller "%c[DATUM][%c[DATUM]]" %-3s = Ett eller fler af f¸ljende tegn. Hvis tecknet %-3s = Gem argumenter fra kommandolinjen i filen %s C = Visa ocks de dage, som ikke har fasta dato N = Enbart allmĤnna helligdage [MOD] = b AnvĤnd bda datobeteckningarna (dag i mneden+dag p ret) [MOD] = - AnvĤnd standardformat for kalenderblad [MOD] = b AnvĤnd bda datobeteckningarna (dag i mneden+dag p ret) (%.4s for Alpha) (%.4s for VAX) (BSD/386 1.1 eller senere) (FreeBSD 2.0 eller senere) (NetBSD 1.2 eller senere) (NetBSD f¸r 0.9) 1.0 eller 1.5? 4.0 eller 4.02 ; uge %s = %+4d dag = %+4d dage "HER" c = Visa bara de dage, som har fasta dato dag f = Visa bara de dage, som har fasta dato senere end 4.5 senere end 5.0 n = AllmĤnna helligdage og minnesdage p # Mnedsnavn# Mnedsnummer%cDATO%cFIL%s = Mned i intervallet: %d - %d%s i s¸gem¸nstret "%s"%s%*s = …r i intervallet: %d - %d%s%s indeholder nu %d maxposter!%s%s: for mere, <%s> for at afslutte...%s: Det gregorianske kalenderprogram (GNU cal) %s%s: Brug "%s %s" med et af dessa argument%s: afbryd, %s: kommando fundet i milj¸variablen "%s" - %s %s %s %s: fejl da programmet "%s" k¸rtes %s: filen ikke fundet %s: ugyldig dato angivet -- %c%s %s %s %s: ugyldig dato angivet -- %s %s %s %s: ugyldigt flag -- %s%s: ingen normal fil %s: flag "%s" tager intet argument%s: flag "%s" er tvetydig%s: flag "%s" beh¸ver et argument%s: flaget "--%s" tillader intet argument%s: flaget "--%s" beh¸ver et argument%s: flag beh¸ver et argument -- %s%s: flag med tvetydigt argument -- %s%s: flag med ugyldigt argument -- %s%s: ukendt flag "%s"%s: Advarsel, eMail med tom br¸dtekst ikke sendt til <%s>. %s:%*s…r %0*d ER et skudr%s:%*s…r %0*d ER IKKE et skudr%s:%*s…r %d ER et skudr%s:%*s…r %d ER IKKE et skudr("%s") datoformatet "%s" er ugyldigt(dlig version)++ 1.0 eller senere++ 3.0 eller senere+++ FASTA DATUM +++1. s¸ndag i adventF¸rste fastes¸ndag2. s¸ndag i adventAnden fastes¸ndag3. s¸ndag i adventTredje fastes¸ndag4. s¸ndag i adventFjerde fastes¸ndag5.1 eller tidigare7-5-3-festivalen:ARGAboriginerdagenAfghanistanAga Khans f¸dselsdagAlbanienAlgerietF¸rste aprilAllehelgensdagAlle sjĤles dagAlle formatelementer, der er markeret med #, kan valgfritAlfabet-dagenAmerikansk SamoaAndorraAngola #AnguillaAucklands rsdagCanterbury Norths rsdagCanterbury Souths rsdagChatham¸ernes rsdagHawkes' Bays rsdagMarlboroughs rsdagNelsons rsdagOtagos rsdagSouthlands rsdagTaranakis rsdagWellingtons rsdagWestlands rsdagRingformetAntigua og BarbudaAnzacdagenapraprilPlant et trĤArgentinaArgumentet "%s" p kommandolinjen ignoreres.MilitĤrets dagArmenienVbenstilstandsdagenArubaAskeonsdagAshura'AstaugaugustAustralienAustralien/CanberraAustralien/New South WalesAustralien/Northern TerritoryAustralien/QueenslandAustralien/Southern AustraliaAustralien/TasmanienAustralien/VictoriaAustralien/Western Australia˜strigAserbajdsjanOmvendt skrstreg ("%c")BahBahamasBahrainBahĦ'i nytrsdagBangladesh #BankfridagBarbadosDen baskiske nationaldagSlaget ved BoyneSlaget ved N¤felsSlaget ved PueblaFinansrets begyndelseStart p sommerenHvideruslandBelgienBeograds dagBelizeBeltaneBenin #Benito JuĦrez-dagBermudaBhutan #Baha'u'llahs f¸dselBodhidharmas f¸dselsdagBoliviaBosnien-HercegovinaBosses' dagBotswanaBouvet¸enBrasilienDe Britiske Jomfru¸erBruneiBuddhas f¸dselsdagBulgarienBurkina FasoJan Hus eldbegĤngelseBurns natBurundi #KOMMANDOVECambodia #CameroonCamoes dagCanadaCanada/AlbertaCanada/British ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland og LabradorCanada/Nova ScotiaCanada/OntarioCanada/Prince Edward IslandCanada/QuİbecCanada/SaskatchewanCanada/YukonKan ikke utf¸ra kommando i filen "%s" Linje: %ld %sKap VerdeKarnevalCayennefestivalenCayman¸erneCelDen Centralafrikanske Republik #TchadErstatningstegn:Chen/drageChiB¸rnenes dagChileKinaKinesisk nytrsdagKinesisk nytrsaftenChou/okseKrKristi himmelsfartsdagJuledagJuleaftenJule¸erneChrysanthemumsdagBorgerskabsdagKokos¸erne (Keeling)ColumbiaColumbus dagKommando udf¸rt (statuskode=%d) i filen "%s" Linje %ld: %sComorosKompileret med %s%s for %s%s%s%sConfusius' f¸dselsdagCook¸erneKoptisk nytrsdagKr¸ningsdagenKosmonautdagCosta RicaOprettetKroatienCubaKulturdagenCypernDen Tjekkiske RepublikElfenbenskystenDDatoformat: %s[%s[%s|%s[N]]], %s%c%c|%c|dvar[[%s|%s]N[%s]], %s%cdN[%s]Andalusiens dagKataloniens dagGaliciens dagB¸ne- og ngerdagenStudentrevoltens dagH. Christophes d¸dJ. Dessalines' d¸dPrĤsident Abdallahs d¸dPrĤsident Cheikhs d¸dPrĤsident Soilihs d¸dQaid-i-Azams d¸dT. Louvertures d¸ddecdecemberDen Demokratiske Folkerepublik KoreaDen Demokratiske Republik Congo #DanmarkDjiboutiDominicaDominikanske RepublikDragebdsfestivalenDynastidagenAnden pskedagPskedagEcuador†gyptenEid-al-AdhaEid-al-FitrEid-i-Milad-un-NabiEindhovens befrielseEl SalvadorValgdagenRapportİr fejl til <%s>EmoKejserens f¸dselsdagSlut p fremhĤvningssekvens/markeringstegnHellig tre kongers dag†kvatorialguineaEritreaEstlandEvighedskalender for helligdageEtiopienEtiopisk nytrsdagFalklands¸erne (Malvinas)FĤr¸erneFars dagTheotokos h¸jtidfebfebruarF¸derale Statsforbund MikronesienSadehfestivalenFeltindhold omdannes til ord med stort begyndelsesbogstavFeltindhold omdannes til sm bogstaverFeltindhold omdannes til store bogstaverFeltindhold placeres ved venstre margen med bredden BREDDEFeltindhold placeres ved h¸jre margen med bredden BREDDEFeltindhold placeres centreret med bredden BREDDEFelt har bredden N (%d...%d)Fiji #FinlandFast datoliste:Flagets dagFlamske kulturdagTidligere Jugoslaviske Republik MakedonienKommunistpartiets grundlĤggelsefrFrankrigFranske kulturdagFransk GuyanaFransk PolynesienfrefredagfredageFuldmneGabon #GambiaGeorgienDagen for Tysklands foreningTysklandTyskland/Baden-WĵrttembergTyskland/BayernTyskland/BerlinTyskland/BrandenburgTyskland/BremenTyskland/HamburgTyskland/HessenTyskland/NiedersachsenTyskland/Mecklenburg-VorpommernTyskland/Nordrhein-WestfalenTyskland/Rheinland-PfalzTyskland/SachsenTyskland/Sachsen-AnhaltTyskland/Schleswig-HolsteinTyskland/ThĵringenGhadirGhanaGibraltarLangfredagPskeaftenBedsteforĤlderdagenStorbritannienStorbritannien/England og WalesStorbritannien/NordirlandStorbritannien/SkotlandGrĤkenlandGr¸nlandGrenadaGrottodagenJordsvinedagenGuadalupe Virgins dagGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Gustav AdolfsdagenGuyana #Hai/grisHaitiAllehelligensaftenHannukah/lysets festivalSundheds- og idrĤtsdagHeard- og McDonald¸erneFremhĤver gruppe (alle medlemmer skal vĤre defineret):HondurasHong KongUngarnIslandImamat-dagenImbolgUafhĤngighedsdagenUafhĤngighedserklĤringenIndien #Indisk nytrsdagIndonesien #IntInternUgyldigt argument givet i kommandolinje -- %sIrakIrlandIslamisk nytrsdagDen Islamiske Republik IranIsraelItalienJamaicajanjanuarJapanJapansk nytrsdagJapansk nytrsaftenJordanjuljulijunjuniKamarampaka-dagKazakhstanKenya #Kiribati #KnabenschiessenKuwaitKwanzaaKirgisistanF¸rste majLag B'OmerLao Tzes f¸dselsdagDen Demokratiske Folkerepublik Laos #Samernas nationaldagLetlandSkottdagen satt til "%02d-%s" i filen "%s".LibanonLesothoBefrielsedagenLiberiaDen Store Folkesocialistiske Libyske Arabiske Jamahiriya (Libyen)LiechtensteinLinje %ld ignoreret: %sLinje %ld: %sLitauenLughnasaMneform¸rkelseLuxembourgMS„LJBARHET eller L„MPLIGHET F˜R N…GOT SPECIELLT „NDAM…LMacauMadagaskar #E-post fra \"%s" (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaldiverneMaliMaltaMao/kaninmarmartsMarshall¸erneMartin L. Kings dagMartinimasMartiniqueMartyrernes dagMarie bebudelsedagMarie himmelsfarts dagSkĤrtorsdagenMauretanienMauritiusmajmajMajdagenMayotteMexicoMidt-efterrsfestivalMidt-forrsfestivalMidt-rsfestivalmamanMonacomandagmandagemandage - fredagemandage - torsdageMongoliet #Mnedsgruppe (exakt en medlem mste definieras):MontserratMarokkoSvigermordagMors dagMozambiqueMyanmar (Burma) #NamibiaDen nationale grundlĤggelsesdagNational helligdagNational s¸rgedagNauruNepal #HollandNederlandske Antiller/BonaireNederlandske Antiller/Cura§aoNederlandske Antiller/Saba og StatiaNederlandske Antiller/St MaartenNy KaledonienNymneNyrsdagNew ZealandNicaraguaNigerNigeriaRidvans niende dagNiueNobeldagenDe nordlige Marianer¸er (Saipan)Noruz/persisk nytrsdagNorgenovnovemberNumerisk vĤrdi udstyres med foranstillet fortegnNuzul-al-Qur'anFLAGoktoktoberOldarmensk nytrOldĤgyptisk nytrOmanOrtodoks nytrsdagPakistanPalauPalmes¸ndagPanamaPapua Ny GuineaParaguayDelvisFredsfestivalFerskenfestivalHalvskyggeProcenttegn ("%c")PeruFilippinerneFysPitcairnPolenPortugalBededagLĤs flag og kommandon fra "FIL"PrĤsidentdagPrinsessans dagPuerto RicoQatarQuds dagQuinquagesima-s¸ndagRamadanenReformationsdagenRepublikens dagRepublikken Congo #Republikken KoreaRepublikken MoldovaRespekt for de Ĥldre-dagenRevolutionsdagenRio de Janeiros rsdagRumĤnienRosh Hashana/nytrsdagDen Russiske F¸derationRwandaRİunionFORTEGN (kan defineres):SUFFIKS (kan defineres):l¸Saint-Pierre og MiquelonSamhain/keltisk nytrsdagSamoaSan MarinoSao Paulos rsdagSao Tomİ og PrincipeSapporos snefestivall¸rl¸rdagl¸rdageSaudi-arabien…rstidsĤndring/b¸nnefestivalSechsel¤utenSenegalsepseptemberSerbien og MontenegroSeychellerneShab-e QadrShab-e-Bara'tShab-e-Mi'rajShen/abeHvidetirsdagShushan PurimSi/slangeSierra LeoneSimchat TorahSimon Bolivars dagSinais befrielsesdagSingapore #Slavernes befrielsesdagSlovakietSlovenienSolform¸rkelseSalomon¸erneSomaliaSkorstensfejerdagSydafrikaSydgeorgien og Sydsandwich¸erneMellemrumstegn ("%c")SpanienForrsfestivalSri Lanka #St HelenaSt Kitts og NevisSt LuciaSaint Vincent og GrenadinerneStandardStjernefestivalStart p almindelig mnedStart p fremhĤvningssekvens/markeringstegnStart p skudmneds¸SudanSultan Qaboos' f¸dselsdags¸ns¸ndags¸ndageSurinam #Svalbard og Jan Mayen-¸erneSvetitskhovlobaSwazilandSverigeSchweizSchweiz/AargauSchweiz/Appenzell AusserrhodenSchweiz/Appenzell InnerrhodenSchweiz/Basel-StadtSchweiz/BernSchweiz/FribourgSchweiz/Gen¨veSchweiz/GlarusSchweiz/GraubĵndenSchweiz/JuraSchweiz/LuzernSchweiz/Neuch˘telSchweiz/NidwaldenSchweiz/ObwaldenSchweiz/SchaffhausenSchweiz/SchwyzSchweiz/SolothurnSchweiz/St GallenSchweiz/ThurgauSchweiz/TicinoSchweiz/UriSchweiz/ValaisSchweiz/VaudSchweiz/ZugSchweiz/ZĵrichDen Syriske Arabiske Republik (Syrien)TaiwanTajikistanTanzaniaLĤrerens dagtoThailand #Kronprinsessans f¸dselsdagKronprinsessans navnsdagKongens f¸dselsdagKonungens navnsdagDronningens f¸dselsdagDrottningens navnsdagDet finns INGEN garanti, ej heller ngon underforstdd garanti omDetta er fri programvara; se kĤllkoden for kopieringsvillkorDette program er fri software; du m distribuere det og/eller ĤndretortorsdagtorsdageTogo #TokelauTongaTotalTrinidad og Tobago #Fors¸g at bne (niveau: %02d) inkluderingsfil "%s"... %s%s%sFors¸g at bne%sresursefilen "%s"... %s%s%sFors¸g at skrive %s "%s"... %s%s%stiTu B'Shevat/TrĤernes nytrtirtirsdagtirsdageTunesienTyrkietTurkmenistanTurks- og Caicos¸erneTuvaluRidvans tolvte dagDe Amerikanske Jomfru¸erUSAUgandaUkraineBundstregstegn ("%c")Unionsopl¸sningen med SverigeDe Forenede Arabiske EmiraterFN-dagenUSAUSA/AlabamaUSA/AlaskaUSA/ArizonaUSA/ArkansasUSA/CalifornienUSA/ColoradoUSA/ConnecticutUSA/DelawareUSA/District of ColumbiaUSA/FloridaUSA/GeorgiaUSA/HawaiiUSA/IdahoUSA/IllinoisUSA/IndianaUSA/IowaUSA/KansasUSA/KentuckyUSA/LouisianaUSA/MaineUSA/MarylandUSA/MassachusettsUSA/MichiganUSA/MinnesotaUSA/MississippiUSA/MissouriUSA/MontanaUSA/NebraskaUSA/NevadaUSA/New HampshireUSA/New JerseyUSA/New MexicoUSA/New YorkUSA/North CarolinaUSA/North DakotaUSA/OhioUSA/OklahomaUSA/OregonUSA/PennsylvaniaUSA/Rhode IslandUSA/South CarolinaUSA/South DakotaUSA/TennesseeUSA/TexasUSA/UtahUSA/VermontUSA/VirginiaUSA/WashingtonUSA/West VirginiaUSA/WisconsinUSA/WyomingUruguayBrug: %s [--%s | --%s] | [--%s=[+|-]TAL] [ARGUMENT...] Brug: %s [--%s| --%s] | [RESSOURCEFIL | -] Brug: %s [--%s | --%s] | [TEKSTFIL | -] [DATO-DEL] Brug: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Brug: %s [[FLAG...] [%cDATUM] [%cFIL...]] [KOMMANDO]Brug: %s [[FLAG...] [%cFIL...]] [KOMMANDO]Brug '%s %s|[%s?]Anvend angivet "DATO" i stedet for dagens datoUzbekistanVanuatuVenezuelaVeteranernes dagViktoriadagenSejersdagenVietnamUBREDDE (skal defineres):Wallis og Futuna-¸erneAftagende halvmneWaqf-al-ArafatTiltagende halvmneononsonsdagonsdageVeckaUge %sWei/frVestsaharaAnden pinsedagPinseaftenPinsedagWu/hestXu/hund…YemenYin/tigerYom Ha Azmaut/uafhĤngighedsdagenYom Yerushalayim/JerusalemdagYou/haneNUL (kan defineres):ZambiaZi/rotteZimbabwe[JUSTERING [FORTEGN] [NUL] BREDDE [STIL] [SUFFIKS] FORMAT]"%s" linje %ld: ("%s") "%s%d" mislykkedes"%s" linje %ld: ("%s") ugyldig vĤrdi p tabelst¸rrelsen "sizeof %s>%d""%s" linje %ld: ("%s") ikke-behandlet fejl (%d)"%s" linje %ld: virtuel hukommelse slut (%s=%d)"Evighedskalender for helligdage""Intern""termcap"-fil blev ikke fundetfmenhver senere version.kommandolinjeindeholde en formateringsinstruktion, hvis skabelon ligner:standardmilj¸variabelMilj¸variablen "%s" blev ikke fundetmilj¸variablen "%s" er ikke satmislykkedesfilen "%s" kan ikke skrivas Lagringsmediet fuldt!filen "%s" ej fundetfor at f mere information.helligdageugyldigt tegn i responsfilen "%s" Linje %ld: %sugyldig variabeldefinition "%c"ugyldig operation p variabel "%c"ugyldig variabeldefinition i filen "%s"ugyldig variabeloperation i filen "%s"ugyldigt N. ugedagsfelt(%d) i filen "%s" Linje %ld: %sdel af dato ugyldig i filen "%s" Linje %ld: %sugyldig dagugyldigt dagsfelt(%02d) i filen "%s" Linje %ld: %sugyldig mnedugyldigt mnedsfelt(%02d) i filen "%s" Linje %ld: %sugyldig rekursiv/cyklisk %s i filen "%s" Linje %ld: %sugyldigt s¸gem¸nster "%s" specificeretugyldig vĤrdi tildelt variabel "%c" i filen "%s"ugyldigt r for at kunne beregne dato for pskedag …ret skal vare i intervallet (%d - %d)det under vilkrene i "GNU General Public License" udgivet afoffentlige helligdageugyldig %s i filen "%s" Linje %ld: %sblanktegn mangler efter datodelen i filen "%s" Linje %ld: %s.em.lĤsefejl i filen "%s"responsfilegetforsendelse af e-post til <%s> mislykkedesskalprogramskiftevĤrdien "%s" er ugyldigt.lykkedes."Free Software Foundation"; enten version 3, eller (hvis du ¸nsker det)ukendt ukendt oversĤtterukendt oversĤtter (SDK?)ukendt terminaltype defineret i "%s"ukendt versionvariabel "%c" udefineret i filen "%s"version %dversion %d.%dgcal-4.1/po/sv.gmo0000664000000000000000000031717013041164032010732 00000000000000Ŝ•ĤL-‹|Z¨x İx"ĥxÙxíxCŝxAByE„yBÊy+ zL9zK†zKÒzJ{Mi{D·{Fü{FC|@Š|AË|F }FT}=›}6Ù}7~1H~7z~'²~AÚ~ECbAĤIèH2€H{€?Ā*!/FQ$˜4½?òM2‚H€‚HɂPƒJcƒKƒ+úƒ+&„?R„6’„4Ʉ=ŝ„@<…J}…>ȅJ†IR†Kœ†Jè†E3‡Dy‡J‡D ˆ1Nˆ1€ˆ9²ˆ4ìˆ<!‰@^‰2Ÿ‰<҉9Š0IŠ*zŠJŠ<ŠM-‹7{‹N³‹?ŒBBŒ.…ŒN´Œ.B2(u-ž;̍-ŽC6Ž#zŽžŽKĵŽJ?SH“'܏J5O!…4§&ܐ"‘&‘6F‘J}‘.ȑC÷‘:;’Fv’6½’3ô’5(“A^“? “5à“,”JC”EŽ”3Ԕ(•61•/h•+˜•7ĕ7ü•E4–:z– µ–0֖(—20—Ec—Cİ—Dí—E2˜Cx˜Nĵ˜L ™OX™B¨™Dë™P0šDšBĈšH ›KR›Iž›Fè›D/œOtœMĜGGZJ˘JíM8žK†ž=ҞEŸKVŸ@˘ŸEŸ9) .c 7’ -Ê Jĝ =CĦ-ĦJŻĦ0úĦ=+˘6i˘C ˘7ä˘=£8Z£9“£/Í£?ŭ£@=¤0~¤2ݤFâ¤&)HP.™BÈB ĤXNĤc§Ĥ] §5i§:Ÿ§EÚ§G ¨,h¨@•¨EÖ¨*İEGİEİAÓİCŞEYŞ7ŸŞ@ת:Ğ-SЁĞIĦĞIëĞ5Ĵ;QĴ:Ĵ=ÈĴ;­8B­<{­>¸­@÷­M86†;½ù ŻŻ3ŻKŻbŻ wŻ „Ż ‘Ż œŻ ¨ŻµŻBݰB°I°Y°(i°’°—° ĥ°°Ò°ò°ħħ$ ħEħ _ħmħ!‚ħ#¤ħ'Èħ&ħ/²+G² s²;²+ğ²ç²%û²#!³E³^³)s³³$ş³+ß³& ´%2´(X´&´¨´=Ċ´"µ#&µ Jµ!kµ"µ °µµεŜµ òµŭµ ĥĥ .ĥ9ĥ LĥWĥjĥyĥˆĥ5ŠĥÀĥÄĥÈĥ×ĥ èĥ öĥ· ·!·)·:·B·Y·h·x·ˆ·.—· Ĉ·Ó· â·ï· ÷·¸ ¸ ¸4¸R¸j¸Џ޸ɸä¸˙¸ı0ıEı^ıvıı¨ı°ı Äı ÒıÜıàıĉı öı!ş"ş@ş Sş&]ş„ş•ş ş ĞşışÎşàşĉş˙ş ğ #ğ1ğ9ğ =ğJğ_ğcğ jğtğ‡ğĦğğÓğğĵĵ2ĵ:ĵ Pĵ[ĵqĵŒĵĵ˜ĵ ĵ ·ĵ ÄĵÑĵÚĵêĵ ŝĵ ½½-½=½P½b½x½н›½·½˽Ó½Û½ê½ñ½ù½*2;Pa w ˜¤ Ĵ¸Ì ßë ô ż ż ż%ż,żHżdż{ż‚ż”żż ­żşż Íż Ùżżôżüż ˙ż À ÀÀ%À4ÀLÀ\À qÀ’ÀŻÀÂÀÑÀíÀüÀ Á Á4*Á0_Á Á ›Á§Á°Á ËÁĜÁëÁüÁ ÂÂ*Â;Â@ W cÂoÂsŽµÂğÂÁÂĜÂïÂ÷Âû  .@R bpˆ ‘ › ¨µ9ÇÄÄ Ä&ÄFÄ_ÄsÄ ŒÄ™ÄŻÄÄ ÎÄÙÄáÄéÄûÄ Ċ ĊĊ-Ċ3Ċ:ĊIĊXĊZĊHjĊ³ĊÑĊíĊŝĊĈ&Ĉ5ĈEĈbĈxĈĈ£Ĉ¸ĈÏĈĉĈÇÇ6ÇKÇbÇfÇoÇ †Ç”Ç%°ÇÖÇġÇŭÇ È È-È6È?È RÈ_ÈvÈ‘ÈĤÈ½È ÏÈÛÈïÈ óÈ ÉÉÉ6É>É DÉ PÉ\ÉpÉ€É —É £É°ÉÉêÉîÉ.Ê0ÊJÊ \ÊhÊpÊÊ‰ÊžÊ§ÊżÊÎÊŜÊóÊ2ûÊ.Ë2Ë NË YËfËmË ~ˋˣ˴ËÉËàËäËíË Ì!Ì03Ì1dÌ1–Ì*ÈÌ.óÌ:"Í;]Í:™ÍÔÍôÍûÍÎÎ'Î8ÎAÎ%UÎ{ΒέÎÍÎÎ×Î êÎĝÎ ÏÏ"Ï)Ï1Ï @ÏJÏcÏkÏ rÏ Ï% ÏĈÏÎÏßÏçÏ!5D Tb"wšıÖçö Ñ'Ñ9Ñ@Ñ FÑ PÑ\Ñ uÑ€Ñ ’Ñ ÑÀÑßÑöÑ ŭÑ ÒÒ Ò 'Ò5ÒDÒ [ÒfÒ kÒuÒ|ҌңÒĴÒ´Ò şÒÄÒàÒ÷ÒÓ Ó $Ó1/ÓaÓxÓˆÓ œÓİÓ¸Ó ÁÓËÓÜÓ äÓÓ Ô&ÔA.Ô pÔ{Ô‚Ô“Ô­ÔÇÔáÔĝÔĠ(Ġ0ĠCĠ YĠeĠiĠrĠ,ˆĠµĠÌĠéĠÖ$ÖBÖTÖoÖtÖ|Ö€Ö—Ö°Ö·Ö½ÖÓÖäÖĝÖ ×××!×%×+×C×[×u×‰××”×™×× ˘×Ż× ż× Ë×Ö×Ŝ×ç×ŝ×Ĝ)ĜIĜ bĜmĜ}Ĝ–ĜĜ Ĝ°Ĝ ĊĜĜ èĜóĜ#Ù*Ù@ÙGÙ'ZقيْÙĦÙ İÙµÙ ÔÙâÙ ÷Ù ÚÚ$Ú -Ú ;ÚFÚ]ÚsÚ4uÚŞÚ °Ú ½ÚÊÚ.äÚÛ Û%Û.Û3Û 9Û FÛ QÛ\ÛlÛpÛvÛ ‰Û”ÛÛ şÛ ĊÛÛ ċÛòÛÜ Ü5ÜFÜYÜvÜ ‡Ü“Ü£Ü´Ü ĈÜÓÜ Ü îÜĝÜüÜŬ ŬŬ#Ŭ 4ŬAŬHŬWŬkŬŬ‘Ŭ Ŭ£Ŭ§ŬŬµŬ½ŬÏŬ Ŭ1îŬ Ŝ +Ŝ7Ŝ?ŜOŜ cŜpŜ ŠŜ•ŜİŜğŜ ŜÎŜßŜ÷Ŝ ßß2ßJßbßwßŠß ßœß ¤ß°ßÍß$ëßà0à ?à JàXàaàxà ‡à “àà£àĞàżàÄàÍà ìàöà ŝàá<áCáGá/Pá9€á-şá èáôáâ ââââ/â@âUâjâEoâµâÍâäâ˙â4Pj„ˆŒ• ›§ÍŜ çôää %ä3äBä Qä[älä‚ä†äŸä¤ä´ä Óäßä ä ñä üäċċċ!ċ *ċ(5ċ#^ċ‚ċŸċıċÉċÜċôċ ĉĉ -ĉ9ĉMĉdĉjĉsĉˆĉĉ ĉŻĉĉ ÎĉÚĉëĉç ç,ç@çRçfçç çšçĴçğç Öçàççĝçè 'è5è<èEèWèmè0„èµèÎèÑèÚèôèéé (é 6éAéWéné„éˆé ‘é ›é¨é·é Óéáéééíé üéêê0ê BêOê bêoê ê Œê ˜ê Ĥê ´êÀêÜêëê ëë .ë<ë Eë Rë`ëtë ‰ë•ëŞë³ëĵë Ñëßëîë ŝë ì ìì 0ì(=ìfìƒì‰ì ™ì ì²ìÂìĠìèìĝì íí(í:íIíYíhí xí ‚ííí½íÖíĉíùí îî#î7îGîXîiî zî ˆî–î§îĵîÑîáîòîïï/ïHï Qï_ï0uïĤïşï ÎïÜïßïçïíïŝï26=P Xc‚ ’ ž¨ Ż ş ÇÓ"ĉ! ñ+ñHñ`ñqñ†ñšñ­ñĊñÖñéñòò+òDòWòmòƒò—òŞòşòÍòŜòîòóó8ó ?óJó Sóaó xó†ó‰ó ó¨óıóĠóôóô'ô;ôPô:eô= ôDŜôC#ġgġkġ tġ~ġġ¤ġĞġ³ġĊġ Ëġ×ġŬġîġŝġ öö2ö Hö5Sö)‰ö³öÒöĠöóö÷ö˙ö÷÷ ÷$÷=÷D÷ Z÷f÷z÷÷‰÷÷˜÷ ´÷÷Ú÷ï÷ ĝĝ&ĝ;ĝQĝhĝĝ˜ĝ²ĝ"Éĝìĝùù-ùAùXùnùù–ù­ùĊùÙùù ú#ú;úUúlú‚ú™úúÊúúüúû0ûKû^ûuûŠûûÀûŬûĝûü$ü7üMüdü}ü™üħüÇüÙüîüŭ ŭŭ='ŭ0eŭ8–ŭKÏŭ7ŝ.Sŝ‚ŝ(“ŝ ĵŝ ÇŝĠŝ Ŭŝçŝ ÷ŝ˙ ˙ (˙4˙=˙F˙H˙]˙v˙˙Ħ˙°˙Á˙Ä˙ È˙ Ò˙Ŭ˙â˙ ê˙ô˙  !- BNar{‚„Œ ’œğÚúC2 v ‚Œ£Şħş7ö# A1*s/žÎ ċ% ./^at!‡ İ5ĥìĝ# !1S.Z‰³·4À#ġ"(<'e8–+Ï û1 93G5{%ħ4×N F[˘&ħĜHé2>5twz ’  ­ Ê×óöŝE G P a %y Ÿ $Ż  Ô  ß Ĥí  ” (˘ Ë ß @ï @0 Cq >µ (ô M Kk J· FRIGœGäI,BvAıFûFB<‰:Ĉ94;;p(ĴBĠFF_HĤNïL>K‹L×)$!NGp"¸1Û= NKMšQèZ:T•Qê-<-jB˜9Û-9CG}JĊGGXB FH*@sB´H÷B@)ƒ4­=â7 AXMš;è:$6_(–&żPĉ>7<v:³GîF6M}+ËN÷.F @u (ĥ ,ß ; !+H!8t!#­!Ñ!Iñ!K;"A‡"@É"% #E0#/v#"Ĥ#6É#%$&$F$-e$N“$3â$E%;\%G˜%4à%6&7L&B„&KÇ&9'0M';~'Eş'7(+8(4d(4™('Î(<ö(;3)>o)D)$ó)A*(Z*5ƒ*Dı*Fŝ*EE+F‹+HÒ+O,Qk,N½,G -HT-Y-F÷-H>.M‡.KĠ.M!/Eo/Gµ/Nŭ/PL0N0Nì0G;1Kƒ1MÏ1O2>m2FĴ2Jó2C>3I‚35Ì3;4@>4>4F4S5<Y5Q–5=è5;&69b6Iœ6Aĉ6B(7Ik7<µ74ò7H'8Ip83ş8+î8K9+f9B’9;Ġ9D:CV:Wš:fò:`Y;?ş;6ú;?1<Iq<*ğ<=ĉ<F$=$k=E=NÖ=D%>;j>DĤ><ë>*(?=S?,‘?!?9à?9@&T@P{@:Ì@@A@HA;‰A?ĊA@BFFBPB8ŜBPChC{CŒC¨CÄCßCóCD D D +D9D2BDuD2zD­D½D/ÍDŭDE #E1E AEbE‚EŠE)EşEÒEäE1F%3F5YF.F4F-óF !G7.G%fGŒG)İG'ÓGûGH#,HPH%nH%”H'şH&âH' I&1IXICoI³I$ÓIĝI"J&9J`JsJ‡J›JŻJĈJŬJôJ K"K9KPKgKzK“K4•KÊKÎKÒKâKġK LL (L4L=LMLVL pL~LŽLžL3°L äLñL ÷LM MM M)MCM^MqMŒM§MżMÓMêMNN!N5NHN]N pN{NN  NĞNŻNµN ÉNÔNóNO O,*OWOrO{O“O˘O·OËOÑOêO P PP%P )P7PKPOP WPbPvP‘PĴPÂPÛPPQ Q*Q =QJQbQ|Q€QˆQQ £Q°QıQÂQÒQ éQöQ RR-RARTRkR~RRR ·RR ËRĜRßRçRïRSS%S.SDSTShSwS SS S²SĈS ÚSèS ñS ˙S T T "T,TBT YTgTnT ‚TŒT žTĞT ÂT ÍT×TéTòT ġTU UUU)UAUQU fU‡UU¸UÇUßUîU V V3V2QV „V ŽV›V¤V ÁVÎVċV ÷VWW'W8W>W RW ^WiWmW ŠW–WĞWħWĥWÌWäWíWñW XX X&X7X KXXXnX wX ƒX ‘XžX7XĉX öX Y! Y!/YQYgY }YˆYYĴY ğYĈYÍYÖYèY íY ùYZ%Z+Z2Z;ZKZMZGaZİZÉZéZùZ [ )[ 7[D[`[q[†[ –[¤[¸[Ë[ä[û[\$\8\<\E\\\!n\!\²\Ò\Ú\ î\ü\]] ]8] G]T]q]ƒ]˜] Ĵ]ı]Ï]Ó] â] í]û]^^ %^ 1^=^Q^c^ x^„^%^³^Ñ^Ġ^+ë^_(_ 9_E_M___g_‡__Ĥ_·_È_ â_0ì_`!` >` K` W`b`s`|`œ``Ĉ`Ŭ`á`ê`aaB'a)ja%”a*şa/ċa@bBVb7™bÑbñbĝbc c%c p=@p~p „p‘p p1ĵpîp ġp q qq q $q 0q:qKqOqTqhqxq‡q›q ŞqµqĊqĠqòqrr-rAr\r lrwr †r ’r  rr ½r ÉrÓr×r Ûrçrïrs ss&s7sJs]sos€s„s‰ss ˜s˘s·s Ís1Ùs t t#t+t:tIt!Rt tt€t•t§tŻtÀtÖtít uu'uCu^u{u’u ˜uu­u ĵu!Ŭu(˙u#(vLv ^vjvyvv —v £v ŻvıvżvÇvŬvâv%òv w#w,wJwfwlwpw1yw>Ğw5êw x0x @xJxQxUx ]xkx~x•x­xE²xĝx y%y>yTyny‡yžyĥyşyyÇy ÍyÛyâyóyzzz-z>zEz\zmz}z z›zĞzzÂzÑz Öz!z {{{ &{ 4{B{K{Q{ Z{ d{&o{$–{ğ{Ú{{||2|O|_| r|~|’|Ğ|ħ|ş|Ì|Ô| ĉ|ó| } } (}6} T}`}p}ƒ}”}İ}}Ñ}á}ö}~ ~ +~ 9~C~\~e~t~{~„~˜~Ğ~.Ä~ó~  4QWi y„™°ĈË Ó Ŭêó €!€)€-€ >€ H€U€l€€€ € € İ€ ´€ Á€ ̀ ۀ é€!ö€'E N Zh o |Ё ħ½  ځäĝ ‚ ‚)‚9‚ A‚M‚ `‚%j‚‚­‚µ‚ Ă‚à‚‚ƒƒ&ƒ 7ƒEƒTƒfƒxƒˆƒ—ƒ §ƒ²ƒÁƒ%Ĝƒŝƒ „„ /„<„ E„P„c„ s„€„‘„ ¤„²„„ӄé„… …….…A…]…v……‘…,¨…Ġ…ê…†††!†'†7†R†l†q†y† ˆ† ’†œ†ı† Ɇ Ġ†߆ ç† ô†‡ ‡‡7‡U‡n‡ ‚‡‡ ‡°‡ż‡ Ӈà‡ï‡ˆˆ%ˆ:ˆIˆ[ˆmˆ}ˆ Œˆ˜ˆ §ˆ ´ˆÀˆ ˆ܈üˆ ‰‰ ‰'‰C‰S‰V‰ o‰z‰Œ‰‰Á‰ډ‰ŠŠD2Š?wŠN·ŠF‹M‹Q‹ Y‹c‹r‹ˆ‹‹—‹Ğ‹ ħ‹ż‹Ĉ‹׋è‹ŭ‹Œ'Œ =ŒBIŒ/ŒŒ%ĵŒâŒċŒ  %2JQ g t‚†”œ Żğۍòû ˙ Ž Ž "Ž/Ž ?ŽLŽ \ŽiŽ ‚Ž ŽŽ šŽ Ž ŻŽ ĵŽȎ ю ܎ éŽ öŽ    ,: J W c p{œ Џ¸ˏ܏ ċ òŭ2 C Q[ d p}Œ ž Ĵ¸ːܐí˙‘>‘0O‘9€‘Pş‘= ’3I’}’4’’ ǒҒĉ’ î’ĝ’ ““ 6“ D“O“X“`“b“y“”“­“Á““ĉ“é“í“ô“ŭ“” ”” )”5” E” Q” ]”i”{”Œ”•”” ”İ” Ż”%ı”ߔŭ”•4•:T•• ˜•Ĥ•À• Ǖѕڕ8Ŝ•–(4–G]–'–*͖!ĝ–—#—(A—3j—ž—Ħ—´—.ȗ ÷—3˜7˜<˜E˜"T˜"w˜ š˜1§˜٘ö˜ ™ ™/™'J™'r™*š™.Ċ™ô™8û™)4š ^š1jšœš4Ğš4àš#›>9›dx›?Ŭ›œ$1œVœ<eœ˘œEœëœîœñœ* ITsvI‚̝ԝĉ$˙$ž+3ž _ž jžÓàñ]Ë)ŭŻ›•ÇŜ‰TYDœ5·ÜFĠGÓç]ó`]¤žmm<Sò›ğ;ĝbfh„„ΖÉe3Ž|ÎTî~7Uê*œúÖÇ~ĥ¸-b,ĦäażAŝÚ-ЀރÛ(œĦŭ\I4Ĵ\ŜS34\Â6úŭaò„îHiì˜è‰¨OçO£í{şmĝ=çMĴëġLĤÊrKGc >ä‘ÑĜ•Qj c@ù}’–£9Ĵxöż!ûj’ĥ<JÊPŬàQS0 Ċûä"ñ‹ 5òk€!ÙÎ"RŠWĉAv@ôNh‹Œĵƒë*T}Zà²T4ŬÖj602Ĉ%ĦŽvëÉ duzċŽß˙ŒU ?ù,o÷⟞ıš]ıhĈ_vÚmI¨i‚dZiÄÊ–A¨ĥ{ġK?gPM˘VYxqëiDnĉĵUG³k{šݤ˜ŝ°…uï=t‚òÂĝúÄY¸Tċ’5á¤Óá\ˆ!z‡1 Äġɏ;‡Fyƒ{ÏyÚ8ïö]ÀÈ í?CBV1/H‰agO˘CËlß µs/%M(ŬğÌĵ¸—ş[Ù­u7ÍĠ„ ‡CĈoö3ô“ËbĤñ*ó)\‰0ĥħPì+jV[³s}ù­³žLĊ" ÙĴUŻŬ’“E~nMÒ…(ü·]Ì •™q'ü†)$÷ĵEċ'ˆ0Müz |˜,PPílĈÎŝeÑ+ßyĉ?°ŽW+Áš*Fú*ĜSĦ=L5@‹Í´|÷:e|¨ì:ġ~VÏl nryáWš-=޽sêÊ ĊI9[fm½&g_aˆĞwcWsb)£U kß°nô`.¨şİÇf ğt=ÒPî—g>³do/>†}iVçXxGħ2ùö!ŒDG™íqvGˆÜ”ˆâQ^ħÊöX”Ï"Ĝ'Ħš^—Ŝ™—k)ÌR§^µr$OŻéFÏ™™îĠw²èìï Wiħĝ§<Aâkà q’ŽhR~ÑĵKۛŞÒÁfœC‹ċF—Í BŠJĤĤ:ZÄ2q4é8ÈŠN^wZ ˜`-j&_éÓfOŸ34µ.,8¤(x˙ ½óïWlôŭ1‡Â&:Àá‚Dż÷˜¤µtÁp5X2m,ùƒòî*Zl£­.Eğžz?‘dotwÖÂâ8ÍuR‰oZ[g ‘Ċp%Á.7À_yĴäÔ˘YŜç?;ô/ĝż¸qŻ()[àF/‚ƒBYĈ T•ûÎŭf  6$À Hè-×´ñXuz+`:Ÿ·Dé!>Ÿ`İĉÛ;Ì×<™ä(6{êÛ9–ӅgnŒáú^Ëü·…vk8KÔÛÁ##,_´´§J1ê”ëwŠí˙Ñ"|ND׸İÒLpġ}9-|´Ô’‚Ùĉ3ƒŬI6xdñS÷œÖ•&.„ıÑÍcÚ²<žyQŸ¤$ ŝŸ½”˙ó U9L› XèAĜ85$ɍÜŜ‚ê1èljz˜Ş%é Èp†'ıHeÉ6Şï—IÒœğ­€×BÈû%ó47µj²ż…ÙĤN€ĠÖvE†h#c%[ÈeJ2Ĝu$›Ës~b=şr›0KJ>##. :ÇJI˘ÄĊ°tüh7x cħÌ…0#ċQÜ˙R–<L“Żoš°l&@a£Ĥ!”İÚ‡ĦKĞ VtâE\ 'BpB§ˆ;He‘‘˘ÔC×'s £&M`ܞĞßr ĠŝOd_1p–nû€+{Š^Hĥ3ìwC"@r@³‹b A²§ŠŒ„Ž‘a“SEX ı†‹;Q ­Ô2€N‡“ Ğ•9·ş˘Ï†}/“+RY>”À7NŒ½ %s: abort, %s: program aborted by signal %d %s: warning, %s. `%s' line %ld: %-3s = %d...%d Length of a single axis %-3s = %d...%d Total number of lines %-3s = february Respect at `28-FEBRUARY' %-3s = march Respect at `01-MARCH' = %s Backwards = %s List yesterday until starting day of month = %s List yesterday until starting day of week = %s List yesterday until starting day of year N = 0 %s which isn't located in 1st week N = 0 1st week / last week of previous year N = 1...4 1st...4th weekday %s (always) N = 1...51 %s of 1st...51st week (always) N = 1...51 1st...51st weekday %s (always) N = 1...52 1st...52nd week (always) N = 5 5th weekday %s (sometimes) N = 52|53 %s of 52|53rd week (sometimes) N = 52|53 52|53rd weekday %s (sometimes) N = 53 53rd week (sometimes) N = 9 Last weekday %s N = 99 %s of last week N = 99 Last week N = 99 Last weekday %s Actual: `%s' = Manage `29-FEBRUARY' in non-leap years = Set height of the Moon phase text graphics = Set width of the biorhythm text graphics or: month name | %s | %s%s | %s%s | %s%s [MOD] = %s List tomorrow until ending day of month [MOD] = %s List tomorrow until ending day of week [MOD] = %s List tomorrow until ending day of year %s%cwN[%s], month name[%s], weekday name[N] or %s MOD = %s Forwards %-*s = Holidays in %s %-3s = Heading/Title text used for fixed date list %c = Exclusion of all %s Air pressure in Millibar (actual: %.3f) Air temperature in degrees Celsius (actual: %+.3f) E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2 E.g. %sH \x2%s\xAE Use hex values 2 and AE for sequence 1 E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca' E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to `bar' E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4 E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of List: %s[%s%s]%s...%s%s[%s%s] List: [%s%s]%s%s...%s[%s%s]%s Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s expressions separated by `%s' characters is a LOWER-CASE-LETTER, it means a non-exclusion! marked by # have an incomplete recording of holidays the preceding special characters in an individual date format, they are used by the character set used in Germany which are connected by `%s' characters. Countries/territories, which has a STYLE format instruction component, and that, how # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday # %c%c[[%s|%s]N] = Single day N relative to today's date # %c?[%s|%s]N%s = Single N'th weekday relative to date variable # %c?[[%s|%s]N] = Single day N relative to date variable # %cdN = Single absolute day N # %cdN%s = Single N'th weekday %s # %cwN%s = Single weekday %s of N'th week # %s%s = Single day %s of month %s # %s%sN = Single N'th weekday %s of month %s # A = Display using alternative list format # E = Include legal days only # J = Suppress text part of fixed dates # NMOD = Single day N relative to today # Nd = Single absolute day N # Nw = Complete week N # Q = Suppress leading blank line of fixed dates list # U = Suppress date part of fixed dates # Z = Display dates, for which fixed dates doesn't exist # a = Display origin of fixed date # d = Include actual date if list of periods is generated # e = Include legal days and memorial days # g[MOD] = Group fixed dates by day using text MOD # k = Display week number # l = Generate list of periods instead of a single period # m|M[MOD] = List complete month # o = Omit repeating date part of fixed dates # t|T = List tomorrow # w|W[MOD] = List complete week # x = Exclude title of fixed date list # y|Y[MOD] = List complete year # z = Display consecutive number of fixed date 1. Representation of text 2. Respected period = "TVAR[%s|%c%s]COMMAND" definitions separated by `%s' characters = abort Like `all' and abort if file name can't be handled = all Like `handled' and `unhandled' together = handled Like `internal' and file names which are handled = no Standard week numbers = unhandled Like `internal' and file names which are unhandled Actual respected period: %02d-%02d %s %0*d Actual: (%s) `%s' (%s) Change base time of astronomical functions Change base year of calendar Change cycle-ending time Change cycle-timestep Create response file for the `%cFILE' option Create shell script which contains the arguments of command line Define additional resource file line Define global date variable(s) "DVAR->a...d|f...s|u...|z" Define global text variable(s) "TVAR->%ca...%cz" Define translatable country specific special character pairs Determine type of week numbers (actual: %s) Direct output through external `%s' pager Direct output through simple internal pager Disable highlighting of text, holiday resp., actual day Display eternal holiday list (Year in range: %d...%d) Display extended help text and quit program Display help text and quit program Display only those fixed dates, whose date is not excluded by %s Display only those fixed dates, whose text is matched by %s Display software license and quit program Display some debug information Display version information and quit program Exclude title of eternal holiday list Execute `%c%c[%s]' shell commands Export local date variables from file to file Export local text variables from file to file Forces highlighting sequences if output is redirected/piped Ignore case distinctions if `%s' option is given Implies period: Today Limit rise/set times of Sun to the day Modify format of year calendar Provide calendar sheet with week numbers Provide eternal holiday list with BahĦ'i calendar holidays Provide eternal holiday list with BahĦ'i calendar months Provide eternal holiday list with Celtic calendar holidays Provide eternal holiday list with Chinese calendar holidays Provide eternal holiday list with Chinese calendar months Provide eternal holiday list with Chinese flexible calendar holidays Provide eternal holiday list with Chinese flexible calendar months Provide eternal holiday list with Christian Western calendar holidays Provide eternal holiday list with Coptic calendar months Provide eternal holiday list with Ethiopic calendar months Provide eternal holiday list with French Revolutionary calendar months Provide eternal holiday list with Hebrew calendar holidays Provide eternal holiday list with Hebrew calendar months Provide eternal holiday list with Indian civil-calendar months Provide eternal holiday list with Islamic civil-calendar holidays Provide eternal holiday list with Islamic civil-calendar months Provide eternal holiday list with Japanese calendar holidays Provide eternal holiday list with Japanese calendar months Provide eternal holiday list with Japanese flexible calendar holidays Provide eternal holiday list with Japanese flexible calendar months Provide eternal holiday list with Old-Armenic calendar months Provide eternal holiday list with Old-Egyptic calendar months Provide eternal holiday list with Orthodox new-calendar holidays Provide eternal holiday list with Orthodox old-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar months Provide eternal holiday list with astronomical data Provide eternal holiday list with country specific holidays Provide eternal holiday list with multicultural New Year holidays Provide eternal holiday list with zodiacal marker data Represent astronomical times and data with utmost precision Revert the sense of matching of the `%s' option Send output via `%s' program to user Set EXIT status of program to %d on `%s' etc. Set base data of Earth's atmosphere Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday) Set order of date elements using the %s format text Set period of Gregorian Reformation Set reference value for rise/set time respectively shadow length Set starting day of week (actual: %s) Suppress leading blank line of eternal holiday list Suppress output of calendar sheet explicitly Use alternative file(s) instead of standard resource file Use consecutive day of year in calendar sheet Use consecutive day of year in eternal holiday list Use consecutive day of year in fixed date list Use leap year rule of Eastern Orthodox churches Use special format for calendar sheet Use standard resource file `%s%s' for fixed date list Use standard resource file `.%s%s' for fixed date list and "TVAR[%s|%c%s]COMMAND" assignments respectively, change cycle-starting time %-3s = Single file or list of files connected by `%s' characters [MOD] = %s Descending sort order [MOD] = One or more of the following modifiers which are marked by # %-*d%*s = Set period to: %02d-%02d %s %0*d %-3s = "DVAR%s%s%s" definitions separated by `%s' characters %-3s = "TVAR%sTEXT" definitions separated by `%s' characters %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %s%c%s%s%s%s%s%s Set period explicitly %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d) %-3s = Air pressure and temperature separated by `%s' character %-3s = Angular value respectively factor in range: %+.1f...%+.1f %-3s = Any possible resource file line %-3s = Any text respectively "regular expression" you like %-3s = Define individual format. Respected format elements are: %-3s = File name of the shell script %-3s = Highlighting sequence pairs separated by `%s' characters %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]' %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d) %-3s = One or more of the following characters. If character %-3s = Single country resp., territory code or a list of these, %-3s = Store arguments of command line in file %s %-3s = UPPER-CASE-LETTER""LOWER-CASE-LETTER... definitions %-3s = [%s|%s]YYYY Year offset value (actual: %d) %-3s = yes ISO-8601:1988 week numbers %-6s = Format is: `%s' (%s) C = Display those dates, for which fixed dates doesn't exist, too F = Display those dates, for which fixed dates doesn't exist, too N = Legal days only [MOD] = b Use both date notations (day of month+year) %sL, %s Display software license and quit program %sV, %s Display version information and quit program %sh, %s Display this help text and quit program %shh, %s Display extended help text and quit program %sp, %s Direct output through external `%s' pager %sp, %s Direct output through simple internal pager [%-3s] = Email address, otherwise eMail is send to user `%s' [%-3s] = internal Information if program internal maximums are reached [MOD] = - Use standard format for calendar sheet [MOD] = b Use both date notations (day of month+year) (%.4s for Alpha) (%.4s for VAX) (BSD/386 1.1 or later) (FreeBSD 2.0 or later) (NetBSD 1.2 or later) (NetBSD before 0.9) 1.0 or 1.5? 4.0 or 4.02 ; Week %s = %+4d day = %+4d days `HERE' c = Display only those dates, for which fixed dates exists day f = Display only those dates, for which fixed dates exists later than 4.5 later than 5.0 n = Legal days and memorial days on # Day number (must be defined)# Month name# Month number# Weekday name (may be defined)# Year number (must be defined)%cDATE%cFILE%s = Month in range: %d...%d%s in search pattern `%s'%s subprocess%s subprocess failed%s subprocess got fatal signal %d%s%*s = Year in range: %d...%d%s%s contains %d maximum entries now!%s%s: for more, <%s> to quit...%s: The Gregorian calendar program (GNU cal) %s%s: Use `%s %s' with one of these arguments%s: abort, %s: command in environment variable `%s' found -- %s %s %s %s: error during program execution of `%s' %s: file not found %s: invalid date given -- %c%s %s %s %s: invalid date given -- %s %s %s %s: invalid option -- %s%s: no regular file %s: option `%s' doesn't allow an argument%s: option `%s' is ambiguous%s: option `%s' requires an argument%s: option `--%s' doesn't allow an argument%s: option `--%s' requires an argument%s: option requires an argument -- %s%s: option with ambiguous argument -- %s%s: option with invalid argument -- %s%s: unrecognized option `%s'%s: warning, eMail with empty message body not sent to <%s>. %s:%*sThe year %0*d is A leap year%s:%*sThe year %0*d is NO leap year%s:%*sThe year %d is A leap year%s:%*sThe year %d is NO leap year(`%s') date format `%s' is invalid(bad version)++ 1.0 or later++ 3.0 or later+++ FIXED DATES +++1st Advent1st Sunday in Lent2nd Advent2nd Sunday in Lent3rd Advent3rd Sunday in Lent4th Advent4th Sunday in Lent5.1 or earlier7-5-3 Festival:ALIGNMENT group (exactly one member must be defined):AMOARGAborigines DayAdelaide Cup DayAdmission DayAfghanistanAga Khan's BirthdayAlaska DayAlbaniaAleksis Kivi DayAlgeriaAlice-Springs Show DayAll Fool's DayAll Saints' DayAll Saints' EveAll Souls' DayAll format elements marked by # may optionallyAlphabet DayAmerican SamoaAmericas DayAndorraAngam DayAngola #AnguillaAnniversary of Amir's SuccessionAnniversary of Armed StruggleAnniversary of AucklandAnniversary of Canterbury NorthAnniversary of Canterbury SouthAnniversary of Chatham IslandsAnniversary of Green MarchAnniversary of Hawkes' BayAnniversary of MarlboroughAnniversary of NelsonAnniversary of OtagoAnniversary of SouthlandAnniversary of TaranakiAnniversary of WellingtonAnniversary of WestlandAnnularAntigua and BarbudaAntillian DayAnzac DayAprAprilArab League DayArbor DayArchbishop Makarios' Memorial DayArchbishop Makarios' Name-DayArengo AnniversaryArgentinaArgument `%s' of command line ignored.Armed Forces DayArmeniaArmistice DayArmy Coup DayArrival of the SwissArtigas' BirthdayArubaAscension of Abdu'l-BahaAscension of Baha'u'llahAsh MondayAsh WednesdayAshura'AstAsuncion DayAtaturk Memorial DayAugAugustAustraliaAustralia/CanberraAustralia/New South WalesAustralia/Northern TerritoryAustralia/QueenslandAustralia/Southern AustraliaAustralia/TasmaniaAustralia/VictoriaAustralia/Western AustraliaAustriaAuthority's Power DayAzerbaijanBa'ath Revolution DayBackslash ('%c') characterBahBahamasBahrainBahĦ'i New Year's DayBangladesh #Bank HolidayBarbadosBaron Bliss DayBasque National DayBataan DayBattle of AngamosBattle of BoyacĦBattle of BoyneBattle of CaraboboBattle of IquiqueBattle of Las PiedrasBattle of N¤felsBattle of PueblaBeginning of Financial YearBeginning of SummerBelarusBelgiumBelgrade's DayBelizeBeltaneBenin #Benito JuĦrez DayBennington Battle DayBermudaBhutan #Birth of Baha'u'llahBirth of the BabBlessing of the WaterBloomsdayBodhidharma's BirthdayBoganda DayBoliviaBonaire DayBoqueron Battle DayBosnia-HerzegovinaBosses' DayBotswanaBotswana DayBounty DayBouvet IslandBoxing DayBrazilBringing Home the Herds DayBringing in the Harvest DayBritish Virgin IslandsBruneiBuddha's BirthdayBulgariaBunker Hill DayBurkina FasoBurning of Jan HusBurns NightBurundi #C. Mapinduzi DayCOMMANDCWCambodia #CameroonCamoes DayCanadaCanada/AlbertaCanada/British ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland and LabradorCanada/Northwest TerritoriesCanada/Nova ScotiaCanada/OntarioCanada/Prince Edward IslandCanada/QuİbecCanada/SaskatchewanCanada/YukonCanberra DayCannot calculate lunisolar calendar for %d correctlyCannot execute command in file `%s' Line: %ld %sCape VerdeCaricom DayCarnivalCasimir Pulaski's BirthdayCassinga DayCatherine Show DayCayenne FestivalCayman IslandsCelCentral African Republic #Cesar Chavez DayChadCharacter replacement:Charter DayChen/DragonChiChiang Kai-shek's BirthdayChildren's DayChildren's White SundayChileChinaChinese New Year's DayChinese New Year's EveChou/OxChrChrist's Ascension DayChristmas DayChristmas EveChristmas IslandsChrysanthenum DayCitizenship DayCivic HolidayCocos Islands (Keeling)ColombiaColon DayColorado DayColumbus DayComing of Age DayCommand executed (exit code=%d) in file `%s' Line %ld: %sCommonwealth DayComorosCompact DayCompiled with %s%s for %s%s%s%sConfederal Agreement DayConfucius' BirthdayConstitution AnniversaryCook IslandsCoptic New Year's DayCoronation DayCosmonauts' DayCosta RicaCreatedCroatiaCross Raising DayCubaCulture DayCup Match DayCustom Chief's DayCycleCyprusCzech RepublicC´te d'IvoireDDarwin Show DayDate format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Day after Mid-Autumn FestivalDay after Tomb-Sweeping DayDay of AndaluciaDay of CataloniaDay of Czech StatehoodDay of GaliciaDay of GoodwillDay of Prayer and RepentanceDay of ReconciliationDay of Students RevoltDay of the CovenantDay of the Free LaosDeath of H. ChristopheDeath of J. DessalinesDeath of President AbdallahDeath of President CheikhDeath of President SoilihDeath of Qaid-i-AzamDeath of T. LouvertureDecDecemberDeclaration of the BabDefenders DayDefenders of Motherland DayDemocratic People's Republic of KoreaDemocratic Republic of Congo #DenmarkDia de los MaestrosDia del PadreDiscovery DayDjiboutiDominicaDominican RepublicDouble-9 DayDownfall of the DergueDr. Sun Yat-sen's BirthdayDragon Boat FestivalDry Season CelebrationDuarte's BirthdayDynasty DayE. Hostos' BirthdayEGOEaster MondayEaster SundayEaster TuesdayEconomic Liberation DayEcuadorEgyptEid-al-AdhaEid-al-FitrEid-i-Milad-un-NabiEight Hours DayEindhoven's LiberationEl SalvadorElection DayElections for National AssemblyEmail bug reports to <%s>EmoEmperor's BirthdayEnd of highlighting sequence/marking characterEpiphany/Three King's DayEquatorial GuineaEquinox DayEritreaErrol Barrow DayEstoniaEternal holiday listEthiopiaEthiopic New Year's DayEvacuation DayEve of EpiphanyExpedition of the 33FAO DayFORMAT group (exactly one member must be defined):FRRFalkland Islands (Malvinas)Family DayFarmers' DayFaroesFather Leval DayFather's DayFeast of Corpus ChristiFeast of FortuneFeast of Heart JesusFeast of Our TheotokosFebFebruaryFederated States of MicronesiaFestival of LanternsFestival of SadehField contents is converted to capitalized wordsField contents is converted to lower-case lettersField contents is converted to upper-case lettersField contents is cut after position WIDTHField contents is not cut after position WIDTHField contents placed at the left margin using width WIDTHField contents placed at the right margin using width WIDTHField contents placed in centered manner using width WIDTHField has the width N (%d...%d)Fiji #FinlandFirst Day of RidvanFisherman's DayFixed date list:Flag DayFlemish Culture DayFormer Yugoslav Republic of MacedoniaFoundation of NPLA DayFounding of People's PartyFounding of the Communist PartyFrFranceFrench Culture DayFrench GuianaFrench PolynesiaFrench RevolutionaryFriFridayFridaysFriendship DayFull MoonGNU gcal home page: <%s>Gabon #GambiaGarifuna DayGeneral San Martin's AnniversaryGeneral help using GNU software: <%s>GeorgiaGerman Unity DayGermanyGermany/Baden-WĵrttembergGermany/BavariaGermany/BerlinGermany/BrandenburgGermany/BremenGermany/HamburgGermany/HesseGermany/Lower SaxonyGermany/Mecklenburg-West PomeraniaGermany/North Rhine-WestphaliaGermany/Rhineland PalatinateGermany/SaarlandGermany/SaxonyGermany/Saxony-AnhaltGermany/Schleswig-HolsteinGermany/ThuringiaGhadirGhanaGibraltarGood FridayGood Saturday/Easter EveGospel DayGrandparents' DayGreat BritainGreat Britain/England and WalesGreat Britain/Northern IrelandGreat Britain/ScotlandGreeceGreenery DayGreenlandGrenadaGrotto DayGroundhog DayGuacanaste DayGuadalupe Virgin's DayGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Gustavus Adolphus' DayGuyana #Hai/PigHaitiHalloweenHannukah/Festival of LightsHealth and Sport's DayHeard and Mc Donald IslandsHebHeritage DayHeroes DayHighlighting group (all members must be defined):Ho Chi Minh's BirthdayHobart Show DayHoly Innocent's DayHoly TrinityHoly WednesdayHondurasHong KongHuman Rights DayHungaryHuravee DayHurricane Supplication DayHurricane Thanksgiving DayIcelandIf you use this software, you agree without any exception to thisImamat DayImbolgIndependence DayIndependence Movement DayIndependence ProclamationIndependence of CartagenaIndependence of CuencaIndependence of GuayaquilIndependence of QuitoIndia #Indian Arrival DayIndian New Year's DayIndonesia #IntInternalInternal Autonomy DayInvalid argument in command line given -- %sInvalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionIraqIrelandIslIslamic New Year's DayIslamic Republic of IranIsraelItalyJ. Barbosa's BirthdayJ. Chilembwe DayJ. Diego's BirthdayJ. Robert's BirthdayJamaicaJanJanuaryJapJapanJapanese New Year's DayJapanese New Year's EveJefferson Davis' BirthdayJesus' CircumcisionJordanJulJulyJunJuneJune HolidayKamarampaka DayKartini DayKazakhstanKenya #Kiev DayKim Il-Sung's BirthdayKim Jong-Il's BirthdayKing Kamehameha DayKing Rama I Memorial Day/ChakriKing Rama V Memorial DayKiribati #KnabenschiessenKonstantin and MethodiusKuwaitKwanzaaKyrgyzstanL. Rivera's BirthdayLabour DayLabour Thanksgiving DayLag B'OmerLao Tze's BirthdayLaos People's Democratic Republic #Lapp National HolidayLatviaLaunceston Cup DayLeap-day set to `%02d-%s' in file `%s'.LebanonLesothoLiberation DayLiberiaLiberty DayLibyan Arab Jamahiriya (Libya)LiechtensteinLine %ld ignored: %sLine %ld: %sLithuaniaLoss of Muslim NationLughnasaLunar EclipseLuxembourgLuxembourg City KermisLyndon B. Johnson DayMMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.MacauMadagascar #Madaraka DayMahatma Gandhi's BirthdayMail from \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaldivesMaliMaltaMalvinas DayManila DayMao/RabbitMaputo City DayMarMarchMarien Ngouabi DayMarine DayMarshall IslandsMartin L. King's DayMartinimasMartiniqueMartyrdom of the BabMartyrs' DayMary - Blessed VirginMary's Annunciation DayMary's Ascension DayMary's CandlemasMary's ExpectationMary's Immaculate ConceptionMary's MaternityMary's NameMary's NativityMary's SacrificeMary's VisitationMaryland DayMaundy ThursdayMauritaniaMauritiusMayMay May DayMayotteMelbourne Cup DayMemory exhaustedMerchant DayMexicoMi-CarŞme DayMid-Autumn FestivalMid-Spring FestivalMid-Year FestivalMissionary DayMoMonMonacoMondayMondaysMondays...FridaysMondays...ThursdaysMongolia #Month group (exactly one member must be defined):MontserratMorazan DayMoroccoMosheshoe's DayMother in Law's DayMother's DayMotherhood and Beauty DayMozambiqueMusic Water BanquetMyanmar (Burma) #NamibiaNaming DayNational Bun DayNational Foundation DayNational Heroes DayNational HolidayNational Mourning DayNational Redemption DayNational Resistance DayNational Revival DayNational Unity DayNauruNdadaye DayNepal #NetherlandsNetherlands Antilles/BonaireNetherlands Antilles/Cura§aoNetherlands Antilles/Saba and StatiaNetherlands Antilles/St MaartenNeutrality DayNevada DayNew CaledoniaNew MoonNew Regime AnniversaryNew Year's DayNew ZealandNicaraguaNigerNigeriaNinth Day of RidvanNiueNo matchNo previous regular expressionNobel DayNoi DayNorthern Marian Islands (Saipan)Noruz/Persian New Year's DayNorwayNovNovemberNumerical value is filled with leading zero(es)Numerical value is provided with an ordinal number suffixNumerical value is provided with leading signNurses' DayNuzul-al-Qur'anOAU DayOPTIONOctOctoberOctober HolidayOil Industry DayOld-Armenic New YearOld-Egyptic New YearOmanOn principle I will not be liable for ANY damages or losses (implicitOrthodox New Year's DayOur Lady Aparecida DayOur Lady of Altagracia DayOur Lady of Camarin DayOur Lady of Las Mercedes DayOur Lady of Los Angeles DayOur Lady of Seven SorrowsOur Lady of Victories DayOxNOxOPakistanPalauPalm SundayPanamaPanama City DayPanamerica DayPapua New GuineaParaguayParent's DayParis Peace Agreement DayPartialPassion SundayPatriot's DayPeace FestivalPeach FestivalPenumbralPeople Power DayPeople's Uprising DayPerPercent ('%c') characterPeruPesach/PassoverPhilippine-American FriendshipPhilippinesPhyPichincha DayPicnic DayPioneer DayPitcairnPolandPortugalPoya DayPrayer DayPreload options and commands from `FILE'Premature end of regular expressionPresident Lincoln's BirthdayPresidential InaugurationPresidents' DayPresidents' InformPrince Kalanianaole DayPrince of Wales' BirthdayPrincess' DayProclamation DayPuerto RicoPurim/Feast of LotsQaid-i-Azam's BirthdayQatarQuds DayQuinquagesima SundayRamadanRatu Sukuma DayRecreation DayReferendum DayReformation DayRegatta DayRegency ExchangeRegular expression too bigRemembrance/Memorial DayRepublic DayRepublic of Congo #Republic of KoreaRepublic of MoldovaRespect for the Aged DayRestoration DayReturn DayReunification DayRevolution DayRio de Janeiro AnniversaryRizal DayRogation SundayRomaniaRosh Hashana/New Year's DayRussian FederationRwagasore DayRwandaRİunionS. Doe's BirthdaySAR Establishment DaySIGN (may be defined):STYLE group (exactly one member may be defined):SUFFIX (may be defined):SaSaba DaySaint-Pierre and MiquelonSamhain/Celtic New Year's DaySamoaSan Jacinto DaySan Josİ DaySan MarinoSao Paulo AnniversarySao Tomİ and PrincipeSapporo Snow FestivalSatSaturdaySaturdaysSaudi ArabiaSchool HolidaySeason Change/Bean-FestivalSechsel¤utenSenegalSepSeparation DaySeptemberSeptuagesima SundaySerbia and MontenegroSeretse Khama DaySettlers DaySeven Sleepers DaySeward's DaySexagesima SundaySeychellenShab-e QadrShab-e-Bara'tShab-e-Mi'rajShaheed DayShavuot/Giving of the TorahSheep FestivalSheikh Zayed's Ascension DayShen/MonkeyShrove Tuesday/Mardi GrasShushan PurimSi/SnakeSierra LeoneSimchat TorahSimon Bolivar's DaySinai-Liberation DaySingapore #Slave-Liberation DaySlovakiaSloveniaSniff the Breeze DaySolar EclipseSolidarity DaySolomon IslandsSolstice DaySomaliaSomers DaySoot-Sweeping DaySouth AfricaSouth Georgia and South Sandwich IslandsSpace/blank ('%c') characterSpainSpring FestivalSri Lanka #St Agata DaySt Andrew's DaySt Bartholomew DaySt Berchtold's DaySt Canute's DaySt Cedilia's DaySt Charles' DaySt David's DaySt Demetrius' DaySt Dİvote DaySt Edward's DaySt Eliah's DaySt George's DaySt HelenaSt James' DaySt Jean Baptiste DaySt John's/Midsummer DaySt John's/Midsummers EveSt Joseph's DaySt Kitts and NevisSt Laurentius DaySt LuciaSt Lucia's DaySt Marguerite's DaySt Maroon's DaySt Michael's DaySt Nicholas' DaySt Nicholas' EveSt Olav's DaySt Olav's EveSt Patrick's DaySt Paul's ShipswreckSt Peter and St PaulSt Rose of LimaSt Stephen's DaySt Ursula's DaySt Valentine's DaySt Vincent and GrenadinesSt Vincent de Paul's DayStandardStar FestivalStart of common monthStart of highlighting sequence/marking characterStart of leap monthStatia-American DayStudent's DaySuSuccessSudanSuez Victory DaySukkot/Feast of TabernaclesSultan Qaboos' BirthdaySunSundaySunday of the DeadSundaysSuriname #Svalbard and Jan Mayen IslandsSvetitskhovlobaSwallow DaySwazilandSwedenSweden DaySweetest DaySwitzerlandSwitzerland/AargauSwitzerland/Appenzell AusserrhodenSwitzerland/Appenzell InnerrhodenSwitzerland/Basel-LandschaftSwitzerland/Basel-StadtSwitzerland/BernSwitzerland/FribourgSwitzerland/Gen¨veSwitzerland/GlarusSwitzerland/GraubĵndenSwitzerland/JuraSwitzerland/LuzernSwitzerland/Neuch˘telSwitzerland/NidwaldenSwitzerland/ObwaldenSwitzerland/SchaffhausenSwitzerland/SchwyzSwitzerland/SolothurnSwitzerland/St GallenSwitzerland/ThurgauSwitzerland/TicinoSwitzerland/UriSwitzerland/ValaisSwitzerland/VaudSwitzerland/ZugSwitzerland/ZĵrichSylvester/New Year's EveSyrian Arab Republic (Syria)TaiwanTajikistanTanzaniaTeacher's DayTennant-Creek Show DayTerritory DayThThai New Year's DayThailand #Thanksgiving DayThe Crown Prince's BirthdayThe Crown Princesse's BirthdayThe Crown Princesse's Name-DayThe King's BirthdayThe King's Name-DayThe Queen's BirthdayThe Queen's Name-DayThere is NO warranty, without even the implied warranty ofThis is free software; see the source for copying conditions.This program is free software; you can redistribute it and/or modifyThis software doesn't claim completeness, correctness or usability.ThuThursdayThursdaysTiradentes DayTisha B'Av/Fasting DayTogo #TokelauTomb-Sweeping DayTongaTopou I DayTotalTown Meeting DayTraditional DayTrailing backslashTransfer DayTransfiguration DayTrinidad and Tobago #Truman DayTry to open (level: %02d) include file `%s'... %s%s%sTry to open%sresource file `%s'... %s%s%sTry to write %s `%s'... %s%s%sTuTu B'Shevat/New Year of TreesTueTuesdayTuesdaysTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluTwelfth Day of RidvanTynwald DayU.S. Virgin IslandsU.S.A.UNKNOWNUgandaUkraineUnderscore ('%c') characterUnion DayUnion with Sweden dissolvedUnited Arab EmiratesUnited Nations DayUnited StatesUnited States/AlabamaUnited States/AlaskaUnited States/ArizonaUnited States/ArkansasUnited States/CaliforniaUnited States/ColoradoUnited States/ConnecticutUnited States/DelawareUnited States/District of ColumbiaUnited States/FloridaUnited States/GeorgiaUnited States/HawaiiUnited States/IdahoUnited States/IllinoisUnited States/IndianaUnited States/IowaUnited States/KansasUnited States/KentuckyUnited States/LouisianaUnited States/MaineUnited States/MarylandUnited States/MassachusettsUnited States/MichiganUnited States/MinnesotaUnited States/MississippiUnited States/MissouriUnited States/MontanaUnited States/NebraskaUnited States/NevadaUnited States/New HampshireUnited States/New JerseyUnited States/New MexicoUnited States/New YorkUnited States/North CarolinaUnited States/North DakotaUnited States/OhioUnited States/OklahomaUnited States/OregonUnited States/PennsylvaniaUnited States/Rhode IslandUnited States/South CarolinaUnited States/South DakotaUnited States/TennesseeUnited States/TexasUnited States/UtahUnited States/VermontUnited States/VirginiaUnited States/WashingtonUnited States/West VirginiaUnited States/WisconsinUnited States/WyomingUnity Factory DayUnknown system errorUnmatched ( or \(Unmatched ) or \)Unmatched \{UruguayUsage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...] Usage: %s [--%s | --%s] | [RESOURCE-FILE | -] Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART] Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]Use `%s %s|[%s?]Use given `DATE' instead of today's dateUzbekistanValborg's EveVanuatuVenezuelaVenice CarnivalVeteran's DayVictor-Schoelcher DayVictoria DayVictory DayVidovdanViet NamWW. Tubman's BirthdayWIDTH (must be defined):Wallis and Futuna IslandsWaning Half MoonWaqf-al-ArafatWaxing Half MoonWeWedWednesdayWednesdaysWeekWeek %sWei/SheepWest Virginia DayWestern SaharaWhit MondayWhitsun EveWhitsunday/PentecostWomen's DayWomen's Shrove DayWorld Animal DayWu/HorseXu/DogYYap DayYemenYin/TigerYom Ha Azmaut/Independence DayYom Hashoah/Holocaust MemorialYom Hazikaron/Soldiers MemorialYom Kippur/Atonement DayYom Yerushalayim/Jerusalem DayYou should have received a copy of the `GNU General Public License'You/RoosterYouth DayZERO (may be defined):ZambiaZi/RatZimbabweZod[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]_open_osfhandle failed`%s' line %ld: (`%s') `%s%d' failed`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'`%s' line %ld: (`%s') unmanaged error (%d)`%s' line %ld: virtual memory exhausted (%s=%d)`Eternal holiday list'`Internal'`termcap' file not foundagreement, which binds you LEGALLY !!along with this program; if not, write to the:amany later version.cannot create pipecannot restore fd %d: dup2 failedcommand linecontain a format instruction, which template is like:d'"defaultenvironment variableenvironment variable `%s' not foundenvironment variable `%s' not setfailedfile `%s' can't be written Storage media full!file `%s' not foundfor more information.h'"holidaysillegal character in response file `%s' Line %ld: %sillegal definition of variable `%c'illegal operation on variable `%c'illegal variable definition in file `%s'illegal variable operation in file `%s'internalinvalid N'th weekday field(%d) in file `%s' Line %ld: %sinvalid date part in file `%s' Line %ld: %sinvalid dayinvalid day field(%02d) in file `%s' Line %ld: %sinvalid monthinvalid month field(%02d) in file `%s' Line %ld: %sinvalid recursive/cyclic %s in file `%s' Line %ld: %sinvalid search pattern `%s' specifiedinvalid value assigned to variable `%c' in file `%s'invalid year for computing Easter Sundays date Year must be in range (%d...%d)it under the terms of the `GNU General Public License' as published bylegal holidaysmalformed %s in file `%s' Line %ld: %smemory exhaustedmissing `whitespace' character after date part in file `%s' Line %ld: %sndor explicit), which result from using or handling my software.pmrdread error in file `%s'response fileself-definedsending eMail to <%s> failedshell scriptshift value `%s' is invalidstsuccessththe `Free Software Foundation'; either version 3, or (at your option)unknown unknown compilerunknown compiler (SDK?)unknown terminal type defined in `%s'unknown versionvariable `%c' undefined in file `%s'version %dversion %d.%dProject-Id-Version: gcal 3.6.3.34 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 2016-08-09 11:33+0200 Last-Translator: Gĥran Uddeborg Language-Team: Swedish Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. %s: avbryt, %s: programmet avbrutet av signalen %d %s: varning, %s. "%s" rad %ld: %-3s = %d - %d L¤ngden p en axel %-3s = %d...%d Totala antalet rader %-3s = february Beakta den 28 FEBRUARI %-3s = march Beakta den 1 MARS = %s Bakt = %s Lista frn igr till bĥrjan p mnaden = %s Lista frn igr till bĥrjan p veckan = %s Lista frn igr till bĥrjan p ret N = 0 %s som inte finns i 1:a veckan N = 0 1:a veckan / sista veckan fĥregende r N = 1 - 4 1:a - 4:e veckodagen %s (alltid) N = 1 - 51 %s i 1:a - 51:a veckan (alltid) N = 1 - 51 1:a - 51:a veckodagen %s (alltid) N = 1 - 52 1:a - 52:a veckan (alltid) N = 5 5:e veckodagen %s (ibland) N = 52|53 %s i 52:a|53:e veckan (ibland) N = 52|53 52|53:e veckodagen %s (ibland) N = 53 53:e veckan (ibland) N = 9 Sista veckodagen %s N = 99 %s i sista veckan N = 99 Sista veckan N = 99 Sista veckodagen %s Faktisk: "%s" = Hantera 29 FEBRUARI under icke-skottr = St¤ll in hĥjden p mnfasens textgrafik = St¤ll in bredden p biorytmens textgrafik eller: namn p mnad | %s | %s%s | %s%s | %s%s [MOD] = %s Lista frn imorgon till slutet p mnaden [MOD] = %s Lista frn imorgon till slutet p veckan [MOD] = %s Lista frn imorgon till slutet p ret %s%cwN[%s], namn p mnad[%s], namn p veckodag[N] eller %s MOD = %s Framt %-*s = Helgdagar i %s %-3s = Rubrik-/titeltext fĥr lista med fasta datum %c = Uteslutning av %s Lufttryck i millibar (faktiskt: %3.f) Lufttemperatur i grader Celsius (faktiskt: %+.3f) T.ex. %sH %s%s*%s* Anv¤nd tecknen "*" och "*" fĥr sekvens 2 T.ex. %sH \x2%s\xAE Anv¤nd hexv¤rdena 2 och AE fĥr sekvens 1 T.ex. %sr %ca%sapa Tilldela utdata frn kommandot "apa" till "%ca" T.ex. %sr %ca%sapa%s%cb%sbil St¤ll in "%ca" till "apa" och "%cb" till "bil" T.ex. %sv a%s1127%sb%s054 St¤ll in "a" till 27 nov och "b" till 4 maj T.ex. ett ”%s%s%s%s%s%s%s%s” %-3s medfĥr korrekt konvertering av Lista: %s[%s%s]%s...%s%s[%s%s] Lista: [%s%s]%s%s...%s[%s%s]%s Intervall: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s Intervall: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s uttryck tskilda med "%s"-tecken ¤r en GEMEN betyder det en icke-uteslutning! markerade med # har en ofullst¤ndig registrering av helger de fĥregende specialtecknen i ett individuellt datumformat, de anv¤nds av teckenupps¤ttningen som anv¤nds i Tyskland som ¤r sammanbundna med ”%s”-tecken. L¤nder/omrden vilka har en formatinstruktionskomponent STIL, och hur # %c%c[%s|%s]N%s = Enstaka N:e veckodag relativt pskdagen # %c%c[%s|%s]N%s = Enstaka N:e veckodag relativt dagens datum # %c%c[[%s|%s]N] = Enstaka dag N relativt pskdagen # %c%c[[%s|%s]N] = Enstaka dag N relativt dagens datum # %c?[%s|%s]N%s = Enstaka N:e veckodag relativt datumvariabel # %c?[[%s|%s]N] = Enstaka dag N relativt datumvariabel # %cdN = Enstaka dag N # %cdN%s = Enstaka N:e veckodagen %s # %cwN%s = Enstaka veckodagen %s i N:e veckan # %s%s = Enstaka dag %s i mnaden %s # %s%sN = Enstaka N:e veckodagen %s i mnaden %s # A = Visa genom att anv¤nda ett alternativt listformat # E = Tag bara med allm¤nna helgdagar # J = Utel¤mna textdel i fasta datum # NMOD = Enstaka dag N relativt idag # Nd = Enstaka dag N # Nw = Hel vecka N # Q = Utel¤mna inledande tomrad i listan ĥver fasta datum # U = Utel¤mna datumdelen av fasta datum # Z = Visa dagar som saknar fasta datum # a = Visa ursprunget till fast datum # d = Tag med aktuellt datum om periodlista skapas # e = Tag med allm¤nna helgdagar och minnesdagar # g[MOD] = Gruppera fasta datum genom att anv¤nda texten MOD # k = Visa veckonummer # l = Skapa periodlista i st¤llet fĥr en enstaka period # m|M[MOD] = Lista hela mnaden # o = Utel¤mna del av datumet som upprepas # t|T = Lista imorgon # w|W[MOD] = Lista hela veckan # x = Lista med fasta datum utan titel # y|Y[MOD] = Lista hela ret # z = Visa fortlĥpande fasta datum 1. Representation av text 2. Aktuell tidsperiod = "TVAR[%s|%c%s]KOMMANDO"-definitions tskilda med "%s"-tecken = abort Som "all" men avbryt om filnamnet inte kan hanteras = all Som "handled" och "unhandled" tillsammans = handled Som "internal" plus filnamn som hanteras = no Standardveckonummer = unhandled Som "internal" plus filnamn som inte hanteras Aktuell tidsperiod: %02d-%02d %s %0*d Faktiskt: (%s) "%s" (%s) „ndra bastiden fĥr astronomiska funktioner „ndra basret i kalendern „ndra cykelsluttiden „ndra cykeltidssteg Skapa svarsfil fĥr "%cFIL-flaggan" Skapa ett skalprogram som innehller argumenten frn kommandoraden Definiera ytterligare rader i resursfilen Definiera globala datumvariabler "DVAR->a...d|f...s|u...|z" Definiera globala textvariabler "TVAR->%ca...%cz" Definiera ĥvers¤ttningsbara landsspecifika specialteckenpar Avgĥr typen av veckonummer (faktiskt: %s) Skicka utdata genom en extern "%s"-sidvisare Skicka utdata genom en enkel intern sidvisare St¤ng av markering av text, helgdagar resp. aktuell dag Visa evighetskalender fĥr helgdagar (r i intervallet: %d - %d) Visa utvidgad hj¤lptext och avsluta programmet Visa hj¤lptext och avsluta programmet Visa bara de fasta datum, som inte utesluts av %s Visa bara de fasta datum, vars text ĥverensst¤mmer med %s Visa programvarulicens och avsluta programmet Visa lite felsĥkningsinformation Visa versionsnummer och avsluta programmet Evighetskalender fĥr helgdagar utan titel Kĥr "%c%c[%s]"-skalkommandon Exportera lokala datumvariabler frn fil till fil Exportera lokala textvariabler frn fil till fil Framtvinga markeringssekvenser om utdata omdirigeras Ignorera skillnader i VERSALER/gemener om flaggan "%s" ges Medfĥr tidsperioden: idag Begr¤nsa uppgng/nedgngstider fĥr solen till dagen „ndra format p rskalender Tillhandahll kalenderblad med veckonummer Tillhandahll evighetskalender med BahĦ'i-kalenderhelger Tillhandahll evighetskalender med BahĦ'i-kalendermnader Tillhandahll evighetskalender med keltiska kalenderhelger Tillhandahll evighetskalender med kinesiska kalenderhelger Tillhandahll evighetskalender med kinesiska kalendermnader Tillhandahll evighetskalender med kinesiska flexibla kalenderhelger Tillhandahll evighetskalender med kinesiska flexibla kalendermnader Tillhandahll evighetskalender med v¤stliga kristna kalenderhelger Tillhandahll evighetskalender med koptiska kalendermnader Tillhandahll evighetskalender med etiopiska kalendermnader Tillhandahll evighetskalender med kalendermnader frn franska revolutionen Tillhandahll evighetskalender med hebreiska kalenderhelger Tillhandahll evighetskalender med hebreiska kalendermnader Tillhandahll evighetskalender med indiska civila kalendermnader Tillhandahll evighetskalender med islamiska civilkalenderhelger Tillhandahll evighetskalender med islamiska civilkalendermnader Tillhandahll evighetskalender med japanska kalenderhelger Tillhandahll evighetskalender med japanska kalendermnader Tillhandahll evighetskalender med japanska flexibla kalenderhelger Tillhandahll evighetskalender med japanska flexibla kalendermnader Tillhandahll evighetskalender med gammalarmeniska kalendermnader Tillhandahll evighetskalender med gammalegyptiska kalendermnader Tillhandahll evighetskalender med ortodoxa nykalenderhelger Tillhandahll evighetskalender med ortodoxa gammalkalenderhelger Tillhandahll evighetskalender med persiska Jalaali-kalenderhelger Tillhandahll evighetskalender med persiska Jalaali-kalendermnader Tillhandahll evighetskalender med astronomisk data Tillhandahll evighetskalender med landsspecifika helgdagar Tillhandahll evighetskalender med multikulturella nyrshelger Tillhandahll evighetskalender med data om stj¤rntecken Representera astronomiska tider och data med yttersta precision Omv¤nd typen av matchning hos flaggan "%s" Skicka utdata via programmet "%s" till anv¤ndare St¤ll in programmets SLUTstatus till %d vid "%s" osv. St¤ll in grundl¤ggande data fĥr jordens atmosf¤r V¤lj markeringssekvenspar 1 (=aktuell dag) och 2 (=helgdag) St¤ll in ordningen p datumelementen genom att anv¤nda formattexten %s St¤ll in perioden fĥr gregorianska reformationen St¤ll in referensv¤rdet fĥr uppgng/nedgng respektive skuggl¤ngd St¤ll in dag som veckan bĥrjar med (faktiskt: %s) Undertryck inledande blanksteg i evighetskalender Undertryck uttryckligen visning av kalenderblad Anv¤nd alternativ(a) fil(er) i st¤llet fĥr standardresursfil Anv¤nd fortlĥpande dagar p ret p kalenderbladet Anv¤nd fortlĥpande dagar p ret i evighetskalendern Anv¤nd fortlĥpande dagar p ret p listan med fasta datum Anv¤nd regeln fĥr skottr i ĥstortodoxa kyrkan Anv¤nd speciellt format fĥr kalenderblad Anv¤nd standardresursfilen "%s%s" fĥr listan med fasta datum Anv¤nd standardresursfilen ".%s%s" fĥr listan med fasta datum och "TVAR[%s|%c%s]KOMMANDO"-tilldelningar respektive ¤ndra cykelstarttiden %-3s = Enstaka fil eller lista med filer sammanbundna med "%s"-tecken [MOD] = %s Fallande sorteringsordning [MOD] = En eller fler av fĥljande modifierare markerade med # %-*d%*s = St¤ll in tidsperioden till: %02d-%02d %s %0*d %-3s = Definitioner av "DVAR%s%s%s'" tskilda med "%s"-tecken %-3s = Definitioner av "TVAR%sTEXT" tskilda med "%s"-tecken %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Sluttidsv¤rdet (faktiskt: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Tidsskillnadsv¤rde (faktiskt: %s%02d%s%02d == UTC%s) %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Tidsskillnadsv¤rde (faktiskt: %s%02d%s%02d == UTC%s) %-3s = %s%c%s%s%s%s%s%s St¤ll in perioden uttryckligen %-3s = 1|2|3|4|6|12 Antal block (faktiskt: %d) %-3s = Lufttryck och temperatur tskilda med "%s"-tecken %-3s = Vinkelv¤rdet respektive faktor i intervallet: %+.1f...%+.1f %-3s = Vilken resursfilrad som helst %-3s = Vilken text eller "regulj¤rt uttryck" som helst %-3s = Definiera eget format. Formatelement som k¤nns igen ¤r: %-3s = Skalprogrammets filnamn %-3s = Par av markeringssekvenser tskilda med ”%s”-tecken %-3s = Lista med "%c[DATUM][%c[DATUM]]" och/eller "%c[DATUM][%c[DATUM]]" %-3s = MMMM|HH%s[MM] Tidsstegsv¤rdet (faktiskt: %02d%s%02d) %-3s = Ett eller fler av fĥljande tecken. Om tecknet %-3s = Enstaka landskod, omrdeskod, eller en lista med dessa %-3s = Lagra argumenten frn kommandoraden i filen %s %-3s = VERSAL""GEMEN... definitioner %-3s = [%s|%s]YYYY …rsskillnadsv¤rde (faktiskt: %d) %-3s = yes ISO-8601:1988-veckonummer %-6s = Formatet ¤r: "%s" (%s) C = Visa ocks de dagar som inte har fasta datum F = Visa ocks de dagar som inte har fasta datum N = Enbart allm¤nna helgdagar [MOD] = b Anv¤nd bda datumbeteckningarna (dag i mnaden+dag p ret) %sL, %s Visa programlicens och avsluta programmet %sV, %s Visa versionsinformation och avsluta programmet %sh, %s Visa denna hj¤lptext och avsluta programmet %shh, %s Visa utĥkad hj¤lptext och avsluta programmet %sp, %s Skicka utdata genom en extern "%s"-sidvisare %sp, %s Skicka utdata genom en enkel intern sidvisare [%-3s] = E-postadress, annars skickas e-post till anv¤ndaren "%s" [%-3s] = internal Information huruvida programmets interna maxima uppns [MOD] = - Anv¤nd standardformat fĥr kalenderblad [MOD] = b Anv¤nd bda datumbeteckningarna (dag i mnaden+dag p ret) (%.4s fĥr Alpha) (%.4s fĥr VAX) (BSD/386 1.1 eller senare) (FreeBSD 2.0 eller senare) (NetBSD 1.2 eller senare) (NetBSD fĥre 0.9) 1.0 eller 1.5? 4.0 eller 4.02 ; vecka %s = %+4d dag = %+4d dagar "H„R" c = Visa bara de dagar som har fasta datum dag f = Visa bara de dagar som har fasta datum senare ¤n 4.5 senare ¤n 5.0 n = Allm¤nna helgdagar och minnesdagar p # Dagnummer (mste definieras)# Mnadsnamn# Mnadsnummer# Veckodagsnamn (kan definieras)# …rnummer (mste definieras)%cDATUM%cFIL%s = Mnad i intervallet: %d - %d%s i sĥkmĥnstret "%s"underprocessen %sunderprocess %s misslyckadesunderprocessen %s fick den ĥdesdigra signalen %d%s%*s = …r i intervallet: %d - %d%s%s innehller nu det maximala antalet %d poster!%s%s: fĥr mer, <%s> fĥr att avsluta...%s: Det gregorianska kalenderprogrammet (GNU cal) %s%s: Anv¤nd "%s %s" med ett av dessa argument%s: avbryt, %s: kommando hittat i miljĥvariabeln "%s" -- %s %s %s %s: fel n¤r programmet "%s" kĥrdes %s: filen kunde inte hittas %s: ogiltigt datum angivet -- %c%s %s %s %s: ogiltigt datum angivet -- %s %s %s %s: ogiltig flagga -- %s%s: inte en vanlig fil %s: flaggan "%s" tar inget argument%s: flaggan "%s" ¤r tvetydig%s: flaggan "%s" kr¤ver ett argument%s: flaggan "--%s" tar inget argument%s: flaggan "--%s" kr¤ver ett argument%s: flaggan kr¤ver ett argument -- %s%s: flagga med tvetydigt argument -- %s%s: flagga med ogiltigt argument -- %s%s: ok¤nd flagga "%s"%s: varning, e-brev med tom meddelandetext inte skickad till <%s>. %s:%*s…r %0*d „R ett skottr%s:%*s…r %0*d ¤r INTE ett skottr%s:%*s…r %d „R ett skottr%s:%*s…r %d ¤r INTE ett skottr("%s") datumformatet "%s" ¤r ogiltigt(felaktig version)++ 1.0 eller senare++ 3.0 eller senare+++ FASTA DATUM +++1:a sĥndagen i advent1:a sĥndagen i fastan2:a sĥndagen i advent2:a sĥndagen i fastan3:e sĥndagen i advent3:e sĥndagen i fastan4:e sĥndagen i advent4:e sĥndagen i fastan5.1 eller tidigareShichi-go-san-festivalen.JUSTERINGSgrupp (exakt en medlem mste definieras):AMGARGAboriginerdagenAdelaide Cup-dagenErk¤nnandedagenAfghanistanAga Khans fĥdelsedagAlaskadagenAlbanienAleksis KividagAlgerietAlice-Springs visningsdagFĥrsta aprilAllhelgonadagenAllhelgonaaftonAlla sj¤lars dagAlla formatelement m¤rkta med # kan om s ĥnskasAlfabetdagenSamoaAmerikas dagAndorraAngamdagenAngola #AnguillaAmirs tronfĥljdsjubileumMilit¤ra kampens jubileumAucklands jubileumCanterbury Norths jubileumCanterbury Souths jubileumChathamĥarnas jubileumGrĥna marsjubileetHawkesbuktens jubileumMarlboroughs jubileumNelsons jubileumOtagos jubileumSouthlands jubileumTaranakis jubileumWellingtons jubileumWestlands jubileumRingformigAntigua och BarbudaAntilliska dagenAnzacdagenapraprilArabfĥrbundets dagArbordagen„rkebiskop Makarios minnesdag„rkebiskop Makarios namnsdagArengojubileetArgentinaArgumentet "%s" p kommandoraden ignorerat.De v¤pnade styrkornas dagArmenienVapenstillestndsdagenArmİkuppdagenSchweizarnas ankomstArtigas fĥdelsedagArubaAbdu'l-Bahas uppstigningBaha'u'llahs uppstigningBlmndagenAskonsdagenAshura'AstAsunciondagenAtatĵrks minnesdagaugaugustiAustralienAustralien/CanberraAustralien/New South WalesAustralien/NordterritorietAustralien/QueenslandAustralien/SydaustralienAustralien/TasmanienAustralien/VictoriaAustralien/V¤staustralien–sterrikeMyndigheternas dagAzerbajdzjanBa'ath-revolutionsdagenOmv¤nt snedstreck ("%c")BahBahamasBahrainBahĦ'is nyrsdagBangladesh #BankhelgBarbadosBaron Bliss dagBaskiska nationaldagenBataan-dagenSlaget vid AngamosSlaget vid BoyacĦSlaget vid BoyneSlaget vid CaraboboSlaget vid IquiqueSlaget vid Las PiedrasSlaget vid N¤felsSlaget vid PueblaFinansrets bĥrjanSommarens bĥrjanVitrysslandBelgienBelgrads dagBelizeBeltaneBenin #Benito JuĦrez dagSlaget vid Benningtons dagBermudaBhutan #Baha'u'llahs fĥdelseBabens fĥdelseVattenv¤lsignelsenBlomningsdagenBodhidharmas fĥdelsedagBogandadagenBoliviaBonairedagenBoqueronslagets dagBosnien-HercegovinaChefernas dagBotswanaBotswanadagenBountydagenBouvetĥnAnnandag julBrasilienHjordhemtagningsdagenSkĥrdeh¤mtningsdagenJungfruĥarnaBruneiBuddhas fĥdelsedagBulgarienBunker Hill-dagenBurkina FasoJan Hus eldbeg¤ngelseBurns nattBurundi #C. Mapinduzis dagKOMMANDOVEKambodja #KamerunCamoes dagKanadaKanada/AlbertaKanada/British ColumbiaKanada/ManitobaKanada/New BrunswickKanada/Newfoundland och LabradorKanada/Nordv¤stterritoriernaKanada/Nova ScotiaKanada/OntarioKanada/Prince EdwardĥnKanada/QuİbecKanada/SaskatchewanKanada/YukonCanberradagenKan inte ber¤kna mnsolskalendern fĥr %d korrektKan inte utfĥra kommando i filen "%s" Rad: %ld %sKap VerdeCaricomdagenKarnevalCasimir Pulaskis fĥdelsedagCassingdagenCatherines visningsdagCayennefestivalenCaymanĥarnaKelCentralafrikanska republiken #Cesar Chavez dagTchadErs¤ttningstecken:StadgedagenChen/DrakeKinChiang Kai-sheks fĥdelsedagBarnens dagBarnens vita sĥndagChileKinaKinesiska nyrsdagenKinesiska nyrsaftonenChou/OxeKriKristi himmelsf¤rds dagJuldagenJulaftonJulĥarnaKrysantemumdagenMedborgarskapsdagenAllm¤n helgKokosĥarna (Keeling)ColombiaCol³ndagenColoradodagenColumbus dagMyndighetsdagenKommando utfĥrt (exit-kod=%d) i filen "%s" Rad %ld: %sSamv¤ldesdagenKomorernaKompaktdagenKompilerad med %s%s fĥr %s%s%s%sKonfederala ĥverenskommelsedagenConfucius fĥdelsedagFĥrfattningsjubileetCookĥarnaKoptiska nyrsdagenKrĥningsdagenKosmonautdagenCosta RicaSkapadKroatienKorsresningsdagenKubaKulturdagenCupmatchdagenTraditionella hĥvdingens dagCykelCypernTjeckienElfenbenskustenDDarwinvisningsdagenDatumformat: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Dagen efter midhĥstsfestivalenDagen efter gravst¤dningsdagenAndalusiendagenKataloniendagenTjeckiens sj¤lvst¤ndighetsdagGaliciendagenGodhetsdagenBĥne- och botgĥringsdagenFĥrsoningsdagenStudentrevoltens dagFĥrbundets dagFria Laos dagH. Christophes dĥdJ. Dessalines dĥdPresident Abdallahs dĥdPresident Cheikhs dĥdPresident Soilihs dĥdQaid-i-Azams dĥdT. Louvertures dĥddecdecemberDeklarationen av BabenFĥrsvararnas dagF¤dernerlandets fĥrsvarares dagDemokratiska folkrepubliken KoreaDemokratiska republiken Kongo #DanmarkDia de los MaestrosDia del PadreUppt¤ckelsedagenDjiboutiDominicaDominikanska republikenDubbel-9-dagenDergues fallDr. Sun Yat-sens fĥdelsedagDrakbtsfestivalTorrs¤songsfirandetDuartes fĥdelsedagDynastidagenE. Hostos fĥdelsedagEGGAnnandag pskPskdagenPsktisdagenEkonomiska befrielsedagenEcuadorEgyptenEid-al-AdhaEid-al-FitrEid-i-Milad-un-Nabi…ttatimmarsdagenEindhovens befrielseEl SalvadorValdagenVal till den nationella fĥrsamlingenSkicka felrapporter till <%s>EmoKejsarens fĥdelsedagSlut p markeringssekvens/markeringsteckenTrettondedag julEkvatorialguineaDagj¤mningEritreaErrol Barrows dagEstlandEvighetskalender fĥr helgdagarEtiopienEtiopiska nyrsdagenEvakueringsdagenTrettondagsaftonDe trettiotres expeditionFAO-dagenFORMATgrupp (exakt en medlem mste definieras):FRRFalklandsĥarna (Malvinerna)FamiljedagenBondens dagF¤rĥarnaFader Levals dagFars dagKristi kropps och blods hĥgtidRikedomshĥgtidenKristi hj¤rtas hĥgtidVr Theotokos hĥgtidfebfebruariMikronesiska FederationenLanternfestivalenSadeh-festivalenF¤ltinnehllet konverteras till ord med versal begynnelsebokstavF¤ltinnehllet konverteras till gemenerF¤ltinnehllet konverteras versalerF¤ltinnehll klipps efter position BREDDF¤ltinnehll klipps inte efter position BREDDF¤ltinnehll placeras vid v¤nstermarginalen med bredden BREDDF¤ltinnehll som placeras vid hĥgermarginalen med bredden BREDDF¤ltinnehll som placeras centrerat med bredden BREDDF¤ltet har bredden N (%d...%d)Fiji #FinlandFĥrsta dagen i RidvanFiskarens dagLista med fasta datum:Flaggans dagFlaml¤ndska kulturdagenFĥre detta jugoslaviska republiken MakedonienNPLA:s grundningsdagGrundandet av folkpartietGrundandet av kommunistpartietfrFrankrikeFranska kulturdagenFranska GuyanaPolynesienFranska revolutionenfrefredagfredagarV¤nskapsdagenFullmneHemsida fĥr GNU gcal: <%s>Gabon #GambiaGarifunadagenGeneral San Martins jubileumAllm¤n hj¤lp med att anv¤nda GNU-programvara: <%s>GeorgienDagen fĥr Tysklands enandeTysklandTyskland/Baden-WĵrttembergTyskland/BayernTyskland/BerlinTyskland/BrandenburgTyskland/BremenTyskland/HamburgTyskland/HessenTyskland/NiedersachsenTyskland/Mecklenburg-VorpommernTyskland/Nordrhein-WestfalenTyskland/Rheinland-PfalzTyskland/SaarlandTyskland/SachsenTyskland/Sachsen-AnhaltTyskland/Schleswig-HolsteinTyskland/ThĵringenGhadirGhanaGibraltarLngfredagenPskaftonEvangeliedagenFar- och morfĥr¤ldrars dagStorbritannienStorbritannien/England och WalesStorbritannien/NordirlandStorbritannien/SkottlandGreklandGrĥnskedagenGrĥnlandGrenadaGrottdagenMurmeldjursdagenGuacanastedagenGuadaloupejungfruns dagGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Gustav AdolfsdagenGuyana #Hai/GrisHaitiAllhelgonaaftonChannukka/ljusets festH¤lso- och sportdagenHeard- och Mc Donald-ĥarnaHebArvsdagenHj¤ltarnas dagMarkeringsgrupp (alla medlemmar mste definieras):Ho Chi Minhs fĥdelsedagHobart-visningsdagenMenlĥsa barns dagHeliga trefaldighetenHeliga onsdagenHondurasHong KongM¤nskliga r¤ttigheternas dagUngernHuraveedagenOrkanbĥnedagenOrkantacks¤gelsedagenIslandav mitt program gett upphov till. Om du anv¤nder detta program,ImamatdagenImbolgSj¤lvst¤ndighetsdagenSj¤lvst¤ndighetsrĥrelsens dagSj¤lvst¤ndighetsfĥrklaringenCartagenas sj¤lvst¤ndighetCuencas sj¤lvst¤ndighetGuayaquils sj¤lvst¤ndighetQuitos sj¤lvst¤ndighetIndien #Indiernas ankomstdagIndiska nyrsdagenIndonesien #IntInternIntern sj¤lvst¤ndighetsdagenOgiltigt argument i den angivna kommandoraden -- %sFelaktig baktreferensFelaktigt teckenklassnamnFelaktigt j¤mfĥrelseteckenFelaktigt innehll i \{\}Felaktigt fĥregende regulj¤rt uttryckFelaktigt intervallslutFelaktigt regulj¤rt uttryckIrakIrlandIslIslamiska nyrsdagenIslamiska republiken IranIsraelItalienJ. Barbosas fĥdelsedagJ. Chilembwes dagJ. Diegos fĥdelsedagJ. Roberts fĥdelsedagJamaicajanjanuariJapJapanJapanska nyrsdagenJapanska nyrsaftonenJefferson Davis fĥdelsedagKristi omsk¤relseJordanienjuljulijunjuniJunihelgenKamarampaka-dagenKartinidagenKazakstanKenya #KievdagenKim Il-Sungs fĥdelsedagKim Jong-Ils fĥdelsedagKung Kamehamehas dagKung Rama I minnesdag/ChakriKung Rama V minnesdagKiribati #KnabenschiessenKonstantin och MethodiusKuwaitKwanzaaKirgizistanL. Riveras fĥdelsedagFĥrsta majArbetstacks¤gelsedagenLag B'OmerLao Tzes fĥdelsedagDemokratiska folkrepubliken Laos #Samernas nationaldagLettlandLaunceston Cup-dagenSkottdagen satt till "%02d-%s" i filen "%s".LibanonLesothoBefrielsedagenLiberiaFrihetsdagenLibyska arabiska jamahiriya (Libyen)LiechtensteinRad %ld ignorerad: %sRad %ld: %sLitauenFĥrlorandet av den muslimska statenLughnasaMnfĥrmĥrkelseLuxemburgStaden Luxemburgs karneval (Kirmess)Lyndon B. Johnsons dagMS„LJBARHET eller L„MPLIGHET F–R N…GOT SPECIELLT „NDAM…LMacaoMadagaskar #Madaraka-dagenMahatma Gandhis fĥdelsedagE-post frn \"%s" (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaldivernaMaliMaltaMalvinasdagenManiladagenMao/KaninMaputo Citys dagmarmarsMarien Ngouabis dagMarinkrsdagenMarshallĥarnaMartin L. Kings dagMrtensm¤ssaMartiniqueBabs martyrskapMartyrernas dagMaria — V¤lsignad jungfruMarie bebdelsedagMarie himmelsf¤rds dagKyndelsm¤ssanMarie fĥrv¤ntningMarie obefl¤ckade avlelseMarie moderskapMarie namnMarie fĥdelseMarie offerMarie hemvistMarylanddagenSk¤rtorsdagenMauretanienMauritiusmajmajFĥrsta majMayotteMelbourne Cup-dagenMinnet uttĥmtHandlardagenMexikoMi-CarŞme-dagenMidhĥstfestivalenMidvrsfestivalenMidrsfestivalenMission¤rsdagenmmnMonacomndagmndagarmndagar - fredagarmndagar - torsdagarMongoliet #Mnadsgrupp (exakt en medlem mste definieras):MontserratMorazandagenMarockoMosheshoes dagSv¤rmorsdagenMors dagMĥdraskapets och skĥnhetens dagMo§ambiqueMusikvattenbankettenMyanmar (Burma) #NamibiaNamngivelsedagenNationella bulledagenNationens grundelsedagNationella hj¤ltars dagNationaldagenNationell sorgedagNationella fĥrsoningsdagenNationella motstndsdagenNationella uppv¤ckelsedagenNationella enhetsdagenNauruNdadayedagenNepal #Nederl¤ndernaNederl¤ndska Antillerna/BonaireNederl¤ndska Antillerna/Cura§aoNederl¤ndska Antillerna/Saba och StatiaNederl¤ndska Antillerna/St MaartenNeutralitetsdagenNevadadagenNya KaledonienNymneNya regimens jubileumNyrsdagenNya ZeelandNicaraguaNigerNigeriaNionde dagen i RidvanNiueIngen matchningInget fĥregende regulj¤rt uttryckNobeldagenNoidagenNorra Marianerĥarna (Saipan)Newroz/Persiska nyrsdagenNorgenovnovemberNumeriskt v¤rde fylls med inledande nolla/nollorNumeriskt v¤rde tillhandahlls med ett ordinalt nummersuffixNumeriskt v¤rde tillhandahlls med inledande teckenSjuksysterdagenNuzul-al-Qur'anOAU-dagenFLAGGAoktoktoberOktoberhelgenOljeindustrins dagGammalarmenska nyretGammalegyptiska nyretOmananv¤ndbarhet. Jag tar av princip inte ansvar fĥr N…GON skada ellerOrtodoxa nyrsdagenVr fru Aparecidas dagVr fru Altagracias dagVr fru Camarins dagVr fru Las Mercedes dagVr fru Los Angeles dagVr fru av sju synderVr fru av segrars dagOxNOxGPakistanPalauPalmsĥndagenPanamaPanama Citys dagPanamerikadagenPapua Nya GuineaParaguayFĥr¤ldradagenParisfredens dagDelvis5:e sĥndagen i fastanPatrioternas dagFredsfestivalenPersikofestivalenHalvskuggadFolkmaktens dagFolkets upprorsdagPerProcent ("%c")PeruPesach/PskFilippinsk-amerikanska v¤nskapenFilippinernaFysPichincha-dagenPicknickdagenPionj¤rdagenPitcairnPolenPortugalPoyadagenBĥnedagenL¤s flaggor och kommandon frn "FIL"Fĥrtida slut p regulj¤rt uttryckPresident Lincolns fĥdelsedagPresidentinstallationPresidentens dagPresidentens informationPrins Kalanianaoles dagPrinsen av Wales fĥdelsedagPrinsessans dagProklameringsdagenPuerto RicoPurim/LotshĥgtidenQaid-i-Azams fĥdelsedagQatarQuds dagFastlagssĥndagenRamadanRatu Sukuma-dagenFritidsdagenFolkomrĥstningsdagenReformationsdagenRegattadagenRegentutbytetRegulj¤rt uttryck fĥr stortMinnesdagenRepublikens dagRepubliken Kongo #Republiken KoreaRepubliken Moldavien„ldrevĥrdnadsdagenRestaurationsdagen…terkomstdagen…terfĥreningsdagenRevolutionsdagenRio de Janeiros jubileumRizaldagenBĥnsĥndagenRum¤nienRosh Hashana/NyrsdagenRysslandRwagasoredagenRwandaRİunionS. Does fĥdelsedagSAR-grundandedagenTECKEN (kan definieras):STILgrupp (exakt en medlem mste definieras):SUFFIX (kan definieras):lĥSabadagenSaint-Pierre och MiquelonSamhain/Keltiska nyrsdagenSamoaSan Jacinto-dagenSan Josİ-dagenSan MarinoS£o Paulos jubileumSao Tomİ och PrincipeSapporos snĥfestivallĥrlĥrdaglĥrdagarSaudiarabienSkolhelg…rstids¤ndring/bĥnfestivalenSechsel¤utenSenegalsepSeparationsdagenseptemberSeptuagesimaSerbien och MontenegroSeretse Khama-dagenBos¤ttardagenSjusovardagenSewards dagSexagesimaSeychellernaShab-e QadrShab-e-Bara'tShab-e-Mi'rajShaheeddagenShavuot/–verr¤ckningen av TorahFrfestivalenSheikh Zayeds uppstigningsdagShen/ApaFettisdagenShushan PurimSi/OrmSierra LeoneSimchat TorahSimon Bolivars dagSinais befrielsedagSingapore #SlavbefrielsedagenSlovakienSlovenienSniffa brisen-dagenSolfĥrmĥrkelseSolidaritetsdagenSolomonĥarnaSolstndsdagenSomaliaSomersdagenSotst¤dningsdagenSydafrikaSydgeorgien och sĥdra SandwichĥarnaBlanksteg/tomt ("%c") teckenSpanienVrfestivalenSri Lanka #S:t Agata-dagenS:t Andreas dagS:t Bartolomeus dagS:t Berchtolds dagTjugondag KnutS:t Cedilias dagS:t Karls dagS:t Davids dagS:t Demetrius dagS:t Dİvote-dagenS:t Edwards dagS:t Eliahs dagS:t Gĥrans dagS:a HelenaS:t Jakobs dagJohannes dĥparens dagMidsommardagen/Johannes dĥparens dagMidsommaraftonS:t Josefs dagSt Kitts och NevisS:t Lars dagSt LuciaLuciadagenS:t Margaretas dagS:t Maroons dagMickelsm¤ssS:t Nikolaus dagS:t Nikolaus aftonS:t Olofs dagS:t Olofs aftonS:t Patricks dagS:t Pauls skeppsbrottS:t Peter och S:t PaulS:t Rose av LimaStefansdagenS:t Ursulas dagAlla hj¤rtans dagSt Vincent och GrenadinernaS:t Vincent de Pauls dagStandardStj¤rnfestivalenStart av vanlig mnadStart p markeringssekvens/markeringsteckenStart av skottmnadStatia-amerikanska dagenStudenternas dagsĥLyckadesSudanSuez-segerdagenSukkot/TabernakelhĥgtidenSultan Qaboos fĥdelsedagsĥnsĥndagDĥdssĥndagensĥndagarSurinam #Svalbard och Jan MayenĥarnaSvetitskhovlobaSvalans dagSwazilandSverigeSverigedagenSĥtaste dagSchweizSchweiz/AargauSchweiz/Appenzell AusserrhodenSchweiz/Appenzell InnerrhodenSchweiz/Basel-LandschaftSchweiz/Basel-StadtSchweiz/BernSchweiz/FribourgSchweiz/Gen¨veSchweiz/GlarusSchweiz/GraubĵndenSchweiz/JuraSchweiz/LuzernSchweiz/Neuch˘telSchweiz/NidwaldenSchweiz/ObwaldenSchweiz/SchaffhausenSchweiz/SchwyzSchweiz/SolothurnSchweiz/St GallenSchweiz/ThurgauSchweiz/TicinoSchweiz/UriSchweiz/ValaisSchweiz/VaudSchweiz/ZugSchweiz/ZĵrichNyrsaftonSyriska Arabrepubliken (Syrien)TaiwanTadzjikistanTanzaniaL¤rarens dagTennant-Creek-visningsdagenTerritoriedagentoThail¤ndska nyrsdagenThailand #Tacks¤gelsedagenKronprinsens fĥdelsedagKronprinsessans fĥdelsedagKronprinsessans namnsdagKonungens fĥdelsedagKonungens namnsdagDrottningens fĥdelsedagDrottningens namnsdagDet finns INGEN garanti, ej heller ngon underfĥrstdd garanti omDetta ¤r fri programvara; se k¤llkoden fĥr kopieringsvillkorDetta program ¤r fri programvara; du fr distribuera det och/eller modifieraDetta program gĥr inte ansprk p fullst¤ndighet, korrekthet ellertortorsdagtorsdagarTiradentes dagTisha B'Av/FastedagenTogo #TokelauGravst¤dningsdagenTongaTopou I-dagenTotaltStadsmĥtesdagenTraditionell dagAvslutande bakstreck–verfĥringsdagenKristi fĥrklaringsdagTrinidad och Tobago #TrumandagenFĥrsĥk att ĥppna (niv: %02d) inkluderingsfilen "%s"... %s%s%sFĥrsĥk att ĥppna%sresursfilen "%s"... %s%s%sFĥrsĥk att skriva %s "%s"... %s%s%stiTu B'Shevat/Tr¤dens nyrtistisdagtisdagarTunisienTurkietTurkmenistanTurks- och CaicosĥarnaTuvaluTolfte dagen i RidvanTynwalddagenJungfruĥarnaUSAOK„NDUgandaUkrainaUnderstreck ("%c")UnionsdagenUnionsupplĥsningen med SverigeFĥrenade ArabemiratenFN-dagenUSAUSA/AlabamaUSA/AlaskaUSA/ArizonaUSA/ArkansasUSA/KalifornienUSA/ColoradoUSA/ConnecticutUSA/DelawareUSA/District of ColumbiaUSA/FloridaUSA/GeorgiaUSA/HawaiiUSA/IdahoUSA/IllinoisUSA/IndianaUSA/IowaUSA/KansasUSA/KentuckyUSA/LousianaUSA/MaineUSA/MarylandUSA/MassachusettsUSA/MichiganUSA/MinnesotaUSA/MississippiUSA/MissouriUSA/MontanaUSA/NebraskaUSA/NevadaUSA/New HampshireUSA/New JerseyUSA/New MexicoUSA/New YorkUSA/North CarolinaUSA/North DakotaUSA/OhioUSA/OklahomaUSA/OregonUSA/PennsylvaniaUSA/Rhode IslandUSA/South CarolinaUSA/South DakotaUSA/TennesseeUSA/TexasUSA/UtahUSA/VermontUSA/VirginiaUSA/WashingtonUSA/West VirginiaUSA/WisconsinUSA/WyomingEnhetsfabriksdagenOk¤nt systemfelEnsam ( eller \(Ensamt ) eller \)Ensam \{UruguayAnv¤ndning: %s [--%s | --%s] | [--%s=[+|-]TAL] [ARGUMENT...] Anv¤ndning: %s [--%s | --%s] | [RESURSFIL | -] Anv¤ndning: %s [--%s | --%s] | [TEXTFIL | -] [DATUMDEL] Anv¤ndning: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Anv¤ndning: %s [[FLAGGA...] [%cDATUM] [%cFIL...]] [KOMMANDO]Anv¤ndning: %s [[FLAGGA...] [%cFIL...]] [KOMMANDO]Anv¤nd "%s %s|[%s?]Anv¤nd angivet "DATUM" i st¤llet fĥr dagens datumUzbekistanValborgsm¤ssoaftonVanuatuVenezuelaKarnevalen i VenedigVeteranernas dagVictor-Schoelcher-dagenViktoriadagenSegerdagenVidovdanVietnamVW. Tubmans fĥdelsedagBREDD (mste definieras):Wallis- och FutunaĥarnaAvtagande halvmneWaqf-al-ArafatTilltagande halvmneononsonsdagonsdagarVeckaVecka %sWei/FrWest Virginia-dagenV¤stsaharaAnnandag pingstPingstaftonPingstdagenKvinnodagenKvinnans biktedagV¤rldsdjurdagenWu/H¤stXu/Hund…YapdagenJemenYin/TigerYom Ha Azmaut/Sj¤lvst¤ndighetsdagenYom Hashoah/FĥrintelseminnetYom Hazikaron/SoldatminnetYom Kippur/FĥrsoningsdagenYom Yerushalayim/JerusalemdagenDu skall ha ftt en kopia av "GNU General Public License"You/TuppUngdomens dagNOLL (mste definieras):ZambiaZi/RttaZimbabweZod[JUSTERING [TECKEN] [NOLL] BREDD [STIL] [SUFFIX] FORMAT]_open_osfhandle misslyckades"%s" rad %ld: ("%s") "%s%d" misslyckades"%s" rad %ld: ("%s") ogiltigt v¤rde p tabellstorleken "sizeof %s>%d""%s" rad %ld: ("%s") ohanterat fel (%d)"%s" rad %ld: virtuellt minne slut (%s=%d)"Evighetskalender fĥr helgdagar""Intern""termcap"-filen hittades inteaccepterar du utan undantag detta avtal!tillsammans med detta program; om inte, skriv till:fmen senare version.kan inte skapa rĥrkan inte terst¤lla fi %d: dup2 misslyckadeskommandoradinnehlla en formatinstruktion, vars mall ¤r som:°'"standardmiljĥvariabelmiljĥvariabeln "%s" hittades intemiljĥvariabeln "%s" ¤r inte sattmisslyckadesfilen "%s" kan inte skrivas Lagringsmediet fullt!filen "%s" kunde inte hittasfĥr mer information.h'"helgdagarotilltet tecken i svarsfilen "%s" Rad %ld: %sotillten definition av variabeln "%c"otillten operation p variabeln "%c"otillten variabeldefinition i filen "%s"otillten operation med variabel i filen "%s"internogiltigt N:e veckodagsf¤lt(%d) i filen "%s" Rad %ld: %sogiltig datumdel i filen "%s" Rad %ld: %sogiltig dagogiltigt dagsf¤lt(%02d) i filen "%s" Rad %ld: %sogiltig mnadogiltigt mnadsf¤lt(%02d) i filen "%s" Rad %ld: %sogiltig rekursiv/cyklisk %s i filen "%s" Rad %ld: %sfelaktigt sĥkmĥnster "%s" angivetvariabeln "%c" har tilldelats ett ogiltigt v¤rde i filen "%s"ogiltigt r fĥr att kunna ber¤kna datum fĥr pskdagen …ret mste vara i intervallet (%d - %d)det under villkoren i "GNU General Public License" utf¤rdat avallm¤nna helgdagarfelaktig %s i filen "%s" Rad %ld: %sminnet uttĥmtblanktecken saknas efter datumdelen i filen "%s" Rad %ld: %s:afĥrlust (direkt eller indirekt), som anv¤ndandet eller handhavandetem:el¤sfel i filen "%s"svarsfilegendefinieratskickande av e-post till <%s> misslyckadesskalskriptskiftv¤rdet "%s" ¤r ogiltigt:alyckades:e"Free Software Foundation"; antingen version 3, eller (om du s ĥnskar)ok¤nd ok¤nd kompilatorok¤nd kompilator (SDK?)ok¤nd terminaltyp definierad i "%s"ok¤nd versionvariabeln "%c" ¤r odefinierad i filen "%s"version %dversion %d.%dgcal-4.1/po/POTFILES.in0000664000000000000000000000102212353364757011362 00000000000000# GNU gcal # # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, # 2009, 2010, 2011, 2013 Free Software Foundation, Inc. # Copyright (c) 1996, 2000 Thomas Esken # # List of files containing translatable strings. # Package source files lib/error.c lib/regcomp.c lib/spawn-pipe.c lib/w32spawn.h lib/wait-process.c lib/xalloc-die.c src/file-io.c src/gcal.c src/hd-data.c src/hd-use.c src/help.c src/print.c src/rc-insert.c src/rc-use.c src/rc-utils.c src/tty.c src/utils.c src/tcal.c src/txt2gcal.c src/gcal2txt.c gcal-4.1/po/pl.gmo0000664000000000000000000007350713041164031010717 00000000000000Ŝ•fL ß|ĝ ù+LCKKÜM(@v=·1ġA' Ai IĞ Hġ H>!?‡!*Ç!$ò!+"+C"?o"4Ż"Eä"D*#Do#1´#@ĉ#2'$9Z$0”$*Ċ$M$7>%Nv%?Ċ%B&NH&.—&BĈ&( '-2';`'-œ'CÊ'#(2(JP(?›(HÛ(J$)5o)6)JÜ)A'*?i*5İ*,ß*3 +/@+7p+7¨+Eà+ &,(G,Ep,.ĥ,Jċ,-0-6^-C•-7Ù-=.8O./ˆ.?¸.@ĝ.&9/H`/.İ/IĜ/I"0l0;ˆ06Ä0;û071I1Y1q1‰1 1 µ1 Â1 Ï1 Ú1 ĉ1Bó162B;2~2Ž2(ž2Ç2Ì2Ó2$Ú2˙2#3'=3+e3+‘3½3Ñ3ê3)˙3)4$F4%k4(‘4&ş4á4"ŝ4#!5 E5!f5"ˆ5 Ğ5ı5É5Ù5 í5 ĝ5 6 66(6*696I6 X6b6f6 l6 z6 …6“6—6 ž6Ğ6 ğ6Ĉ6 Ù6ċ6í606!787G7K7 b7 p7 ~79‹7Ċ7ċ7ŝ7 8 8!8>8U8Y8 b8 n8 |8Š8 Ħ8.8Ŭ8÷8 9919H9L9U9^9r9u9ˆ9Œ9“9›9Ĵ9 ´9À9 Ù9 ç9ò9 : :1*:\:Ap:²::Ì::Ĝ:Ü:á:ċ: ê:ġ:' ;3;B; W;4d;.™;È;Ì;Ò; ç;ò; <<<<L<P<X<[<_<f<n<€<1”< Ĉ<Ó<ä<ü< ==="=)=-=E5= {= ‡=(’= ğ=É=Ù= ò=˙=>>> >(> ,>6>0P>>„>ˆ>> —> £>ħ>´>Ó>ò>??/?:D?=?D½?C@F@J@ S@5]@“@²@µ@ı@Á@Ê@Ñ@í@7A.8A(gA A žA ĞA·AşA A ÈAÓA ĜA äAABCBAZB*œB/ÇB÷B C%C.?CnCqC „C‘C™CC.µCäCĝC4D86D+oD ›D1§D ÙD3çD5E%QENwEFĈE F&FHCFŒF>FÎFÑFÔF ìF úF GG0G3G;G>GGGXGpG €G ‹G¤™G>INI*`IN‹IMÚII(JXrJAËJ> K8LKM…KGÓKILHeLHLL÷L+DM*pM-›M-ÉM@÷M38NVlNPNLO7aOL™O=ĉOC$P6hP6ŸPKÖP="Q_`QFÀQSRY[R0µRXĉR'?S0gS@˜S+ÙSAT"GTjTNˆT=×THUO^U<U4ëUI VLjVF·VAŝV3@W9tW4W;W=XX]X#ĥX&ÚXNY=PYLŽY0ÛY+ ZI8Z5‚ZB¸Z;ûZ97[Lq[M[/ \N<\/‹\Lğ\G]%P]=v]=´]=ò]0^B^R^l^†^Ÿ^ ³^ Á^Ï^Ŝ^ í^Gù^A_FI__§_._í_ñ_ĝ_)˙_)`$C`0h`-™`,Ç`ô`a(a/Ba#ra'–a(a-ça&b‹­Ğ59feúA A-â.oŸ–? ;9ó&FCKF;{ McPŝ)cíÉs>d„Ñ µùz|ßmd4Ŝ…êô(ĉuH‡§Xbiü[%ƒÀ Ò ³"²Q)hBZˆŽ!@× n÷ <½ŠŒ _†jZšöHv"OŬìY8*¤ÌÚ6y‘ĥ´+q—]b“1(ġGĊw}l! 8ğ3Ë@7‚`•Üœ'ë·WeIgT\N2Jı= %s: abort, `%s' line %ld: = %s Backwards = %s List yesterday until starting day of month = %s List yesterday until starting day of week = %s List yesterday until starting day of year N = 0 1st week / last week of previous year N = 1...52 1st...52nd week (always) N = 53 53rd week (sometimes) N = 99 Last week = Manage `29-FEBRUARY' in non-leap years or: month name | %s | %s%s | %s%s | %s%s [MOD] = %s List tomorrow until ending day of month [MOD] = %s List tomorrow until ending day of week [MOD] = %s List tomorrow until ending day of year %s%cwN[%s], month name[%s], weekday name[N] or %s MOD = %s Forwards %c = Exclusion of all %s List: %s[%s%s]%s...%s%s[%s%s] List: [%s%s]%s%s...%s[%s%s]%s Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s expressions separated by `%s' characters # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday # %c%c[[%s|%s]N] = Single day N relative to today's date # %c?[[%s|%s]N] = Single day N relative to date variable # %cdN = Single absolute day N # A = Display using alternative list format # E = Include legal days only # NMOD = Single day N relative to today # Nd = Single absolute day N # Nw = Complete week N # Z = Display dates, for which fixed dates doesn't exist # a = Display origin of fixed date # d = Include actual date if list of periods is generated # e = Include legal days and memorial days # g[MOD] = Group fixed dates by day using text MOD # l = Generate list of periods instead of a single period # m|M[MOD] = List complete month # o = Omit repeating date part of fixed dates # t|T = List tomorrow # w|W[MOD] = List complete week # x = Exclude title of fixed date list # y|Y[MOD] = List complete year # z = Display consecutive number of fixed date 1. Representation of text 2. Respected period = abort Like `all' and abort if file name can't be handled = all Like `handled' and `unhandled' together = handled Like `internal' and file names which are handled = unhandled Like `internal' and file names which are unhandled Actual respected period: %02d-%02d %s %0*d Create response file for the `%cFILE' option Create shell script which contains the arguments of command line Disable highlighting of text, holiday resp., actual day Display eternal holiday list (Year in range: %d...%d) Display extended help text and quit program Display help text and quit program Display software license and quit program Exclude title of eternal holiday list Export local date variables from file to file Export local text variables from file to file Forces highlighting sequences if output is redirected/piped Implies period: Today Modify format of year calendar Provide eternal holiday list with country specific holidays Send output via `%s' program to user Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday) Set period of Gregorian Reformation Suppress output of calendar sheet explicitly Use alternative file(s) instead of standard resource file Use consecutive day of year in calendar sheet Use consecutive day of year in eternal holiday list Use consecutive day of year in fixed date list Use special format for calendar sheet Use standard resource file `%s%s' for fixed date list Use standard resource file `.%s%s' for fixed date list [MOD] = %s Descending sort order [MOD] = One or more of the following modifiers which are marked by # %-*d%*s = Set period to: %02d-%02d %s %0*d C = Display those dates, for which fixed dates doesn't exist, too F = Display those dates, for which fixed dates doesn't exist, too N = Legal days only [MOD] = b Use both date notations (day of month+year) [MOD] = - Use standard format for calendar sheet [MOD] = b Use both date notations (day of month+year) (%.4s for Alpha) (%.4s for VAX) (BSD/386 1.1 or later) (FreeBSD 2.0 or later) (NetBSD 1.2 or later) (NetBSD before 0.9) 1.0 or 1.5? 4.0 or 4.02 ; Week %s = %+4d day = %+4d days c = Display only those dates, for which fixed dates exists day f = Display only those dates, for which fixed dates exists later than 4.5 later than 5.0 n = Legal days and memorial days on %cDATE%cFILE%s = Month in range: %d...%d%s in search pattern `%s'%s%*s = Year in range: %d...%d%s%s contains %d maximum entries now!%s%s: Use `%s %s' with one of these arguments%s: error during program execution of `%s' %s: file not found %s: invalid option -- %s%s: no regular file %s: option `%s' doesn't allow an argument%s: option `%s' is ambiguous%s: option `%s' requires an argument%s: option requires an argument -- %s%s: option with ambiguous argument -- %s%s: option with invalid argument -- %s%s: unrecognized option `%s'%s:%*sThe year %0*d is A leap year%s:%*sThe year %0*d is NO leap year%s:%*sThe year %d is A leap year%s:%*sThe year %d is NO leap year(`%s') date format `%s' is invalid(bad version)++ 1.0 or later++ 3.0 or later+++ FIXED DATES +++1st Advent2nd Advent3rd Advent4th Advent5.1 or earlier:All Fool's DayAll Saints' DayAll Souls' DayAnzac DayAprAprilArmistice DayAsh MondayAsh WednesdayAugAugustBank HolidayBattle of BoyneBoxing DayBurning of Jan HusBurns NightCOMMANDCWCannot execute command in file `%s' Line: %ld %sCharacter replacement:Children's DayChrChrist's Ascension DayChristmas DayChristmas EveColumbus DayCommand executed (exit code=%d) in file `%s' Line %ld: %sCompiled with %s%s for %s%s%s%sConstitution AnniversaryCoronation DayCreatedCulture DayDay of Prayer and RepentanceDay of Students RevoltDecDecemberDynasty DayEaster MondayEaster SundayEindhoven's LiberationElection DayEnd of highlighting sequence/marking characterEpiphany/Three King's DayEternal holiday listFather's DayFeast of Corpus ChristiFeast of Our TheotokosFebFebruaryFlag DayFlemish Culture DayFrFrench Culture DayFriFridayFridaysGerman Unity DayGermanyGood FridayGood Saturday/Easter EveGreat BritainGrotto DayGuadalupe Virgin's DayGustavus Adolphus' DayHalloweenHighlighting group (all members must be defined):Holy Innocent's DayIf you use this software, you agree without any exception to thisIndependence DayInternalJanJanuaryJulJulyJunJuneLabour DayLapp National HolidayLeap-day set to `%02d-%s' in file `%s'.Liberation DayLine %ld ignored: %sLine %ld: %sMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.Mail from \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMarMarchMartin L. King's DayMartinimasMary's Annunciation DayMary's Ascension DayMary's Immaculate ConceptionMaundy ThursdayMayMay DayMoMonMondayMondaysMondays...FridaysMondays...ThursdaysMonth group (exactly one member must be defined):Mother's DayNational HolidayNational Resistance DayNew Year's DayNobel DayNovNovemberOPTIONOctOctoberOn principle I will not be liable for ANY damages or losses (implicitPalm SundayPrayer DayPreload options and commands from `FILE'Princess' DayReformation DayRemembrance/Memorial DayRepublic DayRevolution DaySaSatSaturdaySaturdaysSepSeptemberShrove Tuesday/Mardi GrasStart of highlighting sequence/marking characterSuSunSundaySundaysSwallow DayTeacher's DayThThe Crown Princesse's BirthdayThe Crown Princesse's Name-DayThe King's BirthdayThe King's Name-DayThe Queen's BirthdayThe Queen's Name-DayThere is NO warranty, without even the implied warranty ofThis is free software; see the source for copying conditions.This program is free software; you can redistribute it and/or modifyThis software doesn't claim completeness, correctness or usability.ThuThursdayThursdaysTry to open (level: %02d) include file `%s'... %s%s%sTry to write %s `%s'... %s%s%sTuTueTuesdayTuesdaysU.S.A.Union with Sweden dissolvedUnited Nations DayUsage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]Use given `DATE' instead of today's dateVeteran's DayVictoria DayVictory DayWeWedWednesdayWednesdaysWeekWhit MondayWhitsun EveWhitsunday/PentecostWorld Animal DayYou should have received a copy of the `GNU General Public License'`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'`%s' line %ld: (`%s') unmanaged error (%d)`%s' line %ld: virtual memory exhausted (%s=%d)`Eternal holiday list'`Internal'agreement, which binds you LEGALLY !!along with this program; if not, write to the:amany later version.command linedefaultenvironment variablefailedfile `%s' can't be written Storage media full!file `%s' not foundholidaysillegal character in response file `%s' Line %ld: %sinvalid N'th weekday field(%d) in file `%s' Line %ld: %sinvalid date part in file `%s' Line %ld: %sinvalid dayinvalid day field(%02d) in file `%s' Line %ld: %sinvalid monthinvalid month field(%02d) in file `%s' Line %ld: %sinvalid recursive/cyclic %s in file `%s' Line %ld: %sinvalid search pattern `%s' specifiedinvalid year for computing Easter Sundays date Year must be in range (%d...%d)it under the terms of the `GNU General Public License' as published bylegal holidaysmalformed %s in file `%s' Line %ld: %smissing `whitespace' character after date part in file `%s' Line %ld: %sndor explicit), which result from using or handling my software.pmrdread error in file `%s'response fileself-definedshell scriptshift value `%s' is invalidstsuccessthunknown unknown compilerunknown compiler (SDK?)unknown versionversion %dversion %d.%dProject-Id-Version: gcal 2.30 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 1997-05-03 18:31+0100 Last-Translator: Wojciech Marek GaĊ‚Ä…zka Language-Team: Polish Language: pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. %s: przerwij, `%s' linia %ld: = %s Do tyĊ‚u = %s PokaĊş od wczoraj aĊĵ do początku miesiąca = %s PokaĊş od wczoraj aĊĵ do początku tygodnia = %s PokaĊş od wczoraj aĊĵ do początku roku N = 0 1. tydzieĊ„ / ostatni tydzieĊ„ poprzedniego roku N = 1...52 1...52. tydzieĊ„ (zawsze) N = 53 53. tydzieĊ„ (czasami) N = 99 Ostatni tydzieĊ„ = Uwzględniaj `29 lutego' w latach nieprzestępnych lub: nazwa miesiąca | %s | %s%s | %s%s | %s%s [MOD] = %s PokaĊĵ od jutra aĊĵ do koĊ„ca miesiąca [MOD] = %s PokaĊĵ od jutra aĊĵ do koĊ„ca tygodnia [MOD] = %s PokaĊĵ od jutra aĊĵ do koĊ„ca tygodnia %s%cwN[%s]',nazwa miesiąca[%s], nazwa dnia tygodnia[N] lub %s MOD = %s Do przodu %c = Pominięcie wszystkich %s Wypisz: %s[%s%s]%s...%s%s[%s%s] Wypisz: [%s%s]%s%s...%s[%s%s]%s Zakres: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s wyraĊĵenia rozdzielone przez znaki `%s' # %c%c[[%s|%s]N] = PojedyĊ„czy Nty dzieĊ„ względem Niedzieli Wielkanocnej # %c%c[[%s|%s]N] = PojedyĊ„czy Nty dzieĊ„ względem dzisiejszej daty # %c?[[%s|%s]N] = PojedyĊ„czy Nty dzieĊ„ względem zmiennej daty # %cdN = PojedyĊ„czy Nty dzieĊ„ roku # A = WyĊ›wietl uĊĵywając alternatywnego formatu listy # E = DoĊ‚Ä…cz tylko Ċ›więta paĊ„stwowe # NMOD = PojedyĊ„czy Nty dzieĊ„ względem dzisiaj # Nd = PojedyĊ„czy Nty dzieĊ„ roku # Nw = CaĊ‚kowita liczba tygodni N # Z = WyĊ›wietl daty, dla kt³rych brak ustalonych dni # a = WyĊ›wietl Ċşr³dĊ‚o ustalonych dat # d = DoĊ‚Ä…cz bieĊĵącą datę jeĊ›li lista przedziaĊ‚³w jest generowana # e = DoĊ‚Ä…cz Ċ›więta paĊ„stwowe i dni pamięci # g[MOD] = Grupa ustalonych dat co dzieĊ„ korzystając z tekstu MOD # l = Utw³rz listę przedziaĊ‚³w zamiast pojedyĊ„czego przedziaĊ‚u # m|M[MOD] = PokaĊĵ caĊ‚y miesiąc # o = PomiĊ„ powtarzającaą się częĊ›Ä‡ daty w ustalonych datach # t|T = PokaĊĵ jutro # w|W[MOD] = PokaĊĵ caĊ‚y tydzieĊ„ # x = PomiĊ„ tytuĊ‚ w liscie ustalonych dat # y|Y[MOD] = PokaĊĵ caĊ‚y rok # z = WyĊ›wietl kolejny numer ustalonych dat 1. Przedstawienie tekstu 2. Odpowiedni okres = abort Tak jak `all' i przerwij jesli pliku nie moĊĵna uĊĵyć = all Tak jak `handled' i `unhandled' razem = handled Tak jak `internal' oraz nazwy uĊĵywanych plik³w = unhandled Tak jak `internal' oraz nazwy niewykorzystanych plik³w Obecnie brany pod uwagę okres: %02d-%02d %s %0*d Utw³rz plik odpowiedzi dla opcji `%cPLIK' Utw³rz skrypt powĊ‚oki zawierający argumenty wiersza poleceĊ„ WyĊ‚Ä…cz wyr³Ċĵnianie tekstu, dni wolnych, bądĊş aktualnego dnia PokaĊĵ wieczną listę dni wolych (Lata w zakresie: %d...%d) WyĊ›wietl obszerniejszy tekst pomocy i zakoĊ„cz program WyĊ›wietl tekst pomocy i zakoĊ„cz program WyĊ›wietl licencję programu i zakoĊ„cz program WyĊ‚Ä…cz tytuĊ‚ wiecznej listy dni wolnych Eksportuj lokalną zmienną daty z pliku do pliku Eksportuj lokalne zmienne tekstowe z pliku do pliku Wymuszaj kody wyr³Ċĵniania jeĊ›li wynik jest przeadresowany/idzie przez potok Przyjmuje okres: Dzisiaj ZmieĊ„ format kalendarza lat PokaĊĵ wieczną listę dni wolnych ze Ċ›więtami zaleĊĵnymi od kraju PrzeĊ›lij wynik uĊĵytkownikowi poprzez program `%s' Ustaw pary kod³w wyr³Ċĵniania 1(=aktualny dzieĊ„), 2(=dni wolne) Ustaw okres reformacji gregoriaĊ„skiej Nie wyĊ›wietlaj kartek kalendarza UĊĵyj plik³w zastępczych zamiast standardowych pliku zasob³w UĊĵyj kolejnych dni lat w kartce kalendarza UĊĵyj kolejnych dni roku we wiecznej liĊ›cie dni wolnych UĊĵyj kolejnych dni roku w liĊ›cie ustalonych dni Zastosuj specjalny format dla kartki kalendarza UĊĵyj standardowego pliku zasob³w `%s%s' dla listy ustalonych dat UĊĵyj standardowego pliku zasob³w `.%s%s' dla listy ustalonych dat [MOD] = %s Opadajacy porządek sortowania [MOD] = Jeden lub kilka następujących modyfikator³w oznaczonych przez # %-*d%*s = Ustaw okres na: %02d-%02d %s %0*d C = WyĊ›wietl takĊĵe te dni dla kt³rych nie istnieją ustalone daty F = PokaĊĵ takĊĵe daty dla kt³rych nie istnieją ustalone daty N = Tylko Ċ›więta paĊ„stwowe [MOD] = b UĊĵyj obu notacji daty (dzieĊ„ miesiąca+rok) [MOD] = - UĊĵyj standardowego formatu kartki kalendarza [MOD] = b UĊĵyj obu notacji daty (dzieĊ„ miesiąca+rok) (%.4s dla Alphy) (%.4s dla VAX) (BSD/386 1.1 lub nowsze) (FreeBSD 2.0 lub nowsze) (NetBSD 1.2 lub nowsze) (NetBSD przed 0.9) 1.0 lub 1.5? 4.0 lub 4.02 ; TydzieĊ„ %s = %+4d dzieĊ„ = %+4d dni c = WyĊ›wietl tylko te dni dla kt³rych istnieją ustalone daty dzieĊ„ f = PokaĊĵ tylko te daty, dla kt³rych istnieją ustalone daty p³Ċşniejsza niĊĵ 4.5 p³Ċşniejsza niĊĵ 5.0 n = Ċšwięta paĊ„stwowe i dni pamięci na%cDATA%cPLIK%s = Miesiąc w zakresie: %d...%d%s w szukanym wzorcu `%s'%s%*s = Lata w zakresie: %d...%d%s%s zawiera obecnie maksymalnie %d rekord³w!%s%s: UĊĵyj `%s %s' z jednym z tych argument³w%s: bĊ‚Ä…d podczas dziaĊ‚ania programu `%s' %s: nie odnaleziono pliku %s: bĊ‚Ä™dna opcja -- %s%s: brak zwykĊ‚ego pliku %s: opcja `%s' nie zezwala na podanie argumentu%s: opcja `%s' jest niejednoznaczna%s: opcja `%s' wymaga podania argumentu%s: opcja wymaga podania argumentu -- %s%s: opcja z niejednoznacznym argumentem -- %s%s: opcja z bĊ‚Ä™dnym argumentem -- %s%s: nierozpoznana opcja `%s'%s:%*sRok %0*d jest rokiem przestepnym%s:%*sRok %0*d nie jest rokiem przestepnym%s:%*sRok %d jest rokiem przestepnym%s:%*sRok %d nie jest rokiem przestepnym(`%s') bĊ‚Ä™dny format daty `%s'(zĊ‚a wersja)++ 1.0 lub nowsza++ 3.0 lub nowsza+++ USTALONE DATY +++Pierwszy AdwentDrugi AdwentTrzeci AdwentCzwarty Adwent5.1 lub wczeĊ›niejsza:Prima AprilisDzieĊ„ Wszystkich ĊšwiętychZaduszkiDzieĊ„ AnzacaKwiKwiecieĊ„Armistice DayPopielecPopielecSieSierpieĊ„Dzisiaj banki zamknięteBitwa pod BoyneDrugi dzieĊ„ BoĊĵego NarodzeniaSpalenie Jana Husa na stosieBurns NightKOMENDACWNie mogę wykonać polecenia z pliku `%s' Linia: %ld %sZamiennik znaku:DzieĊ„ DzieckaChrDzieĊ„ Wniebowstąpienia PaĊ„skiegoBoĊĵe NarodzenieWigiliaDzieĊ„ KolumbaWykonano polecenie (kod wyjĊ›cia=%d) z pliku `%s' Linia: %ld %sSkompilowany z %s%s dla %s%s%s%sStulecie KonstytucjiDzieĊ„ KoronacjiUtworzonyDzieĊ„ KulturyDzieĊ„ Modlitwy i ĊğaluDzieĊ„ Rewolty StudenckiejGruGrudzieĊ„DzieĊ„ Rodziny Kr³lewskiejPoniedziaĊ‚ek WielkanocnyWielkanocEindhoven's LiberationWybory prezydenckieKoniec sekwencji wyr³Ċĵniającej/znak zaznaczającyĊšwięto Trzech Kr³liWieczna lista dni wolnychDzieĊ„ OjcaBoĊĵe CiaĊ‚oFeast of Our TheotokosLutLutyDzieĊ„ chorągwiDzieĊ„ Kultury FlandryjskiejPtDzieĊ„ Kultury FrancuskiejPiąPiątekPiątkiDzieĊ„ Zjednoczenia NiemiecNiemcyWielki PiątekWielka Sobota/Jutro WielkanocWielka BrytaniaGrotto DayGuadalupe Virgin's DayDzieĊ„ Gustawa AdolfaHalloweenGrupa wyr³Ċĵniająca (naleĊĵy zdefiniować wszystkich przedstawicieli):Holy Innocent's DayKorzystając z tego programu zgadasz się bez Ċĵadnych ograniczeĊ„ na toĊšwięto NiepodlegĊ‚oĊ›ciWewnętrznyStyStyczeĊ„LipLipiecCzeCzerwiecĊšwięto PracyLapp National HolidayDzieĊ„ przestępny ustawiony na `%02d-%s' w pliku `%s'.DzieĊ„ WolnoĊ›ciLinia %ld zignorowana: %sLinia %ld: %sUĊğYTECZNOĊšCI DO OKREĊšLONEGO CELU.List od \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMarMarzecDzieĊ„ Martina L. KingaMartinimasMary's Annunciation DayDzieĊ„ Wniebowstąpienia NMPMary's Immaculate ConceptionWielki CzwartekMaj1 MajaPnPonPoniedziaĊ‚ekPoniedziaĊ‚kiPoniedziaĊ‚ki...PiątkiPoniedziaĊ‚ki...CzwartkiGrupa miesięcy (dokĊ‚adnie jeden przedstawiciel musi być zdefiniowany):DzieĊ„ MatkiNarodowe wakacjeDzieĊ„ Narodowego Ruchu OporuNowy RokDzieĊ„ NoblaLisListopadOPCJAPaĊşPaĊşdziernikZ zasady nie mogę odpowiadać za ĊğADNE zniszczenia lub straty (niejawneNiedziela PalmowaDzieĊ„ ModlitwyZaĊ‚aduj ustawienia i polecenia z 'PLIKu'DzieĊ„ KsięĊĵniczkiDzieĊ„ ReformacjiDzieĊ„ Pamięci PolegĊ‚ychDzieĊ„ RepublikiDzieĊ„ RewolucjiSoSobSobotaSobotyWrzWrzesieĊ„TĊ‚usty CzwartekPoczątek sekwencji wyr³Ċĵniającej/znak zaznaczającyNdNieNiedzielaNiedzieleSwallow DayDzieĊ„ NauczycielaCzUrodziny Koronowanej KsięĊĵniczkiDzieĊ„ Koronowanej KsięĊĵniczkiUrodziny Kr³laDzieĊ„ Kr³laUrodziny Kr³lowejDzieĊ„ Kr³lowejNie ma ĊğADNEJ gwarancji, nawet domyĊ›lnej gwarancjiOprogramowanie darmowe, zajrzyj do Ċşr³deĊ‚ po warunki kopiowaniaTen program jest darmowy, moĊĵesz go rozpowszechniać i/lub zmieniaćTe oprogramowanie niekoniecznie jest kompletne, poprawne lub uĊĵyteczneCzwCzwartekCzwartkiSpr³buj otworzyć (poziom: %02d) plik nagĊ‚³wkowy `%s'... %s%s%sSpr³buj napisać %s `%s'... %s%s%sWtWtoWtorekWtorkiUSARozpad unii ze SzwecjąDzieĊ„ Narod³w ZjednoczonychUĊĵycie: %s [[OPCJA...] [%cDATA] [%cPLIK...]] [POLECENIE]Usage: %s [[OPCJA...] [%cPLIK...]] [POLECENIE]UĊĵyj podanej DATY zamiast dzisiejszejDzieĊ„ weteranaDzieĊ„ WiktoriiDzieĊ„ ZwycięstwaĊšrĊšroĊšrodaĊšrodyTydzieĊ„ZesĊ‚anie Ducha ĊšwiętegoJutro BoĊĵe CiaĊ‚oZielone ĊšwiątkiĊšwiatowy DzieĊ„ ZwierzątPowinieneĊ› byĊ‚ otrzymać kopię 'Og³lnej Licencji Publicznej GNU'`%s' linia %ld: (`%s') zĊ‚a wartoĊ›c rozmiaru tabeli `sizeof %s>%d'`%s' linia %ld: (`%s') nieoczekiwany bĊ‚Ä…d (%d)`%s' linia %ld: zabrakĊ‚o pamięci wirtualnej (%s=%d)Wieczna lista dni wolnych`Wewnętrzny'porozumienie, kt³re wiąĊĵe ciebie PRAWNIE !!razem z programem; jeĊ›li jej nie masz napisz do: po poĊ‚udniudowolna p³Ċşniejsza wersjalinia poleceĊ„domyĊ›lnyzmienna Ċ›rodowiskowanie powiodĊ‚o sięnie moĊĵna zapisać do pliku `%s' Dysk caĊ‚kowicie zapeĊ‚niony!nie odnaleziono pliku `%s'dni wolnezĊ‚y znak w pliku odpowiedzi `%s' Linia %ld: %szĊ‚e Nte pole dnia tygodnia (%d) w pliku `%s' Linia %ld: %szĊ‚a częĊ›c daty w pliku `%s' Linia %ld: %sbĊ‚Ä™dny dzieĊ„zĊ‚e pole dnia (%02d) w pliku `%s' Linia %ld: %sbĊ‚Ä™dny miesiączĊ‚e pole miesiąca (%02d) w pliku `%s' Linia %ld: %sniepoprawna rekursja %s w pliku `%s' Linia %ld: %spodany bĊ‚Ä™dny wzorzec `%s' przy przeszukiwaniuZĊ‚y rok do obliczenia daty Niedziel Wielkanocnych Lata muszą być w zakresie (%d...%d)zgodnie z warunkami 'Og³lnej Licencji Publicznej GNU' opublikowanej przezĊ›więta paĊ„stwoweĊşle okreĊ›lona %s w pliku `%s' Linia %ld: %sbrak `biaĊ‚ego' znaku po dacie w pliku `%s' Linia %ld: %s. lub jawne), poniesione w wyniku uĊĵywania lub dziaĊ‚ania tego programuprzed poĊ‚udniem. bĊ‚Ä…d czytania z pliku `%s'plik odpowiedziautozdefiniowanyskrypt powĊ‚okiargument przesunięcia `%s' jest niepoprawny. powiodĊ‚o się. nieznany nieznany kompilatornieznany kompilator (SDK?)nieznana wersjawersja %dwersja %d.%dgcal-4.1/po/de.po0000664000000000000000000042056013041164031010523 00000000000000# German translations for GNU gcal package. # Copyright (C) 2000 Thomas Esken (msgids) # Copyright (C) 2014 Free Software Foundation, Inc. # This file is distributed under the same license as the gcal package. # ####################################################################### # Karlheinz Geyer , 2014. # For the german translation team # http://translationproject.org/team/de.html. # $Date: 2014/12/31 17:48:25 $ # $Id: gcal-3.6.3.34.de.po,v 1.16 2014/12/31 17:48:25 u025083 finalisiert u025083 $ # $Revision: 1.16 $ # ####################################################################### # Thomas Esken , 1997. # Mario Bl¤ttermann , 2014. # Karlheinz Geyer , 2014. msgid "" msgstr "" "Project-Id-Version: GNU gcal 3.6.3.34\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 2014-12-31 17:45+0100\n" "Last-Translator: Karlheinz Geyer \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "Unbekannter Systemfehler" #: lib/regcomp.c:135 msgid "Success" msgstr "erfolgreich" #: lib/regcomp.c:138 msgid "No match" msgstr "Keine œbereinstimmung" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "Ungĵltiger regul¤rer Ausdruck" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "Ungĵltiges Vergleichszeichen" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "Ungĵltiger Name der Zeichenklasse" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "Anh¤ngender linksseitiger Schr¤gstrich (Backslash)" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "Ungĵltiger Rĵckw¤rtsbezug" #: lib/regcomp.c:156 #, fuzzy msgid "Unmatched [, [^, [:, [., or [=" msgstr "Unpaarige eckige Klammer [ oder [^" #: lib/regcomp.c:159 msgid "Unmatched ( or \\(" msgstr "Unpaarige runde Klammer ( oder \\(" #: lib/regcomp.c:162 msgid "Unmatched \\{" msgstr "Unpaarige geschweifte Klammer \\{" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "Ungĵltiger Inhalt von \\{\\}" #: lib/regcomp.c:168 msgid "Invalid range end" msgstr "Ungĵltiges Bereichsende" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "Hauptspeicher ist aufgebraucht" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "Ungĵltiger vorangestellter regul¤rer Ausdruck" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "Vorzeitiges Ende des regul¤ren Ausdrucks" #: lib/regcomp.c:180 msgid "Regular expression too big" msgstr "Regul¤rer Ausdruck ist zu groŸ" #: lib/regcomp.c:183 msgid "Unmatched ) or \\)" msgstr "Unpaarige runde Klammer ) oder \\)" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "Kein vorhergehender regul¤rer Ausdruck" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "Weiterleitung (pipe) kann nicht erzeugt werden" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "%s-Teilprozess fehlgeschlagen" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "_open_osfhandle fehlgeschlagen" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "Wiederherstellung fd %d: dup2 fehlgeschlagen" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, c-format msgid "%s subprocess" msgstr "%s-Teilprozess" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "%s-Teilprozess erhielt ein schwerwiegendes Signal %d" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "Hauptspeicher aufgebraucht" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Es wird versucht, %s Âğ%sÂĞ zu schreiben... %s%s%s" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "gescheitert" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "erfolgreich" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "Es wird versucht, %s Ressourcendatei Âğ%sÂĞ zu ĥffnen... %s%s%s" #: src/file-io.c:1686 msgid " `HERE' " msgstr " ÂğHIERÂĞ " #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "" "Es wird versucht, Ebene: %02d der einzubindende Datei Âğ%sÂĞ zu ĥffnen... %s%s" "%s" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "ARG" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "Deutschland" #: src/gcal.c:1075 msgid "U.S.A." msgstr "USA" #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "GroŸbritannien" #: src/gcal.c:1852 msgid "default" msgstr "Grundeinstellung" #: src/gcal.c:1951 msgid ":" msgstr "." #: src/gcal.c:1961 msgid "Y" msgstr "J" #: src/gcal.c:1966 msgid "M" msgstr "M" #: src/gcal.c:1971 msgid "W" msgstr "W" #: src/gcal.c:1976 msgid "D" msgstr "T" #: src/gcal.c:2067 msgid "Fixed date list:" msgstr "Terminliste:" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "Umgebungsvariable" #: src/gcal.c:2268 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%s: Es wurde ein Befehl in Umgebungsvariable Âğ%sÂĞ angegeben -- %s\n" "%s\n" "%s\n" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "intern" #: src/gcal.c:2864 msgid "response file" msgstr "Antwortdatei" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "erstellt" #: src/gcal.c:2872 msgid "shell script" msgstr "Shellscript" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "E-Mail von \\Âğ%sÂĞ (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "%s: Achtung, die inhaltslose E-Mail wurde nicht an <%s> versendet.\n" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "Befehlszeile" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: Option Âğ%sÂĞ ist mehrdeutig" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: unbekannte Option Âğ%sÂĞ" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: ungĵltige Option -- %s" #: src/gcal.c:5910 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s: Option Âğ--%sÂĞ erlaubt kein Argument" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s: Option Âğ%sÂĞ erlaubt kein Argument" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: Option Âğ%sÂĞ benĥtigt ein Argument" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: Option benĥtigt ein Argument -- %s" #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: Option mit ungĵltigem Argument -- %s" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: Option mit mehrdeutigem Argument -- %s" #: src/gcal.c:5995 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" "%s: ungĵltiges Datum angegeben -- %c%s\n" "%s\n" "%s\n" #: src/hd-data.c:64 msgid "Australia" msgstr "Australien" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "Belgien" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "Brasilien" #: src/hd-data.c:67 msgid "Canada" msgstr "Kanada" #: src/hd-data.c:68 msgid "Switzerland" msgstr "Schweiz" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "China" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "Spanien" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "Frankreich" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "Israel" #: src/hd-data.c:75 src/hd-data.c:250 msgid "Italy" msgstr "Italien" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "Japan" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "Republik Korea" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "Mexiko" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "Niederlande" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "Neuseeland" #: src/hd-data.c:81 src/hd-data.c:320 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "Russische Fĥderation (Russland)" #: src/hd-data.c:83 msgid "United States" msgstr "USA" #: src/hd-data.c:85 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "Vereinigte Arabische Emirate" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "Afghanistan" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "Antigua und Barbuda" #: src/hd-data.c:89 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:90 msgid "Albania" msgstr "Albanien" #: src/hd-data.c:91 msgid "Armenia" msgstr "Armenien" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "Niederl¤ndische Antillen/Bonaire" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "Niederl¤ndische Antillen/Cura§ao" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "Niederl¤ndische Antillen/St. Maarten" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "Niederl¤ndische Antillen/Saba und Statia" #: src/hd-data.c:96 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:97 msgid "Argentina" msgstr "Argentinien" #: src/hd-data.c:98 msgid "American Samoa" msgstr "Amerikanisch-Samoa" #: src/hd-data.c:99 msgid "Austria" msgstr "–sterreich" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "Australien/Canberra" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "Australien/Nordterritorium" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "Australien/Queensland" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "Australien/Sĵdaustralien" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "Australien/Neusĵdwales" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "Australien/Tasmanien" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "Australien/Victoria" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "Australien/Westaustralien" #: src/hd-data.c:108 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "Aserbaidschan" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "Bosnien-Herzegowina" #: src/hd-data.c:111 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "Bangladesch #" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:115 msgid "Bulgaria" msgstr "Bulgarien" #: src/hd-data.c:116 msgid "Bahrain" msgstr "Bahrain" #: src/hd-data.c:117 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:118 msgid "Benin #" msgstr "Benin #" #: src/hd-data.c:119 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:120 msgid "Brunei" msgstr "Sultanat Brunei" #: src/hd-data.c:121 msgid "Bolivia" msgstr "Bolivien" #: src/hd-data.c:123 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "Bouvetinsel" #: src/hd-data.c:126 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:127 msgid "Belarus" msgstr "WeiŸrussland" #: src/hd-data.c:128 msgid "Belize" msgstr "Belize" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "Kanada/Alberta" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "Kanada/Britisch-Kolumbien" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "Kanada/Manitoba" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "Kanada/Neubraunschweig" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "Kanada/Neufundland und Labrador" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "Kanada/Neuschottland" #: src/hd-data.c:135 msgid "Canada/Northwest Territories" msgstr "Kanada/Nordwest-Territorien" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "Kanada/Ontario" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "Kanada/Prinz-Edward-Insel" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "Kanada/Quİbec" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "Kanada/Saskatchewan" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "Kanada/Yukon" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "Kokosinseln (Keeling)" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "Demokratische Republik Kongo #" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "Zentralafrikanische Republik #" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "Republik Kongo #" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "Schweiz/Aargau" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Schweiz/Appenzell Innerrhoden" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Schweiz/Appenzell Ausserrhoden" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "Schweiz/Bern" #: src/hd-data.c:149 msgid "Switzerland/Basel-Landschaft" msgstr "Schweiz/Basel-Landschaft" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "Schweiz/Basel-Stadt" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "Schweiz/Freiburg" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "Schweiz/Genf" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "Schweiz/Glarus" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "Schweiz/Graubĵnden" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "Schweiz/Jura" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "Schweiz/Luzern" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "Schweiz/Neuenburg" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "Schweiz/Nidwalden" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "Schweiz/Obwalden" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "Schweiz/St. Gallen" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "Schweiz/Schaffhausen" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "Schweiz/Solothurn" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "Schweiz/Schwyz" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "Schweiz/Thurgau" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "Schweiz/Tessin" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "Schweiz/Uri" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "Schweiz/Waad" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "Schweiz/Wallis" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "Schweiz/Zug" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "Schweiz/Zĵrich" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "Elfenbeinkĵste" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "Cookinseln" #: src/hd-data.c:173 msgid "Chile" msgstr "Chile" #: src/hd-data.c:174 msgid "Cameroon" msgstr "Kamerun" #: src/hd-data.c:176 msgid "Colombia" msgstr "Kolumbien" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:178 msgid "Cuba" msgstr "Kuba" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "Republik Cabo Verde" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "Weihnachtsinsel" #: src/hd-data.c:181 msgid "Cyprus" msgstr "Zypern" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "Tschechien" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "Deutschland/Brandenburg" #: src/hd-data.c:184 msgid "Germany/Berlin" msgstr "Deutschland/Berlin" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "Deutschland/Baden-Wĵrttemberg" #: src/hd-data.c:186 msgid "Germany/Bavaria" msgstr "Deutschland/Bayern" #: src/hd-data.c:187 msgid "Germany/Bremen" msgstr "Deutschland/Bremen" #: src/hd-data.c:188 msgid "Germany/Hesse" msgstr "Deutschland/Hessen" #: src/hd-data.c:189 msgid "Germany/Hamburg" msgstr "Deutschland/Hamburg" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Deutschland/Mecklenburg-Vorpommern" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "Deutschland/Niedersachsen" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "Deutschland/Nordrhein-Westfalen" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "Deutschland/Rheinland-Pfalz" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "Deutschland/Schleswig-Holstein" #: src/hd-data.c:195 msgid "Germany/Saarland" msgstr "Deutschland/Saarland" #: src/hd-data.c:196 msgid "Germany/Saxony" msgstr "Deutschland/Sachsen" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "Deutschland/Sachsen-Anhalt" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "Deutschland/Thĵringen" #: src/hd-data.c:199 msgid "Djibouti" msgstr "Dschibuti" #: src/hd-data.c:200 msgid "Denmark" msgstr "D¤nemark" #: src/hd-data.c:201 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "Dominikanische Republik" #: src/hd-data.c:203 msgid "Algeria" msgstr "Algerien" #: src/hd-data.c:204 msgid "Ecuador" msgstr "Ecuador" #: src/hd-data.c:205 msgid "Estonia" msgstr "Estland" #: src/hd-data.c:206 msgid "Egypt" msgstr "„gypten" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "Westsahara" #: src/hd-data.c:208 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "„thiopien" #: src/hd-data.c:211 msgid "Finland" msgstr "Finnland" #: src/hd-data.c:212 msgid "Fiji #" msgstr "Republik Fidschi #" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "Falklandinseln (Malvinas)" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "Fĥderierte Staaten von Mikronesien" #: src/hd-data.c:215 msgid "Faroes" msgstr "F¤rĥer-Inseln" #: src/hd-data.c:217 msgid "Gabon #" msgstr "Gabun #" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "GroŸbritannien/England und Wales" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "GroŸbritannien/Nordirland" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "GroŸbritannien/Schottland" #: src/hd-data.c:221 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:222 msgid "Georgia" msgstr "Georgien" #: src/hd-data.c:223 msgid "French Guiana" msgstr "Franzĥsisch-Guyana" #: src/hd-data.c:224 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:226 msgid "Greenland" msgstr "Grĥnland" #: src/hd-data.c:227 msgid "Gambia" msgstr "Gambia" #: src/hd-data.c:228 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "Guadeloupe" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "„quatorialguinea" #: src/hd-data.c:231 msgid "Greece" msgstr "Griechenland" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "Sĵdgeorgien und die Sĵdlichen Sandwichinseln" #: src/hd-data.c:233 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:234 msgid "Guam" msgstr "Guam" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "Guinea-Bissau #" #: src/hd-data.c:236 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "Hongkong" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "Heard und McDonald-Inseln" #: src/hd-data.c:239 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:240 msgid "Croatia" msgstr "Kroatien" #: src/hd-data.c:241 msgid "Haiti" msgstr "Haiti" #: src/hd-data.c:242 msgid "Hungary" msgstr "Ungarn" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "Indonesien #" #: src/hd-data.c:244 msgid "Ireland" msgstr "Irland" #: src/hd-data.c:246 msgid "India #" msgstr "Indien #" #: src/hd-data.c:247 msgid "Iraq" msgstr "Irak" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "Islamische Republik Iran" #: src/hd-data.c:249 msgid "Iceland" msgstr "Island" #: src/hd-data.c:251 msgid "Jamaica" msgstr "Jamaika" #: src/hd-data.c:252 msgid "Jordan" msgstr "Jordanien" #: src/hd-data.c:254 msgid "Kenya #" msgstr "Kenia #" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "Kirgisistan" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "Kĥnigreich Kambodscha" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:258 msgid "Comoros" msgstr "Union der Komoren" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "St. Kitts und Nevis" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "Demokratische Volksrepublik Korea" #: src/hd-data.c:262 msgid "Kuwait" msgstr "Emirat Kuwait" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "Kaimaninseln" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "Kasachstan" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "Demokratische Volksrepublik Laos #" #: src/hd-data.c:266 msgid "Lebanon" msgstr "Libanon" #: src/hd-data.c:267 msgid "St Lucia" msgstr "St. Lucia" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:270 msgid "Liberia" msgstr "Liberia" #: src/hd-data.c:271 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:272 msgid "Lithuania" msgstr "Litauen" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "Luxemburg" #: src/hd-data.c:274 msgid "Latvia" msgstr "Lettland" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Arabischer Staat Libyen" #: src/hd-data.c:276 msgid "Morocco" msgstr "Marokko" #: src/hd-data.c:277 msgid "Monaco" msgstr "Monaco" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "Republik Moldawien" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "Madagaskar #" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "Marshallinseln" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "Republik Mazedonien" #: src/hd-data.c:282 msgid "Mali" msgstr "Mali" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "Mongolei #" #: src/hd-data.c:284 msgid "Macau" msgstr "Macao" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "Nĥrdliche Marianeninseln (Saipan)" #: src/hd-data.c:286 msgid "Martinique" msgstr "Martinique" #: src/hd-data.c:287 msgid "Mauritania" msgstr "Mauretanien" #: src/hd-data.c:288 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:289 msgid "Malta" msgstr "Malta" #: src/hd-data.c:290 msgid "Mauritius" msgstr "Mauritius" #: src/hd-data.c:291 msgid "Maldives" msgstr "Malediven" #: src/hd-data.c:292 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "Malaysia #" #: src/hd-data.c:295 msgid "Mozambique" msgstr "Mozambik" #: src/hd-data.c:296 msgid "Namibia" msgstr "Namibia" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "Neukaledonien" #: src/hd-data.c:298 msgid "Niger" msgstr "Niger" #: src/hd-data.c:299 #, fuzzy msgid "Norfolk Island" msgstr "Norfolkinseln" #: src/hd-data.c:300 msgid "Nigeria" msgstr "Nigeria" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "Republik der Union Myanmar (Burma) #" #: src/hd-data.c:304 msgid "Norway" msgstr "Norwegen" #: src/hd-data.c:305 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:306 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:307 msgid "Niue" msgstr "Niue" #: src/hd-data.c:309 msgid "Oman" msgstr "Sultanat Oman" #: src/hd-data.c:310 msgid "Panama" msgstr "Panama" #: src/hd-data.c:311 msgid "Peru" msgstr "Peru" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "Franzĥsisch-Polynesien" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "Papua-Neuguinea" #: src/hd-data.c:314 msgid "Philippines" msgstr "Philippinen" #: src/hd-data.c:315 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:316 msgid "Poland" msgstr "Polen" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre und Miquelon" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "Pitcairninseln" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "Puerto Rico" #: src/hd-data.c:321 msgid "Palau" msgstr "Palau" #: src/hd-data.c:322 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:323 msgid "Qatar" msgstr "Katar" #: src/hd-data.c:324 msgid "Rİunion" msgstr "Rİunion" #: src/hd-data.c:325 msgid "Romania" msgstr "Rum¤nien" #: src/hd-data.c:327 msgid "Rwanda" msgstr "Ruanda" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "Saudi-Arabien" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "Salomon-Inseln" #: src/hd-data.c:330 msgid "Seychellen" msgstr "Seychellen" #: src/hd-data.c:331 msgid "Sudan" msgstr "Sudan" #: src/hd-data.c:332 msgid "Sweden" msgstr "Schweden" #: src/hd-data.c:333 msgid "Singapore #" msgstr "Singapur #" #: src/hd-data.c:334 msgid "St Helena" msgstr "St. Helena" #: src/hd-data.c:335 msgid "Slovenia" msgstr "Slowenien" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "Spitzbergen und Jan Mayen" #: src/hd-data.c:337 msgid "Slovakia" msgstr "Slowakei" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:339 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:340 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:341 msgid "Somalia" msgstr "Somalia" #: src/hd-data.c:342 msgid "Suriname #" msgstr "Suriname #" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "Sao Tomİ und Principe" #: src/hd-data.c:344 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "Arabische Republik Syrien" #: src/hd-data.c:346 msgid "Swaziland" msgstr "Swasiland" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "Turks- und Caicosinseln" #: src/hd-data.c:348 msgid "Chad" msgstr "Tschad" #: src/hd-data.c:349 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:350 msgid "Thailand #" msgstr "Thailand #" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "Tadschikistan" #: src/hd-data.c:352 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "Turkmenistan" #: src/hd-data.c:354 msgid "Tunisia" msgstr "Tunesien" #: src/hd-data.c:355 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:356 msgid "Turkey" msgstr "Tĵrkei" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "Trinidad und Tobago #" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:359 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:360 msgid "Tanzania" msgstr "Tansania" #: src/hd-data.c:361 msgid "Ukraine" msgstr "Ukraine" #: src/hd-data.c:362 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "USA/Alaska" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "USA/Alabama" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "USA/Arkansas" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "USA/Arizona" #: src/hd-data.c:367 msgid "United States/California" msgstr "USA/Kalifornien" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "USA/Colorado" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "USA/Connecticut" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "USA/District of Columbia" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "USA/Delaware" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "USA/Florida" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "USA/Georgia" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "USA/Hawaii" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "USA/Iowa" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "USA/Idaho" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "USA/Illinois" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "USA/Indiana" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "USA/Kansas" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "USA/Kentucky" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "USA/Louisiana" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "USA/Massachusetts" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "USA/Maryland" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "USA/Maine" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "USA/Michigan" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "USA/Minnesota" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "USA/Missouri" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "USA/Mississippi" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "USA/Montana" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "USA/North Carolina" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "USA/North Dakota" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "USA/Nebraska" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "USA/New Hampshire" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "USA/New Jersey" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "USA/New Mexico" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "USA/Nevada" #: src/hd-data.c:397 msgid "United States/New York" msgstr "USA/New York" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "USA/Ohio" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "USA/Oklahoma" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "USA/Oregon" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "USA/Pennyslvania" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "USA/Rhode Island" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "USA/South Carolina" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "USA/South Dakota" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "USA/Tennessee" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "USA/Texas" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "USA/Utah" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "USA/Virginia" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "USA/Vermont" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "USA/Washington" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "USA/Wisconsin" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "USA/West Virginia" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "USA/Wyoming" #: src/hd-data.c:414 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "Usbekistan" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "St. Vincent und Grenadinen" #: src/hd-data.c:417 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "Britische Jungferninseln" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "Amerikanische Jungferninseln" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "Sozialistische Republik Vietnam" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "Wallis und Futuna" #: src/hd-data.c:423 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:424 msgid "Yemen" msgstr "Jemen" #: src/hd-data.c:425 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "Serbien und Montenegro" #: src/hd-data.c:427 msgid "South Africa" msgstr "Republik Sĵdafrika" #: src/hd-data.c:428 msgid "Zambia" msgstr "Sambia" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "Simbabwe" #: src/hd-data.c:459 msgid "1st Advent" msgstr "Erster Advent" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "Erster Frĵhlingssonntag" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "Zweiter Advent" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "Zweiter Frĵhlingssonntag" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "Dritter Advent" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "Dritter Frĵhlingssonntag" #: src/hd-data.c:465 msgid "4th Advent" msgstr "Vierter Advent" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "Vierter Frĵhlingssonntag" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "7-5-3-Fest" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "Tag der Aborigines" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "Erster April" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "Allerheiligen" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "Allerseelen" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "Tag des Alphabets" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "Jahrestag von Auckland" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "Jahrestag von Canterbury-Nord" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "Jahrestag von Canterbury-Sĵd" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "Jahrestag der Chatham-Inseln" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "Jahrestag von Hawkes' Bay" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "Jahrestag von Marlborough" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "Jahrestag von Nelson" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "Jahrestag von Otago" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "Jahrestag von Southland" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "Jahrestag von Taranaki" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "Jahrestag von Wellington" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "Jahrestag von Westland" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "Anzac-Tag" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "Tag des Baumes" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "Tag der Streitkr¤fte" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "Waffenstillstandstag" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "Rosenmontag" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "Aschermittwoch" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "Abdu'l-Bahas Himmelfahrt" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "Baha'u'llahs Himmelfahrt" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "Baha'u'llahs Geburtstag" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "Geburt des Bab" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "Tag des Bundes" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "Erkl¤rung des Bab" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "Erster Tag des Ridvan" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "M¤rtyrerschaft des Bab" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "BahĦ'i Neujahr" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "Neunter Tag des Ridvan" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "Zwĥlfter Tag des Ridvan" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "Bankenfeiertag" #: src/hd-data.c:503 msgid "Basque National Day" msgstr "Baskischer Nationalfeiertag" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "Schlacht von Boyne" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "Schlacht von Puebla" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "Beginn des Finanzjahres" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "Benito-JuĦrez-Tag" #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "Bodhidharmas Geburtstag" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "Cheftag" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "Zweiter Weihnachtstag" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "Tag des Einholens der Herden" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "Tag des Einbringens der Ernte" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "Buddhas Geburtstag" #: src/hd-data.c:514 msgid "Burns Night" msgstr "Robert-Burns-Nacht" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "Camoes-Tag" #: src/hd-data.c:516 msgid "Carnival" msgstr "Karneval" #: src/hd-data.c:517 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:518 msgid "Imbolg" msgstr "Imbolg" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/Keltisches Neujahr" #: src/hd-data.c:521 msgid "Children's Day" msgstr "Tag der Kinder" #: src/hd-data.c:522 msgid "Cycle" msgstr "Zyklus" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "Chinesisches Neujahr" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "Vorabend Chinesisches Neujahr" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "Erster Weihnachtstag" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "Heiliger Abend" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "Christi Himmelfahrt" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "Chrysanthementag" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "Bĵrgerschaftstag" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "Bĵrgerlicher Feiertag" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "Kolumbustag" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "Tag der Vollj¤hrigkeit" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "Konfuzius' Geburtstag" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "Jahrestag der Verfassung" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "Koptisches Neujahr" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "Kosmonautentag" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "Tag der Kreuzerhebung" #: src/hd-data.c:538 msgid "Culture Day" msgstr "Kulturtag" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "Tag nach dem Fest der Herbstmitte" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "Tag nach dem Tag des Grabkehrens" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "Andalusien-Tag" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "Katalonien-Tag" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "Galizien-Tag" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "BuŸ- und Bettag" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "Tag der Aussĥhnung" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "Tag der Mutterlandverteidiger" #: src/hd-data.c:547 msgid "Double-9 Day" msgstr "Tag der Doppel-9" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "Drachenbootfest" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "Tag des Herrscherhauses" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "Ostermontag" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "Ostersonntag" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "Mondfinsternis" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "Sonnenfinsternis" #: src/hd-data.c:554 msgid "Annular" msgstr "ringfĥrmig" #: src/hd-data.c:555 msgid "Partial" msgstr "partiell" #: src/hd-data.c:556 msgid "Penumbral" msgstr "penumbral/ringfĥrmig" #: src/hd-data.c:557 msgid "Total" msgstr "vollst¤ndig" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "Eindhovens Befreiung" #: src/hd-data.c:559 msgid "Election Day" msgstr "Wahltag" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "Geburtstag des Kaisers" #: src/hd-data.c:561 msgid "Equinox Day" msgstr "Tagundnachtgleiche" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "„thiopisches Neujahr" #: src/hd-data.c:563 msgid "Father's Day" msgstr "Vatertag" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "Fronleichnam" #: src/hd-data.c:565 msgid "Feast of Fortune" msgstr "Glĵcksfest" #: src/hd-data.c:566 msgid "Feast of Heart Jesus" msgstr "Herz-Jesu-Fest" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "Laternenfest" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "Sadehfest" #: src/hd-data.c:569 msgid "Flag Day" msgstr "Flaggentag" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "Fl¤mischer-Kulturtag" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "Grĵndungstag der Kommunistischen Partei" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "Franzĥsischer-Kulturtag" #: src/hd-data.c:573 msgid "French Revolutionary" msgstr "Jahrestag der Franzĥsischen Revolution" #: src/hd-data.c:574 msgid "Friendship Day" msgstr "Freundschaftstag" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "Tag der Deutschen Einheit" #: src/hd-data.c:576 msgid "Good Friday" msgstr "Karfreitag" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "Karsamstag/Ostervorabend" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "GroŸelterntag" #: src/hd-data.c:579 msgid "Greenery Day" msgstr "Tag der Umwelt" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "Grotten-Tag" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "Murmeltier-Tag" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "Tag der Jungfrau von Guadalupe" #: src/hd-data.c:583 #, fuzzy msgid "Guy Fawkes Day" msgstr "Guy-Fawkes-Tag" #: src/hd-data.c:584 msgid "Halloween" msgstr "Reformationstag" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "Gesundheits- und Sporttag" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "Chanukka/Lichterfest" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "Lag Beomer/Rabbi Jochais Todestag" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "Pessach/Passahfest" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "Purim/Losfest" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "Rosch Haschana/Neujahr" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "Schawuot/Fest der Toraĵbergabe" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "Schuschan Purim" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "Simchat Tora/Gesetzesfreudenfest" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "Sukkot/Laubhĵttenfest" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "Tischa b'Aw/Fastentag" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tu Beschewat/Neujahr der B¤ume" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Jom Haschoa/Holocaust-Gedenktag" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Jom Hasikaron/Soldaten-Gedenktag" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "Jom Ha-Azmaut/Unabh¤ngigkeitstag" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "Jom Kippur/Versĥhnungstag" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Jom Jeruschalajim/Jerusalem-Tag" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "Tag der heiligen Unschuldigen" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "Heilige Dreifaltigkeit" #: src/hd-data.c:604 msgid "Huravee Day" msgstr "Huravee-Tag" #: src/hd-data.c:605 msgid "Independence Day" msgstr "Unabh¤ngigkeitstag" #: src/hd-data.c:606 msgid "Independence Movement Day" msgstr "Tag der Unabh¤ngigkeitsbewegung" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "Verkĵndung der Unabh¤ngigkeit" #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "Indisches Neujahr" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "Aga Khans Geburtstag" #: src/hd-data.c:610 msgid "Ashura'" msgstr "Ashura" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "Eid-al-Adha" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "Eid-al-Fitr" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "Eid-i-Midlad-un-Nabi" #: src/hd-data.c:614 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "Imamat-Tag" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "Islamisches Neujahr" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "Nuzul-al-Qur'an" #: src/hd-data.c:618 msgid "Quds Day" msgstr "Quds-Tag" #: src/hd-data.c:619 msgid "Ramadan" msgstr "Ramadan" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "Shab-e-Bara't" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "Shab-e-Mi'raj" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "Shab-e Qadr" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "Japanisches Neujahr" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "Vorabend Japanisches Neujahr" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "Beschneidung Jesu" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:628 msgid "Labour Day" msgstr "Tag der Arbeit" #: src/hd-data.c:629 msgid "Labour Thanksgiving Day" msgstr "Arbeiter-Erntedanktag" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "Lao Tses Geburtstag" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "Tag der Befreiung" #: src/hd-data.c:632 msgid "Marine Day" msgstr "Tag der Marine" #: src/hd-data.c:633 msgid "Martinimas" msgstr "St. Martin" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "Martin-Luther-King-Tag" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "Tag der M¤rtyrer" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "Mari¤ Verkĵndigung" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "Mari¤ Himmelfahrt" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "Mari¤ Lichtmess" #: src/hd-data.c:639 msgid "Mary's Expectation" msgstr "Mari¤ Erwartung" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "Mari¤ Empf¤ngnis" #: src/hd-data.c:641 msgid "Mary's Maternity" msgstr "Mari¤ Mutterschaft" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "Mari¤ Namen" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "Mari¤ Geburt" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "Mari¤ Opferung" #: src/hd-data.c:645 msgid "Mary's Visitation" msgstr "Mari¤ Heimsuchung" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "Mari¤ - Mutter Gottes" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "Grĵndonnerstag" #: src/hd-data.c:648 msgid "May Day" msgstr "Maifeiertag" #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "St. Johann/Mittsommerfest" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "Fest der Herbstmitte" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "Fest der Frĵhlingsmitte" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "Fest der Jahresmitte" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "Zunehmender Halbmond" #: src/hd-data.c:654 msgid "Full Moon" msgstr "Vollmond" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "Abnehmender Halbmond" #: src/hd-data.c:656 msgid "New Moon" msgstr "Neumond" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "Muttertag" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "Schwiegermutter-Tag" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "Musikwasser-Bankett" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "Tag der Staatsgrĵndung" #: src/hd-data.c:661 msgid "National Holiday" msgstr "Nationalfeiertag" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "Volkstrauertag" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "Neujahr" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "Kinderm¤dchen-Tag" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "Altarmenisches Neujahr" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "Alt¤gyptisches Neujahr" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "Orthodoxes Neujahr" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "Tag der Jungfrau Aparecida" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "Palmsonntag" #: src/hd-data.c:670 msgid "Parent's Day" msgstr "Tag der Eltern" #: src/hd-data.c:671 msgid "Passion Sunday" msgstr "Passionssonntag" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "Friedensfest" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "Pfirsichfest" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "Pfingstsonntag" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "Noruz/Persisches Neujahr" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "Bettag" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "Amtseinfĵhrung des Pr¤sidenten" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "Tag des Pr¤sidenten" #: src/hd-data.c:679 msgid "Presidents' Inform" msgstr "Berichtstag des Pr¤sidenten" #: src/hd-data.c:680 msgid "President Lincoln's Birthday" msgstr "Pr¤sident Lincolns Geburtstag" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "Prinzessin-Tag" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "Quinquagesima-Sonntag" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "Reformationstag" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "Gedenktag" #: src/hd-data.c:685 msgid "Republic Day" msgstr "Tag der Republik" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "Tag der Ahnenverehrung" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "Tag der Revolution" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "Jahrestag von Rio de Janeiro" #: src/hd-data.c:689 msgid "Rogation Sunday" msgstr "Sonntag Rogate" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "Jahrestag Sao Paulo" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "Sapporo-Schneefest" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "Jahreszeitenwechsel/Bohnenfest" #: src/hd-data.c:693 msgid "Septuagesima Sunday" msgstr "Sonntag Septuagesima" #: src/hd-data.c:694 msgid "Seven Sleepers Day" msgstr "Siebenschl¤fer" #: src/hd-data.c:695 msgid "Sexagesima Sunday" msgstr "Sonntag Sexagesima" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "Fastnacht/Fasching" #: src/hd-data.c:697 msgid "Solstice Day" msgstr "Tag der Sonnenwende" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "Tag der Rĵckkehr" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "Frĵhlingsfest" #: src/hd-data.c:700 msgid "Start of common month" msgstr "Beginn Gemeinmonat" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "Beginn Schaltmonat" #: src/hd-data.c:702 msgid "Star Festival" msgstr "Sternenfest" #: src/hd-data.c:703 msgid "St Andrew's Day" msgstr "St. Andreas" #: src/hd-data.c:704 msgid "St Bartholomew Day" msgstr "St. Bartholom¤us" #: src/hd-data.c:705 msgid "St Berchtold's Day" msgstr "St. Berchtold" #: src/hd-data.c:706 msgid "St David's Day" msgstr "St. David" #: src/hd-data.c:707 msgid "St Edward's Day" msgstr "St. Eduard" #: src/hd-data.c:708 msgid "St George's Day" msgstr "St. Georg" #: src/hd-data.c:709 msgid "St James' Day" msgstr "St. Jakob" #: src/hd-data.c:710 msgid "St Joseph's Day" msgstr "St. Josef" #: src/hd-data.c:711 msgid "St Laurentius Day" msgstr "St. Laurentius" #: src/hd-data.c:712 msgid "St Nicholas' Day" msgstr "St. Nikolaus" #: src/hd-data.c:713 msgid "St Nicholas' Eve" msgstr "Vorabend St. Nikolaus" #: src/hd-data.c:714 msgid "St Patrick's Day" msgstr "St. Patrick" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "St. Peter und St. Paul" #: src/hd-data.c:716 msgid "St Stephen's Day" msgstr "St. Stefan" #: src/hd-data.c:717 msgid "St Valentine's Day" msgstr "St. Valentin/Valentinstag" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "Totensonntag" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "Schwalbentag" #: src/hd-data.c:720 msgid "Sweetest Day" msgstr "Freundestag" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "Silvester" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "Tag der Lehrer" #: src/hd-data.c:723 msgid "Thai New Year's Day" msgstr "Thail¤ndisches Neujahr" #: src/hd-data.c:724 msgid "Thanksgiving Day" msgstr "Erntedankfest" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "Geburtstag des Kĥnigs" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "Geburtstag der Kĥnigin" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "Epiphanias/Heilige Drei Kĥnige" #: src/hd-data.c:728 msgid "Tiradentes Day" msgstr "Tiradentes-Tag" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "Tag des Grabkehrens" #: src/hd-data.c:730 msgid "Transfiguration Day" msgstr "Verkl¤rung Christi" #: src/hd-data.c:731 msgid "Tynwald Day" msgstr "Tynwald-Tag" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "Walpurgisnacht" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "Karneval in Venedig" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "Veteranentag" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "Victoria-Tag" #: src/hd-data.c:736 msgid "Victory Day" msgstr "Siegestag" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "Pfingstmontag" #: src/hd-data.c:738 msgid "Women's Day" msgstr "Frauentag" #: src/hd-data.c:739 msgid "Women's Shrove Day" msgstr "Weiberfastnacht" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "Welt-Tierschutztag" #: src/hd-data.c:741 msgid "Youth Day" msgstr "Jugendtag" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "Adelaide-Pokal-Tag" #: src/hd-data.c:748 msgid "Admission Day" msgstr "Tag der Aufnahme" #: src/hd-data.c:749 msgid "Alaska Day" msgstr "Alaska-Tag" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "Aleksis-Kivi-Tag" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "Alice-Springs Ausstellungstag" #: src/hd-data.c:752 msgid "All Saints' Eve" msgstr "Vorabend Allerheiligen" #: src/hd-data.c:753 msgid "Americas Day" msgstr "Amerika-Tag" #: src/hd-data.c:754 msgid "Angam Day" msgstr "Angam-Tag" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "Jahrestag der Nachfolge Amirs" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "Jahrestag des bewaffneten Kampfes" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "Jahrestag des Grĵnen Marsches" #: src/hd-data.c:759 msgid "Antillian Day" msgstr "Tag der Antillen" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "Tag der Arabischen Liga" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "Erzbischof Makarios' Gedenktag" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "Erzbischof Makarios' Namenstag" #: src/hd-data.c:764 msgid "Arengo Anniversary" msgstr "Jahrestag von Arengo" #: src/hd-data.c:765 msgid "Army Coup Day" msgstr "Tag des Milit¤rputsches" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "Ankunft der Schweizer" #: src/hd-data.c:767 msgid "Artigas' Birthday" msgstr "Artigas' Geburtstag" #: src/hd-data.c:768 msgid "Asuncion Day" msgstr "Asuncion-Tag" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "Atatĵrk-Gedenktag" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "Tag der Amtsgewaltskraft" #: src/hd-data.c:771 msgid "Ba'ath Revolution Day" msgstr "Ba'ath-Revolutionstag" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "Baron-Bliss-Tag" #: src/hd-data.c:773 msgid "Bataan Day" msgstr "Bataan-Tag" #: src/hd-data.c:774 msgid "Battle of Angamos" msgstr "Schlacht von Angamos" #: src/hd-data.c:775 msgid "Battle of BoyacĦ" msgstr "Schlacht von BoyacĦ" #: src/hd-data.c:776 msgid "Battle of Carabobo" msgstr "Schlacht von Carabobo" #: src/hd-data.c:777 msgid "Battle of Iquique" msgstr "Schlacht von Iquique" #: src/hd-data.c:778 msgid "Battle of Las Piedras" msgstr "Schlacht von Las Piedras" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "Schlacht von N¤fels" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "Sommeranfang" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "Belgrad-Tag" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "Schlacht von Bennington" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "Segnung des Wassers" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "Blĵtentag" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "Boganda-Tag" #: src/hd-data.c:786 msgid "Bonaire Day" msgstr "Bonaire-Tag" #: src/hd-data.c:787 msgid "Boqueron Battle Day" msgstr "Schlacht von Boqueron" #: src/hd-data.c:788 msgid "Botswana Day" msgstr "Botswana-Tag" #: src/hd-data.c:789 msgid "Bounty Day" msgstr "Bounty-Tag" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "Schlacht von Bunker Hill" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "Verbrennung des Jan Hus" #: src/hd-data.c:792 msgid "Canberra Day" msgstr "Canberra-Tag" #: src/hd-data.c:793 msgid "Caricom Day" msgstr "Caricom-Tag" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "Casimir Pulaskis Geburtstag" #: src/hd-data.c:795 msgid "Cassinga Day" msgstr "Cassinga-Tag" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "Cayennefest" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "Cesar-Chavez-Tag" #: src/hd-data.c:798 msgid "Charter Day" msgstr "Urkunden-Tag" #: src/hd-data.c:799 msgid "Chiang Kai-shek's Birthday" msgstr "Chiang Kai-sheks Geburtstag" #: src/hd-data.c:800 msgid "Children's White Sunday" msgstr "WeiŸer Sonntag der Kinder" #: src/hd-data.c:801 msgid "Colon Day" msgstr "Colon-Tag" #: src/hd-data.c:802 msgid "Colorado Day" msgstr "Colorado-Tag" #: src/hd-data.c:803 msgid "Commonwealth Day" msgstr "Tag des Commonwealth" #: src/hd-data.c:804 msgid "Compact Day" msgstr "Vertragstag" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "Tag des Bĵndnisabkommens" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "Krĥnungstag" #: src/hd-data.c:807 msgid "Cup Match Day" msgstr "Pokalspiel-Tag" #: src/hd-data.c:808 msgid "Custom Chief's Day" msgstr "Brauchtumschefs-Tag" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "C. Mapinduzi-Tag" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "Darwin-Ausstellungstag" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "Tag des Wohlwollens" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "Tag der Studentenrevolte" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "Tag des freien Laos" #: src/hd-data.c:814 msgid "Death of H. Christophe" msgstr "Todestag von H. Christophe" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "Todestag von J. Dessalines" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "Todestag von Pr¤sident Abdallah" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "Todestag von Pr¤sident Cheikh" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "Todestag von Pr¤sident Soilih" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "Todestag von Qaid-i-Azam" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "Todestag von T. Louverture" #: src/hd-data.c:821 msgid "Defenders Day" msgstr "Tag der Verteidiger" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "Dia del Padre" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "Dia de los Maestros" #: src/hd-data.c:824 msgid "Discovery Day" msgstr "Tag der Entdeckung" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "Sturz des Dergen" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "Feier der Trockenzeit" #: src/hd-data.c:827 msgid "Dr. Sun Yat-sen's Birthday" msgstr "Dr. Sun Yat-sens Geburtstag" #: src/hd-data.c:828 msgid "Duarte's Birthday" msgstr "Duartes Geburtstag" #: src/hd-data.c:829 msgid "Easter Tuesday" msgstr "Osterdienstag" #: src/hd-data.c:830 msgid "Economic Liberation Day" msgstr "Tag der wirtschaftlichen Befreiung" #: src/hd-data.c:831 msgid "Eight Hours Day" msgstr "Acht-Stunden-Tag" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "Wahl zur Nationalversammlung" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "Errol-Barrow-Tag" #: src/hd-data.c:834 msgid "Evacuation Day" msgstr "Tag der Aussiedlung" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "Vorabend Epiphanias" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "Expedition der 33" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "E. Hostos' Geburtstag" #: src/hd-data.c:838 msgid "Family Day" msgstr "Tag der Familie" #: src/hd-data.c:839 msgid "FAO Day" msgstr "FAO-Tag" #: src/hd-data.c:840 msgid "Farmers' Day" msgstr "Tag der Landwirte" #: src/hd-data.c:841 msgid "Father Leval Day" msgstr "Vater-Leval-Tag" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "Fest des Theotokos" #: src/hd-data.c:843 msgid "Fisherman's Day" msgstr "Tag der Fischer" #: src/hd-data.c:844 msgid "Foundation of NPLA Day" msgstr "Grĵndungstag der NPLA" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "Grĵndungstag der Volkspartei" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "Garifuna-Tag" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "Jahrestag General San Martin" #: src/hd-data.c:849 msgid "Gospel Day" msgstr "Gospel-Tag" #: src/hd-data.c:850 msgid "Guacanaste Day" msgstr "Guacanaste-Tag" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "Gustav-Adolph-Tag" #: src/hd-data.c:852 msgid "Heritage Day" msgstr "Tag der Erbschaft" #: src/hd-data.c:853 msgid "Heroes Day" msgstr "Tag der Helden" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "Hobart Ausstellungstag" #: src/hd-data.c:855 msgid "Holy Wednesday" msgstr "Mittwoch vor Ostern" #: src/hd-data.c:856 msgid "Ho Chi Minh's Birthday" msgstr "Ho Chi Minhs Geburtstag" #: src/hd-data.c:857 msgid "Human Rights Day" msgstr "Tag der Menschenrechte" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "Tag des Hurrikananflehens" #: src/hd-data.c:859 msgid "Hurricane Thanksgiving Day" msgstr "Hurrikan-Erntedankfest" #: src/hd-data.c:860 msgid "Independence of Cartagena" msgstr "Unabh¤ngigkeit von Cartagena" #: src/hd-data.c:861 msgid "Independence of Cuenca" msgstr "Unabh¤ngigkeit von Cuenca" #: src/hd-data.c:862 msgid "Independence of Guayaquil" msgstr "Unabh¤ngigkeit von Guayaquil" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "Unabh¤ngigkeit von Quito" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "Ankunft der Inder" #: src/hd-data.c:865 msgid "Internal Autonomy Day" msgstr "Tag der internen Autonomie" #: src/hd-data.c:866 msgid "Jefferson Davis' Birthday" msgstr "Jefferson Davis' Geburtstag" #: src/hd-data.c:867 msgid "June Holiday" msgstr "Junifeiertag" #: src/hd-data.c:868 msgid "J. Barbosa's Birthday" msgstr "J. Barbosas Geburtstag" #: src/hd-data.c:869 msgid "J. Chilembwe Day" msgstr "J.-Chilembwe-Tag" #: src/hd-data.c:870 msgid "J. Diego's Birthday" msgstr "J.-Diegos-Geburtstag" #: src/hd-data.c:871 msgid "J. Robert's Birthday" msgstr "J.-Roberts-Geburtstag" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "Kamarampaka-Tag" #: src/hd-data.c:873 msgid "Kartini Day" msgstr "Kartini-Tag" #: src/hd-data.c:874 msgid "Catherine Show Day" msgstr "Catherine-Ausstellungstag" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "Kiew-Tag" #: src/hd-data.c:876 msgid "Kim Il-Sung's Birthday" msgstr "Kim-Il-Sung-Geburtstag" #: src/hd-data.c:877 msgid "Kim Jong-Il's Birthday" msgstr "Kim-Jong-Il-Geburtstag" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "Kĥnig-Kamehameha-Tag" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "Kĥnig Rama I Gedenktag/Chakri" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "Kĥnig Rama V Gedenktag" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "KnabenschieŸen" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "Konstantin und Methodius" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "Nationalfeiertag der Lappen" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "Launceston-Pokal-Tag" #: src/hd-data.c:885 msgid "Liberty Day" msgstr "Freiheitstag" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "Verlust des Moslemstaats" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "Luxemburg-Stadt Kirmes" #: src/hd-data.c:888 msgid "Lyndon B. Johnson Day" msgstr "Lyndon-B.-Johnson-Tag" #: src/hd-data.c:889 msgid "L. Rivera's Birthday" msgstr "L. Riveras Geburtstag" #: src/hd-data.c:890 msgid "Madaraka Day" msgstr "Madaraka-Tag" #: src/hd-data.c:891 msgid "Mahatma Gandhi's Birthday" msgstr "Mahatma Gandhis Geburtstag" #: src/hd-data.c:892 msgid "Malvinas Day" msgstr "Malvinas-Tag" #: src/hd-data.c:893 msgid "Manila Day" msgstr "Manila-Tag" #: src/hd-data.c:894 msgid "Maputo City Day" msgstr "Maputo-Stadt-Tag" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "Marien-Ngouabi-Tag" #: src/hd-data.c:896 msgid "Maryland Day" msgstr "Maryland-Tag" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "Melbourne-Pokal-Tag" #: src/hd-data.c:898 msgid "Merchant Day" msgstr "Tag des Handels" #: src/hd-data.c:899 msgid "St John's/Midsummers Eve" msgstr "St. Johann/Johannistag" #: src/hd-data.c:900 msgid "Missionary Day" msgstr "Tag der Missionierung" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "Mi-CarŞme-Tag" #: src/hd-data.c:902 msgid "Morazan Day" msgstr "Morazan-Tag" #: src/hd-data.c:903 msgid "Mosheshoe's Day" msgstr "Mosheshoes-Tag" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "Mutterschafts- und Schĥnheitstag" #: src/hd-data.c:905 msgid "Naming Day" msgstr "Namenstag" #: src/hd-data.c:906 msgid "National Bun Day" msgstr "Sticky Bun Day" #: src/hd-data.c:907 msgid "National Heroes Day" msgstr "Tag der Nationalhelden" #: src/hd-data.c:908 msgid "National Redemption Day" msgstr "Nationaler Wiedergutmachungstag" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "Tag des nationalen Widerstandes" #: src/hd-data.c:910 msgid "National Revival Day" msgstr "Tag der nationalen Erneuerung" #: src/hd-data.c:911 msgid "National Unity Day" msgstr "Tag der nationalen Einheit" #: src/hd-data.c:912 msgid "Ndadaye Day" msgstr "Ndadaye-Tag" #: src/hd-data.c:913 msgid "Neutrality Day" msgstr "Neutralit¤tstag" #: src/hd-data.c:914 msgid "Nevada Day" msgstr "Nevada-Tag" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "Jahrestag der neuen Regierung" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "Nobel-Tag" #: src/hd-data.c:917 msgid "Noi Day" msgstr "Noi-Tag" #: src/hd-data.c:918 msgid "OAU Day" msgstr "OAU-Tag" #: src/hd-data.c:919 msgid "October Holiday" msgstr "Oktoberfeiertag" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "Tag der –lindustrie" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "Tag der Jungfrau von Altagracia" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "Tag der Jungfrau von Camarin" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "Tag der Jungfrau von Las Mercedes" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "Tag der Jungfrau von Los Angeles" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "Tag der Jungfrau der sieben Leiden" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "Tag der Jungfrau der Siege" #: src/hd-data.c:927 msgid "Panama City Day" msgstr "Panama Stadt-Tag" #: src/hd-data.c:928 msgid "Panamerica Day" msgstr "Panamerikanischer-Tag" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "Tag des Pariser Friedensabkommens" #: src/hd-data.c:930 msgid "Patriot's Day" msgstr "Tag der Patrioten" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "Tag des Volksaufstands" #: src/hd-data.c:932 msgid "People Power Day" msgstr "Tag der Volksmassen" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "Philippinisch-amerikanisches Freundschaftsfest" #: src/hd-data.c:934 msgid "Pichincha Day" msgstr "Pichincha-Tag" #: src/hd-data.c:935 msgid "Picnic Day" msgstr "Picknick-Tag" #: src/hd-data.c:936 msgid "Pioneer Day" msgstr "Tag der Pioniere" #: src/hd-data.c:937 msgid "Poya Day" msgstr "Poya-Tag" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "Prinz-Kalanianaole-Tag" #: src/hd-data.c:939 msgid "Prince of Wales' Birthday" msgstr "Prinz von Wales' Geburtstag" #: src/hd-data.c:940 msgid "Proclamation Day" msgstr "Tag der Verkĵndung" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "Qaid-i-Azams Geburtstag" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "Ratu-Sukuma-Tag" #: src/hd-data.c:943 msgid "Recreation Day" msgstr "Tag der Erholung" #: src/hd-data.c:944 msgid "Referendum Day" msgstr "Tag des Volksentscheids" #: src/hd-data.c:945 msgid "Regatta Day" msgstr "Regattatag" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "Wechsel der Regentschaft" #: src/hd-data.c:947 msgid "Restoration Day" msgstr "Wiederherstellungstag" #: src/hd-data.c:948 msgid "Return Day" msgstr "Tag der Wiederkehr" #: src/hd-data.c:949 msgid "Reunification Day" msgstr "Tag der Wiedervereinigung" #: src/hd-data.c:950 msgid "Rizal Day" msgstr "Rizal-Tag" #: src/hd-data.c:951 msgid "Rwagasore Day" msgstr "Rwagasore-Tag" #: src/hd-data.c:952 msgid "Saba Day" msgstr "Saba-Tag" #: src/hd-data.c:953 msgid "San Jacinto Day" msgstr "San-Jacinto-Tag" #: src/hd-data.c:954 msgid "San Josİ Day" msgstr "San-Josİ-Tag" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "Grĵndungstag des Such-Rettungsdienstes SAR" #: src/hd-data.c:956 msgid "School Holiday" msgstr "Schulfeiertag" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "Sechsel¤uten/S¤chsilĵĵte" #: src/hd-data.c:958 msgid "Separation Day" msgstr "Trennungstag" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "Seretse-Khama-Tag" #: src/hd-data.c:960 msgid "Settlers Day" msgstr "Tag der Siedler" #: src/hd-data.c:961 msgid "Seward's Day" msgstr "Sewards-Tag" #: src/hd-data.c:962 msgid "Shaheed Day" msgstr "Shaheed-Tag" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "Schaffest" #: src/hd-data.c:964 msgid "Sheikh Zayed's Ascension Day" msgstr "Scheich Zayeds Himmelfahrt" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "Simon-Bolivar-Tag" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "Tag der Befreiung Sinais" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "Tag der Sklavenbefreiung" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "Tag des Briseschnupperns" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "Solidarit¤tstag" #: src/hd-data.c:970 msgid "Somers Day" msgstr "Somers-Tag" #: src/hd-data.c:971 msgid "Statia-American Day" msgstr "St. Eustatius-Amerikatag" #: src/hd-data.c:972 msgid "Student's Day" msgstr "Tag der Studenten" #: src/hd-data.c:973 msgid "St Agata Day" msgstr "St. Agata" #: src/hd-data.c:974 msgid "St Canute's Day" msgstr "St. Knut" #: src/hd-data.c:975 msgid "St Cedilia's Day" msgstr "St. Cedilia" #: src/hd-data.c:976 msgid "St Charles' Day" msgstr "St. Karl" #: src/hd-data.c:977 msgid "St Demetrius' Day" msgstr "St. Demeter" #: src/hd-data.c:978 msgid "St Dİvote Day" msgstr "St. Dİvote" #: src/hd-data.c:979 msgid "St Eliah's Day" msgstr "St. Eliah" #: src/hd-data.c:980 msgid "St Jean Baptiste Day" msgstr "St. Jean Baptiste" #: src/hd-data.c:981 msgid "St Lucia's Day" msgstr "St. Luzia" #: src/hd-data.c:982 msgid "St Marguerite's Day" msgstr "St. Margarethe" #: src/hd-data.c:983 msgid "St Maroon's Day" msgstr "St. Maroun" #: src/hd-data.c:984 msgid "St Michael's Day" msgstr "St. Michael" #: src/hd-data.c:985 msgid "St Olav's Day" msgstr "St. Olaf" #: src/hd-data.c:986 msgid "St Olav's Eve" msgstr "Vorabend St. Olaf" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "Schiffbruch St. Paul" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "St. Rose von Lima" #: src/hd-data.c:989 msgid "St Ursula's Day" msgstr "St. Ursula" #: src/hd-data.c:990 msgid "St Vincent de Paul's Day" msgstr "St. Vincent de Paul" #: src/hd-data.c:991 msgid "Suez Victory Day" msgstr "Suez-Siegestag" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "Sultan Qaboos' Geburtstag" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:994 msgid "Sweden Day" msgstr "Schweden-Tag" #: src/hd-data.c:995 msgid "S. Doe's Birthday" msgstr "S. Does' Geburtstag" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "Tennant-Creek Ausstellungstag" #: src/hd-data.c:997 msgid "Territory Day" msgstr "Territoriumstag" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "Geburtstag der Kronprinzessin" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "Namenstag der Kronprinzessin" #: src/hd-data.c:1000 msgid "The Crown Prince's Birthday" msgstr "Geburtstag des Kronprinzen" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "Namenstag des Kĥnigs" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "Namenstag der Kĥnigin" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "Topou-I-Tag" #: src/hd-data.c:1004 msgid "Town Meeting Day" msgstr "Tag des St¤dtetreffens" #: src/hd-data.c:1005 msgid "Traditional Day" msgstr "Traditionstag" #: src/hd-data.c:1006 msgid "Transfer Day" msgstr "Tag der œbertragung" #: src/hd-data.c:1007 msgid "Truman Day" msgstr "Truman-Tag" #: src/hd-data.c:1008 msgid "Union Day" msgstr "Tag der Union/Tag des Bundes" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "Union mit Schweden aufgelĥst" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "Tag der Vereinten Nationen" #: src/hd-data.c:1011 msgid "Unity Factory Day" msgstr "Tag der Fabrikvereinigung" #: src/hd-data.c:1012 msgid "Victor-Schoelcher Day" msgstr "Victor-Schoelcher-Tag" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "Vidovdan" #: src/hd-data.c:1014 msgid "West Virginia Day" msgstr "West-Virginia-Tag" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "Pfingstvorabend" #: src/hd-data.c:1016 msgid "W. Tubman's Birthday" msgstr "W.-Tubmans-Geburtstag" #: src/hd-data.c:1017 msgid "Yap Day" msgstr "Yap-Tag" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "Tag der Tschechischen Staatlichkeit" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "Zi/Ratte" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "Chou/Rind" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "Yin/Tiger" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "Mao/Hase" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "Chen/Drache" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "Si/Schlange" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "Wu/Pferd" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "Wei/Schaf" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "Shen/Affe" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "You/Hahn" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "Xu/Hund" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "Hai/Schwein" #: src/hd-data.c:1287 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1550 msgid "Cel" msgstr "Kel" #: src/hd-data.c:1692 src/hd-data.c:2225 msgid "Chi" msgstr "Chi" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "Der Lunisolarkalender fĵr %d kann nicht korrekt berechnet werden" #: src/hd-data.c:2227 src/hd-data.c:3730 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2423 msgid "Chr" msgstr "Chr" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "FRR" #: src/hd-data.c:2778 src/hd-data.c:2960 msgid "Heb" msgstr "Heb" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "AMA" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "EGA" #: src/hd-data.c:4447 msgid "OxN" msgstr "OxN" #: src/hd-data.c:4449 msgid "OxO" msgstr "OxO" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "Per" #: src/hd-data.c:4847 msgid "Zod" msgstr "Zod" #: src/hd-use.c:929 msgid " day" msgstr " tag" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "Ewige Feiertagsliste" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*sDas Jahr %0*d ist ein Schaltjahr" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*sDas Jahr %0*d ist kein Schaltjahr" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sDas Jahr %d ist ein Schaltjahr" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sDas Jahr %d ist kein Schaltjahr" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr " = %+4d Tag" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr " = %+4d Tage" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s enth¤lt nun %d Maximaleintr¤ge!%s" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "Kompiliert mit %s%s fĵr %s%s%s%s" #: src/help.c:75 msgid "# Day number (must be defined)" msgstr "# Tagesnummer (muss festgelegt werden)" #: src/help.c:76 msgid "# Year number (must be defined)" msgstr "# Jahresnummer (muss festgelegt werden)" #: src/help.c:77 msgid "# Weekday name (may be defined)" msgstr "# Wochentagsname (darf festgelegt werden)" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "Monat-Gruppe (genau ein Element muss definiert werden):" #: src/help.c:79 msgid "# Month number" msgstr "# Monatsnummer" #: src/help.c:80 msgid "# Month name" msgstr "# Monatsname" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "Hervorhebung-Gruppe (alle Element mĵssen definiert werden):" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "Start von Hervorhebungssequenz/Markierungszeichen" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "Ende von Hervorhebungssequenz/Markierungszeichen" #: src/help.c:86 msgid "Character replacement:" msgstr "Zeichenersetzung:" #: src/help.c:87 #, c-format msgid "Space/blank ('%c') character" msgstr "Leerzeichen (Âğ%cÂĞ)" #: src/help.c:88 #, c-format msgid "Underscore ('%c') character" msgstr "Unterstrichzeichen (Âğ%cÂĞ)" #: src/help.c:89 #, c-format msgid "Percent ('%c') character" msgstr "Prozentzeichen (Âğ%cÂĞ)" #: src/help.c:90 #, c-format msgid "Backslash ('%c') character" msgstr "Backslashzeichen (Âğ%cÂĞ)" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "Alle mit # markierten Formatelemente dĵrfen optional noch" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "eine Formatierungswanweisung dieser Form enthalten:" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[AUSRICHTUNG [VORZEICHEN] [NULL] BREITE [STIL] [ANHANG] FORMAT]" #: src/help.c:94 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "AUSRICHTUNGS-Gruppe (genau ein Element muss definiert werden):" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "Feldinhalt linksbĵndig im Feld der Breite BREITE anordnen" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "Feldinhalt mittig im Feld der Breite BREITE anordnen" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "Feldinhalt rechtsbĵndig im Feld der Breite BREITE anordnen" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "VORZEICHEN (darf definiert werden):" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "Numerischen Wert mit fĵhrendem Vorzeichen versehen" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "NULL (darf definiert werden):" #: src/help.c:104 msgid "Numerical value is filled with leading zero(es)" msgstr "Numerischen Wert mit fĵhrenden Nullen auffĵllen" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "BREITE (muss definiert werden):" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "Feld hat die Breite N (%d...%d)" #: src/help.c:107 msgid "STYLE group (exactly one member may be defined):" msgstr "STIL-Gruppe (genau ein Element darf definiert werden):" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "Feldinhalt in GroŸbuchstaben umwandeln" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "Feldinhalt in Kleinbuchstaben umwandeln" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "Feldinhalt in WortgroŸschreibung umwandeln" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "ANHANG (kann definiert werden):" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "Numerischen Wert mit Ordnungszahlanhang versehen" #: src/help.c:114 msgid "FORMAT group (exactly one member must be defined):" msgstr "FORMAT-Gruppe (genau ein Element muss definiert werden):" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "Feldinhalt wird nicht nach Position BREITE abgeschnitten" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "Feldinhalt wird nach Position BREITE abgeschnitten" #: src/help.c:130 msgid "legal holidays" msgstr "gesetzliche Feiertage" #: src/help.c:131 msgid "holidays" msgstr "Feiertage" #: src/help.c:132 msgid "Mondays" msgstr "Montage" #: src/help.c:133 msgid "Tuesdays" msgstr "Dienstage" #: src/help.c:134 msgid "Wednesdays" msgstr "Mittwoche" #: src/help.c:135 msgid "Thursdays" msgstr "Donnerstage" #: src/help.c:136 msgid "Fridays" msgstr "Freitage" #: src/help.c:137 msgid "Saturdays" msgstr "Samstage" #: src/help.c:138 msgid "Sundays" msgstr "Sonntage" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "Montage...Donnerstage" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "Montage...Freitage" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s: Benutzt Âğ%s %sÂĞ mit einem dieser Argumente" #: src/help.c:243 msgid "OPTION" msgstr "OPTION" #: src/help.c:256 msgid " Display help text and quit program" msgstr " Hilfetext ausgeben und Programm beenden" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr " Erweiterten Hilfetext ausgeben und Programm beenden" #: src/help.c:291 msgid " Display software license and quit program" msgstr " Softwarelizenz ausgeben und Programm beenden" #: src/help.c:302 msgid " Display version information and quit program" msgstr " Versionsinformation ausgeben und Programm beenden" #: src/help.c:313 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr " Setzt Exit-Status des Programms auf %d bei Âğ%sÂĞ etc." #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Antwortdatei fĵr die Âğ%cDATEIÂĞ-Option erzeugen" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " %-3s = Argumente der Befehlszeile in Datei %s schreiben" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr " Shell-Script mit den Argumenten der Befehlszeile erzeugen" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Dateiname des Shell-Scripts" #: src/help.c:360 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" " Globale Datumvariable(n) \"DVAR->a...d|f...s|u...|z\" definieren" #: src/help.c:364 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr " %-3s = \"DVAR%s%s%s\" Definitionen getrennt durch Âğ%sÂĞ Zeichen" #: src/help.c:369 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" " Beispielsweise setzt %sv a%s1127%sb%s054 ÂğaÂĞ auf 27. Nov und ÂğbÂĞ " "auf 4. Mai" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr " Lokale Datumvariablen von Datei zu Datei exportieren" #: src/help.c:393 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr " Globale Textvariable(n) ÂğTVAR->%ca...%czÂĞ definieren" #: src/help.c:398 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr " %-3s = ÂğTVAR%sTEXTÂĞ Definitionen getrennt durch Âğ%sÂĞ Zeichen" #: src/help.c:403 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" " So setzt beispielsweise %sr %ca%sfoo%s%cb%sbar Âğ%caÂĞ auf ÂğfooÂĞ " "und Âğ%cbÂĞ auf ÂğbarÂĞ" #: src/help.c:409 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" " = ÂğTVAR[%s|%c%s]BEFEHLÂĞ Definitionen getrennt durch Âğ%sÂĞ Zeichen" #: src/help.c:414 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" " Durch %sr %ca%sfoo wird die Ausgabe des Befehls ÂğfooÂĞ an Âğ%caÂĞ " "zugewiesen" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr " Lokale Textvariablen von Datei zu Datei exportieren" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr " Nur die Termine ausgeben, deren Datum %s nicht ausschlieŸt" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr "" " %-3s = Eines oder mehrere der folgenden Zeichen. Wenn Zeichen ein" #: src/help.c:448 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr "" " KLEINBUCHSTABE ist, so bedeutet dies einen Nichtausschluss!" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Ausschluss aller %s" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "" " %-3s = Liste von Âğ%c[DATUM][%c[DATUM]]ÂĞ und/oder Âğ%c[DATUM][%c[DATUM]]ÂĞ" # c-format #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr " Ausdrĵcken, die durch Âğ%sÂĞ-Zeichen getrennt sind" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr " Nur die Termine ausgeben, deren Datum %s nicht ausschlieŸt" # c-format #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " %-3s = Jeder beliebige Text oder Âğregul¤re AusdruckÂĞ" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr " Fallunterscheidung ignorieren, wenn Âğ%sÂĞ angegeben wurde" #: src/help.c:520 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Den Sinn des Vergleichs der Âğ%sÂĞ Option umkehren" #: src/help.c:531 msgid " Display some debug information" msgstr " Einige Debug-Informationen ausgeben" #: src/help.c:539 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal Informationen bei Erreichen programminterner Maxima" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" " = handled Wie ÂğinternalÂĞ und zudem gehandhabte Dateinamen" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled Wie ÂğinternalÂĞ und zudem nicht gehandhabte Dateinamen" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Wie ÂğhandledÂĞ und ÂğunhandledÂĞ zusammen" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" " = abort Wie ÂğallÂĞ und Abbruch bei unhandhabbaren Dateinamen" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr " Spezial-Kalenderformat fĵr Kalenderblatt verwenden" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - Standard-Kalenderformat fĵr Kalenderblatt verwenden" #: src/help.c:596 msgid " Use leap year rule of Eastern Orthodox churches" msgstr " Schaltjahrregel der ĥstlichen orthodoxen Kirchen verwenden" #: src/help.c:606 msgid " Provide calendar sheet with week numbers" msgstr " Kalenderblatt mit Wochennummern versehen" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Art der Wochennummern bestimmen (aktuell: %s)" #: src/help.c:618 msgid "Standard" msgstr "Standard" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes ISO-8601:1988 Wochennummern" #: src/help.c:631 msgid " = no Standard week numbers" msgstr " = no Standard-Wochennummern" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr " Ausgabe des Kalenderblattes explizit unterdrĵcken" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr " Ausgabe durch externen Âğ%sÂĞ-Betrachter leiten" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr " Ausgabe durch einfachen internen Betrachter leiten" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr "" " Text, Feiertag bzw. aktuelles Datum ohne Hervorhebung ausgeben" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" " Bel¤sst Hervorhebungssequenzen der Ausgabe bei einer " "Ausgabeumlenkung" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" " Verwendet Hervorhebungssequenz-Paare 1 (=aktueller Tag) und 2 " "(=Feiertag)" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr " %-3s = Durch Âğ%sÂĞ Zeichen getrennte Hervorhebungssequenz-Paare" #: src/help.c:716 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" " Beispiel: %sH \\x2%s\\xAE Benutzt Hex-Wert 2 und AE fĵr " "Sequenz 1" #: src/help.c:721 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" " Beispiel: %sH %s%s*%s* Benutzt Zeichen Âğ*ÂĞ und Âğ*ÂĞ fĵr " "Sequenz 2" #: src/help.c:732 msgid " Modify format of year calendar" msgstr " Format des Jahreskalenders festlegen" #: src/help.c:736 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr " %-3s = 1|2|3|4|6|12 Anzahl der Blĥcke (aktuell: %d)" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr " Fortlaufenden Tag des Jahres im Kalenderblatt verwenden" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b Beide Datumnotationen (Tag des Monats+Jahres) verwenden" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr "" " Fortlaufenden Tag des Jahres in ewiger Feiertagsliste verwenden" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b Beide Datumnotationen (Tag des Monats+Jahres) verwenden" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr " Fortlaufenden Tag des Jahres in Terminliste verwenden" #: src/help.c:795 #, c-format msgid " Set starting day of week (actual: %s)" msgstr " Starttag der Woche festlegen (aktuell: %s)" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr " Versenden der Ausgabe via Âğ%sÂĞ Programm an Benutzer" #: src/help.c:857 msgid "UNKNOWN" msgstr "UNBEKANNT" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr " [%-3s] = E-Mail Adresse, sonst E-Mail-Versand an Benutzer Âğ%sÂĞ" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr " Ewige Feiertagsliste ausgeben (Jahr im Bereich: %d...%d)" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr " n = Gesetzliche Feiertage und Gedenktage" #: src/help.c:883 msgid " N = Legal days only" msgstr " N = Nur gesetzliche Feiertage" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Absteigend sortiert" #: src/help.c:897 msgid " Suppress leading blank line of eternal holiday list" msgstr " Ewige Feiertagsliste ohne anfĵhrende Leerzeile ausgeben" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr " Ewige Feiertagsliste ohne œberschrift ausgeben" #: src/help.c:919 msgid " Provide eternal holiday list with astronomical data" msgstr " Ewige Feiertagsliste mit astronomischen Daten versehen" #: src/help.c:931 msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr " Ewige Feiertagsliste mit BahĦ'i Feiertagen versehen" #: src/help.c:943 msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr " Ewige Feiertagsliste mit BahĦ'i Monaten versehen" #: src/help.c:955 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " Ewige Feiertagsliste mit keltischen Feiertagen versehen" #: src/help.c:967 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" " Ewige Feiertagsliste mit flexiblen chinesischen Feiertagen versehen" #: src/help.c:979 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" " Ewige Feiertagsliste mit flexiblen chinesischen Monaten versehen" #: src/help.c:991 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " Ewige Feiertagsliste mit chinesischen Feiertagen versehen" #: src/help.c:1003 msgid " Provide eternal holiday list with Chinese calendar months" msgstr " Ewige Feiertagsliste mit chinesischen Monaten versehen" #: src/help.c:1015 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr " Ewige Feiertagsliste mit christlichen Feiertagen versehen" #: src/help.c:1027 msgid " Provide eternal holiday list with Coptic calendar months" msgstr " Ewige Feiertagsliste mit koptischen Monaten versehen" #: src/help.c:1039 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " Ewige Feiertagsliste mit ¤thiopischen Monaten versehen" #: src/help.c:1051 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" " Ewige Feiertagsliste mit franz. Revolutionskalendermonaten versehen" #: src/help.c:1063 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " Ewige Feiertagsliste mit hebr¤ischen Feiertagen versehen" #: src/help.c:1075 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " Ewige Feiertagsliste mit hebr¤ischen Monaten versehen" #: src/help.c:1087 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " Ewige Feiertagsliste mit indischen Monaten versehen" #: src/help.c:1099 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr " Ewige Feiertagsliste mit islamischen Feiertagen versehen" #: src/help.c:1111 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr " Ewige Feiertagsliste mit islamischen Monaten versehen" #: src/help.c:1123 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" " Ewige Feiertagsliste mit flexiblen japanischen Feiertagen versehen" #: src/help.c:1135 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" " Ewige Feiertagsliste mit flexiblen japanischen Monaten versehen" #: src/help.c:1147 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " Ewige Feiertagsliste mit japanischen Feiertagen versehen" #: src/help.c:1159 msgid " Provide eternal holiday list with Japanese calendar months" msgstr " Ewige Feiertagsliste mit japanischen Monaten versehen" #: src/help.c:1172 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr " Ewige Feiertagsliste mit multikulturellen Neujahren versehen" #: src/help.c:1184 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr " Ewige Feiertagsliste mit alt-armenischen Monaten versehen" #: src/help.c:1196 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr " Ewige Feiertagsliste mit alt-¤gyptischen Monaten versehen" #: src/help.c:1208 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " Ewige Feiertagsliste mit neu-orthodoxen Feiertagen versehen" #: src/help.c:1220 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr " Ewige Feiertagsliste mit alt-orthodoxen Feiertagen versehen" #: src/help.c:1232 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr " Ewige Feiertagsliste mit persischen Feiertagen versehen" #: src/help.c:1244 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr " Ewige Feiertagsliste mit persischen Monaten versehen" #: src/help.c:1256 msgid " Provide eternal holiday list with zodiacal marker data" msgstr " Ewige Feiertagsliste mit Tierkreiszeichen versehen" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr "" " Ewige Feiertagsliste mit landesspezifischen Feiertagen versehen" #: src/help.c:1272 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr "" " %-3s = Einzelner Landes- oder Territoriumskode bzw. Liste dieser," #: src/help.c:1277 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" " die durch Âğ%sÂĞ-Zeichen verbunden werden. Von allen mit # " "markierten" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr "" " L¤nder/Territorien liegt nur eine unvollst¤ndige Feiertagsliste " "vor" #: src/help.c:1286 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = Feiertage in %s" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" " Referenzwert fĵr Auf-/Untergangszeit bzw. Schattenl¤nge festlegen" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr " %-3s = Winkelwert bzw. Faktor im Bereich: %+.1f...%+.1f" #: src/help.c:1322 msgid " Set base data of Earth's atmosphere" msgstr " Basisdaten der Erdatmosph¤re festlegen" #: src/help.c:1326 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr " %-3s = Luftdruck und Temperatur getrennt durch Âğ%sÂĞ-Zeichen" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " Luftdruck in Millibar (aktuell: %.3f)" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr " Lufttemperatur in Grad Celsius (aktuell: %+.3f)" #: src/help.c:1344 msgid " Limit rise/set times of Sun to the day" msgstr " Auf-/Untergangszeiten der Sonne auf den Tag beschr¤nken" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" " Astronomische Zeiten und Daten mit hĥchster Genauigkeit darstellen" #: src/help.c:1366 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " fĵhrt Âğ%c%c[%s]ÂĞ Shell-Befehle" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " und ÂğTVAR[%s|%c%s]BEFEHLÂĞ Zuweisungen aus" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr " Basiszeit der astronomischen Funktionen ¤ndern" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr " beziehungsweise Zyklus-Startzeit ¤ndern" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Zeitversatzwert (aktuell: " "%s%02d%s%02d == GMT%s)" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Zeitversatzwert (aktuell: %s%02d" "%s%02d == GMT%s)" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr " Zyklus-Endezeit ¤ndern" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Endezeitwert (aktuell: %02d" "%s%02d)" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr " Zyklus-Schrittweite ¤ndern" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr " %-3s = MMMM|HH%s[MM] Schrittweitenwert (aktuell: %02d%s%02d)" #: src/help.c:1453 msgid " Change base year of calendar" msgstr " Basisjahr des Kalenders ¤ndern" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr " %-3s = [%s|%s]JJJJ Jahrversatzwert (aktuell: %d)" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr " Zeitraum der Gregorianischen Reformation setzen" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " Aktuell berĵcksichtigter Zeitraum: %02d-%02d %s %0*d" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr " %-*d%*s = Zeitraum setzen auf: %02d-%02d %s %0*d" #: src/help.c:1485 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr " %-3s = %s%c%s%s%s%s%s%s Setzt Zeitraum explizit" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr " Anordnung der Datumelemente mit dem Formattext %s festlegen" #: src/help.c:1502 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Aktuell: (%s) Âğ%sÂĞ (%s)" #: src/help.c:1504 msgid "self-defined" msgstr "Selbstdefiniert" #: src/help.c:1509 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = Format ist: Âğ%sÂĞ (%s)" #: src/help.c:1517 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" " %-3s = Eigenes Format definieren. Berĵcksichtigte Formatelemente sind:" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr "" " Zu ĵbersetzende landesspezifische Sonderzeichenpaare definieren" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr " %-3s = Definitionen fĵr GROSS- und KLEINBUCHSTABEN" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" " Damit bewirkt ein Âğ%s%s%s%s%s%s%s%sÂĞ %-3s die korrekte Umsetzung " "vorstehender" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" " Sonderzeichen in einem selbstdefinierten Datumformat, welches " "eine" #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" " STIL-Formatanweisungskomponente aufweist, und zwar so, wie sie " "von" #: src/help.c:1582 msgid " they are used by the character set used in Germany" msgstr " dem in Deutschland benutzten Zeichensatz verwendet werden" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ TERMINE +++" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr " Standard-Ressourcendatei Âğ.%s%sÂĞ fĵr Terminliste benutzen" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr " Standard-Ressourcendatei Âğ%s%sÂĞ fĵr Terminliste benutzen" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr " Impliziert Zeitraum: Heute" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr " c = Nur die Daten ausgeben, zu denen Termine vorliegen" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr " C = Auch die Daten ausgeben, zu denen keine Termine vorliegen" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" " [MOD] = Einer oder mehrere der folgenden Modifizierer; hier markiert mit " "#" #: src/help.c:1654 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" " %-3s = Verwendeter Text fĵr Terminlisten-œberschrift" #: src/help.c:1657 #, c-format msgid " Actual: `%s'" msgstr " Aktuell: Âğ%sÂĞ" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" " # g[MOD] = Benutzt Trenntext MOD fĵr tageweise Gruppierung" #: src/help.c:1682 msgid " 1. Representation of text" msgstr " 1. Darstellung des Textes" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr " = Breite der Biorhythmus-Textgrafik festlegen" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr "" " %-3s = %d...%d L¤nge einer einzelnen Achse" #: src/help.c:1711 msgid " = Set height of the Moon phase text graphics" msgstr " = Hĥhe der Mondphasen-Textgrafik festlegen" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Gesamtanzahl der Zeilen" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr " # a = Herkunft des Termins ausgeben" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr " # A = Alternatives Listenformat verwenden" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr "" " # e = Gesetzliche Feiertage und Gedenktage einfĵgen" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr " # E = Nur gesetzliche Feiertage einfĵgen" #: src/help.c:1763 msgid " # k = Display week number" msgstr " # k = Wochennummer ausgeben" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = Datumfeld nur einmal ausgeben" #: src/help.c:1787 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" " # Q = Terminliste ohne anfĵhrende Leerzeile ausgeben" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr " # U = Datumfeld nicht ausgeben" #: src/help.c:1811 msgid " # J = Suppress text part of fixed dates" msgstr " # J = Textfeld nicht ausgeben" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr " # x = Terminliste ohne œberschrift ausgeben" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr " # z = Fortlaufende Postennummer ausgeben" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" " # Z = Nur Daten ausgeben, fĵr die keine Termine " "vorliegen" #: src/help.c:1855 msgid " 2. Respected period" msgstr " 2. Berĵcksichtigter Zeitraum" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" " = Den Âğ29-FEBRUARÂĞ in Nicht-Schaltjahren handhaben" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "" " %-3s = february Am Âğ28-FEBRUARÂĞ berĵcksichtigen" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr "" " %-3s = march Am Âğ01-M„RZÂĞ berĵcksichtigen" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" " # d = Aktuelles Datum in der Datumliste einschlieŸen" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" " # l = Erzeugt eine Liste von Zeitr¤umen, anstelle eines " "einzelnen" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr " # Nd = Einzelner absoluter Tag N" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = Einzelner absoluter Tag N" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = Einzelner Tag N relativ zu heute" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s Vorw¤rts" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr " = %s Rĵckw¤rts" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr " # Nw = Gesamte Woche N" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 Erste Woche / letzte Woche im Vorjahr" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 1. ... 52. Woche (stets)" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53. Woche (manchmal)" #: src/help.c:1953 msgid " N = 99 Last week" msgstr " N = 99 Letzte Woche" #: src/help.c:1956 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # %s%s = Einzelner Tag %s im Monat %s" #: src/help.c:1962 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr " # %s%sN = Einzelner N-ter Wochentag %s im Monat %s" #: src/help.c:1967 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr " N = 1...4 1. ... 4. Wochentag %s (stets)" #: src/help.c:1972 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr " N = 5 5. Wochentag %s (manchmal)" #: src/help.c:1976 #, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Letzter Wochentag %s" #: src/help.c:1980 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN%s = Einzelner N-ter Wochentag %s" #: src/help.c:1985 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" " N = 1...51 1. ... 51. Wochentag %s (stets)" #: src/help.c:1990 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" " N = 52|53 52.|53. Wochentag %s (manchmal)" #: src/help.c:1994 #, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 Letzter Wochentag %s" #: src/help.c:1999 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr " # %cwN%s = Einzelner Wochentag %s der N-ten Woche" #: src/help.c:2004 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" " N = 0 %s der nicht in der 1. Woche ist" #: src/help.c:2009 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" " N = 1...51 %s der 1. ... 51. Woche (stets)" #: src/help.c:2014 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" " N = 52|53 %s der 52.|53. Woche (manchmal)" #: src/help.c:2018 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 %s der letzten Woche" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr " # %c%c[[%s|%s]N] = Einzelner Tag N relativ zu Ostersonntag" #: src/help.c:2030 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" " # %c%c[%s|%s]N%s = Einzelner N-ter Wochentag relativ zu " "Ostersonntag" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr " # %c%c[[%s|%s]N] = Einzelner Tag N relativ zu heute" #: src/help.c:2042 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" " # %c%c[%s|%s]N%s = Einzelner N-ter Wochentag relativ zu heute" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr "" " # %c?[[%s|%s]N] = Einzelner Tag N relativ zur Datumvariablen" #: src/help.c:2054 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" " # %c?[%s|%s]N%s = Einzelner N-ter Wochentag relativ zur " "Datumvariablen" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr " # t|T = Datumliste von morgen" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Datumliste der gesamten Woche" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr " [MOD] = %s Liste von morgen bis Ende der Woche" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s Liste von gestern bis Anfang der Woche" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Datumliste des gesamten Monats" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr " [MOD] = %s Liste von morgen bis Ende des Monats" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s Liste von gestern bis Anfang der Monats" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Datumliste des gesamten Jahres" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr " [MOD] = %s Liste von morgen bis Ende des Jahres" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" " = %s Liste von gestern bis Anfang des Jahres" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr "" " Benutze alternative Datei(en) anstelle Standard-Ressourcendatei" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = Nur die Daten ausgeben, zu denen Termine vorliegen" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr " F = Auch die Daten ausgeben, zu denen keine Termine vorliegen" #: src/help.c:2173 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" " %-3s = Einzelne Datei oder durch Âğ%sÂĞ Zeichen verbundene Liste von " "Dateien" #: src/help.c:2184 msgid " Define additional resource file line" msgstr " Zus¤tzliche Ressourcendateizeile definieren" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Jede mĥgliche Zeile einer Ressourcendatei" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "%cDATUM" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "Vorgegebenes ÂğDATUMÂĞ anstelle des heutigen Datums verwenden" #: src/help.c:2202 #, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" "Datumformat: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr " %s%cwN[%s], Monatsname[%s], Wochentagsname[N] oder %s" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "%cDATEI" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "L¤dt Optionen und Befehle aus ÂğDATEIÂĞ vor" #: src/help.c:2224 msgid "COMMAND" msgstr "BEFEHL" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = Monat im Bereich: %d...%d" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr " oder: Monatsname | %s | %s%s | %s%s | %s%s" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr " Liste: %s[%s%s]%s...%s%s[%s%s]" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr " Bereich: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = Jahr im Bereich: %d...%d" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr " Liste: [%s%s]%s%s...%s[%s%s]%s" #: src/help.c:2257 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr " Bereich: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" #: src/help.c:2283 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr " %sh, %s Diesen Hilfetext ausgeben und Programm beenden" #: src/help.c:2286 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " %shh, %s Erweiterten Hilfetext ausgeben und Programm beenden" #: src/help.c:2290 #, c-format msgid " %sL, %s Display software license and quit program" msgstr " %sL, %s Softwarelizenz ausgeben und Programm beenden" #: src/help.c:2294 #, c-format msgid " %sV, %s Display version information and quit program" msgstr " %sV, %s Versionsinformation ausgeben und Programm beenden" #: src/help.c:2302 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " %sp, %s Ausgabe durch externen Âğ%sÂĞ Betrachter lenken" #: src/help.c:2309 src/help.c:2314 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " %sp, %s Ausgabe durch einfachen internen Betrachter lenken" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "Diese Software erhebt keinen Anspruch auf Vollst¤ndigkeit," #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "Verwendungsf¤higkeit oder Korrektheit. Fĵr JEDWEDE Sch¤den" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "oder Verluste (implizit oder explizit), die aus Nutzung oder" #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "Handhabung dieser Software hervorgehen, wird grunds¤tzlich" #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "" "keine Haftung ĵbernommen. Bei Verwendung dieser Software\n" "erkl¤rt sich der Benutzer mit dieser Vereinbarung in vollem\n" "Umfang einverstanden." #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "Dieses Programm ist freie Software. Sie kĥnnen es gem¤Ÿ den" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "Bestimmungen der ÂğGNU General Public LicenseÂР— herausgegeben" #: src/help.c:2366 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "von der ÂğFree Software Foundation, Inc.ÂĞ in der Version 3 oder" #: src/help.c:2368 msgid "any later version." msgstr "jeder sp¤teren Version — weitervertreiben und/oder ver¤ndern." #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "Sie sollten eine Kopie der ÂğGNU General Public LicenseÂĞ" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "" "zusammen mit diesem Programm erhalten haben; falls nicht,\n" "schreiben Sie bitte an:" #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" "Aufruf: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" #: src/help.c:2452 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Verwenden Sie Âğ%s %s|[%s?]" #: src/help.c:2461 msgid "for more information." msgstr "fĵr weitere Informationen." #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, c-format msgid "Email bug reports to <%s>" msgstr "Fehlerberichte bitte mittels E-Mail an <%s>" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "GNU gcal Webseite: <%s>" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "Allgemeine Hilfe zur Benutzung von GNU-Software: <%s>" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "Dies ist freie Software; in den Quellen befindet sich die Lizenz-" #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "und Kopierbedingung. Es gibt KEINERLEI Garantie, nicht einmal fĵr" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "die TAUGLICHKEIT oder die VERWENDBARKEIT ZU EINEM ANGEGEBENEN ZWECK." #: src/help.c:2617 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%s: Das Gregorianische Kalenderprogramm (GNU cal) %s" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Aufruf: %s [[OPTION...] [%cDATUM] [%cDATEI...]] [BEFEHL]" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Aufruf: %s [[OPTION...] [%cDATEI...]] [BEFEHL]" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr "4.0 oder 4.02" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr "neuer als 5.0" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "++ 3.0 oder neuer" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "5.1 oder ¤lter" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "unbekannter œbersetzer (Compiler)" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr " am " #: src/help.c:2827 msgid "(bad version)" msgstr "(fehlerhafte Version)" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "unbekannter œbersetzer (Compiler) (SDK?)" #: src/help.c:2942 msgid " later than 4.5" msgstr " neuer als 4.5" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "++ 1.0 oder neuer" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr " 1.0 oder 1.5?" #: src/help.c:3075 msgid "unknown " msgstr "unbekannt " #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "Version %d.%d" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "Version %d" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "unbekannte Version" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s fĵr Alpha)" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s fĵr VAX)" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr " (NetBSD vor 0.9)" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 oder neuer" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 oder neuer)" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 oder neuer)" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "KW" #: src/print.c:566 msgid "Week" msgstr "Woche" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "pm" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "am" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "d'\"" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "h'\"" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "Befehl kann nicht ausgefĵhrt werden in Datei Âğ%sÂĞ\n" "Zeile %ld: %s" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" "Befehl ausgefĵhrt (Status=%d) in Datei Âğ%sÂĞ\n" "Zeile %ld: %s" # ab hier weiter #: src/rc-use.c:514 msgid "Emo" msgstr "Emo" #: src/rc-use.c:519 msgid "Int" msgstr "Int" #: src/rc-use.c:524 msgid "Phy" msgstr "Phy" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "ÂğEwige FeiertagslisteÂĞ" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "ÂğInternÂĞ" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr " ; Woche %s" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "Woche %s" #: src/rc-utils.c:398 src/rc-utils.c:415 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%s: ungĵltiges Datum angegeben -- %s\n" "%s\n" "%s\n" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "Schalttag auf Âğ%02d-%sÂĞ gesetzt in Datei Âğ%sÂĞ." #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "Zeile %ld: %s" #: src/rc-utils.c:3634 src/utils.c:275 #, c-format msgid "%s: abort, " msgstr "%s: Abbruch, " #: src/rc-utils.c:3642 #, c-format msgid "illegal variable definition in file `%s'" msgstr "Ungĵltige Variablen-Definitionen in Datei Âğ%sÂĞ" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "Ungĵltige Definition der Variable Âğ%cÂĞ" #: src/rc-utils.c:3651 #, c-format msgid "illegal variable operation in file `%s'" msgstr "Ungĵltige Handhabung einer Variablen in Datei Âğ%sÂĞ" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "Ungĵltige Handhabung der Variablen Âğ%cÂĞ" #: src/rc-utils.c:3659 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "Variable Âğ%cÂĞ undefiniert in Datei Âğ%sÂĞ" #: src/rc-utils.c:3663 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "Ungĵltige Wertzuweisung an Variable Âğ%cÂĞ in Datei Âğ%sÂĞ" #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Ungĵltiges Argumente in der Befehlszeile -- %s" #: src/rc-utils.c:3696 #, c-format msgid "Argument `%s' of command line ignored." msgstr "Argument Âğ%sÂĞ in der Befehlszeile ignoriert" #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "Zeile %ld ignoriert: %s" #: src/tty.c:425 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: fĵr weiter , <%s> zum Beenden..." #: src/tty.c:1020 #, c-format msgid "environment variable `%s' not found" msgstr "Umgebungsvariable Âğ%sÂĞ nicht vorhanden" #: src/tty.c:1027 #, c-format msgid "environment variable `%s' not set" msgstr "Umgebungsvariable Âğ%sÂĞ nicht gesetzt" #: src/tty.c:1067 msgid "`termcap' file not found" msgstr "ÂğtermcapÂĞ-Datei wurde nicht vorgefunden" #: src/tty.c:1072 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "Unbekannter Terminaltyp in Âğ%sÂĞ eingetragen" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: Warnung, %s.\n" "\n" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" "ungĵltiges Jahr fĵr Ostertagsberechnung\n" "Jahr muss sich im Bereich (%d...%d) befinden" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "Âğ%sÂĞ Zeile %ld: virtueller Speicher ist aufgebraucht (%s=%d)" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" "ungĵltiger Datumeintrag in Datei Âğ%sÂĞ\n" "Zeile %ld: %s" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "ungĵltiger Monat(%02d) in Datei Âğ%sÂĞ\n" "Zeile %ld: %s" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "ungĵltiger Tag(%02d) in Datei Âğ%sÂĞ\n" "Zeile %ld: %s" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" "missgebildetes %s in Datei Âğ%sÂĞ\n" "Zeile %ld: %s" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" "ungĵltig rekursives/zyklisches %s in Datei Âğ%sÂĞ\n" "Zeile %ld: %s" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "Datei Âğ%sÂĞ nicht gefunden" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" "ungĵltiges N-ter Wochentagsfeld(%d) in Datei Âğ%sÂĞ\n" "Zeile %ld: %s" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" "fehlendes Leerzeichen nach Datumteil in Datei Âğ%sÂĞ\n" "Zeile %ld: %s" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "Datei Âğ%sÂĞ kann nicht geschrieben werden,\n" "Speichermedium ist vollst¤ndig belegt!" #: src/utils.c:333 #, c-format msgid "sending eMail to <%s> failed" msgstr "Versenden der E-Mail an <%s> fehlgeschlagen" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "Âğ%sÂĞ Zeile %ld: " #: src/utils.c:342 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "Âğ%sÂĞ Zeile %ld: (Âğ%sÂĞ) Âğ%s%dÂĞ fehlgeschlagen" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "Lesefehler in Datei Âğ%sÂĞ" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "ungĵltiges Zeichen in Antwortdatei Âğ%sÂĞ\n" "Zeile %ld: %s" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "Âğ%sÂĞ Zeile %ld: (Âğ%sÂĞ) ungĵltiger Wert fĵr TabellengrĥŸe Âğsizeof %s>%d" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(Âğ%sÂĞ) Datumformat Âğ%sÂĞ ist ungĵltig" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "%s im Suchmuster Âğ%sÂĞ" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "ungĵltiges Suchmuster Âğ%sÂĞ wurde angegeben" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "Âğ%sÂĞ Zeile %ld: (Âğ%sÂĞ) unbehandelter Fehler (%d)" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 msgid "internal" msgstr "intern" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: Programmabbruch durch Signal %d\n" #: src/utils.c:1081 msgid "th" msgstr "." #: src/utils.c:1085 msgid "st" msgstr "." #: src/utils.c:1089 msgid "nd" msgstr "." #: src/utils.c:1093 msgid "rd" msgstr "." #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "ungĵltiger Tag" #: src/utils.c:1129 msgid "Mon" msgstr "Mon" #: src/utils.c:1134 msgid "Tue" msgstr "Die" #: src/utils.c:1139 msgid "Wed" msgstr "Mit" #: src/utils.c:1144 msgid "Thu" msgstr "Don" #: src/utils.c:1149 msgid "Fri" msgstr "Fre" #: src/utils.c:1154 msgid "Sat" msgstr "Sam" #: src/utils.c:1159 msgid "Sun" msgstr "Son" #: src/utils.c:1180 msgid "Mo" msgstr "Mo" #: src/utils.c:1185 msgid "Tu" msgstr "Di" #: src/utils.c:1190 msgid "We" msgstr "Mi" #: src/utils.c:1195 msgid "Th" msgstr "Do" #: src/utils.c:1200 msgid "Fr" msgstr "Fr" #: src/utils.c:1205 msgid "Sa" msgstr "Sa" #: src/utils.c:1210 msgid "Su" msgstr "So" #: src/utils.c:1227 msgid "Monday" msgstr "Montag" #: src/utils.c:1227 msgid "Tuesday" msgstr "Dienstag" #: src/utils.c:1227 msgid "Wednesday" msgstr "Mittwoch" #: src/utils.c:1227 msgid "Thursday" msgstr "Donnerstag" #: src/utils.c:1228 msgid "Friday" msgstr "Freitag" #: src/utils.c:1228 msgid "Saturday" msgstr "Samstag" #: src/utils.c:1228 msgid "Sunday" msgstr "Sonntag" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "ungĵltiger Monat" #: src/utils.c:1249 msgid "Jan" msgstr "Jan" #: src/utils.c:1254 msgid "Feb" msgstr "Feb" #: src/utils.c:1259 msgid "Mar" msgstr "Mrz" #: src/utils.c:1264 msgid "Apr" msgstr "Apr" #: src/utils.c:1269 msgid "May" msgstr "Mai" #: src/utils.c:1274 msgid "Jun" msgstr "Jun" #: src/utils.c:1279 msgid "Jul" msgstr "Jul" #: src/utils.c:1284 msgid "Aug" msgstr "Aug" #: src/utils.c:1289 msgid "Sep" msgstr "Sep" #: src/utils.c:1294 msgid "Oct" msgstr "Okt" #: src/utils.c:1299 msgid "Nov" msgstr "Nov" #: src/utils.c:1304 msgid "Dec" msgstr "Dez" #: src/utils.c:1322 msgid "January" msgstr "Januar" #: src/utils.c:1322 msgid "February" msgstr "Februar" #: src/utils.c:1323 msgid "March" msgstr "M¤rz" #: src/utils.c:1323 msgid "April" msgstr "April" #: src/utils.c:1333 msgid "May " msgstr "Mai" #: src/utils.c:1334 msgid "June" msgstr "Juni" #: src/utils.c:1334 msgid "July" msgstr "Juli" #: src/utils.c:1335 msgid "August" msgstr "August" #: src/utils.c:1335 msgid "September" msgstr "September" #: src/utils.c:1336 msgid "October" msgstr "Oktober" #: src/utils.c:1336 msgid "November" msgstr "November" #: src/utils.c:1336 msgid "December" msgstr "Dezember" #: src/tcal.c:193 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Aufruf: %s [--%s | --%s] | [--%s=[+|-]ZAHL] [ARGUMENT...]\n" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: Abbruch, " #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "Ungĵltiger Versatzwert Âğ%sÂĞ" #: src/tcal.c:909 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: Option Âğ--%sÂĞ benĥtigt ein Argument" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: Fehler bei Programmausfĵhrung von Âğ%sÂĞ\n" #: src/txt2gcal.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "Aufruf: %s [--%s | --%s] | [TEXTDATEI | -] [DATUMTEIL]\n" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "%s: keine regul¤re Datei\n" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "%s: Datei nicht gefunden\n" #: src/gcal2txt.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "Aufruf: %s [--%s | --%s] | [RESSOURCENDATEI | -]\n" gcal-4.1/po/gcal.pot0000664000000000000000000030405713041164031011227 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the GNU gcal package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: GNU gcal 4.1\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "" #: lib/regcomp.c:135 msgid "Success" msgstr "" #: lib/regcomp.c:138 msgid "No match" msgstr "" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:156 msgid "Unmatched [, [^, [:, [., or [=" msgstr "" #: lib/regcomp.c:159 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:162 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:168 msgid "Invalid range end" msgstr "" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "" #: lib/regcomp.c:180 msgid "Regular expression too big" msgstr "" #: lib/regcomp.c:183 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, c-format msgid "%s subprocess" msgstr "" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "" #: src/file-io.c:1686 msgid " `HERE' " msgstr "" #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "" #: src/gcal.c:1075 msgid "U.S.A." msgstr "" #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "" #: src/gcal.c:1852 msgid "default" msgstr "" #: src/gcal.c:1951 msgid ":" msgstr "" #: src/gcal.c:1961 msgid "Y" msgstr "" #: src/gcal.c:1966 msgid "M" msgstr "" #: src/gcal.c:1971 msgid "W" msgstr "" #: src/gcal.c:1976 msgid "D" msgstr "" #: src/gcal.c:2067 msgid "Fixed date list:" msgstr "" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "" #: src/gcal.c:2268 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "" #: src/gcal.c:2864 msgid "response file" msgstr "" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "" #: src/gcal.c:2872 msgid "shell script" msgstr "" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "" #: src/gcal.c:5910 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "" #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "" #: src/gcal.c:5995 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" #: src/hd-data.c:64 msgid "Australia" msgstr "" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "" #: src/hd-data.c:67 msgid "Canada" msgstr "" #: src/hd-data.c:68 msgid "Switzerland" msgstr "" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "" #: src/hd-data.c:75 src/hd-data.c:250 msgid "Italy" msgstr "" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "" #: src/hd-data.c:81 src/hd-data.c:320 msgid "Portugal" msgstr "" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "" #: src/hd-data.c:83 msgid "United States" msgstr "" #: src/hd-data.c:85 msgid "Andorra" msgstr "" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "" #: src/hd-data.c:89 msgid "Anguilla" msgstr "" #: src/hd-data.c:90 msgid "Albania" msgstr "" #: src/hd-data.c:91 msgid "Armenia" msgstr "" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "" #: src/hd-data.c:96 msgid "Angola #" msgstr "" #: src/hd-data.c:97 msgid "Argentina" msgstr "" #: src/hd-data.c:98 msgid "American Samoa" msgstr "" #: src/hd-data.c:99 msgid "Austria" msgstr "" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "" #: src/hd-data.c:108 msgid "Aruba" msgstr "" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "" #: src/hd-data.c:111 msgid "Barbados" msgstr "" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "" #: src/hd-data.c:115 msgid "Bulgaria" msgstr "" #: src/hd-data.c:116 msgid "Bahrain" msgstr "" #: src/hd-data.c:117 msgid "Burundi #" msgstr "" #: src/hd-data.c:118 msgid "Benin #" msgstr "" #: src/hd-data.c:119 msgid "Bermuda" msgstr "" #: src/hd-data.c:120 msgid "Brunei" msgstr "" #: src/hd-data.c:121 msgid "Bolivia" msgstr "" #: src/hd-data.c:123 msgid "Bahamas" msgstr "" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "" #: src/hd-data.c:126 msgid "Botswana" msgstr "" #: src/hd-data.c:127 msgid "Belarus" msgstr "" #: src/hd-data.c:128 msgid "Belize" msgstr "" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "" #: src/hd-data.c:135 msgid "Canada/Northwest Territories" msgstr "" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "" #: src/hd-data.c:149 msgid "Switzerland/Basel-Landschaft" msgstr "" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "" #: src/hd-data.c:173 msgid "Chile" msgstr "" #: src/hd-data.c:174 msgid "Cameroon" msgstr "" #: src/hd-data.c:176 msgid "Colombia" msgstr "" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "" #: src/hd-data.c:178 msgid "Cuba" msgstr "" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "" #: src/hd-data.c:181 msgid "Cyprus" msgstr "" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "" #: src/hd-data.c:184 msgid "Germany/Berlin" msgstr "" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "" #: src/hd-data.c:186 msgid "Germany/Bavaria" msgstr "" #: src/hd-data.c:187 msgid "Germany/Bremen" msgstr "" #: src/hd-data.c:188 msgid "Germany/Hesse" msgstr "" #: src/hd-data.c:189 msgid "Germany/Hamburg" msgstr "" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "" #: src/hd-data.c:195 msgid "Germany/Saarland" msgstr "" #: src/hd-data.c:196 msgid "Germany/Saxony" msgstr "" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "" #: src/hd-data.c:199 msgid "Djibouti" msgstr "" #: src/hd-data.c:200 msgid "Denmark" msgstr "" #: src/hd-data.c:201 msgid "Dominica" msgstr "" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "" #: src/hd-data.c:203 msgid "Algeria" msgstr "" #: src/hd-data.c:204 msgid "Ecuador" msgstr "" #: src/hd-data.c:205 msgid "Estonia" msgstr "" #: src/hd-data.c:206 msgid "Egypt" msgstr "" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "" #: src/hd-data.c:208 msgid "Eritrea" msgstr "" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "" #: src/hd-data.c:211 msgid "Finland" msgstr "" #: src/hd-data.c:212 msgid "Fiji #" msgstr "" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "" #: src/hd-data.c:215 msgid "Faroes" msgstr "" #: src/hd-data.c:217 msgid "Gabon #" msgstr "" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "" #: src/hd-data.c:221 msgid "Grenada" msgstr "" #: src/hd-data.c:222 msgid "Georgia" msgstr "" #: src/hd-data.c:223 msgid "French Guiana" msgstr "" #: src/hd-data.c:224 msgid "Ghana" msgstr "" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "" #: src/hd-data.c:226 msgid "Greenland" msgstr "" #: src/hd-data.c:227 msgid "Gambia" msgstr "" #: src/hd-data.c:228 msgid "Guinea" msgstr "" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "" #: src/hd-data.c:231 msgid "Greece" msgstr "" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "" #: src/hd-data.c:233 msgid "Guatemala" msgstr "" #: src/hd-data.c:234 msgid "Guam" msgstr "" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "" #: src/hd-data.c:236 msgid "Guyana #" msgstr "" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "" #: src/hd-data.c:239 msgid "Honduras" msgstr "" #: src/hd-data.c:240 msgid "Croatia" msgstr "" #: src/hd-data.c:241 msgid "Haiti" msgstr "" #: src/hd-data.c:242 msgid "Hungary" msgstr "" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "" #: src/hd-data.c:244 msgid "Ireland" msgstr "" #: src/hd-data.c:246 msgid "India #" msgstr "" #: src/hd-data.c:247 msgid "Iraq" msgstr "" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "" #: src/hd-data.c:249 msgid "Iceland" msgstr "" #: src/hd-data.c:251 msgid "Jamaica" msgstr "" #: src/hd-data.c:252 msgid "Jordan" msgstr "" #: src/hd-data.c:254 msgid "Kenya #" msgstr "" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "" #: src/hd-data.c:258 msgid "Comoros" msgstr "" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "" #: src/hd-data.c:262 msgid "Kuwait" msgstr "" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "" #: src/hd-data.c:266 msgid "Lebanon" msgstr "" #: src/hd-data.c:267 msgid "St Lucia" msgstr "" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "" #: src/hd-data.c:270 msgid "Liberia" msgstr "" #: src/hd-data.c:271 msgid "Lesotho" msgstr "" #: src/hd-data.c:272 msgid "Lithuania" msgstr "" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "" #: src/hd-data.c:274 msgid "Latvia" msgstr "" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "" #: src/hd-data.c:276 msgid "Morocco" msgstr "" #: src/hd-data.c:277 msgid "Monaco" msgstr "" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "" #: src/hd-data.c:282 msgid "Mali" msgstr "" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "" #: src/hd-data.c:284 msgid "Macau" msgstr "" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "" #: src/hd-data.c:286 msgid "Martinique" msgstr "" #: src/hd-data.c:287 msgid "Mauritania" msgstr "" #: src/hd-data.c:288 msgid "Montserrat" msgstr "" #: src/hd-data.c:289 msgid "Malta" msgstr "" #: src/hd-data.c:290 msgid "Mauritius" msgstr "" #: src/hd-data.c:291 msgid "Maldives" msgstr "" #: src/hd-data.c:292 msgid "Malawi" msgstr "" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "" #: src/hd-data.c:295 msgid "Mozambique" msgstr "" #: src/hd-data.c:296 msgid "Namibia" msgstr "" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "" #: src/hd-data.c:298 msgid "Niger" msgstr "" #: src/hd-data.c:299 msgid "Norfolk Island" msgstr "" #: src/hd-data.c:300 msgid "Nigeria" msgstr "" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "" #: src/hd-data.c:304 msgid "Norway" msgstr "" #: src/hd-data.c:305 msgid "Nepal #" msgstr "" #: src/hd-data.c:306 msgid "Nauru" msgstr "" #: src/hd-data.c:307 msgid "Niue" msgstr "" #: src/hd-data.c:309 msgid "Oman" msgstr "" #: src/hd-data.c:310 msgid "Panama" msgstr "" #: src/hd-data.c:311 msgid "Peru" msgstr "" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "" #: src/hd-data.c:314 msgid "Philippines" msgstr "" #: src/hd-data.c:315 msgid "Pakistan" msgstr "" #: src/hd-data.c:316 msgid "Poland" msgstr "" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "" #: src/hd-data.c:321 msgid "Palau" msgstr "" #: src/hd-data.c:322 msgid "Paraguay" msgstr "" #: src/hd-data.c:323 msgid "Qatar" msgstr "" #: src/hd-data.c:324 msgid "Rİunion" msgstr "" #: src/hd-data.c:325 msgid "Romania" msgstr "" #: src/hd-data.c:327 msgid "Rwanda" msgstr "" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "" #: src/hd-data.c:330 msgid "Seychellen" msgstr "" #: src/hd-data.c:331 msgid "Sudan" msgstr "" #: src/hd-data.c:332 msgid "Sweden" msgstr "" #: src/hd-data.c:333 msgid "Singapore #" msgstr "" #: src/hd-data.c:334 msgid "St Helena" msgstr "" #: src/hd-data.c:335 msgid "Slovenia" msgstr "" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "" #: src/hd-data.c:337 msgid "Slovakia" msgstr "" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "" #: src/hd-data.c:339 msgid "San Marino" msgstr "" #: src/hd-data.c:340 msgid "Senegal" msgstr "" #: src/hd-data.c:341 msgid "Somalia" msgstr "" #: src/hd-data.c:342 msgid "Suriname #" msgstr "" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "" #: src/hd-data.c:344 msgid "El Salvador" msgstr "" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "" #: src/hd-data.c:346 msgid "Swaziland" msgstr "" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "" #: src/hd-data.c:348 msgid "Chad" msgstr "" #: src/hd-data.c:349 msgid "Togo #" msgstr "" #: src/hd-data.c:350 msgid "Thailand #" msgstr "" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "" #: src/hd-data.c:352 msgid "Tokelau" msgstr "" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "" #: src/hd-data.c:354 msgid "Tunisia" msgstr "" #: src/hd-data.c:355 msgid "Tonga" msgstr "" #: src/hd-data.c:356 msgid "Turkey" msgstr "" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "" #: src/hd-data.c:359 msgid "Taiwan" msgstr "" #: src/hd-data.c:360 msgid "Tanzania" msgstr "" #: src/hd-data.c:361 msgid "Ukraine" msgstr "" #: src/hd-data.c:362 msgid "Uganda" msgstr "" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "" #: src/hd-data.c:367 msgid "United States/California" msgstr "" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "" #: src/hd-data.c:397 msgid "United States/New York" msgstr "" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "" #: src/hd-data.c:414 msgid "Uruguay" msgstr "" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "" #: src/hd-data.c:417 msgid "Venezuela" msgstr "" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "" #: src/hd-data.c:423 msgid "Samoa" msgstr "" #: src/hd-data.c:424 msgid "Yemen" msgstr "" #: src/hd-data.c:425 msgid "Mayotte" msgstr "" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "" #: src/hd-data.c:427 msgid "South Africa" msgstr "" #: src/hd-data.c:428 msgid "Zambia" msgstr "" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "" #: src/hd-data.c:459 msgid "1st Advent" msgstr "" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "" #: src/hd-data.c:465 msgid "4th Advent" msgstr "" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "" #: src/hd-data.c:503 msgid "Basque National Day" msgstr "" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "" #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "" #: src/hd-data.c:514 msgid "Burns Night" msgstr "" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "" #: src/hd-data.c:516 msgid "Carnival" msgstr "" #: src/hd-data.c:517 msgid "Beltane" msgstr "" #: src/hd-data.c:518 msgid "Imbolg" msgstr "" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "" #: src/hd-data.c:521 msgid "Children's Day" msgstr "" #: src/hd-data.c:522 msgid "Cycle" msgstr "" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "" #: src/hd-data.c:538 msgid "Culture Day" msgstr "" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:547 msgid "Double-9 Day" msgstr "" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "" #: src/hd-data.c:554 msgid "Annular" msgstr "" #: src/hd-data.c:555 msgid "Partial" msgstr "" #: src/hd-data.c:556 msgid "Penumbral" msgstr "" #: src/hd-data.c:557 msgid "Total" msgstr "" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "" #: src/hd-data.c:559 msgid "Election Day" msgstr "" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "" #: src/hd-data.c:561 msgid "Equinox Day" msgstr "" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "" #: src/hd-data.c:563 msgid "Father's Day" msgstr "" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "" #: src/hd-data.c:565 msgid "Feast of Fortune" msgstr "" #: src/hd-data.c:566 msgid "Feast of Heart Jesus" msgstr "" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:569 msgid "Flag Day" msgstr "" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "" #: src/hd-data.c:573 msgid "French Revolutionary" msgstr "" #: src/hd-data.c:574 msgid "Friendship Day" msgstr "" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "" #: src/hd-data.c:576 msgid "Good Friday" msgstr "" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "" #: src/hd-data.c:579 msgid "Greenery Day" msgstr "" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "" #: src/hd-data.c:583 msgid "Guy Fawkes Day" msgstr "" #: src/hd-data.c:584 msgid "Halloween" msgstr "" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:604 msgid "Huravee Day" msgstr "" #: src/hd-data.c:605 msgid "Independence Day" msgstr "" #: src/hd-data.c:606 msgid "Independence Movement Day" msgstr "" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "" #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "" #: src/hd-data.c:610 msgid "Ashura'" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:614 msgid "Ghadir" msgstr "" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:618 msgid "Quds Day" msgstr "" #: src/hd-data.c:619 msgid "Ramadan" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:628 msgid "Labour Day" msgstr "" #: src/hd-data.c:629 msgid "Labour Thanksgiving Day" msgstr "" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "" #: src/hd-data.c:632 msgid "Marine Day" msgstr "" #: src/hd-data.c:633 msgid "Martinimas" msgstr "" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:639 msgid "Mary's Expectation" msgstr "" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "" #: src/hd-data.c:641 msgid "Mary's Maternity" msgstr "" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:645 msgid "Mary's Visitation" msgstr "" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "" #: src/hd-data.c:648 msgid "May Day" msgstr "" #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:654 msgid "Full Moon" msgstr "" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:656 msgid "New Moon" msgstr "" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "" #: src/hd-data.c:661 msgid "National Holiday" msgstr "" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "" #: src/hd-data.c:670 msgid "Parent's Day" msgstr "" #: src/hd-data.c:671 msgid "Passion Sunday" msgstr "" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "" #: src/hd-data.c:679 msgid "Presidents' Inform" msgstr "" #: src/hd-data.c:680 msgid "President Lincoln's Birthday" msgstr "" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:685 msgid "Republic Day" msgstr "" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "" #: src/hd-data.c:689 msgid "Rogation Sunday" msgstr "" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:693 msgid "Septuagesima Sunday" msgstr "" #: src/hd-data.c:694 msgid "Seven Sleepers Day" msgstr "" #: src/hd-data.c:695 msgid "Sexagesima Sunday" msgstr "" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "" #: src/hd-data.c:697 msgid "Solstice Day" msgstr "" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "" #: src/hd-data.c:700 msgid "Start of common month" msgstr "" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "" #: src/hd-data.c:702 msgid "Star Festival" msgstr "" #: src/hd-data.c:703 msgid "St Andrew's Day" msgstr "" #: src/hd-data.c:704 msgid "St Bartholomew Day" msgstr "" #: src/hd-data.c:705 msgid "St Berchtold's Day" msgstr "" #: src/hd-data.c:706 msgid "St David's Day" msgstr "" #: src/hd-data.c:707 msgid "St Edward's Day" msgstr "" #: src/hd-data.c:708 msgid "St George's Day" msgstr "" #: src/hd-data.c:709 msgid "St James' Day" msgstr "" #: src/hd-data.c:710 msgid "St Joseph's Day" msgstr "" #: src/hd-data.c:711 msgid "St Laurentius Day" msgstr "" #: src/hd-data.c:712 msgid "St Nicholas' Day" msgstr "" #: src/hd-data.c:713 msgid "St Nicholas' Eve" msgstr "" #: src/hd-data.c:714 msgid "St Patrick's Day" msgstr "" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:716 msgid "St Stephen's Day" msgstr "" #: src/hd-data.c:717 msgid "St Valentine's Day" msgstr "" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "" #: src/hd-data.c:720 msgid "Sweetest Day" msgstr "" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "" #: src/hd-data.c:723 msgid "Thai New Year's Day" msgstr "" #: src/hd-data.c:724 msgid "Thanksgiving Day" msgstr "" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "" #: src/hd-data.c:728 msgid "Tiradentes Day" msgstr "" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:730 msgid "Transfiguration Day" msgstr "" #: src/hd-data.c:731 msgid "Tynwald Day" msgstr "" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "" #: src/hd-data.c:736 msgid "Victory Day" msgstr "" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "" #: src/hd-data.c:738 msgid "Women's Day" msgstr "" #: src/hd-data.c:739 msgid "Women's Shrove Day" msgstr "" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "" #: src/hd-data.c:741 msgid "Youth Day" msgstr "" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:748 msgid "Admission Day" msgstr "" #: src/hd-data.c:749 msgid "Alaska Day" msgstr "" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:752 msgid "All Saints' Eve" msgstr "" #: src/hd-data.c:753 msgid "Americas Day" msgstr "" #: src/hd-data.c:754 msgid "Angam Day" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:759 msgid "Antillian Day" msgstr "" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:764 msgid "Arengo Anniversary" msgstr "" #: src/hd-data.c:765 msgid "Army Coup Day" msgstr "" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:767 msgid "Artigas' Birthday" msgstr "" #: src/hd-data.c:768 msgid "Asuncion Day" msgstr "" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:771 msgid "Ba'ath Revolution Day" msgstr "" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:773 msgid "Bataan Day" msgstr "" #: src/hd-data.c:774 msgid "Battle of Angamos" msgstr "" #: src/hd-data.c:775 msgid "Battle of BoyacĦ" msgstr "" #: src/hd-data.c:776 msgid "Battle of Carabobo" msgstr "" #: src/hd-data.c:777 msgid "Battle of Iquique" msgstr "" #: src/hd-data.c:778 msgid "Battle of Las Piedras" msgstr "" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "" #: src/hd-data.c:786 msgid "Bonaire Day" msgstr "" #: src/hd-data.c:787 msgid "Boqueron Battle Day" msgstr "" #: src/hd-data.c:788 msgid "Botswana Day" msgstr "" #: src/hd-data.c:789 msgid "Bounty Day" msgstr "" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "" #: src/hd-data.c:792 msgid "Canberra Day" msgstr "" #: src/hd-data.c:793 msgid "Caricom Day" msgstr "" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:795 msgid "Cassinga Day" msgstr "" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:798 msgid "Charter Day" msgstr "" #: src/hd-data.c:799 msgid "Chiang Kai-shek's Birthday" msgstr "" #: src/hd-data.c:800 msgid "Children's White Sunday" msgstr "" #: src/hd-data.c:801 msgid "Colon Day" msgstr "" #: src/hd-data.c:802 msgid "Colorado Day" msgstr "" #: src/hd-data.c:803 msgid "Commonwealth Day" msgstr "" #: src/hd-data.c:804 msgid "Compact Day" msgstr "" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "" #: src/hd-data.c:807 msgid "Cup Match Day" msgstr "" #: src/hd-data.c:808 msgid "Custom Chief's Day" msgstr "" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:814 msgid "Death of H. Christophe" msgstr "" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:821 msgid "Defenders Day" msgstr "" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:824 msgid "Discovery Day" msgstr "" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:827 msgid "Dr. Sun Yat-sen's Birthday" msgstr "" #: src/hd-data.c:828 msgid "Duarte's Birthday" msgstr "" #: src/hd-data.c:829 msgid "Easter Tuesday" msgstr "" #: src/hd-data.c:830 msgid "Economic Liberation Day" msgstr "" #: src/hd-data.c:831 msgid "Eight Hours Day" msgstr "" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:834 msgid "Evacuation Day" msgstr "" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:838 msgid "Family Day" msgstr "" #: src/hd-data.c:839 msgid "FAO Day" msgstr "" #: src/hd-data.c:840 msgid "Farmers' Day" msgstr "" #: src/hd-data.c:841 msgid "Father Leval Day" msgstr "" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "" #: src/hd-data.c:843 msgid "Fisherman's Day" msgstr "" #: src/hd-data.c:844 msgid "Foundation of NPLA Day" msgstr "" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:849 msgid "Gospel Day" msgstr "" #: src/hd-data.c:850 msgid "Guacanaste Day" msgstr "" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "" #: src/hd-data.c:852 msgid "Heritage Day" msgstr "" #: src/hd-data.c:853 msgid "Heroes Day" msgstr "" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:855 msgid "Holy Wednesday" msgstr "" #: src/hd-data.c:856 msgid "Ho Chi Minh's Birthday" msgstr "" #: src/hd-data.c:857 msgid "Human Rights Day" msgstr "" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:859 msgid "Hurricane Thanksgiving Day" msgstr "" #: src/hd-data.c:860 msgid "Independence of Cartagena" msgstr "" #: src/hd-data.c:861 msgid "Independence of Cuenca" msgstr "" #: src/hd-data.c:862 msgid "Independence of Guayaquil" msgstr "" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:865 msgid "Internal Autonomy Day" msgstr "" #: src/hd-data.c:866 msgid "Jefferson Davis' Birthday" msgstr "" #: src/hd-data.c:867 msgid "June Holiday" msgstr "" #: src/hd-data.c:868 msgid "J. Barbosa's Birthday" msgstr "" #: src/hd-data.c:869 msgid "J. Chilembwe Day" msgstr "" #: src/hd-data.c:870 msgid "J. Diego's Birthday" msgstr "" #: src/hd-data.c:871 msgid "J. Robert's Birthday" msgstr "" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:873 msgid "Kartini Day" msgstr "" #: src/hd-data.c:874 msgid "Catherine Show Day" msgstr "" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "" #: src/hd-data.c:876 msgid "Kim Il-Sung's Birthday" msgstr "" #: src/hd-data.c:877 msgid "Kim Jong-Il's Birthday" msgstr "" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:885 msgid "Liberty Day" msgstr "" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:888 msgid "Lyndon B. Johnson Day" msgstr "" #: src/hd-data.c:889 msgid "L. Rivera's Birthday" msgstr "" #: src/hd-data.c:890 msgid "Madaraka Day" msgstr "" #: src/hd-data.c:891 msgid "Mahatma Gandhi's Birthday" msgstr "" #: src/hd-data.c:892 msgid "Malvinas Day" msgstr "" #: src/hd-data.c:893 msgid "Manila Day" msgstr "" #: src/hd-data.c:894 msgid "Maputo City Day" msgstr "" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:896 msgid "Maryland Day" msgstr "" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:898 msgid "Merchant Day" msgstr "" #: src/hd-data.c:899 msgid "St John's/Midsummers Eve" msgstr "" #: src/hd-data.c:900 msgid "Missionary Day" msgstr "" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "" #: src/hd-data.c:902 msgid "Morazan Day" msgstr "" #: src/hd-data.c:903 msgid "Mosheshoe's Day" msgstr "" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:905 msgid "Naming Day" msgstr "" #: src/hd-data.c:906 msgid "National Bun Day" msgstr "" #: src/hd-data.c:907 msgid "National Heroes Day" msgstr "" #: src/hd-data.c:908 msgid "National Redemption Day" msgstr "" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:910 msgid "National Revival Day" msgstr "" #: src/hd-data.c:911 msgid "National Unity Day" msgstr "" #: src/hd-data.c:912 msgid "Ndadaye Day" msgstr "" #: src/hd-data.c:913 msgid "Neutrality Day" msgstr "" #: src/hd-data.c:914 msgid "Nevada Day" msgstr "" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "" #: src/hd-data.c:917 msgid "Noi Day" msgstr "" #: src/hd-data.c:918 msgid "OAU Day" msgstr "" #: src/hd-data.c:919 msgid "October Holiday" msgstr "" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:927 msgid "Panama City Day" msgstr "" #: src/hd-data.c:928 msgid "Panamerica Day" msgstr "" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:930 msgid "Patriot's Day" msgstr "" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "" #: src/hd-data.c:932 msgid "People Power Day" msgstr "" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:934 msgid "Pichincha Day" msgstr "" #: src/hd-data.c:935 msgid "Picnic Day" msgstr "" #: src/hd-data.c:936 msgid "Pioneer Day" msgstr "" #: src/hd-data.c:937 msgid "Poya Day" msgstr "" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:939 msgid "Prince of Wales' Birthday" msgstr "" #: src/hd-data.c:940 msgid "Proclamation Day" msgstr "" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:943 msgid "Recreation Day" msgstr "" #: src/hd-data.c:944 msgid "Referendum Day" msgstr "" #: src/hd-data.c:945 msgid "Regatta Day" msgstr "" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:947 msgid "Restoration Day" msgstr "" #: src/hd-data.c:948 msgid "Return Day" msgstr "" #: src/hd-data.c:949 msgid "Reunification Day" msgstr "" #: src/hd-data.c:950 msgid "Rizal Day" msgstr "" #: src/hd-data.c:951 msgid "Rwagasore Day" msgstr "" #: src/hd-data.c:952 msgid "Saba Day" msgstr "" #: src/hd-data.c:953 msgid "San Jacinto Day" msgstr "" #: src/hd-data.c:954 msgid "San Josİ Day" msgstr "" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:956 msgid "School Holiday" msgstr "" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "" #: src/hd-data.c:958 msgid "Separation Day" msgstr "" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:960 msgid "Settlers Day" msgstr "" #: src/hd-data.c:961 msgid "Seward's Day" msgstr "" #: src/hd-data.c:962 msgid "Shaheed Day" msgstr "" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:964 msgid "Sheikh Zayed's Ascension Day" msgstr "" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:970 msgid "Somers Day" msgstr "" #: src/hd-data.c:971 msgid "Statia-American Day" msgstr "" #: src/hd-data.c:972 msgid "Student's Day" msgstr "" #: src/hd-data.c:973 msgid "St Agata Day" msgstr "" #: src/hd-data.c:974 msgid "St Canute's Day" msgstr "" #: src/hd-data.c:975 msgid "St Cedilia's Day" msgstr "" #: src/hd-data.c:976 msgid "St Charles' Day" msgstr "" #: src/hd-data.c:977 msgid "St Demetrius' Day" msgstr "" #: src/hd-data.c:978 msgid "St Dİvote Day" msgstr "" #: src/hd-data.c:979 msgid "St Eliah's Day" msgstr "" #: src/hd-data.c:980 msgid "St Jean Baptiste Day" msgstr "" #: src/hd-data.c:981 msgid "St Lucia's Day" msgstr "" #: src/hd-data.c:982 msgid "St Marguerite's Day" msgstr "" #: src/hd-data.c:983 msgid "St Maroon's Day" msgstr "" #: src/hd-data.c:984 msgid "St Michael's Day" msgstr "" #: src/hd-data.c:985 msgid "St Olav's Day" msgstr "" #: src/hd-data.c:986 msgid "St Olav's Eve" msgstr "" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:989 msgid "St Ursula's Day" msgstr "" #: src/hd-data.c:990 msgid "St Vincent de Paul's Day" msgstr "" #: src/hd-data.c:991 msgid "Suez Victory Day" msgstr "" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:994 msgid "Sweden Day" msgstr "" #: src/hd-data.c:995 msgid "S. Doe's Birthday" msgstr "" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:997 msgid "Territory Day" msgstr "" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "" #: src/hd-data.c:1000 msgid "The Crown Prince's Birthday" msgstr "" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1004 msgid "Town Meeting Day" msgstr "" #: src/hd-data.c:1005 msgid "Traditional Day" msgstr "" #: src/hd-data.c:1006 msgid "Transfer Day" msgstr "" #: src/hd-data.c:1007 msgid "Truman Day" msgstr "" #: src/hd-data.c:1008 msgid "Union Day" msgstr "" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "" #: src/hd-data.c:1011 msgid "Unity Factory Day" msgstr "" #: src/hd-data.c:1012 msgid "Victor-Schoelcher Day" msgstr "" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1014 msgid "West Virginia Day" msgstr "" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "" #: src/hd-data.c:1016 msgid "W. Tubman's Birthday" msgstr "" #: src/hd-data.c:1017 msgid "Yap Day" msgstr "" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "" #: src/hd-data.c:1287 msgid "Ast" msgstr "" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "" #: src/hd-data.c:1550 msgid "Cel" msgstr "" #: src/hd-data.c:1692 src/hd-data.c:2225 msgid "Chi" msgstr "" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2227 src/hd-data.c:3730 msgid "Jap" msgstr "" #: src/hd-data.c:2423 msgid "Chr" msgstr "" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "" #: src/hd-data.c:2778 src/hd-data.c:2960 msgid "Heb" msgstr "" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "" #: src/hd-data.c:4447 msgid "OxN" msgstr "" #: src/hd-data.c:4449 msgid "OxO" msgstr "" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "" #: src/hd-data.c:4847 msgid "Zod" msgstr "" #: src/hd-use.c:929 msgid " day" msgstr "" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr "" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr "" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "" #: src/help.c:75 msgid "# Day number (must be defined)" msgstr "" #: src/help.c:76 msgid "# Year number (must be defined)" msgstr "" #: src/help.c:77 msgid "# Weekday name (may be defined)" msgstr "" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "" #: src/help.c:79 msgid "# Month number" msgstr "" #: src/help.c:80 msgid "# Month name" msgstr "" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "" #: src/help.c:86 msgid "Character replacement:" msgstr "" #: src/help.c:87 #, c-format msgid "Space/blank ('%c') character" msgstr "" #: src/help.c:88 #, c-format msgid "Underscore ('%c') character" msgstr "" #: src/help.c:89 #, c-format msgid "Percent ('%c') character" msgstr "" #: src/help.c:90 #, c-format msgid "Backslash ('%c') character" msgstr "" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:94 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:104 msgid "Numerical value is filled with leading zero(es)" msgstr "" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:107 msgid "STYLE group (exactly one member may be defined):" msgstr "" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:114 msgid "FORMAT group (exactly one member must be defined):" msgstr "" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:130 msgid "legal holidays" msgstr "" #: src/help.c:131 msgid "holidays" msgstr "" #: src/help.c:132 msgid "Mondays" msgstr "" #: src/help.c:133 msgid "Tuesdays" msgstr "" #: src/help.c:134 msgid "Wednesdays" msgstr "" #: src/help.c:135 msgid "Thursdays" msgstr "" #: src/help.c:136 msgid "Fridays" msgstr "" #: src/help.c:137 msgid "Saturdays" msgstr "" #: src/help.c:138 msgid "Sundays" msgstr "" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "" #: src/help.c:243 msgid "OPTION" msgstr "" #: src/help.c:256 msgid " Display help text and quit program" msgstr "" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr "" #: src/help.c:291 msgid " Display software license and quit program" msgstr "" #: src/help.c:302 msgid " Display version information and quit program" msgstr "" #: src/help.c:313 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "" #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr "" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr "" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr "" #: src/help.c:360 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" #: src/help.c:364 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" #: src/help.c:369 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr "" #: src/help.c:393 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "" #: src/help.c:398 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" #: src/help.c:403 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" #: src/help.c:409 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" #: src/help.c:414 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr "" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr "" #: src/help.c:448 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr "" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr "" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "" #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr "" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr "" #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:520 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr "" #: src/help.c:531 msgid " Display some debug information" msgstr "" #: src/help.c:539 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr "" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr "" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr "" #: src/help.c:596 msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" #: src/help.c:606 msgid " Provide calendar sheet with week numbers" msgstr "" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr "" #: src/help.c:618 msgid "Standard" msgstr "" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:631 msgid " = no Standard week numbers" msgstr "" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr "" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr "" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr "" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr "" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "" #: src/help.c:716 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" #: src/help.c:721 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" #: src/help.c:732 msgid " Modify format of year calendar" msgstr "" #: src/help.c:736 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr "" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr "" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr "" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr "" #: src/help.c:795 #, c-format msgid " Set starting day of week (actual: %s)" msgstr "" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr "" #: src/help.c:857 msgid "UNKNOWN" msgstr "" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr "" #: src/help.c:883 msgid " N = Legal days only" msgstr "" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr "" #: src/help.c:897 msgid " Suppress leading blank line of eternal holiday list" msgstr "" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr "" #: src/help.c:919 msgid " Provide eternal holiday list with astronomical data" msgstr "" #: src/help.c:931 msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr "" #: src/help.c:943 msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr "" #: src/help.c:955 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "" #: src/help.c:967 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" #: src/help.c:979 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" #: src/help.c:991 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "" #: src/help.c:1003 msgid " Provide eternal holiday list with Chinese calendar months" msgstr "" #: src/help.c:1015 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" #: src/help.c:1027 msgid " Provide eternal holiday list with Coptic calendar months" msgstr "" #: src/help.c:1039 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "" #: src/help.c:1051 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" #: src/help.c:1063 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "" #: src/help.c:1075 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "" #: src/help.c:1087 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "" #: src/help.c:1099 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "" #: src/help.c:1111 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "" #: src/help.c:1123 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" #: src/help.c:1135 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" #: src/help.c:1147 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "" #: src/help.c:1159 msgid " Provide eternal holiday list with Japanese calendar months" msgstr "" #: src/help.c:1172 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" #: src/help.c:1184 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "" #: src/help.c:1196 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "" #: src/help.c:1208 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "" #: src/help.c:1220 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" #: src/help.c:1232 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" #: src/help.c:1244 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" #: src/help.c:1256 msgid " Provide eternal holiday list with zodiacal marker data" msgstr "" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr "" #: src/help.c:1272 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr "" #: src/help.c:1277 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1286 #, c-format msgid " %-*s = Holidays in %s" msgstr "" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1322 msgid " Set base data of Earth's atmosphere" msgstr "" #: src/help.c:1326 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1344 msgid " Limit rise/set times of Sun to the day" msgstr "" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1366 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr "" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1453 msgid " Change base year of calendar" msgstr "" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr "" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1485 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr "" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" #: src/help.c:1502 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr "" #: src/help.c:1504 msgid "self-defined" msgstr "" #: src/help.c:1509 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr "" #: src/help.c:1517 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1582 msgid " they are used by the character set used in Germany" msgstr "" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr "" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" #: src/help.c:1654 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" #: src/help.c:1657 #, c-format msgid " Actual: `%s'" msgstr "" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" #: src/help.c:1682 msgid " 1. Representation of text" msgstr "" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr "" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr "" #: src/help.c:1711 msgid " = Set height of the Moon phase text graphics" msgstr "" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr "" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr "" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr "" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr "" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr "" #: src/help.c:1763 msgid " # k = Display week number" msgstr "" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr "" #: src/help.c:1787 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr "" #: src/help.c:1811 msgid " # J = Suppress text part of fixed dates" msgstr "" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr "" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr "" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" #: src/help.c:1855 msgid " 2. Respected period" msgstr "" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr "" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr "" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr "" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr "" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr "" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr "" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr "" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr "" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr "" #: src/help.c:1953 msgid " N = 99 Last week" msgstr "" #: src/help.c:1956 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr "" #: src/help.c:1962 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr "" #: src/help.c:1967 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" #: src/help.c:1972 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" #: src/help.c:1976 #, c-format msgid " N = 9 Last weekday %s" msgstr "" #: src/help.c:1980 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr "" #: src/help.c:1985 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" #: src/help.c:1990 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" #: src/help.c:1994 #, c-format msgid " N = 99 Last weekday %s" msgstr "" #: src/help.c:1999 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr "" #: src/help.c:2004 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" #: src/help.c:2009 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" #: src/help.c:2014 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" #: src/help.c:2018 #, c-format msgid " N = 99 %s of last week" msgstr "" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "" #: src/help.c:2030 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "" #: src/help.c:2042 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr "" #: src/help.c:2054 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr "" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr "" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr "" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr "" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr "" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:2173 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" #: src/help.c:2184 msgid " Define additional resource file line" msgstr "" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr "" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "" #: src/help.c:2202 #, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "" #: src/help.c:2224 msgid "COMMAND" msgstr "" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr "" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr "" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr "" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr "" #: src/help.c:2257 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr "" #: src/help.c:2283 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr "" #: src/help.c:2286 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr "" #: src/help.c:2290 #, c-format msgid " %sL, %s Display software license and quit program" msgstr "" #: src/help.c:2294 #, c-format msgid " %sV, %s Display version information and quit program" msgstr "" #: src/help.c:2302 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "" #: src/help.c:2309 src/help.c:2314 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr "" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "" #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "" #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "" #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "" #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" #: src/help.c:2366 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" #: src/help.c:2368 msgid "any later version." msgstr "" #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "" #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" #: src/help.c:2452 #, c-format msgid "Use `%s %s|[%s?]" msgstr "" #: src/help.c:2461 msgid "for more information." msgstr "" #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, c-format msgid "Email bug reports to <%s>" msgstr "" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "" #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" #: src/help.c:2617 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr "" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr "" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr "" #: src/help.c:2827 msgid "(bad version)" msgstr "" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "" #: src/help.c:2942 msgid " later than 4.5" msgstr "" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr "" #: src/help.c:3075 msgid "unknown " msgstr "" #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr "" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr "" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr "" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr "" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr "" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr "" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "" #: src/print.c:566 msgid "Week" msgstr "" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/rc-use.c:514 msgid "Emo" msgstr "" #: src/rc-use.c:519 msgid "Int" msgstr "" #: src/rc-use.c:524 msgid "Phy" msgstr "" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr "" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "" #: src/rc-utils.c:398 src/rc-utils.c:415 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "" #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "" #: src/rc-utils.c:3634 src/utils.c:275 #, c-format msgid "%s: abort, " msgstr "" #: src/rc-utils.c:3642 #, c-format msgid "illegal variable definition in file `%s'" msgstr "" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3651 #, c-format msgid "illegal variable operation in file `%s'" msgstr "" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3659 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "" #: src/rc-utils.c:3663 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "" #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "" #: src/rc-utils.c:3696 #, c-format msgid "Argument `%s' of command line ignored." msgstr "" #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "" #: src/tty.c:425 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "" #: src/tty.c:1020 #, c-format msgid "environment variable `%s' not found" msgstr "" #: src/tty.c:1027 #, c-format msgid "environment variable `%s' not set" msgstr "" #: src/tty.c:1067 msgid "`termcap' file not found" msgstr "" #: src/tty.c:1072 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" #: src/utils.c:333 #, c-format msgid "sending eMail to <%s> failed" msgstr "" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" #: src/utils.c:342 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 msgid "internal" msgstr "" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" #: src/utils.c:1081 msgid "th" msgstr "" #: src/utils.c:1085 msgid "st" msgstr "" #: src/utils.c:1089 msgid "nd" msgstr "" #: src/utils.c:1093 msgid "rd" msgstr "" #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "" #: src/utils.c:1129 msgid "Mon" msgstr "" #: src/utils.c:1134 msgid "Tue" msgstr "" #: src/utils.c:1139 msgid "Wed" msgstr "" #: src/utils.c:1144 msgid "Thu" msgstr "" #: src/utils.c:1149 msgid "Fri" msgstr "" #: src/utils.c:1154 msgid "Sat" msgstr "" #: src/utils.c:1159 msgid "Sun" msgstr "" #: src/utils.c:1180 msgid "Mo" msgstr "" #: src/utils.c:1185 msgid "Tu" msgstr "" #: src/utils.c:1190 msgid "We" msgstr "" #: src/utils.c:1195 msgid "Th" msgstr "" #: src/utils.c:1200 msgid "Fr" msgstr "" #: src/utils.c:1205 msgid "Sa" msgstr "" #: src/utils.c:1210 msgid "Su" msgstr "" #: src/utils.c:1227 msgid "Monday" msgstr "" #: src/utils.c:1227 msgid "Tuesday" msgstr "" #: src/utils.c:1227 msgid "Wednesday" msgstr "" #: src/utils.c:1227 msgid "Thursday" msgstr "" #: src/utils.c:1228 msgid "Friday" msgstr "" #: src/utils.c:1228 msgid "Saturday" msgstr "" #: src/utils.c:1228 msgid "Sunday" msgstr "" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "" #: src/utils.c:1249 msgid "Jan" msgstr "" #: src/utils.c:1254 msgid "Feb" msgstr "" #: src/utils.c:1259 msgid "Mar" msgstr "" #: src/utils.c:1264 msgid "Apr" msgstr "" #: src/utils.c:1269 msgid "May" msgstr "" #: src/utils.c:1274 msgid "Jun" msgstr "" #: src/utils.c:1279 msgid "Jul" msgstr "" #: src/utils.c:1284 msgid "Aug" msgstr "" #: src/utils.c:1289 msgid "Sep" msgstr "" #: src/utils.c:1294 msgid "Oct" msgstr "" #: src/utils.c:1299 msgid "Nov" msgstr "" #: src/utils.c:1304 msgid "Dec" msgstr "" #: src/utils.c:1322 msgid "January" msgstr "" #: src/utils.c:1322 msgid "February" msgstr "" #: src/utils.c:1323 msgid "March" msgstr "" #: src/utils.c:1323 msgid "April" msgstr "" #: src/utils.c:1333 msgid "May " msgstr "" #: src/utils.c:1334 msgid "June" msgstr "" #: src/utils.c:1334 msgid "July" msgstr "" #: src/utils.c:1335 msgid "August" msgstr "" #: src/utils.c:1335 msgid "September" msgstr "" #: src/utils.c:1336 msgid "October" msgstr "" #: src/utils.c:1336 msgid "November" msgstr "" #: src/utils.c:1336 msgid "December" msgstr "" #: src/tcal.c:193 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "" #: src/tcal.c:909 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "" #: src/txt2gcal.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "" #: src/gcal2txt.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "" gcal-4.1/po/tr.po0000664000000000000000000042537613041164032010573 00000000000000# Gcal Turkish Translation. # Copyright (C) 2002 Thomas Esken (msgids) # This file is distributed under the same license as the gcal package. # # A. Burak Ilgicioglu , 2002. # Volkan Gezer , 2013. msgid "" msgstr "" "Project-Id-Version: gcal 3.6.3\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 2013-11-07 22:24+0100\n" "Last-Translator: Volkan Gezer \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Lokalize 1.5\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "" #: lib/regcomp.c:135 #, fuzzy msgid "Success" msgstr "baĊŸarÄħlÄħ" #: lib/regcomp.c:138 msgid "No match" msgstr "" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:156 msgid "Unmatched [, [^, [:, [., or [=" msgstr "" #: lib/regcomp.c:159 #, fuzzy msgid "Unmatched ( or \\(" msgstr "tutmayan ()" #: lib/regcomp.c:162 #, fuzzy msgid "Unmatched \\{" msgstr "tutmayan ()" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:168 #, fuzzy msgid "Invalid range end" msgstr "ge§ersiz [] aralÄħk" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "" #: lib/regcomp.c:180 #, fuzzy msgid "Regular expression too big" msgstr "§ok bĵyĵk regexp" #: lib/regcomp.c:183 #, fuzzy msgid "Unmatched ) or \\)" msgstr "tutmayan ()" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, fuzzy, c-format msgid "%s subprocess" msgstr "baĊŸarÄħlÄħ" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "%s `%s'... %s%s%s yazmayÄħ deneyin" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "baĊŸarÄħsÄħz" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "baĊŸarÄħlÄħ" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "%skaynak dosya `%s'... %s%s%s 'yi a§mayÄħ deneyin" #: src/file-io.c:1686 msgid " `HERE' " msgstr "'BURASI'" #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "(seviye: %02d) include dosyasÄħ `%s'... %s%s%s 'yi a§mayÄħ deneyin" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "ARG" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "Almanya" #: src/gcal.c:1075 msgid "U.S.A." msgstr "A.B.D." #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "Bĵyĵk Britanya" #: src/gcal.c:1852 msgid "default" msgstr "ĥntanÄħmlÄħ" #: src/gcal.c:1951 msgid ":" msgstr ":" #: src/gcal.c:1961 msgid "Y" msgstr "Y" #: src/gcal.c:1966 msgid "M" msgstr "A" #: src/gcal.c:1971 msgid "W" msgstr "H" #: src/gcal.c:1976 msgid "D" msgstr "G" #: src/gcal.c:2067 msgid "Fixed date list:" msgstr "Sabit tarih listesi:" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "§evresel değiĊŸken" #: src/gcal.c:2268 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%s: §evresel değiĊŸkendeki komut `%s' bulundu -- %s\n" "%s\n" "%s\n" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "Dahili" #: src/gcal.c:2864 msgid "response file" msgstr "cevap dosyasÄħ" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "OluĊŸturuldu" #: src/gcal.c:2872 msgid "shell script" msgstr "kabuk betiği" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "\\`%s' 'den posta (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "%s: uyarÄħ, mesaj bĥlĵmĵ boĊŸ elektronik posta <%s>'ye gĥnderilmedi.\n" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "komut satÄħrÄħ" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: `%s' se§eneği belirsiz" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: bilinmeyen se§enek `%s'" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: ge§ersiz se§enek -- %s" #: src/gcal.c:5910 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s: `--%s' se§eneği bir argĵmana izin vermiyor" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s: `%s' se§eneği bir argĵmana izin vermiyor" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: `%s' se§eneği bir argĵman gerektirir" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: se§eneği bir argĵman gerektirir -- %s" #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: ge§ersiz argĵmanlÄħ se§enek -- %s" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: belirsiz argĵmanlÄħ se§enek --%s" #: src/gcal.c:5995 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" "%s: ge§ersiz tarih verildi -- %c%s\n" "%s\n" "%s\n" #: src/hd-data.c:64 msgid "Australia" msgstr "Avustralya" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "Bel§ika" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "Brezilya" #: src/hd-data.c:67 msgid "Canada" msgstr "Kanada" #: src/hd-data.c:68 msgid "Switzerland" msgstr "İsvi§re" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "‡in" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "İspanya" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "Fransa" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "İsrail" #: src/hd-data.c:75 src/hd-data.c:250 msgid "Italy" msgstr "İtalya" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "Japonya" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "Kore Cumhuriyeti" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "Meksika" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "Hollanda" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "Yeni Zelanda" #: src/hd-data.c:81 src/hd-data.c:320 msgid "Portugal" msgstr "Portekiz" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "Rusya Federasyonu" #: src/hd-data.c:83 msgid "United States" msgstr "BirleĊŸik Devletler" #: src/hd-data.c:85 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "BirleĊŸik Arap Emirlikleri" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "Afganistan" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "Antigua ve Barbuda" #: src/hd-data.c:89 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:90 msgid "Albania" msgstr "Arnavutluk" #: src/hd-data.c:91 msgid "Armenia" msgstr "Ermenistan" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "Hollanda Antilleri/Bonaire" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "Hollanda Antilleri/Cura§ao" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "Hollanda Antilleri/St Maarten" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "Hollanda Antilleri/Saba ve Statia" #: src/hd-data.c:96 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:97 msgid "Argentina" msgstr "Arjantin" #: src/hd-data.c:98 msgid "American Samoa" msgstr "Amerikan SamoasÄħ" #: src/hd-data.c:99 msgid "Austria" msgstr "Avusturya" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "Avustralya/Canberra" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "Avustralya/Kuzey Bĥlgesi" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "Avustralya/Queensland" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "Avustralya/Gĵney Avustralya" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "Avustralya/Yeni Gĵney Galler" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "Avustralya/Tazmanya" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "Avustralya/Victoria" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "Avustralya/BatÄħ Avustralya" #: src/hd-data.c:108 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "Azerbaycan" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "Bosna-Hersek" #: src/hd-data.c:111 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "BangladeĊŸ #" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:115 msgid "Bulgaria" msgstr "Bulgaristan" #: src/hd-data.c:116 msgid "Bahrain" msgstr "Bahreyn" #: src/hd-data.c:117 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:118 msgid "Benin #" msgstr "Benin #" #: src/hd-data.c:119 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:120 msgid "Brunei" msgstr "Brunei" #: src/hd-data.c:121 msgid "Bolivia" msgstr "Bolivya" #: src/hd-data.c:123 msgid "Bahamas" msgstr "Bahamalar" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "Bouvet AdasÄħ" #: src/hd-data.c:126 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:127 msgid "Belarus" msgstr "Belarus" #: src/hd-data.c:128 msgid "Belize" msgstr "Belize" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "Kanada/Alberta" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "Kanada/Britanya KolumbiyasÄħ" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "Kanada/Manitoba" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "Kanada/Yeni Brunswick" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "Kanada/Newfoundland ve Labrador" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "Kanada/Nova Scotia" #: src/hd-data.c:135 #, fuzzy msgid "Canada/Northwest Territories" msgstr "Kanada/Nordwest Territories" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "Kanada/Ontario" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "Kanada/Prens Edward AdasÄħ" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "Kanada/Quİbec" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "Kanada/Saskatchewan" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "Kanada/Yukon" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "Cocos AdalarÄħ(Keeling)" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "Demokratik Kongo Cumhuriyeti #" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "Orta Afrika Cumhuriyeti #" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "Kongo Cumhuriyeti #" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "İsvi§re/Aargau" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "İsv§re/Appenzell Innerrhoden" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "İsvi§re/Appenzell Ausserrhoden" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "İsvi§re/Bern" #: src/hd-data.c:149 #, fuzzy msgid "Switzerland/Basel-Landschaft" msgstr "İsvi§re/Basel-Land" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "İsvi§re/Basel-Stadt" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "İsvi§re/Fribourg" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "İsvi§re/Cenevre" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "İsvi§re/Glarus" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "İsvi§re/Graubĵnden" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "İsvi§re/Jura" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "İsvi§re/Luzern" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "İsvi§re/Neuch˘tel" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "İsvi§re/Nidwalden" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "İsvi§re/Obwalden" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "İsvi§re/St Gallen" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "İsvi§re/Schaffhausen" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "İsvi§re/Solothurn" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "İsvi§re/Schwyz" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "İsvi§re/Thurgau" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "İsvi§re/Ticino" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "İsvi§re/Uri" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "İsvi§re/Vaud" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "İsvi§re/Valais" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "İsvi§re/Zug" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "İsvi§re/Zĵrih" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "FildiĊŸi Sahili" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "Cook AdalarÄħ" #: src/hd-data.c:173 msgid "Chile" msgstr "Ċžili" #: src/hd-data.c:174 msgid "Cameroon" msgstr "Kamerun" #: src/hd-data.c:176 msgid "Colombia" msgstr "Kolombiya" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "Kosta Rika" #: src/hd-data.c:178 msgid "Cuba" msgstr "Kĵba" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "Cape Verde" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "Christmas AdalarÄħ" #: src/hd-data.c:181 msgid "Cyprus" msgstr "KÄħbrÄħs" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "‡ek Cumhuriyeti" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "Almanya/Brandenburg" #: src/hd-data.c:184 msgid "Germany/Berlin" msgstr "Almanya/Berlin" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "Almanya/Baden-Wĵrttemberg" #: src/hd-data.c:186 msgid "Germany/Bavaria" msgstr "Almanya/Bavyera" #: src/hd-data.c:187 msgid "Germany/Bremen" msgstr "Almanya/Bremen" #: src/hd-data.c:188 msgid "Germany/Hesse" msgstr "Almanya/Hesse" #: src/hd-data.c:189 msgid "Germany/Hamburg" msgstr "Almanya/Hamburg" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Almanya/Mecklenburg-West Pomerania" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "Almanya/AĊŸağÄħ Saksonya" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "Almanya/Kuzey Rhine-Westphalia" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "Almanya/Rhineland Palatinate" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "Almanya/Schleswig-Holstein" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saarland" msgstr "Almanya/Saar" #: src/hd-data.c:196 msgid "Germany/Saxony" msgstr "Almanya/Saksonya" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "Almanya/Saxony-Anhalt" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "Almanya/Thuringia" #: src/hd-data.c:199 msgid "Djibouti" msgstr "Cibuti" #: src/hd-data.c:200 msgid "Denmark" msgstr "Danimarka" #: src/hd-data.c:201 msgid "Dominica" msgstr "Dominik" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "Dominik Cumhuriyeti" #: src/hd-data.c:203 msgid "Algeria" msgstr "Cezayir" #: src/hd-data.c:204 msgid "Ecuador" msgstr "Ekvator" #: src/hd-data.c:205 msgid "Estonia" msgstr "Estonya" #: src/hd-data.c:206 msgid "Egypt" msgstr "MÄħsÄħr" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "BatÄħ Sahra" #: src/hd-data.c:208 msgid "Eritrea" msgstr "Eritre" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "Etiyopya" #: src/hd-data.c:211 msgid "Finland" msgstr "Finlandiya" #: src/hd-data.c:212 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "Falkland AdalarÄħ (Malvinas)" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "Micronesia Federal Devletleri" #: src/hd-data.c:215 msgid "Faroes" msgstr "Faroeler" #: src/hd-data.c:217 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "Bĵyĵk Britanya/İngiltere ve Galler" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "Bĵyĵk Britanya/Kuzey İrlanda" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "Bĵyĵk Britanya/İsko§ya" #: src/hd-data.c:221 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:222 msgid "Georgia" msgstr "Gĵrcistan" #: src/hd-data.c:223 msgid "French Guiana" msgstr "FransÄħz GuyanasÄħ" #: src/hd-data.c:224 msgid "Ghana" msgstr "Gana" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:226 msgid "Greenland" msgstr "Grĥnland" #: src/hd-data.c:227 msgid "Gambia" msgstr "Gambiya" #: src/hd-data.c:228 msgid "Guinea" msgstr "Gine" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "Guadeloupe" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "Ektavoryal Gine" #: src/hd-data.c:231 msgid "Greece" msgstr "Yunanistan" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "Gĵney Georgia ve Gĵney Sandwich AdalarÄħ" #: src/hd-data.c:233 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:234 msgid "Guam" msgstr "Guam" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "Gine-Bissau #" #: src/hd-data.c:236 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "Heard ve Mc Donald AdalarÄħ" #: src/hd-data.c:239 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:240 msgid "Croatia" msgstr "HÄħrvatistan" #: src/hd-data.c:241 msgid "Haiti" msgstr "Haiti" #: src/hd-data.c:242 msgid "Hungary" msgstr "Macaristan" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "Endonezya" #: src/hd-data.c:244 msgid "Ireland" msgstr "İrlanda" #: src/hd-data.c:246 msgid "India #" msgstr "Hindistan #" #: src/hd-data.c:247 msgid "Iraq" msgstr "Irak" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "İran İslam Cumhuriyeti" #: src/hd-data.c:249 msgid "Iceland" msgstr "İzlanda" #: src/hd-data.c:251 msgid "Jamaica" msgstr "Jamaika" #: src/hd-data.c:252 msgid "Jordan" msgstr "œrdĵn" #: src/hd-data.c:254 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "KÄħrgÄħzistan" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "Kambo§ya #" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:258 msgid "Comoros" msgstr "Comoros" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "St Kitts ve Nevis" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "Kore Demokratik Halk Cumhuriyeti" #: src/hd-data.c:262 msgid "Kuwait" msgstr "Kuveyt" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "Cayman AdalarÄħ" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "Kazakistan" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "Laos Demokratik Halk Cumhuriyeti #" #: src/hd-data.c:266 msgid "Lebanon" msgstr "Lĵbnan" #: src/hd-data.c:267 msgid "St Lucia" msgstr "St Lucia" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:270 msgid "Liberia" msgstr "Liberya" #: src/hd-data.c:271 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:272 msgid "Lithuania" msgstr "Litvanya" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "Luksemburg" #: src/hd-data.c:274 msgid "Latvia" msgstr "Latvia" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Libya Arap Cumhuriyeti" #: src/hd-data.c:276 msgid "Morocco" msgstr "Fas" #: src/hd-data.c:277 msgid "Monaco" msgstr "Monako" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "Moldova Cumhuriyeti" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "Madagaskar #" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "Marshall AdalarÄħ" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "Makedonya Eski Yugoslavya Cumhuriyeti" #: src/hd-data.c:282 msgid "Mali" msgstr "Mali" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "Moğolistan #" #: src/hd-data.c:284 msgid "Macau" msgstr "Macau" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "Kuzey Marian AdalarÄħ (Saipan)" #: src/hd-data.c:286 msgid "Martinique" msgstr "Martinique" #: src/hd-data.c:287 msgid "Mauritania" msgstr "Moritanya" #: src/hd-data.c:288 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:289 msgid "Malta" msgstr "Malta" #: src/hd-data.c:290 msgid "Mauritius" msgstr "Mauritius" #: src/hd-data.c:291 msgid "Maldives" msgstr "Maldivler" #: src/hd-data.c:292 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "Malezya #" #: src/hd-data.c:295 msgid "Mozambique" msgstr "Mozambik" #: src/hd-data.c:296 msgid "Namibia" msgstr "Namibya" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "Yeni Kaledonya" #: src/hd-data.c:298 msgid "Niger" msgstr "Nijer" #: src/hd-data.c:299 #, fuzzy msgid "Norfolk Island" msgstr "Norfolk AdalarÄħ" #: src/hd-data.c:300 msgid "Nigeria" msgstr "Nijerya" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "Nikaragua" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "Myanmar (Burma) #" #: src/hd-data.c:304 msgid "Norway" msgstr "Norve§" #: src/hd-data.c:305 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:306 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:307 msgid "Niue" msgstr "Niue" #: src/hd-data.c:309 msgid "Oman" msgstr "Umman" #: src/hd-data.c:310 msgid "Panama" msgstr "Panama" #: src/hd-data.c:311 msgid "Peru" msgstr "Peru" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "FransÄħz PolonezyasÄħ" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "Papua Yeni Gine" #: src/hd-data.c:314 msgid "Philippines" msgstr "Filipinler" #: src/hd-data.c:315 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:316 msgid "Poland" msgstr "Polonya" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre and Miquelon" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "Pitcairn" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "Porto Riko" #: src/hd-data.c:321 msgid "Palau" msgstr "Palau" #: src/hd-data.c:322 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:323 msgid "Qatar" msgstr "Katar" #: src/hd-data.c:324 msgid "Rİunion" msgstr "Rİunion" #: src/hd-data.c:325 msgid "Romania" msgstr "Romanya" #: src/hd-data.c:327 msgid "Rwanda" msgstr "Ruanda" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "Suudi Arabistan" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "Solomon AdalarÄħ" #: src/hd-data.c:330 msgid "Seychellen" msgstr "Seycheller" #: src/hd-data.c:331 msgid "Sudan" msgstr "Sudan" #: src/hd-data.c:332 msgid "Sweden" msgstr "İsve§" #: src/hd-data.c:333 msgid "Singapore #" msgstr "Singapur #" #: src/hd-data.c:334 msgid "St Helena" msgstr "St Helena" #: src/hd-data.c:335 msgid "Slovenia" msgstr "Slovenya" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard ve Jan Mayen AdalarÄħ" #: src/hd-data.c:337 msgid "Slovakia" msgstr "Slovakya" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:339 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:340 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:341 msgid "Somalia" msgstr "Somali" #: src/hd-data.c:342 msgid "Suriname #" msgstr "Surinam" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "Sao Tomİ ve Principe" #: src/hd-data.c:344 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "Suriye Arap Cumhuriyeti (Suriye)" #: src/hd-data.c:346 msgid "Swaziland" msgstr "Swaziland" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "Turk ve Caicos AdalarÄħ" #: src/hd-data.c:348 msgid "Chad" msgstr "‡ad" #: src/hd-data.c:349 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:350 msgid "Thailand #" msgstr "Tayland #" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "Tacikistan" #: src/hd-data.c:352 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "Tĵrkmenistan" #: src/hd-data.c:354 msgid "Tunisia" msgstr "Tunus" #: src/hd-data.c:355 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:356 msgid "Turkey" msgstr "Tĵrkiye" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "Trinidad ve Tobago #" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:359 msgid "Taiwan" msgstr "Tayvan" #: src/hd-data.c:360 msgid "Tanzania" msgstr "Tanzanya" #: src/hd-data.c:361 msgid "Ukraine" msgstr "Ukrayna" #: src/hd-data.c:362 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "BirleĊŸik Devletler/Alaska" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "BirleĊŸik Devletler/Alabama" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "BirleĊŸik Devletler/Arkansas" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "BirleĊŸik Devletler/Arizona" #: src/hd-data.c:367 msgid "United States/California" msgstr "BirleĊŸik Devletler/Kaliforniya" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "BirleĊŸik Devletler/Colorado" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "BirleĊŸik Devletler/Connecticut" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "BirleĊŸik Devletler/District of Columbia" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "BirleĊŸik Devletler/Delaware" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "BirleĊŸik Devletler/Florida" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "BirleĊŸik Devletler/Georgia" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "BirleĊŸik Devletler/Hawaii" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "BirleĊŸik Devletler/Iowa" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "BirleĊŸik Devletler/Idaho" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "BirleĊŸik Devletler/Illinois" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "BirleĊŸik Devletler/Indiana" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "BirleĊŸik Devletler/Kansas" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "BirleĊŸik Devletler/Kentucky" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "BirleĊŸik Devletler/Louisiana" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "BirleĊŸik Devletler/Massachusetts" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "BirleĊŸik Devletler/Maryland" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "BirleĊŸik Devletler/Maine" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "BirleĊŸik Devletler/Michigan" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "BirleĊŸik Devletler/Minnesota" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "BirleĊŸik Devletler/Missouri" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "BirleĊŸik Devletler/Mississippi" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "BirleĊŸik Devletler/Montana" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "BirleĊŸik Devletler/Kuzey Carolina" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "BirleĊŸik Devletler/Kuzey Dakota" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "BirleĊŸik Devletler/Nebraska" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "BirleĊŸik Devletler/New Hampshire" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "BirleĊŸik Devletler/New Jersey" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "BirleĊŸik Devletler/New Mexico" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "BirleĊŸik Devletler/Nevada" #: src/hd-data.c:397 msgid "United States/New York" msgstr "BirleĊŸik Devletler/New York" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "BirleĊŸik Devletler/Ohio" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "BirleĊŸik Devletler/Oklahoma" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "BirleĊŸik Devletler/Oregon" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "BirleĊŸik Devletler/Pennsylvania" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "BirleĊŸik Devletler/Rhode AdasÄħ" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "BirleĊŸik Devletler/Gĵney Carolina" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "BirleĊŸik Devletler/Gĵney Dakota" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "BirleĊŸik Devletler/Tennessee" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "BirleĊŸik Devletler/Texas" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "BirleĊŸik Devletler/Utah" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "BirleĊŸik Devletler/Virginia" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "BirleĊŸik Devletler/Vermont" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "BirleĊŸik Devletler/Washington" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "BirleĊŸik Devletler/Wisconsin" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "BirleĊŸik Devletler/BatÄħ Virginia" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "BirleĊŸik Devletler/Wyoming" #: src/hd-data.c:414 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "–zbekistan" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "St Vincent ve Grenadines" #: src/hd-data.c:417 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "Britanya Virgin AdalarÄħ" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "U.S. Virgin AdalarÄħ" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "Wallis ve Futuna AdalarÄħ" #: src/hd-data.c:423 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:424 msgid "Yemen" msgstr "Yemen" #: src/hd-data.c:425 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "SÄħrbistan ve Karadağ" #: src/hd-data.c:427 msgid "South Africa" msgstr "Gĵney Afrika" #: src/hd-data.c:428 msgid "Zambia" msgstr "Zambia" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:459 msgid "1st Advent" msgstr "Birinci GeliĊŸ" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "Paskalya'daki İlk Pazar Gĵnĵ" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "İkinci GeliĊŸ" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "Paskalya'daki İkinci Pazar Gĵnĵ" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "œ§ĵncĵ GeliĊŸ" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "Paskalya'daki œ§ĵncĵ Pazar Gĵnĵ" #: src/hd-data.c:465 msgid "4th Advent" msgstr "Dĥrdĵncĵ GeliĊŸ" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "Paskalya'daki Dĥrdĵncĵ Pazar Gĵnĵ" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "7-5-3 Festivali" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "Aborigines Gĵnĵ" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "Aptallar Gĵnĵ" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "Azizler Gĵnĵ" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "Ruhlar Gĵnĵ" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "Alfabe Gĵnĵ" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "Auckland YÄħldĥnĵmĵ" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "Kuzey Cantenbury YÄħldĥnĵmĵ" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "Gĵney Cantenbury yÄħldĥnĵmĵ" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "Catham AdalarÄħ YÄħldĥnĵmĵ" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "Hawkes Sahili YÄħldĥnĵmĵ" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "Marlborough YÄħldĥnĵmĵ" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "Nelson YÄħldĥnĵmĵ" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "Otago YÄħldĥnĵmĵ" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "Southland YÄħldĥnĵmĵ" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "Taranaki YÄħldĥnĵmĵ" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "Wellington YÄħldĥnĵmĵ" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "Westland YÄħldĥnĵmĵ" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "Anzac Gĵnĵ" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "Arbor Gĵnĵ" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "SilahlÄħ Kuvvetler Gĵnĵ" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "Armistice Gĵnĵ" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "Ash Pazartesisi" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "Ash ‡arĊŸambasÄħ" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "Ascension of Abdu'l-Baha" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "Baha'u'llah'Äħn MiracÄħ" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "Baha'u'llah'Äħn Doğum Gĵnĵ" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "Bab'Äħn Doğum Gĵnĵ" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "AnlaĊŸma Gĵnĵ" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "Bab'Äħn A§ÄħklanmasÄħ" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "RÄħdvan'Äħn İlk Gĵnĵ" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "Bab'Äħn Ċžehit OluĊŸu" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "BahĦ'i'nin Yeni YÄħl Gĵnĵ" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "RÄħdvan'Äħn 9. Gĵnĵ" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "RÄħdvan'Äħn 12. Gĵnĵ" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "Banka Tatili" #: src/hd-data.c:503 msgid "Basque National Day" msgstr "Bask Ulusal Gĵnĵ" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "Boyne SavaĊŸÄħ" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "Puebla SavaĊŸÄħ" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "Mali yÄħl BaĊŸlangÄħcÄħ" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "Benito JuĦrez Gĵnĵ" #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "Bodhidharma'Äħn Doğum Gĵnĵ" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "Patronlar Gĵnĵ" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "Boks Gĵnĵ" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "Bringing Home the Herds Day" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "Bringing in the Harvest Day" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "Budhaa'nÄħn Doğum Gĵnĵ" #: src/hd-data.c:514 msgid "Burns Night" msgstr "Burns Gecesi" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "Camoes Gĵnĵ" #: src/hd-data.c:516 msgid "Carnival" msgstr "Karnaval" #: src/hd-data.c:517 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:518 msgid "Imbolg" msgstr "Imbolg" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/Celtic Yeni YÄħl Gĵnĵ" #: src/hd-data.c:521 msgid "Children's Day" msgstr "‡ocuklar Gĵnĵ" #: src/hd-data.c:522 msgid "Cycle" msgstr "Daire" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "‡in Yeni YÄħl Gĵnĵ" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "‡in YÄħlbaĊŸÄħsÄħ" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "YÄħlbaĊŸÄħ" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "Noel" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "Christ'in ĊžÄħkÄħĊŸ Gĵnĵ" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "Krizantem Gĵnĵ" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "YurttaĊŸlÄħk Gĵnĵ" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "Kentliler Gĵnĵ" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "Columbus Gĵnĵ" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "Coming of Age Day" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "Confucius'un Doğum Gĵnĵ" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "KuruluĊŸ YÄħldĥnĵmĵ (ABD)" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "Coptic New Year's Day" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "Kozmonotlar Gĵnĵ" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "Cross Raising Day" #: src/hd-data.c:538 msgid "Culture Day" msgstr "Kĵltĵr Gĵnĵ" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "Day after Mid-Autumn Festival" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "Day after Tomb-Sweeping Day" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "Day of Andalucia" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "Katalonya Gĵnĵ" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "Gali§ya Gĵnĵ" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "Dua ve PiĊŸmanlÄħk Gĵnĵ" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "UzlaĊŸma Gĵnĵ" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "Anavatan SavunmacÄħlarÄħ Gĵnĵ" #: src/hd-data.c:547 msgid "Double-9 Day" msgstr "‡ift-9 Gĵnĵ" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "Dragon Gemisi Festivali" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "HanedanlÄħk Gĵnĵ" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "Paskalya Pazartesisi" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "Paskalya PazarÄħ" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "Ay TutulmasÄħ" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "GĵneĊŸ TutulmasÄħ" #: src/hd-data.c:554 msgid "Annular" msgstr "Annular" #: src/hd-data.c:555 msgid "Partial" msgstr "Partial" #: src/hd-data.c:556 msgid "Penumbral" msgstr "Penumbral" #: src/hd-data.c:557 msgid "Total" msgstr "Total" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "Eindhoven'Äħn KurtuluĊŸu" #: src/hd-data.c:559 msgid "Election Day" msgstr "Se§im Gĵnĵ" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "İmparatorun Doğum Gĵnĵ" #: src/hd-data.c:561 msgid "Equinox Day" msgstr "Ekinoks Gĵnĵ" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "Etyopya Yeni YÄħl Gĵnĵ" #: src/hd-data.c:563 msgid "Father's Day" msgstr "Babalar Gĵnĵ" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "Corpus Christi Ċžĥleni" #: src/hd-data.c:565 msgid "Feast of Fortune" msgstr "Zenginlik Ċžĥleni" #: src/hd-data.c:566 msgid "Feast of Heart Jesus" msgstr "Heart Jesus Ċžĥleni" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "Fener Festivali" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "Sadeh Festivali" #: src/hd-data.c:569 msgid "Flag Day" msgstr "Bayrak Gĵnĵ" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "Flemish Kĵltĵr Gĵnĵ" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "Komĵnist Partinin KuruluĊŸu" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "FransÄħz Kĵltĵr Gĵnĵ" #: src/hd-data.c:573 msgid "French Revolutionary" msgstr "FransÄħz Devrimi" #: src/hd-data.c:574 msgid "Friendship Day" msgstr "ArkadaĊŸlÄħk Gĵnĵ" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "Alman Birlik Gĵnĵ" #: src/hd-data.c:576 msgid "Good Friday" msgstr "İyi Cuma" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "İyi Cumartesi/Paskalya Yortusu" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "Dede-Nine Gĵnĵ" #: src/hd-data.c:579 msgid "Greenery Day" msgstr "YeĊŸil Yaprak Gĵnĵ" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "Mağara Gĵnĵ" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "Groundhog Gĵnĵ" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "Guadalupe Bakiresi Gĵnĵ" #: src/hd-data.c:583 #, fuzzy msgid "Guy Fawkes Day" msgstr "Guy Fawke's Day" #: src/hd-data.c:584 msgid "Halloween" msgstr "CadÄħlar BayramÄħ" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "SağlÄħk ve Spor BayramÄħ" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "Hannukah/IĊŸÄħk Festivali" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "Lag B'Omer" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "Pesach/Passover" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "Purim/Feast of Lots" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "Rosh Hashana/Yeni YÄħl Gĵnĵ" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "Shavuot/Giving of the Torah" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "Shushan Purim" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "Simchat Torah" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "Sukkot/Feast of Tabernacles" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "Tisha B'Av/Fasting Day" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tu B'Shevat/Ağa§ Yeni YÄħlÄħ" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Yom Hashoah/SoykÄħrÄħm AnÄħtÄħ" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Yom Hazikaron/Askerler AnÄħtÄħ" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "Yom Ha Azmaut/BağÄħmsÄħzlÄħk Gĵnĵ" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "Yom Kippur/Atonement Day" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Yom Yerushalayim/Kudĵs Gĵnĵ" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "Kutsal Masum Gĵnĵ" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "Holy Trinity" #: src/hd-data.c:604 msgid "Huravee Day" msgstr "Huravee Day" #: src/hd-data.c:605 msgid "Independence Day" msgstr "BağÄħmsÄħzlÄħk Gĵnĵ" #: src/hd-data.c:606 msgid "Independence Movement Day" msgstr "BağÄħmsÄħzlÄħk Hareketi Gĵnĵ" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "BağÄħmsÄħzlÄħk İlanÄħ" #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "Hint Yeni YÄħl Gĵnĵ" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "Aga Khan'Äħn Doğum Gĵnĵ" #: src/hd-data.c:610 msgid "Ashura'" msgstr "Ashura'" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "Kurban BayramÄħ" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "Ramazan BayramÄħ" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "Mevlit Kandili" #: src/hd-data.c:614 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "Imamat Day" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "Hicret YÄħldĥnĵmĵ" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "Kuran-Äħ Kerim'in inmeye baĊŸladÄħğÄħ tarih" #: src/hd-data.c:618 msgid "Quds Day" msgstr "Kudĵs Gecesi" #: src/hd-data.c:619 msgid "Ramadan" msgstr "Ramazan" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "Berat Kandili" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "Mira§ Kandili" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "Kadir Gecesi" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "Japon Yeni YÄħl Gĵnĵ" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "Japon Noeli" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "İsa'nÄħn Sĵnneti" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:628 msgid "Labour Day" msgstr "İĊŸ§i Gĵnĵ" #: src/hd-data.c:629 msgid "Labour Thanksgiving Day" msgstr "İĊŸ§i Ċžĵkran Gĵnĵ" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "Lao Tze'nin Doğum Gĵnĵ" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "–zgĵrlĵk Gĵnĵ" #: src/hd-data.c:632 msgid "Marine Day" msgstr "Denizcilik Gĵnĵ" #: src/hd-data.c:633 msgid "Martinimas" msgstr "Martinimas" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "Martin L. King Gĵnĵ" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "Martyrs Gĵnĵ" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "Mary's Annunciation Day" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "Mary's Ascension Day" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "Mary's Candlemas" #: src/hd-data.c:639 msgid "Mary's Expectation" msgstr "Mary's Expectation" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "Mary's Immaculate Conception" #: src/hd-data.c:641 msgid "Mary's Maternity" msgstr "Mary's Maternity" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "Mary's Name" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "Mary's Nativity" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "Mary's Sacrifice" #: src/hd-data.c:645 msgid "Mary's Visitation" msgstr "Mary's Visitation" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "Mary - Blessed Virgin" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "Maundy Thursday" #: src/hd-data.c:648 msgid "May Day" msgstr "MayÄħs Gĵnĵ" #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "St John'un Yaz OrtasÄħ Gĵnĵ" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "Sonbahar OrtasÄħ Festivali" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "İlkbahar OrtasÄħ Festivali" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "YÄħl OrtasÄħ Festivali" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "Waxing Half Moon" #: src/hd-data.c:654 msgid "Full Moon" msgstr "Dolunay" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "Waning Half Moon" #: src/hd-data.c:656 msgid "New Moon" msgstr "Yeni Ay" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "Anneler Gĵnĵ" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "œvey Anneler Gĵnĵ" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "Muzik Suyu Ċžĥleni" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "Ulusal KuruluĊŸ Gĵnĵ" #: src/hd-data.c:661 msgid "National Holiday" msgstr "Ulusal Tatil" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "Ulusal Yas Gĵnĵ" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "Yeni YÄħl" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "HemĊŸireler Gĵnĵ" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "Eski Ermeni Yeni YÄħlÄħ" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "Eski MÄħsÄħr Yeni YÄħlÄħ" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "Ortodoks Yeni YÄħlÄħ" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "Our Lady Aparecida Day" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "Palmiye PazarÄħ" #: src/hd-data.c:670 msgid "Parent's Day" msgstr "Anne Baba Gĵnĵ" #: src/hd-data.c:671 msgid "Passion Sunday" msgstr "Tutku PazarÄħ" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "BarÄħĊŸ Festivali" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "Ċžeftali Festivali" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "Whitsunday/Pentecost" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "Noruz/İran Yeni YÄħlÄħ" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "Dua Gĵnĵ" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "BaĊŸkanÄħn Gĥreve GeliĊŸi" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "BaĊŸkanlar Gĵnĵ" #: src/hd-data.c:679 msgid "Presidents' Inform" msgstr "BaĊŸkanÄħn Bilgisi" #: src/hd-data.c:680 msgid "President Lincoln's Birthday" msgstr "BaĊŸkan Lincoln'ĵn Doğum Gĵnĵ" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "Prensesin Gĵnĵ" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "Quinquagesima PazarÄħ" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "Reform Gĵnĵ" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "Anma/AnÄħt Gĵnĵ" #: src/hd-data.c:685 msgid "Republic Day" msgstr "Cumhuriyet Gĵnĵ" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "Eski Gĵnlere SaygÄħ Gĵnĵ" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "Devrim Gĵnĵ" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "Rio de Janeiro YÄħldĥnĵmĵ" #: src/hd-data.c:689 msgid "Rogation Sunday" msgstr "Rogation Pazar" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "Sao Paulo YÄħldĥnĵmĵ" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "Sapporo Kar Festivali" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "Mevsim Dĥnĵmĵ/Fasulye Festivali" #: src/hd-data.c:693 msgid "Septuagesima Sunday" msgstr "Septuagesima Pazar" #: src/hd-data.c:694 msgid "Seven Sleepers Day" msgstr "Yedi Uyurlar Gĵnĵ" #: src/hd-data.c:695 msgid "Sexagesima Sunday" msgstr "Sexagesima PazarÄħ" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "Shrove SalÄħsÄħ/Mardi Gras" #: src/hd-data.c:697 msgid "Solstice Day" msgstr "Gĵndĥnĵmĵ" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "Soot-Sweeping Gĵnĵ" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "Bahar Festivali" #: src/hd-data.c:700 msgid "Start of common month" msgstr "Ortak ayÄħn baĊŸlangÄħcÄħ" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "ArtÄħk ay baĊŸlangÄħcÄħ" #: src/hd-data.c:702 msgid "Star Festival" msgstr "YÄħldÄħz Festivali" #: src/hd-data.c:703 msgid "St Andrew's Day" msgstr "St Andrew Gĵnĵ" #: src/hd-data.c:704 msgid "St Bartholomew Day" msgstr "St Bartholomew Gĵnĵ" #: src/hd-data.c:705 msgid "St Berchtold's Day" msgstr "St Berchtold Gĵnĵ" #: src/hd-data.c:706 msgid "St David's Day" msgstr "St David Gĵnĵ" #: src/hd-data.c:707 msgid "St Edward's Day" msgstr "St Edward Gĵnĵ" #: src/hd-data.c:708 msgid "St George's Day" msgstr "St George Gĵnĵ" #: src/hd-data.c:709 msgid "St James' Day" msgstr "St James Gĵnĵ" #: src/hd-data.c:710 msgid "St Joseph's Day" msgstr "St Joseph Gĵnĵ" #: src/hd-data.c:711 msgid "St Laurentius Day" msgstr "St Laurentis Gĵnĵ" #: src/hd-data.c:712 msgid "St Nicholas' Day" msgstr "St Nicholas Gĵnĵ" #: src/hd-data.c:713 msgid "St Nicholas' Eve" msgstr "St Nicholas Arifesi" #: src/hd-data.c:714 msgid "St Patrick's Day" msgstr "St Patrick Gĵnĵ" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "St Peter ve St Paul" #: src/hd-data.c:716 msgid "St Stephen's Day" msgstr "St Stephen Gĵnĵ" #: src/hd-data.c:717 msgid "St Valentine's Day" msgstr "Sevgililer Gĵnĵ" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "–lĵm PazarÄħ" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "Swallow Gĵnĵ" #: src/hd-data.c:720 msgid "Sweetest Day" msgstr "En TatlÄħ Gĵn" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "Sylvester/Yeni YÄħl" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "–ÄŸretmenler Gĵnĵ" #: src/hd-data.c:723 msgid "Thai New Year's Day" msgstr "Thai'nin Yeni YÄħlÄħ" #: src/hd-data.c:724 msgid "Thanksgiving Day" msgstr "Ċžĵkran Gĵnĵ" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "KralÄħn Doğum Gĵnĵ" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "Krali§enin Doğum Gĵnĵ" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "Epiphany/3 KralÄħn Gĵnĵ" #: src/hd-data.c:728 msgid "Tiradentes Day" msgstr "Tiradentes Gĵnĵ" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "Mezar Sĵpĵrme Gĵnĵ" #: src/hd-data.c:730 msgid "Transfiguration Day" msgstr "Yĵceltme Gĵnĵ" #: src/hd-data.c:731 msgid "Tynwald Day" msgstr "Tynwald Gĵnĵ" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "Valbourg Arifesi" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "Venedeik KarnavalÄħ" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "Emekliler Gĵnĵ" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "Victoria Gĵnĵ" #: src/hd-data.c:736 msgid "Victory Day" msgstr "Zafer Gĵnĵ" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "Whit Pazartesisi" #: src/hd-data.c:738 msgid "Women's Day" msgstr "KadÄħnlar Gĵnĵ" #: src/hd-data.c:739 msgid "Women's Shrove Day" msgstr "KadÄħn –rtĵsĵ Gĵnĵ" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "Dĵnya Hayvan Gĵnĵ" #: src/hd-data.c:741 msgid "Youth Day" msgstr "Gen§lik Gĵnĵ" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "Adelaide Kupa Gĵnĵ" #: src/hd-data.c:748 msgid "Admission Day" msgstr "Kabul Gĵnĵ" #: src/hd-data.c:749 msgid "Alaska Day" msgstr "Alaska Gĵnĵ" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "Aleksis Kivi Gĵnĵ" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "Alice-Springs Gĥsteri Gĵnĵ" #: src/hd-data.c:752 msgid "All Saints' Eve" msgstr "Tğm Azizler Gĵnĵ" #: src/hd-data.c:753 msgid "Americas Day" msgstr "Amerika Gĵnĵ" #: src/hd-data.c:754 msgid "Angam Day" msgstr "Angam Gĵnĵ" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "Emir'in BaĊŸarÄħsÄħnÄħn YÄħldĥnĵmĵ" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "SilahlÄħ SavaĊŸ YÄħldĥnĵmĵ" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "YeĊŸil YĵrĵyĵĊŸ YÄħldĥnĵmĵ" #: src/hd-data.c:759 msgid "Antillian Day" msgstr "Antillian Gĵnĵ" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "Arap Birliği Gĵnĵ" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "BaĊŸpiskopos Makarios'u Anma Gĵnĵ" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "BaĊŸpiskopos Makarios Gĵnĵ" #: src/hd-data.c:764 msgid "Arengo Anniversary" msgstr "Arengo YÄħldĥnĵmĵ" #: src/hd-data.c:765 msgid "Army Coup Day" msgstr "Ordu Darbe Gĵnĵ" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "Swiss'in DĥnĵĊŸĵ" #: src/hd-data.c:767 msgid "Artigas' Birthday" msgstr "Artigas'Äħn Doğum Gĵnĵ" #: src/hd-data.c:768 msgid "Asuncion Day" msgstr "Asuncion Gĵnĵ" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "Atatĵrk'ĵ Anma Gĵnĵ" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "Otoritenin İktidar Gĵnĵ" #: src/hd-data.c:771 msgid "Ba'ath Revolution Day" msgstr "Ba'ath Devrimi Gĵnĵ" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "Baron Bliss Gĵnĵ" #: src/hd-data.c:773 msgid "Bataan Day" msgstr "Bataan Gĵnĵ" #: src/hd-data.c:774 msgid "Battle of Angamos" msgstr "Angamos SavaĊŸÄħ" #: src/hd-data.c:775 msgid "Battle of BoyacĦ" msgstr "BoyacĦ SavaĊŸÄħ" #: src/hd-data.c:776 msgid "Battle of Carabobo" msgstr "Carabobo SavaĊŸÄħ" #: src/hd-data.c:777 msgid "Battle of Iquique" msgstr "Iquique SavaĊŸÄħ" #: src/hd-data.c:778 msgid "Battle of Las Piedras" msgstr "Las Piedras SavaĊŸÄħ" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "N¤fels SavaĊŸÄħ" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "Yaz BaĊŸlangÄħcÄħ" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "Belgrad Gĵnĵ" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "Bennigton SavaĊŸÄħ Gĵnĵ" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "Suyun KutsanmasÄħ Gĵnĵ" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "Bloomsday" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "Boganda Gĵnĵ" #: src/hd-data.c:786 msgid "Bonaire Day" msgstr "Bonaire Gĵnĵ" #: src/hd-data.c:787 msgid "Boqueron Battle Day" msgstr "Boqueron SavaĊŸÄħ Gĵnĵ" #: src/hd-data.c:788 msgid "Botswana Day" msgstr "Botswana Gĵnĵ" #: src/hd-data.c:789 msgid "Bounty Day" msgstr "İkramiye Gĵnĵ" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "Bunker Hill Gĵnĵ" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "Jan Hus'un YakÄħlÄħĊŸÄħ" #: src/hd-data.c:792 msgid "Canberra Day" msgstr "Canberra Gĵnĵ" #: src/hd-data.c:793 msgid "Caricom Day" msgstr "Caricom Gĵnĵ" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "Casimir Pulaski'nin Doğum Gĵnĵ" #: src/hd-data.c:795 msgid "Cassinga Day" msgstr "Cassinga Gĵnĵ" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "Cayenne Festivali" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "Cesar Chavez Gĵnĵ" #: src/hd-data.c:798 msgid "Charter Day" msgstr "Charter Gĵnĵ" #: src/hd-data.c:799 msgid "Chiang Kai-shek's Birthday" msgstr "Chiang Kai-shek'in Doğum Gĵnĵ" #: src/hd-data.c:800 msgid "Children's White Sunday" msgstr "‡ocuklarÄħn Beyaz Pazar Gĵnĵ" #: src/hd-data.c:801 msgid "Colon Day" msgstr "Colon Gĵnĵ" #: src/hd-data.c:802 msgid "Colorado Day" msgstr "Colorado Gĵnĵ" #: src/hd-data.c:803 msgid "Commonwealth Day" msgstr "Ulus Gĵnĵ" #: src/hd-data.c:804 msgid "Compact Day" msgstr "Compact Gĵnĵ" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "Konfederasyon AnlaĊŸmasÄħ Gĵnĵ" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "Ta§ Giyme Gĵnĵ" #: src/hd-data.c:807 msgid "Cup Match Day" msgstr "Kupa Ma§Äħ Gĵnĵ" #: src/hd-data.c:808 msgid "Custom Chief's Day" msgstr "Tĥresel Ċžef Gĵnĵ" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "C. Mapinduzi Gĵnĵ" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "Darwin Gĥsterisi Gĵnĵ" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "İyiniyet Gĵnĵ" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "–ÄŸrencilerin İsyan Gĵnĵ" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "–zgĵr Laos Gĵnĵ" #: src/hd-data.c:814 msgid "Death of H. Christophe" msgstr "H. Christophe'nin –lĵmĵ" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "J. Dessalines 'Äħn –lĵmĵ" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "BaĊŸkan Abdallah'Äħn –lĵmĵ" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "BaĊŸkan Cheikh'in –lĵmĵ" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "BaĊŸkan Soilih'in –lĵmĵ" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "Qaid-i-Azam'Äħn –lĵmĵ" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "T. Louverture'Äħn –lĵmĵ" #: src/hd-data.c:821 msgid "Defenders Day" msgstr "SavunmacÄħlar Gĵnĵ" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "Dia del Padre" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "Dia de los Maestros" #: src/hd-data.c:824 msgid "Discovery Day" msgstr "KeĊŸif Gĵnĵ" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "Dergue'nĵn DĵĊŸĵĊŸĵ" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "Kuru Mevsim KutlamasÄħ" #: src/hd-data.c:827 msgid "Dr. Sun Yat-sen's Birthday" msgstr "Dr. Sun Yat-sen'in Doğum Gĵnĵ" #: src/hd-data.c:828 msgid "Duarte's Birthday" msgstr "Duarte'nin Doğum Gĵnĵ" #: src/hd-data.c:829 msgid "Easter Tuesday" msgstr "Paskalya SalÄħsÄħ" #: src/hd-data.c:830 msgid "Economic Liberation Day" msgstr "Ekonomik BağÄħmsÄħzlÄħk Gĵnĵ" #: src/hd-data.c:831 msgid "Eight Hours Day" msgstr "Sekiz Saat Gĵnĵ" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "Ulusal Birlik ݧin Se§imler" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "Errol Barrow Gĵnĵ" #: src/hd-data.c:834 msgid "Evacuation Day" msgstr "Tahliye Gĵnĵ" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "Epiphany Arifesi" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "33 Seferi" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "E. Hostos'un Doğum Gĵnĵ" #: src/hd-data.c:838 msgid "Family Day" msgstr "Aile Gĵnĵ" #: src/hd-data.c:839 msgid "FAO Day" msgstr "FAO Gĵnĵ" #: src/hd-data.c:840 msgid "Farmers' Day" msgstr "‡ift§iler Gĵnĵ" #: src/hd-data.c:841 msgid "Father Leval Day" msgstr "Leval Baba Gĵnĵ" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "Bizim Theotokos'un Ziyafeti" #: src/hd-data.c:843 msgid "Fisherman's Day" msgstr "BalÄħk§ÄħnÄħn Gĵnĵ" #: src/hd-data.c:844 msgid "Foundation of NPLA Day" msgstr "NPLA'nÄħn KuruluĊŸ Gĵnĵ" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "Halk Partisinin KuruluĊŸ Gĵnĵ" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "Garifuna Gĵnĵ" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "General San Martin'in YÄħldĥnĵmĵ" #: src/hd-data.c:849 msgid "Gospel Day" msgstr "Gospel Gĵnĵ" #: src/hd-data.c:850 msgid "Guacanaste Day" msgstr "Guacanaste Gĵnĵ" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "Gustavus Adolphus Gĵnĵ" #: src/hd-data.c:852 msgid "Heritage Day" msgstr "Miras Gĵnĵ" #: src/hd-data.c:853 msgid "Heroes Day" msgstr "Kahramanlar Gĵnĵ" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "Hobart Show Gĵnĵ" #: src/hd-data.c:855 msgid "Holy Wednesday" msgstr "Kutsal ‡arĊŸamba" #: src/hd-data.c:856 msgid "Ho Chi Minh's Birthday" msgstr "Ho Chi Minh'in Doğum Gĵnĵ" #: src/hd-data.c:857 msgid "Human Rights Day" msgstr "İnsan HaklarÄħ Gĵnĵ" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "KasÄħrga Yakarma Gĵnĵ" #: src/hd-data.c:859 msgid "Hurricane Thanksgiving Day" msgstr "KasÄħrga Ċžĵkran Gĵnĵ" #: src/hd-data.c:860 msgid "Independence of Cartagena" msgstr "Cartagena'nÄħn BağÄħmsÄħzlÄħğÄħ" #: src/hd-data.c:861 msgid "Independence of Cuenca" msgstr "Cuenca'nÄħn BağÄħmsÄħzlÄħğÄħ" #: src/hd-data.c:862 msgid "Independence of Guayaquil" msgstr "Guayaquil'nÄħn BağÄħmsÄħzlÄħğÄħ" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "Quito'nÄħn BağÄħmsÄħzlÄħğÄħ" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "Yerli DĥnĵĊŸ Gĵnĵ" #: src/hd-data.c:865 msgid "Internal Autonomy Day" msgstr "Yurti§i –zerklik Gĵnĵ" #: src/hd-data.c:866 msgid "Jefferson Davis' Birthday" msgstr "Jefferson Davis'in Doğum Gĵnĵ" #: src/hd-data.c:867 msgid "June Holiday" msgstr "Haziran Tatili" #: src/hd-data.c:868 msgid "J. Barbosa's Birthday" msgstr "J. Barbosa'nÄħn Doğum Gĵnĵ" #: src/hd-data.c:869 msgid "J. Chilembwe Day" msgstr "J. Chilembwe Gĵnĵ" #: src/hd-data.c:870 msgid "J. Diego's Birthday" msgstr "J. Diego'nun Doğum Gĵnĵ" #: src/hd-data.c:871 msgid "J. Robert's Birthday" msgstr "J. Robert'in Doğum Gĵnĵ" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "Kamarampaka Gĵnĵ" #: src/hd-data.c:873 msgid "Kartini Day" msgstr "Kartini Gĵnĵ" #: src/hd-data.c:874 msgid "Catherine Show Day" msgstr "Catherina Gĥsteri Gĵnĵ" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "Kiev Gĵnĵ" #: src/hd-data.c:876 msgid "Kim Il-Sung's Birthday" msgstr "Kim Il-Sung'un Doğum Gĵnĵ" #: src/hd-data.c:877 msgid "Kim Jong-Il's Birthday" msgstr "Kim Jong-Il'un Doğum Gĵnĵ" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "Kral Kamehameha Gĵnĵ" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "Kral Rama I Anma Gĵnĵ/Chakri" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "Kral Rama V Anma Gĵnĵ" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "Knabenschiessen" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "Konstantin ve Methodius" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "Lapp Ulusal Tatili" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "Launceston KupasÄħ Gĵnĵ" #: src/hd-data.c:885 msgid "Liberty Day" msgstr "–zgĵrlĵk Gĵnĵ" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "Mĵslĵman Ulusun KayÄħp Gĵnĵ" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "Luxembourg Ċžehir Kermesi" #: src/hd-data.c:888 msgid "Lyndon B. Johnson Day" msgstr "Lyndon B. Johnson Gĵnĵ" #: src/hd-data.c:889 msgid "L. Rivera's Birthday" msgstr "L. Rivera'nÄħn Doğum Gĵnĵ" #: src/hd-data.c:890 msgid "Madaraka Day" msgstr "Madaraka Gĵnĵ" #: src/hd-data.c:891 msgid "Mahatma Gandhi's Birthday" msgstr "Mahatma Gandhi'nin Doğum Gĵnĵ" #: src/hd-data.c:892 msgid "Malvinas Day" msgstr "Malvinas Gĵnĵ" #: src/hd-data.c:893 msgid "Manila Day" msgstr "Manila Gĵnĵ" #: src/hd-data.c:894 msgid "Maputo City Day" msgstr "Maputo Ċžehri Gĵnĵ" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "Marien Ngouabi Gĵnĵ" #: src/hd-data.c:896 msgid "Maryland Day" msgstr "Maryland Gĵnĵ" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "Melbourne KupasÄħ Gĵnĵ" #: src/hd-data.c:898 msgid "Merchant Day" msgstr "İĊŸyeri Gĵnĵ" #: src/hd-data.c:899 msgid "St John's/Midsummers Eve" msgstr "St John's/YazortasÄħ Gĵnĵ" #: src/hd-data.c:900 msgid "Missionary Day" msgstr "Misyoner Gĵnĵ" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "Mi-CarŞme Gĵnĵ" #: src/hd-data.c:902 msgid "Morazan Day" msgstr "Morazan Gĵnĵ" #: src/hd-data.c:903 msgid "Mosheshoe's Day" msgstr "Mosheshoe'nin Gĵnĵ" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "Annelik ve Gĵzellik Gĵnĵ" #: src/hd-data.c:905 msgid "Naming Day" msgstr "İsimlendirme Gĵnĵ" #: src/hd-data.c:906 msgid "National Bun Day" msgstr "Ulusal Kurabiye Gĵnĵ" #: src/hd-data.c:907 msgid "National Heroes Day" msgstr "Ulusal Kahramanlar Gĵnĵ" #: src/hd-data.c:908 msgid "National Redemption Day" msgstr "Ulusal KurtuluĊŸ Gĵnĵ" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "Ulusal DireniĊŸ Gĵnĵ" #: src/hd-data.c:910 msgid "National Revival Day" msgstr "Ulusal UyanÄħĊŸ Gĵnĵ" #: src/hd-data.c:911 msgid "National Unity Day" msgstr "Ulusal Birlik Gĵnĵ" #: src/hd-data.c:912 msgid "Ndadaye Day" msgstr "Ndadaye Gĵnĵ" #: src/hd-data.c:913 msgid "Neutrality Day" msgstr "TarafsÄħzlÄħk Gĵnĵ" #: src/hd-data.c:914 msgid "Nevada Day" msgstr "Nevada Gĵnĵ" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "Yeni Rejim YÄħldĥnĵmĵ" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "Nobel Gĵnĵ" #: src/hd-data.c:917 msgid "Noi Day" msgstr "Noi Gĵnĵ" #: src/hd-data.c:918 msgid "OAU Day" msgstr "OAU Gĵnĵ" #: src/hd-data.c:919 msgid "October Holiday" msgstr "Ekim Tatili" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "Petrol Endĵstrisi Gĵnĵ" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "Bizim Altagracia KadÄħnÄħ Gĵnĵ" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "Bizim Camarin KadÄħnÄħ Gĵnĵ" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "Bizim Las Mercedes KadÄħnÄħ Gĵnĵ" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "Bizim Los Angeles KadÄħnÄħ Gĵnĵ" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "Bizim Yedi AcÄħ KadÄħnÄħ Gĵnĵ" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "Bizim Zaferler KadÄħnÄħ Gĵnĵ" #: src/hd-data.c:927 msgid "Panama City Day" msgstr "Panama Ċžehri Gĵnĵ" #: src/hd-data.c:928 msgid "Panamerica Day" msgstr "Panamerica Gĵnĵ" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "Paris BarÄħĊŸ AnlaĊŸmasÄħ Gĵnĵ" #: src/hd-data.c:930 msgid "Patriot's Day" msgstr "Vatanseverler Gĵnĵ" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "HalkÄħn İsyan Gĵnĵ" #: src/hd-data.c:932 msgid "People Power Day" msgstr "HalkÄħn İktidarÄħ Gĵnĵ" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "Filipin-Amerikan Dostluğu" #: src/hd-data.c:934 msgid "Pichincha Day" msgstr "Pichincha Gĵnĵ" #: src/hd-data.c:935 msgid "Picnic Day" msgstr "Piknik Gĵnĵ" #: src/hd-data.c:936 msgid "Pioneer Day" msgstr "–ncĵler Gĵnĵ" #: src/hd-data.c:937 msgid "Poya Day" msgstr "Poya Gĵnĵ" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "Prens Kalanianaole Gĵnĵ" #: src/hd-data.c:939 msgid "Prince of Wales' Birthday" msgstr "Galler Prensinin Doğum Gĵnĵ" #: src/hd-data.c:940 msgid "Proclamation Day" msgstr "İlan Gĵnĵ" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "Qaid-i-Azam'nin Doğum Gĵnĵ" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "Ratu Sukuma Gĵnĵ" #: src/hd-data.c:943 msgid "Recreation Day" msgstr "Yeniden YaratÄħlÄħĊŸ Gĵnĵ" #: src/hd-data.c:944 msgid "Referendum Day" msgstr "Referandum Gĵnĵ" #: src/hd-data.c:945 msgid "Regatta Day" msgstr "Regatta Gĵnĵ" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "Kral Naibliği DeğiĊŸimi" #: src/hd-data.c:947 msgid "Restoration Day" msgstr "Restorasyon Gĵnĵ" #: src/hd-data.c:948 msgid "Return Day" msgstr "Geri DĥnĵĊŸ Gĵnĵ" #: src/hd-data.c:949 msgid "Reunification Day" msgstr "Yeniden BirleĊŸme Gĵnĵ" #: src/hd-data.c:950 msgid "Rizal Day" msgstr "Rizal Gĵnĵ" #: src/hd-data.c:951 msgid "Rwagasore Day" msgstr "Rwagasore Gĵnĵ" #: src/hd-data.c:952 msgid "Saba Day" msgstr "Saba Gĵnĵ" #: src/hd-data.c:953 msgid "San Jacinto Day" msgstr "San Jacinto Gĵnĵ" #: src/hd-data.c:954 msgid "San Josİ Day" msgstr "San Josİ Gĵnĵ" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "SAR Kurulum Gĵnĵ" #: src/hd-data.c:956 msgid "School Holiday" msgstr "Okul Tatili" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "Sechsel¤uten" #: src/hd-data.c:958 msgid "Separation Day" msgstr "AyrÄħlma Gĵnĵ" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "Seretse Khama Gĵnĵ" #: src/hd-data.c:960 msgid "Settlers Day" msgstr "Gĥ§menler Gĵnĵ" #: src/hd-data.c:961 msgid "Seward's Day" msgstr "Seward'Äħn Gĵnĵ" #: src/hd-data.c:962 msgid "Shaheed Day" msgstr "Shaheed Gĵnĵ" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "Koyun Festivali" #: src/hd-data.c:964 msgid "Sheikh Zayed's Ascension Day" msgstr "Ċžeyh Zayid'in YĵkseliĊŸ Gĵnĵ" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "Simon Bolivar Gĵnĵ" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "Sinai-BağÄħmsÄħzlÄħk Gĵnĵ" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "Kĥle-BağÄħmsÄħzlÄħk Gĵnĵ" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "Esintiyi Koklama Gĵnĵ" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "DayanÄħĊŸma Gĵnĵ" #: src/hd-data.c:970 msgid "Somers Day" msgstr "Somers Gĵnĵ" #: src/hd-data.c:971 msgid "Statia-American Day" msgstr "Statia-Amerikan Gĵnĵ" #: src/hd-data.c:972 msgid "Student's Day" msgstr "–ÄŸrenciler Gĵnĵ" #: src/hd-data.c:973 msgid "St Agata Day" msgstr "Aziz Agata Gĵnĵ" #: src/hd-data.c:974 msgid "St Canute's Day" msgstr "Aziz Canute Gĵnĵ" #: src/hd-data.c:975 msgid "St Cedilia's Day" msgstr "Aziz Cedilia Gĵnĵ" #: src/hd-data.c:976 msgid "St Charles' Day" msgstr "Aziz Charles Gĵnĵ" #: src/hd-data.c:977 msgid "St Demetrius' Day" msgstr "Aziz Demetrus Gĵnĵ" #: src/hd-data.c:978 msgid "St Dİvote Day" msgstr "Aziz Dİvote Gĵnĵ" #: src/hd-data.c:979 msgid "St Eliah's Day" msgstr "Aziz Eliah Gĵnĵ" #: src/hd-data.c:980 msgid "St Jean Baptiste Day" msgstr "Aziz Jean Baptiste Gĵnĵ" #: src/hd-data.c:981 msgid "St Lucia's Day" msgstr "Aziz Lucia Gĵnĵ" #: src/hd-data.c:982 msgid "St Marguerite's Day" msgstr "Aziz Marqurite Gĵnĵ" #: src/hd-data.c:983 msgid "St Maroon's Day" msgstr "Aziz Maroon Gĵnĵ" #: src/hd-data.c:984 msgid "St Michael's Day" msgstr "Aziz Michael Gĵnĵ" #: src/hd-data.c:985 msgid "St Olav's Day" msgstr "Aziz Olav Gĵnĵ" #: src/hd-data.c:986 msgid "St Olav's Eve" msgstr "Aziz Olav Arifesi" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "Aziz Paul2un Gemi EnkazÄħ" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "Lima'nÄħn Aziz Rose'u" #: src/hd-data.c:989 msgid "St Ursula's Day" msgstr "Aziz Ursula Gĵnĵ" #: src/hd-data.c:990 msgid "St Vincent de Paul's Day" msgstr "Aziz Vincent de Paul Gĵnĵ" #: src/hd-data.c:991 msgid "Suez Victory Day" msgstr "Suez Zafer Gĵnĵ" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "Sultan Qaboos'un Doğum Gĵnĵ" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:994 msgid "Sweden Day" msgstr "İsve§ Gĵnĵ" #: src/hd-data.c:995 msgid "S. Doe's Birthday" msgstr "S. Doe'nin Doğum Gĵnĵ" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "Tennant-Creek Gĥsteri Gĵnĵ" #: src/hd-data.c:997 msgid "Territory Day" msgstr "Karasal Gĵn" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "Crown Prensesinin Doğumgĵnĵ" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "Crown Prensesinin Vaftizi" #: src/hd-data.c:1000 msgid "The Crown Prince's Birthday" msgstr "Crown Prensinin Doğumgĵnĵ" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "KralÄħn Vaftizi" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "Krali§enin Vaftizi" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "Topou I Gĵnĵ" #: src/hd-data.c:1004 msgid "Town Meeting Day" msgstr "Kasaba BuluĊŸma Gĵnĵ" #: src/hd-data.c:1005 msgid "Traditional Day" msgstr "Geleneksel Gĵn" #: src/hd-data.c:1006 msgid "Transfer Day" msgstr "TaĊŸÄħma Gĵnĵ" #: src/hd-data.c:1007 msgid "Truman Day" msgstr "Truman Gĵnĵ" #: src/hd-data.c:1008 msgid "Union Day" msgstr "BirleĊŸme Gĵnĵ" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "İsve§'le Birlik feshedildi" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "BirleĊŸmiĊŸ Milletler Gĵnĵ" #: src/hd-data.c:1011 msgid "Unity Factory Day" msgstr "BirleĊŸik Fabrika Gĵnĵ" #: src/hd-data.c:1012 msgid "Victor-Schoelcher Day" msgstr "Victor-Schoelcher Gĵnĵ" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "Vidovdan" #: src/hd-data.c:1014 msgid "West Virginia Day" msgstr "Batu Virginia Gĵnĵ" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "Whitsun Arifesi" #: src/hd-data.c:1016 msgid "W. Tubman's Birthday" msgstr "W. Tubman'Äħn Doğumgĵnĵ" #: src/hd-data.c:1017 msgid "Yap Day" msgstr "Yap Gĵnĵ" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "‡ek Devlet Gĵnĵ" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "Zi/Fare" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "Chou/–kĵz" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "Yin/Kaplan" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "Mao/TavĊŸan" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "Chen/Ejder" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "Si/YÄħlan" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "Wu/At" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "Wei/Koyun" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "Shen/Maymun" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "You/Horoz" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "Xu/Kĥpek" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "Hai/Domuz" #: src/hd-data.c:1287 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1550 msgid "Cel" msgstr "Cel" #: src/hd-data.c:1692 src/hd-data.c:2225 msgid "Chi" msgstr "Chi" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "%d i§in lunisolar takvimi doğru olarak hesaplayamÄħyorum" #: src/hd-data.c:2227 src/hd-data.c:3730 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2423 msgid "Chr" msgstr "Chr" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "FRR" #: src/hd-data.c:2778 src/hd-data.c:2960 msgid "Heb" msgstr "Heb" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "AMO" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "EGO" #: src/hd-data.c:4447 msgid "OxN" msgstr "OxN" #: src/hd-data.c:4449 msgid "OxO" msgstr "OxO" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "Per" #: src/hd-data.c:4847 msgid "Zod" msgstr "Zod" #: src/hd-use.c:929 msgid " day" msgstr "gĵn" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "Sonsuz tatil listesi" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*s %0*d yÄħlÄħ bir artÄħk yÄħl" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*s %0*d yÄħlÄħ artÄħk bir yÄħl değil" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*s %d yÄħlÄħ artÄħk bir yÄħl" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*s %d yÄħlÄħ artÄħk bir yÄħl değil" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr " = %+4d gĵn" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr " = %+4d gĵn" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s %d maksimum giriĊŸ sayÄħsÄħ i§eriyor!%s" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "%s%s ile %s%s%s%s i§in derlendi" #: src/help.c:75 msgid "# Day number (must be defined)" msgstr "# Gĵn sayÄħsÄħ (tanÄħmlanmalÄħ)" #: src/help.c:76 msgid "# Year number (must be defined)" msgstr "# YÄħl sayÄħsÄħ (tanÄħmlanmalÄħ)" #: src/help.c:77 msgid "# Weekday name (may be defined)" msgstr "# Haftai§i Gĵn SayÄħsÄħ (tanÄħmlanabilir)" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "Ay grubu (bir ĵye kesinlikle tanÄħmlanmalÄħ):" #: src/help.c:79 msgid "# Month number" msgstr "# Ay sayÄħsÄħ" #: src/help.c:80 msgid "# Month name" msgstr "# Ay ismi" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "Grubu se§me (tĵm ĵyeler tanÄħmlanmalÄħ):" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "Dĵzenleme/iĊŸaretleme karakteri se§imi baĊŸlangÄħcÄħ" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "Dĵzenleme/iĊŸaretleme karakteri se§imi sonu" #: src/help.c:86 msgid "Character replacement:" msgstr "Karakter değiĊŸimi:" #: src/help.c:87 #, c-format msgid "Space/blank ('%c') character" msgstr "BoĊŸluk ('%c') karakteri" #: src/help.c:88 #, c-format msgid "Underscore ('%c') character" msgstr "Alt§izgi ('%c') karakteri" #: src/help.c:89 #, c-format msgid "Percent ('%c') character" msgstr "Yĵzde ('%c') karakteri" #: src/help.c:90 #, c-format msgid "Backslash ('%c') character" msgstr "Ters slaĊŸ ('%c') karakteri" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "# ile iĊŸaretlenen tĵm bi§im elemanlarÄħ" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "aĊŸağÄħdaki gibi bir ĊŸablonda bilgilendiren bi§im i§erebilir." #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[HİZALAMA [İĊžARET] [SIFIR] GENİĊžLİK [STİL] [SONEK] B݇İM]" #: src/help.c:94 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "HİZALAMA grubu (bir ĵye kesinlikle tanÄħmlanmalÄħ" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "Alan i§eriği GENİĊžLİK geniĊŸliği kullanÄħlarak sola yerleĊŸtirildi" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "Alan i§eriği GENİĊžLİK geniĊŸliği kullanÄħlarak ortalandÄħ" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "Alan i§eriği GENİĊžLİK geniĊŸliği kullanÄħlarak sağa yerleĊŸtirildi" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "İĊžARET (tanÄħmlanabilir):" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "Numerik değer ĥndeki iĊŸaretle sağlandÄħ" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "SIFIR (tanÄħmlanabilir):" #: src/help.c:104 msgid "Numerical value is filled with leading zero(es)" msgstr "Numerik değer ĥndeki sÄħfÄħr(larla) dolduruldu" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "GENİĊžLİK (tanÄħmlanmalÄħ):" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "Alan N geniĊŸliğinde (%d...%d)" #: src/help.c:107 msgid "STYLE group (exactly one member may be defined):" msgstr "STİL grubu (bir ĵye tanÄħmlanmalÄħ):" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "Alan i§eriği bĵyĵk harflere dĥnĵĊŸtĵrĵldĵ" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "Alan i§eriği kĵ§ĵk harflere dĥnĵĊŸtĵrĵldĵ" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "Alan i§eriği capitalized harflere dĥnĵĊŸtĵrĵldĵ" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "SONEK (tanÄħmlanabilir):" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "Numerik değer sÄħralÄħ numara soneki ile sağlandÄħ" #: src/help.c:114 msgid "FORMAT group (exactly one member must be defined):" msgstr "B݇İM grubu (bir ĵye tanÄħmlanmalÄħ):" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "Alan i§eriği GENİĊžLİK pozisyonundan sonra kesilmedi" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "Alan i§eriği GENİĊžLİK pozisyonundan sonra kesildi" #: src/help.c:130 msgid "legal holidays" msgstr "kanuni tatiller" #: src/help.c:131 msgid "holidays" msgstr "tatiller" #: src/help.c:132 msgid "Mondays" msgstr "Pazartesileri" #: src/help.c:133 msgid "Tuesdays" msgstr "SalÄħlar" #: src/help.c:134 msgid "Wednesdays" msgstr "‡arĊŸambalar" #: src/help.c:135 msgid "Thursdays" msgstr "PerĊŸembeler" #: src/help.c:136 msgid "Fridays" msgstr "Cumalar" #: src/help.c:137 msgid "Saturdays" msgstr "Cumartesiler" #: src/help.c:138 msgid "Sundays" msgstr "Pazarlar" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "Pazartesiler...PerĊŸembeler" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "Pazartesiler...Cumalar" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s: argĵmanlardan biriyle `%s %s' kullanÄħnÄħz" #: src/help.c:243 msgid "OPTION" msgstr "SE‡ENEK" #: src/help.c:256 msgid " Display help text and quit program" msgstr " YardÄħm metnini gĥster ve programdan §Äħk" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr " GeniĊŸletilmiĊŸ yardÄħm metnini gĥster ve programdan §Äħk" #: src/help.c:291 msgid " Display software license and quit program" msgstr " YazÄħlÄħm lisansÄħnÄħ gĥster ve programdan §Äħk" #: src/help.c:302 msgid " Display version information and quit program" msgstr " Sĵrĵm bilgisini gĥster ve programdan §Äħk" #: src/help.c:313 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr " `%2$s' vs.de ‡IKIĊž durumunu %1$d olarak ayarla ." #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " `%cDOSYA' se§eneği i§in cevap dosyasÄħ hazÄħrla" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " %-3s = %s dosyasÄħnda komut satÄħrÄħ argĵmanlarÄħnÄħ sakla" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr " Komut satÄħrÄħ argĵmanlarÄħnÄħ i§eren kabuk betiği yarat" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Kabuk betiği dosyasÄħnÄħn ismi" #: src/help.c:360 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" " Kĵresel tarih değiĊŸken(ler)i tanÄħmla \"DVAR->a...d|f...s|u...|z\"" #: src/help.c:364 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr " %-3s = \"DVAR%s%s%s\" tanÄħmlar `%s' karkaterleriyle ayrÄħldÄħ" #: src/help.c:369 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" " –rneğin %sv a%s1127%sb%s054 Kas 27'yi `a' ve May 4'ĵ de `b' " "olarak ayarla" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr " Yerel tarih değiĊŸkenlerini dosyadan dosyaya taĊŸÄħ" #: src/help.c:393 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr " Kĵresel metin değiĊŸken(ler)i tanÄħmla \"TVAR->%ca...%cz\"" #: src/help.c:398 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr " %-3s = \"TVAR%sTEXT\" tanÄħmlar `%s' karakterleriyle ayrÄħldÄħ" #: src/help.c:403 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" " –rneğin %sr %ca%sfoo%s%cb%sbar `%ca' yÄħ`foo' and `%cb' yi " "`bar' olarak ayarla" #: src/help.c:409 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" " = \"TVAR[%s|%c%s]COMMAND\" tanÄħmlar `%s' karakterleriyle ayrÄħldÄħ" #: src/help.c:414 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" " –rneğin %sr %ca%sfoo `foo' komutunun §ÄħktÄħsÄħnÄħ `%ca'ya ata" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr " Yerel tarih değiĊŸkenlerinin dosyadan dosyaya gĥnder" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr " Sadece %s tarafÄħndan kabul edilmeyen sabit tarihleri gĥster" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr "" " %-3s = Takibeden karakterlerden bir veya daha fazlasÄħ. Eğer karakter" #: src/help.c:448 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " Kœ‡œK-HARF ise, §ÄħkarÄħlmayacak demektir!" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Tĵm %s lerin dÄħĊŸta tutulmasÄħ" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "" " %-3s = `%c[TARİH][%c[TARİH]]' listesi ve/veya `%c[TARİH][%c[TARİH]]'" #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr " ifadeler `%s' karakteriyle ayrÄħldÄħ" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr " Sadece metinleri %s ile tutan sabit tarihleri gĥster" #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " %-3s = İstediğiniz herhangi bir kiĊŸisel metin \"kurallÄħ ifade \"" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" " `%s' se§eneği verildiyse bĵyĵk harf/kĵ§ĵk harf ayrÄħmÄħnÄħ dikkate " "alma" #: src/help.c:520 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " `%s' se§eneğinin eĊŸleĊŸtirilmesini eski haline dĥnĵĊŸtĵr" #: src/help.c:531 msgid " Display some debug information" msgstr " Bir ka§ hata dĵzeltme bilgisi gĥster" #: src/help.c:539 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal Bilgi eğer programÄħn internal maksimumlarÄħna " "eriĊŸildiyse" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr " = handled `internal' gibi ve handled dosya isimleri" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = handled `internal' gibi ve handled edilmeyen dosya isimleri" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr " = all `handled' ve `unhandled' beraber gibi" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" " = abort `all' ve abort eğer dosya isimleri handled " "edilemiyorsa" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr " Takvim sayfasÄħ i§in ĥzel bi§im kullan" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - Takvim sayfasÄħ i§in standart bi§im kullan" #: src/help.c:596 msgid " Use leap year rule of Eastern Orthodox churches" msgstr " Doğu Ortodoks Kiliselerinin artÄħk yÄħl kuralÄħnÄħ kullan" #: src/help.c:606 msgid " Provide calendar sheet with week numbers" msgstr " Hafta numaralÄħ takvim sayfasÄħ sağla" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Hafta numaralarÄħnÄħn tipini belirle (asÄħl: %s)" #: src/help.c:618 msgid "Standard" msgstr "Standart" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes ISO-8601:1988 hafta numaralarÄħ" #: src/help.c:631 msgid " = no Standard week numbers" msgstr " = no Standart hafta numaralarÄħ" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr " Takvim sayfalarÄħnÄħn §ÄħktÄħlarÄħnÄħ a§Äħkca gizle" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr " DÄħĊŸ `%s' sayfacÄħsÄħ aracÄħlÄħğÄħyla doğrudan §ÄħktÄħ" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr " Basit i§ sayfacÄħ aracÄħlÄħğÄħyla doğrudan §ÄħktÄħ" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " Metin, tatil ve mevcut gĵnĵn se§ilmesini engelle" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr " Eğer §ÄħktÄħ yĥnlendirilmiĊŸ ise se§me sÄħrasÄħnÄħn zorlar" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" " Se§me sÄħrasÄħ §iftlerini 1 (=mevcut gĵn) ve 2 (=tatil) olarak ayarla" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr " %-3s = Se§me sÄħrasÄħ §iftleri `%s' karakterleriyle ayrÄħldÄħ" #: src/help.c:716 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" " E.g. %sH \\x2%s\\xAE SÄħra 1 i§in hex değerler 2 ve AE kullan" #: src/help.c:721 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" " E.g. %sH %s%s*%s* SÄħra 2 i§in `*' ve `*' karakterlerini " "kullan" #: src/help.c:732 msgid " Modify format of year calendar" msgstr " Takvim yÄħlÄħ bi§imini değiĊŸtir" #: src/help.c:736 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr " %-3s = 1|2|3|4|6|12 Blok sayÄħsÄħ (mevcut: %d)" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr " Takvim sayfasÄħnda ardÄħĊŸÄħk gĵn kullan" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [MOD] = b Her ikisini de kullan (gĵn ve yÄħl)" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr " ݧ tatillistesinde ardÄħĊŸÄħk gĵn kullan" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [MOD] = b Her ikisini de kullan (gĵn ve yÄħl)" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr " Sabit tarih listesinde ardÄħĊŸÄħk gĵn kullan" #: src/help.c:795 #, c-format msgid " Set starting day of week (actual: %s)" msgstr " HaftanÄħn baĊŸlangÄħĊŸ gĵnĵnĵ ayarla (mevcut: %s)" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr " ‡ÄħktÄħyÄħ kullanÄħcÄħya `%s' programÄħ aracÄħlÄħğÄħyla gĥnder" #: src/help.c:857 msgid "UNKNOWN" msgstr "BİLİNMEYEN" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" " [%-3s] = Elektronik Posta Adresi, yoksa kullanÄħcÄħ `%s' ye elektronik " "posta gĥnderilir" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr " Sonsuz tatil listesini gĥster (YÄħl aralÄħğÄħ: %d...%d)" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr " n = Kanuni gĵnler ve anÄħ gĵnleri" #: src/help.c:883 msgid " N = Legal days only" msgstr " N = Sadece kanuni gĵnler" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Azalan sÄħrada" #: src/help.c:897 msgid " Suppress leading blank line of eternal holiday list" msgstr " Sonsuz tatil listesinin ilk boĊŸ satÄħrÄħnÄħ gizle" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr " Sonsoz tatil listesinin baĊŸlÄħğÄħnÄħ hari§ tut" #: src/help.c:919 msgid " Provide eternal holiday list with astronomical data" msgstr " Sonsuz tatil listesini astronomik verilerle sağla" #: src/help.c:931 msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr " Sonsuz tatil listesini BahĦ'i tatilleri ile sağla" #: src/help.c:943 msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr " Sonsuz tatil listesini BahĦ'i aylarÄħ ile sağla" #: src/help.c:955 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " Sonsuz tatil listesini Kelt tatilleri ile sağla" #: src/help.c:967 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr " Sonsuz tatil listesini ‡in esnek takvimi tatilleri ile sağla" #: src/help.c:979 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr " Sonsuz tatil listesini ‡in esnek takvimi aylarÄħ ile sağla" #: src/help.c:991 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " Sonsuz tatil listesini ‡in takvimi tatilleri ile sağla" #: src/help.c:1003 msgid " Provide eternal holiday list with Chinese calendar months" msgstr " Sonsuz tatil listesini ‡in takvimi aylarÄħ ile sağla" #: src/help.c:1015 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr " Sonsuz tatil listesini BatÄħ takvimi tatilleri ile sağla" #: src/help.c:1027 msgid " Provide eternal holiday list with Coptic calendar months" msgstr " Sonsuz tatil listesini Coptic aylarÄħ ile sağla" #: src/help.c:1039 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " Sonsuz tatil listesini Etiyopya aylarÄħ ile sağla" #: src/help.c:1051 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" " Sonsuz tatil listesini FransÄħz Devrim takvimi aylarÄħ ile sağla" #: src/help.c:1063 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " Sonsuz tatil listesini Yahudi tatilleri ile sağla" #: src/help.c:1075 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " Sonsuz tatil listesini Yahudi takvimi aylarÄħ ile sağla" #: src/help.c:1087 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " Sonsuz tatil listesini Hint sivil aylarÄħ ile sağla" #: src/help.c:1099 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr " Sonsuz tatil listesini İslami sivil tatilleri ile sağla" #: src/help.c:1111 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr " Sonsuz tatil listesini İslami sivil takvim aylarÄħ ile sağla" #: src/help.c:1123 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" " Sonsuz tatil listesini Japon esnek takvimi tatilleri ile sağla" #: src/help.c:1135 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr " Sonsuz tatil listesini Japon esnek takvimi aylarÄħ ile sağla" #: src/help.c:1147 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " Sonsuz tatil listesini Japon tatilleri ile sağla" #: src/help.c:1159 msgid " Provide eternal holiday list with Japanese calendar months" msgstr " Sonsuz tatil listesini Japon aylarÄħ ile sağla" #: src/help.c:1172 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" " Sonsuz tatil listesini §ok kĵltĵrlĵ yeni yÄħl tatilleri ile sağla" #: src/help.c:1184 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr " Sonsuz tatil listesini Eski Ermeni takvimi aylarÄħ ile sağla" #: src/help.c:1196 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr " Sonsuz tatil listesini Eski MÄħsÄħr takvimi aylarÄħ ile sağla" #: src/help.c:1208 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "" " Sonsuz tatil listesini Ortodoks yeni takvimi tatilleri ile sağla" #: src/help.c:1220 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" " Sonsuz tatil listesini Ortodoks eski takvimi tatilleri ile sağla" #: src/help.c:1232 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" " Sonsuz tatil listesini İran Celali takvimi tatilleri ile sağla" #: src/help.c:1244 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" " Sonsuz tatil listesini Ortodoks yeni takvimi AylarÄħ ile sağla" #: src/help.c:1256 msgid " Provide eternal holiday list with zodiacal marker data" msgstr " Sonsuz tatil listesini bur§ iĊŸaretleri ile sağla" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr " Sonsuz tatil listesini ĵlkelere ĥzel tatiller ile sağla" #: src/help.c:1272 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr " %-3s = Tek ĵlke, bĥlge kodu veya " #: src/help.c:1277 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" " `%s'karakteri ile bağlananlar. # ile iĊŸaretlenen ĵlkeler/" "bĥlgelerin" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr " tatil listesi tamamlanmamÄħĊŸtÄħr." #: src/help.c:1286 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = %s deki tatiller" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" " Referans değerini gĥlgeye bağlÄħ doğuĊŸ/batÄħĊŸ zamanÄħna gĥre ayarla" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr " %-3s = %+.1f...%+.1f aralÄħğÄħndaki a§Äħsal değerli etmenler " #: src/help.c:1322 msgid " Set base data of Earth's atmosphere" msgstr " Dĵnya atmosferini temel veri olarak ayarla" #: src/help.c:1326 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr " %-3s = Hava basÄħncÄħ ve ÄħsÄħ `%s' karakteri ile ayrÄħldÄħ" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " Millibar cinsinden hava basÄħncÄħ (mevcut: %.3f)" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr " Celsius derece cinsinden hava sÄħcaklÄħğÄħ (mevcut: %+.3f)" #: src/help.c:1344 msgid " Limit rise/set times of Sun to the day" msgstr " GĵneĊŸin doğuĊŸ/batÄħĊŸ zamanlarÄħnÄħ gĵn ile sÄħnÄħrla" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" " Astronomik zamanlar mĵmkĵn olan en yĵksek kesinlik ile temsil et" #: src/help.c:1366 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " `%c%c[%s]' kabuk komutlarÄħnÄħ" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " ve \"TVAR[%s|%c%s]KOMUT\" atamalarÄħnÄħ §alÄħĊŸtÄħr" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr " Temel astronomik iĊŸlevlerin temel zamanlarÄħnÄħ değiĊŸtir" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr " Dĥngĵ baĊŸlangÄħ§ tarihini kiĊŸisel olarak değiĊŸtir" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Zaman dengeleme değeri " "(mevcut: %s%02d%s%02d == GMT%s)" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Zaman dengeleme değeri (mevcut: " "%s%02d%s%02d == GMT%s)" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr " Dĥgĵ bitiĊŸ tarihini değiĊŸtir" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] BitiĊŸ zaman değeri " "(mevcut: %02d%s%02d)" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr " Dĥngĵ ilerleme zamanÄħ değiĊŸtir" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" " %-3s = MMMM|HH%s[MM] Zaman ilerleme değeri (mevcut: %02d%s%02d)" #: src/help.c:1453 msgid " Change base year of calendar" msgstr " Takvimin temel yÄħlÄħnÄħ değiĊŸtir" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr " %-3s = [%s|%s]YYYY YÄħl dengeleme değeri (mevcut: %d)" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr " Gregorian Yeniden-oluĊŸum sĵresini ayarla" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " Mevcut uygun sĵre: %02d-%02d %s %0*d" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr " %-*d%*s = Sĵreyi %02d-%02d %s %0*d olarak ayarla" #: src/help.c:1485 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr " %-3s = %s%c%s%s%s%s%s%s Sĵreyi a§Äħk§a ayarla" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr " Veri elemanlarÄħnÄħn sÄħrasÄħnÄħ %s metin bi§imine gĥre ayarla" #: src/help.c:1502 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Mevcut: (%s) `%s' (%s)" #: src/help.c:1504 msgid "self-defined" msgstr "kendince tanÄħmlanmÄħĊŸ" #: src/help.c:1509 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = Bi§im: `%s' (%s)" #: src/help.c:1517 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr " %-3s = Tek tek bi§im tanÄħmla. Uygun bi§im elemanlarÄħ:" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr " œlkeye ĥzel, §evrilebilir ikili karakterler tanÄħmla" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr " %-3s = BœYœK HARF\"\"Kœ‡œK HARF... tanÄħmlar" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" " –rneğin `%s%s%s%s%s%s%s%s' %-3s, Almanya'da kullanÄħlan karakter " #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" " kĵmesinin sahip olduğu B݇EM bi§im talimat bileĊŸenine sahip olan " "baĊŸtaki ĥzel " #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" " karakterlerin ge§erli bağÄħmsÄħz bir tarih bi§imine doğru " "dĥnĵĊŸtĵrĵlmesini sağlar." #: src/help.c:1582 msgid " they are used by the character set used in Germany" msgstr " " #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ SABİT TARİHLER +++" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" " Standart kaynak dosyayÄħ kullan Sabit tarih listesi i§in`.%s%s'" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" " Standart kaynak dosyayÄħ kullan Sabit tarih listesi i§in`.%s%s'" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr " KapsadÄħğÄħ sĵre: Bugĵn" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr " c = Sadece sabit tarihlerin olduğu gĵnleri gĥster" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr " c = Sadece sabit tarihlerin olmadÄħğÄħ gĵnleri gĥster" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr " [MOD] = # ile iĊŸaretlenmiĊŸ bir veya birden fazla dĵzenleyiciler" #: src/help.c:1654 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" " %-3s = sabit tarih listesi i§in kullanÄħlan BaĊŸlÄħk metni" #: src/help.c:1657 #, c-format msgid " Actual: `%s'" msgstr " AsÄħl: `%s'" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" " # g[MOD] = MOD metnini kullanarak sabit tarihleri grupla" #: src/help.c:1682 msgid " 1. Representation of text" msgstr " 1. Metnin a§ÄħklanmasÄħ" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr "" " = Bioritm metin grafiklerinin geniĊŸliğini ayarla" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d...%d Tek bir eksenin uzunluğu" #: src/help.c:1711 msgid " = Set height of the Moon phase text graphics" msgstr "" " = Ay evresi metni grafiğinin yĵksekliğini ayarla" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Toplam satÄħr sayÄħsÄħ" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr " # a = Sabit tarihin kaynağÄħnÄħ gĥster" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr " # A = BaĊŸka bir liste bi§imini kullanarak gĥster" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr " # e = Kanuni ve anÄħsal gĵnleri kapsa" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr " # E = Sadece kanuni gĵnleri kapsa" #: src/help.c:1763 msgid " # k = Display week number" msgstr " # k = Hafta numarasÄħnÄħ gĥster" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = Sabit tarihlerin tekrarlayan gĵnlerini alma" #: src/help.c:1787 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" " # Q = Sabit tarihler listesinin ilk boĊŸ satÄħrÄħnÄħ gizle" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr " # U = Sabit tarihlerin gĵn bĥlĵmĵnĵ gizle" #: src/help.c:1811 msgid " # J = Suppress text part of fixed dates" msgstr " # J = Sabit tarihlerin metin bĥlĵmlerini gizle" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr " # x = Sabit tarih listesinin baĊŸlÄħğÄħnÄħ §Äħkart" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr " # z = Sabit tarihlerin ardÄħĊŸÄħk numarasÄħnÄħ gĥster" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr " # Z = Sabit tarih bulunmayan gĵnleri gĥster" #: src/help.c:1855 msgid " 2. Respected period" msgstr " 2. Uygun sĵre" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr " = ArtÄħk olmayan yÄħlda `29-ĊžUBAT'Äħ ayarla" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february `28-ĊžUBAT'a uy" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march `01-MART'a uy" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" " # d = Sĵre listesi oluĊŸturulmuĊŸsa mevcut tarihi de kapsa" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr " # l = Tek bir sĵre yerine sĵre listesi oluĊŸtur" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr " # Nd = Belirli tek gĵn N" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = Belirli tek gĵn N" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = Bugĵne bağlÄħ tek gĵn N" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s İletir" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr " = %s Geriletir" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr " # Nw = Tam hafta N" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 İlk hafta / ge§en yÄħlÄħnÄħ son haftasÄħ" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr "" " N = 1...52 Birinci...52inci hafta (herzaman)" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53ĵncĵ hafta (bazen)" #: src/help.c:1953 msgid " N = 99 Last week" msgstr " N = 99 Son hafta" #: src/help.c:1956 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # %s%s = %s ayÄħnÄħn tek bir gĵnĵ %s" #: src/help.c:1962 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr "" " # %1$s%2$sN = %4$s ayÄħnÄħn tek N sÄħralÄħ, %3$s'inci hafta i§i " "gĵnĵ" #: src/help.c:1967 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" " N = 1...4 Birinci...4ĵncğ gĵnĵ %s (herzaman)" #: src/help.c:1972 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr " N = 5 5inci gĵnĵ %s (bazen)" #: src/help.c:1976 #, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Son gĵn %s" #: src/help.c:1980 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN%s = Tek N'inci gĵn %s" #: src/help.c:1985 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" " N = 1...51 Birinci...51inci gĵn %s (herzaman)" #: src/help.c:1990 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr " N = 52|53 52|53ĵncĵ gĵn %s (bazen)" #: src/help.c:1994 #, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 HaftanÄħn son gĵnĵ %s" #: src/help.c:1999 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr " # %cwN%s = N'inci haftanÄħn tek gĵnĵ %s" #: src/help.c:2004 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr " N = 0 birinci haftada olmayan %s " #: src/help.c:2009 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" " N = 1...51 %s Birinci...51inci hafta (herzaman)" #: src/help.c:2014 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr " N = 52|53 52|53ĵnci haftanÄħn %s (bazen)" #: src/help.c:2018 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 son haftanÄħn %s " #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr " # %c%c[[%s|%s]N] = Paskalya PazarÄħna gĥre tek gĵn N" #: src/help.c:2030 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" " # %c%c[[%s|%s]N%s] = Paskalya PazarÄħna gĥre haftanÄħn N'inci gĵnĵ" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr " # %c%c[[%s|%s]N] = Bugĵne gĥre N tek gĵn" #: src/help.c:2042 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr " # %c%c[%s|%s]N%s = Bugĵne gĥre haftanÄħn N'inci tek gĵnĵ" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr " # %c?[[%s|%s]N] = Tarih değiĊŸkenine gĥre tek gĵn N" #: src/help.c:2054 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" " # %c?[%s|%s]N%s = Tarih değiĊŸkenine gĥre haftanÄħn N'inci tek gĵnĵ" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr " # t|T = YarÄħnÄħ listele" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Tĵm haftayÄħ listele" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" " [MOD] = %s YarÄħnÄħ haftanÄħn son gĵnĵne kadar listele" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s Dĵnĵ haftanÄħn baĊŸlangÄħĊŸ gĵnĵne kadar " "listele" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Tĵm ayÄħ listele" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" " [MOD] = %s YarÄħnÄħ haftanÄħn son gĵnĵne kadar listele" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s Dĵnĵ haftanÄħn baĊŸlangÄħ§ tarihine kadar " "listele" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Tĵm yÄħlÄħ listele" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" " [MOD] = %s YarÄħnÄħ yÄħlÄħn spn gĵnĵne kadar listele" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" " = %s Dĵnĵ yÄħlÄħn baĊŸlangÄħ§ gĵnĵne kadar listele" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr " Standart kaynak dosya yerine baĊŸka dosya(lar) kullan" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = Sadece sabit tarihler olan gĵnleri gĥster" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr " F = Sadece sabit tarihler olmayan gĵnleri gĥster" #: src/help.c:2173 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr " %-3s = `%s' karakteriyle bağlanan tek dosya veya dosya listesi" #: src/help.c:2184 msgid " Define additional resource file line" msgstr " Ek kaynak dosya satÄħrÄħ tanÄħmla" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Herhangi bir kaynak dosya satÄħrÄħ" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "%cTARİH" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "Bugĵnĵn tarihi yerine verilen `DATE' tarihini kullan" #: src/help.c:2202 #, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" "Tarih bi§imi: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr " %s%cwN[%s], ay[%s], gĵn[N] veya %s" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "%cDOSYA" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "`FILE'dan se§enek ve komutlarÄħ ĥnyĵkle" #: src/help.c:2224 msgid "COMMAND" msgstr "KOMUT" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = Ay aralÄħğÄħ: %d...%d" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr " veya: ay adÄħ | %s | %s%s | %s%s | %s%s" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr " Listele: %s[%s%s]%s...%s%s[%s%s]" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr " AralÄħk: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = yÄħl aralÄħğÄħ: %d...%d" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr " Listele: [%s%s]%s%s...%s[%s%s]%s" #: src/help.c:2257 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr " AralÄħk: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" #: src/help.c:2283 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr " %sh, %s Bu yardÄħm dosyasÄħnÄħ gĥster ve programdan §Äħk" #: src/help.c:2286 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " %shh, %s GeniĊŸletilmiĊŸ yardÄħm dosyasÄħnÄħ gĥster ve programdan §Äħk" #: src/help.c:2290 #, c-format msgid " %sL, %s Display software license and quit program" msgstr " %sL, %s YazÄħlÄħm lisansÄħnÄħ gĥster ve programdan §Äħk" #: src/help.c:2294 #, c-format msgid " %sV, %s Display version information and quit program" msgstr " %sV, %s Sĵrĵm bilgisini gĥster ve programdan §Äħk" #: src/help.c:2302 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " %sp, %s DÄħĊŸ `%s' sayfalayÄħcÄħsÄħ aracÄħlÄħğÄħyla doğrudan §ÄħktÄħ" #: src/help.c:2309 src/help.c:2314 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " %sp, %s Basit i§ sayfalayÄħcÄħsÄħ aracÄħlÄħğÄħyla doğrudan §ÄħktÄħ" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "" "Bu yazÄħlÄħm tamamlanmÄħĊŸ, doğru veya kullanÄħlabilir olduğunu iddia etmez." #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "" "Prensip olarak (dolaylÄħ veya dolaysÄħz olarak) yazÄħlÄħmÄħmÄħ kullanmanÄħzdan " "kaynaklanabilecek" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "herhangi bir zarar veya kayÄħptan sorumlu olmayacağÄħm" #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "Eğer bu programÄħ kullanÄħrsanÄħz bunu koĊŸulsuz olarak kabul edersiniz" #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "kanunen bağlayÄħcÄħ olan anlaĊŸma" #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "BU program ĥzgĵr yazÄħlÄħmdÄħr; değiĊŸtirebilir ve/veya dağÄħtabilirsiniz" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "'GNU Genel Kamu LisansÄħ' kurallarÄħnca yayÄħnlanmÄħĊŸtÄħr." #: src/help.c:2366 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "'–zgĵr YazÄħlÄħm VakfÄħ'; sĵrĵm 3 veya (size kalmÄħĊŸ)" #: src/help.c:2368 msgid "any later version." msgstr "sonraki herhangi bir sĵrĵm" #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "'GNU Genel Kamu LisansÄħ'nÄħn bir kopyasÄħnÄħ almÄħĊŸ olmalÄħsÄħnÄħz" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "bu program yanÄħnda: değilse yazÄħn: " #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" "KullanÄħm: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] " "[%s]]" #: src/help.c:2452 #, c-format msgid "Use `%s %s|[%s?]" msgstr "`%s %s|[%s?] kullanÄħnÄħz" #: src/help.c:2461 msgid "for more information." msgstr "daha fazla bilgi i§in" #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, c-format msgid "Email bug reports to <%s>" msgstr "Hata raporlarÄħnÄħ <%s>'ye postalayÄħnÄħz" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "GNU gcal ana sayfasÄħ: <%s>" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "GNU yazÄħlÄħmÄħ kullanÄħmÄħ hakkÄħnda genel yardÄħm: <%s>" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "–zgĵr yazÄħlÄħmdÄħr; kopyalama koĊŸullarÄħ i§in kaynak kodlara bakÄħnÄħz." #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "İma edilmiĊŸ olsa bile garanti yoktur" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." #: src/help.c:2617 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%s: Gregoryen takvim programÄħ (GNU cal) %s" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "KullanÄħm: %s [[SE‡ENEK...] [%cTARİH] [%cDOSYA...]] [KOMUT]" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "KullanÄħm: %s [[SE‡ENEK...] [%cDOSYA...]] [KOMUT]" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr " 4.0 veya 4.02" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr "5.0'dan sonrasÄħ" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "++ 3.0 veya ĥncesi" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "5.1 veya ĥncesi" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "bilinmeyen derleyici" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr " a§Äħk" #: src/help.c:2827 msgid "(bad version)" msgstr "(kĥtĵ sĵrĵm)" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "bilinmeyen derleyici (SDK?)" #: src/help.c:2942 msgid " later than 4.5" msgstr "4.5'ten sonra" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "++ 1.0 veya sonrasÄħ" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr " 1.0 veya 1.5?" #: src/help.c:3075 msgid "unknown " msgstr "bilinmeyen " #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "sĵrĵm %d.%d" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "sĵrĵm %d" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "bilinmeyen sĵrĵm" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s i§in Alpha)" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s i§in VAX)" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr " (NetBSD sĵrĵm 0.9 ĥncesi)" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 veya sonrasÄħ)" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 veya sonrasÄħ)" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 veya sonrasÄħ)" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "TH" #: src/print.c:566 msgid "Week" msgstr "Hafta" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "pm" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "am" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "dm" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "sds" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "`%s'\n" " dosyasÄħnda komut §alÄħĊŸtÄħrÄħlamÄħyorSatÄħr: %ld %s" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" "`%2$s' dosyasÄħnda komut §alÄħĊŸtÄħrÄħldÄħ (§ÄħkÄħĊŸ kodu=%1$d)\n" "SatÄħr %3$ld: %4$s" #: src/rc-use.c:514 msgid "Emo" msgstr "Duy" #: src/rc-use.c:519 msgid "Int" msgstr "Ent" #: src/rc-use.c:524 msgid "Phy" msgstr "Fiz" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "`Sonsuz tatil listesi'" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "`ݧ'" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr " ; Hafta %s" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "Hafta %s" #: src/rc-utils.c:398 src/rc-utils.c:415 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%s: ge§ersiz tarih veilmiĊŸ -- %s\n" "%s\n" "%s\n" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "`%3$s' dosyasÄħnda artÄħk-gĵn `%1$02d-%2$s' olarak ayarlanmÄħĊŸ" #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "SatÄħr %ld: %s" #: src/rc-utils.c:3634 src/utils.c:275 #, c-format msgid "%s: abort, " msgstr "%s: durdur" #: src/rc-utils.c:3642 #, c-format msgid "illegal variable definition in file `%s'" msgstr "`%s' dosyasÄħnda sÄħradÄħĊŸÄħ değiĊŸken tanÄħmÄħ" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "`%c' değiĊŸkeninin tanÄħmÄħ sÄħradÄħĊŸÄħ" #: src/rc-utils.c:3651 #, c-format msgid "illegal variable operation in file `%s'" msgstr "`%s' dosyasÄħnda sÄħradÄħĊŸÄħ değiĊŸken iĊŸlemi" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "`%c' değiĊŸkeninde sÄħradÄħĊŸÄħ iĊŸlem" #: src/rc-utils.c:3659 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "`%c' değiĊŸkeni `%s' dosyasÄħnda tanÄħmlanmamÄħĊŸ" #: src/rc-utils.c:3663 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "`%2$s' dosyasÄħnda `%1$c' değiĊŸkenine ge§ersiz değer atandÄħ" #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Komut satÄħrÄħnda ge§ersiz -- %s verildi" #: src/rc-utils.c:3696 #, c-format msgid "Argument `%s' of command line ignored." msgstr "Komut satÄħrÄħ argĵmanÄħ `%s' atlandÄħ." #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "SatÄħr %ld atlandÄħ: %s" #: src/tty.c:425 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: daha fazlasÄħ i§in , §Äħkmak i§in <%s>..." #: src/tty.c:1020 #, c-format msgid "environment variable `%s' not found" msgstr "§evresel değiĊŸken `%s' bulunamadÄħ" #: src/tty.c:1027 #, c-format msgid "environment variable `%s' not set" msgstr "§evresel değiĊŸken `%s' ayarlanmadÄħ" #: src/tty.c:1067 msgid "`termcap' file not found" msgstr "`termcap' dosyasÄħ bulunamadÄħ" #: src/tty.c:1072 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "`%s' de bilinmeyen terminal tipi tanÄħmlandÄħ" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: uyarÄħ, %s.\n" "\n" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" "Paskalya PazarÄħ i§in ge§ersiz yÄħl\n" "YÄħl aralÄħğÄħ (%d...%d) arasÄħnda olmalÄħ" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "`%s' satÄħr %ld: sanal bellek aĊŸÄħldÄħ (%s=%d)" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" "`%s'\n" " dosyasÄħnda ge§ersiz gĵn bĥlĵmĵSatÄħr %ld: %s" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "`%2$s' dosyasÄħnda ge§ersiz ay alanÄħ(%1$02d)\n" "SatÄħr %3$ld: %4$s" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "`%2$s' dosyasÄħnda ge§ersiz gĵn alanÄħ(%1$02d)\n" "SatÄħr %3$ld: %4$s" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" "`%s'\n" " dosyasÄħnda bozuk ĊŸekilli %sSatÄħr %ld: %s" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" "`%s'\n" " dosyasÄħnda ge§ersiz tekrarlayan/dĥngĵsel %s SatÄħr %ld: %s" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "`%s' dosyasÄħ bulunamadÄħ" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" "`%2$s' dosyasÄħnda ge§ersiz N'inci gĵn alanÄħ(%1$d)\n" "SatÄħr %3$ld: %4$s" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" "`%s'\n" " dosyasÄħnda tarih bĥlĵmĵnden sonraki 'whitespace' karakteri kayÄħpSatÄħr %ld: " "%s" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "`%s' dosyaasÄħ yazÄħlamadÄħ\n" "Kaydedilecek ortam dolu!" #: src/utils.c:333 #, c-format msgid "sending eMail to <%s> failed" msgstr "<%s>'ye elektronik posta gĥnderimi baĊŸarÄħsÄħz" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "`%s' satÄħr %ld: " #: src/utils.c:342 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "`%s' satÄħr %ld: (`%s') `%s%d' baĊŸarÄħsÄħz" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "`%s' dosyasÄħnda okuma hatasÄħ" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "cevap dosyasÄħ`%s'\n" " da yasadÄħĊŸÄħ karakterSatÄħr %ld: %s" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "" "`%s' satÄħrÄħ %ld: (`%s') tablo bĵyĵklĵğĵ `sizeof %s>%d' i§in ge§ersiz değer" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s') tarih bi§imi `%s' ge§ersiz" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "`%s'arama yolunda %s " #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "ge§ersiz arama yĥntemi `%s' ile arandÄħ" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s' satÄħr %ld: (`%s') baĊŸarÄħlamamÄħĊŸ hata (%d)" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 #, fuzzy msgid "internal" msgstr "Dahili" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: program sinyal ile %d durduruldu \n" #: src/utils.c:1081 msgid "th" msgstr "ĵncĵ" #: src/utils.c:1085 msgid "st" msgstr "inci" #: src/utils.c:1089 msgid "nd" msgstr "nci" #: src/utils.c:1093 msgid "rd" msgstr "rd" #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "ge§ersiz gĵn" #: src/utils.c:1129 msgid "Mon" msgstr "Pts" #: src/utils.c:1134 msgid "Tue" msgstr "Sal" #: src/utils.c:1139 msgid "Wed" msgstr "‡ar" #: src/utils.c:1144 msgid "Thu" msgstr "Per" #: src/utils.c:1149 msgid "Fri" msgstr "Cum" #: src/utils.c:1154 msgid "Sat" msgstr "Cts" #: src/utils.c:1159 msgid "Sun" msgstr "Paz" #: src/utils.c:1180 msgid "Mo" msgstr "Pt" #: src/utils.c:1185 msgid "Tu" msgstr "Sa" #: src/utils.c:1190 msgid "We" msgstr "‡a" #: src/utils.c:1195 msgid "Th" msgstr "Pe" #: src/utils.c:1200 msgid "Fr" msgstr "Cu" #: src/utils.c:1205 msgid "Sa" msgstr "Ct" #: src/utils.c:1210 msgid "Su" msgstr "Pz" #: src/utils.c:1227 msgid "Monday" msgstr "Pazartesi" #: src/utils.c:1227 msgid "Tuesday" msgstr "SalÄħ" #: src/utils.c:1227 msgid "Wednesday" msgstr "‡arĊŸamba" #: src/utils.c:1227 msgid "Thursday" msgstr "PerĊŸembe" #: src/utils.c:1228 msgid "Friday" msgstr "Cuma" #: src/utils.c:1228 msgid "Saturday" msgstr "Cumartesi" #: src/utils.c:1228 msgid "Sunday" msgstr "Pazar" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "ge§ersiz ay" #: src/utils.c:1249 msgid "Jan" msgstr "Oca" #: src/utils.c:1254 msgid "Feb" msgstr "Ċžub" #: src/utils.c:1259 msgid "Mar" msgstr "Mar" #: src/utils.c:1264 msgid "Apr" msgstr "Nis" #: src/utils.c:1269 msgid "May" msgstr "May" #: src/utils.c:1274 msgid "Jun" msgstr "Haz" #: src/utils.c:1279 msgid "Jul" msgstr "Tem" #: src/utils.c:1284 msgid "Aug" msgstr "Ağu" #: src/utils.c:1289 msgid "Sep" msgstr "Eyl" #: src/utils.c:1294 msgid "Oct" msgstr "Eki" #: src/utils.c:1299 msgid "Nov" msgstr "Kas" #: src/utils.c:1304 msgid "Dec" msgstr "Ara" #: src/utils.c:1322 msgid "January" msgstr "Ocak" #: src/utils.c:1322 msgid "February" msgstr "Ċžubat" #: src/utils.c:1323 msgid "March" msgstr "Mart" #: src/utils.c:1323 msgid "April" msgstr "Nisan" #: src/utils.c:1333 msgid "May " msgstr "MayÄħs" #: src/utils.c:1334 msgid "June" msgstr "Haziran" #: src/utils.c:1334 msgid "July" msgstr "Temmuz" #: src/utils.c:1335 msgid "August" msgstr "Ağustos" #: src/utils.c:1335 msgid "September" msgstr "Eylĵl" #: src/utils.c:1336 msgid "October" msgstr "Ekim" #: src/utils.c:1336 msgid "November" msgstr "KasÄħm" #: src/utils.c:1336 msgid "December" msgstr "AralÄħk" #: src/tcal.c:193 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "KullanÄħm: %s [--%s | --%s] | [--%s=[+|-]SAYI] [ARGœMAN...]\n" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: durdur," #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "değiĊŸen değer `%s' ge§ersiz" #: src/tcal.c:909 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: `--%s' se§eneği bir argĵman gerektirir" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: `%s' §alÄħĊŸtÄħrÄħlmasÄħ sÄħrasÄħnda hata oluĊŸtu \n" #: src/txt2gcal.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "KullanÄħm Ċžekli: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "%s: dĵzgĵn bir dosya yok\n" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "%s: dosyasÄħ bulunamadÄħ\n" #: src/gcal2txt.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "KullanÄħm ĊŸekli: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" #~ msgid "Brunei Darussalam" #~ msgstr "Brunei Darussalam" #~ msgid " %-3s = Any text you like, metacharacters are not respected" #~ msgstr "" #~ " %-3s = İstediğiniz herhengi bir metin, meta karakterler ge§erli " #~ "olmayacaktÄħr" #~ msgid "Compilation options:" #~ msgstr "Derleme se§enekleri" #~ msgid "Starting day of week: %s" #~ msgstr "HaftanÄħn baĊŸlangÄħ§ gĵnĵ: %s" #~ msgid "Type of week numbers: %s" #~ msgstr "Hafta numaralarÄħnÄħn bi§imi : %s" #~ msgid "Base year of calendar: %d" #~ msgstr "Takvimin temel yÄħlÄħ: %d" #~ msgid "Gregorian Reformation: %02d-%02d %s %0*d" #~ msgstr "Gregoryen Yeniden OluĊŸum: %02d-%02d %s %0*d" #~ msgid "Date format: (%s) `%s' (%s)" #~ msgstr "Tarih bi§imi: (%s) `%s' (%s)" #~ msgid "Respected countries/territories: %d" #~ msgstr "Uygun ĵlkeler/bĥlgeler: %d" #~ msgid "Time offset value of astronomical functions: %s%02d%s%02d == GMT%s" #~ msgstr "" #~ "Astronomik iĊŸlevler i§in zamansal denkleĊŸtirme değeri: %s%02d%s%02d == GMT" #~ "%s" #~ msgid "or (if this fails) to <%s>." #~ msgstr "veya (eğer bu baĊŸarÄħsÄħz olursa) <%s>." #~ msgid "" #~ " +++ If you specify two digits for the year I DON'T assume %2d%s +++" #~ msgstr " +++ Eğer yÄħl i§in iki basamak belirtirseniz %2d%s varsaymam +++" #~ msgid " +++ `%s' is free software, enjoy =8^) +++" #~ msgstr " +++ `%s' ĥzgĵr yazÄħlÄħmdÄħr, keyfini §ÄħkarÄħn =8^) +++" #~ msgid "NULL argument" #~ msgstr "NULL argĵman" #~ msgid "out of space" #~ msgstr "boĊŸluk dÄħĊŸÄħ" #~ msgid "too many ()" #~ msgstr "§ok fazla ()" #~ msgid "junk on end" #~ msgstr "bitiĊŸ kalitesiz" #~ msgid "*+ operand could be empty" #~ msgstr "*+ operand boĊŸ olabilirdi" #~ msgid "nested *?+" #~ msgstr "yuvalÄħ *?+" #~ msgid "unmatched []" #~ msgstr "tutmayan []" #~ msgid "internal urp" #~ msgstr "i§ urp" #~ msgid "?+* follows nothing" #~ msgstr "?+* hi§birĊŸeyi takip etmiyor" #~ msgid "trailing \\" #~ msgstr "takip§i \\" #~ msgid "internal disaster" #~ msgstr "i§ felaket" #~ msgid "NULL parameter" #~ msgstr "NULL parametresi" #~ msgid "corrupted program" #~ msgstr "hasarlÄħ program" #~ msgid "memory corruption" #~ msgstr "bellek hasarÄħ" #~ msgid "corrupted pointers" #~ msgstr "hasarlÄħ gĥsterge" #~ msgid "internal foulup" #~ msgstr "i§ foulup" #~ msgid "start `%c' " #~ msgstr "baĊŸla `%c' " #~ msgid "anchored " #~ msgstr "§apalÄħ " #~ msgid "must have \"%s\"" #~ msgstr "\"%s\" e sahip olmalÄħ" #~ msgid "corrupted opcode" #~ msgstr "bozulmuĊŸ opcode" gcal-4.1/po/ca.gmo0000664000000000000000000031744213041164031010666 00000000000000Ŝ•,U X`u au"nu‘uuCĥuAúuEwKŠwJÖwM!xDoxF´xFûx@ByAƒyFĊyF z=Sz6‘z7Èz1{72{Aj{EĴ{Cò{A6|Ix|HÂ|H }?T}*”}!ż}$á}4~?;~M{~HÉ~HP[JĴK÷+C€+o€?›€6ۀ4=G@…JĈ>‚JP‚I›‚Kċ‚J1ƒE|ƒDƒJ„DR„1—„1Ʉ9û„45…<j…@§…2è…<†9X†0’†*†Jî†<9‡Mv‡7ćNü‡?KˆB‹ˆ.ΈNŭˆ.L‰B{‰(‰-ç‰;Š-QŠCŠ#ŠçŠK‹JQ‹?œ‹H܋'%ŒJMŒ5˜Œ!Ό4Œ&%"Lo6JĈ.ŽC@Ž:„ŽFżŽ63=5qA§?é5),_JŒEא3‘(Q‘6z‘/ħ‘+á‘7 ’7E’E}’:’ ŝ’0“(P“2y“EĴ“Cò“D6”E{”CÁ”N•LT•OĦ•Bñ•D4–Py–DʖB—HR—K›—Iç—F1˜Dx˜O½˜M ™G[™G£™Jë™J6šMšKϚ=›EY›KŸ›@ë›E,œ9rœ.Ĵœ7ۜ-JA=Œ-ʝJĝ0Cž=tž6²žCéž7-Ÿ=eŸ8£Ÿ9ܟ/ ?F @† 2Ç Fú &AĦHhĦ.ħĦBàĦB#˘Xf˘cż˘]#£5£:·£Eò£G8¤,€¤@­¤Eî¤*4E_EAëC-ĤEqĤ7·Ĥ@ïĤ:0§-k§™§Iı§I¨M¨;i¨:¨=à¨;İ8Zİ<“İ>İ@ŞMPŞ6žŞ;ĠŞĞ#Ğ3ĞKĞcĞzĞ Ğ œĞ İĞ ´Ğ ÀĞÍĞBÖĞĴBĴaĴqĴ(ĴŞĴŻĴ ÎĴÛĴêĴ ­*­1­$8­]­#w­'›­&­/ê­+ F;R+Žş%Î#ôŻ1Ż)FŻpŻ$Ż+²Ż&ŜŻ%°(+°&T°{°=˜°"Ö°#ù° ħ!>ħ"`ħ ƒħ‘ħĦħħħ Ċħħ ħîħ ² ² ²*²=²L²[²5]²“²—²›²޲ ğ² ɲĠ² é²ô²ü² ³³,³;³K³[³.j³ ™³Ĥ³ µ³³ ʳÔ³Ŭ³ ĉ³´%´=´]´}´œ´·´Ò´í´µµ1µIµcµ{µƒµ —µ µݵ³µıµ ɵ!Óµġµĥ &ĥ&0ĥWĥhĥ pĥ ~ĥŒĥĦĥ³ĥıĥÒĥ ëĥ öĥ· · ··2·6· =·G·Z·t·‘·Ĥ··Ö·é·¸ ¸ #¸.¸D¸_¸c¸k¸s¸ Џ —¸¤¸­¸½¸ Ѹܸî¸ıı#ı5ıKı]ınıŠıžıĤıı½ıÄıÌıÔıçıŭışş#ş4ş JşTş kşwş ş‹şŸş ²şş Çş Ôş ßş íşĝş˙şğ7ğNğ`ğiğ yğ†ğ ™ğ ğŻğÀğÈğ ËğÖğ ßğêğñğĵĵ(ĵ =ĵ^ĵqĵ€ĵœĵĞĵ żĵ Ìĵ4Ùĵ0½ ?½ J½V½_½ z½‡½š½нş½½Ù½ê½ï½  "=Ldjp‡žĤŞ Á ÏŬïż żż7ż @ż Jż Wżdż9vż°żÁż ÉżĠżġżÀ"À ;ÀHÀ^ÀmÀ }ÀˆÀÀ˜ÀŞÀ ŻÀ ğÀÉÀÜÀâÀéÀĝÀÁ ÁHÁbÁ€ÁœÁ­ÁÁÍÁŬÁúÁÂ'Â;ÂPÂgÂ~š´ÂÎÂÂúÂŝ ,%Hn• İ ·ĊÎ× ê÷Ä)Ä>ÄUÄ gÄsÄ‡Ä ‹Ä ™Ä§ÄĥÄÎÄÖÄ ÜÄ èÄôÄĊĊ /Ċ ;ĊHĊhĊ‚Ċ†Ċ.™ĊÈĊâĊ ôĊĈĈĈ!Ĉ6Ĉ?ĈWĈfĈvĈ‹Ĉ2“ĈĈĈÊĈ ĉĈ ñĈŝĈÇ Ç#Ç;ÇLÇaÇxÇ|DžǤÇıÇ0ËÇ1üÇ1.È*`È.‹È:şÈ;ġÈ:1ÉlÉŒÉ“É›ÉŻÉżÉÈÉ%ÜÉÊÊ4ÊTÊWÊ^Ê qÊʐÊÊİÊ°Ê¸Ê ÇÊÑÊÙÊ àÊ íÊËË'Ë/ËJËZËiË}ËŒË œËŞË"żËâËÌÌ-ÌCÌ^ÌpÌwÌ }Ì ‡Ì“Ì ĴÌ·Ì ÉÌ×Ì÷ÌÍ-Í 4Í AÍKÍ SÍ ^ÍlÍ{Í ’ÍÍ ˘ÍĴͳÍÍÚÍÍëÍ ñÍûÍÎ.ÎJÎ NÎ [Î1fÎ˜ÎŻÎżÎ ÓÎàÎïÎ ĝÎÏÏ Ï'ÏBÏ]ÏAeÏ §Ï²ÏıÏÊÏäÏŝÏ/I_gz œ İ,żìñùŭÑ-Ñ4Ñ:ÑPÑaÑuÑŠÑ’Ñ–ÑžÑ˘Ñ¨ÑÀÑĜÑòÑÒ ÒÒÒÒ Ò,Ò <Ò HÒSÒ[ÒdÒ{Ò’ÒĤÒĈÒ ßÒêÒúÒÓÓ "Ó-Ó BÓMÓ eÓpÓ#ƒÓ§Ó½ÓÄÓ'×Ó˙ÓÔÔÔ &Ô2Ô QÔ_Ô tÔ Ô‹ÔĦÔ ŞÔ ¸ÔÔÚÔÔ4òÔ'Ġ -Ġ :ĠGĠ.aĠĠ —Ġ˘ĠĞĠ°Ġ ĥĠ Ġ ÎĠÙĠéĠíĠóĠ ÖÖ"Ö 7Ö BÖMÖ bÖoօֲ֝ÖÖÖÖóÖ ×× ×1× C×P× `× k×u×y×~×†×Ž×  ×­×´××××ë×ŭ× ĜĜĜĜ!Ĝ)Ĝ;Ĝ OĜ1ZĜ ŒĜ —Ĝ£ĜĞĜğĜ ÏĜÜĜ öĜÙÙ'Ù /Ù:ÙKÙcÙwÙˆÙžÙĥÙÎÙÙöÙ üÙÚ ÚÚ9Ú$WÚ|ÚœÚ ĞÚ ĥÚÄÚÍÚäÚ óÚ ˙Ú ÛÛÛ+Û 0Û:Û BÛcÛ€Û‡Û‹Û/”Û9ÄÛ-ŝÛ ,Ü8ÜHÜPÜWÜ[ÜcÜs܄ܙÜÜE³ÜùÜŬ(ŬCŬ[ŬxŬ”ŬŬÈŬÌŬŬÙŬ ßŬëŬòŬŜŜ"Ŝ +Ŝ8ŜRŜZŜ iŜwŜ†Ŝ •ŜŸŜ°ŜĈŜÊŜŜèŜĝŜ ß#ß 'ß 5ß @ßLßUß\ßeß nß(yߢ߿ßÙßéßüßà .à<à MàYàmà„àŠà“à¨à°àÀàÏàŜà îàúà á $á1áEáWáká„á ”áŸáħáÀá Ûáċáġáŭáâ ,â:âAâJâ\ârâ0‰âşâÓâÖâßâùâ - ;F\s‰ –  ­ĵ Ĝĉîò ä ää5ä GäTä gätä †ä ‘ä ä Ğä ıäĊäáää ċċ 3ċAċ Jċ Wċeċyċ ŽċšċŻċ¸ċÁċ Öċäċóċ ĉĉ ĉ#ĉ 5ĉ(BĉkĉˆĉŽĉ žĉ Şĉ·ĉÇĉÚĉíĉŭĉçç-ç?çNç^çmç }ç ‡ç•çŞçÂçÛçëçŝçèè(è<èLè]ènè è è›èĴèÁèÖèĉè÷èéé4éMé Védé0zéĞéżé Óéáéäéêéûéê/ê3ê:êMê Uê`êê ê ›êê Ĵê ·ê Äêê"ê!ë(ë@ëQëfëzëëëĥëÉëàëöë ìì4ìJì^ìqìì”ììµìÉìâì˙ì íí í(í ?íMíPí díoí€íœíğíÚíîíîî:,î=gîDîCêî.ï2ï ;ïEïTïkïrïzïŒï ’ïžï¤ïµï ĊïÒïĉï üï5)=g†‰§Ğ³ĵÄ ËĜñĝ ññ.ñ5ñ=ñDñLñ hñrñŽñ£ñ ĥñÄñÚñïñòò5òLòfò"}ò òĥòÌòáòġò ó"ó5óJóaóyóó¤óÀó×óïó ô ô6ôMôbô~ô—ô°ôÇôäô˙ôġ)ġ>ġYġtġ‘ġĴġÄġĜġëġöö1öMöeö{öö=•ö0Óö8÷K=÷7‰÷.Á÷÷(ĝ *ĝ 5ĝCĝ KĝUĝ eĝsĝ ‰ĝ –ĝ˘ĝĞĝ´ĝĥĝËĝäĝŝĝùù/ù2ù 6ù @ùKùPù Xùbùtù ƒù ù›ù °ùĵùÏùàùéùùòùúù ú ú)úHúhúúC ú äú úúúûûû(û7,û#dûAˆû*Êû/ġû%ü <üGü%`ü.†üµü¸ü Ëü5Ĝüŭŭŭ#/ŭ!Sŭuŭ.|ŭĞŭżŭĠŭÙŭ4âŭ#ŝ";ŝ(^ŝ'‡ŝ8Żŝ+èŝ ˙1 ˙ R˙3`˙5”˙%Ê˙4˙N%Ftğ&ÊHñ:>=|‚ 𠍵 Òßûŝ #%;a$q – ĦĦŻQ$iŽ£=ĥCôE8B~+ÁKíO9J‰IÔKLjI·N@PL‘KŜN* ?y Bı >ü 6; Br Eµ Jû FF B J L Ih >² *ñ   ; <\ F™ Uà P6L‡UÔP*N{-Ê-ĝ?&6f56Ó@ LK8˜JÑHOeJµB=CNA)1<1n, ;Í= :G?‚9Â(ü-%LS? Eà;&IbCĴF77Io1ıEë*18\G•2ŬF$W|JœMç95Fo/ĥIĉ>0!o:‘)Ì+ö$":GF‚@ÉH ?Se“>ù:8<s@°@ñ02 'c @‹ AÌ %!=4!4r!8§!?à!E "Ef"NĴ"]û"$Y#8~#0·#7è#? $>`$6Ÿ$>Ö$=%GS%F›%Kâ%<.&?k&MĞ&>ù&=8'Av'F¸'E˙'@E(?†(IĈ(H)DY)Dž)C)D'*=l*<Ş*3ç*B+D^+0£+MÔ+.",AQ,:“,:Î,c -?m-7­-‡ċ-<m.LŞ.D÷.O"> <>J>[>#z>ž>>>Í>í>2 ?/>?4n?+£?Ï?:ĉ?6!@X@5v@2Ĵ@ß@%û@(!AJA'hA*A)ğA(ċA$B'3B[BDyB B#ßBC!"C.DCsCˆCšCĴCÀCĠCíCDD/DGD\DtDƒD–D3˜DÌDDÔDçDE EE 5EBEKE^E gEˆE›E­EÄE;ĠEF"F2FHF PF\FeF"nF‘F°F!ĈF èF G)G FGgGG–GİGÁGĜGñGHH!H5HDHHHNHdHsH“HħH ĊH3ÏHII&I9ISIjII…IIĥIÈIÛIIçIúIJJ J*J >J_J}J“JħJĈJ ÛJüJK K*K FKgKkKsK{K •K £KħKşKÎK ĉKôKLL*L>LQLhL{LL­L ĊLÒLÛLêLñLùLMM8M@MIMbMtM‹MŸMıMÈMÑMàM˙M N#N,N gMgRgZg^gugzgg‰g˘gĥgÍgċgígñg÷gûghh7hUh lhvhzhh…h Šh˜hĞh şhĊh ÍhÙhóh i$iAi Wibiri‰ii ˜ii½i Ói ôi˙ijj2j;j4UjŠj‘j™jŻj¸jÌj Ójájk kk8k Ak Ok Ykzk“k:•kk Ökkók1lBl IlUl^lclil }l ‹l–lħlµlğlÑlâlñl m mm-m?m Xmym ˜mmÂm"Ĝmûmn1nQnhn xn „nn˜nœnĦn°n¸nÑnänënŭno&o;oOoRoVo^ofowo”o o,şo çoòoppp)p!8p Zpdpp‘pšpŻpÀpŬp÷pqq8qXqvqq–qq­qĵqĜq!ġq r8r Nr\r lrwr ‘r Ÿr Ĵrĥr½rĈrÚr ßr ìr ÷rs,s4s8s1As6ss+ŞsÖsìs üst ttt!)tKtatvtG{ttÜtütu2uQuou u°u´u¸uÁuÇuĜuàuüuv!v*v9vQvYvmv~v‘v İv´vÊvèvìv w ww :wDwHw Ywgwvwwˆw ‘ww(³w Üwŭwx+xCx#ax…x˜x ŻxğxĠxïx ġxyy$y7yLy`yryy#™y½yÒyÚy îy!ĝyz1z@zXzmz Šz—z­zµzzĜzézzĝz {){,@{m{…{ ˆ{”{Ĵ{Â{È{Û{ ì{÷{|&|D|H|Q|d|t|†| |Ğ|³|·|Ì|Ġ|ï|}})} ?}M} e} p} |} Š}˜}§}Ċ} Ú} û} ~ &~4~ <~ I~W~ l~ ~"˜~ ğ~ Ç~Ò~ é~÷~ & /=W)q›ğ Ùĉú €"€8€K€`€s€…€›€Ż€€Ԁ ĉ€ó€:Pb| ‘°ǁځ큂‚+‚A‚U‚j‚‚’‚‚ş‚ςî‚ ƒƒ,ƒ6Cƒzƒ—ƒ²ƒĊƒȃ΃ꃄ%„)„2„E„ X„b„}„„ ž„Ğ„³„„Ĝ„à„ï„…,… @…N…^…n…}… ‘…ž……Á…Ӆä…󅆆(† 7†C† R† _† k†!y†›†˘† ݆ µ†ż†!Ά†‡‡ ‡#‡<‡Z‡z‡”‡ §‡´‡ˇB܇DˆHdˆ<­ˆêˆîˆġˆ‰‰1‰8‰@‰Y‰_‰n‰t‰‘‰‰‰Ĝ‰ ì‰>ú‰59Š$oДЗзŠğŠŠԊŬŠ ċŠòŠ‹‹#‹2‹D‹ K‹V‹]‹f‹‚‹"‘‹´‹΋è‹û‹Œ$Œ9ŒOŒgŒ}Œ–ŒĴŒŒ׌쌍)>Pdz‘¤şĠëŽŽ1ŽFŽ\ŽpދޤŽĵŽӎòŽ!7Keıġ  8Sj—?Ÿ4ߐ?‘MT‘9˘‘0ܑ ’$!’ F’Q’e’ m’x’’Ÿ’¸’ɒŬ’ĉ’î’’“#“9“P“_“w“z“~“‡“™“ Ħ“ Ĵ“·“̓ߓġ“”'”8”V” o”y”€” ‚”” “”%”!”!ċ”•!&•FH••˜•Ğ••ʕҕە:ߕ$–H?–0ˆ–9ı–ó– —"—9—6Q—ˆ—,‹—¸—9ȗ˜ ˜˜($˜+M˜y˜8˜¸˜֘ô˜ĝ˜@™(O™&x™2Ÿ™1ҙIšDNš “šFĦš èšFöšA=›3›D³›Yĝ›IRœœœ.ĥœOċœ5B7z}1ħ ĝ= ž$ž@žBžJž MžYžož2Œžżž5Ӟ Ÿ ŸŬ¨³Â;ĵ)ÙákñŠŻŸšò m`áWïŞ6NKg)GF(' YÜqaıï'}p4yÛ"aÛ8<ux”ċŭeF.lìmüÏž˜²ó¤ÏÌ3ĝäRŽi1rÚq $‘g,cG3_ôóCn9ÙbÖp“3hâç”'š·éM°:#y]ZĠ›ĦqŻô(ŻĴi*c=ǍżÓéš ğLnˉAÒˆâRú…öħDŞ~\xd§|J8:E>ûÌ[İ/ò9Ô[reò…Ñğŭ_‚™²m‡z^ƒ%{JA 9Ù•áh:´şġxl´Ž³àvĈ?£„Ĥİ ı`oš„d;Mx6bšât\;ÒÂàžYf$¨ÒĝlM›ĊĠRqċ<PkŒ,“‡P·İ1ÀHg0N˜(‚ı D™’à—zNv÷UE^*ŜµÂÀŬ#ƒSŜ]uî}ğxÈ—úGQríŠkç~ÎĠÇĞDi1Ħ<˘?0R\'âV ÑċT6÷Ġ ³s‘Ċï F×É|í$€%KE’Ë@=×ÁQÍ:˘ÄÚI°×çŝúŭòZ•^ôĉ-j`#ħèœOqìÓfe„$7cߪ€ù5£)Œĥbü½äfîK?aô…żïtJ˙}\yŭĉIjÀJ>œìd‘7] ë?şphfġZ „ÜĉĝĠĤYÇÎF¤ ¨ŠC~ƒUŽÔ ¤-£d^6ğdöv[!3ŝ—Pı~üö v’ŸÖÒbFH…óäÜÊ[_X+ŝÔWàÜS9Ħ,£†5&É Wé*ıÑÍ{t4ß_Íjżì42Ú5"" 3Aݏ˘4{€ùS–0Á·+¤PÑĜ4sßRS@½˙7wVñ–/<˙3²½kzɽ ûĊ…VV‹NñVuU!ŒÓxŞĉ@ôtg0zĤD‡ž=Ӑ –M,CÒû;ê‡,Ñ0JrAeöëIÁÚ²r!s!ğ]wġŸħµ.zá&—ġ“o1k&”ĵ%) ĈŝêË´Ŭv€ħç­ }•+‰ù£sLŜÌ=UêµZ q³w´ÌBï>°f0œÉ(§ÀÎó+İ}ü_ñÇ–M)¸ÓNĊÔd'L‰ċpß÷-Œwp >ZWa Ec†8‹Şb FßŭŜ‹s+•6ĈSşĞĴÄ ĝoéÛ&­$2]µ)W [XÉm v9n°pĵŸ~”=Ÿ=­›ùH7ĜÄOg§ĥÚ[eŒ™è22./..-²è˘5DBU ‰ >Ç*ĞÈÖĦgĞhIT"%˙ħÄy#@ż´5Oĥƒ¸ QÍ_Ŝĸwœë­oO}êGXÊÈRiZh?Yн˜‹˘mj!ĥÛ†ÙÊ&%Ĝ͒8‘“T„# 'tˆBnĵP·ĴŠûAŽ(Ĝ:6H‘Gâa/n/÷Ï|yäwËËÛIH?Ù—o-mD@QY™Êˆ€CcBü`­8˙~·ġĵĉŬhJÀe9  *fĦĝ4A`¸níùëö˜S¤O$Ϙ8Xllu†›2{<Öèb.–ŻL+@ ˆúäÈĴÎuEíPŬĤĈÁ"ĥ!›uşĊ \™•XTc†|^|YIëá;%^ÎL&1XîèT÷TíyÈO# LW>i |`N’B”K{{‹ÏKµQH\sóol‡B"żÔGjì-‚³ž1ܨ]Êaò7ji (à¨×rk‚û7C ž5Žzˆƒçċ:,2şñ×;ÌŝKUCéœÁĴ‚ Q<ÖVĜ*ĈEMút§ĞİĤ/°ê %s: abort, %s: program aborted by signal %d %s: warning, %s. `%s' line %ld: %-3s = %d...%d Length of a single axis %-3s = %d...%d Total number of lines %-3s = february Respect at `28-FEBRUARY' %-3s = march Respect at `01-MARCH' = %s Backwards = %s List yesterday until starting day of month = %s List yesterday until starting day of week = %s List yesterday until starting day of year N = 0 %s which isn't located in 1st week N = 0 1st week / last week of previous year N = 1...4 1st...4th weekday %s (always) N = 1...51 %s of 1st...51st week (always) N = 1...51 1st...51st weekday %s (always) N = 1...52 1st...52nd week (always) N = 5 5th weekday %s (sometimes) N = 52|53 %s of 52|53rd week (sometimes) N = 52|53 52|53rd weekday %s (sometimes) N = 53 53rd week (sometimes) N = 9 Last weekday %s N = 99 %s of last week N = 99 Last week N = 99 Last weekday %s = Manage `29-FEBRUARY' in non-leap years = Set height of the Moon phase text graphics = Set width of the biorhythm text graphics or: month name | %s | %s%s | %s%s | %s%s [MOD] = %s List tomorrow until ending day of month [MOD] = %s List tomorrow until ending day of week [MOD] = %s List tomorrow until ending day of year %s%cwN[%s], month name[%s], weekday name[N] or %s MOD = %s Forwards %-*s = Holidays in %s %c = Exclusion of all %s Air pressure in Millibar (actual: %.3f) Air temperature in degrees Celsius (actual: %+.3f) E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2 E.g. %sH \x2%s\xAE Use hex values 2 and AE for sequence 1 E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca' E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to `bar' E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4 E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of List: %s[%s%s]%s...%s%s[%s%s] List: [%s%s]%s%s...%s[%s%s]%s Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s expressions separated by `%s' characters is a LOWER-CASE-LETTER, it means a non-exclusion! marked by # have an incomplete recording of holidays the preceding special characters in an individual date format, they are used by the character set used in Germany which are connected by `%s' characters. Countries/territories, which has a STYLE format instruction component, and that, how # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday # %c%c[[%s|%s]N] = Single day N relative to today's date # %c?[%s|%s]N%s = Single N'th weekday relative to date variable # %c?[[%s|%s]N] = Single day N relative to date variable # %cdN = Single absolute day N # %cdN%s = Single N'th weekday %s # %cwN%s = Single weekday %s of N'th week # %s%s = Single day %s of month %s # %s%sN = Single N'th weekday %s of month %s # A = Display using alternative list format # E = Include legal days only # J = Suppress text part of fixed dates # NMOD = Single day N relative to today # Nd = Single absolute day N # Nw = Complete week N # Q = Suppress leading blank line of fixed dates list # U = Suppress date part of fixed dates # Z = Display dates, for which fixed dates doesn't exist # a = Display origin of fixed date # d = Include actual date if list of periods is generated # e = Include legal days and memorial days # g[MOD] = Group fixed dates by day using text MOD # k = Display week number # l = Generate list of periods instead of a single period # m|M[MOD] = List complete month # o = Omit repeating date part of fixed dates # t|T = List tomorrow # w|W[MOD] = List complete week # x = Exclude title of fixed date list # y|Y[MOD] = List complete year # z = Display consecutive number of fixed date 1. Representation of text 2. Respected period = "TVAR[%s|%c%s]COMMAND" definitions separated by `%s' characters = abort Like `all' and abort if file name can't be handled = all Like `handled' and `unhandled' together = handled Like `internal' and file names which are handled = no Standard week numbers = unhandled Like `internal' and file names which are unhandled Actual respected period: %02d-%02d %s %0*d Actual: (%s) `%s' (%s) Change base time of astronomical functions Change base year of calendar Change cycle-ending time Change cycle-timestep Create response file for the `%cFILE' option Create shell script which contains the arguments of command line Define additional resource file line Define global date variable(s) "DVAR->a...d|f...s|u...|z" Define global text variable(s) "TVAR->%ca...%cz" Define translatable country specific special character pairs Determine type of week numbers (actual: %s) Direct output through external `%s' pager Direct output through simple internal pager Disable highlighting of text, holiday resp., actual day Display eternal holiday list (Year in range: %d...%d) Display extended help text and quit program Display help text and quit program Display only those fixed dates, whose date is not excluded by %s Display only those fixed dates, whose text is matched by %s Display software license and quit program Display some debug information Display version information and quit program Exclude title of eternal holiday list Execute `%c%c[%s]' shell commands Export local date variables from file to file Export local text variables from file to file Forces highlighting sequences if output is redirected/piped Ignore case distinctions if `%s' option is given Implies period: Today Limit rise/set times of Sun to the day Modify format of year calendar Provide calendar sheet with week numbers Provide eternal holiday list with BahĦ'i calendar holidays Provide eternal holiday list with BahĦ'i calendar months Provide eternal holiday list with Celtic calendar holidays Provide eternal holiday list with Chinese calendar holidays Provide eternal holiday list with Chinese calendar months Provide eternal holiday list with Chinese flexible calendar holidays Provide eternal holiday list with Chinese flexible calendar months Provide eternal holiday list with Christian Western calendar holidays Provide eternal holiday list with Coptic calendar months Provide eternal holiday list with Ethiopic calendar months Provide eternal holiday list with French Revolutionary calendar months Provide eternal holiday list with Hebrew calendar holidays Provide eternal holiday list with Hebrew calendar months Provide eternal holiday list with Indian civil-calendar months Provide eternal holiday list with Islamic civil-calendar holidays Provide eternal holiday list with Islamic civil-calendar months Provide eternal holiday list with Japanese calendar holidays Provide eternal holiday list with Japanese calendar months Provide eternal holiday list with Japanese flexible calendar holidays Provide eternal holiday list with Japanese flexible calendar months Provide eternal holiday list with Old-Armenic calendar months Provide eternal holiday list with Old-Egyptic calendar months Provide eternal holiday list with Orthodox new-calendar holidays Provide eternal holiday list with Orthodox old-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar months Provide eternal holiday list with astronomical data Provide eternal holiday list with country specific holidays Provide eternal holiday list with multicultural New Year holidays Provide eternal holiday list with zodiacal marker data Represent astronomical times and data with utmost precision Revert the sense of matching of the `%s' option Send output via `%s' program to user Set EXIT status of program to %d on `%s' etc. Set base data of Earth's atmosphere Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday) Set order of date elements using the %s format text Set period of Gregorian Reformation Set reference value for rise/set time respectively shadow length Set starting day of week (actual: %s) Suppress leading blank line of eternal holiday list Suppress output of calendar sheet explicitly Use alternative file(s) instead of standard resource file Use consecutive day of year in calendar sheet Use consecutive day of year in eternal holiday list Use consecutive day of year in fixed date list Use leap year rule of Eastern Orthodox churches Use special format for calendar sheet Use standard resource file `%s%s' for fixed date list Use standard resource file `.%s%s' for fixed date list respectively, change cycle-starting time %-3s = Single file or list of files connected by `%s' characters [MOD] = %s Descending sort order [MOD] = One or more of the following modifiers which are marked by # %-*d%*s = Set period to: %02d-%02d %s %0*d %-3s = "DVAR%s%s%s" definitions separated by `%s' characters %-3s = "TVAR%sTEXT" definitions separated by `%s' characters %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %s%c%s%s%s%s%s%s Set period explicitly %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d) %-3s = Air pressure and temperature separated by `%s' character %-3s = Angular value respectively factor in range: %+.1f...%+.1f %-3s = Any possible resource file line %-3s = Any text respectively "regular expression" you like %-3s = Define individual format. Respected format elements are: %-3s = File name of the shell script %-3s = Highlighting sequence pairs separated by `%s' characters %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]' %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d) %-3s = One or more of the following characters. If character %-3s = Single country resp., territory code or a list of these, %-3s = Store arguments of command line in file %s %-3s = UPPER-CASE-LETTER""LOWER-CASE-LETTER... definitions %-3s = [%s|%s]YYYY Year offset value (actual: %d) %-3s = yes ISO-8601:1988 week numbers %-6s = Format is: `%s' (%s) C = Display those dates, for which fixed dates doesn't exist, too F = Display those dates, for which fixed dates doesn't exist, too N = Legal days only [MOD] = b Use both date notations (day of month+year) %sL, %s Display software license and quit program %sV, %s Display version information and quit program %sh, %s Display this help text and quit program %shh, %s Display extended help text and quit program %sp, %s Direct output through external `%s' pager %sp, %s Direct output through simple internal pager [%-3s] = Email address, otherwise eMail is send to user `%s' [%-3s] = internal Information if program internal maximums are reached [MOD] = - Use standard format for calendar sheet [MOD] = b Use both date notations (day of month+year) (%.4s for Alpha) (%.4s for VAX) (BSD/386 1.1 or later) (FreeBSD 2.0 or later) (NetBSD 1.2 or later) (NetBSD before 0.9) 1.0 or 1.5? 4.0 or 4.02 ; Week %s = %+4d day = %+4d days `HERE' c = Display only those dates, for which fixed dates exists day f = Display only those dates, for which fixed dates exists later than 4.5 later than 5.0 n = Legal days and memorial days on # Day number (must be defined)# Month name# Month number# Weekday name (may be defined)# Year number (must be defined)%cDATE%cFILE%s = Month in range: %d...%d%s in search pattern `%s'%s%*s = Year in range: %d...%d%s%s contains %d maximum entries now!%s%s: for more, <%s> to quit...%s: The Gregorian calendar program (GNU cal) %s%s: Use `%s %s' with one of these arguments%s: abort, %s: command in environment variable `%s' found -- %s %s %s %s: error during program execution of `%s' %s: file not found %s: invalid date given -- %c%s %s %s %s: invalid date given -- %s %s %s %s: invalid option -- %s%s: no regular file %s: option `%s' doesn't allow an argument%s: option `%s' is ambiguous%s: option `%s' requires an argument%s: option `--%s' doesn't allow an argument%s: option `--%s' requires an argument%s: option requires an argument -- %s%s: option with ambiguous argument -- %s%s: option with invalid argument -- %s%s: unrecognized option `%s'%s: warning, eMail with empty message body not sent to <%s>. %s:%*sThe year %0*d is A leap year%s:%*sThe year %0*d is NO leap year%s:%*sThe year %d is A leap year%s:%*sThe year %d is NO leap year(`%s') date format `%s' is invalid(bad version)++ 1.0 or later++ 3.0 or later+++ FIXED DATES +++1st Advent1st Sunday in Lent2nd Advent2nd Sunday in Lent3rd Advent3rd Sunday in Lent4th Advent4th Sunday in Lent5.1 or earlier7-5-3 Festival:ALIGNMENT group (exactly one member must be defined):AMOARGAborigines DayAdelaide Cup DayAdmission DayAfghanistanAga Khan's BirthdayAlaska DayAlbaniaAleksis Kivi DayAlgeriaAlice-Springs Show DayAll Fool's DayAll Saints' DayAll Saints' EveAll Souls' DayAll format elements marked by # may optionallyAlphabet DayAmerican SamoaAmericas DayAndorraAngam DayAngola #AnguillaAnniversary of Amir's SuccessionAnniversary of Armed StruggleAnniversary of AucklandAnniversary of Canterbury NorthAnniversary of Canterbury SouthAnniversary of Chatham IslandsAnniversary of Green MarchAnniversary of Hawkes' BayAnniversary of MarlboroughAnniversary of NelsonAnniversary of OtagoAnniversary of SouthlandAnniversary of TaranakiAnniversary of WellingtonAnniversary of WestlandAnnularAntigua and BarbudaAntillian DayAnzac DayAprAprilArab League DayArbor DayArchbishop Makarios' Memorial DayArchbishop Makarios' Name-DayArengo AnniversaryArgentinaArgument `%s' of command line ignored.Armed Forces DayArmeniaArmistice DayArmy Coup DayArrival of the SwissArtigas' BirthdayArubaAscension of Abdu'l-BahaAscension of Baha'u'llahAsh MondayAsh WednesdayAshura'AstAsuncion DayAtaturk Memorial DayAugAugustAustraliaAustralia/CanberraAustralia/New South WalesAustralia/Northern TerritoryAustralia/QueenslandAustralia/Southern AustraliaAustralia/TasmaniaAustralia/VictoriaAustralia/Western AustraliaAustriaAuthority's Power DayAzerbaijanBa'ath Revolution DayBackslash ('%c') characterBahBahamasBahrainBahĦ'i New Year's DayBangladesh #Bank HolidayBarbadosBaron Bliss DayBasque National DayBataan DayBattle of AngamosBattle of BoyacĦBattle of BoyneBattle of CaraboboBattle of IquiqueBattle of Las PiedrasBattle of N¤felsBattle of PueblaBeginning of Financial YearBeginning of SummerBelarusBelgiumBelgrade's DayBelizeBeltaneBenin #Benito JuĦrez DayBennington Battle DayBermudaBhutan #Birth of Baha'u'llahBirth of the BabBlessing of the WaterBloomsdayBodhidharma's BirthdayBoganda DayBoliviaBonaire DayBoqueron Battle DayBosnia-HerzegovinaBosses' DayBotswanaBotswana DayBounty DayBouvet IslandBoxing DayBrazilBringing Home the Herds DayBringing in the Harvest DayBritish Virgin IslandsBuddha's BirthdayBulgariaBunker Hill DayBurkina FasoBurning of Jan HusBurns NightBurundi #C. Mapinduzi DayCOMMANDCWCambodia #CameroonCamoes DayCanadaCanada/AlbertaCanada/British ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland and LabradorCanada/Nova ScotiaCanada/OntarioCanada/Prince Edward IslandCanada/QuİbecCanada/SaskatchewanCanada/YukonCanberra DayCannot calculate lunisolar calendar for %d correctlyCannot execute command in file `%s' Line: %ld %sCape VerdeCaricom DayCarnivalCasimir Pulaski's BirthdayCassinga DayCatherine Show DayCayenne FestivalCayman IslandsCelCentral African Republic #Cesar Chavez DayChadCharacter replacement:Charter DayChen/DragonChiChiang Kai-shek's BirthdayChildren's DayChildren's White SundayChileChinaChinese New Year's DayChinese New Year's EveChou/OxChrChrist's Ascension DayChristmas DayChristmas EveChristmas IslandsChrysanthenum DayCitizenship DayCivic HolidayCocos Islands (Keeling)ColombiaColon DayColorado DayColumbus DayComing of Age DayCommand executed (exit code=%d) in file `%s' Line %ld: %sCommonwealth DayComorosCompact DayCompiled with %s%s for %s%s%s%sConfederal Agreement DayConfucius' BirthdayConstitution AnniversaryCook IslandsCoptic New Year's DayCoronation DayCosmonauts' DayCosta RicaCreatedCroatiaCross Raising DayCubaCulture DayCup Match DayCustom Chief's DayCycleCyprusCzech RepublicC´te d'IvoireDDarwin Show DayDate format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Day after Mid-Autumn FestivalDay after Tomb-Sweeping DayDay of AndaluciaDay of CataloniaDay of GaliciaDay of GoodwillDay of Prayer and RepentanceDay of ReconciliationDay of Students RevoltDay of the CovenantDay of the Free LaosDeath of H. ChristopheDeath of J. DessalinesDeath of President AbdallahDeath of President CheikhDeath of President SoilihDeath of Qaid-i-AzamDeath of T. LouvertureDecDecemberDeclaration of the BabDefenders DayDefenders of Motherland DayDemocratic People's Republic of KoreaDemocratic Republic of Congo #DenmarkDia de los MaestrosDia del PadreDiscovery DayDjiboutiDominicaDominican RepublicDouble-9 DayDownfall of the DergueDr. Sun Yat-sen's BirthdayDragon Boat FestivalDry Season CelebrationDuarte's BirthdayDynasty DayE. Hostos' BirthdayEGOEaster MondayEaster SundayEaster TuesdayEconomic Liberation DayEcuadorEgyptEid-al-AdhaEid-al-FitrEid-i-Milad-un-NabiEight Hours DayEindhoven's LiberationEl SalvadorElection DayElections for National AssemblyEmail bug reports to <%s>EmoEmperor's BirthdayEnd of highlighting sequence/marking characterEpiphany/Three King's DayEquatorial GuineaEquinox DayEritreaErrol Barrow DayEstoniaEternal holiday listEthiopiaEthiopic New Year's DayEvacuation DayEve of EpiphanyExpedition of the 33FAO DayFORMAT group (exactly one member must be defined):FRRFalkland Islands (Malvinas)Family DayFarmers' DayFaroesFather Leval DayFather's DayFeast of Corpus ChristiFeast of FortuneFeast of Heart JesusFeast of Our TheotokosFebFebruaryFederated States of MicronesiaFestival of LanternsFestival of SadehField contents is converted to capitalized wordsField contents is converted to lower-case lettersField contents is converted to upper-case lettersField contents is cut after position WIDTHField contents is not cut after position WIDTHField contents placed at the left margin using width WIDTHField contents placed at the right margin using width WIDTHField contents placed in centered manner using width WIDTHField has the width N (%d...%d)Fiji #FinlandFirst Day of RidvanFisherman's DayFlag DayFlemish Culture DayFormer Yugoslav Republic of MacedoniaFoundation of NPLA DayFounding of People's PartyFounding of the Communist PartyFrFranceFrench Culture DayFrench GuianaFrench PolynesiaFrench RevolutionaryFriFridayFridaysFriendship DayFull MoonGabon #GambiaGarifuna DayGeneral San Martin's AnniversaryGeorgiaGerman Unity DayGermanyGermany/Baden-WĵrttembergGermany/BavariaGermany/BerlinGermany/BrandenburgGermany/BremenGermany/HamburgGermany/HesseGermany/Lower SaxonyGermany/Mecklenburg-West PomeraniaGermany/North Rhine-WestphaliaGermany/Rhineland PalatinateGermany/SaxonyGermany/Saxony-AnhaltGermany/Schleswig-HolsteinGermany/ThuringiaGhadirGhanaGibraltarGood FridayGood Saturday/Easter EveGospel DayGrandparents' DayGreat BritainGreat Britain/England and WalesGreat Britain/Northern IrelandGreat Britain/ScotlandGreeceGreenery DayGreenlandGrenadaGrotto DayGroundhog DayGuacanaste DayGuadalupe Virgin's DayGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Gustavus Adolphus' DayGuyana #Hai/PigHaitiHalloweenHannukah/Festival of LightsHealth and Sport's DayHeard and Mc Donald IslandsHebHeritage DayHeroes DayHighlighting group (all members must be defined):Ho Chi Minh's BirthdayHobart Show DayHoly Innocent's DayHoly TrinityHoly WednesdayHondurasHong KongHuman Rights DayHungaryHuravee DayHurricane Supplication DayHurricane Thanksgiving DayIcelandIf you use this software, you agree without any exception to thisImamat DayImbolgIndependence DayIndependence Movement DayIndependence ProclamationIndependence of CartagenaIndependence of CuencaIndependence of GuayaquilIndependence of QuitoIndia #Indian Arrival DayIndian New Year's DayIndonesia #IntInternalInternal Autonomy DayInvalid argument in command line given -- %sIraqIrelandIslIslamic New Year's DayIslamic Republic of IranIsraelItalyJ. Barbosa's BirthdayJ. Chilembwe DayJ. Diego's BirthdayJ. Robert's BirthdayJamaicaJanJanuaryJapJapanJapanese New Year's DayJapanese New Year's EveJefferson Davis' BirthdayJesus' CircumcisionJordanJulJulyJunJuneJune HolidayKamarampaka DayKartini DayKazakhstanKenya #Kiev DayKim Il-Sung's BirthdayKim Jong-Il's BirthdayKing Kamehameha DayKing Rama I Memorial Day/ChakriKing Rama V Memorial DayKiribati #KnabenschiessenKonstantin and MethodiusKuwaitKwanzaaKyrgyzstanL. Rivera's BirthdayLabour DayLabour Thanksgiving DayLag B'OmerLao Tze's BirthdayLaos People's Democratic Republic #Lapp National HolidayLatviaLaunceston Cup DayLeap-day set to `%02d-%s' in file `%s'.LebanonLesothoLiberation DayLiberiaLiberty DayLibyan Arab Jamahiriya (Libya)LiechtensteinLine %ld ignored: %sLine %ld: %sLithuaniaLoss of Muslim NationLughnasaLunar EclipseLuxembourgLuxembourg City KermisLyndon B. Johnson DayMMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.MacauMadagascar #Madaraka DayMahatma Gandhi's BirthdayMail from \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaldivesMaliMaltaMalvinas DayManila DayMao/RabbitMaputo City DayMarMarchMarien Ngouabi DayMarine DayMarshall IslandsMartin L. King's DayMartinimasMartiniqueMartyrdom of the BabMartyrs' DayMary - Blessed VirginMary's Annunciation DayMary's Ascension DayMary's CandlemasMary's ExpectationMary's Immaculate ConceptionMary's MaternityMary's NameMary's NativityMary's SacrificeMary's VisitationMaryland DayMaundy ThursdayMauritaniaMauritiusMayMay May DayMayotteMelbourne Cup DayMerchant DayMexicoMi-CarŞme DayMid-Autumn FestivalMid-Spring FestivalMid-Year FestivalMissionary DayMoMonMonacoMondayMondaysMondays...FridaysMondays...ThursdaysMongolia #Month group (exactly one member must be defined):MontserratMorazan DayMoroccoMosheshoe's DayMother in Law's DayMother's DayMotherhood and Beauty DayMozambiqueMusic Water BanquetMyanmar (Burma) #NamibiaNaming DayNational Bun DayNational Foundation DayNational Heroes DayNational HolidayNational Mourning DayNational Redemption DayNational Resistance DayNational Revival DayNational Unity DayNauruNdadaye DayNepal #NetherlandsNetherlands Antilles/BonaireNetherlands Antilles/Cura§aoNetherlands Antilles/Saba and StatiaNetherlands Antilles/St MaartenNeutrality DayNevada DayNew CaledoniaNew MoonNew Regime AnniversaryNew Year's DayNew ZealandNicaraguaNigerNigeriaNinth Day of RidvanNiueNobel DayNoi DayNorthern Marian Islands (Saipan)Noruz/Persian New Year's DayNorwayNovNovemberNumerical value is filled with leading zero(es)Numerical value is provided with an ordinal number suffixNumerical value is provided with leading signNurses' DayNuzul-al-Qur'anOAU DayOPTIONOctOctoberOctober HolidayOil Industry DayOld-Armenic New YearOld-Egyptic New YearOmanOn principle I will not be liable for ANY damages or losses (implicitOrthodox New Year's DayOur Lady Aparecida DayOur Lady of Altagracia DayOur Lady of Camarin DayOur Lady of Las Mercedes DayOur Lady of Los Angeles DayOur Lady of Seven SorrowsOur Lady of Victories DayOxNOxOPakistanPalauPalm SundayPanamaPanama City DayPanamerica DayPapua New GuineaParaguayParent's DayParis Peace Agreement DayPartialPassion SundayPatriot's DayPeace FestivalPeach FestivalPenumbralPeople Power DayPeople's Uprising DayPerPercent ('%c') characterPeruPesach/PassoverPhilippine-American FriendshipPhilippinesPhyPichincha DayPicnic DayPioneer DayPitcairnPolandPortugalPoya DayPrayer DayPreload options and commands from `FILE'President Lincoln's BirthdayPresidential InaugurationPresidents' DayPresidents' InformPrince Kalanianaole DayPrince of Wales' BirthdayPrincess' DayProclamation DayPuerto RicoPurim/Feast of LotsQaid-i-Azam's BirthdayQatarQuds DayQuinquagesima SundayRamadanRatu Sukuma DayRecreation DayReferendum DayReformation DayRegatta DayRegency ExchangeRemembrance/Memorial DayRepublic DayRepublic of Congo #Republic of KoreaRepublic of MoldovaRespect for the Aged DayRestoration DayReturn DayReunification DayRevolution DayRio de Janeiro AnniversaryRizal DayRogation SundayRomaniaRosh Hashana/New Year's DayRussian FederationRwagasore DayRwandaRİunionS. Doe's BirthdaySAR Establishment DaySIGN (may be defined):STYLE group (exactly one member may be defined):SUFFIX (may be defined):SaSaba DaySaint-Pierre and MiquelonSamhain/Celtic New Year's DaySamoaSan Jacinto DaySan Josİ DaySan MarinoSao Paulo AnniversarySao Tomİ and PrincipeSapporo Snow FestivalSatSaturdaySaturdaysSaudi ArabiaSchool HolidaySeason Change/Bean-FestivalSechsel¤utenSenegalSepSeparation DaySeptemberSeptuagesima SundaySerbia and MontenegroSeretse Khama DaySettlers DaySeven Sleepers DaySeward's DaySexagesima SundaySeychellenShab-e QadrShab-e-Bara'tShab-e-Mi'rajShaheed DayShavuot/Giving of the TorahSheep FestivalSheikh Zayed's Ascension DayShen/MonkeyShrove Tuesday/Mardi GrasShushan PurimSi/SnakeSierra LeoneSimchat TorahSimon Bolivar's DaySinai-Liberation DaySingapore #Slave-Liberation DaySlovakiaSloveniaSniff the Breeze DaySolar EclipseSolidarity DaySolomon IslandsSolstice DaySomaliaSomers DaySoot-Sweeping DaySouth AfricaSouth Georgia and South Sandwich IslandsSpace/blank ('%c') characterSpainSpring FestivalSri Lanka #St Agata DaySt Andrew's DaySt Bartholomew DaySt Berchtold's DaySt Canute's DaySt Cedilia's DaySt Charles' DaySt David's DaySt Demetrius' DaySt Dİvote DaySt Edward's DaySt Eliah's DaySt George's DaySt HelenaSt James' DaySt Jean Baptiste DaySt John's/Midsummer DaySt John's/Midsummers EveSt Joseph's DaySt Kitts and NevisSt Laurentius DaySt LuciaSt Lucia's DaySt Marguerite's DaySt Maroon's DaySt Michael's DaySt Nicholas' DaySt Nicholas' EveSt Olav's DaySt Olav's EveSt Patrick's DaySt Paul's ShipswreckSt Peter and St PaulSt Rose of LimaSt Stephen's DaySt Ursula's DaySt Valentine's DaySt Vincent and GrenadinesSt Vincent de Paul's DayStandardStar FestivalStart of common monthStart of highlighting sequence/marking characterStart of leap monthStatia-American DayStudent's DaySuSudanSuez Victory DaySukkot/Feast of TabernaclesSultan Qaboos' BirthdaySunSundaySunday of the DeadSundaysSuriname #Svalbard and Jan Mayen IslandsSvetitskhovlobaSwallow DaySwazilandSwedenSweden DaySweetest DaySwitzerlandSwitzerland/AargauSwitzerland/Appenzell AusserrhodenSwitzerland/Appenzell InnerrhodenSwitzerland/Basel-StadtSwitzerland/BernSwitzerland/FribourgSwitzerland/Gen¨veSwitzerland/GlarusSwitzerland/GraubĵndenSwitzerland/JuraSwitzerland/LuzernSwitzerland/Neuch˘telSwitzerland/NidwaldenSwitzerland/ObwaldenSwitzerland/SchwyzSwitzerland/SolothurnSwitzerland/St GallenSwitzerland/ThurgauSwitzerland/TicinoSwitzerland/UriSwitzerland/ValaisSwitzerland/VaudSwitzerland/ZugSwitzerland/ZĵrichSylvester/New Year's EveSyrian Arab Republic (Syria)TaiwanTajikistanTanzaniaTeacher's DayTennant-Creek Show DayTerritory DayThThai New Year's DayThailand #Thanksgiving DayThe Crown Prince's BirthdayThe Crown Princesse's BirthdayThe Crown Princesse's Name-DayThe King's BirthdayThe King's Name-DayThe Queen's BirthdayThe Queen's Name-DayThere is NO warranty, without even the implied warranty ofThis is free software; see the source for copying conditions.This program is free software; you can redistribute it and/or modifyThis software doesn't claim completeness, correctness or usability.ThuThursdayThursdaysTiradentes DayTisha B'Av/Fasting DayTogo #TokelauTomb-Sweeping DayTongaTopou I DayTotalTown Meeting DayTraditional DayTransfer DayTransfiguration DayTrinidad and Tobago #Truman DayTry to open (level: %02d) include file `%s'... %s%s%sTry to open%sresource file `%s'... %s%s%sTry to write %s `%s'... %s%s%sTuTu B'Shevat/New Year of TreesTueTuesdayTuesdaysTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluTwelfth Day of RidvanTynwald DayU.S. Virgin IslandsU.S.A.UNKNOWNUgandaUkraineUnderscore ('%c') characterUnion DayUnion with Sweden dissolvedUnited Arab EmiratesUnited Nations DayUnited StatesUnited States/AlabamaUnited States/AlaskaUnited States/ArizonaUnited States/ArkansasUnited States/CaliforniaUnited States/ColoradoUnited States/ConnecticutUnited States/DelawareUnited States/District of ColumbiaUnited States/FloridaUnited States/GeorgiaUnited States/HawaiiUnited States/IdahoUnited States/IllinoisUnited States/IndianaUnited States/IowaUnited States/KansasUnited States/KentuckyUnited States/LouisianaUnited States/MaineUnited States/MarylandUnited States/MassachusettsUnited States/MichiganUnited States/MinnesotaUnited States/MississippiUnited States/MissouriUnited States/MontanaUnited States/NebraskaUnited States/NevadaUnited States/New HampshireUnited States/New JerseyUnited States/New MexicoUnited States/New YorkUnited States/North CarolinaUnited States/North DakotaUnited States/OhioUnited States/OklahomaUnited States/OregonUnited States/PennsylvaniaUnited States/Rhode IslandUnited States/South CarolinaUnited States/South DakotaUnited States/TennesseeUnited States/TexasUnited States/UtahUnited States/VermontUnited States/VirginiaUnited States/WashingtonUnited States/West VirginiaUnited States/WisconsinUnited States/WyomingUnity Factory DayUruguayUsage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...] Usage: %s [--%s | --%s] | [RESOURCE-FILE | -] Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART] Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]Use `%s %s|[%s?]Use given `DATE' instead of today's dateUzbekistanValborg's EveVanuatuVenezuelaVenice CarnivalVeteran's DayVictor-Schoelcher DayVictoria DayVictory DayVidovdanViet NamWW. Tubman's BirthdayWIDTH (must be defined):Wallis and Futuna IslandsWaning Half MoonWaqf-al-ArafatWaxing Half MoonWeWedWednesdayWednesdaysWeekWeek %sWei/SheepWest Virginia DayWestern SaharaWhit MondayWhitsun EveWhitsunday/PentecostWomen's DayWomen's Shrove DayWorld Animal DayWu/HorseXu/DogYYap DayYemenYin/TigerYom Ha Azmaut/Independence DayYom Hashoah/Holocaust MemorialYom Hazikaron/Soldiers MemorialYom Kippur/Atonement DayYom Yerushalayim/Jerusalem DayYou should have received a copy of the `GNU General Public License'You/RoosterYouth DayZERO (may be defined):ZambiaZi/RatZimbabweZod[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]`%s' line %ld: (`%s') `%s%d' failed`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'`%s' line %ld: (`%s') unmanaged error (%d)`%s' line %ld: virtual memory exhausted (%s=%d)`Eternal holiday list'`Internal'`termcap' file not foundagreement, which binds you LEGALLY !!along with this program; if not, write to the:amany later version.command linecontain a format instruction, which template is like:d'"defaultenvironment variableenvironment variable `%s' not foundenvironment variable `%s' not setfailedfile `%s' can't be written Storage media full!file `%s' not foundfor more information.h'"holidaysillegal character in response file `%s' Line %ld: %sillegal definition of variable `%c'illegal operation on variable `%c'illegal variable definition in file `%s'illegal variable operation in file `%s'invalid N'th weekday field(%d) in file `%s' Line %ld: %sinvalid date part in file `%s' Line %ld: %sinvalid dayinvalid day field(%02d) in file `%s' Line %ld: %sinvalid monthinvalid month field(%02d) in file `%s' Line %ld: %sinvalid recursive/cyclic %s in file `%s' Line %ld: %sinvalid search pattern `%s' specifiedinvalid value assigned to variable `%c' in file `%s'invalid year for computing Easter Sundays date Year must be in range (%d...%d)it under the terms of the `GNU General Public License' as published bylegal holidaysmalformed %s in file `%s' Line %ld: %smissing `whitespace' character after date part in file `%s' Line %ld: %sndor explicit), which result from using or handling my software.pmrdread error in file `%s'response fileself-definedsending eMail to <%s> failedshell scriptshift value `%s' is invalidstsuccessthunknown unknown compilerunknown compiler (SDK?)unknown terminal type defined in `%s'unknown versionvariable `%c' undefined in file `%s'version %dversion %d.%dProject-Id-Version: gcal 3.00 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 2002-04-23 13:47+0200 Last-Translator: Ernest Adroguİ Calveras Language-Team: Catalan Language: ca MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit X-Bugs: Report translation errors to the Language-Team address. %s: programa avortat, %s: programa avortat pel senyal %d %s: atenci³, %s. `%s' l­nia %ld: %-3s = %d...%d Longitud de l'eix %-3s = %d...%d Nombre total de l­nies %-3s = february Respecte el 28 de Febrer %-3s = march Respecte l'1 de Mar§ = %s Endarrera = %s Llista des d'ahir fins a principis de mes = %s Llista des d'ahir fins a principis de setmana = %s Llista des d'ahir fins a principis d'any N = 0 %s que no es troba a la 1a setmana N = 0 1a / şltima setmana de l'any passat N = 1...4 1r...4t dia %s de la setmana (sempre) N = 1...51 %s de la 1a...51a setmana (sempre) N = 1...51 1r...51¨ dia %s de la setmana (sempre) N = 1...52 1a...52a setmana (sempre) N = 5 5¨ dia %s de la setmana (de vegades) N = 52|53 %s de la 52|53a setmana (de vegades) N = 52|53 Dia 52|53 %s de la setmana (de vegades) N = 53 53a setmana (de vegades) N = 9 šltim dia %s de la setmana N = 99 %s de l'şltima setmana N = 99 šltima setmana N = 99 šltim dia %s de la setmana = Considera el 29 de Febrer en anys corrents = Defineix l'al§ada del gr fic de la fase lunar = Defineix l'amplada del gr fic del bioritme o: nom del mes | %s | %s%s | %s%s | %s%s [MOD] = %s Llista des de dem  fins a finals de mes [MOD] = %s Llista de dem  i fins a finals de setmana [MOD] = %s Llista des de dem  fins a finals d'any %s%cwN[%s], nom del mes[%s], nom del dia[N] o %s MOD = %s Endavant %-*s = Festes a %s %c = Exclusi³ de %s Pressi³ de l'aire en mil·libars (actual: %.3f) Temperatura de l'aire en graus cent­grads (actual: %+.3f) P.e. %sH %s%s*%s* Usa els car cters `*' i `*' per la seqĵ¨ncia 2 P.e. %sH \x2%s\xAE Usa els valors 0x2 i 0xAE per la seqĵ¨ncia 1 P.e. %sr %ca%sfoo Assigna la sortida de l'ordre `foo' a `%ca' P.e. %sr %ca%sfoo%s%cb%sbar Defineix `%ca' com `foo' i `%cb' com `bar' P.e. %sv a%s1127%sb%s054 Defineix `a' com Nov 27 i `b' com Maig 4 P.e. a `%s%s%s%s%s%s%s%s' %-3s provoca la conversi³ correcta dels Llista: %s[%s%s]%s...%s%s[%s%s] Llista: [%s%s]%s%s...%s[%s%s]%s Abast: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s Abast: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s expressions separades per car cters `%s' LLETRA MINšSCULA, significa no exclusi³! amb un signe # tenen un registre de festes incomplet car cters especials precedents en un format de data individual, en el joc de car cters utilitzat a Alemanya connectats per car cters `%s'. Els paŻsos/territoris marcats que tİ una instrucci³ de format ESTIL, com s³n utilitzats # %c%c[%s|%s]N%s = Dia N de la setmana relatiu al Diumenge de Pasqua # %c%c[%s|%s]N%s = Dia N de la setmana relatiu a la data d'avui # %c%c[[%s|%s]N] = Dia N relatiu al Diumenge de Pasqua # %c%c[[%s|%s]N] = Dia N relatiu a la data d'avui # %c?[%s|%s]N%s = Dia N de la setmana relatiu a la variable de data # %c?[[%s|%s]N] = Dia N relatiu a la variable de data # %cdN = Dia absolut N # %cdN%s = Dia N de la setmana %s # %cwN%s = Dia %s de la setmana N # %s%s = Dia %s del mes %s # %s%sN = Dia N de la setmana %s del mes %s # A = Usa un format de llista alternatiu # E = Inclou nomİs els dies oficials # J = Suprimeix el text de les dates fixes # NMOD = Dia N relatiu a la data actual # Nd = Dia absolut N # Nw = Setmana completa N # Q = Suprimeix la l­nia inicial en blanc de la llista # U = Suprimeix la data de les dates fixes # Z = Mostra els dies que no tenen cap data fixa # a = Mostra l'or­gen de la data fixa # d = Inclou la data actual a la llista de per­odes # e = Inclou els dies oficials i commemoratius # g[MOD] = Grup de dates fixes per dia amb el text MOD # k = Mostra els nombres setmanals # l = Genera una llista de per­odes, no d'un de sol # m|m[MOD] = Llista del mes complet # o = Omet la part repetitiva de les dates fixes # t|T = Llista de dem  # w|W[MOD] = Llista de la setmana completa # x = Exclou el t­tol de la llista de dates fixes # y|Y[MOD] = Llista de l'any complet # z = Mostra el nombre consecutiu de la data fixa 1. Representaci³ del text 2. Per­ode respectat = "TVAR[%s|%c%s]ORDRE" definicions separades per car cters `%s' = abort Com `all' i avorta si el nom de fitxer no es pot usar = all Com `handled' i `unhandled' junts = handled Com `internal' i els noms de fitxer que s'usen = no Nombres setmanals est ndards = unhandled Com `internal' i els noms de fitxer que no s'usen El per­ode respectat actual İs: %02d-%02d %s %0*d Actual: (%s) `%s' (%s) Canvia el temps base de les respectives funcions Canvia l'any base del calendari Canvia l'hora del final del cicle Canvia la durada del cicle Crea un fitxer de resposta per l'opci³ `%cFILE' Crea un shell script amb els arguments de la l­nia d'ordres Defineix una l­nia adicional en el fitxer de recursos Defineix la variable global de data "DVAR->a...d|f...s|u...|z" Defineix la variable global de text "TVAR->%ca...%cz" Defineix les parelles de car cters especials traduŻbles espec­fiques del pa­s Determina el tipus de nombres setmanals (actual: %s) Dirigeix la sortida cap al paginador extern `%s' Dirigeix la sortida cap al paginador intern simple Desactiva el ressalt de text, de festius, i dia actual Mostra la llista eterna de festes (Anys entre %d i %d) Mostra el text d'ajuda detallat i surt Mostra el text d'ajuda i surt Mostra nomİs aquelles dates fixes, no excloses per %s Mostra nomİs aquelles dates fixes que corresponen a %s Mostra la llic¨ncia i surt Mostra informaci³ per a la depuraci³ del programa Mostra informaci³ sobre la versi³ i surt Exclou el t­tol de la llista eterna de festes Executa les ordres `%c%c[%s]' de l'int¨rpret (shell) Exporta les variables locals de data d'un fitxer a un altre Exporta les variables locals de text d'un fitxer a un altre For§a el ressalt encara que la sortida sigui redirigida/reconduŻda Amb l'opci³ `%s' ignora les difer¨ncies entre majşscules i minşscules Implica el per­ode: Avui Hora l­mit de la sortida/posta de sol del dia Modifica el format del calendari anual Escriu el calendari amb els nombres setmanals Escriu la llista amb les festes del calendari BahĦ'i Escriu la llista amb els mesos del calendari BahĦ'i Escriu la llista amb els dies festius celtes Escriu la llista amb les festes del calendari xin¨s Escriu la llista amb els mesos del calendari xin¨s Escriu la llista amb les festes del calendari xin¨s flexible Escriu la llista amb els mesos del calendari xin¨s flexible Escriu la llista amb les festes del calendari cristi  occidental Escriu la llista amb els mesos del calendari copte Escriu la llista amb els mesos del calendari eti²pic Escriu la llista amb els mesos del calendari revolucionari franc¨s Escriu la llista amb les festes del calendari hebreu Escriu la llista amb els mesos del calendari hebreu Escriu la llista amb els mesos del calendari indi civil Escriu la llista amb les festes del calendari isl mic civil Escriu la llista amb els mesos del calendari isl mic civil Escriu la llista amb les festes del calendari japon¨s Escriu la llista amb els mesos del calendari japon¨s Escriu la llista amb les festes del calendari japon¨s flexible Escriu la llista amb els mesos del calendari japon¨s flexible Escriu la llista amb les mesos de l'antic calendari armeni Escriu la llista amb els mesos de l'antic calendari egipci Escriu la llista amb les festes del nou calendari ortodox Escriu la llista amb les festes del vell calendari ortodox Escriu la llista amb les festes del calendari persa Escriu la llista amb els mesos del calendari persa Escriu la llista amb dades astron²miques Escriu la llista amb les festes espec­fiques d'un pa­s Escriu la llista amb les festes d'any nou "multiculturals" Escriu la llista amb dades del zod­ac Representa el temps i dades astron²miques amb la m xima precisi³ Inverteix el sentit de l'opci³ `%s' Envia la sortida a l'usuari a travİs del programa `%s' Defineix l'estat de SORTIDA en %d per `%s', etc. Defineix les dades base de l'atmosfera terrestre Defineix els parells 1 (=dia actual) i 2 (=festiu) de la seqĵ¨ncia de ressalt Defineix el format de la data, d'acord amb el text %s Defineix el per­ode de la reforma gregoriana Defineix el valor de refer¨ncia a l'hora de la posta i la sortida del sol respectivament de la llargada de l'ombra Defineix el dia inicial de la setmana (actual: %s) Suprimeix la l­nia en blanc inicial de la llista eterna de festes Suprimeix expl­citament la sortida del full del calendari Usa fitxer(s) alternatiu(s) en lloc del fitxer de recursos est ndard Usa els dies de l'any en el full del calendari Usa els dies de l'any a la llista eterna de festes Usa els dies de l'any a la llista de dates fixes Usa la regla de l'any de trasp s de l'Esglİsia Ortodoxa Usa un format especial pel full del calendari Usa el fitxer de recursos `%s%s' per la llista de dates fixes Usa el fitxer de recursos est ndard `.%s%s' astron²miques, canvia l'hora d'inici del cicle %-3s = Un şnic fitxer, o una llista connectada per car cters `%s' [MOD] = %s Ordre descendent [MOD] = Un o mİs dels segĵents modificadors marcats amb el signe # %-*d%*s = Defineix el per­ode en: %02d-%02d %s %0*d %-3s = "DVAR%s%s%s" definicions separades per car cters `%s' %-3s = "TVAR%sTEXT" definicions separades per car cters `%s' %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Valor de l'hora final (actual: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Difer¨ncia hor ria (actual: %s%02d%s%02d == GMT%s) %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Difer¨ncia hor ria (actual: %s%02d%s%02d == GMT%s) %-3s = %s%c%s%s%s%s%s%s Defineix el per­ode expl­citament %-3s = 1|2|3|4|6|12 Nombre de blocs (actual: %d) %-3s = Pressi³ de l'aire i temperatura separats pel car cter `%s' %-3s = Valor angular del factor respectivament, de %+.1f a %+.1f %-3s = Qualsevol l­nia possible del fitxer de recursos %-3s = Qualsevol text per cada "expressi³ regular" que volgueu %-3s = Defineix el format individual. Els elements respectats s³n: %-3s = Nom de fitxer del shell script %-3s = Parells de la seqĵ¨ncia de ressalt separats per car cters `%s' %-3s = Llista de `%c[DATA][%c[DATA]]' i/o `%c[DATA][%c[DATA]]' %-3s = MMMM|HH%s[MM] Valor de la durada (actual: %02d%s%02d) %-3s = Un o mİs dels segĵents car cters. Si el car cter İs una %-3s = Un şnic pa­s, codi de territori, o una llista d'aquests, %-3s = Desa els arguments de la l­nia d'ordres en el fitxer %s %-3s = LLETRA-EN-MAJšSCULA""LLETRA-EN-MINšSCULA... definicions %-3s = [%s|%s]YYYY Valor de compensaci³ anual (actual: %d) %-3s = yes nombres setmanals d'acord amb l'ISO-8601:1988 %-6s = El format İs: `%s' (%s) C = Mostra tambİ els dies pels quals no existeix cap data fixa F = Mostra els dies, encara que no es corresponguin amb cap data fixa N = Nomİs dies oficials [MOD] = b Usa les dues notacions (dia del mes i de l'any) %sL, %s Mostra la llic¨ncia del programa i surt %sV, %s Mostra informaci³ sobre la versi³ i surt %sh, %s Mostra aquest text d'ajuda i surt %shh, %s Mostra el text d'ajuda detallat i surt %sp, %s Dirigeix la sortida al paginador extern `%s' %sp, %s Dirigeix la sortida al paginador intern simple [%-3s] = Adre§a electr²nica, o el correu s'envia a l'usuari `%s' [%-3s] = internal Informa si el programa assoleix els m xims interns [MOD] = - Usa el format est ndard pel full del calendari [MOD] = b Usa les dues notacions (dia del mes i de l'any) (%.4s per Alpha) (%.4s per VAX) (BSD/386 1.1 o superior) (FreeBSD 2.0 o superior) (NetBSD 1.2 o superior) (NetBDS anterior a la 0.9)1.0 o 1.5? 4.0 o 4.02 ; Setmana %s = %+4d dia = %+4d dies `AQU' c = Mostra nomİs aquells dies, pels quals existeixen dates fixes dia f = Mostra nomİs aquells dies pels quals existeixen dates fixes superior a la 4.5 posterior a la 5.0 n = Dies oficials i commemoratius en # Nombre del dia (s'ha de definir)# Nom del mes# Nombre del mes# Nom del dia (es pot definir)# Nombre de l'any (s'ha de definir)%cDATA%cFITXER%s = Mes, entre %d i %d%s en el patr³ de recerca `%s'%s%*s = Any, entre %d i %d%s%s contİ el m xim (%d) d'entrades possibles!%s%s: per mİs informaci³, <%s> surt...%s: El programa del calendari gregori  (GNU cal) %s%s: Useu `%s %s' amb un d'aquests arguments%s: programa avortat, %s: ordre trobada a la variable d'entorn `%s' -- %s %s %s %s: s'ha produŻt un error durant l'execuci³ de `%s' %s: no s'ha trobat el fitxer %s: heu introduŻt una data no v lida -- %c%s %s %s %s: heu introduŻt una data inv lida -- %s %s %s %s: opci³ no v lida -- %s%s: no s'ha trobat el fitxer regular %s: l'opci³ `%s' no permet cap argument%s: l'opci³ `%s' İs ambigua%s: l'opci³ `%s' requereix un argument%s: l'opci³ `--%s' no permet cap argument%s: l'opci³ `--%s' requereix un argument%s: l'opci³ requereix un argument -- %s%s: opci³ amb argument ambigu -- %s%s: opci³ amb argument no v lid -- %s%s: opci³ no reconeguda `%s'%s: atenci³, no s'ha enviat un correu electr²nic en blanc a <%s>. %s:%*sL'any %0*d İs de trasp s%s:%*sL'any %0*d NO İs de trasp s%s:%*sL'any %d İs de trasp s%s:%*sL'any %d NO İs de trasp s(`%s') el format de la data `%s' no İs v lid(versi³ incorrecta)++ 1.0 o superior++ 3.0 o superior+++ DATES FIXES +++1r Diumenge d'Advent1r Diumenge de Quaresma2n Diumenge d'Advent2n Diumenge de Quaresma3r Diumenge d'Advent3r Diumenge de Quaresma4t Diumenge d'Advent4t Diumenge de Quaresma5.1 o anteriorFestival del 7-5-3:ALINIAMENT (s'ha de definir exactament un element):MAAARGDia dels AborigensDia de la Copa d'AdelaidaDia de l'Admissi³AfganistanAniversari d'Aga KhanDia d'AlaskaAlb niaDia d'Aleksis KiviAlg¨riaDia de la Mostra d'Alice-SpringsDia dels BromistesDia de Tots SantsVig­lia de Tots SantsDia dels DifuntsTots els elements de format marcats amb un # poden contenirDia de l'AlfabetSamoa AmericanaDia de les Am¨riquesAndorraDia d'AngamAngola #AnguillaAniversari de la Successi³ d'AmirAniversari de la Lluita ArmadaAniversari d'AucklandAniversari de Canterbury del NordAniversari de Canterbury del SudAniversari de les Illes ChathamAniversari de la Marxa VerdaAniversari de la Badia de HawkesAniversari de MarlboroughAniversari de NelsonAniversari d'OtagoAniversari de SouthlandAniversari de TaranakiAniversari de WellingtonAniversari de WestlandAnularAntigua i BarbudaDia de les AntillesDia dels AnzacAbrAbrilDia de la Lliga €rabDia de l'ArbreRecord de l'Arquebisbe MakariosSant de l'Arquebisbe MakariosAniversari d'ArengoArgentinaS'ha ignorat l'argument `%s' de la l­nia d'ordres.Dia de les Forces ArmadesArm¨niaDia de l'ArmisticiDia del Cop de l'Ex¨rcitArribada dels SuŻssosAniversari d'ArtigasArubaAscensi³ d'Abdu'l-BahaAscensi³ de Baha'u'llahDilluns de CendraDimecres de CendraAshura'AstDia de l'Asunci³nDia Commemoratiu d'AtaturkAgoAgostAustr liaAustr lia/CanberraAustr lia/Nova Gal·les del SudAustr lia/Territori del NordAustr lia/QueenslandAustr lia/Austr lia del SudAustr lia/Tasm niaAustr lia/Vict²riaAustr lia/Austr lia Occidental€ustriaDia del Poder AutoritariAzerbaidjanDia de la Revoluci³ Ba'athCar cter ('%c') barra invertidaBahBahamesBahrainDia d'Any Nou del BahĦ'iBangla Desh #Festa de BankBarbadosDia del Bar³ BlissDia de la P tria BascaDia de BataanBatalla d'AngamosBatalla de BoyacĦBatalla de BoyneBatalla de CaraboboBatalla de IquiqueBatalla de Las PiedrasBatalla de N¤felsBatalla de PueblaComen§ament de l'Any Econ²micComen§ament de l'EstiuBielorşssiaB¨lgicaDia de BelgradBelizeBeltaneBen­n #Dia de Benito JuĦrezDia de la Batalla de BenningtonBermudaBhutan #Naixement de Baha'u'llahNaixement del BabBenedicci³ de l'AiguaDia de la Floraci³Aniversari de BodhidharmaDia de BogandaBol­viaDia de BonaireDia de la Batalla de Boquer³nB²snia i HercegovinaDia dels AmosBotswanaDia de BotswanaDia de BountyIlla BouvetDia de Sant EsteveBrasilDia de Menar el Ramat a CasaDia de la CollitaIlles Verge (Brit niques)Aniversari de BudaBulg riaDia del Tur³ del BunkerBurkina FasoIncendi de Jan HusNit de BurnsBurundi #Dia de C. MapinduziORDRECSCambodja #CamerunDia de CamoesCanad Canad /AlbertaCanad /Colşmbia Brit nicaCanad /ManitobaCanad /New BrunswickCanad /Terranova i LabradorCanad /Nova ScotiaCanad /OntarioCanad /Illa de Prince EdwardCanad /QuİbecCanad /SaskatchewanCanad /YukonDia de CanberraNo s'ha pogut calcular el calendari luni-solar de l'any %dNo s'ha pogut executar ordre en el fitxer `%s' L­nia: %ld %sCap VerdDia de CaricomCarnavalAniversari de Casimir PulaskiDia de CassingaDia de la Mostra de CatherineFestival de CayenneIlles CaimanCelRepşblica CentrafricanaDia de Cesar ChavezTxadSubstituci³ de car cters:Dia de CharterChen/DracXinAniversari de Chiang Kai-shekDia de la Inf nciaDiumenge Blanc de la Inf nciaXileXinaAny Nou Xin¨sVig­lia de l'Any Nou Xin¨sChou/BouCriDia de l'Ascensi³ de CristDia de NadalVig­lia de NadalIlles ChristmasDia del CrisantemDia de la CiutadaniaFesta del CivismeIlles Cocos (Keeling)Col²mbiaDia de ColonDia de ColoradoDia de ColomDia de l'Arribada a l'EdatS'ha executat l'ordre (senyal de sortida=%d) en el fitxer `%s' L­nia %ld: %sDia de la CommonwealthComoresCompact DayCompilat amb %s%s per %s%s%s%sDia de l'Acord de la Confederaci³Aniversari de ConfuciAniversari de la Constituci³Illes CookDia d'Any Nou CopteDia de la Coronaci³Dia dels CosmonautesCosta RicaCreat elCro ciaDia de l'Aixecament de la CreuCubaDia de la CulturaDia de la Copa MatchDia del Cap de VendesCicleXipreRepşblica TxecaCosta d'IvoriDDia de la Mostra de DarwinFormat de data: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Dia desprİs del Festival de TardorDia desprİs d'Escombrar la TombaDia d'AndalusiaDiada Nacional de CatalunyaDia de Gal­ciaDia de la Bona VoluntatDia de la Preg ria i el PenedimentDia de la Reconciliaci³Dia de la Revolta dels EstudiantsDia de l'Alian§aDia de Laos LliureMort de H. ChristopheMort de J. DessalinesMort del President AbdallahMort del President CheikhMort del President SoilihMort de Qaid-i-AzamMort de T. LouvertureDecDesembreDeclaraci³ del BabDia dels DefensorsDia dels Defensors de la P triaRepşblica Democr tica Popular de CoreaRepşblica Democr tica del Congo #DinamarcaDia de los MaestrosDia del PadreDia del DescobrimentDjiboutiDominicaRepşblica DominicanaDia del doble-9L'Enfonsament de DergueAniversari del Dr. Sun Yat-senFestival de la Barca Drag³Celebraci³ de la Sessi³ SecaAniversari de DuarteDia de la DinastiaAniversari de E. HostosEGADilluns de PasquaDiumenge de PasquaDimarts de PasquaDia de l'Alliberaci³ Econ²micaEquadorEgipteEid-al-AdhaEid-al-FitrEid-i-Milad-un-NabiDia de les Vuit HoresAlliberaci³ d'EindhovenEl SalvadorDia de les EleccionsEleccions de l'Assamblea NacionalComuniqueu `bugs' a <%s>EmoAniversari de l'EmperadorFi de la seqĵ¨ncia de ressalt/car cter indicadorEpifania/Dia de ReisGuinea EquatorialDia de l'EquinocciEritreaDia d'Errol BarrowEst²niaLlista eterna de festesEti²piaAny Nou Et­opDia de l'Evacuaci³Vig­lia de l'EpifaniaExpedici³ del 33Dia de FAOFORMAT (s'ha de definir exactament un membre):RFFIlles MalvinesDia de la Fam­liaDia dels GrangersIlles FaroeDia del Pare LevalDia del PareFesta de Corpus CristiFesta de la FortunaFesta del Sagrat Cor de JesşsFesta de Nostra TheotokosFebFebrerEstats Federats de Micron¨siaFestival dels FanaletsFestival de SadehConverteix la primera lletra de cada paraula a majşsculaConverteix el contingut del camp a lletres minşsculesConverteix el contingut del camp a lletres majşsculesEl contingut del camp es talla a la posici³ AMPLADAEl contingut del camp no es talla a la posici³ AMPLADASitua el contingut del camp al marge esquerra, usant l'amplada AMPLADASitua el contingut del camp al marge dret, usant l'amplada AMPLADACentra el contingut del camp, usant l'amplada AMPLADADefineix l'amplada del camp en N (%d...%d)Fiji #Finl ndiaPrimer Dia de RidvanDia dels PescadorsDia de la BanderaDia de la Cultura FlamencaMaced²niaDia de la Fundaci³ del NPLAFundaci³ del Partit PopularFundaci³ del Partit ComunistaDvFran§aDia de la Cultura FrancesaGuaiana FrancesaPolin¨sia FrancesaRevolucionaris FrancesosDvsDivendrestots els divendresDia de l'AmistatLluna PlenaGabon #G mbiaDia de GarifunaAniversari del General San MartinGe²rgiaDia de la Unitat AlemanyaAlemanyaAlemanya/Baden-WĵrttembergAlemanya/BavieraAlemanya/BerlinAlemanya/BrandenburgAlemanya/BremenAlemanya/HamburgAlemanya/HessenAlemanya/Baixa Sax²niaAlemanya/Mecklenburg-Pomer nia OccidentalAlemanya/Rin del Nord-Westf liaAlemanya/Ren nia PalatinatAlemanya/Sax²niaAlemanya/Sax²nia-AnhaltAlemanya/Schleswig-HolsteinAlemanya/Tur­ngiaGhadirGhanaGibraltarDivendres SantDissabte Sant/Vig­lia de PasquaDia de l'EvangeliDia dels AvisGran BretanyaGran Bretanya/Anglaterra i Gal·lesGran Bretanya/Irlanda del NordGran Bretanya/Esc²ciaGr¨ciaDia dels AlimentsGroenl ndiaGrenadaDia de la GrutaDia de la MarmotaDia de GuacanasteDia de la Verge de GuadalupeGuadalupeGuamGuatemalaGuineaGuinea Bissau #Dia de Gustavus AdolphusGuyana #Hai/PorcHait­Dia de HalloweenHannukah/Festival de les LlanternesDia de la Salut i l'EsportIlles Heard i McDonaldHebDia del PatrimoniDia dels HeroisRessalt (s'han de definir tots els elements):Aniversari de Ho Chi MinhDia de la Mostra de HobartDia dels Sants InnocentsSant­ssima TrinitatDimecres SantHonduresHong KongDia dels Drets HumansHongriaDia de HuraveeDia de la Suplicaci³ a l'Hurac Dia d'AgraŻment a l'Hurac Isl ndiaaquest programa esteu acceptant sense exepci³ aquest contracte, queDia d'ImamatImbolgDia de l'Independ¨nciaDia del Moviment IndependentistaProclamaci³ de la Independ¨nciaIndepend¨ncia de CartagenaIndepend¨ncia de CuencaIndepend¨ncia de GuayaquilIndepend¨ncia de Quitondia #Dia de l'Arribada dels IndisDia d'Any Nou IndiIndon¨sia #IntInternDia de l'Autonomia InternaHeu introduŻt un argument inv lid a la l­nia d'ordres -- %sIraqIrlandaIslDia d'Any Nou Isl micIranIsraelIt liaAniversari de J. BarbosaDia de J. ChilembweAniversari de J. DiegoAniversari de J. RobertJamaicaGenGenerJapJap³Dia d'Any Nou Japon¨sVig­lia de l'Any Nou Japon¨sAniversari de Jefferson DavisCircumcisi³ de JesşsJord niaJulJuliolJunJunyFesta de JunyDia de KamarampakaDia de KartiniKazakhstanKenya #Dia de KievAniversari de Kim Il-SungAniversari de Kim Jong-IlDia del Rei KamehamehaRecord del Rei Rama I/ChakriRecord del Rei Rama VKiribati #KnabenschiessenKonstantin i MethodiusKuwaitKwanzaaKirguizistanAniversari de L. RiveraDia dels TreballadorsDia de Gr cia dels TreballadorsLag B'OmerAniversari de Lao TseLaos #Festa Nacional LaponaLet²niaDia de la Copa LauncestonDia de trasp s fixat a `%02d-%s' en el fitxer `%s'.L­banLesothoDia de l'Alliberaci³Lib¨riaDia de la LlibertatL­biaLiechtensteinS'ha ignorat la l­nia %ld: %sL­nia %ld: %sLitu niaP¨rdua de la Naci³ MusulmanaLughnasaEclipsi LunarLuxemburgKermis de la Ciutat de LuxemburgDia de Lyndon b. JohnsonMde COMERCIABILITAT o ADEQUACI“ A UN PROP’SIT PARTICULAR.MacauMadagascar #Dia de MadarakaAniversari de Mahatma GandhiMissatge del \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMal isia #MaldivesMaliMaltaDia de les MalvinesDia de ManilaMao/ConillDia de la Ciutat de MaputoMarMar§Dia de Marien NgouabiDia de la MarinaIlles MarshallDia de Martin L. KingSant Mart­MartinicaMartiri del BabDia dels M rtirsSanta Maria Mare de DİuDia de l'Anunciaci³ de la VergeDia de l'Ascensi³ de la VergeLa CandeleraMare de Dİu de l'Esperan§aImmaculada Concepci³Festa de la Maternitat de la VergeEl Dol§ Nom de la VergeNativitat de la Mare de DİuPresentaci³ de la Mare de DİuVisitaci³ de la VergeDia de MarylandDijous SantMaurit niaMauriciMaiMaigPrimer de MaigMayotteDia de la Copa MelbourneDia del ComerciantM¨xicDia de Mi-CarŞmeFestival de TardorFestival de PrimaveraFestival del Mig AnyDia dels MissionersDlDllM²nacoDillunstots els dillunstots els dilluns...divendrestots els dilluns...dijousMong²lia #Mes (s'ha de definir exactament un element):MontserratDia de MorazanMarrocDia de MosheshoeDia de la SograDia de la MareDia de la Maternitat i la BellesaMo§ambicBanquet d'Aigua de MşsicaMyanmar (Burma) #Nam­biaDia de l'AnomenamentDia Nacional BunDia de la Fundaci³ NacionalDia dels Herois NacionalsFesta NacionalDia de Dol NacionalDia de la Redempci³ NacionalDia de la Resist¨ncia NacionalDia del Restabliment NacionalDia de la Unitat NacionalNauruDia de NdadayeNepal #PaŻsos BaixosAntilles Holandeses/BonaireAntilles Holandeses/Cura§aoAntilles Holandeses/Saba i StatiaAntilles Holandeses/Saint MartinDia de la NeutralitatDia de NevadaNova Caled²niaLluna NovaAniversari del Nou R¨gimDia d'Any NouNova ZelandaNicaraguaN­gerNig¨riaNov¨ Dia de RidvanNiueDia de NobelDia de NoiIlles Marianes del Nord (Saipan)Noruz/Any Nou PersaNoruegaNovNovembreEl valor num¨ric s'ajusta amb zeros a l'esquerraEscriu el valor num¨ric amb un sufix num¨ric ordinalEscriu el valor num¨ric precedit pel signeDia de les InfermeresNuzul-al-Qur'anDia d'OAUOPCI“OctOctubreFesta d'OctubreDia de la Indşstria Petrol­feraAntic Any Nou Arm¨niAntic Any Nou EgipciOmanL'autor no es responsabilitza en cap cas dels possibles danys (directesDia de l'Any Nou OrtodoxDia de Nostra Senyora AparecidaNostra Senyora d'AltagraciaNostra Senyora de CamarinNostra Senyora de Las MercedesNostra Senyora de Los AngelesNostra Senyora de les Set PenesNostra Senyora de les Vict²riesOxNOxAPakistanPalauDiumenge de RamsPanam Dia de la Ciutat de Panam Dia de Panam¨ricaPapua Nova GuineaParaguaiDia dels ParesDia de la Pau de Par­sParcialDiumenge de Passi³Dia del PatriotaFestival de la PauFestival del PresseguerPenombr³sDia del Poder PopularDia de la Sublevaci³ PopularPerCar cter ('%c') tant per centPerşPesach/PasquaAmistat Filipina-AmericanaFilipinesFisDia de PichinchaDia de PicnicDia de PioneerPitcairnPol²niaPortugalDia de PoyaDia de les Preg riesCarrega les opcions i ordres de `FITXER'Aniversari del President LincolnInauguraci³ PresidencialDia dels PresidentsInforme dels PresidentsDia del Pr­ncep KalanianaoleAniversari del Pr­ncep de Gal·lesDia de la PrincesaDia de la Proclamaci³Puerto RicoPurim/Festa dels TerrenysAniversari de Qaid-i-AzamQatarDia de QudsDiumenge de Quinquag¨simaRamad Dia de Ratu SukumaDia de la Recreaci³Dia del Refer¨ndumDia de la ReformaDia de RegattaIntercanvi de Reg¨nciaDia de la Commemoraci³/Recordaci³Dia de la RepşblicaCongo #Repşblica de CoreaMold viaDia del Respecte per la Gent GranDia de la Restauraci³Dia del RetornDia de la Reunificaci³Dia de la Revoluci³Aniversari de Rio de JaneiroDia de RizalDiumenge de TİmporesRomaniaRosh Hashana/Dia d'Any NouRşssiaDia de RwagasoreRwandaReunionAniversari de S. DoeDia de l'Establiment de SARSIGNE (es pot definir)ESTIL (es pot definir exactament un membre):SUFIX (es pot definir):DsDia de SabaSaint Pierre i MiquelonSamhain/Any Nou CeltaSamoaDia de San JacintoDia de San JosİSan MarinoAniversari de Sao PauloS£o Tomİ i Pr­ncipeFestival de la Neu de SapporoDsbDissabtetots els dissabtesAr bia SauditaFesta de l'EscolaFestival de la MongetaSechsel¤utenSenegalSetDia de la Separaci³SetembreDiumenge de Septuag¨simaS¨rbia i MontenegroDia de Seretse KhamaDia dels ColonsDia dels Set DormentsDia de SewardDiumenge de Sexag¨simaSeychellesShab-e QadrShab-e-Bara'tShab-e-Mi'rajDia de ShaheedShavuot/L'Oferiment del TorahFestival de l'OvellaDia de l'Ascensi³ de Xeic ZayedShen/MicoDimarts de Carnaval/Dimarts GrasShushan PurimSi/SerpSierra LeoneSimchat TorahDia de Simon BolivarDia de l'Alliberaci³ del Sina­Singapur #Dia de l'Alliberaci³ dels EsclausEslov quiaEslov¨niaDia d'Ensumar la BrisaEclipsi SolarDia de la SolidaritatSalom³Dia del SolsticiSom liaDia de SomersDia d'Escurar la XemeneiaRepşblica de Sud- fricaIlles Ge²rgia del Sud i Sandwich del SudCar cter ('%c') espai en blancEspanyaFestival de PrimaveraSrŻ Lanka #Dia de Santa €gataDia de Sant AndreuDia de Sant BartomeuDia de Sant BerchtoldDia de Sant CanuteDia de Santa CediliaDia de Sant CarlesDia de Sant DavidDia de Sant DemetriusDia de Sant DİvoteDia de Sant EduardDia de Sant EliahDia de Sant JordiSaint HelenaDia de Sant JaumeDia de Sant Jean BaptisteSant Joan/Solstici d'EstiuVig­lia de Sant JoanDia de Sant JosepSaint Christopher i NevisDia de Sant Lloren§Saint LuciaDia de Santa LuciaDia de Santa MargaridaDia de Sant MaroonDia de Sant MiquelDia de Sant NicolauVig­lia de Sant NicolauDia de Sant OlavVig­lia de Sant OlavDia de Sant PatriciNaufragi de Sant PolSant Pere i Sant PolSanta Rosa de LimaDia de Sant EsteveDia de Santa šrsulaDia de Sant Valent­Saint Vincent i les GrenadinesDia de Sant Vincent de PaulEst ndardFestival de l'EstrellaPrincipi del mes comşInici de la seqĵ¨ncia de ressalt/car cter indicadorPrincipi del mes de trasp sDia de la Statia-AmericanaDia de l'EstudiantDgSudanDia de la Vict²ria de SuezSukkot/Festa dels TabernaclesAniversari del Sult  QaboosDmgDiumengeDimenge de la Morttots els diumengesSurinam #Illes Svalbard i Jan MayenSvetitskhovlobaDia de l'OrenetaSwazil ndiaSu¨ciaDia de Su¨ciaDia de la PreciositatSuŻssaSuŻssa/AargauSuŻssa/Appenzell AusserrhodenSuŻssa/Appenzell InnerrhodenSuŻssa/Basel-StadtSuŻssa/BernaSuŻssa/FriburgSuŻssa/GinebraSuŻssa/GlarusSuŻssa/GraubĵndenSuŻssa/JuraSuŻssa/LucernaSuŻssa/Neuch˘telSuŻssa/NidwaldenSuŻssa/ObwaldenSuŻssa/SchwyzSuŻssa/SolothurnSuŻssa/St. GallenSuŻssa/ThurgauSuŻssa/TicinoSuŻssa/UriSuŻssa/ValaisSuŻssa/VaudSuŻssa/ZugSuŻssa/ZuricSant Silvestre/Vig­lia d'Any NouS­riaTaiwanTadjikistanTanz niaDia del MestreDia de la Mostra de Tennant-CreekDia del TerritoriDjAny Nou Tailand¨sTail ndiaDia d'Acci³ de Gr ciesAniversari del Pr­ncep HereuAniversari de la Princesa ReialSant de la Princesa ReialAniversari del ReiSant del ReiAniversari de la ReinaSant de la Reinac²pia. No hi ha CAP garantia, ni tan sols la garantia presuposadaAquest programa İs lliure; vegeu el codi font per les condicions deAquest programa İs lliure; el podeu redistribuŻr i/o modificar d'acordAquest programa pot no ser complet, correcte, o utilitzable.DjsDijoustots els dijousDia de TiradentesTisha B'Av/Dia del DejuniTogo #TokelauDia d'Escombrar la TombaTongaDia de Topou ITotalDia de la Trobada de la VilaDia de la Tradici³Dia de la Transfer¨nciaDia de la Transfiguraci³Trinitat i Tobago #Dia de TrumanProvant d'obrir (nivell: %02d) el fitxer adjunt `%s'... %s%s%sProvant d'obrir%sel fitxer de recursos `%s'... %s%s%sProvant d'escriure %s `%s'... %s%s%sDtTu B'Shevat/Any Nou dels ArbresDtsDimartstots els dimartsTun­siaTurquiaTurkmenistanIlles Turks i CaicosTuvaluDotz¨ Dia de RidvanDia de TynwaldIlles Verge (EUA)E.U.A.DESCONEGUTUgandaUcraŻnaCar cter ('%c') gui³ baixDia de l'Uni³Dissoluci³ de l'Uni³ amb Su¨ciaUni³ dels Emirats €rabsDia de les Nacions UnidesEstats Units (EUA)Estats Units/AlabamaEstats Units/AlaskaEstats Units/ArizonaEstats Units/ArkansasEstats Units/CaliforniaEstats Units/ColoradoEstats Units/ConnecticutEstats Units/DelawareEstats Units/ColumbiaEstats Units/FloridaEstats Units/GeorgiaEstats Units/HawaiiEstats Units/IdahoEstats Units/IllinoisEstats Units/IndianaEstats Units/IowaEstats Units/KansasEstats Units/KentuckyEstats Units/LouisianaEstats Units/MaineEstats Units/MarylandEstats Units/MassachusettsEstats Units/MichiganEstats Units/MinnesotaEstats Units/MississippiEstats Units/MissouriEstats Units/MontanaEstats Units/NebraskaEstats Units/NevadaEstats Units/New HampshireEstats Units/Nova JerseyEstats Units/Nou M¨xicEstats Units/Nova YorkEstats Units/Carolina del NordEstats Units/Dakota del NordEstats Units/OhioEstats Units/OklahomaEstats Units/OregonEstats Units/PennsylvaniaEstats Units/Rhode IslandEstats Units/Carolina del SudEstats Units/Dakota del SudEstats Units/TennesseeEstats Units/TexasEstats Units/UtahEstats Units/VermontEstats Units/VirginiaEstats Units/WashingtonEstats Units/West VirginiaEstats Units/WisconsinEstats Units/WyomingDia de la Unitat FabrilUruguaiSintaxi: %s [--%s | --%s] | [--%s=[+|-]NOMBRE] [ARGUMENT...] Sintaxi: %s [--%s | --%s] | [FITXER-RECURSOS | -] Sintaxi: %s [--%s | --%s] | [FITXER-TEXT | -] [SECCI“-DATA] Sintaxi: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Sintaxi: %s [[OPCI“...] [%cDATA] [%cFITXER...]] [ORDRE]Sintaxi: %s [[OPCI“...] [%cFITXER...]] [ORDRE]Proveu `%s %s|[%s?]Usa `DATA' en lloc de la data actualUzbekistanVig­lia de ValborgVanuatuVene§uelaCarnaval de Ven¨ciaDia dels VeteransDia de Victor-SchoelcherDia de Vict²riaDia de la Vict²riaVidovdanVietnamSAniversari de W. TubmanAMPLADA (s'ha de definir):Illes Wallis i FutunaLluna en Quart MinvantWaqf-al-ArafatLluna en Quart CreixentDcDcrDimecrestots els dimecresSetmanaSetmana %sWei/OvellaDia de West VirginiaS hara OccidentalDilluns de PentecostaVig­lia de la Segona Pasqua2a Pasqua/PentecostaDia de les DonesDia del Carnaval de les DonesDia Mundial dels AnimalsWu/CavallXu/GosADia de YapIemenYin/TigreYom Ha Azmaut/Dia de l'Independ¨nciaYom Hashoah/Record de l'HolocaustYom Hazikaron/Record dels SoldatsYom Kippur/Dia del Gran Perd³Yom Yerushalayim/Dia de JerusalemHaurieu d'haver rebut una c²pia de la Llic¨ncia Pşblica General GNUYou/GallDia de la JoventutZERO (es pot definir):Z mbiaZi/RataZimbabweZod[ALINIAMENT [SIGNE] [ZERO] AMPLADA [ESTIL] [SUFIX] FORMAT]`%s' l­nia %ld: (`%s') `%s%d' error`%s' l­nia %ld: (`%s') la mida de la taula İs inv lida `sizeof %s>%d'`%s' l­nia %ld: (`%s') error irrecuperable (%d)`%s' l­nia %ld: la mem²ria virtual s'ha esgotat (%s=%d)`Llista eterna de festes'`Intern'no s'ha trobat el fitxer `termcap'us vincula LEGALMENT !!junt amb aquest programa; en cas contrari, escriviu a:amelecci³, qualsevol altra versi³ posterior.l­nia d'ordresuna instrucci³ de format, d'acord amb el segĵent model:°'per defectevariable d'entornno s'ha trobat la variable d'entorn `%s'la variable d'entorn `%s' no est  definidaerrorno s'ha pogut escriure el fitxer `%s' El disc est  ple!no s'ha trobat el fitxer `%s'per obtenir mİs informaci³.hmstots els dies festiuscar cter il·legal en el fitxer de resposta `%s' L­nia %ld: %sdefinici³ il·legal de la variable `%c'operaci³ il·legal a la variable `%c'definici³ il·legal de variable en el fitxer `%s'operaci³ il·legal de variable en el fitxer `%s'camp(%d) del dia de la setmana inv lid, en el fitxer `%s' L­nia %ld: %sla part de la data, en el fitxer `%s', no İs v lida L­nia %ld: %sdia no v lidel camp(%02d) del dia, en el fitxer `%s', no İs v lid L­nia %ld: %smes no v lidel camp(%02d) del mes, en el fitxer `%s', no İs v lid L­nia %ld: %scicle o recursi³ %s no v lida, en el fitxer `%s' L­nia %ld: %sel patr³ de recerca especificat `%s' no İs v lidHeu assignat un valor inv lid a la variable `%c', en el fitxer `%s'any inv lid per calcular les dates del Diumenge de Pasqua L'any ha d'estar entre %d i %damb els termes de la Llic¨ncia Pşblica General GNU com va ser publicadatotes les festes oficials%s malformat, en el fitxer `%s' L­nia %ld: %sfalta un car cter `espai' desprİs de la data en el fitxer `%s' L­nia %ld: %sno indirectes) ocasionats per l'şs d'aquest programa. En utilitzarpmrs'ha produŻt un error de lectura pel fitxer `%s'fitxer de respostaautodefinits'ha produŻt un error en enviar el correu electr²nic a <%s>shell scriptel valor de canvi `%s' no İs v lidrreeixit¨desconegut compilador desconegutcompilador desconegut (SDK?)el tipus de terminal definit a `%s' İs desconegutversi³ desconegudala variable `%c' no est  definida, en el fitxer `%s'versi³ %dversi³ %d.%dgcal-4.1/po/sv.po0000664000000000000000000041452613041164032010571 00000000000000# Swedish messages for gcal. # Copyright Âİ 2010 Thomas Esken (msgids) # Copyright Âİ 1997, 2001, 2011, 2013, 2014 Free Software Foundation, Inc. # This file is distributed under the same license as the gcal package. # Johan Linde , 1997. # Christian Rose , 2001. # Gĥran Uddeborg , 2011, 2013, 2014, 2016. # # $Revision: 1.9 $ msgid "" msgstr "" "Project-Id-Version: gcal 3.6.3.34\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 2016-08-09 11:33+0200\n" "Last-Translator: Gĥran Uddeborg \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "Ok¤nt systemfel" #: lib/regcomp.c:135 msgid "Success" msgstr "Lyckades" #: lib/regcomp.c:138 msgid "No match" msgstr "Ingen matchning" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "Felaktigt regulj¤rt uttryck" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "Felaktigt j¤mfĥrelsetecken" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "Felaktigt teckenklassnamn" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "Avslutande bakstreck" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "Felaktig baktreferens" #: lib/regcomp.c:156 #, fuzzy msgid "Unmatched [, [^, [:, [., or [=" msgstr "Ensamt [ eller [^" #: lib/regcomp.c:159 msgid "Unmatched ( or \\(" msgstr "Ensam ( eller \\(" #: lib/regcomp.c:162 msgid "Unmatched \\{" msgstr "Ensam \\{" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "Felaktigt innehll i \\{\\}" #: lib/regcomp.c:168 msgid "Invalid range end" msgstr "Felaktigt intervallslut" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "Minnet uttĥmt" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "Felaktigt fĥregende regulj¤rt uttryck" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "Fĥrtida slut p regulj¤rt uttryck" #: lib/regcomp.c:180 msgid "Regular expression too big" msgstr "Regulj¤rt uttryck fĥr stort" #: lib/regcomp.c:183 msgid "Unmatched ) or \\)" msgstr "Ensamt ) eller \\)" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "Inget fĥregende regulj¤rt uttryck" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "kan inte skapa rĥr" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "underprocess %s misslyckades" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "_open_osfhandle misslyckades" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "kan inte terst¤lla fi %d: dup2 misslyckades" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, c-format msgid "%s subprocess" msgstr "underprocessen %s" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "underprocessen %s fick den ĥdesdigra signalen %d" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "minnet uttĥmt" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Fĥrsĥk att skriva %s \"%s\"... %s%s%s" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "misslyckades" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "lyckades" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "Fĥrsĥk att ĥppna%sresursfilen \"%s\"... %s%s%s" #: src/file-io.c:1686 msgid " `HERE' " msgstr " \"H„R\" " #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "Fĥrsĥk att ĥppna (niv: %02d) inkluderingsfilen \"%s\"... %s%s%s" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "ARG" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "Tyskland" #: src/gcal.c:1075 msgid "U.S.A." msgstr "USA" #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "Storbritannien" #: src/gcal.c:1852 msgid "default" msgstr "standard" #: src/gcal.c:1951 msgid ":" msgstr "." #: src/gcal.c:1961 msgid "Y" msgstr "…" #: src/gcal.c:1966 msgid "M" msgstr "M" #: src/gcal.c:1971 msgid "W" msgstr "V" #: src/gcal.c:1976 msgid "D" msgstr "D" #: src/gcal.c:2067 msgid "Fixed date list:" msgstr "Lista med fasta datum:" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "miljĥvariabel" #: src/gcal.c:2268 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%s: kommando hittat i miljĥvariabeln \"%s\" -- %s\n" "%s\n" "%s\n" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "Intern" #: src/gcal.c:2864 msgid "response file" msgstr "svarsfil" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "Skapad" #: src/gcal.c:2872 msgid "shell script" msgstr "skalskript" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "E-post frn \\\"%s\" (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "%s: varning, e-brev med tom meddelandetext inte skickad till <%s>.\n" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "kommandorad" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: flaggan \"%s\" ¤r tvetydig" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: ok¤nd flagga \"%s\"" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: ogiltig flagga -- %s" #: src/gcal.c:5910 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s: flaggan \"--%s\" tar inget argument" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s: flaggan \"%s\" tar inget argument" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: flaggan \"%s\" kr¤ver ett argument" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: flaggan kr¤ver ett argument -- %s" #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: flagga med ogiltigt argument -- %s" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: flagga med tvetydigt argument -- %s" #: src/gcal.c:5995 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" "%s: ogiltigt datum angivet -- %c%s\n" "%s\n" "%s\n" #: src/hd-data.c:64 msgid "Australia" msgstr "Australien" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "Belgien" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "Brasilien" #: src/hd-data.c:67 msgid "Canada" msgstr "Kanada" #: src/hd-data.c:68 msgid "Switzerland" msgstr "Schweiz" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "Kina" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "Spanien" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "Frankrike" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "Israel" #: src/hd-data.c:75 src/hd-data.c:250 msgid "Italy" msgstr "Italien" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "Japan" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "Republiken Korea" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "Mexiko" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "Nederl¤nderna" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "Nya Zeeland" #: src/hd-data.c:81 src/hd-data.c:320 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "Ryssland" #: src/hd-data.c:83 msgid "United States" msgstr "USA" #: src/hd-data.c:85 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "Fĥrenade Arabemiraten" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "Afghanistan" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "Antigua och Barbuda" #: src/hd-data.c:89 msgid "Anguilla" msgstr "Anguilla" #: src/hd-data.c:90 msgid "Albania" msgstr "Albanien" #: src/hd-data.c:91 msgid "Armenia" msgstr "Armenien" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "Nederl¤ndska Antillerna/Bonaire" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "Nederl¤ndska Antillerna/Cura§ao" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "Nederl¤ndska Antillerna/St Maarten" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "Nederl¤ndska Antillerna/Saba och Statia" #: src/hd-data.c:96 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:97 msgid "Argentina" msgstr "Argentina" #: src/hd-data.c:98 msgid "American Samoa" msgstr "Samoa" #: src/hd-data.c:99 msgid "Austria" msgstr "–sterrike" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "Australien/Canberra" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "Australien/Nordterritoriet" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "Australien/Queensland" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "Australien/Sydaustralien" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "Australien/New South Wales" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "Australien/Tasmanien" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "Australien/Victoria" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "Australien/V¤staustralien" #: src/hd-data.c:108 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "Azerbajdzjan" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "Bosnien-Hercegovina" #: src/hd-data.c:111 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "Bangladesh #" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:115 msgid "Bulgaria" msgstr "Bulgarien" #: src/hd-data.c:116 msgid "Bahrain" msgstr "Bahrain" #: src/hd-data.c:117 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:118 msgid "Benin #" msgstr "Benin #" #: src/hd-data.c:119 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:120 msgid "Brunei" msgstr "Brunei" #: src/hd-data.c:121 msgid "Bolivia" msgstr "Bolivia" #: src/hd-data.c:123 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "Bhutan #" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "Bouvetĥn" #: src/hd-data.c:126 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:127 msgid "Belarus" msgstr "Vitryssland" #: src/hd-data.c:128 msgid "Belize" msgstr "Belize" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "Kanada/Alberta" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "Kanada/British Columbia" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "Kanada/Manitoba" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "Kanada/New Brunswick" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "Kanada/Newfoundland och Labrador" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "Kanada/Nova Scotia" #: src/hd-data.c:135 msgid "Canada/Northwest Territories" msgstr "Kanada/Nordv¤stterritorierna" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "Kanada/Ontario" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "Kanada/Prince Edwardĥn" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "Kanada/Quİbec" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "Kanada/Saskatchewan" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "Kanada/Yukon" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "Kokosĥarna (Keeling)" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "Demokratiska republiken Kongo #" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "Centralafrikanska republiken #" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "Republiken Kongo #" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "Schweiz/Aargau" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Schweiz/Appenzell Innerrhoden" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Schweiz/Appenzell Ausserrhoden" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "Schweiz/Bern" #: src/hd-data.c:149 msgid "Switzerland/Basel-Landschaft" msgstr "Schweiz/Basel-Landschaft" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "Schweiz/Basel-Stadt" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "Schweiz/Fribourg" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "Schweiz/Gen¨ve" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "Schweiz/Glarus" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "Schweiz/Graubĵnden" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "Schweiz/Jura" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "Schweiz/Luzern" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "Schweiz/Neuch˘tel" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "Schweiz/Nidwalden" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "Schweiz/Obwalden" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "Schweiz/St Gallen" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "Schweiz/Schaffhausen" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "Schweiz/Solothurn" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "Schweiz/Schwyz" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "Schweiz/Thurgau" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "Schweiz/Ticino" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "Schweiz/Uri" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "Schweiz/Vaud" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "Schweiz/Valais" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "Schweiz/Zug" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "Schweiz/Zĵrich" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "Elfenbenskusten" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "Cookĥarna" #: src/hd-data.c:173 msgid "Chile" msgstr "Chile" #: src/hd-data.c:174 msgid "Cameroon" msgstr "Kamerun" #: src/hd-data.c:176 msgid "Colombia" msgstr "Colombia" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:178 msgid "Cuba" msgstr "Kuba" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "Kap Verde" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "Julĥarna" #: src/hd-data.c:181 msgid "Cyprus" msgstr "Cypern" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "Tjeckien" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "Tyskland/Brandenburg" #: src/hd-data.c:184 msgid "Germany/Berlin" msgstr "Tyskland/Berlin" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "Tyskland/Baden-Wĵrttemberg" #: src/hd-data.c:186 msgid "Germany/Bavaria" msgstr "Tyskland/Bayern" #: src/hd-data.c:187 msgid "Germany/Bremen" msgstr "Tyskland/Bremen" #: src/hd-data.c:188 msgid "Germany/Hesse" msgstr "Tyskland/Hessen" #: src/hd-data.c:189 msgid "Germany/Hamburg" msgstr "Tyskland/Hamburg" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Tyskland/Mecklenburg-Vorpommern" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "Tyskland/Niedersachsen" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "Tyskland/Nordrhein-Westfalen" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "Tyskland/Rheinland-Pfalz" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "Tyskland/Schleswig-Holstein" #: src/hd-data.c:195 msgid "Germany/Saarland" msgstr "Tyskland/Saarland" #: src/hd-data.c:196 msgid "Germany/Saxony" msgstr "Tyskland/Sachsen" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "Tyskland/Sachsen-Anhalt" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "Tyskland/Thĵringen" #: src/hd-data.c:199 msgid "Djibouti" msgstr "Djibouti" #: src/hd-data.c:200 msgid "Denmark" msgstr "Danmark" #: src/hd-data.c:201 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "Dominikanska republiken" #: src/hd-data.c:203 msgid "Algeria" msgstr "Algeriet" #: src/hd-data.c:204 msgid "Ecuador" msgstr "Ecuador" #: src/hd-data.c:205 msgid "Estonia" msgstr "Estland" #: src/hd-data.c:206 msgid "Egypt" msgstr "Egypten" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "V¤stsahara" #: src/hd-data.c:208 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "Etiopien" #: src/hd-data.c:211 msgid "Finland" msgstr "Finland" #: src/hd-data.c:212 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "Falklandsĥarna (Malvinerna)" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "Mikronesiska Federationen" #: src/hd-data.c:215 msgid "Faroes" msgstr "F¤rĥarna" #: src/hd-data.c:217 msgid "Gabon #" msgstr "Gabon #" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "Storbritannien/England och Wales" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "Storbritannien/Nordirland" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "Storbritannien/Skottland" #: src/hd-data.c:221 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:222 msgid "Georgia" msgstr "Georgien" #: src/hd-data.c:223 msgid "French Guiana" msgstr "Franska Guyana" #: src/hd-data.c:224 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:226 msgid "Greenland" msgstr "Grĥnland" #: src/hd-data.c:227 msgid "Gambia" msgstr "Gambia" #: src/hd-data.c:228 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "Guadeloupe" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "Ekvatorialguinea" #: src/hd-data.c:231 msgid "Greece" msgstr "Grekland" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "Sydgeorgien och sĥdra Sandwichĥarna" #: src/hd-data.c:233 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:234 msgid "Guam" msgstr "Guam" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "Guinea-Bissau #" #: src/hd-data.c:236 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "Heard- och Mc Donald-ĥarna" #: src/hd-data.c:239 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:240 msgid "Croatia" msgstr "Kroatien" #: src/hd-data.c:241 msgid "Haiti" msgstr "Haiti" #: src/hd-data.c:242 msgid "Hungary" msgstr "Ungern" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "Indonesien #" #: src/hd-data.c:244 msgid "Ireland" msgstr "Irland" #: src/hd-data.c:246 msgid "India #" msgstr "Indien #" #: src/hd-data.c:247 msgid "Iraq" msgstr "Irak" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "Islamiska republiken Iran" #: src/hd-data.c:249 msgid "Iceland" msgstr "Island" #: src/hd-data.c:251 msgid "Jamaica" msgstr "Jamaica" #: src/hd-data.c:252 msgid "Jordan" msgstr "Jordanien" #: src/hd-data.c:254 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "Kirgizistan" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "Kambodja #" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:258 msgid "Comoros" msgstr "Komorerna" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "St Kitts och Nevis" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "Demokratiska folkrepubliken Korea" #: src/hd-data.c:262 msgid "Kuwait" msgstr "Kuwait" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "Caymanĥarna" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "Kazakstan" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "Demokratiska folkrepubliken Laos #" #: src/hd-data.c:266 msgid "Lebanon" msgstr "Libanon" #: src/hd-data.c:267 msgid "St Lucia" msgstr "St Lucia" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:270 msgid "Liberia" msgstr "Liberia" #: src/hd-data.c:271 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:272 msgid "Lithuania" msgstr "Litauen" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "Luxemburg" #: src/hd-data.c:274 msgid "Latvia" msgstr "Lettland" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Libyska arabiska jamahiriya (Libyen)" #: src/hd-data.c:276 msgid "Morocco" msgstr "Marocko" #: src/hd-data.c:277 msgid "Monaco" msgstr "Monaco" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "Republiken Moldavien" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "Madagaskar #" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "Marshallĥarna" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "Fĥre detta jugoslaviska republiken Makedonien" #: src/hd-data.c:282 msgid "Mali" msgstr "Mali" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "Mongoliet #" #: src/hd-data.c:284 msgid "Macau" msgstr "Macao" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "Norra Marianerĥarna (Saipan)" #: src/hd-data.c:286 msgid "Martinique" msgstr "Martinique" #: src/hd-data.c:287 msgid "Mauritania" msgstr "Mauretanien" #: src/hd-data.c:288 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:289 msgid "Malta" msgstr "Malta" #: src/hd-data.c:290 msgid "Mauritius" msgstr "Mauritius" #: src/hd-data.c:291 msgid "Maldives" msgstr "Maldiverna" #: src/hd-data.c:292 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "Malaysia #" #: src/hd-data.c:295 msgid "Mozambique" msgstr "Mo§ambique" #: src/hd-data.c:296 msgid "Namibia" msgstr "Namibia" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "Nya Kaledonien" #: src/hd-data.c:298 msgid "Niger" msgstr "Niger" #: src/hd-data.c:299 #, fuzzy msgid "Norfolk Island" msgstr "Norfolkĥarna " #: src/hd-data.c:300 msgid "Nigeria" msgstr "Nigeria" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "Myanmar (Burma) #" #: src/hd-data.c:304 msgid "Norway" msgstr "Norge" #: src/hd-data.c:305 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:306 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:307 msgid "Niue" msgstr "Niue" #: src/hd-data.c:309 msgid "Oman" msgstr "Oman" #: src/hd-data.c:310 msgid "Panama" msgstr "Panama" #: src/hd-data.c:311 msgid "Peru" msgstr "Peru" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "Polynesien" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "Papua Nya Guinea" #: src/hd-data.c:314 msgid "Philippines" msgstr "Filippinerna" #: src/hd-data.c:315 msgid "Pakistan" msgstr "Pakistan" #: src/hd-data.c:316 msgid "Poland" msgstr "Polen" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre och Miquelon" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "Pitcairn" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "Puerto Rico" #: src/hd-data.c:321 msgid "Palau" msgstr "Palau" #: src/hd-data.c:322 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:323 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:324 msgid "Rİunion" msgstr "Rİunion" #: src/hd-data.c:325 msgid "Romania" msgstr "Rum¤nien" #: src/hd-data.c:327 msgid "Rwanda" msgstr "Rwanda" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "Saudiarabien" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "Solomonĥarna" #: src/hd-data.c:330 msgid "Seychellen" msgstr "Seychellerna" #: src/hd-data.c:331 msgid "Sudan" msgstr "Sudan" #: src/hd-data.c:332 msgid "Sweden" msgstr "Sverige" #: src/hd-data.c:333 msgid "Singapore #" msgstr "Singapore #" #: src/hd-data.c:334 msgid "St Helena" msgstr "S:a Helena" #: src/hd-data.c:335 msgid "Slovenia" msgstr "Slovenien" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "Svalbard och Jan Mayenĥarna" #: src/hd-data.c:337 msgid "Slovakia" msgstr "Slovakien" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "Sierra Leone" #: src/hd-data.c:339 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:340 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:341 msgid "Somalia" msgstr "Somalia" #: src/hd-data.c:342 msgid "Suriname #" msgstr "Surinam #" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "Sao Tomİ och Principe" #: src/hd-data.c:344 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "Syriska Arabrepubliken (Syrien)" #: src/hd-data.c:346 msgid "Swaziland" msgstr "Swaziland" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "Turks- och Caicosĥarna" #: src/hd-data.c:348 msgid "Chad" msgstr "Tchad" #: src/hd-data.c:349 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:350 msgid "Thailand #" msgstr "Thailand #" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "Tadzjikistan" #: src/hd-data.c:352 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "Turkmenistan" #: src/hd-data.c:354 msgid "Tunisia" msgstr "Tunisien" #: src/hd-data.c:355 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:356 msgid "Turkey" msgstr "Turkiet" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "Trinidad och Tobago #" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:359 msgid "Taiwan" msgstr "Taiwan" #: src/hd-data.c:360 msgid "Tanzania" msgstr "Tanzania" #: src/hd-data.c:361 msgid "Ukraine" msgstr "Ukraina" #: src/hd-data.c:362 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "USA/Alaska" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "USA/Alabama" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "USA/Arkansas" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "USA/Arizona" #: src/hd-data.c:367 msgid "United States/California" msgstr "USA/Kalifornien" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "USA/Colorado" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "USA/Connecticut" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "USA/District of Columbia" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "USA/Delaware" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "USA/Florida" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "USA/Georgia" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "USA/Hawaii" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "USA/Iowa" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "USA/Idaho" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "USA/Illinois" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "USA/Indiana" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "USA/Kansas" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "USA/Kentucky" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "USA/Lousiana" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "USA/Massachusetts" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "USA/Maryland" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "USA/Maine" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "USA/Michigan" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "USA/Minnesota" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "USA/Missouri" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "USA/Mississippi" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "USA/Montana" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "USA/North Carolina" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "USA/North Dakota" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "USA/Nebraska" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "USA/New Hampshire" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "USA/New Jersey" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "USA/New Mexico" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "USA/Nevada" #: src/hd-data.c:397 msgid "United States/New York" msgstr "USA/New York" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "USA/Ohio" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "USA/Oklahoma" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "USA/Oregon" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "USA/Pennsylvania" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "USA/Rhode Island" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "USA/South Carolina" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "USA/South Dakota" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "USA/Tennessee" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "USA/Texas" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "USA/Utah" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "USA/Virginia" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "USA/Vermont" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "USA/Washington" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "USA/Wisconsin" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "USA/West Virginia" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "USA/Wyoming" #: src/hd-data.c:414 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "Uzbekistan" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "St Vincent och Grenadinerna" #: src/hd-data.c:417 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "Jungfruĥarna" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "Jungfruĥarna" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "Wallis- och Futunaĥarna" #: src/hd-data.c:423 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:424 msgid "Yemen" msgstr "Jemen" #: src/hd-data.c:425 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "Serbien och Montenegro" #: src/hd-data.c:427 msgid "South Africa" msgstr "Sydafrika" #: src/hd-data.c:428 msgid "Zambia" msgstr "Zambia" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:459 msgid "1st Advent" msgstr "1:a sĥndagen i advent" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "1:a sĥndagen i fastan" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "2:a sĥndagen i advent" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "2:a sĥndagen i fastan" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "3:e sĥndagen i advent" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "3:e sĥndagen i fastan" #: src/hd-data.c:465 msgid "4th Advent" msgstr "4:e sĥndagen i advent" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "4:e sĥndagen i fastan" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "Shichi-go-san-festivalen" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "Aboriginerdagen" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "Fĥrsta april" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "Allhelgonadagen" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "Alla sj¤lars dag" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "Alfabetdagen" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "Aucklands jubileum" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "Canterbury Norths jubileum" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "Canterbury Souths jubileum" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "Chathamĥarnas jubileum" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "Hawkesbuktens jubileum" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "Marlboroughs jubileum" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "Nelsons jubileum" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "Otagos jubileum" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "Southlands jubileum" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "Taranakis jubileum" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "Wellingtons jubileum" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "Westlands jubileum" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "Anzacdagen" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "Arbordagen" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "De v¤pnade styrkornas dag" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "Vapenstillestndsdagen" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "Blmndagen" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "Askonsdagen" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "Abdu'l-Bahas uppstigning" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "Baha'u'llahs uppstigning" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "Baha'u'llahs fĥdelse" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "Babens fĥdelse" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "Fĥrbundets dag" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "Deklarationen av Baben" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "Fĥrsta dagen i Ridvan" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "Babs martyrskap" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "BahĦ'is nyrsdag" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "Nionde dagen i Ridvan" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "Tolfte dagen i Ridvan" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "Bankhelg" #: src/hd-data.c:503 msgid "Basque National Day" msgstr "Baskiska nationaldagen" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "Slaget vid Boyne" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "Slaget vid Puebla" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "Finansrets bĥrjan" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "Benito JuĦrez dag" #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "Bodhidharmas fĥdelsedag" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "Chefernas dag" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "Annandag jul" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "Hjordhemtagningsdagen" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "Skĥrdeh¤mtningsdagen" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "Buddhas fĥdelsedag" #: src/hd-data.c:514 msgid "Burns Night" msgstr "Burns natt" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "Camoes dag" #: src/hd-data.c:516 msgid "Carnival" msgstr "Karneval" #: src/hd-data.c:517 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:518 msgid "Imbolg" msgstr "Imbolg" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/Keltiska nyrsdagen" #: src/hd-data.c:521 msgid "Children's Day" msgstr "Barnens dag" #: src/hd-data.c:522 msgid "Cycle" msgstr "Cykel" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "Kinesiska nyrsdagen" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "Kinesiska nyrsaftonen" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "Juldagen" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "Julafton" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "Kristi himmelsf¤rds dag" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "Krysantemumdagen" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "Medborgarskapsdagen" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "Allm¤n helg" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "Columbus dag" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "Myndighetsdagen" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "Confucius fĥdelsedag" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "Fĥrfattningsjubileet" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "Koptiska nyrsdagen" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "Kosmonautdagen" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "Korsresningsdagen" #: src/hd-data.c:538 msgid "Culture Day" msgstr "Kulturdagen" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "Dagen efter midhĥstsfestivalen" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "Dagen efter gravst¤dningsdagen" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "Andalusiendagen" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "Kataloniendagen" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "Galiciendagen" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "Bĥne- och botgĥringsdagen" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "Fĥrsoningsdagen" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "F¤dernerlandets fĥrsvarares dag" #: src/hd-data.c:547 msgid "Double-9 Day" msgstr "Dubbel-9-dagen" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "Drakbtsfestival" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "Dynastidagen" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "Annandag psk" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "Pskdagen" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "Mnfĥrmĥrkelse" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "Solfĥrmĥrkelse" #: src/hd-data.c:554 msgid "Annular" msgstr "Ringformig" #: src/hd-data.c:555 msgid "Partial" msgstr "Delvis" #: src/hd-data.c:556 msgid "Penumbral" msgstr "Halvskuggad" #: src/hd-data.c:557 msgid "Total" msgstr "Totalt" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "Eindhovens befrielse" #: src/hd-data.c:559 msgid "Election Day" msgstr "Valdagen" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "Kejsarens fĥdelsedag" #: src/hd-data.c:561 msgid "Equinox Day" msgstr "Dagj¤mning" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "Etiopiska nyrsdagen" #: src/hd-data.c:563 msgid "Father's Day" msgstr "Fars dag" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "Kristi kropps och blods hĥgtid" #: src/hd-data.c:565 msgid "Feast of Fortune" msgstr "Rikedomshĥgtiden" #: src/hd-data.c:566 msgid "Feast of Heart Jesus" msgstr "Kristi hj¤rtas hĥgtid" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "Lanternfestivalen" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "Sadeh-festivalen" #: src/hd-data.c:569 msgid "Flag Day" msgstr "Flaggans dag" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "Flaml¤ndska kulturdagen" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "Grundandet av kommunistpartiet" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "Franska kulturdagen" #: src/hd-data.c:573 msgid "French Revolutionary" msgstr "Franska revolutionen" #: src/hd-data.c:574 msgid "Friendship Day" msgstr "V¤nskapsdagen" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "Dagen fĥr Tysklands enande" #: src/hd-data.c:576 msgid "Good Friday" msgstr "Lngfredagen" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "Pskafton" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "Far- och morfĥr¤ldrars dag" #: src/hd-data.c:579 msgid "Greenery Day" msgstr "Grĥnskedagen" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "Grottdagen" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "Murmeldjursdagen" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "Guadaloupejungfruns dag" #: src/hd-data.c:583 #, fuzzy msgid "Guy Fawkes Day" msgstr "Guy Fawkes dag" #: src/hd-data.c:584 msgid "Halloween" msgstr "Allhelgonaafton" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "H¤lso- och sportdagen" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "Channukka/ljusets fest" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "Lag B'Omer" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "Pesach/Psk" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "Purim/Lotshĥgtiden" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "Rosh Hashana/Nyrsdagen" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "Shavuot/–verr¤ckningen av Torah" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "Shushan Purim" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "Simchat Torah" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "Sukkot/Tabernakelhĥgtiden" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "Tisha B'Av/Fastedagen" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tu B'Shevat/Tr¤dens nyr" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Yom Hashoah/Fĥrintelseminnet" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Yom Hazikaron/Soldatminnet" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "Yom Ha Azmaut/Sj¤lvst¤ndighetsdagen" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "Yom Kippur/Fĥrsoningsdagen" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Yom Yerushalayim/Jerusalemdagen" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "Menlĥsa barns dag" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "Heliga trefaldigheten" #: src/hd-data.c:604 msgid "Huravee Day" msgstr "Huraveedagen" #: src/hd-data.c:605 msgid "Independence Day" msgstr "Sj¤lvst¤ndighetsdagen" #: src/hd-data.c:606 msgid "Independence Movement Day" msgstr "Sj¤lvst¤ndighetsrĥrelsens dag" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "Sj¤lvst¤ndighetsfĥrklaringen" #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "Indiska nyrsdagen" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "Aga Khans fĥdelsedag" #: src/hd-data.c:610 msgid "Ashura'" msgstr "Ashura'" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "Eid-al-Adha" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "Eid-al-Fitr" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "Eid-i-Milad-un-Nabi" #: src/hd-data.c:614 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "Imamatdagen" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "Islamiska nyrsdagen" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "Nuzul-al-Qur'an" #: src/hd-data.c:618 msgid "Quds Day" msgstr "Quds dag" #: src/hd-data.c:619 msgid "Ramadan" msgstr "Ramadan" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "Shab-e-Bara't" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "Shab-e-Mi'raj" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "Shab-e Qadr" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "Japanska nyrsdagen" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "Japanska nyrsaftonen" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "Kristi omsk¤relse" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:628 msgid "Labour Day" msgstr "Fĥrsta maj" #: src/hd-data.c:629 msgid "Labour Thanksgiving Day" msgstr "Arbetstacks¤gelsedagen" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "Lao Tzes fĥdelsedag" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "Befrielsedagen" #: src/hd-data.c:632 msgid "Marine Day" msgstr "Marinkrsdagen" #: src/hd-data.c:633 msgid "Martinimas" msgstr "Mrtensm¤ssa" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "Martin L. Kings dag" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "Martyrernas dag" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "Marie bebdelsedag" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "Marie himmelsf¤rds dag" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "Kyndelsm¤ssan" #: src/hd-data.c:639 msgid "Mary's Expectation" msgstr "Marie fĥrv¤ntning" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "Marie obefl¤ckade avlelse" #: src/hd-data.c:641 msgid "Mary's Maternity" msgstr "Marie moderskap" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "Marie namn" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "Marie fĥdelse" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "Marie offer" #: src/hd-data.c:645 msgid "Mary's Visitation" msgstr "Marie hemvist" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "Maria — V¤lsignad jungfru" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "Sk¤rtorsdagen" #: src/hd-data.c:648 msgid "May Day" msgstr "Fĥrsta maj" #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "Midsommardagen/Johannes dĥparens dag" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "Midhĥstfestivalen" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "Midvrsfestivalen" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "Midrsfestivalen" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "Tilltagande halvmne" #: src/hd-data.c:654 msgid "Full Moon" msgstr "Fullmne" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "Avtagande halvmne" #: src/hd-data.c:656 msgid "New Moon" msgstr "Nymne" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "Mors dag" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "Sv¤rmorsdagen" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "Musikvattenbanketten" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "Nationens grundelsedag" #: src/hd-data.c:661 msgid "National Holiday" msgstr "Nationaldagen" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "Nationell sorgedag" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "Nyrsdagen" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "Sjuksysterdagen" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "Gammalarmenska nyret" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "Gammalegyptiska nyret" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "Ortodoxa nyrsdagen" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "Vr fru Aparecidas dag" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "Palmsĥndagen" #: src/hd-data.c:670 msgid "Parent's Day" msgstr "Fĥr¤ldradagen" #: src/hd-data.c:671 msgid "Passion Sunday" msgstr "5:e sĥndagen i fastan" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "Fredsfestivalen" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "Persikofestivalen" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "Pingstdagen" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "Newroz/Persiska nyrsdagen" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "Bĥnedagen" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "Presidentinstallation" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "Presidentens dag" #: src/hd-data.c:679 msgid "Presidents' Inform" msgstr "Presidentens information" #: src/hd-data.c:680 msgid "President Lincoln's Birthday" msgstr "President Lincolns fĥdelsedag" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "Prinsessans dag" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "Fastlagssĥndagen" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "Reformationsdagen" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "Minnesdagen" #: src/hd-data.c:685 msgid "Republic Day" msgstr "Republikens dag" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "„ldrevĥrdnadsdagen" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "Revolutionsdagen" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "Rio de Janeiros jubileum" #: src/hd-data.c:689 msgid "Rogation Sunday" msgstr "Bĥnsĥndagen" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "S£o Paulos jubileum" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "Sapporos snĥfestival" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "…rstids¤ndring/bĥnfestivalen" #: src/hd-data.c:693 msgid "Septuagesima Sunday" msgstr "Septuagesima" #: src/hd-data.c:694 msgid "Seven Sleepers Day" msgstr "Sjusovardagen" #: src/hd-data.c:695 msgid "Sexagesima Sunday" msgstr "Sexagesima" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "Fettisdagen" #: src/hd-data.c:697 msgid "Solstice Day" msgstr "Solstndsdagen" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "Sotst¤dningsdagen" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "Vrfestivalen" #: src/hd-data.c:700 msgid "Start of common month" msgstr "Start av vanlig mnad" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "Start av skottmnad" #: src/hd-data.c:702 msgid "Star Festival" msgstr "Stj¤rnfestivalen" #: src/hd-data.c:703 msgid "St Andrew's Day" msgstr "S:t Andreas dag" #: src/hd-data.c:704 msgid "St Bartholomew Day" msgstr "S:t Bartolomeus dag" #: src/hd-data.c:705 msgid "St Berchtold's Day" msgstr "S:t Berchtolds dag" #: src/hd-data.c:706 msgid "St David's Day" msgstr "S:t Davids dag" #: src/hd-data.c:707 msgid "St Edward's Day" msgstr "S:t Edwards dag" #: src/hd-data.c:708 msgid "St George's Day" msgstr "S:t Gĥrans dag" #: src/hd-data.c:709 msgid "St James' Day" msgstr "S:t Jakobs dag" #: src/hd-data.c:710 msgid "St Joseph's Day" msgstr "S:t Josefs dag" #: src/hd-data.c:711 msgid "St Laurentius Day" msgstr "S:t Lars dag" #: src/hd-data.c:712 msgid "St Nicholas' Day" msgstr "S:t Nikolaus dag" #: src/hd-data.c:713 msgid "St Nicholas' Eve" msgstr "S:t Nikolaus afton" #: src/hd-data.c:714 msgid "St Patrick's Day" msgstr "S:t Patricks dag" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "S:t Peter och S:t Paul" #: src/hd-data.c:716 msgid "St Stephen's Day" msgstr "Stefansdagen" #: src/hd-data.c:717 msgid "St Valentine's Day" msgstr "Alla hj¤rtans dag" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "Dĥdssĥndagen" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "Svalans dag" #: src/hd-data.c:720 msgid "Sweetest Day" msgstr "Sĥtaste dag" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "Nyrsafton" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "L¤rarens dag" #: src/hd-data.c:723 msgid "Thai New Year's Day" msgstr "Thail¤ndska nyrsdagen" #: src/hd-data.c:724 msgid "Thanksgiving Day" msgstr "Tacks¤gelsedagen" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "Konungens fĥdelsedag" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "Drottningens fĥdelsedag" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "Trettondedag jul" #: src/hd-data.c:728 msgid "Tiradentes Day" msgstr "Tiradentes dag" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "Gravst¤dningsdagen" #: src/hd-data.c:730 msgid "Transfiguration Day" msgstr "Kristi fĥrklaringsdag" #: src/hd-data.c:731 msgid "Tynwald Day" msgstr "Tynwalddagen" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "Valborgsm¤ssoafton" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "Karnevalen i Venedig" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "Veteranernas dag" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "Viktoriadagen" #: src/hd-data.c:736 msgid "Victory Day" msgstr "Segerdagen" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "Annandag pingst" #: src/hd-data.c:738 msgid "Women's Day" msgstr "Kvinnodagen" #: src/hd-data.c:739 msgid "Women's Shrove Day" msgstr "Kvinnans biktedag" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "V¤rldsdjurdagen" #: src/hd-data.c:741 msgid "Youth Day" msgstr "Ungdomens dag" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "Adelaide Cup-dagen" #: src/hd-data.c:748 msgid "Admission Day" msgstr "Erk¤nnandedagen" #: src/hd-data.c:749 msgid "Alaska Day" msgstr "Alaskadagen" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "Aleksis Kividag" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "Alice-Springs visningsdag" #: src/hd-data.c:752 msgid "All Saints' Eve" msgstr "Allhelgonaafton" #: src/hd-data.c:753 msgid "Americas Day" msgstr "Amerikas dag" #: src/hd-data.c:754 msgid "Angam Day" msgstr "Angamdagen" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "Amirs tronfĥljdsjubileum" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "Milit¤ra kampens jubileum" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "Grĥna marsjubileet" #: src/hd-data.c:759 msgid "Antillian Day" msgstr "Antilliska dagen" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "Arabfĥrbundets dag" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "„rkebiskop Makarios minnesdag" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "„rkebiskop Makarios namnsdag" #: src/hd-data.c:764 msgid "Arengo Anniversary" msgstr "Arengojubileet" #: src/hd-data.c:765 msgid "Army Coup Day" msgstr "Armİkuppdagen" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "Schweizarnas ankomst" #: src/hd-data.c:767 msgid "Artigas' Birthday" msgstr "Artigas fĥdelsedag" #: src/hd-data.c:768 msgid "Asuncion Day" msgstr "Asunciondagen" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "Atatĵrks minnesdag" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "Myndigheternas dag" #: src/hd-data.c:771 msgid "Ba'ath Revolution Day" msgstr "Ba'ath-revolutionsdagen" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "Baron Bliss dag" #: src/hd-data.c:773 msgid "Bataan Day" msgstr "Bataan-dagen" #: src/hd-data.c:774 msgid "Battle of Angamos" msgstr "Slaget vid Angamos" #: src/hd-data.c:775 msgid "Battle of BoyacĦ" msgstr "Slaget vid BoyacĦ" #: src/hd-data.c:776 msgid "Battle of Carabobo" msgstr "Slaget vid Carabobo" #: src/hd-data.c:777 msgid "Battle of Iquique" msgstr "Slaget vid Iquique" #: src/hd-data.c:778 msgid "Battle of Las Piedras" msgstr "Slaget vid Las Piedras" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "Slaget vid N¤fels" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "Sommarens bĥrjan" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "Belgrads dag" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "Slaget vid Benningtons dag" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "Vattenv¤lsignelsen" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "Blomningsdagen" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "Bogandadagen" #: src/hd-data.c:786 msgid "Bonaire Day" msgstr "Bonairedagen" #: src/hd-data.c:787 msgid "Boqueron Battle Day" msgstr "Boqueronslagets dag" #: src/hd-data.c:788 msgid "Botswana Day" msgstr "Botswanadagen" #: src/hd-data.c:789 msgid "Bounty Day" msgstr "Bountydagen" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "Bunker Hill-dagen" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "Jan Hus eldbeg¤ngelse" #: src/hd-data.c:792 msgid "Canberra Day" msgstr "Canberradagen" #: src/hd-data.c:793 msgid "Caricom Day" msgstr "Caricomdagen" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "Casimir Pulaskis fĥdelsedag" #: src/hd-data.c:795 msgid "Cassinga Day" msgstr "Cassingdagen" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "Cayennefestivalen" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "Cesar Chavez dag" #: src/hd-data.c:798 msgid "Charter Day" msgstr "Stadgedagen" #: src/hd-data.c:799 msgid "Chiang Kai-shek's Birthday" msgstr "Chiang Kai-sheks fĥdelsedag" #: src/hd-data.c:800 msgid "Children's White Sunday" msgstr "Barnens vita sĥndag" #: src/hd-data.c:801 msgid "Colon Day" msgstr "Col³ndagen" #: src/hd-data.c:802 msgid "Colorado Day" msgstr "Coloradodagen" #: src/hd-data.c:803 msgid "Commonwealth Day" msgstr "Samv¤ldesdagen" #: src/hd-data.c:804 msgid "Compact Day" msgstr "Kompaktdagen" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "Konfederala ĥverenskommelsedagen" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "Krĥningsdagen" #: src/hd-data.c:807 msgid "Cup Match Day" msgstr "Cupmatchdagen" #: src/hd-data.c:808 msgid "Custom Chief's Day" msgstr "Traditionella hĥvdingens dag" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "C. Mapinduzis dag" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "Darwinvisningsdagen" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "Godhetsdagen" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "Studentrevoltens dag" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "Fria Laos dag" #: src/hd-data.c:814 msgid "Death of H. Christophe" msgstr "H. Christophes dĥd" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "J. Dessalines dĥd" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "President Abdallahs dĥd" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "President Cheikhs dĥd" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "President Soilihs dĥd" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "Qaid-i-Azams dĥd" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "T. Louvertures dĥd" #: src/hd-data.c:821 msgid "Defenders Day" msgstr "Fĥrsvararnas dag" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "Dia del Padre" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "Dia de los Maestros" #: src/hd-data.c:824 msgid "Discovery Day" msgstr "Uppt¤ckelsedagen" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "Dergues fall" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "Torrs¤songsfirandet" #: src/hd-data.c:827 msgid "Dr. Sun Yat-sen's Birthday" msgstr "Dr. Sun Yat-sens fĥdelsedag" #: src/hd-data.c:828 msgid "Duarte's Birthday" msgstr "Duartes fĥdelsedag" #: src/hd-data.c:829 msgid "Easter Tuesday" msgstr "Psktisdagen" #: src/hd-data.c:830 msgid "Economic Liberation Day" msgstr "Ekonomiska befrielsedagen" #: src/hd-data.c:831 msgid "Eight Hours Day" msgstr "…ttatimmarsdagen" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "Val till den nationella fĥrsamlingen" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "Errol Barrows dag" #: src/hd-data.c:834 msgid "Evacuation Day" msgstr "Evakueringsdagen" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "Trettondagsafton" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "De trettiotres expedition" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "E. Hostos fĥdelsedag" #: src/hd-data.c:838 msgid "Family Day" msgstr "Familjedagen" #: src/hd-data.c:839 msgid "FAO Day" msgstr "FAO-dagen" #: src/hd-data.c:840 msgid "Farmers' Day" msgstr "Bondens dag" #: src/hd-data.c:841 msgid "Father Leval Day" msgstr "Fader Levals dag" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "Vr Theotokos hĥgtid" #: src/hd-data.c:843 msgid "Fisherman's Day" msgstr "Fiskarens dag" #: src/hd-data.c:844 msgid "Foundation of NPLA Day" msgstr "NPLA:s grundningsdag" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "Grundandet av folkpartiet" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "Garifunadagen" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "General San Martins jubileum" #: src/hd-data.c:849 msgid "Gospel Day" msgstr "Evangeliedagen" #: src/hd-data.c:850 msgid "Guacanaste Day" msgstr "Guacanastedagen" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "Gustav Adolfsdagen" #: src/hd-data.c:852 msgid "Heritage Day" msgstr "Arvsdagen" #: src/hd-data.c:853 msgid "Heroes Day" msgstr "Hj¤ltarnas dag" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "Hobart-visningsdagen" #: src/hd-data.c:855 msgid "Holy Wednesday" msgstr "Heliga onsdagen" #: src/hd-data.c:856 msgid "Ho Chi Minh's Birthday" msgstr "Ho Chi Minhs fĥdelsedag" #: src/hd-data.c:857 msgid "Human Rights Day" msgstr "M¤nskliga r¤ttigheternas dag" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "Orkanbĥnedagen" #: src/hd-data.c:859 msgid "Hurricane Thanksgiving Day" msgstr "Orkantacks¤gelsedagen" #: src/hd-data.c:860 msgid "Independence of Cartagena" msgstr "Cartagenas sj¤lvst¤ndighet" #: src/hd-data.c:861 msgid "Independence of Cuenca" msgstr "Cuencas sj¤lvst¤ndighet" #: src/hd-data.c:862 msgid "Independence of Guayaquil" msgstr "Guayaquils sj¤lvst¤ndighet" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "Quitos sj¤lvst¤ndighet" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "Indiernas ankomstdag" #: src/hd-data.c:865 msgid "Internal Autonomy Day" msgstr "Intern sj¤lvst¤ndighetsdagen" #: src/hd-data.c:866 msgid "Jefferson Davis' Birthday" msgstr "Jefferson Davis fĥdelsedag" #: src/hd-data.c:867 msgid "June Holiday" msgstr "Junihelgen" #: src/hd-data.c:868 msgid "J. Barbosa's Birthday" msgstr "J. Barbosas fĥdelsedag" #: src/hd-data.c:869 msgid "J. Chilembwe Day" msgstr "J. Chilembwes dag" #: src/hd-data.c:870 msgid "J. Diego's Birthday" msgstr "J. Diegos fĥdelsedag" #: src/hd-data.c:871 msgid "J. Robert's Birthday" msgstr "J. Roberts fĥdelsedag" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "Kamarampaka-dagen" #: src/hd-data.c:873 msgid "Kartini Day" msgstr "Kartinidagen" #: src/hd-data.c:874 msgid "Catherine Show Day" msgstr "Catherines visningsdag" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "Kievdagen" #: src/hd-data.c:876 msgid "Kim Il-Sung's Birthday" msgstr "Kim Il-Sungs fĥdelsedag" #: src/hd-data.c:877 msgid "Kim Jong-Il's Birthday" msgstr "Kim Jong-Ils fĥdelsedag" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "Kung Kamehamehas dag" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "Kung Rama I minnesdag/Chakri" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "Kung Rama V minnesdag" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "Knabenschiessen" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "Konstantin och Methodius" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "Samernas nationaldag" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "Launceston Cup-dagen" #: src/hd-data.c:885 msgid "Liberty Day" msgstr "Frihetsdagen" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "Fĥrlorandet av den muslimska staten" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "Staden Luxemburgs karneval (Kirmess)" #: src/hd-data.c:888 msgid "Lyndon B. Johnson Day" msgstr "Lyndon B. Johnsons dag" #: src/hd-data.c:889 msgid "L. Rivera's Birthday" msgstr "L. Riveras fĥdelsedag" #: src/hd-data.c:890 msgid "Madaraka Day" msgstr "Madaraka-dagen" #: src/hd-data.c:891 msgid "Mahatma Gandhi's Birthday" msgstr "Mahatma Gandhis fĥdelsedag" #: src/hd-data.c:892 msgid "Malvinas Day" msgstr "Malvinasdagen" #: src/hd-data.c:893 msgid "Manila Day" msgstr "Maniladagen" #: src/hd-data.c:894 msgid "Maputo City Day" msgstr "Maputo Citys dag" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "Marien Ngouabis dag" #: src/hd-data.c:896 msgid "Maryland Day" msgstr "Marylanddagen" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "Melbourne Cup-dagen" #: src/hd-data.c:898 msgid "Merchant Day" msgstr "Handlardagen" #: src/hd-data.c:899 msgid "St John's/Midsummers Eve" msgstr "Midsommarafton" #: src/hd-data.c:900 msgid "Missionary Day" msgstr "Mission¤rsdagen" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "Mi-CarŞme-dagen" #: src/hd-data.c:902 msgid "Morazan Day" msgstr "Morazandagen" #: src/hd-data.c:903 msgid "Mosheshoe's Day" msgstr "Mosheshoes dag" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "Mĥdraskapets och skĥnhetens dag" #: src/hd-data.c:905 msgid "Naming Day" msgstr "Namngivelsedagen" #: src/hd-data.c:906 msgid "National Bun Day" msgstr "Nationella bulledagen" #: src/hd-data.c:907 msgid "National Heroes Day" msgstr "Nationella hj¤ltars dag" #: src/hd-data.c:908 msgid "National Redemption Day" msgstr "Nationella fĥrsoningsdagen" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "Nationella motstndsdagen" #: src/hd-data.c:910 msgid "National Revival Day" msgstr "Nationella uppv¤ckelsedagen" #: src/hd-data.c:911 msgid "National Unity Day" msgstr "Nationella enhetsdagen" #: src/hd-data.c:912 msgid "Ndadaye Day" msgstr "Ndadayedagen" #: src/hd-data.c:913 msgid "Neutrality Day" msgstr "Neutralitetsdagen" #: src/hd-data.c:914 msgid "Nevada Day" msgstr "Nevadadagen" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "Nya regimens jubileum" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "Nobeldagen" #: src/hd-data.c:917 msgid "Noi Day" msgstr "Noidagen" #: src/hd-data.c:918 msgid "OAU Day" msgstr "OAU-dagen" #: src/hd-data.c:919 msgid "October Holiday" msgstr "Oktoberhelgen" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "Oljeindustrins dag" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "Vr fru Altagracias dag" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "Vr fru Camarins dag" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "Vr fru Las Mercedes dag" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "Vr fru Los Angeles dag" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "Vr fru av sju synder" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "Vr fru av segrars dag" #: src/hd-data.c:927 msgid "Panama City Day" msgstr "Panama Citys dag" #: src/hd-data.c:928 msgid "Panamerica Day" msgstr "Panamerikadagen" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "Parisfredens dag" #: src/hd-data.c:930 msgid "Patriot's Day" msgstr "Patrioternas dag" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "Folkets upprorsdag" #: src/hd-data.c:932 msgid "People Power Day" msgstr "Folkmaktens dag" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "Filippinsk-amerikanska v¤nskapen" #: src/hd-data.c:934 msgid "Pichincha Day" msgstr "Pichincha-dagen" #: src/hd-data.c:935 msgid "Picnic Day" msgstr "Picknickdagen" #: src/hd-data.c:936 msgid "Pioneer Day" msgstr "Pionj¤rdagen" #: src/hd-data.c:937 msgid "Poya Day" msgstr "Poyadagen" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "Prins Kalanianaoles dag" #: src/hd-data.c:939 msgid "Prince of Wales' Birthday" msgstr "Prinsen av Wales fĥdelsedag" #: src/hd-data.c:940 msgid "Proclamation Day" msgstr "Proklameringsdagen" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "Qaid-i-Azams fĥdelsedag" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "Ratu Sukuma-dagen" #: src/hd-data.c:943 msgid "Recreation Day" msgstr "Fritidsdagen" #: src/hd-data.c:944 msgid "Referendum Day" msgstr "Folkomrĥstningsdagen" #: src/hd-data.c:945 msgid "Regatta Day" msgstr "Regattadagen" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "Regentutbytet" #: src/hd-data.c:947 msgid "Restoration Day" msgstr "Restaurationsdagen" #: src/hd-data.c:948 msgid "Return Day" msgstr "…terkomstdagen" #: src/hd-data.c:949 msgid "Reunification Day" msgstr "…terfĥreningsdagen" #: src/hd-data.c:950 msgid "Rizal Day" msgstr "Rizaldagen" #: src/hd-data.c:951 msgid "Rwagasore Day" msgstr "Rwagasoredagen" #: src/hd-data.c:952 msgid "Saba Day" msgstr "Sabadagen" #: src/hd-data.c:953 msgid "San Jacinto Day" msgstr "San Jacinto-dagen" #: src/hd-data.c:954 msgid "San Josİ Day" msgstr "San Josİ-dagen" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "SAR-grundandedagen" #: src/hd-data.c:956 msgid "School Holiday" msgstr "Skolhelg" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "Sechsel¤uten" #: src/hd-data.c:958 msgid "Separation Day" msgstr "Separationsdagen" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "Seretse Khama-dagen" #: src/hd-data.c:960 msgid "Settlers Day" msgstr "Bos¤ttardagen" #: src/hd-data.c:961 msgid "Seward's Day" msgstr "Sewards dag" #: src/hd-data.c:962 msgid "Shaheed Day" msgstr "Shaheeddagen" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "Frfestivalen" #: src/hd-data.c:964 msgid "Sheikh Zayed's Ascension Day" msgstr "Sheikh Zayeds uppstigningsdag" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "Simon Bolivars dag" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "Sinais befrielsedag" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "Slavbefrielsedagen" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "Sniffa brisen-dagen" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "Solidaritetsdagen" #: src/hd-data.c:970 msgid "Somers Day" msgstr "Somersdagen" #: src/hd-data.c:971 msgid "Statia-American Day" msgstr "Statia-amerikanska dagen" #: src/hd-data.c:972 msgid "Student's Day" msgstr "Studenternas dag" #: src/hd-data.c:973 msgid "St Agata Day" msgstr "S:t Agata-dagen" #: src/hd-data.c:974 msgid "St Canute's Day" msgstr "Tjugondag Knut" #: src/hd-data.c:975 msgid "St Cedilia's Day" msgstr "S:t Cedilias dag" #: src/hd-data.c:976 msgid "St Charles' Day" msgstr "S:t Karls dag" #: src/hd-data.c:977 msgid "St Demetrius' Day" msgstr "S:t Demetrius dag" #: src/hd-data.c:978 msgid "St Dİvote Day" msgstr "S:t Dİvote-dagen" #: src/hd-data.c:979 msgid "St Eliah's Day" msgstr "S:t Eliahs dag" #: src/hd-data.c:980 msgid "St Jean Baptiste Day" msgstr "Johannes dĥparens dag" #: src/hd-data.c:981 msgid "St Lucia's Day" msgstr "Luciadagen" #: src/hd-data.c:982 msgid "St Marguerite's Day" msgstr "S:t Margaretas dag" #: src/hd-data.c:983 msgid "St Maroon's Day" msgstr "S:t Maroons dag" #: src/hd-data.c:984 msgid "St Michael's Day" msgstr "Mickelsm¤ss" #: src/hd-data.c:985 msgid "St Olav's Day" msgstr "S:t Olofs dag" #: src/hd-data.c:986 msgid "St Olav's Eve" msgstr "S:t Olofs afton" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "S:t Pauls skeppsbrott" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "S:t Rose av Lima" #: src/hd-data.c:989 msgid "St Ursula's Day" msgstr "S:t Ursulas dag" #: src/hd-data.c:990 msgid "St Vincent de Paul's Day" msgstr "S:t Vincent de Pauls dag" #: src/hd-data.c:991 msgid "Suez Victory Day" msgstr "Suez-segerdagen" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "Sultan Qaboos fĥdelsedag" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:994 msgid "Sweden Day" msgstr "Sverigedagen" #: src/hd-data.c:995 msgid "S. Doe's Birthday" msgstr "S. Does fĥdelsedag" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "Tennant-Creek-visningsdagen" #: src/hd-data.c:997 msgid "Territory Day" msgstr "Territoriedagen" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "Kronprinsessans fĥdelsedag" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "Kronprinsessans namnsdag" #: src/hd-data.c:1000 msgid "The Crown Prince's Birthday" msgstr "Kronprinsens fĥdelsedag" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "Konungens namnsdag" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "Drottningens namnsdag" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "Topou I-dagen" #: src/hd-data.c:1004 msgid "Town Meeting Day" msgstr "Stadsmĥtesdagen" #: src/hd-data.c:1005 msgid "Traditional Day" msgstr "Traditionell dag" #: src/hd-data.c:1006 msgid "Transfer Day" msgstr "–verfĥringsdagen" #: src/hd-data.c:1007 msgid "Truman Day" msgstr "Trumandagen" #: src/hd-data.c:1008 msgid "Union Day" msgstr "Unionsdagen" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "Unionsupplĥsningen med Sverige" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "FN-dagen" #: src/hd-data.c:1011 msgid "Unity Factory Day" msgstr "Enhetsfabriksdagen" #: src/hd-data.c:1012 msgid "Victor-Schoelcher Day" msgstr "Victor-Schoelcher-dagen" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "Vidovdan" #: src/hd-data.c:1014 msgid "West Virginia Day" msgstr "West Virginia-dagen" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "Pingstafton" #: src/hd-data.c:1016 msgid "W. Tubman's Birthday" msgstr "W. Tubmans fĥdelsedag" #: src/hd-data.c:1017 msgid "Yap Day" msgstr "Yapdagen" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "Tjeckiens sj¤lvst¤ndighetsdag" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "Zi/Rtta" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "Chou/Oxe" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "Yin/Tiger" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "Mao/Kanin" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "Chen/Drake" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "Si/Orm" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "Wu/H¤st" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "Wei/Fr" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "Shen/Apa" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "You/Tupp" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "Xu/Hund" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "Hai/Gris" #: src/hd-data.c:1287 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1550 msgid "Cel" msgstr "Kel" #: src/hd-data.c:1692 src/hd-data.c:2225 msgid "Chi" msgstr "Kin" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "Kan inte ber¤kna mnsolskalendern fĥr %d korrekt" #: src/hd-data.c:2227 src/hd-data.c:3730 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2423 msgid "Chr" msgstr "Kri" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "FRR" #: src/hd-data.c:2778 src/hd-data.c:2960 msgid "Heb" msgstr "Heb" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "AMG" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "EGG" #: src/hd-data.c:4447 msgid "OxN" msgstr "OxN" #: src/hd-data.c:4449 msgid "OxO" msgstr "OxG" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "Per" #: src/hd-data.c:4847 msgid "Zod" msgstr "Zod" #: src/hd-use.c:929 msgid " day" msgstr " dag" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "Evighetskalender fĥr helgdagar" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*s…r %0*d „R ett skottr" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*s…r %0*d ¤r INTE ett skottr" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*s…r %d „R ett skottr" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*s…r %d ¤r INTE ett skottr" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr " = %+4d dag" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr " = %+4d dagar" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s innehller nu det maximala antalet %d poster!%s" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "Kompilerad med %s%s fĥr %s%s%s%s" #: src/help.c:75 msgid "# Day number (must be defined)" msgstr "# Dagnummer (mste definieras)" #: src/help.c:76 msgid "# Year number (must be defined)" msgstr "# …rnummer (mste definieras)" #: src/help.c:77 msgid "# Weekday name (may be defined)" msgstr "# Veckodagsnamn (kan definieras)" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "Mnadsgrupp (exakt en medlem mste definieras):" #: src/help.c:79 msgid "# Month number" msgstr "# Mnadsnummer" #: src/help.c:80 msgid "# Month name" msgstr "# Mnadsnamn" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "Markeringsgrupp (alla medlemmar mste definieras):" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "Start p markeringssekvens/markeringstecken" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "Slut p markeringssekvens/markeringstecken" #: src/help.c:86 msgid "Character replacement:" msgstr "Ers¤ttningstecken:" #: src/help.c:87 #, c-format msgid "Space/blank ('%c') character" msgstr "Blanksteg/tomt (\"%c\") tecken" #: src/help.c:88 #, c-format msgid "Underscore ('%c') character" msgstr "Understreck (\"%c\")" #: src/help.c:89 #, c-format msgid "Percent ('%c') character" msgstr "Procent (\"%c\")" #: src/help.c:90 #, c-format msgid "Backslash ('%c') character" msgstr "Omv¤nt snedstreck (\"%c\")" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "Alla formatelement m¤rkta med # kan om s ĥnskas" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "innehlla en formatinstruktion, vars mall ¤r som:" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[JUSTERING [TECKEN] [NOLL] BREDD [STIL] [SUFFIX] FORMAT]" #: src/help.c:94 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "JUSTERINGSgrupp (exakt en medlem mste definieras):" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "F¤ltinnehll placeras vid v¤nstermarginalen med bredden BREDD" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "F¤ltinnehll som placeras centrerat med bredden BREDD" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "F¤ltinnehll som placeras vid hĥgermarginalen med bredden BREDD" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "TECKEN (kan definieras):" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "Numeriskt v¤rde tillhandahlls med inledande tecken" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "NOLL (mste definieras):" #: src/help.c:104 msgid "Numerical value is filled with leading zero(es)" msgstr "Numeriskt v¤rde fylls med inledande nolla/nollor" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "BREDD (mste definieras):" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "F¤ltet har bredden N (%d...%d)" #: src/help.c:107 msgid "STYLE group (exactly one member may be defined):" msgstr "STILgrupp (exakt en medlem mste definieras):" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "F¤ltinnehllet konverteras versaler" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "F¤ltinnehllet konverteras till gemener" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "F¤ltinnehllet konverteras till ord med versal begynnelsebokstav" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "SUFFIX (kan definieras):" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "Numeriskt v¤rde tillhandahlls med ett ordinalt nummersuffix" #: src/help.c:114 msgid "FORMAT group (exactly one member must be defined):" msgstr "FORMATgrupp (exakt en medlem mste definieras):" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "F¤ltinnehll klipps inte efter position BREDD" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "F¤ltinnehll klipps efter position BREDD" #: src/help.c:130 msgid "legal holidays" msgstr "allm¤nna helgdagar" #: src/help.c:131 msgid "holidays" msgstr "helgdagar" #: src/help.c:132 msgid "Mondays" msgstr "mndagar" #: src/help.c:133 msgid "Tuesdays" msgstr "tisdagar" #: src/help.c:134 msgid "Wednesdays" msgstr "onsdagar" #: src/help.c:135 msgid "Thursdays" msgstr "torsdagar" #: src/help.c:136 msgid "Fridays" msgstr "fredagar" #: src/help.c:137 msgid "Saturdays" msgstr "lĥrdagar" #: src/help.c:138 msgid "Sundays" msgstr "sĥndagar" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "mndagar - torsdagar" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "mndagar - fredagar" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s: Anv¤nd \"%s %s\" med ett av dessa argument" #: src/help.c:243 msgid "OPTION" msgstr "FLAGGA" #: src/help.c:256 msgid " Display help text and quit program" msgstr " Visa hj¤lptext och avsluta programmet" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr " Visa utvidgad hj¤lptext och avsluta programmet" #: src/help.c:291 msgid " Display software license and quit program" msgstr " Visa programvarulicens och avsluta programmet" #: src/help.c:302 msgid " Display version information and quit program" msgstr " Visa versionsnummer och avsluta programmet" #: src/help.c:313 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr " St¤ll in programmets SLUTstatus till %d vid \"%s\" osv." #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Skapa svarsfil fĥr \"%cFIL-flaggan\"" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " %-3s = Lagra argumenten frn kommandoraden i filen %s" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" " Skapa ett skalprogram som innehller argumenten frn kommandoraden" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Skalprogrammets filnamn" #: src/help.c:360 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" " Definiera globala datumvariabler \"DVAR->a...d|f...s|u...|z\"" #: src/help.c:364 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" " %-3s = Definitioner av \"DVAR%s%s%s'\" tskilda med \"%s\"-tecken" #: src/help.c:369 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" " T.ex. %sv a%s1127%sb%s054 St¤ll in \"a\" till 27 nov och \"b\" " "till 4 maj" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr " Exportera lokala datumvariabler frn fil till fil" #: src/help.c:393 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr " Definiera globala textvariabler \"TVAR->%ca...%cz\"" #: src/help.c:398 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr " %-3s = Definitioner av \"TVAR%sTEXT\" tskilda med \"%s\"-tecken" #: src/help.c:403 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" " T.ex. %sr %ca%sapa%s%cb%sbil St¤ll in \"%ca\" till \"apa\" och " "\"%cb\" till \"bil\"" #: src/help.c:409 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" " = \"TVAR[%s|%c%s]KOMMANDO\"-definitions tskilda med \"%s\"-tecken" #: src/help.c:414 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" " T.ex. %sr %ca%sapa Tilldela utdata frn kommandot \"apa\" till " "\"%ca\"" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr " Exportera lokala textvariabler frn fil till fil" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr " Visa bara de fasta datum, som inte utesluts av %s" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr " %-3s = Ett eller fler av fĥljande tecken. Om tecknet" #: src/help.c:448 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " ¤r en GEMEN betyder det en icke-uteslutning!" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Uteslutning av %s" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "" " %-3s = Lista med \"%c[DATUM][%c[DATUM]]\" och/eller \"%c[DATUM]" "[%c[DATUM]]\"" #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr " uttryck tskilda med \"%s\"-tecken" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr " Visa bara de fasta datum, vars text ĥverensst¤mmer med %s" #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " %-3s = Vilken text eller \"regulj¤rt uttryck\" som helst" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr " Ignorera skillnader i VERSALER/gemener om flaggan \"%s\" ges" #: src/help.c:520 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Omv¤nd typen av matchning hos flaggan \"%s\"" #: src/help.c:531 msgid " Display some debug information" msgstr " Visa lite felsĥkningsinformation" #: src/help.c:539 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal Information huruvida programmets interna maxima " "uppns" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr " = handled Som \"internal\" plus filnamn som hanteras" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled Som \"internal\" plus filnamn som inte hanteras" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Som \"handled\" och \"unhandled\" tillsammans" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" " = abort Som \"all\" men avbryt om filnamnet inte kan hanteras" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr " Anv¤nd speciellt format fĥr kalenderblad" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - Anv¤nd standardformat fĥr kalenderblad" #: src/help.c:596 msgid " Use leap year rule of Eastern Orthodox churches" msgstr " Anv¤nd regeln fĥr skottr i ĥstortodoxa kyrkan" #: src/help.c:606 msgid " Provide calendar sheet with week numbers" msgstr " Tillhandahll kalenderblad med veckonummer" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Avgĥr typen av veckonummer (faktiskt: %s)" #: src/help.c:618 msgid "Standard" msgstr "Standard" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes ISO-8601:1988-veckonummer" #: src/help.c:631 msgid " = no Standard week numbers" msgstr " = no Standardveckonummer" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr " Undertryck uttryckligen visning av kalenderblad" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr " Skicka utdata genom en extern \"%s\"-sidvisare" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr " Skicka utdata genom en enkel intern sidvisare" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " St¤ng av markering av text, helgdagar resp. aktuell dag" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr " Framtvinga markeringssekvenser om utdata omdirigeras" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr " V¤lj markeringssekvenspar 1 (=aktuell dag) och 2 (=helgdag)" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr " %-3s = Par av markeringssekvenser tskilda med ”%s”-tecken" #: src/help.c:716 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" " T.ex. %sH \\x2%s\\xAE Anv¤nd hexv¤rdena 2 och AE fĥr sekvens 1" #: src/help.c:721 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" " T.ex. %sH %s%s*%s* Anv¤nd tecknen \"*\" och \"*\" fĥr " "sekvens 2" #: src/help.c:732 msgid " Modify format of year calendar" msgstr " „ndra format p rskalender" #: src/help.c:736 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr " %-3s = 1|2|3|4|6|12 Antal block (faktiskt: %d)" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr " Anv¤nd fortlĥpande dagar p ret p kalenderbladet" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b Anv¤nd bda datumbeteckningarna (dag i mnaden+dag p ret)" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr " Anv¤nd fortlĥpande dagar p ret i evighetskalendern" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" " [MOD] = b Anv¤nd bda datumbeteckningarna (dag i mnaden+dag p ret)" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr " Anv¤nd fortlĥpande dagar p ret p listan med fasta datum" #: src/help.c:795 #, c-format msgid " Set starting day of week (actual: %s)" msgstr " St¤ll in dag som veckan bĥrjar med (faktiskt: %s)" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr " Skicka utdata via programmet \"%s\" till anv¤ndare" #: src/help.c:857 msgid "UNKNOWN" msgstr "OK„ND" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" " [%-3s] = E-postadress, annars skickas e-post till anv¤ndaren \"%s\"" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "" " Visa evighetskalender fĥr helgdagar (r i intervallet: %d - %d)" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr " n = Allm¤nna helgdagar och minnesdagar" #: src/help.c:883 msgid " N = Legal days only" msgstr " N = Enbart allm¤nna helgdagar" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD] = %s Fallande sorteringsordning" #: src/help.c:897 msgid " Suppress leading blank line of eternal holiday list" msgstr " Undertryck inledande blanksteg i evighetskalender" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr " Evighetskalender fĥr helgdagar utan titel" #: src/help.c:919 msgid " Provide eternal holiday list with astronomical data" msgstr " Tillhandahll evighetskalender med astronomisk data" #: src/help.c:931 msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr " Tillhandahll evighetskalender med BahĦ'i-kalenderhelger" #: src/help.c:943 msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr " Tillhandahll evighetskalender med BahĦ'i-kalendermnader" #: src/help.c:955 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " Tillhandahll evighetskalender med keltiska kalenderhelger" #: src/help.c:967 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" " Tillhandahll evighetskalender med kinesiska flexibla " "kalenderhelger" #: src/help.c:979 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" " Tillhandahll evighetskalender med kinesiska flexibla " "kalendermnader" #: src/help.c:991 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " Tillhandahll evighetskalender med kinesiska kalenderhelger" #: src/help.c:1003 msgid " Provide eternal holiday list with Chinese calendar months" msgstr " Tillhandahll evighetskalender med kinesiska kalendermnader" #: src/help.c:1015 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" " Tillhandahll evighetskalender med v¤stliga kristna kalenderhelger" #: src/help.c:1027 msgid " Provide eternal holiday list with Coptic calendar months" msgstr " Tillhandahll evighetskalender med koptiska kalendermnader" #: src/help.c:1039 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " Tillhandahll evighetskalender med etiopiska kalendermnader" #: src/help.c:1051 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" " Tillhandahll evighetskalender med kalendermnader frn franska " "revolutionen" #: src/help.c:1063 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " Tillhandahll evighetskalender med hebreiska kalenderhelger" #: src/help.c:1075 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " Tillhandahll evighetskalender med hebreiska kalendermnader" #: src/help.c:1087 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "" " Tillhandahll evighetskalender med indiska civila kalendermnader" #: src/help.c:1099 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "" " Tillhandahll evighetskalender med islamiska civilkalenderhelger" #: src/help.c:1111 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "" " Tillhandahll evighetskalender med islamiska civilkalendermnader" #: src/help.c:1123 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" " Tillhandahll evighetskalender med japanska flexibla kalenderhelger" #: src/help.c:1135 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" " Tillhandahll evighetskalender med japanska flexibla " "kalendermnader" #: src/help.c:1147 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " Tillhandahll evighetskalender med japanska kalenderhelger" #: src/help.c:1159 msgid " Provide eternal holiday list with Japanese calendar months" msgstr " Tillhandahll evighetskalender med japanska kalendermnader" #: src/help.c:1172 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" " Tillhandahll evighetskalender med multikulturella nyrshelger" #: src/help.c:1184 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "" " Tillhandahll evighetskalender med gammalarmeniska kalendermnader" #: src/help.c:1196 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "" " Tillhandahll evighetskalender med gammalegyptiska kalendermnader" #: src/help.c:1208 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " Tillhandahll evighetskalender med ortodoxa nykalenderhelger" #: src/help.c:1220 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" " Tillhandahll evighetskalender med ortodoxa gammalkalenderhelger" #: src/help.c:1232 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" " Tillhandahll evighetskalender med persiska Jalaali-kalenderhelger" #: src/help.c:1244 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" " Tillhandahll evighetskalender med persiska Jalaali-kalendermnader" #: src/help.c:1256 msgid " Provide eternal holiday list with zodiacal marker data" msgstr " Tillhandahll evighetskalender med data om stj¤rntecken" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr " Tillhandahll evighetskalender med landsspecifika helgdagar" #: src/help.c:1272 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr " %-3s = Enstaka landskod, omrdeskod, eller en lista med dessa" #: src/help.c:1277 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr " som ¤r sammanbundna med ”%s”-tecken. L¤nder/omrden" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr " markerade med # har en ofullst¤ndig registrering av helger" #: src/help.c:1286 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = Helgdagar i %s" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" " St¤ll in referensv¤rdet fĥr uppgng/nedgng respektive skuggl¤ngd" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" " %-3s = Vinkelv¤rdet respektive faktor i intervallet: %+.1f...%+.1f" #: src/help.c:1322 msgid " Set base data of Earth's atmosphere" msgstr " St¤ll in grundl¤ggande data fĥr jordens atmosf¤r" #: src/help.c:1326 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr " %-3s = Lufttryck och temperatur tskilda med \"%s\"-tecken" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " Lufttryck i millibar (faktiskt: %3.f)" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr " Lufttemperatur i grader Celsius (faktiskt: %+.3f)" #: src/help.c:1344 msgid " Limit rise/set times of Sun to the day" msgstr " Begr¤nsa uppgng/nedgngstider fĥr solen till dagen" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" " Representera astronomiska tider och data med yttersta precision" #: src/help.c:1366 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " Kĥr \"%c%c[%s]\"-skalkommandon" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " och \"TVAR[%s|%c%s]KOMMANDO\"-tilldelningar" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr " „ndra bastiden fĥr astronomiska funktioner" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr " respektive ¤ndra cykelstarttiden" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Tidsskillnadsv¤rde " "(faktiskt: %s%02d%s%02d == UTC%s)" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Tidsskillnadsv¤rde (faktiskt: %s" "%02d%s%02d == UTC%s)" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr " „ndra cykelsluttiden" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Sluttidsv¤rdet (faktiskt: " "%02d%s%02d)" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr " „ndra cykeltidssteg" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr " %-3s = MMMM|HH%s[MM] Tidsstegsv¤rdet (faktiskt: %02d%s%02d)" #: src/help.c:1453 msgid " Change base year of calendar" msgstr " „ndra basret i kalendern" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr " %-3s = [%s|%s]YYYY …rsskillnadsv¤rde (faktiskt: %d)" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr " St¤ll in perioden fĥr gregorianska reformationen" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " Aktuell tidsperiod: %02d-%02d %s %0*d" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr " %-*d%*s = St¤ll in tidsperioden till: %02d-%02d %s %0*d" #: src/help.c:1485 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr " %-3s = %s%c%s%s%s%s%s%s St¤ll in perioden uttryckligen" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" " St¤ll in ordningen p datumelementen genom att anv¤nda " "formattexten %s" #: src/help.c:1502 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Faktiskt: (%s) \"%s\" (%s)" #: src/help.c:1504 msgid "self-defined" msgstr "egendefinierat" #: src/help.c:1509 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = Formatet ¤r: \"%s\" (%s)" #: src/help.c:1517 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr " %-3s = Definiera eget format. Formatelement som k¤nns igen ¤r:" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr " Definiera ĥvers¤ttningsbara landsspecifika specialteckenpar" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr " %-3s = VERSAL\"\"GEMEN... definitioner" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" " T.ex. ett ”%s%s%s%s%s%s%s%s” %-3s medfĥr korrekt konvertering av" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" " de fĥregende specialtecknen i ett individuellt datumformat," #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr " vilka har en formatinstruktionskomponent STIL, och hur" #: src/help.c:1582 msgid " they are used by the character set used in Germany" msgstr " de anv¤nds av teckenupps¤ttningen som anv¤nds i Tyskland" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ FASTA DATUM +++" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" " Anv¤nd standardresursfilen \".%s%s\" fĥr listan med fasta datum" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" " Anv¤nd standardresursfilen \"%s%s\" fĥr listan med fasta datum" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr " Medfĥr tidsperioden: idag" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr " c = Visa bara de dagar som har fasta datum" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr " C = Visa ocks de dagar som inte har fasta datum" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr " [MOD] = En eller fler av fĥljande modifierare markerade med #" #: src/help.c:1654 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr " %-3s = Rubrik-/titeltext fĥr lista med fasta datum" #: src/help.c:1657 #, c-format msgid " Actual: `%s'" msgstr " Faktisk: \"%s\"" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" " # g[MOD] = Gruppera fasta datum genom att anv¤nda texten MOD" #: src/help.c:1682 msgid " 1. Representation of text" msgstr " 1. Representation av text" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr " = St¤ll in bredden p biorytmens textgrafik" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d - %d L¤ngden p en axel" #: src/help.c:1711 msgid " = Set height of the Moon phase text graphics" msgstr " = St¤ll in hĥjden p mnfasens textgrafik" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Totala antalet rader" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr " # a = Visa ursprunget till fast datum" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr "" " # A = Visa genom att anv¤nda ett alternativt listformat" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr " # e = Tag med allm¤nna helgdagar och minnesdagar" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr " # E = Tag bara med allm¤nna helgdagar" #: src/help.c:1763 msgid " # k = Display week number" msgstr " # k = Visa veckonummer" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = Utel¤mna del av datumet som upprepas" #: src/help.c:1787 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" " # Q = Utel¤mna inledande tomrad i listan ĥver fasta " "datum" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr " # U = Utel¤mna datumdelen av fasta datum" #: src/help.c:1811 msgid " # J = Suppress text part of fixed dates" msgstr " # J = Utel¤mna textdel i fasta datum" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr " # x = Lista med fasta datum utan titel" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr " # z = Visa fortlĥpande fasta datum" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr " # Z = Visa dagar som saknar fasta datum" #: src/help.c:1855 msgid " 2. Respected period" msgstr " 2. Aktuell tidsperiod" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr " = Hantera 29 FEBRUARI under icke-skottr" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february Beakta den 28 FEBRUARI" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march Beakta den 1 MARS" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" " # d = Tag med aktuellt datum om periodlista skapas" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" " # l = Skapa periodlista i st¤llet fĥr en enstaka period" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr " # Nd = Enstaka dag N" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = Enstaka dag N" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = Enstaka dag N relativt idag" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s Framt" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr " = %s Bakt" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr " # Nw = Hel vecka N" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1:a veckan / sista veckan fĥregende " "r" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1 - 52 1:a - 52:a veckan (alltid)" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53:e veckan (ibland)" #: src/help.c:1953 msgid " N = 99 Last week" msgstr " N = 99 Sista veckan" #: src/help.c:1956 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # %s%s = Enstaka dag %s i mnaden %s" #: src/help.c:1962 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr " # %s%sN = Enstaka N:e veckodagen %s i mnaden %s" #: src/help.c:1967 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" " N = 1 - 4 1:a - 4:e veckodagen %s (alltid)" #: src/help.c:1972 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr " N = 5 5:e veckodagen %s (ibland)" #: src/help.c:1976 #, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Sista veckodagen %s" #: src/help.c:1980 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN%s = Enstaka N:e veckodagen %s" #: src/help.c:1985 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" " N = 1 - 51 1:a - 51:a veckodagen %s (alltid)" #: src/help.c:1990 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr " N = 52|53 52|53:e veckodagen %s (ibland)" #: src/help.c:1994 #, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 Sista veckodagen %s" #: src/help.c:1999 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr " # %cwN%s = Enstaka veckodagen %s i N:e veckan" #: src/help.c:2004 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr " N = 0 %s som inte finns i 1:a veckan" #: src/help.c:2009 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" " N = 1 - 51 %s i 1:a - 51:a veckan (alltid)" #: src/help.c:2014 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr " N = 52|53 %s i 52:a|53:e veckan (ibland)" #: src/help.c:2018 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 %s i sista veckan" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr " # %c%c[[%s|%s]N] = Enstaka dag N relativt pskdagen" #: src/help.c:2030 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr " # %c%c[%s|%s]N%s = Enstaka N:e veckodag relativt pskdagen" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr " # %c%c[[%s|%s]N] = Enstaka dag N relativt dagens datum" #: src/help.c:2042 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" " # %c%c[%s|%s]N%s = Enstaka N:e veckodag relativt dagens datum" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr " # %c?[[%s|%s]N] = Enstaka dag N relativt datumvariabel" #: src/help.c:2054 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" " # %c?[%s|%s]N%s = Enstaka N:e veckodag relativt datumvariabel" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr " # t|T = Lista imorgon" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Lista hela veckan" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" " [MOD] = %s Lista frn imorgon till slutet p veckan" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s Lista frn igr till bĥrjan p veckan" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Lista hela mnaden" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" " [MOD] = %s Lista frn imorgon till slutet p mnaden" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s Lista frn igr till bĥrjan p mnaden" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Lista hela ret" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" " [MOD] = %s Lista frn imorgon till slutet p ret" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr " = %s Lista frn igr till bĥrjan p ret" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr " Anv¤nd alternativ(a) fil(er) i st¤llet fĥr standardresursfil" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = Visa bara de dagar som har fasta datum" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr " F = Visa ocks de dagar som inte har fasta datum" #: src/help.c:2173 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" " %-3s = Enstaka fil eller lista med filer sammanbundna med \"%s\"-tecken" #: src/help.c:2184 msgid " Define additional resource file line" msgstr " Definiera ytterligare rader i resursfilen" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Vilken resursfilrad som helst" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "%cDATUM" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "Anv¤nd angivet \"DATUM\" i st¤llet fĥr dagens datum" #: src/help.c:2202 #, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" "Datumformat: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" " %s%cwN[%s], namn p mnad[%s], namn p veckodag[N] eller %s" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "%cFIL" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "L¤s flaggor och kommandon frn \"FIL\"" #: src/help.c:2224 msgid "COMMAND" msgstr "KOMMANDO" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = Mnad i intervallet: %d - %d" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr " eller: namn p mnad | %s | %s%s | %s%s | %s%s" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr " Lista: %s[%s%s]%s...%s%s[%s%s]" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr " Intervall: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = …r i intervallet: %d - %d" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr " Lista: [%s%s]%s%s...%s[%s%s]%s" #: src/help.c:2257 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr " Intervall: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" #: src/help.c:2283 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr " %sh, %s Visa denna hj¤lptext och avsluta programmet" #: src/help.c:2286 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " %shh, %s Visa utĥkad hj¤lptext och avsluta programmet" #: src/help.c:2290 #, c-format msgid " %sL, %s Display software license and quit program" msgstr " %sL, %s Visa programlicens och avsluta programmet" #: src/help.c:2294 #, c-format msgid " %sV, %s Display version information and quit program" msgstr " %sV, %s Visa versionsinformation och avsluta programmet" #: src/help.c:2302 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr " %sp, %s Skicka utdata genom en extern \"%s\"-sidvisare" #: src/help.c:2309 src/help.c:2314 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " %sp, %s Skicka utdata genom en enkel intern sidvisare" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "Detta program gĥr inte ansprk p fullst¤ndighet, korrekthet eller" #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "anv¤ndbarhet. Jag tar av princip inte ansvar fĥr N…GON skada eller" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "fĥrlust (direkt eller indirekt), som anv¤ndandet eller handhavandet" #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "av mitt program gett upphov till. Om du anv¤nder detta program," #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "accepterar du utan undantag detta avtal!" #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "" "Detta program ¤r fri programvara; du fr distribuera det och/eller modifiera" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "det under villkoren i \"GNU General Public License\" utf¤rdat av" #: src/help.c:2366 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" "\"Free Software Foundation\"; antingen version 3, eller (om du s ĥnskar)" #: src/help.c:2368 msgid "any later version." msgstr "en senare version." #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "Du skall ha ftt en kopia av \"GNU General Public License\"" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "tillsammans med detta program; om inte, skriv till:" #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" "Anv¤ndning: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] " "[%s]]" #: src/help.c:2452 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Anv¤nd \"%s %s|[%s?]" #: src/help.c:2461 msgid "for more information." msgstr "fĥr mer information." #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, c-format msgid "Email bug reports to <%s>" msgstr "Skicka felrapporter till <%s>" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "Hemsida fĥr GNU gcal: <%s>" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "Allm¤n hj¤lp med att anv¤nda GNU-programvara: <%s>" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "Detta ¤r fri programvara; se k¤llkoden fĥr kopieringsvillkor" #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "Det finns INGEN garanti, ej heller ngon underfĥrstdd garanti om" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "S„LJBARHET eller L„MPLIGHET F–R N…GOT SPECIELLT „NDAM…L" #: src/help.c:2617 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%s: Det gregorianska kalenderprogrammet (GNU cal) %s" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Anv¤ndning: %s [[FLAGGA...] [%cDATUM] [%cFIL...]] [KOMMANDO]" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Anv¤ndning: %s [[FLAGGA...] [%cFIL...]] [KOMMANDO]" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr " 4.0 eller 4.02" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr " senare ¤n 5.0" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "++ 3.0 eller senare" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "5.1 eller tidigare" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "ok¤nd kompilator" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr " p " #: src/help.c:2827 msgid "(bad version)" msgstr "(felaktig version)" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "ok¤nd kompilator (SDK?)" #: src/help.c:2942 msgid " later than 4.5" msgstr " senare ¤n 4.5" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "++ 1.0 eller senare" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr " 1.0 eller 1.5?" #: src/help.c:3075 msgid "unknown " msgstr "ok¤nd " #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "version %d.%d" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "version %d" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "ok¤nd version" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s fĥr Alpha)" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s fĥr VAX)" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr " (NetBSD fĥre 0.9)" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 eller senare)" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 eller senare)" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 eller senare)" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "VE" #: src/print.c:566 msgid "Week" msgstr "Vecka" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "em" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "fm" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "°'\"" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "h'\"" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "Kan inte utfĥra kommando i filen \"%s\"\n" "Rad: %ld %s" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" "Kommando utfĥrt (exit-kod=%d) i filen \"%s\"\n" "Rad %ld: %s" #: src/rc-use.c:514 msgid "Emo" msgstr "Emo" #: src/rc-use.c:519 msgid "Int" msgstr "Int" #: src/rc-use.c:524 msgid "Phy" msgstr "Fys" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "\"Evighetskalender fĥr helgdagar\"" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "\"Intern\"" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr " ; vecka %s" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "Vecka %s" #: src/rc-utils.c:398 src/rc-utils.c:415 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%s: ogiltigt datum angivet -- %s\n" "%s\n" "%s\n" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "Skottdagen satt till \"%02d-%s\" i filen \"%s\"." #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "Rad %ld: %s" #: src/rc-utils.c:3634 src/utils.c:275 #, c-format msgid "%s: abort, " msgstr "%s: avbryt, " #: src/rc-utils.c:3642 #, c-format msgid "illegal variable definition in file `%s'" msgstr "otillten variabeldefinition i filen \"%s\"" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "otillten definition av variabeln \"%c\"" #: src/rc-utils.c:3651 #, c-format msgid "illegal variable operation in file `%s'" msgstr "otillten operation med variabel i filen \"%s\"" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "otillten operation p variabeln \"%c\"" #: src/rc-utils.c:3659 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "variabeln \"%c\" ¤r odefinierad i filen \"%s\"" #: src/rc-utils.c:3663 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "variabeln \"%c\" har tilldelats ett ogiltigt v¤rde i filen \"%s\"" #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Ogiltigt argument i den angivna kommandoraden -- %s" #: src/rc-utils.c:3696 #, c-format msgid "Argument `%s' of command line ignored." msgstr "Argumentet \"%s\" p kommandoraden ignorerat." #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "Rad %ld ignorerad: %s" #: src/tty.c:425 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: fĥr mer, <%s> fĥr att avsluta..." #: src/tty.c:1020 #, c-format msgid "environment variable `%s' not found" msgstr "miljĥvariabeln \"%s\" hittades inte" #: src/tty.c:1027 #, c-format msgid "environment variable `%s' not set" msgstr "miljĥvariabeln \"%s\" ¤r inte satt" #: src/tty.c:1067 msgid "`termcap' file not found" msgstr "\"termcap\"-filen hittades inte" #: src/tty.c:1072 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "ok¤nd terminaltyp definierad i \"%s\"" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: varning, %s.\n" "\n" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" "ogiltigt r fĥr att kunna ber¤kna datum fĥr pskdagen\n" "…ret mste vara i intervallet (%d - %d)" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "\"%s\" rad %ld: virtuellt minne slut (%s=%d)" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" "ogiltig datumdel i filen \"%s\"\n" "Rad %ld: %s" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "ogiltigt mnadsf¤lt(%02d) i filen \"%s\"\n" "Rad %ld: %s" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "ogiltigt dagsf¤lt(%02d) i filen \"%s\"\n" "Rad %ld: %s" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" "felaktig %s i filen \"%s\"\n" "Rad %ld: %s" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" "ogiltig rekursiv/cyklisk %s i filen \"%s\"\n" "Rad %ld: %s" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "filen \"%s\" kunde inte hittas" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" "ogiltigt N:e veckodagsf¤lt(%d) i filen \"%s\"\n" "Rad %ld: %s" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" "blanktecken saknas efter datumdelen i filen \"%s\"\n" "Rad %ld: %s" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "filen \"%s\" kan inte skrivas\n" "Lagringsmediet fullt!" #: src/utils.c:333 #, c-format msgid "sending eMail to <%s> failed" msgstr "skickande av e-post till <%s> misslyckades" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "\"%s\" rad %ld: " #: src/utils.c:342 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "\"%s\" rad %ld: (\"%s\") \"%s%d\" misslyckades" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "l¤sfel i filen \"%s\"" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "otilltet tecken i svarsfilen \"%s\"\n" "Rad %ld: %s" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "" "\"%s\" rad %ld: (\"%s\") ogiltigt v¤rde p tabellstorleken \"sizeof %s>%d\"" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(\"%s\") datumformatet \"%s\" ¤r ogiltigt" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "%s i sĥkmĥnstret \"%s\"" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "felaktigt sĥkmĥnster \"%s\" angivet" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "\"%s\" rad %ld: (\"%s\") ohanterat fel (%d)" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 msgid "internal" msgstr "intern" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: programmet avbrutet av signalen %d\n" #: src/utils.c:1081 msgid "th" msgstr ":e" #: src/utils.c:1085 msgid "st" msgstr ":a" #: src/utils.c:1089 msgid "nd" msgstr ":a" #: src/utils.c:1093 msgid "rd" msgstr ":e" #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "ogiltig dag" #: src/utils.c:1129 msgid "Mon" msgstr "mn" #: src/utils.c:1134 msgid "Tue" msgstr "tis" #: src/utils.c:1139 msgid "Wed" msgstr "ons" #: src/utils.c:1144 msgid "Thu" msgstr "tor" #: src/utils.c:1149 msgid "Fri" msgstr "fre" #: src/utils.c:1154 msgid "Sat" msgstr "lĥr" #: src/utils.c:1159 msgid "Sun" msgstr "sĥn" #: src/utils.c:1180 msgid "Mo" msgstr "m" #: src/utils.c:1185 msgid "Tu" msgstr "ti" #: src/utils.c:1190 msgid "We" msgstr "on" #: src/utils.c:1195 msgid "Th" msgstr "to" #: src/utils.c:1200 msgid "Fr" msgstr "fr" #: src/utils.c:1205 msgid "Sa" msgstr "lĥ" #: src/utils.c:1210 msgid "Su" msgstr "sĥ" #: src/utils.c:1227 msgid "Monday" msgstr "mndag" #: src/utils.c:1227 msgid "Tuesday" msgstr "tisdag" #: src/utils.c:1227 msgid "Wednesday" msgstr "onsdag" #: src/utils.c:1227 msgid "Thursday" msgstr "torsdag" #: src/utils.c:1228 msgid "Friday" msgstr "fredag" #: src/utils.c:1228 msgid "Saturday" msgstr "lĥrdag" #: src/utils.c:1228 msgid "Sunday" msgstr "sĥndag" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "ogiltig mnad" #: src/utils.c:1249 msgid "Jan" msgstr "jan" #: src/utils.c:1254 msgid "Feb" msgstr "feb" #: src/utils.c:1259 msgid "Mar" msgstr "mar" #: src/utils.c:1264 msgid "Apr" msgstr "apr" #: src/utils.c:1269 msgid "May" msgstr "maj" #: src/utils.c:1274 msgid "Jun" msgstr "jun" #: src/utils.c:1279 msgid "Jul" msgstr "jul" #: src/utils.c:1284 msgid "Aug" msgstr "aug" #: src/utils.c:1289 msgid "Sep" msgstr "sep" #: src/utils.c:1294 msgid "Oct" msgstr "okt" #: src/utils.c:1299 msgid "Nov" msgstr "nov" #: src/utils.c:1304 msgid "Dec" msgstr "dec" #: src/utils.c:1322 msgid "January" msgstr "januari" #: src/utils.c:1322 msgid "February" msgstr "februari" #: src/utils.c:1323 msgid "March" msgstr "mars" #: src/utils.c:1323 msgid "April" msgstr "april" #: src/utils.c:1333 msgid "May " msgstr "maj" #: src/utils.c:1334 msgid "June" msgstr "juni" #: src/utils.c:1334 msgid "July" msgstr "juli" #: src/utils.c:1335 msgid "August" msgstr "augusti" #: src/utils.c:1335 msgid "September" msgstr "september" #: src/utils.c:1336 msgid "October" msgstr "oktober" #: src/utils.c:1336 msgid "November" msgstr "november" #: src/utils.c:1336 msgid "December" msgstr "december" #: src/tcal.c:193 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Anv¤ndning: %s [--%s | --%s] | [--%s=[+|-]TAL] [ARGUMENT...]\n" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: avbryt, " #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "skiftv¤rdet \"%s\" ¤r ogiltigt" #: src/tcal.c:909 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: flaggan \"--%s\" kr¤ver ett argument" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: fel n¤r programmet \"%s\" kĥrdes\n" #: src/txt2gcal.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "Anv¤ndning: %s [--%s | --%s] | [TEXTFIL | -] [DATUMDEL]\n" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "%s: inte en vanlig fil\n" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "%s: filen kunde inte hittas\n" #: src/gcal2txt.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "Anv¤ndning: %s [--%s | --%s] | [RESURSFIL | -]\n" gcal-4.1/po/zh_CN.gmo0000664000000000000000000030714213041164032011301 00000000000000Ŝ•~ ,UüWPu Qu"^uu•uCĤuAêuE,vBrv+µvLávK.wKzwJĈwMxD_xF¤xFëx@2yAsyFµyFüy=Cz6z7¸z1z7"{'Z{A‚{EÄ{C |AN|I|HÚ|H#}?l}*Ĵ}!×}Fù}$@~4e~?š~MÚ~H(HqPşJ €KV€+˘€+΀?ú€6:4q=Ĥ@äJ%‚>p‚JŻ‚Iú‚KDƒJƒEۃD!„Jf„Dħ„1ö„1(…9Z…4”…<Ʌ@†2G†<z†9·†0ñ†*"‡JM‡<˜‡MĠ‡7#ˆN[ˆ?ވBêˆ.-‰N\‰.ЉBډ(Š-FŠ;tŠ-°ŠCŜŠ#"‹F‹Kd‹J°‹?û‹H;Œ'„ŒJĴŒ5÷Œ!-4O&„"Ѝ΍6îJ%Ž.pŽCŸŽ:ŽF6e3œ5A?H5ˆ,JëE6‘3|‘(°‘6ّ/’+@’7l’7¤’Eܒ:"“ ]“0~“(Ż“2Ĝ“E ”CQ”D•”EڔC •Nd•L³•O–BP–D“–PĜ–D)—Bn—Hħ—Kú—IF˜F˜DטO™Ml™Gş™GšJJšJ•šMàšK.›=z›E¸›Kŝ›@JœE‹œ9ќ. 7:-rJ =ë-)žJWž0˘ž=Ӟ6ŸCHŸ7ŒŸ=ğ8 9; /u ? @ċ 0&Ħ2WĦFŠĦ&ÑĦHĝĦ.A˘Bp˘B³˘Xö˘cO£]³£5¤:G¤E‚¤GȤ,@=E~*ÄEïE5ĤA{ĤC½ĤE§7G§@§:À§-û§)¨II¨I“¨Ŭ¨;ù¨:5İ=pİ;İ8êİ<#Ş>`Ş@ŸŞMàŞ6.Ğ;eĞĦгĞĞÛĞóĞ Ĵ Ĵ ,Ĵ 9Ĵ DĴ PĴ]ĴBfĴİĴBĴñĴ­(­:­?­ ^­k­z­š­ş­Á­$È­í­ !*#L'p&˜/ż+ï Ż;'Ż+cŻŻ%£Ż#ÉŻíŻ°)°E°$b°+‡°&³°%Ú°(ħ&)ħPħ=mħ"Ğħ#Îħ òħ!²"5² X²f²v²†² š²² ¸²² ֲᲠô²˙²³!³0³52³h³l³p³³ ³ ž³޳ ³ɳѳâ³ê³´´ ´0´.?´ n´{´ Š´—´ Ÿ´İ´²´ğ´Ù´ñ´µ1µPµkµ†µĦµ·µ̵ċµŭµĥ/ĥ7ĥ Kĥ Yĥcĥgĥmĥ }ĥ!‡ĥİĥÇĥ Úĥ&äĥ ·· $· 2·@·R·X·q· Š· •·£· §·´·É·Í· Ô·Ŝ·ñ· ¸(¸=¸Z¸m¸€¸œ¸¤¸ ş¸Ċ¸Û¸ö¸ú¸ı ı !ı .ı;ıDıTı hısı…ı—ı§ışıÌıâıôış!ş5ş=şEşTş[şcşkş~ş”şœşşşşËş áşëş ğğ ğ"ğ6ğ IğUğ ^ğ kğ vğ „ğğ–ğ­ğ´ğĈğÏğ ßğìğ ˙ğ ĵĵ&ĵ.ĵ 1ĵ<ĵ EĵPĵWĵfĵ~ĵŽĵ £ĵÄĵáĵôĵ½½.½ B½ O½4\½0‘½ ½ ͽٽ⽠ŭ½ .=A\mr ‰ •ĦÀÏçíó ż!ż)ż-ż Dż Rż`żrż„ż ”ż˘żşż ż żŬż9ïż)À:ÀBÀbÀ{ÀÀ ¨ÀµÀËÀÚÀ êÀġÀŭÀÁÁ Á (Á6ÁIÁOÁVÁeÁtÁvÁH†ÁÏÁíÁ ÂÂ+ÂBÂQÂaÂ~”ÂĞÂżÂÔÂëÂ8OS\s%µÔÜ ŝ ÄÄÄ 1Ä>ÄUÄpÄ…ÄœÄÄÂÄ ĈÄ ÔÄâÄñÄ ĊĊĊ'Ċ >Ċ JĊWĊwĊ‘Ċ.¤ĊÓĊíĊ ˙Ċ ĈĈ$Ĉ,ĈAĈJĈbĈqĈĈ–Ĉ2žĈÑĈĠĈ ñĈ üĈ ÇÇ !Ç.ÇFÇWÇlÇƒÇ‡ÇÇŻÇÄÇ0ÖÇ1È19È*kÈ.–È:ĊÈ;É:<ÉwÉ—ÉžÉĤÉĥÉÇÉÉ%äÉ Ê!Ê<Ê\Ê_ÊfÊ yʇʘʭÊħʸÊÀÊ ÏÊÙÊòÊúÊ Ë Ë%/ËUË]ËnËvË‘ËĦ˰ËÄËÓË ËñË"Ì)ÌHÌeÌvÌ…Ì›ÌĥÌÈÌÏÌ ĠÌ ßÌëÌ ÍÍ !Í/ÍOÍnÍ…Í ŒÍ ™Í£Í ĞÍ ĥÍÄÍÓÍ êÍġÍ úÍÎ ÎÎ2Î;ÎCÎ IÎSÎoΆ΢ΠĤÎ ³Î1ÎÎÏÏ +Ï8ÏGÏ PÏZÏkÏ sÏϚϵÏA½Ï ˙Ï "<Vp‡Ħ·żÒ èôŭ,Ñ@ÑWÑtѐÑ$¨ÑÍÑßÑúÑ˙ÑÒ Ò"Ò;ÒBÒHÒ^ÒoÒƒÒ˜Ò Ò¤ÒĴÒ°ÒĥÒÎÒĉÒÓÓÓÓ$Ó(Ó -Ó :Ó FÓQÓYÓbÓyӐӤÓÄÓ ŬÓèÓĝÓ˙Ó ÔÔ 'Ô2Ô JÔUÔ#hÔŒÔ˘ÔİÔ'ĵÔäÔìÔôÔĠ ĠĠ 6ĠDĠ YĠ fĠpĠ yĠ ‡Ġ’ĠİĠżĠ4ÁĠöĠ üĠ ÖÖ.0Ö_Ö fÖqÖzÖÖ …Ö ’Ö Ö¨Ö¸ÖĵÖÂÖ ĠÖàÖñÖ × ×× 1×>×V×k×|×™× Ş×ĥ×Ĉ××× é×ö× Ĝ ĜĜĜ$Ĝ,Ĝ4ĜFĜ WĜdĜkĜĜŽĜ‘Ĝ•ĜœĜ£ĜĞĜ½Ĝ ÑĜ1ÜĜ Ù Ù%Ù-Ù AÙNÙ hÙsÙ…Ù Ù˜ÙİÙÁÙĠÙĉÙüÙÚ,ÚAÚTÚ ZÚfÚ nÚzÚ—Ú$µÚÚÚúÚ Û Û"Û+ÛBÛ QÛ ]ÛgÛmÛuÛzÛƒÛ ˘Û ĴÛÍÛêÛñÛġÛ/ŝÛ9.Ü-hÜ –ܢܪÜħܵܽÜÍÜŜÜóÜŬE ŬSŬkŬ‚ŬŬµŬÒŬîŬŜ"Ŝ&Ŝ*Ŝ3Ŝ 9ŜEŜLŜ\ŜkŜ|Ŝ …Ŝ’ŜĴŜ´Ŝ ŜÑŜàŜ ïŜùŜ ß ß$ß=ßBßRß qß }ß ‹ß –ߢßĞß²ßğß Äß(Ïß#ĝßà9àSàcà{à •à£à ´àÀàÔàÚààĝàááá .á:áUá ná{ááĦáµáÎá Ŝáéáûá â %â/â?âGâcâ vâ„â‹â”âĤâĵâ0Óâ )Cag w …Ĥ½Ó× à ê÷ä "ä0ä8ä<ä KäUäiää ‘äžä ħää ä Ûä éäġäċ ċ =ċIċ cċqċ zċ ‡ċ•ċİċ ċÊċßċèċñċ ĉĉ#ĉ 3ĉ@ĉ HĉSĉ eĉ(rĉ›ĉ¸ĉĉ Îĉ Úĉçĉ÷ĉ çç-ç>çNç]çoç~çŽçç ­ç ·çĊçÚçòç èè.è@èIèXèlè|èèžè Żè ½èËèÜèñèéé'é7éJédé}é †é”é0ŞéÛéïé êêêê"ê3êOêgêkêrê…ê ê˜ê·ê Çê ÓêŬê äê ïê üêë"ë!>ë`ë}ë•ëĤëğëÏëâëúë ìì5ìKì`ìyìŒì˘ì¸ìÌìßìïìíí#í7íPímí tíí ˆí–í ­íğíí ÒíŬíîí î)îHî\îpî…î:šî=ĠîDïCXïœï ï İï³ïÂïÙïàïèïúï' :G[ q5|)²Üûŝñ ñ(ñ1ñ9ñ @ñMñfñ mñyññ”ñœñ£ñĞñ ÇñÑñíñò ò#ò9òNòdò{ò”òĞòĊò"Üò˙òó+ó@óTókóó”óİóÀóĜóìóôô6ôNôhôô•ôĴôÁôŬôöôġ&ġCġ^ġqġˆġġ¸ġÓġġ ö#ö7öJö`öwööĴöÄöÚöìö÷÷ %÷2÷=:÷0x÷8İ÷Kâ÷7.ĝ.fĝ•ĝ(Ĥĝ Ïĝ Úĝèĝ ĝúĝ ùù .ù ;ùGùPùYù[ùpù‰ù£ù´ùĊùÈù Ìù Öùáùĉù îùĝù ú ú %ú1ú FúRúeúvúú†úˆúú –ú úżúŜúŝúûC6û zû †ûû§ûûµûû7Âûúû#üA5ü*wü/˘üÒü éüôü% ŭ.3ŭbŭeŭxŭ!‹ŭ ­ŭ5şŭŭôŭüŭ#ŝ!5ŝWŝ.^ŝŝĦŝ·ŝğŝ4Äŝ#ùŝ"˙(@˙'i˙‘˙8š˙+Ó˙ ˙˙1  =3K5%µ4ÛNF_Ĥ&µÜHí6>9x{~ – ¤ħ ÎÛ÷úEKTe%}£$³ Ĝ )ñ)+Ul;„5ÀGöF>(…OOŝONCžLâI/ Hy K B KQ M Pë D< < : 4ù =. 1l >ž 3Ŭ A AS C• CÙ CMa(ŻĜBĝ ;=\AšRÜQ/ZlÜgIDħ+ö,"?O7/Ç<÷44Ki6µ5ì9"K\?¨Fè:/JjEµ-û-)0W6ˆ=ż<ŭ0:?k6Ğ,â&E6?|Bĵ6˙E69|Fĥ'ŭE%*k?–0Ö-<50r<£àúGT\@ħVòIVh-ż+í+%E"k(Ž1·5é(@H7‰CÁ3 09 .j :™ AÔ 1!+H!/t!5¤!1Ú! "+)".U"+„"@°"@ñ"82#?k#"Ğ#/Î#ŝ#%$?D$?„$?Ä$@%@E%@†%@Ç%C&@L&F&CÔ&@'@Y'Cš'FŜ'@%(@f(@§(@è(@))Fj)@ħ)Cò)C6*@z*@ğ*:ü*@7+@x+:ı+4ô+0),6Z,T‘,+ĉ,E-AX-+š-;Ĉ-6.79.(q.7š.+Ò.7ŝ.46/(k/(”/B½/B0-C0.q0A 0â0<15=1=s1>ħ1_1gP2b¸2539Q33‹3:ż3%ú37 4@X4$™464Nġ4SD5C˜5@Ü5.61L6>~6'½6&ċ63 73@7t7878É728258.h83—81Ë8Bŭ8F@9.‡98ĥ9ï9::-:I:d:|: Œ: š: ¨: ´:À:0Ï:;0; 6; B;$N;s;y; ‘;;&£;Ê;â;ë;#ô;)< B<O<!b<"„<#§<3Ë<)˙<()=R=8a=#š==,Ô=*>,>D>"Z>}>%>$>'è>#?&4? [?|?G›??ŝ?@0@(G@p@ƒ@”@¨@½@@é@ü@A(AAATA mA{A„A-†A´A¸A żAÉA âA ìAöABB&B ABNB dB nBxB ˆB'’B şBÄB ÔB ŜB èB òB ŝBCC1CJCcC|C’C¨CCÑCäC÷C D D3D:DPD`DpDwD ~D ˆD’D!ħDÓD òD üD E 'E4EDETE gEqEEEµEĊE ÉEÖEïEöE ŭE F!F>FXFoFŒFİFF àF êF ôFGG2G 6G@GGGWGfG …G’GG ÁGËGçGHH,H!EHgHƒH–HİH °H ½HÇH ÚH äHîH÷HI (I2I;I NI [I eI rI I ŒI ™IĤIżI ÛI ċIòI J J J J'J=J DJ NJ[JtJ„J ™J ĤJ²JËJÒJ ĠJ J íJ úJKK;KRK"lKKĤK½KÑKîKLL -L(:L7cL ›LL ğL#ĊL éLöL M M M$M6MNMUM eMoMwM{M ‹M•MMĴM ³MÀMÇMÏMÓM M íM ÷M N N N"N >NKN[N nNIxN ÂN ÌNÖNòN OO O,O UQU aUkUrUyU ’U œU*İU'ÔU'üU0$V3UV6‰V6ÀV9÷V1WMWVW ]WgW}WW!£WĊWÚW íW÷WŝWXX%X;XQX XXbX iXsXzX‘X šX¤X´X ÓX ôXYYY2Y FYTYhY yY ‡Y•Y%İY"ÏYòY ZZ.Z(NZwZ ˆZ•Z œZİZıZ ÉZ ÓZàZçZ[[)[ 0[ :[ D[Q[ a[n[[ ”[Ħ[ ¨[ µ[ż[Ñ[ ì[ĝ[\ \\ \"\>\C\S\*c\Ž\ž\ ħ\ ğ\ È\ Ġ\â\ é\ ó\ ŭ\]]']<.] k]u] ˆ]’]¨]]Ô]ä]ú] ^^ &^3^E^L^'\^„^—^­^À^Ò^î^_ _ !_+_/_?_ X_ b_l___Ÿ_ ²_ĵ__Ê_Î_ Ġ_ â_ï_ ``!`(`/`6` =` J`W` g` s`}```°`Ĉ`Ü`ë` û` aa"a 2a}U}i}}}Ž}¨}ĵ}Í}Ŝ}ò}~~+~<~M~ d~r~ƒ~—~¨~ĵ~~á~ò~  7H \j˜İÀÑèù€$€5€ I€W€h€|€€¤€¸€ɀـì€˙€  <)0f:—Lҁ;‚1[‚‚*Ş‚Ġ‚è‚ ŝ‚ ƒƒ+ƒ;ƒSƒ cƒ mƒzƒƒ…ƒ•ƒħƒ ̓ ׃áƒèƒ ïƒùƒ„ „„„ *„7„G„]„ m„w„‡„—„Ÿ„§„ Ğ„µ„ĵ„ Ą΄á„ … …I…d… l…v… Œ…–… ž…Ğ…:Ż…ê…4†E6†A|†4†ó† ‡‡*6‡a‡€‡ƒ‡“‡#£‡ LJ<чˆˆ ˆ'ˆEˆcˆ0jˆ›ˆ³ˆ̈ ˆ7ڈ ‰ 3‰)T‰)~‰¨‰P݉7Š 8ŠIEŠ ŠIœŠFĉŠ&-‹;T‹L‹7Ŭ‹ Œ5"ŒXŒKhŒ´Œ!·Œٌ܌ߌ ŭŒ ! 9F^ahHk´ĵ̍)è Ž+Ž KŽ UŽàĞŞ¸:żĠämçŒĴ˘üôkTäĜYċĴ/BEk(A@!&!Sßk[°ċ-wÁsx{ Ñ#ĈŜ1;sr–uÛ˙gK'fïoòÌ•´éĤÒÏ1îçT‘|*pŬùkğa2{^Lr9\êé=l2Üͧnœ–'eċŬ‹—ıìÚRµ­ 9KoĉWNËž˜fġ'ĉħk)gÊ„Áß‘˘÷ݧJhÎ#ƒ<ĠÜĜLû‡÷³8­x^w_žrL>3J7ŝÉ`"W.ġ;Ñ]liġ|Ô½EóS|–ШgŠtXzq? ?ÏŽä]<ĥ½ŠĝznĥеxÉE ‡¨Ĥ£ĵZq“†hŒ=O“n<_gœċi†ÈĊÖ—^c#ûŬG½ÒN%sè> LeŽ.ƒU´Ğ7<d/P•(…ĥÒş F›”É™tJyíWG Z,ÔáżÂÓU$…OŬ_oä²rıĈ;Sĉl eê ÑĜÄ­Bv‰ŭÙëž0™A$WV'Ĝ×èN6ñ ŒĝÌhğñ:)Ìvï$z%?CŽúF8ÚV.›şŬG² y'êôüŝDèT’`÷é/ÓmK"¨ë“CtâÖ[Z {*5e⣂ïµ)ĊĤ"ˆ‹Żû\ŝşÚ`ñM8 ê~ÂòvDġ|XséK ı‘d¸H<š•ïf”ˆ7Yî:³ePhë\&ÒÜùĜ£[½ĈH›Ħ&†Z…ʧ-ša[4´y^ìpW"5”D²Ĥò-Ÿĝk‹Ù˜ÓĠd@Bö€öçjOa]˙ËQÖ€O7šĝ,‰‰5ÂKßÍ#ğÔÊuÜ6âYhĵâ4+;!,C¨şÀ:~zü G6ış*ĦJÎÛ(mâX‚:ĥ=mXç“1B3´żnyĈÀ—ŭˆJPMôRwQ Ö{§é4÷ŭwi}Ĉ>‰ ?Ê’˜ĉA ÏüAà~+Ç2OR;_ìî=ÖŻ4u!žv¸bú’uöœĝ².p×,Žòt•f%`‘ı&/ íÁ­àpvŞ˘Ż wŒ-‹úœu@áÄCöIàĴVoĴzĞÂ=$ò2§j0Ÿ¤Ì.¤w·Ñß+˘€ŭ[ óż™L{+ğÉSÈ×Y F€èrĠ°ú!†qj 9V\^?]‚:ŽĦ]˙DĠFóÔ…m$—*ĵUħÇ îrìŜ%Ĥ%4Q·)S Lżb q İi³Ħx‡1–6˜ïM0ÓÎÁTa޸ UbƒœŜ800#",İ넟7>@QŒDʨÁÙ£\bNP(+ġ³ĵx#Bĥħ.I­~ŝŻ MĊdáǵqžîŞdQsíIRÍĊ˙Fc_ûŝj3U†´š÷‡¤pd'³Ñ}ÜÍY($ÛÛ•6”ŠP V) )nŠ<hµNİ„ÍñÀ*Ô78B“Aċ\/c(ùÇv|çyÎÈŜCF=ÏšÀ&gI;‚MÇ‹üƒAXD˙e£8 €°^Ób>½˘- 0`¤úÈ25]ħpûáù}›MóW Ċ‘,Zaoxˆ”&zÌëä…İf-ħQ1>„ŭÚË Äo9RàŸÉÄÙ ¸9’j·È X’˜TY`~RUCá×/cËH3TŜH‰íVsËNS–Ğ@l {bHjG—Gul}‚ÒI· KƒJğaqöif!6"·×E_3y°Ħ1ߟZóÀcè+lc Şttiĉ„ñ9gHm›3ˆ|}êÛ°@%2ĵùôÚ4ÏôPOEì™Ä}™E5Ù[Î*?I~n ¤Ĵİ5²í‡ %s: abort, %s: program aborted by signal %d %s: warning, %s. `%s' line %ld: %-3s = %d...%d Length of a single axis %-3s = %d...%d Total number of lines %-3s = february Respect at `28-FEBRUARY' %-3s = march Respect at `01-MARCH' = %s Backwards = %s List yesterday until starting day of month = %s List yesterday until starting day of week = %s List yesterday until starting day of year N = 0 %s which isn't located in 1st week N = 0 1st week / last week of previous year N = 1...4 1st...4th weekday %s (always) N = 1...51 %s of 1st...51st week (always) N = 1...51 1st...51st weekday %s (always) N = 1...52 1st...52nd week (always) N = 5 5th weekday %s (sometimes) N = 52|53 %s of 52|53rd week (sometimes) N = 52|53 52|53rd weekday %s (sometimes) N = 53 53rd week (sometimes) N = 9 Last weekday %s N = 99 %s of last week N = 99 Last week N = 99 Last weekday %s Actual: `%s' = Manage `29-FEBRUARY' in non-leap years = Set height of the Moon phase text graphics = Set width of the biorhythm text graphics or: month name | %s | %s%s | %s%s | %s%s [MOD] = %s List tomorrow until ending day of month [MOD] = %s List tomorrow until ending day of week [MOD] = %s List tomorrow until ending day of year %s%cwN[%s], month name[%s], weekday name[N] or %s MOD = %s Forwards %-*s = Holidays in %s %-3s = Heading/Title text used for fixed date list %c = Exclusion of all %s Air pressure in Millibar (actual: %.3f) Air temperature in degrees Celsius (actual: %+.3f) E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2 E.g. %sH \x2%s\xAE Use hex values 2 and AE for sequence 1 E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca' E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to `bar' E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4 E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of List: %s[%s%s]%s...%s%s[%s%s] List: [%s%s]%s%s...%s[%s%s]%s Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s expressions separated by `%s' characters is a LOWER-CASE-LETTER, it means a non-exclusion! marked by # have an incomplete recording of holidays the preceding special characters in an individual date format, they are used by the character set used in Germany which are connected by `%s' characters. Countries/territories, which has a STYLE format instruction component, and that, how # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday # %c%c[[%s|%s]N] = Single day N relative to today's date # %c?[%s|%s]N%s = Single N'th weekday relative to date variable # %c?[[%s|%s]N] = Single day N relative to date variable # %cdN = Single absolute day N # %cdN%s = Single N'th weekday %s # %cwN%s = Single weekday %s of N'th week # %s%s = Single day %s of month %s # %s%sN = Single N'th weekday %s of month %s # A = Display using alternative list format # E = Include legal days only # J = Suppress text part of fixed dates # NMOD = Single day N relative to today # Nd = Single absolute day N # Nw = Complete week N # Q = Suppress leading blank line of fixed dates list # U = Suppress date part of fixed dates # Z = Display dates, for which fixed dates doesn't exist # a = Display origin of fixed date # d = Include actual date if list of periods is generated # e = Include legal days and memorial days # g[MOD] = Group fixed dates by day using text MOD # k = Display week number # l = Generate list of periods instead of a single period # m|M[MOD] = List complete month # o = Omit repeating date part of fixed dates # t|T = List tomorrow # w|W[MOD] = List complete week # x = Exclude title of fixed date list # y|Y[MOD] = List complete year # z = Display consecutive number of fixed date 1. Representation of text 2. Respected period = "TVAR[%s|%c%s]COMMAND" definitions separated by `%s' characters = abort Like `all' and abort if file name can't be handled = all Like `handled' and `unhandled' together = handled Like `internal' and file names which are handled = no Standard week numbers = unhandled Like `internal' and file names which are unhandled Actual respected period: %02d-%02d %s %0*d Actual: (%s) `%s' (%s) Change base time of astronomical functions Change base year of calendar Change cycle-ending time Change cycle-timestep Create response file for the `%cFILE' option Create shell script which contains the arguments of command line Define additional resource file line Define global date variable(s) "DVAR->a...d|f...s|u...|z" Define global text variable(s) "TVAR->%ca...%cz" Define translatable country specific special character pairs Determine type of week numbers (actual: %s) Direct output through external `%s' pager Direct output through simple internal pager Disable highlighting of text, holiday resp., actual day Display eternal holiday list (Year in range: %d...%d) Display extended help text and quit program Display help text and quit program Display only those fixed dates, whose date is not excluded by %s Display only those fixed dates, whose text is matched by %s Display software license and quit program Display some debug information Display version information and quit program Exclude title of eternal holiday list Execute `%c%c[%s]' shell commands Export local date variables from file to file Export local text variables from file to file Forces highlighting sequences if output is redirected/piped Ignore case distinctions if `%s' option is given Implies period: Today Limit rise/set times of Sun to the day Modify format of year calendar Provide calendar sheet with week numbers Provide eternal holiday list with BahĦ'i calendar holidays Provide eternal holiday list with BahĦ'i calendar months Provide eternal holiday list with Celtic calendar holidays Provide eternal holiday list with Chinese calendar holidays Provide eternal holiday list with Chinese calendar months Provide eternal holiday list with Chinese flexible calendar holidays Provide eternal holiday list with Chinese flexible calendar months Provide eternal holiday list with Christian Western calendar holidays Provide eternal holiday list with Coptic calendar months Provide eternal holiday list with Ethiopic calendar months Provide eternal holiday list with French Revolutionary calendar months Provide eternal holiday list with Hebrew calendar holidays Provide eternal holiday list with Hebrew calendar months Provide eternal holiday list with Indian civil-calendar months Provide eternal holiday list with Islamic civil-calendar holidays Provide eternal holiday list with Islamic civil-calendar months Provide eternal holiday list with Japanese calendar holidays Provide eternal holiday list with Japanese calendar months Provide eternal holiday list with Japanese flexible calendar holidays Provide eternal holiday list with Japanese flexible calendar months Provide eternal holiday list with Old-Armenic calendar months Provide eternal holiday list with Old-Egyptic calendar months Provide eternal holiday list with Orthodox new-calendar holidays Provide eternal holiday list with Orthodox old-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar holidays Provide eternal holiday list with Persian Jalaali-calendar months Provide eternal holiday list with astronomical data Provide eternal holiday list with country specific holidays Provide eternal holiday list with multicultural New Year holidays Provide eternal holiday list with zodiacal marker data Represent astronomical times and data with utmost precision Revert the sense of matching of the `%s' option Send output via `%s' program to user Set EXIT status of program to %d on `%s' etc. Set base data of Earth's atmosphere Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday) Set order of date elements using the %s format text Set period of Gregorian Reformation Set reference value for rise/set time respectively shadow length Set starting day of week (actual: %s) Suppress leading blank line of eternal holiday list Suppress output of calendar sheet explicitly Use alternative file(s) instead of standard resource file Use consecutive day of year in calendar sheet Use consecutive day of year in eternal holiday list Use consecutive day of year in fixed date list Use leap year rule of Eastern Orthodox churches Use special format for calendar sheet Use standard resource file `%s%s' for fixed date list Use standard resource file `.%s%s' for fixed date list and "TVAR[%s|%c%s]COMMAND" assignments respectively, change cycle-starting time %-3s = Single file or list of files connected by `%s' characters [MOD] = %s Descending sort order [MOD] = One or more of the following modifiers which are marked by # %-*d%*s = Set period to: %02d-%02d %s %0*d %-3s = "DVAR%s%s%s" definitions separated by `%s' characters %-3s = "TVAR%sTEXT" definitions separated by `%s' characters %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: %02d%s%02d) %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s) %-3s = %s%c%s%s%s%s%s%s Set period explicitly %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d) %-3s = Air pressure and temperature separated by `%s' character %-3s = Angular value respectively factor in range: %+.1f...%+.1f %-3s = Any possible resource file line %-3s = Any text respectively "regular expression" you like %-3s = Define individual format. Respected format elements are: %-3s = File name of the shell script %-3s = Highlighting sequence pairs separated by `%s' characters %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]' %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d) %-3s = One or more of the following characters. If character %-3s = Single country resp., territory code or a list of these, %-3s = Store arguments of command line in file %s %-3s = UPPER-CASE-LETTER""LOWER-CASE-LETTER... definitions %-3s = [%s|%s]YYYY Year offset value (actual: %d) %-3s = yes ISO-8601:1988 week numbers %-6s = Format is: `%s' (%s) C = Display those dates, for which fixed dates doesn't exist, too F = Display those dates, for which fixed dates doesn't exist, too N = Legal days only [MOD] = b Use both date notations (day of month+year) %sL, %s Display software license and quit program %sV, %s Display version information and quit program %sh, %s Display this help text and quit program %shh, %s Display extended help text and quit program %sp, %s Direct output through external `%s' pager %sp, %s Direct output through simple internal pager [%-3s] = Email address, otherwise eMail is send to user `%s' [%-3s] = internal Information if program internal maximums are reached [MOD] = - Use standard format for calendar sheet [MOD] = b Use both date notations (day of month+year) (%.4s for Alpha) (%.4s for VAX) (BSD/386 1.1 or later) (FreeBSD 2.0 or later) (NetBSD 1.2 or later) (NetBSD before 0.9) 1.0 or 1.5? 4.0 or 4.02 ; Week %s = %+4d day = %+4d days `HERE' c = Display only those dates, for which fixed dates exists day f = Display only those dates, for which fixed dates exists later than 4.5 later than 5.0 n = Legal days and memorial days on # Day number (must be defined)# Month name# Month number# Weekday name (may be defined)# Year number (must be defined)%cDATE%cFILE%s = Month in range: %d...%d%s in search pattern `%s'%s subprocess%s subprocess failed%s subprocess got fatal signal %d%s%*s = Year in range: %d...%d%s%s contains %d maximum entries now!%s%s: for more, <%s> to quit...%s: The Gregorian calendar program (GNU cal) %s%s: Use `%s %s' with one of these arguments%s: abort, %s: command in environment variable `%s' found -- %s %s %s %s: error during program execution of `%s' %s: file not found %s: invalid date given -- %c%s %s %s %s: invalid date given -- %s %s %s %s: invalid option -- %s%s: no regular file %s: option `%s' doesn't allow an argument%s: option `%s' is ambiguous%s: option `%s' requires an argument%s: option `--%s' doesn't allow an argument%s: option `--%s' requires an argument%s: option requires an argument -- %s%s: option with ambiguous argument -- %s%s: option with invalid argument -- %s%s: unrecognized option `%s'%s: warning, eMail with empty message body not sent to <%s>. %s:%*sThe year %0*d is A leap year%s:%*sThe year %0*d is NO leap year%s:%*sThe year %d is A leap year%s:%*sThe year %d is NO leap year(`%s') date format `%s' is invalid(bad version)++ 1.0 or later++ 3.0 or later+++ FIXED DATES +++1st Advent1st Sunday in Lent2nd Advent2nd Sunday in Lent3rd Advent3rd Sunday in Lent4th Advent4th Sunday in Lent5.1 or earlier7-5-3 Festival:ALIGNMENT group (exactly one member must be defined):AMOARGAborigines DayAdelaide Cup DayAdmission DayAfghanistanAga Khan's BirthdayAlaska DayAlbaniaAleksis Kivi DayAlgeriaAlice-Springs Show DayAll Fool's DayAll Saints' DayAll Saints' EveAll Souls' DayAll format elements marked by # may optionallyAlphabet DayAmerican SamoaAmericas DayAndorraAngam DayAngola #AnguillaAnniversary of Armed StruggleAnniversary of AucklandAnniversary of Canterbury NorthAnniversary of Canterbury SouthAnniversary of Chatham IslandsAnniversary of Green MarchAnniversary of Hawkes' BayAnniversary of MarlboroughAnniversary of NelsonAnniversary of OtagoAnniversary of SouthlandAnniversary of TaranakiAnniversary of WellingtonAnniversary of WestlandAnnularAntigua and BarbudaAntillian DayAnzac DayAprAprilArab League DayArbor DayArchbishop Makarios' Memorial DayArchbishop Makarios' Name-DayArengo AnniversaryArgentinaArgument `%s' of command line ignored.Armed Forces DayArmeniaArmistice DayArmy Coup DayArtigas' BirthdayArubaAscension of Abdu'l-BahaAscension of Baha'u'llahAsh MondayAsh WednesdayAstAsuncion DayAtaturk Memorial DayAugAugustAustraliaAustralia/CanberraAustralia/New South WalesAustralia/Northern TerritoryAustralia/QueenslandAustralia/Southern AustraliaAustralia/TasmaniaAustralia/VictoriaAustralia/Western AustraliaAustriaAuthority's Power DayAzerbaijanBa'ath Revolution DayBackslash ('%c') characterBahBahamasBahrainBahĦ'i New Year's DayBangladesh #Bank HolidayBarbadosBaron Bliss DayBasque National DayBataan DayBattle of AngamosBattle of BoyacĦBattle of BoyneBattle of CaraboboBattle of IquiqueBattle of Las PiedrasBattle of N¤felsBattle of PueblaBeginning of Financial YearBeginning of SummerBelarusBelgiumBelgrade's DayBelizeBeltaneBenin #Benito JuĦrez DayBennington Battle DayBermudaBhutan #Birth of Baha'u'llahBirth of the BabBlessing of the WaterBloomsdayBodhidharma's BirthdayBoganda DayBoliviaBonaire DayBoqueron Battle DayBosnia-HerzegovinaBosses' DayBotswanaBotswana DayBounty DayBouvet IslandBoxing DayBrazilBritish Virgin IslandsBruneiBuddha's BirthdayBulgariaBunker Hill DayBurkina FasoBurning of Jan HusBurns NightBurundi #C. Mapinduzi DayCOMMANDCWCambodia #CameroonCamoes DayCanadaCanada/AlbertaCanada/British ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland and LabradorCanada/Northwest TerritoriesCanada/Nova ScotiaCanada/OntarioCanada/Prince Edward IslandCanada/QuİbecCanada/SaskatchewanCanada/YukonCanberra DayCannot calculate lunisolar calendar for %d correctlyCannot execute command in file `%s' Line: %ld %sCape VerdeCaricom DayCarnivalCasimir Pulaski's BirthdayCassinga DayCatherine Show DayCayenne FestivalCayman IslandsCelCentral African Republic #Cesar Chavez DayChadCharacter replacement:Charter DayChen/DragonChiChiang Kai-shek's BirthdayChildren's DayChildren's White SundayChileChinaChinese New Year's DayChinese New Year's EveChou/OxChrChrist's Ascension DayChristmas DayChristmas EveChristmas IslandsChrysanthenum DayCitizenship DayCivic HolidayCocos Islands (Keeling)ColombiaColorado DayColumbus DayComing of Age DayCommand executed (exit code=%d) in file `%s' Line %ld: %sCommonwealth DayComorosCompiled with %s%s for %s%s%s%sConfederal Agreement DayConfucius' BirthdayConstitution AnniversaryCook IslandsCoptic New Year's DayCoronation DayCosmonauts' DayCosta RicaCreatedCroatiaCross Raising DayCubaCulture DayCup Match DayCustom Chief's DayCycleCyprusCzech RepublicC´te d'IvoireDDarwin Show DayDate format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]Day after Mid-Autumn FestivalDay after Tomb-Sweeping DayDay of AndaluciaDay of CataloniaDay of Czech StatehoodDay of GaliciaDay of GoodwillDay of Prayer and RepentanceDay of ReconciliationDay of Students RevoltDay of the CovenantDay of the Free LaosDeath of H. ChristopheDeath of J. DessalinesDeath of President AbdallahDeath of President CheikhDeath of T. LouvertureDecDecemberDeclaration of the BabDefenders of Motherland DayDemocratic People's Republic of KoreaDemocratic Republic of Congo #DenmarkDia de los MaestrosDia del PadreDiscovery DayDjiboutiDominicaDominican RepublicDouble-9 DayDownfall of the DergueDr. Sun Yat-sen's BirthdayDragon Boat FestivalDry Season CelebrationDuarte's BirthdayE. Hostos' BirthdayEGOEaster MondayEaster SundayEaster TuesdayEconomic Liberation DayEcuadorEgyptEight Hours DayEindhoven's LiberationEl SalvadorElection DayElections for National AssemblyEmail bug reports to <%s>Emperor's BirthdayEnd of highlighting sequence/marking characterEpiphany/Three King's DayEquatorial GuineaEquinox DayEritreaErrol Barrow DayEstoniaEternal holiday listEthiopiaEthiopic New Year's DayEvacuation DayEve of EpiphanyExpedition of the 33FAO DayFORMAT group (exactly one member must be defined):FRRFalkland Islands (Malvinas)Family DayFarmers' DayFaroesFather Leval DayFather's DayFeast of Corpus ChristiFeast of FortuneFeast of Heart JesusFeast of Our TheotokosFebFebruaryFederated States of MicronesiaFestival of LanternsFestival of SadehField contents is converted to capitalized wordsField contents is converted to lower-case lettersField contents is converted to upper-case lettersField contents is cut after position WIDTHField contents is not cut after position WIDTHField contents placed at the left margin using width WIDTHField contents placed at the right margin using width WIDTHField contents placed in centered manner using width WIDTHField has the width N (%d...%d)Fiji #FinlandFisherman's DayFixed date list:Flag DayFlemish Culture DayFormer Yugoslav Republic of MacedoniaFoundation of NPLA DayFounding of People's PartyFounding of the Communist PartyFrFranceFrench Culture DayFrench GuianaFrench PolynesiaFrench RevolutionaryFriFridayFridaysFriendship DayFull MoonGNU gcal home page: <%s>Gabon #GambiaGarifuna DayGeneral San Martin's AnniversaryGeneral help using GNU software: <%s>GeorgiaGerman Unity DayGermanyGermany/Baden-WĵrttembergGermany/BavariaGermany/BerlinGermany/BrandenburgGermany/BremenGermany/HamburgGermany/HesseGermany/Lower SaxonyGermany/Mecklenburg-West PomeraniaGermany/North Rhine-WestphaliaGermany/Rhineland PalatinateGermany/SaarlandGermany/SaxonyGermany/Saxony-AnhaltGermany/Schleswig-HolsteinGermany/ThuringiaGhadirGhanaGibraltarGood FridayGood Saturday/Easter EveGospel DayGrandparents' DayGreat BritainGreat Britain/England and WalesGreat Britain/Northern IrelandGreat Britain/ScotlandGreeceGreenery DayGreenlandGrenadaGrotto DayGroundhog DayGuacanaste DayGuadalupe Virgin's DayGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Gustavus Adolphus' DayGuyana #Hai/PigHaitiHalloweenHannukah/Festival of LightsHealth and Sport's DayHeard and Mc Donald IslandsHebHeritage DayHeroes DayHighlighting group (all members must be defined):Ho Chi Minh's BirthdayHobart Show DayHoly Innocent's DayHoly TrinityHoly WednesdayHondurasHong KongHuman Rights DayHungaryHuravee DayHurricane Supplication DayHurricane Thanksgiving DayIcelandIf you use this software, you agree without any exception to thisImamat DayImbolgIndependence DayIndependence Movement DayIndependence ProclamationIndependence of CartagenaIndependence of CuencaIndependence of GuayaquilIndependence of QuitoIndia #Indian Arrival DayIndian New Year's DayIndonesia #InternalInternal Autonomy DayInvalid argument in command line given -- %sInvalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionIraqIrelandIslIslamic New Year's DayIslamic Republic of IranIsraelItalyJ. Barbosa's BirthdayJ. Chilembwe DayJ. Diego's BirthdayJ. Robert's BirthdayJamaicaJanJanuaryJapJapanJapanese New Year's DayJapanese New Year's EveJefferson Davis' BirthdayJesus' CircumcisionJordanJulJulyJunJuneJune HolidayKartini DayKazakhstanKenya #Kiev DayKim Il-Sung's BirthdayKim Jong-Il's BirthdayKing Kamehameha DayKing Rama I Memorial Day/ChakriKing Rama V Memorial DayKiribati #KnabenschiessenKuwaitKwanzaaKyrgyzstanL. Rivera's BirthdayLabour DayLabour Thanksgiving DayLag B'OmerLao Tze's BirthdayLaos People's Democratic Republic #Lapp National HolidayLatviaLaunceston Cup DayLeap-day set to `%02d-%s' in file `%s'.LebanonLesothoLiberation DayLiberiaLiberty DayLibyan Arab Jamahiriya (Libya)LiechtensteinLine %ld ignored: %sLine %ld: %sLithuaniaLughnasaLunar EclipseLuxembourgLuxembourg City KermisLyndon B. Johnson DayMMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.MacauMadagascar #Madaraka DayMahatma Gandhi's BirthdayMail from \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaldivesMaliMaltaMalvinas DayManila DayMao/RabbitMaputo City DayMarMarchMarien Ngouabi DayMarine DayMarshall IslandsMartin L. King's DayMartinimasMartiniqueMartyrdom of the BabMartyrs' DayMary's Annunciation DayMary's Ascension DayMary's CandlemasMary's Immaculate ConceptionMary's MaternityMary's NameMary's NativityMary's SacrificeMary's VisitationMaryland DayMaundy ThursdayMauritaniaMauritiusMayMay May DayMayotteMelbourne Cup DayMemory exhaustedMerchant DayMexicoMid-Autumn FestivalMissionary DayMoMonMonacoMondayMondaysMondays...FridaysMondays...ThursdaysMongolia #Month group (exactly one member must be defined):MontserratMorazan DayMoroccoMother in Law's DayMother's DayMotherhood and Beauty DayMozambiqueMyanmar (Burma) #NamibiaNaming DayNational Bun DayNational Foundation DayNational Heroes DayNational HolidayNational Mourning DayNational Redemption DayNational Resistance DayNational Revival DayNational Unity DayNauruNdadaye DayNepal #NetherlandsNetherlands Antilles/BonaireNetherlands Antilles/Cura§aoNetherlands Antilles/Saba and StatiaNetherlands Antilles/St MaartenNeutrality DayNevada DayNew CaledoniaNew MoonNew Regime AnniversaryNew Year's DayNew ZealandNicaraguaNigerNigeriaNiueNo matchNo previous regular expressionNobel DayNorthern Marian Islands (Saipan)Noruz/Persian New Year's DayNorwayNovNovemberNumerical value is filled with leading zero(es)Numerical value is provided with an ordinal number suffixNumerical value is provided with leading signNurses' DayOAU DayOPTIONOctOctoberOctober HolidayOil Industry DayOld-Armenic New YearOld-Egyptic New YearOmanOn principle I will not be liable for ANY damages or losses (implicitOrthodox New Year's DayOur Lady Aparecida DayOur Lady of Altagracia DayOur Lady of Camarin DayOur Lady of Las Mercedes DayOur Lady of Los Angeles DayOur Lady of Seven SorrowsOur Lady of Victories DayOxNOxOPakistanPalauPalm SundayPanamaPanama City DayPanamerica DayPapua New GuineaParaguayParent's DayParis Peace Agreement DayPartialPassion SundayPatriot's DayPeace FestivalPeach FestivalPenumbralPeople Power DayPeople's Uprising DayPerPercent ('%c') characterPeruPesach/PassoverPhilippine-American FriendshipPhilippinesPichincha DayPicnic DayPioneer DayPitcairnPolandPortugalPoya DayPrayer DayPreload options and commands from `FILE'Premature end of regular expressionPresident Lincoln's BirthdayPresidential InaugurationPresidents' DayPrince Kalanianaole DayPrince of Wales' BirthdayPrincess' DayProclamation DayPuerto RicoPurim/Feast of LotsQatarQuds DayQuinquagesima SundayRamadanRecreation DayReferendum DayReformation DayRegatta DayRegular expression too bigRemembrance/Memorial DayRepublic DayRepublic of Congo #Republic of KoreaRepublic of MoldovaRespect for the Aged DayRestoration DayReturn DayReunification DayRevolution DayRio de Janeiro AnniversaryRizal DayRogation SundayRomaniaRosh Hashana/New Year's DayRussian FederationRwagasore DayRwandaRİunionS. Doe's BirthdaySAR Establishment DaySIGN (may be defined):STYLE group (exactly one member may be defined):SUFFIX (may be defined):SaSaba DaySaint-Pierre and MiquelonSamhain/Celtic New Year's DaySamoaSan Jacinto DaySan Josİ DaySan MarinoSao Paulo AnniversarySao Tomİ and PrincipeSapporo Snow FestivalSatSaturdaySaturdaysSaudi ArabiaSchool HolidaySeason Change/Bean-FestivalSechsel¤utenSenegalSepSeparation DaySeptemberSeptuagesima SundaySerbia and MontenegroSeretse Khama DaySettlers DaySeven Sleepers DaySeward's DaySexagesima SundaySeychellenShab-e-Mi'rajShaheed DayShavuot/Giving of the TorahSheep FestivalSheikh Zayed's Ascension DayShen/MonkeyShrove Tuesday/Mardi GrasShushan PurimSi/SnakeSierra LeoneSimchat TorahSimon Bolivar's DaySinai-Liberation DaySingapore #Slave-Liberation DaySlovakiaSloveniaSniff the Breeze DaySolar EclipseSolidarity DaySolomon IslandsSolstice DaySomaliaSomers DaySoot-Sweeping DaySouth AfricaSouth Georgia and South Sandwich IslandsSpace/blank ('%c') characterSpainSpring FestivalSri Lanka #St Agata DaySt Andrew's DaySt Bartholomew DaySt Berchtold's DaySt Canute's DaySt Cedilia's DaySt Charles' DaySt David's DaySt Demetrius' DaySt Dİvote DaySt Edward's DaySt Eliah's DaySt George's DaySt HelenaSt James' DaySt Jean Baptiste DaySt John's/Midsummer DaySt John's/Midsummers EveSt Joseph's DaySt Kitts and NevisSt Laurentius DaySt LuciaSt Lucia's DaySt Marguerite's DaySt Maroon's DaySt Michael's DaySt Nicholas' DaySt Nicholas' EveSt Olav's DaySt Olav's EveSt Patrick's DaySt Paul's ShipswreckSt Peter and St PaulSt Rose of LimaSt Stephen's DaySt Ursula's DaySt Valentine's DaySt Vincent and GrenadinesSt Vincent de Paul's DayStandardStar FestivalStart of common monthStart of highlighting sequence/marking characterStart of leap monthStatia-American DayStudent's DaySuSuccessSudanSuez Victory DaySukkot/Feast of TabernaclesSultan Qaboos' BirthdaySunSundaySunday of the DeadSundaysSuriname #Svalbard and Jan Mayen IslandsSvetitskhovlobaSwallow DaySwazilandSwedenSweden DaySweetest DaySwitzerlandSwitzerland/AargauSwitzerland/Appenzell AusserrhodenSwitzerland/Appenzell InnerrhodenSwitzerland/Basel-LandschaftSwitzerland/Basel-StadtSwitzerland/BernSwitzerland/FribourgSwitzerland/Gen¨veSwitzerland/GlarusSwitzerland/GraubĵndenSwitzerland/JuraSwitzerland/LuzernSwitzerland/Neuch˘telSwitzerland/NidwaldenSwitzerland/ObwaldenSwitzerland/SchaffhausenSwitzerland/SchwyzSwitzerland/SolothurnSwitzerland/St GallenSwitzerland/ThurgauSwitzerland/TicinoSwitzerland/UriSwitzerland/ValaisSwitzerland/VaudSwitzerland/ZugSwitzerland/ZĵrichSylvester/New Year's EveSyrian Arab Republic (Syria)TaiwanTajikistanTanzaniaTeacher's DayTennant-Creek Show DayTerritory DayThThai New Year's DayThailand #Thanksgiving DayThe Crown Prince's BirthdayThe Crown Princesse's BirthdayThe Crown Princesse's Name-DayThe King's BirthdayThe King's Name-DayThe Queen's BirthdayThe Queen's Name-DayThere is NO warranty, without even the implied warranty ofThis is free software; see the source for copying conditions.This program is free software; you can redistribute it and/or modifyThis software doesn't claim completeness, correctness or usability.ThuThursdayThursdaysTiradentes DayTisha B'Av/Fasting DayTogo #TokelauTomb-Sweeping DayTongaTotalTown Meeting DayTraditional DayTrailing backslashTransfer DayTransfiguration DayTrinidad and Tobago #Truman DayTry to open (level: %02d) include file `%s'... %s%s%sTry to open%sresource file `%s'... %s%s%sTry to write %s `%s'... %s%s%sTuTu B'Shevat/New Year of TreesTueTuesdayTuesdaysTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluTynwald DayU.S. Virgin IslandsU.S.A.UNKNOWNUgandaUkraineUnderscore ('%c') characterUnion DayUnion with Sweden dissolvedUnited Arab EmiratesUnited Nations DayUnited StatesUnited States/AlabamaUnited States/AlaskaUnited States/ArizonaUnited States/ArkansasUnited States/CaliforniaUnited States/ColoradoUnited States/ConnecticutUnited States/DelawareUnited States/District of ColumbiaUnited States/FloridaUnited States/GeorgiaUnited States/HawaiiUnited States/IdahoUnited States/IllinoisUnited States/IndianaUnited States/IowaUnited States/KansasUnited States/KentuckyUnited States/LouisianaUnited States/MaineUnited States/MarylandUnited States/MassachusettsUnited States/MichiganUnited States/MinnesotaUnited States/MississippiUnited States/MissouriUnited States/MontanaUnited States/NebraskaUnited States/NevadaUnited States/New HampshireUnited States/New JerseyUnited States/New MexicoUnited States/New YorkUnited States/North CarolinaUnited States/North DakotaUnited States/OhioUnited States/OklahomaUnited States/OregonUnited States/PennsylvaniaUnited States/Rhode IslandUnited States/South CarolinaUnited States/South DakotaUnited States/TennesseeUnited States/TexasUnited States/UtahUnited States/VermontUnited States/VirginiaUnited States/WashingtonUnited States/West VirginiaUnited States/WisconsinUnited States/WyomingUnity Factory DayUnknown system errorUnmatched ( or \(Unmatched ) or \)Unmatched \{UruguayUsage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...] Usage: %s [--%s | --%s] | [RESOURCE-FILE | -] Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART] Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]Use `%s %s|[%s?]Use given `DATE' instead of today's dateUzbekistanValborg's EveVanuatuVenezuelaVenice CarnivalVeteran's DayVictor-Schoelcher DayVictoria DayVictory DayVidovdanViet NamWW. Tubman's BirthdayWIDTH (must be defined):Wallis and Futuna IslandsWaning Half MoonWaxing Half MoonWeWedWednesdayWednesdaysWeekWeek %sWei/SheepWest Virginia DayWestern SaharaWhit MondayWhitsun EveWhitsunday/PentecostWomen's DayWomen's Shrove DayWorld Animal DayWu/HorseXu/DogYYap DayYemenYin/TigerYom Ha Azmaut/Independence DayYom Hashoah/Holocaust MemorialYom Hazikaron/Soldiers MemorialYom Kippur/Atonement DayYom Yerushalayim/Jerusalem DayYou should have received a copy of the `GNU General Public License'You/RoosterYouth DayZERO (may be defined):ZambiaZi/RatZimbabweZod[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]_open_osfhandle failed`%s' line %ld: (`%s') `%s%d' failed`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'`%s' line %ld: (`%s') unmanaged error (%d)`%s' line %ld: virtual memory exhausted (%s=%d)`Eternal holiday list'`Internal'`termcap' file not foundagreement, which binds you LEGALLY !!along with this program; if not, write to the:amany later version.cannot create pipecannot restore fd %d: dup2 failedcommand linecontain a format instruction, which template is like:d'"defaultenvironment variableenvironment variable `%s' not foundenvironment variable `%s' not setfailedfile `%s' can't be written Storage media full!file `%s' not foundfor more information.h'"holidaysillegal character in response file `%s' Line %ld: %sillegal definition of variable `%c'illegal operation on variable `%c'illegal variable definition in file `%s'illegal variable operation in file `%s'internalinvalid N'th weekday field(%d) in file `%s' Line %ld: %sinvalid date part in file `%s' Line %ld: %sinvalid dayinvalid day field(%02d) in file `%s' Line %ld: %sinvalid monthinvalid month field(%02d) in file `%s' Line %ld: %sinvalid recursive/cyclic %s in file `%s' Line %ld: %sinvalid search pattern `%s' specifiedinvalid value assigned to variable `%c' in file `%s'invalid year for computing Easter Sundays date Year must be in range (%d...%d)it under the terms of the `GNU General Public License' as published bylegal holidaysmalformed %s in file `%s' Line %ld: %smemory exhaustedmissing `whitespace' character after date part in file `%s' Line %ld: %sndor explicit), which result from using or handling my software.pmrdread error in file `%s'response fileself-definedsending eMail to <%s> failedshell scriptshift value `%s' is invalidstsuccessththe `Free Software Foundation'; either version 3, or (at your option)unknown unknown compilerunknown compiler (SDK?)unknown terminal type defined in `%s'unknown versionvariable `%c' undefined in file `%s'version %dversion %d.%dProject-Id-Version: GNU gcal 3.6.3.34 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 2016-01-29 22:36+0800 Last-Translator: Tianze Wang Language-Team: Chinese (simplified) Language: zh_CN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. Plural-Forms: nplurals=1; plural=0; X-Generator: Poedit 1.8.6 X-Poedit-Bookmarks: -1,923,790,-1,-1,-1,-1,-1,-1,-1 %sïĵšé€€ċ‡şïĵŒ %sïĵšç¨‹ċşĉ”ĥċˆ° %d äżĦċ·ïĵŒċ·²é€€ċ‡ş %sïĵšè­Ĥċ‘ŠïĵŒ%s€‚ “%s”çĴĴ %ld èĦŒïĵš %-3s = %d...%d ċ•è½´çš„é•żċşĤ %-3s = %d...%d ĉ€ğèĦŒĉ•° %-3s = february ĉċ‰è‡³â€œäşŒĉœˆ28ĉ—” %-3s = march ċğĥċŽè‡³â€œä¸‰ĉœˆ1ĉ—” = %s ċ‘ċŽ = %s ċˆ—ċ‡şäğŽĉ˜¨ċ¤İċˆ°ä¸€ĉœˆċĵ€ċ§‹äı‹ĉ—çš„ĉ—ĉœŸ = %s ċˆ—ċ‡şäğŽĉ˜¨ċ¤İċˆ°ä¸€ċ‘¨ċĵ€ċ§‹äı‹ĉ—çš„ĉ—ĉœŸ = %s ċˆ—ċ‡şäğŽĉ˜¨ċ¤İċˆ°ä¸€ċı´ċĵ€ċ§‹äı‹ĉ—çš„ĉ—ĉœŸ N = 0 ä¸ä½äşŽçĴĴ一ċ‘¨ä¸­çš„ %s N = 0 上一ċı´çš„çĴĴ一ċ‘¨ / ĉœ€ċŽä¸€ċ‘¨ N = 1...4 çĴĴ 1...4 个ĉ˜ŸĉœŸ %sïĵˆċ›şċšïĵ‰ N = 1...51 çĴĴ 1...51 ċ‘¨çš„ %sïĵˆċ›şċšïĵ‰ N = 1...51 çĴĴ 1...51 个ĉ˜ŸĉœŸ %sïĵˆċ›şċšïĵ‰ N = 1...52 çĴĴ 1...52 ċ‘¨ïĵˆċ›şċšïĵ‰ N = 5 çĴĴ五个ĉ˜ŸĉœŸ %sïĵˆċĥċ°”ċ‡şçްïĵ‰ N = 52|53 çĴĴ 52|53 ċ‘¨çš„ %sïĵˆċĥċ°”ċ‡şçްïĵ‰ N = 52|53 çĴĴ 52|53 个ĉ˜ŸĉœŸ %sïĵˆċĥċ°”ċ‡şçްïĵ‰ N = 53 çĴĴ 53 ċ‘¨ïĵˆċĥċ°”ċ‡şçްïĵ‰ N = 9 ĉœ€ċŽä¸€ä¸Şĉ˜ŸĉœŸ %s N = 99 ĉœ€ċŽä¸€ċ‘¨çš„ %s N = 99 ĉœ€ċŽä¸€ċ‘¨ N = 99 ĉœ€ċŽä¸€ä¸Şĉ˜ŸĉœŸ %s ċ½“ċ‰ċ€ĵïĵš “%s” = ċœ¨ċı³ċı´ä¸­èç½â€œäşŒĉœˆ29ĉ—” = èç½ĉœˆç›¸ĉ–‡ċ­—ċ›ċ½˘ =èç½ç”Ÿç‰İ节ċ‹ĉ–‡ĉœĴċ›ċ½˘çš„ċ½ċşĤ ĉˆ–ïĵšĉœˆäğ½ċ | %s | %s%s | %s%s | %s%s [MOD] = %s ċˆ—ċ‡şäğŽĉ˜Žċ¤İċˆ°ĉœˆĉœĞ的ĉ—ĉœŸ [MOD] = %s ċˆ—ċ‡şäğŽĉ˜Žċ¤İċˆ°ċ‘¨ĉœĞ的ĉ—ĉœŸ [MOD] = %s ċˆ—ċ‡şäğŽĉ˜Žċ¤İċˆ°ċı´ĉœĞ的ĉ—ĉœŸ %s%cwN[%s]ïĵŒĉœˆäğ½ċ[%s]ïĵŒĉ˜ŸĉœŸä¸­ä¸Şċ¤İ的ċç§°[N] ĉˆ– %s MOD = %s ċ‘ċ‰ %-*s = %s 节ċ‡ĉ— %-3s = 用于ĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨çš„ĉ ‡é˘˜ĉ–‡ĉœĴ %c = ĉޒ除ĉ‰€ĉœ‰ %s ĉ°”ċŽ‹ċ€ĵïĵŒċ•位ĉ˜Żç™ċ¸•ïĵˆċ½“ċ‰ċ€ĵïĵš%.3fïĵ‰ ĉ°”ĉ¸İċ€ĵïĵŒċ•位ĉ˜Żĉ‘„ĉ°ċşĤïĵˆċ½“ċ‰ċ€ĵïĵš%+.3fïĵ‰ ä‹ċĤ‚ %sH %s%s*%s* ċœ¨ċşċˆ— 2 ä¸­ä½żç”¨ċ­—çĴĤ“*”ċ’Œâ€œ*” ä‹ċĤ‚ %sH \x2%s\xAE ċœ¨ċşċˆ— 1 ä¸­ä½żç”¨ċċ…­èż›ċˆĥċ€ĵ 2 ċ’Œ AE ä‹ċĤ‚ïĵŒ%sr %ca%sfoo ċ°†ċ‘½äğ¤â€œfoo”的è“ċ‡şċ†…ċı赋çğ™ċ˜é‡â€œ%ca” ä‹ċĤ‚ïĵŒ%sr %ca%sfoo%s%cb%sbar èç½â€œ%ca”的ċ€ĵ为“foo”ïĵŒâ€œ%cb”的ċ€ĵ为“bar” ä‹ċĤ‚ïĵŒ%sv a%s1127%sb%s054 èç½â€œa”的ċ€ĵ为 11ĉœˆ27ĉ—ïĵŒâ€œb”的ċ€ĵ为5ĉœˆ4ĉ— ä‹ċĤ‚ïĵŒâ€œ %s%s%s%s%s%s%s%s” %-3s ċŻäğĉ­£çĦçżğèŻ‘ ċˆ—èĦ¨ïĵš%s[%s%s]%s...%s%s[%s%s] ċˆ—èĦ¨ïĵš [%s%s]%s%s...%s[%s%s]%s 范ċ›´ïĵš%s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s 范ċ›´ïĵš[%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s ç”ħ“%s”ċ­—çĴĤċˆ†éš”çš„èĦ¨èċĵ ĉ˜Żċ°ċ†™ċ­—çĴĤïĵŒĉ„ċ‘³ç€ċƒä¸äĵšè˘Ğĉޒ除ïĵ ċ›½ċĥ/ċœ°ċŒşçš„节ċ‡ĉ—ċˆ—èĦ¨ä¸ċŒĉ•´ äı‹ċ‰ĉ‰€èż°çš„€ä¸€ä¸Şç‹ĴçĞ‹ĉ—ĉœŸĉ ĵċĵä¸­çš„ç‰ıĉŠċ­—çĴĤïĵŒ ċƒäğĴċœ¨ċ·èŻ­ċ­—çĴĤé›†ä¸­çš„ä½żç”¨ĉ–ıċĵ ç”ħ“%s”ċ­—çĴĤèżžĉŽ€‚ĉœ‰ # ĉ ‡è°çš„ ïĵŒċ…ĥ中ċŒ…ċĞ了ĉ ·ċĵĉŒ‡ċŻĵ部ċˆ†ïĵŒäğċŠ # %c%c[%s|%s]N%s = 相ċŻı于ċ¤ĉ´ğ节ĉ˜ŸĉœŸĉ—çš„çĴĴ N 个ĉ˜ŸĉœŸ # %c%c[%s|%s]N%s = 相ċŻı于äğŠċ¤İ的çĴĴ N 个ĉ˜ŸĉœŸ # %c%c[[%s|%s]N] = 相ċŻı于ċ¤ĉ´ğ节ĉ˜ŸĉœŸĉ—çš„çĴĴ N ċ¤İ # %c%c[[%s|%s]N] = 相ċŻı于äğŠċ¤İ的çĴĴ N ċ¤İ # %c?[%s|%s]N%s = 相ċŻı于çğ™ċšĉ—ĉœŸċ˜é‡çš„çĴĴ N 个ĉ˜ŸĉœŸ # %c?[[%s|%s]N] = 相ċŻı于çğ™ċšĉ—ĉœŸċ˜é‡çš„çĴĴ N ċ¤İ # %cdN = ċ•个çğċŻıĉ— N # %cdN%s = çĴĴ N 个ĉ˜ŸĉœŸ %s # %cwN%s = çĴĴ N ċ‘¨çš„ĉ˜ŸĉœŸ %s # %1$s%2$s = %4$s ĉœˆçš„çĴĴ %3$s ĉ— # %1$s%2$sN = %4$s ĉœˆçš„çĴĴ N 个ĉ˜ŸĉœŸ %3$s # A = ä½żç”¨ċ¤‡ç”¨ċˆ—èĦ¨ĉ ĵċĵĉĉ˜ç¤ş # E = äğ…ċŒ…ĉ‹Ĵĉ³•ċšċ‡ĉ— # J = ċż½ç•ĉŒ‡ċšĉ—ĉœŸä¸­çš„ĉ–‡ĉœĴ部ċˆ† # NMOD = 相ċŻı于äğŠċ¤İ的çĴĴ N ĉ— # Nd = ċ•个çğċŻıĉ— N # Nw = ċŒċ…¨ċ‘¨ N # Q = ċż½ç•ĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨ä¸­çš„éĤ–èĦŒçİşç™½ # U = ċż½ç•ĉŒ‡ċšĉ—ĉœŸä¸­çš„ĉ—ĉœŸéƒ¨ċˆ† # Z = ĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸä¸­ä¸ċ­˜ċœ¨çš„ĉ—ĉœŸ # a = ĉ˜ç¤şċŽŸċ§‹çš„ĉŒ‡ċšĉ—ĉœŸ # d = 生ĉˆäş†ċ‘¨ĉœŸç³ğċˆ—ĉ—ĥċŒ…ċĞċ½“ċ‰ĉ—ĉœŸ # e = ċŒ…ĉ‹Ĵĉ³•ċšċ‡ĉ—ċ’ŒçşŞċżµĉ— # g[MOD] = ä½żç”¨ĉ–‡ĉœĴ MOD ċŻıĉŒ‡ċšĉ—ĉœŸèż›èĦŒċˆ†çğ„ # k = ĉ˜ç¤şċ‘¨ĉ•° # l = 生ĉˆä¸€ç³ğċˆ—ċ‘¨ĉœŸïĵŒè€Œéžċ•个ċ‘¨ĉœŸ # m|M[MOD] = ċˆ—ċ‡şĉ•´ä¸Şĉœˆ # o = ċż½ç•ĉŒ‡ċšĉ—ĉœŸä¸­çš„重ċ¤ĉ—ĉœŸ # t|T = ċˆ—ċ‡şĉ˜Žċ¤İ的ĉ—ĉœŸ # w|W[MOD] = ċˆ—ċ‡şĉ•´ä¸Şĉ˜ŸĉœŸ # x = ĉޒ除ĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨çš„ĉ ‡é˘˜ # y|Y[MOD] = ċˆ—ċ‡şċ…¨ċı´çš„ĉ—ĉœŸ # z = ĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸçš„èżžçğ­ĉ—ĉ•° 1. ĉ–‡ĉœĴèĦ¨ç¤ş 2. ç‰ıĉŠċ‘¨ĉœŸ = ċšäı‰â€œTVAR[%s|%c%s]COMMANDE”ïĵŒç”ħ“%s”ċ­—çĴĤċˆ†éš” = abort 与“all”相äĵĵïĵ›ċĤ‚ĉžœĉ— ĉ³•ċ¤„理ĉ–‡äğĥċïĵŒċˆ™é€€ċ‡ş = all 与“handled”ċ’Œâ€œunhandled”相äĵĵ = handled 与“internal”相äĵĵïĵŒä¸”ċŒ…ċĞĉ‰€ċ¤„理ĉ–‡äğĥċçš„äżĦĉŻ = no ĉ ‡ċ‡†ċ‘¨ĉ•° = unhandled 与“internal”相äĵĵïĵŒä¸”ċŒ…ċĞĉœŞċ¤„理ĉ–‡äğĥċçš„äżĦĉŻ ċ½“ċ‰çš„ċ‘¨ĉœŸïĵš%02d-%02d %s %0*d ċ½“ċ‰ĉ ĵċĵïĵš(%s) “%s” (%s) ĉ”ıċ˜ċ‡ċ™ĉ—ĥ间的ċŸşçĦ€ĉ—ĥ间 ĉ”ıċ˜ĉ—ċŽ†çš„ċŸşçĦ€ċı´äğ½ ĉ”ıċ˜ċŞçŽŻçğ“ĉŸĉ—ĥ间 ĉ”ıċ˜ċŞçŽŻçš„ĉ—ĥ间ĉ­é•żċ€ĵ 为“%cFILE”选éĦıċğşçĞ‹ċ“ċş”ĉ–‡äğĥ ċˆ›ċğşċĞĉœ‰ċ‘½äğ¤èĦŒċ‚ĉ•°çš„ shell 脚ĉœĴ ċšäı‰é™„ċŠ çš„èµ„ĉşĉ–‡äğĥèĦŒ ċšäı‰ċ…¨ċħ€ĉ—ĉœŸċ˜é‡â€œDVAR->a...d|f...s|u...|z” ċšäı‰ċ…¨ċħ€ĉ–‡ĉœĴċ˜é‡â€œTVAR->%ca...%cz” ċšäı‰ċŻçżğèŻ‘çš„€ç”¨äşŽç‰ıċšċ›½ċĥ的ç‰ıĉŠċ­—çĴĤċŻı ċˆ¤ĉ–­ċ‘¨ĉ•°çš„çħğċž‹ïĵˆċ½“ċ‰ċ€ĵïĵš%sïĵ‰ 直ĉŽè“ċ‡şċˆ°ċ¤–部“%s”ċˆ†éĦµċ™¨ 直ĉŽè“ċ‡şċˆ°ċ†…部ç€ĉ˜“ċˆ†éĦµċ™¨ çĤĉ­˘éИäşĉ–‡ĉœĴ€èŠ‚ĉ—ĉ—ĉœŸċ’Œċ½“ċ‰ĉ—ĉœŸ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ïĵˆċı´äğ½èŒƒċ›´ïĵš%d...%dïĵ‰ ĉ˜ç¤şĉ‰İċħ•ċ¸ċŠİĉ–‡ĉœĴïĵŒç„ĥċŽé€€ċ‡ş ĉ˜ç¤şċ¸ċŠİĉ–‡ĉœĴïĵŒç„ĥċŽé€€ċ‡ş ĉ˜ç¤şĉœŞè˘Ğ %s ĉŽ’é™¤çš„ĉŒ‡ċšĉ—ĉœŸ ĉ˜ç¤şĉ‰€ĉœ‰ĉ–‡ĉœĴċŒı配 %s 的ĉŒ‡ċšĉ—ĉœŸ ĉ˜ç¤şè½Żäğĥè¸ċŻċèïĵŒç„ĥċŽé€€ċ‡ş ĉ˜ç¤şè°ƒèŻ•äżĦĉŻ ĉ˜ç¤şç‰ˆĉœĴäżĦĉŻïĵŒç„ĥċŽé€€ċ‡ş 不ċŒ…ċĞċ¤–部ċ‡ĉ—ċˆ—èĦ¨çš„ĉ ‡é˘˜ ĉ‰§èĦŒ shell ċ‘½äğ¤â€œ%c%c[%s]” ċ°†ĉ–‡äğĥ中的ĉœĴċœ°ĉ—ĉœŸċ˜é‡ċŻĵċ‡şċˆ°ċĤ一ĉ–‡äğĥ ċ°†ĉ–‡äğĥ中的ĉœĴċœ°ĉ–‡ĉœĴċ˜é‡ċŻĵċ‡şċˆ°ċĤ一ĉ–‡äğĥ fċĵşċˆĥéИäşċşċˆ—ïĵŒċ³ä½żè“ċ‡şè˘Ğ重ċšċ‘ è‹ĉŒ‡ċšäş†â€œ%s”选éĦıïĵŒċˆ™ċż½ç•ċ¤§ċ°ċ†™ċŒşċˆĞ ĉĥ‰ċŠçš„ċ‘¨ĉœŸïĵšäğŠċ¤İ èç½ĉŒ‡ċšĉ—çš„ĉ—ċ‡ş/ĉ—落ĉ—ĥ间 äżĉ”ıċı´ċŽ†çš„ĉ ĵċĵ ċœ¨ĉ—ċކèĦ¨ä¸­ĉ˜ç¤şċ‘¨ĉ•° ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ·´ċ“ˆäĵŠċŽ†èŠ‚ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ·´ċ“ˆäĵŠċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ‡Żċ°”ç‰ıċŽ†èŠ‚ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„中ċ›½é˜³ċŽ†èŠ‚ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„中ċ›½é˜³ċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„中ċ›½é˜´ċŽ†èŠ‚ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„中ċ›½é˜´ċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċŸşç£ĉ•™ċކĉ³•ċ‡ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ç§‘ĉ™ç‰ıċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċŸƒċĦžäż„ĉŻ”äşšċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ĉ³•ċ›½ċ…ħċ’Œċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ¸ŒäĵŻĉċŽ†èŠ‚ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ¸ŒäĵŻĉċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ°ċşĤĉ°‘用ċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„äĵŠĉ–Żċ…°ĉ°‘用ċŽ†èŠ‚ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„äĵŠĉ–Żċ…°ĉ°‘用ċކ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ĉ—ĉœĴ阳ċŽ†èŠ‚ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ĉ—ĉœĴ阳ċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ĉ—ĉœĴ阴ċŽ†èŠ‚ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ĉ—ĉœĴċ†œċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„äşšçŽċ°ĵ亚ĉ—§ċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċŸƒċŠĉ—§ċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„东ĉ­£ĉ•™ĉ–°ċŽ†èŠ‚ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„东ĉ­£ĉ•™ĉ—§ċŽ†èŠ‚ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„è´ĉ‹‰ċˆİċŽ†èŠ‚ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„è´ĉ‹‰ċˆİċކĉœˆäğ½ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ¤İĉ–‡ĉ•°ĉ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ç‰ıċšċ›½ċĥ节ĉ— ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„ċ„ċ›½ĉ–°ċı´ċ‡ĉœŸ ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ç›¸ċ…³çš„éğ„道位ç‚ı 用ĉœ€ä½³ç²ċşĤèĦ¨ç¤şċ‡ċ™ĉ—ĥ间ċ’Œĉ•°ĉ ċè½Ĵ“%s”选éĦı的ċ¤§ċ°ċ†™ċŒşċˆ† ċ°†è“ċ‡şé€šèż‡â€œ%s”程ċşċ‘送çğ™ç”¨ĉˆ· è‹èç½äş†â€œ%2$s”ïĵŒċˆ™ċ°†ç½ç¨‹ċşçš„退ċ‡şçŠĥĉ€è为“%1$d”€‚ èç½ċœ°çƒċ¤§ĉ°”çš„ċŸşçĦ€ĉ•°ĉ èç½éИäşċşċˆ—ċŻı 1ïĵˆ=ċ½“ċ‰ĉ—ïĵ‰ċ’Œ2ïĵˆ=节ċ‡ĉ—ïĵ‰ ä½żç”¨ĉ ĵċĵċŒ–ĉ–‡ĉœĴ %s ĉèç½ĉ—ĉœŸċ…ƒç´ çš„éĦşċş èç½ĉ ĵ里éИċŽ†çš„ĉ”ıéİċ‘¨ĉœŸ èç½ĉ—ċ‡ş/ĉ—落ĉ—ĥ间的阴ċ½ħ长ċşĤċ‚考ċ€ĵ èç½ä¸€ċ‘¨çš„èµ·ċ§‹ĉ—ïĵˆċ½“ċ‰ċ€ĵïĵš%sïĵ‰ 不ĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨çš„éĤ–èĦŒçİşç™½ ĉ˜ċĵçĤĉ­˘ĉ—ċކèĦ¨çš„è“ċ‡ş ä½żç”¨ċ¤‡é€‰ĉ–‡äğĥïĵŒè€Œéžĉ ‡ċ‡†èµ„ĉşĉ–‡äğĥ ç”¨èżžçğ­ĉ—ĉ¨Ħċĵĉ˜ç¤şĉ—ċކèĦ¨ ç”¨èżžçğ­ĉ—ĉ¨Ħċĵĉ˜ç¤şċ¤–部节ċ‡ĉ—ċˆ—èĦ¨ ç”¨èżžçğ­ĉ—ĉ¨Ħċĵĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨ 为东ĉ­£ĉ•™ä½żç”¨é—°ċı´è§„ċˆ™ 用ç‰ıĉŠĉ ĵċĵĉ˜ç¤şĉ—ċކèĦ¨ ċ°†ĉ ‡ċ‡†èµ„ĉşĉ–‡äğĥ“%s%s”用于ĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨ ċ°†ĉ ‡ċ‡†èµ„ĉşĉ–‡äğĥ“.%s%s”用于ĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨ ċ’ŒĉŒ‡ċšâ€œTVAR[%s|%c%s]COMMAND” 相ċş”ċœ°ïĵŒĉ”ıċ˜ċŞçŽŻèµ·ċ§‹ĉ—ĥ间 %-3s = ç”ħ“%s”ċ­—çĴĤèżžĉŽçš„ċ•个ĉ–‡äğĥĉˆ–ĉ–‡äğĥċˆ—èĦ¨ [MOD] = %s 降ċşĉŽ’ċˆ— [MOD] = 下ċˆ—äżé°çĴĤ中ĉœ‰ä¸€ä¸Şĉˆ–ċ¤šä¸Şè˘Ğ # ĉ ‡è° %-*d%*s = ċ°†ċ‘¨ĉœŸèç½ä¸şïĵš %02d-%02d %s %0*d %-3s = ċšäı‰â€œDVAR%s%s%s”ïĵŒç”ħ“%s”ċ­—çĴĤċˆ†éš” %-3s = ċšäı‰â€œTVAR%sTEXTE”ïĵŒç”ħ“%s”ċ­—çĴĤċˆ†éš” %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] çğ“ĉŸĉ—ĥ间ċ€ĵïĵšïĵˆċ½“ċ‰ċ€ĵïĵš%02d%s%02dïĵ‰ %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] ĉ—ĥ间ċç§ğ量ïĵˆċ½“ċ‰ċ€ĵïĵš%s%02d%s%02d == GMT%sïĵ‰ %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] ĉ—ĥ间ċç§ğ量ïĵˆċ½“ċ‰ċ€ĵïĵš %s%02d%s%02d == GMT%sïĵ‰ %-3s = %s%c%s%s%s%s%s%s ĉ˜ċĵċœ°èç½ċ‘¨ĉœŸ %-3s = 1|2|3|4|6|12 ċŒşċ—ĉ•°ïĵˆċ½“ċ‰ċ€ĵïĵš%dïĵ‰ %-3s = ç”ħ“%s”ċˆ†éš”çš„ĉ°”ċŽ‹ċ’Œĉ¸İċşĤċ€ĵ %-3s = 相ċş”的角ċşĤċ€ĵïĵŒèŒƒċ›´ä¸ş %+.1f...%+.1f %-3s = ċŻç”¨çš„资ĉşĉ–‡äğĥèĦŒ %-3s = äğğ何你ĉ‰€éœ€èĤçš„“ĉ­£ċˆ™èĦ¨èċĵâ€ %-3s = ċšäı‰ċ•ç‹Ĵ的ĉ ĵċĵ€‚ĉŽ¨èçš„ċ…ƒç´ ĉ ĵċĵä¸şïĵš %-3s = shell 脚ĉœĴ的ĉ–‡äğĥċ %-3s = ç”ħ“%s”ċ­—çĴĤċˆ†ċ‰²çš„éИäşċşċˆ—ċŻı %-3s = “%c[DATE][%c[DATE]]” ċ’Œ/ĉˆ–“%c[DATE][%c[DATE]]”的ċˆ—èĦ¨ %-3s = MMMM|HH%s[MM] ĉ—ĥ间ĉ­é•żċ€ĵïĵˆċ½“ċ‰ċ€ĵïĵš %02d%s%02dïĵ‰ċ½“ċ‰ċ€ĵ %-3s = 下ċˆ—ċ­—çĴĤ中的一个ĉˆ–ċ¤šä¸Şċ­—çĴĤ€‚ċĤ‚ĉžœċ­—çĴĤ %-3s = 相ċş”çš„ċ›½ċĥ€ċœ°ċŒşäğ£ç ïĵˆċŻäğĉ˜Żċˆ—èĦ¨ïĵŒ %-3s = ċ°†ċ‘½äğ¤èĦŒċ‚ĉ•°ċ­˜äşŽĉ–‡äğĥ %s %-3s = ċ¤§ċ†™ċ­—çĴĤ""ċ°ċ†™ċ­—çĴĤ... ċšäı‰ %-3s = [%s|%s]YYYY ċı´äğ½ċç§ğ量ïĵˆċ½“ċ‰ċ€ĵïĵš%dïĵ‰ %-3s = yes ISO-8601:1988 规范 %-6s = ĉ ĵċĵä¸şïĵš “ %s” (%s) C = äıŸĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸä¸ċ­˜ċœ¨çš„ĉ—ĉœŸ F = äıŸĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸä¸ċ­˜ċœ¨çš„ĉ—ĉœŸ N = äğ…ĉ³•ċšċ‡ĉ— [MOD] = b ä½żç”¨ä¸¤ç§ĉ—ĉœŸèĦ¨ç¤şĉ³•ïĵˆĉ—+ċı´ïĵ‰ %sL, %s ĉ˜ç¤şè½Żäğĥè¸ċŻċèïĵŒç„ĥċŽé€€ċ‡ş %sV, %s ĉ˜ç¤şç‰ˆĉœĴäżĦĉŻïĵŒç„ĥċŽé€€ċ‡ş %sh, %s ĉ˜ç¤şĉœĴċ¸ċŠİïĵŒç„ĥċŽé€€ċ‡ş %shh, %s ĉ˜ç¤şĉ‰İċħ•ċ¸ċŠİïĵŒç„ĥċŽé€€ċ‡ş %sp, %s è“ċ‡şċˆ°ċ¤–部“%s”ċˆ†éĦµċ™¨ %sp, %s è“ċ‡şċˆ°ċ†…部ç€ĉ˜“ċˆ†éĦµċ™¨ [%-3s] = é‚äğĥċœ°ċ€ïĵ›è‹ç•™çİşïĵŒċˆ™ċ‘送çğ™ç”¨ĉˆ·â€œ%s” [%-3s] = internal ĉœ‰ċ…³ç¨‹ċşċ†…éƒ¨é™é˘ĉ˜ŻċĤ用ċ°½çš„äżĦĉŻ [MOD] = - 用ĉ ‡ċ‡†ĉ ĵċĵĉ˜ç¤şĉ—ċކèĦ¨ [MOD] = b ä½żç”¨ä¸¤ç§ĉ—ĉœŸèĦ¨ç¤şĉ³•ïĵˆĉ—+ċı´ïĵ‰ (%.4s for Alpha) (%.4s for VAX)ïĵˆBSD/386 1.1 ĉˆ–ĉ›´éИïĵ‰ïĵˆFreeBSD 2.0 ĉˆ–ĉ›´éИïĵ‰ïĵˆNetBSD 1.2 ĉˆ–ĉ›´éИïĵ‰ïĵˆNetBSD 0.9 äğċ‰ïĵ‰ 1.0 ĉˆ– 1.5ïĵŸ 4.0 ĉˆ– 4.02ïĵ›çĴĴ %s ċ‘¨ = %+4d ĉ— = %+4d ĉ— â€œèż™é‡Œâ€ c = ċŞĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸċ­˜ċœ¨çš„ĉ—ĉœŸ ĉ— f = ċŞĉ˜ç¤şĉŒ‡ċšĉ—ĉœŸċ­˜ċœ¨çš„ĉ—ĉœŸ 4.5 äı‹ċŽ 5.0 äı‹ċŽ n = ĉ³•ċšċ‡ĉ—ċ’ŒçşŞċżµĉ— 于 # ĉ—ïĵˆċż…éĦğċšäı‰ïĵ‰# ĉœˆäğ½ċ# ĉœˆ# 一ċ‘¨ä¸­ċ„ċ¤İ的ċç§°ïĵˆċŻé€‰ïĵ‰# ċı´ïĵˆċż…éĦğċšäı‰ïĵ‰%cĉ—ĉœŸ%cĉ–‡äğĥ%s = %d...%d äı‹é—´çš„ĉœˆäğ½â€œ%2$s”中ċĞĉœ‰ĉœç´˘ĉ ·ċĵâ€œ%1$s”%s ċ­èż›ç¨‹%s ċ­èż›ç¨‹ċ¤ħè´%s ċ­èż›ç¨‹ĉ”ĥċˆ°çğˆĉ­˘äżĦċ· %d%s%*s = %d...%d äı‹é—´çš„ċı´äğ½%s%s ç›ċ‰ċĞĉœ‰ĉœ€ċ¤š %d éĦıïĵ%s%sïĵšĉŒ‰ ĉ˜ç¤şĉ›´ċ¤šïĵŒĉŒ‰ <%s> 退ċ‡ş...%sïĵšĉ ĵ里éИċˆİċŽ†ç¨‹ċşïĵˆGNU calïĵ‰%s%sïĵšċœ¨â€œ%s %sâ€ä¸­ä½żç”¨èż™äş›ċ‚ĉ•°%sïĵšé€€ċ‡şïĵŒ%sïĵšċœ¨çŽŻċ˘ƒċ˜é‡â€œ%s”中ĉ‰ċˆ°ċ‘½äğ¤ -- %s %s %s %sïĵšç¨‹ċşĉ‰§èĦŒâ€œ%s”ĉ—ĥċ‡şé”™ %sïĵšĉ–‡äğĥĉœŞĉ‰ċˆ° %sïĵšĉŒ‡ċšäş†ĉ— ĉ•ˆçš„ĉ—ĉœŸ -- %c%s %s %s %sïĵšĉŒ‡ċšäş†ĉ— ĉ•ˆçš„ĉ—ĉœŸ -- %s %s %s %sïĵšĉ— ĉ•ˆé€‰éĦı -- %s%sïĵšéžĉ™é€šĉ–‡äğĥ %sïĵšé€‰éĦı“%s”不ĉŽċ—ċ‚ĉ•°%sïĵšé€‰éĦı“%s”ĉœ‰äşŒäı‰ĉ€§%sïĵšé€‰éĦı“%s”需èĤä¸€ä¸Şċ‚ĉ•°%sïĵšé€‰éĦı“--%s”不ĉŽċ—ċ‚ĉ•°%sïĵšé€‰éĦı“--%s”需èĤä¸€ä¸Şċ‚ĉ•°%sïĵšé€‰éĦı需èĤä¸€ä¸Şċ‚ĉ•° --%s %sïĵšé€‰éĦı的ċ‚ĉ•°ĉœ‰äşŒäı‰ĉ€§ -- %s%sïĵšé€‰éĦı的ċ‚ĉ•°ĉ— ĉ•ˆ -- %s%s: ĉ— ĉ³•è݆ċˆĞ选éĦı“%s”%sïĵšè­Ĥċ‘ŠïĵŒĉĥˆĉŻċ†…ċı为çİşçš„ç”µċ­é‚äğĥĉœŞè˘Ğċ‘送çğ™ <%s>€‚ %sïĵš%*s %0*d ċı´ĉ˜Żé—°ċı´%sïĵš%*s %0*d ċı´ĉ˜Żċı³ċı´%s:%*s %d ċı´ĉ˜Żé—°ċı´%s:%*s %d ċı´ĉ˜Żċı³ċı´ïĵˆâ€œ%s”ïĵ‰ĉ—ĉœŸĉ ĵċĵâ€œ%s”ĉ— ĉ•ˆïĵˆç‰ˆĉœĴĉœ‰èŻŻïĵ‰++ 1.0 ĉˆ–ĉ›´éИ++ 3.0 ĉˆ–ĉ›´éИïĵ‰+++ ĉŒ‡ċšĉ—ĉœŸ +++çĴĴ一个降临ĉ—ċ››ĉ—Ĵ节çĴĴ一个ċ‘¨ĉ—çĴĴ二个降临ĉ—ċ››ĉ—Ĵ节çĴĴ二个ċ‘¨ĉ—çĴĴ三个降临ĉ—ċ››ĉ—Ĵ节çĴĴ三个ċ‘¨ĉ—çĴĴċ››ä¸Şé™ä¸´ĉ—ċ››ĉ—Ĵ节çĴĴċ››ä¸Şċ‘¨ĉ—5.1 ĉˆ–ĉ›´éИ7-5-3节:ċŻı齐çğ„ïĵˆċż…éĦğċŞċšäı‰ä¸€ä¸Şĉˆċ‘˜ïĵ‰ïĵšAMOċ‚ĉ•°ċœŸè‘—ĉ—é˜żċ—èŽħċ·ĉŻèµ›éİĴĉ—ċŠ é‚Ĥĉ—é˜żċ݌ĉħ—é˜żċŠ ĉħ—èŻžè°é˜żĉ‹‰ĉ–ŻċŠ ĉ—é˜żċ°”ċ·´ċ°ĵ亚阿èŽħċ…‹èżĉ–ŻÂ·ċŸşçğ´ĉ—é˜żċ°”ċŠċ°”丽ĉ–Żĉ³‰ċ†œċħ•äĵšĉ—ĉ„šäşşèЂ䏇ċœ£èЂ䏇ċœ£èŠ‚ċ‰ċ¤œä¸‡çµèŠ‚ĉ‰€ĉœ‰ĉ ‡ĉœ‰ # 的ċ…ƒç´ éƒ½ĉ˜ŻċŻé€‰éĦı谚ĉ–‡ĉ—çŽċħžè¨ĉ‘İ亚çŽĉ´²ĉ—ċ‰é“ċ°”èż”äıĦĉ—ċ‰ċ“ĉ‹‰ #ċ‰ċœ­ĉ‹‰ĉ­Ĥ装ĉ–—争纪ċżµĉ—ċċ…‹ċ…°çşŞċżµĉ—ċŒ—ċŽç‰ıäĵŻé›·çşŞċżµĉ—ċ—ċŽç‰ıäĵŻé›·çşŞċżµĉ—ĉŸċĦ”ċ§†ç¤ċ²›çşŞċżµĉ—çğżĉœˆċ‘¨ċı´çşŞċżµĉ—霍ċ…‹ĉ–Żĉı纪ċżµĉ—éİĴċ°”äĵŻċ‹’纪ċżµĉ—ċ°ĵċ°”ĉ£çşŞċżµĉ—ċċĦ”ċ“纪ċżµĉ—ċ—éƒ¨çœçşŞċżµĉ—ċĦ”ĉ‹‰çş³ċŸşçşŞċżµĉ—ĉƒ çµéĦżçşŞċżµĉ—èżéƒ¨çœçşŞċżµĉ—çŽŻé£Ÿċ‰ĉç“œċ’Œċ·´ċ¸ƒèċ‰çš„ċˆ—ĉ–Żĉ—ĉ³ĉ–°ċ†›ċ›˘ĉ—ċ››ĉœˆċ››ĉœˆé˜żç›Ÿĉ—ĉ¤ĉ ‘节éİĴċĦ里ċĉ–Żċ¤§ä¸ğĉ•™çşŞċżµéİĴċĦ里ċĉ–Żċ¤§ä¸ğĉ•™ċ‘½ċĉ—é˜żäĵĤĉˆˆĉˆçĞ‹ċ‘¨ċı´çşŞċżµĉ—é˜żĉ ıċğ·ċż½ç•ċ‘½äğ¤èĦŒċ‚ĉ•°â€œ%s”€‚ċ†›äşşèŠ‚äşšçŽċ°ĵ亚ċœĉˆ˜çşŞċżµĉ—ċ†›é˜Ÿĉ”żċ˜ĉ—é˜żè’‚ċŠ ĉ–ŻèŻžè°é˜żé²ċ·´é˜żċœĉœċ‹’·ċ·´ċ“ˆċ‡ċ¤İĉ—ċ·´ċ“ˆĉĴ§ĉ‹‰ċ‡ċ¤İĉ—ċ‘¨ä¸€ĉ¸…ĉ‰Ğ节ċ‘¨ä¸‰ĉ¸…ĉ‰Ğ节Ast亚ĉĉ£ĉ—é˜żċĦ”ċ›ċ°”ċ…‹çşŞċżµĉ—ċ…Ğĉœˆċ…Ğĉœˆĉ³ċ¤§ċˆİ亚ĉ³ċ¤§ċˆİ亚/ċ ŞċŸıĉ‹‰ĉ³ċ¤§ċˆİ亚/ĉ–°ċ—ċ¨ċ°”ċ£Ğĉ³ċ¤§ċˆİ亚/ċŒ—部ċœ°ċŒşĉ³ċ¤§ċˆİ亚/ĉ˜†ċ£Ğċ…°ĉ³ċ¤§ċˆİ亚/ċ—ĉ³ċ¤§ċˆİ亚ĉ³ċ¤§ċˆİ亚/ċĦ”ĉ–ŻéİĴċ°ĵ亚ĉ³ċ¤§ċˆİ亚/çğ´ċ¤šċˆİ亚ĉ³ċ¤§ċˆİ亚/èżĉ³ċ¤§ċˆİ亚ċċœ°ċˆİĉƒċŠ›ĉ—é˜żċĦžĉ‹œç–†ċ¤ċ…´ċ…šéİċ‘½ĉ—ċĉ–œĉ ïĵˆâ€œ%c”ïĵ‰ċ­—çĴĤBahċ·´ċ“ˆéİĴċ·´ĉž—ċ·´ċ“ˆäĵŠċ…ƒĉ—Ĥċ­ŸċŠ ĉ‹‰ċ›½ #é“ĥèĦŒċ‡ĉ—ïĵˆĉ³•ċšċ‡ĉ—ïĵ‰ċ·´ċ·´ċ¤šĉ–ŻäĵŻċˆİċ…ıċ¸ƒċˆİĉ–Żç”·çˆµĉ—ċ·´ĉ–Żċ…‹ċ›½ċş†èŠ‚ċ·´ä¸ıĉ—ċ‰ċŠ èŽĞĉ–Żĉˆ˜ċ½ı纪ċżµĉ—ċšäşšċĦĉˆ˜ċ½ı纪ċżµĉ—ċšäĵŠĉİĉˆ˜ċ½ıċĦĉ‹‰ĉ²ƒĉ²ƒĉˆ˜ċ½ı纪ċżµĉ—äĵŠċŸşċ…‹ĉˆ˜ċ½ı纪ċżµĉ—ĉ‹‰ĉ–Żċ½ĵċ·ĉ‹‰ĉ–Żĉˆ˜ċ½ı纪ċżµĉ—那菲ċ‹’ĉ–Żĉˆ˜ċ½ı纪ċżµĉ—ĉ™ċŸƒċ¸ƒĉ‹‰ĉˆ˜ċ½ıè´˘ĉ”żċı´ċşĤéĤ–ĉ—çĞ‹ċ¤ç™½äż„ç½—ĉ–ŻĉŻ”ċˆİĉ—ĥ贝ċ°”ĉ ĵèŽħċ·èŠ‚äĵŻċˆİċ…ı五ĉœ”节贝ċ #贝ċ°ĵĉ‰˜Â·ċŽé›·ĉ–Żĉ—ĉœĴċéĦżĉˆ˜ĉ–—纪ċżµĉ—ç™ĉ…•ċ¤§ä¸ä¸ı #ċ·´ċ“ˆĉĴ§ĉ‹‰èŻžè°ċ·´ċ­›èŻžè°çĉ°´ç¤ĵċ¸ƒé²ċ§†ĉ—èĉ‘İèŻžè°ċšċ†ˆèĉ—çŽğċˆİçğ´äşšċšċ†…ċ°”ĉ—ċšċ…‹é™ĉˆ˜ċ½ı纪ċżµĉ—ĉ³˘ĉ–Żċ°ĵ亚éğ‘ċĦžċ“çğ´é‚£è€ĉżèŠ‚ċšèŒ¨ç“Ĥçş³ċšèŒ¨ç“Ĥçş³ĉ—é‚Ĥ蒂ĉ—ċ¸ƒçğ´ċ²›èŠ‚ç¤ĵĉ—ċ·´èżè‹ħċħžçğ´ċ°”äşĴç¤ċ²›ĉ–‡èŽħä½›èŻžĉ—保ċŠ ċˆİ亚é‚Ĥċ…‹ċħħĉˆ˜ċ½ı纪ċżµĉ—ċ¸ƒċŸşçş³ĉ³•ç´˘ĉ‰Ĵ·èƒĦĉ–Żċ—ċˆ‘ĉ—ċ½­ĉ–Żäı‹ċ¤œċ¸ƒéš†èżŞ #ċĤĉĦ‘ċ°ĵ亚éİċ‘½ċ…šĉ—ċ‘½äğ¤CWĉŸĴċŸ”ċݍ ïĵƒċ–€éşĤ隆è´ĉ˘…ċ£Ğĉ—ċŠ ĉ‹żċ¤§ċŠ ĉ‹żċ¤§/阿ċ°”äĵŻèċŠ ĉ‹żċ¤§/不ċˆ—颠ċ“äĵĤĉŻ”äşšċŠ ĉ‹żċ¤§/éİĴċ°ĵĉ‰˜ċ·´ċŠ ĉ‹żċ¤§/ĉ–°ä¸äĵĤ瑞ċ…‹ċŠ ĉ‹żċ¤§/çş½èŠĴċ…°ċ’Œĉ‹‰ċ¸ƒĉ‹‰ċ¤šċŠ ĉ‹żċ¤§/èżċŒ—ċœ°ċŒşċŠ ĉ‹żċ¤§/ĉ–°ĉ–Żç§‘舍ċŠ ĉ‹żċ¤§/ċ‰ċ¤§ç•ċŠ ĉ‹żċ¤§/çˆħċ·ċŽçŽ‹ċ­ċ²›ċŠ ĉ‹żċ¤§/魁ċŒ—ċ…‹ċŠ ĉ‹żċ¤§/萨ĉ–Żċ–€ċ½ğĉ¸İċŠ ĉ‹żċ¤§/育çİşċ ŞċŸıĉ‹‰ĉ—ĉ— ĉ³•ĉ­£çĦèĦç— %d 的阴阳ċކĉ—ĉœŸĉ— ĉ³•ĉ‰§èĦŒĉ–‡äğĥ“%s”中的ċ‘½äğ¤ çĴĴ %ld èĦŒïĵš%s佛ċ—è§’ċŠ ċ‹’ĉŻ”ċ…ħċŒä½“ĉ—ç‹‚ĉĴ˘èŠ‚ċĦèżçħ³ċ°”·ĉ™ĉ‹‰ĉ–ŻċŸşçşŞċżµĉ—ċĦè›ċŠ ĉ—ċ‡Żç‘Ÿç³ċ†œċħ•äĵšċĦċ´èŠ‚ċĵ€ĉ›ĵç¤ċ²›Cel中非ċ…ħċ’Œċ›½ #ċĦžè¨ċ°”·ĉŸéŸĤĉ–Żĉ—äıċ—ċ­—çĴĤĉ›żĉ˘ïĵšċŞçĞ ĉ—è°/é™Chi蒋äğ‹çŸ³èŻžè°ċ„żçĞ节白色ċ„żçĞ节ĉ™şċˆİ中ċ›½ċ†œċކĉ–°ċı´é™¤ċ¤•丑/牛Chrè€ĥ稣ċ‡ċ¤İĉ—ċœ£èŻžèŠ‚ċı³ċ‰ċ¤œċœ£èŻžç¤ċ²›èŠèŠħ节ċ…Ĵĉ°‘ĉ—ċ…Ĵĉ°‘节科科ĉ–Żç¤ċ²›ïĵˆċŸşĉž—ïĵ‰ċ“äĵĤĉŻ”äşšç§‘ç½—ĉ‹‰ċ¤šĉ—ċ“äĵĤċ¸ƒçşŞċżµĉ—ĉˆäşşèŠ‚ċ‘½äğ¤ċ·²ĉ‰§èĦŒïĵˆé€€ċ‡şçŠĥĉ€ç =%dïĵ‰äşŽĉ–‡äğĥ“%s” çĴĴ %ld èĦŒïĵš%s联é‚Ĥĉ—ç§‘ĉ‘İ罗äğ %s%s çĵ–èŻ‘ä¸ş %s%s%s%sċŒç›Ÿċèĉ—ċ­”ċ­èŻžè°ċŞĉ³•纪ċżµĉ—ċş“ċ…‹ç¤ċ²›ç§‘ĉ™ç‰ıċ…ƒĉ—ĤċŠ ċ†•ĉ—ċ‡èˆŞċ‘˜èŠ‚ċ“ĉ–ŻèéğŽċŠ ċ·²ċˆ›ċğşċ…‹ç½—ċœ°äşšċ—éšċċ­—ĉžĥĉŠĴä¸ĉ—ċ¤ċ·´ċ¤šċ…ƒĉ–‡ċŒ–ĉ—ĉŻèµ›ĉ—酋长ĉ—è½ċĦžĉµĤè·Żĉ–Żĉ·ċ…‹ċ…ħċ’Œċ›½ç§‘ç‰ıèżŞç“Ĥĉ—èċ°”ĉ–‡ċ†œċħ•äĵšĉ—ĉ—ĉœŸĉ ĵċĵïĵš%s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]中秋节ċŽä¸€ċ¤İĉ¸…ĉ˜ŽèŠ‚ċ‰ä¸€ċ¤İċ‰èċ˘èżäşšĉ—ċŠ ĉ³°ç½—ċ°ĵ亚ĉ—ĉ·ċ…‹ċğşċ›½ĉ—ċŠ ċˆİèżäşšĉ—ċ•†èމĉ—ç·ċ‘Šċżĉ‚”ĉ—ċ’Œè§£ĉ—ċ­Ĥ生起äı‰çşŞċżµĉ—盟çşĤĉ—老ĉŒè‡Şç”ħċ…‹é‡Œĉ–Żċ¤šċ¤Ğ逝世ĉ—ċ·è¨ĉž—逝世ĉ—é˜żċœĉœĉ‹‰ĉ€ğçğŸé€ä¸–ĉ—è°˘èµĞĉ€ğçğŸé€ä¸–ĉ—ċ˘çğ´ĉœċ°”逝世ĉ—ċäşŒĉœˆċäşŒĉœˆċ·´ċ­›ċ£è¨€ç–ċ›½äżċĞ者ĉ—ĉœé²œäşşĉ°‘ĉ°‘ä¸ğċ…ħċ’Œċ›½ċˆšĉžœĉ°‘ä¸ğċ…ħċ’Œċ›½ #ä¸ıéşĤĉ•™ċ¸ˆèŠ‚çˆĥäş²èŠ‚ċ¤§ċ‘现纪ċżµĉ—ċ‰ċ¸ƒĉċ¤šçħ³ċ°ĵċŠ ċ¤šçħ³ċ°ĵċŠ ċ…ħċ’Œċ›½é‡é˜³èŠ‚ċ·ĉ ĵĉ”żĉƒċ€’ċ°ĉ—ċ­™ä¸­ċħħèŻžè°çĞŻċˆèŠ‚ĉ—ħċ­£ċş†ċ…¸ĉœé˜żċ°”ç‰ıèŻžè°éœĉ–Żĉ‰˜äğ€èŻžè°EGOċ¤ĉ´ğ节ċ‘¨ä¸€ċ¤ĉ´ğ节ċ‘¨ĉ—ċ¤ĉ´ğ节ċ‘¨äşŒçğĉµŽè§£ĉ”ĉ—ċŽ„ç“œċ¤šċ°”ċŸƒċŠċгċŠ¨èŠ‚ċŸƒċ› éœĉ¸İè§£ĉ”ĉ—萨ċ°”ç“Ĥċ¤šé€‰ä¸ĉ—ċ›½ĉ°‘èäĵšé€‰ä¸ĉ—èŻ·ċ°†è½Żäğĥçĵşé™·ĉŠċ‘Šè‡³ <%s>ċ¤İçš‡èŻžè°éИäşċşċˆ—/ĉ ‡è°ċ­—çĴĤ的çğ“ĉŸä½ç½ä¸‰çŽ‹èŠ‚èµ¤é“ċ‡ ċ†…äşšĉ˜ċˆ†ċŽ„çĞ‹ç‰ı里亚ċŸƒç½—ċ°”·ċ·´ç½—ĉ—çˆħĉ²™ċ°ĵ亚ċ†…部节ċ‡ĉ—ċˆ—èĦ¨ċŸƒċĦžäż„ĉŻ”äşšċŸƒċĦžäż„ĉŻ”äşšċ…ƒĉ—Ĥè‹ħċ†›ĉ’¤é€€çşŞċżµĉ—ä¸ğĉ˜èŠ‚ċ‰ċ¤œISS çĴĴ 33 ĉ‰ıċ¸¸éİğäşşċ‘˜ċ‡şċ‘ç²ċ†œçğ„çğ‡ĉ—ĉ ĵċĵçğ„ïĵˆċż…éĦğċŞċšäı‰ä¸€ä¸Şĉˆċ‘˜ïĵ‰ïĵšFRRçĤċ…‹ċ…°ç¤ċ²›ïĵˆéİĴċ°”çğ´çş³ĉ–Żç¤ċ²›ïĵ‰ċĥċş­ĉ—ċ†œĉ°‘节ĉ³•ç½—ç¤ċ²›ĉ‹‰ç“Ĥċ°”çžçˆĥĉ—çˆĥäş²èŠ‚ċŸşç£ċœ£ä½“节çĤä¸´ċ–„ċżƒäşşĉ—è€ĥ稣ċœ£ċżƒèŠ‚ċœ£ĉŻèŠ‚äşŒĉœˆäşŒĉœˆċ݆ċ…‹ç½—ċ°ĵèżäşšè”é‚Ĥċ…ƒċµèŠ‚ä¸–çşŞçĞèŠ‚è‡ŞċЍè½Ĵĉ˘ċ­—ĉµċ†…ċı为éĤ–ċ­—ĉŻċ¤§ċ†™è‡ŞċЍè½Ĵĉ˘ċ­—ĉµċ†…ċı为ċ°ċ†™ċ­—çĴĤè‡ŞċЍè½Ĵĉ˘ċ­—ĉµċ†…ċı为ċ¤§ċ†™ċ­—çĴĤĉˆŞĉ–­ċ­—ĉµċ†…ċı中èĥ…ċ‡şĉŒ‡ċšċ½ċşĤ的部ċˆ†ä¸ĉˆŞĉ–­ċ­—ĉµċ†…ċı中èĥ…ċ‡şĉŒ‡ċšċ½ċşĤ的部ċˆ†ċœ¨ĉŒ‡ċšċ½ċşĤċ†…äğċ·ĤċŻı齐ĉ–ıċĵĉ˜ç¤şċ­—ĉµċ†…ċıċœ¨ĉŒ‡ċšċ½ċşĤċ†…äğċ³ċŻı齐ĉ–ıċĵĉ˜ç¤şċ­—ĉµċ†…ċıċœ¨ĉŒ‡ċšċ½ċşĤċ†…äğċħ…中ċŻı齐ĉ–ıċĵĉ˜ç¤şċ­—ĉµċ†…ċıċ­—ĉµçš„ċ½ċşĤïĵˆ%d..%dïĵ‰ĉ–ĉµŽ #èŠĴċ…°ĉ¸”ċ¤Ğ节ĉŒ‡ċšĉ—ĉœŸċˆ—èĦ¨ïĵšċ›½ĉ——纪ċżµĉ—ä½›ċ…°èŠ’èŻ­ĉ–‡ċŒ–ĉ—ċ‰ċ—ĉ–Żĉ‹‰ċ¤ĞéİĴċ…ĥéĦżċ…ħċ’Œċ›½NPLA ĉˆçĞ‹çşŞċżµĉ—äşşĉ°‘ċ…šċğşċ…šèŠ‚ċğşċ…šèŠ‚ċ‘¨äş”ĉ³•ċ›½ĉ³•ċ›½ĉ–‡ċŒ–节ĉ³•ċħžċœ­äşšé‚£ĉ³•ċħžĉ³˘ċˆİċ°ĵèżäşšĉ³•ċ›½éİċ‘½çşŞċżµĉ—ċ‘¨äş”ĉ˜ŸĉœŸäş”ċ‘¨äş”ċ‹è°Šĉ—ĉğĦĉœˆGNU gcal ä¸ğéĦµïĵš<%s>ċŠ è“Ĵ #ċ†ˆĉŻ”äşšċŠ é‡ŒċŻŒçş³ĉ—ċœ£éİĴ丁ċ°†ċ†›ċ‘¨ċı´çşŞċżµĉ—GNU è½Żäğĥ的通用ċ¸ċŠİïĵš<%s>ĉ ĵ鲁ċ‰äşšċ·ċ›½çğŸä¸€ĉ—ċ·ċ›½ċ·ċ›½/ċ·´ç™ğ - çĴĤè…ċ Ħċ·ċ›½/ċ·´äĵċˆİ亚ċ·ċ›½/ĉŸĉž—ċ·ċ›½/ċ‹ƒċ…°ç™ğċ Ħċ·ċ›½/不ĉĉ˘…ċ·ċ›½/ĉħ‰ċ Ħċ·ċ›½/éğ‘ĉ£ċ·ċ›½/下萨ċ…‹ĉ£ċ·ċ›½/ĉ˘…ċ…‹äĵĤċ Ħ - èżĉ³˘èŽĞċ°ĵ亚ċ·ċ›½/ċŒ—èŽħ茵 - ċ¨ĉ–Żç‰ıĉ³•äĵĤċ·ċ›½/èŽħ茵ċ…°ĉ™ĉ³•ċ°”茨ċ·ċ›½/萨ċ°”ċ·ċ›½/萨ċ…‹ĉ£ċ·ċ›½/萨ċ…‹ĉ£ - ċ‰ċ“ˆċ°”ç‰ıċ·ċ›½/石ċ‹’苏益ĉ ĵ - 荷ċ°”ĉ–Żĉ³°ċ› ċ·ċ›½/ċ›ĉž—ĉ ıç›–èżŞċ°”节ċŠ çş³ç›´ċ¸ƒç½—陀è€ĥ稣ċ—éšĉ—ċ¤ĉ´ğ节ċ‰ċ¤œçĤéŸ³ĉ—ç–çˆĥĉŻèŠ‚è‹ħċ›½è‹ħċ›½/è‹ħĉ ĵċ…°ċ’Œċ¨ċ°”ċ£Ğè‹ħċ›½/ċŒ—çˆħċ°”ċ…°è‹ħċ›½/苏ĉ ĵċ…°ċ¸Œè…Šçğżäı‹ĉ—ĉ ĵĉž—ċ…°ĉ ĵĉž—çş³èĉ‰‡è´çŸ³çޟ节ċœŸĉ‹¨éĵ èŠ‚ç“œçş³ċĦĉ–Żç‰ıĉ—瓜èċ˘ä½İċœ£ĉŻç“œċ·ç½—ĉ™ċ…³ċ²›ċħċœ°éİĴĉ‹‰ċ‡ ċ†…äşšċ‡ ċ†…äşšĉŻ”çğ #ċ¤ĉ–ŻċĦ”ċ¤ĞÂ·é˜żé“ċ¤Ğĉ—ċœ­äşšé‚£ #äş/猪ĉµ·ċœ°ä¸‡ċœ£èŠ‚çŻèŠ‚ä½“è‚²èŠ‚èµĞċ·ċ’ŒéşĤċ…‹ċ”çş³ç¤ċ²›Hİbĉ–‡ċŒ–äĵ çğŸèŠ‚è‹ħ雄纪ċżµĉ—éИ两çğ„ïĵˆċż…éĦğċšäı‰ĉ‰€ĉœ‰ĉˆċ‘˜ïĵ‰ïĵšèƒĦċż—ĉ˜ŽèŻžè°è·äĵŻç‰ıċ†œċħ•äĵšċœ£ċݴ节ċ¤ĉ´ğä¸ğĉ—ċœ£ċ‘¨ċ‘¨ä¸‰ĉ´Şéƒ½ĉ‹‰ĉ–ŻéĤ™ĉ¸Żäşşĉƒĉ—ċŒˆç‰™ċˆİè§£ĉ”ĉ—飓风çˆç·ĉ—飓风ĉ„Ÿĉİ节ċ†°ċ²›ċĤ‚ĉžœä½ ä½żç”¨ĉœĴè½ŻäğĥïĵŒä½ ċŒĉ„ĉ— ä¸€ä‹ċ¤–ċœ°éµċˆèŻç­ċ¸ĉ—ċœ£ċ¸ƒé‡Œċ‰ċ·èŠ‚ç‹ĴçĞ‹ĉ—ç‹ĴçĞ‹èżċŠ¨çşŞċżµĉ—ç‹ĴçĞ‹ċ£è¨€çşŞċżµĉ—ċĦċĦ”èµĞçş³ç‹ĴçĞ‹ĉ—ĉ˜†ċĦç‹ĴçĞ‹ĉ—ç“œäşšċŸşċ°”ç‹ĴçĞ‹ĉ—ċŸşċ¤šç‹ĴçĞ‹ĉ—ċ°ċşĤ #ċ°ċşĤäşşċˆ°èĉ—ċ°ċşĤċ…ƒĉ—Ĥċ°ċşĤċ°ĵèżäşš #ċ†…部ċ†…éƒ¨è‡Şĉ²ğĉ—ĉŒ‡ċšäş†ĉ— ĉ•ˆçš„ċ‘½äğ¤èĦŒċ‚ĉ•° -- %sċċ‘ċĵ•用ĉ— ĉ•ˆċ­—çĴĤçħğċž‹ċĉ— ĉ•ˆċ½’çħğċ­—çĴĤĉ— ĉ•ˆ\{\} ċ†…ċıĉ— ĉ•ˆċ‰ç½ĉ­£ċˆ™èĦ¨èċĵĉ— ĉ•ˆèŒƒċ›´ä¸Šç•Œĉ— ĉ•ˆĉ­£ċˆ™èĦ¨èċĵĉ— ĉ•ˆäĵŠĉ‹‰ċ…‹çˆħċ°”ċ…°IsläĵŠĉ–Żċ…°ċ…ƒĉ—ĤäĵŠĉœ—äĵŠĉ–Żċ…°ċ…ħċ’Œċ›½äğ色ċˆ—ĉ„ċ¤§ċˆİJ. ċ·´ċšè¨èŻžè°é½ĉċ¸ƒéŸĤĉ—J. èż­ĉˆˆèŻžè°J. 罗äĵŻç‰ıèŻžè°ç‰™äı°ċР䏀ĉœˆä¸€ĉœˆJapĉ—ĉœĴĉ—ĉœĴċ…ƒĉ—Ĥĉ—ĉœĴ除ċ¤•ĉ°ċĵ—逊·ĉˆ´çğ´ĉ–ŻèŻžè°è€ĥ稣ċ‰²ç¤ĵĉ—çşĤĉ—Ĥ七ĉœˆä¸ƒĉœˆċ…­ĉœˆċ…­ĉœˆċ…­ĉœˆċ‡ĉœŸċĦ蒂ċĤ节ċ“ˆè¨ċ…‹ĉ–ŻċĤè‚Żċ°ĵ亚 #ċŸşè…ĉ—金ĉ—ĉˆèŻžè°é‡‘ĉ­£ĉ—èŻžè°ċĦçħ³ċ“ˆçħ³ċ“ˆĉ—ĉ‹‰çŽ›äşŒä¸–çşŞċżµĉ—ĉ‹‰çŽ›äş”ä¸–çşŞċżµĉ—ċŸşé‡Œċ·´ĉ–Ż #ċ°‘ċı´ċ°„ċ‡ğ节科ċ¨ç‰ıċ½ĉ‰ŽèŠ‚ċ‰ċ°”ċ‰ĉ–Żĉ–ŻċĤ里çğ´ĉ‹‰èŻžè°ċгċŠ¨èŠ‚ċ‹¤ċгĉ„Ÿè°˘ĉ—篝çĞ节老ċ­èŻžè°è€ĉŒäşşĉ°‘ĉ°‘ä¸ğċ…ħċ’Œċ›½ïĵƒĉ‹‰ĉ™ċ›½ċĥĉ³•ċšèŠ‚ċ‡ĉ—ĉ‹‰è„ħçğ´äşšĉœ—ċĦžĉ–ŻéĦżĉŻĉ—é—°ĉ—èċšä¸şâ€œ%02d-%s”于ĉ–‡äğĥ“%s”€‚éğŽċ·´ċĞİèŽħç´˘ĉ‰˜è§£ĉ”ĉ—ċˆİĉŻ”é‡Œäşšè‡Şç”ħĉ—é˜żĉ‹‰äĵŻċˆİĉŻ”äşšĉ°‘äĵ—ċ›½ïĵˆċˆİĉŻ”äşšïĵ‰ċˆ—ĉ”Żĉ•Ĥċ£Ğç™ğċż½ç•çĴĴ %ld èĦŒïĵš%sçĴĴ %ld èĦŒïĵš%sçĞ‹é™ĥċ›ċœ£ċ¸ƒé‡Œċ‰ċ·èŠ‚ĉœˆé£Ÿċ˘ĉ£ċ Ħċ˘ĉ£ċ Ħċ¸‚ċş™äĵš ĉž—ç™ğ·çşĤ翰逊ĉ—ĉœˆé€‚销ĉ€§ĉˆ–ċ…·ĉœ‰ç‰ıċšç”¨é€”€‚ĉ³é—¨éİĴèċŠ ĉ–ŻċŠ  #è‚Żċ°ĵäşšè‡Şĉ²ğĉ—ċœ£é›„甘ċœ°èŻžè°ċ‘è‡Ş \%s” (%02d-%s-%04d %02d%s%02d%s%02déİĴĉ‹‰çğ´éİĴĉèżäşš #éİĴċ°”äğ£ċ¤ĞéİĴ里éİĴ耳äğ–éİĴċ°”çğ´çş³ĉ–Żĉ—éİĴċ°ĵĉ‹‰ĉ—ċŻ/ċ…”éİĴĉ™ĉ‰˜ċ¸‚ĉ—三ĉœˆä¸‰ĉœˆéİĴ里ċ‰Â·ĉİċ¤ç“ĤĉŻ”ĉ—ĉµ·ĉ´‹èŠ‚éİĴçğċ°”ç¤ċ²›éİĴä¸Â·è·Żċ·é‡‘ĉ—ċœ£éİĴ丁节éİĴĉċ°ĵċ…‹ċ·´ċ­›ĉ‰éšĉ—烈ċ£Ğ节ċœ£ĉŻé˘†ĉŠèŠ‚ċœ£ĉŻċ‡ċ¤İĉ—ċœ£ĉŻċœ£çƒ›èŠ‚ċœ£ĉŻĉ— ċŽŸç½Şĉ—ċœ£ĉŻç”Ÿäş§ĉ—ċœ£ĉŻċ‘½ċĉ—ċœ£ĉŻèŻžè°ċœ£ĉŻç‰şç‰²ĉ—ċœ£ĉŻĉ˜ċœ£ĉ—éİĴ里ċ…°ĉ—ĉżŻèĥ³èŠ‚ĉŻ›é‡ŒċĦ”ċ°ĵ亚ĉŻ›é‡Œĉħ‚ĉ–Żäş”ĉœˆäş”ĉœˆċгċŠ¨èŠ‚éİĴ耳äğ–ċ˘¨ċ°”ĉœĴĉŻèµ›éİĴ节ċ†…ċ­˜è€—ċ°½ċ•†äşşèŠ‚ ċ˘¨èżċ“中秋节äĵ ĉ•™èŠ‚ċ‘¨ä¸€ċ‘¨ä¸€ĉ‘İçş³ċ“ĉ˜ŸĉœŸä¸€ċ‘¨ä¸€ċ‘¨ä¸€è‡³ċ‘¨äş”ċ‘¨ä¸€è‡³ċ‘¨ċ››è’™ċ¤ #ĉœˆäğ½çğ„ïĵˆċż…éĦğċŞċšäı‰ä¸€ä¸Şĉˆċ‘˜ïĵ‰è’™ç‰ıċĦžĉ‹‰ç‰ıèŽĞĉ‹‰ĉĦ‘ĉ—ĉ‘İĉ´›ċ“ċ݆ċ݆节ĉŻäş²èŠ‚ĉŻäş²ä¸ŽçŽé˘œĉ—èŽĞĉĦ‘ĉŻ”ċ…‹çĵ…甸 #çş³çħ³ĉŻ”äşšċ‘½ċĉ—ċ…¨ċ›½é˘ċŒ…ĉ—ċğşċ›½çşŞċżµĉ—ċ›½ċĥè‹ħ雄ĉ—ĉ³•ċšċ‡ĉ—ċ…¨ċ›½ċ“€ĉ‚ĵĉ—ĉ•‘ċ›½ĉ—ċ…¨ċ›½ĉеĉŠ—ĉ—ĉ°‘ĉ—ċ¤ċ…´ĉ—ċ›½ċĥċ›˘çğ“ĉ—瑙鲁ĉİèèè€ĥĉ—ċ°ĵĉ³Šċ°” #荷ċ…°è·ċħžċ‰çš„ċˆ—ĉ–Ż/ċšċ†…ċ°”荷ċħžċ‰çš„ċˆ—ĉ–Ż/ċş“ĉ‹‰ç´˘è·ċħžċ‰çš„ċˆ—ĉ–Ż/萨ċ·´ċ²›ċ’Œĉ–ŻċĦ”è’‚äşšè·ċħžċ‰çš„ċˆ—ĉ–Ż/ċœ£éİĴ丁中çĞ‹ĉ—ċ†…ċŽèĉ—ĉ–°ċ–€é‡Œċ¤šċ°ĵ亚ĉ–°ĉœˆĉ–°ĉ”żĉƒċ‘¨ċı´çşŞċżµĉ— ċ…ƒĉ—Ĥĉ–°èżċ…°ċ°ĵċŠ ĉ‹‰ç“œċ°ĵĉ—ċ°”ċ°ĵĉ—ċˆİäşšçş½ċŸƒĉ— ċŒı配ċ‰é˘ĉ²Ħĉœ‰ĉ­£ċˆ™èĦ¨èċĵ èŻşè´ċ°”ĉ— ċŒ—éİĴé‡Œäşšçş³ç¤ċ²›ïĵˆċĦžç­ïĵ‰èŻşċċ…ı节/ĉ³˘ĉ–Żĉ–°ċı´ĉŒŞċ¨ċä¸€ĉœˆċä¸€ĉœˆé›ĥ位ïĵˆç”¨äşŽĉ•°ċ€ĵ的ċ‰ċŻĵé›ĥïĵ‰ç”¨äşŽĉ•°ċ€ĵ的ċşĉ•°èŻċŽçĵ€ç”¨äşŽĉ•°ċ€ĵ的ċ‰ċŻĵçĴĤċ·ĉФċ£Ğ节非çğŸçğ„çğ‡ĉ—选éĦıċĉœˆċĉœˆċĉœˆċ‡ĉœŸ 石ĉ²ıċ·ä¸šĉ—äşšçŽċ°ĵ亚ĉ—§ċކĉ–°ċı´ċŸƒċŠĉ—§ċކĉ–°ċı´é˜żĉ›ĵċŽŸċˆ™ä¸Šĉˆ‘不äĵšċŻıäğğ何ċ› ä½żç”¨ĉˆ–ĉ“ä½œĉœĴè½Żäğĥ而ċ¸Ĥĉçš„ĉŸċ³ĉˆ–ĉŸċ¤ħĉ‰żĉ‹…东ĉ­£ĉ•™ċ…ƒĉ—Ĥċœ£ĉŻĉ˜çµĉ—é˜żċ°”ċĦ”ĉ ĵĉ‹‰èżäşšċœ£ĉŻĉ—ċĦ玛琳ċœ£ĉŻĉ—ĉ‹‰ĉ–Żĉ˘…ċĦžċ·ĉ–Żċœ£ĉŻĉ—ĉ´›ĉ‰çŸĥċœ£ĉŻĉ—ċœ£ĉŻä¸ƒè‹Ĥĉ—çğ´ċ¤šċˆİ亚ċœ£ĉŻĉ—OxNOxOċ·´ċŸşĉ–ŻċĤċ¸•ċгĉ£•ĉžä¸ğĉ—ċ·´ĉ‹żéİĴċ·´ĉ‹żéİĴċ¸‚ĉ—ĉ³›çŽĉ—ċ·´ċ¸ƒäşšĉ–°ċ‡ ċ†…äşšċ·´ĉ‹‰ċœ­ċĥ长ĉ—ċ·´éğŽċ’Œċı³ċċšçşŞċżµĉ—ċé£Ÿè€ĥ稣ċ—éšĉ—çˆħċ›½è€…ĉ—ċ’Œċı³èŠ‚ĉĦƒèŠ‚ċŠċ½ħäşşĉ°‘ċŠ›é‡èŠ‚äşşĉ°‘èµ·äı‰ĉ—Perç™ċˆ†ċ·ïĵˆâ€œ%c”ïĵ‰ċ­—çĴĤ秘鲁é€èĥŠèŠ‚è²çŽċ‹è°Šĉ—菲ċ‹ċçšé’ĤĉŸĉ—野餐ĉ— ċĵ€ĉ‹“节çšç‰ıċ‡Żĉİĉ³˘ċ…°è‘Ħ萄牙ĉğĦĉœˆèŠ‚ çˆç·ĉ—预ċ…ˆäğŽĉŒ‡ċšĉ–‡äğĥ中ċŠ è½½é€‰éĦıċ’Œċ‘½äğ¤ĉ­£ċˆ™èĦ¨èċĵéžĉ­£ċ¸¸çğ“ĉŸĉž—è‚Żĉ€ğçğŸèŻžè°ĉ€ğçğŸċ°ħ职ċ…¸ç¤ĵĉ€ğçğŸĉ—ċĦĉ‹‰ċ°ĵé˜żé‚£ĉĴ§é‡ŒçŽ‹ċ­ĉ—ċ¨ċ°”ĉ–Żäş²çŽ‹èŻžè°ċ…Ĵä¸ğ节ċ£è¨€ĉ—ĉ³˘ċ¤šéğŽċ„ĉ™ĉ´ħ节ċĦċĦ”ċ°”è€ĥè·Żĉ’’ċ†·ĉ—ċ››ĉ—Ĵĉ–‹ċ‘¨ĉ—ĉ–‹ĉœˆċ¨ħäıĉ—ċ…ĴĉŠ•ĉ—ċ—ĉ•™ĉ”ıéİĉ—èµ›èˆı节ĉ­£ċˆ™èĦ¨èċĵċ¤Şé•żçşŞċżµĉ—ċ…ħċ’Œċ›½ĉ—ċˆšĉžœċ…ħċ’Œċ›½ #éŸİċ›½ĉ‘İċ°”ċ¤šç“Ĥċ…ħċ’Œċ›½ĉ•Ĵ老ĉ—ċ›ä¸ğċ¤èŸĉ—ċ›žċ½’ĉ—çğŸä¸€ĉ—éİċ‘½çşŞċżµĉ—里çşĤ热ċ†…ċ˘ċ‘¨ċı´çşŞċżµĉ—éğŽċˆıĉ—çˆç·ċ‘¨ĉ—ç½—éİĴċ°ĵ亚çŠıċ¤Şĉ–°ċı´äż„ç½—ĉ–Żé²ç“ĤċŠ ç´˘ċ°”ĉ—ċ˘ĉ—şè留ċ°ĵĉħŞċ¤šäèŻžè°éĤ™ĉ¸Żç‰ıċˆĞèĦŒĉ”żċŒşĉˆçĞ‹çşŞċżµĉ—ĉ ‡ċż—ïĵˆċŻé€‰ïĵ‰ïĵšĉ ·ċĵçğ„ïĵˆċż…éĦğċŞċšäı‰ä¸€ä¸Şĉˆċ‘˜ïĵ‰ïĵšċŽçĵ€ïĵˆċŻé€‰ïĵ‰ïĵšċ‘¨ċ…­è¨ċ·´èŠ‚ċœ£çšċŸƒċ°”ċ’Œċ݆ċ…‹éš†è¨ĉ¸İ节/ċ‡Żċ°”ç‰ıċ…ƒĉ—Ĥ萨ĉ‘İè€ĥċœ£ċ“ˆè›ĉ‰˜ĉ—ċœ£ä½•ċĦžĉ—ċœ£éİĴċŠ›èŻşċœ£äżç½—ċ‘¨ċı´çşŞċżµĉ—ċœ£ċ¤šçŽċ’Œĉ™ĉž—èżĉŻ”ĉœ­ċıŒċ†°é›ŞèŠ‚ċ‘¨ċ…­ĉ˜ŸĉœŸċ…­ċ‘¨ċ…­ĉ²™ç‰ı阿ĉ‹‰äĵŻċ­Ĥĉ Ħċ‡ĉœŸèħ†èŠ‚è‹éğŽä¸–ċ…­é¸£èŠ‚ċĦžċ†…ċŠ ċ°”äıĉœˆç‹ĴçĞ‹ĉ—äıĉœˆä¸ƒĉ—Ĵĉ–‹ċ‘¨ĉ—ċĦžċ°”çğ´äşšċ’Œéğ‘ċħħċĦžé›·èŒ¨Â·ċĦéİĴĉ—ç§ğĉ°‘ĉ—七çĦäğ™èŠ‚èżĉ²ƒċ·ĉ—ċ››ĉ—Ĵĉ–‹ċ‘¨ĉ—ċĦžèˆŒċ°”ç™ğ霄äı‹ċ¤œĉ²™ċ¸Œċ·ĉ—äş”ĉ—Ĵ节çŠèŠ‚ĉ‰Žè€ĥċ·ċ‡ċ¤İĉ—申/猴ċżĉ‚”ċ‘¨äşŒĉ™çèŠ‚ċ·³/蛇ċĦžĉ‹‰ċˆİĉ˜‚èżèµĞĉ‰˜ĉ‹‰èŠ‚èżè’™Â·çŽğċˆİç“Ĥċ°”ĉ—èżċˆè§£ĉ”ĉ—ĉ–°ċŠ ċĦ #ċ´éšĥè§£ĉ”ĉ—ĉ–Żĉ´›äĵċ…‹ĉ–Żĉ´›ĉ–‡ċ°ĵäşšèżŽĉ˜ĉ—ĉ—食ċ›˘çğ“ĉ—ĉ‰€ç½—é—¨ç¤ċ²›ċ†Ĵè‡³ç´˘éİĴ里萨éğ˜ĉ–Żĉ—ç­çĥĉ—ċ—非ċ—äı”ĉ²ğ亚ċ²›ċ’Œċ—ĉĦ‘ċ¨ċ‡ç¤ċ²›çİşĉ ĵ/çİşç™½ïĵˆâ€œ%c”ïĵ‰ċ­—çĴĤèżç­ç‰™ĉ˜èŠ‚ĉ–Żé‡Œċ…°ċĦ ïĵƒċœ£é˜żċŠ ċĦ”ĉ—ċœ£ċ‰ċ·é²ĉ—ċœ£ċ·´ċĦžĉ´›çĵŞĉ—ċœ£ċ·èżˆĉ—ċœ£ċ…‹ċŠŞç‰ıĉ—ċœ£ċĦžèżèŽ‰äşšĉ—ċœ£ĉŸċ°”ĉ–Żĉ—ċœ£ċ¤§ċĞĉ—ċœ£ċ·çħ³ç‰ı里ĉ—ċœ£ċ·ċ¨ç‰ıĉ—ċœ£çˆħċ·ċŽĉ—ċœ£äğċˆİ雅ĉ—ċœ£äı”ĉ²ğĉ—ċœ£èµĞċ‹’ĉ‹żċ²›ċœ£èİıċ§†ĉ–Żĉ—ċœ£èİ·ċ·´è’‚ĉ–Żç‰ıĉ—äğ²ċ¤èŠ‚äğ²ċ¤äı‹ċ¤œċœ£è‹ç‘Ÿĉ—ċœ£ċŸşèŒ¨ċ’Œċ°ĵçğ´ĉ–Żċœ£ĉ´›äĵĤ佐ĉ—ċœ£ċ˘èżäşšċœ£ċ˘èżäşšĉ—ċœ£çŽ›ĉ ĵ丽ç‰ıĉ—ċœ£éİĴé™ĉ—ċœ£èżˆċ…‹ċ°”ĉ—ċœ£ċ°ĵċ¤ĉ‹‰ĉ–Żĉ—ċœ£ċ°ĵċ¤ĉ‹‰ĉ–Żĉ—ċ‰ċ¤œċœ£ċĉ‹‰ċ¤Ğĉ—ċœ£ċĉ‹‰ċ¤Ğĉ—ċ‰ċ¤œċœ£ċ¸•ç‰ı里ċ…‹ĉ—ċœ£äżç½—ĉµ·éšçşŞċżµĉ—ċœ£ċ½ĵċ—ċ’Œċœ£äżç½—ĉ—ċˆİéİĴ·罗ĉ–Żĉ—ċœ£ċ²è’‚èŠĴĉ—ċœ£ċŽ„äĵ‘ĉ‹‰ĉ—ċœ£ç“ĤäĵĤ丁节ïĵˆĉƒ…äşşèŠ‚ïĵ‰ċœ£ĉ–‡ĉ£ç‰ıċ’Œĉ ĵĉž—çş³ä¸ĉ–Żċœ£ĉ–‡ĉ£ç‰ıċ·äżç½—ĉ—ĉ ‡ċ‡†ä¸ƒċ¤•ċı³ĉœˆçĴĴ一ċ¤İéИäşċşċˆ—/ĉ ‡è°ċ­—çĴĤ的起ċ§‹ä½ç½é—°ĉœˆçĴĴ一ċ¤İĉ–ŻċĦ”è’‚äşš-çŽċ›½ĉ—ċ­Ĥ生节ċ‘¨ĉ—ĉˆċŠŸè‹ä¸ı苏äĵŠċ£Ğ胜ċˆİĉ—住ĉ£šèŠ‚è‹ä¸ıċĦċ¸ƒĉ–ŻèŻžè°ċ‘¨ĉ—ĉ˜ŸĉœŸĉ—逝者ċ‘¨ĉ—ċ‘¨ĉ—苏里ċ— #ĉ–Żç“Ĥċ°”ċ·´ç¤ċ²›ċ’Œĉ‰ĴéİĴċğĥċ²›ç´˘ċ·´ç‹‚ĉĴ˘èŠ‚ç‡•ċ­èŠ‚ĉ–Żċ¨ċ£Ğċ…°ç‘žċ…¸ç‘žċ…¸ĉ—甜蜜ĉ—瑞ċ£Ğ瑞ċ£Ğ/阿ċ°”éĞ˜ç‘žċ£Ğ/ċ¤–é˜żċ½­ç­–ċ°”瑞ċ£Ğ/ċ†…é˜żċ½­ç­–ċ°”瑞ċ£Ğ/ċ·´ċĦžċ°”äıĦĉ‘瑞ċ£Ğ/ċ·´ċĦžċ°”ċŸŽċ¸‚瑞ċ£Ğ/äĵŻċ°”ċ°ĵ瑞ċ£Ğ/ċĵ—里ċ Ħ瑞ċ£Ğ/ĉ—ċ†…ç“Ĥ瑞äżĦ/ĉ ĵĉ‹‰é²ĉ–Żç‘žäżĦ/ĉ ĵċгċç™ğ瑞ċ£Ğ/ĉħĉ‹‰ç‘žċ£Ğ/ċ˘ċĦžĉİ瑞ċ£Ğ/çş³ĉ²™ĉ³°ċ°”瑞ċ£Ğ/下ç“Ĥċ°”ç™ğ瑞ċ£Ğ/上ç“Ĥċ°”ç™ğ瑞ċ£Ğ/ĉ²™ċ¤ĞèħŞĉ£ç‘žċ£Ğ/ĉ–½çğ´èŒ¨ç‘žċ£Ğ/ç´˘ĉ´›ċ›ĉİ瑞ċ£Ğ/ċœ£ċŠ äğ‘瑞ċ£Ğ/ċ›ċ°”éĞ˜ç‘žċ£Ğ/ĉċ‘èŻşç‘žċ£Ğ/äıŒé‡Œç‘žċ£Ğ/ç“ĤèŽħ瑞ċ£Ğ/ĉ²ƒċ·žç‘žċ£Ğ/ç–ĉ ĵ瑞ċ£Ğ/苏éğŽä¸–除ċ¤•é˜żĉ‹‰äĵŻċ™ċˆİ亚ċ…ħċ’Œċ›½ïĵˆċ™ċˆİ亚ïĵ‰ċ°ĉıċĦ”ċ‰ċ…‹ĉ–ŻċĤċĤĉĦ‘ċ°ĵ亚ĉ•™ċ¸ˆèŠ‚ĉ³°èƒ½ç‰ıĉşŞċ†œċħ•äĵšĉ—领ċœŸĉ—ċ‘¨ċ››ĉ³°ċ›½ċ…ƒĉ—Ĥĉ³°ċ›½ #ĉ„Ÿĉİ节皇ċ¤Şċ­ç”Ÿĉ—ċ¤Şċ­ċĤƒç”Ÿĉ—ċ¤Şċ­ċĤƒċ‘½ċĉ—ċ›½çŽ‹èŻžè°ċ›½çŽ‹ċ‘½ċĉ—ċ³çŽ‹èŻžè°çš‡ċŽċ‘½ċĉ—不ĉä›äğğ何ĉ‹…保ïĵŒäıŸä¸äżè݁ĉœĴè½Żäğĥĉ˜Żè‡Şç”ħè½Żäğĥïĵ›èŻ·ċ‚考ĉşäğ£ç ä¸­ĉœ‰ċ…³çš„版ĉƒĉĦçşĤ€‚ĉœĴ程ċşä¸şè‡Şç”ħè½ŻäğĥïĵŒä½ ċŻäğċŻıċ…ĥèż›èĦŒċ†ċˆ†ċ‘ĉˆ–äżĉ”ıïĵŒĉœĴè½Żäğĥä¸äżèŻċŒċ¤‡€ĉ— é”™ĉˆ–ċŻç”¨ĉ€§€‚ċ‘¨ċ››ĉ˜ŸĉœŸċ››ċ‘¨ċ››è’‚ĉ‹‰ç™ğç‰ıĉ–Żĉ—ĉ–‹ĉˆ’ĉ—ċ¤šċ“ #ĉ‰˜ċ…‹ċгĉ¸…ĉ˜ŽèŠ‚ĉħ¤ċŠ ċ…¨é£Ÿé•‡ĉ°‘ċ¤§äĵšĉ—äĵ çğŸĉ—ċ°çĞŻçš„ċĉ–œĉ é˘†ċœŸç§ğ交ĉ—ċ˜èşĞĉ—ç‰ıçĞ‹ċ°ĵèċ’Œċ¤šċ·´ċ“ #ĉœé²é—¨ĉ—ċ°èŻ•ĉ‰“ċĵ€ïĵˆç­‰çş§ïĵš%02dïĵ‰ċŒ…ċĞĉ–‡äğĥ“%s”...%s%s%sċ°èŻ•ĉ‰“ċĵ€ %s 资ĉşĉ–‡äğĥ“%s”...%s%s%sċ°èŻ• %s ċ†™ċ…“%s”... %s%s%sċ‘¨äşŒĉ¤ĉ ‘节ċ‘¨äşŒĉ˜ŸĉœŸäşŒċ‘¨äşŒçށċ°ĵĉ–ŻċœŸè€³ċ…ĥċœŸċş“ĉ›ĵĉ–ŻċĤç‰ıċ…‹ĉ–Żċ’Œċ‡Żç§‘ĉ–Żç¤ċ²›ċ›ç“Ĥċ˘éİĴĉİċ²›ċ›½ċş†çŽċħžçğ´ċ°”äşĴç¤ċ²›çŽċ›½ĉœŞçŸäıŒċı²èäıŒċ…‹ċ…°ä¸‹ċˆ’çşżïĵˆâ€œ%c”ïĵ‰ċ­—çĴĤ联ċˆĉ—与瑞ċ…¸çš„联盟解ĉ•£é˜żĉ‹‰äĵŻè”ċˆé…‹é•żċ›½è”ċˆċ›½ĉ—çŽċ›½çŽċ›½/亚ĉ‹‰ċ·´éİĴçŽċ›½/阿ĉ‹‰ĉ–ŻċŠ çŽċ›½/亚ċˆİĉĦ‘é‚£çŽċ›½/é˜żè‚Żè‰²çŽċ›½/ċŠ ċˆİçĤċ°ĵ亚çŽċ›½/科罗ĉ‹‰ċ¤šçŽċ›½/ċş·ĉĥ…ç‹„ĉ ĵçŽċ›½/ç‰ıĉ‹‰ċŽçŽċ›½/ċ“äĵĤĉŻ”äşšç‰ıċŒşçŽċ›½/佛罗里èçŽċ›½/佐ĉ²ğ亚çŽċ›½/ċ¤ċ¨ċ¤·çŽċ›½/çˆħè荷ċ·žçŽċ›½/äĵŠċˆİèŻşĉ–ŻçŽċ›½/ċ°çĴĴċ‰çş³çŽċ›½/çˆħ荷ċŽçŽċ›½/ċ Şè¨ĉ–ŻçŽċ›½/è‚ŻċĦ”ċŸşçŽċ›½/è·Żĉ˜“ĉ–Żċ‰é‚£çŽċ›½/çĵ…ċ› çŽċ›½/éİĴ里ċ…°çŽċ›½/éİĴè¨èŻ¸ċĦžçŽċ›½/ċ݆ĉ­‡ĉ ıçŽċ›½/ĉ˜Žċ°ĵ苏èçŽċ›½/ċ݆èżèżĉŻ”çŽċ›½/ċŻ†è‹é‡ŒçŽċ›½/蒙ċ¤§ĉ‹żçŽċ›½/ċ†…ċ¸ƒĉ‹‰ĉ–ŻċŠ ċ·žçŽċ›½/ċ†…ċŽèċ·žçŽċ›½/ĉ–°ç½•ċ¸ƒäğ€ċ°”çŽċ›½/ĉ–°ĉ³½èżçŽċ›½/ĉ–°ċ˘¨èżċ“çŽċ›½/çş½çşĤçŽċ›½/ċŒ—ċĦ罗ĉçş³çŽċ›½/ċŒ—è科äğ–ċ·žçŽċ›½/俄äşäż„çŽċ›½/ċċ…‹ĉ‹‰è·éİĴçŽċ›½/ċċ°”è‰ŻçŽċ›½/ċċ¤•ĉ³•ċ°ĵ亚çŽċ›½/罗ċ—ċ²›çŽċ›½/ċ—ċĦ罗ĉçş³çŽċ›½/ċ—è科äğ–çŽċ›½/ç”°çş³èżçŽċ›½/ċ·ċ…‹è¨ĉ–ŻçŽċ›½/çŠıäğ–çŽċ›½/佛蒙ç‰ıçŽċ›½/ċĵ—ċ‰ċ°ĵ亚çŽċ›½/ċŽç››éĦżçŽċ›½/èżċĵ—ċ‰ċ°ĵ亚çŽċ›½/ċ¨ĉ–Żċş·è›çŽċ›½/ĉ€€äż„ĉ˜Žċ·ċŽ‚è”ĉĴ˘ĉ—ĉœŞçŸç³ğçğŸé”™èŻŻ( ĉˆ– \( 不配ċŻı) ĉˆ– \) 不配ċŻı\{ 不配ċŻıäıŒĉ‹‰ċœ­ç”¨ĉ³•ïĵš%s [--%s | --%s] | [--%s=[+|-]ĉ•°ċ€ĵ] [çĵ–ċ·...] 用ĉ³•ïĵš%s [--%s | --%s] | [资ĉşĉ–‡äğĥ | -] 用ĉ³•ïĵš %s [--%s | --%s] | [ĉ–‡ĉœĴĉ–‡äğĥ | -] [ĉ—ĉœŸ] 用ĉ³•ïĵš%s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]用ĉ³•ïĵš %s [[选éĦı...] [%cĉ—ĉœŸ] [%cĉ–‡äğĥ..]] [ċ‘½äğ¤]用ĉ³•ïĵš %s [[选éĦı...] [%cĉ–‡äğĥ...]] [ċ‘½äğ¤]ä½żç”¨ċ‘½ä𤠑 %s %s|[%s?]ä½żç”¨ĉŒ‡ċšĉ—ĉœŸïĵŒè€ŒéžäğŠċ¤İ的ĉ—ĉœŸäıŒċ…ıċˆĞċ…‹ĉ–ŻċĤĉ²ƒĉ™ċ°”ċ‰ĉ–Żäı‹ċ¤œç“ĤċŠŞé˜żċ›ċ§”ċ†…瑞ĉ‹‰ċ¨ċ°ĵĉ–Żç‹‚ĉĴ˘èЂ退äĵċ†›äşşèŠ‚çğ´ċ…‹ċ¤šÂ·èˆċ°”ĉ­‡ĉ—çğ´ċ¤šċˆİ亚ĉ—胜ċˆİĉ—ċœ£çğ´ç‰ıĉ—èĥŠċ—ċ‘¨ċĦ”ċ¸ƒĉ›ĵèŻžè°ċ½ċşĤïĵˆċż…éĦğċšäı‰ïĵ‰ïĵšç“Ĥċˆİĉ–Żċ’Œċ݌ċ›çş³ç¤ċ²›ä¸‹ċĵĤĉœˆä¸ŠċĵĤĉœˆċ‘¨ä¸‰ċ‘¨ä¸‰ĉ˜ŸĉœŸċ››ċ‘¨ä¸‰ċ‘¨çĴĴ %s ċ‘¨ĉœŞ/çŠèżċĵ—ċ‰ċ°ĵ亚ĉ—èżĉ’’ċ“ˆĉ‹‰ċœ£çµé™ä¸´èŠ‚ċœ£çµé™ä¸´èŠ‚ċ‰ċ¤œċœ£çµé™ä¸´èŠ‚ċĤ‡ċ³èŠ‚ċĤ‡ċ³ċżĉ‚”ĉ—世界ċЍç‰İĉ—ċˆ/éİĴĉˆŒ/狗ċı´é›…蒲节äıŸé—¨ċŻ…/虎ç‹ĴçĞ‹ĉ—ċ¤§ċħ ĉ€çşŞċżµĉ—äğ色ċˆ—阵äşĦċ°†ċ£Ğ纪ċżµĉ—èµŽç½Şĉ—è€ĥè·Żĉ’’ċ†·ĉ—ä½ ċş”ċ½“ċ·²çğéšç¨‹ċşĉ”ĥċˆ°â€œGNU 通用ċ…Ĵċ…ħè¸ċŻèŻâ€çš„ċ‰ŻĉœĴïĵ›é…‰/é¸Ħ青ċı´èŠ‚é›ĥ位ïĵˆċŻé€‰ïĵ‰ïĵšèµžĉŻ”äşšċ­/éĵ ĉ´ċ·´ċ¸ƒéŸĤZod[ċŻı齐 [çĴĤċ·] [é›ĥ位] ċ½ċşĤ [ĉ ·ċĵ] [ċŽçĵ€] ĉ ĵċĵ]_open_osfhandle ċ¤ħè´â€œ%s”çĴĴ %ld èĦŒïĵšïĵˆâ€œ%s”ïĵ‰â€œ%s%d”ċ¤ħè´â€œ%s”çĴĴ %ld èĦŒïĵšïĵˆâ€œ%s”ïĵ‰èĦ¨ċ¤§ċ°ĉ— ĉ•ˆâ€œsizeof %s>%d”“%s”çĴĴ %ld èĦŒïĵšïĵˆâ€œ%s”ïĵ‰ĉœ‰ĉœŞċ¤„ç†çš„é”™èŻŻïĵˆ%dïĵ‰â€œ%s” çĴĴ %ld èĦŒïĵšè™šĉ‹Ÿċ†…ċ­˜ç”¨ċ°½ïĵˆ%s=%dïĵ‰â€œċ¤–部节ĉ—ċˆ—èĦ¨â€â€œċ†…部”ĉ‰ä¸ċˆ°â€œtermcap”ĉ–‡äğĥċċšïĵŒèż™ä¸€ċċšċ…·ċ¤‡ĉ³•ċ‹ĉ•ˆċŠ›ïĵċĤ‚ĉžœĉ²Ħĉœ‰ïĵŒèŻ·ċ†™äżĦçğ™ïĵšamĉ›´éИ版ĉœĴ€‚ĉ— ĉ³•ċˆ›ċğşçĦĉ— ĉ³•保ċ­˜ċˆ° fd %dïĵšdup2 ċ¤ħè´ċ‘½äğ¤èĦŒċŒ…ċĞ一个ĉ ĵċĵèŻ´ĉ˜ŽïĵŒċ…·ä½“ċŻäğċ‚考äğ下ĉ¨ĦĉżïĵšÂ°'"éğ˜è¤çŽŻċ˘ƒċ˜é‡ĉ‰ä¸ċˆ°çŽŻċ˘ƒċ˜é‡â€œ%s”ĉœŞèç½çŽŻċ˘ƒċ˜é‡â€œ%s”ċ¤ħè´ĉ— ĉ³•ċ†™ċ…ĉ–‡äğĥ“%s” ċ‚¨ċ­˜ċޒ体ċ·²ĉğĦïĵĉ‰ä¸ċˆ°ĉ–‡äğĥ“%s”ĉèŽ·ċ–ĉ›´ċ¤šäżĦĉŻ€‚h'"节ċ‡ĉ—ċ“ċş”ĉ–‡äğĥ“%s”中ĉœ‰éžĉ³•ċ­—çĴĤ çĴĴ %ld èĦŒïĵš%sċŻıċ˜é‡â€œ%c”的ċšäı‰éžĉ³•ċŻıċ˜é‡â€œ%c”的ĉ“ä½œéžĉ³•ĉ–‡äğĥ“%s”中ĉœ‰éžĉ³•çš„ċ˜é‡ċšäı‰ĉ–‡äğĥ“%s”中ĉœ‰éžĉ³•çš„ċ˜é‡ĉ“ä½œċ†…部ĉ–‡äğĥ“%2$s”中的çĴĴċ‡ ä¸Şĉ˜ŸĉœŸċ­—ĉµïĵˆ%1$dïĵ‰ĉ— ĉ•ˆ çĴĴ %3$ld èĦŒïĵš%4$sĉ–‡äğĥ“%s”中的ĉ—ĉœŸéƒ¨ċˆ†ĉ— ĉ•ˆ çĴĴ %ld èĦŒïĵš%sĉ˜ŸĉœŸĉ— ĉ•ˆĉ–‡äğĥ“%2$s”中的ĉ˜ŸĉœŸċ­—ĉµïĵˆ%1$02dïĵ‰ĉ— ĉ•ˆ çĴĴ %3$ld èĦŒïĵš%4$sĉœˆäğ½ĉ— ĉ•ˆĉ–‡äğĥ“%2$s”中的ĉœˆäğ½ċ­—ĉµïĵˆ%1$02dïĵ‰ĉ— ĉ•ˆ çĴĴ %3$ld èĦŒïĵš%4$sĉ–‡äğĥ“%2$s”中ĉœ‰ĉ— ĉ•ˆçš„ċŞçŽŻ/递ċ½’ %1$s çĴĴ %3$ld èĦŒïĵš%4$sĉŒ‡ċšäş†ĉ— ĉ•ˆçš„ĉœç´˘ĉ¨Ħċĵâ€œ%s”ĉ–‡äğĥ“%2$s”中为ċ˜é‡â€œ%1$c”ĉŒ‡ċšäş†ĉ— ĉ•ˆçš„ċ€ĵ用于èĦç—ċ¤ĉ´ğ节ĉ˜ŸĉœŸĉ—çš„ċı´äğ½ĉ— ĉ•ˆċı´äğ½ċż…éĦğċœ¨ %d 至%d äı‹é—´ċŞèĤéµċŞâ€œGNU 通用ċ…Ĵċ…ħè¸ċŻèŻâ€ċèïĵˆç”ħĉ³•ċšċ‡ĉ—ĉ–‡äğĥ“%s”中的 %s ĉ ĵċĵé”™èŻŻ çĴĴ %ld èĦŒïĵš%sċ†…ċ­˜ċ·²è€—ċ°½ĉ–‡äğĥ“%s”中的ĉ—ĉœŸéƒ¨ċˆ†ċŽçĵşċ°‘“çİşĉ ĵ”ċ­—çĴĤçĴĴ %ld èĦŒïĵš%sndïĵˆĉ˜ċĵĉˆ–隐ċĵçš„ïĵ‰è´£äğğ€‚pmrdèŻğċ–ĉ–‡äğĥ“%s”ĉ—ĥċ‡şé”™ċ“ċş”ĉ–‡äğĥè‡ŞċЍċˆ¤ĉ–­ċ‘送电ċ­é‚äğĥ至 <%s> ċ¤ħè´shell 脚ĉœĴċç§ğ量“%s”ĉ— ĉ•ˆstĉˆċŠŸthâ€œè‡Şç”ħè½ŻäğĥċŸşé‡‘äĵšâ€ċ‘ċ¸ƒïĵ‰çĴĴ三版ĉˆ–ïĵˆĉŒ‰ç…§ä½ çš„ĉ„ĉ„żïĵ‰ĉœŞçŸ ĉœŞçŸçĵ–èŻ‘ċ™¨ĉœŞçŸçĵ–èŻ‘ċ™¨ïĵˆSDKïĵŸïĵ‰â€œ%s”中ċšäı‰äş†ĉœŞçŸçš„çğˆçĞŻçħğċž‹ĉœŞçŸç‰ˆĉœĴċ˜é‡â€œ%c”ċœ¨ĉ–‡äğĥ“%s”中ĉœŞċšäı‰ç‰ˆĉœĴ %d版ĉœĴ %d.%dgcal-4.1/po/it.gmo0000664000000000000000000011647213041164031010717 00000000000000Ŝ•$Y,(5‘55Mĥ5D6FI6F6@×6A7FZ7FĦ7=è76&87]81•87Ç8'˙8!'9$I94n9?£949=:MV:.¤:(Ó:-ü:-*;#X;'|;!¤;JĈ;6<5H<,~<3Ğ<(ß<6=7?=7w=2Ż=0â=&>::>Eu>*ğ>Cĉ>7*?-b??I°?ú?;@:R@=@;Ë@8A@@A;A½AÏAßA÷AB&B ;B HB UB `B lBByBĵBÁBÑBáBèB+ïB;C+WCƒC%—C#½CáC)úC$D$AD+fD&’D%ıD(ßD&E/E LEZEjEzE ŽE™E ĴE·E ÊEĠE èEóEFF$F 3F?FGFOF^FnF }FŠF™FĦFŞF³FËFëF G*GEG`GvG‹G¤GĵGÖGîG H HH H H&*HQHbH jHxH~H—H°H´H ğHĊHĜHòHI$IAITIgIƒI ‹I–IžI ĤI ³IÀIÉIÑIÙIàIèIIùIJJ'J:J CJQJXJoJvJ J ŒJ–J žJİJ²JıJÈJàJJ K&K9KHKdKsK ‡K0”K ĊKKÙKèKL LLL L (L 6LDLVLnL9wLħL ıL ĈLÑLÙL ŜLêLñLMMHMZM^M%gMMĴM´M½MĈM ÙMçMïM ġMNN -N9NANINRNnNuNyN‚NĦN¨N%°NÖNÙN àNîN˙NO O OO$O+O3O;OVOfOuO‰O˜O ¨OĥO"ËOîO P*P9POPjP|P ‚P ŒPšPşPÙPP ÷PQ QQ Q#Q*Q:QCQKQ QQwQ €QŠQ’QšQ ˘Q,QÛQàQèQRRRRR"R(R/R3R8RWPWdWlWW†WW¨WĞWĊW ËWÖWíWñW úW XXX X'X =X HXTX ]X jXvXX ˆX–X ĤX³X ğX(ÈXñX÷X YY#Y6Y FYPY`YsY|YY˘Y³YĈYàYéYìYòYöYŭY ZZ /Z9Z @ZLZ"_Z!‚Z¤ZĵZÍZâZöZ [![2[E[\[r[‡[ [³[É[ß[ó[\\)\:\J\^\w\”\ ›\Ĥ\Ż\ ²\½\Î\Ò\ Û\ċ\ì\ô\ú\]$]']+]3]<]D] K]X]q]x]Œ]“]š]˘] ·]Ċ]Û]]^^6^M^g^"~^Ħ^·^Í^â^ö^ _#_6_K_b_z_Ž__Á_Ĝ__ `!`7`N`c``˜`ħ`È`ċ`aa*a?aZaua’a­aĊaÙaìabb2bNbfb|b=„b7Âb.úb)c :cEc McWc`cbc|cc ƒc c˜cc cŻccÇcÎcc Öc àcìcócúc#d'd@d CdPd#ed!‰d.ĞdÚdîde# e"1e(Te'}e e ħe4żeôeff f f$fAfDfGfXf%pf–f$Ĥf Ëf ÖfŸäf„h›hSĴhSiNTiU£iEùiT?jT”j[éjFEkGŒk@Ôk8lHNl(—lÀl!ßl>mD@m2…m?¸mNĝm/Gn(wn4 n/Ġn'o.-o"\oMoAÍo6p2Fp1yp-ĞpEÙp<q:\qE—q@Ŭq(r<GrL„r,Ñr@ŝrF?s4†s#ğsEßs %tHFt8tLÈt=u9SuMuHÛu$v6vFvbv~v™v³vÄvĠvċvôvEwIwQwfw{w‚w-‰w>·w3öw*x*@x(kx”x(ħxÚx(ĝx*!y*Ly)wy'Ħy*Éy!ôyz(z{J{R{Z{ i{w{’{Ż{ż{Ç{{Ù{ò{| 1|!R|t||§|½|×|| }$} 6}@}D} K} U}._}Ž}¨}°}Ç}Í}ç}~~ ~~)~H~f~{~›~~Á~á~ é~ġ~ŭ~   (4;BJR[r‚Šœ ²şÔÛ ä ñû €€€€,€G€W€n€Š€ž€!­€πŜ€ ò€:˙€ : E O\w |‡Œ‘šĦ³ف>â!‚ (‚ 3‚>‚F‚K‚`‚f‚v‚…‚I‡‚тĠ‚(Ŝ‚"ƒ *ƒ4ƒ;ƒDƒZƒnƒvƒ }ƒ ‰ƒރ ½ƒǃσ׃߃ĝƒ„„ „*„ 1„;„S„V„^„n„„…„Ž„ Ÿ„Ş„²„ı„Á„ʄĉ„÷„……,…=…L…(d……Ş…Ĉ…Ĝ…ñ… †† %† 0†">†a†€†•† œ†¨† °†ş† ż†Ɇ†à† é†ô† ú†‡‡ $‡.‡7‡?‡ G‡8S‡Œ‡‘‡™‡·‡ż‡Ĉ‡χӇۇ ä‡î‡ò‡ù‡ŭ‡ ˆˆ ˆ"ˆ )ˆ*6ˆaˆjˆqˆyˆˆ ‡ˆ•ˆ Ј¸ˆÁˆ ˆ܈Ŝˆ äˆ-ñˆ‰ &‰0‰8‰=‰ C‰P‰T‰Z‰ i‰s‰‰¤‰ ¸‰‰҉ñ‰ ŠŠ&Š%:Š `Š kŠuŠyŠ€ŠˆŠŠ“Š—ŠžŠĤŠĥŠъ ìŠ ÷Š‹ ‹‹)‹1‹7‹ ?‹K‹d‹&~‹‹‹ Ӌ Ŝ‹ ì‹ö‹ü‹Œ& Œ0Œ9Œ=ŒFŒNŒRŒZŒ_ŒhŒnŒƒŒŠŒŒĤŒŒ Œ͌֌ ŜŒéŒ* +6<Sg}…—ž §ȍˍ éô Ž ŽŽ#Ž2Ž:Ž >ŽHŽ \Ž gŽ tŽ €Ž Ž ™Ž¤Ž­ŽĵŽ ˎĠŽ ŬŽ,玏 1 =I X d o|  ™Ĥ ğ ɏ׏î÷ú  + ISZctĴĐӐċö‘‘(‘9‘M‘_‘p‘ƒ‘“‘¤‘·‘ɑ ّĉ‘ ÷‘ ’’#’!;’]’ d’o’x’ {’†’ ’¤’­’’Ċ’͒!Ӓġ’ “ “““*“2“ :“G“\“c“{“‚“‰“‘“ “ħ“Ċ“Ĝ“ì“””-”E”!Z”|””¤”·”ɔŜ”ò”••+•A•S•h•‚•—•­•Ċ•ڕî•––0–G–a–v–”–°–Á–֖é–——8—S—i—{—Œ— —µ— ̗í—˜˜<˜6\˜-“˜Á˜ Ԙߘ ç˜ñ˜ù˜û˜™™ ™#™ 6™ @™ M™X™ k™v™~™€™ †™ ™š™Ħ™İ™)²™ܙ÷™ú™ š#š%AšEgš­ššŜš+íš*›4D›3y›­›ż›=ϛ œ&œ)œ,œ/œ$Oœtœwœzœ’œ.ħœàœ)ġœ +?­‡Pċ_.cGż<V„óBò!bXc[£Ż/TÏQÛGċşhŽHwáA áÙ§€aAÔÈi8Ü䆎LŠÚÁX5ĤxġqŬQ£×ç"ztxğĥS ‰%5;!*3Ħ ıùêo@üYĠ7¨öW›^Şi.Ëès0[şOÀK#D#ô @ôDÈ#êbm8eàh(PÒ2­>ïÎ>žlŜ´ˆSvwF(²µ:ŬRq9Òzr1 kĠïYûBœĉJĦ6ġ}a]³íÉŜƒÛĜ\¸ħ;-d M·÷z>Ĵ2ğŸUl@,BĊ+d ÓH¤\/rp™:ĵÄĝ†ŭ(~tíƒX=ÔûW,jŭĥÄ79„~K´Œ–MgµQ)˘V7-Të) }šl…½] ŝ5CŒ¨O÷֊×ÜuÀħ $ĞvÑ_I§f, Ż`%h&Ÿn\Ê’G͏|àE$żú2âÖ3+v—U˜úÑ î`} ˙j"éÌo“‹è‰xŞÊ‚Ĉ ÂI*PĈ4Ln°CĴÇ`é%ZgD|…1ÍâÚ“ 06j4 p={ÂΔ°ìFÁsR˙Et äA k.N—)’N{Z€Ğ‚]eñİ<rpOǸ6š[H{o·²ıd ;8‹˜^•aJm:*/iĜKLÏYߤÙĊ½ŝ?Rò=yË ›&I$&ÌëyNîž'y9wfs'c”‡ĝœ™É_çu³İ+4-30eq|k•ì–ÓUˆñW~EĉF‘Jm?"ngVöb€ßSC1<Z^'Mü!˘fĵuùTĤó‘ %s: warning, %s. `%s' line %ld: N = 0 1st week / last week of previous year N = 1...4 1st...4th weekday %s (always) N = 1...51 %s of 1st...51st week (always) N = 1...51 1st...51st weekday %s (always) N = 1...52 1st...52nd week (always) N = 5 5th weekday %s (sometimes) N = 52|53 %s of 52|53rd week (sometimes) N = 52|53 52|53rd weekday %s (sometimes) N = 53 53rd week (sometimes) N = 9 Last weekday %s N = 99 %s of last week N = 99 Last week N = 99 Last weekday %s Actual: `%s' %-*s = Holidays in %s %c = Exclusion of all %s Air pressure in Millibar (actual: %.3f) Air temperature in degrees Celsius (actual: %+.3f) expressions separated by `%s' characters is a LOWER-CASE-LETTER, it means a non-exclusion! # Z = Display dates, for which fixed dates doesn't exist # m|M[MOD] = List complete month # t|T = List tomorrow # w|W[MOD] = List complete week # y|Y[MOD] = List complete year 1. Representation of text = no Standard week numbers Actual: (%s) `%s' (%s) Create shell script which contains the arguments of command line Determine type of week numbers (actual: %s) Display extended help text and quit program Display help text and quit program Display software license and quit program Display some debug information Display version information and quit program Export local date variables from file to file Export local text variables from file to file Provide calendar sheet with week numbers Set starting day of week (actual: %s) [MOD] = %s Descending sort order %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d) %-3s = Air pressure and temperature separated by `%s' character %-3s = File name of the shell script %-3s = One or more of the following characters. If character %-3s = Store arguments of command line in file %s %-3s = yes ISO-8601:1988 week numbers %-6s = Format is: `%s' (%s) C = Display those dates, for which fixed dates doesn't exist, too N = Legal days only [MOD] = b Use both date notations (day of month+year) %sL, %s Display software license and quit program %sV, %s Display version information and quit program %sh, %s Display this help text and quit program %shh, %s Display extended help text and quit program [%-3s] = Email address, otherwise eMail is send to user `%s' [MOD] = b Use both date notations (day of month+year) (%.4s for Alpha) (%.4s for VAX) (BSD/386 1.1 or later) (FreeBSD 2.0 or later) (NetBSD 1.2 or later) (NetBSD before 0.9) 1.0 or 1.5? 4.0 or 4.02 ; Week %s = %+4d day = %+4d days c = Display only those dates, for which fixed dates exists day later than 4.5 later than 5.0%cDATE%cFILE%s: Use `%s %s' with one of these arguments%s: command in environment variable `%s' found -- %s %s %s %s: error during program execution of `%s' %s: file not found %s: invalid date given -- %c%s %s %s %s: invalid date given -- %s %s %s %s: invalid option -- %s%s: option `%s' doesn't allow an argument%s: option `%s' is ambiguous%s: option `%s' requires an argument%s: option `--%s' doesn't allow an argument%s: option `--%s' requires an argument%s: option requires an argument -- %s%s: option with ambiguous argument -- %s%s: option with invalid argument -- %s%s: unrecognized option `%s'(bad version)++ 1.0 or later++ 3.0 or later+++ FIXED DATES +++1st Advent1st Sunday in Lent2nd Advent2nd Sunday in Lent3rd Advent3rd Sunday in Lent4th Advent4th Sunday in Lent5.1 or earlier7-5-3 FestivalAborigines DayAfghanistanAlbaniaAlgeriaAll Fool's DayAll Saints' DayAll Souls' DayAlphabet DayAmerican SamoaAndorraAngola #AnguillaAnniversary of AucklandAnniversary of Canterbury NorthAnniversary of Canterbury SouthAnniversary of Chatham IslandsAnniversary of Hawkes' BayAnniversary of MarlboroughAnniversary of NelsonAnniversary of OtagoAnniversary of SouthlandAnniversary of TaranakiAnniversary of WellingtonAnniversary of WestlandAntigua and BarbudaAnzac DayAprAprilArbor DayArgentinaArgument `%s' of command line ignored.Armed Forces DayArmeniaArmistice DayArubaAscension of Abdu'l-BahaAscension of Baha'u'llahAugAugustAustraliaAustralia/CanberraAustralia/New South WalesAustralia/Northern TerritoryAustralia/QueenslandAustralia/Southern AustraliaAustralia/TasmaniaAustralia/VictoriaAustralia/Western AustraliaAustriaAzerbaijanBahamasBahrainBangladesh #Bank HolidayBarbadosBelarusBelgiumBelizeBenin #BermudaBhutan #Birth of Baha'u'llahBirth of the BabBoliviaBosnia-HerzegovinaBotswanaBouvet IslandBrazilBritish Virgin IslandsBruneiBulgariaBurkina FasoBurundi #COMMANDCambodia #CameroonCanadaCanada/AlbertaCanada/British ColumbiaCanada/ManitobaCanada/New BrunswickCanada/Newfoundland and LabradorCanada/Nova ScotiaCanada/OntarioCanada/Prince Edward IslandCanada/QuİbecCanada/SaskatchewanCanada/YukonCannot execute command in file `%s' Line: %ld %sCape VerdeCarnivalCayman IslandsCentral African Republic #ChadChen/DragonChileChinaChou/OxChristmas DayChristmas EveChristmas IslandsCocos Islands (Keeling)ColombiaCommand executed (exit code=%d) in file `%s' Line %ld: %sComorosCook IslandsCosta RicaCroatiaCubaCulture DayCyprusCzech RepublicC´te d'IvoireDDate format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]DecDecemberDemocratic People's Republic of KoreaDemocratic Republic of Congo #DenmarkDjiboutiDominicaDominican RepublicEaster MondayEcuadorEgyptEl SalvadorEmail bug reports to <%s>Equatorial GuineaEquinox DayEritreaEstoniaEthiopiaFalkland Islands (Malvinas)FaroesFebFebruaryFederated States of MicronesiaFiji #FinlandFormer Yugoslav Republic of MacedoniaFrFranceFrench GuianaFrench PolynesiaFriFridayFridaysFull MoonGabon #GambiaGeorgiaGermanyGermany/Baden-WĵrttembergGermany/BavariaGermany/BerlinGermany/BrandenburgGermany/BremenGermany/HamburgGermany/HesseGermany/Lower SaxonyGermany/Mecklenburg-West PomeraniaGermany/North Rhine-WestphaliaGermany/Rhineland PalatinateGermany/SaxonyGermany/Saxony-AnhaltGermany/Schleswig-HolsteinGermany/ThuringiaGhanaGibraltarGreat BritainGreat Britain/England and WalesGreat Britain/Northern IrelandGreat Britain/ScotlandGreeceGreenlandGrenadaGuadeloupeGuamGuatemalaGuineaGuinea-Bissau #Guyana #Hai/PigHaitiHalloweenHeard and Mc Donald IslandsHondurasHong KongHungaryIcelandIndia #Indonesia #Invalid argument in command line given -- %sIraqIrelandIslamic Republic of IranIsraelItalyJamaicaJanJanuaryJapanJordanJulJulyJunJuneKazakhstanKenya #Kiribati #KuwaitKyrgyzstanLaos People's Democratic Republic #LatviaLebanonLesothoLiberiaLibyan Arab Jamahiriya (Libya)LiechtensteinLine %ld ignored: %sLine %ld: %sLithuaniaLunar EclipseLuxembourgMMacauMadagascar #Mail from \`%s' (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalaysia #MaldivesMaliMaltaMao/RabbitMarMarchMarshall IslandsMartiniqueMary - Blessed VirginMary's Annunciation DayMary's Ascension DayMary's CandlemasMary's ExpectationMary's Immaculate ConceptionMary's MaternityMary's NameMary's NativityMary's SacrificeMary's VisitationMauritaniaMauritiusMayMay MayotteMexicoMoMonMonacoMondayMondaysMondays...FridaysMondays...ThursdaysMongolia #MontserratMoroccoMozambiqueMyanmar (Burma) #NamibiaNauruNepal #NetherlandsNetherlands Antilles/BonaireNetherlands Antilles/Cura§aoNetherlands Antilles/Saba and StatiaNetherlands Antilles/St MaartenNew CaledoniaNew MoonNew ZealandNicaraguaNigerNigeriaNiueNorthern Marian Islands (Saipan)NorwayNovNovemberOPTIONOctOctoberOmanPakistanPalauPalm SundayPanamaPapua New GuineaParaguayPassion SundayPeruPhilippinesPitcairnPolandPortugalPrayer DayPreload options and commands from `FILE'Puerto RicoQatarRepublic of Congo #Republic of KoreaRepublic of MoldovaRomaniaRussian FederationRwandaRİunionSUFFIX (may be defined):SaSaint-Pierre and MiquelonSamoaSan MarinoSao Tomİ and PrincipeSatSaturdaySaturdaysSaudi ArabiaSenegalSepSeptemberSerbia and MontenegroSeychellenShen/MonkeySi/SnakeSierra LeoneSingapore #SlovakiaSloveniaSolar EclipseSolomon IslandsSolstice DaySomaliaSouth AfricaSouth Georgia and South Sandwich IslandsSpainSpring FestivalSri Lanka #St Andrew's DaySt Bartholomew DaySt George's DaySt HelenaSt Joseph's DaySt Kitts and NevisSt LuciaSt Patrick's DaySt Peter and St PaulSt Stephen's DaySt Valentine's DaySt Vincent and GrenadinesStandardSuSudanSunSundaySundaysSuriname #Svalbard and Jan Mayen IslandsSwazilandSwedenSwitzerlandSwitzerland/AargauSwitzerland/Appenzell AusserrhodenSwitzerland/Appenzell InnerrhodenSwitzerland/Basel-StadtSwitzerland/BernSwitzerland/FribourgSwitzerland/Gen¨veSwitzerland/GlarusSwitzerland/GraubĵndenSwitzerland/JuraSwitzerland/LuzernSwitzerland/Neuch˘telSwitzerland/NidwaldenSwitzerland/ObwaldenSwitzerland/SchaffhausenSwitzerland/SchwyzSwitzerland/SolothurnSwitzerland/St GallenSwitzerland/ThurgauSwitzerland/TicinoSwitzerland/UriSwitzerland/ValaisSwitzerland/VaudSwitzerland/ZugSwitzerland/ZĵrichSylvester/New Year's EveSyrian Arab Republic (Syria)TaiwanTajikistanTanzaniaThThailand #Thanksgiving DayThuThursdayThursdaysTogo #TokelauTongaTransfiguration DayTrinidad and Tobago #TuTueTuesdayTuesdaysTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluU.S. Virgin IslandsU.S.A.UgandaUkraineUnited Arab EmiratesUnited StatesUnited States/AlabamaUnited States/AlaskaUnited States/ArizonaUnited States/ArkansasUnited States/CaliforniaUnited States/ColoradoUnited States/ConnecticutUnited States/DelawareUnited States/District of ColumbiaUnited States/FloridaUnited States/GeorgiaUnited States/HawaiiUnited States/IdahoUnited States/IllinoisUnited States/IndianaUnited States/IowaUnited States/KansasUnited States/KentuckyUnited States/LouisianaUnited States/MaineUnited States/MarylandUnited States/MassachusettsUnited States/MichiganUnited States/MinnesotaUnited States/MississippiUnited States/MissouriUnited States/MontanaUnited States/NebraskaUnited States/NevadaUnited States/New HampshireUnited States/New JerseyUnited States/New MexicoUnited States/New YorkUnited States/North CarolinaUnited States/North DakotaUnited States/OhioUnited States/OklahomaUnited States/OregonUnited States/PennsylvaniaUnited States/Rhode IslandUnited States/South CarolinaUnited States/South DakotaUnited States/TennesseeUnited States/TexasUnited States/UtahUnited States/VermontUnited States/VirginiaUnited States/WashingtonUnited States/West VirginiaUnited States/WisconsinUnited States/WyomingUruguayUsage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...] Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]Use `%s %s|[%s?]UzbekistanVanuatuVenezuelaViet NamWWallis and Futuna IslandsWeWedWednesdayWednesdaysWeekWeek %sWei/SheepWestern SaharaWu/HorseXu/DogYYemenYin/TigerYou/RoosterZambiaZi/RatZimbabwe`%s' line %ld: (`%s') `%s%d' failed`termcap' file not foundamcommand lineenvironment variableenvironment variable `%s' not foundenvironment variable `%s' not setfile `%s' can't be written Storage media full!file `%s' not foundfor more information.holidaysillegal definition of variable `%c'illegal operation on variable `%c'illegal variable definition in file `%s'illegal variable operation in file `%s'invalid dayinvalid monthinvalid value assigned to variable `%c' in file `%s'legal holidaysndpmrdread error in file `%s'sending eMail to <%s> failedstthunknown compilerunknown compiler (SDK?)unknown terminal type defined in `%s'unknown versionvariable `%c' undefined in file `%s'version %dversion %d.%dProject-Id-Version: gcal-3.6 Report-Msgid-Bugs-To: bug-gcal@gnu.org POT-Creation-Date: 2017-01-22 18:12+0100 PO-Revision-Date: 2010-10-05 00:20+0200 Last-Translator: Sergio Zanchetta Language-Team: Italian Language: it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bugs: Report translation errors to the Language-Team address. %s: attenzione, %s. "%s" riga %ld: N = 0 1ÂŞ / ultima settimana dell'anno precedente N = 1...4 1°...4° giorno della settimana %s (sempre) N = 1...51 %s della 1ÂŞ...51ÂŞ settimana (sempre) N = 1...51 1°...51° giorno della settimana %s (sempre) N = 1...52 1ÂŞ...52ÂŞ settimana (sempre) N = 5 5° giorno della settimana %s (qualche volta) N = 52|53 %s della 52ÂŞ|53ÂŞ settimana (qualche volta) N = 52|53 52°|53° giorno della settimana %s (qualche volta) N = 53 53ÂŞ settimana (qualche volta) N = 9 Ultimo giorno della settimana %s N = 99 %s dell'ultima settimana N = 99 Ultima settimana N = 99 Ultimo giorno della settimana %s Attuale: "%s" %-*s = Ferie in %s %c = Esclusione di %s Pressione atmosferica in Millibar (attuale: %.3f) Temperatura dell'aria in gradi Celsius (attuale: %+.3f) espressioni separate da caratteri "%s" ¨ una LETTERA MINUSCOLA, significa non-esclusione. # Z = Mostra le date per le quali non esistono date fisse # m|M[MOD] = Elenca l'intero mese # t|T = Elenca domani # w|W[MOD] = Elenca l'intera settimana # y|Y[MOD] = Elenca l'intero anno 1. Rappresentazione del testo = no Numeri di settimana standard Attuale: (%s) "%s" (%s) Crea script di shell contenente gli argomenti della riga di comando Determina il tipo di numeri di settimana (attuale: %s) Mostra un aiuto esteso ed esce dal programma Mostra questo aiuto ed esce da programma Mostra la licenza ed esce dal programma Mostra alcune informazioni di debug Mostra le informazioni sulla versione ed esce dal programma Esporta variabili locali della data da file a file Esporta variabili locali di testo da file a file Fornisce un calendario con in tabella i numeri di settimana Imposta giorno iniziale della settimana (attuale: %s) [MOD] = %s Ordinamento decrescente %-3s = 1|2|3|4|6|12 Numero di blocchi (attuale: %d) %-3s = Pressione atmosferica e temperatura separati dal carattere "%s" %-3s = Nome file dello script di shell %-3s = Uno o piı dei seguenti caratteri. Se il carattere %-3s = Memorizza gli argomenti della riga di comando nel file %s %-3s = sĴ Numeri di settimana ISO-8601:1988 %-6s = Il formato ¨: "%s" (%s) c = Mostra anche le date per le quali non esistono date fisse N = Solo feste nazionali [MOD] = b Usa entrambe le notazioni di data (giorno del mese+anno) %sL, %s Mostra la licenza ed esce dal programma %sV, %s Mostra le informazioni sulla versione ed esce dal programma %sh, %s Mostra questo aiuto ed esce dal programma %shh, %s Mostra un aiuto esteso ed esce dal programma [%-3s] = Indirizzo email, diversamente l'email ¨ inviata all'utente "%s" [MOD] = b Usa entrambe le notazioni di data (giorno del mese+anno) (%.4s per Alpha) (%.4s per VAX) (BSD/386 1.1 o successiva) (FreeBSD 2.0 o successiva) (NetBSD 1.2 o successiva) (NetBSD prima della 0.9) 1.0 oppure 1.5? 4.0 oppure 4.02 ; Settimana %s = %+4d giorno = %+4d giorni c = Mostra solamente le date per le quali esistono date fisse giorno successiva alla 4.5 successiva alla 5.0%cDATA%cFILE%s: usare "%s %s" con uno di questi argomenti%s: trovato comando nella variabile ambiente "%s" -- %s %s %s %s: errore durante l'esecuzione del programma "%s" %s: file non trovato %s: data fornita non valida -- %c%s %s %s %s: data fornita non valida -- %s %s %s %s: opzione non valida -- %s%s: l'opzione "%s" non ammette argomenti%s: l'opzione "%s" ¨ ambigua%s: l'opzione "%s" richiede un argomento%s: l'opzione "--%s" non ammette argomenti%s: l'opzione "--%s" richiede un argomento%s: l'opzione richiede un argomento -- %s%s: opzione con argomento ambiguo -- %s%s: opzione con argomento non valido -- %s%s: opzione non riconosciuta "%s"(versione errata)++ 1.0 o successiva++ 3.0 o successiva+++ DATE FISSE +++1ÂŞ di Avvento1ÂŞ domenica di Quaresima2ÂŞ di Avvento2ÂŞ domenica di Quaresima3ÂŞ di Avvento3ÂŞ domenica di Quaresima4ÂŞ di Avvento4ÂŞ domenica di Quaresima5.1 o precedenteFestival 7-5-3Giorno degli AborigeniAfghanistanAlbaniaAlgeriaPesce d'AprileTutti i SantiCommemorazione dei defuntiGiorno dell'Alfabeto CoreanoSamoa americaneAndorraAngola #AnguillaAnniversario di AucklandAnniversario di Canterbury NordAnniversario di Canterbury SudAnniversario delle isole ChathamAnniversario della baia di HawkesAnniversario di MarlboroughAnniversario di NelsonAnniversario di OtagoAnniversario di SouthlandAnniversario di TaranakiAnniversario di WellingtonAnniversario di WestlandAntigua e BarbudaAnzac DayAprAprileArbor DayArgentinaIgnorato argomento "%s" della riga di comando.Giorno delle Forze ArmateArmeniaGiorno dell'armistizioArubaAscensione di Abdu'l-BahaAscensione di Baha'u'llahAgoAgostoAustraliaAustralia/CanberraAustralia/Nuovo Galles del SudAustralia/Territorio del NordAustralia/QueenslandAustralia/Australia MeridionaleAustralia/TasmaniaAustralia/VictoriaAustralia/Australia OccidentaleAustriaAzerbaigianBahamasBahrainBangladesh #Bank HolidayBarbadosBielorussiaBelgioBelizeBenin #BermudaBhutan #Nascita di Baha'u'llahNascita del BabBoliviaBosnia-ErzegovinaBotswanaIsola BouvetBrasileIsole Vergini britannicheBruneiBulgariaBurkina FasoBurundi #COMANDOCambogia #CamerunCanadaCanada/AlbertaCanada/Columbia BritannicaCanada/ManitobaCanada/Nuovo BrunswickCanada/Terranova e LabradorCanada/Nuova ScoziaCanada/OntarioCanada/Isola del Principe EdoardoCanada/QuİbecCanada/SaskatchewanCanada/YukonImpossibile eseguire il comando nel file "%s" Riga: %ld %sCapo VerdeCarnevaleIsole CaymanRepubblica Centrafricana #CiadChen/DragoCileCinaChou/BueNataleVigilia di NataleIsole di NataleIsole Cocos e KeelingColombiaComando eseguito (codice uscita=%d) nel file "%s" Riga %ld: %sComoreIsole CookCosta RicaCroaziaCubaGiorno della CulturaCiproRepubblica CecaCosta d'AvorioGFormato data: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]DicDicembreRepubblica Democratica Popolare di CoreaRepubblica democratica del Congo #DanimarcaGibutiDominicaRepubblica DominicanaLunedĴ dell'AngeloEcuadorEgittoEl SalvadorSegnalare i bug via email a <%s>Guinea EquatorialeEquinozioEritreaEstoniaEtiopiaIsole Falkland (Malvine)Far OerFebFebbraioStati Federati di MicronesiaFigi #FinlandiaRepubblica di MacedoniaVeFranciaGuiana FrancesePolinesia franceseVenVenerdĴtutti i venerdĴLuna pienaGabon #GambiaGeorgiaGermaniaGermania/Baden-WĵrttembergGermania/BavieraGermania/BerlinoGermania/BrandeburgoGermania/BremaGermania/AmburgoGermania/AssiaGermania/Bassa SassoniaGermania/Meclemburgo-Pomerania AnterioreGermania/Nord Reno-WestfaliaGermania/Renania-PalatinatoGermania/SassoniaGermania/Sassonia-AnhaltGermania/Schleswig-HolsteinGermania/TuringiaGhanaGibilterraGran BretagnaGran Bretagna/Inghilterra e GallesGran Bretagna/Irlanda del NordGran Bretagna/ScoziaGreciaGroenlandiaGrenadaGuadalupaGuamGuatemalaGuineaGuinea-Bissau #Guyana #Hai/MaialeHaitiHalloweenIsole Heard e McDonaldHondurasHong KongUngheriaIslandaIndia #Indonesia #Fornito argomento non valido nella riga di comando -- %sIraqIrlandaRepubblica Islamica dell'IranIsraeleItaliaGiamaicaGenGennaioGiapponeGiordaniaLugLuglioGiuGiugnoKazakistanKenya #Kiribati #KuwaitKirghizistanRepubblica Popolare Democratica del Laos #LettoniaLibanoLesothoLiberiaLibiaLiechtensteinRiga %ld ignorata: %sRiga %ld: %sLituaniaEclisse lunareLussemburgoMMacaoMadagascar #Posta da \"%s" (%02d-%s-%04d %02d%s%02d%s%02dMalawiMalesia #MaldiveMaliMaltaMao/ConiglioMarMarzoIsole MarshallMartinicaMaria - Vergine benedettaAnnunciazione di MariaAssunzione di MariaCandeloraAttesa di MariaImmacolata Concezione di MariaMaternit  di MariaNome di MariaNativit  di MariaSacrificio di MariaVisitazione della Beata Vergine MariaMauritaniaMauritiusMagMaggioMayotteMessicoLuLunMonacoLunedĴtutti i lunedĴtutti i lunedĴ...venerdĴtutti i lunedĴ...giovedĴMongolia #MontserratMaroccoMozambicoMyanmar (Birmania) #NamibiaNauruNepal #Paesi BassiAntille olandesi/BonaireAntille olandesi/Cura§aoAntille olandesi/Saba e Sint EustatiusAntille olandesi/Sint MaartenNuova CaledoniaLuna nuovaNuova ZelandaNicaraguaNigerNigeriaNiueIsole Marianne Settentrionali (Saipan)NorvegiaNovNovembreOPZIONEOttOttobreOmanPakistanPalauDomenica delle PalmePanamaPapua Nuova GuineaParaguayDomenica della PassionePeruFilippinePitcairnPoloniaPortogalloGiorno della preghieraPrecarica le opzioni e i comandi da "FILE"Porto RicoQatarRepubblica del Congo #Repubblica di CoreaRepubblica di MoldovaRomaniaFederazione RussaRuandaRİunionSUFFISSO (pu² essere definito):SaSaint-Pierre e MiquelonSamoaSan MarinoSao Tomİ e PrincipeSabSabatotutti i sabatiArabia SauditaSenegalSetSettembreSerbia e MontenegroSeychellesShen/ScimmiaSi/SerpenteSierra LeoneSingapore #SlovacchiaSloveniaEclisse solareIsole SalomoneSolstizioSomaliaSudafricaGeorgia del Sud e isole Sandwich meridionaliSpagnaFestival di primaveraSri Lanka #Sant'AndreaSan BartolomeoSan GiorgioSant'ElenaSan GiuseppeSt Kitts e NevisSanta LuciaSan PatrizioSanti Pietro e PaoloSanto StefanoSan ValentinoSt Vincent e GrenadineStandardDoSudanDomDomenicatutte le domenicheSuriname #Isole Svalbard e di Jan MayenSwazilandSveziaSvizzeraSvizzera/ArgoviaSvizzera/Appenzello EsternoSvizzera/Appenzello InternoSvizzera/Basilea Citt Svizzera/BernaSvizzera/FriburgoSvizzera/GinevraSvizzera/GlaronaSvizzera/GrigioniSvizzera/GiuraSvizzera/LucernaSvizzera/Neuch˘telSvizzera/NidvaldoSvizzera/ObvaldoSvizzera/SciaffusaSvizzera/SvittoSvizzera/SolettaSvizzera/San GalloSvizzera/TurgoviaSvizzera/TicinoSvizzera/UriSvizzera/ValleseSvizzera/VaudSvizzera/ZugoSvizzera/ZurigoSan Silvestro/CapodannoRepubblica Araba di Siria (Siria)TaiwanTagikistanTanzaniaGiThailandiaGiorno del RingraziamentoGioGiovedĴtutti i giovedĴTogo #TokelauTongaTrasfigurazione di Nostro SignoreTrinidad e Tobago #MaMarMartedĴtutti i martedĴTunisiaTurchiaTurkmenistanIsole Turks e CaicosTuvaluIsole Vergini americaneU.S.A.UgandaUcrainaEmirati Arabi UnitiStati UnitiStati Uniti/AlabamaStati Uniti/AlaskaStati Uniti/ArizonaStati Uniti/ArkansasStati Uniti/CaliforniaStati Uniti/ColoradoStati Uniti/ConnecticutStati Uniti/DelawareStati Uniti/Distretto di ColumbiaStati Uniti/FloridaStati Uniti/GeorgiaStati Uniti/HawaiiStati Uniti/IdahoStati Uniti/IllinoisStati Uniti/IndianaStati Uniti/IowaStati Uniti/KansasStati Uniti/KentuckyStati Uniti/LouisianaStati Uniti/MaineStati Uniti/MarylandStati Uniti/MassachusettsStati Uniti/MichiganStati Uniti/MinnesotaStati Uniti/MississippiStati Uniti/MissouriStati Uniti/MontanaStati Uniti/NebraskaStati Uniti/NevadaStati Uniti/New HampshireStati Uniti/New JerseyStati Uniti/Nuovo MessicoStati Uniti/New YorkStati Uniti/Carolina del NordStati Uniti/Dakota del NordStati Uniti/OhioStati Uniti/OklahomaStati Uniti/OregonStati Uniti/PennsylvaniaStati Uniti/Rhode IslandStati Uniti/Carolina del SudStati Uniti/Dakota del SudStati Uniti/TennesseeStati Uniti/TexasStati Uniti/UtahStati Uniti/VermontStati Uniti/VirginiaStati Uniti/WashingtonStati Uniti/Virginia OccidentaleStati Uniti/WisconsinStati Uniti/WyomingUruguayUso: %s [--%s | --%s] | [--%s=[+|-]NUMERO] [ARGOMENTO...] Uso: %s [[OPZIONE...] [%cDATA] [%cFILE...]] [COMANDO]Uso: %s [[OPZIONE...] [%cFILE...]] [COMANDO]Usare "%s %s|[%s?]UzbekistanVanuatuVenezuelaVietnamSIsole Wallis e FutunaMeMerMercoledĴtutti i mercoledĴSettimanaSettimana %sWei/PecoraSahara OccidentaleWu/CavalloXu/CaneAYemenYin/TigreYou/GalloZambiaZi/TopoZimbabwe"%s" riga %ld: ("%s") "%s%d" non riuscitofile "termcap" non trovatoamriga di comandovariabile ambientevariabile ambiente "%s" non trovatavariabile ambiente "%s" non impostatail file "%s" non pu² essere scritto Supporto di memorizzazione pienofile "%s" non trovatoper maggiori informazioni.tutte le feriedefinizione non valida della variabile "%c"operazione non valida sulla variabile "%c"definizione non valida della variabile nel file "%s"operazione non valida sulla variabile nel file "%s"giorno non validomese non validovalore non valido assegnato alla variabile "%c" nel file "%s"tutte le feste nazionali°pm°errore di lettura nel file "%s"invio dell'email a <%s> non riuscito°°compilatore sconosciutocompilatore sconosciuto (SDK?)tipo di terminale sconosciuto definito in "%s"versione sconosciutavariabile "%c" non definita nel file "%s"versione %dversione %d.%dgcal-4.1/po/ru.po0000664000000000000000000046355313041164032010573 00000000000000# ŸµÑ€µ²µ´µ½½Ñ‹µ сħщµ½¸Ñ ´ğя gcal # Copyright (C) 1998 Free Software Foundation, Inc. # Oleg S. Tihonov , 1998. # msgid "" msgstr "" "Project-Id-Version: gcal 2.40\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 1999-03-17 03:04+03:00\n" "Last-Translator: Oleg S. Tihonov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "" #: lib/regcomp.c:135 #, fuzzy msgid "Success" msgstr "усżµÑˆ½°" #: lib/regcomp.c:138 msgid "No match" msgstr "" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:156 msgid "Unmatched [, [^, [:, [., or [=" msgstr "" #: lib/regcomp.c:159 #, fuzzy msgid "Unmatched ( or \\(" msgstr "½µż°Ñ€½Ñ‹µ şÑ€Ñƒ³ğыµ сşħş¸" #: lib/regcomp.c:162 #, fuzzy msgid "Unmatched \\{" msgstr "½µż°Ñ€½Ñ‹µ şÑ€Ñƒ³ğыµ сşħş¸" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:168 #, fuzzy msgid "Invalid range end" msgstr "½µ²µÑ€½Ñ‹ı []-´¸°ż°·½" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "" #: lib/regcomp.c:180 #, fuzzy msgid "Regular expression too big" msgstr "рµ³Ñƒğяр½µ ²Ñ‹Ñ€°ĥµ½¸µ сğ¸Ñˆşĵ ²µğ¸ş" #: lib/regcomp.c:183 #, fuzzy msgid "Unmatched ) or \\)" msgstr "½µż°Ñ€½Ñ‹µ şÑ€Ñƒ³ğыµ сşħş¸" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, fuzzy, c-format msgid "%s subprocess" msgstr "усżµÑˆ½°" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "ŸżÑ‹Ñ‚ş° ·°ż¸Ñ°Ñ‚ÑŒ %s `%s'... %s%s%s" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "½µÑƒÑżµÑˆ½°" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "усżµÑˆ½°" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "ŸżÑ‹Ñ‚ş° тşÑ€Ñ‹Ñ‚¸Ñ%sрµÑÑƒÑ€Ñ½³ ф°ığ° `%s'... %s%s%s" #: src/file-io.c:1686 msgid " `HERE' " msgstr " `—”•ĦĴ' " #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "ŸżÑ‹Ñ‚ş° тşÑ€Ñ‹Ñ‚¸Ñ (ур²µ½ÑŒ: %02d) ²şğюч°µĵ³ ф°ığ° `%s'... %s%s%s" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr " “" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "“µÑ€ĵ°½¸Ñ" #: src/gcal.c:1075 msgid "U.S.A." msgstr "Ħ¨" #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "’µğ¸şħр¸Ñ‚°½¸Ñ" #: src/gcal.c:1852 msgid "default" msgstr "ż уĵğч°½¸ÑŽ" #: src/gcal.c:1951 msgid ":" msgstr "" #: src/gcal.c:1961 msgid "Y" msgstr "" #: src/gcal.c:1966 #, fuzzy msgid "M" msgstr "Ÿ½" # ­Ñ‚ ´²ÑƒÑ…ħуş²µ½½µ сşÑ€°Ñ‰µ½¸µ ´ğя "½µ´µğя" #: src/gcal.c:1971 #, fuzzy msgid "W" msgstr "´" #: src/gcal.c:1976 msgid "D" msgstr "" #: src/gcal.c:2067 #, fuzzy msgid "Fixed date list:" msgstr "Ħż¸Ñş ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "żµÑ€µĵµ½½°Ñ срµ´Ñ‹" #: src/gcal.c:2268 #, fuzzy, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%s: şĵ°½´°, ·°´°½½°Ñ ² żµÑ€µĵµ½½ı срµ´Ñ‹ `%s', -- %s\n" "%s\n" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "’½ÑƒÑ‚Ñ€µ½½¸ı" #: src/gcal.c:2864 msgid "response file" msgstr "ф°ığ тşğ¸ş°" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "Ħ·´°½" #: src/gcal.c:2872 msgid "shell script" msgstr "сцµ½°Ñ€¸ı şĵ°½´½³ ¸½Ñ‚µÑ€żÑ€µÑ‚°Ñ‚Ñ€°" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "ŸÑ‡Ñ‚° т \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "şĵ°½´½°Ñ стрş°" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: ½µ´½·½°Ñ‡½Ñ‹ı şğюч `%s'" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: ½µ¸·²µÑÑ‚½Ñ‹ı şğюч `%s'" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: ½µ²µÑ€½Ñ‹ı şğюч -- %s" #: src/gcal.c:5910 #, fuzzy, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s: şğюч `%s' ´ğĥµ½ ¸Ñżğь·²°Ñ‚ься ħµ· °Ñ€³Ñƒĵµ½Ñ‚°" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s: şğюч `%s' ´ğĥµ½ ¸Ñżğь·²°Ñ‚ься ħµ· °Ñ€³Ñƒĵµ½Ñ‚°" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: şğюч `%s' ´ğĥµ½ ¸Ñżğь·²°Ñ‚ься c °Ñ€³Ñƒĵµ½Ñ‚ĵ" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: şğюч ´ğĥµ½ ¸Ñżğь·²°Ñ‚ься c °Ñ€³Ñƒĵµ½Ñ‚ĵ -- %s" #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: şğюч с ½µ²µÑ€½Ñ‹ĵ °Ñ€³Ñƒĵµ½Ñ‚ĵ -- %s" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: şğюч с ½µ´½·½°Ñ‡½Ñ‹ĵ °Ñ€³Ñƒĵµ½Ñ‚ĵ -- %s" #: src/gcal.c:5995 #, fuzzy, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" "%s: ·°´°½° ½µ²µÑ€½°Ñ ´°Ñ‚° -- %c%s\n" "%s\n" #: src/hd-data.c:64 #, fuzzy msgid "Australia" msgstr "²ÑÑ‚Ñ€°ğ¸ıсş¸ı" #: src/hd-data.c:65 src/hd-data.c:113 #, fuzzy msgid "Belgium" msgstr "‘µğь³¸ıсş¸ı" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "" #: src/hd-data.c:67 #, fuzzy msgid "Canada" msgstr "š°½°´Ñş¸ı" #: src/hd-data.c:68 msgid "Switzerland" msgstr "" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "" #: src/hd-data.c:75 src/hd-data.c:250 #, fuzzy msgid "Italy" msgstr "˜Ñ‚°ğья½Ñş¸ı" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "" #: src/hd-data.c:77 src/hd-data.c:261 #, fuzzy msgid "Republic of Korea" msgstr "”µ½ÑŒ рµÑżÑƒħğ¸ş¸" #: src/hd-data.c:78 src/hd-data.c:293 #, fuzzy msgid "Mexico" msgstr "œµşÑ¸ş°½Ñş¸ı" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "" #: src/hd-data.c:81 src/hd-data.c:320 #, fuzzy msgid "Portugal" msgstr "ŸÑ€Ñ‚у³°ğьсş¸ı" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "" #: src/hd-data.c:83 #, fuzzy msgid "United States" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:85 msgid "Andorra" msgstr "" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "" #: src/hd-data.c:89 msgid "Anguilla" msgstr "" #: src/hd-data.c:90 msgid "Albania" msgstr "" #: src/hd-data.c:91 msgid "Armenia" msgstr "" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "" #: src/hd-data.c:96 msgid "Angola #" msgstr "" #: src/hd-data.c:97 msgid "Argentina" msgstr "" #: src/hd-data.c:98 msgid "American Samoa" msgstr "" #: src/hd-data.c:99 #, fuzzy msgid "Austria" msgstr "²ÑÑ‚Ñ€¸ıсş¸ı" #: src/hd-data.c:100 #, fuzzy msgid "Australia/Canberra" msgstr "²ÑÑ‚Ñ€°ğ¸ıсş¸ı" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "" #: src/hd-data.c:102 #, fuzzy msgid "Australia/Queensland" msgstr "²ÑÑ‚Ñ€°ğ¸ıсş¸ı" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "" #: src/hd-data.c:105 #, fuzzy msgid "Australia/Tasmania" msgstr "²ÑÑ‚Ñ€°ğ¸ıсş¸ı" #: src/hd-data.c:106 #, fuzzy msgid "Australia/Victoria" msgstr "²ÑÑ‚Ñ€°ğ¸ıсş¸ı" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "" #: src/hd-data.c:108 msgid "Aruba" msgstr "" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "" #: src/hd-data.c:111 msgid "Barbados" msgstr "" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "" #: src/hd-data.c:115 #, fuzzy msgid "Bulgaria" msgstr "’µ½³µÑ€Ñş¸ı" #: src/hd-data.c:116 msgid "Bahrain" msgstr "" #: src/hd-data.c:117 msgid "Burundi #" msgstr "" #: src/hd-data.c:118 msgid "Benin #" msgstr "" #: src/hd-data.c:119 msgid "Bermuda" msgstr "" #: src/hd-data.c:120 msgid "Brunei" msgstr "" #: src/hd-data.c:121 msgid "Bolivia" msgstr "" #: src/hd-data.c:123 msgid "Bahamas" msgstr "" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "" #: src/hd-data.c:126 msgid "Botswana" msgstr "" #: src/hd-data.c:127 msgid "Belarus" msgstr "" #: src/hd-data.c:128 msgid "Belize" msgstr "" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "" #: src/hd-data.c:131 #, fuzzy msgid "Canada/Manitoba" msgstr "š°½°´Ñş¸ı" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "" #: src/hd-data.c:135 msgid "Canada/Northwest Territories" msgstr "" #: src/hd-data.c:136 #, fuzzy msgid "Canada/Ontario" msgstr "š°½°´Ñş¸ı" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "" #: src/hd-data.c:140 #, fuzzy msgid "Canada/Yukon" msgstr "š°½°´Ñş¸ı" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "" #: src/hd-data.c:149 msgid "Switzerland/Basel-Landschaft" msgstr "" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "" #: src/hd-data.c:173 msgid "Chile" msgstr "" #: src/hd-data.c:174 msgid "Cameroon" msgstr "" #: src/hd-data.c:176 msgid "Colombia" msgstr "" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "" #: src/hd-data.c:178 msgid "Cuba" msgstr "" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "" #: src/hd-data.c:180 #, fuzzy msgid "Christmas Islands" msgstr " ĥ´µÑÑ‚²" #: src/hd-data.c:181 msgid "Cyprus" msgstr "" #: src/hd-data.c:182 #, fuzzy msgid "Czech Republic" msgstr "”µ½ÑŒ рµÑżÑƒħğ¸ş¸" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "" #: src/hd-data.c:184 #, fuzzy msgid "Germany/Berlin" msgstr "“µÑ€ĵ°½¸Ñ" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "" #: src/hd-data.c:186 #, fuzzy msgid "Germany/Bavaria" msgstr "“µÑ€ĵ°½¸Ñ" #: src/hd-data.c:187 #, fuzzy msgid "Germany/Bremen" msgstr "“µÑ€ĵ°½¸Ñ" #: src/hd-data.c:188 #, fuzzy msgid "Germany/Hesse" msgstr "“µÑ€ĵ°½¸Ñ" #: src/hd-data.c:189 #, fuzzy msgid "Germany/Hamburg" msgstr "“µÑ€ĵ°½¸Ñ" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saarland" msgstr "“µÑ€ĵ°½¸Ñ" #: src/hd-data.c:196 #, fuzzy msgid "Germany/Saxony" msgstr "“µÑ€ĵ°½¸Ñ" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "" #: src/hd-data.c:199 msgid "Djibouti" msgstr "" #: src/hd-data.c:200 msgid "Denmark" msgstr "" #: src/hd-data.c:201 msgid "Dominica" msgstr "" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "" #: src/hd-data.c:203 msgid "Algeria" msgstr "" #: src/hd-data.c:204 msgid "Ecuador" msgstr "" #: src/hd-data.c:205 msgid "Estonia" msgstr "" #: src/hd-data.c:206 msgid "Egypt" msgstr "" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "" #: src/hd-data.c:208 msgid "Eritrea" msgstr "" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "" #: src/hd-data.c:211 msgid "Finland" msgstr "" #: src/hd-data.c:212 msgid "Fiji #" msgstr "" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "" #: src/hd-data.c:215 msgid "Faroes" msgstr "" #: src/hd-data.c:217 msgid "Gabon #" msgstr "" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "" #: src/hd-data.c:219 #, fuzzy msgid "Great Britain/Northern Ireland" msgstr "’µğ¸şħр¸Ñ‚°½¸Ñ" #: src/hd-data.c:220 #, fuzzy msgid "Great Britain/Scotland" msgstr "’µğ¸şħр¸Ñ‚°½¸Ñ" #: src/hd-data.c:221 msgid "Grenada" msgstr "" #: src/hd-data.c:222 msgid "Georgia" msgstr "" #: src/hd-data.c:223 #, fuzzy msgid "French Guiana" msgstr "¤Ñ€°½Ñ†Ñƒ·Ñş¸ı" #: src/hd-data.c:224 msgid "Ghana" msgstr "" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "" #: src/hd-data.c:226 msgid "Greenland" msgstr "" #: src/hd-data.c:227 msgid "Gambia" msgstr "" #: src/hd-data.c:228 msgid "Guinea" msgstr "" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "" #: src/hd-data.c:231 #, fuzzy msgid "Greece" msgstr "“Ñ€µÑ‡µÑş¸ı" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "" #: src/hd-data.c:233 msgid "Guatemala" msgstr "" #: src/hd-data.c:234 msgid "Guam" msgstr "" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "" #: src/hd-data.c:236 msgid "Guyana #" msgstr "" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "" #: src/hd-data.c:239 msgid "Honduras" msgstr "" #: src/hd-data.c:240 msgid "Croatia" msgstr "" #: src/hd-data.c:241 msgid "Haiti" msgstr "" #: src/hd-data.c:242 #, fuzzy msgid "Hungary" msgstr "’µ½³µÑ€Ñş¸ı" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "" #: src/hd-data.c:244 msgid "Ireland" msgstr "" #: src/hd-data.c:246 msgid "India #" msgstr "" #: src/hd-data.c:247 msgid "Iraq" msgstr "" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "" #: src/hd-data.c:249 msgid "Iceland" msgstr "" #: src/hd-data.c:251 msgid "Jamaica" msgstr "" #: src/hd-data.c:252 msgid "Jordan" msgstr "" #: src/hd-data.c:254 msgid "Kenya #" msgstr "" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "" #: src/hd-data.c:258 msgid "Comoros" msgstr "" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "" #: src/hd-data.c:262 msgid "Kuwait" msgstr "" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "" #: src/hd-data.c:266 msgid "Lebanon" msgstr "" #: src/hd-data.c:267 #, fuzzy msgid "St Lucia" msgstr "”µ½ÑŒ Ħ². ›ÑŽÑ‡¸¸" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "" #: src/hd-data.c:270 #, fuzzy msgid "Liberia" msgstr "”µ½ÑŒ с²ħĥ´µ½¸Ñ" #: src/hd-data.c:271 msgid "Lesotho" msgstr "" #: src/hd-data.c:272 msgid "Lithuania" msgstr "" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "" #: src/hd-data.c:274 msgid "Latvia" msgstr "" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "" #: src/hd-data.c:276 msgid "Morocco" msgstr "" #: src/hd-data.c:277 msgid "Monaco" msgstr "" #: src/hd-data.c:278 #, fuzzy msgid "Republic of Moldova" msgstr "”µ½ÑŒ рµÑżÑƒħğ¸ş¸" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "" #: src/hd-data.c:282 msgid "Mali" msgstr "" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "" #: src/hd-data.c:284 msgid "Macau" msgstr "" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "" #: src/hd-data.c:286 #, fuzzy msgid "Martinique" msgstr "œ°Ñ€Ñ‚Ñ‹½² ´µ½ÑŒ" #: src/hd-data.c:287 msgid "Mauritania" msgstr "" #: src/hd-data.c:288 msgid "Montserrat" msgstr "" #: src/hd-data.c:289 msgid "Malta" msgstr "" #: src/hd-data.c:290 #, fuzzy msgid "Mauritius" msgstr "‘Ñ€¸Ñ‚°½Ñş¸ı" #: src/hd-data.c:291 msgid "Maldives" msgstr "" #: src/hd-data.c:292 msgid "Malawi" msgstr "" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "" #: src/hd-data.c:295 msgid "Mozambique" msgstr "" #: src/hd-data.c:296 msgid "Namibia" msgstr "" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "" #: src/hd-data.c:298 msgid "Niger" msgstr "" #: src/hd-data.c:299 msgid "Norfolk Island" msgstr "" #: src/hd-data.c:300 msgid "Nigeria" msgstr "" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "" #: src/hd-data.c:304 #, fuzzy msgid "Norway" msgstr "Ñ€²µĥсş¸ı" #: src/hd-data.c:305 msgid "Nepal #" msgstr "" #: src/hd-data.c:306 msgid "Nauru" msgstr "" #: src/hd-data.c:307 msgid "Niue" msgstr "" #: src/hd-data.c:309 msgid "Oman" msgstr "" #: src/hd-data.c:310 msgid "Panama" msgstr "" #: src/hd-data.c:311 msgid "Peru" msgstr "" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "" #: src/hd-data.c:314 msgid "Philippines" msgstr "" #: src/hd-data.c:315 msgid "Pakistan" msgstr "" #: src/hd-data.c:316 msgid "Poland" msgstr "" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "" #: src/hd-data.c:321 msgid "Palau" msgstr "" #: src/hd-data.c:322 msgid "Paraguay" msgstr "" #: src/hd-data.c:323 msgid "Qatar" msgstr "" #: src/hd-data.c:324 msgid "Rİunion" msgstr "" #: src/hd-data.c:325 msgid "Romania" msgstr "" #: src/hd-data.c:327 msgid "Rwanda" msgstr "" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "" #: src/hd-data.c:330 msgid "Seychellen" msgstr "" #: src/hd-data.c:331 msgid "Sudan" msgstr "" #: src/hd-data.c:332 #, fuzzy msgid "Sweden" msgstr "¨²µ´Ñş¸ı" #: src/hd-data.c:333 msgid "Singapore #" msgstr "" #: src/hd-data.c:334 msgid "St Helena" msgstr "" #: src/hd-data.c:335 #, fuzzy msgid "Slovenia" msgstr "Ħ𲵽сş¸ı" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "" #: src/hd-data.c:337 #, fuzzy msgid "Slovakia" msgstr "Ħ𲵽сş¸ı" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "" #: src/hd-data.c:339 msgid "San Marino" msgstr "" #: src/hd-data.c:340 msgid "Senegal" msgstr "" #: src/hd-data.c:341 msgid "Somalia" msgstr "" #: src/hd-data.c:342 msgid "Suriname #" msgstr "" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "" #: src/hd-data.c:344 msgid "El Salvador" msgstr "" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "" #: src/hd-data.c:346 msgid "Swaziland" msgstr "" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "" #: src/hd-data.c:348 msgid "Chad" msgstr "" #: src/hd-data.c:349 msgid "Togo #" msgstr "" #: src/hd-data.c:350 msgid "Thailand #" msgstr "" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "" #: src/hd-data.c:352 msgid "Tokelau" msgstr "" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "" #: src/hd-data.c:354 msgid "Tunisia" msgstr "" #: src/hd-data.c:355 msgid "Tonga" msgstr "" #: src/hd-data.c:356 msgid "Turkey" msgstr "" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "" #: src/hd-data.c:359 msgid "Taiwan" msgstr "" #: src/hd-data.c:360 msgid "Tanzania" msgstr "" #: src/hd-data.c:361 msgid "Ukraine" msgstr "" #: src/hd-data.c:362 msgid "Uganda" msgstr "" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "" #: src/hd-data.c:365 #, fuzzy msgid "United States/Arkansas" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:366 #, fuzzy msgid "United States/Arizona" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:367 #, fuzzy msgid "United States/California" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "" #: src/hd-data.c:371 #, fuzzy msgid "United States/Delaware" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "" #: src/hd-data.c:375 #, fuzzy msgid "United States/Iowa" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "" #: src/hd-data.c:377 #, fuzzy msgid "United States/Illinois" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:378 #, fuzzy msgid "United States/Indiana" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:379 #, fuzzy msgid "United States/Kansas" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "" #: src/hd-data.c:383 #, fuzzy msgid "United States/Maryland" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "" #: src/hd-data.c:386 #, fuzzy msgid "United States/Minnesota" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "" #: src/hd-data.c:389 #, fuzzy msgid "United States/Montana" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "" #: src/hd-data.c:397 msgid "United States/New York" msgstr "" #: src/hd-data.c:398 #, fuzzy msgid "United States/Ohio" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "" #: src/hd-data.c:407 #, fuzzy msgid "United States/Utah" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:408 #, fuzzy msgid "United States/Virginia" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "" #: src/hd-data.c:411 #, fuzzy msgid "United States/Wisconsin" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "" #: src/hd-data.c:414 msgid "Uruguay" msgstr "" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "" #: src/hd-data.c:417 msgid "Venezuela" msgstr "" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "" #: src/hd-data.c:423 msgid "Samoa" msgstr "" #: src/hd-data.c:424 msgid "Yemen" msgstr "" #: src/hd-data.c:425 msgid "Mayotte" msgstr "" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "" #: src/hd-data.c:427 msgid "South Africa" msgstr "" #: src/hd-data.c:428 msgid "Zambia" msgstr "" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "" #: src/hd-data.c:459 msgid "1st Advent" msgstr "ŸµÑ€²µ ŸÑ€¸ÑˆµÑÑ‚²¸µ" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "’трµ ŸÑ€¸ÑˆµÑÑ‚²¸µ" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "˘Ñ€µÑ‚ÑŒµ ŸÑ€¸ÑˆµÑÑ‚²¸µ" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "" #: src/hd-data.c:465 msgid "4th Advent" msgstr "§µÑ‚²µÑ€Ñ‚µ ŸÑ€¸ÑˆµÑÑ‚²¸µ" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:468 #, fuzzy msgid "Aborigines Day" msgstr "”µ½ÑŒ ŸÑ€¸½Ñ†µÑÑÑ‹" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "ŸµÑ€²µ °żÑ€µğя" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "”µ½ÑŒ с²µÑ… с²ÑÑ‚ых" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "”µ½ÑŒ ²ÑµÑ… ´ÑƒÑˆ" #: src/hd-data.c:472 #, fuzzy msgid "Alphabet Day" msgstr "”µ½ÑŒ ф𰳰" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "" #: src/hd-data.c:486 #, fuzzy msgid "Arbor Day" msgstr "”µ½ÑŒ тру´°" #: src/hd-data.c:487 #, fuzzy msgid "Armed Forces Day" msgstr "”µ½ÑŒ ²Ñ€Ñƒĥµ½½Ñ‹Ñ… с¸ğ" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "”µ½ÑŒ żµÑ€µĵ¸Ñ€¸Ñ" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "Ÿµżµğь½Ñ‹ı ż½µ´µğь½¸ş" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "Ÿµżµğь½°Ñ срµ´°" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:499 #, fuzzy msgid "BahĦ'i New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "" #: src/hd-data.c:503 #, fuzzy msgid "Basque National Day" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "" #: src/hd-data.c:508 #, fuzzy msgid "Bodhidharma's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:509 #, fuzzy msgid "Bosses' Day" msgstr "”µ½ÑŒ Ħ². ˜Ñ¸Ñ„°" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:513 #, fuzzy msgid "Buddha's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:514 msgid "Burns Night" msgstr "" #: src/hd-data.c:515 #, fuzzy msgid "Camoes Day" msgstr "”µ½ÑŒ Ħ². ”ĥµıĵс°" #: src/hd-data.c:516 msgid "Carnival" msgstr "" #: src/hd-data.c:517 msgid "Beltane" msgstr "" #: src/hd-data.c:518 msgid "Imbolg" msgstr "" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "" #: src/hd-data.c:520 #, fuzzy msgid "Samhain/Celtic New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:521 msgid "Children's Day" msgstr "”µ½ÑŒ ´µÑ‚µı" #: src/hd-data.c:522 msgid "Cycle" msgstr "" #: src/hd-data.c:523 #, fuzzy msgid "Chinese New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:524 #, fuzzy msgid "Chinese New Year's Eve" msgstr "²Ñ‹ı “´" #: src/hd-data.c:525 msgid "Christmas Day" msgstr " ĥ´µÑÑ‚²" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "š°½Ñƒ½ рĥ´µÑÑ‚²°" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "’·½µÑµ½¸µ р¸ÑÑ‚²" #: src/hd-data.c:528 #, fuzzy msgid "Chrysanthenum Day" msgstr " ĥ´µÑÑ‚²" #: src/hd-data.c:529 #, fuzzy msgid "Citizenship Day" msgstr "”µ½ÑŒ ´µÑ‚µı" #: src/hd-data.c:530 #, fuzzy msgid "Civic Holiday" msgstr "°Ñ†¸½°ğь½Ñ‹ı żÑ€°·´½¸ş" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "”µ½ÑŒ šğуĵħ°" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:533 #, fuzzy msgid "Confucius' Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ ŸÑ€¸½Ñ†µÑÑÑ‹ šÑ€½Ñ‹" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "“´²Ñ‰¸½° ş½ÑÑ‚¸Ñ‚уц¸¸" #: src/hd-data.c:535 #, fuzzy msgid "Coptic New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:536 #, fuzzy msgid "Cosmonauts' Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:537 #, fuzzy msgid "Cross Raising Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:538 msgid "Culture Day" msgstr "”µ½ÑŒ şÑƒğьтуры" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "”µ½ÑŒ ĵğ¸Ñ‚²Ñ‹ ¸ żş°Ñ½¸Ñ" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:547 #, fuzzy msgid "Double-9 Day" msgstr "”µ½ÑŒ ħµğя" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "”µ½ÑŒ ´¸½°ÑÑ‚¸¸" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "Ÿ°ÑÑ…°ğь½Ñ‹ı ż½µ´µğь½¸ş" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "Ÿ°ÑÑ…°ğь½µ ²ÑşÑ€µÑµ½ÑŒµ" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "" #: src/hd-data.c:554 msgid "Annular" msgstr "" #: src/hd-data.c:555 msgid "Partial" msgstr "" #: src/hd-data.c:556 msgid "Penumbral" msgstr "" #: src/hd-data.c:557 msgid "Total" msgstr "" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "" #: src/hd-data.c:559 msgid "Election Day" msgstr "”µ½ÑŒ ²Ñ‹ħр²" #: src/hd-data.c:560 #, fuzzy msgid "Emperor's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:561 #, fuzzy msgid "Equinox Day" msgstr "”µ½ÑŒ ²Ñ‹ħр²" #: src/hd-data.c:562 #, fuzzy msgid "Ethiopic New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:563 msgid "Father's Day" msgstr "”µ½ÑŒ тц²" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "ŸÑ€°·´½¸ş ˘µğ° р¸ÑÑ‚²°" #: src/hd-data.c:565 #, fuzzy msgid "Feast of Fortune" msgstr "ŸÑ€°·´½¸ş ˘µğ° р¸ÑÑ‚²°" #: src/hd-data.c:566 msgid "Feast of Heart Jesus" msgstr "" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:569 msgid "Flag Day" msgstr "”µ½ÑŒ ф𰳰" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "”µ½ÑŒ фğ°ĵ°½´Ñşı şÑƒğьтуры" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "”µ½ÑŒ фр°½Ñ†Ñƒ·Ñşı şÑƒğьтуры" #: src/hd-data.c:573 #, fuzzy msgid "French Revolutionary" msgstr "”µ½ÑŒ рµ²ğюц¸¸" #: src/hd-data.c:574 #, fuzzy msgid "Friendship Day" msgstr "”µ½ÑŒ ŸÑ€µ·¸´µ½Ñ‚°" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "”µ½ÑŒ ħъµ´¸½µ½¸Ñ “µÑ€ĵ°½¸¸" #: src/hd-data.c:576 #, fuzzy msgid "Good Friday" msgstr "”ħр°Ñ żÑÑ‚½¸Ñ†°" #: src/hd-data.c:577 #, fuzzy msgid "Good Saturday/Easter Eve" msgstr "”ħр°Ñ суħħт°/ş°½Ñƒ½ Ÿ°ÑÑ…¸" #: src/hd-data.c:578 #, fuzzy msgid "Grandparents' Day" msgstr "”µ½ÑŒ ŸÑ€µ·¸´µ½Ñ‚°" #: src/hd-data.c:579 #, fuzzy msgid "Greenery Day" msgstr "”µ½ÑŒ ĵğ¸Ñ‚²Ñ‹" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "" #: src/hd-data.c:583 #, fuzzy msgid "Guy Fawkes Day" msgstr "”µ½ÑŒ “°Ñ ¤ş°" #: src/hd-data.c:584 msgid "Halloween" msgstr "эğğу¸½" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:590 #, fuzzy msgid "Rosh Hashana/New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:599 #, fuzzy msgid "Yom Ha Azmaut/Independence Day" msgstr "”µ½ÑŒ ½µ·°²¸Ñ¸ĵст¸" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:602 #, fuzzy msgid "Holy Innocent's Day" msgstr "”µ½ÑŒ с²ÑÑ‚ых ĵğ°´µ½Ñ†µ²" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:604 #, fuzzy msgid "Huravee Day" msgstr "”µ½ÑŒ ĵğ¸Ñ‚²Ñ‹" #: src/hd-data.c:605 msgid "Independence Day" msgstr "”µ½ÑŒ ½µ·°²¸Ñ¸ĵст¸" #: src/hd-data.c:606 #, fuzzy msgid "Independence Movement Day" msgstr "”µ½ÑŒ ½µ·°²¸Ñ¸ĵст¸" #: src/hd-data.c:607 #, fuzzy msgid "Independence Proclamation" msgstr "žħъя²ğµ½¸µ ½µ·°²¸Ñ¸ĵст¸" #: src/hd-data.c:608 #, fuzzy msgid "Indian New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:609 #, fuzzy msgid "Aga Khan's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:610 msgid "Ashura'" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:614 msgid "Ghadir" msgstr "" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "" #: src/hd-data.c:616 #, fuzzy msgid "Islamic New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:618 #, fuzzy msgid "Quds Day" msgstr "”µ½ÑŒ šğуĵħ°" #: src/hd-data.c:619 msgid "Ramadan" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:624 #, fuzzy msgid "Japanese New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:628 msgid "Labour Day" msgstr "”µ½ÑŒ тру´°" #: src/hd-data.c:629 #, fuzzy msgid "Labour Thanksgiving Day" msgstr "”µ½ÑŒ ħğ°³´°Ñ€µ½¸Ñ" #: src/hd-data.c:630 #, fuzzy msgid "Lao Tze's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "”µ½ÑŒ с²ħĥ´µ½¸Ñ" #: src/hd-data.c:632 #, fuzzy msgid "Marine Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:633 msgid "Martinimas" msgstr "œ°Ñ€Ñ‚Ñ‹½² ´µ½ÑŒ" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "”µ½ÑŒ œ°Ñ€Ñ‚¸½° ›. š¸½³°" #: src/hd-data.c:635 #, fuzzy msgid "Martyrs' Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "”µ½ÑŒ ħğ°³²µÑ‰µ½¸Ñ œ°Ñ€¸¸" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "’·½µÑµ½¸µ ‘³Ñ€´¸Ñ†Ñ‹" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:639 #, fuzzy msgid "Mary's Expectation" msgstr "”µ½ÑŒ ħğ°³²µÑ‰µ½¸Ñ œ°Ñ€¸¸" #: src/hd-data.c:640 #, fuzzy msgid "Mary's Immaculate Conception" msgstr "µżÑ€Ñ‡½µ ·°Ñ‡°Ñ‚¸µ" #: src/hd-data.c:641 #, fuzzy msgid "Mary's Maternity" msgstr "’·½µÑµ½¸µ ‘³Ñ€´¸Ñ†Ñ‹" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:645 #, fuzzy msgid "Mary's Visitation" msgstr "”µ½ÑŒ ħğ°³²µÑ‰µ½¸Ñ œ°Ñ€¸¸" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "’µğ¸ş¸ı чµÑ‚²µÑ€³" #: src/hd-data.c:648 msgid "May Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:649 #, fuzzy msgid "St John's/Midsummer Day" msgstr "”µ½ÑŒ Ħ². ˜°½½°" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:654 msgid "Full Moon" msgstr "" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:656 msgid "New Moon" msgstr "" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "”µ½ÑŒ ĵ°Ñ‚µÑ€µı" #: src/hd-data.c:658 #, fuzzy msgid "Mother in Law's Day" msgstr "”µ½ÑŒ ĵ°Ñ‚µÑ€µı" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:660 #, fuzzy msgid "National Foundation Day" msgstr "°Ñ†¸½°ğь½Ñ‹ı żÑ€°·´½¸ş" #: src/hd-data.c:661 msgid "National Holiday" msgstr "°Ñ†¸½°ğь½Ñ‹ı żÑ€°·´½¸ş" #: src/hd-data.c:662 #, fuzzy msgid "National Mourning Day" msgstr "°Ñ†¸½°ğь½Ñ‹ı żÑ€°·´½¸ş" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:664 #, fuzzy msgid "Nurses' Day" msgstr "”µ½ÑŒ ŸÑ€¸½Ñ†µÑÑÑ‹" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:667 #, fuzzy msgid "Orthodox New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "’µÑ€ħ½µ ²ÑşÑ€µÑµ½ÑŒµ" #: src/hd-data.c:670 #, fuzzy msgid "Parent's Day" msgstr "”µ½ÑŒ ŸÑ€µ·¸´µ½Ñ‚°" #: src/hd-data.c:671 #, fuzzy msgid "Passion Sunday" msgstr "’µÑ€ħ½µ ²ÑşÑ€µÑµ½ÑŒµ" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "˘Ñ€¸Ñ†Ñ‹½ ´µ½ÑŒ" #: src/hd-data.c:675 #, fuzzy msgid "Noruz/Persian New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "”µ½ÑŒ ĵğ¸Ñ‚²Ñ‹" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "" #: src/hd-data.c:678 #, fuzzy msgid "Presidents' Day" msgstr "”µ½ÑŒ ŸÑ€µ·¸´µ½Ñ‚°" #: src/hd-data.c:679 #, fuzzy msgid "Presidents' Inform" msgstr "”µ½ÑŒ ŸÑ€µ·¸´µ½Ñ‚°" #: src/hd-data.c:680 #, fuzzy msgid "President Lincoln's Birthday" msgstr "”µ½ÑŒ ŸÑ€µ·¸´µ½Ñ‚°" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "”µ½ÑŒ ŸÑ€¸½Ñ†µÑÑÑ‹" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "”µ½ÑŒ  µÑ„Ñ€ĵ°Ñ†¸¸" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:685 msgid "Republic Day" msgstr "”µ½ÑŒ рµÑżÑƒħğ¸ş¸" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "”µ½ÑŒ рµ²ğюц¸¸" #: src/hd-data.c:688 #, fuzzy msgid "Rio de Janeiro Anniversary" msgstr "“´²Ñ‰¸½° ş½ÑÑ‚¸Ñ‚уц¸¸" #: src/hd-data.c:689 #, fuzzy msgid "Rogation Sunday" msgstr "”µ½ÑŒ  µÑ„Ñ€ĵ°Ñ†¸¸" #: src/hd-data.c:690 #, fuzzy msgid "Sao Paulo Anniversary" msgstr "“´²Ñ‰¸½° ş½ÑÑ‚¸Ñ‚уц¸¸" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:693 #, fuzzy msgid "Septuagesima Sunday" msgstr "’µÑ€ħ½µ ²ÑşÑ€µÑµ½ÑŒµ" #: src/hd-data.c:694 #, fuzzy msgid "Seven Sleepers Day" msgstr "”µ½ÑŒ Ħ². ĦтµÑ„°½°" #: src/hd-data.c:695 #, fuzzy msgid "Sexagesima Sunday" msgstr "’µÑ€ħ½µ ²ÑşÑ€µÑµ½ÑŒµ" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "" #: src/hd-data.c:697 #, fuzzy msgid "Solstice Day" msgstr "”µ½ÑŒ żµÑ€µĵ¸Ñ€¸Ñ" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "" #: src/hd-data.c:700 msgid "Start of common month" msgstr "" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "" #: src/hd-data.c:702 msgid "Star Festival" msgstr "" #: src/hd-data.c:703 #, fuzzy msgid "St Andrew's Day" msgstr "”µ½ÑŒ Ħ². “µÑ€³¸Ñ" #: src/hd-data.c:704 #, fuzzy msgid "St Bartholomew Day" msgstr "”µ½ÑŒ Ħ². ‘µÑ€Ñ…Ñ‚ğь´°" #: src/hd-data.c:705 #, fuzzy msgid "St Berchtold's Day" msgstr "”µ½ÑŒ Ħ². ‘µÑ€Ñ…Ñ‚ğь´°" #: src/hd-data.c:706 #, fuzzy msgid "St David's Day" msgstr "”µ½ÑŒ Ħ². ”°²¸´°" #: src/hd-data.c:707 #, fuzzy msgid "St Edward's Day" msgstr "”µ½ÑŒ Ħ². ­´²°Ñ€´°" #: src/hd-data.c:708 #, fuzzy msgid "St George's Day" msgstr "”µ½ÑŒ Ħ². “µÑ€³¸Ñ" #: src/hd-data.c:709 #, fuzzy msgid "St James' Day" msgstr "”µ½ÑŒ Ħ². ”ĥµıĵс°" #: src/hd-data.c:710 #, fuzzy msgid "St Joseph's Day" msgstr "”µ½ÑŒ Ħ². ˜Ñ¸Ñ„°" #: src/hd-data.c:711 #, fuzzy msgid "St Laurentius Day" msgstr "”µ½ÑŒ Ħ². ’°ğµ½Ñ‚¸½°" #: src/hd-data.c:712 #, fuzzy msgid "St Nicholas' Day" msgstr "”µ½ÑŒ Ħ². ¸şğ°Ñ" #: src/hd-data.c:713 #, fuzzy msgid "St Nicholas' Eve" msgstr "”µ½ÑŒ Ħ². ¸şğ°Ñ" #: src/hd-data.c:714 #, fuzzy msgid "St Patrick's Day" msgstr "”µ½ÑŒ Ħ². Ÿ°Ñ‚Ñ€¸ş°" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:716 #, fuzzy msgid "St Stephen's Day" msgstr "”µ½ÑŒ Ħ². ĦтµÑ„°½°" #: src/hd-data.c:717 #, fuzzy msgid "St Valentine's Day" msgstr "”µ½ÑŒ Ħ². ’°ğµ½Ñ‚¸½°" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "" #: src/hd-data.c:720 #, fuzzy msgid "Sweetest Day" msgstr "”µ½ÑŒ ²µÑ‚µÑ€°½²" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "”µ½ÑŒ уч¸Ñ‚µğµı" #: src/hd-data.c:723 #, fuzzy msgid "Thai New Year's Day" msgstr "²Ñ‹ı “´" #: src/hd-data.c:724 #, fuzzy msgid "Thanksgiving Day" msgstr "”µ½ÑŒ ħğ°³´°Ñ€µ½¸Ñ" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğµ²Ñ‹" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "" #: src/hd-data.c:728 #, fuzzy msgid "Tiradentes Day" msgstr "”µ½ÑŒ ŸÑ€µ·¸´µ½Ñ‚°" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:730 #, fuzzy msgid "Transfiguration Day" msgstr "”µ½ÑŒ с²ħĥ´µ½¸Ñ" #: src/hd-data.c:731 #, fuzzy msgid "Tynwald Day" msgstr "”µ½ÑŒ ´¸½°ÑÑ‚¸¸" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "”µ½ÑŒ ²µÑ‚µÑ€°½²" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "”µ½ÑŒ ’¸şÑ‚Ñ€¸¸" #: src/hd-data.c:736 msgid "Victory Day" msgstr "”µ½ÑŒ Ÿħµ´Ñ‹" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "”ух² ´µ½ÑŒ" #: src/hd-data.c:738 #, fuzzy msgid "Women's Day" msgstr "”µ½ÑŒ ĵ°Ñ‚µÑ€µı" #: src/hd-data.c:739 #, fuzzy msgid "Women's Shrove Day" msgstr "”µ½ÑŒ ¸Ñż²µ´°½¸Ñ ĥµ½Ñ‰¸½" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "’сµĵ¸Ñ€½Ñ‹ı ´µ½ÑŒ ĥ¸²Ñ‚½Ñ‹Ñ…" #: src/hd-data.c:741 #, fuzzy msgid "Youth Day" msgstr "”µ½ÑŒ ĵ°Ñ‚µÑ€µı" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:748 #, fuzzy msgid "Admission Day" msgstr "”µ½ÑŒ żµÑ€µĵ¸Ñ€¸Ñ" #: src/hd-data.c:749 #, fuzzy msgid "Alaska Day" msgstr "”µ½ÑŒ ф𰳰" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:752 #, fuzzy msgid "All Saints' Eve" msgstr "”µ½ÑŒ с²µÑ… с²ÑÑ‚ых" #: src/hd-data.c:753 #, fuzzy msgid "Americas Day" msgstr "”µ½ÑŒ ²Ñ€Ñƒĥµ½½Ñ‹Ñ… с¸ğ" #: src/hd-data.c:754 #, fuzzy msgid "Angam Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:759 #, fuzzy msgid "Antillian Day" msgstr "”µ½ÑŒ с²µÑ… с²ÑÑ‚ых" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:764 #, fuzzy msgid "Arengo Anniversary" msgstr "“´²Ñ‰¸½° ş½ÑÑ‚¸Ñ‚уц¸¸" #: src/hd-data.c:765 #, fuzzy msgid "Army Coup Day" msgstr "”µ½ÑŒ ²Ñ€Ñƒĥµ½½Ñ‹Ñ… с¸ğ" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:767 #, fuzzy msgid "Artigas' Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:768 #, fuzzy msgid "Asuncion Day" msgstr "”µ½ÑŒ ²Ñ‹ħр²" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:771 #, fuzzy msgid "Ba'ath Revolution Day" msgstr "”µ½ÑŒ рµ²ğюц¸¸" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:773 #, fuzzy msgid "Bataan Day" msgstr "”µ½ÑŒ ²µÑ‚µÑ€°½²" #: src/hd-data.c:774 msgid "Battle of Angamos" msgstr "" #: src/hd-data.c:775 msgid "Battle of BoyacĦ" msgstr "" #: src/hd-data.c:776 msgid "Battle of Carabobo" msgstr "" #: src/hd-data.c:777 msgid "Battle of Iquique" msgstr "" #: src/hd-data.c:778 msgid "Battle of Las Piedras" msgstr "" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:781 #, fuzzy msgid "Belgrade's Day" msgstr "”µ½ÑŒ уч¸Ñ‚µğµı" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "" #: src/hd-data.c:786 #, fuzzy msgid "Bonaire Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:787 #, fuzzy msgid "Boqueron Battle Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:788 msgid "Botswana Day" msgstr "" #: src/hd-data.c:789 #, fuzzy msgid "Bounty Day" msgstr "”µ½ÑŒ ´¸½°ÑÑ‚¸¸" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "Ħĥĥµ½¸µ ݽ° “ус°" #: src/hd-data.c:792 #, fuzzy msgid "Canberra Day" msgstr "”µ½ÑŒ ĵğ¸Ñ‚²Ñ‹" #: src/hd-data.c:793 #, fuzzy msgid "Caricom Day" msgstr " ĥ´µÑÑ‚²" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:795 #, fuzzy msgid "Cassinga Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:798 #, fuzzy msgid "Charter Day" msgstr "”µ½ÑŒ тц²" #: src/hd-data.c:799 #, fuzzy msgid "Chiang Kai-shek's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:800 #, fuzzy msgid "Children's White Sunday" msgstr "”µ½ÑŒ ´µÑ‚µı" #: src/hd-data.c:801 #, fuzzy msgid "Colon Day" msgstr "”µ½ÑŒ рµ²ğюц¸¸" #: src/hd-data.c:802 #, fuzzy msgid "Colorado Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:803 #, fuzzy msgid "Commonwealth Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:804 #, fuzzy msgid "Compact Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:807 #, fuzzy msgid "Cup Match Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:808 #, fuzzy msgid "Custom Chief's Day" msgstr "”µ½ÑŒ ´µÑ‚µı" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "”µ½ÑŒ сту´µ½Ñ‡µÑş³ ²ÑÑÑ‚°½¸Ñ" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:814 #, fuzzy msgid "Death of H. Christophe" msgstr "ŸÑ€°·´½¸ş ˘µğ° р¸ÑÑ‚²°" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:821 #, fuzzy msgid "Defenders Day" msgstr "”µ½ÑŒ ½µ·°²¸Ñ¸ĵст¸" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:824 #, fuzzy msgid "Discovery Day" msgstr "”µ½ÑŒ Ÿħµ´Ñ‹" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:827 #, fuzzy msgid "Dr. Sun Yat-sen's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğµ²Ñ‹" #: src/hd-data.c:828 #, fuzzy msgid "Duarte's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğµ²Ñ‹" #: src/hd-data.c:829 #, fuzzy msgid "Easter Tuesday" msgstr "Ÿ°ÑÑ…°ğь½µ ²ÑşÑ€µÑµ½ÑŒµ" #: src/hd-data.c:830 #, fuzzy msgid "Economic Liberation Day" msgstr "”µ½ÑŒ с²ħĥ´µ½¸Ñ" #: src/hd-data.c:831 #, fuzzy msgid "Eight Hours Day" msgstr "”µ½ÑŒ Ÿħµ´Ñ‹" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:834 #, fuzzy msgid "Evacuation Day" msgstr "”µ½ÑŒ ²Ñ‹ħр²" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:838 #, fuzzy msgid "Family Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:839 #, fuzzy msgid "FAO Day" msgstr "”µ½ÑŒ ф𰳰" #: src/hd-data.c:840 #, fuzzy msgid "Farmers' Day" msgstr "”µ½ÑŒ тц²" #: src/hd-data.c:841 #, fuzzy msgid "Father Leval Day" msgstr "”µ½ÑŒ тц²" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "" #: src/hd-data.c:843 #, fuzzy msgid "Fisherman's Day" msgstr "”µ½ÑŒ тц²" #: src/hd-data.c:844 #, fuzzy msgid "Foundation of NPLA Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:849 #, fuzzy msgid "Gospel Day" msgstr "”µ½ÑŒ ħµğя" #: src/hd-data.c:850 #, fuzzy msgid "Guacanaste Day" msgstr "”µ½ÑŒ ´¸½°ÑÑ‚¸¸" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "”µ½ÑŒ “уст°²° ´ğьф°" #: src/hd-data.c:852 #, fuzzy msgid "Heritage Day" msgstr "”µ½ÑŒ żµÑ€µĵ¸Ñ€¸Ñ" #: src/hd-data.c:853 #, fuzzy msgid "Heroes Day" msgstr "”µ½ÑŒ тц²" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:855 #, fuzzy msgid "Holy Wednesday" msgstr "Ħрµ´°" #: src/hd-data.c:856 #, fuzzy msgid "Ho Chi Minh's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:857 #, fuzzy msgid "Human Rights Day" msgstr "”µ½ÑŒ ħъµ´¸½µ½¸Ñ “µÑ€ĵ°½¸¸" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:859 #, fuzzy msgid "Hurricane Thanksgiving Day" msgstr "”µ½ÑŒ ħğ°³´°Ñ€µ½¸Ñ" #: src/hd-data.c:860 #, fuzzy msgid "Independence of Cartagena" msgstr "”µ½ÑŒ ½µ·°²¸Ñ¸ĵст¸" #: src/hd-data.c:861 #, fuzzy msgid "Independence of Cuenca" msgstr "”µ½ÑŒ ½µ·°²¸Ñ¸ĵст¸" #: src/hd-data.c:862 #, fuzzy msgid "Independence of Guayaquil" msgstr "”µ½ÑŒ ½µ·°²¸Ñ¸ĵст¸" #: src/hd-data.c:863 #, fuzzy msgid "Independence of Quito" msgstr "”µ½ÑŒ ½µ·°²¸Ñ¸ĵст¸" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:865 #, fuzzy msgid "Internal Autonomy Day" msgstr "œµĥ´Ñƒ½°Ñ€´½Ñ‹ı ĥµ½Ñş¸ı ´µ½ÑŒ" #: src/hd-data.c:866 #, fuzzy msgid "Jefferson Davis' Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ ŸÑ€¸½Ñ†µÑÑÑ‹ šÑ€½Ñ‹" #: src/hd-data.c:867 #, fuzzy msgid "June Holiday" msgstr "°Ñ†¸½°ğь½Ñ‹ı żÑ€°·´½¸ş" #: src/hd-data.c:868 #, fuzzy msgid "J. Barbosa's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:869 #, fuzzy msgid "J. Chilembwe Day" msgstr "”µ½ÑŒ ´µÑ‚µı" #: src/hd-data.c:870 #, fuzzy msgid "J. Diego's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:871 #, fuzzy msgid "J. Robert's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğµ²Ñ‹" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:873 #, fuzzy msgid "Kartini Day" msgstr "œ°Ñ€Ñ‚Ñ‹½² ´µ½ÑŒ" #: src/hd-data.c:874 #, fuzzy msgid "Catherine Show Day" msgstr "”µ½ÑŒ тц²" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "" #: src/hd-data.c:876 #, fuzzy msgid "Kim Il-Sung's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:877 #, fuzzy msgid "Kim Jong-Il's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:885 #, fuzzy msgid "Liberty Day" msgstr "”µ½ÑŒ с²ħĥ´µ½¸Ñ" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "" #: src/hd-data.c:888 #, fuzzy msgid "Lyndon B. Johnson Day" msgstr "”µ½ÑŒ Ħ². ˜°½½°" #: src/hd-data.c:889 #, fuzzy msgid "L. Rivera's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:890 #, fuzzy msgid "Madaraka Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:891 #, fuzzy msgid "Mahatma Gandhi's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğя" #: src/hd-data.c:892 #, fuzzy msgid "Malvinas Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:893 #, fuzzy msgid "Manila Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:894 #, fuzzy msgid "Maputo City Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:896 #, fuzzy msgid "Maryland Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:898 #, fuzzy msgid "Merchant Day" msgstr "”µ½ÑŒ ħъµ´¸½µ½¸Ñ “µÑ€ĵ°½¸¸" #: src/hd-data.c:899 #, fuzzy msgid "St John's/Midsummers Eve" msgstr "š°½Ñƒ½ ğµÑ‚½µ³ сğ½Ñ†µÑÑ‚я½¸Ñ" #: src/hd-data.c:900 #, fuzzy msgid "Missionary Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "" #: src/hd-data.c:902 #, fuzzy msgid "Morazan Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:903 #, fuzzy msgid "Mosheshoe's Day" msgstr "”µ½ÑŒ ĵ°Ñ‚µÑ€µı" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:905 #, fuzzy msgid "Naming Day" msgstr "”µ½ÑŒ ф𰳰" #: src/hd-data.c:906 #, fuzzy msgid "National Bun Day" msgstr "°Ñ†¸½°ğь½Ñ‹ı żÑ€°·´½¸ş" #: src/hd-data.c:907 #, fuzzy msgid "National Heroes Day" msgstr "°Ñ†¸½°ğь½Ñ‹ı żÑ€°·´½¸ş" #: src/hd-data.c:908 #, fuzzy msgid "National Redemption Day" msgstr "°Ñ†¸½°ğь½Ñ‹ı żÑ€°·´½¸ş" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:910 #, fuzzy msgid "National Revival Day" msgstr "°Ñ†¸½°ğь½Ñ‹ı żÑ€°·´½¸ş" #: src/hd-data.c:911 #, fuzzy msgid "National Unity Day" msgstr "”µ½ÑŒ ħъµ´¸½µ½¸Ñ “µÑ€ĵ°½¸¸" #: src/hd-data.c:912 #, fuzzy msgid "Ndadaye Day" msgstr "”µ½ÑŒ ĵğ¸Ñ‚²Ñ‹" #: src/hd-data.c:913 #, fuzzy msgid "Neutrality Day" msgstr "”µ½ÑŒ ħъµ´¸½µ½¸Ñ “µÑ€ĵ°½¸¸" #: src/hd-data.c:914 #, fuzzy msgid "Nevada Day" msgstr "”µ½ÑŒ ħµğя" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:916 #, fuzzy msgid "Nobel Day" msgstr "”µ½ÑŒ ħµğя" #: src/hd-data.c:917 #, fuzzy msgid "Noi Day" msgstr "”µ½ÑŒ ħµğя" #: src/hd-data.c:918 msgid "OAU Day" msgstr "" #: src/hd-data.c:919 #, fuzzy msgid "October Holiday" msgstr "°Ñ†¸½°ğь½Ñ‹ı żÑ€°·´½¸ş" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:927 #, fuzzy msgid "Panama City Day" msgstr "”µ½ÑŒ ħъµ´¸½µ½¸Ñ “µÑ€ĵ°½¸¸" #: src/hd-data.c:928 #, fuzzy msgid "Panamerica Day" msgstr "”µ½ÑŒ ĵğ¸Ñ‚²Ñ‹" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:930 #, fuzzy msgid "Patriot's Day" msgstr "”µ½ÑŒ Ħ². Ÿ°Ñ‚Ñ€¸ş°" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "" #: src/hd-data.c:932 msgid "People Power Day" msgstr "" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:934 #, fuzzy msgid "Pichincha Day" msgstr "”µ½ÑŒ ’¸şÑ‚Ñ€¸¸" #: src/hd-data.c:935 #, fuzzy msgid "Picnic Day" msgstr "”µ½ÑŒ ŸÑ€¸½Ñ†µÑÑÑ‹" #: src/hd-data.c:936 #, fuzzy msgid "Pioneer Day" msgstr "”µ½ÑŒ ĵğ¸Ñ‚²Ñ‹" #: src/hd-data.c:937 #, fuzzy msgid "Poya Day" msgstr "”µ½ÑŒ ĵğ¸Ñ‚²Ñ‹" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:939 #, fuzzy msgid "Prince of Wales' Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ ŸÑ€¸½Ñ†µÑÑÑ‹ šÑ€½Ñ‹" #: src/hd-data.c:940 #, fuzzy msgid "Proclamation Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:943 #, fuzzy msgid "Recreation Day" msgstr "”µ½ÑŒ  µÑ„Ñ€ĵ°Ñ†¸¸" #: src/hd-data.c:944 #, fuzzy msgid "Referendum Day" msgstr "”µ½ÑŒ  µÑ„Ñ€ĵ°Ñ†¸¸" #: src/hd-data.c:945 #, fuzzy msgid "Regatta Day" msgstr "”µ½ÑŒ  µÑ„Ñ€ĵ°Ñ†¸¸" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:947 #, fuzzy msgid "Restoration Day" msgstr "”µ½ÑŒ  µÑ„Ñ€ĵ°Ñ†¸¸" #: src/hd-data.c:948 #, fuzzy msgid "Return Day" msgstr "”µ½ÑŒ ²µÑ‚µÑ€°½²" #: src/hd-data.c:949 #, fuzzy msgid "Reunification Day" msgstr "”µ½ÑŒ  µÑ„Ñ€ĵ°Ñ†¸¸" #: src/hd-data.c:950 #, fuzzy msgid "Rizal Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:951 #, fuzzy msgid "Rwagasore Day" msgstr "”µ½ÑŒ тру´°" #: src/hd-data.c:952 #, fuzzy msgid "Saba Day" msgstr "”µ½ÑŒ тру´°" #: src/hd-data.c:953 #, fuzzy msgid "San Jacinto Day" msgstr "”µ½ÑŒ Ħ². ˜°½½° šÑ€µÑÑ‚¸Ñ‚µğя" #: src/hd-data.c:954 #, fuzzy msgid "San Josİ Day" msgstr "”µ½ÑŒ Ħ². ˜°½½°" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:956 #, fuzzy msgid "School Holiday" msgstr "°Ñ†¸½°ğь½Ñ‹ı żÑ€°·´½¸ş" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "" #: src/hd-data.c:958 #, fuzzy msgid "Separation Day" msgstr "”µ½ÑŒ с²ħĥ´µ½¸Ñ" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:960 #, fuzzy msgid "Settlers Day" msgstr "”µ½ÑŒ ²µÑ‚µÑ€°½²" #: src/hd-data.c:961 #, fuzzy msgid "Seward's Day" msgstr "”µ½ÑŒ Ħ². ­´²°Ñ€´°" #: src/hd-data.c:962 #, fuzzy msgid "Shaheed Day" msgstr "”µ½ÑŒ тц²" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:964 #, fuzzy msgid "Sheikh Zayed's Ascension Day" msgstr "’·½µÑµ½¸µ ‘³Ñ€´¸Ñ†Ñ‹" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:966 #, fuzzy msgid "Sinai-Liberation Day" msgstr "”µ½ÑŒ с²ħĥ´µ½¸Ñ" #: src/hd-data.c:967 #, fuzzy msgid "Slave-Liberation Day" msgstr "”µ½ÑŒ с²ħĥ´µ½¸Ñ" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:970 #, fuzzy msgid "Somers Day" msgstr "”µ½ÑŒ ĵ°Ñ‚µÑ€µı" #: src/hd-data.c:971 #, fuzzy msgid "Statia-American Day" msgstr "”µ½ÑŒ Ħ². Ÿ°Ñ‚Ñ€¸ş°" #: src/hd-data.c:972 #, fuzzy msgid "Student's Day" msgstr "”µ½ÑŒ ŸÑ€µ·¸´µ½Ñ‚°" #: src/hd-data.c:973 #, fuzzy msgid "St Agata Day" msgstr "”µ½ÑŒ Ħ². Ÿ°Ñ‚Ñ€¸ş°" #: src/hd-data.c:974 #, fuzzy msgid "St Canute's Day" msgstr "”µ½ÑŒ Ħ². ’°ğµ½Ñ‚¸½°" #: src/hd-data.c:975 #, fuzzy msgid "St Cedilia's Day" msgstr "”µ½ÑŒ Ħ². ›ÑŽÑ‡¸¸" #: src/hd-data.c:976 #, fuzzy msgid "St Charles' Day" msgstr "”µ½ÑŒ Ħ². ”ĥµıĵс°" #: src/hd-data.c:977 #, fuzzy msgid "St Demetrius' Day" msgstr "”µ½ÑŒ Ħ². ”ĥµıĵс°" #: src/hd-data.c:978 #, fuzzy msgid "St Dİvote Day" msgstr "”µ½ÑŒ Ħ². ˜Ñ¸Ñ„°" #: src/hd-data.c:979 #, fuzzy msgid "St Eliah's Day" msgstr "”µ½ÑŒ Ħ². ›ÑŽÑ‡¸¸" #: src/hd-data.c:980 #, fuzzy msgid "St Jean Baptiste Day" msgstr "”µ½ÑŒ Ħ². ˜°½½° šÑ€µÑÑ‚¸Ñ‚µğя" #: src/hd-data.c:981 #, fuzzy msgid "St Lucia's Day" msgstr "”µ½ÑŒ Ħ². ›ÑŽÑ‡¸¸" #: src/hd-data.c:982 #, fuzzy msgid "St Marguerite's Day" msgstr "”µ½ÑŒ Ħ². “µÑ€³¸Ñ" #: src/hd-data.c:983 #, fuzzy msgid "St Maroon's Day" msgstr "”µ½ÑŒ Ħ². ˜°½½°" #: src/hd-data.c:984 #, fuzzy msgid "St Michael's Day" msgstr "”µ½ÑŒ Ħ². ¸şğ°Ñ" #: src/hd-data.c:985 #, fuzzy msgid "St Olav's Day" msgstr "”µ½ÑŒ Ħ². ”°²¸´°" #: src/hd-data.c:986 #, fuzzy msgid "St Olav's Eve" msgstr "š°½Ñƒ½ ´½Ñ Ħ². ˜°½½°" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:989 #, fuzzy msgid "St Ursula's Day" msgstr "”µ½ÑŒ Ħ². ›ÑŽÑ‡¸¸" #: src/hd-data.c:990 #, fuzzy msgid "St Vincent de Paul's Day" msgstr "”µ½ÑŒ Ħ². ’°ğµ½Ñ‚¸½°" #: src/hd-data.c:991 #, fuzzy msgid "Suez Victory Day" msgstr "”µ½ÑŒ Ÿħµ´Ñ‹" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:994 #, fuzzy msgid "Sweden Day" msgstr "”µ½ÑŒ ŸÑ€µ·¸´µ½Ñ‚°" #: src/hd-data.c:995 #, fuzzy msgid "S. Doe's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğµ²Ñ‹" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:997 #, fuzzy msgid "Territory Day" msgstr "”µ½ÑŒ Ÿħµ´Ñ‹" #: src/hd-data.c:998 #, fuzzy msgid "The Crown Princesse's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ ŸÑ€¸½Ñ†µÑÑÑ‹ šÑ€½Ñ‹" #: src/hd-data.c:999 #, fuzzy msgid "The Crown Princesse's Name-Day" msgstr "˜ĵµ½¸½Ñ‹ ŸÑ€¸½Ñ†µÑÑÑ‹ šÑ€½Ñ‹" #: src/hd-data.c:1000 #, fuzzy msgid "The Crown Prince's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ ŸÑ€¸½Ñ†µÑÑÑ‹ šÑ€½Ñ‹" #: src/hd-data.c:1001 #, fuzzy msgid "The King's Name-Day" msgstr "˜ĵµ½¸½Ñ‹ šÑ€ğя" #: src/hd-data.c:1002 #, fuzzy msgid "The Queen's Name-Day" msgstr "˜ĵµ½¸½Ñ‹ šÑ€ğµ²Ñ‹" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1004 #, fuzzy msgid "Town Meeting Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:1005 #, fuzzy msgid "Traditional Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:1006 #, fuzzy msgid "Transfer Day" msgstr "”µ½ÑŒ ĵğ¸Ñ‚²Ñ‹" #: src/hd-data.c:1007 #, fuzzy msgid "Truman Day" msgstr "”µ½ÑŒ  µÑ„Ñ€ĵ°Ñ†¸¸" #: src/hd-data.c:1008 #, fuzzy msgid "Union Day" msgstr "”µ½ÑŒ şÑ€½°Ñ†¸¸" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "”µ½ÑŒ žħъµ´¸½µ½½Ñ‹Ñ… °Ñ†¸ı" #: src/hd-data.c:1011 #, fuzzy msgid "Unity Factory Day" msgstr "”µ½ÑŒ Ÿħµ´Ñ‹" #: src/hd-data.c:1012 #, fuzzy msgid "Victor-Schoelcher Day" msgstr "”µ½ÑŒ Ÿħµ´Ñ‹" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1014 #, fuzzy msgid "West Virginia Day" msgstr "”µ½ÑŒ ’¸şÑ‚Ñ€¸¸" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "š°½Ñƒ½ тр¸Ñ†Ñ‹½° ´½Ñ" #: src/hd-data.c:1016 #, fuzzy msgid "W. Tubman's Birthday" msgstr "”µ½ÑŒ рĥ´µ½¸Ñ şÑ€ğµ²Ñ‹" #: src/hd-data.c:1017 #, fuzzy msgid "Yap Day" msgstr "ŸµÑ€²µ œ°Ñ" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "" #: src/hd-data.c:1287 #, fuzzy msgid "Ast" msgstr "²³ÑƒÑÑ‚" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "" #: src/hd-data.c:1550 msgid "Cel" msgstr "" #: src/hd-data.c:1692 src/hd-data.c:2225 #, fuzzy msgid "Chi" msgstr "р¸ÑÑ‚¸°½Ñş¸ı" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2227 src/hd-data.c:3730 #, fuzzy msgid "Jap" msgstr "ݽ²" #: src/hd-data.c:2423 msgid "Chr" msgstr "р¸ÑÑ‚¸°½Ñş¸ı" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "" #: src/hd-data.c:2778 src/hd-data.c:2960 #, fuzzy msgid "Heb" msgstr "¤µ²" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "" #: src/hd-data.c:4447 msgid "OxN" msgstr "" #: src/hd-data.c:4449 msgid "OxO" msgstr "" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "" #: src/hd-data.c:4847 msgid "Zod" msgstr "" #: src/hd-use.c:929 msgid " day" msgstr " ´µ½ÑŒ" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "’µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş²" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*s“´ %0*d -- ²¸ÑşÑ½Ñ‹ı" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*s“´ %0*d -- • ²¸ÑşÑ½Ñ‹ı" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*s“´ %d -- ²¸ÑşÑ½Ñ‹ı" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*s“´ %d -- • ²¸ÑşÑ½Ñ‹ı" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr " = %+4d ´µ½ÑŒ" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr " = %+4d ´½µı" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "%s%s с´µÑ€ĥ¸Ñ‚ ĵ°şÑ¸ĵ°ğь½µ ч¸Ñğ (%d) ²Ñ…ĥ´µ½¸ı!%s" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "Ħşĵż¸ğ¸Ñ€²°½° %s%s ´ğя %s%s%s%s" #: src/help.c:75 #, fuzzy msgid "# Day number (must be defined)" msgstr "“руżż° ´½µı (´ğĥµ½ ħыть żÑ€µ´µğµ½ тğьş ´¸½ чğµ½):" #: src/help.c:76 #, fuzzy msgid "# Year number (must be defined)" msgstr "“руżż° ğµÑ‚ (´ğĥµ½ ħыть żÑ€µ´µğµ½ тğьş ´¸½ чğµ½):" #: src/help.c:77 #, fuzzy msgid "# Weekday name (may be defined)" msgstr "“руżż° ½°·²°½¸ı ´½µı ½µ´µğ¸ (ĵĥµÑ‚ ħыть żÑ€µ´µğµ½ ´¸½ чğµ½):" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "“руżż° ĵµÑÑÑ†µ² (´ğĥµ½ ħыть żÑ€µ´µğµ½ тğьş ´¸½ чğµ½):" #: src/help.c:79 msgid "# Month number" msgstr "" #: src/help.c:80 #, fuzzy msgid "# Month name" msgstr "Ÿğ½µ ½°·²°½¸µ ĵµÑÑÑ†°" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "“руżż° ²Ñ‹´µğµ½¸Ñ (´ğĥ½Ñ‹ ħыть żÑ€µ´µğµ½Ñ‹ ²Ñµ чğµ½Ñ‹):" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "Ħ¸ĵ²ğ ½°Ñ‡°ğ° ²Ñ‹´µğяющµı żÑğµ´²°Ñ‚µğь½ÑÑ‚¸" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "Ħ¸ĵ²ğ ş½Ñ†° ²Ñ‹´µğяющµı żÑğµ´²°Ñ‚µğь½ÑÑ‚¸" #: src/help.c:86 msgid "Character replacement:" msgstr "—°ĵµÑ‰µ½¸µ с¸ĵ²ğ°:" #: src/help.c:87 #, fuzzy, c-format msgid "Space/blank ('%c') character" msgstr "Ħ¸ĵ²ğ żÑ€ħµğ° (' ')" #: src/help.c:88 #, fuzzy, c-format msgid "Underscore ('%c') character" msgstr "Ħ¸ĵ²ğ ż´Ñ‡µÑ€ş¸²°½¸Ñ ('_')" #: src/help.c:89 #, fuzzy, c-format msgid "Percent ('%c') character" msgstr "Ħ¸ĵ²ğ żÑ€Ñ†µ½Ñ‚° ('%')" #: src/help.c:90 #, fuzzy, c-format msgid "Backslash ('%c') character" msgstr "Ħ¸ĵ²ğ żÑ€ħµğ° (' ')" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:94 #, fuzzy msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "“руżż° ĵµÑÑÑ†µ² (´ğĥµ½ ħыть żÑ€µ´µğµ½ тğьş ´¸½ чğµ½):" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:104 #, fuzzy msgid "Numerical value is filled with leading zero(es)" msgstr "ĵµÑ€ ´½Ñ с ½Ñƒğяĵ¸ ² ½°Ñ‡°ğµ" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:107 #, fuzzy msgid "STYLE group (exactly one member may be defined):" msgstr "“руżż° ğµÑ‚ (´ğĥµ½ ħыть żÑ€µ´µğµ½ тğьş ´¸½ чğµ½):" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:114 #, fuzzy msgid "FORMAT group (exactly one member must be defined):" msgstr "“руżż° ĵµÑÑÑ†µ² (´ğĥµ½ ħыть żÑ€µ´µğµ½ тğьş ´¸½ чğµ½):" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:130 msgid "legal holidays" msgstr "ф¸Ñ†¸°ğь½Ñ‹µ żÑ€°·´½¸ş¸" #: src/help.c:131 msgid "holidays" msgstr "żÑ€°·´½¸ş¸" #: src/help.c:132 msgid "Mondays" msgstr "ż½µ´µğь½¸ş¸" #: src/help.c:133 msgid "Tuesdays" msgstr "²Ñ‚Ñ€½¸ş¸" #: src/help.c:134 msgid "Wednesdays" msgstr "срµ´Ñ‹" #: src/help.c:135 msgid "Thursdays" msgstr "чµÑ‚²µÑ€³¸" #: src/help.c:136 msgid "Fridays" msgstr "żÑÑ‚½¸Ñ†Ñ‹" #: src/help.c:137 msgid "Saturdays" msgstr "суħħты" #: src/help.c:138 msgid "Sundays" msgstr "²ÑşÑ€µÑµ½ÑŒÑ" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "ż½µ´µğь½¸ş¸...чµÑ‚²µÑ€³¸" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "ż½µ´µğь½¸ş¸...żÑÑ‚½¸Ñ†Ñ‹" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s: ˜Ñżğь·Ñƒıтµ `%s %s' с ´½¸ĵ ¸· эт¸Ñ… °Ñ€³Ñƒĵµ½Ñ‚²" #: src/help.c:243 msgid "OPTION" msgstr "š›§" #: src/help.c:256 msgid " Display help text and quit program" msgstr " Ÿş°·°Ñ‚ÑŒ сżÑ€°²şÑƒ ¸ ²Ñ‹ıт¸" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr " Ÿş°·°Ñ‚ÑŒ ż´Ñ€ħ½ÑƒÑŽ сżÑ€°²şÑƒ ¸ ²Ñ‹ıт¸" #: src/help.c:291 msgid " Display software license and quit program" msgstr " Ÿş°·°Ñ‚ÑŒ ğ¸Ñ†µ½·¸ÑŽ ¸ ²Ñ‹ıт¸" #: src/help.c:302 #, fuzzy msgid " Display version information and quit program" msgstr " Ÿş°·°Ñ‚ÑŒ ¸½Ñ„Ñ€ĵ°Ñ†¸ÑŽ ²µÑ€Ñ¸¸ ¸ ²Ñ‹ıт¸" #: src/help.c:313 #, fuzzy, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "" " £ÑÑ‚°½²¸Ñ‚ÑŒ ²Ñ‹Ñ…´½µ ·½°Ñ‡µ½¸µ żÑ€³Ñ€°ĵĵы р°²½Ñ‹ĵ 127 żÑ€¸\n" " ·°´°½½Ñ‹Ñ… şğюч°Ñ… --help, --version ¸ ż´ħ½Ñ‹Ñ…." #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Ħ·´°Ñ‚ÑŒ ф°ığ тşğ¸ş° ´ğя şğюч° `%c¤™›'" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr " %-3s = Ħхр°½¸Ñ‚ÑŒ °Ñ€³Ñƒĵµ½Ñ‚Ñ‹ şĵ°½´½ı стрş¸ ² ф°ığµ %s" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" " Ħ·´°Ñ‚ÑŒ сцµ½°Ñ€¸ı ħğчş¸, с´µÑ€ĥ°Ñ‰¸ı °Ñ€³Ñƒĵµ½Ñ‚Ñ‹ şĵ°½´½ı стрş¸" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = ˜ĵя ф°ığ° сцµ½°Ñ€¸Ñ ħğчş¸" #: src/help.c:360 #, fuzzy msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr " Define global date variable(s) \"dvar->a...d|f...s|u...|z\"" #: src/help.c:364 #, fuzzy, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" " %-3s = žżÑ€µ´µğµ½¸Ñ żµÑ€µĵµ½½Ñ‹Ñ… \"dvar%s`%s%s'\", р°·´µğµ½½Ñ‹µ с¸ĵ²ğ°ĵ¸ `" "%s'" #: src/help.c:369 #, fuzzy, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" " ½°żÑ€¸ĵµÑ€ %sv a%s1127%sb%s054 £ÑÑ‚°½²¸Ñ‚ÑŒ `a' ² ·½°Ñ‡µ½¸µ\n" " 27 ½Ñ ¸ `b' ² ·½°Ñ‡µ½¸µ 4 ĵ°Ñ" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr " ­şÑżÑ€Ñ‚¸Ñ€²°Ñ‚ÑŒ ğş°ğь½Ñ‹µ żµÑ€µĵµ½½Ñ‹µ ´°Ñ‚Ñ‹ ¸· ф°ığ° ² ф°ığ" #: src/help.c:393 #, fuzzy, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "" " žżÑ€µ´µğ¸Ñ‚ÑŒ ³ğħ°ğь½Ñ‹µ тµşÑÑ‚²Ñ‹µ żµÑ€µĵµ½½Ñ‹µ \"tvar->%ca...%cz\"" #: src/help.c:398 #, fuzzy, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" " %-3s = žżÑ€µ´µğµ½¸Ñ żµÑ€µĵµ½½Ñ‹Ñ… \"dvar%s`%s%s'\", р°·´µğµ½½Ñ‹µ с¸ĵ²ğ°ĵ¸ `" "%s'" #: src/help.c:403 #, fuzzy, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" " ½°żÑ€¸ĵµÑ€ %sr %ca%sfoo%s%cb%sbar £ÑÑ‚°½²¸Ñ‚ÑŒ `%ca' ² ·½°Ñ‡µ½¸µ\n" " `foo' ¸ `%cb' ² ·½°Ñ‡µ½¸µ `bar'" #: src/help.c:409 #, fuzzy, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr " ²Ñ‹Ñ€°ĥµ½¸Ñ р°·´µğяются с¸ĵ²ğ°ĵ¸ `%s'" #: src/help.c:414 #, fuzzy, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" " ½°żÑ€¸ĵµÑ€ %sr %ca%sfoo%s%cb%sbar £ÑÑ‚°½²¸Ñ‚ÑŒ `%ca' ² ·½°Ñ‡µ½¸µ\n" " `foo' ¸ `%cb' ² ·½°Ñ‡µ½¸µ `bar'" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr "" " ­şÑżÑ€Ñ‚¸Ñ€²°Ñ‚ÑŒ ğş°ğь½Ñ‹µ тµşÑÑ‚²Ñ‹µ żµÑ€µĵµ½½Ñ‹µ ¸· ф°ığ° ² ф°ığ" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "" " Ÿş°·Ñ‹²°Ñ‚ÑŒ тğьş тµ ф¸şÑ¸Ñ€²°½½Ñ‹µ ´°Ñ‚Ñ‹, şÑ‚рыµ ½µ ¸Ñşğючµ½Ñ‹ %s" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr " %-3s = ž´¸½ ¸ğ¸ ħğµµ żÑğµ´ÑƒÑŽÑ‰¸Ñ… с¸ĵ²ğ². •сğ¸ с¸ĵ²ğ" #: src/help.c:448 #, fuzzy msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " Ħ˘ ž§Ż ‘£š’, эт ·½°Ñ‡°µÑ‚ `½µ'-¸Ñşğючµ½¸µ!" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = ˜Ñşğюч°Ñ ²Ñµ %s" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr " %-3s = Ħż¸Ñş `%c[”˘][%c[”˘]]' ¸/¸ğ¸ `%c[”˘][%c[”˘]]'" #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr " ²Ñ‹Ñ€°ĥµ½¸Ñ р°·´µğяются с¸ĵ²ğ°ĵ¸ `%s'" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr "" " Ÿş°·Ñ‹²°Ñ‚ÑŒ тğьş тµ ф¸şÑ¸Ñ€²°½½Ñ‹µ ´°Ñ‚Ñ‹, чµı тµşÑÑ‚ ст²µÑ‚ст²ÑƒµÑ‚ %s" #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr " %-3s = ›ÑŽħı тµşÑÑ‚ ¸ğ¸ \"рµ³Ñƒğяр½µ ²Ñ‹Ñ€°ĥµ½¸µ\"" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:520 #, fuzzy, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Ħ·´°Ñ‚ÑŒ ф°ığ тşğ¸ş° ´ğя şğюч° `%c¤™›'" #: src/help.c:531 #, fuzzy msgid " Display some debug information" msgstr " ’Ñ‹²´¸Ñ‚ÑŒ ½µşÑ‚рую тğ°´ğч½ÑƒÑŽ ¸½Ñ„Ñ€ĵ°Ñ†¸ÑŽ" #: src/help.c:539 #, fuzzy, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal ”ст¸³½ÑƒÑ‚Ñ‹ ²½ÑƒÑ‚Ñ€µ½½¸µ ĵ°şÑ¸ĵ°ğь½Ñ‹µ żÑ€µ´µğы żÑ€³Ñ€°ĵĵы" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" " = handled š°ş żÑ€¸ `internal' ¸ ¸ĵµ½° ħр°ħ°Ñ‚Ñ‹²°µĵых ф°ığ²" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled š°ş żÑ€¸ `internal' ¸ ¸ĵµ½° ½µħр°ħ°Ñ‚Ñ‹²°µĵых ф°ığ²" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr " = all š°ş `handled' ¸ `unhandled' ²ĵµÑÑ‚µ" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" " = abort š°ş `all' ¸ ст°½²¸Ñ‚ься, µÑğ¸ ¸ĵя ф°ığ° ½µ\n" " ĵĥµÑ‚ ħыть ħр°ħт°½" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr " ˜Ñżğь·²°Ñ‚ÑŒ сżµÑ†¸°ğь½Ñ‹ı фрĵ°Ñ‚ ´ğя ²Ñ‹²´° ş°ğµ½´°Ñ€Ñ" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [œž”] = - ˜Ñżğь·²°Ñ‚ÑŒ ст°½´°Ñ€Ñ‚½Ñ‹ı фрĵ°Ñ‚ ´ğя ²Ñ‹²´° ş°ğµ½´°Ñ€Ñ" #: src/help.c:596 #, fuzzy msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" " ˜Ñżğь·²°Ñ‚ÑŒ żÑ€°²¸ğ° żÑ€°²Ñğ°²½ı цµÑ€ş²¸ ´ğя żÑ€µ´µğµ½¸Ñ\n" " ²¸ÑşÑ½³ ³´°" #: src/help.c:606 #, fuzzy msgid " Provide calendar sheet with week numbers" msgstr " ’Ñ‹²µÑÑ‚¸ ş°ğµ½´°Ñ€ÑŒ с ½ĵµÑ€°ĵ¸ ½µ´µğь ст°½´°Ñ€Ñ‚° ISO" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr "" #: src/help.c:618 msgid "Standard" msgstr "" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:631 #, fuzzy msgid " = no Standard week numbers" msgstr " ’Ñ‹²µÑÑ‚¸ ş°ğµ½´°Ñ€ÑŒ с ½ĵµÑ€°ĵ¸ ½µ´µğь ст°½´°Ñ€Ñ‚° ISO" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr " ݲ½ ż´°²¸Ñ‚ÑŒ żµÑ‡°Ñ‚ÑŒ ş°ğµ½´°Ñ€Ñ" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr "" " °żÑ€°²¸Ñ‚ÑŒ ²Ñ‹²´ ²½µÑˆ½µı żÑ€³Ñ€°ĵĵµ żÑÑ‚Ñ€°½¸Ñ‡½³ żÑ€Ñĵтр° `%s'" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr "" " °żÑ€°²¸Ñ‚ÑŒ ²Ñ‹²´ żÑ€ÑÑ‚ı ²½ÑƒÑ‚Ñ€µ½½µı żÑ€³Ñ€°ĵĵµ żÑÑ‚Ñ€°½¸Ñ‡½³ " "żÑ€Ñĵтр°" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " žÑ‚ĵµ½¸Ñ‚ÑŒ ²Ñ‹´µğµ½¸Ñ тµşÑÑ‚°, żÑ€°·´½¸ş² ¸ğ¸ тµşÑƒÑ‰µ³ ´½Ñ" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" " ŸµÑ‡°Ñ‚°Ñ‚ÑŒ ²Ñ‹´µğяющ¸µ żÑğµ´²°Ñ‚µğь½ÑÑ‚¸, ´°ĥµ µÑğ¸ ²Ñ‹²´ " "żµÑ€µ½°żÑ€°²ğµ½" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" " £ÑÑ‚°½²¸Ñ‚ÑŒ ż°Ñ€Ñ‹ ²Ñ‹´µğяющ¸Ñ… żÑğµ´²°Ñ‚µğь½ÑÑ‚µı\n" " 1 (=тµşÑƒÑ‰¸ı ´µ½ÑŒ) ¸ 2 (=żÑ€°·´½¸ş)" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "" " %-3s = Ÿ°Ñ€Ñ‹ ²Ñ‹´µğяющ¸Ñ… żÑğµ´²°Ñ‚µğь½ÑÑ‚µı, р°·´µğµ½½Ñ‹µ с¸ĵ²ğ°ĵ¸ `%s'" #: src/help.c:716 #, fuzzy, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" " ½°żÑ€¸ĵµÑ€ %sH \\x2%s\\xAE ˜Ñżğь·²°Ñ‚ÑŒ шµÑÑ‚½°´Ñ†°Ñ‚¸Ñ€¸Ñ‡½Ñ‹µ\n" " ·½°Ñ‡µ½¸Ñ 2 ¸ AE ´ğя żÑğµ´²°Ñ‚µğь½ÑÑ‚¸ 1" #: src/help.c:721 #, fuzzy, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" " ½°żÑ€¸ĵµÑ€ %sH %s%s*%s* ˜Ñżğь·²°Ñ‚ÑŒ с¸ĵ²ğы `*' ¸ `*'\n" " ´ğя żÑğµ´²°Ñ‚µğь½ÑÑ‚¸ 2" #: src/help.c:732 msgid " Modify format of year calendar" msgstr " ˜·ĵµ½¸Ñ‚ÑŒ фрĵ°Ñ‚ ³´²³ ş°ğµ½´°Ñ€Ñ" #: src/help.c:736 #, fuzzy, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr " %-3s = 1|2|3|4|6|12 §¸Ñğ ħğş²" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr " ’Ñ‹²´¸Ñ‚ÑŒ ² ş°ğµ½´°Ñ€µ ½ĵµÑ€ ´½Ñ ² ³´Ñƒ" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [œž”] = b ˜Ñżğь·²°Ñ‚ÑŒ ħµ фрĵы ·°ż¸Ñ¸ ´½Ñ (´µ½ÑŒ ĵµÑÑÑ†°+³´°)" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr " ’Ñ‹²´¸Ñ‚ÑŒ ² ²µÑ‡½ĵ сż¸Ñşµ żÑ€°·´½¸ş² ½ĵµÑ€ ´½Ñ ² ³´Ñƒ" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [œž”] = b ˜Ñżğь·²°Ñ‚ÑŒ ħµ фрĵы ·°ż¸Ñ¸ ´°Ñ‚Ñ‹ (´µ½ÑŒ ĵµÑÑÑ†°+³´°)" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr "" " ˜Ñżğь·²°Ñ‚ÑŒ żÑğµ´²°Ñ‚µğь½Ñ‹µ ´½¸ ³´° ² сż¸Ñşµ ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚" #: src/help.c:795 #, fuzzy, c-format msgid " Set starting day of week (actual: %s)" msgstr " —°´°µÑ‚ żµÑ€²Ñ‹ı ´µ½ÑŒ ½µ´µğ¸" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr " ŸÑğ°Ñ‚ÑŒ żğь·²°Ñ‚µğю ²Ñ‹²´ чµÑ€µ· żÑ€³Ñ€°ĵĵу `%s'" #: src/help.c:857 msgid "UNKNOWN" msgstr "" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² (’ żÑ€ĵµĥутşµ ğµÑ‚: %d...%d)" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr " n = žÑ„¸Ñ†¸°ğь½Ñ‹µ ¸ ż°ĵ°Ñ‚½Ñ‹µ ´½¸" #: src/help.c:883 msgid " N = Legal days only" msgstr " N = ˘ğьş ф¸Ñ†¸°ğь½Ñ‹µ ´½¸" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [œž”] = %s ¸ÑÑ…´ÑÑ‰¸ı żÑ€Ñ´ş срт¸Ñ€²ş¸" #: src/help.c:897 #, fuzzy msgid " Suppress leading blank line of eternal holiday list" msgstr " ˜Ñşğюч¸Ñ‚ÑŒ ·°³ğ²ş ²µÑ‡½³ сż¸Ñş° żÑ€°·´½¸ş²" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr " ˜Ñşğюч¸Ñ‚ÑŒ ·°³ğ²ş ²µÑ‡½³ сż¸Ñş° żÑ€°·´½¸ş²" #: src/help.c:919 #, fuzzy msgid " Provide eternal holiday list with astronomical data" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² с хр¸ÑÑ‚¸°½Ñş¸ĵ¸ żÑ€°·´½¸ş°ĵ¸" #: src/help.c:931 #, fuzzy msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:943 #, fuzzy msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:955 #, fuzzy msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:967 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² с хр¸ÑÑ‚¸°½Ñş¸ĵ¸ żÑ€°·´½¸ş°ĵ¸" #: src/help.c:979 #, fuzzy msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² с хр¸ÑÑ‚¸°½Ñş¸ĵ¸ żÑ€°·´½¸ş°ĵ¸" #: src/help.c:991 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² с хр¸ÑÑ‚¸°½Ñş¸ĵ¸ żÑ€°·´½¸ş°ĵ¸" #: src/help.c:1003 #, fuzzy msgid " Provide eternal holiday list with Chinese calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² с хр¸ÑÑ‚¸°½Ñş¸ĵ¸ żÑ€°·´½¸ş°ĵ¸" #: src/help.c:1015 #, fuzzy msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² с хр¸ÑÑ‚¸°½Ñş¸ĵ¸ żÑ€°·´½¸ş°ĵ¸" #: src/help.c:1027 #, fuzzy msgid " Provide eternal holiday list with Coptic calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1039 #, fuzzy msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1051 #, fuzzy msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1063 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1075 #, fuzzy msgid " Provide eternal holiday list with Hebrew calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1087 #, fuzzy msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² с хр¸ÑÑ‚¸°½Ñş¸ĵ¸ żÑ€°·´½¸ş°ĵ¸" #: src/help.c:1099 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1111 #, fuzzy msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1123 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1135 #, fuzzy msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1147 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1159 #, fuzzy msgid " Provide eternal holiday list with Japanese calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1172 #, fuzzy msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1184 #, fuzzy msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1196 #, fuzzy msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1208 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1220 #, fuzzy msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1232 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1244 #, fuzzy msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² с хр¸ÑÑ‚¸°½Ñş¸ĵ¸ żÑ€°·´½¸ş°ĵ¸" #: src/help.c:1256 #, fuzzy msgid " Provide eternal holiday list with zodiacal marker data" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² ħµ· ст°½´°Ñ€Ñ‚½Ñ‹Ñ… żÑ€°·´½¸ş²" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr " ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² с ½°Ñ†¸½°ğь½Ñ‹ĵ¸ żÑ€°·´½¸ş°ĵ¸" #: src/help.c:1272 #, fuzzy, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr " %-3s = ž´¸½ ş´ стр°½Ñ‹ ¸ğ¸ ¸Ñ… сż¸Ñş" #: src/help.c:1277 #, fuzzy, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr " р°·´µğµ½½Ñ‹ı с¸ĵ²ğ°ĵ¸ `%s'" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1286 #, fuzzy, c-format msgid " %-*s = Holidays in %s" msgstr " %s = %s żÑ€°·´½¸ş" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1322 #, fuzzy msgid " Set base data of Earth's atmosphere" msgstr " —°´°µÑ‚ żµÑ€²Ñ‹ı ´µ½ÑŒ ½µ´µğ¸" #: src/help.c:1326 #, fuzzy, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "" " %-3s = Ÿ°Ñ€Ñ‹ ²Ñ‹´µğяющ¸Ñ… żÑğµ´²°Ñ‚µğь½ÑÑ‚µı, р°·´µğµ½½Ñ‹µ с¸ĵ²ğ°ĵ¸ `%s'" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1344 #, fuzzy msgid " Limit rise/set times of Sun to the day" msgstr " 1. ŸÑ€µ´ÑÑ‚°²ğµ½¸µ тµşÑÑ‚°" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1366 #, fuzzy, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " # B = µ ¸Ñżğ½ÑÑ‚ÑŒ şĵ°½´Ñ‹ ħğчş¸ `%c%c[%s]'" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1453 #, fuzzy msgid " Change base year of calendar" msgstr " ˜·ĵµ½¸Ñ‚ÑŒ фрĵ°Ñ‚ ³´²³ ş°ğµ½´°Ñ€Ñ" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr " —°´°µÑ‚ żµÑ€¸´ “Ñ€¸³Ñ€¸°½Ñşı рµÑ„Ñ€ĵ°Ñ†¸¸" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " ”µıст²¸Ñ‚µğь½Ñ‹ı р°ÑÑĵ°Ñ‚Ñ€¸²°µĵыı żµÑ€¸´: %02d-%02d %s %0*d" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr " %-*d%*s = £ÑÑ‚°½²¸Ñ‚ÑŒ żµÑ€¸´ ² ·½°Ñ‡µ½¸µ: %02d-%02d %s %0*d" #: src/help.c:1485 #, fuzzy, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr " %-3s = %s%s%s%s%s%s%s £ÑÑ‚°½²¸Ñ‚ÑŒ żµÑ€¸´ я²½" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" " £ÑÑ‚°½²¸Ñ‚ÑŒ żÑ€Ñ´ş эğµĵµ½Ñ‚² ´°Ñ‚Ñ‹, ¸Ñżğь·ÑƒÑ стрşÑƒ фрĵ°Ñ‚° %s" #: src/help.c:1502 #, fuzzy, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " ”µıст²¸Ñ‚µğь½Ñ‹ı фрĵ°Ñ‚: (%s) `%s' (%s)" #: src/help.c:1504 msgid "self-defined" msgstr "с°ĵżÑ€µ´µğяµĵыı" #: src/help.c:1509 #, fuzzy, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = £ÑÑ‚°½²¸Ñ‚ÑŒ фрĵ°Ñ‚ ² ·½°Ñ‡µ½¸µ: `%s' (%s)" #: src/help.c:1517 #, fuzzy, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" " %-3s = žżÑ€µ´µğ¸Ñ‚ÑŒ фрĵ°Ñ‚ żğь·²°Ñ‚µğя. ’сżÑ€¸½¸ĵ°ÑŽÑ‚ся сğµ´ÑƒÑŽÑ‰¸µ " "эğµĵµ½Ñ‚Ñ‹:" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1582 #, fuzzy msgid " they are used by the character set used in Germany" msgstr " р°·´µğµ½½Ñ‹ı с¸ĵ²ğ°ĵ¸ `%s'" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ ¤˜šĦ˜ ž’Ğ• ”˘Ğ +++" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" " ˜Ñżğь·²°Ñ‚ÑŒ ст°½´°Ñ€Ñ‚½Ñ‹ı ф°ığ рµÑÑƒÑ€Ñ² `.%s%s' ´ğя сż¸Ñş° \n" " ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" " ˜Ñżğь·²°Ñ‚ÑŒ ст°½´°Ñ€Ñ‚½Ñ‹ı ф°ığ рµÑÑƒÑ€Ñ² `%s%s' ´ğя сż¸Ñş° \n" " ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr " Ÿ´Ñ€°·Ñƒĵµ²°µÑ‚ся żµÑ€¸´: Ħµ³´½Ñ" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr "" " c = Ÿş°·°Ñ‚ÑŒ тğьş тµ ´°Ñ‚Ñ‹, ´ğя şÑ‚рых µÑÑ‚ÑŒ ф¸şÑ¸Ñ€²°½½Ñ‹µ ´°Ñ‚Ñ‹" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr " C = Ÿş°·°Ñ‚ÑŒ ¸ тµ ´°Ñ‚Ñ‹, ´ğя şÑ‚рых ½µÑ‚ ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" " [œž”] = ž´¸½ ¸ğ¸ ½µÑşğьş сğµ´ÑƒÑŽÑ‰¸Ñ… ĵ´¸Ñ„¸ş°Ñ‚Ñ€², żĵµÑ‡µ½Ñ‹Ñ… с¸ĵ²ğĵ #" #: src/help.c:1654 #, fuzzy, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" " # x = ˜Ñşğюч¸Ñ‚ÑŒ ·°³ğ²ş ¸· сż¸Ñş° ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚" #: src/help.c:1657 #, fuzzy, c-format msgid " Actual: `%s'" msgstr " = %s °·°´" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" " # g[œž”] = “руżż¸Ñ€²°Ñ‚ÑŒ ф¸şÑ¸Ñ€²°½½Ñ‹µ ´°Ñ‚Ñ‹ ż ´½Ñĵ, " "¸Ñżğь·ÑƒÑ \n" " тµşÑÑ‚ œž”" #: src/help.c:1682 msgid " 1. Representation of text" msgstr " 1. ŸÑ€µ´ÑÑ‚°²ğµ½¸µ тµşÑÑ‚°" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr " = £ÑÑ‚°½²¸Ñ‚ÑŒ ш¸Ñ€¸½Ñƒ ³Ñ€°Ñ„¸ş° ħ¸Ñ€¸Ñ‚ĵ²" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d...%d ”𸽰 с¸" #: src/help.c:1711 #, fuzzy msgid " = Set height of the Moon phase text graphics" msgstr " = £ÑÑ‚°½²¸Ñ‚ÑŒ ²Ñ‹ÑÑ‚у ³Ñ€°Ñ„¸ş° ф°· ğу½Ñ‹" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d žħщµµ ч¸Ñğ стрş" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr " # a = Ÿş°·°Ñ‚ÑŒ ½°Ñ‡°ğ ф¸şÑ¸Ñ€²°½½ı ´°Ñ‚Ñ‹" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr "" " # A = ’Ñ‹²´¸Ñ‚ÑŒ ¸Ñżğь·ÑƒÑ °ğьтµÑ€½°Ñ‚¸²½Ñ‹ı фрĵ°Ñ‚ сż¸Ñş°" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr " # e = ’şğюч¸Ñ‚ÑŒ ф¸Ñ†¸°ğь½Ñ‹µ ¸ ż°ĵ°Ñ‚½Ñ‹µ ´½¸" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr " # E = ’şğюч¸Ñ‚ÑŒ тğьş ф¸Ñ†¸°ğь½Ñ‹µ żÑ€°·´½¸ş¸" #: src/help.c:1763 #, fuzzy msgid " # k = Display week number" msgstr " # k = ’Ñ‹²´¸Ñ‚ÑŒ ½ĵµÑ€ ½µ´µğ¸ ż ст°½´°Ñ€Ñ‚у ISO" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr "" " # o = žżÑƒÑş°Ñ‚ÑŒ ż²Ñ‚ряющуюся ч°ÑÑ‚ÑŒ ² ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚°Ñ…" #: src/help.c:1787 #, fuzzy msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr " # U = ŸÑ€żÑƒÑş°Ñ‚ÑŒ ´°Ñ‚у ² ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚°Ñ…" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr " # U = ŸÑ€żÑƒÑş°Ñ‚ÑŒ ´°Ñ‚у ² ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚°Ñ…" #: src/help.c:1811 #, fuzzy msgid " # J = Suppress text part of fixed dates" msgstr " # U = ŸÑ€żÑƒÑş°Ñ‚ÑŒ ´°Ñ‚у ² ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚°Ñ…" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr "" " # x = ˜Ñşğюч¸Ñ‚ÑŒ ·°³ğ²ş ¸· сż¸Ñş° ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr "" " # z = Ÿş°·°Ñ‚ÑŒ żÑğµ´²°Ñ‚µğь½µ ч¸Ñğ ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" " # Z = Ÿş°·°Ñ‚ÑŒ ´°Ñ‚Ñ‹, ´ğя şÑ‚рых ½µÑ‚ ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚" #: src/help.c:1855 msgid " 2. Respected period" msgstr " 2. ’сżÑ€¸½¸ĵ°µĵыµ żµÑ€¸´Ñ‹" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr " = žħр°ħтş° `29 фµ²Ñ€°ğя' ² ½µ²¸ÑşÑ½Ñ‹Ñ… ³´°Ñ…" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february Ħч¸Ñ‚°Ñ‚ÑŒ `28 фµ²Ñ€°ğя'" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march Ħч¸Ñ‚°Ñ‚ÑŒ `01 ĵ°Ñ€Ñ‚°'" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" " # d = ’şğюч¸Ñ‚ÑŒ тµşÑƒÑ‰ÑƒÑŽ ´°Ñ‚у, µÑğ¸ с·´°µÑ‚ся сż¸Ñş " "żµÑ€¸´²" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr " # l = Ħ·´°Ñ‚ÑŒ сż¸Ñş żµÑ€¸´², ° ½µ ´¸½ żµÑ€¸´" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr " # d = •´¸½ÑÑ‚²µ½½Ñ‹ı °ħсğют½Ñ‹ı ´µ½ÑŒ " #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cd = •´¸½ÑÑ‚²µ½½Ñ‹ı °ħсğют½Ñ‹ı ´µ½ÑŒ " #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr "" " # œž” = •´¸½ÑÑ‚²µ½½Ñ‹ı ´µ½ÑŒ  т½Ñ¸Ñ‚µğь½ сµ³´½ÑÑˆ½µ³" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr " œž” = %s ’żµÑ€µ´" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr " = %s °·°´" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr " # w = Ÿğ½°Ñ ½µ´µğя " #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" "  = 0 żµÑ€²°Ñ ½µ´µğя / żÑğµ´½ÑÑ ½µ´µğя\n" " żÑ€µ´Ñ‹´ÑƒÑ‰µ³ ³´°" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr "  = 1...52 1-°Ñ...52-°Ñ ½µ´µğя (²Ñµ³´°)" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr "  = 53 53-я ½µ´µğя (¸½³´°)" #: src/help.c:1953 msgid " N = 99 Last week" msgstr "  = 99 ŸÑğµ´½ÑÑ ½µ´µğя" #: src/help.c:1956 #, fuzzy, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # `%s%s' = ž´¸½ ´µ½ÑŒ `%s' ĵµÑÑÑ†° `%s'" #: src/help.c:1962 #, fuzzy, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr " # `%s%s' = ž´¸½ -½Ñ‹ı ´µ½ÑŒ ½µ´µğ¸ `%s' ĵµÑÑÑ†° `%s'" #: src/help.c:1967 #, fuzzy, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" "  = 1...4 1-ыı...4-ыı ´µ½ÑŒ ½µ´µğ¸ `%s' (²Ñµ³´°)" #: src/help.c:1972 #, fuzzy, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "  = 5 5-ыı ´µ½ÑŒ ½µ´µğ¸ `%s' (¸½³´°)" #: src/help.c:1976 #, fuzzy, c-format msgid " N = 9 Last weekday %s" msgstr "  = 9 ŸÑğµ´½¸ı ´µ½ÑŒ ½µ´µğ¸ `%s'" #: src/help.c:1980 #, fuzzy, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cd`%s' = ž´¸½ -½Ñ‹ı ´µ½ÑŒ ½µ´µğ¸ `%s'" #: src/help.c:1985 #, fuzzy, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" "  = 1...51 1-ыı...51-ыı ´µ½ÑŒ ½µ´µğ¸ `" "%s' (²Ñµ³´°)" #: src/help.c:1990 #, fuzzy, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" "  = 52|53 52|53-¸ı ´µ½ÑŒ ½µ´µğ¸ `%s' (¸½³´°)" #: src/help.c:1994 #, fuzzy, c-format msgid " N = 99 Last weekday %s" msgstr "  = 99 ŸÑğµ´½¸ı ´µ½ÑŒ ½µ´µğ¸ `%s'" #: src/help.c:1999 #, fuzzy, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr " # %cw`%s' = ž´¸½ ´µ½ÑŒ `%s' -½ı ½µ´µğ¸" #: src/help.c:2004 #, fuzzy, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" "  = 0 `%s' ½µ ½°Ñ…´ÑÑ‰¸ıся ² żµÑ€²ı ½µ´µğµ" #: src/help.c:2009 #, fuzzy, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" "  = 1...51 `%s' 1-ı...51-ı ½µ´µğ¸ (²Ñµ³´°)" #: src/help.c:2014 #, fuzzy, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "  = 52|53 `%s' 52|53-µı ½µ´µğ¸ (¸½³´°)" #: src/help.c:2018 #, fuzzy, c-format msgid " N = 99 %s of last week" msgstr "  = 99 `%s' żÑğµ´½µı ½µ´µğ¸" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "" " # %c%c[[%s|%s]] = ž´¸½ ´µ½ÑŒ  т½Ñ¸Ñ‚µğь½ Ÿ°ÑÑ…°ğь½³ " "²ÑşÑ€µÑµ½ÑŒÑ" #: src/help.c:2030 #, fuzzy, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" " # %c%c[%s|%s]`%s'= ž´¸½ -½Ñ‹ı ´µ½ÑŒ ½µ´µğ¸ т½Ñ¸Ñ‚µğь½\n" " Ÿ°ÑÑ…°ğь½³ ²ÑşÑ€µÑµ½ÑŒÑ" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "" " # %c%c[[%s|%s]] = ž´¸½ ´µ½ÑŒ  т½Ñ¸Ñ‚µğь½ сµ³´½ÑÑˆ½µı ´°Ñ‚Ñ‹" #: src/help.c:2042 #, fuzzy, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" " # %c%c[%s|%s]`%s'= ž´¸½ -½Ñ‹ı ´µ½ÑŒ ½µ´µğ¸ т½Ñ¸Ñ‚µğь½\n" " сµ³´½ÑÑˆ½µı ´°Ñ‚Ñ‹" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr " # %c?[[%s|%s]] = ž´¸½ ´µ½ÑŒ  т½Ñ¸Ñ‚µğь½ żµÑ€µĵµ½½ı ´°Ñ‚Ñ‹" #: src/help.c:2054 #, fuzzy, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" " # %c?[%s|%s]`%s'= ž´¸½ -½Ñ‹ı ´µ½ÑŒ ½µ´µğ¸ т½Ñ¸Ñ‚µğь½ żµÑ€µĵµ½½ı " "´°Ñ‚Ñ‹" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr " # t|T = ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ·°²Ñ‚Ñ€°Ñˆ½¸ı ´µ½ÑŒ" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[œž”] = ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ żğ½ÑƒÑŽ ½µ´µğю" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" " [œž”] = %s ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ·°²Ñ‚Ñ€°Ñˆ½¸ı ´µ½ÑŒ,\n" " µÑğ¸ ½µ ş½µÑ† ½µ´µğ¸" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ²Ñ‡µÑ€°Ñˆ½¸ı ´µ½ÑŒ,\n" " µÑğ¸ ½µ ½°Ñ‡°ğ ½µ´µğ¸" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[œž”] = ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ żğ½Ñ‹ı ĵµÑÑÑ†" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" " [œž”] = %s ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ·°²Ñ‚Ñ€°Ñˆ½¸ı ´µ½ÑŒ, µÑğ¸ ½µ\n" " ş½µÑ† ĵµÑÑÑ†°" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ²Ñ‡µÑ€°Ñˆ½¸ı ´µ½ÑŒ,\n" " µÑğ¸ ½µ ½°Ñ‡°ğ ĵµÑÑÑ†°" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[œž”] = ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ żğ½Ñ‹ı ³´" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" " [œž”] = %s ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ·°²Ñ‚Ñ€°Ñˆ½¸ı ´µ½ÑŒ,\n" " µÑğ¸ ½µ ş½µÑ† ³´°" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" " = %s ŸµÑ€µÑ‡¸Ñğ¸Ñ‚ÑŒ ²Ñ‡µÑ€°Ñˆ½¸ı ´µ½ÑŒ,\n" " µÑğ¸ ½µ ½°Ñ‡°ğ ³´°" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr "" " ˜Ñżğь·²°Ñ‚ÑŒ °ğьтµÑ€½°Ñ‚¸²½Ñ‹ı ф°ığ (ф°ığы) ²ĵµÑÑ‚\n" " ст°½´°Ñ€Ñ‚½Ñ‹Ñ… рµÑÑƒÑ€Ñ½Ñ‹Ñ… ф°ığ²" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr "" " f = Ÿş°·°Ñ‚ÑŒ тğьş тµ ´°Ñ‚Ñ‹, ´ğя şÑ‚рых µÑÑ‚ÑŒ ф¸şÑ¸Ñ€²°½½Ñ‹µ ´°Ñ‚Ñ‹" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr " F = Ÿş°·°Ñ‚ÑŒ ¸ тµ ´°Ñ‚Ñ‹, ´ğя şÑ‚рых ½µÑ‚ ф¸şÑ¸Ñ€²°½½Ñ‹Ñ… ´°Ñ‚" #: src/help.c:2173 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr " %-3s = ž´¸½ ¸ğ¸ ½µÑşğьş ф°ığ², р°·´µğµ½½Ñ‹Ñ… с¸ĵ²ğ°ĵ¸ `%s'" #: src/help.c:2184 msgid " Define additional resource file line" msgstr " žżÑ€µ´µğ¸Ñ‚ÑŒ ´żğ½¸Ñ‚µğь½ÑƒÑŽ стрşÑƒ рµÑÑƒÑ€Ñ½³ ф°ığ°" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = ›ÑŽħ°Ñ ²·ĵĥ½°Ñ стрş° рµÑÑƒÑ€Ñ½³ ф°ığ°" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "%c”˘" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "˜Ñżğь·²°Ñ‚ÑŒ ·°´°½½ÑƒÑŽ `”˘£' ²ĵµÑÑ‚ сµ³´½ÑÑˆ½µı" #: src/help.c:2202 #, fuzzy, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" "¤Ñ€ĵ°Ñ‚ ´°Ñ‚Ñ‹: %s[%s[%s|%s[]]], %s%c%c|%c|dvar[[%s|%s][%s]], %s%cd[%s]" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" " %s%cw[%s], ½°·²°½¸µ ĵµÑÑÑ†°[%s], ½°·²°½¸µ ´½Ñ ½µ´µğ¸[] ¸ğ¸ %s" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "%c¤™›" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "—°³Ñ€Ñƒ·¸Ñ‚ÑŒ şğюч¸ ¸ şĵ°½´Ñ‹ ¸· `¤™›'" #: src/help.c:2224 msgid "COMMAND" msgstr "šžœ”" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = œµÑÑÑ† ² żÑ€ĵµĥутşµ: %d...%d" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr "" " ¸ğ¸: ½°·²°½¸µ ĵµÑÑÑ†° | %s | %s%s | %s%s | %s%s" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr " Ħż¸Ñş: %s[%s%s]%s...%s%s[%s%s]" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr " ŸÑ€ĵµĥутş: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = “´ ² żÑ€ĵµĥутşµ: %d...%d" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr " Ħż¸Ñş: [%s%s]%s%s...%s[%s%s]%s" #: src/help.c:2257 #, fuzzy, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr " ŸÑ€ĵµĥутş: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2283 #, fuzzy, c-format msgid " %sh, %s Display this help text and quit program" msgstr " Ÿş°·°Ñ‚ÑŒ сżÑ€°²şÑƒ ¸ ²Ñ‹ıт¸" #: src/help.c:2286 #, fuzzy, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " Ÿş°·°Ñ‚ÑŒ ż´Ñ€ħ½ÑƒÑŽ сżÑ€°²şÑƒ ¸ ²Ñ‹ıт¸" #: src/help.c:2290 #, fuzzy, c-format msgid " %sL, %s Display software license and quit program" msgstr " Ÿş°·°Ñ‚ÑŒ ğ¸Ñ†µ½·¸ÑŽ ¸ ²Ñ‹ıт¸" #: src/help.c:2294 #, fuzzy, c-format msgid " %sV, %s Display version information and quit program" msgstr " Ÿş°·°Ñ‚ÑŒ ¸½Ñ„Ñ€ĵ°Ñ†¸ÑŽ ²µÑ€Ñ¸¸ ¸ ²Ñ‹ıт¸" #: src/help.c:2302 #, fuzzy, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "" " °żÑ€°²¸Ñ‚ÑŒ ²Ñ‹²´ ²½µÑˆ½µı żÑ€³Ñ€°ĵĵµ żÑÑ‚Ñ€°½¸Ñ‡½³ żÑ€Ñĵтр° `%s'" #: src/help.c:2309 src/help.c:2314 #, fuzzy, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr "" " °żÑ€°²¸Ñ‚ÑŒ ²Ñ‹²´ żÑ€ÑÑ‚ı ²½ÑƒÑ‚Ñ€µ½½µı żÑ€³Ñ€°ĵĵµ żÑÑ‚Ñ€°½¸Ñ‡½³ " "żÑ€Ñĵтр°" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "" "­Ñ‚° żÑ€³Ñ€°ĵĵ° ½µ żÑ€µÑ‚µ½´ÑƒµÑ‚ ½° żğ½Ñ‚у, żÑ€°²¸ğь½ÑÑ‚ÑŒ ¸ğ¸ żÑ€ÑÑ‚ту " "¸Ñżğь·²°½¸Ñ." #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "" "˜· żÑ€¸½Ñ†¸ż° я ½µ ½µÑÑƒ т²µÑ‚ст²µ½½ÑÑ‚¸ ·° ›‘Ğ• ż²Ñ€µĥ´µ½¸Ñ ¸ğ¸ żÑ‚µÑ€¸ " "(şÑ²µ½½Ñ‹µ" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "" "¸ğ¸ ½µżÑÑ€µ´ÑÑ‚²µ½½Ñ‹µ), żÑ€¸·Ñˆµ´Ñˆ¸µ ¸·-·° żÑ€¸ĵµ½µ½¸Ñ ¸ğ¸ ħр°Ñ‰µ½¸Ñ\n" "с ĵµı żÑ€³Ñ€°ĵĵı." #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "" "•с𸠲ы żğь·ÑƒµÑ‚µÑÑŒ этı żÑ€³Ñ€°ĵĵı, ²Ñ‹ с³ğ°Ñˆ°µÑ‚µÑÑŒ с ²Ñµĵ¸ эт¸ĵ¸ усğ²¸Ñĵ¸" #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "ħµ· ¸Ñşğючµ½¸Ñ, ş чµĵу ²°Ñ ħя·Ñ‹²°µÑ‚ —šž !!" #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "­Ñ‚ с²ħ´½°Ñ żÑ€³Ñ€°ĵĵ°; ²Ñ‹ ĵĥµÑ‚µ ż²Ñ‚Ñ€½ р°ÑżÑ€ÑÑ‚Ñ€°½ÑÑ‚ÑŒ µµ ¸/¸ğ¸" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" "ĵ´¸Ñ„¸Ñ†¸Ñ€²°Ñ‚ÑŒ µµ ² ст²µÑ‚ст²¸¸ с £½¸²µÑ€Ñ°ğь½ı žħщµÑÑ‚²µ½½ı ›¸Ñ†µ½·¸µı GNU," #: src/help.c:2366 #, fuzzy msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" "żÑƒħğ¸ş²°½½ı ¤½´ĵ Ħ²ħ´½³ Ÿž; ğ¸ħ ²µÑ€Ñ¸¸ 2, ğ¸ħ (ż ²°Ñˆµĵу ²Ñ‹ħру)" #: src/help.c:2368 msgid "any later version." msgstr "ğюħı ħğµµ ż·´½µı ²µÑ€Ñ¸¸." #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "’Ñ‹ ´ğĥ½Ñ‹ ħÑ‹ğ¸ żğуч¸Ñ‚ÑŒ şż¸ÑŽ £½¸²µÑ€Ñ°ğь½ı žħщµÑÑ‚²µ½½ı ›¸Ñ†µ½·¸¸ GNU" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "²ĵµÑÑ‚µ с этı żÑ€³Ñ€°ĵĵı; µÑğ¸ ½µÑ‚, ½°ż¸Ñˆ¸Ñ‚µ ż этĵу °´Ñ€µÑÑƒ:" #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" "˜Ñżğь·²°½¸µ: %s [%s|%s{[h|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] " "[%s]]" #: src/help.c:2452 #, fuzzy, c-format msgid "Use `%s %s|[%s?]" msgstr "˜Ñżğь·Ñƒıтµ `%s %s' ¸ğ¸ " #: src/help.c:2461 #, fuzzy msgid "for more information." msgstr "" "`%s %s|[%s?]' ´ğя żğучµ½¸Ñ\n" "ħğьшµı ¸½Ñ„Ñ€ĵ°Ñ†¸¸." #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, fuzzy, c-format msgid "Email bug reports to <%s>" msgstr "žħ ш¸ħş°Ñ… сħщ°ıтµ ż °´Ñ€µÑÑƒ " #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "" "­Ñ‚ с²ħ´½°Ñ żÑ€³Ñ€°ĵĵ°; усğ²¸Ñ şż¸Ñ€²°½¸Ñ сĵтр¸Ñ‚µ ² ¸ÑÑ…´½ĵ тµşÑÑ‚µ." #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr " œÑ‹ • żÑ€µ´ÑÑ‚°²ğяµĵ ³°Ñ€°½Ñ‚¸ı; ´°ĥµ ż´Ñ€°·Ñƒĵµ²°µĵых ³°Ñ€°½Ñ‚¸ı" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "šžœœ• §•Ħšž™ Ĥ•žĦ˘˜ ¸ğ¸ Ÿ ˜“ž”žĦ˘˜ ”›Ż šžš •˘ž™ Ĥ•›˜." #: src/help.c:2617 #, fuzzy, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr ":%*s ŸÑ€³Ñ€°ĵĵ°-ş°ğµ½´°Ñ€ÑŒ GNU (" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "˜Ñżğь·²°½¸µ: %s [[š›§...] [%c”˘] [%c¤™›...]] [šžœ”]" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "˜Ñżğь·²°½¸µ: %s [[š›§...] [%c¤™›...]] [šžœ”]" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr " 4.0 ¸ğ¸ 4.02" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr " ħğµµ ż·´½ÑÑ, чµĵ 5.0" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "++ 3.0 ¸ğ¸ ħğµµ ż·´½ÑÑ" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "5.1 ¸ğ¸ ħ𵵠р°½½ÑÑ" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "½µ¸·²µÑÑ‚½Ñ‹ĵ şĵż¸ğятрĵ" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr " " #: src/help.c:2827 msgid "(bad version)" msgstr "(½µşÑ€°²¸ğь½Ñ‹ı ½ĵµÑ€ ²µÑ€Ñ¸¸) " #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "½µ¸·²µÑÑ‚½Ñ‹ĵ şĵż¸ğятрĵ (SDK?)" #: src/help.c:2942 msgid " later than 4.5" msgstr " ħğµµ ż·´½¸ĵ, чµĵ 4.5" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "++ 1.0 ¸ğ¸ ħğµµ ż·´½¸ĵ" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr " 1.0 ¸ğ¸ 1.5?" #: src/help.c:3075 msgid "unknown " msgstr "½µ¸·²µÑÑ‚½Ñ‹ĵ " #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "²µÑ€Ñ¸¸ %d.%d" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "²µÑ€Ñ¸¸ %d" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "½µ¸·²µÑÑ‚½ı ²µÑ€Ñ¸¸" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s ´ğя Alpha)" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s ´ğя VAX)" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr " (NetBSD р°½ÑŒÑˆµ ²µÑ€Ñ¸¸ 0.9)" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 ¸ğ¸ ħğµµ ż·´½ÑÑ)" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 ¸ğ¸ ħğµµ ż·´½ÑÑ)" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 ¸ğ¸ ħğµµ ż·´½ÑÑ)" # ­Ñ‚ ´²ÑƒÑ…ħуş²µ½½µ сşÑ€°Ñ‰µ½¸µ ´ğя "½µ´µğя" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "´" #: src/print.c:566 msgid "Week" msgstr "µ´µğя" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "µ²·ĵĥ½ ²Ñ‹żğ½¸Ñ‚ÑŒ şĵ°½´Ñƒ ² ф°ığµ `%s'\n" "Ħтрş°: %ld %s" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" "šĵ°½´° ²Ñ‹żğ½µ½° (²Ñ‹Ñ…´½µ ·½°Ñ‡µ½¸µ=%d) ² ф°ığµ `%s'\n" "Ħтрş° %ld: %s" #: src/rc-use.c:514 msgid "Emo" msgstr "­ĵ" #: src/rc-use.c:519 msgid "Int" msgstr "˜½Ñ‚" #: src/rc-use.c:524 msgid "Phy" msgstr "¤¸·" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "`’µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş²'" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 #, fuzzy msgid "`Internal'" msgstr "`’½ÑƒÑ‚Ñ€µ½½¸ı'" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr " ; µ´µğя %s" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "µ´µğя %s" #: src/rc-utils.c:398 src/rc-utils.c:415 #, fuzzy, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%s: ·°´°½° ½µ²µÑ€½°Ñ ´°Ñ‚° -- %c%s\n" "%s\n" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "’¸ÑşÑ½Ñ‹ı ´µ½ÑŒ уст°½²ğµ½ ½° `%02d-%s' ² ф°ığµ `%s'." #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "Ħтрş° %ld: %s" #: src/rc-utils.c:3634 src/utils.c:275 #, fuzzy, c-format msgid "%s: abort, " msgstr "" "\n" "%s: ст°½², " #: src/rc-utils.c:3642 #, fuzzy, c-format msgid "illegal variable definition in file `%s'" msgstr "" "½µ´żÑƒÑÑ‚¸ĵµ żÑ€µ´µğµ½¸µ тµşÑÑ‚²ı żµÑ€µĵµ½½ı ² ф°ığµ `%s'\n" "Ħтрş° %ld: %s" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3651 #, fuzzy, c-format msgid "illegal variable operation in file `%s'" msgstr "" "½µ´żÑƒÑÑ‚¸ĵ°Ñ żµÑ€°Ñ†¸Ñ с żµÑ€µĵµ½½ı ´°Ñ‚Ñ‹ ² ф°ığµ `%s'\n" "Ħтрş° %ld: %s" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3659 #, fuzzy, c-format msgid "variable `%c' undefined in file `%s'" msgstr "ŸµÑ€µĵµ½½°Ñ ´°Ñ‚Ñ‹ `%c' ½µ żÑ€µ´µğµ½° ² ф°ığµ `%s'" #: src/rc-utils.c:3663 #, fuzzy, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "µ²µÑ€½µ ·½°Ñ‡µ½¸µ ´°Ñ‚Ñ‹ (żµÑ€µĵµ½½°Ñ `%c') ² ф°ığµ `%s'." #: src/rc-utils.c:3684 #, fuzzy, c-format msgid "Invalid argument in command line given -- %s" msgstr " %-3s = Ħхр°½¸Ñ‚ÑŒ °Ñ€³Ñƒĵµ½Ñ‚Ñ‹ şĵ°½´½ı стрş¸ ² ф°ığµ %s" #: src/rc-utils.c:3696 #, fuzzy, c-format msgid "Argument `%s' of command line ignored." msgstr "Ñ€³Ñƒĵµ½Ñ‚ şĵ°½´½ı стрş¸ `%s' ¸³½Ñ€¸Ñ€²°½" #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "Ħтрş° %ld ¸³½Ñ€¸Ñ€²°½°: %s" #: src/tty.c:425 #, fuzzy, c-format msgid "%s: for more, <%s> to quit..." msgstr "°ĥĵ¸Ñ‚µ <’²´> ´ğя żÑ€´ğĥµ½¸Ñ , <%s> ´ğя ²Ñ‹Ñ…´°..." #: src/tty.c:1020 #, fuzzy, c-format msgid "environment variable `%s' not found" msgstr "" "\n" "ŸµÑ€µĵµ½½°Ñ срµ´Ñ‹ `%s' ½µ ½°ı´µ½°" #: src/tty.c:1027 #, fuzzy, c-format msgid "environment variable `%s' not set" msgstr "" "\n" "ŸµÑ€µĵµ½½°Ñ срµ´Ñ‹ `%s' ½µ уст°½²ğµ½°" #: src/tty.c:1067 #, fuzzy msgid "`termcap' file not found" msgstr "" "\n" "ф°ığ `termcap' ½µ ½°ı´µ½" #: src/tty.c:1072 #, fuzzy, c-format msgid "unknown terminal type defined in `%s'" msgstr "" "\n" "’ `%s' żÑ€µ´µğµ½ ½µ¸·²µÑÑ‚½Ñ‹ı т¸ż тµÑ€ĵ¸½°ğ°" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" "½µ²µÑ€½ ·°´°½ ³´ ´ğя ²Ñ‹Ñ‡¸Ñğµ½¸Ñ ´°Ñ‚Ñ‹ Ÿ°ÑÑ…°ğь½³ ²ÑşÑ€µÑµ½ÑŒÑ\n" "“´ ´ğĥµ½ ħыть ² żÑ€ĵµĥутşµ (%d...%d)" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "`%s' стрş° %ld: ²¸Ñ€Ñƒ°ğь½°Ñ ż°ĵять ¸ÑÑ‡µÑ€ż°½° (%s=%d)" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" "½µ²µÑ€½°Ñ ч°ÑÑ‚ÑŒ ´°Ñ‚Ñ‹ ² ф°ığµ `%s'\n" "Ħтрş° %ld: %s" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "½µ²µÑ€½µ żğµ ĵµÑÑÑ†°(%02d) ² ф°ığµ `%s'\n" "Ħтрş° %ld: %s" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "½µ²µÑ€½µ żğµ ´°Ñ‚Ñ‹(%02d) ² ф°ığµ `%s'\n" "Ħтрş° %ld: %s" #: src/utils.c:304 #, fuzzy, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" "½µżÑ€°²¸ğь½µ %s ² ф°ığµ `%s'\n" "Ħтрş° %ld: %s" #: src/utils.c:309 #, fuzzy, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" "½µ²µÑ€½µ рµşÑƒÑ€Ñ¸²½µ/ц¸şğ¸Ñ‡µÑşµ %s ² ф°ığµ `%s'\n" "Ħтрş° %ld: %s" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "ф°ığ `%s' ½µ ½°ı´µ½" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" "½µ²µÑ€½µ żğµ -½³ ´½Ñ ½µ´µğ¸(%d) ² ф°ığµ `%s'\n" "Ħтрş° %ld: %s" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" "żÑ€żÑƒÑ‰µ½Ñ‹ żÑ€ħµğь½Ñ‹µ с¸ĵ²ğы żÑğµ ч°ÑÑ‚¸ ´°Ñ‚Ñ‹ ² ф°ığµ `%s'\n" "Ħтрş° %ld: %s" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "½µ²·ĵĥ½ ·°ż¸Ñ°Ñ‚ÑŒ ф°ığ `%s'\n" "Ñ¸Ñ‚µğь ´°½½Ñ‹Ñ… ·°żğ½µ½!" #: src/utils.c:333 #, fuzzy, c-format msgid "sending eMail to <%s> failed" msgstr "żÑÑ‹ğş° żÑ‡Ñ‚Ñ‹ ż `%s' ½µÑƒÑżµÑˆ½°" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "`%s' стрş° %ld: " #: src/utils.c:342 #, fuzzy, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "`%s' стрş° %ld: (`%s') `%s%d' ·°²µÑ€Ñˆ¸ğсь ½µÑƒÑżµÑˆ½" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "ш¸ħş° чтµ½¸Ñ ф°ığ° `%s'" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "½µ´żÑƒÑÑ‚¸ĵыı с¸ĵ²ğ ² ф°ığµ тşğ¸ş° `%s'\n" "Ħтрş° %ld: %s" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "" "`%s' стрş° %ld: (`%s') ½µ²µÑ€½µ ·½°Ñ‡µ½¸µ р°·ĵµÑ€° т°ħğ¸Ñ†Ñ‹ `sizeof %s>%d'" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s') ½µ²µÑ€½Ñ‹ı фрĵ°Ñ‚ ´°Ñ‚Ñ‹ `%s'" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "%s ² ħр°·Ñ†µ ´ğя ż¸Ñş° `%s'" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "·°´°½ ½µ²µÑ€½Ñ‹ı ħр°·µÑ† ´ğя ż¸Ñş° `%s'" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s' стрş° %ld: (`%s') ½µş½Ñ€ğ¸Ñ€Ñƒµĵ°Ñ ш¸ħş° (%d)" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 #, fuzzy msgid "internal" msgstr "’½ÑƒÑ‚Ñ€µ½½¸ı" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: ст°½²ğµ½° ż с¸³½°ğу %d\n" # *(#@$&%^! #: src/utils.c:1081 msgid "th" msgstr "" #: src/utils.c:1085 msgid "st" msgstr "" #: src/utils.c:1089 msgid "nd" msgstr "" #: src/utils.c:1093 msgid "rd" msgstr "" #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "½µ²µÑ€½Ñ‹ı ´µ½ÑŒ" #: src/utils.c:1129 msgid "Mon" msgstr "Ÿ½" #: src/utils.c:1134 msgid "Tue" msgstr "’Ñ‚" #: src/utils.c:1139 msgid "Wed" msgstr "Ħрµ" #: src/utils.c:1144 msgid "Thu" msgstr "§µÑ‚" #: src/utils.c:1149 msgid "Fri" msgstr "ŸÑÑ‚" #: src/utils.c:1154 msgid "Sat" msgstr "Ħуħ" #: src/utils.c:1159 msgid "Sun" msgstr "’с" #: src/utils.c:1180 msgid "Mo" msgstr "Ÿ½" #: src/utils.c:1185 msgid "Tu" msgstr "’Ñ‚" #: src/utils.c:1190 msgid "We" msgstr "Ħр" #: src/utils.c:1195 msgid "Th" msgstr "§Ñ‚" #: src/utils.c:1200 msgid "Fr" msgstr "ŸÑ‚" #: src/utils.c:1205 msgid "Sa" msgstr "Ħħ" #: src/utils.c:1210 msgid "Su" msgstr "’с" #: src/utils.c:1227 msgid "Monday" msgstr "Ÿ½µ´µğь½¸ş" #: src/utils.c:1227 msgid "Tuesday" msgstr "’тр½¸ş" #: src/utils.c:1227 msgid "Wednesday" msgstr "Ħрµ´°" #: src/utils.c:1227 msgid "Thursday" msgstr "§µÑ‚²µÑ€³" #: src/utils.c:1228 msgid "Friday" msgstr "ŸÑÑ‚½¸Ñ†°" #: src/utils.c:1228 msgid "Saturday" msgstr "Ħуħħт°" #: src/utils.c:1228 msgid "Sunday" msgstr "’сşÑ€µÑµ½ÑŒµ" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "½µ²µÑ€½Ñ‹ı ĵµÑÑÑ†" #: src/utils.c:1249 msgid "Jan" msgstr "ݽ²" #: src/utils.c:1254 msgid "Feb" msgstr "¤µ²" #: src/utils.c:1259 msgid "Mar" msgstr "œ°Ñ€" #: src/utils.c:1264 msgid "Apr" msgstr "żÑ€" #: src/utils.c:1269 msgid "May" msgstr "œ°ı" #: src/utils.c:1274 msgid "Jun" msgstr "˜Ñ޽" #: src/utils.c:1279 msgid "Jul" msgstr "˜ÑŽğ" #: src/utils.c:1284 msgid "Aug" msgstr "²³" #: src/utils.c:1289 msgid "Sep" msgstr "Ħµ½" #: src/utils.c:1294 msgid "Oct" msgstr "žşÑ‚" #: src/utils.c:1299 msgid "Nov" msgstr "Ñ" #: src/utils.c:1304 msgid "Dec" msgstr "”µş" #: src/utils.c:1322 msgid "January" msgstr "ݽ²°Ñ€ÑŒ" #: src/utils.c:1322 msgid "February" msgstr "¤µ²Ñ€°ğь" #: src/utils.c:1323 msgid "March" msgstr "œ°Ñ€Ñ‚" #: src/utils.c:1323 msgid "April" msgstr "żÑ€µğь" #: src/utils.c:1333 #, fuzzy msgid "May " msgstr "ŸµÑ€²µ œ°Ñ" #: src/utils.c:1334 msgid "June" msgstr "˜ÑŽ½ÑŒ" #: src/utils.c:1334 msgid "July" msgstr "˜ÑŽğь" #: src/utils.c:1335 msgid "August" msgstr "²³ÑƒÑÑ‚" #: src/utils.c:1335 msgid "September" msgstr "Ħµ½Ñ‚яħрь" #: src/utils.c:1336 msgid "October" msgstr "žşÑ‚яħрь" #: src/utils.c:1336 msgid "November" msgstr "Ñħрь" #: src/utils.c:1336 msgid "December" msgstr "”µş°ħрь" #: src/tcal.c:193 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "" "˜Ñżğь·²°½¸µ: %s [--help | --version] | [--shift=[+|-]§˜Ħ›ž] " "[ “£œ•˘...]\n" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: ст°½², " #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "·½°Ñ‡µ½¸µ с´²¸³° `%s' ½µ²µÑ€½" #: src/tcal.c:909 #, fuzzy, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: şğюч `%s' ´ğĥµ½ ¸Ñżğь·²°Ñ‚ься c °Ñ€³Ñƒĵµ½Ñ‚ĵ" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: ш¸ħş° ² ²Ñ€µĵя ²Ñ‹żğ½µ½¸Ñ żÑ€³Ñ€°ĵĵы `%s'\n" #: src/txt2gcal.c:132 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "" "˜Ñżğь·²°½¸µ: %s [--help | --version] | [˘•šĦ˘ž’Ğ™-¤™› | -] [§Ħ˘Ĵ-" "”˘Ğ]\n" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "%s: ½µ я²ğяµÑ‚ся ħыч½Ñ‹ĵ ф°ığĵ\n" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "%s: ф°ığ ½µ ½°ı´µ½\n" #: src/gcal2txt.c:132 #, fuzzy, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "˜Ñżğь·²°½¸µ: %s [--help | --version] | [ •Ħ£ ĦĞ™-¤™› | -]\n" #~ msgid "Day number with leading spaces" #~ msgstr "ĵµÑ€ ´½Ñ с żÑ€ħµğ°ĵ¸ ² ½°Ñ‡°ğµ" #~ msgid "Day number with leading zeroes and trailing suffix" #~ msgstr "ĵµÑ€ ´½Ñ с ½Ñƒğяĵ¸ ² ½°Ñ‡°ğµ ¸ суфф¸şÑĵ ² ş½Ñ†µ" #~ msgid "Day number with leading spaces and trailing suffix" #~ msgstr "ĵµÑ€ ´½Ñ с żÑ€ħµğ°ĵ¸ ² ½°Ñ‡°ğµ ¸ суфф¸şÑĵ ² ş½Ñ†µ" #~ msgid "Abbreviated month name (3 letters)" #~ msgstr "ĦşÑ€°Ñ‰µ½½µ ½°·²°½¸µ ĵµÑÑÑ†° (3 ħуş²Ñ‹)" #~ msgid "Month number with leading zero" #~ msgstr "ĵµÑ€ ĵµÑÑÑ†° с ½°Ñ‡°ğь½Ñ‹ĵ ½Ñƒğµĵ" #~ msgid "Month number with leading space" #~ msgstr "ĵµÑ€ ĵµÑÑÑ†° с ½°Ñ‡°ğь½Ñ‹ĵ żÑ€ħµğĵ" #~ msgid "Complete year number with leading zeroes" #~ msgstr "Ÿğ½Ñ‹ı ½ĵµÑ€ ³´° с ½°Ñ‡°ğь½Ñ‹ĵ¸ ½Ñƒğяĵ¸" #~ msgid "Complete year number with leading spaces" #~ msgstr "Ÿğ½Ñ‹ı ½ĵµÑ€ ³´° с ½°Ñ‡°ğь½Ñ‹ĵ¸ żÑ€ħµğ°ĵ¸" #~ msgid "Last two digits of year number with leading zero" #~ msgstr "”²µ żÑğµ´½¸µ ц¸Ñ„ры ½ĵµÑ€° ³´° с ½°Ñ‡°ğь½Ñ‹ĵ ½Ñƒğµĵ" #~ msgid "Last two digits of year number with leading space" #~ msgstr "”²µ żÑğµ´½¸µ ц¸Ñ„ры ½ĵµÑ€° ³´° с ½°Ñ‡°ğь½Ñ‹ĵ żÑ€ħµğĵ" #~ msgid "Complete weekday name" #~ msgstr "Ÿğ½µ ½°·²°½¸µ ´½Ñ ½µ´µğ¸" #~ msgid "Abbreviated weekday name (3 letters)" #~ msgstr "ĦşÑ€°Ñ‰µ½½µ ½°·²°½¸µ ´½Ñ ½µ´µğ¸ (3 ħуş²Ñ‹)" #~ msgid "Abbreviated weekday name (2 letters)" #~ msgstr "ĦşÑ€°Ñ‰µ½½µ ½°·²°½¸µ ´½Ñ ½µ´µğ¸ (2 ħуş²Ñ‹)" #~ msgid "y" #~ msgstr "³" #~ msgid "m" #~ msgstr "ĵ" #~ msgid "w" #~ msgstr "½" #~ msgid "d" #~ msgstr "´" #~ msgid "Swiss" #~ msgstr "¨²µıц°Ñ€Ñş¸ı" #~ msgid "Czech" #~ msgstr "§µÑˆÑş¸ı" #~ msgid "German" #~ msgstr "“µÑ€ĵ°½Ñş¸ı" #~ msgid "Danish" #~ msgstr "”°Ñ‚сş¸ı" #~ msgid "Spanish" #~ msgstr "˜Ñż°½Ñş¸ı" #~ msgid "Finnish" #~ msgstr "¤¸½Ñş¸ı" #~ msgid "Dutch" #~ msgstr "“ğğ°´Ñş¸ı" #~ msgid "Polish" #~ msgstr "Ÿğьсş¸ı" #~ msgid "Thai" #~ msgstr "˘°ıсş¸ı" #~ msgid "U.S. American" #~ msgstr "ĵµÑ€¸ş°½Ñş¸ı" #~ msgid "Std" #~ msgstr "Ħт°½´°Ñ€Ñ‚½Ñ‹ı" #~ msgid "Trinity Sunday" #~ msgstr "˘Ñ€¸Ñ†Ñ‹½ ´µ½ÑŒ" #~ msgid "Ferragosto" #~ msgstr "¤µÑ€Ñ€°³ÑÑ‚" #~ msgid "Midsummer's Day" #~ msgstr "›µÑ‚½µµ сğ½Ñ†µÑÑ‚я½¸µ" #~ msgid "Walpurgis Night" #~ msgstr "’°ğьżÑƒÑ€³¸µ²° ½Ñ‡ÑŒ" #~ msgid "" #~ " %-3s = Definition of \"tvar%s`text'\" separated by `%s' characters" #~ msgstr "" #~ " %-3s = žżÑ€µ´µğµ½¸Ñ żµÑ€µĵµ½½Ñ‹Ñ… \"tvar%s`тµşÑÑ‚'\", р°·´µğµ½½Ñ‹µ " #~ "с¸ĵ²ğ°ĵ¸ `%s'" #~ msgid " %-3s = Any text you like, metacharacters are not respected" #~ msgstr " %-3s = ›ÑŽħı тµşÑÑ‚, ĵµÑ‚°Ñ¸ĵ²ğы ½µ р°ÑÑĵ°Ñ‚Ñ€¸²°ÑŽÑ‚ся" #~ msgid " %-3s = Email address" #~ msgstr " %-3s = ´Ñ€µÑ эğµşÑ‚Ñ€½½ı żÑ‡Ñ‚Ñ‹" #~ msgid " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr " ŸÑ€ĵµĥутş: [%s%s]%s%s[%s%s]%s" #~ msgid "" #~ "%sh|hh = Help screen; %sL = License; %sV = Version; %su = Suppress " #~ "calendar sheet" #~ msgstr "" #~ "%sh|hh = ĦżÑ€°²ş°; %sL = ›¸Ñ†µ½·¸Ñ; %sV = ’µÑ€Ñ¸Ñ; %su = Ÿ´°²¸Ñ‚ÑŒ ²Ñ‹²´ " #~ "ş°ğµ½´°Ñ€Ñ" #~ msgid "%si[-] = Special calendar format; " #~ msgstr "%si[-] = ĦżµÑ†¸°ğь½Ñ‹ı фрĵ°Ñ‚ ş°ğµ½´°Ñ€Ñ;" #~ msgid "%sp = Simple pager; " #~ msgstr "" #~ " \n" #~ "%sp = ˜Ñżğь·²°Ñ‚ÑŒ żÑ€ÑÑ‚ую żÑ€³Ñ€°ĵĵу żÑÑ‚Ñ€°½¸Ñ‡½³ żÑ€Ñĵтр°;" #~ msgid "%sH yes = Use highlighting" #~ msgstr "" #~ " \n" #~ "%sH yes = ˜Ñżğь·²°Ñ‚ÑŒ ²Ñ‹´µğµ½¸µ" #~ msgid "" #~ "%sb %-3s = Year calendar with 1|2|3|4|6|12 blocks; %sH no = Disable " #~ "highlighting" #~ msgstr "" #~ "%sb %-3s = “´²ı ş°ğµ½´°Ñ€ÑŒ с 1|2|3|4|6|12 ħğş°ĵ¸\n" #~ "%sH no = µ ¸Ñżğь·²°Ñ‚ÑŒ ²Ñ‹´µğµ½¸µ" #~ msgid "%sj[] = Output of consecutive day of year (Modifiers: [b n nb" #~ msgstr "%sj[] = ’Ñ‹²´¸Ñ‚ÑŒ ½ĵµÑ€ ´½Ñ ² ³´Ñƒ (œ´¸Ñ„¸ş°Ñ‚ры: [b n nb" #~ msgid "" #~ "%ss %-3s = Starting day of week (%s = 0|today | %d|%s | %d|%s | ... | %d|" #~ "%s)" #~ msgstr "" #~ "%ss %-3s = ŸµÑ€²Ñ‹ı ´µ½ÑŒ ½µ´µğ¸ (%s = 0|today | %d|%s | %d|%s | ... | %d|" #~ "%s)" #~ msgid "%sn|N[%s] = Display eternal holiday list (Year in range: %d...%d)" #~ msgstr "" #~ "%sn|N[%s] = ’Ñ‹²µÑÑ‚¸ ²µÑ‡½Ñ‹ı сż¸Ñş żÑ€°·´½¸ş² (’ żÑ€ĵµĥутşµ ğµÑ‚: %d...%d)" #~ msgid "" #~ "%sc|C[] = Fixed date list of file `.%s%s'; %sf|F %s[%s%s%s...]=Use file " #~ "%s" #~ msgstr "" #~ "%sc|C[] = Ħż¸Ñş ф¸şÑ. ´°Ñ‚ ф°ığ° `.%s%s'; %sf|F %s[%s%s" #~ "%s...]=˜Ñżğь·²°Ñ‚ÑŒ ф°ığ %s" #~ msgid "" #~ "%sc|C[] = Fixed date list of file `%s%s'; %sf|F %s[%s%s%s...]=Use file %s" #~ msgstr "" #~ "%sc|C[] = Ħż¸Ñş ф¸şÑ. ´°Ñ‚ ф°ığ° `%s%s'; %sf|F %s[%s%s" #~ "%s...]=˜Ñżğь·²°Ñ‚ÑŒ ф°ığ %s" #~ msgid "" #~ "%s = Month in range: %d...%d List: %s[%s%s]%s...%s" #~ "%s[%s%s]" #~ msgstr "" #~ "%s = œµÑÑÑ† ² żÑ€ĵµĥутşµ: %d...%d Ħż¸Ñş: %s[%s%s]%s...%s" #~ "%s[%s%s]" #~ msgid "" #~ " or: month name|%s[%s|%s|%s] Range: %s[%s%s]%s%s[%s" #~ "%s]" #~ msgstr "" #~ " ¸ğ¸: ½°·²°½¸µ ĵµÑÑÑ†°|%s[%s|%s|%s] ŸÑ€ĵµĥутş: %s[%s%s]%s" #~ "%s[%s%s]" #~ msgid "" #~ "%s = Year in range: %d...%d%*s%*s List: [%s%s]%s%s...%s[%s" #~ "%s]%s" #~ msgstr "" #~ "%s = “´ ² żÑ€ĵµĥутşµ: %d...%d%*s%*s Ħż¸Ñş: [%s%s]%s%s...%s[%s" #~ "%s]%s" #~ msgid "" #~ " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr "" #~ " ŸÑ€ĵµĥутş: %s[%s%s]%s" #~ "%s[%s%s]" #~ msgid "Compilation options:" #~ msgstr "šğюч¸ żÑ€¸ şĵż¸ğяц¸¸:" #~ msgid "Gregorian Reformation: %02d-%02d %s %0*d" #~ msgstr "“Ñ€¸³Ñ€¸°½Ñş°Ñ рµÑ„Ñ€ĵ°: %02d-%02d %s %0*d" #~ msgid "Date format: (%s) `%s' (%s)" #~ msgstr "¤Ñ€ĵ°Ñ‚ ´°Ñ‚Ñ‹: (%s) `%s' (%s)" #~ msgid "or (if this fails) to ." #~ msgstr "¸ğ¸ (µÑğ¸ ½µ żğуч¸Ñ‚ся) ż °´Ñ€µÑÑƒ ." #~ msgid "" #~ " +++ If you specify two digits for the year I DON'T assume %2d%s +++" #~ msgstr "" #~ " +++ •с𸠲ы ·°´°´¸Ñ‚µ ´²µ ц¸Ñ„ры, żÑ€³Ñ€°ĵĵ° • ż´Ñ€°·Ñƒĵµ²°µÑ‚ %2d%s +++" #~ msgid " +++ `%s' is free software, enjoy =8^) +++" #~ msgstr " +++ `%s' -- эт с²ħ´½°Ñ żÑ€³Ñ€°ĵĵ°, żğь·ÑƒıтµÑÑŒ =8^) +++" #~ msgid " on %s" #~ msgstr " %s" #~ msgid " unknown date" #~ msgstr " ´°Ñ‚° ½µ¸·²µÑÑ‚½°" #~ msgid "" #~ "%s: invalid date given -- %s\n" #~ "%s\n" #~ msgstr "" #~ "%s: ·°´°½° ½µ²µÑ€½°Ñ ´°Ñ‚° -- %s\n" #~ "%s\n" #~ msgid "Abort!" #~ msgstr "žÑÑ‚°½²!" #~ msgid "NULL argument" #~ msgstr "°Ñ€³Ñƒĵµ½Ñ‚ р°²µ½ NULL" #~ msgid "out of space" #~ msgstr "½µ´ÑÑ‚°Ñ‚ч½ ĵµÑÑ‚°" #~ msgid "too many ()" #~ msgstr "ğ¸Ñˆ½¸µ şÑ€Ñƒ³ğыµ сşħş¸" #~ msgid "junk on end" #~ msgstr "ş½µÑ† ż²Ñ€µĥ´µ½" #~ msgid "*+ operand could be empty" #~ msgstr "żÑ€µÑ€°½´ *+ ĵ³ ħы ħыть żÑƒÑÑ‚Ñ‹ĵ" #~ msgid "nested *?+" #~ msgstr "²ğĥµ½½Ñ‹µ *?+" #~ msgid "unmatched []" #~ msgstr "½µż°Ñ€½Ñ‹µ ş²°´Ñ€°Ñ‚½Ñ‹µ сşħş¸" #~ msgid "internal urp" #~ msgstr "²½ÑƒÑ‚Ñ€µ½½¸µ żÑ€ħğµĵы" #~ msgid "?+* follows nothing" #~ msgstr "·° ?+* ½¸Ñ‡µ³ ½µ сğµ´ÑƒµÑ‚" #~ msgid "trailing \\" #~ msgstr "с¸ĵ²ğ \\ ²ÑÑ‚Ñ€µÑ‡µ½ ² ş½Ñ†µ" #~ msgid "internal disaster" #~ msgstr "²½ÑƒÑ‚Ñ€µ½¸ı şÑ€°Ñ…" #~ msgid "NULL parameter" #~ msgstr "ż°Ñ€°ĵµÑ‚Ñ€ р°²µ½ NULL" #~ msgid "corrupted program" #~ msgstr "ż²Ñ€µĥ´µ½¸Ñ ² żÑ€³Ñ€°ĵĵµ" #~ msgid "memory corruption" #~ msgstr "ż²Ñ€µĥ´µ½¸Ñ ² ż°ĵят¸" #~ msgid "corrupted pointers" #~ msgstr "ż²Ñ€µĥ´µ½¸µ уş°·°Ñ‚µğµı" #~ msgid "internal foulup" #~ msgstr "²½ÑƒÑ‚Ñ€µ½½µµ ż²Ñ€µĥ´µ½¸µ ´°½½Ñ‹Ñ…" #~ msgid "start `%c' " #~ msgstr "½°Ñ‡°ğ `%c' " #~ msgid "anchored " #~ msgstr "·°Ñ†µżğµ½½µ " #~ msgid "must have \"%s\"" #~ msgstr "´ğĥ½ ¸ĵµÑ‚ÑŒ \"%s\"" #~ msgid "corrupted opcode" #~ msgstr "ż²Ñ€µĥ´µ½½Ñ‹ı ş´ żµÑ€°Ñ†¸¸" #~ msgid "" #~ "illegal date variable operation (%s)\n" #~ "%s\n" #~ msgstr "" #~ "½µ´żÑƒÑÑ‚¸ĵ°Ñ żµÑ€°Ñ†¸Ñ с żµÑ€µĵµ½½ı ´°Ñ‚Ñ‹ (%s)\n" #~ "%s\n" #~ msgid "" #~ "illegal text variable definition (%s)\n" #~ "%s\n" #~ msgstr "" #~ "½µ´żÑƒÑÑ‚¸ĵµ żÑ€µ´µğµ½¸µ тµşÑÑ‚²ı żµÑ€µĵµ½½ı (%s)\n" #~ "%s\n" gcal-4.1/po/lt.po0000664000000000000000000031137013041164031010550 00000000000000# translation of gcal-3.00 to Lithuanian # Copyright (C) 2009 Thomas Esken (msgids) # This file is distributed under the same license as the gcal package. # # Gintautas Miliauskas , 2008, 2009. msgid "" msgstr "" "Project-Id-Version: gcal-3.00\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 2009-02-12 16:26+0200\n" "Last-Translator: Gintautas Miliauskas \n" "Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" "%100<10 || n%100>=20) ? 1 : 2);\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "" #: lib/regcomp.c:135 msgid "Success" msgstr "" #: lib/regcomp.c:138 msgid "No match" msgstr "" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:156 msgid "Unmatched [, [^, [:, [., or [=" msgstr "" #: lib/regcomp.c:159 msgid "Unmatched ( or \\(" msgstr "" #: lib/regcomp.c:162 msgid "Unmatched \\{" msgstr "" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:168 msgid "Invalid range end" msgstr "" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "" #: lib/regcomp.c:180 msgid "Regular expression too big" msgstr "" #: lib/regcomp.c:183 msgid "Unmatched ) or \\)" msgstr "" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, c-format msgid "%s subprocess" msgstr "" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "" #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "" #: src/file-io.c:1686 msgid " `HERE' " msgstr "" #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "Vokietija" #: src/gcal.c:1075 msgid "U.S.A." msgstr "JAV" #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "DidĊioji Britanija" #: src/gcal.c:1852 msgid "default" msgstr "" #: src/gcal.c:1951 msgid ":" msgstr ":" #: src/gcal.c:1961 msgid "Y" msgstr "Y" #: src/gcal.c:1966 msgid "M" msgstr "M" #: src/gcal.c:1971 msgid "W" msgstr "S" #: src/gcal.c:1976 msgid "D" msgstr "D" #: src/gcal.c:2067 msgid "Fixed date list:" msgstr "" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "" #: src/gcal.c:2268 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "" #: src/gcal.c:2864 msgid "response file" msgstr "" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "Sukurta" #: src/gcal.c:2872 msgid "shell script" msgstr "" #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "" #: src/gcal.c:5910 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "" #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "" #: src/gcal.c:5995 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" #: src/hd-data.c:64 msgid "Australia" msgstr "Australija" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "Belgija" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "Brazilija" #: src/hd-data.c:67 msgid "Canada" msgstr "Kanada" #: src/hd-data.c:68 msgid "Switzerland" msgstr "Ċ veicarija" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "Kinija" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "Ispanija" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "PrancĊĞzija" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "Izraelis" #: src/hd-data.c:75 src/hd-data.c:250 msgid "Italy" msgstr "Italija" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "Japonija" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "Meksika" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "Olandija" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "Naujoji Zelandija" #: src/hd-data.c:81 src/hd-data.c:320 msgid "Portugal" msgstr "Portugalija" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "Rusijos federacija" #: src/hd-data.c:83 msgid "United States" msgstr "Jungtinės Valstijos" #: src/hd-data.c:85 msgid "Andorra" msgstr "Andora" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "Jungtiniai ArabĊ³ Emyratai" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "Afganistanas" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "" #: src/hd-data.c:89 msgid "Anguilla" msgstr "Angvila" #: src/hd-data.c:90 msgid "Albania" msgstr "Albanija" #: src/hd-data.c:91 msgid "Armenia" msgstr "Armėnija" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "" #: src/hd-data.c:93 #, fuzzy msgid "Netherlands Antilles/Cura§ao" msgstr "OlandĊ³ Antilai" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "" #: src/hd-data.c:96 msgid "Angola #" msgstr "" #: src/hd-data.c:97 msgid "Argentina" msgstr "Argentina" #: src/hd-data.c:98 msgid "American Samoa" msgstr "Amerikos Samoa" #: src/hd-data.c:99 msgid "Austria" msgstr "Austrija" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "" #: src/hd-data.c:108 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "AzerbaidĊanas" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "" #: src/hd-data.c:111 msgid "Barbados" msgstr "Barbadosas" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "Burkina Fasas" #: src/hd-data.c:115 msgid "Bulgaria" msgstr "Bulgarija" #: src/hd-data.c:116 msgid "Bahrain" msgstr "Bahreinas" #: src/hd-data.c:117 msgid "Burundi #" msgstr "" #: src/hd-data.c:118 msgid "Benin #" msgstr "" #: src/hd-data.c:119 msgid "Bermuda" msgstr "Bermudai" #: src/hd-data.c:120 msgid "Brunei" msgstr "" #: src/hd-data.c:121 msgid "Bolivia" msgstr "Bolivija" #: src/hd-data.c:123 msgid "Bahamas" msgstr "Bahamai" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "Buvė sala" #: src/hd-data.c:126 msgid "Botswana" msgstr "Botsvana" #: src/hd-data.c:127 msgid "Belarus" msgstr "Gudija" #: src/hd-data.c:128 msgid "Belize" msgstr "Belizas" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "" #: src/hd-data.c:135 msgid "Canada/Northwest Territories" msgstr "" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "" #: src/hd-data.c:138 #, fuzzy msgid "Canada/Quİbec" msgstr "Kanada" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "" #: src/hd-data.c:149 #, fuzzy msgid "Switzerland/Basel-Landschaft" msgstr "Ċ veicarija" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "" #: src/hd-data.c:152 #, fuzzy msgid "Switzerland/Gen¨ve" msgstr "Ċ veicarija" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "" #: src/hd-data.c:154 #, fuzzy msgid "Switzerland/Graubĵnden" msgstr "Ċ veicarija" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "" #: src/hd-data.c:157 #, fuzzy msgid "Switzerland/Neuch˘tel" msgstr "Ċ veicarija" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "" #: src/hd-data.c:161 #, fuzzy msgid "Switzerland/Schaffhausen" msgstr "Ċ veicarija" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "" #: src/hd-data.c:170 #, fuzzy msgid "Switzerland/Zĵrich" msgstr "Ċ veicarija" #: src/hd-data.c:171 #, fuzzy msgid "C´te d'Ivoire" msgstr "Dramblio Kaulo Krantas" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "Kuko Salynas" #: src/hd-data.c:173 msgid "Chile" msgstr "Čilė" #: src/hd-data.c:174 msgid "Cameroon" msgstr "KamerĊĞnas" #: src/hd-data.c:176 msgid "Colombia" msgstr "Kolumbija" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "Kosta Rika" #: src/hd-data.c:178 msgid "Cuba" msgstr "Kuba" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "Ċ½aliasis kyĊĦulys" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "" #: src/hd-data.c:181 msgid "Cyprus" msgstr "Kipras" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "Čekijos respublika" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "" #: src/hd-data.c:184 msgid "Germany/Berlin" msgstr "" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "" #: src/hd-data.c:186 msgid "Germany/Bavaria" msgstr "" #: src/hd-data.c:187 msgid "Germany/Bremen" msgstr "" #: src/hd-data.c:188 msgid "Germany/Hesse" msgstr "" #: src/hd-data.c:189 msgid "Germany/Hamburg" msgstr "" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saarland" msgstr "Vokietija" #: src/hd-data.c:196 msgid "Germany/Saxony" msgstr "" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "" #: src/hd-data.c:199 msgid "Djibouti" msgstr "DĊibutis" #: src/hd-data.c:200 msgid "Denmark" msgstr "Danija" #: src/hd-data.c:201 msgid "Dominica" msgstr "Dominika" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "Dominikos respublika" #: src/hd-data.c:203 msgid "Algeria" msgstr "AlĊyras" #: src/hd-data.c:204 msgid "Ecuador" msgstr "Ekvadoras" #: src/hd-data.c:205 msgid "Estonia" msgstr "Estija" #: src/hd-data.c:206 msgid "Egypt" msgstr "Egiptas" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "VakarĊ³ Sachara" #: src/hd-data.c:208 msgid "Eritrea" msgstr "Eritrėja" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "Etiopija" #: src/hd-data.c:211 msgid "Finland" msgstr "Suomija" #: src/hd-data.c:212 msgid "Fiji #" msgstr "" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "" #: src/hd-data.c:215 msgid "Faroes" msgstr "Farerai" #: src/hd-data.c:217 msgid "Gabon #" msgstr "" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "DidĊioji Britanija/Anglija ir Velsas" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "DidĊioji Britanija/Ċ iaurės Airija" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "DidĊioji Britanija/Ċ kotija" #: src/hd-data.c:221 msgid "Grenada" msgstr "Grenada" #: src/hd-data.c:222 msgid "Georgia" msgstr "Gruzija" #: src/hd-data.c:223 msgid "French Guiana" msgstr "PrancĊĞzĊ³ Gviana" #: src/hd-data.c:224 msgid "Ghana" msgstr "Gana" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "Gibraltaras" #: src/hd-data.c:226 msgid "Greenland" msgstr "Grenlandija" #: src/hd-data.c:227 msgid "Gambia" msgstr "Gambija" #: src/hd-data.c:228 msgid "Guinea" msgstr "Gvinėja" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "Gvadelupė" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "Pusiaujo Gvinėja" #: src/hd-data.c:231 msgid "Greece" msgstr "Graikija" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "" #: src/hd-data.c:233 msgid "Guatemala" msgstr "Gvatemala" #: src/hd-data.c:234 msgid "Guam" msgstr "Guamas" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "" #: src/hd-data.c:236 msgid "Guyana #" msgstr "" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "Honkongas" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "" #: src/hd-data.c:239 msgid "Honduras" msgstr "HondĊĞras" #: src/hd-data.c:240 msgid "Croatia" msgstr "Kroatija" #: src/hd-data.c:241 msgid "Haiti" msgstr "Haitis" #: src/hd-data.c:242 msgid "Hungary" msgstr "Vengrija" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "" #: src/hd-data.c:244 msgid "Ireland" msgstr "Airija" #: src/hd-data.c:246 msgid "India #" msgstr "" #: src/hd-data.c:247 msgid "Iraq" msgstr "Irakas" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "" #: src/hd-data.c:249 msgid "Iceland" msgstr "Islandija" #: src/hd-data.c:251 msgid "Jamaica" msgstr "Jamaika" #: src/hd-data.c:252 msgid "Jordan" msgstr "Jordanas" #: src/hd-data.c:254 msgid "Kenya #" msgstr "" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "Kirgistanas" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "" #: src/hd-data.c:258 msgid "Comoros" msgstr "Komorai" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "" #: src/hd-data.c:262 msgid "Kuwait" msgstr "Kuveitas" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "KaimanĊ³ salos" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "Kazachstanas" #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "" #: src/hd-data.c:266 msgid "Lebanon" msgstr "Libanas" #: src/hd-data.c:267 msgid "St Lucia" msgstr "" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "LichtenĊĦteinas" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "" #: src/hd-data.c:270 msgid "Liberia" msgstr "Liberija" #: src/hd-data.c:271 msgid "Lesotho" msgstr "Lesotas" #: src/hd-data.c:272 msgid "Lithuania" msgstr "Lietuva" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "Liuksemburgas" #: src/hd-data.c:274 msgid "Latvia" msgstr "Latvija" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "" #: src/hd-data.c:276 msgid "Morocco" msgstr "Marokas" #: src/hd-data.c:277 msgid "Monaco" msgstr "Monakas" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "MarĊĦalo salos" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "" #: src/hd-data.c:282 msgid "Mali" msgstr "Malis" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "" #: src/hd-data.c:284 msgid "Macau" msgstr "" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "" #: src/hd-data.c:286 msgid "Martinique" msgstr "Martinika" #: src/hd-data.c:287 msgid "Mauritania" msgstr "Mauritanija" #: src/hd-data.c:288 msgid "Montserrat" msgstr "Montseratas" #: src/hd-data.c:289 msgid "Malta" msgstr "Malta" #: src/hd-data.c:290 msgid "Mauritius" msgstr "Mauricijus" #: src/hd-data.c:291 msgid "Maldives" msgstr "Maldyvai" #: src/hd-data.c:292 msgid "Malawi" msgstr "Malavis" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "" #: src/hd-data.c:295 msgid "Mozambique" msgstr "Mozambikas" #: src/hd-data.c:296 msgid "Namibia" msgstr "Namibija" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "Naujoji Kaledonija" #: src/hd-data.c:298 msgid "Niger" msgstr "Nigeris" #: src/hd-data.c:299 #, fuzzy msgid "Norfolk Island" msgstr "Kuko Salynas" #: src/hd-data.c:300 msgid "Nigeria" msgstr "Nigerija" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "Nikaragva" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "Mianmaras (Birma) #" #: src/hd-data.c:304 msgid "Norway" msgstr "Norvegija" #: src/hd-data.c:305 msgid "Nepal #" msgstr "Nepalas #" #: src/hd-data.c:306 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:307 msgid "Niue" msgstr "Niujė" #: src/hd-data.c:309 msgid "Oman" msgstr "Omanas" #: src/hd-data.c:310 msgid "Panama" msgstr "Panama" #: src/hd-data.c:311 msgid "Peru" msgstr "Peru" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "PrancĊĞzijos Polinezija" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "Papua Naujoji Gvinėja" #: src/hd-data.c:314 msgid "Philippines" msgstr "Filipinai" #: src/hd-data.c:315 msgid "Pakistan" msgstr "Pakistanas" #: src/hd-data.c:316 msgid "Poland" msgstr "Lenkija" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "Pitkernas" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "Puerto Rikas" #: src/hd-data.c:321 msgid "Palau" msgstr "Palau" #: src/hd-data.c:322 msgid "Paraguay" msgstr "Paragvajus" #: src/hd-data.c:323 msgid "Qatar" msgstr "Kvataras" #: src/hd-data.c:324 #, fuzzy msgid "Rİunion" msgstr "Rejunjonas" #: src/hd-data.c:325 msgid "Romania" msgstr "Rumunija" #: src/hd-data.c:327 msgid "Rwanda" msgstr "Ruanda" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "Saudo Arabija" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "Saliamono salos" #: src/hd-data.c:330 msgid "Seychellen" msgstr "SeiĊĦeliai" #: src/hd-data.c:331 msgid "Sudan" msgstr "Sudanas" #: src/hd-data.c:332 msgid "Sweden" msgstr "Ċ vedija" #: src/hd-data.c:333 msgid "Singapore #" msgstr "" #: src/hd-data.c:334 msgid "St Helena" msgstr "" #: src/hd-data.c:335 msgid "Slovenia" msgstr "Slovėnija" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "" #: src/hd-data.c:337 msgid "Slovakia" msgstr "Slovakija" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "Siera Leonė" #: src/hd-data.c:339 msgid "San Marino" msgstr "San Marinas" #: src/hd-data.c:340 msgid "Senegal" msgstr "Senegalas" #: src/hd-data.c:341 msgid "Somalia" msgstr "Somalis" #: src/hd-data.c:342 msgid "Suriname #" msgstr "Surinamas #" #: src/hd-data.c:343 #, fuzzy msgid "Sao Tomİ and Principe" msgstr "San Tomė ir Prinsipė" #: src/hd-data.c:344 msgid "El Salvador" msgstr "El Salvadoras" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "Sirija" #: src/hd-data.c:346 msgid "Swaziland" msgstr "Svazilendas" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "" #: src/hd-data.c:348 msgid "Chad" msgstr "Čadas" #: src/hd-data.c:349 msgid "Togo #" msgstr "" #: src/hd-data.c:350 msgid "Thailand #" msgstr "Tailandas #" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "TadĊikistanas" #: src/hd-data.c:352 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "Turkmėnistanas" #: src/hd-data.c:354 msgid "Tunisia" msgstr "Tunisas" #: src/hd-data.c:355 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:356 msgid "Turkey" msgstr "Turkija" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:359 msgid "Taiwan" msgstr "Taivanas" #: src/hd-data.c:360 msgid "Tanzania" msgstr "Tanzanija" #: src/hd-data.c:361 msgid "Ukraine" msgstr "Ukraina" #: src/hd-data.c:362 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "" #: src/hd-data.c:367 msgid "United States/California" msgstr "" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "" #: src/hd-data.c:397 msgid "United States/New York" msgstr "" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "" #: src/hd-data.c:406 msgid "United States/Texas" msgstr "" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "" #: src/hd-data.c:414 msgid "Uruguay" msgstr "Urugvajus" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "Uzbekistanas" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "" #: src/hd-data.c:417 msgid "Venezuela" msgstr "Venesuela" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "Vietnamas" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "" #: src/hd-data.c:423 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:424 msgid "Yemen" msgstr "Jemenas" #: src/hd-data.c:425 msgid "Mayotte" msgstr "Majotas" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "" #: src/hd-data.c:427 msgid "South Africa" msgstr "PietĊ³ Afrikos respublika" #: src/hd-data.c:428 msgid "Zambia" msgstr "Zambija" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "Zimbabvė" #: src/hd-data.c:459 msgid "1st Advent" msgstr "" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "" #: src/hd-data.c:465 msgid "4th Advent" msgstr "" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "" #: src/hd-data.c:485 msgid "Anzac Day" msgstr "" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "" #: src/hd-data.c:489 msgid "Ash Monday" msgstr "" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "" #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "" #: src/hd-data.c:503 msgid "Basque National Day" msgstr "" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "" #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "" #: src/hd-data.c:510 msgid "Boxing Day" msgstr "" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "" #: src/hd-data.c:514 msgid "Burns Night" msgstr "" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "" #: src/hd-data.c:516 msgid "Carnival" msgstr "" #: src/hd-data.c:517 msgid "Beltane" msgstr "" #: src/hd-data.c:518 msgid "Imbolg" msgstr "" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "" #: src/hd-data.c:521 msgid "Children's Day" msgstr "" #: src/hd-data.c:522 msgid "Cycle" msgstr "" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "" #: src/hd-data.c:538 msgid "Culture Day" msgstr "" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "" #: src/hd-data.c:547 msgid "Double-9 Day" msgstr "" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "" #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "" #: src/hd-data.c:554 msgid "Annular" msgstr "" #: src/hd-data.c:555 msgid "Partial" msgstr "" #: src/hd-data.c:556 msgid "Penumbral" msgstr "" #: src/hd-data.c:557 msgid "Total" msgstr "" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "" #: src/hd-data.c:559 msgid "Election Day" msgstr "" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "" #: src/hd-data.c:561 msgid "Equinox Day" msgstr "" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "" #: src/hd-data.c:563 msgid "Father's Day" msgstr "" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "" #: src/hd-data.c:565 msgid "Feast of Fortune" msgstr "" #: src/hd-data.c:566 msgid "Feast of Heart Jesus" msgstr "" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "" #: src/hd-data.c:569 msgid "Flag Day" msgstr "" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "" #: src/hd-data.c:573 msgid "French Revolutionary" msgstr "" #: src/hd-data.c:574 msgid "Friendship Day" msgstr "" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "" #: src/hd-data.c:576 msgid "Good Friday" msgstr "" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "" #: src/hd-data.c:579 msgid "Greenery Day" msgstr "" #: src/hd-data.c:580 msgid "Grotto Day" msgstr "" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "" #: src/hd-data.c:583 msgid "Guy Fawkes Day" msgstr "" #: src/hd-data.c:584 msgid "Halloween" msgstr "" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "" #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "" #: src/hd-data.c:604 msgid "Huravee Day" msgstr "" #: src/hd-data.c:605 msgid "Independence Day" msgstr "" #: src/hd-data.c:606 msgid "Independence Movement Day" msgstr "" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "" #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "" #: src/hd-data.c:610 msgid "Ashura'" msgstr "" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "" #: src/hd-data.c:614 msgid "Ghadir" msgstr "" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "" #: src/hd-data.c:618 msgid "Quds Day" msgstr "" #: src/hd-data.c:619 msgid "Ramadan" msgstr "" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "" #: src/hd-data.c:628 msgid "Labour Day" msgstr "" #: src/hd-data.c:629 msgid "Labour Thanksgiving Day" msgstr "" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "" #: src/hd-data.c:632 msgid "Marine Day" msgstr "" #: src/hd-data.c:633 msgid "Martinimas" msgstr "" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "" #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "" #: src/hd-data.c:639 msgid "Mary's Expectation" msgstr "" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "" #: src/hd-data.c:641 msgid "Mary's Maternity" msgstr "" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "" #: src/hd-data.c:645 msgid "Mary's Visitation" msgstr "" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "" #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "" #: src/hd-data.c:648 msgid "May Day" msgstr "" #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "" #: src/hd-data.c:654 msgid "Full Moon" msgstr "" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "" #: src/hd-data.c:656 msgid "New Moon" msgstr "" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "" #: src/hd-data.c:661 msgid "National Holiday" msgstr "" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "" #: src/hd-data.c:670 msgid "Parent's Day" msgstr "" #: src/hd-data.c:671 msgid "Passion Sunday" msgstr "" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "" #: src/hd-data.c:679 msgid "Presidents' Inform" msgstr "" #: src/hd-data.c:680 msgid "President Lincoln's Birthday" msgstr "" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "" #: src/hd-data.c:685 msgid "Republic Day" msgstr "" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "" #: src/hd-data.c:687 msgid "Revolution Day" msgstr "" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "" #: src/hd-data.c:689 msgid "Rogation Sunday" msgstr "" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "" #: src/hd-data.c:693 msgid "Septuagesima Sunday" msgstr "" #: src/hd-data.c:694 msgid "Seven Sleepers Day" msgstr "" #: src/hd-data.c:695 msgid "Sexagesima Sunday" msgstr "" #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "" #: src/hd-data.c:697 msgid "Solstice Day" msgstr "" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "" #: src/hd-data.c:700 msgid "Start of common month" msgstr "" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "" #: src/hd-data.c:702 msgid "Star Festival" msgstr "" #: src/hd-data.c:703 msgid "St Andrew's Day" msgstr "" #: src/hd-data.c:704 msgid "St Bartholomew Day" msgstr "" #: src/hd-data.c:705 msgid "St Berchtold's Day" msgstr "" #: src/hd-data.c:706 msgid "St David's Day" msgstr "" #: src/hd-data.c:707 msgid "St Edward's Day" msgstr "" #: src/hd-data.c:708 msgid "St George's Day" msgstr "" #: src/hd-data.c:709 msgid "St James' Day" msgstr "" #: src/hd-data.c:710 msgid "St Joseph's Day" msgstr "" #: src/hd-data.c:711 msgid "St Laurentius Day" msgstr "" #: src/hd-data.c:712 msgid "St Nicholas' Day" msgstr "" #: src/hd-data.c:713 msgid "St Nicholas' Eve" msgstr "" #: src/hd-data.c:714 msgid "St Patrick's Day" msgstr "" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "" #: src/hd-data.c:716 msgid "St Stephen's Day" msgstr "" #: src/hd-data.c:717 msgid "St Valentine's Day" msgstr "" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "" #: src/hd-data.c:719 msgid "Swallow Day" msgstr "" #: src/hd-data.c:720 msgid "Sweetest Day" msgstr "" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "" #: src/hd-data.c:723 msgid "Thai New Year's Day" msgstr "" #: src/hd-data.c:724 msgid "Thanksgiving Day" msgstr "" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "" #: src/hd-data.c:728 msgid "Tiradentes Day" msgstr "" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "" #: src/hd-data.c:730 msgid "Transfiguration Day" msgstr "" #: src/hd-data.c:731 msgid "Tynwald Day" msgstr "" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "" #: src/hd-data.c:736 msgid "Victory Day" msgstr "" #: src/hd-data.c:737 msgid "Whit Monday" msgstr "" #: src/hd-data.c:738 msgid "Women's Day" msgstr "" #: src/hd-data.c:739 msgid "Women's Shrove Day" msgstr "" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "" #: src/hd-data.c:741 msgid "Youth Day" msgstr "" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "" #: src/hd-data.c:748 msgid "Admission Day" msgstr "" #: src/hd-data.c:749 msgid "Alaska Day" msgstr "" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "" #: src/hd-data.c:752 msgid "All Saints' Eve" msgstr "" #: src/hd-data.c:753 msgid "Americas Day" msgstr "" #: src/hd-data.c:754 msgid "Angam Day" msgstr "" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "" #: src/hd-data.c:759 msgid "Antillian Day" msgstr "" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "" #: src/hd-data.c:764 msgid "Arengo Anniversary" msgstr "" #: src/hd-data.c:765 msgid "Army Coup Day" msgstr "" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "" #: src/hd-data.c:767 msgid "Artigas' Birthday" msgstr "" #: src/hd-data.c:768 msgid "Asuncion Day" msgstr "" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "" #: src/hd-data.c:771 msgid "Ba'ath Revolution Day" msgstr "" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "" #: src/hd-data.c:773 msgid "Bataan Day" msgstr "" #: src/hd-data.c:774 msgid "Battle of Angamos" msgstr "" #: src/hd-data.c:775 msgid "Battle of BoyacĦ" msgstr "" #: src/hd-data.c:776 msgid "Battle of Carabobo" msgstr "" #: src/hd-data.c:777 msgid "Battle of Iquique" msgstr "" #: src/hd-data.c:778 msgid "Battle of Las Piedras" msgstr "" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "" #: src/hd-data.c:786 msgid "Bonaire Day" msgstr "" #: src/hd-data.c:787 msgid "Boqueron Battle Day" msgstr "" #: src/hd-data.c:788 #, fuzzy msgid "Botswana Day" msgstr "Botsvana" #: src/hd-data.c:789 msgid "Bounty Day" msgstr "" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "" #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "" #: src/hd-data.c:792 msgid "Canberra Day" msgstr "" #: src/hd-data.c:793 msgid "Caricom Day" msgstr "" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "" #: src/hd-data.c:795 msgid "Cassinga Day" msgstr "" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "" #: src/hd-data.c:798 msgid "Charter Day" msgstr "" #: src/hd-data.c:799 msgid "Chiang Kai-shek's Birthday" msgstr "" #: src/hd-data.c:800 msgid "Children's White Sunday" msgstr "" #: src/hd-data.c:801 msgid "Colon Day" msgstr "" #: src/hd-data.c:802 msgid "Colorado Day" msgstr "" #: src/hd-data.c:803 msgid "Commonwealth Day" msgstr "" #: src/hd-data.c:804 msgid "Compact Day" msgstr "" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "" #: src/hd-data.c:807 msgid "Cup Match Day" msgstr "" #: src/hd-data.c:808 msgid "Custom Chief's Day" msgstr "" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "" #: src/hd-data.c:814 msgid "Death of H. Christophe" msgstr "" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "" #: src/hd-data.c:821 msgid "Defenders Day" msgstr "" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "" #: src/hd-data.c:824 msgid "Discovery Day" msgstr "" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "" #: src/hd-data.c:827 msgid "Dr. Sun Yat-sen's Birthday" msgstr "" #: src/hd-data.c:828 msgid "Duarte's Birthday" msgstr "" #: src/hd-data.c:829 msgid "Easter Tuesday" msgstr "" #: src/hd-data.c:830 msgid "Economic Liberation Day" msgstr "" #: src/hd-data.c:831 msgid "Eight Hours Day" msgstr "" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "" #: src/hd-data.c:834 msgid "Evacuation Day" msgstr "" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "" #: src/hd-data.c:838 msgid "Family Day" msgstr "" #: src/hd-data.c:839 msgid "FAO Day" msgstr "" #: src/hd-data.c:840 msgid "Farmers' Day" msgstr "" #: src/hd-data.c:841 msgid "Father Leval Day" msgstr "" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "" #: src/hd-data.c:843 msgid "Fisherman's Day" msgstr "" #: src/hd-data.c:844 msgid "Foundation of NPLA Day" msgstr "" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "" #: src/hd-data.c:849 msgid "Gospel Day" msgstr "" #: src/hd-data.c:850 msgid "Guacanaste Day" msgstr "" #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "" #: src/hd-data.c:852 msgid "Heritage Day" msgstr "" #: src/hd-data.c:853 msgid "Heroes Day" msgstr "" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "" #: src/hd-data.c:855 msgid "Holy Wednesday" msgstr "" #: src/hd-data.c:856 msgid "Ho Chi Minh's Birthday" msgstr "" #: src/hd-data.c:857 msgid "Human Rights Day" msgstr "" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "" #: src/hd-data.c:859 msgid "Hurricane Thanksgiving Day" msgstr "" #: src/hd-data.c:860 msgid "Independence of Cartagena" msgstr "" #: src/hd-data.c:861 msgid "Independence of Cuenca" msgstr "" #: src/hd-data.c:862 msgid "Independence of Guayaquil" msgstr "" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "" #: src/hd-data.c:865 msgid "Internal Autonomy Day" msgstr "" #: src/hd-data.c:866 msgid "Jefferson Davis' Birthday" msgstr "" #: src/hd-data.c:867 msgid "June Holiday" msgstr "" #: src/hd-data.c:868 msgid "J. Barbosa's Birthday" msgstr "" #: src/hd-data.c:869 msgid "J. Chilembwe Day" msgstr "" #: src/hd-data.c:870 msgid "J. Diego's Birthday" msgstr "" #: src/hd-data.c:871 msgid "J. Robert's Birthday" msgstr "" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "" #: src/hd-data.c:873 msgid "Kartini Day" msgstr "" #: src/hd-data.c:874 msgid "Catherine Show Day" msgstr "" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "" #: src/hd-data.c:876 msgid "Kim Il-Sung's Birthday" msgstr "" #: src/hd-data.c:877 msgid "Kim Jong-Il's Birthday" msgstr "" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "" #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "" #: src/hd-data.c:885 #, fuzzy msgid "Liberty Day" msgstr "Liberija" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "" #: src/hd-data.c:887 #, fuzzy msgid "Luxembourg City Kermis" msgstr "Liuksemburgas" #: src/hd-data.c:888 msgid "Lyndon B. Johnson Day" msgstr "" #: src/hd-data.c:889 msgid "L. Rivera's Birthday" msgstr "" #: src/hd-data.c:890 msgid "Madaraka Day" msgstr "" #: src/hd-data.c:891 msgid "Mahatma Gandhi's Birthday" msgstr "" #: src/hd-data.c:892 msgid "Malvinas Day" msgstr "" #: src/hd-data.c:893 msgid "Manila Day" msgstr "" #: src/hd-data.c:894 msgid "Maputo City Day" msgstr "" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "" #: src/hd-data.c:896 msgid "Maryland Day" msgstr "" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "" #: src/hd-data.c:898 msgid "Merchant Day" msgstr "" #: src/hd-data.c:899 msgid "St John's/Midsummers Eve" msgstr "" #: src/hd-data.c:900 msgid "Missionary Day" msgstr "" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "" #: src/hd-data.c:902 msgid "Morazan Day" msgstr "" #: src/hd-data.c:903 msgid "Mosheshoe's Day" msgstr "" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "" #: src/hd-data.c:905 msgid "Naming Day" msgstr "" #: src/hd-data.c:906 msgid "National Bun Day" msgstr "" #: src/hd-data.c:907 msgid "National Heroes Day" msgstr "" #: src/hd-data.c:908 msgid "National Redemption Day" msgstr "" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "" #: src/hd-data.c:910 msgid "National Revival Day" msgstr "" #: src/hd-data.c:911 msgid "National Unity Day" msgstr "" #: src/hd-data.c:912 msgid "Ndadaye Day" msgstr "" #: src/hd-data.c:913 #, fuzzy msgid "Neutrality Day" msgstr "Australija" #: src/hd-data.c:914 msgid "Nevada Day" msgstr "" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "" #: src/hd-data.c:917 msgid "Noi Day" msgstr "" #: src/hd-data.c:918 msgid "OAU Day" msgstr "" #: src/hd-data.c:919 msgid "October Holiday" msgstr "" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "" #: src/hd-data.c:927 msgid "Panama City Day" msgstr "" #: src/hd-data.c:928 #, fuzzy msgid "Panamerica Day" msgstr "Panama" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "" #: src/hd-data.c:930 msgid "Patriot's Day" msgstr "" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "" #: src/hd-data.c:932 msgid "People Power Day" msgstr "" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "" #: src/hd-data.c:934 msgid "Pichincha Day" msgstr "" #: src/hd-data.c:935 msgid "Picnic Day" msgstr "" #: src/hd-data.c:936 msgid "Pioneer Day" msgstr "" #: src/hd-data.c:937 msgid "Poya Day" msgstr "" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "" #: src/hd-data.c:939 msgid "Prince of Wales' Birthday" msgstr "" #: src/hd-data.c:940 msgid "Proclamation Day" msgstr "" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "" #: src/hd-data.c:943 msgid "Recreation Day" msgstr "" #: src/hd-data.c:944 msgid "Referendum Day" msgstr "" #: src/hd-data.c:945 msgid "Regatta Day" msgstr "" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "" #: src/hd-data.c:947 msgid "Restoration Day" msgstr "" #: src/hd-data.c:948 msgid "Return Day" msgstr "" #: src/hd-data.c:949 msgid "Reunification Day" msgstr "" #: src/hd-data.c:950 msgid "Rizal Day" msgstr "" #: src/hd-data.c:951 msgid "Rwagasore Day" msgstr "" #: src/hd-data.c:952 msgid "Saba Day" msgstr "" #: src/hd-data.c:953 #, fuzzy msgid "San Jacinto Day" msgstr "San Marinas" #: src/hd-data.c:954 msgid "San Josİ Day" msgstr "" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "" #: src/hd-data.c:956 msgid "School Holiday" msgstr "" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "" #: src/hd-data.c:958 msgid "Separation Day" msgstr "" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "" #: src/hd-data.c:960 msgid "Settlers Day" msgstr "" #: src/hd-data.c:961 msgid "Seward's Day" msgstr "" #: src/hd-data.c:962 msgid "Shaheed Day" msgstr "" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "" #: src/hd-data.c:964 msgid "Sheikh Zayed's Ascension Day" msgstr "" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "" #: src/hd-data.c:970 msgid "Somers Day" msgstr "" #: src/hd-data.c:971 #, fuzzy msgid "Statia-American Day" msgstr "Amerikos Samoa" #: src/hd-data.c:972 msgid "Student's Day" msgstr "" #: src/hd-data.c:973 msgid "St Agata Day" msgstr "" #: src/hd-data.c:974 msgid "St Canute's Day" msgstr "" #: src/hd-data.c:975 msgid "St Cedilia's Day" msgstr "" #: src/hd-data.c:976 msgid "St Charles' Day" msgstr "" #: src/hd-data.c:977 msgid "St Demetrius' Day" msgstr "" #: src/hd-data.c:978 msgid "St Dİvote Day" msgstr "" #: src/hd-data.c:979 msgid "St Eliah's Day" msgstr "" #: src/hd-data.c:980 msgid "St Jean Baptiste Day" msgstr "" #: src/hd-data.c:981 msgid "St Lucia's Day" msgstr "" #: src/hd-data.c:982 msgid "St Marguerite's Day" msgstr "" #: src/hd-data.c:983 msgid "St Maroon's Day" msgstr "" #: src/hd-data.c:984 msgid "St Michael's Day" msgstr "" #: src/hd-data.c:985 msgid "St Olav's Day" msgstr "" #: src/hd-data.c:986 msgid "St Olav's Eve" msgstr "" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "" #: src/hd-data.c:989 msgid "St Ursula's Day" msgstr "" #: src/hd-data.c:990 msgid "St Vincent de Paul's Day" msgstr "" #: src/hd-data.c:991 msgid "Suez Victory Day" msgstr "" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "" #: src/hd-data.c:994 #, fuzzy msgid "Sweden Day" msgstr "Ċ vedija" #: src/hd-data.c:995 msgid "S. Doe's Birthday" msgstr "" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "" #: src/hd-data.c:997 msgid "Territory Day" msgstr "" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "" #: src/hd-data.c:1000 msgid "The Crown Prince's Birthday" msgstr "" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "" #: src/hd-data.c:1004 msgid "Town Meeting Day" msgstr "" #: src/hd-data.c:1005 msgid "Traditional Day" msgstr "" #: src/hd-data.c:1006 msgid "Transfer Day" msgstr "" #: src/hd-data.c:1007 msgid "Truman Day" msgstr "" #: src/hd-data.c:1008 msgid "Union Day" msgstr "" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "" #: src/hd-data.c:1010 #, fuzzy msgid "United Nations Day" msgstr "Jungtinės Valstijos" #: src/hd-data.c:1011 msgid "Unity Factory Day" msgstr "" #: src/hd-data.c:1012 msgid "Victor-Schoelcher Day" msgstr "" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "" #: src/hd-data.c:1014 msgid "West Virginia Day" msgstr "" #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "" #: src/hd-data.c:1016 msgid "W. Tubman's Birthday" msgstr "" #: src/hd-data.c:1017 msgid "Yap Day" msgstr "" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "" #: src/hd-data.c:1287 #, fuzzy msgid "Ast" msgstr "Austrija" #: src/hd-data.c:1400 src/hd-data.c:1483 #, fuzzy msgid "Bah" msgstr "Bahreinas" #: src/hd-data.c:1550 msgid "Cel" msgstr "" #: src/hd-data.c:1692 src/hd-data.c:2225 #, fuzzy msgid "Chi" msgstr "Kinija" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "" #: src/hd-data.c:2227 src/hd-data.c:3730 #, fuzzy msgid "Jap" msgstr "Japonija" #: src/hd-data.c:2423 msgid "Chr" msgstr "" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "" #: src/hd-data.c:2778 src/hd-data.c:2960 msgid "Heb" msgstr "" #: src/hd-data.c:3190 src/hd-data.c:3619 #, fuzzy msgid "Isl" msgstr "Izraelis" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "" #: src/hd-data.c:4447 msgid "OxN" msgstr "" #: src/hd-data.c:4449 msgid "OxO" msgstr "" #: src/hd-data.c:4650 src/hd-data.c:4779 #, fuzzy msgid "Per" msgstr "Peru" #: src/hd-data.c:4847 msgid "Zod" msgstr "" #: src/hd-use.c:929 msgid " day" msgstr "" #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr "" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr "" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "" #: src/help.c:75 msgid "# Day number (must be defined)" msgstr "" #: src/help.c:76 msgid "# Year number (must be defined)" msgstr "" #: src/help.c:77 msgid "# Weekday name (may be defined)" msgstr "" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "" #: src/help.c:79 msgid "# Month number" msgstr "" #: src/help.c:80 msgid "# Month name" msgstr "" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "" #: src/help.c:86 msgid "Character replacement:" msgstr "" #: src/help.c:87 #, c-format msgid "Space/blank ('%c') character" msgstr "" #: src/help.c:88 #, c-format msgid "Underscore ('%c') character" msgstr "" #: src/help.c:89 #, c-format msgid "Percent ('%c') character" msgstr "" #: src/help.c:90 #, c-format msgid "Backslash ('%c') character" msgstr "" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "" #: src/help.c:94 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "" #: src/help.c:104 msgid "Numerical value is filled with leading zero(es)" msgstr "" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "" #: src/help.c:107 msgid "STYLE group (exactly one member may be defined):" msgstr "" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "" #: src/help.c:114 msgid "FORMAT group (exactly one member must be defined):" msgstr "" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "" #: src/help.c:130 msgid "legal holidays" msgstr "" #: src/help.c:131 msgid "holidays" msgstr "" #: src/help.c:132 msgid "Mondays" msgstr "" #: src/help.c:133 msgid "Tuesdays" msgstr "" #: src/help.c:134 msgid "Wednesdays" msgstr "" #: src/help.c:135 msgid "Thursdays" msgstr "" #: src/help.c:136 msgid "Fridays" msgstr "" #: src/help.c:137 msgid "Saturdays" msgstr "" #: src/help.c:138 msgid "Sundays" msgstr "" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "" #: src/help.c:243 msgid "OPTION" msgstr "" #: src/help.c:256 msgid " Display help text and quit program" msgstr "" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr "" #: src/help.c:291 msgid " Display software license and quit program" msgstr "" #: src/help.c:302 msgid " Display version information and quit program" msgstr "" #: src/help.c:313 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr "" #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr "" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr "" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr "" #: src/help.c:360 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" #: src/help.c:364 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr "" #: src/help.c:369 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr "" #: src/help.c:393 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr "" #: src/help.c:398 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" #: src/help.c:403 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" #: src/help.c:409 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" #: src/help.c:414 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr "" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr "" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr "" #: src/help.c:448 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr "" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr "" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "" #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr "" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr "" #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" #: src/help.c:520 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr "" #: src/help.c:531 msgid " Display some debug information" msgstr "" #: src/help.c:539 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr "" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr "" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr "" #: src/help.c:596 msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" #: src/help.c:606 msgid " Provide calendar sheet with week numbers" msgstr "" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr "" #: src/help.c:618 msgid "Standard" msgstr "" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr "" #: src/help.c:631 msgid " = no Standard week numbers" msgstr "" #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr "" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr "" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr "" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr "" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr "" #: src/help.c:716 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" #: src/help.c:721 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr "" #: src/help.c:732 msgid " Modify format of year calendar" msgstr "" #: src/help.c:736 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr "" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr "" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr "" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr "" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr "" #: src/help.c:795 #, c-format msgid " Set starting day of week (actual: %s)" msgstr "" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr "" #: src/help.c:857 msgid "UNKNOWN" msgstr "" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr "" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr "" #: src/help.c:883 msgid " N = Legal days only" msgstr "" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr "" #: src/help.c:897 msgid " Suppress leading blank line of eternal holiday list" msgstr "" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr "" #: src/help.c:919 msgid " Provide eternal holiday list with astronomical data" msgstr "" #: src/help.c:931 msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr "" #: src/help.c:943 msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr "" #: src/help.c:955 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "" #: src/help.c:967 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" #: src/help.c:979 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" #: src/help.c:991 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "" #: src/help.c:1003 msgid " Provide eternal holiday list with Chinese calendar months" msgstr "" #: src/help.c:1015 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" #: src/help.c:1027 msgid " Provide eternal holiday list with Coptic calendar months" msgstr "" #: src/help.c:1039 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "" #: src/help.c:1051 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" #: src/help.c:1063 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "" #: src/help.c:1075 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "" #: src/help.c:1087 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "" #: src/help.c:1099 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "" #: src/help.c:1111 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "" #: src/help.c:1123 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" #: src/help.c:1135 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" #: src/help.c:1147 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "" #: src/help.c:1159 msgid " Provide eternal holiday list with Japanese calendar months" msgstr "" #: src/help.c:1172 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" #: src/help.c:1184 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "" #: src/help.c:1196 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "" #: src/help.c:1208 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "" #: src/help.c:1220 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" #: src/help.c:1232 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" #: src/help.c:1244 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" #: src/help.c:1256 msgid " Provide eternal holiday list with zodiacal marker data" msgstr "" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr "" #: src/help.c:1272 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr "" #: src/help.c:1277 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr "" #: src/help.c:1286 #, c-format msgid " %-*s = Holidays in %s" msgstr "" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" #: src/help.c:1322 msgid " Set base data of Earth's atmosphere" msgstr "" #: src/help.c:1326 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr "" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr "" #: src/help.c:1344 msgid " Limit rise/set times of Sun to the day" msgstr "" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" #: src/help.c:1366 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr "" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr "" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr "" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr "" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr "" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr "" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" #: src/help.c:1453 msgid " Change base year of calendar" msgstr "" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr "" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr "" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr "" #: src/help.c:1485 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr "" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" #: src/help.c:1502 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr "" #: src/help.c:1504 msgid "self-defined" msgstr "" #: src/help.c:1509 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr "" #: src/help.c:1517 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr "" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr "" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr "" #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" #: src/help.c:1582 msgid " they are used by the character set used in Germany" msgstr "" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr "" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr "" #: src/help.c:1654 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" #: src/help.c:1657 #, c-format msgid " Actual: `%s'" msgstr "" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" #: src/help.c:1682 msgid " 1. Representation of text" msgstr "" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr "" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr "" #: src/help.c:1711 msgid " = Set height of the Moon phase text graphics" msgstr "" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr "" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr "" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr "" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr "" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr "" #: src/help.c:1763 msgid " # k = Display week number" msgstr "" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr "" #: src/help.c:1787 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr "" #: src/help.c:1811 msgid " # J = Suppress text part of fixed dates" msgstr "" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr "" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr "" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" #: src/help.c:1855 msgid " 2. Respected period" msgstr "" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr "" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr "" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr "" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr "" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr "" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr "" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr "" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr "" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr "" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr "" #: src/help.c:1953 msgid " N = 99 Last week" msgstr "" #: src/help.c:1956 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr "" #: src/help.c:1962 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr "" #: src/help.c:1967 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" #: src/help.c:1972 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" #: src/help.c:1976 #, c-format msgid " N = 9 Last weekday %s" msgstr "" #: src/help.c:1980 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr "" #: src/help.c:1985 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" #: src/help.c:1990 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" #: src/help.c:1994 #, c-format msgid " N = 99 Last weekday %s" msgstr "" #: src/help.c:1999 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr "" #: src/help.c:2004 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" #: src/help.c:2009 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" #: src/help.c:2014 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" #: src/help.c:2018 #, c-format msgid " N = 99 %s of last week" msgstr "" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr "" #: src/help.c:2030 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr "" #: src/help.c:2042 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr "" #: src/help.c:2054 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr "" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr "" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr "" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr "" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr "" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr "" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr "" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr "" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr "" #: src/help.c:2173 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" #: src/help.c:2184 msgid " Define additional resource file line" msgstr "" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr "" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "" #: src/help.c:2202 #, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr "" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "" #: src/help.c:2224 msgid "COMMAND" msgstr "" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr "" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr "" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr "" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr "" #: src/help.c:2257 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr "" #: src/help.c:2283 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr "" #: src/help.c:2286 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr "" #: src/help.c:2290 #, c-format msgid " %sL, %s Display software license and quit program" msgstr "" #: src/help.c:2294 #, c-format msgid " %sV, %s Display version information and quit program" msgstr "" #: src/help.c:2302 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "" #: src/help.c:2309 src/help.c:2314 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr "" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "" #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "" #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "" #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "" #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "" #: src/help.c:2366 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "" #: src/help.c:2368 msgid "any later version." msgstr "" #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "" #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" #: src/help.c:2452 #, c-format msgid "Use `%s %s|[%s?]" msgstr "" #: src/help.c:2461 msgid "for more information." msgstr "" #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, c-format msgid "Email bug reports to <%s>" msgstr "" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "" #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "" #: src/help.c:2617 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr "" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr "" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr "" #: src/help.c:2827 msgid "(bad version)" msgstr "" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "" #: src/help.c:2942 msgid " later than 4.5" msgstr "" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr "" #: src/help.c:3075 msgid "unknown " msgstr "" #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr "" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr "" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr "" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr "" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr "" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr "" #: src/print.c:545 src/print.c:979 src/print.c:1034 #, fuzzy msgid "CW" msgstr "S" #: src/print.c:566 msgid "Week" msgstr "" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "" #: src/rc-insert.c:1716 src/rc-insert.c:2834 #, fuzzy msgid "am" msgstr "Guamas" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/rc-use.c:514 msgid "Emo" msgstr "" #: src/rc-use.c:519 msgid "Int" msgstr "" #: src/rc-use.c:524 msgid "Phy" msgstr "" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr "" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "" #: src/rc-utils.c:398 src/rc-utils.c:415 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "" #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "" #: src/rc-utils.c:3634 src/utils.c:275 #, c-format msgid "%s: abort, " msgstr "" #: src/rc-utils.c:3642 #, c-format msgid "illegal variable definition in file `%s'" msgstr "" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "" #: src/rc-utils.c:3651 #, c-format msgid "illegal variable operation in file `%s'" msgstr "" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "" #: src/rc-utils.c:3659 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "" #: src/rc-utils.c:3663 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "" #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "" #: src/rc-utils.c:3696 #, c-format msgid "Argument `%s' of command line ignored." msgstr "" #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "" #: src/tty.c:425 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "" #: src/tty.c:1020 #, c-format msgid "environment variable `%s' not found" msgstr "" #: src/tty.c:1027 #, c-format msgid "environment variable `%s' not set" msgstr "" #: src/tty.c:1067 msgid "`termcap' file not found" msgstr "" #: src/tty.c:1072 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" #: src/utils.c:333 #, c-format msgid "sending eMail to <%s> failed" msgstr "" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" #: src/utils.c:342 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 msgid "internal" msgstr "" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" #: src/utils.c:1081 msgid "th" msgstr "" #: src/utils.c:1085 msgid "st" msgstr "" #: src/utils.c:1089 msgid "nd" msgstr "" #: src/utils.c:1093 msgid "rd" msgstr "" #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "" #: src/utils.c:1129 #, fuzzy msgid "Mon" msgstr "Monakas" #: src/utils.c:1134 #, fuzzy msgid "Tue" msgstr "Turkija" #: src/utils.c:1139 msgid "Wed" msgstr "" #: src/utils.c:1144 msgid "Thu" msgstr "" #: src/utils.c:1149 msgid "Fri" msgstr "" #: src/utils.c:1154 msgid "Sat" msgstr "" #: src/utils.c:1159 #, fuzzy msgid "Sun" msgstr "Sudanas" #: src/utils.c:1180 #, fuzzy msgid "Mo" msgstr "M" #: src/utils.c:1185 msgid "Tu" msgstr "" #: src/utils.c:1190 #, fuzzy msgid "We" msgstr "S" #: src/utils.c:1195 msgid "Th" msgstr "" #: src/utils.c:1200 msgid "Fr" msgstr "" #: src/utils.c:1205 msgid "Sa" msgstr "" #: src/utils.c:1210 msgid "Su" msgstr "" #: src/utils.c:1227 msgid "Monday" msgstr "" #: src/utils.c:1227 msgid "Tuesday" msgstr "" #: src/utils.c:1227 msgid "Wednesday" msgstr "" #: src/utils.c:1227 msgid "Thursday" msgstr "" #: src/utils.c:1228 msgid "Friday" msgstr "" #: src/utils.c:1228 msgid "Saturday" msgstr "" #: src/utils.c:1228 msgid "Sunday" msgstr "" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "" #: src/utils.c:1249 #, fuzzy msgid "Jan" msgstr "Japonija" #: src/utils.c:1254 msgid "Feb" msgstr "" #: src/utils.c:1259 msgid "Mar" msgstr "" #: src/utils.c:1264 msgid "Apr" msgstr "" #: src/utils.c:1269 #, fuzzy msgid "May" msgstr "Majotas" #: src/utils.c:1274 msgid "Jun" msgstr "" #: src/utils.c:1279 msgid "Jul" msgstr "" #: src/utils.c:1284 msgid "Aug" msgstr "" #: src/utils.c:1289 msgid "Sep" msgstr "" #: src/utils.c:1294 msgid "Oct" msgstr "" #: src/utils.c:1299 msgid "Nov" msgstr "" #: src/utils.c:1304 msgid "Dec" msgstr "" #: src/utils.c:1322 msgid "January" msgstr "" #: src/utils.c:1322 msgid "February" msgstr "" #: src/utils.c:1323 msgid "March" msgstr "" #: src/utils.c:1323 msgid "April" msgstr "" #: src/utils.c:1333 msgid "May " msgstr "" #: src/utils.c:1334 msgid "June" msgstr "" #: src/utils.c:1334 msgid "July" msgstr "" #: src/utils.c:1335 msgid "August" msgstr "" #: src/utils.c:1335 msgid "September" msgstr "" #: src/utils.c:1336 msgid "October" msgstr "" #: src/utils.c:1336 msgid "November" msgstr "" #: src/utils.c:1336 msgid "December" msgstr "" #: src/tcal.c:193 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "" #: src/tcal.c:909 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "" #: src/txt2gcal.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "" #: src/gcal2txt.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "" #~ msgid "Brunei Darussalam" #~ msgstr "Brunėjaus sultonatas" gcal-4.1/po/en@quot.header0000644000000000000000000000226313041163512012355 00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # gcal-4.1/po/Rules-quot0000644000000000000000000000337613041163512011601 00000000000000# Special Makefile rules for English message catalogs with quotation marks. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header gcal-4.1/po/es.po0000664000000000000000000046246613041164031010555 00000000000000# Mensajes en espaħol para GNU gcal 3.6.3. # Copyright (C) 2010 Thomas Esken (msgids) # This file is distributed under the same license as the gcal package. # Iħaky Pİrez GonzĦlez , 1997. # V­ctor Manuel Varela Rodr­guez , 1998. # Cristian Oth³n Mart­nez Vera , 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013. # msgid "" msgstr "" "Project-Id-Version: GNU gcal 3.6.3\n" "Report-Msgid-Bugs-To: bug-gcal@gnu.org\n" "POT-Creation-Date: 2017-01-22 18:12+0100\n" "PO-Revision-Date: 2013-04-01 08:53-0600\n" "Last-Translator: Cristian Oth³n Mart­nez Vera \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #: lib/error.c:191 msgid "Unknown system error" msgstr "" #: lib/regcomp.c:135 #, fuzzy msgid "Success" msgstr "satisfactorio" #: lib/regcomp.c:138 msgid "No match" msgstr "" #: lib/regcomp.c:141 msgid "Invalid regular expression" msgstr "" #: lib/regcomp.c:144 msgid "Invalid collation character" msgstr "" #: lib/regcomp.c:147 msgid "Invalid character class name" msgstr "" #: lib/regcomp.c:150 msgid "Trailing backslash" msgstr "" #: lib/regcomp.c:153 msgid "Invalid back reference" msgstr "" #: lib/regcomp.c:156 msgid "Unmatched [, [^, [:, [., or [=" msgstr "" #: lib/regcomp.c:159 #, fuzzy msgid "Unmatched ( or \\(" msgstr "() no emparejado" #: lib/regcomp.c:162 #, fuzzy msgid "Unmatched \\{" msgstr "() no emparejado" #: lib/regcomp.c:165 msgid "Invalid content of \\{\\}" msgstr "" #: lib/regcomp.c:168 #, fuzzy msgid "Invalid range end" msgstr "rango [] no vĦlido !" #: lib/regcomp.c:171 msgid "Memory exhausted" msgstr "" #: lib/regcomp.c:174 msgid "Invalid preceding regular expression" msgstr "" #: lib/regcomp.c:177 msgid "Premature end of regular expression" msgstr "" #: lib/regcomp.c:180 #, fuzzy msgid "Regular expression too big" msgstr "regexp demasiado grande" #: lib/regcomp.c:183 #, fuzzy msgid "Unmatched ) or \\)" msgstr "() no emparejado" #: lib/regcomp.c:687 msgid "No previous regular expression" msgstr "" #: lib/spawn-pipe.c:137 lib/spawn-pipe.c:140 lib/spawn-pipe.c:261 #: lib/spawn-pipe.c:264 #, c-format msgid "cannot create pipe" msgstr "" #: lib/spawn-pipe.c:231 lib/spawn-pipe.c:345 lib/wait-process.c:282 #: lib/wait-process.c:356 #, c-format msgid "%s subprocess failed" msgstr "" #: lib/w32spawn.h:45 #, c-format msgid "_open_osfhandle failed" msgstr "" #: lib/w32spawn.h:86 #, c-format msgid "cannot restore fd %d: dup2 failed" msgstr "" #: lib/wait-process.c:223 lib/wait-process.c:255 lib/wait-process.c:317 #, fuzzy, c-format msgid "%s subprocess" msgstr "satisfactorio" #: lib/wait-process.c:274 lib/wait-process.c:346 #, c-format msgid "%s subprocess got fatal signal %d" msgstr "" #: lib/xalloc-die.c:34 msgid "memory exhausted" msgstr "" # ÂżIntente? ÂżPor quİ imperativo? El programa te dice lo que estĦ haciendo, # no que lo hagas tş... sv # Sin embargo, el original usa el imperativo - jano #: src/file-io.c:1562 #, c-format msgid "Try to write %s `%s'... %s%s%s" msgstr "Intente escribir %s `%s' ... %s%s%s" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "failed" msgstr "fall³" #: src/file-io.c:1565 src/file-io.c:1690 src/file-io.c:1703 msgid "success" msgstr "satisfactorio" #: src/file-io.c:1685 #, c-format msgid "Try to open%sresource file `%s'... %s%s%s" msgstr "Intente abrir%sfichero de recursos `%s'...%s%s%s" #: src/file-io.c:1686 msgid " `HERE' " msgstr " `AQU' " #: src/file-io.c:1698 #, c-format msgid "Try to open (level: %02d) include file `%s'... %s%s%s" msgstr "Intente abrir el fichero de inclusi³n (a nivel: %02d) `%s' ... %s%s%s" #: src/gcal.c:346 src/gcal.c:517 src/gcal.c:2022 msgid "ARG" msgstr "ARG" #: src/gcal.c:1074 src/hd-data.c:70 msgid "Germany" msgstr "Alemania" #: src/gcal.c:1075 msgid "U.S.A." msgstr "EE.UU." #: src/gcal.c:1076 src/hd-data.c:73 msgid "Great Britain" msgstr "Gran Bretaħa" #: src/gcal.c:1852 msgid "default" msgstr "por defecto" #: src/gcal.c:1951 msgid ":" msgstr ":" #: src/gcal.c:1961 msgid "Y" msgstr "A" # dem. sv #: src/gcal.c:1966 msgid "M" msgstr "M" #: src/gcal.c:1971 msgid "W" msgstr "S" #: src/gcal.c:1976 msgid "D" msgstr "D" #: src/gcal.c:2067 msgid "Fixed date list:" msgstr "Lista de fechas fijas:" #: src/gcal.c:2084 src/gcal.c:2099 msgid "environment variable" msgstr "variable de entorno" #: src/gcal.c:2268 #, c-format msgid "" "%s: command in environment variable `%s' found -- %s\n" "%s\n" "%s\n" msgstr "" "%s: orden hallada en la variable de entorno `%s' -- %s\n" "%s\n" "%s\n" #: src/gcal.c:2455 src/gcal.c:2483 src/gcal.c:6231 src/rc-use.c:1829 #: src/rc-use.c:1889 src/rc-use.c:1938 src/rc-use.c:2208 src/rc-utils.c:391 #: src/rc-utils.c:412 src/utils.c:343 src/utils.c:366 src/utils.c:680 msgid "Internal" msgstr "Interno" #: src/gcal.c:2864 msgid "response file" msgstr "fichero de resultados" #: src/gcal.c:2864 src/gcal.c:2872 msgid "Created" msgstr "Creado" #: src/gcal.c:2872 msgid "shell script" msgstr "fichero de ³rdenes" # Pequeħos errores de traducci³n corregidos. cfuga #: src/gcal.c:3083 #, c-format msgid "Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" msgstr "Correo de \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d" #: src/gcal.c:3135 #, c-format msgid "%s: warning, eMail with empty message body not sent to <%s>.\n" msgstr "%s: aviso, no se envi³ el email a <%s> con el cuerpo vac­o.\n" #: src/gcal.c:4945 src/gcal.c:4978 msgid "command line" msgstr "l­nea de ³rdenes" #: src/gcal.c:5895 #, c-format msgid "%s: option `%s' is ambiguous" msgstr "%s: la opci³n `%s' es ambigua" #: src/gcal.c:5900 src/tcal.c:897 src/txt2gcal.c:717 src/gcal2txt.c:716 #, c-format msgid "%s: unrecognized option `%s'" msgstr "%s: la opci³n `%s' no estĦ reconocida" #: src/gcal.c:5903 #, c-format msgid "%s: invalid option -- %s" msgstr "%s: opci³n invĦlida -- %s" #: src/gcal.c:5910 #, c-format msgid "%s: option `--%s' doesn't allow an argument" msgstr "%s: la opci³n `--%s' no admite ningşn argumento" #: src/gcal.c:5915 #, c-format msgid "%s: option `%s' doesn't allow an argument" msgstr "%s: la opci³n `%s' no admite ningşn argumento" #: src/gcal.c:5921 #, c-format msgid "%s: option `%s' requires an argument" msgstr "%s: la opci³n `%s' necesita un argumento" #: src/gcal.c:5925 #, c-format msgid "%s: option requires an argument -- %s" msgstr "%s: la opci³n necesita un argumento -- %s" # has usado anteriormente invalido. Âżno deber­as usarlo aqui tb? -Jano #: src/gcal.c:5930 src/tcal.c:943 #, c-format msgid "%s: option with invalid argument -- %s" msgstr "%s: la opci³n tiene un argumento no vĦlido -- %s" #: src/gcal.c:5935 #, c-format msgid "%s: option with ambiguous argument -- %s" msgstr "%s: el argumento de la opci³n es ambiguo -- %s" #: src/gcal.c:5995 #, c-format msgid "" "%s: invalid date given -- %c%s\n" "%s\n" "%s\n" msgstr "" "%s: fecha invĦlida -- %c%s\n" "%s\n" "%s\n" #: src/hd-data.c:64 msgid "Australia" msgstr "Australia" #: src/hd-data.c:65 src/hd-data.c:113 msgid "Belgium" msgstr "Bİlgica" #: src/hd-data.c:66 src/hd-data.c:122 msgid "Brazil" msgstr "Brasil" #: src/hd-data.c:67 msgid "Canada" msgstr "CanadĦ" #: src/hd-data.c:68 msgid "Switzerland" msgstr "Suiza" #: src/hd-data.c:69 src/hd-data.c:175 msgid "China" msgstr "China" #: src/hd-data.c:71 src/hd-data.c:209 msgid "Spain" msgstr "Espaħa" #: src/hd-data.c:72 src/hd-data.c:216 msgid "France" msgstr "Francia" #: src/hd-data.c:74 src/hd-data.c:245 msgid "Israel" msgstr "Israel" #: src/hd-data.c:75 src/hd-data.c:250 msgid "Italy" msgstr "Italia" #: src/hd-data.c:76 src/hd-data.c:253 msgid "Japan" msgstr "Jap³n" #: src/hd-data.c:77 src/hd-data.c:261 msgid "Republic of Korea" msgstr "Repşblica de Corea" #: src/hd-data.c:78 src/hd-data.c:293 msgid "Mexico" msgstr "Mİxico" #: src/hd-data.c:79 src/hd-data.c:302 msgid "Netherlands" msgstr "Holanda" #: src/hd-data.c:80 src/hd-data.c:308 msgid "New Zealand" msgstr "Nueva Zelanda" #: src/hd-data.c:81 src/hd-data.c:320 msgid "Portugal" msgstr "Portugal" #: src/hd-data.c:82 src/hd-data.c:326 msgid "Russian Federation" msgstr "Federaci³n Rusa" #: src/hd-data.c:83 msgid "United States" msgstr "Estados Unidos" #: src/hd-data.c:85 msgid "Andorra" msgstr "Andorra" #: src/hd-data.c:86 msgid "United Arab Emirates" msgstr "Emiratos rabes Unidos" #: src/hd-data.c:87 msgid "Afghanistan" msgstr "AfganistĦn" #: src/hd-data.c:88 msgid "Antigua and Barbuda" msgstr "Antigua y Barbados" #: src/hd-data.c:89 msgid "Anguilla" msgstr "Anguila" #: src/hd-data.c:90 msgid "Albania" msgstr "Albania" #: src/hd-data.c:91 msgid "Armenia" msgstr "Armenia" #: src/hd-data.c:92 msgid "Netherlands Antilles/Bonaire" msgstr "Antillas Holandesas/Bonaire" #: src/hd-data.c:93 msgid "Netherlands Antilles/Cura§ao" msgstr "Antillas Holandesas/Cura§ao" #: src/hd-data.c:94 msgid "Netherlands Antilles/St Maarten" msgstr "Antillas Holandesas/San Maarten" #: src/hd-data.c:95 msgid "Netherlands Antilles/Saba and Statia" msgstr "Antillas Holandesas/Saba y Estatia" #: src/hd-data.c:96 msgid "Angola #" msgstr "Angola #" #: src/hd-data.c:97 msgid "Argentina" msgstr "Argentina" #: src/hd-data.c:98 msgid "American Samoa" msgstr "Samoa Americana" #: src/hd-data.c:99 msgid "Austria" msgstr "Austria" #: src/hd-data.c:100 msgid "Australia/Canberra" msgstr "Australia/Canberra" #: src/hd-data.c:101 msgid "Australia/Northern Territory" msgstr "Australia/Territorio del Norte" #: src/hd-data.c:102 msgid "Australia/Queensland" msgstr "Australia/Queensland" #: src/hd-data.c:103 msgid "Australia/Southern Australia" msgstr "Australia/Australia del Sur" #: src/hd-data.c:104 msgid "Australia/New South Wales" msgstr "Australia/Nueva Gales del Sur" #: src/hd-data.c:105 msgid "Australia/Tasmania" msgstr "Australia/Tasmania" #: src/hd-data.c:106 msgid "Australia/Victoria" msgstr "Australia/Victoria" #: src/hd-data.c:107 msgid "Australia/Western Australia" msgstr "Australia/Australia Occidental" #: src/hd-data.c:108 msgid "Aruba" msgstr "Aruba" #: src/hd-data.c:109 msgid "Azerbaijan" msgstr "AzerbayĦn" #: src/hd-data.c:110 msgid "Bosnia-Herzegovina" msgstr "Bosnia-Herzegovina" #: src/hd-data.c:111 msgid "Barbados" msgstr "Barbados" #: src/hd-data.c:112 msgid "Bangladesh #" msgstr "Bangladesh #" #: src/hd-data.c:114 msgid "Burkina Faso" msgstr "Burkina Faso" #: src/hd-data.c:115 msgid "Bulgaria" msgstr "Bulgaria" #: src/hd-data.c:116 msgid "Bahrain" msgstr "Bahrain" #: src/hd-data.c:117 msgid "Burundi #" msgstr "Burundi #" #: src/hd-data.c:118 msgid "Benin #" msgstr "Benin #" #: src/hd-data.c:119 msgid "Bermuda" msgstr "Bermuda" #: src/hd-data.c:120 msgid "Brunei" msgstr "Brunei" #: src/hd-data.c:121 msgid "Bolivia" msgstr "Bolivia" #: src/hd-data.c:123 msgid "Bahamas" msgstr "Bahamas" #: src/hd-data.c:124 msgid "Bhutan #" msgstr "BhutĦn #" #: src/hd-data.c:125 msgid "Bouvet Island" msgstr "Isla Bouvet" #: src/hd-data.c:126 msgid "Botswana" msgstr "Botswana" #: src/hd-data.c:127 msgid "Belarus" msgstr "Belarus" #: src/hd-data.c:128 msgid "Belize" msgstr "Belice" #: src/hd-data.c:129 msgid "Canada/Alberta" msgstr "CanadĦ/Alberta" #: src/hd-data.c:130 msgid "Canada/British Columbia" msgstr "CanadĦ/Columbia BritĦnica" #: src/hd-data.c:131 msgid "Canada/Manitoba" msgstr "CanadĦ/Manitoba" #: src/hd-data.c:132 msgid "Canada/New Brunswick" msgstr "CanadĦ/Nueva Brunswick" #: src/hd-data.c:133 msgid "Canada/Newfoundland and Labrador" msgstr "CanadĦ/Terranova y Labrador" #: src/hd-data.c:134 msgid "Canada/Nova Scotia" msgstr "CanadĦ/Nueva Escocia" #: src/hd-data.c:135 #, fuzzy msgid "Canada/Northwest Territories" msgstr "CanadĦ/Territorios del Noroeste" #: src/hd-data.c:136 msgid "Canada/Ontario" msgstr "CanadĦ/Ontario" #: src/hd-data.c:137 msgid "Canada/Prince Edward Island" msgstr "CanadĦ/Isla Pr­ncipe Eduardo" #: src/hd-data.c:138 msgid "Canada/Quİbec" msgstr "CanadĦ/Quİbec" #: src/hd-data.c:139 msgid "Canada/Saskatchewan" msgstr "CanadĦ/Saskatchewan" #: src/hd-data.c:140 msgid "Canada/Yukon" msgstr "CanadĦ/Yuk³n" #: src/hd-data.c:141 msgid "Cocos Islands (Keeling)" msgstr "Islas Cocos (Keeling)" #: src/hd-data.c:142 msgid "Democratic Republic of Congo #" msgstr "Repşblica DemocrĦtica de Congo #" #: src/hd-data.c:143 msgid "Central African Republic #" msgstr "Repşblica Central Africana #o" #: src/hd-data.c:144 msgid "Republic of Congo #" msgstr "Repşblica de Congo #" #: src/hd-data.c:145 msgid "Switzerland/Aargau" msgstr "Suiza/Aargau" #: src/hd-data.c:146 msgid "Switzerland/Appenzell Innerrhoden" msgstr "Suiza/Appenzel Innerrhoden" #: src/hd-data.c:147 msgid "Switzerland/Appenzell Ausserrhoden" msgstr "Suiza/Appenzell Ausserrhoden" #: src/hd-data.c:148 msgid "Switzerland/Bern" msgstr "Suiza/Berna" #: src/hd-data.c:149 #, fuzzy msgid "Switzerland/Basel-Landschaft" msgstr "Suiza/Basel-Land" #: src/hd-data.c:150 msgid "Switzerland/Basel-Stadt" msgstr "Suiza/Basel-Stadt" #: src/hd-data.c:151 msgid "Switzerland/Fribourg" msgstr "Suiza/Friburgo" #: src/hd-data.c:152 msgid "Switzerland/Gen¨ve" msgstr "Suiza/Gİnova" #: src/hd-data.c:153 msgid "Switzerland/Glarus" msgstr "Suiza/Glarus" #: src/hd-data.c:154 msgid "Switzerland/Graubĵnden" msgstr "Suiza/Graubĵnden" #: src/hd-data.c:155 msgid "Switzerland/Jura" msgstr "Suiza/Jura" #: src/hd-data.c:156 msgid "Switzerland/Luzern" msgstr "Suiza/Lucerna" #: src/hd-data.c:157 msgid "Switzerland/Neuch˘tel" msgstr "Suiza/Neuch˘tel" #: src/hd-data.c:158 msgid "Switzerland/Nidwalden" msgstr "Suiza/Nidwalden" #: src/hd-data.c:159 msgid "Switzerland/Obwalden" msgstr "Suiza/Obwalden" #: src/hd-data.c:160 msgid "Switzerland/St Gallen" msgstr "Suiza/St Gallen" #: src/hd-data.c:161 msgid "Switzerland/Schaffhausen" msgstr "Suiza/Schaffhausen" #: src/hd-data.c:162 msgid "Switzerland/Solothurn" msgstr "Suiza/Solothurn" #: src/hd-data.c:163 msgid "Switzerland/Schwyz" msgstr "Suiza/Schwyz" #: src/hd-data.c:164 msgid "Switzerland/Thurgau" msgstr "Suiza/Thurgau" #: src/hd-data.c:165 msgid "Switzerland/Ticino" msgstr "Suiza/Ticino" #: src/hd-data.c:166 msgid "Switzerland/Uri" msgstr "Suiza/Uri" #: src/hd-data.c:167 msgid "Switzerland/Vaud" msgstr "Suiza/Vaud" #: src/hd-data.c:168 msgid "Switzerland/Valais" msgstr "Suiza/Valais" #: src/hd-data.c:169 msgid "Switzerland/Zug" msgstr "Suiza/Zug" #: src/hd-data.c:170 msgid "Switzerland/Zĵrich" msgstr "Suiza/Zurich" #: src/hd-data.c:171 msgid "C´te d'Ivoire" msgstr "Costa de Marfil" #: src/hd-data.c:172 msgid "Cook Islands" msgstr "Islas Cook" #: src/hd-data.c:173 msgid "Chile" msgstr "Chile" #: src/hd-data.c:174 msgid "Cameroon" msgstr "Camerşn" #: src/hd-data.c:176 msgid "Colombia" msgstr "Colombia" #: src/hd-data.c:177 msgid "Costa Rica" msgstr "Costa Rica" #: src/hd-data.c:178 msgid "Cuba" msgstr "Cuba" #: src/hd-data.c:179 msgid "Cape Verde" msgstr "Cabo Verde" #: src/hd-data.c:180 msgid "Christmas Islands" msgstr "Islas Navidad" #: src/hd-data.c:181 msgid "Cyprus" msgstr "Chipre" #: src/hd-data.c:182 msgid "Czech Republic" msgstr "Repşblica Checa" #: src/hd-data.c:183 msgid "Germany/Brandenburg" msgstr "Alemania/Brandenburgo" #: src/hd-data.c:184 msgid "Germany/Berlin" msgstr "Alemania/Berl­n" #: src/hd-data.c:185 msgid "Germany/Baden-Wĵrttemberg" msgstr "Alemania/Baden-Wĵrttemberg" #: src/hd-data.c:186 msgid "Germany/Bavaria" msgstr "Alemania/Bavaria" #: src/hd-data.c:187 msgid "Germany/Bremen" msgstr "Alemania/Bremen" #: src/hd-data.c:188 msgid "Germany/Hesse" msgstr "Alemania/Hesse" #: src/hd-data.c:189 msgid "Germany/Hamburg" msgstr "Alemania/Hamburgo" #: src/hd-data.c:190 msgid "Germany/Mecklenburg-West Pomerania" msgstr "Alemania/Mecklenburg-Pomerania del Oeste" #: src/hd-data.c:191 msgid "Germany/Lower Saxony" msgstr "Alemania/Sajonia Baja" #: src/hd-data.c:192 msgid "Germany/North Rhine-Westphalia" msgstr "Alemania/Norte del Rhin-Westphalia" #: src/hd-data.c:193 msgid "Germany/Rhineland Palatinate" msgstr "Alemania/Rhineland Palatinate" #: src/hd-data.c:194 msgid "Germany/Schleswig-Holstein" msgstr "Alemania/Schleswig-Holstein" #: src/hd-data.c:195 #, fuzzy msgid "Germany/Saarland" msgstr "Alemania/Saar" #: src/hd-data.c:196 msgid "Germany/Saxony" msgstr "Alemania/Sajonia" #: src/hd-data.c:197 msgid "Germany/Saxony-Anhalt" msgstr "Alemania/Sajonia Alta" #: src/hd-data.c:198 msgid "Germany/Thuringia" msgstr "Alemania/Turingia" #: src/hd-data.c:199 msgid "Djibouti" msgstr "Djibouti" #: src/hd-data.c:200 msgid "Denmark" msgstr "Dinamarca" #: src/hd-data.c:201 msgid "Dominica" msgstr "Dominica" #: src/hd-data.c:202 msgid "Dominican Republic" msgstr "Repşblica Dominicana" #: src/hd-data.c:203 msgid "Algeria" msgstr "Algeria" #: src/hd-data.c:204 msgid "Ecuador" msgstr "Ecuador" #: src/hd-data.c:205 msgid "Estonia" msgstr "Estonia" #: src/hd-data.c:206 msgid "Egypt" msgstr "Egipto" #: src/hd-data.c:207 msgid "Western Sahara" msgstr "Sahara Occidental" #: src/hd-data.c:208 msgid "Eritrea" msgstr "Eritrea" #: src/hd-data.c:210 msgid "Ethiopia" msgstr "Etiop­a" #: src/hd-data.c:211 msgid "Finland" msgstr "Finlandia" #: src/hd-data.c:212 msgid "Fiji #" msgstr "Fiji #" #: src/hd-data.c:213 msgid "Falkland Islands (Malvinas)" msgstr "Islas Falkland (Malvinas)" #: src/hd-data.c:214 msgid "Federated States of Micronesia" msgstr "Estados Federados de Micronesia" #: src/hd-data.c:215 msgid "Faroes" msgstr "Faroes" #: src/hd-data.c:217 msgid "Gabon #" msgstr "Gab³n #" #: src/hd-data.c:218 msgid "Great Britain/England and Wales" msgstr "Gran Bretaħa/Inglaterra y Gales" #: src/hd-data.c:219 msgid "Great Britain/Northern Ireland" msgstr "Gran Bretaħa/Irlanda del Norte" #: src/hd-data.c:220 msgid "Great Britain/Scotland" msgstr "Gran Bretaħa/Escocia" #: src/hd-data.c:221 msgid "Grenada" msgstr "Granada" #: src/hd-data.c:222 msgid "Georgia" msgstr "Georgia" #: src/hd-data.c:223 msgid "French Guiana" msgstr "Guyana Francesa" #: src/hd-data.c:224 msgid "Ghana" msgstr "Ghana" #: src/hd-data.c:225 msgid "Gibraltar" msgstr "Gibraltar" #: src/hd-data.c:226 msgid "Greenland" msgstr "Groelandia" #: src/hd-data.c:227 msgid "Gambia" msgstr "Gambia" #: src/hd-data.c:228 msgid "Guinea" msgstr "Guinea" #: src/hd-data.c:229 msgid "Guadeloupe" msgstr "Guadalupe" #: src/hd-data.c:230 msgid "Equatorial Guinea" msgstr "Guinea Ecuatorial" #: src/hd-data.c:231 msgid "Greece" msgstr "Grecia" #: src/hd-data.c:232 msgid "South Georgia and South Sandwich Islands" msgstr "Islas de Georgia del Sur y Sandwich del Sur" #: src/hd-data.c:233 msgid "Guatemala" msgstr "Guatemala" #: src/hd-data.c:234 msgid "Guam" msgstr "Guam" #: src/hd-data.c:235 msgid "Guinea-Bissau #" msgstr "Guinea-Bissau #" #: src/hd-data.c:236 msgid "Guyana #" msgstr "Guyana #" #: src/hd-data.c:237 msgid "Hong Kong" msgstr "Hong Kong" #: src/hd-data.c:238 msgid "Heard and Mc Donald Islands" msgstr "Islas Heard y Mc Donald" #: src/hd-data.c:239 msgid "Honduras" msgstr "Honduras" #: src/hd-data.c:240 msgid "Croatia" msgstr "Croacia" #: src/hd-data.c:241 msgid "Haiti" msgstr "Hait­" #: src/hd-data.c:242 msgid "Hungary" msgstr "Hungr­a" #: src/hd-data.c:243 msgid "Indonesia #" msgstr "Indonesia #" #: src/hd-data.c:244 msgid "Ireland" msgstr "Irlanda" #: src/hd-data.c:246 msgid "India #" msgstr "India #" #: src/hd-data.c:247 msgid "Iraq" msgstr "Irak" #: src/hd-data.c:248 msgid "Islamic Republic of Iran" msgstr "Repşblica IslĦmica de IrĦn" #: src/hd-data.c:249 msgid "Iceland" msgstr "Islandia" #: src/hd-data.c:251 msgid "Jamaica" msgstr "Jamaica" #: src/hd-data.c:252 msgid "Jordan" msgstr "Jordania" #: src/hd-data.c:254 msgid "Kenya #" msgstr "Kenya #" #: src/hd-data.c:255 msgid "Kyrgyzstan" msgstr "KyrgyzstĦn" #: src/hd-data.c:256 msgid "Cambodia #" msgstr "Camboya #" #: src/hd-data.c:257 msgid "Kiribati #" msgstr "Kiribati #" #: src/hd-data.c:258 msgid "Comoros" msgstr "Comoros" #: src/hd-data.c:259 msgid "St Kitts and Nevis" msgstr "St Kitts y Nevis" #: src/hd-data.c:260 msgid "Democratic People's Republic of Korea" msgstr "Repşblica del Pueblo DemocrĦtica de Corea" #: src/hd-data.c:262 msgid "Kuwait" msgstr "Kuwait" #: src/hd-data.c:263 msgid "Cayman Islands" msgstr "Islas CaimĦn" #: src/hd-data.c:264 msgid "Kazakhstan" msgstr "KazajistĦn" # FIXME - No me gusta la traducci³n. cfuga #: src/hd-data.c:265 msgid "Laos People's Democratic Republic #" msgstr "Repşblica DemocrĦtica de la Gente de Laos #" #: src/hd-data.c:266 msgid "Lebanon" msgstr "L­bano" #: src/hd-data.c:267 msgid "St Lucia" msgstr "Santa Luc­a" #: src/hd-data.c:268 msgid "Liechtenstein" msgstr "Liechtenstein" #: src/hd-data.c:269 msgid "Sri Lanka #" msgstr "Sri Lanka #" #: src/hd-data.c:270 msgid "Liberia" msgstr "Liberia" #: src/hd-data.c:271 msgid "Lesotho" msgstr "Lesotho" #: src/hd-data.c:272 msgid "Lithuania" msgstr "Lituania" #: src/hd-data.c:273 msgid "Luxembourg" msgstr "Luxemburgo" #: src/hd-data.c:274 msgid "Latvia" msgstr "Latvia" #: src/hd-data.c:275 msgid "Libyan Arab Jamahiriya (Libya)" msgstr "Jamahiriya rabe Libia (LIbia)" #: src/hd-data.c:276 msgid "Morocco" msgstr "Marruecos" #: src/hd-data.c:277 msgid "Monaco" msgstr "M³naco" #: src/hd-data.c:278 msgid "Republic of Moldova" msgstr "Repşblica de Moldavia" #: src/hd-data.c:279 msgid "Madagascar #" msgstr "Magadascar #" #: src/hd-data.c:280 msgid "Marshall Islands" msgstr "Islas Marshall" #: src/hd-data.c:281 msgid "Former Yugoslav Republic of Macedonia" msgstr "Antigua Repşblica Yugoslava de Macedonia" #: src/hd-data.c:282 msgid "Mali" msgstr "Mali" #: src/hd-data.c:283 msgid "Mongolia #" msgstr "Mongolia #" #: src/hd-data.c:284 msgid "Macau" msgstr "Macao" #: src/hd-data.c:285 msgid "Northern Marian Islands (Saipan)" msgstr "Islas Marianas del Norte (Saipan)" #: src/hd-data.c:286 msgid "Martinique" msgstr "Martinica" #: src/hd-data.c:287 msgid "Mauritania" msgstr "Mauritania" #: src/hd-data.c:288 msgid "Montserrat" msgstr "Montserrat" #: src/hd-data.c:289 msgid "Malta" msgstr "Malta" #: src/hd-data.c:290 msgid "Mauritius" msgstr "Mauritania" #: src/hd-data.c:291 msgid "Maldives" msgstr "Maldivas" #: src/hd-data.c:292 msgid "Malawi" msgstr "Malawi" #: src/hd-data.c:294 msgid "Malaysia #" msgstr "Malasia #" #: src/hd-data.c:295 msgid "Mozambique" msgstr "Mozambique" #: src/hd-data.c:296 msgid "Namibia" msgstr "Namibia" #: src/hd-data.c:297 msgid "New Caledonia" msgstr "Nueva Caledonia" #: src/hd-data.c:298 msgid "Niger" msgstr "N­ger" #: src/hd-data.c:299 #, fuzzy msgid "Norfolk Island" msgstr "Islas Norfolk" #: src/hd-data.c:300 msgid "Nigeria" msgstr "Nigeria" #: src/hd-data.c:301 msgid "Nicaragua" msgstr "Nicaragua" #: src/hd-data.c:303 msgid "Myanmar (Burma) #" msgstr "Myanmar (Burma) #" #: src/hd-data.c:304 msgid "Norway" msgstr "Noruega" #: src/hd-data.c:305 msgid "Nepal #" msgstr "Nepal #" #: src/hd-data.c:306 msgid "Nauru" msgstr "Nauru" #: src/hd-data.c:307 msgid "Niue" msgstr "Niue" #: src/hd-data.c:309 msgid "Oman" msgstr "OmĦn" #: src/hd-data.c:310 msgid "Panama" msgstr "PanamĦ" #: src/hd-data.c:311 msgid "Peru" msgstr "Perş" #: src/hd-data.c:312 msgid "French Polynesia" msgstr "Polinesia Francesa" #: src/hd-data.c:313 msgid "Papua New Guinea" msgstr "Papşa Nueva Guinea" #: src/hd-data.c:314 msgid "Philippines" msgstr "Filipinas" #: src/hd-data.c:315 msgid "Pakistan" msgstr "PaquistĦn" #: src/hd-data.c:316 msgid "Poland" msgstr "Polonia" #: src/hd-data.c:317 msgid "Saint-Pierre and Miquelon" msgstr "Saint-Pierre y Miquelon" #: src/hd-data.c:318 msgid "Pitcairn" msgstr "Pitcairn" #: src/hd-data.c:319 msgid "Puerto Rico" msgstr "Puerto Rico" #: src/hd-data.c:321 msgid "Palau" msgstr "Palau" #: src/hd-data.c:322 msgid "Paraguay" msgstr "Paraguay" #: src/hd-data.c:323 msgid "Qatar" msgstr "Qatar" #: src/hd-data.c:324 msgid "Rİunion" msgstr "Reuni³n" #: src/hd-data.c:325 msgid "Romania" msgstr "Rumania" #: src/hd-data.c:327 msgid "Rwanda" msgstr "Ruanda" #: src/hd-data.c:328 msgid "Saudi Arabia" msgstr "Arabia Saudita" #: src/hd-data.c:329 msgid "Solomon Islands" msgstr "Islas Salom³n" #: src/hd-data.c:330 msgid "Seychellen" msgstr "Seychelles" #: src/hd-data.c:331 msgid "Sudan" msgstr "SudĦn" #: src/hd-data.c:332 msgid "Sweden" msgstr "Suecia" #: src/hd-data.c:333 msgid "Singapore #" msgstr "Singapur #" #: src/hd-data.c:334 msgid "St Helena" msgstr "Santa Elena" #: src/hd-data.c:335 msgid "Slovenia" msgstr "Eslovenia" #: src/hd-data.c:336 msgid "Svalbard and Jan Mayen Islands" msgstr "Islas Svalbard y Jan Mayen" #: src/hd-data.c:337 msgid "Slovakia" msgstr "Eslovaquia" #: src/hd-data.c:338 msgid "Sierra Leone" msgstr "Sierra Leona" #: src/hd-data.c:339 msgid "San Marino" msgstr "San Marino" #: src/hd-data.c:340 msgid "Senegal" msgstr "Senegal" #: src/hd-data.c:341 msgid "Somalia" msgstr "Somalia" #: src/hd-data.c:342 msgid "Suriname #" msgstr "Surinam #" #: src/hd-data.c:343 msgid "Sao Tomİ and Principe" msgstr "Santo Tomİ y Pr­ncipe" #: src/hd-data.c:344 msgid "El Salvador" msgstr "El Salvador" #: src/hd-data.c:345 msgid "Syrian Arab Republic (Syria)" msgstr "Repşblica rabe Siria (Siria)" #: src/hd-data.c:346 msgid "Swaziland" msgstr "Swazilandia" #: src/hd-data.c:347 msgid "Turks and Caicos Islands" msgstr "Islas Turcas y Caicos" #: src/hd-data.c:348 msgid "Chad" msgstr "Chad" #: src/hd-data.c:349 msgid "Togo #" msgstr "Togo #" #: src/hd-data.c:350 msgid "Thailand #" msgstr "Tailandia #" #: src/hd-data.c:351 msgid "Tajikistan" msgstr "TajikistĦn" #: src/hd-data.c:352 msgid "Tokelau" msgstr "Tokelau" #: src/hd-data.c:353 msgid "Turkmenistan" msgstr "TurkmenistĦn" #: src/hd-data.c:354 msgid "Tunisia" msgstr "Tşnez" #: src/hd-data.c:355 msgid "Tonga" msgstr "Tonga" #: src/hd-data.c:356 msgid "Turkey" msgstr "Turqu­a" #: src/hd-data.c:357 msgid "Trinidad and Tobago #" msgstr "Trinidad y Tobago #" #: src/hd-data.c:358 msgid "Tuvalu" msgstr "Tuvalu" #: src/hd-data.c:359 msgid "Taiwan" msgstr "TaiwĦn" #: src/hd-data.c:360 msgid "Tanzania" msgstr "Tanzania" #: src/hd-data.c:361 msgid "Ukraine" msgstr "Ucrania" #: src/hd-data.c:362 msgid "Uganda" msgstr "Uganda" #: src/hd-data.c:363 msgid "United States/Alaska" msgstr "Estados Unidos/Alaska" #: src/hd-data.c:364 msgid "United States/Alabama" msgstr "Estados Unidos/Alabama" #: src/hd-data.c:365 msgid "United States/Arkansas" msgstr "Estados Unidos/Arkansas" #: src/hd-data.c:366 msgid "United States/Arizona" msgstr "Estados Unidos/Arizona" #: src/hd-data.c:367 msgid "United States/California" msgstr "Estados Unidos/California" #: src/hd-data.c:368 msgid "United States/Colorado" msgstr "Estados Unidos/Colorado" #: src/hd-data.c:369 msgid "United States/Connecticut" msgstr "Estados Unidos/Connecticut" #: src/hd-data.c:370 msgid "United States/District of Columbia" msgstr "Estados Unidos/Distrito de Columbia" #: src/hd-data.c:371 msgid "United States/Delaware" msgstr "Estados Unidos/Delaware" #: src/hd-data.c:372 msgid "United States/Florida" msgstr "Estados Unidos/Florida" #: src/hd-data.c:373 msgid "United States/Georgia" msgstr "Estados Unidos/Georgia" #: src/hd-data.c:374 msgid "United States/Hawaii" msgstr "Estados Unidos/Hawaii" #: src/hd-data.c:375 msgid "United States/Iowa" msgstr "Estados Unidos/Iowa" #: src/hd-data.c:376 msgid "United States/Idaho" msgstr "Estados Unidos/Idaho" #: src/hd-data.c:377 msgid "United States/Illinois" msgstr "Estados Unidos/Illinois" #: src/hd-data.c:378 msgid "United States/Indiana" msgstr "Estados Unidos/Indiana" #: src/hd-data.c:379 msgid "United States/Kansas" msgstr "Estados Unidos/Kansas" #: src/hd-data.c:380 msgid "United States/Kentucky" msgstr "Estados Unidos/Kentucky" #: src/hd-data.c:381 msgid "United States/Louisiana" msgstr "Estados Unidos/Louisiana" #: src/hd-data.c:382 msgid "United States/Massachusetts" msgstr "Estados Unidos/Massachusetts" #: src/hd-data.c:383 msgid "United States/Maryland" msgstr "Estados Unidos/Maryland" #: src/hd-data.c:384 msgid "United States/Maine" msgstr "Estados Unidos/Maine" #: src/hd-data.c:385 msgid "United States/Michigan" msgstr "Estados Unidos/Michigan" #: src/hd-data.c:386 msgid "United States/Minnesota" msgstr "Estados Unidos/Minnesota" #: src/hd-data.c:387 msgid "United States/Missouri" msgstr "Estados Unidos/Missouri" #: src/hd-data.c:388 msgid "United States/Mississippi" msgstr "Estados Unidos/Mississippi" #: src/hd-data.c:389 msgid "United States/Montana" msgstr "Estados Unidos/Montana" #: src/hd-data.c:390 msgid "United States/North Carolina" msgstr "Estados Unidos/Carolina del Norte" #: src/hd-data.c:391 msgid "United States/North Dakota" msgstr "Estados Unidos/Dakota del Norte" #: src/hd-data.c:392 msgid "United States/Nebraska" msgstr "Estados Unidos" #: src/hd-data.c:393 msgid "United States/New Hampshire" msgstr "Estados Unidos/Nueva Hampshire" #: src/hd-data.c:394 msgid "United States/New Jersey" msgstr "Estados Unidos/Nueva Jersey" #: src/hd-data.c:395 msgid "United States/New Mexico" msgstr "Estados Unidos/Nuevo Mİxico" #: src/hd-data.c:396 msgid "United States/Nevada" msgstr "Estados Unidos/Nevada" #: src/hd-data.c:397 msgid "United States/New York" msgstr "Estados Unidos/Nueva York" #: src/hd-data.c:398 msgid "United States/Ohio" msgstr "Estados Unidos/Ohio" #: src/hd-data.c:399 msgid "United States/Oklahoma" msgstr "Estados Unidos/Oklahoma" #: src/hd-data.c:400 msgid "United States/Oregon" msgstr "Estados Unidos/Oregon" #: src/hd-data.c:401 msgid "United States/Pennsylvania" msgstr "Estados Unidos/Pennsylvania" #: src/hd-data.c:402 msgid "United States/Rhode Island" msgstr "Estados Unidos/Isla Rhode" #: src/hd-data.c:403 msgid "United States/South Carolina" msgstr "Estados Unidos/Carolina del Sur" #: src/hd-data.c:404 msgid "United States/South Dakota" msgstr "Estados Unidos/Dakota del Sur" #: src/hd-data.c:405 msgid "United States/Tennessee" msgstr "Estados Unidos/Tennessee" # ÂżO mejor Tejas? - cfuga #: src/hd-data.c:406 msgid "United States/Texas" msgstr "Estados Unidos/Texas" #: src/hd-data.c:407 msgid "United States/Utah" msgstr "Estados Unidos/Utah" #: src/hd-data.c:408 msgid "United States/Virginia" msgstr "Estados Unidos/Virginia" #: src/hd-data.c:409 msgid "United States/Vermont" msgstr "Estados Unidos/Vermonth" #: src/hd-data.c:410 msgid "United States/Washington" msgstr "Estados Unidos/Washington" #: src/hd-data.c:411 msgid "United States/Wisconsin" msgstr "Estados Unidos/Wisconsin" #: src/hd-data.c:412 msgid "United States/West Virginia" msgstr "Estados Unidos/Virginia Oeste" #: src/hd-data.c:413 msgid "United States/Wyoming" msgstr "Estados Unidos/Wyoming" #: src/hd-data.c:414 msgid "Uruguay" msgstr "Uruguay" #: src/hd-data.c:415 msgid "Uzbekistan" msgstr "UzbekistĦn" #: src/hd-data.c:416 msgid "St Vincent and Grenadines" msgstr "San Vicente y Granadinas" #: src/hd-data.c:417 msgid "Venezuela" msgstr "Venezuela" #: src/hd-data.c:418 msgid "British Virgin Islands" msgstr "Islas V­rgenes BritĦnicas" #: src/hd-data.c:419 msgid "U.S. Virgin Islands" msgstr "Islas V­rgenes (E.U.)" #: src/hd-data.c:420 msgid "Viet Nam" msgstr "Vietnam" #: src/hd-data.c:421 msgid "Vanuatu" msgstr "Vanuatu" #: src/hd-data.c:422 msgid "Wallis and Futuna Islands" msgstr "Islas Wallis y Futuna" #: src/hd-data.c:423 msgid "Samoa" msgstr "Samoa" #: src/hd-data.c:424 msgid "Yemen" msgstr "Yemen" #: src/hd-data.c:425 msgid "Mayotte" msgstr "Mayotte" #: src/hd-data.c:426 msgid "Serbia and Montenegro" msgstr "Serbia y Montenegro" #: src/hd-data.c:427 msgid "South Africa" msgstr "SudĦfrica" #: src/hd-data.c:428 msgid "Zambia" msgstr "Zambia" #: src/hd-data.c:429 msgid "Zimbabwe" msgstr "Zimbabwe" #: src/hd-data.c:459 msgid "1st Advent" msgstr "Primer Adviento" #: src/hd-data.c:460 msgid "1st Sunday in Lent" msgstr "Primer domingo de Cuaresma" #: src/hd-data.c:461 msgid "2nd Advent" msgstr "2Âş Adviento" #: src/hd-data.c:462 msgid "2nd Sunday in Lent" msgstr "2° domingo de Cuaresma" #: src/hd-data.c:463 msgid "3rd Advent" msgstr "3er Adviento" #: src/hd-data.c:464 msgid "3rd Sunday in Lent" msgstr "3er domingo de Cuaresma" # No toy mu seguro yo, pero parece que lo de los advenimientos son los # cuatro primeros domingos antes de Navidad (desventajas de ser mĦs # que ateo, anticristo ;=). ipg # # Ya te digo... -vmv # # en vez de pedir traductores, habrĦ que pedir cardenales :-) - jano # # No son advenimientos, son advientos. - cfuga #: src/hd-data.c:465 msgid "4th Advent" msgstr "4Âş Adviento" #: src/hd-data.c:466 msgid "4th Sunday in Lent" msgstr "4° domingo de Cuaresma" #: src/hd-data.c:467 msgid "7-5-3 Festival" msgstr "Festival 7-5-3" #: src/hd-data.c:468 msgid "Aborigines Day" msgstr "D­a de los Abor­genes" #: src/hd-data.c:469 msgid "All Fool's Day" msgstr "D­a de los Santos Inocentes" #: src/hd-data.c:470 msgid "All Saints' Day" msgstr "D­a de Todos los Santos" #: src/hd-data.c:471 msgid "All Souls' Day" msgstr "D­a de Todas las Almas" #: src/hd-data.c:472 msgid "Alphabet Day" msgstr "D­a del Alfabeto" #: src/hd-data.c:473 msgid "Anniversary of Auckland" msgstr "Aniversario de Auckland" #: src/hd-data.c:474 msgid "Anniversary of Canterbury North" msgstr "Aniversario de Canterbury del Norte" #: src/hd-data.c:475 msgid "Anniversary of Canterbury South" msgstr "Aniversario de Canterbury del Sur" #: src/hd-data.c:476 msgid "Anniversary of Chatham Islands" msgstr "Aniversario de las Islas Chatham" #: src/hd-data.c:477 msgid "Anniversary of Hawkes' Bay" msgstr "Aniversario de la Bah­a de Hawkes" #: src/hd-data.c:478 msgid "Anniversary of Marlborough" msgstr "Aniversario de Marlborough" #: src/hd-data.c:479 msgid "Anniversary of Nelson" msgstr "Aniversario de Nelson" #: src/hd-data.c:480 msgid "Anniversary of Otago" msgstr "Aniversario de Otago" #: src/hd-data.c:481 msgid "Anniversary of Southland" msgstr "Aniversario de Southland" #: src/hd-data.c:482 msgid "Anniversary of Taranaki" msgstr "Aniversario de Taranaki" #: src/hd-data.c:483 msgid "Anniversary of Wellington" msgstr "Aniversario de Wellington" #: src/hd-data.c:484 msgid "Anniversary of Westland" msgstr "Aniversario de Westland" # joer, con estos festivos tan raros, Âżvale la pena traducirlos? - jano # creo que antes se llamaba Dia de Gonzalec ;) -vmv # #: src/hd-data.c:485 msgid "Anzac Day" msgstr "D­a de Anzac" #: src/hd-data.c:486 msgid "Arbor Day" msgstr "D­a de Arbor" #: src/hd-data.c:487 msgid "Armed Forces Day" msgstr "D­a de las Fuerzas Armadas" #: src/hd-data.c:488 msgid "Armistice Day" msgstr "D­a del Armisticio" # Esto se supone que es el Lunes de despuİs de Pentecostİs, pero # en Espaħa (al menos) parece ser que no se celebra. Aşn as­, # `Lunes de Pentecostİs' creo que queda lo suficientemente bien. # ipg #: src/hd-data.c:489 msgid "Ash Monday" msgstr "Lunes de Pentecostİs" #: src/hd-data.c:490 msgid "Ash Wednesday" msgstr "Miİrcoles de Ceniza" #: src/hd-data.c:491 msgid "Ascension of Abdu'l-Baha" msgstr "Ascensi³n de Abdu'l-Baha" #: src/hd-data.c:492 msgid "Ascension of Baha'u'llah" msgstr "Ascensi³n de Baha'u'llah" #: src/hd-data.c:493 msgid "Birth of Baha'u'llah" msgstr "Nacimiento de Baha'u'llah" #: src/hd-data.c:494 msgid "Birth of the Bab" msgstr "Nacimiento del Bab" #: src/hd-data.c:495 msgid "Day of the Covenant" msgstr "D­a del Convenio" #: src/hd-data.c:496 msgid "Declaration of the Bab" msgstr "Declaraci³n del Bab" #: src/hd-data.c:497 msgid "First Day of Ridvan" msgstr "Primer D­a de Ridvan" #: src/hd-data.c:498 msgid "Martyrdom of the Bab" msgstr "Martirio del Bab" #: src/hd-data.c:499 msgid "BahĦ'i New Year's Day" msgstr "D­a de Aħo Nuevo de BahĦ'i" #: src/hd-data.c:500 msgid "Ninth Day of Ridvan" msgstr "9Âş D­a de Ridvan" #: src/hd-data.c:501 msgid "Twelfth Day of Ridvan" msgstr "12Âş D­a de Ridvan" # Âżfiesta de los bankeros? :-D # alaaa! Bank holiday=d­a festivo (son d­as de fiesta, sin ninguna # celebraci³n en particular) - jano # #: src/hd-data.c:502 msgid "Bank Holiday" msgstr "D­a Festivo" # Perd³n por mi incultura Âżcual es la Naci³n Lapona? ÂżLaponia? #: src/hd-data.c:503 msgid "Basque National Day" msgstr "D­a de la Naci³n Vasca" #: src/hd-data.c:504 msgid "Battle of Boyne" msgstr "Batalla de Boyne" #: src/hd-data.c:505 msgid "Battle of Puebla" msgstr "Batalla de Puebla" #: src/hd-data.c:506 msgid "Beginning of Financial Year" msgstr "Inicio del Aħo Financiero" #: src/hd-data.c:507 msgid "Benito JuĦrez Day" msgstr "D­a de Benito JuĦrez" # Es mĦs apropiado utilizar "natalicio" que "cumpleaħos". Despuİs de que # fallece la persona, es dif­cil que cumpla mĦs aħos. Sin embargo, el # natalicio siempre funciona. :-) cfuga #: src/hd-data.c:508 msgid "Bodhidharma's Birthday" msgstr "Natalicio de Bodhidharma" #: src/hd-data.c:509 msgid "Bosses' Day" msgstr "D­a de los Jefes" # Este se supone que es el primer d­a de la semana despuİs # del D­a de Navidad. ipg # Que yo sepa no hay una traducci³n en espaħol, as­ que # pondrİ `D­a despuİs de Navidad'. # Sugerencias welcome. FIXME ipg # # Y yo que hab­a puesto D­a del Boxeo... # Me parece mas decoroso 'Resaca de Navidad' -vmv # # no es el 1er d­a de la semana despuİs de navidad, sino el d­a despuİs # de navidad (lo de boxing va por las cajas de los regalos), por lo que # d­a despues de navidad es mĦs correcto que lo de resaca. -jano # #: src/hd-data.c:510 msgid "Boxing Day" msgstr "D­a despuİs de Navidad" #: src/hd-data.c:511 msgid "Bringing Home the Herds Day" msgstr "D­a para traer los Rebaħos a Casa" #: src/hd-data.c:512 msgid "Bringing in the Harvest Day" msgstr "D­a para traer la Cosecha" #: src/hd-data.c:513 msgid "Buddha's Birthday" msgstr "Natalicio de Buda" #: src/hd-data.c:514 msgid "Burns Night" msgstr "Noche del Fuego" #: src/hd-data.c:515 msgid "Camoes Day" msgstr "D­a de Camoes" #: src/hd-data.c:516 msgid "Carnival" msgstr "Carnaval" #: src/hd-data.c:517 msgid "Beltane" msgstr "Beltane" #: src/hd-data.c:518 msgid "Imbolg" msgstr "Imbolc" #: src/hd-data.c:519 msgid "Lughnasa" msgstr "Lughnasa" #: src/hd-data.c:520 msgid "Samhain/Celtic New Year's Day" msgstr "Samhain/D­a de Aħo Nuevo Celta" #: src/hd-data.c:521 msgid "Children's Day" msgstr "D­a de los Niħos" #: src/hd-data.c:522 msgid "Cycle" msgstr "Ciclo" #: src/hd-data.c:523 msgid "Chinese New Year's Day" msgstr "D­a de Aħo Nuevo Chino" #: src/hd-data.c:524 msgid "Chinese New Year's Eve" msgstr "V­spera del D­a de Aħo Nuevo Chino" #: src/hd-data.c:525 msgid "Christmas Day" msgstr "D­a de Navidad" #: src/hd-data.c:526 msgid "Christmas Eve" msgstr "Nochebuena" #: src/hd-data.c:527 msgid "Christ's Ascension Day" msgstr "D­a de la Ascensi³n de Cristo" #: src/hd-data.c:528 msgid "Chrysanthenum Day" msgstr "D­a del Crisantemo" #: src/hd-data.c:529 msgid "Citizenship Day" msgstr "D­a del Ciudadano" #: src/hd-data.c:530 msgid "Civic Holiday" msgstr "Fiesta C­vica" #: src/hd-data.c:531 msgid "Columbus Day" msgstr "D­a de Col³n" #: src/hd-data.c:532 msgid "Coming of Age Day" msgstr "D­a de la Llegada de la Era" #: src/hd-data.c:533 msgid "Confucius' Birthday" msgstr "Natalicio de Confucio" #: src/hd-data.c:534 msgid "Constitution Anniversary" msgstr "Aniversario de la Constituci³n" #: src/hd-data.c:535 msgid "Coptic New Year's Day" msgstr "D­a de Aħo Nuevo Copto" #: src/hd-data.c:536 msgid "Cosmonauts' Day" msgstr "D­a de los Cosmonautas" #: src/hd-data.c:537 msgid "Cross Raising Day" msgstr "D­a del Levantamiento de la Cruz" #: src/hd-data.c:538 msgid "Culture Day" msgstr "D­a de la Cultura" #: src/hd-data.c:539 msgid "Day after Mid-Autumn Festival" msgstr "D­a despuİs del Festival de Medio Otoħo" #: src/hd-data.c:540 msgid "Day after Tomb-Sweeping Day" msgstr "D­a despuİs del D­a de Limpieza de Tumbas" #: src/hd-data.c:541 msgid "Day of Andalucia" msgstr "D­a de Andaluc­a" #: src/hd-data.c:542 msgid "Day of Catalonia" msgstr "D­a de Catalunia" #: src/hd-data.c:543 msgid "Day of Galicia" msgstr "D­a de Galicia" #: src/hd-data.c:544 msgid "Day of Prayer and Repentance" msgstr "D­a de Oraci³n y Arrepentimiento" #: src/hd-data.c:545 msgid "Day of Reconciliation" msgstr "D­a de la Reconciliaci³n" #: src/hd-data.c:546 msgid "Defenders of Motherland Day" msgstr "D­a de los Defensores de la Madre Patria" #: src/hd-data.c:547 msgid "Double-9 Day" msgstr "D­a del Doble 9" #: src/hd-data.c:548 msgid "Dragon Boat Festival" msgstr "Festival del Bote del Drag³n" # ¿¿¿ SerĦ cuando echan la 'vetusta' serie en la TV ;-) ??? -vmv #: src/hd-data.c:549 msgid "Dynasty Day" msgstr "D­a de la Dinast­a" #: src/hd-data.c:550 msgid "Easter Monday" msgstr "Lunes de Pascua" #: src/hd-data.c:551 msgid "Easter Sunday" msgstr "Domingo de Resurrecci³n" #: src/hd-data.c:552 msgid "Lunar Eclipse" msgstr "Eclipse Lunar" #: src/hd-data.c:553 msgid "Solar Eclipse" msgstr "Eclipse Solar" #: src/hd-data.c:554 msgid "Annular" msgstr "Anular" #: src/hd-data.c:555 msgid "Partial" msgstr "Parcial" #: src/hd-data.c:556 msgid "Penumbral" msgstr "Penumbral" #: src/hd-data.c:557 msgid "Total" msgstr "Total" #: src/hd-data.c:558 msgid "Eindhoven's Liberation" msgstr "Liberaci³n de Eindhoven" #: src/hd-data.c:559 msgid "Election Day" msgstr "D­a de la Elecci³n" #: src/hd-data.c:560 msgid "Emperor's Birthday" msgstr "Natalicio del Emperador" #: src/hd-data.c:561 msgid "Equinox Day" msgstr "D­a del Equinoccio" #: src/hd-data.c:562 msgid "Ethiopic New Year's Day" msgstr "D­a de Aħo Nuevo Et­ope" #: src/hd-data.c:563 msgid "Father's Day" msgstr "D­a del Padre" #: src/hd-data.c:564 msgid "Feast of Corpus Christi" msgstr "Fiesta del Corpus Cristi" #: src/hd-data.c:565 msgid "Feast of Fortune" msgstr "Fiesta de la Fortuna" #: src/hd-data.c:566 msgid "Feast of Heart Jesus" msgstr "Fiesta del Coraz³n de Jesşs" #: src/hd-data.c:567 msgid "Festival of Lanterns" msgstr "Festival de las Linternas" #: src/hd-data.c:568 msgid "Festival of Sadeh" msgstr "Festival de Sadeh" #: src/hd-data.c:569 msgid "Flag Day" msgstr "D­a de la Bandera" #: src/hd-data.c:570 msgid "Flemish Culture Day" msgstr "D­a de la Cultura Flamenca" #: src/hd-data.c:571 msgid "Founding of the Communist Party" msgstr "Fundaci³n del Partido Comunista" #: src/hd-data.c:572 msgid "French Culture Day" msgstr "D­a de la Cultura Francesa" #: src/hd-data.c:573 msgid "French Revolutionary" msgstr "D­a de la Revoluci³n Francesa" #: src/hd-data.c:574 msgid "Friendship Day" msgstr "D­a de la Amistad" #: src/hd-data.c:575 msgid "German Unity Day" msgstr "D­a de la Unificaci³n Alemana" #: src/hd-data.c:576 msgid "Good Friday" msgstr "Viernes Santo" #: src/hd-data.c:577 msgid "Good Saturday/Easter Eve" msgstr "SĦbado Santo/V­speras de Pascua" #: src/hd-data.c:578 msgid "Grandparents' Day" msgstr "D­a de los Abuelos" #: src/hd-data.c:579 msgid "Greenery Day" msgstr "D­a de las Jardineras" # Aunque suena mĦs tİtrico, creo que la traducci³n correcta es # "D­a de la Cripta" en lugar de "D­a de la Gruta" - cfuga #: src/hd-data.c:580 msgid "Grotto Day" msgstr "D­a de la Cripta" #: src/hd-data.c:581 msgid "Groundhog Day" msgstr "D­a de la Marmota" #: src/hd-data.c:582 msgid "Guadalupe Virgin's Day" msgstr "D­a de la Virgen de Guadalupe" #: src/hd-data.c:583 #, fuzzy msgid "Guy Fawkes Day" msgstr "D­a de Guy Fawke" #: src/hd-data.c:584 msgid "Halloween" msgstr "Noche de Brujas" #: src/hd-data.c:585 msgid "Health and Sport's Day" msgstr "D­a de la Salud y los Deportes" #: src/hd-data.c:586 msgid "Hannukah/Festival of Lights" msgstr "Hannukah/Festival de las Luces" #: src/hd-data.c:587 msgid "Lag B'Omer" msgstr "Lag B'Omer" #: src/hd-data.c:588 msgid "Pesach/Passover" msgstr "Pesach/Pascua" #: src/hd-data.c:589 msgid "Purim/Feast of Lots" msgstr "Purim/Fiesta de Muchos" #: src/hd-data.c:590 msgid "Rosh Hashana/New Year's Day" msgstr "Rosh Hashana/D­a de Aħo Nuevo" #: src/hd-data.c:591 msgid "Shavuot/Giving of the Torah" msgstr "Shavout/Entrega de la Torah" #: src/hd-data.c:592 msgid "Shushan Purim" msgstr "Shushan Purim" #: src/hd-data.c:593 msgid "Simchat Torah" msgstr "Simchat Torah" #: src/hd-data.c:594 msgid "Sukkot/Feast of Tabernacles" msgstr "Sukkot/Fiesta de los TabernĦculos" #: src/hd-data.c:595 msgid "Tisha B'Av/Fasting Day" msgstr "Tisha B'Av/D­a de Ayuno" #: src/hd-data.c:596 msgid "Tu B'Shevat/New Year of Trees" msgstr "Tu B'Shevat/Aħo Nuevo de los rboles" #: src/hd-data.c:597 msgid "Yom Hashoah/Holocaust Memorial" msgstr "Yom Hashoah/Memorial del Holocausto" #: src/hd-data.c:598 msgid "Yom Hazikaron/Soldiers Memorial" msgstr "Yom Hazikaron/Memorial de los Soldados" #: src/hd-data.c:599 msgid "Yom Ha Azmaut/Independence Day" msgstr "Yom Ha Azmaut/D­a de la Independencia" #: src/hd-data.c:600 msgid "Yom Kippur/Atonement Day" msgstr "Yom Kippur/D­a de la Redenci³n" #: src/hd-data.c:601 msgid "Yom Yerushalayim/Jerusalem Day" msgstr "Yom Yerushalayim/D­a de Jerusalİn" # # al traducir el "dia de los tontos" anglosaj³n como el d­a de los santos # inocentes, estĦ repetido - jano # #: src/hd-data.c:602 msgid "Holy Innocent's Day" msgstr "D­a de los Santos Inocentes" #: src/hd-data.c:603 msgid "Holy Trinity" msgstr "Sant­simia Trinidad" #: src/hd-data.c:604 msgid "Huravee Day" msgstr "D­a de Huravee" #: src/hd-data.c:605 msgid "Independence Day" msgstr "D­a de la Independencia" #: src/hd-data.c:606 msgid "Independence Movement Day" msgstr "D­a del Movimiento de Independencia" #: src/hd-data.c:607 msgid "Independence Proclamation" msgstr "Proclamaci³n de la Independencia" # Se refiere al Aħo Nuevo de la India. Tal vez se puede traducir por # "Aħo Nuevo Hindş", pero no todos los habitantes de la India son hindşs. # :-) - cfuga #: src/hd-data.c:608 msgid "Indian New Year's Day" msgstr "D­a de Aħo Nuevo Indio" #: src/hd-data.c:609 msgid "Aga Khan's Birthday" msgstr "Natalicio de Aga Khan" # Tal vez haya traducciones al espaħol de las siguientes festividades # musulmanas, pero consultİ (a travİs de un amigo) con un estudioso de dicha # religi³n, y parece que es correcto mencionar estas celebraciones sin # traducci³n alguna. cfuga #: src/hd-data.c:610 msgid "Ashura'" msgstr "Ashura'" #: src/hd-data.c:611 msgid "Eid-al-Adha" msgstr "Eid-al-Adha" #: src/hd-data.c:612 msgid "Eid-al-Fitr" msgstr "Eid-al-Fitr" #: src/hd-data.c:613 msgid "Eid-i-Milad-un-Nabi" msgstr "Eid-i-Milad-un-Nabi" #: src/hd-data.c:614 msgid "Ghadir" msgstr "Ghadir" #: src/hd-data.c:615 msgid "Imamat Day" msgstr "D­a de Imamat" #: src/hd-data.c:616 msgid "Islamic New Year's Day" msgstr "D­a de Aħo Nuevo IslĦmico" #: src/hd-data.c:617 msgid "Nuzul-al-Qur'an" msgstr "Nuzul-al-Qur'an" #: src/hd-data.c:618 msgid "Quds Day" msgstr "D­a de Quds" #: src/hd-data.c:619 msgid "Ramadan" msgstr "RamadĦn" #: src/hd-data.c:620 msgid "Shab-e-Bara't" msgstr "Shab-e-Bara't" #: src/hd-data.c:621 msgid "Shab-e-Mi'raj" msgstr "Shab-e-Mi'raj" #: src/hd-data.c:622 msgid "Shab-e Qadr" msgstr "Shab-e Qadr" #: src/hd-data.c:623 msgid "Waqf-al-Arafat" msgstr "Waqf-al-Arafat" #: src/hd-data.c:624 msgid "Japanese New Year's Day" msgstr "D­a de Aħo Nuevo Japonİs" #: src/hd-data.c:625 msgid "Japanese New Year's Eve" msgstr "V­spera del D­a de Aħo Nuevo Japonİs" #: src/hd-data.c:626 msgid "Jesus' Circumcision" msgstr "Circuncisi³n de Jesşs" #: src/hd-data.c:627 msgid "Kwanzaa" msgstr "Kwanzaa" #: src/hd-data.c:628 msgid "Labour Day" msgstr "D­a del Trabajo" #: src/hd-data.c:629 msgid "Labour Thanksgiving Day" msgstr "D­a de Acci³n de Gracias del Trabajo" #: src/hd-data.c:630 msgid "Lao Tze's Birthday" msgstr "Natalicio de Lao Tse" #: src/hd-data.c:631 msgid "Liberation Day" msgstr "D­a de la Liberaci³n" #: src/hd-data.c:632 msgid "Marine Day" msgstr "D­a de la Marina" #: src/hd-data.c:633 msgid "Martinimas" msgstr "Martinimas" #: src/hd-data.c:634 msgid "Martin L. King's Day" msgstr "D­a de Martin L. King" #: src/hd-data.c:635 msgid "Martyrs' Day" msgstr "D­a de los MĦrtires" #: src/hd-data.c:636 msgid "Mary's Annunciation Day" msgstr "D­a de la Anunciaci³n a Mar­a" #: src/hd-data.c:637 msgid "Mary's Ascension Day" msgstr "D­a de la Ascensi³n de Mar­a" # Esta fiesta tambiİn se podr­a traducir como "Presentaci³n en el Templo", # ya que es la fecha cuando se conmemora la presentaci³n de Jesşs en el # templo de Jerusalİn. - cfuga #: src/hd-data.c:638 msgid "Mary's Candlemas" msgstr "Purificaci³n de Mar­a" #: src/hd-data.c:639 msgid "Mary's Expectation" msgstr "Espera de Mar­a" #: src/hd-data.c:640 msgid "Mary's Immaculate Conception" msgstr "D­a de la Inmaculada Concepci³n de Mar­a" #: src/hd-data.c:641 msgid "Mary's Maternity" msgstr "Maternidad de Mar­a" #: src/hd-data.c:642 msgid "Mary's Name" msgstr "Nombre de Mar­a" #: src/hd-data.c:643 msgid "Mary's Nativity" msgstr "Natividad de Mar­a" #: src/hd-data.c:644 msgid "Mary's Sacrifice" msgstr "Sacrificio de Mar­a" #: src/hd-data.c:645 msgid "Mary's Visitation" msgstr "Visitaci³n de Mar­a" #: src/hd-data.c:646 msgid "Mary - Blessed Virgin" msgstr "Mar­a - Virgen Bendita" # Este es el şltimo Jueves antes de la Semana Santa, que conmemora # la şltima cena. No se cual es la denominaci³n exacta en caste- # llano, as­ que pongo lo que he puesto. # MĦs sugerencias welcome :) FIXME ipg # Sugerencia: Jueves Santo. - cfuga #: src/hd-data.c:647 msgid "Maundy Thursday" msgstr "šltima cena de Jesucristo" #: src/hd-data.c:648 msgid "May Day" msgstr "Primero de Mayo" # Es la traducci³n mĦs comşn, utilizada para el t­tulo de una obra de # Shakespeare. - cfuga #: src/hd-data.c:649 msgid "St John's/Midsummer Day" msgstr "D­a de San Juan/Noche de Verano" #: src/hd-data.c:650 msgid "Mid-Autumn Festival" msgstr "Festival de Medio Otoħo" #: src/hd-data.c:651 msgid "Mid-Spring Festival" msgstr "Festival de Media Primavera" #: src/hd-data.c:652 msgid "Mid-Year Festival" msgstr "Festival de Medio Aħo" #: src/hd-data.c:653 msgid "Waxing Half Moon" msgstr "Cuarto Creciente" #: src/hd-data.c:654 msgid "Full Moon" msgstr "Luna Llena" #: src/hd-data.c:655 msgid "Waning Half Moon" msgstr "Cuarto Menguante" #: src/hd-data.c:656 msgid "New Moon" msgstr "Luna Nueva" #: src/hd-data.c:657 msgid "Mother's Day" msgstr "D­a de la Madre" #: src/hd-data.c:658 msgid "Mother in Law's Day" msgstr "D­a de la Suegra" #: src/hd-data.c:659 msgid "Music Water Banquet" msgstr "Banquete de la Mşsica AcuĦtica" #: src/hd-data.c:660 msgid "National Foundation Day" msgstr "D­a de la Fundaci³n Nacional" #: src/hd-data.c:661 msgid "National Holiday" msgstr "D­a Nacional" #: src/hd-data.c:662 msgid "National Mourning Day" msgstr "D­a de Duelo Nacional" #: src/hd-data.c:663 msgid "New Year's Day" msgstr "D­a de Aħo Nuevo" #: src/hd-data.c:664 msgid "Nurses' Day" msgstr "D­a de la Enfermera" #: src/hd-data.c:665 msgid "Old-Armenic New Year" msgstr "Aħo Nuevo del Armenio Antiguo" #: src/hd-data.c:666 msgid "Old-Egyptic New Year" msgstr "Aħo Nuevo del Egipcio Antiguo" #: src/hd-data.c:667 msgid "Orthodox New Year's Day" msgstr "D­a de Aħo Nuevo Ortodoxo" #: src/hd-data.c:668 msgid "Our Lady Aparecida Day" msgstr "D­a de Nuestra Seħora Aparecida" #: src/hd-data.c:669 msgid "Palm Sunday" msgstr "Domingo de Ramos" #: src/hd-data.c:670 msgid "Parent's Day" msgstr "D­a de los Padres" #: src/hd-data.c:671 msgid "Passion Sunday" msgstr "Domingo de Pasi³n" #: src/hd-data.c:672 msgid "Peace Festival" msgstr "Festival de la Paz" #: src/hd-data.c:673 msgid "Peach Festival" msgstr "Festival del Durazno" #: src/hd-data.c:674 msgid "Whitsunday/Pentecost" msgstr "Pentecostİs" #: src/hd-data.c:675 msgid "Noruz/Persian New Year's Day" msgstr "Noruz/D­a de Aħo Nuevo Persa" #: src/hd-data.c:676 msgid "Prayer Day" msgstr "D­a de Oraci³n" #: src/hd-data.c:677 msgid "Presidential Inauguration" msgstr "Inauguraci³n Presidencial" #: src/hd-data.c:678 msgid "Presidents' Day" msgstr "D­a de los Presidentes" #: src/hd-data.c:679 msgid "Presidents' Inform" msgstr "Informe de los Presidentes" #: src/hd-data.c:680 msgid "President Lincoln's Birthday" msgstr "Natalicio del Presidente Lincoln" #: src/hd-data.c:681 msgid "Princess' Day" msgstr "D­a de la Princesa" #: src/hd-data.c:682 msgid "Quinquagesima Sunday" msgstr "Domingo Quincuagİsimo" #: src/hd-data.c:683 msgid "Reformation Day" msgstr "D­a de la Reforma" #: src/hd-data.c:684 msgid "Remembrance/Memorial Day" msgstr "D­a Memorial" #: src/hd-data.c:685 msgid "Republic Day" msgstr "D­a de la Repşblica" #: src/hd-data.c:686 msgid "Respect for the Aged Day" msgstr "D­a de Respeto para los Ancianos" # D­a de la Reforma Protestante. No se si aħadir lo de `Protestante', # ya que por estos lares (Latinoamİrica y Espaħa) hay abundancia de # cat³licos. ipg # # Si no fuera por el comentario anterior, jamĦs se me habria ocurrido a # que reforma se hac­a referencia. - Jano # #: src/hd-data.c:687 msgid "Revolution Day" msgstr "D­a de la Reforma" #: src/hd-data.c:688 msgid "Rio de Janeiro Anniversary" msgstr "Aniversario de R­o de Janeiro" #: src/hd-data.c:689 msgid "Rogation Sunday" msgstr "Domingo de Rogaci³n" #: src/hd-data.c:690 msgid "Sao Paulo Anniversary" msgstr "Aniversario de Sao Paulo" #: src/hd-data.c:691 msgid "Sapporo Snow Festival" msgstr "Festival de la Nieve de Sapporo" #: src/hd-data.c:692 msgid "Season Change/Bean-Festival" msgstr "Cambio de Temporada/Festival del Frijol" # Encontrİ una explicaci³n bastante buena en # http://www.sspxasia.com/Documents/The_Church_Year/Septuagesima-Sunday.htm # - cfuga #: src/hd-data.c:693 msgid "Septuagesima Sunday" msgstr "Domingo Septuagİsimo" # FIXME - Consultar con alguien de la Iglesia Ortodoxa para su correcta # traducci³n. - cfuga #: src/hd-data.c:694 msgid "Seven Sleepers Day" msgstr "D­a de los Siete Durmientes" #: src/hd-data.c:695 msgid "Sexagesima Sunday" msgstr "Domingo Sexagİsimo" # Estamos igual que antes ..., pero es que tambiİn # resulta que este es el şltimo d­a de carnaval (entierro # de la sardina). Parece que en estos d­as se celebran # procesiones y bodas. FIXME ipg #: src/hd-data.c:696 msgid "Shrove Tuesday/Mardi Gras" msgstr "D­a del Entierro de la Sardina/Mardi Gras" #: src/hd-data.c:697 msgid "Solstice Day" msgstr "D­a de Solsticio" #: src/hd-data.c:698 msgid "Soot-Sweeping Day" msgstr "D­a de la Limpieza de Holl­n" #: src/hd-data.c:699 msgid "Spring Festival" msgstr "Festival de Primavera" #: src/hd-data.c:700 msgid "Start of common month" msgstr "Inicio del mes comşn" #: src/hd-data.c:701 msgid "Start of leap month" msgstr "Inicio del mes bisiesto" #: src/hd-data.c:702 msgid "Star Festival" msgstr "Festival de las Estrellas" #: src/hd-data.c:703 msgid "St Andrew's Day" msgstr "D­a de San Andrİs" #: src/hd-data.c:704 msgid "St Bartholomew Day" msgstr "D­a de San Bartolomİ" #: src/hd-data.c:705 msgid "St Berchtold's Day" msgstr "D­a de San Berchtold" #: src/hd-data.c:706 msgid "St David's Day" msgstr "D­a de San David" #: src/hd-data.c:707 msgid "St Edward's Day" msgstr "D­a de San Eduardo" #: src/hd-data.c:708 msgid "St George's Day" msgstr "D­a de San Jorge" #: src/hd-data.c:709 msgid "St James' Day" msgstr "D­a de San Jaime" #: src/hd-data.c:710 msgid "St Joseph's Day" msgstr "D­a de San Josİ" #: src/hd-data.c:711 msgid "St Laurentius Day" msgstr "D­a de San Laurencio" #: src/hd-data.c:712 msgid "St Nicholas' Day" msgstr "D­a de San NicolĦs" #: src/hd-data.c:713 msgid "St Nicholas' Eve" msgstr "V­spera de San NicolĦs" #: src/hd-data.c:714 msgid "St Patrick's Day" msgstr "D­a de San Patricio" #: src/hd-data.c:715 msgid "St Peter and St Paul" msgstr "San Pedro y San Pablo" #: src/hd-data.c:716 msgid "St Stephen's Day" msgstr "D­a de San Estİfano" #: src/hd-data.c:717 msgid "St Valentine's Day" msgstr "D­a de San Valent­n" #: src/hd-data.c:718 msgid "Sunday of the Dead" msgstr "Domingo de Muertos" # No me lo creo ni yo ÂĦAYUDA! -vmv # En algunos lugares, la llegada de las golondrinas se asocia con el cambio # de estaciones. As­ que no es raro que exista un d­a de la golondrina. - cfuga #: src/hd-data.c:719 msgid "Swallow Day" msgstr "D­a de la Golondrina" #: src/hd-data.c:720 msgid "Sweetest Day" msgstr "El D­a mĦs Dulce" #: src/hd-data.c:721 msgid "Sylvester/New Year's Eve" msgstr "San Silvestre/V­spera del Aħo Nuevo" #: src/hd-data.c:722 msgid "Teacher's Day" msgstr "D­a del Profesor" #: src/hd-data.c:723 msgid "Thai New Year's Day" msgstr "D­a de Aħo Nuevo Thai" #: src/hd-data.c:724 msgid "Thanksgiving Day" msgstr "D­a de Acci³n de Gracias" #: src/hd-data.c:725 msgid "The King's Birthday" msgstr "Natalicio del Rey" #: src/hd-data.c:726 msgid "The Queen's Birthday" msgstr "Natalicio de la Reina" #: src/hd-data.c:727 msgid "Epiphany/Three King's Day" msgstr "Epifan­a del Seħor/D­a de Reyes" #: src/hd-data.c:728 msgid "Tiradentes Day" msgstr "D­a de Tiradentes" #: src/hd-data.c:729 msgid "Tomb-Sweeping Day" msgstr "D­a de Limpieza de Tumbas" #: src/hd-data.c:730 msgid "Transfiguration Day" msgstr "D­a de la Transfiguraci³n" #: src/hd-data.c:731 msgid "Tynwald Day" msgstr "D­a de Tynwald" #: src/hd-data.c:732 msgid "Valborg's Eve" msgstr "V­spera de Valborg" #: src/hd-data.c:733 msgid "Venice Carnival" msgstr "Carnaval de Venecia" #: src/hd-data.c:734 msgid "Veteran's Day" msgstr "D­a de los Veteranos" #: src/hd-data.c:735 msgid "Victoria Day" msgstr "D­a de la Reina Victoria" #: src/hd-data.c:736 msgid "Victory Day" msgstr "D­a de la Victoria" # Esto se supone que es el Lunes de despuİs de Pentecostİs, pero # en Espaħa (al menos) parece ser que no se celebra. Aşn as­, # `Lunes de Pentecostİs' creo que queda lo suficientemente bien. # ipg #: src/hd-data.c:737 msgid "Whit Monday" msgstr "Lunes de Pentecostİs" #: src/hd-data.c:738 msgid "Women's Day" msgstr "D­a de la Mujer" # `Shrove' es confesarse, si alguien sabe una traducci³n # correcta, que me lo diga :) FIXME ipg # # En Collins 'Shrove Tuesday' = 'martes de carnaval' as­ que yo traduzco # 'd­a del carnaval de las mujeres' venga... despelote... orgias ;) # # Parece que se asocia mĦs a un d­a de arrepentimiento que a uno de carnaval, # segşn http://dictionary.reference.com/search?q=shrove #: src/hd-data.c:739 msgid "Women's Shrove Day" msgstr "Carnaval de las Mujeres" #: src/hd-data.c:740 msgid "World Animal Day" msgstr "D­a Mund­al de los Animales" #: src/hd-data.c:741 msgid "Youth Day" msgstr "D­a de la Juventud" #: src/hd-data.c:747 msgid "Adelaide Cup Day" msgstr "D­a de la Copa Adelaide" #: src/hd-data.c:748 msgid "Admission Day" msgstr "D­a de Admisi³n" #: src/hd-data.c:749 msgid "Alaska Day" msgstr "D­a de Alaska" #: src/hd-data.c:750 msgid "Aleksis Kivi Day" msgstr "D­a de Aleksis Kivi" #: src/hd-data.c:751 msgid "Alice-Springs Show Day" msgstr "D­a de la Feria de Alice Springs" #: src/hd-data.c:752 msgid "All Saints' Eve" msgstr "V­spera de Todos los Santos" #: src/hd-data.c:753 msgid "Americas Day" msgstr "D­a de las Amİricas" #: src/hd-data.c:754 msgid "Angam Day" msgstr "D­a de Angam" #: src/hd-data.c:756 msgid "Anniversary of Amir's Succession" msgstr "Aniversario de la Sucesi³n de Amir" #: src/hd-data.c:757 msgid "Anniversary of Armed Struggle" msgstr "Aniversario de la Lucha Armada" #: src/hd-data.c:758 msgid "Anniversary of Green March" msgstr "Aniversario de la Marcha Verde" #: src/hd-data.c:759 msgid "Antillian Day" msgstr "D­a de las Antillas" #: src/hd-data.c:760 msgid "Arab League Day" msgstr "D­a de la Liga rabe" #: src/hd-data.c:762 msgid "Archbishop Makarios' Memorial Day" msgstr "D­a Memorial del Arzobispo Makarios" #: src/hd-data.c:763 msgid "Archbishop Makarios' Name-Day" msgstr "Santoral del Arzobizpo Makarios" #: src/hd-data.c:764 msgid "Arengo Anniversary" msgstr "Aniversario de Arengo" #: src/hd-data.c:765 msgid "Army Coup Day" msgstr "D­a del Golpe Militar" #: src/hd-data.c:766 msgid "Arrival of the Swiss" msgstr "Llegada de los Suizos" #: src/hd-data.c:767 msgid "Artigas' Birthday" msgstr "Natalicio de Artigas" #: src/hd-data.c:768 msgid "Asuncion Day" msgstr "D­a de la Asunci³n" #: src/hd-data.c:769 msgid "Ataturk Memorial Day" msgstr "D­a Memorial de Ataturk" #: src/hd-data.c:770 msgid "Authority's Power Day" msgstr "D­a del Poder de la Autoridad" #: src/hd-data.c:771 msgid "Ba'ath Revolution Day" msgstr "D­a de la Revoluci³n Ba'ath" #: src/hd-data.c:772 msgid "Baron Bliss Day" msgstr "D­a del Bar³n Bliss" #: src/hd-data.c:773 msgid "Bataan Day" msgstr "D­a de Bataan" #: src/hd-data.c:774 msgid "Battle of Angamos" msgstr "Batalla de Angamos" #: src/hd-data.c:775 msgid "Battle of BoyacĦ" msgstr "Batalla de BoyacĦ" #: src/hd-data.c:776 msgid "Battle of Carabobo" msgstr "Batalla de Carabobo" #: src/hd-data.c:777 msgid "Battle of Iquique" msgstr "Batalla de Iquique" #: src/hd-data.c:778 msgid "Battle of Las Piedras" msgstr "Batalla de Las Piedras" #: src/hd-data.c:779 msgid "Battle of N¤fels" msgstr "Batalla de N¤fels" #: src/hd-data.c:780 msgid "Beginning of Summer" msgstr "Inicio del Verano" #: src/hd-data.c:781 msgid "Belgrade's Day" msgstr "D­a de Belgrado" #: src/hd-data.c:782 msgid "Bennington Battle Day" msgstr "D­a de la Batalla de Bennington" #: src/hd-data.c:783 msgid "Blessing of the Water" msgstr "Bendici³n del Agua" #: src/hd-data.c:784 msgid "Bloomsday" msgstr "Bloomsday" #: src/hd-data.c:785 msgid "Boganda Day" msgstr "D­a de Boganda" #: src/hd-data.c:786 msgid "Bonaire Day" msgstr "D­a de Bonaire" #: src/hd-data.c:787 msgid "Boqueron Battle Day" msgstr "D­a de la Batalla de Boquer³n" #: src/hd-data.c:788 msgid "Botswana Day" msgstr "D­a de Botswana" # FIXME - ÂżAqu­ "bounty" es nombre propio o sustantivo? - cfuga #: src/hd-data.c:789 msgid "Bounty Day" msgstr "D­a del Mot­n" #: src/hd-data.c:790 msgid "Bunker Hill Day" msgstr "D­a de Bunker Hill" # Estoo... Âżcuela? # Tal vez "martirio de Juana de Arco" quede menos expl­cito. sv #: src/hd-data.c:791 msgid "Burning of Jan Hus" msgstr "D­a de la Muerte en la Hoguera de Juana de Arco" #: src/hd-data.c:792 msgid "Canberra Day" msgstr "D­a de Canberra" # Caricom = "Caribbean Community" - cfuga #: src/hd-data.c:793 msgid "Caricom Day" msgstr "D­a de la Caricom" #: src/hd-data.c:794 msgid "Casimir Pulaski's Birthday" msgstr "Natalicio de Casimir Pulaski" #: src/hd-data.c:795 msgid "Cassinga Day" msgstr "D­a de Cassinga" #: src/hd-data.c:796 msgid "Cayenne Festival" msgstr "Festival de Cayenne" #: src/hd-data.c:797 msgid "Cesar Chavez Day" msgstr "D­a de Cİsar ChĦvez" #: src/hd-data.c:798 msgid "Charter Day" msgstr "D­a de la Carta" #: src/hd-data.c:799 msgid "Chiang Kai-shek's Birthday" msgstr "Natalicio de Chiang Kai-shek" #: src/hd-data.c:800 msgid "Children's White Sunday" msgstr "Domingo Blanco de los Niħos" #: src/hd-data.c:801 msgid "Colon Day" msgstr "D­a de Col³n" #: src/hd-data.c:802 msgid "Colorado Day" msgstr "D­a de Colorado" # FIXME - ÂżSe debe dejar "Commonwealth" sin traducci³n? - cfuga #: src/hd-data.c:803 msgid "Commonwealth Day" msgstr "D­a de la Comunidad BritĦnica" #: src/hd-data.c:804 msgid "Compact Day" msgstr "D­a Compacto" #: src/hd-data.c:805 msgid "Confederal Agreement Day" msgstr "D­a del Acuerdo de Confederaci³n" #: src/hd-data.c:806 msgid "Coronation Day" msgstr "D­a de la Coronaci³n" #: src/hd-data.c:807 msgid "Cup Match Day" msgstr "D­a de la Copa Match" # ÂżAlguien de Vanuatu que nos quiera explicar? - cfuga #: src/hd-data.c:808 msgid "Custom Chief's Day" msgstr "D­a del Arreglo del Jefe" #: src/hd-data.c:809 msgid "C. Mapinduzi Day" msgstr "D­a de C. Mapinduzi" #: src/hd-data.c:810 msgid "Darwin Show Day" msgstr "D­a de la Feria de Darwin" #: src/hd-data.c:811 msgid "Day of Goodwill" msgstr "D­a de Buena Voluntad" #: src/hd-data.c:812 msgid "Day of Students Revolt" msgstr "D­a de la Revuelta Estudiantil" #: src/hd-data.c:813 msgid "Day of the Free Laos" msgstr "D­a de Laos Libre" #: src/hd-data.c:814 msgid "Death of H. Christophe" msgstr "Muerte de H. Christophe" #: src/hd-data.c:815 msgid "Death of J. Dessalines" msgstr "Muerte de J. Dessalines" #: src/hd-data.c:816 msgid "Death of President Abdallah" msgstr "Muerte del Presidente Abdallah" #: src/hd-data.c:817 msgid "Death of President Cheikh" msgstr "Muerte del Presidente Cheikh" #: src/hd-data.c:818 msgid "Death of President Soilih" msgstr "Muerte del Presidente Soilih" #: src/hd-data.c:819 msgid "Death of Qaid-i-Azam" msgstr "Muerte de Qaid-i-Azam" #: src/hd-data.c:820 msgid "Death of T. Louverture" msgstr "Muerte de T. Louverture" #: src/hd-data.c:821 msgid "Defenders Day" msgstr "D­a de los Defensores" #: src/hd-data.c:822 msgid "Dia del Padre" msgstr "D­a del Padre" #: src/hd-data.c:823 msgid "Dia de los Maestros" msgstr "D­a de los Maestros" #: src/hd-data.c:824 msgid "Discovery Day" msgstr "D­a del Descubrimiento" #: src/hd-data.c:825 msgid "Downfall of the Dergue" msgstr "Ca­da del Dergue" #: src/hd-data.c:826 msgid "Dry Season Celebration" msgstr "Celebraci³n de la Estaci³n Seca" #: src/hd-data.c:827 msgid "Dr. Sun Yat-sen's Birthday" msgstr "Natalicio del Dr. Sun Yat-sen" #: src/hd-data.c:828 msgid "Duarte's Birthday" msgstr "Natalicio de Duarte" #: src/hd-data.c:829 msgid "Easter Tuesday" msgstr "Martes de Pascua" #: src/hd-data.c:830 msgid "Economic Liberation Day" msgstr "D­a de la Liberaci³n Econ³mica" #: src/hd-data.c:831 msgid "Eight Hours Day" msgstr "D­a de Ocho Horas" #: src/hd-data.c:832 msgid "Elections for National Assembly" msgstr "Elecciones para la Asamblea Nacional" #: src/hd-data.c:833 msgid "Errol Barrow Day" msgstr "D­a de Errol Barrow" #: src/hd-data.c:834 msgid "Evacuation Day" msgstr "D­a de la Evacuaci³n" #: src/hd-data.c:835 msgid "Eve of Epiphany" msgstr "V­spera de Epifan­a" #: src/hd-data.c:836 msgid "Expedition of the 33" msgstr "Expedici³n del 33" #: src/hd-data.c:837 msgid "E. Hostos' Birthday" msgstr "Natalicio de E. Hostos" #: src/hd-data.c:838 msgid "Family Day" msgstr "D­a de la Familia" #: src/hd-data.c:839 msgid "FAO Day" msgstr "D­a de la FAO" #: src/hd-data.c:840 msgid "Farmers' Day" msgstr "D­a de los Granjeros" #: src/hd-data.c:841 msgid "Father Leval Day" msgstr "D­a del Padre Leval" #: src/hd-data.c:842 msgid "Feast of Our Theotokos" msgstr "Fiesta de Nuestro Seħor" #: src/hd-data.c:843 msgid "Fisherman's Day" msgstr "D­a del Pescador" #: src/hd-data.c:844 msgid "Foundation of NPLA Day" msgstr "D­a de la Fundaci³n de NPLA" #: src/hd-data.c:845 msgid "Founding of People's Party" msgstr "Fundaci³n del Partido del Pueblo" #: src/hd-data.c:846 msgid "Garifuna Day" msgstr "D­a de Garifuna" #: src/hd-data.c:848 msgid "General San Martin's Anniversary" msgstr "Aniversario del General San Mart­n" #: src/hd-data.c:849 msgid "Gospel Day" msgstr "D­a del Evangelio" #: src/hd-data.c:850 msgid "Guacanaste Day" msgstr "D­a de Guanacaste" # ÂżTe enteraste Eugenia Aurora? Ayer fuİ el santoral del primo Gustavo Adolfo # - Topacio, cap­tulo 136 #: src/hd-data.c:851 msgid "Gustavus Adolphus' Day" msgstr "D­a de Gustavo Adolfo" #: src/hd-data.c:852 msgid "Heritage Day" msgstr "D­a de la Herencia" #: src/hd-data.c:853 msgid "Heroes Day" msgstr "D­a de los Hİroes" #: src/hd-data.c:854 msgid "Hobart Show Day" msgstr "D­a de la Feria de Hobart" #: src/hd-data.c:855 msgid "Holy Wednesday" msgstr "Miİrcoles Santo" #: src/hd-data.c:856 msgid "Ho Chi Minh's Birthday" msgstr "Natalicio de Ho Chi Minh" #: src/hd-data.c:857 msgid "Human Rights Day" msgstr "D­a de los Derechos Humanos" #: src/hd-data.c:858 msgid "Hurricane Supplication Day" msgstr "D­a de la Sşplica por el HuracĦn" #: src/hd-data.c:859 msgid "Hurricane Thanksgiving Day" msgstr "D­a de Acci³n de Gracias del HuracĦn" #: src/hd-data.c:860 msgid "Independence of Cartagena" msgstr "Independencia de Cartagena" #: src/hd-data.c:861 msgid "Independence of Cuenca" msgstr "Independencia de Cuenca" #: src/hd-data.c:862 msgid "Independence of Guayaquil" msgstr "Independencia de Guayaquil" #: src/hd-data.c:863 msgid "Independence of Quito" msgstr "Independencia de Quito" #: src/hd-data.c:864 msgid "Indian Arrival Day" msgstr "D­a de la llegada de los Indios" #: src/hd-data.c:865 msgid "Internal Autonomy Day" msgstr "D­a de la Autonom­a Interna" #: src/hd-data.c:866 msgid "Jefferson Davis' Birthday" msgstr "Natalicio de Jefferson Davis" #: src/hd-data.c:867 msgid "June Holiday" msgstr "Fiesta de Junio" #: src/hd-data.c:868 msgid "J. Barbosa's Birthday" msgstr "Natalicio de J. Barbosa" #: src/hd-data.c:869 msgid "J. Chilembwe Day" msgstr "D­a de J. Chilembwe" #: src/hd-data.c:870 msgid "J. Diego's Birthday" msgstr "Natalicio de J. Diego" #: src/hd-data.c:871 msgid "J. Robert's Birthday" msgstr "Natalicio de J. Robert" #: src/hd-data.c:872 msgid "Kamarampaka Day" msgstr "D­a de Kamarampaka" #: src/hd-data.c:873 msgid "Kartini Day" msgstr "D­a de Kartini" #: src/hd-data.c:874 msgid "Catherine Show Day" msgstr "D­a de la Feria Catherine" #: src/hd-data.c:875 msgid "Kiev Day" msgstr "D­a de Kiev" #: src/hd-data.c:876 msgid "Kim Il-Sung's Birthday" msgstr "Natalicio de Kim Il-Sung" #: src/hd-data.c:877 msgid "Kim Jong-Il's Birthday" msgstr "Natalicio de Kim Jong-Il" #: src/hd-data.c:878 msgid "King Kamehameha Day" msgstr "D­a del Rey Kamehameha" #: src/hd-data.c:879 msgid "King Rama I Memorial Day/Chakri" msgstr "D­a Memorial del Rey Rama I/Chakri" #: src/hd-data.c:880 msgid "King Rama V Memorial Day" msgstr "D­a Memorial del Rey Rama V" #: src/hd-data.c:881 msgid "Knabenschiessen" msgstr "Knabenschiessen" #: src/hd-data.c:882 msgid "Konstantin and Methodius" msgstr "Constantino y Mİtodo" # Perd³n por mi incultura Âżcual es la Naci³n Lapona? ÂżLaponia? # Norte de la pen­nsula escandinava. - cfuga #: src/hd-data.c:883 msgid "Lapp National Holiday" msgstr "Vacaciones de la Naci³n Lapona" #: src/hd-data.c:884 msgid "Launceston Cup Day" msgstr "D­a de la Copa Launceston" #: src/hd-data.c:885 msgid "Liberty Day" msgstr "D­a de la Libertad" #: src/hd-data.c:886 msgid "Loss of Muslim Nation" msgstr "Pİrdida de la Naci³n Musulmana" # FIXME - Buscar una traducci³n correcta para "kermesse" - cfuga #: src/hd-data.c:887 msgid "Luxembourg City Kermis" msgstr "Kermİs de la Ciudad de Luxemburgo" #: src/hd-data.c:888 msgid "Lyndon B. Johnson Day" msgstr "D­a de Lyndon B. Johnson" #: src/hd-data.c:889 msgid "L. Rivera's Birthday" msgstr "Natalicio de L. Rivera" #: src/hd-data.c:890 msgid "Madaraka Day" msgstr "D­a de Madaraka" #: src/hd-data.c:891 msgid "Mahatma Gandhi's Birthday" msgstr "Natalicio de Mahatma Gandhi" #: src/hd-data.c:892 msgid "Malvinas Day" msgstr "D­a de las Malvinas" #: src/hd-data.c:893 msgid "Manila Day" msgstr "D­a de Manila" #: src/hd-data.c:894 msgid "Maputo City Day" msgstr "D­a de la Ciudad de Maputo" #: src/hd-data.c:895 msgid "Marien Ngouabi Day" msgstr "D­a de Marien Ngouabi" #: src/hd-data.c:896 msgid "Maryland Day" msgstr "D­a de Maryland" #: src/hd-data.c:897 msgid "Melbourne Cup Day" msgstr "D­a de la Copa Melbourne" #: src/hd-data.c:898 msgid "Merchant Day" msgstr "D­a del Comerciante" #: src/hd-data.c:899 msgid "St John's/Midsummers Eve" msgstr "San Juan/V­spera del Solsticio de Verano" #: src/hd-data.c:900 msgid "Missionary Day" msgstr "D­a del Misionerio" #: src/hd-data.c:901 msgid "Mi-CarŞme Day" msgstr "D­a de Mi-CarŞme" #: src/hd-data.c:902 msgid "Morazan Day" msgstr "D­a de Morazan" #: src/hd-data.c:903 msgid "Mosheshoe's Day" msgstr "D­a de Mosheshoe" #: src/hd-data.c:904 msgid "Motherhood and Beauty Day" msgstr "D­a de la Maternidad y la Belleza" #: src/hd-data.c:905 msgid "Naming Day" msgstr "D­a del Nombre" # ayyyyyy, que doloooor! # #: src/hd-data.c:906 msgid "National Bun Day" msgstr "D­a del Dolor Nacional" #: src/hd-data.c:907 msgid "National Heroes Day" msgstr "D­a Nacional de los Hİroes" #: src/hd-data.c:908 msgid "National Redemption Day" msgstr "D­a de la Redenci³n Nacional" #: src/hd-data.c:909 msgid "National Resistance Day" msgstr "D­a de la Resistencia Nacional" #: src/hd-data.c:910 msgid "National Revival Day" msgstr "D­a del Revivir Nacional" #: src/hd-data.c:911 msgid "National Unity Day" msgstr "D­a de la Unidad Nacional" #: src/hd-data.c:912 msgid "Ndadaye Day" msgstr "D­a de Ndadaye" #: src/hd-data.c:913 msgid "Neutrality Day" msgstr "D­a de la Neutralidad" #: src/hd-data.c:914 msgid "Nevada Day" msgstr "D­a de Nevada" #: src/hd-data.c:915 msgid "New Regime Anniversary" msgstr "Aniversario del Nuevo Rİgimen" #: src/hd-data.c:916 msgid "Nobel Day" msgstr "D­a del Nobel" #: src/hd-data.c:917 msgid "Noi Day" msgstr "D­a de Noi" #: src/hd-data.c:918 msgid "OAU Day" msgstr "D­a de la OAU" #: src/hd-data.c:919 msgid "October Holiday" msgstr "Fiesta de Octubre" #: src/hd-data.c:920 msgid "Oil Industry Day" msgstr "D­a de la Industria Petrolera" #: src/hd-data.c:921 msgid "Our Lady of Altagracia Day" msgstr "D­a de Nuestra Seħora de Altagracia" #: src/hd-data.c:922 msgid "Our Lady of Camarin Day" msgstr "D­a de Nuestra Seħora de Camar­n" #: src/hd-data.c:923 msgid "Our Lady of Las Mercedes Day" msgstr "D­a de Nuestra Seħora de Las Mercedes" #: src/hd-data.c:924 msgid "Our Lady of Los Angeles Day" msgstr "D­a de Nuestra Seħora de Los ngeles" #: src/hd-data.c:925 msgid "Our Lady of Seven Sorrows" msgstr "Nuestra Seħora de los Dolores" #: src/hd-data.c:926 msgid "Our Lady of Victories Day" msgstr "D­a de Nuestra Seħora de las Victorias" #: src/hd-data.c:927 msgid "Panama City Day" msgstr "D­a de la Ciudad de PanamĦ" #: src/hd-data.c:928 msgid "Panamerica Day" msgstr "D­a de Panamİrica" #: src/hd-data.c:929 msgid "Paris Peace Agreement Day" msgstr "D­a del Acuerdo de Paz de Par­s" #: src/hd-data.c:930 msgid "Patriot's Day" msgstr "D­a del Patriota" #: src/hd-data.c:931 msgid "People's Uprising Day" msgstr "D­a de la Sublevaci³n del Pueblo" #: src/hd-data.c:932 msgid "People Power Day" msgstr "D­a del Poder de la Gente" #: src/hd-data.c:933 msgid "Philippine-American Friendship" msgstr "Amistad Filipino-Americana" #: src/hd-data.c:934 msgid "Pichincha Day" msgstr "D­a de Pichincha" #: src/hd-data.c:935 msgid "Picnic Day" msgstr "D­a del Almuerzo" #: src/hd-data.c:936 msgid "Pioneer Day" msgstr "D­a del Pionero" #: src/hd-data.c:937 msgid "Poya Day" msgstr "D­a de Poya" #: src/hd-data.c:938 msgid "Prince Kalanianaole Day" msgstr "D­a del Pr­ncipe Kalanianaole" #: src/hd-data.c:939 msgid "Prince of Wales' Birthday" msgstr "Natalicio del Pr­ncipe de Gales" #: src/hd-data.c:940 msgid "Proclamation Day" msgstr "D­a de la Proclamaci³n" #: src/hd-data.c:941 msgid "Qaid-i-Azam's Birthday" msgstr "Natalicio de Qaid-i-Azam" #: src/hd-data.c:942 msgid "Ratu Sukuma Day" msgstr "D­a de Ratu Sukuma" #: src/hd-data.c:943 msgid "Recreation Day" msgstr "D­a de la Recreaci³n" #: src/hd-data.c:944 msgid "Referendum Day" msgstr "D­a del Referİndum" #: src/hd-data.c:945 msgid "Regatta Day" msgstr "D­a de la Regata" #: src/hd-data.c:946 msgid "Regency Exchange" msgstr "Cambio de Regencia" #: src/hd-data.c:947 msgid "Restoration Day" msgstr "D­a de la Restauraci³n" #: src/hd-data.c:948 msgid "Return Day" msgstr "D­a del Retorno" #: src/hd-data.c:949 msgid "Reunification Day" msgstr "D­a de la Reunificaci³n" #: src/hd-data.c:950 msgid "Rizal Day" msgstr "D­a de Rizal" #: src/hd-data.c:951 msgid "Rwagasore Day" msgstr "D­a de Rwagasore" #: src/hd-data.c:952 msgid "Saba Day" msgstr "D­a de Saba" #: src/hd-data.c:953 msgid "San Jacinto Day" msgstr "D­a de San Jacinto" #: src/hd-data.c:954 msgid "San Josİ Day" msgstr "D­a de San Josİ" #: src/hd-data.c:955 msgid "SAR Establishment Day" msgstr "D­a de Establecimiento del SAR" #: src/hd-data.c:956 msgid "School Holiday" msgstr "Descanso escolar" #: src/hd-data.c:957 msgid "Sechsel¤uten" msgstr "Sechsel¤uten" #: src/hd-data.c:958 msgid "Separation Day" msgstr "D­a de la Separaci³n" #: src/hd-data.c:959 msgid "Seretse Khama Day" msgstr "D­a de Seretse Khama" #: src/hd-data.c:960 msgid "Settlers Day" msgstr "D­a de los Colonos" #: src/hd-data.c:961 msgid "Seward's Day" msgstr "D­a de Seward" #: src/hd-data.c:962 msgid "Shaheed Day" msgstr "D­a de Shaheed" #: src/hd-data.c:963 msgid "Sheep Festival" msgstr "Festival de las Ovejas" #: src/hd-data.c:964 msgid "Sheikh Zayed's Ascension Day" msgstr "D­a de la Ascensi³n de Sheikh Zayed" #: src/hd-data.c:965 msgid "Simon Bolivar's Day" msgstr "D­a de Sim³n Bol­var" #: src/hd-data.c:966 msgid "Sinai-Liberation Day" msgstr "D­a de la Liberaci³n del Sina­" #: src/hd-data.c:967 msgid "Slave-Liberation Day" msgstr "D­a de la Liberaci³n de Esclavos" #: src/hd-data.c:968 msgid "Sniff the Breeze Day" msgstr "D­a de Oler la Brisa" #: src/hd-data.c:969 msgid "Solidarity Day" msgstr "D­a de Solidaridad" #: src/hd-data.c:970 msgid "Somers Day" msgstr "D­a de Somers" #: src/hd-data.c:971 msgid "Statia-American Day" msgstr "D­a de Statia Americana" #: src/hd-data.c:972 msgid "Student's Day" msgstr "D­a del Estudiante" #: src/hd-data.c:973 msgid "St Agata Day" msgstr "D­a de Santa gata" # El d­a del canuto, atenci³n porreros y porreras del mundo, # es vuestro santo !!! # # eoeoeoeoeoeeeeeeeee! # #: src/hd-data.c:974 msgid "St Canute's Day" msgstr "D­a de San Canuto" #: src/hd-data.c:975 msgid "St Cedilia's Day" msgstr "D­a de Santa Cedilia" #: src/hd-data.c:976 msgid "St Charles' Day" msgstr "D­a de San Carlos" #: src/hd-data.c:977 msgid "St Demetrius' Day" msgstr "D­a de San Demetrio" #: src/hd-data.c:978 msgid "St Dİvote Day" msgstr "D­a de Santa Devota" #: src/hd-data.c:979 msgid "St Eliah's Day" msgstr "D­a de San El­as" #: src/hd-data.c:980 msgid "St Jean Baptiste Day" msgstr "D­a de San Juan Bautista" #: src/hd-data.c:981 msgid "St Lucia's Day" msgstr "D­a de Santa Luc­a" #: src/hd-data.c:982 msgid "St Marguerite's Day" msgstr "D­a de Santa Margarita" #: src/hd-data.c:983 msgid "St Maroon's Day" msgstr "D­a de San Maroon" #: src/hd-data.c:984 msgid "St Michael's Day" msgstr "D­a de San Miguel" #: src/hd-data.c:985 msgid "St Olav's Day" msgstr "D­a de San Olav" #: src/hd-data.c:986 msgid "St Olav's Eve" msgstr "V­spera de San Olav" #: src/hd-data.c:987 msgid "St Paul's Shipswreck" msgstr "Naufragio de San Pablo" #: src/hd-data.c:988 msgid "St Rose of Lima" msgstr "Santa Rosa de Lima" #: src/hd-data.c:989 msgid "St Ursula's Day" msgstr "D­a de Santa šrsula" #: src/hd-data.c:990 msgid "St Vincent de Paul's Day" msgstr "D­a de San Vicente de Paul" #: src/hd-data.c:991 msgid "Suez Victory Day" msgstr "D­a de la Victoria de Suez" #: src/hd-data.c:992 msgid "Sultan Qaboos' Birthday" msgstr "Natalicio del SultĦn Qaboos" #: src/hd-data.c:993 msgid "Svetitskhovloba" msgstr "Svetitskhovloba" #: src/hd-data.c:994 msgid "Sweden Day" msgstr "D­a de Suecia" #: src/hd-data.c:995 msgid "S. Doe's Birthday" msgstr "Natalicio de S. Doe" #: src/hd-data.c:996 msgid "Tennant-Creek Show Day" msgstr "D­a de la Feria de Tennant-Creek" #: src/hd-data.c:997 msgid "Territory Day" msgstr "D­a del Territorio" #: src/hd-data.c:998 msgid "The Crown Princesse's Birthday" msgstr "Natalicio de la Princesa de la Corona" #: src/hd-data.c:999 msgid "The Crown Princesse's Name-Day" msgstr "Santoral de la Princesa de la Corona" #: src/hd-data.c:1000 msgid "The Crown Prince's Birthday" msgstr "Natalicio del Pr­ncipe de la Corona" #: src/hd-data.c:1001 msgid "The King's Name-Day" msgstr "Santoral del Rey" #: src/hd-data.c:1002 msgid "The Queen's Name-Day" msgstr "Santoral de la Reina" #: src/hd-data.c:1003 msgid "Topou I Day" msgstr "D­a de Topou I" #: src/hd-data.c:1004 msgid "Town Meeting Day" msgstr "D­a de la Junta de la Ciudad" #: src/hd-data.c:1005 msgid "Traditional Day" msgstr "D­a Tradicional" #: src/hd-data.c:1006 msgid "Transfer Day" msgstr "D­a de Transferencia" #: src/hd-data.c:1007 msgid "Truman Day" msgstr "D­a de Truman" #: src/hd-data.c:1008 msgid "Union Day" msgstr "D­a de la Uni³n" #: src/hd-data.c:1009 msgid "Union with Sweden dissolved" msgstr "Disoluci³n de la uni³n con Suecia" #: src/hd-data.c:1010 msgid "United Nations Day" msgstr "D­a de Naciones Unidas" # ÂżAlguien de Yemen que nos aclare la celebraci³n? - cfuga #: src/hd-data.c:1011 msgid "Unity Factory Day" msgstr "D­a de la FĦbrica Unidad" #: src/hd-data.c:1012 msgid "Victor-Schoelcher Day" msgstr "D­a de V­ctor-Schoelcher" #: src/hd-data.c:1013 msgid "Vidovdan" msgstr "San Vito" #: src/hd-data.c:1014 msgid "West Virginia Day" msgstr "D­a de Virginia del Oeste" # pero Âżque diablos es Whitsun? # Whitsun es Pentecostİs. cfuga #: src/hd-data.c:1015 msgid "Whitsun Eve" msgstr "V­spera de Pentecostİs" #: src/hd-data.c:1016 msgid "W. Tubman's Birthday" msgstr "Natalicio de W. Tubman" #: src/hd-data.c:1017 msgid "Yap Day" msgstr "D­a Yap" #: src/hd-data.c:1018 msgid "Day of Czech Statehood" msgstr "D­a del Estado Checo" #: src/hd-data.c:1083 msgid "Zi/Rat" msgstr "Zi/Rata" #: src/hd-data.c:1083 msgid "Chou/Ox" msgstr "Chou/Buey" #: src/hd-data.c:1084 msgid "Yin/Tiger" msgstr "Yin/Tigre" #: src/hd-data.c:1084 msgid "Mao/Rabbit" msgstr "Mao/Conejo" #: src/hd-data.c:1085 msgid "Chen/Dragon" msgstr "Chen/Drag³n" #: src/hd-data.c:1085 msgid "Si/Snake" msgstr "Si/Serpiente" #: src/hd-data.c:1086 msgid "Wu/Horse" msgstr "Wu/Caballo" #: src/hd-data.c:1086 msgid "Wei/Sheep" msgstr "Wei/Oveja" #: src/hd-data.c:1087 msgid "Shen/Monkey" msgstr "Shen/Mono" #: src/hd-data.c:1087 msgid "You/Rooster" msgstr "You/Gallo" #: src/hd-data.c:1088 msgid "Xu/Dog" msgstr "Xu/Perro" #: src/hd-data.c:1088 msgid "Hai/Pig" msgstr "Hai/Cerdo" #: src/hd-data.c:1287 msgid "Ast" msgstr "Ast" #: src/hd-data.c:1400 src/hd-data.c:1483 msgid "Bah" msgstr "Bah" #: src/hd-data.c:1550 msgid "Cel" msgstr "Cel" #: src/hd-data.c:1692 src/hd-data.c:2225 msgid "Chi" msgstr "Chi" #: src/hd-data.c:1806 src/hd-data.c:2325 src/hd-data.c:3842 #, c-format msgid "Cannot calculate lunisolar calendar for %d correctly" msgstr "No se puede calcular correctamente el calendario lunisolar para %d" #: src/hd-data.c:2227 src/hd-data.c:3730 msgid "Jap" msgstr "Jap" #: src/hd-data.c:2423 msgid "Chr" msgstr "Cri" #: src/hd-data.c:2657 src/hd-data.c:4174 msgid "FRR" msgstr "RFR" #: src/hd-data.c:2778 src/hd-data.c:2960 msgid "Heb" msgstr "Heb" #: src/hd-data.c:3190 src/hd-data.c:3619 msgid "Isl" msgstr "Isl" #: src/hd-data.c:4244 src/hd-data.c:4339 msgid "AMO" msgstr "AMA" #: src/hd-data.c:4265 src/hd-data.c:4337 msgid "EGO" msgstr "EGA" #: src/hd-data.c:4447 msgid "OxN" msgstr "OxN" #: src/hd-data.c:4449 msgid "OxO" msgstr "OxA" #: src/hd-data.c:4650 src/hd-data.c:4779 msgid "Per" msgstr "Per" #: src/hd-data.c:4847 msgid "Zod" msgstr "Zod" #: src/hd-use.c:929 msgid " day" msgstr " d­a" # ¿¿¿pq el original dice lista eterna??? - jano # # En el contexto de fechas, no es eterna, sino perpetua. Son fechas de # fiestas que nunca cambian. - cfuga # #: src/hd-use.c:1974 src/hd-use.c:1979 src/hd-use.c:1983 src/hd-use.c:1990 #: src/hd-use.c:1994 src/hd-use.c:2090 src/hd-use.c:2274 msgid "Eternal holiday list" msgstr "Lista perpetua de d­as festivos" #: src/hd-use.c:1978 #, c-format msgid "%s:%*sThe year %0*d is A leap year" msgstr "%s:%*sEl aħo %0*d es bisiesto" #: src/hd-use.c:1982 #, c-format msgid "%s:%*sThe year %0*d is NO leap year" msgstr "%s:%*sEl aħo %0*d NO es bisiesto" #: src/hd-use.c:1989 #, c-format msgid "%s:%*sThe year %d is A leap year" msgstr "%s:%*sEl aħo %d es bisiesto" #: src/hd-use.c:1993 #, c-format msgid "%s:%*sThe year %d is NO leap year" msgstr "%s:%*sEl aħo %d NO es bisiesto" #: src/hd-use.c:2243 #, c-format msgid " = %+4d day" msgstr " = %+4d d­a" #: src/hd-use.c:2245 #, c-format msgid " = %+4d days" msgstr " = %+4d d­as" #: src/hd-use.c:2272 #, c-format msgid "%s%s contains %d maximum entries now!%s" msgstr "ÂĦ%s%s contiene un mĦximo de %d entradas!%s" #: src/help.c:65 #, c-format msgid "Compiled with %s%s for %s%s%s%s" msgstr "Compilado con %s%s para %s%s%s%s" #: src/help.c:75 msgid "# Day number (must be defined)" msgstr "# Nşmero de d­a (se debe definir)" #: src/help.c:76 msgid "# Year number (must be defined)" msgstr "# Nşmero de aħo (se debe definir)" #: src/help.c:77 msgid "# Weekday name (may be defined)" msgstr "# Nombre del d­a de la semana (se debe definir)" #: src/help.c:78 msgid "Month group (exactly one member must be defined):" msgstr "Grupo de meses (debe definirse solo un miembro):" #: src/help.c:79 msgid "# Month number" msgstr "# Nşmero de mes" #: src/help.c:80 msgid "# Month name" msgstr "# Nombre del mes" #: src/help.c:81 msgid "Highlighting group (all members must be defined):" msgstr "Grupo resaltado (deben definirse todos sus miembros):" #: src/help.c:82 msgid "Start of highlighting sequence/marking character" msgstr "Inicio de la secuencia resaltada/carĦcter de marcado" #: src/help.c:84 msgid "End of highlighting sequence/marking character" msgstr "Fin de la secuencia resaltada/carĦcter de marcado" #: src/help.c:86 msgid "Character replacement:" msgstr "Substituci³n de caracteres:" #: src/help.c:87 #, c-format msgid "Space/blank ('%c') character" msgstr "CarĦcter de espacio en blanco ('%c')" #: src/help.c:88 #, c-format msgid "Underscore ('%c') character" msgstr "CarĦcter de subrayado ('%c')" # Nota: No cambies el msgid que aparecen fuzzys innecesarios. sv #: src/help.c:89 #, c-format msgid "Percent ('%c') character" msgstr "CarĦcter de porcentaje ('%c')" #: src/help.c:90 #, c-format msgid "Backslash ('%c') character" msgstr "CarĦcter de diagonal invertida ('%c')" #: src/help.c:91 msgid "All format elements marked by # may optionally" msgstr "Todos los elementos de formato marcados con #" #: src/help.c:92 msgid "contain a format instruction, which template is like:" msgstr "pueden contener una instrucci³n de formato, de la forma:" #: src/help.c:93 msgid "[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]" msgstr "[ALINEACI“N [SIGNO] [CERO] ANCHURA [ESTILO] [SUFIJO] FORMATO]" #: src/help.c:94 msgid "ALIGNMENT group (exactly one member must be defined):" msgstr "Grupo de ALINEACI“N (debe definirse s³lo un miembro):" #: src/help.c:95 msgid "Field contents placed at the left margin using width WIDTH" msgstr "" "El contenido del campo se coloca al margen izquierdo utilizando la anchura " "ANCHURA" #: src/help.c:97 msgid "Field contents placed in centered manner using width WIDTH" msgstr "" "El contenido del campo se coloca al centro utilizando la anchura ANCHURA" #: src/help.c:99 msgid "Field contents placed at the right margin using width WIDTH" msgstr "" "El contenido del campo se coloca a la derecha utilizando la anchura ANCHURA" #: src/help.c:101 msgid "SIGN (may be defined):" msgstr "SIGNO (puede estar definido):" #: src/help.c:102 msgid "Numerical value is provided with leading sign" msgstr "Se proporciona un valor numİrico con un signo precedente" #: src/help.c:103 msgid "ZERO (may be defined):" msgstr "CERO (puede estar definido):" #: src/help.c:104 msgid "Numerical value is filled with leading zero(es)" msgstr "El valor numİrico se rellena con ceros delante" #: src/help.c:105 msgid "WIDTH (must be defined):" msgstr "ANCHURA (debe estar definida):" #: src/help.c:106 #, c-format msgid "Field has the width N (%d...%d)" msgstr "El campo tiene la anchura N (%d...%d)" #: src/help.c:107 msgid "STYLE group (exactly one member may be defined):" msgstr "Grupo de ESTILO (debe definirse s³lo un miembro):" #: src/help.c:108 msgid "Field contents is converted to upper-case letters" msgstr "Los contenidos de los campos se convierten a letras mayşsculas" #: src/help.c:109 msgid "Field contents is converted to lower-case letters" msgstr "Los contenidos de los campos se convierten a letras minşsculas" #: src/help.c:110 msgid "Field contents is converted to capitalized words" msgstr "" "Los contenidos de los campos se convierten a letras iniciales mayşsculas" #: src/help.c:111 msgid "SUFFIX (may be defined):" msgstr "SUFIJO (puede estar definido):" #: src/help.c:112 msgid "Numerical value is provided with an ordinal number suffix" msgstr "Se provee un valur numİrico con un sufijo de nşmero ordinal" #: src/help.c:114 msgid "FORMAT group (exactly one member must be defined):" msgstr "Grupo de FORMATO (debe definirse s³lo un miembro):" #: src/help.c:115 msgid "Field contents is not cut after position WIDTH" msgstr "El contenido del campo no se corta despuİs de la posici³n ANCHURA" #: src/help.c:116 msgid "Field contents is cut after position WIDTH" msgstr "El contenido del campo se corta despuİs de la posici³n ANCHURA" # antes pon­a "Lista constante de d­as festivos" igual es mĦs literal, # pero "fiestas oficiales" se entiende mejor - Jano # #: src/help.c:130 msgid "legal holidays" msgstr "fiestas oficiales" # holidays=vacaciones/fiestas viendo la linea anterior, Âżno se referirĦ a # fiestas, en lugar de vacaciones? - Jano #: src/help.c:131 msgid "holidays" msgstr "fiestas" # Te hab­as comido las mayusculas! - Jano #: src/help.c:132 msgid "Mondays" msgstr "Lunes" #: src/help.c:133 msgid "Tuesdays" msgstr "Martes" #: src/help.c:134 msgid "Wednesdays" msgstr "Miİrcoles" #: src/help.c:135 msgid "Thursdays" msgstr "Jueves" #: src/help.c:136 msgid "Fridays" msgstr "Viernes" #: src/help.c:137 msgid "Saturdays" msgstr "SĦbados" #: src/help.c:138 msgid "Sundays" msgstr "Domingos" #: src/help.c:139 msgid "Mondays...Thursdays" msgstr "Lunes...Jueves" #: src/help.c:140 msgid "Mondays...Fridays" msgstr "Lunes...Viernes" #: src/help.c:170 #, c-format msgid "%s: Use `%s %s' with one of these arguments" msgstr "%s: Utilice `%s %s' con uno de estos parĦmetros" #: src/help.c:243 msgid "OPTION" msgstr "OPCI“N" #: src/help.c:256 msgid " Display help text and quit program" msgstr " Muestra un mensaje de ayuda y finaliza" #: src/help.c:273 msgid " Display extended help text and quit program" msgstr " Muestra informaci³n de ayuda y finaliza" #: src/help.c:291 msgid " Display software license and quit program" msgstr " Muestra la licencia del programa y finaliza" #: src/help.c:302 msgid " Display version information and quit program" msgstr " Muestra informaci³n de la versi³n y finaliza" #: src/help.c:313 #, c-format msgid " Set EXIT status of program to %d on `%s' etc." msgstr " Cambia el c³digo de SALIDA a %d en `%s' etc." #: src/help.c:326 #, c-format msgid " Create response file for the `%cFILE' option" msgstr " Crea un fichero de resultados para la opci³n `%cFICHERO'" #: src/help.c:330 #, c-format msgid " %-3s = Store arguments of command line in file %s" msgstr "" " %-3s = Almacena los argumentos de la l­nea de ³rdenes en el fichero %s" #: src/help.c:344 #, c-format msgid "" " Create shell script which contains the arguments of command line" msgstr "" " Crea un fichero de ³rdenes con los argumentos de la l­nea de " "³rdenes" #: src/help.c:346 #, c-format msgid " %-3s = File name of the shell script" msgstr " %-3s = Nombre del fichero de ³rdenes" # he aħadido un "de" - jano # #: src/help.c:360 msgid " Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"" msgstr "" " Define la(s) var(s) globales de fecha \"DVAR->a...d|f...s|u...|z\"" #: src/help.c:364 #, c-format msgid " %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters" msgstr " %-3s = Definici³n de \"DVAR%s%s%s\" separada por `%s' carĦcteres" #: src/help.c:369 #, c-format msgid "" " E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4" msgstr "" " p.e. %sv a%s1127%sb%s054 Almacena 27 Nov en `a' y 4 May en `b'" #: src/help.c:381 msgid " Export local date variables from file to file" msgstr " Exporta las variables locales de fecha de un fichero a otro" #: src/help.c:393 #, c-format msgid " Define global text variable(s) \"TVAR->%ca...%cz\"" msgstr " Define variable(s) global(es) de texto \"TVAR->%ca...%cz\"" #: src/help.c:398 #, c-format msgid " %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters" msgstr "" " %-3s = Definiciones de \"TVAR%sTEXT\" separadas por `%s' caracteres" #: src/help.c:403 #, c-format msgid "" " E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to " "`bar'" msgstr "" " p.e. %sr %ca%sfoo%s%cb%sbar Almacena `foo' en `%ca' y `bar' " "en `%cb'" #: src/help.c:409 #, c-format msgid "" " = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters" msgstr "" " = Definiciones de \"TVAR[%s|%c%s]ORDEN\" separadas por `%s' " "caracteres" #: src/help.c:414 #, c-format msgid "" " E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'" msgstr "" " p.e. %sr %ca%sfoo Almacena la salida del comando `foo' en `" "%ca'" #: src/help.c:426 msgid " Export local text variables from file to file" msgstr " Exporta variables locales de texto de un fichero a otro" #: src/help.c:438 src/help.c:468 #, c-format msgid "" " Display only those fixed dates, whose date is not excluded by %s" msgstr " Muestra s³lo las fechas constantes no exclu­das por %s" #: src/help.c:443 #, c-format msgid " %-3s = One or more of the following characters. If character" msgstr " %-3s = Uno o mĦs de los siguientes caracteres. Si el carĦcter" #: src/help.c:448 msgid " is a LOWER-CASE-LETTER, it means a non-exclusion!" msgstr " es una LETRA MINšSCULA, ÂĦsignifica no-exclusi³n!" #: src/help.c:452 #, c-format msgid " %c = Exclusion of all %s" msgstr " %c = Exclusi³n de todos los %s" #: src/help.c:473 #, c-format msgid " %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'" msgstr "" " %-3s = Lista de `%c[FECHA][%c[FECHA]]' y/o `%c[FECHA][%c[FECHA]]'" # lala #: src/help.c:477 #, c-format msgid " expressions separated by `%s' characters" msgstr " expresiones separadas por `%s' caracteres" #: src/help.c:490 #, c-format msgid " Display only those fixed dates, whose text is matched by %s" msgstr "" " Muestra s³lo las fechas constantes cuyo texto estİ marcado por %s" #: src/help.c:495 #, c-format msgid " %-3s = Any text respectively \"regular expression\" you like" msgstr "" " %-3s = Cualquier texto, respectivamente \"expresi³n regular\" que desee" #: src/help.c:508 #, c-format msgid " Ignore case distinctions if `%s' option is given" msgstr "" " Ignora las distinciones de mayşsculas y minşsculas con la opci³n `" "%s'" #: src/help.c:520 #, c-format msgid " Revert the sense of matching of the `%s' option" msgstr " Invierte el sentido de las coincidencias para la opci³n `%s'" #: src/help.c:531 msgid " Display some debug information" msgstr " Muestra algunos mensajes de depuraci³n" #: src/help.c:539 #, c-format msgid "" " [%-3s] = internal Information if program internal maximums are reached" msgstr "" " [%-3s] = internal Informa si se alcanzan los mĦximos internos del " "programa" #: src/help.c:548 msgid "" " = handled Like `internal' and file names which are handled" msgstr "" " = handled Como `internal' y muestra los nombres de fichero " "tratados" #: src/help.c:556 msgid "" " = unhandled Like `internal' and file names which are unhandled" msgstr "" " = unhandled Como `internal' y muestra nombres de fichero no " "tratados" #: src/help.c:564 msgid " = all Like `handled' and `unhandled' together" msgstr " = all Como `handled' y `unhandled' a la vez" #: src/help.c:572 msgid "" " = abort Like `all' and abort if file name can't be handled" msgstr "" " = abort Como `all', pero aborta si el nombre del fichero da " "error" #: src/help.c:582 msgid " Use special format for calendar sheet" msgstr " Usa un formato especial para la hoja de calendario" #: src/help.c:585 msgid " [MOD] = - Use standard format for calendar sheet" msgstr " [MOD] = - Utiliza el formato estĦndar para la hola de calendario" # Aħado de quİ la regla esa... sv #: src/help.c:596 msgid " Use leap year rule of Eastern Orthodox churches" msgstr "" " Utiliza la regla de aħos bisiestos de las iglesias Ortodoxas del " "Este" #: src/help.c:606 msgid " Provide calendar sheet with week numbers" msgstr " Da la hoja de calendario con nşmeros de semana" #: src/help.c:617 #, c-format msgid " Determine type of week numbers (actual: %s)" msgstr " Determina el tipo de nşmeros de semana (actual: %s)" #: src/help.c:618 msgid "Standard" msgstr "EstĦndard" #: src/help.c:624 #, c-format msgid " %-3s = yes ISO-8601:1988 week numbers" msgstr " %-3s = yes Nşmeros de semana ISO-8601:1988" #: src/help.c:631 msgid " = no Standard week numbers" msgstr " = no Nşmeros de semana estĦndard" # ??? #: src/help.c:642 msgid " Suppress output of calendar sheet explicitly" msgstr " No muestra expl­citamente del calendario" #: src/help.c:655 #, c-format msgid " Direct output through external `%s' pager" msgstr " Dirige la salida a travİs del paginador externo `%s'" #: src/help.c:661 src/help.c:663 msgid " Direct output through simple internal pager" msgstr " Dirige la salida a travİs del visor interno" #: src/help.c:680 msgid " Disable highlighting of text, holiday resp., actual day" msgstr " Inhibe el brillo en el texto, d­as festivos y el actual" #: src/help.c:695 msgid " Forces highlighting sequences if output is redirected/piped" msgstr "" " Fuerza el atributo de brillo aunque la salida estİ redirigida" #: src/help.c:707 msgid "" " Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)" msgstr "" " Cambia los pares de resaltado 1 (=d­a actual) y 2 (=vacaciones)" #: src/help.c:711 #, c-format msgid " %-3s = Highlighting sequence pairs separated by `%s' characters" msgstr " %-3s = Pares de resaltado separados por `%s' caracteres" #: src/help.c:716 #, c-format msgid "" " E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1" msgstr "" " p.e. %sH \\x2%s\\xAE Usa los valores hex. 2 y AE para la " "secuencia 1" #: src/help.c:721 #, c-format msgid "" " E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2" msgstr " p.e. %sH %s%s*%s* Usa `*' y `*' para la secuencia 2" #: src/help.c:732 msgid " Modify format of year calendar" msgstr " Cambia el formato del calendario anual" #: src/help.c:736 #, c-format msgid " %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)" msgstr " %-3s = 1|2|3|4|6|12 Nşmero de bloques (actual: %d)" #: src/help.c:748 msgid " Use consecutive day of year in calendar sheet" msgstr " Usa el siguiente d­a del aħo en la hoja de calendario" #: src/help.c:752 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [MOD] = b Usa ambas notaciones de fecha (d­a del mes+aħo)" #: src/help.c:764 msgid " Use consecutive day of year in eternal holiday list" msgstr " Usa el siguiente d­a del aħo en la lista perpetua de fiestas" #: src/help.c:768 src/help.c:784 msgid " [MOD] = b Use both date notations (day of month+year)" msgstr " [MOD] = b Usa ambas notaciones de fecha (d­a del mes+aħo)" #: src/help.c:780 msgid " Use consecutive day of year in fixed date list" msgstr " Usa el siguiente d­a del aħo en la lista de vacaciones fijas" #: src/help.c:795 #, c-format msgid " Set starting day of week (actual: %s)" msgstr " Establece el primer d­a de la semana (actual: %s)" #: src/help.c:828 #, c-format msgid " Send output via `%s' program to user" msgstr " Redirige la salida a travİs del programa `%s'" #: src/help.c:857 msgid "UNKNOWN" msgstr "DESCONOCIDO" #: src/help.c:860 #, c-format msgid " [%-3s] = Email address, otherwise eMail is send to user `%s'" msgstr "" " [%-3s] = Direcci³n de correo, si no el correo se env­a al usuario `%s'" #: src/help.c:878 #, c-format msgid " Display eternal holiday list (Year in range: %d...%d)" msgstr " Lista perpetua de d­as festivos (Aħo entre: %d...%d)" #: src/help.c:881 msgid " n = Legal days and memorial days" msgstr " n = D­as hĦbiles y d­as conmemorativos" # Âżd­as hĦbiles? #: src/help.c:883 msgid " N = Legal days only" msgstr " N = S³lo d­as hĦbiles" #: src/help.c:885 src/help.c:1631 #, c-format msgid " [MOD] = %s Descending sort order" msgstr " [MOD ] = %s Orden descendente" #: src/help.c:897 msgid " Suppress leading blank line of eternal holiday list" msgstr "" " Suprime la l­nea blanca del encabezado de la lista perpetua de " "fiestas" #: src/help.c:907 msgid " Exclude title of eternal holiday list" msgstr " Excluye el t­tulo de la lista perpetua de d­as festivos" #: src/help.c:919 msgid " Provide eternal holiday list with astronomical data" msgstr " Lista perpetua de fiestas con datos astron³micos" #: src/help.c:931 msgid " Provide eternal holiday list with BahĦ'i calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario BahĦ'i" #: src/help.c:943 msgid " Provide eternal holiday list with BahĦ'i calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario BahĦ'i" #: src/help.c:955 msgid " Provide eternal holiday list with Celtic calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario Celta" #: src/help.c:967 msgid "" " Provide eternal holiday list with Chinese flexible calendar " "holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario flexible " "Chino" #: src/help.c:979 msgid "" " Provide eternal holiday list with Chinese flexible calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario flexible " "Chino" #: src/help.c:991 msgid " Provide eternal holiday list with Chinese calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario Chino" #: src/help.c:1003 msgid " Provide eternal holiday list with Chinese calendar months" msgstr " Lista perpetua de fiestas con los meses del calendario Chino" #: src/help.c:1015 msgid "" " Provide eternal holiday list with Christian Western calendar " "holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario Cristiano " "Occidental" #: src/help.c:1027 msgid " Provide eternal holiday list with Coptic calendar months" msgstr " Lista perpetua de fiestas con los meses del calendario Copto" #: src/help.c:1039 msgid " Provide eternal holiday list with Ethiopic calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario Et­ope" #: src/help.c:1051 msgid "" " Provide eternal holiday list with French Revolutionary calendar " "months" msgstr "" " Lista perpetua de fiestas con los meses del calendario de la " "Revoluci³n Francesa" #: src/help.c:1063 msgid " Provide eternal holiday list with Hebrew calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario Hebreo" #: src/help.c:1075 msgid " Provide eternal holiday list with Hebrew calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario Hebreo" #: src/help.c:1087 msgid "" " Provide eternal holiday list with Indian civil-calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario civil Indio" #: src/help.c:1099 msgid "" " Provide eternal holiday list with Islamic civil-calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario civil " "IslĦmico" #: src/help.c:1111 msgid "" " Provide eternal holiday list with Islamic civil-calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario civil " "IslĦmico" #: src/help.c:1123 msgid "" " Provide eternal holiday list with Japanese flexible calendar " "holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario flexible " "Japonİs" #: src/help.c:1135 msgid "" " Provide eternal holiday list with Japanese flexible calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario flexible " "Japonİs" #: src/help.c:1147 msgid " Provide eternal holiday list with Japanese calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario Japonİs" #: src/help.c:1159 msgid " Provide eternal holiday list with Japanese calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario Japonİs" #: src/help.c:1172 msgid "" " Provide eternal holiday list with multicultural New Year holidays" msgstr "" " Lista perpetua de fiestas con las fiestas multiculturales de Nueva " "York" #: src/help.c:1184 msgid " Provide eternal holiday list with Old-Armenic calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario Armenio " "Antiguo" #: src/help.c:1196 msgid " Provide eternal holiday list with Old-Egyptic calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario Egipcio " "Antiguo" #: src/help.c:1208 msgid "" " Provide eternal holiday list with Orthodox new-calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del nuevo calendario " "Ortodoxo" #: src/help.c:1220 msgid "" " Provide eternal holiday list with Orthodox old-calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del antiguo calendario " "Ortodoxo" #: src/help.c:1232 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar holidays" msgstr "" " Lista perpetua de fiestas con las fiestas del calendario Jalaali " "Persa" #: src/help.c:1244 msgid "" " Provide eternal holiday list with Persian Jalaali-calendar months" msgstr "" " Lista perpetua de fiestas con los meses del calendario Jalaali " "Persa" #: src/help.c:1256 msgid " Provide eternal holiday list with zodiacal marker data" msgstr " Lista perpetua de fiestas con datos del zodiaco" #: src/help.c:1268 msgid " Provide eternal holiday list with country specific holidays" msgstr " Lista de vacaciones incluyendo las locales" #: src/help.c:1272 #, c-format msgid " %-3s = Single country resp., territory code or a list of these," msgstr " %-3s = C³digo de un pa­s, c³digo de territorio, o una lista," #: src/help.c:1277 #, c-format msgid "" " which are connected by `%s' characters. Countries/territories," msgstr "" " que estĦn conectados por `%s' caracteres. Los pa­ses/territorios," #: src/help.c:1282 msgid " marked by # have an incomplete recording of holidays" msgstr " marcados con # tienen un registro incompleto de fiestas" #: src/help.c:1286 #, c-format msgid " %-*s = Holidays in %s" msgstr " %-*s = Fiestas en %s" #: src/help.c:1307 msgid "" " Set reference value for rise/set time respectively shadow length" msgstr "" " Establece el valor de referencia para la longitud de la sombra en " "el tiempo de amanecer/atardecer" #: src/help.c:1311 #, c-format msgid " %-3s = Angular value respectively factor in range: %+.1f...%+.1f" msgstr "" " %-3s = Factor de valor angular respectivo en el rango: %+.1f...%+.1f" #: src/help.c:1322 msgid " Set base data of Earth's atmosphere" msgstr " Establece la base de datos de la atm³sfera terrestre" #: src/help.c:1326 #, c-format msgid " %-3s = Air pressure and temperature separated by `%s' character" msgstr "" " %-3s = Presi³n del aire y temperatura separados por `%s' caracteres" #: src/help.c:1329 #, c-format msgid " Air pressure in Millibar (actual: %.3f)" msgstr " Presi³n del aire en milibares (actual: %.3f)" #: src/help.c:1334 #, c-format msgid " Air temperature in degrees Celsius (actual: %+.3f)" msgstr " Temperatura del aire en grados Celsius (actual: %+.3f)" #: src/help.c:1344 msgid " Limit rise/set times of Sun to the day" msgstr " Limita los tiempos de salida/puesta del sol al d­a" #: src/help.c:1356 msgid " Represent astronomical times and data with utmost precision" msgstr "" " Representa los tiempos y datos astron³micos con la mayor precisi³n" #: src/help.c:1366 #, c-format msgid " Execute `%c%c[%s]' shell commands" msgstr " Ejecuta las ³rdenes de shell `%c%c[%s]'" #: src/help.c:1369 #, c-format msgid " and \"TVAR[%s|%c%s]COMMAND\" assignments" msgstr " y las asignaciones \"TVAR[%s|%c%s]ORDEN\"" #: src/help.c:1381 msgid " Change base time of astronomical functions" msgstr " Cambia el tiempo base de las funciones astron³micas" #: src/help.c:1384 msgid " respectively, change cycle-starting time" msgstr " respectivamente, cambia el tiempo de inicio del ciclo" #: src/help.c:1394 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: " "%s%02d%s%02d == GMT%s)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Valor de desplazamiento de " "tiempo (actual: %s%02d%s%02d == GMT%s" #: src/help.c:1402 #, c-format msgid "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d" "%s%02d == GMT%s)" msgstr "" " %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Valor de desplazamiento de tiempo " "(actual: %s%02d%s%02d == GMT%s" #: src/help.c:1418 msgid " Change cycle-ending time" msgstr " Cambia el tiempo del fin de ciclo" #: src/help.c:1422 #, c-format msgid "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: " "%02d%s%02d)" msgstr "" " %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Valor de tiempo final " "(actual: %02d%s%02d)" #: src/help.c:1436 msgid " Change cycle-timestep" msgstr " Cambia el lapso de tiempo del ciclo" #: src/help.c:1440 #, c-format msgid " %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)" msgstr "" " %-3s = MMMM|HH%s[MM] Valor de lapso de tiempo (actual: %02d%s%02d)" #: src/help.c:1453 msgid " Change base year of calendar" msgstr " Cambia el aħo base del calendario" #: src/help.c:1457 #, c-format msgid " %-3s = [%s|%s]YYYY Year offset value (actual: %d)" msgstr " %-3s = [%s|%s]AAAA Valor de desplazamiento anual (actual: %d)" #: src/help.c:1469 msgid " Set period of Gregorian Reformation" msgstr " Establece el periodo de la Reforma Gregoriana" #: src/help.c:1471 #, c-format msgid " Actual respected period: %02d-%02d %s %0*d" msgstr " Periodo respecto al actual: %02d-%02d %s %0*d" #: src/help.c:1477 #, c-format msgid " %-*d%*s = Set period to: %02d-%02d %s %0*d" msgstr " %-*d%*s = Periodo: %02d-%02d %s %0*d" #: src/help.c:1485 #, c-format msgid " %-3s = %s%c%s%s%s%s%s%s Set period explicitly" msgstr " %-3s = %s%c%s%s%s%s%s%s Cambia el periodo expl­citamente" #: src/help.c:1499 #, c-format msgid " Set order of date elements using the %s format text" msgstr "" " Cambia el orden de los elementos de fecha usando el patr³n %s" #: src/help.c:1502 #, c-format msgid " Actual: (%s) `%s' (%s)" msgstr " Actual: (%s) `%s' (%s)" #: src/help.c:1504 msgid "self-defined" msgstr "auto-definido" #: src/help.c:1509 #, c-format msgid " %-6s = Format is: `%s' (%s)" msgstr " %-6s = El formato es: `%s' (%s)" #: src/help.c:1517 #, c-format msgid " %-3s = Define individual format. Respected format elements are:" msgstr " %-3s = Define un formato personal. Los elementos de formato son:" #: src/help.c:1560 msgid " Define translatable country specific special character pairs" msgstr "" " Define el par de caracteres especiales traducibles espec­ficos del " "pa­s" #: src/help.c:1564 #, c-format msgid " %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions" msgstr " %-3s = Definiciones LETRA-MAYšSCULA\" \"LETRA-MINšSCULA..." #: src/help.c:1569 #, c-format msgid "" " E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of" msgstr "" " p.e. `%s%s%s%s%s%s%s%s' %-3s causa la conversi³n correcta de" #: src/help.c:1574 msgid "" " the preceding special characters in an individual date format," msgstr "" " los caracteres especiales precedentes en un formato personal de " "fecha," #: src/help.c:1578 msgid "" " which has a STYLE format instruction component, and that, how" msgstr "" " el cual tiene un componente instrucci³n de formato ESTILO, y que" #: src/help.c:1582 msgid " they are used by the character set used in Germany" msgstr " usa el conjunto de caracteres utilizados en Alemania" #: src/help.c:1591 #, c-format msgid "+++ FIXED DATES +++" msgstr "+++ FECHAS CONSTANTES +++" #: src/help.c:1612 #, c-format msgid " Use standard resource file `.%s%s' for fixed date list" msgstr "" " Usa el fichero de recursos `.%s%s' para la lista de\n" " fechas constantes" #: src/help.c:1617 #, c-format msgid " Use standard resource file `%s%s' for fixed date list" msgstr "" " Usa el fichero de recursos `%s%s' para la lista de\n" " fechas constantes" #: src/help.c:1621 src/help.c:2161 msgid " Implies period: Today" msgstr " Implica que el periodo de aviso es el d­a de hoy" #: src/help.c:1625 msgid " c = Display only those dates, for which fixed dates exists" msgstr " c = Muestra solo las fechas constantes" #: src/help.c:1629 msgid "" " C = Display those dates, for which fixed dates doesn't exist, too" msgstr " C = Muestra las fechas que no estĦn en la lista de constantes" #: src/help.c:1641 msgid "" " [MOD] = One or more of the following modifiers which are marked by #" msgstr " [MOD] = Uno o mĦs de los siguientes modificadores marcados con #" #: src/help.c:1654 #, c-format msgid " %-3s = Heading/Title text used for fixed date list" msgstr "" " %-3s = Texto de t­tulo/encabezado para la lista de " "fechas fijas" #: src/help.c:1657 #, c-format msgid " Actual: `%s'" msgstr " Actual: `%s'" #: src/help.c:1670 msgid " # g[MOD] = Group fixed dates by day using text MOD" msgstr "" " # g[MOD] = Agrupa avisos de fechas por d­a usando\n" " el texto MOD" #: src/help.c:1682 msgid " 1. Representation of text" msgstr " 1. Representaci³n del texto" #: src/help.c:1694 msgid " = Set width of the biorhythm text graphics" msgstr " = Cambiar anchura de la grĦfica de biorritmos" #: src/help.c:1698 #, c-format msgid " %-3s = %d...%d Length of a single axis" msgstr " %-3s = %d...%d Longitud de un eje" #: src/help.c:1711 msgid " = Set height of the Moon phase text graphics" msgstr "" " = Cambiar la altura del texto de las grĦfica de " "fase lunar" #: src/help.c:1715 #, c-format msgid " %-3s = %d...%d Total number of lines" msgstr " %-3s = %d...%d Nşmero total de l­neas" #: src/help.c:1727 msgid " # a = Display origin of fixed date" msgstr " # a = Muestra el origen de una fecha" #: src/help.c:1739 msgid " # A = Display using alternative list format" msgstr " # A = Utiliza un formato de listado distinto" #: src/help.c:1751 msgid " # e = Include legal days and memorial days" msgstr " # e = Incluir d­as hĦbiles y commemorativos" #: src/help.c:1753 msgid " # E = Include legal days only" msgstr " # e = Incluir solo d­as hĦbiles" #: src/help.c:1763 msgid " # k = Display week number" msgstr " # k = Muestra el nşmero de la semana" #: src/help.c:1775 msgid " # o = Omit repeating date part of fixed dates" msgstr " # o = Evita redundancias en las fechas" #: src/help.c:1787 msgid "" " # Q = Suppress leading blank line of fixed dates list" msgstr "" " # Q = Suprime la l­nea en blanco de la lista de fechas " "fijas" #: src/help.c:1799 msgid " # U = Suppress date part of fixed dates" msgstr " # U = Suprime la parte de la fecha" #: src/help.c:1811 msgid " # J = Suppress text part of fixed dates" msgstr " # J = Suprime la parte de texto de la fecha" #: src/help.c:1823 msgid " # x = Exclude title of fixed date list" msgstr " # x = No muestra el t­tulo en la lista de fechas" #: src/help.c:1835 msgid " # z = Display consecutive number of fixed date" msgstr " # z = Muestra el siguiente nşmero de fecha fija" #: src/help.c:1847 msgid "" " # Z = Display dates, for which fixed dates doesn't exist" msgstr "" " # Z = Muestra fechas, para las que no existen fechas " "fijas" #: src/help.c:1855 msgid " 2. Respected period" msgstr " 2. Periodo relacionado" #: src/help.c:1867 msgid " = Manage `29-FEBRUARY' in non-leap years" msgstr "" " = Contempla el '29-FEBRERO' en los aħos\n" " no bisiestos" #: src/help.c:1875 #, c-format msgid " %-3s = february Respect at `28-FEBRUARY'" msgstr " %-3s = february Respecto al '28-FEBRERO'" #: src/help.c:1884 #, c-format msgid " %-3s = march Respect at `01-MARCH'" msgstr " %-3s = march Respecto al '01-MARZO'" #: src/help.c:1897 msgid "" " # d = Include actual date if list of periods is " "generated" msgstr "" " # d = Incluye la fecha actual si se ha generado la " "lista de periodos" #: src/help.c:1909 msgid "" " # l = Generate list of periods instead of a single " "period" msgstr "" " # l = Genera una lista de periodos en lugar de unsolo " "periodo" #: src/help.c:1925 msgid " # Nd = Single absolute day N" msgstr " # Nd = d­a absoluto N" #: src/help.c:1927 #, c-format msgid " # %cdN = Single absolute day N" msgstr " # %cdN = d­a absoluto N" #: src/help.c:1932 msgid " # NMOD = Single day N relative to today" msgstr " # NMOD = d­a N respecto a hoy" #: src/help.c:1934 #, c-format msgid " MOD = %s Forwards" msgstr " MOD = %s Adelante" #: src/help.c:1936 #, c-format msgid " = %s Backwards" msgstr " = %s AtrĦs" #: src/help.c:1939 msgid " # Nw = Complete week N" msgstr " # Nw = Semana N completa" #: src/help.c:1943 msgid "" " N = 0 1st week / last week of previous year" msgstr "" " N = 0 1ÂŞ y şltima semana del aħo anterior" #: src/help.c:1947 msgid " N = 1...52 1st...52nd week (always)" msgstr " N = 1...52 1-a...52-a semana (siempre)" #: src/help.c:1951 msgid " N = 53 53rd week (sometimes)" msgstr " N = 53 53ÂŞ semana (a veces)" #: src/help.c:1953 msgid " N = 99 Last week" msgstr " N = 99 šltima semana" #: src/help.c:1956 #, c-format msgid " # %s%s = Single day %s of month %s" msgstr " # %s%s = D­a %s del mes %s" #: src/help.c:1962 #, c-format msgid " # %s%sN = Single N'th weekday %s of month %s" msgstr " # %s%sN = D­a N de la semana %s del mes %s" #: src/help.c:1967 #, c-format msgid " N = 1...4 1st...4th weekday %s (always)" msgstr "" " N = 1...4 1Âş...4Âş d­a de la semana %s (siempre)" #: src/help.c:1972 #, c-format msgid " N = 5 5th weekday %s (sometimes)" msgstr "" " N = 5 5° d­a de la semana %s (a veces)" #: src/help.c:1976 #, c-format msgid " N = 9 Last weekday %s" msgstr " N = 9 Ultimo d­a de la semana %s" #: src/help.c:1980 #, c-format msgid " # %cdN%s = Single N'th weekday %s" msgstr " # %cdN%s = D­a N de la semana %s" #: src/help.c:1985 #, c-format msgid " N = 1...51 1st...51st weekday %s (always)" msgstr "" " N = 1...51 1er...51Âş d­a de la semana %s " "(siempre)" #: src/help.c:1990 #, c-format msgid " N = 52|53 52|53rd weekday %s (sometimes)" msgstr "" " N = 52|53 52|53Âş d­a de la semana %s (a veces)" #: src/help.c:1994 #, c-format msgid " N = 99 Last weekday %s" msgstr " N = 99 Ultimo d­a de la semana %s" #: src/help.c:1999 #, c-format msgid " # %cwN%s = Single weekday %s of N'th week" msgstr " # %cwN%s = D­a de la semana %s de la semana N" #: src/help.c:2004 #, c-format msgid "" " N = 0 %s which isn't located in 1st week" msgstr "" " N = 0 %s que no estĦ en la primera semana" #: src/help.c:2009 #, c-format msgid " N = 1...51 %s of 1st...51st week (always)" msgstr "" " N = 1...51 %s de 1a...51a semana (siempre)" #: src/help.c:2014 #, c-format msgid " N = 52|53 %s of 52|53rd week (sometimes)" msgstr "" " N = 52|53 %s de la semana 52|52 (a veces)" #: src/help.c:2018 #, c-format msgid " N = 99 %s of last week" msgstr " N = 99 %s de la şltima semana" #: src/help.c:2024 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday" msgstr " # %c%c[[%s|%s]N] = d­a N respecto al Domingo de Pascua" #: src/help.c:2030 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday" msgstr "" " # %c%c[%s|%s]N%s = d­a N de la semana respecto al Domingo de " "Pascua" #: src/help.c:2036 #, c-format msgid " # %c%c[[%s|%s]N] = Single day N relative to today's date" msgstr " # %c%c[[%s|%s]N] = d­a N respecto al d­a de hoy" #: src/help.c:2042 #, c-format msgid "" " # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date" msgstr "" " # %c%c[%s|%s]N%s = d­a de la semana N respecto al d­a de hoy" #: src/help.c:2048 #, c-format msgid " # %c?[[%s|%s]N] = Single day N relative to date variable" msgstr " # %c?[[%s|%s]N] = d­a N respecto a la variable de fecha" #: src/help.c:2054 #, c-format msgid "" " # %c?[%s|%s]N%s = Single N'th weekday relative to date variable" msgstr "" " # %c?[%s|%s]N%s = d­a de la semana N respecto a la variable de " "fecha" #: src/help.c:2062 msgid " # t|T = List tomorrow" msgstr " # t|T = Lista maħana" #: src/help.c:2079 msgid " # w|W[MOD] = List complete week" msgstr " # w|W[MOD] = Lista la semana completa" #: src/help.c:2083 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of week" msgstr "" " [MOD] = %s Lista de maħana al şltimo d­a de la semana" #: src/help.c:2088 #, c-format msgid "" " = %s List yesterday until starting day of week" msgstr "" " = %s Lista desde ayer hasta el principio de la " "semana" #: src/help.c:2108 msgid " # m|M[MOD] = List complete month" msgstr " # m|M[MOD] = Lista el mes completo" #: src/help.c:2112 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of month" msgstr "" " [MOD] = %s Lista de maħana al şltimo d­a del mes" #: src/help.c:2117 #, c-format msgid "" " = %s List yesterday until starting day of month" msgstr "" " = %s Lista desde ayer hasta el principio del mes" #: src/help.c:2137 msgid " # y|Y[MOD] = List complete year" msgstr " # y|Y[MOD] = Lista el aħo completo" #: src/help.c:2141 #, c-format msgid "" " [MOD] = %s List tomorrow until ending day of year" msgstr " [MOD] = %s Lista desde maħana hasta fin de aħo" #: src/help.c:2146 #, c-format msgid "" " = %s List yesterday until starting day of year" msgstr " = %s Lista todo el aħo hasta ayer" #: src/help.c:2159 msgid " Use alternative file(s) instead of standard resource file" msgstr " Utiliza ficheros de recursos distintos del estĦndar" #: src/help.c:2165 msgid " f = Display only those dates, for which fixed dates exists" msgstr " f = Muestra solo los d­as con fechas fijas" #: src/help.c:2169 msgid "" " F = Display those dates, for which fixed dates doesn't exist, too" msgstr " F = Muestra tambiİn los d­as que no tienen fechas fijas" #: src/help.c:2173 #, c-format msgid " %-3s = Single file or list of files connected by `%s' characters" msgstr "" " %-3s = fichero o lista de ficheros conectados por `%s' caracteres" #: src/help.c:2184 msgid " Define additional resource file line" msgstr " Define una l­nea adicional del fichero de recursos" #: src/help.c:2186 #, c-format msgid " %-3s = Any possible resource file line" msgstr " %-3s = Cualquier l­nea del fichero de recursos" #: src/help.c:2196 #, c-format msgid "%cDATE" msgstr "%cDATE" #: src/help.c:2198 msgid "Use given `DATE' instead of today's date" msgstr "Utiliza la `DATE' predeterminada en vez de la actual" #: src/help.c:2202 #, c-format msgid "" "Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" msgstr "" "Formato de Fecha: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]" #: src/help.c:2209 #, c-format msgid " %s%cwN[%s], month name[%s], weekday name[N] or %s" msgstr " %s%cwN[%s], nombre del mes[%s], nombre del d­a[N] or %s" #: src/help.c:2218 #, c-format msgid "%cFILE" msgstr "%cFILE" #: src/help.c:2220 msgid "Preload options and commands from `FILE'" msgstr "Carga las opciones y las ³rdenes desde `FILE'" #: src/help.c:2224 msgid "COMMAND" msgstr "ORDEN" #: src/help.c:2226 #, c-format msgid "%s = Month in range: %d...%d" msgstr "%s = Mes entre: %d...%d" #: src/help.c:2231 #, c-format msgid " or: month name | %s | %s%s | %s%s | %s%s" msgstr " o: nombre del mes | %s | %s%s | %s%s | %s%s" #: src/help.c:2236 #, c-format msgid " List: %s[%s%s]%s...%s%s[%s%s]" msgstr " Lista: %s[%s%s]%s...%s%s[%s%s]" #: src/help.c:2242 #, c-format msgid " Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" msgstr " Entre: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s" #: src/help.c:2248 #, c-format msgid "%s%*s = Year in range: %d...%d" msgstr "%s%*s = Aħo entre: %d...%d" #: src/help.c:2252 #, c-format msgid " List: [%s%s]%s%s...%s[%s%s]%s" msgstr " Lista: [%s%s]%s%s...%s[%s%s]%s" #: src/help.c:2257 #, c-format msgid " Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" msgstr " Entre: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s" #: src/help.c:2283 #, c-format msgid " %sh, %s Display this help text and quit program" msgstr " %sh, %s Muestra este mensaje de ayuda y finaliza" #: src/help.c:2286 #, c-format msgid " %shh, %s Display extended help text and quit program" msgstr " %shh, %s Muestra informaci³n de ayuda y finaliza" #: src/help.c:2290 #, c-format msgid " %sL, %s Display software license and quit program" msgstr " %sL, %s Muestra la licencia del programa y finaliza" #: src/help.c:2294 #, c-format msgid " %sV, %s Display version information and quit program" msgstr " %sV, %s Informa de la versi³n y finaliza" #: src/help.c:2302 #, c-format msgid " %sp, %s Direct output through external `%s' pager" msgstr "" " %sp, %s Dirige la salida a travİs del paginador externo `%s'" #: src/help.c:2309 src/help.c:2314 #, c-format msgid " %sp, %s Direct output through simple internal pager" msgstr " %sp, %s Dirige la salida a travİs del visor interno" #: src/help.c:2339 msgid "This software doesn't claim completeness, correctness or usability." msgstr "Este programa no afirma ser completo, sin errores o utilizable." #: src/help.c:2343 msgid "On principle I will not be liable for ANY damages or losses (implicit" msgstr "Por principio no serİ responsable de NINGšN daħo o pİrdida (impl­cita" #: src/help.c:2347 msgid "or explicit), which result from using or handling my software." msgstr "o expl­cita), provocada por el uso o manejo del programa." #: src/help.c:2351 msgid "If you use this software, you agree without any exception to this" msgstr "Si usted utiliza İste programa, acepta sin excepciones İste" #: src/help.c:2353 msgid "agreement, which binds you LEGALLY !!" msgstr "acuerdo, por el cual queda comprometido LEGALMENTE !!" # Este texto ya lo hemos traducido otras veces. Lo mejor es ponerlo igual. sv #: src/help.c:2358 msgid "This program is free software; you can redistribute it and/or modify" msgstr "" "Este programa es software libre; usted puede redistribuirlo y/o modificarlo" #: src/help.c:2362 msgid "it under the terms of the `GNU General Public License' as published by" msgstr "bajo los tİrminos de la 'GNU General Public License' publicada por" #: src/help.c:2366 msgid "the `Free Software Foundation'; either version 3, or (at your option)" msgstr "la `Free Software Foundation'; en su versi³n 3, o (como quiera)" #: src/help.c:2368 msgid "any later version." msgstr "cualquier versi³n posterior." #: src/help.c:2373 msgid "You should have received a copy of the `GNU General Public License'" msgstr "Deber­a haber recibido una copia de la `GNU General Public License'" #: src/help.c:2375 msgid "along with this program; if not, write to the:" msgstr "junto con İste programa; si no es as­, escriba a:" #: src/help.c:2424 #, c-format msgid "" "Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]" msgstr "" "Modo de empleo: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] " "[[%s] [%s]]" #: src/help.c:2452 #, c-format msgid "Use `%s %s|[%s?]" msgstr "Utilice `%s %s'|[%s?]" #: src/help.c:2461 msgid "for more information." msgstr "para mĦs informaci³n ." #: src/help.c:2565 src/tcal.c:199 src/txt2gcal.c:137 src/gcal2txt.c:137 #, c-format msgid "Email bug reports to <%s>" msgstr "Informes de bichos por Email a <%s>" #: src/help.c:2567 #, c-format msgid "GNU gcal home page: <%s>" msgstr "PĦgina web de gcal de GNU: <%s>" #: src/help.c:2569 #, c-format msgid "General help using GNU software: <%s>" msgstr "Ayuda general para usar software de GNU: <%s>" #: src/help.c:2595 src/tcal.c:221 src/txt2gcal.c:159 src/gcal2txt.c:159 #, c-format msgid "This is free software; see the source for copying conditions." msgstr "Este es un programa de libre uso; lea las condiciones en los fuentes." #: src/help.c:2599 src/tcal.c:224 src/txt2gcal.c:162 src/gcal2txt.c:162 #, c-format msgid "There is NO warranty, without even the implied warranty of" msgstr "NO existe garant­a alguna, ni incluso aquella impl­cita de" #: src/help.c:2601 src/tcal.c:226 src/txt2gcal.c:164 src/gcal2txt.c:164 #, c-format msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." msgstr "COMERCIABILIDAD o IDONEIDAD PARA UNA TAREA DETERMINADA" #: src/help.c:2617 #, c-format msgid "%s: The Gregorian calendar program (GNU cal) %s" msgstr "%s: El programa de calendario Gregoriano (GNU cal) %s" #: src/help.c:2625 #, c-format msgid "Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]" msgstr "Modo de empleo: %s [[OPCI“N...] [%cFECHA] [%cFICHERO...]] [ORDEN]" #: src/help.c:2628 #, c-format msgid "Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]" msgstr "Modo de empleo: %s [[OPCI“N...] [%cFICHERO...]] [ORDEN]" #: src/help.c:2704 src/help.c:2850 msgid " 4.0 or 4.02" msgstr " 4.0 o 4.02" #: src/help.c:2712 src/help.c:2858 msgid " later than 5.0" msgstr " posterior a 5.0" #: src/help.c:2723 src/help.c:2865 msgid "++ 3.0 or later" msgstr "++ 3.0 o posterior" #: src/help.c:2750 src/help.c:2971 msgid "5.1 or earlier" msgstr "5.1 o posterior" #: src/help.c:2753 src/help.c:2974 src/help.c:3129 src/help.c:3199 msgid "unknown compiler" msgstr "compilador desconocido" #: src/help.c:2788 src/help.c:2877 src/help.c:3011 src/help.c:3033 #: src/help.c:3102 src/help.c:3139 src/help.c:3157 src/help.c:3214 #: src/help.c:3429 msgid " on " msgstr " activo " #: src/help.c:2827 msgid "(bad version)" msgstr "(versi³n incorrecta)" #: src/help.c:2874 msgid "unknown compiler (SDK?)" msgstr "compilador desconocido (ÂżSDK?)" #: src/help.c:2942 msgid " later than 4.5" msgstr " posterior a 4.5" #: src/help.c:2952 msgid "++ 1.0 or later" msgstr "++ 1.0 o posterior" #: src/help.c:2960 msgid " 1.0 or 1.5?" msgstr " Âż1.0 o 1.5?" #: src/help.c:3075 msgid "unknown " msgstr "desconocido/a " #: src/help.c:3087 #, c-format msgid "version %d.%d" msgstr "versi³n %d.%d" #: src/help.c:3090 src/help.c:3123 src/help.c:3249 #, c-format msgid "version %d" msgstr "versi³n %d" #: src/help.c:3092 #, c-format msgid "unknown version" msgstr "versi³n desconocida" #: src/help.c:3206 #, c-format msgid " (%.4s for Alpha)" msgstr " (%.4s para Alpha)" #: src/help.c:3209 #, c-format msgid " (%.4s for VAX)" msgstr " (%.4s para VAX)" #: src/help.c:3360 msgid " (NetBSD before 0.9)" msgstr " (NetBSD anterior a 0.9)" #: src/help.c:3360 msgid " (NetBSD 1.2 or later)" msgstr " (NetBSD 1.2 o posterior" #: src/help.c:3367 msgid " (FreeBSD 2.0 or later)" msgstr " (FreeBSD 2.0 o posterior)" #: src/help.c:3370 msgid " (BSD/386 1.1 or later)" msgstr " (BSD/386 1.1 o posterior)" #: src/print.c:545 src/print.c:979 src/print.c:1034 msgid "CW" msgstr "CS" #: src/print.c:566 msgid "Week" msgstr "Semana" #: src/rc-insert.c:1707 src/rc-insert.c:2825 msgid "pm" msgstr "pm" #: src/rc-insert.c:1716 src/rc-insert.c:2834 msgid "am" msgstr "am" #: src/rc-insert.c:2019 src/rc-insert.c:2029 msgid "d'\"" msgstr "g'\"" #: src/rc-insert.c:2039 msgid "h'\"" msgstr "h'\"" #: src/rc-insert.c:3729 src/rc-utils.c:2586 #, c-format msgid "" "Cannot execute command in file `%s'\n" "Line: %ld %s" msgstr "" "No se puede ejecutar una orden en el fichero `%s'\n" "L­nea: %ld %s" #: src/rc-insert.c:3751 src/rc-utils.c:2610 #, c-format msgid "" "Command executed (exit code=%d) in file `%s'\n" "Line %ld: %s" msgstr "" "Orden ejecutada (c³digo salida=%d) en el fichero `%s'\n" "L­nea %ld: %s" #: src/rc-use.c:514 msgid "Emo" msgstr "Emo" #: src/rc-use.c:519 msgid "Int" msgstr "Int" #: src/rc-use.c:524 msgid "Phy" msgstr "Fi" #: src/rc-use.c:1087 src/rc-use.c:1178 msgid "`Eternal holiday list'" msgstr "`Lista perpetua de fiestas'" #: src/rc-use.c:1878 src/rc-use.c:1927 src/rc-use.c:2016 src/rc-use.c:2108 msgid "`Internal'" msgstr "`Interno'" #: src/rc-use.c:2340 #, c-format msgid " ; Week %s" msgstr " ; Semana %s" #: src/rc-use.c:2349 #, c-format msgid "Week %s" msgstr "Semana %s" #: src/rc-utils.c:398 src/rc-utils.c:415 #, c-format msgid "" "%s: invalid date given -- %s\n" "%s\n" "%s\n" msgstr "" "%s: fecha invĦlida -- %s\n" "%s\n" "%s\n" # Esto no pega ni con Superglue -vmv # Claro que no. leap-day = d­a del aħo bisiesto, que ser­a por ejemplo # un 29 de febrero. - cfuga #: src/rc-utils.c:3270 #, c-format msgid "Leap-day set to `%02d-%s' in file `%s'." msgstr "D­a bisiesto establecido a `%02d-%s' en el fichero `%s'." #: src/rc-utils.c:3273 src/rc-utils.c:3687 #, c-format msgid "Line %ld: %s" msgstr "L­nea %ld: %s" #: src/rc-utils.c:3634 src/utils.c:275 #, c-format msgid "%s: abort, " msgstr "%s: abortar, " #: src/rc-utils.c:3642 #, c-format msgid "illegal variable definition in file `%s'" msgstr "definici³n ilegal de variable `%s'" #: src/rc-utils.c:3644 #, c-format msgid "illegal definition of variable `%c'" msgstr "definici³n ilegal de la variable `%c'" #: src/rc-utils.c:3651 #, c-format msgid "illegal variable operation in file `%s'" msgstr "operaci³n ilegal de variable en el fichero `%s'" #: src/rc-utils.c:3653 #, c-format msgid "illegal operation on variable `%c'" msgstr "operaci³n ilegal en la variable `%c'" #: src/rc-utils.c:3659 #, c-format msgid "variable `%c' undefined in file `%s'" msgstr "variable `%c' no definida en el fichero `%s'" #: src/rc-utils.c:3663 #, c-format msgid "invalid value assigned to variable `%c' in file `%s'" msgstr "Valor invĦlido asignado a la variable `%c' en el fichero `%s'" #: src/rc-utils.c:3684 #, c-format msgid "Invalid argument in command line given -- %s" msgstr "Argumento invĦlido en la l­nea de comando -- %s" # Ojo: Ignore es no hacer caso, no ignorar, que es "not to know". sv #: src/rc-utils.c:3696 #, c-format msgid "Argument `%s' of command line ignored." msgstr "El argumento `%s' de la l­nea de ³rdenes no se tendrĦ en cuenta." #: src/rc-utils.c:3699 #, c-format msgid "Line %ld ignored: %s" msgstr "L­nea %ld descartada: %s" #: src/tty.c:425 #, c-format msgid "%s: for more, <%s> to quit..." msgstr "%s: para mĦs, <%s> para salir..." #: src/tty.c:1020 #, c-format msgid "environment variable `%s' not found" msgstr "no se encuentra la variable de entorno `%s'" #: src/tty.c:1027 #, c-format msgid "environment variable `%s' not set" msgstr "la variable de entorno `%s' no estĦ definida" #: src/tty.c:1067 msgid "`termcap' file not found" msgstr "no se encuentra el fichero `termcap'" #: src/tty.c:1072 #, c-format msgid "unknown terminal type defined in `%s'" msgstr "se desconoce el tipo de terminal definido en `%s'" #: src/tty.c:1081 #, c-format msgid "" "\n" "%s: warning, %s.\n" "\n" msgstr "" "\n" "%s: aviso, %s.\n" "\n" #: src/utils.c:281 #, c-format msgid "" "invalid year for computing Easter Sundays date\n" "Year must be in range (%d...%d)" msgstr "" "aħo no valido para calcular la fecha de los Domingos de Pascua\n" "El aħo debe estar comprendido en el rango (%d...%d)" #: src/utils.c:285 src/tcal.c:326 src/txt2gcal.c:264 src/gcal2txt.c:264 #, c-format msgid "`%s' line %ld: virtual memory exhausted (%s=%d)" msgstr "`%s' l­nea %ld: memoria virtual agotada (%s=%d)" #: src/utils.c:290 #, c-format msgid "" "invalid date part in file `%s'\n" "Line %ld: %s" msgstr "" "fecha no vĦlida en el fichero `%s'\n" "L­nea %ld: %s" #: src/utils.c:295 #, c-format msgid "" "invalid month field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "mes no vĦlido (%02d) en el fichero `%s'\n" "L­nea %ld: %s" #: src/utils.c:300 #, c-format msgid "" "invalid day field(%02d) in file `%s'\n" "Line %ld: %s" msgstr "" "d­a no vĦlido (%02d) en el fichero `%s'\n" "L­nea %ld: %s" #: src/utils.c:304 #, c-format msgid "" "malformed %s in file `%s'\n" "Line %ld: %s" msgstr "" "%s erroneo/a en el fichero `%s'\n" "L­nea %ld: %s" #: src/utils.c:309 #, c-format msgid "" "invalid recursive/cyclic %s in file `%s'\n" "Line %ld: %s" msgstr "" "no vĦlido recursivo/c­clico %s en el fichero `%s'\n" "L­nea %ld: %s" #: src/utils.c:313 #, c-format msgid "file `%s' not found" msgstr "fichero `%s' no encontrado" #: src/utils.c:317 #, c-format msgid "" "invalid N'th weekday field(%d) in file `%s'\n" "Line %ld: %s" msgstr "" "d­a de la semana no vĦlido (%d) en el fichero `%s'\n" "L­nea %ld: %s" #: src/utils.c:323 #, c-format msgid "" "missing `whitespace' character after date part in file `%s'\n" "Line %ld: %s" msgstr "" "`espacio' ausente despuİs de la fecha en el fichero `%s'\n" "L­nea %ld: %s" #: src/utils.c:328 #, c-format msgid "" "file `%s' can't be written\n" "Storage media full!" msgstr "" "no se puede guardar el fichero `%s'\n" "ÂĦMedio de almacenamiento lleno!" #: src/utils.c:333 #, c-format msgid "sending eMail to <%s> failed" msgstr "fall³ al enviar e-mail a <%s>" #: src/utils.c:335 src/utils.c:353 #, c-format msgid "" "\n" "`%s' line %ld: " msgstr "" "\n" "`%s' l­nea %ld: " #: src/utils.c:342 #, c-format msgid "`%s' line %ld: (`%s') `%s%d' failed" msgstr "`%s' l­nea %ld: (`%s') `%s%d' fall³" #: src/utils.c:351 #, c-format msgid "read error in file `%s'" msgstr "error de lectura en el fichero `%s'" #: src/utils.c:359 #, c-format msgid "" "illegal character in response file `%s'\n" "Line %ld: %s" msgstr "" "carĦcter no permitido en fichero de resultados `%s'\n" "L­nea %ld: %s" #: src/utils.c:365 src/tcal.c:332 src/txt2gcal.c:270 src/gcal2txt.c:270 #, c-format msgid "`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'" msgstr "`%s' l­nea %ld: (`%s') tamaħo de tabla incorrecto `sizeof %s>%d'" #: src/utils.c:370 #, c-format msgid "(`%s') date format `%s' is invalid" msgstr "(`%s') el formato de fecha `%s' no es vĦlido" #: src/utils.c:376 #, c-format msgid "%s in search pattern `%s'" msgstr "%s estĦ en el patr³n de bşsqueda `%s'" #: src/utils.c:379 #, c-format msgid "invalid search pattern `%s' specified" msgstr "patr³n de bşsqueda `%s' incorrecto" #: src/utils.c:384 src/tcal.c:340 src/txt2gcal.c:275 src/gcal2txt.c:275 #, c-format msgid "`%s' line %ld: (`%s') unmanaged error (%d)" msgstr "`%s' l­nea %ld: (`%s') error imprevisto (%d)" #: src/utils.c:385 src/tcal.c:333 src/tcal.c:341 src/txt2gcal.c:271 #: src/txt2gcal.c:276 src/gcal2txt.c:271 src/gcal2txt.c:276 #, fuzzy msgid "internal" msgstr "Interno" #: src/utils.c:404 src/tcal.c:360 src/txt2gcal.c:295 src/gcal2txt.c:295 #, c-format msgid "" "\n" "%s: program aborted by signal %d\n" msgstr "" "\n" "%s: programa interrumpido por la seħal %d\n" #: src/utils.c:1081 msgid "th" msgstr "Âş" #: src/utils.c:1085 msgid "st" msgstr "Âş" #: src/utils.c:1089 msgid "nd" msgstr "Âş" #: src/utils.c:1093 msgid "rd" msgstr "Âş" #: src/utils.c:1124 src/utils.c:1175 src/utils.c:1226 msgid "invalid day" msgstr "d­a no vĦlido" # Esto probablemente debe ir en minşsculas. Lo cambio. sv #: src/utils.c:1129 msgid "Mon" msgstr "lun" #: src/utils.c:1134 msgid "Tue" msgstr "mar" #: src/utils.c:1139 msgid "Wed" msgstr "miİ" #: src/utils.c:1144 msgid "Thu" msgstr "jue" #: src/utils.c:1149 msgid "Fri" msgstr "vie" #: src/utils.c:1154 msgid "Sat" msgstr "sĦb" #: src/utils.c:1159 msgid "Sun" msgstr "dom" # dem. sv #: src/utils.c:1180 msgid "Mo" msgstr "lu" #: src/utils.c:1185 msgid "Tu" msgstr "ma" #: src/utils.c:1190 msgid "We" msgstr "mi" #: src/utils.c:1195 msgid "Th" msgstr "ju" #: src/utils.c:1200 msgid "Fr" msgstr "vi" #: src/utils.c:1205 msgid "Sa" msgstr "sĦ" #: src/utils.c:1210 msgid "Su" msgstr "do" # dem. sv #: src/utils.c:1227 msgid "Monday" msgstr "lunes" #: src/utils.c:1227 msgid "Tuesday" msgstr "martes" #: src/utils.c:1227 msgid "Wednesday" msgstr "miİrcoles" #: src/utils.c:1227 msgid "Thursday" msgstr "jueves" #: src/utils.c:1228 msgid "Friday" msgstr "viernes" #: src/utils.c:1228 msgid "Saturday" msgstr "sĦbado" #: src/utils.c:1228 msgid "Sunday" msgstr "domingo" #: src/utils.c:1244 src/utils.c:1321 msgid "invalid month" msgstr "mes invĦlido" # dem. sv #: src/utils.c:1249 msgid "Jan" msgstr "ene" #: src/utils.c:1254 msgid "Feb" msgstr "feb" #: src/utils.c:1259 msgid "Mar" msgstr "mar" #: src/utils.c:1264 msgid "Apr" msgstr "abr" #: src/utils.c:1269 msgid "May" msgstr "may" #: src/utils.c:1274 msgid "Jun" msgstr "jun" #: src/utils.c:1279 msgid "Jul" msgstr "jul" #: src/utils.c:1284 msgid "Aug" msgstr "ago" #: src/utils.c:1289 msgid "Sep" msgstr "sep" #: src/utils.c:1294 msgid "Oct" msgstr "oct" #: src/utils.c:1299 msgid "Nov" msgstr "nov" #: src/utils.c:1304 msgid "Dec" msgstr "dic" #: src/utils.c:1322 msgid "January" msgstr "enero" #: src/utils.c:1322 msgid "February" msgstr "febrero" #: src/utils.c:1323 msgid "March" msgstr "marzo" #: src/utils.c:1323 msgid "April" msgstr "abril" #: src/utils.c:1333 msgid "May " msgstr "mayo" #: src/utils.c:1334 msgid "June" msgstr "junio" #: src/utils.c:1334 msgid "July" msgstr "julio" #: src/utils.c:1335 msgid "August" msgstr "agosto" #: src/utils.c:1335 msgid "September" msgstr "septiembre" #: src/utils.c:1336 msgid "October" msgstr "octubre" #: src/utils.c:1336 msgid "November" msgstr "noviembre" #: src/utils.c:1336 msgid "December" msgstr "diciembre" #: src/tcal.c:193 #, c-format msgid "Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n" msgstr "Modo de empleo: %s [--%s | --%s] | [--%s=[+|-]NšMERO] [ARGUMENTO...]\n" #: src/tcal.c:322 src/txt2gcal.c:260 src/gcal2txt.c:260 #, c-format msgid "" "\n" "%s: abort, " msgstr "" "\n" "%s: abortar, " # Âż"shift value"? sv # valor de desplazamiento - cfuga #: src/tcal.c:337 #, c-format msgid "shift value `%s' is invalid" msgstr "el valor de desplazamiento `%s' es invĦlido" #: src/tcal.c:909 #, c-format msgid "%s: option `--%s' requires an argument" msgstr "%s: la opci³n `--%s' necesita un argumento" #: src/tcal.c:1073 #, c-format msgid "%s: error during program execution of `%s'\n" msgstr "%s: error durante la ejecuci³n de `%s'\n" #: src/txt2gcal.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n" msgstr "Modo de empleo: %s [--%s | --%s] | [fichero-TEXTO | -] [FECHA]\n" #: src/txt2gcal.c:756 src/gcal2txt.c:755 #, c-format msgid "%s: no regular file\n" msgstr "%s: no es un fichero regular\n" #: src/txt2gcal.c:761 src/gcal2txt.c:760 #, c-format msgid "%s: file not found\n" msgstr "%s: fichero no encontrado\n" #: src/gcal2txt.c:132 #, c-format msgid "Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n" msgstr "Modo de empleo: %s [--%s | --%s] | [FICHERO-DE-RECURSOS | -]\n" # Ojo: assume es *suponer*, no asumir. sv # Pequeħo error de traducci³n. cfuga #~ msgid "" #~ " +++ If you specify two digits for the year I DON'T assume %2d%s +++" #~ msgstr "" #~ " +++ Si especifica dos d­gitos para el aħo NO se supondrĦ %2d%s +++" #~ msgid " +++ `%s' is free software, enjoy =8^) +++" #~ msgstr " +++ `%s' es software libre, disfrştelo =8^) +++" #~ msgid "Brunei Darussalam" #~ msgstr "Brunei Darussalam" #~ msgid " %-3s = Any text you like, metacharacters are not respected" #~ msgstr "" #~ " %-3s = Cualquier texto que se quiera, no se respetan los " #~ "metacaracteres" #~ msgid "Compilation options:" #~ msgstr "Opciones de Compilaci³n:" #~ msgid "Starting day of week: %s" #~ msgstr "Primer d­a de la semana: %s" #~ msgid "Type of week numbers: %s" #~ msgstr "Tipo de nşmeros de semana: %s" #~ msgid "Base year of calendar: %d" #~ msgstr "Aħo base del calendario: %d" #~ msgid "Gregorian Reformation: %02d-%02d %s %0*d" #~ msgstr "Reforma gregoriana: %02d-%02d %s %0*d" #~ msgid "Date format: (%s) `%s' (%s)" #~ msgstr "Formato de fecha: (%s) `%s' (%s)" #~ msgid "Respected countries/territories: %d" #~ msgstr "Pa­ses/territorios respetados: %d" #~ msgid "Time offset value of astronomical functions: %s%02d%s%02d == GMT%s" #~ msgstr "" #~ "Valor de desplazamiento de tiempo de las funciones astron³micas: %s%02d%s" #~ "%02d == GMT%s" #~ msgid "or (if this fails) to <%s>." #~ msgstr "o (si no puede) a <%s>." #~ msgid "NULL argument" #~ msgstr "Argumento NULO" #~ msgid "out of space" #~ msgstr "no queda espacio" #~ msgid "too many ()" #~ msgstr "demasiados ()" # NPI -vmv # Corregido. cfuga #~ msgid "junk on end" #~ msgstr "basura al final" #~ msgid "*+ operand could be empty" #~ msgstr "*+ operando podr­a estar vac­o" #~ msgid "nested *?+" #~ msgstr "*?+ anidados" #~ msgid "unmatched []" #~ msgstr "[] no emparejado" # NPI -vmv #~ msgid "internal urp" #~ msgstr "urp interno ??" #~ msgid "?+* follows nothing" #~ msgstr "?+* no sigue a nada" #~ msgid "trailing \\" #~ msgstr "\\ al final" #~ msgid "internal disaster" #~ msgstr "desaste interno" #~ msgid "NULL parameter" #~ msgstr "parĦmetro NULO" # HabrĦ que llevarlo al caso ARNY -vmv #~ msgid "corrupted program" #~ msgstr "programa corrupto" #~ msgid "memory corruption" #~ msgstr "corrupci³n de memoria" #~ msgid "corrupted pointers" #~ msgstr "punteros corruptos" # NPI #~ msgid "internal foulup" #~ msgstr "internal foulup" #~ msgid "start `%c' " #~ msgstr "inicio `%c' " #~ msgid "anchored " #~ msgstr "anclado/a ??" #~ msgid "must have \"%s\"" #~ msgstr "debe tener \"%s\"" #~ msgid "corrupted opcode" #~ msgstr "c³digo de operaci³n incorrecto" #~ msgid "Day number with leading spaces" #~ msgstr "Nşmero del d­a con espacios delante" #~ msgid "Day number with leading zeroes and trailing suffix" #~ msgstr "Nşmero del d­a con ceros delante y sufijo detrĦs" #~ msgid "Day number with leading spaces and trailing suffix" #~ msgstr "Nşmero del d­a con espacios delante y sufijo detrĦs" #~ msgid "Abbreviated month name (3 letters)" #~ msgstr "Nombre abreviado (3 letras) del mes" #~ msgid "Month number with leading zero" #~ msgstr "Nşmero del mes con ceros a la izquierda" #~ msgid "Month number with leading space" #~ msgstr "Nşmero del mes con espacios a la izquierda" #~ msgid "Complete year number with leading zeroes" #~ msgstr "Aħo completo en cifras con ceros delante" #~ msgid "Complete year number with leading spaces" #~ msgstr "Aħo completo en cifras con espacios delante" #~ msgid "Last two digits of year number with leading zero" #~ msgstr "Ultimos dos d­gitos del aħo con ceros delante" #~ msgid "Last two digits of year number with leading space" #~ msgstr "Ultimos dos d­gitos del aħo con espacios delante" #~ msgid "Complete weekday name" #~ msgstr "Nombre completo del d­a de la semana" #~ msgid "Abbreviated weekday name (3 letters)" #~ msgstr "Nombre abreviado (3 letras) del d­a de la semana" #~ msgid "Abbreviated weekday name (2 letters)" #~ msgstr "Nombre abreviado (2 letras) del d­a de la semana" # Nota: A de Aħo. #~ msgid "y" #~ msgstr "a" # M de Mes. #~ msgid "m" #~ msgstr "m" # S de Semana. #~ msgid "w" #~ msgstr "s" # D de D­a. #~ msgid "d" #~ msgstr "d" #~ msgid "Swiss" #~ msgstr "Suizo" #~ msgid "Czech" #~ msgstr "Checo" #~ msgid "Danish" #~ msgstr "Danİs" #~ msgid "Finnish" #~ msgstr "Finlandİs" #~ msgid "British" #~ msgstr "BritĦnico" #~ msgid "Dutch" #~ msgstr "Holandİs" #~ msgid "Polish" #~ msgstr "Polaco" #~ msgid "U.S. American" #~ msgstr "Estadounidense" #~ msgid "Std" #~ msgstr "Est" #~ msgid "Trinity Sunday" #~ msgstr "Domingo de La Trinidad" # Te has comido el hecho de que son eslavos, y Metodicos, o algo as­, es # algo religioso, pero yo tb soy ateo y n.p.i. :-) # #~ msgid "Slav Missionaries Method's Day" #~ msgstr "D­a de los Misioneros" #~ msgid "Puebla's Battle" #~ msgstr "La Batalla de Puebla" # "d­a de la fusi³n racial" -> "d­a contra el racismo" ?? #~ msgid "Breed fusion Day" #~ msgstr "D­a contra el Racismo" #~ msgid "Olsok Eve" #~ msgstr "V­speras de Olsok" # ÂĦA boleo! -vmv #~ msgid "Midsummer's Day" #~ msgstr "D­a del Solsticio de Verano" #~ msgid "Sylvester" #~ msgstr "San Silvestre" # El tal Walpurgis debe ser muy famoso... !?! -vmv #~ msgid "Walpurgis Night" #~ msgstr "Noche de Walpurgis" #~ msgid " %-3s = Email address" #~ msgstr " %-3s = Direcci³n de correo electr³nico" #~ msgid " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr " Entre: [%s%s]%s%s[%s%s]%s" #~ msgid "" #~ "%sh|hh = Help screen; %sL = License; %sV = Version; %su = Suppress " #~ "calendar sheet" #~ msgstr "" #~ "%sh|hh = Pantalla de Ayuda; %sL = Licencia; %sV = Versi³n; %su = " #~ "Suprime hoja de calendario" #~ msgid "%si[-] = Special calendar format; " #~ msgstr "%si[-] = Formato especial de calendario; " #~ msgid "%sp = Simple pager; " #~ msgstr "%sp = Paginador simple; " #~ msgid "%sH yes = Use highlighting" #~ msgstr "%sH yes = Con brillo" #~ msgid "" #~ "%sb %-3s = Year calendar with 1|2|3|4|6|12 blocks; %sH no = Disable " #~ "highlighting" #~ msgstr "" #~ "%sb %-3s = Calendario anual con 1|2|3|4|6|12 bloques; %sH no = Desactiva " #~ "brillo" #~ msgid "%sj[] = Output of consecutive day of year (Modifiers: [b n nb" #~ msgstr "" #~ "%sj[] = Salida del d­a del aħo consecutivo (Modificadores: [b n nb" #~ msgid "" #~ "%ss %-3s = Starting day of week (%s = 0|today | %d|%s | %d|%s | ... | %d|" #~ "%s)" #~ msgstr "" #~ "%ss %-3s = Primer d­a de la semana (%s = 0|today | %d|%s | %d|%s | ... | " #~ "%d|%s)" #~ msgid "%sn|N[%s] = Display eternal holiday list (Year in range: %d...%d)" #~ msgstr "" #~ "%sn|N[%s] = Muestra la lista perpetua de fiestas (Aħo entre: %d...%d)" #~ msgid "" #~ "%sc|C[] = Fixed date list of file `.%s%s'; %sf|F %s[%s%s%s...]=Use file " #~ "%s" #~ msgstr "" #~ "%sc|C[] = Lista de fiestas fijas del fichero `.%s%s'; %sf|F %s[%s%s" #~ "%s...]\n" #~ "=Usar fichero %s" #~ msgid "" #~ "%sc|C[] = Fixed date list of file `%s%s'; %sf|F %s[%s%s%s...]=Use file %s" #~ msgstr "" #~ "%sc|C[] = Lista de fiestas fijas del fichero `%s%s'; %sf|F %s[%s%s" #~ "%s...]\n" #~ "=Usar fichero %s" #~ msgid "" #~ "%s = Month in range: %d...%d List: %s[%s%s]%s...%s" #~ "%s[%s%s]" #~ msgstr "" #~ "%s = Mes entre: %d...%d Lista: %s[%s%s]%s...%s" #~ "%s[%s%s]" #~ msgid "" #~ " or: month name|%s[%s|%s|%s] Range: %s[%s%s]%s%s[%s" #~ "%s]" #~ msgstr "" #~ " o: nombre del mes|%s[%s|%s|%s] Entre: %s[%s%s]%s" #~ "%s[%s%s]" #~ msgid "" #~ "%s = Year in range: %d...%d%*s%*s List: [%s%s]%s%s...%s[%s" #~ "%s]%s" #~ msgstr "" #~ "%s = Aħo entre: %d...%d%*s%*s Lista: [%s%s]%s%s...%s[%s" #~ "%s]%s" #~ msgid "" #~ " Range: [%s%s]%s%s[%s%s]%s" #~ msgstr "" #~ " L­mites: [%s%s]%s%s[%s%s]%s" #~ msgid " on %s" #~ msgstr " en %s" #~ msgid " unknown date" #~ msgstr " fecha desconocida" #~ msgid "" #~ "%s: invalid date given -- %s\n" #~ "%s\n" #~ msgstr "" #~ "%s: fecha no vĦlida -- %s\n" #~ "%s\n" #~ msgid "Abort!" #~ msgstr "ÂĦAbortar!" #~ msgid "" #~ "illegal date variable operation (%s)\n" #~ "%s\n" #~ msgstr "" #~ "operaci³n con variable de fecha no vĦlida (%s)\n" #~ "%s\n" #~ msgid "" #~ "illegal text variable definition (%s)\n" #~ "%s\n" #~ msgstr "" #~ "definici³n de variable de texto no vĦlida (%s)\n" #~ "%s\n" gcal-4.1/po/quot.sed0000644000000000000000000000023113041163512011246 00000000000000s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g gcal-4.1/po/stamp-po0000664000000000000000000000001213041164032011241 00000000000000timestamp gcal-4.1/Makefile.in0000664000000000000000000021574413041163550011235 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acos.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asin.m4 \ $(top_srcdir)/m4/assert.m4 $(top_srcdir)/m4/atan.m4 \ $(top_srcdir)/m4/atan2.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/cond.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/cos.m4 $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/fatal-signal.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fflush.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/floor.m4 \ $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpurge.m4 \ $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fseek.m4 $(top_srcdir)/m4/fseeko.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftell.m4 \ $(top_srcdir)/m4/ftello.m4 $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/limits-h.m4 \ $(top_srcdir)/m4/link.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/log.m4 $(top_srcdir)/m4/log10.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mkostemp.m4 \ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \ $(top_srcdir)/m4/pipe2.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/posix_spawn.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/raise.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/realloc.m4 \ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/sched_h.m4 \ $(top_srcdir)/m4/secure_getenv.m4 \ $(top_srcdir)/m4/sig_atomic_t.m4 $(top_srcdir)/m4/sigaction.m4 \ $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sin.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/spawn-pipe.m4 \ $(top_srcdir)/m4/spawn_h.m4 $(top_srcdir)/m4/sqrt.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strcspn.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strstr.m4 \ $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tan.m4 \ $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/tmpdir.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/wait-process.m4 \ $(top_srcdir)/m4/waitpid.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = install-inf misc/daily/daily misc/ddiff/ddiff \ misc/ddiff/ddiffdrv misc/dst/dst misc/gcalltx/gcalltx \ misc/gcalltx/gcalltxp misc/moon/moon misc/mrms/mrms \ misc/srss/srss misc/wloc/wlocdrv CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/install-inf.in $(top_srcdir)/build-aux/ar-lib \ $(top_srcdir)/build-aux/compile \ $(top_srcdir)/build-aux/config.guess \ $(top_srcdir)/build-aux/config.rpath \ $(top_srcdir)/build-aux/config.sub \ $(top_srcdir)/build-aux/install-sh \ $(top_srcdir)/build-aux/missing \ $(top_srcdir)/misc/daily/daily.in \ $(top_srcdir)/misc/ddiff/ddiff.in \ $(top_srcdir)/misc/ddiff/ddiffdrv.in \ $(top_srcdir)/misc/dst/dst.in \ $(top_srcdir)/misc/gcalltx/gcalltx.in \ $(top_srcdir)/misc/gcalltx/gcalltxp.in \ $(top_srcdir)/misc/moon/moon.in \ $(top_srcdir)/misc/mrms/mrms.in \ $(top_srcdir)/misc/srss/srss.in \ $(top_srcdir)/misc/wloc/wlocdrv.in ABOUT-NLS AUTHORS COPYING \ ChangeLog INSTALL NEWS README THANKS TODO build-aux/ar-lib \ build-aux/compile build-aux/config.guess \ build-aux/config.rpath build-aux/config.sub \ build-aux/install-sh build-aux/missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ACOS_LIBM = @ACOS_LIBM@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASIN_LIBM = @ASIN_LIBM@ ATAN2_LIBM = @ATAN2_LIBM@ ATAN_LIBM = @ATAN_LIBM@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CEIL_LIBM = @CEIL_LIBM@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ COS_LIBM = @COS_LIBM@ CP = @CP@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FLOAT_H = @FLOAT_H@ FLOOR_LIBM = @FLOOR_LIBM@ GCAL_HD_OBJS = @GCAL_HD_OBJS@ GCAL_RC_OBJS = @GCAL_RC_OBJS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ACOSF = @GNULIB_ACOSF@ GNULIB_ACOSL = @GNULIB_ACOSL@ GNULIB_ASINF = @GNULIB_ASINF@ GNULIB_ASINL = @GNULIB_ASINL@ GNULIB_ATAN2F = @GNULIB_ATAN2F@ GNULIB_ATANF = @GNULIB_ATANF@ GNULIB_ATANL = @GNULIB_ATANL@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CBRT = @GNULIB_CBRT@ GNULIB_CBRTF = @GNULIB_CBRTF@ GNULIB_CBRTL = @GNULIB_CBRTL@ GNULIB_CEIL = @GNULIB_CEIL@ GNULIB_CEILF = @GNULIB_CEILF@ GNULIB_CEILL = @GNULIB_CEILL@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ GNULIB_COSF = @GNULIB_COSF@ GNULIB_COSHF = @GNULIB_COSHF@ GNULIB_COSL = @GNULIB_COSL@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXP2 = @GNULIB_EXP2@ GNULIB_EXP2F = @GNULIB_EXP2F@ GNULIB_EXP2L = @GNULIB_EXP2L@ GNULIB_EXPF = @GNULIB_EXPF@ GNULIB_EXPL = @GNULIB_EXPL@ GNULIB_EXPM1 = @GNULIB_EXPM1@ GNULIB_EXPM1F = @GNULIB_EXPM1F@ GNULIB_EXPM1L = @GNULIB_EXPM1L@ GNULIB_FABSF = @GNULIB_FABSF@ GNULIB_FABSL = @GNULIB_FABSL@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ GNULIB_FMA = @GNULIB_FMA@ GNULIB_FMAF = @GNULIB_FMAF@ GNULIB_FMAL = @GNULIB_FMAL@ GNULIB_FMOD = @GNULIB_FMOD@ GNULIB_FMODF = @GNULIB_FMODF@ GNULIB_FMODL = @GNULIB_FMODL@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPF = @GNULIB_FREXPF@ GNULIB_FREXPL = @GNULIB_FREXPL@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_HYPOT = @GNULIB_HYPOT@ GNULIB_HYPOTF = @GNULIB_HYPOTF@ GNULIB_HYPOTL = @GNULIB_HYPOTL@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_ILOGB = @GNULIB_ILOGB@ GNULIB_ILOGBF = @GNULIB_ILOGBF@ GNULIB_ILOGBL = @GNULIB_ILOGBL@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPF = @GNULIB_LDEXPF@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOG = @GNULIB_LOG@ GNULIB_LOG10 = @GNULIB_LOG10@ GNULIB_LOG10F = @GNULIB_LOG10F@ GNULIB_LOG10L = @GNULIB_LOG10L@ GNULIB_LOG1P = @GNULIB_LOG1P@ GNULIB_LOG1PF = @GNULIB_LOG1PF@ GNULIB_LOG1PL = @GNULIB_LOG1PL@ GNULIB_LOG2 = @GNULIB_LOG2@ GNULIB_LOG2F = @GNULIB_LOG2F@ GNULIB_LOG2L = @GNULIB_LOG2L@ GNULIB_LOGB = @GNULIB_LOGB@ GNULIB_LOGBF = @GNULIB_LOGBF@ GNULIB_LOGBL = @GNULIB_LOGBL@ GNULIB_LOGF = @GNULIB_LOGF@ GNULIB_LOGL = @GNULIB_LOGL@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_MODF = @GNULIB_MODF@ GNULIB_MODFF = @GNULIB_MODFF@ GNULIB_MODFL = @GNULIB_MODFL@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@ GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@ GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@ GNULIB_POSIX_SPAWNATTR_GETPGROUP = @GNULIB_POSIX_SPAWNATTR_GETPGROUP@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_GETSIGMASK = @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@ GNULIB_POSIX_SPAWNATTR_INIT = @GNULIB_POSIX_SPAWNATTR_INIT@ GNULIB_POSIX_SPAWNATTR_SETFLAGS = @GNULIB_POSIX_SPAWNATTR_SETFLAGS@ GNULIB_POSIX_SPAWNATTR_SETPGROUP = @GNULIB_POSIX_SPAWNATTR_SETPGROUP@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_SETSIGMASK = @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@ GNULIB_POSIX_SPAWNP = @GNULIB_POSIX_SPAWNP@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT@ GNULIB_POWF = @GNULIB_POWF@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMAINDER = @GNULIB_REMAINDER@ GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RINT = @GNULIB_RINT@ GNULIB_RINTF = @GNULIB_RINTF@ GNULIB_RINTL = @GNULIB_RINTL@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_ROUND = @GNULIB_ROUND@ GNULIB_ROUNDF = @GNULIB_ROUNDF@ GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SINF = @GNULIB_SINF@ GNULIB_SINHF = @GNULIB_SINHF@ GNULIB_SINL = @GNULIB_SINL@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTF = @GNULIB_SQRTF@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TANF = @GNULIB_TANF@ GNULIB_TANHF = @GNULIB_TANHF@ GNULIB_TANL = @GNULIB_TANL@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ HAVE_ATAN2F = @HAVE_ATAN2F@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@ HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@ HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@ HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@ HAVE_DECL_LOGB = @HAVE_DECL_LOGB@ HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_REMAINDER = @HAVE_DECL_REMAINDER@ HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@ HAVE_DECL_RINTF = @HAVE_DECL_RINTF@ HAVE_DECL_ROUND = @HAVE_DECL_ROUND@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FMA = @HAVE_FMA@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LOG10F = @HAVE_LOG10F@ HAVE_LOG10L = @HAVE_LOG10L@ HAVE_LOG1P = @HAVE_LOG1P@ HAVE_LOG1PF = @HAVE_LOG1PF@ HAVE_LOG1PL = @HAVE_LOG1PL@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MODFF = @HAVE_MODFF@ HAVE_MODFL = @HAVE_MODFL@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@ HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@ HAVE_POSIX_SPAWN_FILE_ACTIONS_T = @HAVE_POSIX_SPAWN_FILE_ACTIONS_T@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RINT = @HAVE_RINT@ HAVE_RINTL = @HAVE_RINTL@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCHED_H = @HAVE_SCHED_H@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SINF = @HAVE_SINF@ HAVE_SINHF = @HAVE_SINHF@ HAVE_SINL = @HAVE_SINL@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_SPAWN_H = @HAVE_SPAWN_H@ HAVE_SQRTF = @HAVE_SQRTF@ HAVE_SQRTL = @HAVE_SQRTL@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SCHED_PARAM = @HAVE_STRUCT_SCHED_PARAM@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LIB_POSIX_SPAWN = @LIB_POSIX_SPAWN@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOG10_LIBM = @LOG10_LIBM@ LOG_LIBM = @LOG_LIBM@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_SCHED_H = @NEXT_SCHED_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_SPAWN_H = @NEXT_SPAWN_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PAGER1 = @PAGER1@ PAGER2 = @PAGER2@ PAGER3 = @PAGER3@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ POW_LIBM = @POW_LIBM@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACOSF = @REPLACE_ACOSF@ REPLACE_ASINF = @REPLACE_ASINF@ REPLACE_ATAN2F = @REPLACE_ATAN2F@ REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_COSF = @REPLACE_COSF@ REPLACE_COSHF = @REPLACE_COSHF@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ REPLACE_EXPF = @REPLACE_EXPF@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ REPLACE_FABSL = @REPLACE_FABSL@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ REPLACE_FMA = @REPLACE_FMA@ REPLACE_FMAF = @REPLACE_FMAF@ REPLACE_FMAL = @REPLACE_FMAL@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ REPLACE_LOG10F = @REPLACE_LOG10F@ REPLACE_LOG10L = @REPLACE_LOG10L@ REPLACE_LOG1P = @REPLACE_LOG1P@ REPLACE_LOG1PF = @REPLACE_LOG1PF@ REPLACE_LOG1PL = @REPLACE_LOG1PL@ REPLACE_LOG2 = @REPLACE_LOG2@ REPLACE_LOG2F = @REPLACE_LOG2F@ REPLACE_LOG2L = @REPLACE_LOG2L@ REPLACE_LOGB = @REPLACE_LOGB@ REPLACE_LOGBF = @REPLACE_LOGBF@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_SPAWN = @REPLACE_POSIX_SPAWN@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SINF = @REPLACE_SINF@ REPLACE_SINHF = @REPLACE_SINHF@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TANF = @REPLACE_TANF@ REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SCHED_H = @SCHED_H@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIN_LIBM = @SIN_LIBM@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ SQRT_LIBM = @SQRT_LIBM@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TAN_LIBM = @TAN_LIBM@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ZDUMP = @ZDUMP@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = lib \ po \ src \ misc \ data \ doc EXTRA_DIST = BUGS LIMITATIONS .version BUILT_SOURCES = .version all: $(BUILT_SOURCES) config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 install-inf: $(top_builddir)/config.status $(srcdir)/install-inf.in cd $(top_builddir) && $(SHELL) ./config.status $@ misc/daily/daily: $(top_builddir)/config.status $(top_srcdir)/misc/daily/daily.in cd $(top_builddir) && $(SHELL) ./config.status $@ misc/ddiff/ddiff: $(top_builddir)/config.status $(top_srcdir)/misc/ddiff/ddiff.in cd $(top_builddir) && $(SHELL) ./config.status $@ misc/ddiff/ddiffdrv: $(top_builddir)/config.status $(top_srcdir)/misc/ddiff/ddiffdrv.in cd $(top_builddir) && $(SHELL) ./config.status $@ misc/dst/dst: $(top_builddir)/config.status $(top_srcdir)/misc/dst/dst.in cd $(top_builddir) && $(SHELL) ./config.status $@ misc/gcalltx/gcalltx: $(top_builddir)/config.status $(top_srcdir)/misc/gcalltx/gcalltx.in cd $(top_builddir) && $(SHELL) ./config.status $@ misc/gcalltx/gcalltxp: $(top_builddir)/config.status $(top_srcdir)/misc/gcalltx/gcalltxp.in cd $(top_builddir) && $(SHELL) ./config.status $@ misc/moon/moon: $(top_builddir)/config.status $(top_srcdir)/misc/moon/moon.in cd $(top_builddir) && $(SHELL) ./config.status $@ misc/mrms/mrms: $(top_builddir)/config.status $(top_srcdir)/misc/mrms/mrms.in cd $(top_builddir) && $(SHELL) ./config.status $@ misc/srss/srss: $(top_builddir)/config.status $(top_srcdir)/misc/srss/srss.in cd $(top_builddir) && $(SHELL) ./config.status $@ misc/wloc/wlocdrv: $(top_builddir)/config.status $(top_srcdir)/misc/wloc/wlocdrv.in cd $(top_builddir) && $(SHELL) ./config.status $@ # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all check install install-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-generic distclean-hdr \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am .PRECIOUS: Makefile all-data-local: cp install-inf install-info chmod u+x install-info clean-generic: rm -f install-info .version: echo $(VERSION) > $@-t && mv $@-t $@ # Arrange so that .tarball-version appears only in the distribution # tarball, and never in a checked-out repository. dist-hook: $(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gcal-4.1/maint.mk0000664000000000000000000017447613041163524010640 00000000000000# -*-Makefile-*- # This Makefile fragment tries to be general-purpose enough to be # used by many projects via the gnulib maintainer-makefile module. ## Copyright (C) 2001-2017 Free Software Foundation, Inc. ## ## This program is free software: you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 3 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program. If not, see . # This is reported not to work with make-3.79.1 # ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) ME := maint.mk # Helper variables. _empty = _sp = $(_empty) $(_empty) # _equal,S1,S2 # ------------ # If S1 == S2, return S1, otherwise the empty string. _equal = $(and $(findstring $(1),$(2)),$(findstring $(2),$(1))) # member-check,VARIABLE,VALID-VALUES # ---------------------------------- # Check that $(VARIABLE) is in the space-separated list of VALID-VALUES, and # return it. Die otherwise. member-check = \ $(strip \ $(if $($(1)), \ $(if $(findstring $(_sp),$($(1))), \ $(error invalid $(1): '$($(1))', expected $(2)), \ $(or $(findstring $(_sp)$($(1))$(_sp),$(_sp)$(2)$(_sp)), \ $(error invalid $(1): '$($(1))', expected $(2)))), \ $(error $(1) undefined))) # Do not save the original name or timestamp in the .tar.gz file. # Use --rsyncable if available. gzip_rsyncable := \ $(shell gzip --help 2>/dev/null|grep rsyncable >/dev/null \ && printf %s --rsyncable) GZIP_ENV = '--no-name --best $(gzip_rsyncable)' GIT = git VC = $(GIT) VC_LIST = $(srcdir)/$(_build-aux)/vc-list-files -C $(srcdir) # You can override this variable in cfg.mk if your gnulib submodule lives # in a different location. gnulib_dir ?= $(srcdir)/gnulib # You can override this variable in cfg.mk to set your own regexp # matching files to ignore. VC_LIST_ALWAYS_EXCLUDE_REGEX ?= ^$$ # This is to preprocess robustly the output of $(VC_LIST), so that even # when $(srcdir) is a pathological name like "....", the leading sed command # removes only the intended prefix. _dot_escaped_srcdir = $(subst .,\.,$(srcdir)) # Post-process $(VC_LIST) output, prepending $(srcdir)/, but only # when $(srcdir) is not ".". ifeq ($(srcdir),.) _prepend_srcdir_prefix = else _prepend_srcdir_prefix = | $(SED) 's|^|$(srcdir)/|' endif # In order to be able to consistently filter "."-relative names, # (i.e., with no $(srcdir) prefix), this definition is careful to # remove any $(srcdir) prefix, and to restore what it removes. _sc_excl = \ $(or $(exclude_file_name_regexp--$@),^$$) VC_LIST_EXCEPT = \ $(VC_LIST) | $(SED) 's|^$(_dot_escaped_srcdir)/||' \ | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; \ else grep -Ev -e "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi \ | grep -Ev -e '($(VC_LIST_ALWAYS_EXCLUDE_REGEX)|$(_sc_excl))' \ $(_prepend_srcdir_prefix) ifeq ($(origin prev_version_file), undefined) prev_version_file = $(srcdir)/.prev-version endif PREV_VERSION := $(shell cat $(prev_version_file) 2>/dev/null) VERSION_REGEXP = $(subst .,\.,$(VERSION)) PREV_VERSION_REGEXP = $(subst .,\.,$(PREV_VERSION)) ifeq ($(VC),$(GIT)) this-vc-tag = v$(VERSION) this-vc-tag-regexp = v$(VERSION_REGEXP) else tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]') tag-this-version = $(subst .,_,$(VERSION)) this-vc-tag = $(tag-package)-$(tag-this-version) this-vc-tag-regexp = $(this-vc-tag) endif my_distdir = $(PACKAGE)-$(VERSION) # Old releases are stored here. release_archive_dir ?= ../release # If RELEASE_TYPE is undefined, but RELEASE is, use its second word. # But overwrite VERSION. ifdef RELEASE VERSION := $(word 1, $(RELEASE)) RELEASE_TYPE ?= $(word 2, $(RELEASE)) endif # Validate and return $(RELEASE_TYPE), or die. RELEASE_TYPES = alpha beta stable release-type = $(call member-check,RELEASE_TYPE,$(RELEASE_TYPES)) # Override gnu_rel_host and url_dir_list in cfg.mk if these are not right. # Use alpha.gnu.org for alpha and beta releases. # Use ftp.gnu.org for stable releases. gnu_ftp_host-alpha = alpha.gnu.org gnu_ftp_host-beta = alpha.gnu.org gnu_ftp_host-stable = ftp.gnu.org gnu_rel_host ?= $(gnu_ftp_host-$(release-type)) url_dir_list ?= $(if $(call _equal,$(gnu_rel_host),ftp.gnu.org), \ http://ftpmirror.gnu.org/$(PACKAGE), \ ftp://$(gnu_rel_host)/gnu/$(PACKAGE)) # Override this in cfg.mk if you are using a different format in your # NEWS file. today = $(shell date +%Y-%m-%d) # Select which lines of NEWS are searched for $(news-check-regexp). # This is a sed line number spec. The default says that we search # lines 1..10 of NEWS for $(news-check-regexp). # If you want to search only line 3 or only lines 20-22, use "3" or "20,22". news-check-lines-spec ?= 1,10 news-check-regexp ?= '^\*.* $(VERSION_REGEXP) \($(today)\)' # Prevent programs like 'sort' from considering distinct strings to be equal. # Doing it here saves us from having to set LC_ALL elsewhere in this file. export LC_ALL = C ## --------------- ## ## Sanity checks. ## ## --------------- ## ifneq ($(_gl-Makefile),) _cfg_mk := $(wildcard $(srcdir)/cfg.mk) # Collect the names of rules starting with 'sc_'. syntax-check-rules := $(sort $(shell $(SED) -n \ 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(srcdir)/$(ME) $(_cfg_mk))) .PHONY: $(syntax-check-rules) ifeq ($(shell $(VC_LIST) >/dev/null 2>&1; echo $$?),0) local-checks-available += $(syntax-check-rules) else local-checks-available += no-vc-detected no-vc-detected: @echo "No version control files detected; skipping syntax check" endif .PHONY: $(local-checks-available) # Arrange to print the name of each syntax-checking rule just before running it. $(syntax-check-rules): %: %.m sc_m_rules_ = $(patsubst %, %.m, $(syntax-check-rules)) .PHONY: $(sc_m_rules_) $(sc_m_rules_): @echo $(patsubst sc_%.m, %, $@) @date +%s.%N > .sc-start-$(basename $@) # Compute and print the elapsed time for each syntax-check rule. sc_z_rules_ = $(patsubst %, %.z, $(syntax-check-rules)) .PHONY: $(sc_z_rules_) $(sc_z_rules_): %.z: % @end=$$(date +%s.%N); \ start=$$(cat .sc-start-$*); \ rm -f .sc-start-$*; \ awk -v s=$$start -v e=$$end \ 'END {printf "%.2f $(patsubst sc_%,%,$*)\n", e - s}' < /dev/null # The patsubst here is to replace each sc_% rule with its sc_%.z wrapper # that computes and prints elapsed time. local-check := \ $(patsubst sc_%, sc_%.z, \ $(filter-out $(local-checks-to-skip), $(local-checks-available))) syntax-check: $(local-check) endif # _sc_search_regexp # # This macro searches for a given construct in the selected files and # then takes some action. # # Parameters (shell variables): # # prohibit | require # # Regular expression (ERE) denoting either a forbidden construct # or a required construct. Those arguments are exclusive. # # exclude # # Regular expression (ERE) denoting lines to ignore that matched # a prohibit construct. For example, this can be used to exclude # comments that mention why the nearby code uses an alternative # construct instead of the simpler prohibited construct. # # in_vc_files | in_files # # grep-E-style regexp selecting the files to check. For in_vc_files, # the regexp is used to select matching files from the list of all # version-controlled files; for in_files, it's from the names printed # by "find $(srcdir)". When neither is specified, use all files that # are under version control. # # containing | non_containing # # Select the files (non) containing strings matching this regexp. # If both arguments are specified then CONTAINING takes # precedence. # # with_grep_options # # Extra options for grep. # # ignore_case # # Ignore case. # # halt # # Message to display before to halting execution. # # Finally, you may exempt files based on an ERE matching file names. # For example, to exempt from the sc_space_tab check all files with the # .diff suffix, set this Make variable: # # exclude_file_name_regexp--sc_space_tab = \.diff$ # # Note that while this functionality is mostly inherited via VC_LIST_EXCEPT, # when filtering by name via in_files, we explicitly filter out matching # names here as well. # Initialize each, so that envvar settings cannot interfere. export require = export prohibit = export exclude = export in_vc_files = export in_files = export containing = export non_containing = export halt = export with_grep_options = # By default, _sc_search_regexp does not ignore case. export ignore_case = _ignore_case = $$(test -n "$$ignore_case" && printf %s -i || :) define _sc_say_and_exit dummy=; : so we do not need a semicolon before each use; \ { printf '%s\n' "$(ME): $$msg" 1>&2; exit 1; }; endef define _sc_search_regexp dummy=; : so we do not need a semicolon before each use; \ \ : Check arguments; \ test -n "$$prohibit" && test -n "$$require" \ && { msg='Cannot specify both prohibit and require' \ $(_sc_say_and_exit) } || :; \ test -z "$$prohibit" && test -z "$$require" \ && { msg='Should specify either prohibit or require' \ $(_sc_say_and_exit) } || :; \ test -z "$$prohibit" && test -n "$$exclude" \ && { msg='Use of exclude requires a prohibit pattern' \ $(_sc_say_and_exit) } || :; \ test -n "$$in_vc_files" && test -n "$$in_files" \ && { msg='Cannot specify both in_vc_files and in_files' \ $(_sc_say_and_exit) } || :; \ test "x$$halt" != x \ || { msg='halt not defined' $(_sc_say_and_exit) }; \ \ : Filter by file name; \ if test -n "$$in_files"; then \ files=$$(find $(srcdir) | grep -E "$$in_files" \ | grep -Ev '$(_sc_excl)'); \ else \ files=$$($(VC_LIST_EXCEPT)); \ if test -n "$$in_vc_files"; then \ files=$$(echo "$$files" | grep -E "$$in_vc_files"); \ fi; \ fi; \ \ : Filter by content; \ test -n "$$files" && test -n "$$containing" \ && { files=$$(grep -l "$$containing" $$files); } || :; \ test -n "$$files" && test -n "$$non_containing" \ && { files=$$(grep -vl "$$non_containing" $$files); } || :; \ \ : Check for the construct; \ if test -n "$$files"; then \ if test -n "$$prohibit"; then \ grep $$with_grep_options $(_ignore_case) -nE "$$prohibit" $$files \ | grep -vE "$${exclude:-^$$}" \ && { msg="$$halt" $(_sc_say_and_exit) } || :; \ else \ grep $$with_grep_options $(_ignore_case) -LE "$$require" $$files \ | grep . \ && { msg="$$halt" $(_sc_say_and_exit) } || :; \ fi \ else :; \ fi || :; endef sc_avoid_if_before_free: @$(srcdir)/$(_build-aux)/useless-if-before-free \ $(useless_free_options) \ $$($(VC_LIST_EXCEPT) | grep -v useless-if-before-free) && \ { echo '$(ME): found useless "if" before "free" above' 1>&2; \ exit 1; } || : sc_cast_of_argument_to_free: @prohibit='\&2; \ exit 1; } || : # Error messages should not start with a capital letter sc_error_message_uppercase: @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \ | grep -E '"[A-Z]' \ | grep -vE '"FATAL|"WARNING|"Java|"C#|PRIuMAX' && \ { echo '$(ME): found capitalized error message' 1>&2; \ exit 1; } || : # Error messages should not end with a period sc_error_message_period: @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \ | grep -E '[^."]\."' && \ { echo '$(ME): found error message ending in period' 1>&2; \ exit 1; } || : sc_file_system: @prohibit=file''system \ ignore_case=1 \ halt='found use of "file''system"; spell it "file system"' \ $(_sc_search_regexp) # Don't use cpp tests of this symbol. All code assumes config.h is included. sc_prohibit_have_config_h: @prohibit='^# *if.*HAVE''_CONFIG_H' \ halt='found use of HAVE''_CONFIG_H; remove' \ $(_sc_search_regexp) # Nearly all .c files must include . However, we also permit this # via inclusion of a package-specific header, if cfg.mk specified one. # config_h_header must be suitable for grep -E. config_h_header ?= sc_require_config_h: @require='^# *include $(config_h_header)' \ in_vc_files='\.c$$' \ halt='the above files do not include ' \ $(_sc_search_regexp) # Print each file name for which the first #include does not match # $(config_h_header). Like grep -m 1, this only looks at the first match. perl_config_h_first_ = \ -e 'BEGIN {$$ret = 0}' \ -e 'if (/^\# *include\b/) {' \ -e ' if (not m{^\# *include $(config_h_header)}) {' \ -e ' print "$$ARGV\n";' \ -e ' $$ret = 1;' \ -e ' }' \ -e ' \# Move on to next file after first include' \ -e ' close ARGV;' \ -e '}' \ -e 'END {exit $$ret}' # You must include before including any other header file. # This can possibly be via a package-specific header, if given by cfg.mk. sc_require_config_h_first: @if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \ files=$$($(VC_LIST_EXCEPT) | grep '\.c$$') && \ perl -n $(perl_config_h_first_) $$files || \ { echo '$(ME): the above files include some other header' \ 'before ' 1>&2; exit 1; } || :; \ else :; \ fi sc_prohibit_HAVE_MBRTOWC: @prohibit='\bHAVE_MBRTOWC\b' \ halt="do not use $$prohibit; it is always defined" \ $(_sc_search_regexp) # To use this "command" macro, you must first define two shell variables: # h: the header name, with no enclosing <> or "" # re: a regular expression that matches IFF something provided by $h is used. define _sc_header_without_use dummy=; : so we do not need a semicolon before each use; \ h_esc=`echo '[<"]'"$$h"'[">]'|$(SED) 's/\./\\\\./g'`; \ if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \ files=$$(grep -l '^# *include '"$$h_esc" \ $$($(VC_LIST_EXCEPT) | grep '\.c$$')) && \ grep -LE "$$re" $$files | grep . && \ { echo "$(ME): the above files include $$h but don't use it" \ 1>&2; exit 1; } || :; \ else :; \ fi endef # Prohibit the inclusion of assert.h without an actual use of assert. sc_prohibit_assert_without_use: @h='assert.h' re='\new(file => "/dev/stdin")->as_string'|sed 's/\?://g' # Note this was produced by the above: # _xa1 = \ #x(((2n?)?re|c(har)?|n(re|m)|z)alloc|alloc_(oversized|die)|m(alloc|emdup)|strdup) # But we can do better, in at least two ways: # 1) take advantage of two "dup"-suffixed strings: # x(((2n?)?re|c(har)?|n(re|m)|[mz])alloc|alloc_(oversized|die)|(mem|str)dup) # 2) notice that "c(har)?|[mz]" is equivalent to the shorter and more readable # "char|[cmz]" # x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) _xa1 = x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) _xa2 = X([CZ]|N?M)ALLOC sc_prohibit_xalloc_without_use: @h='xalloc.h' \ re='\<($(_xa1)|$(_xa2)) *\('\ $(_sc_header_without_use) # Extract function names: # perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/hash.h _hash_re = \ clear|delete|free|get_(first|next)|insert|lookup|print_statistics|reset_tuning _hash_fn = \<($(_hash_re)) *\( _hash_struct = (struct )?\<[Hh]ash_(table|tuning)\> sc_prohibit_hash_without_use: @h='hash.h' \ re='$(_hash_fn)|$(_hash_struct)'\ $(_sc_header_without_use) sc_prohibit_cloexec_without_use: @h='cloexec.h' re='\<(set_cloexec_flag|dup_cloexec) *\(' \ $(_sc_header_without_use) sc_prohibit_posixver_without_use: @h='posixver.h' re='\' \ halt='do not use HAVE''_FCNTL_H or O'_NDELAY \ $(_sc_search_regexp) # FIXME: warn about definitions of EXIT_FAILURE, EXIT_SUCCESS, STREQ # Each nonempty ChangeLog line must start with a year number, or a TAB. sc_changelog: @prohibit='^[^12 ]' \ in_vc_files='^ChangeLog$$' \ halt='found unexpected prefix in a ChangeLog' \ $(_sc_search_regexp) # Ensure that each .c file containing a "main" function also # calls bindtextdomain. sc_bindtextdomain: @require='bindtextdomain *\(' \ in_vc_files='\.c$$' \ containing='\
/dev/null \ && : || { die=1; echo $$i; } \ done; \ test $$die = 1 && \ { echo 1>&2 '$(ME): the final line in each of the above is not:'; \ echo 1>&2 'Exit something'; \ exit 1; } || :; \ fi sc_trailing_blank: @prohibit='[ ]$$' \ halt='found trailing blank(s)' \ exclude='^Binary file .* matches$$' \ $(_sc_search_regexp) # Match lines like the following, but where there is only one space # between the options and the description: # -D, --all-repeated[=delimit-method] print all duplicate lines\n longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)? sc_two_space_separator_in_usage: @prohibit='^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \ halt='help2man requires at least two spaces between an option and its description'\ $(_sc_search_regexp) # A regexp matching function names like "error" that may be used # to emit translatable messages. _gl_translatable_diag_func_re ?= error # Look for diagnostics that aren't marked for translation. # This won't find any for which error's format string is on a separate line. sc_unmarked_diagnostics: @prohibit='\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \ exclude='(_|ngettext ?)\(' \ halt='found unmarked diagnostic(s)' \ $(_sc_search_regexp) # Avoid useless parentheses like those in this example: # #if defined (SYMBOL) || defined (SYM2) sc_useless_cpp_parens: @prohibit='^# *if .*defined *\(' \ halt='found useless parentheses in cpp directive' \ $(_sc_search_regexp) # List headers for which HAVE_HEADER_H is always true, assuming you are # using the appropriate gnulib module. CAUTION: for each "unnecessary" # #if HAVE_HEADER_H that you remove, be sure that your project explicitly # requires the gnulib module that guarantees the usability of that header. gl_assured_headers_ = \ cd $(gnulib_dir)/lib && echo *.in.h|$(SED) 's/\.in\.h//g' # Convert the list of names to upper case, and replace each space with "|". az_ = abcdefghijklmnopqrstuvwxyz AZ_ = ABCDEFGHIJKLMNOPQRSTUVWXYZ gl_header_upper_case_or_ = \ $$($(gl_assured_headers_) \ | tr $(az_)/.- $(AZ_)___ \ | tr -s ' ' '|' \ ) sc_prohibit_always_true_header_tests: @or=$(gl_header_upper_case_or_); \ re="HAVE_($$or)_H"; \ prohibit='\<'"$$re"'\>' \ halt=$$(printf '%s\n' \ 'do not test the above HAVE_
_H symbol(s);' \ ' with the corresponding gnulib module, they are always true') \ $(_sc_search_regexp) sc_prohibit_defined_have_decl_tests: @prohibit='(#[ ]*ifn?def|\[ (]+HAVE_DECL_' \ halt='HAVE_DECL macros are always defined' \ $(_sc_search_regexp) # ================================================================== gl_other_headers_ ?= \ intprops.h \ openat.h \ stat-macros.h # Perl -lne code to extract "significant" cpp-defined symbols from a # gnulib header file, eliminating a few common false-positives. # The exempted names below are defined only conditionally in gnulib, # and hence sometimes must/may be defined in application code. gl_extract_significant_defines_ = \ /^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/\ && $$2 !~ /(?:rpl_|_used_without_)/\ && $$1 !~ /^(?:NSIG|ENODATA)$$/\ && $$1 !~ /^(?:SA_RESETHAND|SA_RESTART)$$/\ and print $$1 # Create a list of regular expressions matching the names # of macros that are guaranteed to be defined by parts of gnulib. define def_sym_regex gen_h=$(gl_generated_headers_); \ (cd $(gnulib_dir)/lib; \ for f in *.in.h $(gl_other_headers_); do \ test -f $$f \ && perl -lne '$(gl_extract_significant_defines_)' $$f; \ done; \ ) | sort -u \ | $(SED) 's/^/^ *# *(define|undef) */;s/$$/\\>/' endef # Don't define macros that we already get from gnulib header files. sc_prohibit_always-defined_macros: @if test -d $(gnulib_dir); then \ case $$(echo all: | grep -l -f - Makefile) in Makefile);; *) \ echo '$(ME): skipping $@: you lack GNU grep' 1>&2; exit 0;; \ esac; \ $(def_sym_regex) | grep -E -f - $$($(VC_LIST_EXCEPT)) \ && { echo '$(ME): define the above via some gnulib .h file' \ 1>&2; exit 1; } || :; \ fi # ================================================================== # Prohibit checked in backup files. sc_prohibit_backup_files: @$(VC_LIST) | grep '~$$' && \ { echo '$(ME): found version controlled backup file' 1>&2; \ exit 1; } || : # Require the latest GPL. sc_GPL_version: @prohibit='either ''version [^3]' \ halt='GPL vN, N!=3' \ $(_sc_search_regexp) # Require the latest GFDL. Two regexp, since some .texi files end up # line wrapping between 'Free Documentation License,' and 'Version'. _GFDL_regexp = (Free ''Documentation.*Version 1\.[^3]|Version 1\.[^3] or any) sc_GFDL_version: @prohibit='$(_GFDL_regexp)' \ halt='GFDL vN, N!=3' \ $(_sc_search_regexp) # Don't use Texinfo's @acronym{}. # http://lists.gnu.org/archive/html/bug-gnulib/2010-03/msg00321.html texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$ sc_texinfo_acronym: @prohibit='@acronym\{' \ in_vc_files='$(texinfo_suffix_re_)' \ halt='found use of Texinfo @acronym{}' \ $(_sc_search_regexp) cvs_keywords = \ Author|Date|Header|Id|Name|Locker|Log|RCSfile|Revision|Source|State sc_prohibit_cvs_keyword: @prohibit='\$$($(cvs_keywords))\$$' \ halt='do not use CVS keyword expansion' \ $(_sc_search_regexp) # This Perl code is slightly obfuscated. Not only is each "$" doubled # because it's in a Makefile, but the $$c's are comments; we cannot # use "#" due to the way the script ends up concatenated onto one line. # It would be much more concise, and would produce better output (including # counts) if written as: # perl -ln -0777 -e '/\n(\n+)$/ and print "$ARGV: ".length $1' ... # but that would be far less efficient, reading the entire contents # of each file, rather than just the last two bytes of each. # In addition, while the code below detects both blank lines and a missing # newline at EOF, the above detects only the former. # # This is a perl script that is expected to be the single-quoted argument # to a command-line "-le". The remaining arguments are file names. # Print the name of each file that does not end in exactly one newline byte. # I.e., warn if there are blank lines (2 or more newlines), or if the # last byte is not a newline. However, currently we don't complain # about any file that contains exactly one byte. # Exit nonzero if at least one such file is found, otherwise, exit 0. # Warn about, but otherwise ignore open failure. Ignore seek/read failure. # # Use this if you want to remove trailing empty lines from selected files: # perl -pi -0777 -e 's/\n\n+$/\n/' files... # require_exactly_one_NL_at_EOF_ = \ foreach my $$f (@ARGV) \ { \ open F, "<", $$f or (warn "failed to open $$f: $$!\n"), next; \ my $$p = sysseek (F, -2, 2); \ my $$c = "seek failure probably means file has < 2 bytes; ignore"; \ my $$last_two_bytes; \ defined $$p and $$p = sysread F, $$last_two_bytes, 2; \ close F; \ $$c = "ignore read failure"; \ $$p && ($$last_two_bytes eq "\n\n" \ || substr ($$last_two_bytes,1) ne "\n") \ and (print $$f), $$fail=1; \ } \ END { exit defined $$fail } sc_prohibit_empty_lines_at_EOF: @perl -le '$(require_exactly_one_NL_at_EOF_)' $$($(VC_LIST_EXCEPT)) \ || { echo '$(ME): empty line(s) or no newline at EOF' \ 1>&2; exit 1; } || : # Make sure we don't use st_blocks. Use ST_NBLOCKS instead. # This is a bit of a kludge, since it prevents use of the string # even in comments, but for now it does the job with no false positives. sc_prohibit_stat_st_blocks: @prohibit='[.>]st_blocks' \ halt='do not use st_blocks; use ST_NBLOCKS' \ $(_sc_search_regexp) # Make sure we don't define any S_IS* macros in src/*.c files. # They're already defined via gnulib's sys/stat.h replacement. sc_prohibit_S_IS_definition: @prohibit='^ *# *define *S_IS' \ halt='do not define S_IS* macros; include ' \ $(_sc_search_regexp) # Perl block to convert a match to FILE_NAME:LINENO:TEST, # that is shared by two definitions below. perl_filename_lineno_text_ = \ -e ' {' \ -e ' $$n = ($$` =~ tr/\n/\n/ + 1);' \ -e ' ($$v = $$&) =~ s/\n/\\n/g;' \ -e ' print "$$ARGV:$$n:$$v\n";' \ -e ' }' prohibit_doubled_words_ = \ the then in an on if is it but for or at and do to # expand the regex before running the check to avoid using expensive captures prohibit_doubled_word_expanded_ = \ $(join $(prohibit_doubled_words_),$(addprefix \s+,$(prohibit_doubled_words_))) prohibit_doubled_word_RE_ ?= \ /\b(?:$(subst $(_sp),|,$(prohibit_doubled_word_expanded_)))\b/gims prohibit_doubled_word_ = \ -e 'while ($(prohibit_doubled_word_RE_))' \ $(perl_filename_lineno_text_) # Define this to a regular expression that matches # any filename:dd:match lines you want to ignore. # The default is to ignore no matches. ignore_doubled_word_match_RE_ ?= ^$$ sc_prohibit_doubled_word: @perl -n -0777 $(prohibit_doubled_word_) $$($(VC_LIST_EXCEPT)) \ | grep -vE '$(ignore_doubled_word_match_RE_)' \ | grep . && { echo '$(ME): doubled words' 1>&2; exit 1; } || : # A regular expression matching undesirable combinations of words like # "can not"; this matches them even when the two words appear on different # lines, but not when there is an intervening delimiter like "#" or "*". # Similarly undesirable, "See @xref{...}", since an @xref should start # a sentence. Explicitly prohibit any prefix of "see" or "also". # Also prohibit a prefix matching "\w+ +". # @pxref gets the same see/also treatment and should be parenthesized; # presume it must *not* start a sentence. # POSIX spells it "timestamp" rather than "time\s+stamp", so we do, too. bad_xref_re_ ?= (?:[\w,:;] +|(?:see|also)\s+)\@xref\{ bad_pxref_re_ ?= (?:[.!?]|(?:see|also))\s+\@pxref\{ prohibit_undesirable_word_seq_RE_ ?= \ /(?:\bcan\s+not\b|\btime\s+stamps?\b|$(bad_xref_re_)|$(bad_pxref_re_))/gims prohibit_undesirable_word_seq_ = \ -e 'while ($(prohibit_undesirable_word_seq_RE_))' \ $(perl_filename_lineno_text_) # Define this to a regular expression that matches # any filename:dd:match lines you want to ignore. # The default is to ignore no matches. ignore_undesirable_word_sequence_RE_ ?= ^$$ sc_prohibit_undesirable_word_seq: @perl -n -0777 $(prohibit_undesirable_word_seq_) \ $$($(VC_LIST_EXCEPT)) \ | grep -vE '$(ignore_undesirable_word_sequence_RE_)' | grep . \ && { echo '$(ME): undesirable word sequence' >&2; exit 1; } || : # Except for shell files and for loops, double semicolon is probably a mistake sc_prohibit_double_semicolon: @prohibit='; *;[ {} \]*(/[/*]|$$)' \ in_vc_files='\.[chly]$$' \ exclude='\bfor *\(.*\)' \ halt="Double semicolon detected" \ $(_sc_search_regexp) _ptm1 = use "test C1 && test C2", not "test C1 -''a C2" _ptm2 = use "test C1 || test C2", not "test C1 -''o C2" # Using test's -a and -o operators is not portable. # We prefer test over [, since the latter is spelled [[ in configure.ac. sc_prohibit_test_minus_ao: @prohibit='(\ /dev/null \ || { fail=1; echo 1>&2 "$(ME): $$p uses proper_name_utf8"; }; \ done; \ test $$fail = 1 && \ { echo 1>&2 '$(ME): the above do not link with any ICONV library'; \ exit 1; } || :; \ fi # Warn about "c0nst struct Foo const foo[]", # but not about "char const *const foo" or "#define const const". sc_redundant_const: @prohibit='\bconst\b[[:space:][:alnum:]]{2,}\bconst\b' \ halt='redundant "const" in declarations' \ $(_sc_search_regexp) sc_const_long_option: @prohibit='^ *static.*struct option ' \ exclude='const struct option|struct option const' \ halt='add "const" to the above declarations' \ $(_sc_search_regexp) NEWS_hash = \ $$($(SED) -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p' \ $(srcdir)/NEWS \ | perl -0777 -pe \ 's/^Copyright.+?Free\sSoftware\sFoundation,\sInc\.\n//ms' \ | md5sum - \ | $(SED) 's/ .*//') # Ensure that we don't accidentally insert an entry into an old NEWS block. sc_immutable_NEWS: @if test -f $(srcdir)/NEWS; then \ test "$(NEWS_hash)" = '$(old_NEWS_hash)' && : || \ { echo '$(ME): you have modified old NEWS' 1>&2; exit 1; }; \ fi # Update the hash stored above. Do this after each release and # for any corrections to old entries. update-NEWS-hash: NEWS perl -pi -e 's/^(old_NEWS_hash[ \t]+:?=[ \t]+).*/$${1}'"$(NEWS_hash)/" \ $(srcdir)/cfg.mk # Ensure that we use only the standard $(VAR) notation, # not @...@ in Makefile.am, now that we can rely on automake # to emit a definition for each substituted variable. # However, there is still one case in which @VAR@ use is not just # legitimate, but actually required: when augmenting an automake-defined # variable with a prefix. For example, gettext uses this: # MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@ # otherwise, makeinfo would put German or French (current locale) # navigation hints in the otherwise-English documentation. # # Allow the package to add exceptions via a hook in cfg.mk; # for example, @PRAGMA_SYSTEM_HEADER@ can be permitted by # setting this to ' && !/PRAGMA_SYSTEM_HEADER/'. _makefile_at_at_check_exceptions ?= sc_makefile_at_at_check: @perl -ne '/\@\w+\@/' \ -e ' && !/(\w+)\s+=.*\@\1\@$$/' \ -e ''$(_makefile_at_at_check_exceptions) \ -e 'and (print "$$ARGV:$$.: $$_"), $$m=1; END {exit !$$m}' \ $$($(VC_LIST_EXCEPT) | grep -E '(^|/)(Makefile\.am|[^/]+\.mk)$$') \ && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || : news-check: NEWS $(AM_V_GEN)if $(SED) -n $(news-check-lines-spec)p $< \ | grep -E $(news-check-regexp) >/dev/null; then \ :; \ else \ echo 'NEWS: $$(news-check-regexp) failed to match' 1>&2; \ exit 1; \ fi sc_makefile_TAB_only_indentation: @prohibit='^ [ ]{8}' \ in_vc_files='akefile|\.mk$$' \ halt='found TAB-8-space indentation' \ $(_sc_search_regexp) sc_m4_quote_check: @prohibit='(AC_DEFINE(_UNQUOTED)?|AC_DEFUN)\([^[]' \ in_vc_files='(^configure\.ac|\.m4)$$' \ halt='quote the first arg to AC_DEF*' \ $(_sc_search_regexp) fix_po_file_diag = \ 'you have changed the set of files with translatable diagnostics;\n\ apply the above patch\n' # Generate a list of files in which to search for translatable strings. perl_translatable_files_list_ = \ -e 'foreach $$file (@ARGV) {' \ -e ' \# Consider only file extensions with one or two letters' \ -e ' $$file =~ /\...?$$/ or next;' \ -e ' \# Ignore m4 and mk files' \ -e ' $$file =~ /\.m[4k]$$/ and next;' \ -e ' \# Ignore a .c or .h file with a corresponding .l or .y file' \ -e ' $$file =~ /(.+)\.[ch]$$/ && (-e "$${1}.l" || -e "$${1}.y")' \ -e ' and next;' \ -e ' \# Skip unreadable files' \ -e ' -r $$file or next;' \ -e ' print "$$file ";' \ -e '}' # Verify that all source files using _() (more specifically, files that # match $(_gl_translatable_string_re)) are listed in po/POTFILES.in. po_file ?= $(srcdir)/po/POTFILES.in generated_files ?= $(srcdir)/lib/*.[ch] _gl_translatable_string_re ?= \b(N?_|gettext *)\([^)"]*("|$$) sc_po_check: @if test -f $(po_file); then \ grep -E -v '^(#|$$)' $(po_file) \ | grep -v '^src/false\.c$$' | sort > $@-1; \ files=$$(perl $(perl_translatable_files_list_) \ $$($(VC_LIST_EXCEPT)) $(generated_files)); \ grep -E -l '$(_gl_translatable_string_re)' $$files \ | $(SED) 's|^$(_dot_escaped_srcdir)/||' | sort -u > $@-2; \ diff -u -L $(po_file) -L $(po_file) $@-1 $@-2 \ || { printf '$(ME): '$(fix_po_file_diag) 1>&2; exit 1; }; \ rm -f $@-1 $@-2; \ fi # Sometimes it is useful to change the PATH environment variable # in Makefiles. When doing so, it's better not to use the Unix-centric # path separator of ':', but rather the automake-provided '$(PATH_SEPARATOR)'. msg = 'Do not use ":" above; use $$(PATH_SEPARATOR) instead' sc_makefile_path_separator_check: @prohibit='PATH[=].*:' \ in_vc_files='akefile|\.mk$$' \ halt=$(msg) \ $(_sc_search_regexp) # Check that 'make alpha' will not fail at the end of the process, # i.e., when pkg-M.N.tar.xz already exists (either in "." or in ../release) # and is read-only. writable-files: $(AM_V_GEN)if test -d $(release_archive_dir); then \ for file in $(DIST_ARCHIVES); do \ for p in ./ $(release_archive_dir)/; do \ test -e $$p$$file || continue; \ test -w $$p$$file \ || { echo ERROR: $$p$$file is not writable; fail=1; }; \ done; \ done; \ test "$$fail" && exit 1 || : ; \ else :; \ fi v_etc_file = $(gnulib_dir)/lib/version-etc.c sample-test = tests/sample-test texi = doc/$(PACKAGE).texi # Make sure that the copyright date in $(v_etc_file) is up to date. # Do the same for the $(sample-test) and the main doc/.texi file. sc_copyright_check: @require='enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' \ in_files=$(v_etc_file) \ halt='out of date copyright in $(v_etc_file); update it' \ $(_sc_search_regexp) @require='# Copyright \(C\) '$$(date +%Y)' Free' \ in_vc_files=$(sample-test) \ halt='out of date copyright in $(sample-test); update it' \ $(_sc_search_regexp) @require='Copyright @copyright\{\} .*'$$(date +%Y) \ in_vc_files=$(texi) \ halt='out of date copyright in $(texi); update it' \ $(_sc_search_regexp) # If tests/help-version exists and seems to be new enough, assume that its # use of init.sh and path_prepend_ is correct, and ensure that every other # use of init.sh is identical. # This is useful because help-version cross-checks prog --version # with $(VERSION), which verifies that its path_prepend_ invocation # sets PATH correctly. This is an inexpensive way to ensure that # the other init.sh-using tests also get it right. _hv_file ?= $(srcdir)/tests/help-version _hv_regex_weak ?= ^ *\. .*/init\.sh" # Fix syntax-highlighters " _hv_regex_strong ?= ^ *\. "\$${srcdir=\.}/init\.sh" sc_cross_check_PATH_usage_in_tests: @if test -f $(_hv_file); then \ grep -l 'VERSION mismatch' $(_hv_file) >/dev/null \ || { echo "$@: skipped: no such file: $(_hv_file)" 1>&2; \ exit 0; }; \ grep -lE '$(_hv_regex_strong)' $(_hv_file) >/dev/null \ || { echo "$@: $(_hv_file) lacks conforming use of init.sh" 1>&2; \ exit 1; }; \ good=$$(grep -E '$(_hv_regex_strong)' $(_hv_file)); \ grep -LFx "$$good" \ $$(grep -lE '$(_hv_regex_weak)' $$($(VC_LIST_EXCEPT))) \ | grep . && \ { echo "$(ME): the above files use path_prepend_ inconsistently" \ 1>&2; exit 1; } || :; \ fi # BRE regex of file contents to identify a test script. _test_script_regex ?= \ # In tests, use "compare expected actual", not the reverse. sc_prohibit_reversed_compare_failure: @prohibit='\ vc-diffs || : $(AM_V_at)if test -s vc-diffs; then \ cat vc-diffs; \ echo "Some files are locally modified:" 1>&2; \ exit 1; \ else \ rm vc-diffs; \ fi rel-files = $(DIST_ARCHIVES) gnulib-version = $$(cd $(gnulib_dir) \ && { git describe || git rev-parse --short=10 HEAD; } ) bootstrap-tools ?= autoconf,automake,gnulib gpgv = $$(gpgv2 --version >/dev/null && echo gpgv2 || echo gpgv) # If it's not already specified, derive the GPG key ID from # the signed tag we've just applied to mark this release. gpg_key_ID ?= \ $$(cd $(srcdir) \ && git cat-file tag v$(VERSION) \ | $(gpgv) --status-fd 1 --keyring /dev/null - - 2>/dev/null \ | awk '/^\[GNUPG:\] ERRSIG / {print $$3; exit}') translation_project_ ?= coordinator@translationproject.org # Make info-gnu the default only for a stable release. announcement_Cc_stable = $(translation_project_), $(PACKAGE_BUGREPORT) announcement_mail_headers_stable = \ To: info-gnu@gnu.org \ Cc: $(announcement_Cc_) \ Mail-Followup-To: $(PACKAGE_BUGREPORT) announcement_Cc_alpha = $(translation_project_) announcement_mail_headers_alpha = \ To: $(PACKAGE_BUGREPORT) \ Cc: $(announcement_Cc_) announcement_mail_Cc_beta = $(announcement_mail_Cc_alpha) announcement_mail_headers_beta = $(announcement_mail_headers_alpha) announcement_mail_Cc_ ?= $(announcement_mail_Cc_$(release-type)) announcement_mail_headers_ ?= $(announcement_mail_headers_$(release-type)) announcement: NEWS ChangeLog $(rel-files) # Not $(AM_V_GEN) since the output of this command serves as # announcement message: it would start with " GEN announcement". $(AM_V_at)$(srcdir)/$(_build-aux)/announce-gen \ --mail-headers='$(announcement_mail_headers_)' \ --release-type=$(release-type) \ --package=$(PACKAGE) \ --prev=$(PREV_VERSION) \ --curr=$(VERSION) \ --gpg-key-id=$(gpg_key_ID) \ --srcdir=$(srcdir) \ --news=$(srcdir)/NEWS \ --bootstrap-tools=$(bootstrap-tools) \ $$(case ,$(bootstrap-tools), in (*,gnulib,*) \ echo --gnulib-version=$(gnulib-version);; esac) \ --no-print-checksums \ $(addprefix --url-dir=, $(url_dir_list)) .PHONY: release-commit release-commit: $(AM_V_GEN)cd $(srcdir) \ && $(_build-aux)/do-release-commit-and-tag \ -C $(abs_builddir) $(RELEASE) ## ---------------- ## ## Updating files. ## ## ---------------- ## ftp-gnu = ftp://ftp.gnu.org/gnu www-gnu = http://www.gnu.org upload_dest_dir_ ?= $(PACKAGE) upload_command = \ $(srcdir)/$(_build-aux)/gnupload $(GNUPLOADFLAGS) \ --to $(gnu_rel_host):$(upload_dest_dir_) \ $(rel-files) emit_upload_commands: @echo ===================================== @echo ===================================== @echo '$(upload_command)' @echo '# send the ~/announce-$(my_distdir) e-mail' @echo ===================================== @echo ===================================== .PHONY: upload upload: $(AM_V_GEN)$(upload_command) define emit-commit-log printf '%s\n' 'maint: post-release administrivia' '' \ '* NEWS: Add header line for next release.' \ '* .prev-version: Record previous version.' \ '* cfg.mk (old_NEWS_hash): Auto-update.' endef .PHONY: no-submodule-changes no-submodule-changes: $(AM_V_GEN)if test -d $(srcdir)/.git \ && git --version >/dev/null 2>&1; then \ diff=$$(cd $(srcdir) && git submodule -q foreach \ git diff-index --name-only HEAD) \ || exit 1; \ case $$diff in '') ;; \ *) echo '$(ME): submodule files are locally modified:'; \ echo "$$diff"; exit 1;; esac; \ else \ : ; \ fi submodule-checks ?= no-submodule-changes public-submodule-commit # Ensure that each sub-module commit we're using is public. # Without this, it is too easy to tag and release code that # cannot be built from a fresh clone. .PHONY: public-submodule-commit public-submodule-commit: $(AM_V_GEN)if test -d $(srcdir)/.git \ && git --version >/dev/null 2>&1; then \ cd $(srcdir) && \ git submodule --quiet foreach \ 'test "$$(git rev-parse "$$sha1")" \ = "$$(git merge-base origin "$$sha1")"' \ || { echo '$(ME): found non-public submodule commit' >&2; \ exit 1; }; \ else \ : ; \ fi # This rule has a high enough utility/cost ratio that it should be a # dependent of "check" by default. However, some of us do occasionally # commit a temporary change that deliberately points to a non-public # submodule commit, and want to be able to use rules like "make check". # In that case, run e.g., "make check gl_public_submodule_commit=" # to disable this test. gl_public_submodule_commit ?= public-submodule-commit check: $(gl_public_submodule_commit) .PHONY: alpha beta stable release ALL_RECURSIVE_TARGETS += alpha beta stable alpha beta stable: $(local-check) writable-files $(submodule-checks) $(AM_V_GEN)test $@ = stable \ && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \ || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\ || : $(AM_V_at)$(MAKE) vc-diff-check $(AM_V_at)$(MAKE) news-check $(AM_V_at)$(MAKE) distcheck $(AM_V_at)$(MAKE) dist $(AM_V_at)$(MAKE) $(release-prep-hook) RELEASE_TYPE=$@ $(AM_V_at)$(MAKE) -s emit_upload_commands RELEASE_TYPE=$@ release: $(AM_V_GEN)$(MAKE) _version $(AM_V_GEN)$(MAKE) $(release-type) # Override this in cfg.mk if you follow different procedures. release-prep-hook ?= release-prep gl_noteworthy_news_ = * Noteworthy changes in release ?.? (????-??-??) [?] .PHONY: release-prep release-prep: $(AM_V_GEN)$(MAKE) --no-print-directory -s announcement \ > ~/announce-$(my_distdir) $(AM_V_at)if test -d $(release_archive_dir); then \ ln $(rel-files) $(release_archive_dir); \ chmod a-w $(rel-files); \ fi $(AM_V_at)echo $(VERSION) > $(prev_version_file) $(AM_V_at)$(MAKE) update-NEWS-hash $(AM_V_at)perl -pi \ -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"' \ $(srcdir)/NEWS $(AM_V_at)msg=$$($(emit-commit-log)) || exit 1; \ cd $(srcdir) && $(VC) commit -m "$$msg" -a # Override this with e.g., -s $(srcdir)/some_other_name.texi # if the default $(PACKAGE)-derived name doesn't apply. gendocs_options_ ?= .PHONY: web-manual web-manual: $(AM_V_GEN)test -z "$(manual_title)" \ && { echo define manual_title in cfg.mk 1>&2; exit 1; } || : $(AM_V_at)cd '$(srcdir)/doc'; \ $(SHELL) ../$(_build-aux)/gendocs.sh $(gendocs_options_) \ -o '$(abs_builddir)/doc/manual' \ --email $(PACKAGE_BUGREPORT) $(PACKAGE) \ "$(PACKAGE_NAME) - $(manual_title)" $(AM_V_at)echo " *** Upload the doc/manual directory to web-cvs." .PHONY: web-manual-update web-manual-update: $(AM_V_GEN)cd $(srcdir) \ && $(_build-aux)/gnu-web-doc-update -C $(abs_builddir) # Code Coverage init-coverage: $(MAKE) $(AM_MAKEFLAGS) clean lcov --directory . --zerocounters COVERAGE_CCOPTS ?= "-g --coverage" COVERAGE_OUT ?= doc/coverage build-coverage: $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) check mkdir -p $(COVERAGE_OUT) lcov --directory . --output-file $(COVERAGE_OUT)/$(PACKAGE).info \ --capture gen-coverage: genhtml --output-directory $(COVERAGE_OUT) \ $(COVERAGE_OUT)/$(PACKAGE).info \ --highlight --frames --legend \ --title "$(PACKAGE_NAME)" coverage: $(MAKE) init-coverage $(MAKE) build-coverage $(MAKE) gen-coverage # Some projects carry local adjustments for gnulib modules via patches in # a gnulib patch directory whose default name is gl/ (defined in bootstrap # via local_gl_dir=gl). Those patches become stale as the originals evolve # in gnulib. Use this rule to refresh any stale patches. It applies each # patch to the original in $(gnulib_dir) and uses the temporary result to # generate a fuzz-free .diff file. If you customize the name of your local # gnulib patch directory via bootstrap.conf, this rule detects that name. # Run this from a non-VPATH (i.e., srcdir) build directory. .PHONY: refresh-gnulib-patches refresh-gnulib-patches: gl=gl; \ if test -f bootstrap.conf; then \ t=$$(perl -lne '/^\s*local_gl_dir=(\S+)/ and $$d=$$1;' \ -e 'END{defined $$d and print $$d}' bootstrap.conf); \ test -n "$$t" && gl=$$t; \ fi; \ for diff in $$(cd $$gl; git ls-files | grep '\.diff$$'); do \ b=$$(printf %s "$$diff"|$(SED) 's/\.diff$$//'); \ VERSION_CONTROL=none \ patch "$(gnulib_dir)/$$b" "$$gl/$$diff" || exit 1; \ ( cd $(gnulib_dir) || exit 1; \ git diff "$$b" > "../$$gl/$$diff"; \ git checkout $$b ) || exit 1; \ done # Update gettext files. PACKAGE ?= $(shell basename $(PWD)) PO_DOMAIN ?= $(PACKAGE) POURL = http://translationproject.org/latest/$(PO_DOMAIN)/ PODIR ?= po refresh-po: rm -f $(PODIR)/*.po && \ echo "$(ME): getting translations into po (please ignore the robots.txt ERROR 404)..." && \ wget --no-verbose --directory-prefix $(PODIR) --no-directories --recursive --level 1 --accept .po --accept .po.1 $(POURL) && \ echo 'en@boldquot' > $(PODIR)/LINGUAS && \ echo 'en@quot' >> $(PODIR)/LINGUAS && \ ls $(PODIR)/*.po | $(SED) 's/\.po//;s,$(PODIR)/,,' | \ sort >> $(PODIR)/LINGUAS # Running indent once is not idempotent, but running it twice is. INDENT_SOURCES ?= $(C_SOURCES) .PHONY: indent indent: indent $(INDENT_SOURCES) indent $(INDENT_SOURCES) # If you want to set UPDATE_COPYRIGHT_* environment variables, # put the assignments in this variable. update-copyright-env ?= # Run this rule once per year (usually early in January) # to update all FSF copyright year lists in your project. # If you have an additional project-specific rule, # add it in cfg.mk along with a line 'update-copyright: prereq'. # By default, exclude all variants of COPYING; you can also # add exemptions (such as ChangeLog..* for rotated change logs) # in the file .x-update-copyright. .PHONY: update-copyright update-copyright: $(AM_V_GEN)grep -l -w Copyright \ $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \ | $(update-copyright-env) xargs $(srcdir)/$(_build-aux)/$@ # This tight_scope test is skipped with a warning if $(_gl_TS_headers) is not # overridden and $(_gl_TS_dir)/Makefile.am does not mention noinst_HEADERS. # NOTE: to override any _gl_TS_* default value, you must # define the variable(s) using "export" in cfg.mk. _gl_TS_dir ?= src ALL_RECURSIVE_TARGETS += sc_tight_scope sc_tight_scope: tight-scope.mk @fail=0; \ if ! grep '^ *export _gl_TS_headers *=' $(srcdir)/cfg.mk \ > /dev/null \ && ! grep -w noinst_HEADERS $(srcdir)/$(_gl_TS_dir)/Makefile.am \ > /dev/null 2>&1; then \ echo '$(ME): skipping $@'; \ else \ $(MAKE) -s -C $(_gl_TS_dir) \ -f Makefile \ -f $(abs_top_srcdir)/cfg.mk \ -f $(abs_top_builddir)/$< \ _gl_tight_scope \ || fail=1; \ fi; \ rm -f $<; \ exit $$fail tight-scope.mk: $(ME) @rm -f $@ $@-t @perl -ne '/^# TS-start/.../^# TS-end/ and print' $(srcdir)/$(ME) > $@-t @chmod a=r $@-t && mv $@-t $@ ifeq (a,b) # TS-start # Most functions should have static scope. # Any that don't must be marked with 'extern', but 'main' # and 'usage' are exceptions: they're always extern, but # do not need to be marked. Symbols matching '__.*' are # reserved by the compiler, so are automatically excluded below. _gl_TS_unmarked_extern_functions ?= main usage _gl_TS_function_match ?= /^(?:$(_gl_TS_extern)) +.*?(\w+) *\(/ # If your project uses a macro like "XTERN", then put # the following in cfg.mk to override this default: # export _gl_TS_extern = extern|XTERN _gl_TS_extern ?= extern # The second nm|grep checks for file-scope variables with 'extern' scope. # Without gnulib's progname module, you might put program_name here. # Symbols matching '__.*' are reserved by the compiler, # so are automatically excluded below. _gl_TS_unmarked_extern_vars ?= # NOTE: the _match variables are perl expressions -- not mere regular # expressions -- so that you can extend them to match other patterns # and easily extract matched variable names. # For example, if your project declares some global variables via # a macro like this: GLOBAL(type, var_name, initializer), then you # can override this definition to automatically extract those names: # export _gl_TS_var_match = \ # /^(?:$(_gl_TS_extern)) .*?\**(\w+)(\[.*?\])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/ _gl_TS_var_match ?= /^(?:$(_gl_TS_extern)) .*?(\w+)(\[.*?\])?;/ # The names of object files in (or relative to) $(_gl_TS_dir). _gl_TS_obj_files ?= *.$(OBJEXT) # Files in which to search for the one-line style extern declarations. # $(_gl_TS_dir)-relative. _gl_TS_headers ?= $(noinst_HEADERS) _gl_TS_other_headers ?= *.h .PHONY: _gl_tight_scope _gl_tight_scope: $(bin_PROGRAMS) sed_wrap='s/^/^_?/;s/$$/$$/'; \ t=exceptions-$$$$; \ trap 's=$$?; rm -f $$t; exit $$s' 0; \ for sig in 1 2 3 13 15; do \ eval "trap 'v=`expr $$sig + 128`; (exit $$v); exit $$v' $$sig"; \ done; \ src=`for f in $(SOURCES); do \ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ hdr=`for f in $(_gl_TS_headers); do \ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ ( printf '%s\n' '__.*' $(_gl_TS_unmarked_extern_functions); \ grep -h -A1 '^extern .*[^;]$$' $$src \ | grep -vE '^(extern |--|#)' | $(SED) 's/ .*//; /^$$/d'; \ perl -lne \ '$(_gl_TS_function_match) and print $$1' $$hdr; \ ) | sort -u | $(SED) "$$sed_wrap" > $$t; \ nm -g $(_gl_TS_obj_files)|$(SED) -n 's/.* T //p'|grep -Ev -f $$t \ && { echo the above functions should have static scope >&2; \ exit 1; } || : ; \ ( printf '%s\n' '__.*' main $(_gl_TS_unmarked_extern_vars); \ perl -lne '$(_gl_TS_var_match) and print $$1' \ $$hdr $(_gl_TS_other_headers) \ ) | sort -u | $(SED) "$$sed_wrap" > $$t; \ nm -g $(_gl_TS_obj_files) | $(SED) -n 's/.* [BCDGRS] //p' \ | sort -u | grep -Ev -f $$t \ && { echo the above variables should have static scope >&2; \ exit 1; } || : # TS-end endif gcal-4.1/TODO0000664000000000000000000000323112353366644007660 00000000000000TODO file for Gcal. Planned features: * Create XML output (high priority). * Create more wrapper scripts which produce diverse sheets using Postscript/[La]TeX if output using XML is still unimplemented, for adding to a personal _agenda_ (high priority). I'm waiting for your solutions! * Display more phase data and times of lunar and solar eclipses (high priority). I'm waiting for your solutions! * Add Hinduistic and Buddhistic calendar scheme and holidays (high priority). I'm waiting for your solutions! * Support more country specific date formats which are burned-in into the program itself and are selectable during program start-up (medium priority). I would like to hear your suggestions! * Support more Gregorian Reformation periods which are burned-in into the program itself and are selectable during program start-up (medium priority). I would like to hear your suggestions! * Support systems with Terminfo and without Termcap (low priority). Nothing else to do actually, do *you* see anything missing? Please send comments to my postal or electronic mail address. By the way... I'm looking for volunteers who create a graphical front end to the `gcal' back end. If you are interested in working out such a front end or you have already created one (native X11 and/or Tcl/Tk, Motif, DOZE-Win [NT], WIN 95 or 98 or 2000, OS/2 PM, Apple...), please contact me! Some extended ideas could be part of such a user surface, like formatting of output for different printers or output converted to Postscript/[La]TeX, better time management of fixed dates... gcal-4.1/THANKS0000664000000000000000000000651012441262011010063 00000000000000THANKS file for Gcal. Thanks to all people who reported problems, suggested various improvements and helped me to work out the country specific holiday tables! Here is a partial list of them: Bruno Haible Catherine Bousquet Christian Silge Claus Tondering Claus-Peter Rĵckemann Eric Backus Erick Branderhorst Francesco PotortĴ Herbert Walter Jĥrg Nĥthen Johan Linde John T. Foley Karl Berry Kaveh R. Ghazi Kjetil Torgrim Homme Marcus Daniels Max de MendizĦbal Michel Robitaille Michael Kassidiaris Nicolas Loechner Oleg S. Tihonov Pavel Marek PrimoĊ Peterlin Rainer Perske Stefan Giessler Stephan Forth Sunee Luengtaweekit Torsten Hans Walter Misar William Bader Wojciech Marek Galazka Wolfgang Jung My special thanks to Richard M. Stallman and Fran§ois Pinard ! They gave me a lot of valuable hints and suggestions for Gcal! Lots of thanks to Kai Uwe Rommel , who did the major part of adapting Gcal to OS/2 systems. Special thanks to the Info-ZIP group (), which merely granted me the permission to use their `version_local()' function of `zip-2.1' in a modified way for Gcal (the `print_compiler_info()' function is based on copyrighted code by the Info-ZIP group). Also special thanks to Helmer Aslaksen for his well written `The Mathematics of the Chinese Calendar' paper that is published via , and his helpful comments and discussion about the Chinese and Japanese calendars. Also thanks to Paul Schlyter for his fine `How to compute planetary positions' and `How to compute rise/set times and altitude above horizon' texts published via and . Thanks to Keith Burnett who publishes a lot of diverse --good quality-- astronomical sources and links at . And lots of thanks to Steven L. Moshier for his great `aa.arc' ephemeris calculation software, which inspired me to implement astronomical functions into Gcal to calculate the various data and times of Sun and Moon. gcal-4.1/BUGS0000664000000000000000000000231412353366604007650 00000000000000BUGS file for Gcal. Here are all known bugs of `gcal'; some will be corrected in the future: * It is still possible to create weird output in case the optional format instruction which can be used by text variables in a resource file line now, is set to a non-numerical fixed format and is used by a text variable, which contains any highlighting sequences that are managed by Gcal itself. * By reason of setting the Gregorian Reformation period by a command line option, it is possible to corrupt the calendars likewise the fixed date feature logically (which works correctly now for the year in which the Gregorian Reformation has occurred) if this option is not used with care. * Fixed dates (inclusive lists or ranges of days, or repeated dates) specified without a concrete year (the year YYYY is set to 0) or those which are referenced by a date variable and the date of this date variable is set by a DVAR=`MMWWWN' or DVAR=`*d|wN[WWW]' assignment, the date of these fixed dates isn't computed correctly in most cases in that part of fiscal years or 3-month modes, after the year has changed. * Too many cryptic options and modifiers. gcal-4.1/COPYING0000664000000000000000000007722012244130561010216 00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007, 2011 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS gcal-4.1/LIMITATIONS0000664000000000000000000000550212353366617010712 00000000000000LIMITATIONS file for Gcal. Here are all internal limitations of `gcal': * Number of command line arguments == INT_MAX / sizeof(char *) * Number of month/year list elements given in the command line == INT_MAX / sizeof(Ml_struct *) * Number of response/resource/include files == unlimited * Number of response/resource/include file lines == unlimited * Number of nested include files (but operating system/compiler limits this) == INT_MAX / sizeof(File_struct *) * Length of file names (inclusive `\0') == INT_MAX * Length of contents of environment variables (inclusive `\0') == INT_MAX * Length of a single highlighting sequence (inclusive `\0') == INT_MAX * Number of managed highlighting sequence pairs == 2 * Bytesize of Termcap buffer == 4096 * Number of characters in a string (inclusive `\0') == INT_MAX * Line length of response/resource/include files (inclusive `\0') == INT_MAX * Number of fixed dates == INT_MAX / sizeof(char *) * Number of `%?'... special texts in a resource file line == unlimited * Range of computations in `%?'... special texts of a resource file line == LONG_MIN...LONG_MAX * Number of assignable date variables DVAR in each file nesting level == 24 * Number of assignable text variables TVAR in each file nesting level == 26 * Year range for computing calendar sheets == 1...9999 * Year range for computing the Easter Sunday's date == 30...9999 * Range of months given in the command line == 1/1...12/9999 (== 9999*12 => 119,988 program cycles maximum) * Maximum number of managed _external pager_ programs == 3 * Maximum number of burned-in _eternal holiday_ dates == 1280 if `HD_TOP20CC' is set, otherwise 8192 * Maximum number of clocktime cycle steps during a day for determing dynamical Sun and Moon data and times == 1440 * Maximum number of dynamical Sun and Moon data and times for different locations that can be calculated for a definite clocktime == more than 4.7e+17 * Maximum number of dynamical Sun and Moon data and times for different locations that can be calculated for a whole day == more than 6.7e+20 * Maximum number of dynamical Sun and Moon data and times for different locations that can be calculated for a whole year == more than 2.4e+23 * Maximum number of dynamical Sun and Moon data and times for different locations that can be calculated for the year range 1...9999 == more than 2.4e+27 * Maximum number of different locations for which course angles and air line distance values, respectively, can be calculated == more than 2.8e+32 gcal-4.1/ChangeLog0000664000000000000000000000000012244130561010713 00000000000000gcal-4.1/src/0000775000000000000000000000000013041164075010025 500000000000000gcal-4.1/src/rc-insert.h0000664000000000000000000000271112353516662012035 00000000000000#ifndef __RC_INSERT_H # define __RC_INSERT_H /*! * \file rc-insert.h * \brief Inserts a line (of a resource file) * into `rc_elems_table[]' header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: rc-insert.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* * The REGEX stuff. */ # if HAVE_RE_COMP extern int re_exec (); # endif /* ************************************************** Defined in `rc-insert.c'. */ extern void insert_line_into_table __P_ ((char *line_buffer, const char *filename, const long line_number, int *rc_elems, int len_date, int print_twice)); __END_DECLARATIONS #endif /* __RC_INSERT_H */ gcal-4.1/src/rc-defs.h0000664000000000000000000010533012353516654011454 00000000000000#ifndef __RC_DEFS_H # define __RC_DEFS_H /*! * \file rc-defs.h * \brief Fixed dates/resource file specific statements, macros, * typedefs, global variable declarations... */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: rc-defs.h 3.01 2000/06/20 03:00:01 tom Exp $ */ /* * Preprocessor statements for the exit codes. */ /* * Configuration dependent values. */ # define ERR_NO_FIXED_DATES_LISTED 1 # define ERR_EXTERNAL_CMD_FAILURE 2 # define ERR_MAINTAINER_FAILURE 50 # define ERR_INVALID_REGEX_PATTERN 104 # define ERR_ILLEGAL_VAR_DEFINITION 105 # define ERR_INVALID_VAR_ASSIGNMENT 112 # define ERR_INVALID_VAR_REFERENCE 113 # define ERR_ILLEGAL_VAR_OPERATION 114 # define ERR_NO_SEPARATOR_CHAR 116 # define ERR_INVALID_NWD_FIELD 117 # define ERR_FILE_NOT_FOUND 118 # define ERR_CYCLIC_INCLUDE 119 # define ERR_MALFORMED_INCLUDE 120 # define ERR_INVALID_DAY_FIELD 121 # define ERR_INVALID_MONTH_FIELD 122 # define ERR_INVALID_DATE_FIELD 123 /* * Preprocessor statements for long options `Lopt_struct' field `symbolic_name'. */ /* Configuration dependent values. */ # define SYM_ADJUST_VALUE 200 # define SYM_ALTERNATIVE_FORMAT 201 # define SYM_ATMOSPHERE 202 # define SYM_BIORHYTHM_AXIS_LEN 203 # define SYM_CYCLE_END 204 # define SYM_CYCLE_STEP 205 # define SYM_DATE_VARIABLE 206 # define SYM_DESC_FIXED_DATES_LIST 207 # define SYM_END_OF_MONTH 208 # define SYM_END_OF_WEEK 209 # define SYM_END_OF_YEAR 210 # define SYM_EXCLUDE_RC_TITLE 211 # define SYM_EXECUTE_COMMAND 212 # define SYM_extern_static_DVARS 213 # define SYM_extern_static_TVARS 214 # define SYM_FILTER_DAY 215 # define SYM_FILTER_PERIOD 216 # define SYM_FILTER_TEXT 217 # define SYM_FIXED_DATES 218 # define SYM_FIXED_DATES_LIST 219 # define SYM_GROUPING_TEXT 220 # define SYM_HEADING_TEXT 221 # define SYM_HERE_FILE 222 # define SYM_IGNORE_CASE 223 # define SYM_INCLUDE_CONS_NUMBER 224 # define SYM_INCLUDE_FILENAME 225 # define SYM_INCLUDE_HOLIDAY 226 # define SYM_INCLUDE_TODAY 227 # define SYM_INCLUDE_WEEK_NUMBER 228 # define SYM_LEAP_DAY 229 # define SYM_LIMIT 230 # define SYM_LIST_MODE 231 # define SYM_MONTH 232 # define SYM_MOONIMAGE_LINES 233 # define SYM_OMIT_DATE_PART 234 # define SYM_PERIOD 235 # define SYM_PRECISE 236 # define SYM_RESOURCE_FILE 237 # define SYM_REVERT_MATCH 238 # define SYM_START_OF_MONTH 239 # define SYM_START_OF_WEEK 240 # define SYM_START_OF_YEAR 241 # define SYM_SUPPRESS_DATE_PART 242 # define SYM_SUPPRESS_FDLIST_SEP 243 # define SYM_SUPPRESS_TEXT_PART 244 # define SYM_TEXT_VARIABLE 245 # define SYM_TODAY 246 # define SYM_TOMORROW 247 # define SYM_WEEK 248 # define SYM_YEAR 249 # define SYM_ZERO_DATES 250 /* * Further preprocessor symbols. */ /*! Number of default 2-month mode rows both dates. */ # define A2_OUT_ROWS 1 /*! Number of default 2-month mode columns both dates. */ # define A2_OUT_COLS 2 /*! Number of default 2-month mode rows both dates. */ # define B2_OUT_ROWS 2 /*! Number of default 2-month mode columns both dates. */ # define B2_OUT_COLS 1 /* * Additional usage texts. */ # define USAGE_RC1 "CDFIP" # define USAGE_RC2 "cf" # define USAGE_RC3 "r" # define USAGE_RC4 "v" /* * Now define the user and system data directories of Gcal's resource files. * Please note: If your compiler does not support the ANSI-C string * concatenation feature like `"foo""bar" => "foobar"' * you have to provide your Makefile with the appropriate * texts referenced by GCAL_USR_DATADIR and GCAL_SYS_DATADIR * to avoid compilation errors. */ /*! Access file relative to $HOME directory. */ # ifndef GCAL_USR_DATADIR # define GCAL_USR_DATADIR "share"DIR_SEP""PACKAGE_NAME # endif /*! Access file absolute to root directory. */ # ifndef GCAL_SYS_DATADIR # define GCAL_SYS_DATADIR DIR_SEP"usr"DIR_SEP"local"DIR_SEP"share"DIR_SEP""PACKAGE_NAME # endif /* * Specific preprocessor statements for fixed dates/resource files. */ /*! Default number of `rc_elems_table[]' entries. */ # ifndef RC_ELEMS_MAX # define RC_ELEMS_MAX 1024 # endif /*! Default number of `rc_files_table[]' entries. */ # ifndef RC_FILES_MAX # define RC_FILES_MAX 8 # endif /*! Maximum number of date variables. */ # define RC_DVAR_MAX 26 /*! Maximum number of text variables. */ # define RC_TVAR_MAX RC_DVAR_MAX /*! Separator of a list of days (WWW,WWW... or NWWW,NWWW... or WWWN,WWWN...). */ # define RC_DLIST_CHAR ',' /*! Separator of a range of days (WWW#WWW or NWWW#NWWW or WWWN#WWWN). */ # define RC_DRANGE_CHAR '#' /*! Separator of a "repeat for N days since..." coding (e.g.: YYYYMMDD:10). */ # define RC_REPEAT_CHAR ':' /*! Separator of a "appears each N'th day since..." coding (e.g.: YYYYMMDD:10.3). */ # define RC_APPEARS_CHAR '.' /*! Leading char of a modified actual date %DATE. */ # define RC_ADATE_CHAR '%' /*! RC-file holiday/date-variable prefix in date part. */ # define RC_HDY_CHAR '@' /*! RC-file N'th weekday prefix in date part. */ # define RC_NWD_CHAR '*' /*! Inserts a real newline '\n' character if found and breaks to colomn 1. */ # define RC_NL_CHAR '~' /*! Inserts a real newline '\n' character if found. */ # define RC_NL2_CHAR '^' /*! Leading char of a @easter date part. */ # define RC_EASTER_CHAR 'e' /*! Leading char of a @today date part. */ # define RC_TODAY_CHAR 't' /*! Modifier for selecting the 12-hrs format in %[gm]time* or %sun* or %moon* special texts. */ # define RC_12_HOURS_FORMAT_CHAR '*' /*! Assignment operator of a date/text variable (DVAR=MMDD, $TVAR=TEXT). */ # define RC_VAR_ASSIGN "=" /*! Interpreted command assignment of a text variable ($TVAR?COMMAND). */ # define RC_TVAR_ICMD_ASSIGN "?" /*! Uninterpreted command assignment of a text variable ($TVAR:COMMAND). */ # define RC_TVAR_UCMD_ASSIGN ":" /*! Add operator of a date/text variable ([D|$T]VAR++ | [D|$T]VAR+=N ...). */ # define RC_VAR_ADD "+" /*! Subtract operator of a date variable ([D|$T]VAR-- | [D|$T]VAR-=N ...). */ # define RC_VAR_SUB "-" /*! RC-file text variable prefix. */ # define RC_TVAR_CHAR '$' /*! Default grouping text of fixed date list option `-cg'. */ # define RC_GROUP_SEP "" /*! Name of RC-file include statement (upper-case). */ # define RC_INCL_STMENT "#include" /*! User include file name starts with. */ # define RC_INCL_USR_ID "\"" /*! User include file name ends with. */ # define RC_INCL_USR_OD RC_INCL_USR_ID /*! System include file name start with. */ # define RC_INCL_SYS_ID "<" /*! System include file name ends with. */ # define RC_INCL_SYS_OD ">" /*! Environment variable name for user datadir. */ # define ENV_VAR_USR_DATADIR "GCAL_USR_DATADIR" /*! Environment variable name for system datadir. */ # define ENV_VAR_SYS_DATADIR "GCAL_SYS_DATADIR" /*! Name part of default resource file. */ # define RC_SUFFIX "rc" /*! Text displayed if an invalid parameter is given to %[gm]time* or %distance or %sun* or %moon*. */ # define RC_INVALID_PARAM_TEXT "??" /*! Text displayed if an invalid value is computed in %[gm]time* or %distance or %sun* or %moon*. */ # define RC_INVALID_VALUE_TEXT "**" /*! Text displayed if there is no rise/set/transit time because the astronomical object is always above the requested horizon in %sun* or %moon*. */ # define RC_A_ABOVE_VALUE_TEXT "++" /*! Text displayed if there is no rise/set/transit time because the astronomical object is always below the requested horizon in %sun* or %moon*. */ # define RC_A_BELOW_VALUE_TEXT "--" /*! Separator used between two coordinates in %distance. */ # define RC_COORDINATE_SEP "/" /*! Modifier for selecting the statute miles format in %distance special texts. */ # define RC_SMILES_FORMAT_CHAR RC_12_HOURS_FORMAT_CHAR /*! Output redirection symbol. */ # ifndef REDIRECT_OUT # define REDIRECT_OUT ">" # endif /*! Pipelining symbol. */ # ifndef PIPELINE # define PIPELINE "|" # endif /*! Name of default Txt2gcal program if $TXT2GCALPROG is not set. */ # ifndef TXT2GCAL_PRGR # define TXT2GCAL_PRGR "txt2gcal" # endif /*! Name of environment variable for accessing the Txt2gcal program. */ # ifndef ENV_VAR_TXT2GCALPROG # define ENV_VAR_TXT2GCALPROG "TXT2GCALPROG" # endif /*! * Kilometers to statute miles. */ # define KM2SM(x) ((x) * 0.621371192237) /*! * Astronomical units to kilometers. */ # define AU2KM(x) ((x) * ASTRONOMICAL_UNIT) /*! * Earth-equator radii to kilometers. */ # define ER2KM(x) ((x) * EQUATOR_EARTH_RADIUS * 0.001) /* * The suffixes used by the Moon phase special texts. */ # define MOON_MIN "!" # define MOON_MAX "@" # define MOON_WANES "-" # define MOON_WAXES "+" /* * The minimum, maximum and default number of lines of the Moon phase text graphics image. */ # define MOONIMAGE_MIN 6 # define MOONIMAGE_MAX 30 # define MOONIMAGE_DEF 12 /* * The widgets of the Moon phase text graphics image. */ # define MOONIMAGE_BRIGHT MOON_MAX # define MOONIMAGE_LEDGE "(" # define MOONIMAGE_REDGE ")" /* * Some constant values necessary for using the %distance* * or %sun* and %moon* special texts. */ # define COOR_LON_DEG_MAX ((int)DEGS_PER_12_HOURS) # define COOR_LON_MIN_MAX MINS_PER_HOUR # define COOR_LON_SEC_MAX SECS_PER_MIN # define COOR_LAT_DEG_MAX ((int)DEGS_PER_06_HOURS) # define COOR_LAT_MIN_MAX MINS_PER_HOUR # define COOR_LAT_SEC_MAX SECS_PER_MIN /* * The astronomical objects. */ # define AOBJ_NONE SPECIAL_VALUE # define AOBJ_SUN 0 # define AOBJ_MOON 1 /*! * The codes that define the output and error format types used for * formatting the data of the %sun*, %moon* and %distance special texts. */ # define FMT_NIL SYM_NIL /*! Number with[out] fraction. */ # define FMT_NNN 1 /*! Number with fraction. */ # define FMT_NND 2 /*! Number with sign and fraction. */ # define FMT_NSD 3 /*! Hour and minute [and second+fraction]. */ # define FMT_HHH 4 /*! Value in hours and minutes [and seconds+fraction]. */ # define FMT_TTT 5 /*! Value in hours and minutes [and seconds+fraction] with sign. */ # define FMT_TTS 6 /*! Value in hours and minutes with sign. */ # define FMT_TXS 7 /*! Degree and minute [and second+fraction]. */ # define FMT_DDD 8 /* Degree and minute [and second+fraction] with sign. */ # define FMT_DDS 9 # define ERR_NIL FMT_NIL # define ERR_NNN 1 # define ERR_HHH 2 # define ERR_TTT 3 # define ERR_DDD 4 /* * The suffixes used by the biorhythm special texts. */ # define BIO_WANES MOON_WANES # define BIO_WAXES MOON_WAXES # define BIO_STABLE MOON_MAX # define BIO_CRITICAL MOON_MIN # define BIO_OVERLAPS BIO_STABLE /* * The minimum, maximum and default single length of the biorhythm text graphics bar. */ /*! Minimum value that is divided by 2 without a remainder. */ # define BIO_AXIS_MIN 1 /*! Maximum value that is divided by 2 without a remainder. */ # define BIO_AXIS_MAX 100 /*! Default value that divides BIO_AXIS_MAX without a remainder. */ # define BIO_AXIS_DEF 20 /* * Some scaling symbols/macros needed for creating the biorhythm text graphics bar. */ # define BIO_AXIS_EXTRA 2 # define BIO_AXIS_SCALE(x) (100/(x)) # define BIO_AXIS_ZERO(x) (BIO_AXIS_EXTRA+(x)) # define BIO_AXIS_TOTAL(x) (((x)*2)+(BIO_AXIS_EXTRA*2)+2) /*! Default timestep value in minutes used within a cycle. */ # define DEFAULT_CYCLE_STEP 1 /*! * Prefix character of a "special text" given in a line of a Gcal resource file. */ # define RC_SPECIAL_TEXT_CHAR DFORMAT_CHAR /* * %?[TEXT_TILL_EOL] --- Runs commands. */ /*! %shell escape special text. */ # define RC_SHELL_ESC_CHAR '!' /* * %?TEXT --- Inserts contents of environment variable. */ /*! %shell environment variable special text. */ # define RC_ENV_VAR_CHAR '-' /* * %? --- Excludes special dates. */ /*! Exclude if date is in eternal holiday list (legal days only). */ # define RC_EX_LHDY_CHAR 'V' /*! Exclude if date is not in eternal holiday list (legal days only). */ # define RC_EX_NLHDY_CHAR 'v' /*! Exclude if date is in eternal holiday list (all days). */ # define RC_EX_AHDY_CHAR 'X' /*! Exclude if date is not in eternal holiday list (all days). */ # define RC_EX_NAHDY_CHAR 'x' /*! Exclude if date is a Monday. */ # define RC_EX_MON_CHAR 'A' /*! Exclude if date is no Monday. */ # define RC_EX_NMON_CHAR 'a' /*! Exclude if date is a Tuesday. */ # define RC_EX_TUE_CHAR 'C' /*! Exclude if date is no Tuesday. */ # define RC_EX_NTUE_CHAR 'c' /*! Exclude if date is a Wednesday. */ # define RC_EX_WED_CHAR 'F' /*! Exclude if date is no Wednesday. */ # define RC_EX_NWED_CHAR 'f' /*! Exclude if date is a Thursday. */ # define RC_EX_THU_CHAR 'G' /*! Exclude if date is no Thursday. */ # define RC_EX_NTHU_CHAR 'g' /*! Exclude if date is a Friday. */ # define RC_EX_FRI_CHAR 'H' /*! Exclude if date is no Friday. */ # define RC_EX_NFRI_CHAR 'h' /*! Exclude if date is a Saturday. */ # define RC_EX_SAT_CHAR 'L' /*! Exclude if date is no Saturday. */ # define RC_EX_NSAT_CHAR 'l' /*! Exclude if date is a Sunday. */ # define RC_EX_SUN_CHAR 'P' /*! Exclude if date is no Sunday. */ # define RC_EX_NSUN_CHAR 'p' /*! Exclude if date is a Monday...Thursday. */ # define RC_EX_MON_2_THU_CHAR 'Q' /*! Exclude if date is no Monday...Thursday. */ # define RC_EX_NMON_2_THU_CHAR 'q' /*! Exclude if date is a Monday...Friday. */ # define RC_EX_MON_2_FRI_CHAR 'R' /*! Exclude if date is no Monday...Friday. */ # define RC_EX_NMON_2_FRI_CHAR 'r' /* * %?[STARTING_DATE][#[ENDING_DATE]] --- Excludes special dates. */ /*! %inclusive date special text. */ # define RC_IDATE_CHAR 'i' /*! %exclusive date special text. */ # define RC_EDATE_CHAR 'e' /* * %?[DATE] --- Creates special texts. */ /*! %weekday name special text. */ # define RC_WDNAME_CHAR WDNAME_CHAR /*! %weekday number (Mon=1...Sun=7) special text. */ # define RC_WDNR_M1_2_S7_CHAR 'W' /*! %weekday number (Mon=0...Sun=6) special text. */ # define RC_WDNR_M0_2_S6_CHAR 'E' /*! %weekday number (Sun=1...Sat=7) special text. */ # define RC_WDNR_S1_2_S7_CHAR 'I' /*! %weekday number (Sun=0...Sat=6) special text. */ # define RC_WDNR_S0_2_S6_CHAR 'J' /*! %weekday number (Monday=1...Sunday=7) special text. */ # define RC_WDNR_X1_2_X7_CHAR 'S' /*! %weekday number (Monday=0...Sunday=6) special text. */ # define RC_WDNR_X0_2_X6_CHAR 'T' /*! %day of year number special text. */ # define RC_DOYNR_CHAR 'N' /*! %day number special text. */ # define RC_DAYNR_CHAR DAYNR_CHAR /*! %month name special text. */ # define RC_MONTHNAME_CHAR MONTHNAME_CHAR /*! %month number special text. */ # define RC_MONTHNR_CHAR MONTHNR_CHAR /*! %year number special text. */ # define RC_YEARNR_CHAR YEARNR_CHAR /*! %week number special text. */ # define RC_WEEKNR_CHAR 'k' /*! %birth age number special text. */ # define RC_BYEAR_CHAR 'B' /*! %moon phase special text. */ # define RC_MOON_CHAR 'O' /*! %moon phase text graphics image. */ # define RC_MOON_IMAGE_CHAR 'Z' /*! %biorhythm special text. */ # define RC_BIO_CHAR ',' /*! %biorhythm text graphics bar. */ # define RC_BIO_BAR_CHAR ';' /* * %?[OTHER_MODIFIER] --- Creates special texts. */ /*! %textual date special text. */ # define RC_TDATE_CHAR 'n' /*! %julian days since 1.5-Jan-4713 BCE special text. */ # define RC_JDAYS_CHAR 'j' /*! %time special text. */ # define RC_TIME_CHAR 't' /*! %time total minutes special text. */ # define RC_TIME_TMI_CHAR '\'' /*! %time hour special text. */ # define RC_TIME_HR_CHAR '_' /*! %time minute special text. */ # define RC_TIME_MI_CHAR '?' /*! %time `am|pm' suffix special text. */ # define RC_TIME_AMPM_CHAR '{' /*! %gmtime special text. */ # define RC_GMTIME_CHAR '@' /*! %gmtime total minutes special text. */ # define RC_GMTIME_TMI_CHAR '`' /*! %gmtime hour special text. */ # define RC_GMTIME_HR_CHAR '.' /*! %gmtime minute special text. */ # define RC_GMTIME_MI_CHAR '/' /*! %gmtime `am|pm' suffix special text. */ # define RC_GMTIME_AMPM_CHAR '}' /*! %timezone offset based on local time zone special text. */ # define RC_LT_ZONE_OFFS_CHAR '=' /*! %timezone offset based on UTC/GMT zone special text. */ # define RC_UT_ZONE_OFFS_CHAR '"' /*! %distance between two geographical point locations special text */ # define RC_DISTANCE_CHAR 'b' /*! %sunrise special text. */ # define RC_SUN_RISE_CHAR 'o' /*! %sunset special text. */ # define RC_SUN_SET_CHAR 's' /*! %day length special text. */ # define RC_SUN_DAY_CHAR 'u' /*! %night length special text. */ # define RC_SUN_NIGHT_CHAR 'z' /*! %moonrise special text. */ # define RC_MOON_RISE_CHAR '(' /*! %moonset special text. */ # define RC_MOON_SET_CHAR ')' /*! %moons-day length special text. */ # define RC_MOON_DAY_CHAR '[' /*! %moons-night length special text. */ # define RC_MOON_NIGHT_CHAR ']' /* * %? --- Creates difference values. */ /*! %day difference special text. */ # define RC_DAY_DIFF_CHAR 'd' /*! %week difference special text. */ # define RC_WEEK_DIFF_CHAR 'w' /*! %month difference special text. */ # define RC_MONTH_DIFF_CHAR 'm' /*! %year | %year[DATE] difference special text. */ # define RC_YEAR_DIFF_CHAR 'y' /* * %? --- Emits highlighting sequences/marking characters. */ /*! %highlighting sequence 1 enable special text. */ # define RC_HLS1S_CHAR HLS1S_CHAR /*! %highlighting sequence 1 disable special text. */ # define RC_HLS1E_CHAR HLS1E_CHAR /*! %highlighting sequence 2 enable special text. */ # define RC_HLS2S_CHAR '3' /*! %highlighting sequence 2 disable special text. */ # define RC_HLS2E_CHAR '4' /*! %highlighting sequence 1 enable special text if fixed date is on today's date. */ # define RC_HLS3S_CHAR '5' /*! %highlighting sequence 1 disable special text if fixed date is on today's date. */ # define RC_HLS3E_CHAR '6' /*! %highlighting sequence 2 enable special text if fixed date is on a legal holiday date. */ # define RC_HLS4S_CHAR '7' /*! %highlighting sequence 2 disable special text if fixed date is on a legal holiday date. */ # define RC_HLS4E_CHAR '8' /*! %highlighting sequence 1|2 enable special text if fixed date is on today's or legal holiday date. */ # define RC_HLS5S_CHAR '9' /*! %highlighting sequence 1|2 disable special text if fixed date is on today's or legal holiday date. */ # define RC_HLS5E_CHAR '0' /* * Common preprocessor macros for fixed dates/resource files. */ # ifdef IDX # undef IDX # endif # define IDX(gc_c) (tolower((gc_c)) - 'a') # ifdef CHR2DIG # undef CHR2DIG # endif # define CHR2DIG(gc_c) ((gc_c) - '0') # ifdef DIG2CHR # undef DIG2CHR # endif # define DIG2CHR(gc_x) ((gc_x) + '0') # ifdef CUT_LONGNAMES /* * Cut resp., replace some long variable or function names to 6 significant * places so ANY linker should be able to bind an executable file. */ # define bio_emo_ptext V_bet # define bio_emo_phase V_bep # define bio_emo_waxes V_bew # define bio_int_ptext V_bit # define bio_int_phase V_bip # define bio_int_waxes V_biw # define bio_phy_ptext V_bpt # define bio_phy_phase V_bpp # define bio_phy_waxes V_bpw # define bio_positive_day V_bpd # define exclusive_date_map V_edm # define exclusive_weekday_map V_ewm # define fiscal_month V_fm # define fiscal_year V_fy # define got_lat_min V_gmi # define got_lat_max V_gma # define inclusive_date_map V_idm # define inclusive_weekday_map V_iwm # define insert_line_into_table F_ilt # define insert_response_file F_irf # define num_of_range_chars V_nrc # define num_of_repeat_chars V_noc # define num_of_appears_chars V_nfc # define precomp_date F_pd # define precomp_nth_wd F_pwd # define print_line V_pl # define ptr_info_exclusive_day V_ped # define print_twice V_ptw # define time_sep V_ts # define time_sep_found V_tsf # define rc_bio_axis_len V_rba # define rc_bio_emo_lit V_rbe # define rc_bio_int_lit V_rbi # define rc_bio_phy_lit V_rbp # define rc_elems_table V_ret # define rc_elems_max V_rem # define rc_elems V_rei # define rc_enable_fn_flag V_rff # define rc_enable_hda_flag V_rha # define rc_enable_hdl_flag V_rhl # define rc_export_ldvar_flag V_red # define rc_export_ltvar_flag V_ret # define rc_feb_29_to_feb_28 V_f2f # define rc_feb_29_to_mar_01 V_f2m # define rc_files_table V_rft # define rc_files_max V_rfm # define rc_files V_rfi # define rc_filename V_rfn # define rc_filter_day V_rfd # define rc_filter_period V_rfp # define rc_filter_text V_rfx # define rc_here_fn V_rhn # define rc_here_fp V_rhp # define rc_period V_rp # define rc_period_argv V_rpa # define rc_period_flag V_rpf # define rc_period_is_longopt V_rpi # define rc_period_list V_rpl # define rc_period_option V_rpo # define rc_suppr_date_part_flag V_rsd # define rc_suppr_list_sep_flag V_rsl # define rc_suppr_text_part_flag V_rst # define rc_tvar V_rt # define rc_tvar_tfn V_rtf # define rc_tvar_tfp V_rtp # define rc_use F_ru # define rc_use_flag V_ruf # define rc_valid_day F_rvd # define rc_valid_period F_rvp # define rc_week_flag V_rwf # define rc_weekno_flag V_rwn # define rc_week_year_flag V_rwy # define weekday_of_date F_wod # define weekday_map V_wm # define weekday_name_group V_wng # endif /* CUT_LONGNAMES */ /* * Type definitions. */ /* * The date variable records. */ typedef struct dvar_base_type { char dvar_month; char dvar_day; } Dvar_base_struct; typedef struct dvar_type { /* Global date variables. */ Dvar_base_struct dvar_global; /* Local date variables. */ Dvar_base_struct dvar_local; } Dvar_struct; /* * The text variable records. */ typedef struct tvar_base_type { char *tvar_text; } Tvar_base_struct; typedef struct tvar_type { /* Global text variables. */ Tvar_base_struct tvar_global; /* Local text variables. */ Tvar_base_struct tvar_local; } Tvar_struct; /* * The line part record. */ typedef struct line_type { /* List of days given? */ Bool day_list; /* Range of days given? */ Bool day_range; /* Points to the list/range of days of a line, otherwise NULL. */ char *day_part; /* Points to the "repeat for N days since..." field of a line, otherwise NULL. */ char *repeat_part; /* Points to the "appears each N'th day since..." field of a line, otherwise NULL. */ char *appears_part; /* Points to the text part of a line (always). */ char *text_part; } Line_struct; /* * The file type record. */ typedef struct file_type { /* Actual file pointer. */ FILE *fp; /* Name of actual resource/include file. */ char *filename; /* Actual line number of actual resource/include file. */ long line_number; /* Number of bytes still unhandled in self-managed buffer. */ int in_pool; /* Memory region of self-managed buffer. */ char *pool; /* Pointer to next unmanaged character in self-managed buffer. */ char *ptr_pool; /* Buffered local date variables of a "previous" file. */ Dvar_base_struct local_dvars[RC_DVAR_MAX]; /* Buffered local text variables of a "previous" file. */ Tvar_base_struct local_tvars[RC_TVAR_MAX]; } File_struct; /* * The local coordinates record used by the %distance, %sun* and %moon* special texts. */ typedef struct coor_type { int lon_deg; int lon_min; int lon_sec; int lat_deg; int lat_min; int lat_sec; int the_mode; int meters_above_sea_level; int time_zone_in_mins; } Coor_struct; /* * The output format of an astronomical object record. */ typedef struct astronomical_object_output_format_type { char data_format; char error_format; } Aobj_oformat_struct; /* * General purpose enumerations. */ typedef enum var_mode { GLobal = 1, LOcal } Var_enum; typedef enum astronomical_event { RIse = 1, SEt } Aevent_enum; /* * SUB-include one of the regex header file ;< */ /* * The REGEX stuff. */ # if HAVE_GNU_RE_COMPILE_PATTERN # if HAVE_SYS_TYPES_H # include # endif # if HAVE_REGEX_H # include # endif # endif # if HAVE_POSIX_REGCOMP # if HAVE_SYS_TYPES_H # include # endif # if HAVE_REGEX_H # include # endif # endif /* * GLOBAL variables declarations. */ /*! Points to the local coordinates 1. */ extern Coor_struct *coor1; /*! Points to the local coordinates 2. */ extern Coor_struct *coor2; /*! Date variables a[=MMDD]...z[] (YYYY@{a|b|...|z}[[-]N]). */ extern Dvar_struct rc_dvar[]; /*! Temporary file used when a command is assigned to a TVAR. */ extern FILE *rc_tvar_tfp; /*! Temporary file used for managing `--here=ARG' options. */ extern FILE *rc_here_fp; /*! Pointers to different parts of a (resource file) line. */ extern Line_struct *lineptrs; /*! Pointers to different parts of a (resource file) line. */ extern Line_struct *lptrs2; /*! Pointers to different parts of a (resource file) line. */ extern Line_struct *lptrs3; /*! Pointers to different parts of a (resource file) line. */ extern Line_struct *lptrs; /*! Text variables $a[=TEXT]...$z[]. */ extern Tvar_struct rc_tvar[]; /*! Time displacement value in days used by %sun* and %moon* (also used as cycle-starting time value for %sun* and %moon* special texts). */ extern double time_offset; /*! Atmospheric pressure in millibar (`--atmosphere=PRESSURE,TEMPERATURE'). */ extern double atm_pressure; /*! Atmospheric temperature in degrees Celsius (`--atmosphere=PRESSURE,TEMPERATURE'). */ extern double atm_temperature; /*! Adjust rise/set-based reference altitude resp. shadow length factor (`--adjust-value=NUMBER'). */ extern double adjust_value; /*! Actual size of `rc_elems_table[]'. */ extern Uint rc_elems_max; /*! Cycle-ending time value in minutes for %sun* and %moon* special texts. */ extern int loop_end; /*! Cycle-timestep value in minutes for %sun* and %moon* special texts. */ extern int loop_step; /*! Buffer of actual GMT day. */ extern int buf_gd; /*! Buffer of actual GMT month. */ extern int buf_gm; /*! Buffer of actual GMT year. */ extern int buf_gy; /*! Day of event found in line. */ extern int d; /*! Buffered day of event. */ extern int d_buf; /*! Indicates whether event also appears in previous year. */ extern int decr_year; /*! Actual GMT hour. */ extern int gmt_hour; /*! Day difference of GMT and local date. */ extern int gmt_loc_diff; /*! Actual GMT minute. */ extern int gmt_min; /*! The `N'th weekday of month' displacement value. */ extern int hn; /*! The weekday number of `N'th weekday of month'*/ extern int hwd; /*! Indicates whether event also appears in next year. */ extern int incr_year; /*! Filler length of week number text. */ extern int len_fil_wt; /*! Actual size of text buffer of "text"-part of a line. */ extern int len_the_text; /*! Month of event found in line. */ extern int m; /*! Buffered month of event. */ extern int m_buf; /*! Length of a single axis of a biorhythm text graphics bar. */ extern int rc_bio_axis_len; /*! Amount of resource file entries. */ extern int rc_elems; /*! `-cd'. */ extern int rc_have_today_in_list; /*! Number of lines of a Moon phase text graphics image. */ extern int rc_moonimage_lines; /*! Amount of period of fixed dates. */ extern int rc_period; /*! Starting index of dummy resource file entries in table. */ extern int rc_zero_pos; /*! Year of event found in line. */ extern int y; /*! The mode specifying character. */ extern char hc; /*! Vector of holiday dates (memorial days). */ extern char hd_mdays[]; /*! Stores the eternal holiday list texts. */ extern char *hd_table[]; /*! Text buffer of a line read from a resource file. */ extern char *line_buffer; /*! Text containing modified actual date %DATE. */ extern char *rc_adate; /*! The biorhythm's "Emo" text. */ extern char *rc_bio_emo_lit; /*! The biorhythm's "Int" text. */ extern char *rc_bio_int_lit; /*! The biorhythm's "Phy" text. */ extern char *rc_bio_phy_lit; /*! Name of alternative resource file(s) `-f|F'. */ extern char *rc_filename; /*! Argument used for filtering fixed date days. */ extern char *rc_filter_day; /*! Argument used for filtering fixed date periods. */ extern char *rc_filter_period; /*! REGEX used for filtering fixed date. */ extern char *rc_filter_text; /*! Fixed date list grouping separator `-cg[TEXT]'. */ extern char *rc_grp_sep; /*! Fixed date list heading text `--heading-text=TEXT'. */ extern char *rc_heading_text; /*! Name of tempfile used when a command is assigned to a TVAR. */ extern char *rc_tvar_tfn; /*! Name of tempfile used for managing `--here=ARG' options. */ extern char *rc_here_fn; /*! General purpose text buffer 5. */ extern char *s5; /*! General purpose text buffer 6. */ extern char *s6; /*! General purpose text buffer 7. */ extern char *s7; /*! Text buffer of "text"-part of a line. */ extern char *the_text; /*! Stores the valid fixed date texts. */ extern char **rc_elems_table; /*! `-cNw' and actual date modified. */ extern Bool adate_set; /*! Does the command enables a year implicitly? */ extern Bool date_enables_year; /*! `-cNw' and complete week is in month. */ extern Bool is_1month_mode; /*! `-cNw' and only part of week is in month. */ extern Bool is_2month_mode; /*! Reference to a date variable found in line. */ extern Bool is_2dvar; /*! Reference to Easter Sundays date found in line. */ extern Bool is_2easter; /*! Is a command (explicit date) given in the command line? */ extern Bool is_date_given; /*! `-C[]' or `-C[][T|W|M|Y]' or `-c[][T|W|M|Y]' or `-F<>'. */ extern Bool rc_all_dates_flag; /*! `-cA'. */ extern Bool rc_alternative_format_flag; /*! `-c'-. */ extern Bool rc_backwards_flag; /*! `-jcb'. */ extern Bool rc_both_dates_flag; /*! Buffers the state of `rc_backwards_flag'. */ extern Bool rc_bwdf_buffer; /*! `-cz'. */ extern Bool rc_count_flag; /*! `-ca'. */ extern Bool rc_enable_fn_flag; /*! `-ce'. */ extern Bool rc_enable_hda_flag; /*! `-cE'. */ extern Bool rc_enable_hdl_flag; /*! `--execute-command'. */ extern Bool rc_execute_command; /*! `--export-date-variables'. */ extern Bool rc_export_ldvar_flag; /*! `--export-text-variables'. */ extern Bool rc_export_ltvar_flag; /*! `--leap-day=february'. */ extern Bool rc_feb_29_to_feb_28; /*! `--leap-day=march'. */ extern Bool rc_feb_29_to_mar_01; /*! `--precise' to display precise, non-rounded, times and data. */ extern Bool rc_precise; /*! `-c+'. */ extern Bool rc_forwards_flag; /*! Buffers the state of `rc_forwards_flag'. */ extern Bool rc_fwdf_buffer; /*! `--ignore-case' to ignore case distinctions in PATTERN. */ extern Bool rc_ignore_case_flag; /*! `--limit' to calculate rise/set time limited to the current day only. */ extern Bool rc_limit; /*! `-cm'. */ extern Bool rc_month_flag; /*! `-co'. */ extern Bool rc_omit_date_flag; /*! `-cN[d|w|+|-]|MMDD|MMWW[W]N'. */ extern Bool rc_period_flag; /*! `-cl'. */ extern Bool rc_period_list; /*! `--revert-match' to select non-matching PATTERN lines. */ extern Bool rc_revert_match_flag; /*! `-c-'. */ extern Bool rc_sort_des_flag; /*! `-jc'. */ extern Bool rc_special_flag; /*! `-cU'. */ extern Bool rc_suppr_date_part_flag; /*! `-cQ'. */ extern Bool rc_suppr_list_sep_flag; /*! `-cJ'. */ extern Bool rc_suppr_text_part_flag; /*! `-cx'. */ extern Bool rc_title_flag; /*! `-ct'. */ extern Bool rc_tomorrow_flag; /*! `-c'. */ extern Bool rc_use_flag; /*! `-cw'. */ extern Bool rc_week_flag; /*! `-ck'. */ extern Bool rc_week_number_flag; /*! `-cNw'. */ extern Bool rc_week_year_flag; /*! `-cy'. */ extern Bool rc_year_flag; /*! `-cZ'. */ extern Bool rc_zero_dates_flag; /*! Remove highlighting sequences before searching PATTERN? */ extern Bool remove_hls_in_regex; /*! Stores whether a %shell escape special text is run. */ extern Bool shell_escape_done; # if HAVE_GNU_RE_COMPILE_PATTERN extern struct re_pattern_buffer regpattern; # endif # if HAVE_POSIX_REGCOMP extern regex_t regpattern; # endif # if HAVE_RE_COMP extern int re_pattern; # endif #endif /* __RC_DEFS_H */ gcal-4.1/src/rc-utils.h0000664000000000000000000000746612353516700011676 00000000000000#ifndef __RC_UTILS_H # define __RC_UTILS_H /*! * \file rc-utils.h * \brief Pool of special functions necessary for managing * the fixed dates header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: rc-utils.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `rc-utils.c'. */ extern Bool rc_valid_day __P_ ((const char *date_text, const int day, const int month, const int year)); extern Bool rc_valid_period __P_ ((char *date_text, const int d, const int m, const int y, const int incr_year, const int decr_year)); extern void rc_clean_flags __P_ ((void)); extern Line_struct *rc_get_date __P_ ((char *the_line, Line_struct * lineptrs, const Bool is_rc_file, Bool * is_weekday_mode, int *d, int *m, int *y, int *n, int *len, char *hc, int *hn, int *hwd, const char *filename, const long line_number, const char *line_buffer, const Bool on_error_exit)); extern Bool precomp_nth_wd __P_ ((int diff, const int wd, int *n, int *day, int *month, int *year, const Cmode_enum mode)); extern Bool precomp_date __P_ ((int diff, const int wd, int *day, int *month, const int year, const Cmode_enum mode)); extern void set_dvar __P_ ((const char *line_buffer, Line_struct * lineptrs, const char *filename, const long line_number, const Var_enum mode)); extern void set_tvar __P_ ((const char *line_buffer, const char *filename, const long line_number, const Var_enum mode)); extern void nth_weekday_of_month __P_ ((int *d, int *m, int *y, const int *n, Bool * is_weekday_mode)); extern Slint d_between __P_ ((const int d1, const int m1, const int y1, const int d2, const int m2, const int y2)); extern Slint w_between __P_ ((const int d1, const int m1, const int y1, const int d2, const int m2, const int y2)); extern Slint m_between __P_ ((const int m1, const int y1, const int m2, const int y2)); extern void manage_leap_day __P_ ((int *day, int *month, int year, const char *line_buffer, const char *filename, const long line_number)); extern char *biorhythm __P_ ((const Bool create_bar, int axis_len, char *string, const int day, const int month, const int year, const int birth_day, const int birth_month, const int birth_year, const char *emo_text, int *emo_phase, int *emo_waxes, const char *int_text, int *int_phase, int *int_waxes, const char *phy_text, int *phy_phase, int *phy_waxes, int *critical_day, int *positive_day, int *negative_day)); extern double compute_distance __P_ ((const Coor_struct * coor1, const Coor_struct * coor2)); __END_DECLARATIONS #endif /* __RC_UTILS_H */ gcal-4.1/src/hd-data5.h0000664000000000000000000003457612244130561011521 00000000000000#ifndef __HD_DATA5_H # define __HD_DATA5_H /*! * \file hd-data5.h * \brief All other T-Z countries data which is composed into the * eternal holiday list header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: hd-data5.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `hd-data5.c'. */ extern void tc_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void td_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void tg_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void th_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void tj_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void tk_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void tm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void tn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void to_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void tr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void tt_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void tv_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void tw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void tz_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ua_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ug_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ak_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_al_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ar_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_az_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ca_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_co_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ct_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_dc_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_de_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_fl_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ga_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_hi_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ia_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_id_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_il_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_in_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ks_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ky_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_la_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ma_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_md_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_me_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_mi_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_mn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_mo_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ms_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_mt_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_nc_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_nd_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ne_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_nh_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_nj_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_nm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_nv_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ny_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_oh_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ok_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_or_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_pa_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ri_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_sc_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_sd_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_tn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_tx_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_ut_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_va_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_vt_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_wa_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_wi_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_wv_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_wy_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void uy_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void uz_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void vc_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ve_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void vg_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void vi_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void vn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void vu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void wf_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ws_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ye_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void yt_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void yu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void za_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void zm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void zw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); __END_DECLARATIONS #endif /* __HD_DATA5_H */ gcal-4.1/src/gcal.c0000664000000000000000000054100212424470251011021 00000000000000/*! * \file gcal.c * \brief Main part which controls the extended calendar program. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013, 2014 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include header files. */ #include "tailor.h" #if HAVE_ASSERT_H # include #endif #if HAVE_CTYPE_H # include #endif #if HAVE_LIMITS_H # include #endif #if HAVE_UNISTD_H # include #endif #if (!HAVE_SIGNAL_H || !HAVE_SIGNAL) && HAVE_SYS_TYPES_H /* Otherwise "gcal.h" includes . */ # include #endif #if HAVE_SYS_STAT_H # include #endif #ifdef GCAL_EPAGER # include # if !HAVE_DUP # define dup(old) (fcntl(old, F_DUPFD, 0)) # endif # if !HAVE_DUP2 # define dup2(old, new) (close(new), fcntl(old, F_DUPFD, new)) # endif # if HAVE_SYS_WAIT_H # include # endif #endif /* GCAL_EPAGER */ #include "common.h" #if USE_RC # include "rc-defs.h" #endif /* USE_RC */ #include "globals.h" #include "file-io.h" #include "hd-defs.h" #include "hd-data.h" #include "hd-use.h" #include "help.h" #include "print.h" #if USE_RC # include "rc-use.h" # include "rc-utils.h" #endif /* USE_RC */ #include "tty.h" #include "utils.h" #include "gcal.h" /* * Set Borland/Turbo-C specific MSDOS stack length in case USE_RC is defined ;< */ #if USE_RC # if defined(MSDOS) && defined(__TURBOC__) # include extern Uint _stklen = 0x4000; # endif #endif /* * static functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `gcal.c'. */ static Bool is_correct_date_format __P_ ((char *format_txt, Bool * use_day_suffix, Bool * use_short3_day_name, Bool * use_day_zeroleaded, Bool * use_year_zeroleaded)); static void rearrange_argv __P_ ((const char *opt_list, int *argc, char *argv[])); static void check_command_line __P_ ((int argc, char *argv[])); static void build_month_list __P_ ((char *argv[])); static void eliminate_invalid_data __P_ ((void)); static void pseudo_blank_conversion __P_ ((char **text)); #if USE_RC static int further_check __P_ ((char **option)); #endif __END_DECLARATIONS /* * GLOBAL variables definitions. */ /*! Number of days in Julian/Gregorian month. */ const int dvec[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; /*! Number of past days of Julian/Gregorian month. */ const int mvec[] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; /*! The long option table is a vector of `Lopt_struct' terminated by an element containing a `long_name' which is zero! All initialization strings of the structure member `long_name' CAN be entered case insensitive (it is recommended to use them in lower-case letters only), but in an ascending lexical sort order, and the table MUST be initialized by distinguishable texts given to the structure member `long_name'. The table structure is as follows: `symbolic_name': The symbolic name of the long option (a distingushable number [int]). `long_name': The full name of the long option (case insensitive.) `short_name': A list of short options (maximum 5 (==LARG_MAX-1)) terminated by NULL, its order corresponds to the order of the field `largs' (case sensitive), means "a" is another option than "A". `larg_mode': States whether an option requires an argument or not. LARG_NO or 0 means: Option may not have an argument, e.g. `--foo' LARG_NO_OR_ONE or 1 means: Option may have an argument, which is either SPECIAL or GIVEN, e.g. `--foo' or `--foo=BAR' or `--foo=ARG' LARG_ONE or 2 means: Option must have an argument, which must be either SPECIAL if one or more `largs' are defined, or which must be GIVEN if no `largs' are defined, e.g. `--foo=BAR' or `--foo=ARG' LARG_ONE_OR_ARG or 3 means: Option must have an argument, which could be either SPECIAL if one or more `largs' are defined, or which could be GIVEN if one ore more `largs' are defined, but none of these `largs' match the GIVEN argument, e.g. `--foo=BAR' or `--foo=ARG' If this field is set to LARG_NO_OR_ONE and NO argument trails the option, the `short_name[0]' contains the default value of the argument and is returned! It's an ILLEGAL case to set this field to LARG_ONE_OR_ARG and NO `largs' are defined in the `lopt[]' table, but one or more `short_name' entries! `largs': A list of possible SPECIAL arguments (maximum 5 (==LARG_MAX-1)) terminated by NULL, from which only one may be selected at a time. If its first element is set to NULL, any GIVEN argument is allowed, otherwise only one of the listed SPECIAL arguments. The SPECIAL arguments may be abbreviated in case this is done unambigously; and they can be given case insensitive. */ const Lopt_struct lopt[] = { /* { int symbolic_name, char *long_name, char *short_name[LARG_MAX], int larg_mode, char *largs[LARG_MAX] } */ #if USE_RC { SYM_ADJUST_VALUE, "adjust-value", {NULL}, LARG_ONE, {NULL} }, { SYM_ALTERNATIVE_FORMAT, "alternative-format", {"A", NULL}, LARG_NO, {NULL} }, #endif { SYM_ASTRONOMICAL_HDY, "astronomical-holidays", {NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_ATMOSPHERE, "atmosphere", {NULL}, LARG_ONE, {NULL} }, #endif { SYM_BAHAI_HDY, "bahai-holidays", {NULL}, LARG_NO, {NULL} }, { SYM_BAHAI_MTH, "bahai-months", {NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_BIORHYTHM_AXIS_LEN, "biorhythm-axis", {NULL}, LARG_ONE, {NULL} }, #endif { SYM_BLOCKS, "blocks", {"b", NULL}, LARG_ONE, {NULL} }, { SYM_CALENDAR_DATES, "calendar-dates", {"j", "jb", NULL}, LARG_ONE, {"special", "both", NULL} }, { SYM_CC_HDY, "cc-holidays", {"q", NULL}, LARG_ONE, {NULL} }, { SYM_CELTIC_HDY, "celtic-holidays", {NULL}, LARG_NO, {NULL} }, { SYM_CHINESE_FLEXIBLE_HDY, "chinese-flexible-holidays", {NULL}, LARG_NO, {NULL} }, { SYM_CHINESE_FLEXIBLE_MTH, "chinese-flexible-months", {NULL}, LARG_NO, {NULL} }, { SYM_CHINESE_HDY, "chinese-holidays", {NULL}, LARG_NO, {NULL} }, { SYM_CHINESE_MTH, "chinese-months", {NULL}, LARG_NO, {NULL} }, { SYM_CHRISTIAN_HDY, "christian-holidays", {NULL}, LARG_NO, {NULL} }, { SYM_COPTIC_MTH, "coptic-months", {NULL}, LARG_NO, {NULL} }, { SYM_LICENSE2, "copyleft", {"L", NULL}, LARG_NO, {NULL} }, { SYM_LICENSE3, "copyright", {"L", NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_CYCLE_END, "cycle-end", {NULL}, LARG_ONE, {NULL} }, { SYM_CYCLE_STEP, "cycle-step", {NULL}, LARG_ONE, {NULL} }, #endif { SYM_DATE_FORMAT, "date-format", {"!\001", "!\002", "!\003", /* e.g.: "!\004", */ "!", NULL}, LARG_ONE_OR_ARG, {CC_DE, CC_US, CC_GB, /* e.g.: "OTHER", */ /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "ARGUMENT". */ N_("ARG"), NULL} }, #if USE_RC { SYM_DATE_VARIABLE, "date-variable", {"v", NULL}, LARG_ONE, {NULL} }, #endif { SYM_DEBUG, "debug", {"0", "1", "2", "3", "4", NULL}, LARG_NO_OR_ONE, {"internal", "handled", "unhandled", "all", "abort", NULL} }, #if USE_RC { SYM_DESC_FIXED_DATES_LIST, "descending-fixed-dates", {"c-", "C-", NULL}, LARG_NO_OR_ONE, {"short", "long", NULL} }, #endif { SYM_DESC_HOLIDAY_LIST, "descending-holiday-list", {"n-", "N-", NULL}, LARG_NO_OR_ONE, {"long", "short", NULL} }, { SYM_DISABLE_HIGHLIGHTING, "disable-highlighting", {"Hno", NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_END_OF_MONTH, "end-of-month", {"m+", NULL}, LARG_NO, {NULL} }, { SYM_END_OF_WEEK, "end-of-week", {"w+", NULL}, LARG_NO, {NULL} }, { SYM_END_OF_YEAR, "end-of-year", {"y+", NULL}, LARG_NO, {NULL} }, #endif { SYM_ETHIOPIC_MTH, "ethiopic-months", {NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_EXCLUDE_RC_TITLE, "exclude-fixed-dates-list-title", {"x", NULL}, LARG_NO, {NULL} }, #endif { SYM_EXCLUDE_HD_TITLE, "exclude-holiday-list-title", {"X", NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_EXECUTE_COMMAND, "execute-command", {NULL}, LARG_NO, {NULL} }, #endif { SYM_EXIT_STAT_HELP_NON_ZERO, "exit-status-help-non-zero", {NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_extern_static_DVARS, "export-date-variables", {NULL}, LARG_NO, {NULL} }, { SYM_extern_static_TVARS, "export-text-variables", {NULL}, LARG_NO, {NULL} }, { SYM_FILTER_DAY, "filter-day", {"D", NULL}, LARG_ONE, {NULL} }, { SYM_FILTER_PERIOD, "filter-period", {"P", NULL}, LARG_ONE, {NULL} }, { SYM_FILTER_TEXT, "filter-text", {"I", NULL}, LARG_ONE, {NULL} }, { SYM_FIXED_DATES, "fixed-dates", {"jc", "jcb", NULL}, LARG_ONE, {"special", "both", NULL} }, #endif { SYM_FORCE_HIGHLIGHTING, "force-highlighting", {"Hyes", NULL}, LARG_NO, {NULL} }, { SYM_FRENCH_REVOLUTIONARY_MTH, "french-revolutionary-months", {NULL}, LARG_NO, {NULL} }, { SYM_GREG_REFORM, "gregorian-reform", {"$\001", "$\002", "$\003", "$\004", "$", NULL}, LARG_ONE_OR_ARG, {"1582", "1700", "1752", "1753", /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "ARGUMENT". */ N_("ARG"), NULL} }, #if USE_RC { SYM_GROUPING_TEXT, "grouping-text", {"g", NULL}, LARG_NO_OR_ONE, {NULL} }, { SYM_HEADING_TEXT, "heading-text", {NULL}, LARG_ONE, {NULL} }, #endif { SYM_HEBREW_HDY, "hebrew-holidays", {NULL}, LARG_NO, {NULL} }, { SYM_HEBREW_MTH, "hebrew-months", {NULL}, LARG_NO, {NULL} }, { SYM_LONG_HELP1, "help", {"h", NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_HERE_FILE, "here", {"#", NULL}, LARG_ONE, {NULL} }, #endif { SYM_HIGHLIGHTING, "highlighting", {"H", NULL}, LARG_ONE, {NULL} }, { SYM_HOLIDAY_DATES, "holiday-dates", {"jn", "jnb", NULL}, LARG_ONE, {"special", "both", NULL} }, { SYM_HOLIDAY_LIST, "holiday-list", {"n", "N", NULL}, LARG_NO_OR_ONE, {"long", "short", NULL} }, #if USE_RC { SYM_IGNORE_CASE, "ignore-case", {NULL}, LARG_NO, {NULL} }, { SYM_INCLUDE_CONS_NUMBER, "include-consecutive-number", {"z", NULL}, LARG_NO, {NULL} }, { SYM_INCLUDE_HOLIDAY, "include-holidays", {"e", "E", NULL}, LARG_NO_OR_ONE, {"long", "short", NULL} }, { SYM_INCLUDE_FILENAME, "include-resource-file-name", {"a", NULL}, LARG_NO, {NULL} }, { SYM_INCLUDE_TODAY, "include-today", {"d", NULL}, LARG_NO, {NULL} }, { SYM_INCLUDE_WEEK_NUMBER, "include-week-number", {"k", NULL}, LARG_NO, {NULL} }, #endif { SYM_INDIAN_CIVIL_MTH, "indian-civil-months", {NULL}, LARG_NO, {NULL} }, { SYM_ISLAMIC_HDY, "islamic-civil-holidays", {NULL}, LARG_NO, {NULL} }, { SYM_ISLAMIC_MTH, "islamic-civil-months", {NULL}, LARG_NO, {NULL} }, { SYM_ISO_WEEK_NUMBER, "iso-week-number", {"y", "n", NULL}, LARG_ONE, {"yes", "no", NULL} }, { SYM_JAPANESE_FLEXIBLE_HDY, "japanese-flexible-holidays", {NULL}, LARG_NO, {NULL} }, { SYM_JAPANESE_FLEXIBLE_MTH, "japanese-flexible-months", {NULL}, LARG_NO, {NULL} }, { SYM_JAPANESE_HDY, "japanese-holidays", {NULL}, LARG_NO, {NULL} }, { SYM_JAPANESE_MTH, "japanese-months", {NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_LEAP_DAY, "leap-day", {"f", "m", NULL}, LARG_ONE, {"february", "march", NULL} }, #endif { SYM_LICENSE1, "license", {"L", NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_LIMIT, "limit", {NULL}, LARG_NO, {NULL} }, { SYM_LIST_MODE, "list-mode", {"l", NULL}, LARG_NO, {NULL} }, { SYM_FIXED_DATES_LIST, "list-of-fixed-dates", {"c", "C", NULL}, LARG_NO_OR_ONE, {"short", "long", NULL} }, #endif { SYM_LONG_HELP1, "long-help", {"hh", NULL}, LARG_NO_OR_ONE, {NULL} }, #ifdef GCAL_EMAIL { SYM_MAIL, "mail", {NULL}, LARG_NO_OR_ONE, {NULL} }, #endif #if USE_RC { SYM_MONTH, "month", {"m", NULL}, LARG_NO, {NULL} }, { SYM_MOONIMAGE_LINES, "moonimage-lines", {NULL}, LARG_ONE, {NULL} }, #endif { SYM_MULTICULTURAL_NEW_YEAR_HDY, "multicultural-new-year-holidays", {NULL}, LARG_NO, {NULL} }, { SYM_OLD_ARMENIC_MTH, "old-armenic-months", {NULL}, LARG_NO, {NULL} }, { SYM_OLD_EGYPTIC_MTH, "old-egyptic-months", {NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_OMIT_DATE_PART, "omit-multiple-date-part", {"o", NULL}, LARG_NO, {NULL} }, #endif { SYM_ORTHODOX_CALENDAR, "orthodox-calendar", {"O", NULL}, LARG_NO, {NULL} }, { SYM_ORTHODOX_NEW_HDY, "orthodox-new-holidays", {NULL}, LARG_NO, {NULL} }, { SYM_ORTHODOX_OLD_HDY, "orthodox-old-holidays", {NULL}, LARG_NO, {NULL} }, #if USE_PAGER { SYM_PAGER, "pager", {"p", NULL}, LARG_NO, {NULL} }, #endif #if USE_RC { SYM_PERIOD, "period-of-fixed-dates", {"c", NULL}, LARG_ONE, {NULL} }, #endif { SYM_PERSIAN_HDY, "persian-jalaali-holidays", {NULL}, LARG_NO, {NULL} }, { SYM_PERSIAN_MTH, "persian-jalaali-months", {NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_PRECISE, "precise", {NULL}, LARG_NO, {NULL} }, { SYM_RESOURCE_FILE, "resource-file", {"f", NULL}, LARG_ONE, {NULL} }, #endif { SYM_RESPONSE_FILE, "response-file", {"R", NULL}, LARG_ONE, {NULL} }, #if USE_RC { SYM_REVERT_MATCH, "revert-match", {NULL}, LARG_NO, {NULL} }, #endif #ifdef GCAL_SHELL { SYM_SCRIPT_FILE, "shell-script", {"S", NULL}, LARG_ONE, {NULL} }, #endif #if USE_RC { SYM_START_OF_MONTH, "start-of-month", {"m-", NULL}, LARG_NO, {NULL} }, { SYM_START_OF_WEEK, "start-of-week", {"w-", NULL}, LARG_NO, {NULL} }, { SYM_START_OF_YEAR, "start-of-year", {"y-", NULL}, LARG_NO, {NULL} }, #endif { SYM_STARTING_DAY, "starting-day", {"s", NULL}, LARG_ONE, {NULL} }, { SYM_SUPPRESS_CALENDAR, "suppress-calendar", {"u", NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_SUPPRESS_DATE_PART, "suppress-date-part", {"U", NULL}, LARG_NO, {NULL} }, { SYM_SUPPRESS_FDLIST_SEP, "suppress-fixed-dates-list-separator", {"Q", NULL}, LARG_NO, {NULL} }, #endif /* USE_RC */ { SYM_SUPPRESS_HDLIST_SEP, "suppress-holiday-list-separator", {"G", NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_SUPPRESS_TEXT_PART, "suppress-text-part", {"J", NULL}, LARG_NO, {NULL} }, { SYM_TEXT_VARIABLE, "text-variable", {"r", NULL}, LARG_ONE, {NULL} }, #endif { SYM_TIME_OFFSET, "time-offset", {NULL}, LARG_ONE, {NULL} }, #if USE_RC { SYM_TODAY, "today", {"c", NULL}, LARG_NO, {NULL} }, { SYM_TOMORROW, "tomorrow", {"t", NULL}, LARG_NO, {NULL} }, #endif { SYM_TRANSFORM_YEAR, "transform-year", {NULL}, LARG_ONE, {NULL} }, { SYM_TRANSLATE_STRING, "translate-string", {NULL}, LARG_ONE, {NULL} }, { SYM_TYPE_OF_CALENDAR, "type", {"i", "i-", NULL}, LARG_ONE, {"special", "standard", NULL} }, { SYM_LONG_HELP2, "usage", {"hh", NULL}, LARG_NO_OR_ONE, {NULL} }, { SYM_VERSION, "version", {"V", NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_WEEK, "week", {"w", NULL}, LARG_NO, {NULL} }, #endif { SYM_CALENDAR_WITH_WEEK_NUMBER, "with-week-number", {"K", NULL}, LARG_NO, {NULL} }, #if USE_RC { SYM_YEAR, "year", {"y", NULL}, LARG_NO, {NULL} }, { SYM_ZERO_DATES, "zero-dates-only", {"Z", NULL}, LARG_NO, {NULL} }, #endif { SYM_ZODIACAL_MARKER_HDY, "zodiacal-marker-holidays", {NULL}, LARG_NO, {NULL} }, {SYM_NIL, NULL, {NULL}, LARG_NO, {NULL}} }; /*! The supported date formats table is a vector of `Df_struct' terminated by an element containing a `df_info' which is zero! If you extend this table by some more date formats, please extend the according `lopt[]' table entry for the `--date-format' long-style option, too! If you do so, remember that each new entry in the `lopt[]' table for SYM_DATE_FORMAT must have a new `short_name' text "!\NEXT-CONSECUTIVE-OCTAL-NUMBER-OF-THIS-NEW-INDEX" and a corresponding identifying text in `largs' (with a length of less than 6 characters). The simple "!" text in the `short_name' member and its corresponding LARG_TXT must always trail any new entry, which will be possibly added in future. */ Df_struct supported_date_format[LARG_MAX - 1] = { /* { char *df_id, char *df_info, char *df_format }, */ {CC_DE, N_("Germany"), "%<2#K, %1%>2*D%2 %<3#U %>04*Y"}, {CC_US, N_("U.S.A."), "%<3#K, %<3#U %1%>2&*D%2 %>04*Y"}, {CC_GB, N_("Great Britain"), "%<3#K, %1%>2&*D%2 %<3#U %>04*Y"}, /* The next table field can be provided with further data! If more "burned-in" data is needed, LARG_MAX must be increased accordingly, because it's necessary to respect the data of this fields in the functions, which manage the long-style arguments! */ {NULL, NULL, NULL}, /* This next "empty" table field must be kept UNTOUCHED, because it marks the end of the table! */ {NULL, NULL, NULL} }; /* Points to the used date format. */ Df_struct *date_format = supported_date_format; /* The Gregorian Reformation dates table is a vector of `Greg_struct' terminated by an element containing a `year' which is zero! If you extend this table by some more dates, please extend the according `lopt[]' table entry for the `--gregorian-reform' long-style option, too! If you do so, remember that each new entry in the `lopt[]' table for SYM_GREG_REFORM must have a new `short_name' text "$\NEXT-CONSECUTIVE-OCTAL-NUMBER-OF-THIS-NEW-INDEX" and a corresponding year of Gregorian Reformation text in `largs'. The simple "$" text in the `short_name' member and its corresponding LARG_TXT must always trail any new entry, which will be possibly added in future. */ Greg_struct greg_reform_date[LARG_MAX - 1] = { /* { int year, int month, int f_day, int l_day }, */ {1582, 10, 5, 14}, {1700, 2, 19, 28}, {1752, 9, 3, 13}, {1753, 2, 18, 28}, /* This next "empty" table field must be kept UNTOUCHED, because it marks the end of the table! */ {0, 0, 0, 0} }; /*! Points to the used Gregorian Reformation date. */ Greg_struct *greg = greg_reform_date; /*! User defined Gregorian Reformation date. */ Greg_struct users_greg; #ifdef GCAL_EMAIL /*! Temporary file which is send by the mailer. */ FILE *tfp = (FILE *) NULL; #endif /*! Used if a list/range of months/years is given. */ Ml_struct *month_list = (Ml_struct *) NULL; /*! Effective hls 1 start (current day). */ Hls_struct ehls1s; /*! Effective hls 1 end (current day). */ Hls_struct ehls1e; /*! Effective hls 2 start (holiday). */ Hls_struct ehls2s; /*! Effective hls 2 end (holiday). */ Hls_struct ehls2e; #ifdef DJG /*! Set to SHRT_MAX for checking the maximum table range. */ Usint testval = (Usint) 0; #else /*! Set to INT_MAX for checking the maximum table range. */ Uint testval = (Uint) 0; #endif /*! Actual size of all string vectors. */ Uint maxlen_max = MAXLEN_MAX; /*! String length of the maximum year able to compute. */ int len_year_max = 0; /*! Maximum string length of a textual day_name(). */ int len_dayname_max = 0; /*! Maximum string length of a textual month_name(). */ int len_monthname_max = 0; /*! Maximum string length of a textual day_suffix() [if any]. */ int len_suffix_max = 0; /*! `--debug[=0...WARN_LVL_MAX]', SPECIAL VALUE at startup. */ int warning_level = SPECIAL_VALUE; /*! `-s<0,1...7|day name>'. */ int start_day = 0; /*! `--transform-year=BASE_YEAR'. */ int transform_year = 0; /*! `--time-offset=t|@|[t|@][+|-]MMMM|HH:[MM]' for correcting astronomically based data. */ int time_hour_offset = 0; /*! `--time-offset=t|@|[t|@][+|-]MMMM|HH:[MM]' for correcting astronomically based data. */ int time_min_offset = 0; /*! Current day. */ int day = 0; /*! Current month. */ int month = 0; /*! Current year. */ int year = 0; /*! Actual second. */ int act_sec = 0; /*! Actual minute. */ int act_min = 0; /*! Actual hour. */ int act_hour = 0; /*! Actual day. */ int act_day = 0; /*! Actual month. */ int act_month = 0; /*! Actual year. */ int act_year = 0; /*! Buffer of actual day. */ int buf_ad = 0; /*! Buffer of actual month. */ int buf_am = 0; /*! Buffer of actual year. */ int buf_ay = 0; /*! True actual day as reported by the operating system. */ int true_day = 0; /*! True actual month as reported by the operating system. */ int true_month = 0; /*! True actual year as reported by the operating system. */ int true_year = 0; /*! Starting month of a fiscal year. */ int fiscal_month = MONTH_MIN; /*! Is output displayed on a terminal? */ int is_tty = 0; /*! Is output directed to channel 1? */ int is_tty1 = 0; /*! Is output directed to channel 2? */ int is_tty2 = 0; #if USE_PAGER /*! Number of tty rows, SPECIAL_VALUE at startup. */ int tty_rows = SPECIAL_VALUE; /*! Number of tty columns, SPECIAL_VALUE at startup. */ int tty_cols = SPECIAL_VALUE; #endif /*! Number of month rows of a year calendar. */ int out_rows = 0; /*! Number of month columns of a year calendar. */ int out_cols = 0; /*! Format length of a standard/special/both day. */ int format_len = 0; /*! Is current year a leap year? */ int is_leap_year = 0; #ifdef GCAL_EMAIL /*! Name of tempfile used by the mailer. */ char *tfn = (char *) NULL; /*! Email address Gcal's output is send to. */ char *email_adr = (char *) NULL; #endif /*! `--cc-holidays=CC[+CC+...]'. */ char *cc = (char *) NULL; /*! The "YY" text. */ char *yy_lit = (char *) NULL; /*! The "YYYY" text. */ char *yyyy_lit = (char *) NULL; /*! The "MM" text. */ char *mm_lit = (char *) NULL; /*! The "WWW" text. */ char *www_lit = (char *) NULL; /*! The "DD" text. */ char *dd_lit = (char *) NULL; /*! The "ARG" text. */ char *larg_lit = (char *) NULL; /*! General purpose text buffer 1. */ char *s1 = (char *) NULL; /*! General purpose text buffer 2. */ char *s2 = (char *) NULL; /*! General purpose text buffer 3. */ char *s3 = (char *) NULL; /*! General purpose text buffer 4. */ char *s4 = (char *) NULL; /*! Stores the actual program name. */ char *prgr_name = (char *) NULL; /*! Character for separating HH:MM time values. */ char *time_sep = (char *) NULL; /*! `--translate-string=CHARACTER_PAIR...'. */ char *translate_string = (char *) NULL; /*! Pointer to the $TZ (timezone) environment variable. */ char *tz = (char *) NULL; #ifdef GCAL_EPAGER /*! Name of external pager program. */ char *ext_pager = (char *) NULL; #endif /*! Day suffix format specifier given in date format?. */ Bool use_day_suffix = FALSE; /*! 3 char day name format specifier given in date format? */ Bool use_short3_day_name = FALSE; /*! Day number leaded with zeroes format specifier given in date format? */ Bool use_day_zeroleaded = FALSE; /*! Year number leaded with zeroes format specifier given in date format? */ Bool use_year_zeroleaded = FALSE; /*! Don't use Astronomical holidays by default. */ Bool hdy_astronomical = FALSE; /*! Don't use Bahai calendar holidays by default. */ Bool hdy_bahai = FALSE; /*! Don't use Celtic calendar holidays by default. */ Bool hdy_celtic = FALSE; /*! Don't use Chinese calendar holidays by default. */ Bool hdy_chinese = FALSE; /*! Don't use Chinese flexible calendar holidays by default. */ Bool hdy_chinese_flexible = FALSE; /*! Don't use Christian Western churches calendar holidays by default. */ Bool hdy_christian = FALSE; /*! Don't use Hebrew calendar holidays by default. */ Bool hdy_hebrew = FALSE; /*! Don't use Islamic CIVIL calendar holidays by default. */ Bool hdy_islamic = FALSE; /*! Don't use Japanese calendar holidays by default. */ Bool hdy_japanese = FALSE; /*! Don't use Japanese flexible calendar holidays by default. */ Bool hdy_japanese_flexible = FALSE; /*! Don't use Multicultural New_Year's_Day holidays by default. */ Bool hdy_multicultural_new_year = FALSE; /*! Don't use Orthodox Christian Eastern churches NEW calendar holidays by default. */ Bool hdy_orthodox_new = FALSE; /*! Don't use Orthodox Christian Eastern churches OLD calendar holidays by default. */ Bool hdy_orthodox_old = FALSE; /*! Don't use Persian Jalaali calendar holidays by default. */ Bool hdy_persian = FALSE; /*! Don't use Zodiacal Marker holidays by default. */ Bool hdy_zodiacal_marker = FALSE; /*! Don't use Bahai calendar months by default. */ Bool mth_bahai = FALSE; /*! Don't use Chinese calendar months by default. */ Bool mth_chinese = FALSE; /*! Don't use Chinese flexible calendar months by default. */ Bool mth_chinese_flexible = FALSE; /*! Don't use Coptic calendar months by default. */ Bool mth_coptic = FALSE; /*! Don't use Ethiopic calendar months by default. */ Bool mth_ethiopic = FALSE; /*! Don't use French Revolutionary calendar months by default. */ Bool mth_french_revolutionary = FALSE; /*! Don't use Hebrew calendar months by default. */ Bool mth_hebrew = FALSE; /*! Don't use Indian CIVIL calendar months by default. */ Bool mth_indian_civil = FALSE; /*! Don't use Islamic CIVIL calendar months by default. */ Bool mth_islamic = FALSE; /*! Don't use Japanese calendar months by default. */ Bool mth_japanese = FALSE; /*! Don't use Japanese flexible calendar months by default. */ Bool mth_japanese_flexible = FALSE; /*! Don't use Old-Armenic calendar months by default. */ Bool mth_old_armenic = FALSE; /*! Don't use Old-Egyptic calendar months by default. */ Bool mth_old_egyptic = FALSE; /*! Don't use Persian Jalaali calendar months by default. */ Bool mth_persian = FALSE; /*! `-O' (compute leap years as done by Eastern churches). */ Bool orthodox_calendar = FALSE; /*! `-u'. */ Bool suppr_cal_flag = FALSE; /*! `-H|'. */ Bool highlight_flag = TRUE; /*! `--iso-week-number=|'. */ Bool iso_week_number = FALSE; /*! `-K'. */ Bool cal_with_week_number = FALSE; /*! `-j'. */ Bool cal_special_flag = FALSE; /*! `-jb'. */ Bool cal_both_dates_flag = FALSE; /*! `-n|N'. */ Bool holiday_flag = FALSE; /*! `-N'. */ Bool hd_legal_days_only = FALSE; /*! `-n|N-'. */ Bool hd_sort_des_flag = FALSE; /*! `-jn'. */ Bool hd_special_flag = FALSE; /*! `-jnb'. */ Bool hd_both_dates_flag = FALSE; /*! `-G'. */ Bool hd_suppr_list_sep_flag = FALSE; /*! `-X'. */ Bool hd_title_flag = TRUE; /*! ':' char found in argument (MM:YYYY). */ Bool is_fiscal_year = FALSE; /*! Argument is `.' or `.+' or `.-'. */ Bool is_3month_mode = FALSE; /*! Argument is `..' -> current quarter of actual year. */ Bool is_3month_mode2 = FALSE; /*! Is an extended list/range of years given? */ Bool is_ext_year = FALSE; /*! Is an extended list of months/years given? */ Bool is_ext_list = FALSE; /*! Is an extended range of months/years given? */ Bool is_ext_range = FALSE; /*! Is a special range of a selected month of years given? */ Bool is_special_range = FALSE; /*! Is a special range of selected months of years given? */ Bool is_multi_range = FALSE; #ifdef GCAL_NLS /*! Support of English language? */ Bool is_en = FALSE; #endif /*! `-i[-]'. */ Bool special_calsheet_flag = FALSE; #if USE_HLS /*! Must we emulate the highlighting sequences? */ Bool emu_hls = FALSE; #else /* !USE_HLS */ /*! Must we emulate the highlighting sequences? */ Bool emu_hls = TRUE; #endif /* !USE_HLS */ #if USE_PAGER /*! `-p'. */ Bool pager_flag = FALSE; #endif /* * static variables definitions. */ #ifdef GCAL_EPAGER /*! Child process id of external pager. */ static pid_t child_pid; /*! Pipe file descriptors. */ static int pipe_fd[2]; /*! Buffer of system file descriptors 0 and 1. */ static int sys_fd[2]; #endif /*! User defined date format. */ static Df_struct users_date_format; /*! Maximum number of `month_list[]' table elems. */ static Uint month_list_max = MONTH_MAX + 1; /*! The index value of a long option. */ static int lopt_id = 0; /*! Termination status on `--help', `--version' etc... */ static int exit_stat_help = EXIT_STAT_HELP; /*! Buffers default value of `-s' option. */ static int buf_start_day = 0; #ifdef GCAL_EPAGER /*! Possible options passed to the $PAGER external pager program. */ static char **pg_argv = (char **) NULL; /*! The external pager program names table is a vector of char pointer elements, which must be terminated by a NULL element! */ static char *pagers[] = { PAGER1_PROG, PAGER2_PROG, PAGER3_PROG, NULL }; #endif #ifdef GCAL_SHELL /*! File name of shell script to write `-S'. */ static char *shl_filename = (char *) NULL; #endif /*! Name of response file to read (@FILE) or write (-R). */ static char *rsp_filename = (char *) NULL; /*! Text containing user defined highlighting sequences `-H<>'. */ static char *hl_seq = (char *) NULL; /*! Points to "date format error location" description text. */ static char *errtxt_dformat = (char *) NULL; /*! `-b<1|2|3|4|6|12>'. */ static Bool year_flag = FALSE; /* * Function implementations. */ int main (argc, argv) int argc; char *argv[]; /*! The Gcal program entry point =8^) */ { auto FILE *fp = (FILE *) NULL; auto Uint my_argc_max = MY_ARGC_MAX; auto int my_argc = 1; auto int i; register int j; auto char **my_argv = (char **) NULL; #if USE_RC # ifdef GCAL_SHELL static const char *these_short_opts_need_args = "#DFHIPRSbfqrsv"; # else /* !GCAL_SHELL */ static const char *these_short_opts_need_args = "#DFHIPRbfqrsv"; # endif /* !GCAL_SHELL */ #else /* !USE_RC */ # ifdef GCAL_SHELL static const char *these_short_opts_need_args = "HRSbqs"; # else /* !GCAL_SHELL */ static const char *these_short_opts_need_args = "HRbqs"; # endif /* !GCAL_SHELL */ #endif /* !USE_RC */ auto char *ptr_char; auto char *y_txt; auto char *m_txt; auto char *w_txt; auto char *d_txt; auto Bool show_calendar = TRUE; auto Bool b_dummy; /* Let's set `testval' to SHRT_MAX/INT_MAX if SHRT_MAX/INT_MAX itself isn't defined. This solution only works on machines with internal arithmethics based on "two complements". */ #ifdef DJG # ifdef SHRT_MAX testval = SHRT_MAX; # else /* !SHRT_MAX */ testval = ~0; testval >>= 1; # endif /* !SHRT_MAX */ #else /* !DJG */ # ifdef INT_MAX testval = INT_MAX; # else /* !INT_MAX */ testval = ~0; testval >>= 1; # endif /* !INT_MAX */ #endif /* !DJG */ #if HAVE_ASSERT_H /* To ensure safe program operations, MAXLEN_MAX must be 1024 minimum and `testval' maximum! */ assert (MAXLEN_MAX >= 1024); assert ((Uint) MAXLEN_MAX <= testval); #endif /* Then we have to allocate all string vectors we'll use. */ allocate_all_strings (MAXLEN_MAX, __FILE__, (long) __LINE__); /* Compute the string length of the maximum year able to compute. */ sprintf (s1, "%d", YEAR_MAX); len_year_max = (int) strlen (s1); /* Perform some more assertations for safe program operation. */ #if HAVE_ASSERT_H /* Check if value for maximum number of table entries fits to the positive range of a signed int (SHRT_MAX/INT_MAX)! */ assert (my_argc_max > 0); assert (my_argc_max <= testval); assert (len_year_max < 11); assert (len_year_max > 0); assert (YEAR_MAX >= YEAR_MIN); assert (MONTH_MAX == 12); assert (CENTURY == 1900); /* For safe program operation, BUF_LEN must be 1 minimum and `testval'-1 maximum! */ assert (BUF_LEN >= 1); assert ((Uint) BUF_LEN < testval); assert (strlen (PACKAGE_NAME) > 0); assert (strlen (PACKAGE_VERSION) > 0); assert (MY_ARGC_MAX > 1); assert ((Uint) MY_ARGC_MAX <= testval); assert (HD_ELEMS_MAX > 0); assert ((Uint) HD_ELEMS_MAX <= testval); assert (FWIDTH_MAX > 0); #endif /* HAVE_ASSERT_H */ #ifdef GCAL_NLS /* Now initialize the NLS functions. */ # if HAVE_SETLOCALE setlocale (LC_ALL, ""); # endif # ifndef LOCALEEDIR # define LOCALEEDIR NULL # endif bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); /* Now check whether we use a native language message catalog or the internal default (==English) language texts! */ # if !defined(AMIGA) || defined(__GNUC__) /* Detect whether the $LANGUAGE environment variable (GNU specific) is set. */ ptr_char = getenv (ENV_VAR_LANGUAGE); if (ptr_char != (char *) NULL) if (!*ptr_char) ptr_char = (char *) NULL; if (ptr_char == (char *) NULL) { /* Detect whether the $LC_ALL environment variable is set. */ ptr_char = getenv (ENV_VAR_LC_ALL); if (ptr_char != (char *) NULL) if (!*ptr_char) ptr_char = (char *) NULL; } # if HAVE_LC_MESSAGES if (ptr_char == (char *) NULL) { /* Detect whether the $LC_MESSAGES environment variable is set. */ ptr_char = getenv (ENV_VAR_LC_MESSAGES); if (ptr_char != (char *) NULL) if (!*ptr_char) ptr_char = (char *) NULL; } # endif if (ptr_char == (char *) NULL) { /* Detect whether the $LANG environment variable is set. */ ptr_char = getenv (ENV_VAR_LANG); if (ptr_char != (char *) NULL) if (!*ptr_char) ptr_char = (char *) NULL; } /* Now check the kind of territory specifics we have to use! */ if (ptr_char != (char *) NULL) { if (*ptr_char) { strncpy (s1, ptr_char, 6); s1[5] = '\0'; if (!strncasecmp (s1, "de", 2)) /* We have to use German texts and territory specifics! */ is_en = FALSE; else if (!strncasecmp (s1, "en", 2)) /* We have to use English texts, but we check for territory specifics (either U.S.A. or Great Britain) later! */ is_en = TRUE; else /* Hmm... We have to check whether the special settings "C" or "POSIX" are given, if so, we have to use English texts and U.S.A. territory by default! */ if (!strncasecmp (s1, "posix", 5) || !strcasecmp (s1, "c")) is_en = TRUE; } else /* Environment variable defined but not set, hmm... We use English texts and U.S.A. territory specifics by default! */ is_en = TRUE; } else /* No environment variable defined. */ # endif /* !AMIGA || __GNUC__ */ /* We use English texts and U.S.A. territory specifics by default! */ is_en = TRUE; /* Set some variables according to the native language used. */ if (is_en) { /* `is_en' means English texts and U.S.A. territory specifics by default for now. */ special_calsheet_flag = TRUE; iso_week_number = FALSE; out_rows = J_OUT_ROWS; /* Set the date of Gregorian Reformation to 1752 (table index 2 !!) */ greg += 2; /* Set the date format to U.S.A. style (table index 1 !!) */ date_format++; # if !defined(AMIGA) || defined(__GNUC__) /* Now check whether if we have to use the British date format. */ if (ptr_char != (char *) NULL) if (*ptr_char) { /* Skip the first three characters for detecting a possibly territory information. */ for (i = 0; i < 3; i++) if (*ptr_char) ptr_char++; if (*ptr_char) { strncpy (s1, ptr_char, 3); s1[2] = '\0'; /* We have to use the British date format! */ if (!strcasecmp (s1, CC_GB)) /* Set the date format to Great Britain style (table index 2 !!) */ date_format++; } } # endif /* !AMIGA || __GNUC__ */ } else { /* `!is_en' means German territory specifics (useful for most Europeans) by default and possibly another native language instead of English. */ special_calsheet_flag = FALSE; iso_week_number = TRUE; out_rows = S_OUT_ROWS; } #else /* !GCAL_NLS */ special_calsheet_flag = TRUE; iso_week_number = FALSE; out_rows = J_OUT_ROWS; /* Set the date of Gregorian Reformation to 1752 (table index 2 !!) */ greg += 2; /* Set the date format to U.S.A. style (table index 1 !!) */ date_format++; #endif /* !GCAL_NLS */ /* Test if the default date format is valid. */ if (!is_correct_date_format (date_format->df_format, &use_day_suffix, &use_short3_day_name, &use_day_zeroleaded, &use_year_zeroleaded)) errtxt_dformat = _("default"); /* Test if the program output is redirected or piped. */ #if USE_PAGER is_tty1 = isatty (1); is_tty2 = isatty (2); is_tty = (is_tty1 && is_tty2); # ifdef GCAL_EPAGER if (is_tty) { /* Store the SYS-STDIN/SYS-STDOUT file descriptors. */ dup2 (0, sys_fd[0]); dup2 (1, sys_fd[1]); } # endif #else /* !USE_PAGER */ is_tty = (int) TRUE; #endif /* !USE_PAGER */ /* Detect the own program name. */ i = (int) strlen (*argv); if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); if (!i) strcpy (s3, PACKAGE_NAME); else strcpy (s3, *argv); #ifdef SUFFIX_SEP /* Eliminate version suffix under VMS. */ ptr_char = strrchr (s3, *SUFFIX_SEP); if (ptr_char != (char *) NULL) *ptr_char = '\0'; #endif i = (int) strlen (s3); #ifdef DJG ptr_char = strrchr (s3, *DIR2_SEP); #else /* !DJG */ ptr_char = strrchr (s3, *DIR_SEP); #endif /* !DJG */ if (ptr_char != (char *) NULL) { ptr_char++; i = (int) strlen (ptr_char); } else ptr_char = s3; if (tolower ('A') == 'a') { auto char *buf_ptr_char = ptr_char; for (; *ptr_char; ptr_char++) *ptr_char = (char) tolower (*ptr_char); ptr_char = buf_ptr_char; } /* Suppress ".exe" suffix for MSDOS, OS/2 and VMS. */ if ((i > 4) && !strcmp (ptr_char + i - 4, ".exe")) { i -= 4; *(ptr_char + i) = '\0'; } prgr_name = (char *) my_malloc (i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "prgr_name", 0); strcpy (prgr_name, ptr_char); #if HAVE_SIGNAL /* Now let's modify the signal handling a bit to make sure that temporary files are always deleted if such signals are raised. */ # ifdef SIGINT if (signal (SIGINT, SIG_IGN) != SIG_IGN) (void) signal (SIGINT, (Sig_type) handle_signal); # endif # ifdef SIGTERM if (signal (SIGTERM, SIG_IGN) != SIG_IGN) (void) signal (SIGTERM, (Sig_type) handle_signal); # endif # ifdef SIGHUP if (signal (SIGHUP, SIG_IGN) != SIG_IGN) (void) signal (SIGHUP, (Sig_type) handle_signal); # endif #endif /* HAVE_SIGNAL */ /* Assign the character which is used for separating the time HH:MM. */ /* *** Translators, please translate this as a fixed 1-character text. *** This is the character which is used for separating the time HH:MM. */ time_sep = _(":"); /* Initialize the basic meta texts. */ /* *** Translators, please translate this as a fixed 1-character text. *** This text should be a proper abbreviation of "Year". */ y_txt = _("Y"); /* *** Translators, please translate this as a fixed 1-character text. *** This text should be a proper abbreviation of "Month". */ m_txt = _("M"); /* *** Translators, please translate this as a fixed 1-character text. *** This text should be a proper abbreviation of "Week". */ w_txt = _("W"); /* *** Translators, please translate this as a fixed 1-character text. *** This text should be a proper abbreviation of "Day". */ d_txt = _("D"); /* Initial memory allocation and initialization of the variables which contain the "YY", "YYYY", "MM", "WWW" and "DD" literals. */ yy_lit = (char *) my_malloc (3, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "yy_lit", 0); for (i = 0; i < 2; i++) yy_lit[i] = (char) toupper (*y_txt); yy_lit[i] = '\0'; yyyy_lit = (char *) my_malloc (len_year_max + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "yyyy_lit", 0); for (i = 0; i < len_year_max; i++) yyyy_lit[i] = (char) toupper (*y_txt); yyyy_lit[i] = '\0'; mm_lit = (char *) my_malloc (3, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "mm_lit", 0); for (i = 0; i < 2; i++) mm_lit[i] = (char) toupper (*m_txt); mm_lit[i] = '\0'; www_lit = (char *) my_malloc (4, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "www_lit", 0); for (i = 0; i < 3; i++) www_lit[i] = (char) toupper (*w_txt); www_lit[i] = '\0'; dd_lit = (char *) my_malloc (3, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "dd_lit", 0); for (i = 0; i < 2; i++) dd_lit[i] = (char) toupper (*d_txt); dd_lit[i] = '\0'; /* Initial memory allocation and initialization of the variable which contains the 3 characters "ARG" literal (a proper abbreviation of the word "ARGUMENT"). */ larg_lit = (char *) my_malloc (4, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "larg_lit", 0); /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "ARGUMENT". */ strncpy (larg_lit, _("ARG"), 4); larg_lit[3] = '\0'; /* Initial memory allocation for the `my_argv[]' table. */ my_argv = (char **) my_malloc (MY_ARGC_MAX * sizeof (char *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "my_argv[MY_ARGC_MAX]", MY_ARGC_MAX); /* Initial memory allocation for `month_list[]' structure, the number of vector elements must be set to MONTH_MAX+1 in this case, because the vector must always be terminated by an empty structure element (year==0 && month==0). */ month_list = (Ml_struct *) my_malloc ((MONTH_MAX + 1) * sizeof (Ml_struct), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "month_list[MONTH_MAX+1]", MONTH_MAX + 1); /* Initialize `month_list[]' structure. */ for (i = 0; i <= MONTH_MAX; i++) month_list[i].ml_year = month_list[i].ml_month = 0; #if USE_RC /* Initial memory allocation for an element of the `Line_struct' record. */ lineptrs = (Line_struct *) my_malloc (sizeof (Line_struct), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "lineptrs", 0); /* Initial memory allocation for an element of the `Line_struct' record which is needed if we have to evaluate %?... special texts. */ lptrs3 = (Line_struct *) my_malloc (sizeof (Line_struct), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "lptrs3", 0); /* Initial memory allocation for the fixed date list title text. */ ptr_char = _("Fixed date list:"); rc_heading_text = (char *) my_malloc (strlen (ptr_char) + 1 + 2, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_heading_text", 0); strcpy (rc_heading_text, "0 "); strcat (rc_heading_text, ptr_char); #endif /* USE_RC */ #if !defined(AMIGA) || defined(__GNUC__) /* Detect whether a $GCAL_DATE_FORMAT environment variable is set. */ ptr_char = getenv (ENV_VAR_GCAL_DATE_FORMAT); if (ptr_char != (char *) NULL) if (*ptr_char) { users_date_format.df_info = _("environment variable"); users_date_format.df_format = (char *) my_malloc (strlen (ptr_char) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "users_date_format.df_format", 0); strcpy (users_date_format.df_format, ptr_char); date_format = &users_date_format; /* Test if the date format given in environment variable is valid. */ if (!is_correct_date_format (date_format->df_format, &use_day_suffix, &use_short3_day_name, &use_day_zeroleaded, &use_year_zeroleaded)) errtxt_dformat = _("environment variable"); else errtxt_dformat = (char *) NULL; } /* Detect whether a $TZ (timezone) environment variable is set. */ tz = getenv (ENV_VAR_TZ); if (tz != (char *) NULL) if (!*tz) tz = (char *) NULL; /* Detect whether the $GCAL environment variable is set. */ ptr_char = getenv (ENV_VAR_GCAL); if (ptr_char != (char *) NULL) { if (*ptr_char) { /* $GCAL environment variable defined and not empty: Copy the OPTIONS, expanded @FILE arguments or the actual date modifier %DATE argument only; found in environment variable $GCAL; into the private `my_argv[]' table. */ while (isspace (*ptr_char)) ptr_char++; i = 0; while (*ptr_char) { if ((Uint) i >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); s1[i++] = *ptr_char++; if (!*ptr_char || isspace (*ptr_char)) { s1[i] = '\0'; if (*s1 == *SWITCH || *s1 == *SWITCH2 # if USE_RC || *s1 == RC_ADATE_CHAR # endif || *s1 == RSP_CHAR) { /* Avoid one or two letter combinations of '-', '/', '%' or '@' characters only! */ if (i == 1 || ((i == 2) && (s1[1] == *SWITCH # if USE_RC || s1[1] == RC_ADATE_CHAR # endif || s1[1] == *SWITCH2))) ; /* Void, don't allocate memory */ else { if (*s1 == RSP_CHAR) { /* Try to manage a response file @FILE argument given in the environment variable $GCAL. */ rsp_filename = (char *) my_malloc (strlen (s1), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rsp_filename", 0); strcpy (rsp_filename, s1 + 1); fp = file_open (&rsp_filename, 0, REsponse, &b_dummy); if (fp != (FILE *) NULL) { my_argv = insert_response_file (fp, rsp_filename, these_short_opts_need_args, &my_argc_max, &my_argc, my_argv); (void) fclose (fp); } free (rsp_filename); rsp_filename = (char *) NULL; } else { /* Ok, argument is an option or an actual date modifier %DATE. */ if ((*s1 == *SWITCH || *s1 == *SWITCH2) && (s1[1] != *SWITCH)) { /* Short-style option found. */ if ((strchr (these_short_opts_need_args, s1[1]) != (char *) NULL) && !s1[2]) { /* Short-style option requires an argument, which is separated by one or more whitespace characters from the option character; respect this! This means all separating whitespace characters between the option character and argument will be eliminated. */ while (isspace (*ptr_char)) /* Skip the separating whitespace characters. */ ptr_char++; /* Store needed argument of option adjacent to option character. */ while (*ptr_char && !isspace (*ptr_char)) { if ((Uint) i >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); s1[i++] = *ptr_char++; } s1[i] = '\0'; } } if ((Uint) my_argc >= my_argc_max) { /* Resize the `my_argv[]' table. */ my_argc_max <<= 1; if (my_argc_max * sizeof (char *) > testval) my_argc_max--; my_argv = (char **) my_realloc ((VOID_PTR) my_argv, my_argc_max * sizeof (char *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "my_argv[my_argc_max]", my_argc_max); } my_argv[my_argc] = (char *) my_malloc (i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "my_argv[my_argc]", my_argc); strcpy (my_argv[my_argc++], s1); } } while (isspace (*ptr_char)) ptr_char++; i = 0; } else if (i) { /* Error, argument is a command. */ fprintf (stderr, _ ("%s: command in environment variable `%s' found -- %s\n%s\n%s\n"), prgr_name, ENV_VAR_GCAL, s1, usage_msg (), lopt_msg ()); exit (ERR_INVALID_OPTION); } } } } } #endif /* !AMIGA || __GNUC__ */ /* Now insert/append the "arguments" of command line into the private `my_argv[]' table. */ while (argc > 1) { argv++; /* Preload the contents of response files and don't place this option text itself in private `my_argv[]' command line options table! */ if (**argv == RSP_CHAR) { /* Try to manage a response file @FILE argument given in the command line. */ rsp_filename = (char *) my_malloc (strlen (*argv), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rsp_filename", 0); strcpy (rsp_filename, *argv + 1); fp = file_open (&rsp_filename, 0, REsponse, &b_dummy); if (fp != (FILE *) NULL) { my_argv = insert_response_file (fp, rsp_filename, these_short_opts_need_args, &my_argc_max, &my_argc, my_argv); (void) fclose (fp); } free (rsp_filename); rsp_filename = (char *) NULL; } else { register int len = (int) strlen (*argv); /* Avoid one or two letter combinations of '-', '/' or '%' characters only! */ if (((len == 1) && (**argv == *SWITCH #if USE_RC || **argv == RC_ADATE_CHAR #endif || **argv == *SWITCH2)) || ((len == 2) && (**argv == *SWITCH #if USE_RC || **argv == RC_ADATE_CHAR #endif || **argv == *SWITCH2) && (*(*argv + 1) == *SWITCH #if USE_RC || *(*argv + 1) == RC_ADATE_CHAR #endif || *(*argv + 1) == *SWITCH2))) ; /* Void, don't allocate memory */ else { if ((Uint) my_argc >= my_argc_max) { /* Resize the `my_argv[]' table. */ my_argc_max <<= 1; if (my_argc_max * sizeof (char *) > testval) my_argc_max--; my_argv = (char **) my_realloc ((VOID_PTR) my_argv, my_argc_max * sizeof (char *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "my_argv[my_argc_max]", my_argc_max); } my_argv[my_argc] = (char *) my_malloc (len + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "my_argv[my_argc]", my_argc); strcpy (my_argv[my_argc++], *argv); } } argc--; } /* Building of private `my_argv[]' table is done, so check first whether warning/debug option (`--debug[=0...WARN_LVL_MAX]') is given (needed to set correct warning level in case global date variable definitions follow) and the command execution option (`--execute-command') is given, and then check whether global date variable definitions `-v<>' (or global text variable definitions `-r<>') are given, so we can reference them in the actual date modifier, e.g., %YYYY@DVAR[[-]N[WW[W]]]. */ if (my_argc > 1) { /* Now it's time to rearrange the `my_argv[]' table, so all short-style options with needed argument like `-X foo' are concatenated to `-Xfoo'. */ rearrange_argv (these_short_opts_need_args, &my_argc, my_argv); i = 1; while (i < my_argc) { ptr_char = my_argv[i]; if (*ptr_char == *SWITCH || *ptr_char == *SWITCH2) { ptr_char++; if (*ptr_char == *SWITCH) { /* Long-style option given: Convert it to an according short-style option. */ ptr_char++; /* Copy this long-style option into a buffer. */ j = (int) strlen (ptr_char); if ((Uint) j >= maxlen_max) resize_all_strings (j + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s3, ptr_char); /* Check this long-style option. */ if (!eval_longopt (s3, &lopt_id)) ptr_char = s3; else /* Error in given long-style option detected: Skip this long-style option only! */ ptr_char = s3 + strlen (s3); } else lopt_id = SYM_NIL; if (lopt_id == SYM_DEBUG) warning_level = my_atoi (ptr_char); #if USE_RC else if (lopt_id == SYM_EXECUTE_COMMAND) rc_execute_command = TRUE; else if (*ptr_char == 'r') { ptr_char++; /* Global text variable definition found (e.g.: -r$a=TEXT1:$b=TEXT2:$c=$a...): Try to scan this argument and store found TEXTs into the text variable table. */ while (*ptr_char) { /* Split the SEP (colon) separated list of text variables. */ j = 0; while (*ptr_char && (*ptr_char != *SEP)) { if ((Uint) j >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); s1[j++] = *ptr_char++; /* Take a quoted SEP (colon) separator as is, but remove the quote character. */ if ((*ptr_char == *SEP) && (s1[j - 1] == QUOTE_CHAR)) s1[j - 1] = *ptr_char++; } s1[j] = '\0'; pseudo_blank_conversion (&s1); set_tvar (s1, _("Internal"), 0L, GLobal); if (*ptr_char) ptr_char++; } } else if (*ptr_char == 'v') { ptr_char++; /* Global text variable definition found (e.g.: -va=1227:b=0514:c=a...): Try to scan this argument and store found MMDD dates into the date variable table. */ while (*ptr_char) { /* Split the SEP (colon) separated list of date variables. */ j = 0; while (*ptr_char && (*ptr_char != *SEP)) { if ((Uint) j >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); s1[j++] = *ptr_char++; } s1[j] = '\0'; set_dvar (s1, lineptrs, _("Internal"), 0L, GLobal); if (*ptr_char) ptr_char++; } } #endif /* USE_RC */ } /* Stop processing if the first command is found. */ if ((*my_argv[i] != *SWITCH) && (*my_argv[i] != *SWITCH2) #if USE_RC && (*my_argv[i] != RC_ADATE_CHAR) #endif && (*my_argv[i] != RSP_CHAR)) break; i++; } } #if USE_RC /* Check whether an actual date modifier %DATE is given. */ if (my_argc > 1) { i = 1; while (i < my_argc) { if (*my_argv[i] == RC_ADATE_CHAR) rc_adate = my_argv[i] + 1; /* Stop processing if the first command is found. */ if ((*my_argv[i] != *SWITCH) && (*my_argv[i] != *SWITCH2) && (*my_argv[i] != RC_ADATE_CHAR)) break; i++; } } #endif /* USE_RC */ #ifdef GCAL_EPAGER if (is_tty) { /* Try to detect the external pager program in a safe way. This means first to detect whether a $PAGER environment variable is set, if so, try to use this pager program, otherwise try to use one of the burned-in pager names of `ext_pager[]' table. */ ptr_char = getenv (ENV_VAR_PAGER); if (ptr_char != (char *) NULL) { if (*ptr_char) { while (isspace (*ptr_char)) ptr_char++; i = (int) strlen (ptr_char); if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s3, ptr_char); if (*ptr_char != *DIR_SEP) { ptr_char = strrchr (s3, *DIR_SEP); if (ptr_char != (char *) NULL) ptr_char++; else ptr_char = s3; } j = strlen (ptr_char); ext_pager = (char *) my_malloc (j + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "ext_pager", 0); strcpy (ext_pager, ptr_char); i = 0; while (ext_pager[i] && !isspace (ext_pager[i])) i++; ext_pager[i] = '\0'; if (*ext_pager == *DIR_SEP) { /* Absolute pager name given, try to get this executable directly. */ # if HAVE_SYS_STAT_H && defined(S_IFMT) && defined(S_IFREG) auto struct stat statbuf; /* Test if the file is a regular file, if not, ignore it! */ if (!stat (ext_pager, &statbuf)) if ((statbuf.st_mode & S_IFMT) == S_IFREG) fp = fopen (ext_pager, "r"); # else /* !HAVE_SYS_STAT_H || !S_IFMT || !S_IFREG */ fp = fopen (ext_pager, "r"); # endif /* !HAVE_SYS_STAT_H || !S_IFMT || !S_IFREG */ } else /* Relative pager name given, search this executable using the $PATH environment variable. */ fp = file_open (&ext_pager, 0, COmmon, &b_dummy); if (fp == (FILE *) NULL) { free (ext_pager); ext_pager = (char *) NULL; } else { (void) fclose (fp); if (i != j) { register Uint pg_argc_max = MY_ARGC_MAX; register int pg_argc = 0; register int k = j; /* Initial memory allocation for the `pg_argv[]' table. */ pg_argv = (char **) my_malloc (MY_ARGC_MAX * sizeof (char *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "pg_argv[MY_ARGC_MAX]", MY_ARGC_MAX); /* Now copy the name of the $PAGER executable into `pg_argv[]' table at position 0; */ pg_argv[pg_argc] = (char *) my_malloc (i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "pg_argv[pg_argc]", pg_argc); strcpy (pg_argv[pg_argc++], ext_pager); /* Now copy the command line arguments which are delivered to the $PAGER executable into `pg_argv[]' table at position `pg_argc'. */ j = i + 1; LOOP { if ((Uint) pg_argc >= pg_argc_max) { /* Resize the `pg_argv[]' table. */ pg_argc_max <<= 1; if (pg_argc_max * sizeof (char *) > testval) pg_argc_max--; pg_argv = (char **) my_realloc ((VOID_PTR) pg_argv, pg_argc_max * sizeof (char *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "pg_argv[pg_argc_max]", pg_argc_max); } while (isspace (ext_pager[j])) j++; if (!ext_pager[j]) break; ptr_char = ext_pager + j; while (*ptr_char && !isspace (*ptr_char)) ptr_char++; if (!*ptr_char) ptr_char = ext_pager + k; i = ptr_char - (ext_pager + j); if (!i) break; *ptr_char = '\0'; pg_argv[pg_argc] = (char *) my_malloc (i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "pg_argv[pg_argc]", pg_argc); strcpy (pg_argv[pg_argc++], ext_pager + j); j += i; if (j >= k) break; j++; } /* And terminate the `pg_argv[]' table by a final NULL element. */ if ((Uint) pg_argc >= pg_argc_max) { /* Resize the `pg_argv[]' table. */ pg_argc_max <<= 1; if (pg_argc_max * sizeof (char *) > testval) pg_argc_max--; pg_argv = (char **) my_realloc ((VOID_PTR) pg_argv, pg_argc_max * sizeof (char *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "pg_argv[pg_argc_max]", pg_argc_max); } pg_argv[pg_argc] = (char *) NULL; } } } } if (ext_pager == (char *) NULL) { i = 0; while (pagers[i] != (char *) NULL) { ext_pager = (char *) my_malloc (strlen (pagers[i]) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "ext_pager", 0); strcpy (ext_pager, pagers[i]); fp = file_open (&ext_pager, 0, COmmon, &b_dummy); if (fp != (FILE *) NULL) { (void) fclose (fp); break; } free (ext_pager); ext_pager = (char *) NULL; i++; } } /* If we have found an external pager program, we'll use it! */ if (ext_pager != (char *) NULL) { /* We work unbuffered in this case so we have to flush the stdout buffer first. */ fflush (stdout); /* Open an unnamed pipe. */ if (pipe (pipe_fd) < 0) /* Error, `pipe()' function failed. */ my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 4L, "pipe()<", 0); # if HAVE_SIGNAL && defined(SIGPIPE) /* Ignore the SIGPIPE signal. */ (void) signal (SIGPIPE, SIG_IGN); # endif } } #endif /* GCAL_EPAGER */ /* Check and evaluate the command line arguments and detect, whether a list/range of extended years or other lists/ranges of months/years are wanted. */ check_command_line (my_argc, my_argv); /* If an invalid date format is found, exit the program with error message! */ if (errtxt_dformat != (char *) NULL) my_error (ERR_INVALID_DATE_FORMAT, errtxt_dformat, 0, date_format->df_format, 0); #ifdef GCAL_EMAIL /* In case Gcal's output must be send to a user via eMail: Create and open a temporary file. */ if (email_adr != (char *) NULL) { ptr_char = TMPFILENAME; if (ptr_char == (char *) NULL) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 2L, "tmpnam()=", 0); tfn = (char *) my_malloc (strlen (ptr_char) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "tfn", 0); strcpy (tfn, ptr_char); tfp = fopen (tfn, "w"); if (tfp == (FILE *) NULL) my_error (ERR_WRITE_FILE, __FILE__, ((long) __LINE__) - 2L, tfn, 0); is_tty = (int) FALSE; } #endif /* GCAL_EMAIL */ /* Do we have to suppress the output of a month calendar in case only the `-n|N[-]' option (display eternal holiday list) is found and/or only the `-c[]' option (display fixed dates list) is found? */ if (!year && !month && (holiday_flag #if USE_RC || rc_use_flag #endif ) && !year_flag) show_calendar = FALSE; else /* It's sure that we have to suppress a month/year calendar sheet, because the `-u' option is given in the command line! If NO eternal holiday list option (`-n|N[-]') AND NO fixed dates list option (`-c|C[]') is given, we have to avoid the call of the calendar sheet creating function `print_calendar()'; this case is marked by setting `show_calendar' to FALSE! */ if (suppr_cal_flag #if USE_RC && !rc_use_flag #endif && !holiday_flag) show_calendar = FALSE; #if USE_RC /* Check whether an explicit date is given in the command line. */ is_date_given = (Bool) (month || year || is_fiscal_year); if (rc_use_flag && ((!month && year) || is_fiscal_year)) date_enables_year = TRUE; if (rc_filename != (char *) NULL) pseudo_blank_conversion (&rc_filename); if (rc_filter_text != (char *) NULL) pseudo_blank_conversion (&rc_filter_text); #endif /* USE_RC */ /* Check whether the arguments of command line are valid. */ eliminate_invalid_data (); /* Get the highlighting sequences of the terminal. */ get_tty_hls (hl_seq); #if USE_PAGER /* No program output yet, so if the paging option is wanted: Set the standard stream buffers to unbuffered mode and get actual settings of the tty. */ if (is_tty1 && is_tty2 # ifdef GCAL_EPAGER && (ext_pager == (char *) NULL) # endif && pager_flag) { setbuf (stdout, (char *) NULL); setbuf (stdin, (char *) NULL); get_tty_scr_size (&tty_rows, &tty_cols); } #endif /* USE_PAGER */ #if USE_RC /* If any `-# ARG' resp., `--here=ARG' options are found: Close temporary file which is used for managing all "here" options (it contains all "here" lines now) so it can be used at the end of each resource file processing step/cycle. */ if (rc_here_fn != (char *) NULL) if (fclose (rc_here_fp) == EOF) my_error (ERR_WRITE_FILE, __FILE__, ((long) __LINE__) - 1L, rc_here_fn, 0); #endif /* Log contents of command line: I.e. check whether a response file must be written. */ if (rsp_filename != (char *) NULL) write_log_file (rsp_filename, REsponse, _("response file"), _("Created"), my_argc, my_argv); #ifdef GCAL_SHELL /* Log contents of command line: i.e. check whether a shell script must be written */ if (shl_filename != (char *) NULL) write_log_file (shl_filename, SCript, _("shell script"), _("Created"), my_argc, my_argv); #endif /* GCAL_SHELL */ #ifdef GCAL_EPAGER if (is_tty1 && is_tty2 && pager_flag && (ext_pager != (char *) NULL) && (email_adr == (char *) NULL)) { child_pid = fork (); switch (child_pid) { case -1: /* Error, `fork()' function failed. */ my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 7L, "fork() child_pid=", child_pid); /* Not reached. */ case 0: /* Child process (read from pipe): Connect PIPE-STDIN to SYS-STDIN in a safe way and launch the external pager program. */ close (pipe_fd[1]); if (pipe_fd[0]) { close (0); dup (pipe_fd[0]); close (pipe_fd[0]); } if (pg_argv == (char **) NULL) { i = execlp (ext_pager, ext_pager, (char *) NULL); /* Error, `execlp()' function failed (this line should never be executed)! */ j = (int) strlen (ext_pager) + LEN_SINGLE_LINE; if ((Uint) j >= maxlen_max) resize_all_strings (j + 1, FALSE, __FILE__, (long) __LINE__); sprintf (s1, "execlp(%s)=", ext_pager); my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 9L, s1, i); } else { i = execvp (ext_pager, pg_argv); /* Error, `execvp()' function failed (this line should never be executed)! */ j = (int) strlen (ext_pager) + LEN_SINGLE_LINE; if ((Uint) j >= maxlen_max) resize_all_strings (j + 1, FALSE, __FILE__, (long) __LINE__); sprintf (s1, "execvp(%s)=", ext_pager); my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 9L, s1, i); } /* Not reached. */ default: /* Parent process (write to pipe): Connect PIPE-stdout to SYS-stdout in a safe way and initiate the action. */ close (pipe_fd[0]); if (pipe_fd[1] != 1) { close (1); if (!dup (pipe_fd[1])) { dup (pipe_fd[1]); close (0); } close (pipe_fd[1]); } } } #endif /* GCAL_EPAGER */ /* And now display the calendar sheet(s)! */ if (show_calendar) print_calendar (); else /* Only the `-n|N[-]' option (display eternal holiday list) is found and/or only the `-c[]' option (display fixed dates) is found, display these list(s) without/omitting a leading month calendar. */ if (holiday_flag #if USE_RC || rc_use_flag #endif ) { register int tmp_ad = act_day; is_leap_year = (days_of_february (year) == 29); if (is_fiscal_year) fiscal_month = (*month_list).ml_month; if (cal_special_flag) act_day = day_of_year (tmp_ad, act_month, act_year); if (((year == EASTER_MIN - 1) && (fiscal_month > MONTH_MIN)) || ((year >= EASTER_MIN) && (year <= EASTER_MAX))) print_all_holidays (FALSE, TRUE); if (cal_special_flag) act_day = tmp_ad; } /* If the simple month/year mode is active... */ if (!month_list[1].ml_month) { if (is_fiscal_year || (holiday_flag && !show_calendar)) month = 0; #if USE_RC if (rc_use_flag) rc_use (); #endif if (holiday_flag) { if (((year == EASTER_MIN - 1) && (fiscal_month == 1)) || year < EASTER_MIN - 1 || year > EASTER_MAX) /* Error, invalid year given for computing Easter Sunday's date. */ my_error (ERR_INVALID_EASTER_DATE, "", 0L, "", 0); print_all_holidays (FALSE, FALSE); } } #ifdef GCAL_EPAGER if (is_tty1 && is_tty2 && pager_flag && (ext_pager != (char *) NULL) && (email_adr == (char *) NULL)) { /* We work unbuffered in this case so we have to flush the stdout buffer for showing all contents of it. */ fflush (stdout); /* And reconnect the SYS-STDIN/SYS-STDOUT file descriptors. */ close (0); dup (sys_fd[0]); close (1); dup (sys_fd[1]); /* And wait until the child has performed all actions. */ while (wait ((int *) NULL) != child_pid) ; # if HAVE_SIGNAL && defined(SIGPIPE) /* Reset the SIGPIPE signal. */ (void) signal (SIGPIPE, SIG_DFL); # endif } #endif /* GCAL_EPAGER */ #ifdef GCAL_EMAIL /* If the mailing option is selected: Close temporary file, redirect it to mailer and then erase it. */ if (email_adr != (char *) NULL) { if (fclose (tfp) == EOF) my_error (ERR_WRITE_FILE, __FILE__, ((long) __LINE__) - 1L, tfn, 0); else { /* Check whether the temporary file is "empty" (zero contents). */ # if HAVE_SYS_STAT_H auto struct stat statbuf; tfp = (FILE *) NULL; /* Get the size of the temporary file. If it's not accessable, report a serious error. */ if (!stat (tfn, &statbuf)) i = (statbuf.st_size > 0); else my_error (ERR_READ_FILE, __FILE__, ((long) __LINE__) - 3L, tfn, 0); # else /* !HAVE_SYS_STAT_H */ i = 0; tfp = fopen (tfn, "r"); if (tfp == (FILE *) NULL) my_error (ERR_READ_FILE, __FILE__, ((long) __LINE__) - 2L, tfn, 0); i = fgetc (tfp); if (fclose (tfp) == EOF) my_error (ERR_READ_FILE, __FILE__, ((long) __LINE__) - 1L, tfn, 0); tfp = (FILE *) NULL; i = (i != EOF); # endif /* !HAVE_SYS_STAT_H */ } if (i) { sprintf (s2, _("Mail from \\`%s' (%02d-%s-%04d %02d%s%02d%s%02d"), prgr_name, true_day, short_month_name (true_month), true_year, act_hour, time_sep, act_min, time_sep, act_sec); if (tz != (char *) NULL) { sprintf (s1, " %s", tz); strcat (s2, s1); } strcat (s2, ")"); # if !defined(AMIGA) || defined(__GNUC__) /* Detect whether a $MAILPROG environment variable is set. */ ptr_char = getenv (ENV_VAR_MAILPROG); if (ptr_char != (char *) NULL) { if (!*ptr_char) ptr_char = MAIL_PRGR; } else # endif /* !AMIGA || __GNUC__ */ ptr_char = MAIL_PRGR; i = (int) strlen (ptr_char) + strlen (s2) + strlen (email_adr) + strlen (REDIRECT_IN) + 9; if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); sprintf (s1, "%s -s \"%s\" %s %s %s", ptr_char, s2, email_adr, REDIRECT_IN, tfn); /* And send the eMail to the given `email_adr' NOW. */ if (my_system (s1)) { /* If the "shell" reports a MAIL exit status not equal 0, first try to erase the temporary file (if this results to an error, this error has a higher preference than pointing out only that the mail program has failed, see the next comment to this a few lines below), and only then, terminate Gcal with error message. */ i = unlink (tfn); if (i) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 2L, "unlink(tfn)=", i); my_error (ERR_EMAIL_SEND_FAILURE, __FILE__, ((long) __LINE__) - 13L, email_adr, 0); } } else fprintf (stderr, _ ("%s: warning, eMail with empty message body not sent to <%s>.\n"), prgr_name, email_adr); i = unlink (tfn); if (i) /* Don't ignore any errors, because NOT being able to erase a non-write protected regular file we have created just some [milli]seconds before is a serious error that DOES produce trouble in future, because this is a detection of a bad block of the storage media in most cases! */ my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 9L, "unlink(tfn)=", i); } #endif /* GCAL_EMAIL */ #if USE_RC /* Erase temporary file which is used for managing all `-# ARG' resp., `--here=ARG' options if all processing is done. */ if (rc_here_fn != (char *) NULL) { i = unlink (rc_here_fn); if (i) /* Don't ignore any errors, because NOT being able to erase a non-write protected regular file we have created some time before is a serious error that DOES produce trouble in future, because this is a detection of a bad block of the storage media in most cases! */ my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 8L, "unlink(rc_here_fn)=", i); } if (rc_use_flag && !shell_escape_done && (!rc_elems || (rc_zero_dates_flag && !(rc_elems - rc_zero_pos)))) exit (ERR_NO_FIXED_DATES_LISTED); #endif exit (EXIT_SUCCESS); } int eval_longopt (longopt, longopt_symbolic) char *longopt; int *longopt_symbolic; /*! Evaluates a long option and returns -2...0 if success, +1...+6 if fails: -2 == Given `longopt' successfully parsed and completed `long_name' with argument returned. -1 == Given `longopt' successfully parsed and completed `long_name' returned only. 0 == Given `longopt' successfully parsed and corresponding `short_name' returned. +1 == Given `longopt' is ambiguous (not distinguishable). +2 == Given `longopt' is unknown. +3 == Given `longopt' requires no argument (completed `long_name' returned). +4 == Given `longopt' requires an argument +5 == Given `longopt' with invalid argument. +6 == Given `longopt' with ambiguous argument. This function `abort()'s internally if no SPECIAL longoption argument is defined in the `lopt[]' table for a LARG_ONE_OR_ARG mode, but one or some `short_name' entries are in it! Such a case is illegal! If success and `short_name[0]' isn't set to NULL, the delivered `longopt' is converted to an according `short_name' (UN*X-style) option and returned, otherwise `longopt' is returned unmodified. If success and `short_name[0]' is set to NULL, return the completed `long_name' (with possibly trailing arguments) instead. `&longopt_symbolic' is either set to SYM_NIL if given `longopt' isn't member of field `long_name' in `lopt[]' table or to the according SYM_???. */ { auto const Lopt_struct *ptr_lopt = lopt; *longopt_symbolic = SYM_NIL; if (tolower (*longopt) >= tolower (*ptr_lopt->long_name)) { /* Check whether first character of `longopt' can be found in `lopt[]' tables structure member `long_name'. */ while (tolower (*ptr_lopt->long_name) < tolower (*longopt)) { ptr_lopt++; if (ptr_lopt->long_name == NULL) break; } if (ptr_lopt->long_name != NULL) { if (tolower (*ptr_lopt->long_name) == tolower (*longopt)) { auto const Lopt_struct *ptr2_lopt = ptr_lopt + 1; register int len_longopt = (int) strlen (longopt); auto Bool larg_sep_found; auto Bool ok = FALSE; if (strchr (longopt, *LARG_SEP) != NULL) len_longopt -= (int) strlen (strchr (longopt, *LARG_SEP)); /* First character of `longopt' is found in `lopt[]' tables structure member `long_name'; now check for the complete long name or a significant abbreviation of it. */ while (!ok && (ptr_lopt->long_name != NULL)) { if (ptr2_lopt->long_name != NULL) if (!strncasecmp (ptr_lopt->long_name, longopt, len_longopt) && !strncasecmp (ptr2_lopt->long_name, longopt, len_longopt)) /* Error, `longopt' is ambiguous (not distinguishable). */ return (1); if (strncasecmp (ptr_lopt->long_name, longopt, len_longopt)) { ptr_lopt++; if (ptr_lopt->long_name != NULL) ptr2_lopt++; if ((ptr_lopt->long_name != NULL) && (ptr2_lopt->long_name == NULL)) if (!strncasecmp (ptr_lopt->long_name, longopt, len_longopt)) ok = TRUE; } else ok = TRUE; } if (!ok) /* Error, `longopt' not found (contains a spelling mistake). */ return (2); larg_sep_found = (Bool) (((int) strlen (longopt) - len_longopt) ? TRUE : FALSE); if (larg_sep_found && (ptr_lopt->larg_mode == LARG_NO)) { strcpy (longopt, ptr_lopt->long_name); *longopt_symbolic = ptr_lopt->symbolic_name; /* Error, `longopt' requires NO argument. */ return (3); } if (!larg_sep_found && (ptr_lopt->larg_mode > LARG_NO_OR_ONE)) { *longopt_symbolic = ptr_lopt->symbolic_name; /* Error, `longopt' requires AN argument. */ return (4); } /* Valid `longopt' found. */ if (ptr_lopt->larg_mode == LARG_NO || ((ptr_lopt->larg_mode == LARG_NO_OR_ONE) && !larg_sep_found)) { /* `longopt' requires NO argument (e.g. foo). Return the FIRST `short_name' of `lopt[]' table if it's not set to NULL, otherwise return the completed `long_name'. */ if (ptr_lopt->short_name[0] == NULL) { strcpy (longopt, ptr_lopt->long_name); *longopt_symbolic = ptr_lopt->symbolic_name; return (-1); } strcpy (longopt, ptr_lopt->short_name[0]); } else { auto char *ptr_char = longopt + len_longopt + 1; auto char *larg_longopt; /* `longopt' must have ONE trailing argument (e.g. foo=BAR); Return the CORRESPONDING `short_name' stored in `lopt[]' table. */ if (!*ptr_char) { *longopt_symbolic = ptr_lopt->symbolic_name; /* Error, `longopt' isn't trailed by an argument. */ return (4); } larg_longopt = (char *) my_malloc (strlen (longopt) - len_longopt, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "larg_longopt", 0); strcpy (larg_longopt, ptr_char); if (ptr_lopt->largs[0] == NULL) { /* Process GIVEN argument. */ if (ptr_lopt->short_name[0] == NULL) { /* Return the completed `long_name' with GIVEN argument; the format of returned `longopt' is like: foo=ARG */ strcpy (longopt, ptr_lopt->long_name); strcat (longopt, LARG_SEP); strcat (longopt, larg_longopt); *longopt_symbolic = ptr_lopt->symbolic_name; free (larg_longopt); return (-2); } if (ptr_lopt->larg_mode == LARG_ONE_OR_ARG) /* Internal error, such a mode MUST HAVE one SPECIAL longoption argument minimum in the table! */ abort (); /* Return the corresponding `short_name' with GIVEN argument; the format of returned `longopt' is like: fooARG */ strcpy (longopt, ptr_lopt->short_name[0]); strcat (longopt, larg_longopt); } else { register int i = 0; /* Process SPECIAL argument given. */ ok = FALSE; i = 0; ptr_char = ptr_lopt->largs[i++]; while (!ok && (ptr_char != NULL)) { if (tolower (*ptr_char) == tolower (*larg_longopt)) { register int j = i - 1; register int len_larg = (int) strlen (larg_longopt); if (!strncasecmp (ptr_lopt->largs[j], larg_longopt, len_larg)) { if (len_larg == (int) strlen (ptr_lopt->largs[j])) /* Exact match happened! */ ok = TRUE; else { while (!ok && (ptr_lopt->largs[i] != NULL)) { if (!strncasecmp (ptr_lopt->largs[i], larg_longopt, len_larg) && (len_larg == (int) strlen (ptr_lopt-> largs[i]))) /* Exact match happened! */ ok = TRUE; i++; } } if (!ok) { auto Bool ambig = FALSE; /* The given SPECIAL argument doesn't match precisely, so try to detect whether it's ambiguous. */ i = j + 1; while (!ambig && (ptr_lopt->largs[i] != NULL)) { if (!strncasecmp (ptr_lopt->largs[i], larg_longopt, len_larg)) ambig = TRUE; i++; } if (ambig) { *longopt_symbolic = ptr_lopt->symbolic_name; /* Error, the given SPECIAL argument is ambiguous. */ return (6); } else { /* The given SPECIAL argument is valid! */ ok = TRUE; i = j + 1; } } } else ptr_char = ptr_lopt->largs[i++]; } else ptr_char = ptr_lopt->largs[i++]; } if (!ok && (ptr_lopt->larg_mode != LARG_ONE_OR_ARG)) { *longopt_symbolic = ptr_lopt->symbolic_name; /* Error, the given SPECIAL argument not found in `lopt[]' tables structure member `largs'. */ return (5); } i--; if (ptr_lopt->short_name[0] == NULL) { /* Return the completed `long_name' with a completed SPECIAL argument or with a GIVEN argument; the format of returned `longopt' is like: foo=BAR or foo=ARG */ strcpy (longopt, ptr_lopt->long_name); strcat (longopt, LARG_SEP); if (ptr_lopt->larg_mode == LARG_ONE_OR_ARG) /* Return with the GIVEN argument. */ strcat (longopt, larg_longopt); else /* Return with the completed SPECIAL argument. */ strcat (longopt, ptr_lopt->largs[i]); *longopt_symbolic = ptr_lopt->symbolic_name; free (larg_longopt); return (-2); } if (!ok && (ptr_lopt->larg_mode == LARG_ONE_OR_ARG)) { /* Return the corresponding `short_name' with a GIVEN argument; the format of returned `longopt' is like: fooBAR */ strcpy (larg_longopt, longopt + len_longopt + 1); strcpy (longopt, ptr_lopt->short_name[--i]); strcat (longopt, larg_longopt); } else { /* Return the corresponding `short_name' with a converted SPECIAL argument; the format of returned `longopt' is like: fooBAR */ strcpy (longopt, ptr_lopt->short_name[i]); if (!strcmp (ptr_lopt->largs[i], larg_lit)) /* Error, `larg_lit' matched, so return with the GIVEN argument. */ strcat (longopt, larg_longopt); } } free (larg_longopt); } } else /* Error, `longopt' not member of field `long_name' in `lopt[]' table. */ return (2); } else /* Error, `longopt' not member of field `long_name' in `lopt[]' table. */ return (2); } else /* Error, first entry in `lopt[]' tables structure member `long_name' is greater than the delivered `longopt'. */ return (2); *longopt_symbolic = ptr_lopt->symbolic_name; return (0); } static Bool is_correct_date_format (format_txt, use_day_suffix, use_short3_day_name, use_day_zeroleaded, use_year_zeroleaded) char *format_txt; Bool *use_day_suffix; Bool *use_short3_day_name; Bool *use_day_zeroleaded; Bool *use_year_zeroleaded; /*! Checks whether the delivered `format_txt' contains valid format directives (see the `decode_date_format()' function for a more brief description of all used format specifiers). Returns FALSE in case any invalid format specifiers are found, otherwise TRUE. Boolean `&use_day_suffix' is set to TRUE and is returned in case a day GROUP format character defining the use of a trailing day suffix is found in `format_txt', otherwise to FALSE. Boolean `&use_short3_day_name' is set to TRUE and is returned in case a weekday GROUP format character defining the use of a day name truncated to three characters WWW is found in `format_txt', otherwise to FALSE. Boolean `&use_day_zeroleaded' is set to TRUE and is returned in case a day GROUP format character defining the use of a day with leading zeroes is found in `format_txt', otherwise to FALSE. Boolean `&use_year_zeroleaded' is set to TRUE and is returned in case a year GROUP format character defining the use of a year with leading zeroes is found in `format_txt', otherwise to FALSE. */ { register int start_highlighting = 2; register int end_highlighting = 2; register int weekday_name_group = 2; register int day_group = 2; register int month_group = 2; register int year_group = 2; register int pos; auto int fstyle = FSTYLE_NONE; auto int fwidth = SPECIAL_VALUE; auto Bool is_cformat = FALSE; auto Bool is_lformat = FALSE; auto Bool is_sign = FALSE; auto Bool is_lzero = FALSE; auto Bool is_fformat = FALSE; auto Bool is_suffix = FALSE; *use_day_suffix = (*use_short3_day_name) = (*use_day_zeroleaded) = (*use_year_zeroleaded) = FALSE; if (!*format_txt) /* Error, no `format_txt' given. */ return (FALSE); do { while (*format_txt && (*format_txt != DFORMAT_CHAR) && (*format_txt != QUOTE_CHAR)) format_txt++; if (*format_txt) { if (*format_txt == DFORMAT_CHAR) { pos = decode_format (format_txt, 1, &is_cformat, &is_lformat, &is_sign, &is_lzero, &is_suffix, &is_fformat, &fstyle, &fwidth); format_txt += pos; /* Format specifier found. */ switch (*format_txt) { case HLS1S_CHAR: if (end_highlighting == 2) if (start_highlighting) start_highlighting--; break; case HLS1E_CHAR: if (start_highlighting == 1) if (end_highlighting) end_highlighting--; break; case DAYNR_CHAR: if (is_lzero) *use_day_zeroleaded = TRUE; if (is_suffix) *use_day_suffix = TRUE; if (day_group) day_group--; break; case WDNAME_CHAR: if (fwidth == 3) *use_short3_day_name = TRUE; if (weekday_name_group) weekday_name_group--; break; case MONTHNAME_CHAR: case MONTHNR_CHAR: if (month_group) month_group--; break; case YEARNR_CHAR: if (is_lzero) *use_year_zeroleaded = TRUE; if (year_group) year_group--; break; default: /* Error, invalid or no date format character specified. */ return (FALSE); } } else /* Quote character found. */ if (!*++format_txt) format_txt--; format_txt++; } else break; } while (*format_txt); if (start_highlighting != 1 || end_highlighting != 1 || day_group != 1 || month_group != 1 || year_group != 1) /* Error, either required date format element not given or it occurred more than once. */ return (FALSE); if (weekday_name_group < 1) /* Error, optional format element occurred more than once. */ return (FALSE); return (TRUE); } static void rearrange_argv (opt_list, argc, argv) const char *opt_list; int *argc; char *argv[]; /*! Rearranges `argv[]' internally. This means all short-style options which need an argument, that is separated by a whitespace character in the command line from the short option character, e.g. `-x foo', is concatenated to `-xfoo'. The short option characters which need an argument are given in `opt_list'. This function sets given `&argc' to the "new" rearranged amount of arguments stored in `argv[]'. */ { register int i = (*argc - 1); register int n = 1; auto char **ptr_argv = argv; auto char **ptr2_argv; auto Bool is_modified; while (i) { /* Skip `argv[0]' generally! */ ptr_argv++; is_modified = FALSE; if (**ptr_argv == *SWITCH || **ptr_argv == *SWITCH2) { /* Found an option in `argv[]' (either a long-style option or a short-style option). */ (*ptr_argv)++; if (**ptr_argv && (**ptr_argv != *SWITCH)) { /* Short-style option given, e.g. `-x' or `-Xfoo' or `-x bar'. */ if (strchr (opt_list, **ptr_argv) != (char *) NULL) { /* The option character is found in `opt_list', this means this option needs an argument. */ if (i > 1) { /* We are not working on the final option stored in `argv[]'. */ (*ptr_argv)++; /* Check if the option doesn't have its argument already unseparated by a whitespace character in the command line, e.g. is not like this `-Xfoo' option. */ if (!**ptr_argv) { /* Check if the option is trailed by a needed argument, which is the next argument in `argv[]', e.g. `-x bar'. */ (*ptr_argv) -= 2; ptr2_argv = ptr_argv; ptr2_argv++; /* Check whether this next argument in `argv[]' is an option. */ if ((**ptr2_argv != RSP_CHAR) #if USE_RC && (**ptr2_argv != RC_ADATE_CHAR) #endif ) { if ((**ptr2_argv == *SWITCH || **ptr2_argv == *SWITCH2) && (strlen (*ptr2_argv) <= 2)) /* Next argument is definitely a simple short-style option without a given modifier, e.g. `-x' or `/x'. */ (*ptr_argv)++; else { /* Next argument is no option, so let's concatenate the short-style option character and its needed argument. */ i--; argv[n] = (char *) my_realloc ((VOID_PTR) (argv[n]), strlen (*ptr_argv) + strlen (*ptr2_argv) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "argv[n]", n); strcpy (argv[n], *ptr_argv); strcat (argv[n], *ptr2_argv); ptr_argv++; is_modified = TRUE; } } else (*ptr_argv)++; } else (*ptr_argv)--; } } } } else (*ptr_argv)++; if (!is_modified) { /* Unmodified argument found in `argv[]'. This means, the argument we work on here is: either a short-style option, which needs an argument, which isn't given, or a short-style option, which already contains its argument like `-Xfoo', or a simple short-style option like `-x', or a long-style option like `--foo', or a command (an argument not leaded by a '-', '/', '@' or '%' character. */ (*ptr_argv)--; argv[n] = (char *) my_realloc ((VOID_PTR) (argv[n]), strlen (*ptr_argv) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "argv[n]", n); strcpy (argv[n], *ptr_argv); } n++; i--; } *argc = n; } static void check_command_line (argc, argv) int argc; char *argv[]; /*! Gets and manages the arguments from the command line. */ { register int opt_error = 0; register int len; auto int i; auto int lopt_help; auto char rel_time_offset = '\0'; #if USE_RC auto char rel_loop_end = '\0'; #endif auto char *ptr_char; auto char *option = (char *) NULL; #if USE_RC auto char *rc_period_argv = (char *) NULL; auto char *rc_period_option = (char *) NULL; auto Bool set_loop_end = FALSE; auto Bool rc_period_is_longopt = FALSE; #endif auto Bool is_longopt = FALSE; auto Bool license_flag = FALSE; /* `-L' */ auto Bool version_flag = FALSE; /* `-V' */ auto Bool help_flag = FALSE; /* `-?' | `-h' */ auto Bool ext_help_flag = FALSE; /* `-??' | `-hh' */ auto Bool help_on_help_flag = FALSE; /* `--long-help=?' */ auto Bool skip_option = FALSE; auto Bool lopt_ambig = FALSE; /* Work on the arguments that have been found in the command line. */ while (argc > 1) { option = *++argv; /* If a leading switch character is found, check the command line for options. */ if (*option == *SWITCH || *option == *SWITCH2) { is_longopt = FALSE; /* Check the command line for options. */ for (option++; *option; option++) { skip_option = FALSE; /* Check for long-style options, e.g. `--help' ... */ if (*option == *SWITCH) { option--; if (*option == *SWITCH) { is_longopt = TRUE; option += 2; } if (*option && is_longopt) { /* Copy this long-style option into a buffer. */ len = (int) strlen (option); if ((Uint) len >= maxlen_max) resize_all_strings (len + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s2, option); /* Check this long-style option. */ opt_error = eval_longopt (s2, &lopt_id); if (opt_error < 1) { opt_error = 0; switch (lopt_id) { #if USE_RC case SYM_ADJUST_VALUE: option = strchr (s2, *LARG_SEP) + 1; (void) sscanf (option, "%lf", &adjust_value); /* Avoid nonsense data. */ if (abs (adjust_value) > DEGS_PER_06_HOURS) /* Error, long-style option is trailed by an invalid argument. */ opt_error = 5; break; case SYM_ATMOSPHERE: option = strchr (s2, *LARG_SEP) + 1; ptr_char = strchr (option, *SPLIT_SEP); if (ptr_char == (char *) NULL) /* Error, long-style option is trailed by an invalid argument. */ opt_error = 5; else *ptr_char = '\0'; (void) sscanf (option, "%lf", &atm_pressure); if (atm_pressure > 0.0) { /* Avoid nonsense data (0.0 mb < pressure <= 1200.0 mb). */ if (atm_pressure > 1200.0) /* Error, long-style option is trailed by an invalid argument. */ opt_error = 5; else { /* Convert given Millibar (mb) value to a Newton per square meter (Nm^-2) value. */ atm_pressure *= 100.0; ptr_char++; if (*ptr_char) { (void) sscanf (ptr_char, "%lf", &atm_temperature); /* Avoid nonsense data (-100.0 C <= temperature <= +100.0 C). */ if (abs (atm_temperature) > 100.0) /* Error, long-style option is trailed by an invalid argument. */ opt_error = 5; } else /* Error, long-style option is trailed by an invalid argument. */ opt_error = 5; } } else opt_error = 0; break; case SYM_EXECUTE_COMMAND: rc_execute_command = TRUE; break; case SYM_extern_static_DVARS: rc_export_ldvar_flag = TRUE; break; case SYM_extern_static_TVARS: rc_export_ltvar_flag = TRUE; break; case SYM_HEADING_TEXT: option = strchr (s2, *LARG_SEP) + 1; rc_heading_text = (char *) my_realloc ((VOID_PTR) rc_heading_text, strlen (option) + 1 + 2, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rc_heading_text", 0); strcpy (rc_heading_text, "0 "); strcat (rc_heading_text, option); pseudo_blank_conversion (&rc_heading_text); break; case SYM_IGNORE_CASE: rc_ignore_case_flag = TRUE; break; case SYM_LIMIT: rc_limit = TRUE; break; case SYM_LEAP_DAY: rc_feb_29_to_feb_28 = rc_feb_29_to_mar_01 = FALSE; if (tolower (*s2) == 'f') rc_feb_29_to_feb_28 = TRUE; else rc_feb_29_to_mar_01 = TRUE; break; case SYM_PRECISE: rc_precise = TRUE; break; case SYM_REVERT_MATCH: rc_revert_match_flag = TRUE; break; case SYM_BIORHYTHM_AXIS_LEN: option = strchr (s2, *LARG_SEP) + 1; if (*option == '0') { while (*option == '0') option++; if (!*option) option--; } rc_bio_axis_len = my_atoi (option); if (rc_bio_axis_len > BIO_AXIS_MAX || rc_bio_axis_len < BIO_AXIS_MIN) /* Error, long-style option is trailed by an invalid argument. */ opt_error = 5; else /* Decrease `rc_bio_axis_len' by 1 until it divides BIO_AXIS_MAX without a remainder. */ while (BIO_AXIS_MAX % rc_bio_axis_len) rc_bio_axis_len--; break; case SYM_MOONIMAGE_LINES: option = strchr (s2, *LARG_SEP) + 1; if (*option == '0') { while (*option == '0') option++; if (!*option) option--; } rc_moonimage_lines = my_atoi (option); if (rc_moonimage_lines > MOONIMAGE_MAX || rc_moonimage_lines < MOONIMAGE_MIN) /* Error, long-style option is trailed by an invalid argument. */ opt_error = 5; break; #endif /* USE_RC */ #ifdef GCAL_EMAIL case SYM_MAIL: option = strchr (s2, *LARG_SEP); if (option == (char *) NULL) { # if !defined(AMIGA) || defined(__GNUC__) /* Detect whether a $MAILTO environment variable is set. */ ptr_char = getenv (ENV_VAR_MAILTO); if (ptr_char != (char *) NULL) if (*ptr_char) option = ptr_char; if (option == (char *) NULL) { /* Detect whether a $USER environment variable is set. */ ptr_char = getenv (ENV_VAR_USER); if (ptr_char != (char *) NULL) if (*ptr_char) option = ptr_char; if (option == (char *) NULL) { /* Detect whether a $LOGNAME environment variable is set. */ ptr_char = getenv (ENV_VAR_LOGNAME); if (ptr_char != (char *) NULL) if (*ptr_char) option = ptr_char; } } # else /* AMIGA && !__GNUC__ */ ; /* Void, nothing to do now. */ # endif /* AMIGA && !__GNUC__ */ } else option++; if (option != (char *) NULL) if (*option) { if (email_adr == (char *) NULL) email_adr = (char *) my_malloc (strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "email_adr", 0); else email_adr = (char *) my_realloc ((VOID_PTR) email_adr, strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "email_adr", 0); strcpy (email_adr, option); } break; #endif case SYM_DEBUG: break; /* Void, `--debug[=0...WARN_LVL_MAX]' is already managed in main() */ case SYM_EXIT_STAT_HELP_NON_ZERO: exit_stat_help = ERR_EXIT_INFO_TEXTS_NON_ZERO; break; case SYM_ISO_WEEK_NUMBER: if (tolower (*s2) == 'y') iso_week_number = TRUE; else iso_week_number = FALSE; break; #if USE_RC case SYM_CYCLE_END: case SYM_CYCLE_STEP: #endif case SYM_TIME_OFFSET: { register int sign = 0; register int state = 1; register int digits = 0; auto Bool skip = FALSE; auto Bool is_last = FALSE; auto Bool time_sep_found = FALSE; auto Bool is_leading_zero = TRUE; /* Scan and parse the argument given to the `--cycle-*' and `--time-offset' options if they conform to either the 't'|'@' character or the `[t|@][+|-]MMMM|HH:[MM]' template. If a 't' character is found, treat the time displacement value relative the actual local time value as given by the system clock. If a '@' character is found, treat the time displacement value relative the actual gmt value as given by the system clock. If [+|-]MMMM is given, skip all possibly leading zeroes of MMMM. The HH:[MM] time separating character ':' is choosen by the used locale at runtime. */ i = 0; switch (lopt_id) { case SYM_TIME_OFFSET: time_hour_offset = time_min_offset = 0; #if USE_RC break; case SYM_CYCLE_END: loop_end = SPECIAL_VALUE; set_loop_end = FALSE; break; case SYM_CYCLE_STEP: loop_step = DEFAULT_CYCLE_STEP; #endif } option = strchr (s2, *LARG_SEP) + 1; #if USE_RC if (*option == RC_TIME_CHAR || *option == RC_GMTIME_CHAR) #else /* !USE_RC */ if (*option == staticTIME_CHAR) #endif /* !USE_RC */ { if (lopt_id == SYM_TIME_OFFSET) rel_time_offset = *option; #if USE_RC else if (lopt_id == SYM_CYCLE_END) rel_loop_end = *option; #endif option++; } else if (lopt_id == SYM_TIME_OFFSET) rel_time_offset = '\0'; #if USE_RC else if (lopt_id == SYM_CYCLE_END) rel_loop_end = '\0'; #endif if (*option) { while (*option) { skip = FALSE; switch (state) { case 1: if (!isdigit (*option)) { if (*option == *ASC_LIT || *option == *DES_LIT) { if (sign || time_sep_found) state = 0; else sign++; break; } else state++; } else { if (*option == '0') { if (is_leading_zero) { skip = TRUE; break; } digits++; } else digits++; is_leading_zero = FALSE; break; } /* Fallthrough. */ case 2: if (!digits && !is_leading_zero) state = 0; else if (!time_sep_found) { if (*option == *time_sep || *option == *DEFAULT_TIME_SEP) { if (digits > 2) state = 0; else { time_sep_found = TRUE; digits = 0; state--; } } else state = 0; } else { if (digits > 4) state = 0; else is_last = TRUE; } break; default: state = 0; } if (state && !skip) s3[i++] = *option; option++; } if (!state || is_last || (i && !time_sep_found && !is_leading_zero && !digits) || (time_sep_found && (digits > 2)) || ((state == 1) && (digits > 4))) /* Error, invalid condition occurred. */ opt_error = 5; if (i && !opt_error) { s3[i] = '\0'; /* Process the time displacement value. */ i = atoi (s3); if (time_sep_found) { i *= MINS_PER_HOUR; ptr_char = strchr (s3, *time_sep); if (ptr_char == (char *) NULL) ptr_char = strchr (s3, *DEFAULT_TIME_SEP); if (*++ptr_char) { state = atoi (ptr_char); if (abs (state) >= MINS_PER_HOUR) opt_error = 5; else if (!i) { if (*s3 == *DES_LIT) i = -state; else i = state; } else if (SGN (i) < 0) i -= state; else i += state; } } if (!opt_error) switch (lopt_id) { case SYM_TIME_OFFSET: time_hour_offset = MM2HH (abs (i)); time_min_offset = abs (i) % MINS_PER_HOUR; if (i < 0) { time_hour_offset = -time_hour_offset; time_min_offset = -time_min_offset; } #if USE_RC break; case SYM_CYCLE_END: loop_end = i; set_loop_end = TRUE; break; case SYM_CYCLE_STEP: /* Reduce the given cycle-timestep value in minutes to a single day. */ if (i <= 0) loop_step = DEFAULT_CYCLE_STEP; else if (i >= MINS_PER_DAY) loop_step = MINS_PER_DAY - 1; else loop_step = i; #endif } } } break; } case SYM_TRANSFORM_YEAR: option = strchr (s2, *LARG_SEP) + 1; if (*option == '0') { while (*option == '0') option++; if (!*option) option--; } transform_year = atoi (option); if (transform_year > YEAR_MAX || transform_year < -YEAR_MAX) /* Error, long-style option is trailed by an invalid argument. */ opt_error = 5; break; case SYM_TRANSLATE_STRING: option = strchr (s2, *LARG_SEP) + 1; len = strlen (option); if (len & 1) /* Error, long-style option is trailed by an invalid argument. */ opt_error = 5; else { if (translate_string == (char *) NULL) translate_string = (char *) my_malloc (len + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "translate_string", 0); else translate_string = (char *) my_realloc ((VOID_PTR) translate_string, len + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "translate_string", 0); strcpy (translate_string, option); } break; /* The common holiday lists. */ case SYM_ASTRONOMICAL_HDY: hdy_astronomical = TRUE; break; case SYM_MULTICULTURAL_NEW_YEAR_HDY: hdy_multicultural_new_year = TRUE; break; case SYM_ZODIACAL_MARKER_HDY: hdy_zodiacal_marker = TRUE; break; /* The calendar system specific holiday lists. */ case SYM_BAHAI_HDY: hdy_bahai = TRUE; break; case SYM_CELTIC_HDY: hdy_celtic = TRUE; break; case SYM_CHINESE_FLEXIBLE_HDY: hdy_chinese_flexible = TRUE; break; case SYM_CHINESE_HDY: hdy_chinese = TRUE; break; case SYM_CHRISTIAN_HDY: hdy_christian = TRUE; break; case SYM_HEBREW_HDY: hdy_hebrew = TRUE; break; case SYM_ISLAMIC_HDY: hdy_islamic = TRUE; break; case SYM_JAPANESE_FLEXIBLE_HDY: hdy_japanese_flexible = TRUE; break; case SYM_JAPANESE_HDY: hdy_japanese = TRUE; break; case SYM_ORTHODOX_NEW_HDY: hdy_orthodox_new = TRUE; break; case SYM_ORTHODOX_OLD_HDY: hdy_orthodox_old = TRUE; break; case SYM_PERSIAN_HDY: hdy_persian = TRUE; break; /* The calendar system specific month lists. */ case SYM_BAHAI_MTH: mth_bahai = TRUE; break; case SYM_CHINESE_FLEXIBLE_MTH: mth_chinese_flexible = TRUE; break; case SYM_CHINESE_MTH: mth_chinese = TRUE; break; case SYM_COPTIC_MTH: mth_coptic = TRUE; break; case SYM_ETHIOPIC_MTH: mth_ethiopic = TRUE; break; case SYM_FRENCH_REVOLUTIONARY_MTH: mth_french_revolutionary = TRUE; break; case SYM_HEBREW_MTH: mth_hebrew = TRUE; break; case SYM_INDIAN_CIVIL_MTH: mth_indian_civil = TRUE; break; case SYM_ISLAMIC_MTH: mth_islamic = TRUE; break; case SYM_JAPANESE_FLEXIBLE_MTH: mth_japanese_flexible = TRUE; break; case SYM_JAPANESE_MTH: mth_japanese = TRUE; break; case SYM_OLD_ARMENIC_MTH: mth_old_armenic = TRUE; break; case SYM_OLD_EGYPTIC_MTH: mth_old_egyptic = TRUE; break; case SYM_PERSIAN_MTH: mth_persian = TRUE; break; default: option = s2; /* Now we have decoded a long-style option into the according short-style option, let's JUMP to that part where the short options are decoded/evaluated resp., processed (to JUMP isn't best coding style, I know [Hi Mr.Dijkstra], but it's the easiest to do now =8^) */ goto LABEL_short_option; } } else option = s2; } else /* Hmm, seems that a just processed short-style option having permitted modifiers has an invalid switch character within its modifiers. */ opt_error = 5; skip_option = TRUE; } else /* Check for short options... */ LABEL_short_option: switch (*option) { case '?': case 'h': skip_option = help_flag = TRUE; option++; if (*option) { if (*option == '?' || *option == 'h') { ext_help_flag = TRUE; lopt_help = SYM_NIL; option++; if (*option && is_longopt) { /* Copy the long-style option argument into buffer. */ len = (int) strlen (option); if ((Uint) len >= maxlen_max) resize_all_strings (len + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s3, option); /* Get the reference number of the long-style option argument which is a long-style option itself. */ lopt_ambig = (Bool) (eval_longopt (s3, &lopt_help) == 1); if (lopt_help == SYM_NIL) /* Error, no help related to this argument found, so we display the "help on help" screen now. */ help_on_help_flag = TRUE; } else if (*option) /* Error, invalid option modifier given. */ opt_error = 2; } else /* Error, no semi-long option name `-??' or `-hh' given. */ opt_error = 2; } break; case 'G': case 'K': case 'L': case 'O': case 'V': case 'X': #if USE_PAGER case 'p': #endif case 'u': option++; if (!*option) { option--; switch (*option) { case 'G': hd_suppr_list_sep_flag = TRUE; break; case 'K': cal_with_week_number = TRUE; break; case 'L': license_flag = TRUE; break; case 'O': orthodox_calendar = TRUE; break; case 'V': version_flag = TRUE; break; case 'X': hd_title_flag = FALSE; break; #if USE_PAGER case 'p': pager_flag = TRUE; break; #endif case 'u': suppr_cal_flag = TRUE; break; default: /* This case MUST be an internal error! */ abort (); } skip_option = TRUE; } else /* Error, invalid option modifier given. */ opt_error = 2; break; case 'R': option++; if (!*option) /* Error, option character is not trailed by an argument. */ opt_error = 4; else { if (rsp_filename == (char *) NULL) rsp_filename = (char *) my_malloc (strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rsp_filename", 0); else rsp_filename = (char *) my_realloc ((VOID_PTR) rsp_filename, strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rsp_filename", 0); strcpy (rsp_filename, option); skip_option = TRUE; } break; #ifdef GCAL_SHELL case 'S': option++; if (!*option) /* Error, option character is not trailed by an argument. */ opt_error = 4; else { if (shl_filename == (char *) NULL) shl_filename = (char *) my_malloc (strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "shl_filename", 0); else shl_filename = (char *) my_realloc ((VOID_PTR) shl_filename, strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "shl_filename", 0); strcpy (shl_filename, option); skip_option = TRUE; } break; #endif case 'H': option++; if (!*option) /* Error, option character is not trailed by an argument. */ opt_error = 4; else { len = (int) strlen (option); /* Check if the special argument `no' is given: If only `long-option=NO' instead of both long-style and short-style option; like `short-optionNO'; should be valid, extend following if() statement like this: if (is_longopt && ... */ if ((len == 2) && (tolower (*option) == 'n') && (tolower (*(option + 1)) == 'o')) highlight_flag = FALSE; else /* Check if the special argument `yes' is given: If only `long-option=YES' instead of both long-style and short-style option; like `short-optionYES'; should be valid, extend following if() statement like this: if (is_longopt && ... */ if ((len == 3) && (tolower (*option) == 'y') && (tolower (*(option + 1)) == 'e') && (tolower (*(option + 2)) == 's')) { highlight_flag = TRUE; is_tty = (int) TRUE; } else { if (hl_seq == (char *) NULL) hl_seq = (char *) my_malloc (strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "hl_seq", 0); else hl_seq = (char *) my_realloc ((VOID_PTR) hl_seq, strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "hl_seq", 0); strcpy (hl_seq, option); highlight_flag = TRUE; } } skip_option = TRUE; break; case 'i': option++; #ifdef GCAL_NLS if (is_en) { special_calsheet_flag = FALSE; if (!year_flag) out_rows = S_OUT_ROWS; } else { special_calsheet_flag = TRUE; if (!year_flag) out_rows = J_OUT_ROWS; } #else /* !GCAL_NLS */ special_calsheet_flag = FALSE; if (!year_flag) out_rows = S_OUT_ROWS; #endif /* !GCAL_NLS */ if (*option) { if (*option == '-') { option++; if (*option) /* Error, option character is trailed by an invalid argument. */ opt_error = 5; } else /* Error, option character is trailed by an invalid modifier. */ opt_error = 5; } option--; break; case 'n': case 'N': skip_option = holiday_flag = TRUE; hd_sort_des_flag = FALSE; hd_legal_days_only = (Bool) ((*option == 'N') ? TRUE : FALSE); option++; if (*option) { if (*option == *DES_LIT) hd_sort_des_flag = TRUE; else /* Error, option character is trailed by an invalid modifier. */ opt_error = 5; } break; case 'q': option++; if (!*option) /* Error, option character is not trailed by an argument. */ opt_error = 4; else /* Check for country code id's which are listed in the `cc_holidays' table. If more than one country code is specified, it must be connected by a CONNECT_SEP. */ { auto const Cc_struct *ptr_cc; *s1 = '\0'; ptr_char = option; while (*ptr_char && !opt_error) do { /* Copy a single, given country code into `s2'. */ i = 0; while (*ptr_char && (*ptr_char != *CONNECT_SEP)) s2[i++] = (char) toupper (*ptr_char++); s2[i] = '\0'; /* Now skip a possibly trailing CONNECT_SEP. */ if (*ptr_char) ptr_char++; ptr_cc = binsearch_cc_id (s2); if (ptr_cc == (Cc_struct *) NULL) { /* Error, country code not found. */ opt_error = 5; break; } else /* Country code found, but insert it into `s1' only in case it is not already listed there. */ if (strstr (s1, s2) == (char *) NULL) { strcat (s1, s2); if (*ptr_char) strcat (s1, CONNECT_SEP); } } while (*ptr_char); if (!opt_error) { if (cc == (char *) NULL) cc = (char *) my_malloc (strlen (s1) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "cc", 0); else cc = (char *) my_realloc ((VOID_PTR) cc, strlen (s1) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "cc", 0); strcpy (cc, s1); } } skip_option = TRUE; break; case '!': if (!is_longopt) /* Error, invalid short-style option character given. */ opt_error = 2; else { /* Get the argument of the `--date-format=PRESET_VALUE|ARG' long-style option. */ option++; if ((Uint) * option < LARG_MAX - 1) { date_format = supported_date_format; date_format += ((Uint) * option - 1); if (date_format->df_id == (char *) NULL) /* Error, index of an "empty" table element referenced. */ opt_error = 5; } else { /* Respect this given argument now. */ users_date_format.df_info = _("command line"); if (users_date_format.df_format == (char *) NULL) users_date_format.df_format = (char *) my_malloc (strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "users_date_format.df_format", 0); else users_date_format.df_format = (char *) my_realloc ((VOID_PTR) users_date_format. df_format, strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "users_date_format.df_format", 0); strcpy (users_date_format.df_format, option); date_format = &users_date_format; } if (!opt_error) { /* Test if the date format given in command line is valid. */ if (!is_correct_date_format (date_format->df_format, &use_day_suffix, &use_short3_day_name, &use_day_zeroleaded, &use_year_zeroleaded)) errtxt_dformat = _("command line"); else errtxt_dformat = (char *) NULL; } skip_option = TRUE; } break; case '$': if (!is_longopt) /* Error, invalid short-style option character given. */ opt_error = 2; else { /* Get the argument of the `--gregorian-reform=PRESET_VALUE|ARG' long-style option. */ option++; if ((Uint) * option < LARG_MAX - 1) { greg = greg_reform_date; greg += ((Uint) * option - 1); if (!greg->year) /* Error, index of an "empty" table element referenced. */ opt_error = 5; } else { auto Bool ok = FALSE; /* Check whether the argument is a valid Gregorian Reformation date, which must consist of the year, the month, the first day and the last day (all these date elements must be numbers and separated by a SPLIT_SEP) the Gregorian Reformation has occurred, like: YYYYY,MM,DD,DD (MAX==10002,12,31,31) */ users_greg.year = users_greg.month = users_greg.first_day = users_greg.last_day = 0; ptr_char = option; do { i = 0; while (!ok && !opt_error) { if (isdigit (*ptr_char) && (i <= len_year_max)) s1[i++] = *ptr_char; else { if (isdigit (*ptr_char)) /* Error, single date element too long. */ opt_error = 5; else if (i && (*ptr_char == *SPLIT_SEP)) { ptr_char++; if (*ptr_char == *SPLIT_SEP) /* Error, argument contains two successive SPLIT_SEPs. */ opt_error = 5; else /* Scanning of single date element completed. */ break; } else if (!i && *ptr_char) /* Error, either argument starts with a SPLIT_SEP or contains invalid characters. */ opt_error = 5; else /* Scanning of all date elements completed. */ ok = TRUE; } if (*ptr_char) ptr_char++; } if (!opt_error) { s1[i] = '\0'; len = i; i = atoi (s1); if (i) { if (!users_greg.year) { if (len > len_year_max) if (atol (s1) > YEAR_MAX + 3) /* Error, invalid year. */ opt_error = 5; users_greg.year = i; } else if (!users_greg.month) users_greg.month = i; else if (!users_greg.first_day) users_greg.first_day = i; else if (!users_greg.last_day) users_greg.last_day = i; else /* Error, argument contains too many date elements. */ opt_error = 5; } else /* Error, argument contains invalid date element. */ opt_error = 5; } } while (!ok && !opt_error); /* Now we have decoded the argument, so let's check if the single date elements are valid. */ if (!opt_error) { if (users_greg.month && users_greg.first_day && users_greg.last_day && (users_greg.year <= YEAR_MAX + 3) && (users_greg.month <= MONTH_MAX) && (users_greg.last_day >= users_greg.first_day) && (((users_greg.month == 2) && (users_greg.last_day <= ((users_greg.year & 3) ? 28 : 29))) || ((users_greg.month != 2) && (users_greg.last_day <= dvec[users_greg.month - 1])))) /* The given argument is valid, so respect this given date of Gregorian Reformation. */ greg = &users_greg; else /* Error, invalid date element found. */ opt_error = 5; } } skip_option = TRUE; } break; case 'j': option++; if (!*option) { cal_special_flag = TRUE; cal_both_dates_flag = FALSE; } else { if (*option == 'b') { option++; if (!*option) { cal_special_flag = FALSE; cal_both_dates_flag = TRUE; } else /* Error, option character is trailed by an invalid modifier. */ opt_error = 5; } else { switch (*option) { case 'n': option++; if (!*option) { hd_special_flag = TRUE; hd_both_dates_flag = FALSE; } else if (*option == 'b') { hd_special_flag = FALSE; hd_both_dates_flag = TRUE; } else /* Error, option character is trailed by an invalid modifier. */ opt_error = 5; break; #if USE_RC case 'c': option++; if (!*option) { rc_special_flag = TRUE; rc_both_dates_flag = FALSE; } else if (*option == 'b') { rc_special_flag = FALSE; rc_both_dates_flag = TRUE; } else /* Error, option character is trailed by an invalid modifier. */ opt_error = 5; break; #endif default: /* Error, option character is trailed by an invalid modifier. */ opt_error = 5; } } } if (!*option) option--; break; case 'b': skip_option = year_flag = TRUE; option++; if (*option == '0') { while (*option == '0') option++; if (!*option) option--; } out_rows = my_atoi (option); if (out_rows > MONTH_MAX || out_rows < MONTH_MIN || out_rows == 5 || ((out_rows > 6) && (out_rows < MONTH_MAX))) { if (!*option) /* Error, option character is not trailed by an argument. */ opt_error = 4; else /* Error, option character is trailed by an invalid argument. */ opt_error = 5; } break; case 's': option++; if (!*option) /* Error, option character is not trailed by an argument. */ opt_error = 4; else { start_day = my_atoi (option); /* Check for delivered weekday name. */ if (!start_day) start_day = compare_d_m_name (option, DAy); if (!start_day) { /* Check if the 'today' text is given. */ len = (int) strlen (option); if ((Uint) len >= maxlen_max) resize_all_strings (len + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s1, option); if (strlen (s1) > strlen ("today")) /* Error, option character is trailed by an invalid argument. */ opt_error = 5; else if (isdigit (*option) || !strncasecmp (s1, "today", len)) /* Set a special value for a given `-s0' argument. */ start_day = SPECIAL_VALUE; else /* Error, option character is trailed by an invalid argument. */ opt_error = 5; } else if (start_day > DAY_MAX || start_day < DAY_MIN) /* Error, option character is trailed by an invalid argument. */ opt_error = 5; } skip_option = TRUE; break; #if USE_RC case 'r': case 'v': /* If the define_global_text_variable option `-r' or the define_global_date_variable option `-v' is given, skip/ignore that option because it's already managed by the `main()' function. Only check if NO definitions are given because this is an error! */ option++; if (!*option) /* Error, option character is not trailed by an argument. */ opt_error = 4; skip_option = TRUE; break; case 'f': case 'F': if (isupper (*option)) rc_all_dates_flag = TRUE; option++; if (!*option) /* Error, option character is not trailed by an argument. */ opt_error = 4; else { len = (int) strlen (option); /* Check if a file name argument with a leading CONNECT_SEP like '+foo' is given. */ if (*option == *CONNECT_SEP) /* Error, option character is trailed by an invalid argument. */ opt_error = 5; else { if (len > 1) { /* Check if a file name argument with a trailing CONNECT_SEP like 'foo+' is given. */ if ((*(option + (len - 1)) == *CONNECT_SEP) && (*(option + (len - 2)) != QUOTE_CHAR)) /* Error, option character is trailed by an invalid argument. */ opt_error = 5; else { /* Check if a file name list argument containing attached unquoted CONNECT_SEP like 'foo+bar+++file' is given. */ ptr_char = strchr (option, *CONNECT_SEP); if (ptr_char != (char *) NULL) { ptr_char--; if (*ptr_char == QUOTE_CHAR) ptr_char++; ptr_char++; while (*ptr_char && !opt_error) { if (*ptr_char == QUOTE_CHAR) ptr_char++; else if (*ptr_char == *CONNECT_SEP) { ptr_char++; if (*ptr_char == QUOTE_CHAR) ptr_char++; else if (*ptr_char == *CONNECT_SEP) /* Error, option character is trailed by an invalid argument. */ opt_error = 5; } if (*ptr_char) ptr_char++; } } } } if (!opt_error) { if (rc_filename == (char *) NULL) rc_filename = (char *) my_malloc (len + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_filename", 0); else rc_filename = (char *) my_realloc ((VOID_PTR) rc_filename, len + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rc_filename", 0); strcpy (rc_filename, option); skip_option = rc_use_flag = TRUE; } } } break; case '#': option++; if (!*option) /* Error, option character is not trailed by an argument. */ opt_error = 4; else { /* If the first `-# ARG' resp., `--here=ARG' option is found, create and open a temporary file for storing it. */ if (rc_here_fn == (char *) NULL) { ptr_char = TMPFILENAME; if (ptr_char == (char *) NULL) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 2L, "tmpnam()=", 0); rc_here_fn = (char *) my_malloc (strlen (ptr_char) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_here_fn", 0); strcpy (rc_here_fn, ptr_char); rc_here_fp = fopen (rc_here_fn, "w"); if (rc_here_fp == (FILE *) NULL) my_error (ERR_WRITE_FILE, __FILE__, ((long) __LINE__) - 2L, rc_here_fn, 0); } /* Copy this long-style option into a buffer. */ len = (int) strlen (option); if ((Uint) len >= maxlen_max) resize_all_strings (len + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s2, option); pseudo_blank_conversion (&s2); /* And write the option argument into the temporary file. */ i = fprintf (rc_here_fp, "%s\n", s2); if (i == EOF) my_error (ERR_WRITE_FILE, __FILE__, ((long) __LINE__) - 2L, rc_here_fn, 0); } skip_option = rc_use_flag = TRUE; break; case 'D': option++; if (!*option) /* Error, option character is not trailed by an argument. */ opt_error = 4; else { /* Check for %? special_texts (without the leading `%' character) that disable a fixed date. */ ptr_char = option; while (*ptr_char && !opt_error) if (*ptr_char == RC_EX_LHDY_CHAR || *ptr_char == RC_EX_NLHDY_CHAR || *ptr_char == RC_EX_AHDY_CHAR || *ptr_char == RC_EX_NAHDY_CHAR || *ptr_char == RC_EX_MON_CHAR || *ptr_char == RC_EX_NMON_CHAR || *ptr_char == RC_EX_TUE_CHAR || *ptr_char == RC_EX_NTUE_CHAR || *ptr_char == RC_EX_WED_CHAR || *ptr_char == RC_EX_NWED_CHAR || *ptr_char == RC_EX_THU_CHAR || *ptr_char == RC_EX_NTHU_CHAR || *ptr_char == RC_EX_FRI_CHAR || *ptr_char == RC_EX_NFRI_CHAR || *ptr_char == RC_EX_SAT_CHAR || *ptr_char == RC_EX_NSAT_CHAR || *ptr_char == RC_EX_SUN_CHAR || *ptr_char == RC_EX_NSUN_CHAR || *ptr_char == RC_EX_MON_2_THU_CHAR || *ptr_char == RC_EX_NMON_2_THU_CHAR || *ptr_char == RC_EX_MON_2_FRI_CHAR || *ptr_char == RC_EX_NMON_2_FRI_CHAR) ptr_char++; else /* Error, invalid %? special text character given. */ opt_error = 5; if (!opt_error) { if (rc_filter_day == (char *) NULL) rc_filter_day = (char *) my_malloc (strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_filter_day", 0); else rc_filter_day = (char *) my_realloc ((VOID_PTR) rc_filter_day, strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rc_filter_day", 0); strcpy (rc_filter_day, option); } } skip_option = TRUE; break; case 'P': option++; if (!*option) /* Error, option character is not trailed by an argument. */ opt_error = 4; else { /* Check for %?[DATE][#[DATE]] special_texts (without the leading `%' character) that disable a fixed date. If more than one special text is specified, it must be separated by a SPLIT_SEP. */ ptr_char = option; while (*ptr_char && !opt_error) if (*ptr_char == RC_IDATE_CHAR || *ptr_char == RC_EDATE_CHAR) { ptr_char++; while (*ptr_char && (*ptr_char != *SPLIT_SEP)) ptr_char++; if (!*ptr_char || *ptr_char == *SPLIT_SEP) { if (*ptr_char) ptr_char++; } else /* Error, invalid %?[DATE][#[DATE]] special text given. */ opt_error = 5; } else /* Error, invalid %?[DATE][#[DATE]] special text given. */ opt_error = 5; if (!opt_error) { if (rc_filter_period == (char *) NULL) rc_filter_period = (char *) my_malloc (strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_filter_period", 0); else rc_filter_period = (char *) my_realloc ((VOID_PTR) rc_filter_period, strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rc_filter_period", 0); strcpy (rc_filter_period, option); } } skip_option = TRUE; break; case 'I': option++; if (!*option) /* Error, option character is not trailed by an argument. */ opt_error = 4; else { if (rc_filter_text == (char *) NULL) rc_filter_text = (char *) my_malloc (strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_filter_text", 0); else rc_filter_text = (char *) my_realloc ((VOID_PTR) rc_filter_text, strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rc_filter_text", 0); strcpy (rc_filter_text, option); } skip_option = TRUE; break; case 'g': option++; if (*option) { if (rc_grp_sep == (char *) NULL) rc_grp_sep = (char *) my_malloc (strlen (option) + 1 + 2, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_grp_sep", 0); else rc_grp_sep = (char *) my_realloc ((VOID_PTR) rc_grp_sep, strlen (option) + 1 + 2, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rc_grp_sep", 0); strcpy (rc_grp_sep, "0 "); strcat (rc_grp_sep, option); pseudo_blank_conversion (&rc_grp_sep); } else { if (rc_grp_sep == (char *) NULL) rc_grp_sep = (char *) my_malloc (strlen (RC_GROUP_SEP) + 1 + 2, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_grp_sep", 0); else rc_grp_sep = (char *) my_realloc ((VOID_PTR) rc_grp_sep, strlen (RC_GROUP_SEP) + 1 + 2, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rc_grp_sep", 0); strcpy (rc_grp_sep, "0 "); strcat (rc_grp_sep, RC_GROUP_SEP); } skip_option = TRUE; break; case 'a': rc_enable_fn_flag = TRUE; break; case 'A': rc_alternative_format_flag = TRUE; break; case 'd': rc_have_today_in_list = 1; break; case 'e': case 'E': if (isupper (*option)) { rc_enable_hdl_flag = TRUE; rc_enable_hda_flag = FALSE; } else { rc_enable_hdl_flag = FALSE; rc_enable_hda_flag = TRUE; } break; case 'o': rc_omit_date_flag = TRUE; break; case 'l': /* Assume the user wants to have a list of periods instead of a single period! */ rc_period_list = TRUE; break; case 'k': rc_week_number_flag = TRUE; break; case 'U': rc_suppr_date_part_flag = TRUE; break; case 'Q': rc_suppr_list_sep_flag = TRUE; break; case 'J': rc_suppr_text_part_flag = TRUE; break; case 'x': rc_title_flag = FALSE; break; case 'z': rc_count_flag = TRUE; break; case 'Z': rc_zero_dates_flag = TRUE; break; case 'c': case 'C': rc_use_flag = TRUE; if (isupper (*option)) rc_all_dates_flag = TRUE; option++; if (*option == *DES_LIT) { rc_sort_des_flag = TRUE; while (*option == *DES_LIT) option++; } option--; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case RC_HDY_CHAR: case RC_NWD_CHAR: skip_option = rc_period_flag = TRUE; /* Store some actual values now by reason this part is managed at a later place in the sequence, and it is necessary to restore them there. */ if (rc_period_argv == (char *) NULL) rc_period_argv = (char *) my_malloc (strlen (*argv) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_period_argv", 0); else rc_period_argv = (char *) my_realloc ((VOID_PTR) rc_period_argv, strlen (*argv) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rc_period_argv", 0); strcpy (rc_period_argv, *argv); if (rc_period_option == (char *) NULL) rc_period_option = (char *) my_malloc (strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_period_option", 0); else rc_period_option = (char *) my_realloc ((VOID_PTR) rc_period_option, strlen (option) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rc_period_option", 0); strcpy (rc_period_option, option); rc_period_is_longopt = is_longopt; break; case 't': case 'T': rc_clean_flags (); skip_option = rc_use_flag = rc_tomorrow_flag = TRUE; if (isupper (*option)) rc_all_dates_flag = TRUE; option++; if (*option) /* Error, invalid option modifier given. */ opt_error = 5; break; case 'w': case 'W': case 'm': case 'M': case 'y': case 'Y': rc_clean_flags (); switch (*option) { case 'w': case 'W': rc_week_flag = TRUE; break; case 'm': case 'M': rc_month_flag = TRUE; break; default: rc_year_flag = TRUE; } skip_option = rc_use_flag = TRUE; if (isupper (*option)) rc_all_dates_flag = TRUE; opt_error = further_check (&option); break; #endif /* USE_RC */ default: /* Error, any unmanaged options are always invalid. */ if (is_longopt) opt_error = 5; else opt_error = 2; } if (opt_error) { ptr_char = *argv; #if USE_RC LABEL_option_error: #endif /* Remove leading switch characters of the given option in some cases. */ if (!is_longopt) while (*ptr_char == *SWITCH) ptr_char++; if (*ptr_char == *SWITCH2) if (*(ptr_char + 1) != *SWITCH2) ptr_char++; /* Allocate proper string space for the option error text. */ switch (opt_error) { case 1: case 2: case 3: case 4: case 5: case 6: if (is_longopt && (opt_error == 3)) len = (int) strlen (option) + LEN_SINGLE_LINE; else len = (int) strlen (ptr_char) + LEN_SINGLE_LINE; if ((Uint) len >= maxlen_max) resize_all_strings (len + 1, FALSE, __FILE__, (long) __LINE__); break; default: ; /* Void, nothing to do now */ } /* Construct the option error text. */ switch (opt_error) { case 1: sprintf (s1, _("%s: option `%s' is ambiguous"), prgr_name, ptr_char); break; case 2: if (is_longopt) sprintf (s1, _("%s: unrecognized option `%s'"), prgr_name, ptr_char); else sprintf (s1, _("%s: invalid option -- %s"), prgr_name, ptr_char); break; case 3: if (is_longopt) sprintf (s1, _ ("%s: option `--%s' doesn't allow an argument"), prgr_name, option); else sprintf (s1, _ ("%s: option `%s' doesn't allow an argument"), prgr_name, ptr_char); break; case 4: if (is_longopt) sprintf (s1, _("%s: option `%s' requires an argument"), prgr_name, ptr_char); else sprintf (s1, _("%s: option requires an argument -- %s"), prgr_name, ptr_char); break; case 5: sprintf (s1, _("%s: option with invalid argument -- %s"), prgr_name, ptr_char); break; case 6: sprintf (s1, _("%s: option with ambiguous argument -- %s"), prgr_name, ptr_char); break; default: /* This case must be an internal error */ my_error (opt_error, __FILE__, ((long) __LINE__) - 4L, "", 0); } /* Display the option error text and exit with error. */ fprintf (stderr, "%s\n%s\n%s\n", s1, usage_msg (), lopt_msg ()); my_exit (ERR_INVALID_OPTION); } if (skip_option) { while (*option) option++; option--; } } argc--; } else { #if USE_RC if (**argv == RC_ADATE_CHAR) /* If an actual date modifier %DATE is given, skip/ignore this option, because we evaluate it some lines later. */ argc--; else #endif /* USE_RC */ if (**argv == RSP_CHAR) /* If a response file @FILE is given, skip/ignore this option, because we don't manage nested response files! */ argc--; else /* If a command is given, skip processing the options. */ break; } } #if USE_RC /* Read the internal system date an evaluate a possibly given actual date modifier %DATE. */ if (!get_actual_date ()) { /* Error, invalid actual date modifier %DATE given. */ fprintf (stderr, _("%s: invalid date given -- %c%s\n%s\n%s\n"), prgr_name, RC_ADATE_CHAR, rc_adate, usage_msg (), lopt_msg ()); my_exit (ERR_INVALID_OPTION); } #else /* !USE_RC */ /* Read the actual system date and time that is reported by the operating system. */ (void) get_actual_date (); #endif /* !USE_RC */ is_leap_year = (days_of_february (act_year) == 29); /* Set the starting day of week if it is not set by a command line argument. */ buf_start_day = start_day; if (start_day == SPECIAL_VALUE) /* Set starting day of week to actual weekday. */ start_day = weekday_of_date (act_day, act_month, act_year); else if (!start_day) { /* Set starting day of week to language/territory default value. */ #if defined GCAL_NLS # if HAVE__NL_TIME_FIRST_WEEKDAY start_day = (nl_langinfo (_NL_TIME_FIRST_WEEKDAY)[0] + 5) % 7 + 1; # else start_day = DAY_MAX; # endif #else /* !GCAL_NLS */ #error MUST USE _NL_TIME_FIRST_WEEKDAY ! start_day = DAY_MAX; #endif /* !GCAL_NLS */ } /* Post-process a time offset argument, which is based relative to the actual time ('t' | '@' found), of the `--time-offset' option NOW. */ if (rel_time_offset) { if (!time_hour_offset && !time_min_offset) { #if USE_RC if (rel_time_offset == RC_GMTIME_CHAR) { time_hour_offset = gmt_hour; time_min_offset = gmt_min; } else #endif { time_hour_offset = act_hour; time_min_offset = act_min; } } else { #if USE_RC if (rel_time_offset == RC_GMTIME_CHAR) i = HHMM2MM (gmt_hour, gmt_min) + HHMM2MM (time_hour_offset, time_min_offset); else #endif i = HHMM2MM (act_hour, act_min) + HHMM2MM (time_hour_offset, time_min_offset); time_hour_offset = MM2HH (abs (i)); time_min_offset = abs (i) % MINS_PER_HOUR; if (i < 0) { time_hour_offset = -time_hour_offset; time_min_offset = -time_min_offset; } } } #if USE_RC time_offset = HHMM2DAY (time_hour_offset, time_min_offset); /* Post-process a cycle-ending time argument, which is based relative to the actual time ('t' | '@' found), of the `--cycle-end' option NOW. */ if (rel_loop_end) { if (rel_loop_end == RC_GMTIME_CHAR) i = HHMM2MM (gmt_hour, gmt_min); else i = HHMM2MM (act_hour, act_min); if (!set_loop_end && (loop_end == SPECIAL_VALUE)) loop_end = i; else loop_end = i + loop_end; set_loop_end = TRUE; } if (set_loop_end) { /* Reduce the given cycle-ending time value in minutes to a single day. */ if (loop_end < 0) loop_end = 0; else if (loop_end >= MINS_PER_DAY) loop_end = MINS_PER_DAY - 1; } /* Post-check for arguments of the `--period-of-fixed-dates=ARG' option NOW. */ if (rc_period_flag) { if (!rc_use_flag) /* Error, use of fixed dates list neither implicitly nor explicitly specified (e.g., option like `-10' or `-*w10fr' given). */ opt_error = 2; else { register int act_is_leap_year = (days_of_february (act_year) == 29); auto int wmax = WEEK_MAX; auto char dvar = '\0'; auto Bool nth_day_of_year_flag = FALSE; if (act_year == greg->year) wmax = ((DAY_LAST + (days_of_february (greg->year) == 29) - (greg->last_day - greg->first_day + 1)) / DAY_MAX) + 1; rc_clean_flags (); i = 0; rc_period = 0; rc_period_flag = TRUE; option = rc_period_option; /* Before I forget... All mode specifying characters ('d' or 'w') may be given in upper or lower case letters, i.e. they are managed case insensitive! */ /* Check if @e|t|DVAR[[-]N[WW[W]]] or *d|wN[WW[W]] is given. */ if (*option == RC_HDY_CHAR || *option == RC_NWD_CHAR) dvar = *option; else /* Compute the period for the Nd modifier. */ rc_period = atoi (option); if (!dvar) { /* Check if a N+ modifier is given. */ rc_fwdf_buffer = rc_forwards_flag = (Bool) (strchr (option, *ASC_LIT) != (char *) NULL); /* Check if a N- modifier is given. */ rc_bwdf_buffer = rc_backwards_flag = (Bool) (strchr (option, *DES_LIT) != (char *) NULL); /* Check if a Nw modifier is given. */ ptr_char = strrchr (option, 'w'); if (ptr_char == (char *) NULL) ptr_char = strrchr (option, 'W'); if (ptr_char != (char *) NULL) { ptr_char++; if (!*ptr_char) rc_week_year_flag = TRUE; } /* Check if a Nd modifier is given. */ ptr_char = strrchr (option, 'd'); if (ptr_char == (char *) NULL) ptr_char = strrchr (option, 'D'); if (ptr_char != (char *) NULL) { ptr_char++; if (!*ptr_char) nth_day_of_year_flag = TRUE; } i = (int) rc_forwards_flag + rc_backwards_flag + rc_week_year_flag + nth_day_of_year_flag; } /* Compute the period for a Nd modifier. */ if (rc_period == 999) rc_period = DAY_LAST + act_is_leap_year; if (!dvar && (i > 1 || ((rc_period > DAY_LAST + act_is_leap_year) && (rc_forwards_flag || rc_backwards_flag || nth_day_of_year_flag)) || (rc_week_year_flag && (rc_period > wmax + 1) && (rc_period != 99)))) /* Error, illegal fixed date period modifier given. */ opt_error = 5; else { /* Found one of these fixed date period modifiers: @e|t|DVAR[[-]N[WW[W]]] *d|wN[WW[W]] MMDD MMWW[W]N */ if (!rc_week_year_flag && !rc_forwards_flag && !rc_backwards_flag) { auto int y = act_year; auto int n; auto char hc; auto Bool is_weekday_mode; if (!nth_day_of_year_flag) { len = (int) strlen (option) + len_year_max; if ((Uint) len >= maxlen_max) resize_all_strings (len + 1, FALSE, __FILE__, (long) __LINE__); sprintf (s2, "%0*d%s", len_year_max, y, option); /* The `rc_get_date()' arguments `wmax', `hc' and `i' are only dummys and must be given. They are not respected! */ (void) rc_get_date (s2, lineptrs, FALSE, &is_weekday_mode, &day, &month, &y, &n, &wmax, &hc, &i, &i, _("Internal"), -1L, s2, FALSE); if (y != SPECIAL_VALUE) { if (!dvar) { /* MMWW[W]N or MMDD given. */ if (!month) month = act_month; if (month < MONTH_MIN || month > MONTH_MAX) /* Error, invalid month given. */ opt_error = 5; else { i = dvec[month - 1]; if (month == 2) i += act_is_leap_year; if (is_weekday_mode) { /* MMWW[W]N given. */ if (n == 9) day = eval_holiday (i, month, act_year, day, FALSE); else { day = eval_holiday (DAY_MIN, month, act_year, day, TRUE); day += (DAY_MAX * (n - 1)); if (day > i) /* Error, month contains no such "N'th weekday of month". */ opt_error = 5; else { /* Now check if the given date is valid. */ if (!day || !valid_date (day, month, act_year)) /* Error, invalid date given. */ opt_error = 5; } } } else { /* MMDD given. */ if (day == 99) day = i; if (!day) day = act_day; if (day < DAY_MIN || day > i) /* Error, invalid day given. */ opt_error = 5; } } } else if (!day || !month) /* Error, either invalid date variable or invalid mode specifier given (not d|w). */ opt_error = 5; if (!opt_error) rc_period = day_of_year (day, month, act_year); } else /* Error, invalid date given. */ opt_error = 5; } else if (!rc_period) /* Error, zero date is invalid. */ opt_error = 5; if (!opt_error) { i = day_of_year (act_day, act_month, act_year); if (rc_period >= i) { rc_period -= i; /* Set `rc_forwards_flag' only if the recomputed `rc_period' is not zero (it is in case @t is given and the actual date is the last day of the year, so we have to manage this like simple `-c' is given in command line. */ if (!rc_period) rc_period_flag = FALSE; else rc_forwards_flag = TRUE; } else { rc_period = i - rc_period; rc_backwards_flag = TRUE; } } } else { /* Nw|+|- given. */ i = 0; while (isdigit (*option)) { i++; option++; } option--; if (!rc_period && !rc_week_year_flag) /* Error, zero length date of fixed date period given. */ opt_error = 5; else opt_error = further_check (&option); } } } if (opt_error) { ptr_char = rc_period_argv; is_longopt = rc_period_is_longopt; /* Sorry! Sorry! This is so unprofessional!! :) */ goto LABEL_option_error; } else { free (rc_period_argv); free (rc_period_option); } } #endif /* USE_RC */ if (help_flag || license_flag || version_flag) { #if USE_PAGER /* No program output yet and output goes to a tty: Set the standard stream buffers to unbuffered mode, then get actual settings of the tty (needed if paging is wanted). */ if (is_tty1 # ifdef GCAL_EPAGER && (ext_pager == (char *) NULL) # endif && is_tty2) { setbuf (stdout, (char *) NULL); setbuf (stdin, (char *) NULL); get_tty_scr_size (&tty_rows, &tty_cols); } else if (help_on_help_flag) /* We have to use the actual screen size in this case! */ get_tty_scr_size (&tty_rows, &tty_cols); #endif /* USE_PAGER */ /* Get the highlighting sequences of the terminal. */ get_tty_hls (hl_seq); #ifdef GCAL_EPAGER if (is_tty1 && is_tty2 && pager_flag && (ext_pager != (char *) NULL) && (email_adr == (char *) NULL)) { child_pid = fork (); switch (child_pid) { case -1: /* Error, `fork()' function failed. */ my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 7L, "fork() child_pid=", child_pid); /* Not reached. */ case 0: /* Child process (read from pipe): Connect PIPE-STDIN to SYS-STDIN in a safe way and launch external pager program. */ close (pipe_fd[1]); if (pipe_fd[0]) { close (0); dup (pipe_fd[0]); close (pipe_fd[0]); } if (pg_argv == (char **) NULL) { i = execlp (ext_pager, ext_pager, (char *) NULL); /* Error, `execlp()' function failed (this line should never be executed). */ len = (int) strlen (ext_pager) + LEN_SINGLE_LINE; if ((Uint) len >= maxlen_max) resize_all_strings (len + 1, FALSE, __FILE__, (long) __LINE__); sprintf (s1, "execlp(%s)=", ext_pager); my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 9L, s1, i); } else { i = execvp (ext_pager, pg_argv); /* Error, `execvp()' function failed (this line should never be executed). */ len = (int) strlen (ext_pager) + LEN_SINGLE_LINE; if ((Uint) len >= maxlen_max) resize_all_strings (len + 1, FALSE, __FILE__, (long) __LINE__); sprintf (s1, "execvp(%s)=", ext_pager); my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 9L, s1, i); } /* Not reached. */ default: /* Parent process (write to pipe): Connect PIPE-stdout to SYS-stdout in a safe way and initiate the action. */ close (pipe_fd[0]); if (pipe_fd[1] != 1) { close (1); if (!dup (pipe_fd[1])) { dup (pipe_fd[1]); close (0); } close (pipe_fd[1]); } } } #endif /* GCAL_EPAGER */ if (help_flag) { if (help_on_help_flag) /* "Help on help" page wanted (`--long-help=?'). */ #if USE_PAGER my_help_on_help (stdout, s3, lopt_ambig, tty_cols); #else /* !USE_PAGER */ my_help_on_help (stdout, s3, lopt_ambig, SCREEN_COLS); #endif /* !USE_PAGER */ else if (ext_help_flag) /* "Extended" help pages wanted (`--long-help[=ARG]|[=?'] or `-hh' or `-??' or `-h?' or `-?h'). */ my_extended_help (stdout, lopt_help); else /* "Basic" help page wanted (`--help' or `-h' or `-?'). */ my_basic_help (stdout); } else { if (license_flag) /* License text wanted (`--license' or `-L'). */ my_license (stdout); else if (version_flag) /* Version text wanted (`--version' or `-V'). */ my_version (stdout); } #ifdef GCAL_EPAGER if (is_tty1 && is_tty2 && pager_flag && (ext_pager != (char *) NULL) && (email_adr == (char *) NULL)) { /* We work unbuffered in this case so we have to flush the stdout buffer for showing all contents of it. */ fflush (stdout); /* And reconnect the SYS-STDIN/SYS-STDOUT file descriptors. */ close (0); dup (sys_fd[0]); close (1); dup (sys_fd[1]); /* And wait until the child has performed all actions. */ while (wait ((int *) NULL) != child_pid) ; # if HAVE_SIGNAL && defined(SIGPIPE) /* Reset the SIGPIPE signal. */ (void) signal (SIGPIPE, SIG_DFL); # endif } #endif /* GCAL_EPAGER */ my_exit (exit_stat_help); } month = 0; if (argc > 1) { auto Bool is_list = FALSE; auto Bool is_range = FALSE; auto Bool month_set = FALSE; auto Bool year_sep_found = FALSE; for (; argc > 1; argc--, argv++) { if (!month) { option = *argv; if (*option == *MONTH3_LIT) break; else while (*option) { if (*option == *MLIST_SEP || *option == *YLIST_SEP) is_list = TRUE; else if (*option == *MRANGE_SEP || *option == *YRANGE_SEP) is_range = TRUE; else if (*option == *YEAR_SEP) year_sep_found = TRUE; else if (*option == *FYEAR_SEP) is_fiscal_year = TRUE; option++; } option = *argv; if (!is_list && !is_range && !year_sep_found && !is_fiscal_year && !my_atoi (option)) { month = compare_d_m_name (option, MOnth); if (month) { month_set = TRUE; continue; } } } if (!month) { build_month_list (argv); if (!(*month_list).ml_month) month = atoi (*argv); else month = (*month_list).ml_month; if (month < MONTH_MIN || month > MONTH_MAX) { if (!is_fiscal_year) year = month; month = 0; break; } } else if (!year) { if ((*month_list).ml_year && (is_list || is_range)) year = (*month_list).ml_year; else year = my_atoi (*argv); /* Check if a `MM YYYY-YYYY' or a `MM-MM YYYY+YYYY' command is given (MM|MM-MM is already managed), if so, evaluate the year range part. */ if (month && isdigit (**argv) && (strchr (*argv, *MRANGE_SEP) != (char *) NULL || strchr (*argv, *YRANGE_SEP) != (char *) NULL)) { i = 0; while (isdigit (*(*(argv) + i))) { s2[i] = *(*(argv) + i); i++; } if (*(*(argv) + i) == *MRANGE_SEP || *(*(argv) + i) == *YRANGE_SEP) { s2[i++] = '\0'; year = my_atoi (s2); if (!year) year = act_year; (*month_list).ml_year = year; year = my_atoi (*(argv) + i); if (!year) year = act_year; month_list[1].ml_year = year; if (*(*(argv) + i - 1) == *MRANGE_SEP) { (*month_list).ml_month = month_list[1].ml_month = month; is_special_range = TRUE; } else { i = 0; while (month_list[i].ml_month) i++; if (!i) { /* `MM YYYY+YYYY' command given, treat it like the `MM YYYY-YYYY' command. */ (*month_list).ml_month = month_list[1].ml_month = month; is_special_range = TRUE; } else { /* `MM-MM YYYY+YYYY' command given. */ i--; month_list[1].ml_month = month_list[i].ml_month; is_multi_range = TRUE; } } } else { year = month; month = 0; } break; } } } /* `.' or `..' or `.+' or `.-' argument found: 3 month mode wanted */ if (*option == *MONTH3_LIT) { len = (int) strlen (option); if (len <= 2) { if (*(option + 1) == *MONTH3_LIT) is_3month_mode2 = TRUE; else is_3month_mode = TRUE; is_fiscal_year = TRUE; year_flag = FALSE; month = act_month; /* Check if an explicit year trails the 3 month mode command. */ if (argc > 2) { argv++; year = atoi (*argv); if (!year) year = act_year; } else year = act_year; if (is_3month_mode) { /* Either `.' or `.+' or `.-' 3 month mode command found. */ if (!*(option + 1)) { /* `.' 3 month mode command found. */ month--; if (!month) { month = MONTH_MAX; year--; } } else if (*(option + 1) == *DES_LIT) { /* `.-' 3 month mode command found. */ month -= 2; if (month < MONTH_MIN) { month = MONTH_MAX + month; year--; } } else if (*(option + 1) == *ASC_LIT) /* `.+' 3 month mode command found. */ ; /* Void, nothing to do! */ else { /* Error, invalid modifier trails the dot character: Print default month calendar only. */ is_fiscal_year = FALSE; year = act_year; month = act_month; } if (year < YEAR_MIN) { year = YEAR_MIN; month = act_month; } } else /* `..' 3 month mode command found. */ month = ((month + 1) - ((month - 1) % 3)) - 1; } } else if (!month && !year && !month_set && !(*month_list).ml_month && !is_fiscal_year) { year = month; month = 0; } } } static void build_month_list (argv) char *argv[]; /*! If more than a single month/year is wanted (means list or ranges of months or years), fill the global data structure `month_list[]'; which is used in the `print_calendar()' function; according the values found in the command line. */ { register int i; register int j; register int k; auto const char *option; auto Bool is_list = FALSE; auto Bool is_range = FALSE; auto Bool year_sep_found = FALSE; auto Bool buf_is_ext_year; option = *argv; for (; *option && !is_list && !is_range; option++) if (*option == *MLIST_SEP || *option == *YLIST_SEP) { is_list = TRUE; if (*option == *YLIST_SEP) is_ext_list = is_ext_year = TRUE; } else if (*option == *MRANGE_SEP || *option == *YRANGE_SEP) { is_range = TRUE; if (*option == *YRANGE_SEP) is_ext_range = is_ext_year = TRUE; } else if (*option == *YEAR_SEP) year_sep_found = TRUE; buf_is_ext_year = is_ext_year; if (year_sep_found || (is_fiscal_year && (is_ext_list || is_ext_year || (!is_list && !is_range))) || (!is_fiscal_year && (is_list || is_range))) { i = 0; option = *argv; while (*option) { year_sep_found = FALSE; j = 0; while (*option && !year_sep_found && ((!is_list && !is_range) || ((is_list && ((*option != *MLIST_SEP) && (*option != *YLIST_SEP))) || (is_range && ((*option != *MRANGE_SEP) && (*option != *YRANGE_SEP)))))) { year_sep_found = (Bool) (*option == *YEAR_SEP || *option == *FYEAR_SEP); s1[j++] = *option++; } if (year_sep_found) s1[j - 1] = '\0'; else s1[j] = '\0'; if (!*s1) { if (is_fiscal_year) { j = atoi (option); if (j) { is_ext_year = FALSE; month_list[i++].ml_month = act_month; } } else { j = 0; while (*option) option++; } } else j = my_atoi (s1); if (is_ext_year) { if (is_fiscal_year) { if ((j >= MONTH_MIN) && (j <= MONTH_MAX)) month_list[i++].ml_month = j; else { /* Is the argument a valid month name? */ j = compare_d_m_name (s1, MOnth); if (j) month_list[i++].ml_month = j; else /* Are we at the end of the argument? */ if (!*option) { if (is_ext_list || is_ext_range) { if (!is_ext_list) month_list[i].ml_month = month_list[i - 1].ml_month; else month_list[i].ml_month = MONTH_MIN; j = my_atoi (s1); if (j) month_list[i++].ml_year = j; else month_list[i].ml_month = 0; } } else /* Not at the end of the argument: Fiscal year list wanted and standard year given. */ if (!year_sep_found) { j = my_atoi (s1); if (j) month_list[i++].ml_month = j; } else /* Otherwise ignore given argument. */ year_sep_found = FALSE; } } else { if (year_sep_found) { /* Error, list/range of extended years given like 5/1999;may/7777... or 5/1999+may/7777 --> respect the year part of the date only. */ j = 0; while (*option && ((is_list && (*option != *YLIST_SEP)) || (is_range && (*option != *YRANGE_SEP)))) s1[j++] = *option++; s1[j] = '\0'; j = my_atoi (s1); } if (j) month_list[i++].ml_month = j; else if (is_list) month_list[i++].ml_month = act_year; } if (year_sep_found) { while (*option == *YEAR_SEP || *option == *FYEAR_SEP) option++; if (!is_fiscal_year) { year_sep_found = FALSE; while (*option && ((is_list && (*option != *YLIST_SEP)) || (is_range && (*option != *YRANGE_SEP)))) option++; } } } else if (*s1) { if ((j >= MONTH_MIN) && (j <= MONTH_MAX)) month_list[i++].ml_month = j; else { j = compare_d_m_name (s1, MOnth); if (j) month_list[i++].ml_month = j; } /* Check if range of a selected month of years is given like: MM YYYY-YYYY or MM/YYYY-YYYY; e.g.: 5/1999-2011 which means all May months starting in 1999 and ending in 2011. */ if (i && is_range && !year_sep_found && (*month_list).ml_year && !*option) { if (j) i--; else j = my_atoi (s1); if (j) { month_list[i].ml_month = month_list[i - 1].ml_month; month_list[i++].ml_year = j; is_ext_range = FALSE; is_special_range = TRUE; } } } if (year_sep_found) { if (j) { j = 0; while (*option == *YEAR_SEP || *option == *FYEAR_SEP) option++; if (!is_list && !is_range) while (*option) s1[j++] = *option++; else if (is_fiscal_year && (is_ext_list || is_ext_range)) while (*option && ((is_list && (*option != *YLIST_SEP)) || (is_range && (*option != *YRANGE_SEP)))) s1[j++] = *option++; else while (*option && ((is_list && (*option != *MLIST_SEP)) || (is_range && (*option != *MRANGE_SEP)))) s1[j++] = *option++; s1[j] = '\0'; j = my_atoi (s1); if (j) { month_list[i - 1].ml_year = j; if (is_list && !is_ext_range) is_ext_list = TRUE; else if (is_range && !is_ext_list) is_ext_range = TRUE; } else if (is_fiscal_year) month_list[i - 1].ml_year = act_year; } else { if (is_fiscal_year) while (*option && ((is_list && (*option != *YLIST_SEP)) || (is_range && (*option != *YRANGE_SEP)))) option++; else while (*option && ((is_list && (*option != *MLIST_SEP)) || (is_range && (*option != *MRANGE_SEP)))) option++; } } while (*option == *MLIST_SEP || *option == *MRANGE_SEP || *option == *YLIST_SEP || *option == *YRANGE_SEP) option++; /* A list/range of fiscal years is wanted and the specified list/range of years is incomplete --> avoid error. */ if (i && is_fiscal_year && !month_list[i - 1].ml_year) { month_list[i - 1].ml_year = month_list[i - 1].ml_month; month_list[i - 1].ml_month = MONTH_MIN; } is_ext_year = buf_is_ext_year; if ((Uint) i >= month_list_max) { /* Resize the `month_list[]' table. */ month_list_max <<= 1; if (month_list_max * sizeof (Ml_struct) > testval) month_list_max--; month_list = (Ml_struct *) my_realloc ((VOID_PTR) month_list, month_list_max * sizeof (Ml_struct), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "month_list[month_list_max]", month_list_max); /* Initialize the `month_list[]' structure elements. */ for (k = i; k < (int) month_list_max; k++) month_list[k].ml_year = month_list[k].ml_month = 0; } } if (is_range && !is_ext_range && !is_special_range) { /* Fiscal year wanted and a range of months is specified only --> avoid error. */ if (is_fiscal_year) is_ext_year = TRUE; else { /* Ok, compute the range of months and put it in the `month_list[]' table. */ j = (*month_list).ml_month; k = month_list[1].ml_month; i = 0; while (month_list[i].ml_month) month_list[i++].ml_month = 0; if (!j && !k) (*month_list).ml_month = act_month; else { if (!j) j = MONTH_MIN; if (!k) k = MONTH_MAX; i = 0; if (j > k) for (; j >= k; i++, j--) month_list[i].ml_month = j; else for (; j <= k; i++, j++) month_list[i].ml_month = j; } } } /* Fiscal/standard year wanted and an invalid range is specified --> avoid error. */ if (is_ext_range && month_list[2].ml_month) month_list[1].ml_month = 0; /* Standard year wanted and the list/range of years is incomplete --> avoid error. */ if (!month_list[1].ml_month && (is_ext_list || is_ext_range || is_special_range || is_ext_year)) { is_ext_list = is_ext_range = is_special_range = is_ext_year = FALSE; (*month_list).ml_month = act_month; (*month_list).ml_year = act_year; } } } static void eliminate_invalid_data () /*! Eliminates invalid command line argument values and sets some internal variables according to the command line arguments. */ { register int i; register int len; /* Correction of month and year. */ if (!month && !year) { month = act_month; year = act_year; } else if (year < YEAR_MIN || year > YEAR_MAX) { if (month && year) month = act_month; year = act_year; } if (year_flag && month) month = 0; if (month && !(*month_list).ml_month) (*month_list).ml_month = month; if (year && !(*month_list).ml_year) (*month_list).ml_year = year; /* Set amount of month rows and columns according to the selected or default year calendar sheet format. */ if (is_3month_mode || is_3month_mode2) { /* Set fixed amount of month rows and columns for 3 month mode calendar sheets; the `-b<>' option is ignored. */ if (special_calsheet_flag) { if (cal_special_flag) { out_rows = JI3_OUT_ROWS; out_cols = JI3_OUT_COLS; } else if (cal_both_dates_flag) { out_rows = BI3_OUT_ROWS; out_cols = BI3_OUT_COLS; } else { out_rows = SI3_OUT_ROWS; out_cols = SI3_OUT_COLS; } } else { if (cal_special_flag) { out_rows = J3_OUT_ROWS; out_cols = J3_OUT_COLS; } else if (cal_both_dates_flag) { out_rows = B3_OUT_ROWS; out_cols = B3_OUT_COLS; } else { out_rows = S3_OUT_ROWS; out_cols = S3_OUT_COLS; } } } else { /* Set the number of month columns according to year calendar sheet style that is either given by the `-b<>' option or by the default value. */ switch (out_rows) { case MONTH_MIN: out_cols = MONTH_MAX; break; case 2: out_cols = 6; break; case 3: out_cols = S_OUT_COLS; break; case 4: out_cols = J_OUT_COLS; break; case 6: out_cols = 2; break; case MONTH_MAX: out_cols = MONTH_MIN; break; default: /* This case MUST be an internal error! */ abort (); } /* If no `-b<>' option is given, set the year calendar sheet style according to the `-j' or `jb' options if given. */ if (!year_flag) { if (special_calsheet_flag) { if (cal_special_flag) { out_rows = JI_OUT_ROWS; out_cols = JI_OUT_COLS; } else if (cal_both_dates_flag) { out_rows = BI_OUT_ROWS; out_cols = BI_OUT_COLS; } } else { if (cal_special_flag) { out_rows = J_OUT_ROWS; out_cols = J_OUT_COLS; } else if (cal_both_dates_flag) { out_rows = B_OUT_ROWS; out_cols = B_OUT_COLS; } } } } /* Set the length of a single day "cell" used within the calendar sheets according to the selected mode (means either NO `-j' option, `-j' or the `-jb' option). */ if (cal_special_flag) /* +1 because the day of year consists of 3 digits maximum plus a separating space (==> 4). */ format_len = FORMAT_LEN_MIN + 1; else if (cal_both_dates_flag) /* +5 because such a date consists of the day of month (2 digits maximum) plus the day of year (3 digits maximum) plus two textual parantheses plus a separating space (==> 8). */ format_len = FORMAT_LEN_MIN + 5; else /* The day of month consists of 2 digits maximum plus a separating space (==> 3). */ format_len = FORMAT_LEN_MIN; /* Now get the maximum length of a textual day name, which is returned by the function `day_name()'. */ len_dayname_max = 0; for (i = DAY_MIN; i <= DAY_MAX; i++) { len = (int) strlen (day_name (i)); if (len > len_dayname_max) len_dayname_max = len; } /* Now get the maximum length of a textual month name, which is returned by the function `month_name()'. */ len_monthname_max = 0; for (i = MONTH_MIN; i <= MONTH_MAX; i++) { len = (int) strlen (month_name (i)); if (len > len_monthname_max) len_monthname_max = len; } /* Now get the length of a textual day suffix, which is returned by the function `day_suffix()'. We check the length of the ordinal number suffixes: 1st 2nd 3rd 4th. */ len_suffix_max = 0; for (i = DAY_MIN; i <= 4; i++) { len = (int) strlen (day_suffix (i)); if (len > len_suffix_max) len_suffix_max = len; } } static void pseudo_blank_conversion (text) char **text; /*! Perform conversion of quoted or unquoted PSEUDO_BLANK characters in TEXT to real ' ' blank characters. */ { if (strchr (*text, PSEUDO_BLANK) != (char *) NULL) { auto char *ptr_char; auto char *ptr2_char; /* Manage quoted or unquoted PSEUDO_BLANK characters. */ ptr_char = ptr2_char = *text; while (*ptr2_char) { if (*ptr2_char == PSEUDO_BLANK) { ptr2_char++; *ptr_char++ = ' '; } else if (*ptr2_char == QUOTE_CHAR) { ptr2_char++; if (*ptr2_char == PSEUDO_BLANK) *ptr_char++ = *ptr2_char++; else *ptr_char++ = QUOTE_CHAR; } else *ptr_char++ = *ptr2_char++; } *ptr_char = '\0'; } } #if USE_RC static int further_check (option) char **option; /*! Checks whether invalid characters trail the argument of the `--period-of-fixed-dates=ARG' option. If so, return a non-zero value, otherwise zero. */ { register int opt_error = 0; (*option)++; if (**option) { rc_week_year_flag = (Bool) (tolower (**option) == 'w'); rc_forwards_flag = (Bool) (**option == *ASC_LIT); rc_backwards_flag = (Bool) (**option == *DES_LIT); (*option)++; if (**option || (!rc_week_year_flag && !rc_forwards_flag && !rc_backwards_flag)) /* Error, either argument is trailed by an illegal character or no mode specifying character (w|+|-) given. */ opt_error = 5; } return (opt_error); } #endif gcal-4.1/src/hd-data1.c0000664000000000000000000025035412727633115011513 00000000000000/*! * \file hd-data1.c * \brief All top 20 countries data which is composed into the * eternal holiday list. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include header files. */ #include "tailor.h" #include "common.h" #include "globals.h" #include "hd-astro.h" #include "hd-defs.h" #include "hd-data.h" #include "hd-use.h" #include "utils.h" #include "hd-data1.h" /* * The top 20 countries specific holiday management functions. */ void au_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Australia/Australia-wide. */ { register int day; register int i; #if HD_TOP20CC ptr_cc_id = "AU"; holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "#", easter - 1, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "#", day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "#", day, 6, year, hd_elems, fday, count); #endif /* HD_TOP20CC */ day = DAY_MIN; i = weekday_of_date (day, MONTH_MIN, year); if (!use_other_cc) { if (i > 5) day += ((DAY_MAX - i) + 1); } else { if (i == DAY_MAX) day++; } holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = 26; if (!use_other_cc) { i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += ((DAY_MAX - i) + 1); } holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ABORIGINES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 9, year, hd_elems, fday, count); day = 25; if (!use_other_cc) { if (weekday_of_date (day, 4, year) == DAY_MAX) day++; } holiday (*init_data, detected, _(hd_text[HD_ANZAC_DAY].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); day = 25; if (!use_other_cc) { i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += ((DAY_MAX - i) + 1); } holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 9, year, DAY_MAX, TRUE); holiday (*init_data, detected, _(hd_text[HD_FATHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void be_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Belgium. */ { ptr_cc_id = "BE"; holiday (*init_data, detected, _(hd_text[HD_FLEMISH_CULTURE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 11, 7, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_DYNASTY_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 15, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FRENCH_CULTURE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 27, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 21, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1917) holiday (*init_data, detected, _(hd_text[HD_ARMISTICE_DAY].ht_text), ptr_cc_id, "+", 11, 11, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void br_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Brazil. */ { register int i; ptr_cc_id = "BR"; holiday (*init_data, detected, _(hd_text[HD_SAO_PAULO_ANNIVERSARY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 25, MONTH_MIN, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_RIO_DE_JANEIRO_ANNIVERSARY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 20, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_TIRADENTES_DAY].ht_text), ptr_cc_id, "+", 21, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_OUR_LADY_APARECIDA_DAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, "+", 2, 11, year, hd_elems, fday, count); for (i = 5; i; i--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46 - i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF2, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, DIS_HLS_PREF2, 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 7, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 19, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, DIS_HLS_PREF2, 29, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 15, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF2, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void ca_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Canada. */ { register int day; #if HD_TOP20CC ptr_cc_id = "CA"; day = 26; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "#", day, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "#", day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "#", easter + 1, 0, year, hd_elems, fday, count); day = eval_holiday (24, 5, year, DAY_MIN, FALSE); holiday (*init_data, detected, _(hd_text[HD_VICTORIA_DAY].ht_text), ptr_cc_id, "#", day, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, "#", day, 10, year, hd_elems, fday, count); #endif /* HD_TOP20CC */ holiday (*init_data, detected, _(hd_text[HD_ALL_FOOLS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 4, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MAX, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_FATHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HALLOWEEN].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[10 - 1], 10, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 9, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 21, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, MONTH_MIN, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 11, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_VALENTINES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1867) { day = DAY_MIN; if (weekday_of_date (day, 7, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); } } void ch_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland. */ { #if HD_TOP20CC ptr_cc_id = "CH"; holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "#", easter + 39, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "#", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, DIS_HLS_PREF2, 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "#", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WHIT_MONDAY].ht_text), ptr_cc_id, "#", easter + 50, 0, year, hd_elems, fday, count); #else /* !HD_TOP20CC */ if (!use_other_cc) { holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_WHIT_MONDAY].ht_text), ptr_cc_id, "+", easter + 50, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } #endif /* !HD_TOP20CC */ holiday (*init_data, detected, _(hd_text[HD_ST_BERCHTOLDS_DAY].ht_text), ptr_cc_id, "#", 2, MONTH_MIN, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PENTECOST].ht_text), ptr_cc_id, "+", easter + 49, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_STEPHENS_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_QUINQUAGESIMA_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 49, 0, year, hd_elems, fday, count); if (year > 1992) holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", DAY_MIN, 8, year, hd_elems, fday, count); } void cn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in China. */ { ptr_cc_id = "CN"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); use_other_cc = !use_other_cc; if (year > 1911) { register int day; holiday (*init_data, detected, _(hd_text[HD_ARBOR_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 6, year, hd_elems, fday, count); for (day = DAY_MIN; day <= 2; day++) holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); for (day = DAY_MIN; day <= 2; day++) holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_TEACHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); if (year > 1918) holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, "+", 4, 5, year, hd_elems, fday, count); if (year > 1920) holiday (*init_data, detected, _(hd_text[HD_FOUNDING_OF_THE_COMMUNIST_PARTY].ht_text), ptr_cc_id, "+", DAY_MIN, 7, year, hd_elems, fday, count); if (year > 1926) holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 8, year, hd_elems, fday, count); if (year > 1948) for (day = DAY_MIN; day <= 2; day++) holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); } } void de_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany. */ { register int day; #if HD_TOP20CC ptr_cc_id = CC_DE; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "#", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PEACE_FESTIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF2, 8, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "#", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 15, 8, year, hd_elems, fday, count); if (year > 1516) holiday (*init_data, detected, _(hd_text[HD_REFORMATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, dvec[10 - 1], 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 6, MONTH_MIN, year, hd_elems, fday, count); day = weekday_of_date (DAY_MIN, 11, year); day = (day < 3) ? 18 - day : 25 - day; holiday (*init_data, detected, _(hd_text[HD_DAY_OF_PRAYER_AND_REPENTANCE].ht_text), ptr_cc_id, (year > 1994) ? DIS_HLS_PREF2 : "+", day, 11, year, hd_elems, fday, count); if (year > 1953) { register int month; if (year > 1989) { day = 3; month = 10; } else { day = 17; month = 6; } holiday (*init_data, detected, _(hd_text[HD_GERMAN_UNITY_DAY].ht_text), ptr_cc_id, "+", day, month, year, hd_elems, fday, count); } #else /* !HD_TOP20CC */ if (!use_other_cc) if (year > 1953) { register int month; if (year > 1989) { day = 3; month = 10; } else { day = 17; month = 6; } holiday (*init_data, detected, _(hd_text[HD_GERMAN_UNITY_DAY].ht_text), ptr_cc_id, "+", day, month, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } #endif /* !HD_TOP20CC */ holiday (*init_data, detected, _(hd_text[HD_WOMENS_SHROVE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 52, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (24, MONTH_MAX, year, DAY_MAX, FALSE); day -= (DAY_MAX * 4); holiday (*init_data, detected, _(hd_text[HD_SUNDAY_OF_THE_DEAD].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[11 - 1] + day, 11, year, hd_elems, fday, count); day -= DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_MOURNING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[11 - 1] + day, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_FOOLS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ASH_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 48, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ASH_WEDNESDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FATHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 39, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE); if (day_of_year (day, 5, year) != easter + 49) day += DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, DIS_HLS_PREF, 29, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SEVEN_SLEEPERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 27, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_NICHOLAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 5, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 47, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MAX, TRUE); holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_VALENTINES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VALBORGS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[4 - 1], 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF2, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF2, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); if (year == 2017) holiday (*init_data, detected, _(hd_text[HD_REFORMATION_DAY].ht_text), ptr_cc_id, "+", dvec[10 - 1], 10, year, hd_elems, fday, count); } void es_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Spain. */ { ptr_cc_id = "ES"; holiday (*init_data, detected, _(hd_text[HD_ST_JAMES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 25, 7, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_DAY_OF_ANDALUCIA].ht_text), ptr_cc_id, DIS_HLS_PREF2, 28, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DAY_OF_CATALONIA].ht_text), ptr_cc_id, DIS_HLS_PREF2, 11, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DAY_OF_GALICIA].ht_text), ptr_cc_id, DIS_HLS_PREF2, 25, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BASQUE_NATIONAL_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 6, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "#", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 19, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "#", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PALM_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - DAY_MAX, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_STEPHENS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); } void fr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in France. */ { if (!use_other_cc) ptr_cc_id = "FR"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_QUINQUAGESIMA_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 49, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1788) holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 14, 7, year, hd_elems, fday, count); if (year > 1917) holiday (*init_data, detected, _(hd_text[HD_ARMISTICE_DAY].ht_text), ptr_cc_id, "+", 11, 11, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 8, 5, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void gb_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United Kingdom of Great Britain. */ { auto Greg_struct tmp_greg; register int day; register int i; #if HD_TOP20CC ptr_cc_id = CC_GB; holiday (*init_data, detected, _(hd_text[HD_BURNS_NIGHT].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, MONTH_MIN, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = 12; i = weekday_of_date (day, 7, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_BATTLE_OF_BOYNE].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 7, year, hd_elems, fday, count); day = 2; i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 8, year, hd_elems, fday, count); day = 17; i = weekday_of_date (day, 3, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_ST_PATRICKS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 3, year, hd_elems, fday, count); day = eval_holiday (dvec[8 - 1], 8, year, DAY_MIN, FALSE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "#", day, 8, year, hd_elems, fday, count); #else /* !HD_TOP20CC */ if (!use_other_cc) { day = eval_holiday (dvec[8 - 1], 8, year, DAY_MIN, FALSE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } #endif /* !HD_TOP20CC */ day = 5; i = weekday_of_date (day, 7, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_TYNWALD_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 7, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = 9; i = weekday_of_date (day, 5, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_DAVIDS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SWALLOW_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 15, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_GEORGES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 23, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GROTTO_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_EDWARDS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 13, 10, year, hd_elems, fday, count); day = eval_holiday (dvec[5 - 1], 5, year, DAY_MIN, FALSE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 25; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MAX, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_FATHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HALLOWEEN].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[10 - 1], 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ANNUNCIATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, 3, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 21, 0, year, hd_elems, fday, count); day = DAY_MIN; i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, (year == 1999) ? "+" : DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); /* So we first need to buffer the Gregorian Reformation period actually used. */ tmp_greg.first_day = greg->first_day; tmp_greg.last_day = greg->last_day; tmp_greg.month = greg->month; tmp_greg.year = greg->year; /* Then we set the Gregorian Reformation period to the first date which is out of the range of dates Gcal is able to manage, for computing the Easter Sunday of a Julian date, means we behave as if no Gregorian Reformation has ever happened. */ greg->last_day = greg->first_day = DAY_MIN; greg->month = MONTH_MIN; greg->year = YEAR_MAX + 1; /* Compute the Julian `day_of_year' number for the BEGINNING_OF_FINANCIAL_YEAR (Lady Day) holiday. */ day = day_of_year (25, 3, year); /* Now we set the Gregorian Reformation period to the date respected in the U.K. */ greg->year = 1752; greg->month = 9; greg->first_day = 3; greg->last_day = 13; /* The computation is done for the next date after the given Gregorian Reformation period, but for the current year (Gregorian date). If this is not proper, I would like to hear *your* solution how to compute it in the right way! */ if (year > greg->year) day += julian_gregorian_diff (greg->last_day + 1, greg->month, year); /* And restore the buffered Gregorian Reformation date actually used. */ greg->year = tmp_greg.year; greg->month = tmp_greg.month; greg->last_day = tmp_greg.last_day; greg->first_day = tmp_greg.first_day; holiday (*init_data, detected, _(hd_text[HD_BEGINNING_OF_FINANCIAL_YEAR].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 0, year, hd_elems, fday, count); if (year > 1604) holiday (*init_data, detected, _(hd_text[HD_GUY_FAWKES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 5, 11, year, hd_elems, fday, count); } void il_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Israel. */ { ptr_cc_id = "IL"; use_other_cc = !use_other_cc; hebrew_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; if (year > 1999) holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 9, 5, year, hd_elems, fday, count); } void it_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Italy. */ { register int day; register int month; register int i; ptr_cc_id = "IT"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); day = 2; month = 6; i = weekday_of_date (day, month, year); if (i > 3) day += (DAY_MAX - i); else if (i > 1) { i -= 2; day = dvec[--month - 1] - i; } else day -= i; holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, month, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, DIS_HLS_PREF, 29, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VENICE_CARNIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 58, 0, year, hd_elems, fday, count); if (year > 1917) { day = 4; i = weekday_of_date (day, 11, year); if (i > 3) day += (DAY_MAX - i); else day -= i; holiday (*init_data, detected, _(hd_text[HD_ARMISTICE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 11, year, hd_elems, fday, count); } if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 25, 4, year, hd_elems, fday, count); } void jp_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Japan. */ { ptr_cc_id = "JP"; if (year < 1873) { use_other_cc = !use_other_cc; japanese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); use_other_cc = !use_other_cc; } else { register int hour; register int min; register int i; auto int day; auto int month; auto int y = year; /* Astronomical calculations are based on China/Japan local time. */ if (year < 1888) { /* Meridian Beijing (116 25' degrees East), UTC/GMT time difference. */ hour = 7; min = 45; } else { /* UTC/GMT-9 for the meridian 135 degrees East. */ hour = 9; min = 0; } day = 15; if (weekday_of_date (day, MONTH_MIN, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_COMING_OF_AGE_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (DAY_MIN, 2, year, 4, TRUE); holiday (*init_data, detected, _(hd_text[HD_SAPPORO_SNOW_FESTIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 2, year, hd_elems, fday, count); day = 2; if (weekday_of_date (day, 2, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_SPRING_FESTIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 2, year, hd_elems, fday, count); day = 3; if (weekday_of_date (day, 3, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_PEACH_FESTIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 3, year, hd_elems, fday, count); day = 8; if (weekday_of_date (day, 4, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_BUDDHAS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 4, year, hd_elems, fday, count); day = 29; if (weekday_of_date (day, 4, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_GREENERY_DAY].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); day = 7; if (weekday_of_date (day, 7, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_STAR_FESTIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 7, year, hd_elems, fday, count); day = 20; if (weekday_of_date (day, 7, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_MARINE_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); day = 13; if (weekday_of_date (day, 8, year) == DAY_MAX) day++; for (i = 0; i < 4; i++) holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_FORTUNE].ht_text), ptr_cc_id, DIS_HLS_PREF, day + i, 8, year, hd_elems, fday, count); day = 9; if (weekday_of_date (day, 9, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CHRYSANTHENUM_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 9, year, hd_elems, fday, count); day = 15; if (weekday_of_date (day, 9, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_RESPECT_FOR_THE_AGED_DAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); day = 10; if (weekday_of_date (day, 10, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_HEALTH_AND_SPORTS_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); day = 15; if (weekday_of_date (day, 11, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_7_5_3_FESTIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 11, year, hd_elems, fday, count); day = 23; if (weekday_of_date (day, 11, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_LABOUR_THANKSGIVING_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); day = 13; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_SOOT_SWEEPING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, MONTH_MAX, year, hd_elems, fday, count); day = 23; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_EMPERORS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 5; if (weekday_of_date (day, 5, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = 3; if (weekday_of_date (day, 11, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CULTURE_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); day = 4; i = weekday_of_date (day, 5, year); if (i < 6) holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_VALENTINES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 2, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 3, MONTH_MIN, year, hd_elems, fday, count); if (equinox_solstice (NH_VE, &day, &month, &y, hour, min) != (double) SPECIAL_VALUE) { if (weekday_of_date (day, month, y) == DAY_MAX) (void) next_date (&day, &month, &y); holiday (*init_data, detected, _(hd_text[HD_EQUINOX_DAY].ht_text), ptr_cc_id, "+", day, month, y, hd_elems, fday, count); } else y = year; if (equinox_solstice (NH_AE, &day, &month, &y, hour, min) != (double) SPECIAL_VALUE) { if (weekday_of_date (day, month, y) == DAY_MAX) (void) next_date (&day, &month, &y); holiday (*init_data, detected, _(hd_text[HD_EQUINOX_DAY].ht_text), ptr_cc_id, "+", day, month, y, hd_elems, fday, count); } else y = year; if (equinox_solstice (NH_WS, &day, &month, &y, hour, min) != (double) SPECIAL_VALUE) holiday (*init_data, detected, _(hd_text[HD_JAPANESE_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, month, y, hd_elems, fday, count); else y = year; if (sun_longitude (315.0, &day, &month, &y, hour, min, FALSE) != (double) SPECIAL_VALUE) { (void) prev_date (&day, &month, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_SEASON_CHANGE].ht_text), ptr_cc_id, DIS_HLS_PREF, day, month, y, hd_elems, fday, count); } if (year > 1946) { day = 3; if (weekday_of_date (day, 5, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = 11; if (weekday_of_date (day, 2, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_FOUNDATION_DAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); } } } void kr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Republic of Korea. */ { ptr_cc_id = "KR"; use_other_cc = !use_other_cc; if ((year > 1909) && (year < 1945)) japanese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); else chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); use_other_cc = !use_other_cc; if (year > 1911) { register int day; holiday (*init_data, detected, _(hd_text[HD_PARENTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 8, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARBOR_DAY].ht_text), ptr_cc_id, "+", 5, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, "+", 5, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 10, 3, year, hd_elems, fday, count); for (day = DAY_MIN; day <= 2; day++) holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_TEACHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 15, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALPHABET_DAY].ht_text), ptr_cc_id, (year > 1995) ? DIS_HLS_PREF : "+", 9, 10, year, hd_elems, fday, count); if (year > 1918) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_MOVEMENT_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 3, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); if (year > 1947) { holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, DIS_HLS_PREF, 17, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_FOUNDATION_DAY].ht_text), ptr_cc_id, "+", 3, 10, year, hd_elems, fday, count); } if (year > 1952) holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", 6, 6, year, hd_elems, fday, count); } } void mx_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Mexico. */ { register int day; ptr_cc_id = "MX"; holiday (*init_data, detected, _(hd_text[HD_BENITO_JUAREZ_DAY].ht_text), ptr_cc_id, "+", 21, 3, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BATTLE_OF_PUEBLA].ht_text), ptr_cc_id, "#", 5, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GUADALUPE_VIRGINS_DAY].ht_text), ptr_cc_id, "#", 12, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "#", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 11, year, hd_elems, fday, count); for (day = DAY_MAX; day; day--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46 - day, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[4 - 1], 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "#", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 5, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MAX, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_FATHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "#", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HOLY_INNOCENTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 28, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 16, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_PROCLAMATION].ht_text), ptr_cc_id, DIS_HLS_PREF, 15, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "#", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 10, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); if (!(year % 6)) holiday (*init_data, detected, _(hd_text[HD_PRESIDENTIAL_INAUGURATION].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_INFORM].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 20, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF2, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 6, MONTH_MIN, year, hd_elems, fday, count); } void nl_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in the Netherlands. */ { register int day; ptr_cc_id = "NL"; holiday (*init_data, detected, _(hd_text[HD_EINDHOVENS_LIBERATION].ht_text), ptr_cc_id, DIS_HLS_PREF2, 18, 9, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (DAY_MIN, 9, year, 2, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_PRINCESS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WORLD_ANIMAL_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 4, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MAX, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_FATHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE); if (day_of_year (day, 5, year) != easter + 49) day += DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_NICHOLAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 5, MONTH_MAX, year, hd_elems, fday, count); if (year > 1890 && year < 1949) holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", 31, 8, year, hd_elems, fday, count); else if (year > 1948 && year < 2014) holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", 30, 4, year, hd_elems, fday, count); else if (year > 2013) holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, "+", 27, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 4, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if ((year > 1944) && !(year % 5)) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 5, 5, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void nz_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in New Zealand. */ { register int day; register int i; if (!use_other_cc) ptr_cc_id = "NZ"; day = 29; i = weekday_of_date (day, MONTH_MIN, year); if (i > 4) day += ((DAY_MAX - i) + 1); else day += (DAY_MIN - i); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_AUCKLAND].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (DAY_MIN, 9, year, DAY_MIN, TRUE) + (3 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_CANTERBURY_SOUTH].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 9, year, hd_elems, fday, count); day = day_of_year (30, 11, year); i = weekday_of_date (30, 11, year); if (i > 4) day += ((DAY_MAX - i) + 1); else day += (DAY_MIN - i); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_CHATHAM_ISLANDS].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 0, year, hd_elems, fday, count); day = day_of_year (DAY_MIN, 2, year); i = weekday_of_date (DAY_MIN, 2, year); if (i > 4) day += ((DAY_MAX - i) + 1); else day += (DAY_MIN - i); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_NELSON].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 0, year, hd_elems, fday, count); day = 23; i = weekday_of_date (day, 3, year); if (i > 4) day += ((DAY_MAX - i) + 1); else day += (DAY_MIN - i); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_OTAGO].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 3, year, hd_elems, fday, count); day = 17; i = weekday_of_date (day, MONTH_MIN, year); if (i > 4) day += ((DAY_MAX - i) + 1); else day += (DAY_MIN - i); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_SOUTHLAND].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 3, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_TARANAKI].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 3, year, hd_elems, fday, count); day = 22; i = weekday_of_date (day, MONTH_MIN, year); if (i > 4) day += ((DAY_MAX - i) + 1); else day += (DAY_MIN - i); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_WELLINGTON].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, MONTH_MIN, year, hd_elems, fday, count); day = day_of_year (DAY_MIN, MONTH_MAX, year); i = weekday_of_date (DAY_MIN, MONTH_MAX, year); if (i > 4) day += ((DAY_MAX - i) + 1); else day += (DAY_MIN - i); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_WESTLAND].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ANZAC_DAY].ht_text), ptr_cc_id, "+", 25, 4, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 25; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE) + (3 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_HAWKES_BAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day - 3, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_MARLBOROUGH].ht_text), ptr_cc_id, DIS_HLS_PREF2, day_of_year (day, 10, year) + DAY_MAX, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_CANTERBURY_NORTH].ht_text), ptr_cc_id, DIS_HLS_PREF2, day_of_year (day, 10, year) + (2 * DAY_MAX) + 4, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 6, 2, year, hd_elems, fday, count); day = DAY_MIN; i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = 2; i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void pt_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Portugal. */ { ptr_cc_id = "PT"; holiday (*init_data, detected, _(hd_text[HD_CAMOES_DAY].ht_text), ptr_cc_id, "+", 10, 6, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ASH_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 48, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF2, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "#", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "#", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 5, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 47, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 25, 4, year, hd_elems, fday, count); } void ru_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Russian Federation. */ { register int i; auto int greg_diff; auto int d; auto int m; auto int y; ptr_cc_id = "RU"; /* The Christians in Russia compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); holiday (*init_data, detected, _(hd_text[HD_COSMONAUTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 12, 4, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; d = 23; i = weekday_of_date (d, 2, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_DEFENDERS_OF_MOTHERLAND_DAY].ht_text), ptr_cc_id, "+", d, 2, year, hd_elems, fday, count); d = DAY_MIN; i = weekday_of_date (d, 5, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", d, 5, year, hd_elems, fday, count); d = 2; i = weekday_of_date (d, 5, year); if (i > 5) d += 2; else if (i == DAY_MIN) d++; holiday (*init_data, detected, _(hd_text[HD_SPRING_FESTIVAL].ht_text), ptr_cc_id, "+", d, 5, year, hd_elems, fday, count); d = DAY_MIN; i = weekday_of_date (d, MONTH_MIN, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", d, MONTH_MIN, year, hd_elems, fday, count); d = 2; i = weekday_of_date (d, MONTH_MIN, year); if (i > 5) d += 2; else if (i == DAY_MIN) d++; holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", d, MONTH_MIN, year, hd_elems, fday, count); d = DAY_MIN; if (year != 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); d = 8; i = weekday_of_date (d, 3, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", d, 3, year, hd_elems, fday, count); if (year != 1924) { d = 24; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); if (year > 1944) { d = 9; i = weekday_of_date (d, 5, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", d, 5, year, hd_elems, fday, count); } if (year > 1991) { d = 12; i = weekday_of_date (d, 6, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", d, 6, year, hd_elems, fday, count); d = 12; i = weekday_of_date (d, MONTH_MAX, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", d, MONTH_MAX, year, hd_elems, fday, count); d = 7; i = weekday_of_date (d, 11, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_DAY_OF_RECONCILIATION].ht_text), ptr_cc_id, "+", d, 11, year, hd_elems, fday, count); } else if (year > 1916) for (i = 6; i <= 7; i++) holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", i, 11, year, hd_elems, fday, count); } void us_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States. */ { register int day; register int month; register int i = 0; #if HD_TOP20CC ptr_cc_id = CC_US; observe_us_hdy = SAFR_SUMO; day = eval_holiday (DAY_MIN, 2, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_DAY].ht_text), ptr_cc_id, "#", day, 2, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "#", day, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 12, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 47, 0, year, hd_elems, fday, count); if (year > 1844) { day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 11, year, hd_elems, fday, count); } if ((year > 1964) && !((1965 - year) & 3)) { day = 20; if (weekday_of_date (day, MONTH_MIN, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_PRESIDENTIAL_INAUGURATION].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, MONTH_MIN, year, hd_elems, fday, count); } #else /* !HD_TOP20CC */ if (!use_other_cc) { day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (DAY_MIN, MONTH_MIN, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_MARTIN_LUTHER_KINGS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 2, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_DAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); } #endif /* !HD_TOP20CC */ day = 25; month = MONTH_MAX; switch (observe_us_hdy) { case SASA_SUSU: break; case SASA_SUMO: case SASAFR_SUMO: if (weekday_of_date (day, month, year) == DAY_MAX) day++; break; case SAMO_SUMO: i = weekday_of_date (day, month, year); if (i > 5) day += ((DAY_MAX - i) + 1); break; case SAFR_SUMO: i = weekday_of_date (day, month, year); if (i == DAY_MAX) day++; else if (i == 6) day--; break; default: abort (); /* Error, invalid case. */ } holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, month, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = 4; month = 7; switch (observe_us_hdy) { case SASA_SUSU: break; case SASA_SUMO: case SASAFR_SUMO: if (weekday_of_date (day, month, year) == DAY_MAX) day++; break; case SAMO_SUMO: i = weekday_of_date (day, month, year); if (i > 5) day += ((DAY_MAX - i) + 1); break; case SAFR_SUMO: i = weekday_of_date (day, month, year); if (i == DAY_MAX) day++; else if (i == 6) day--; break; default: abort (); /* Error, invalid case. */ } holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, month, year, hd_elems, fday, count); day = DAY_MIN; month = MONTH_MIN; switch (observe_us_hdy) { case SASA_SUSU: break; case SASA_SUMO: case SASAFR_SUMO: if (weekday_of_date (day, month, year) == DAY_MAX) day++; break; case SAMO_SUMO: i = weekday_of_date (day, month, year); if (i > 5) day += ((DAY_MAX - i) + 1); break; case SAFR_SUMO: i = weekday_of_date (day, month, year); if (i == DAY_MAX) day++; else if (i == 6) i = SPECIAL_VALUE; break; default: abort (); /* Error, invalid case. */ } if (i != SPECIAL_VALUE) holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, month, year, hd_elems, fday, count); if ((observe_us_hdy == SAFR_SUMO) && (weekday_of_date (DAY_MIN, MONTH_MIN, year + 1) == 6)) holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = 11; month = 11; switch (observe_us_hdy) { case SASA_SUSU: break; case SASA_SUMO: if (weekday_of_date (day, month, year) == DAY_MAX) day++; break; case SAMO_SUMO: i = weekday_of_date (day, month, year); if (i > 5) day += ((DAY_MAX - i) + 1); break; case SAFR_SUMO: case SASAFR_SUMO: i = weekday_of_date (day, month, year); if (i == DAY_MAX) day++; else if (i == 6) day--; break; default: abort (); /* Error, invalid case. */ } holiday (*init_data, detected, _(hd_text[HD_VETERANS_DAY].ht_text), ptr_cc_id, "+", day, month, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 9, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GRANDPARENTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day + 6, 9, year, hd_elems, fday, count); day = eval_holiday (dvec[5 - 1], 5, year, DAY_MIN, FALSE); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 11, year, 4, TRUE) + (3 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_FOOLS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 4, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, 6, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOSSES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 16, 10, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CITIZENSHIP_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 17, 9, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MAX, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_FATHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MAX, TRUE); holiday (*init_data, detected, _(hd_text[HD_FRIENDSHIP_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HALLOWEEN].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[10 - 1], 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GROUNDHOG_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 2, year, hd_elems, fday, count); for (day = 26; day <= dvec[MONTH_MAX - 1]; day++) holiday (*init_data, detected, _(hd_text[HD_KWANZAA].ht_text), ptr_cc_id, DIS_HLS_PREF, day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MOTHER_IN_LAWS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 26, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NURSES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 6, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 7, year, DAY_MAX, TRUE) + (3 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_PARENTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 7, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, 4, TRUE); holiday (*init_data, detected, _(hd_text[HD_PRAYER_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PATRICKS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 17, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_VALENTINES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 2, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, 6, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_SWEETEST_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 10, year, hd_elems, fday, count); } gcal-4.1/src/globals.h0000664000000000000000000002410212244130561011535 00000000000000#ifndef __GLOBALS_H # define __GLOBALS_H /*! * \file globals.h * \brief Declarations of all GLOBAL common variables used * (except all common variables that depend to the RC section). */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: globals.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL variables declarations. */ /*! The table of supported date formats. */ extern Df_struct supported_date_format[]; /*! Points to the used date format. */ extern Df_struct *date_format; /*! The table of long-style options. */ extern const Lopt_struct lopt[]; /*! The table of Gregorian Reformation dates. */ extern Greg_struct greg_reform_date[]; /*! Points to the used Gregorian Reformation date. */ extern Greg_struct *greg; /*! Effective hls 1 end (current day). */ extern Hls_struct ehls1e; /*! Effective hls 1 start (current day). */ extern Hls_struct ehls1s; /*! Effective hls 2 end (holiday). */ extern Hls_struct ehls2e; /*! Effective hls 2 start (holiday). */ extern Hls_struct ehls2s; /*! Used if a list/range of months/years is given. */ extern Ml_struct *month_list; /*! Actual size of all string vectors. */ extern Uint maxlen_max; /*! Amount of days in months. */ extern const int dvec[]; /*! Number of past days of month. */ extern const int mvec[]; /*! Actual day. */ extern int act_day; /*! Actual hour. */ extern int act_hour; /*! Actual minute. */ extern int act_min; /*! Actual month. */ extern int act_month; /*! Actual second. */ extern int act_sec; /*! Actual year. */ extern int act_year; /*! Buffer of actual day. */ extern int buf_ad; /*! Buffer of actual month. */ extern int buf_am; /*! Buffer of actual year. */ extern int buf_ay; /*! True actual day as reported by the operating system. */ extern int true_day; /*! True actual month as reported by the operating system. */ extern int true_month; /*! True actual year as reported by the operating system. */ extern int true_year; /*! Current day. */ extern int day; /*! Starting month of a fiscal year. */ extern int fiscal_month; /*! Format length of a standard/special/both day. */ extern int format_len; /*! Is current year a leap year? */ extern int is_leap_year; /*! Is output directed to channel 1? */ extern int is_tty1; /*! Is output directed to channel 2? */ extern int is_tty2; /*! Is output displayed on a terminal? */ extern int is_tty; /*! Maximum string length of a textual day_name(). */ extern int len_dayname_max; /*! Maximum string length of a textual month_name(). */ extern int len_monthname_max; /*! Maximum string length of a textual day_suffix() [if any]. */ extern int len_suffix_max; /*! String length of the maximum year able to compute. */ extern int len_year_max; /*! Current month. */ extern int month; /*! Number of month columns of a year calendar. */ extern int out_cols; /*! Number of month rows of a year calendar. */ extern int out_rows; /*! `-s<0,1...7|day name>'. */ extern int start_day; /*! `--time-offset=t|@|[t|@][+|-]MMMM|HH:[MM]' for correcting astronomically based data. */ extern int time_hour_offset; /*! `--time-offset=t|@|[t|@][+|-]MMMM|HH:[MM]' for correcting astronomically based data. */ extern int time_min_offset; /*! `--transform-year=BASE_YEAR'. */ extern int transform_year; /*! `--debug[=0...WARN_LVL_MAX]'. */ extern int warning_level; /*! Current year. */ extern int year; /*! Vector of holiday dates (legal days). */ extern char hd_ldays[]; /*! `--cc-holidays=CC[+CC+...]'. */ extern char *cc; /*! The "DD" text. */ extern char *dd_lit; /*! The "ARG" text. */ extern char *larg_lit; /*! The "MM" text. */ extern char *mm_lit; /*! Stores the actual program name. */ extern char *prgr_name; /*! General purpose text buffer 1. */ extern char *s1; /*! General purpose text buffer 2. */ extern char *s2; /*! General purpose text buffer 3. */ extern char *s3; /*! General purpose text buffer 4. */ extern char *s4; /*! Character for separating HH:MM time values. */ extern char *time_sep; /*! `--translate-string=CHARACTER_PAIR...'. */ extern char *translate_string; /*! Pointer to the $TZ (timezone) environment variable. */ extern char *tz; /*! The "WWW" text. */ extern char *www_lit; /*! The "YY" text. */ extern char *yy_lit; /*! The "YYYY" text. */ extern char *yyyy_lit; /*! `-jb'. */ extern Bool cal_both_dates_flag; /*! `-j'. */ extern Bool cal_special_flag; /*! `-K'. */ extern Bool cal_with_week_number; /*! Use Astronomical holidays. */ extern Bool hdy_astronomical; /*! Use Bahai calendar holidays. */ extern Bool hdy_bahai; /*! Use Celtic calendar holidays. */ extern Bool hdy_celtic; /*! Use Chinese calendar holidays. */ extern Bool hdy_chinese; /*! Use Chinese flexible calendar holidays. */ extern Bool hdy_chinese_flexible; /*! Use Christian Western churches calendar holidays. */ extern Bool hdy_christian; /*! Use Hebrew calendar holidays. */ extern Bool hdy_hebrew; /*! Use Islamic CIVIL calendar holidays. */ extern Bool hdy_islamic; /*! Use Japanese calendar holidays. */ extern Bool hdy_japanese; /*! Use Japanese flexible calendar holidays. */ extern Bool hdy_japanese_flexible; /*! Use Multicultural New_Year's_Day holidays. */ extern Bool hdy_multicultural_new_year; /*! Use Orthodox Christian Eastern churches NEW calendar holidays. */ extern Bool hdy_orthodox_new; /*! Use Orthodox Christian Eastern churches OLD calendar holidays. */ extern Bool hdy_orthodox_old; /*! Use Persian Jalaali calendar holidays. */ extern Bool hdy_persian; /*! Use Zodiacal Marker holidays. */ extern Bool hdy_zodiacal_marker; /*! Use Bahai calendar months. */ extern Bool mth_bahai; /*! Use Chinese calendar months. */ extern Bool mth_chinese; /*! Use Chinese flexible calendar months. */ extern Bool mth_chinese_flexible; /*! Use Coptic calendar months. */ extern Bool mth_coptic; /*! Use Ethiopic calendar months. */ extern Bool mth_ethiopic; /*! Use French Revolutionary calendar months. */ extern Bool mth_french_revolutionary; /*! Use Hebrew calendar months. */ extern Bool mth_hebrew; /*! Use Indian CIVIL calendar months. */ extern Bool mth_indian_civil; /*! Use Islamic CIVIL calendar months. */ extern Bool mth_islamic; /*! Use Japanese calendar months. */ extern Bool mth_japanese; /*! Use Japanese flexible calendar months. */ extern Bool mth_japanese_flexible; /*! Use Old-Armenic calendar months. */ extern Bool mth_old_armenic; /*! Use Old-Egyptic calendar months. */ extern Bool mth_old_egyptic; /*! Use Persian Jalaali calendar months. */ extern Bool mth_persian; /*! Must we emulate the highlighting sequences? */ extern Bool emu_hls; /*! `-jnb'. */ extern Bool hd_both_dates_flag; /*! `-N'. */ extern Bool hd_legal_days_only; /*! `-n|N-'. */ extern Bool hd_sort_des_flag; /*! `-jn'. */ extern Bool hd_special_flag; /*! `-G'. */ extern Bool hd_suppr_list_sep_flag; /*! `-X'. */ extern Bool hd_title_flag; /*! `-H|'. */ extern Bool highlight_flag; /*! `-n|N'. */ extern Bool holiday_flag; /*! Argument is `..' -> current quarter of actual year. */ extern Bool is_3month_mode2; /*! Argument is `.' or `.+' or `.-'. */ extern Bool is_3month_mode; /*! Is an extended list of months/years given? */ extern Bool is_ext_list; /*! Is an extended range of months/years given? */ extern Bool is_ext_range; /*! Is an extended list/range of years given? */ extern Bool is_ext_year; /*! `:' char found in argument (MM:YYYY). */ extern Bool is_fiscal_year; /*! Is a special range of a selected month of years given? */ extern Bool is_special_range; /*! Is a special range of selected months of years given? */ extern Bool is_multi_range; /*! `--iso-week-number=|'. */ extern Bool iso_week_number; /*! `-O' (compute leap years as done by Eastern churches). */ extern Bool orthodox_calendar; /*! `-i'. */ extern Bool special_calsheet_flag; /*! `-u'. */ extern Bool suppr_cal_flag; /*! Day number leaded with zeroes format specifier given in date format? */ extern Bool use_day_zeroleaded; /*! 3 char day name format specifier given in date format? */ extern Bool use_short3_day_name; /*! Year number leaded with zeroes format specifier given in date format? */ extern Bool use_year_zeroleaded; # ifdef DJG /*! Set to SHRT_MAX for checking the maximum table range. */ extern Usint testval; # else /* !DJG */ /* Set to INT_MAX for checking the maximum table range. */ extern Uint testval; # endif /* !DJG */ # ifdef GCAL_EMAIL /*! Temporary file which is send by the mailer. */ extern FILE *tfp; /*! Name of tempfile used by the mailer. */ extern char *tfn; /*! Email address Gcal's output is send to. */ extern char *email_adr; # endif /* GCAL_EMAIL */ # ifdef GCAL_EPAGER /*! Name of external pager program. */ extern char *ext_pager; # endif /* GCAL_EPAGER */ # ifdef GCAL_NLS /*! Support of English language? */ extern Bool is_en; # endif /* GCAL_NLS */ # if USE_PAGER /*! Number of tty columns. */ extern int tty_cols; /*! Number of tty rows. */ extern int tty_rows; /*! `-p'. */ extern Bool pager_flag; # endif /* USE_PAGER */ # if (USE_PAGER || USE_HLS) && defined(GCAL_TCAP) # if MUST_DCL_OSPEED && USE_HLS /*! Terminal output baud rate. */ extern short ospeed; /*! On Solaris2, sys/types.h #includes sys/reg.h, which #defines PC. Unfortunately, PC is a global variable used by the Termcap library. */ # ifdef PC # undef PC # endif /*! Padding character. */ extern char PC; # endif /* MUST_DCL_OSPEED && USE_HLS */ # endif /* (USE_PAGER || USE_HLS) && GCAL_TCAP */ #endif /* __GLOBALS_H */ gcal-4.1/src/hd-use.h0000664000000000000000000000565212244130561011310 00000000000000#ifndef __HD_USE_H # define __HD_USE_H /*! * \file hd-use.h * \brief Manage the eternal holiday list header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: hd-use.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `hd_use.c'. */ extern int eval_holiday __P_ ((int day, const int month, const int year, const int wd, const Bool forwards)); extern int orthodox_easter __P_ ((const int year, int *greg_diff, const int greg_year, const int greg_month, const int greg_first_day, const int greg_last_day)); extern int tishri_1 __P_ ((const int year)); extern int muharram_1 __P_ ((const int year, int *doy)); extern int find_chinese_leap_month __P_ ((Ulint * conjunction_vector, Ulint * nh_ws_prev_year, const int year, const int hour, const int min)); extern int decode_date_format __P_ ((char *format_txt, char **result_txt, int day, int month, const int year, const int doy, const Bool hls1_set, const Bool hls2_set, const Bool fixed_length_names)); extern int decode_format __P_ ((char *format_txt, int pos, Bool * is_cformat, Bool * is_lformat, Bool * is_sign, Bool * is_lzero, Bool * is_suffix, Bool * is_fformat, int *fstyle, int *fwidth)); extern int use_format __P_ ((char **result_txt, const int pos, const char *string, const long value, const Bool is_numeric, const Bool is_cformat, const Bool is_lformat, const Bool is_sign, const Bool is_lzero, const Bool is_suffix, const Bool is_fformat, const int fstyle, const int fwidth, const int extra_len)); extern void print_all_holidays __P_ ((Bool init_data, const Bool detected)); extern void holiday __P_ ((Bool init_data, const Bool detected, const char *holiday_name, const char *country_code, const char *holiday_prefix, int day, int month, const int year, int *hd_elems, const int fday, const int count)); __END_DECLARATIONS #endif /* __HD_USE_H */ gcal-4.1/src/rc-use.c0000664000000000000000000023032712353315200011307 00000000000000/*! * \file rc-use.c * \brief Central function, manages the resource file handling * and displays the results. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013, 2014 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include definition header file to see whether USE_RC is defined there. * Compile this module only if USE_RC is defined, otherwise skip it. */ #include "tailor.h" #if USE_RC /* * Include header files. */ # if HAVE_ASSERT_H # include # endif # if HAVE_CTYPE_H # include # endif # if HAVE_LIMITS_H # include # endif # include "common.h" # include "rc-defs.h" # include "globals.h" # include "file-io.h" # include "hd-defs.h" # include "hd-use.h" # include "rc-astro.h" # include "rc-check.h" # include "rc-insert.h" # include "rc-utils.h" # include "tty.h" # include "utils.h" # include "rc-use.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `rc-use.c'. */ static void try_to_include_file __P_ ((int ed, int wd)); static void display_table __P_ ((const int tmp_ad, const int tmp_am, const int tmp_ay, int day, int ed, int wd)); static int fn_asc_sort __P_ ((const char **a, const char **b)); static int fn_des_sort __P_ ((const char **a, const char **b)); __END_DECLARATIONS /* * GLOBAL variables definitions. */ /*! Date variables a[=MMDD]...z[] (YYYY@{a|b|...|z}[[-]N]). */ Dvar_struct rc_dvar[RC_DVAR_MAX]; /*! Text variables $a[=TEXT]...$z[]. */ Tvar_struct rc_tvar[RC_TVAR_MAX]; /*! Local co-ordinates used by both the %distance and %sun* special texts. */ Coor_struct lcoor1; /*! Points to the local co-ordinates 1. */ Coor_struct *coor1 = &lcoor1; /*! Local co-ordinates used by the %distance special text. */ Coor_struct lcoor2; /*! Points to the local co-ordinates 2. */ Coor_struct *coor2 = &lcoor2; /*! Pointers to different parts of a (resource file) line. */ Line_struct *lineptrs = (Line_struct *) NULL; /*! Pointers to different parts of a (resource file) line. */ Line_struct *lptrs = (Line_struct *) NULL; /*! Pointers to different parts of a (resource file) line. */ Line_struct *lptrs2 = (Line_struct *) NULL; /*! Pointers to different parts of a (resource file) line. */ Line_struct *lptrs3 = (Line_struct *) NULL; /*! Temporary file used when a command is assigned to a TVAR. */ FILE *rc_tvar_tfp = (FILE *) NULL; /*! Temporary file used for managing `--here=ARG' options. */ FILE *rc_here_fp = (FILE *) NULL; /*! Time displacement value in days used by %sun* and %moon* (also used as cycle-starting time value for %sun* and %moon* special texts). */ double time_offset = 0.0; /*! Atmospheric pressure in millibar (`--atmosphere=PRESSURE,TEMPERATURE'). */ double atm_pressure = DEFAULT_PRESSURE; /*! Atmospheric temperature in degrees Celsius (`--atmosphere=PRESSURE,TEMPERATURE'). */ double atm_temperature = DEFAULT_TEMPERATURE; /*! Adjust rise/set-based reference altitude resp. shadow length factor (`--adjust-value=NUMBER'). */ double adjust_value = DEGS_PER_24_HOURS; /*! Actual size of `rc_elems_table[]'. */ Uint rc_elems_max = RC_ELEMS_MAX; /*! Amount of period of fixed dates. */ int rc_period = 0; /*! Amount of resource file entries. */ int rc_elems = 0; /*! Starting index of dummy resource file entries in table. */ int rc_zero_pos = 0; /*! `-cd'. */ int rc_have_today_in_list = 0; /*! Length of a single axis of a biorhythm text graphics bar. */ int rc_bio_axis_len = BIO_AXIS_DEF; /*! Number of lines of a Moon phase text graphics image. */ int rc_moonimage_lines = MOONIMAGE_DEF; /*! Filler length of week number text. */ int len_fil_wt = 0; /*! Actual size of text buffer of "text"-part of a line. */ int len_the_text = 0; /*! Cycle-ending time value in minutes for %sun* and %moon* special texts. */ int loop_end = SPECIAL_VALUE; /*! Cycle-timestep value in minutes for %sun* and %moon* special texts. */ int loop_step = DEFAULT_CYCLE_STEP; /*! Actual GMT minute. */ int gmt_min = 0; /*! Actual GMT hour. */ int gmt_hour = 0; /*! Buffer of actual GMT day. */ int buf_gd = 0; /*! Buffer of actual GMT month. */ int buf_gm = 0; /*! Buffer of actual GMT year. */ int buf_gy = 0; /*! Day difference of GMT and local date. */ int gmt_loc_diff = 0; /*! Indicates whether event also appears in next year. */ int incr_year = 0; /*! Indicates whether event also appears in previous year. */ int decr_year = 0; /*! Day of event found in line. */ int d = 0; /*! Month of event found in line. */ int m = 0; /*! Year of event found in line. */ int y = 0; /*! Buffered day of event. */ int d_buf = 0; /*! Buffered month of event. */ int m_buf = 0; /*! The `N'th weekday of month' displacement value. */ int hn = 0; /*! The weekday number of `N'th weekday of month'. */ int hwd = 0; /*! Name of tempfile used when a command is assigned to a TVAR. */ char *rc_tvar_tfn = (char *) NULL; /*! Name of tempfile used for managing `--here=ARG' options. */ char *rc_here_fn = (char *) NULL; /*! Text buffer of "text"-part of a line. */ char *the_text = (char *) NULL; /*! General purpose text buffer 5. */ char *s5 = (char *) NULL; /*! General purpose text buffer 6. */ char *s6 = (char *) NULL; /*! General purpose text buffer 7. */ char *s7 = (char *) NULL; /*! Text buffer of a line read from a resource file. */ char *line_buffer = (char *) NULL; /*! Stores the valid fixed date texts. */ char **rc_elems_table = (char **) NULL; /*! Text of modified actual date %DATE. */ char *rc_adate = (char *) NULL; /*! Name of alternative resource file(s) `-f|F'. */ char *rc_filename = (char *) NULL; /*! Argument used for filtering fixed date days. */ char *rc_filter_day = (char *) NULL; /*! Argument used for filtering fixed date periods. */ char *rc_filter_period = (char *) NULL; /*! REGEX used for filtering fixed date texts. */ char *rc_filter_text = (char *) NULL; /*! Fixed date list grouping separator `-cg[TEXT]'. */ char *rc_grp_sep = (char *) NULL; /*! Fixed date list heading text `--heading-text=TEXT'. */ char *rc_heading_text = (char *) NULL; /*! The biorhythm's "Emo" text. */ char *rc_bio_emo_lit = (char *) NULL; /*! The biorhythm's "Int" text. */ char *rc_bio_int_lit = (char *) NULL; /*! The biorhythm's "Phy" text. */ char *rc_bio_phy_lit = (char *) NULL; /*! The mode specifying character. */ char hc = '\0'; /*! `-jc'. */ Bool rc_special_flag = FALSE; /*! `-jcb'. */ Bool rc_both_dates_flag = FALSE; /*! `-c'. */ Bool rc_use_flag = FALSE; /*! `-C[]' or `-C[][T|W|M|Y]' or `-c[][T|W|M|Y]' or `-F<>'. */ Bool rc_all_dates_flag = FALSE; /*! `-c-'. */ Bool rc_sort_des_flag = FALSE; /*! `-ca'. */ Bool rc_enable_fn_flag = FALSE; /*! `-cA'. */ Bool rc_alternative_format_flag = FALSE; /*! `--execute-command'. */ Bool rc_execute_command = FALSE; /*! `-ce'. */ Bool rc_enable_hda_flag = FALSE; /*! `-cE'. */ Bool rc_enable_hdl_flag = FALSE; /*! `-ck'. */ Bool rc_week_number_flag = FALSE; /*! `-cl'. */ Bool rc_period_list = FALSE; /*! `-co'. */ Bool rc_omit_date_flag = FALSE; /*! `-cU'. */ Bool rc_suppr_date_part_flag = FALSE; /*! `-cQ'. */ Bool rc_suppr_list_sep_flag = FALSE; /*! `-cJ'. */ Bool rc_suppr_text_part_flag = FALSE; /*! `-cx'. */ Bool rc_title_flag = TRUE; /*! `-cz'. */ Bool rc_count_flag = FALSE; /*! `-cZ'. */ Bool rc_zero_dates_flag = FALSE; /*! `-cN[d|w|+|-]|MMDD|MMWW[W]N'. */ Bool rc_period_flag = FALSE; /*! `-c]t'. */ Bool rc_tomorrow_flag = FALSE; /*! `-c]w'. */ Bool rc_week_flag = FALSE; /*! `-c]m'. */ Bool rc_month_flag = FALSE; /*! `-c]y'. */ Bool rc_year_flag = FALSE; /*! `-cNw'. */ Bool rc_week_year_flag = FALSE; /*! `-c+'. */ Bool rc_forwards_flag = FALSE; /*! Buffers the state of `rc_forwards_flag'. */ Bool rc_fwdf_buffer = FALSE; /*! `-c-'. */ Bool rc_backwards_flag = FALSE; /*! Buffers the state of `rc_backwards_flag'. */ Bool rc_bwdf_buffer = FALSE; /*! `--leap-day=february'. */ Bool rc_feb_29_to_feb_28 = FALSE; /*! `--leap-day=march'. */ Bool rc_feb_29_to_mar_01 = FALSE; /*! `--precise' to display precise, non-rounded, times and data. */ Bool rc_precise = FALSE; /*! `--export-date-variables'. */ Bool rc_export_ldvar_flag = FALSE; /*! `--export-text-variables'. */ Bool rc_export_ltvar_flag = FALSE; /*! `--ignore-case' to ignore case distinctions in PATTERN. */ Bool rc_ignore_case_flag = FALSE; /*! `--limit' to calculate rise/set times limited to the current day only. */ Bool rc_limit = FALSE; /*! `--revert-match' to select non-matching PATTERN lines. */ Bool rc_revert_match_flag = FALSE; /*! Is a command (explicit date) given in the command line? */ Bool is_date_given = FALSE; /*! Does the command enables a year implicitly? */ Bool date_enables_year = FALSE; /*! Stores whether a %shell escape special text is run. */ Bool shell_escape_done = FALSE; /*! `-cNw' and complete week is in month. */ Bool is_1month_mode = FALSE; /*! `-cNw' and only part of week is in month. */ Bool is_2month_mode = FALSE; /*! Reference to a date variable found in line. */ Bool is_2dvar = FALSE; /*! Reference to Easter Sundays date found in line. */ Bool is_2easter = FALSE; /*! `-cNw' and actual date modified. */ Bool adate_set = FALSE; /*! Remove highlighting sequences before searching PATTERN? */ Bool remove_hls_in_regex = FALSE; /* * The REGEX stuff; global variables that represent the "remembered" search PATTERN. */ # if HAVE_GNU_RE_COMPILE_PATTERN struct re_pattern_buffer regpattern; char *gnu_fastmap_table = (char *) NULL; unsigned char *gnu_translate_table = (unsigned char *) NULL; # endif # if HAVE_POSIX_REGCOMP regex_t regpattern; # endif # if HAVE_RE_COMP int re_pattern = 0; # endif /* * static variables definitions. */ /*! Table of resource/include file buffers. */ static File_struct **rc_files_table = (File_struct **) NULL; /*! Actual size of `rc_files_table[]'. */ static Uint rc_files_max = RC_FILES_MAX; /*! Amount of resource file buffers. */ static int rc_files = 0; /*! Number of characters in `line_buffer'. */ static int line_length = 0; /*! An include statement is found in file. */ static Bool is_include = FALSE; /*! A date variable statement is found in file. */ static Bool is_dvar = FALSE; /*! A text variable statement is found in file. */ static Bool is_tvar = FALSE; /*! File contains an invalid include file name? */ static Bool bad_sys_include = FALSE; /* * Function implementations. */ void rc_use () /*! Processes a standard/special resource file and displays the valid fixed dates found resp., the valid fixed dates of eternal holiday list. */ { register int wd = weekday_of_date (act_day, act_month, act_year); register int ed; register int i; register int j; register int tmp_month = month; register int tmp_fiscal_month = fiscal_month; register int tmp_start_day = start_day; register int tmp_ad = act_day; register int tmp_am = act_month; register int tmp_ay = act_year; register int tindex = 0; auto char *ptr_char; # if HAVE_ASSERT_H static Bool is_table_range_checked = FALSE; # endif static Bool tables_initialized = FALSE; /* Initialize some important module global variables. */ len_fil_wt = rc_elems = rc_files = 0; len_the_text = (int) maxlen_max; # if HAVE_ASSERT_H /* Check if the value for the maximum number of table entries fits to the positive range of a signed int (INT_MAX/SHRT_MAX)! */ if (!is_table_range_checked) { assert (rc_elems_max > 0); assert (rc_elems_max <= testval); assert (rc_files_max > 0); assert (rc_files_max <= testval); assert (len_the_text > 0); assert (len_the_text <= testval); is_table_range_checked = TRUE; } # endif if (!tables_initialized) { /* Initialize the biorhythms phase texts consisting of 3 characters each. */ /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "Emotional". */ rc_bio_emo_lit = _("Emo"); /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "Intellectual". */ rc_bio_int_lit = _("Int"); /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "Physical". */ rc_bio_phy_lit = _("Phy"); /* Initial memory allocation for an element of the `Line_struct' record which is needed if we have to parse and evaluate a line. */ lptrs = (Line_struct *) my_malloc (sizeof (Line_struct), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "lptrs", 0); /* Initial memory allocation for an element of the `Line_struct' record which is needed if we have to evaluate %?... special texts. */ lptrs2 = (Line_struct *) my_malloc (sizeof (Line_struct), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "lptrs2", 0); /* Initial memory allocation for `rc_files_table[]'. */ rc_files_table = (File_struct **) my_malloc (RC_FILES_MAX * sizeof (File_struct *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_files_table[RC_FILES_MAX]", RC_FILES_MAX); /* Initial memory allocation for `rc_elems_table[]'. */ rc_elems_table = (char **) my_malloc (RC_ELEMS_MAX * sizeof (char *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_elems_table[RC_ELEMS_MAX]", RC_ELEMS_MAX); /* Initial memory allocation for `the_text'. */ the_text = (char *) my_malloc (len_the_text, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "the_text", 0); /* The REGEX stuff in case `--filter-text=PATTERN' is given. */ if (rc_filter_text != (char *) NULL) { /* Compile `rc_filter_text' PATTERN. */ # if !HAVE_GNU_RE_COMPILE_PATTERN if (rc_ignore_case_flag) { /* Set PATTERN to lower-case letters if we have to ignore case distinctions. */ ptr_char = rc_filter_text; for (; *ptr_char; ptr_char++) *ptr_char = (char) tolower (*ptr_char); } # else /* HAVE_GNU_RE_COMPILE_PATTERN */ /* Compute the GNU Regex table size. */ # ifndef CHAR_BIT auto Uchar bit; for (i = 0, bit = 2; bit; bit <<= 1, i++) ; /* Void, nothing to do here! */ # else /* CHAR_BIT */ i = CHAR_BIT - 1; # endif /* CHAR_BIT */ j = ((1 << i) - 1) + (1 << i); /* Initial memory allocation of GNU Regex fastmap table. */ gnu_fastmap_table = (char *) my_malloc (j + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "gnu_fastmap_table", 0); /* Initial memory allocation and initialization of GNU Regex translate table. */ gnu_translate_table = (unsigned char *) my_malloc (j + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "gnu_translate_table", 0); if (rc_ignore_case_flag) /* Set PATTERN to lower-case letters if we have to ignore case distinctions. */ for (i = 0; i <= j; i++) gnu_translate_table[i] = (unsigned char) tolower (i); else for (i = 0; i <= j; i++) gnu_translate_table[i] = (unsigned char) i; (void) re_set_syntax ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS) & ~(RE_DOT_NOT_NULL)); regpattern.fastmap = gnu_fastmap_table; regpattern.translate = gnu_translate_table; if (re_compile_pattern (rc_filter_text, (int) strlen (rc_filter_text), ®pattern) != (char *) NULL) my_error (ERR_INVALID_REGEX_PATTERN, "", 0L, rc_filter_text, 0); # endif /* HAVE_GNU_RE_COMPILE_PATTERN */ # if HAVE_POSIX_REGCOMP if (regcomp (®pattern, rc_filter_text, REGCOMP_FLAG)) my_error (ERR_INVALID_REGEX_PATTERN, "", 0L, rc_filter_text, 0); # endif # if HAVE_RE_COMP if (re_comp (rc_filter_text) != (char *) NULL) my_error (ERR_INVALID_REGEX_PATTERN, "", 0L, rc_filter_text, 0); re_pattern = 1; # endif /* Is it necessary to remove highlighting sequences in each text before searching the PATTERN? */ remove_hls_in_regex = highlight_flag; } tables_initialized = TRUE; } /* Depending on fixed date mode, compute last valid day `ed' a fixed date may occur. */ ed = day = day_of_year (act_day, act_month, act_year); if (is_date_given) { /* NOT in simple month/year mode (an explicit date is given in the command line): Compute the starting/ending loop values of the requested period. */ ed = DAY_LAST + is_leap_year + 1; if (!month) day = DAY_MIN; else { day = day_of_year (DAY_MIN, month, year); if (month < MONTH_MAX) ed = day_of_year (DAY_MIN, month + 1, year); } /* Then clean all flags which are related to the fixed date period. */ rc_clean_flags (); if (date_enables_year) rc_year_flag = TRUE; } else { auto int dd; auto int mm; auto int yy = act_year; auto int greg_missing_days = (greg->last_day - greg->first_day + 1); auto Bool greg_correction = FALSE; auto Bool swap_flag = FALSE; if (rc_tomorrow_flag) { /* `-ct' option found. */ rc_period_list = FALSE; ed += 2; if ((act_year == greg->year) && (act_month == greg->month) && (act_day == greg->first_day - 1)) ed += greg_missing_days; } else if (rc_week_flag) { /* `-cw[+|-]' option found. */ rc_period_list = FALSE; if (!rc_forwards_flag && !rc_backwards_flag) day += (-DAY_MAX + SDAY (DAY_MAX - wd + 1, start_day)); else if (rc_forwards_flag) day += !rc_have_today_in_list; else day += rc_have_today_in_list; if (rc_backwards_flag || (!rc_forwards_flag && !rc_backwards_flag && (start_day > wd))) { swap_flag = TRUE; ed -= DAY_MAX; } ed += SDAY (DAY_MAX - wd + 1, start_day); if (act_year == greg->year) greg_correction = TRUE; } else if (rc_month_flag) { /* `-cm[+|-]' option found. */ rc_period_list = FALSE; if (!rc_forwards_flag && !rc_backwards_flag) day = day_of_year (DAY_MIN, act_month, act_year); else if (rc_forwards_flag) day += !rc_have_today_in_list; else day += rc_have_today_in_list; if (rc_backwards_flag) ed = day_of_year (DAY_MIN, act_month, act_year); else { if (act_month < MONTH_MAX) ed = day_of_year (DAY_MIN, act_month + 1, act_year); else ed = DAY_LAST + is_leap_year + 1; } } else if (rc_year_flag) { /* `-cy[+|-]' option found. */ rc_period_list = FALSE; if (!rc_forwards_flag && !rc_backwards_flag) day = DAY_MIN; else if (rc_forwards_flag) day += !rc_have_today_in_list; else day += rc_have_today_in_list; if (rc_backwards_flag) ed = DAY_MIN; else ed = DAY_LAST + is_leap_year + 1; } else if (rc_period_flag) { if (rc_week_year_flag) { /* `-cNw' option found */ if (iso_week_number) /* Those ISO-8601:1988 weeks starts on Monday. */ wd = start_day = DAY_MIN; /* Compute the day number of year the week starts at. */ j = day = weekno2doy (rc_period, act_year, iso_week_number, start_day); if (day != -WEEK_MAX) { if (rc_period_list) { /* `-cNw' option found. */ if (day > ed) { if (day <= DAY_LAST + is_leap_year) { rc_forwards_flag = TRUE; day = ed + 1 - rc_have_today_in_list; ed = j + DAY_MAX; /* Correction in case week occurs during Gregorian Reformation period. */ if (act_year == greg->year) { (void) doy2date (j, is_leap_year, &dd, &mm); for (i = j; i < ed; i++) if (!next_date (&dd, &mm, &yy)) { ed += greg_missing_days; break; } } if (ed > DAY_LAST + is_leap_year + 1) ed = DAY_LAST + is_leap_year + 1; } else /* No fixed date messages to display. */ day = ed; } else { if (ed > DAY_MIN) { rc_backwards_flag = TRUE; day = ed + rc_have_today_in_list; ed = j; if (ed < DAY_MIN) ed = DAY_MIN; } else /* No fixed date messages to display. */ day = ed; } } else { /* `-cNw' option found: Set actual date to Mondays date of week and omit highlighting that date; boolean `adate_set' is set to distinct this SPECIAL mode from other modes... */ rc_week_flag = TRUE; ed = day + DAY_MAX; /* Correction in case week occurs during Gregorian Reformation period. */ if (act_year == greg->year) { (void) doy2date (day, is_leap_year, &dd, &mm); for (i = day; i < ed; i++) if (!next_date (&dd, &mm, &yy)) { ed += greg_missing_days; break; } } if (day < DAY_MIN) { act_year--; j += (DAY_LAST + (days_of_february (act_year) == 29)); } else j = day; (void) doy2date (j, is_leap_year, &act_day, &act_month); month = act_month; fiscal_month = MONTH_MIN; adate_set = TRUE; } } else /* Wanted week doesn't exist: Don't display any fixed date messages. */ day = ed; } else /* `-cNd', `-cMMDD', `-cMMWW[W]N', `-c*d|wN[WW[W]' and `-c@e|t|DVAR[[-]N] options are implicitly managed in this subsection, too. */ if (rc_forwards_flag && (day < DAY_LAST + is_leap_year)) { if (rc_period_list) { /* `-clN+' option found (list of dates). */ day += !rc_have_today_in_list; /* Correction in case date occurs during Gregorian Reformation period. */ if (rc_fwdf_buffer && (act_year == greg->year) && (ed < day_of_year (greg->first_day, greg->month, greg->year)) && (ed + rc_period >= day_of_year (greg->first_day, greg->month, greg->year))) ed += greg_missing_days; ed += (rc_period + 1); if (ed > DAY_LAST + is_leap_year + 1) ed = DAY_LAST + is_leap_year + 1; } else { /* `-cN+ option found (single date). */ rc_forwards_flag = FALSE; /* Correction in case date occurs during Gregorian Reformation period. */ if (rc_fwdf_buffer && (act_year == greg->year) && (day < day_of_year (greg->first_day, greg->month, greg->year)) && (day + rc_period >= day_of_year (greg->first_day, greg->month, greg->year))) day += greg_missing_days; day += rc_period; ed = day; if (day < DAY_LAST + is_leap_year + 1) { rc_period_flag = FALSE; (void) doy2date (day, is_leap_year, &act_day, &act_month); month = act_month; ed++; } } } else if (rc_backwards_flag && (day > DAY_MIN)) { if (rc_period_list) { /* `-clN-' option found (list of dates). */ day += rc_have_today_in_list; /* Correction in case date occurs during Gregorian Reformation period. */ if (rc_bwdf_buffer && (act_year == greg->year) && (ed > day_of_year (greg->last_day, greg->month, greg->year)) && (ed - rc_period <= day_of_year (greg->last_day, greg->month, greg->year))) ed -= greg_missing_days; ed -= rc_period; if (ed < DAY_MIN) ed = DAY_MIN; } else { /* `-cN-' option found (single date). */ rc_backwards_flag = FALSE; /* Correction in case date occurs during Gregorian Reformation period. */ if (rc_bwdf_buffer && (act_year == greg->year) && (day > day_of_year (greg->last_day, greg->month, greg->year)) && (day - rc_period <= day_of_year (greg->last_day, greg->month, greg->year))) day -= greg_missing_days; day -= rc_period; ed = day; if (day > 0) { rc_period_flag = FALSE; (void) doy2date (day, is_leap_year, &act_day, &act_month); month = act_month; ed++; } } } } else { /* Only a simple option `-c' (without any modifiers) found. */ rc_period_list = FALSE; ed++; } /* Swap the starting date `day' and final date `ed' of the period. */ if (swap_flag || rc_backwards_flag) { int tmp = ed; ed = day; day = tmp; } /* Correction in case date occurs during Gregorian Reformation period. */ if (greg_correction) { (void) doy2date (day, is_leap_year, &dd, &mm); if (!prev_date (&dd, &mm, &yy)) day -= greg_missing_days; else { if (!rc_forwards_flag && !rc_backwards_flag) { (void) doy2date (day, is_leap_year, &dd, &mm); if (weekday_of_date (dd, mm, yy) != start_day) day -= greg_missing_days; else for (i = day; i < ed; i++) if (!next_date (&dd, &mm, &yy)) { ed += greg_missing_days; break; } } else { auto Bool ed_set = FALSE; for (i = day; i < ed; i++) if (!next_date (&dd, &mm, &yy)) { ed += greg_missing_days; ed_set = TRUE; break; } if (rc_backwards_flag && ed_set) { (void) doy2date (day, is_leap_year, &dd, &mm); if (weekday_of_date (dd, mm, yy) != start_day) { day -= greg_missing_days; ed -= greg_missing_days; } } } } } } if (day != ed) { auto double save_time_offset = time_offset; register int save_hour_offset = time_hour_offset; register int save_min_offset = time_min_offset; register int save_loop_end = loop_end; auto char *tmp_rc_here_fn; auto Bool cycle_increment = TRUE; auto Bool is_here_file; auto Bool ok; /* Now include the eternal holidays, which are valid fixed dates, into `rc_elems_table[]'. */ if (rc_enable_hda_flag || rc_enable_hdl_flag) { while ((hd_table[tindex] != (char *) NULL) && (tindex < HD_ELEMS_MAX)) { strcpy (line_buffer, hd_table[tindex]); i = LEN_HD_NAME + len_year_max + 4 + 2; if (rc_enable_hda_flag || (rc_enable_hdl_flag && (line_buffer[i] != *DIS_HLS_PREF) && (line_buffer[i] != *DIS_HLS_PREF2))) { i -= 2; while (i && isspace (line_buffer[i])) line_buffer[i--] = '\0'; if (i > len_year_max + 4) rc_check (line_buffer, _("`Eternal holiday list'"), (long) tindex, i, &rc_elems, day, ed, wd); } if (!holiday_flag) { free (hd_table[tindex]); hd_table[tindex] = (char *) NULL; } tindex++; } /* If the fixed date mode is related to a week or to tomorrow and the period has left the current year, include those eternal holidays in year +/- 1 into `rc_elems_table', which are valid fixed dates. */ if ((rc_tomorrow_flag || rc_week_flag) && !is_date_given && !is_1month_mode && !is_2month_mode && ((!rc_forwards_flag && !rc_backwards_flag && (((year + 1 <= YEAR_MAX) && (ed > DAY_LAST + is_leap_year + 1)) || ((year - 1 >= YEAR_MIN) && (day < DAY_MIN)))) || (rc_forwards_flag && ((year + 1 <= YEAR_MAX) && (ed > DAY_LAST + is_leap_year + 1))) || (rc_backwards_flag && ((year - 1 >= YEAR_MIN) && (day < DAY_MIN))))) { register int jtmp_ad = act_day; register int tay = act_year; register int tam = act_month; register int tad = act_day; if (holiday_flag) for (i = 0; i < tindex; i++) { free (hd_table[i]); hd_table[i] = (char *) NULL; } tindex = 0; if (day < DAY_MIN) { year--; month = MONTH_MAX; } else { year++; month = MONTH_MIN; } is_leap_year = (days_of_february (year) == 29); if (cal_special_flag) act_day = day_of_year (jtmp_ad, act_month, act_year); if (adate_set) fiscal_month = tmp_fiscal_month; if (((year == EASTER_MIN - 1) && (fiscal_month > MONTH_MIN)) || ((year >= EASTER_MIN) && (year <= EASTER_MAX))) print_all_holidays (TRUE, TRUE); if (adate_set) fiscal_month = MONTH_MIN; if (day < DAY_MIN) { year++; month = MONTH_MIN; } else { year--; month = MONTH_MAX; } while ((hd_table[tindex] != (char *) NULL) && (tindex < HD_ELEMS_MAX)) { strcpy (line_buffer, hd_table[tindex]); i = LEN_HD_NAME + len_year_max + 4 + 2; if (rc_enable_hda_flag || (rc_enable_hdl_flag && (line_buffer[i] == *DIS_HLS_PREF) && (line_buffer[i] == *DIS_HLS_PREF2))) { i -= 2; while (i && isspace (line_buffer[i])) line_buffer[i--] = '\0'; if (i > len_year_max + 4) rc_check (line_buffer, _("`Eternal holiday list'"), (long) tindex, i, &rc_elems, day, ed, wd); } free (hd_table[tindex]); hd_table[tindex] = (char *) NULL; tindex++; } is_leap_year = (days_of_february (year) == 29); if (adate_set) { fiscal_month = tmp_fiscal_month; act_year = tmp_ay; act_month = tmp_am; jtmp_ad = act_day = tmp_ad; } if (cal_special_flag) act_day = day_of_year (jtmp_ad, act_month, act_year); if (holiday_flag && (((year == EASTER_MIN - 1) && (fiscal_month > MONTH_MIN)) || ((year >= EASTER_MIN) && (year <= EASTER_MAX)))) print_all_holidays (TRUE, TRUE); if (cal_special_flag) act_day = jtmp_ad; if (adate_set) { fiscal_month = MONTH_MIN; act_year = tay; month = act_month = tam; act_day = tad; } else month = tmp_month; } } /* Try to open the resource file(s). */ if (rc_filename == (char *) NULL) { /* Use the standard resource file. */ i = (int) strlen (PACKAGE_NAME) + strlen (RC_SUFFIX); # ifdef GCAL_SHELL i++; # endif if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); # ifdef GCAL_SHELL strcpy (s3, "."); # else /* !GCAL_SHELL */ *s3 = '\0'; # endif /* !GCAL_SHELL */ strcat (s3, PACKAGE_NAME); strcat (s3, RC_SUFFIX); } else { /* Use the list of resource file names. */ i = (int) strlen (rc_filename); if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s3, rc_filename); } /* Allocate the file buffers for the main resource file itself (the main resource file is always buffered at position 0 in `rc_files_table[]'). */ rc_files_table[rc_files] = (File_struct *) my_malloc (sizeof (File_struct), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_files_table[rc_files]", rc_files); rc_files_table[rc_files]->fp = (FILE *) NULL; rc_files_table[rc_files]->pool = (char *) my_malloc (BUF_LEN + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_files_table[rc_files]->pool", rc_files); if (loop_end != SPECIAL_VALUE) { /* Set the cycle-starting time value for %sun* and %moon*. */ tindex = HHMM2MM (time_hour_offset, time_min_offset); /* Reduce the given cycle-starting time value in minutes to a single day. */ if (tindex < 0) tindex = 0; else if (tindex >= MINS_PER_DAY) tindex = MINS_PER_DAY - 1; if (tindex > loop_end) cycle_increment = FALSE; time_hour_offset = MM2HH (tindex); time_min_offset = tindex % MINS_PER_HOUR; time_offset = MM2DAY (tindex); } else tindex = 0; do { tmp_rc_here_fn = rc_here_fn; ok = is_here_file = FALSE; while (!ok) { /* Single file or list of resource file names given in the command line. */ while (rc_files_table[rc_files]->fp == (FILE *) NULL) { i = 0; ptr_char = s3; LOOP { if (*ptr_char == QUOTE_CHAR) { if (*(ptr_char + 1) == *CONNECT_SEP || *(ptr_char + 1) == QUOTE_CHAR) ptr_char++; s7[i++] = *ptr_char++; } else if (*ptr_char != *CONNECT_SEP) s7[i++] = *ptr_char++; if (!*ptr_char || *ptr_char == *CONNECT_SEP) break; } s7[i] = '\0'; /* Now check if the file exists. */ rc_files_table[rc_files]->filename = (char *) my_malloc (i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "rc_files_table[rc_files]->filename", rc_files); strcpy (rc_files_table[rc_files]->filename, s7); rc_files_table[rc_files]->fp = file_open (&rc_files_table[rc_files]->filename, rc_files, (is_here_file) ? HEre : REsource, &bad_sys_include); if (!*ptr_char) { /* Finished, THE file respectively ALL files are managed so check whether any `--here=ARG' options must be processed at last coming from the temporary file already created. */ if (tmp_rc_here_fn != (char *) NULL) { /* Use the temporary "here" filename for processing next. */ i = (int) strlen (tmp_rc_here_fn); if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s3, tmp_rc_here_fn); tmp_rc_here_fn = (char *) NULL; is_here_file = !ok; /* Nomen est Omen??? :-) */ } else ok = TRUE; break; } else { /* Now skip a trailing '+' character of a file name list. */ ptr_char++; /* Copy the rest of the file name list and start the file search again if the file was not found. */ strcpy (s7, ptr_char); strcpy (s3, s7); if (rc_files_table[rc_files]->fp == (FILE *) NULL) free (rc_files_table[rc_files]->filename); } } /* Now read and check contents of a resource file `filename' and include valid fixed dates into `rc_elems_table[]'. */ if (rc_files_table[rc_files]->fp != (FILE *) NULL) { rc_files_table[rc_files]->in_pool = 0; rc_files_table[rc_files]->line_number = 0L; /* First of all, copy the contents of the global date variables to the local variables (if one of these isn't defined) so we can perform local operations (++, --, +=, -=) on global variables. */ for (i = 0; i < RC_DVAR_MAX; i++) if (rc_dvar[i].dvar_global.dvar_month && !rc_dvar[i].dvar_local.dvar_month) { rc_dvar[i].dvar_local.dvar_month = rc_dvar[i].dvar_global.dvar_month; rc_dvar[i].dvar_local.dvar_day = rc_dvar[i].dvar_global.dvar_day; } /* Then copy the contents of the global text variables to the local variables (if one of these isn't defined) so we can perform local operations (++, --, +=, -=) on global variables. */ for (i = 0; i < RC_TVAR_MAX; i++) if ((rc_tvar[i].tvar_global.tvar_text != (char *) NULL) && (rc_tvar[i].tvar_local.tvar_text == (char *) NULL)) { rc_tvar[i].tvar_local.tvar_text = (char *) my_malloc (strlen (rc_tvar[i].tvar_global.tvar_text) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_tvar[i].tvar_local.tvar_text", i); strcpy (rc_tvar[i].tvar_local.tvar_text, rc_tvar[i].tvar_global.tvar_text); } while ((rc_files_table[rc_files]->ptr_pool = file_read_line (rc_files_table[rc_files]->fp, &line_buffer, &rc_files_table[rc_files]->in_pool, rc_files_table[rc_files]->pool, rc_files_table[rc_files]->ptr_pool, rc_files_table[rc_files]->filename, &rc_files_table[rc_files]-> line_number, &line_length, REsource, &is_include, &is_dvar, &is_tvar)) != (char *) NULL) { /* Check whether an "#include" statement is found. */ if (is_include) /* We have to manage an include file. */ try_to_include_file (ed, wd); else /* We are still in the main resource file. */ if (*line_buffer && !is_dvar && !is_tvar) rc_check (line_buffer, rc_files_table[rc_files]->filename, rc_files_table[rc_files]->line_number, line_length, &rc_elems, day, ed, wd); } if (rc_files_table[rc_files]->fp != stdin) (void) fclose (rc_files_table[rc_files]->fp); rc_files_table[rc_files]->fp = (FILE *) NULL; free (rc_files_table[rc_files]->filename); /* Next file -> reset all local date variables to zero, if `--export-date-variables' flag set, don't reset them! */ if (!rc_export_ldvar_flag) for (i = 0; i < RC_DVAR_MAX; i++) rc_dvar[i].dvar_local.dvar_month = (char) 0; /* Next file -> reset all local text variables to NULL, if `--export-text-variables' flag set, don't reset them! */ if (!rc_export_ltvar_flag) for (i = 0; i < RC_TVAR_MAX; i++) if (rc_tvar[i].tvar_local.tvar_text != (char *) NULL) { free (rc_tvar[i].tvar_local.tvar_text); rc_tvar[i].tvar_local.tvar_text = (char *) NULL; } } else /* Yeah, we have not found any main resource file so it's absolutely necessary to free the allocated memory area of the "file name", because it's possible that we enter this function again, e.g. if we produce month/year lists or ranges. */ free (rc_files_table[rc_files]->filename); } if (loop_end != SPECIAL_VALUE) { /* Increase/decrease the cycle-time counter properly and set a ``new'' time value for the %sun* and %moon* special texts. */ if (cycle_increment) tindex += loop_step; else tindex -= loop_step; time_hour_offset = MM2HH (tindex); time_min_offset = tindex % MINS_PER_HOUR; time_offset = MM2DAY (tindex); } } while ((cycle_increment && (tindex <= loop_end)) || (!cycle_increment && (tindex >= loop_end))); time_hour_offset = save_hour_offset; time_min_offset = save_min_offset; time_offset = save_time_offset; loop_end = save_loop_end; free (rc_files_table[rc_files]->pool); for (i = 0; i < RC_TVAR_MAX; i++) if (rc_tvar[i].tvar_local.tvar_text != (char *) NULL) { free (rc_tvar[i].tvar_local.tvar_text); rc_tvar[i].tvar_local.tvar_text = (char *) NULL; } free (rc_files_table[rc_files]); fiscal_month = tmp_fiscal_month; /* Now display the constructed contents of `rc_elems_table[]'. */ if (rc_elems || rc_all_dates_flag || rc_zero_dates_flag) display_table (tmp_ad, tmp_am, tmp_ay, day, ed, wd); } start_day = tmp_start_day; month = tmp_month; act_day = tmp_ad; act_month = tmp_am; act_year = tmp_ay; } static void try_to_include_file (ed, wd) int ed; int wd; /*! Manages an include file. */ { register int i; register int j; auto Bool is_usr_file = FALSE; auto Bool is_sys_file = FALSE; i = (int) strlen (line_buffer); if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s7, line_buffer); i = (int) strlen (RC_INCL_STMENT); if (strncasecmp (s7, RC_INCL_STMENT, i)) /* Error, misspelled "#include" directive found. */ my_error (ERR_MALFORMED_INCLUDE, rc_files_table[rc_files]->filename, rc_files_table[rc_files]->line_number, line_buffer, 0); /* Skip any leading whitespace characters of the line. */ while (isspace (s7[i])) i++; if (!s7[i] || s7[i] == '\n') /* Error, no include file "argument" encoded. */ my_error (ERR_MALFORMED_INCLUDE, rc_files_table[rc_files]->filename, rc_files_table[rc_files]->line_number, line_buffer, 0); if (s7[i] == *RC_INCL_USR_ID) is_usr_file = TRUE; else if (s7[i] == *RC_INCL_SYS_ID) is_sys_file = TRUE; else /* Error, illegal leading include file name delimiter found. */ my_error (ERR_MALFORMED_INCLUDE, rc_files_table[rc_files]->filename, rc_files_table[rc_files]->line_number, line_buffer, 0); i++; j = 0; /* Get the include file name. */ while (s7[i] && (s7[i] != *RC_INCL_USR_OD) && (s7[i] != *RC_INCL_SYS_OD)) s7[j++] = s7[i++]; if ((is_usr_file && (s7[i] != *RC_INCL_USR_OD)) || (is_sys_file && (s7[i] != *RC_INCL_SYS_OD))) /* Error, illegal trailing include file name delimiter found. */ my_error (ERR_MALFORMED_INCLUDE, rc_files_table[rc_files]->filename, rc_files_table[rc_files]->line_number, line_buffer, 0); if (!j) /* Error, no include file "name" encoded. */ my_error (ERR_MALFORMED_INCLUDE, rc_files_table[rc_files]->filename, rc_files_table[rc_files]->line_number, line_buffer, 0); /* Now we have the name of include file and the mode of operation. */ s7[j] = '\0'; /* Before we have to manage this next include file, let's check for recursive/cyclic includes, which we MUST avoid! */ for (i = 0; i <= rc_files; i++) { /* Check if any file buffered in `rc_files_table[]' is just included by this file. */ if (*s7 == *rc_files_table[i]->filename) if (!strcmp (s7 + 1, rc_files_table[i]->filename + 1)) /* Error, invalid recursive/cyclic include statement found. */ my_error (ERR_CYCLIC_INCLUDE, rc_files_table[rc_files]->filename, rc_files_table[rc_files]->line_number, line_buffer, 0); } /* First or next include file, so we increment the counter of buffered files in `rc_files_table[]' by one first before we check the table size, because `rc_files' wasn't just postincremented */ rc_files++; /* Now check if it's necessary to resize the `rc_files_table[]'. */ if ((Uint) rc_files >= rc_files_max) { /* Resize the `rc_files_table[]' table. */ rc_files_max <<= 1; if (rc_elems_max * sizeof (File_struct *) > testval) rc_files_max--; rc_files_table = (File_struct **) my_realloc ((VOID_PTR) rc_files_table, rc_files_max * sizeof (File_struct *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rc_files_table[rc_files_max]", rc_files_max); } /* Allocate the file buffers for an include file. */ rc_files_table[rc_files] = (File_struct *) my_malloc (sizeof (File_struct), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_files_table[rc_files]", rc_files); rc_files_table[rc_files]->filename = (char *) my_malloc (j + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_files_table[rc_files]->filename", rc_files); strcpy (rc_files_table[rc_files]->filename, s7); /* Try to open it. */ rc_files_table[rc_files]->fp = file_open (&rc_files_table[rc_files]->filename, rc_files, (is_usr_file) ? USr_include : SYs_include, &bad_sys_include); if (bad_sys_include) /* Error, invalid root directory based system include file name found in the include statement, e.g.: #include or #include . */ my_error (ERR_MALFORMED_INCLUDE, rc_files_table[rc_files - 1]->filename, rc_files_table[rc_files - 1]->line_number, line_buffer, 0); /* If include file exists, read it. */ if (rc_files_table[rc_files]->fp != (FILE *) NULL) { rc_files_table[rc_files]->in_pool = 0; rc_files_table[rc_files]->line_number = 0L; rc_files_table[rc_files]->pool = (char *) my_malloc (BUF_LEN + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_files_table[rc_files]->pool", rc_files); /* Buffer all local date variables of the include file. */ for (i = 0; i < RC_DVAR_MAX; i++) { rc_files_table[rc_files]->local_dvars[i].dvar_month = rc_dvar[i].dvar_local.dvar_month; rc_files_table[rc_files]->local_dvars[i].dvar_day = rc_dvar[i].dvar_local.dvar_day; } /* Buffer all local text variables of the include file. */ for (i = 0; i < RC_TVAR_MAX; i++) { if (rc_tvar[i].tvar_local.tvar_text != (char *) NULL) { rc_files_table[rc_files]->local_tvars[i].tvar_text = (char *) my_malloc (strlen (rc_tvar[i].tvar_local.tvar_text) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_tvar[i].tvar_local.tvar_text", i); strcpy (rc_files_table[rc_files]->local_tvars[i].tvar_text, rc_tvar[i].tvar_local.tvar_text); } else rc_files_table[rc_files]->local_tvars[i].tvar_text = (char *) NULL; } while ((rc_files_table[rc_files]->ptr_pool = file_read_line (rc_files_table[rc_files]->fp, &line_buffer, &rc_files_table[rc_files]->in_pool, rc_files_table[rc_files]->pool, rc_files_table[rc_files]->ptr_pool, rc_files_table[rc_files]->filename, &rc_files_table[rc_files]->line_number, &line_length, REsource, &is_include, &is_dvar, &is_tvar)) != (char *) NULL) /* Check whether an "#include" statement is found. */ if (is_include) /* Ok, let's manage a next include file by calling this function recursively. */ try_to_include_file (ed, wd); else /* We are still in the actual include file. */ if (*line_buffer && !is_dvar && !is_tvar) rc_check (line_buffer, rc_files_table[rc_files]->filename, rc_files_table[rc_files]->line_number, line_length, &rc_elems, day, ed, wd); (void) fclose (rc_files_table[rc_files]->fp); free (rc_files_table[rc_files]->pool); /* Restore all local date variables of the include file. */ for (i = 0; i < RC_DVAR_MAX; i++) { rc_dvar[i].dvar_local.dvar_month = rc_files_table[rc_files]->local_dvars[i].dvar_month; rc_dvar[i].dvar_local.dvar_day = rc_files_table[rc_files]->local_dvars[i].dvar_day; } /* Restore all local text variables of the include file. */ for (i = 0; i < RC_TVAR_MAX; i++) if (rc_files_table[rc_files]->local_tvars[i].tvar_text != (char *) NULL) { if (rc_tvar[i].tvar_local.tvar_text == (char *) NULL) rc_tvar[i].tvar_local.tvar_text = (char *) my_malloc (strlen (rc_files_table[rc_files]->local_tvars[i]. tvar_text) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_tvar[i].tvar_local.tvar_text", i); else rc_tvar[i].tvar_local.tvar_text = (char *) my_realloc ((VOID_PTR) (rc_tvar[i].tvar_local.tvar_text), strlen (rc_files_table[rc_files]->local_tvars[i]. tvar_text) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rc_tvar[i].tvar_local.tvar_text", i); strcpy (rc_tvar[i].tvar_local.tvar_text, rc_files_table[rc_files]->local_tvars[i].tvar_text); free (rc_files_table[rc_files]->local_tvars[i].tvar_text); rc_files_table[rc_files]->local_tvars[i].tvar_text = (char *) NULL; } } /* Now deallocate the include file buffers. */ free (rc_files_table[rc_files]->filename); free (rc_files_table[rc_files]); /* And back to the previous include file resp., main resource file. */ rc_files--; } static void display_table (tmp_ad, tmp_am, tmp_ay, day, ed, wd) const int tmp_ad; const int tmp_am; const int tmp_ay; int day; int ed; int wd; /*! Displays all entries in `rc_elems_table[]' in sorted order. */ { register int n; register int i; register int j = 0; register int tindex = 0; auto int ld = 0; auto int lm = 0; auto int ly = 0; auto int dd = 0; auto int mm = 0; auto int yy = 0; auto int i_dummy; auto char c_dummy; auto Bool b_dummy; auto Bool ok; rc_zero_pos = rc_elems; /* If `rc_all_dates_flag' or `rc_zero_dates_flag' is set, complete the contents of `rc_elems_table[]', i.e., generate "empty" texts for each day in the requested period. */ if (rc_all_dates_flag || rc_zero_dates_flag) { register int rc_e = rc_zero_pos; /* Lets sort ascending first only in case `rc_elems_table[]' isn't presorted! */ if ((rc_elems > 1) && !is_presorted (rc_elems_table, rc_elems)) qsort ((VOID_PTR) rc_elems_table, rc_elems, sizeof *rc_elems_table, (Cmp_func) asc_sort); if (rc_elems) (void) rc_get_date (rc_elems_table[j], lineptrs, FALSE, &b_dummy, &ld, &lm, &ly, &i_dummy, &i_dummy, &c_dummy, &i_dummy, &i_dummy, _("Internal"), (long) j, rc_elems_table[j], TRUE); /* Correction for the respected period if we are in fiscal year mode. */ if ((fiscal_month > MONTH_MIN) && !adate_set) { day = mvec[fiscal_month - 1] + 1; if (fiscal_month > 2) day += is_leap_year; } /* Let's produce the dummy entries ("empty" fixed dates)... */ for (i = day; i < ed; i++) { yy = year; ok = doy2date (i, is_leap_year, &dd, &mm); if (!ok) { if (rc_tomorrow_flag || rc_week_flag) { if (i < DAY_MIN) { yy = year - 1; if (yy < YEAR_MIN) break; n = (days_of_february (yy) == 29); (void) doy2date (DAY_LAST + n + i, n, &dd, &mm); } else if (i > DAY_LAST + is_leap_year) { yy = year + 1; if (yy > YEAR_MAX) break; n = (days_of_february (yy) == 29); (void) doy2date (i - (DAY_LAST + is_leap_year), n, &dd, &mm); } } else break; } if (j == rc_e || mm < lm || yy < ly || ((dd < ld) && (mm <= lm) && (yy <= ly))) { sprintf (line_buffer, "%0*d%02d%02d ", len_year_max, yy, mm, dd); rc_check (line_buffer, _("`Internal'"), (long) tindex, strlen (line_buffer), &rc_elems, day, ed, wd); } else while ((dd == ld) && (mm == lm) && (yy == ly)) if (j + 1 < rc_e) { j++; (void) rc_get_date (rc_elems_table[j], lineptrs, FALSE, &b_dummy, &ld, &lm, &ly, &i_dummy, &i_dummy, &c_dummy, &i_dummy, &i_dummy, _("Internal"), (long) j, rc_elems_table[j], TRUE); } else { j++; break; } } /* Respect fiscal year mode. */ if ((fiscal_month > MONTH_MIN) && (year < YEAR_MAX) && !adate_set) { /* Correction for the respected period. */ day = DAY_MIN; yy = year + 1; is_leap_year = (days_of_february (yy) == 29); if (fiscal_month < MONTH_MAX) ed = day_of_year (DAY_MIN, fiscal_month + 1, yy) + 1; else ed = DAY_LAST + is_leap_year + 1; /* Let's produce the dummy entries ("empty" fixed dates)... */ for (i = day; i < ed; i++) { ok = doy2date (i, is_leap_year, &dd, &mm); if (!ok) break; if (j == rc_e || mm < lm || yy < ly || ((dd < ld) && (mm <= lm) && (yy <= ly))) { sprintf (line_buffer, "%0*d%02d%02d ", len_year_max, yy, mm, dd); rc_check (line_buffer, _("`Internal'"), (long) tindex, strlen (line_buffer), &rc_elems, day, ed, wd); } else while ((dd == ld) && (mm == lm) && (yy == ly)) if (j + 1 < rc_e) { j++; (void) rc_get_date (rc_elems_table[j], lineptrs, FALSE, &b_dummy, &ld, &lm, &ly, &i_dummy, &i_dummy, &c_dummy, &i_dummy, &i_dummy, _("Internal"), (long) j, rc_elems_table[j], TRUE); } else { j++; break; } } } is_leap_year = (days_of_february (year) == 29); } if ((rc_zero_dates_flag && (rc_elems - rc_zero_pos)) || (!rc_zero_dates_flag && rc_elems)) { register int tstart; register int tend; register int skipped; register int len_rce = 0; register int len_line; register int len_fn_part; register int len_text_part; register int hls_len = 0; auto char *ptr_char; auto Bool same_date = FALSE; auto Bool ok2; /* At last, sort the fixed dates only if they are either not presorted or contain no resource file name reference, and not ONLY "empty" fixed dates shall be displayed. */ if (!rc_zero_dates_flag && (rc_elems > 1)) { if (rc_enable_fn_flag) { if (rc_sort_des_flag) qsort ((VOID_PTR) rc_elems_table, rc_elems, sizeof *rc_elems_table, (Cmp_func) fn_des_sort); else qsort ((VOID_PTR) rc_elems_table, rc_elems, sizeof *rc_elems_table, (Cmp_func) fn_asc_sort); } else if (!is_presorted (rc_elems_table, rc_elems)) { if (rc_sort_des_flag) qsort ((VOID_PTR) rc_elems_table, rc_elems, sizeof *rc_elems_table, (Cmp_func) des_sort); else qsort ((VOID_PTR) rc_elems_table, rc_elems, sizeof *rc_elems_table, (Cmp_func) asc_sort); } else if (rc_sort_des_flag) /* `rc_elems_table[]' is presorted and must be shown in descending sort order, rearrange its internal sort order from ascending to descending sort order. */ reverse_order (rc_elems_table, rc_elems); } d = tmp_ad; m = tmp_am; /* Copy `rc_grp_sep' [-c]g[] to text buffer variable `s3' for further use, which will be first evaluated for text variable references and some special texts. Thereafter, perform the '~'-TILDE or '^'-CARET expansion on the one hand. */ if (rc_grp_sep != (char *) NULL) { register int x1 = year; register int x2 = incr_year; register int x3 = decr_year; year = act_year; incr_year = decr_year = 0; insert_line_into_table (rc_grp_sep, _("`Internal'"), (long) SPECIAL_VALUE, &rc_elems, 1, 1); decr_year = x3; incr_year = x2; year = x1; i = (int) strlen (rc_elems_table[--rc_elems]); if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s3, rc_elems_table[rc_elems] + len_year_max + 5); free (rc_elems_table[rc_elems]); ptr_char = s3; if (*ptr_char) { /* A text for grouping is defined. */ i = 0; while (*ptr_char) { switch (*ptr_char) { case RC_NL_CHAR: case RC_NL2_CHAR: if (i) { /* RC_NL[2]_CHAR is single `\~' or `\^' quoted or double `\\~' or `\\^' quoted: Replace QUOTE_CHAR by RC_NL[2]_CHAR resp., replace last QUOTE_CHAR by RC_NL_CHAR. */ if (s3[i - 1] == QUOTE_CHAR) s3[i - 1] = *ptr_char; else /* RC_NL[2]_CHAR is not quoted '~' or '^': Insert a real `\n'-NEWLINE character. */ s3[i++] = '\n'; } else /* RC_NL[2]_CHAR is not quoted '~' or '^': Insert a real `\n'-NEWLINE character. */ s3[i++] = '\n'; break; case QUOTE_CHAR: ptr_char++; if (*ptr_char) { if (*ptr_char == RC_NL_CHAR || *ptr_char == RC_NL2_CHAR) s3[i++] = *ptr_char; else { s3[i++] = QUOTE_CHAR; s3[i++] = *ptr_char; } } else s3[i++] = QUOTE_CHAR; break; default: s3[i++] = *ptr_char; } ptr_char++; } s3[i] = '\0'; } } (*s1) = (*s6) = '\0'; /* Now display a leading NEWLINE character before the text/title. */ if (!rc_suppr_list_sep_flag) print_text (stdout, s1); /* Now display the leading title/heading text of the fixed date list, which will be first evaluated for text variable references and some special texts. Thereafter, perform the '~'-TILDE or '^'-CARET expansion on the one hand. */ if (rc_title_flag) { register int x1 = year; register int x2 = incr_year; register int x3 = decr_year; year = act_year; incr_year = decr_year = 0; insert_line_into_table (rc_heading_text, _("`Internal'"), (long) SPECIAL_VALUE, &rc_elems, 1, 1); decr_year = x3; incr_year = x2; year = x1; i = (int) strlen (rc_elems_table[--rc_elems]); if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s1, rc_elems_table[rc_elems] + len_year_max + 5); free (rc_elems_table[rc_elems]); ptr_char = s1; i = 0; while (*ptr_char) { switch (*ptr_char) { case RC_NL_CHAR: case RC_NL2_CHAR: if (i) { /* RC_NL[2]_CHAR is single `\~' or `\^' quoted or double `\\~' `\\^' quoted: Replace QUOTE_CHAR by RC_NL[2]_CHAR resp., replace last QUOTE_CHAR by RC_NL[2]_CHAR. */ if (s1[i - 1] == QUOTE_CHAR) s1[i - 1] = *ptr_char; else /* RC_NL[2]_CHAR is not quoted '~' or '^': Insert a real `\n'-NEWLINE character. */ s1[i++] = '\n'; } else /* RC_NL[2]_CHAR is not quoted '~' or '^': Insert a real `\n'-NEWLINE character. */ s1[i++] = '\n'; break; case QUOTE_CHAR: ptr_char++; if (*ptr_char) { if (*ptr_char == RC_NL_CHAR || *ptr_char == RC_NL2_CHAR) s1[i++] = *ptr_char; else { s1[i++] = QUOTE_CHAR; s1[i++] = *ptr_char; } } else s1[i++] = QUOTE_CHAR; break; default: s1[i++] = *ptr_char; } ptr_char++; } s1[i] = '\0'; print_text (stdout, s1); print_text (stdout, s1); } /* Detect the number of digits of `rc_elems'. */ sprintf (s2, "%d", (rc_zero_dates_flag) ? rc_elems - rc_zero_pos : rc_elems); len_rce = (int) strlen (s2); /* Initialize the variables which control the loop. */ skipped = tstart = 0; tend = rc_elems - 1; if (rc_zero_dates_flag) { if (rc_sort_des_flag) { tstart = rc_elems - 1; tend = rc_zero_pos; skipped = rc_elems + 1; } else skipped = tstart = rc_zero_pos; } /* Now initialize the loop counter. */ tindex = tstart; /* And display all fixed dates of `rc_elems_table[]'. */ LOOP { lineptrs = rc_get_date (rc_elems_table[tindex], lineptrs, FALSE, &b_dummy, &day, &lm, &ly, &i_dummy, &i_dummy, &c_dummy, &i_dummy, &i_dummy, _("Internal"), (long) tindex, rc_elems_table[tindex], TRUE); if ((tindex == tstart) && (rc_omit_date_flag || rc_alternative_format_flag || rc_grp_sep != (char *) NULL)) { dd = day; mm = lm; yy = ly; } /* Avoid displaying duplicate resource file entries by storing the actual entry into `s6' and comparing it with the previous entry in line. */ if (tindex == tstart || ((tindex != tstart) && strcmp (s6, rc_elems_table[tindex]))) { strcpy (s6, rc_elems_table[tindex]); /* Now display fixed date list group separator resp., detect if date of text differs from previous text. */ if (rc_omit_date_flag || rc_alternative_format_flag || rc_grp_sep != (char *) NULL) { if ((day == dd) && (lm == mm) && (ly == yy)) { /* Same date: Avoid displaying of group separator. */ if (tindex != tstart) same_date = TRUE; } else { /* Date differs. */ same_date = FALSE; dd = day; mm = lm; yy = ly; if (rc_grp_sep != (char *) NULL) { /* Display constructed group separator text `-cg[TEXT]'. */ strcpy (s2, s3); print_text (stdout, s2); } } } /* Construct the leading (partitially highlighted) "date"-part of the fixed date. */ if (rc_week_number_flag) { j = week_number (day, lm, ly, iso_week_number, start_day); /* We convert the computed week number to a week number text (this looks nicer in output). */ if (j < 0) /* Week starts in previous year and the first days of the actual year are not in its first week. */ sprintf (s7, "|%02d/0|", -j); else if (!j) /* Week starts in previous year and the first days of the actual year are in its first week. */ sprintf (s7, "|%s|", "53/1"); else /* Week starts in actual year. */ sprintf (s7, "|%02d|", j); if (!rc_alternative_format_flag) { if (strlen (s7) > 4) { if (rc_count_flag) sprintf (s1, "%0*d) %s ", len_rce, abs ((tindex - skipped) + 1), s7); else sprintf (s1, "%s ", s7); } else if (rc_count_flag) sprintf (s1, "%0*d) %s%*s ", len_rce, abs ((tindex - skipped) + 1), s7, len_fil_wt, ""); else sprintf (s1, "%s%*s ", s7, len_fil_wt, ""); } } else if (!rc_alternative_format_flag && rc_count_flag) sprintf (s1, "%0*d) ", len_rce, abs ((tindex - skipped) + 1)); wd = day; ld = day_of_year (day, lm, ly); if (!rc_both_dates_flag) { if (!rc_special_flag) ld = 0; else day = 0; } if (!rc_suppr_date_part_flag) { if ((ly == tmp_ay) && (lm == tmp_am) && (wd == tmp_ad)) hls_len = decode_date_format (date_format->df_format, &s1, day, lm, ly, ld, TRUE, FALSE, !rc_alternative_format_flag); else { if (hd_ldays[((lm - 1) * MONTH_LAST) + (wd - 1)]) hls_len = decode_date_format (date_format->df_format, &s1, day, lm, ly, ld, FALSE, TRUE, !rc_alternative_format_flag); else hls_len = decode_date_format (date_format->df_format, &s1, day, lm, ly, ld, FALSE, FALSE, !rc_alternative_format_flag); } if (rc_alternative_format_flag && rc_week_number_flag) { sprintf (s2, _(" ; Week %s"), s7); } else *s2 = '\0'; } else { if (rc_alternative_format_flag && rc_week_number_flag) { sprintf (s2, _("Week %s"), s7); } else *s2 = '\0'; } if (*s2 || !rc_suppr_date_part_flag) { strcat (s2, ":"); strcat (s1, s2); } j = (int) strlen (s1) - hls_len; /* Skip the separating whitespace character between the "date"-part and the "text"-part. */ if (*lineptrs->text_part == ' ') lineptrs->text_part++; /* Construct the "text"-part of the fixed date. */ len_text_part = (int) strlen (lineptrs->text_part); if (rc_alternative_format_flag) { if (!same_date && *s1) /* Print the constructed date on a separate line only if it appears the first time! */ print_text (stdout, s1); if (rc_count_flag) { sprintf (s1, "%0*d)", len_rce, abs ((tindex - skipped) + 1)); if (len_text_part) strcat (s1, " "); } else *s1 = '\0'; j = len_line = (int) strlen (s1); } else len_line = j + hls_len + (int) !rc_suppr_date_part_flag; /* Now check if it's necessary to modify the "text"-part of the fixed date. */ ok = FALSE; len_fn_part = 0; /* "Empty" texts have no trailing blank character! */ if (len_text_part) { if (!rc_alternative_format_flag && !rc_suppr_date_part_flag) strcat (s1, " "); /* Get the textual length of the file name, which has been inserted into the line. */ if (rc_enable_fn_flag) { auto Bool pseudo_quote_found = FALSE; /* Add the length of the "file name"+3 (+3 because the file name itself is leaded by a blank character and is enclosed in PSEUDO_QUOTE characters to the number of leading blanks, which must be displayed if the line wrapped by a given `~'-TILDE. */ ptr_char = lineptrs->text_part; while (*ptr_char) { len_fn_part++; if (*ptr_char == PSEUDO_QUOTE) { if (!pseudo_quote_found) pseudo_quote_found = TRUE; else break; } ptr_char++; } if (!*ptr_char) /* Internal error, a maintainer has modified the internal format of a line and forgots to respect this modification here! */ my_error (ERR_MAINTAINER_FAILURE, __FILE__, (long) __LINE__, "", 0); c_dummy = *++ptr_char; if (*ptr_char) { len_line++; ptr_char++; c_dummy = *ptr_char; *ptr_char = '\0'; } strcat (s1, lineptrs->text_part); i = len_fn_part; len_line += i; if (c_dummy) { *ptr_char = c_dummy; i++; j += (int) !rc_alternative_format_flag; } len_text_part -= i; lineptrs->text_part += i; /* Now exchange the first two PSEUDO_QUOTE characters -- which embrace the "file name" -- by parentheses. */ ptr_char = strchr (s1, PSEUDO_QUOTE); if (ptr_char == (char *) NULL) /* Internal error, a maintainer has modified the internal format of a line and forgots to respect this modification here! */ my_error (ERR_MAINTAINER_FAILURE, __FILE__, (long) __LINE__, "", 0); *ptr_char = '('; ptr_char = strchr (s1, PSEUDO_QUOTE); if (ptr_char == (char *) NULL) /* Internal error, a maintainer has modified the internal format of a line and forgots to respect this modification here! */ my_error (ERR_MAINTAINER_FAILURE, __FILE__, (long) __LINE__, "", 0); *ptr_char = ')'; /* Check if the FIRST character of the REAL "text"-part was a quoted whitespace character (this is indicated by a PSEUDO_QUOTE character ('\001') followed by a "whitespace" character, see `rc-check.c'). If this case is TRUE, skip the PSEUDO_QUOTE. */ if (*lineptrs->text_part) if ((*lineptrs->text_part == PSEUDO_QUOTE) && isspace (lineptrs->text_part[1])) { lineptrs->text_part++; len_text_part--; } } else { /* Check if the FIRST character of the "text"-part was a quoted whitespace character (this is indicated by a PSEUDO_QUOTE character ('\001') followed by a "whitespace" character, see `rc-check.c'). If this case is TRUE, skip the PSEUDO_QUOTE. */ if ((*lineptrs->text_part == PSEUDO_QUOTE) && isspace (lineptrs->text_part[1])) { lineptrs->text_part++; len_text_part--; } } ok = (Bool) (strchr (lineptrs->text_part, RC_NL_CHAR) == (char *) NULL); ok2 = (Bool) (strchr (lineptrs->text_part, RC_NL2_CHAR) == (char *) NULL); if (ok && ok2) { if (*lineptrs->text_part) { if ((Uint) len_line + len_text_part >= maxlen_max) resize_all_strings (len_line + len_text_part + 1, FALSE, __FILE__, (long) __LINE__); strcat (s1, lineptrs->text_part); } } else { /* `~'-TILDE, `^'-CARET or quoted `\~'-TILDE resp., CARET found in "text"-part of fixed date: Quote TILDE/CARET resp., insert a real `\n'-NEWLINE character */ while (*lineptrs->text_part) { if ((Uint) len_line >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); if (*lineptrs->text_part == RC_NL_CHAR) { /* RC_NL_CHAR is single `\~' quoted or double `\\~' quoted: Replace QUOTE_CHAR by RC_NL_CHAR resp., replace last QUOTE_CHAR by RC_NL_CHAR. */ if (s1[len_line - 1] == QUOTE_CHAR) s1[len_line - 1] = *lineptrs->text_part; else { /* RC_NL_CHAR is not quoted '~': Insert a real `\n'_NEWLINE character. */ s1[len_line++] = '\n'; /* Insert some leading blanks. */ if (rc_alternative_format_flag && !rc_enable_fn_flag) n = j; else { n = j + len_fn_part + 1; if (!rc_alternative_format_flag) n -= (int) rc_suppr_date_part_flag; } for (i = 0; i < n; i++) { if ((Uint) len_line >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); s1[len_line++] = ' '; } } } else if (*lineptrs->text_part == RC_NL2_CHAR) { /* RC_NL2_CHAR is single `\^' quoted or double `\\^' quoted: Replace QUOTE_CHAR by RC_NL2_CHAR resp., replace last QUOTE_CHAR by RC_NL2_CHAR. */ if (s1[len_line - 1] == QUOTE_CHAR) s1[len_line - 1] = *lineptrs->text_part; else /* RC_NL2_CHAR is not quoted '^': Insert a real `\n'_NEWLINE character only! */ s1[len_line++] = '\n'; } else s1[len_line++] = *lineptrs->text_part; lineptrs->text_part++; } s1[len_line] = '\0'; } } if (rc_omit_date_flag && !rc_alternative_format_flag && same_date) { /* Overwrite leading "date"-part of output with blanks. */ if (rc_count_flag) i = len_rce + 3; /* +3 because of the ") " text */ else i = 0; n = j - (int) rc_suppr_date_part_flag; for (; i < n; i++) s1[i] = ' '; ptr_char = s1 + j + hls_len; for (i = j; *ptr_char; i++) s1[i] = *ptr_char++; s1[i] = '\0'; } /* Now we display the constructed fixed date text. */ if (!rc_alternative_format_flag || len_text_part || len_line) print_text (stdout, s1); } else skipped++; /* Now deallocate the just displayed/skipped fixed date in the table. */ free (rc_elems_table[tindex]); /* Check if all fixed date entries are displayed. */ if (tindex == tend) break; /* If not, increase/decrease the loop counter. */ if (rc_zero_dates_flag && rc_sort_des_flag) tindex--; else tindex++; } } /* Now deallocate all NON-"empty" fixed dates in the table in case only "empty" fixed dates were displayed. */ if (rc_zero_dates_flag && (rc_elems - rc_zero_pos)) for (tindex = 0; tindex < rc_zero_pos; tindex++) free (rc_elems_table[tindex]); } static int fn_asc_sort (a, b) const char **a; const char **b; /*! The (q)sort compare function for fixed dates which texts have an included resource "file name"; ascending order. */ { static Uint previous_len; static int i; static char *a_text; static char *b_text; static char *ptr_char; static Bool is_initialized = FALSE; /* Don't sort on the included resource "file name", sort on the REAL text of the fixed date O N L Y !!! */ if (!is_initialized) { a_text = (char *) my_malloc (maxlen_max, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "a_text", 0); b_text = (char *) my_malloc (maxlen_max, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "b_text", 0); previous_len = maxlen_max; is_initialized = TRUE; } else if (previous_len < maxlen_max) { a_text = (char *) my_realloc ((VOID_PTR) a_text, maxlen_max, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "a_text", maxlen_max); b_text = (char *) my_realloc ((VOID_PTR) b_text, maxlen_max, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "b_text", maxlen_max); previous_len = maxlen_max; } i = len_year_max + 4; /* Copy the "date"-part AS IS. */ strncpy (a_text, *a, i); a_text[i] = '\0'; /* Skip the filename part. */ if (*(*a + i + 1) != PSEUDO_QUOTE) /* Internal error, a maintainer has modified the internal format of a line and forgots to respect this modification here! */ my_error (ERR_MAINTAINER_FAILURE, __FILE__, (long) __LINE__, "", 0); ptr_char = strchr (*a + i + 2, PSEUDO_QUOTE); if (ptr_char == (char *) NULL) /* Internal error, a maintainer has modified the internal format of a line and forgots to respect this modification here! */ my_error (ERR_MAINTAINER_FAILURE, __FILE__, (long) __LINE__, "", 0); ptr_char++; /* And concatenate the "text"-part. */ if (*ptr_char) strcat (a_text, ptr_char); /* Copy the "date"-part AS IS. */ strncpy (b_text, *b, i); b_text[i] = '\0'; /* Skip the filename part. */ if (*(*b + i + 1) != PSEUDO_QUOTE) /* Internal error, a maintainer has modified the internal format of a line and forgots to respect this modification here! */ my_error (ERR_MAINTAINER_FAILURE, __FILE__, (long) __LINE__, "", 0); ptr_char = strchr (*b + i + 2, PSEUDO_QUOTE); if (ptr_char == (char *) NULL) /* Internal error, a maintainer has modified the internal format of a line and forgots to respect this modification here! */ my_error (ERR_MAINTAINER_FAILURE, __FILE__, (long) __LINE__, "", 0); ptr_char++; /* And concatenate the "text"-part. */ if (*ptr_char) strcat (b_text, ptr_char); return (strcmp (a_text, b_text)); } static int fn_des_sort (a, b) const char **a; const char **b; /*! The (q)sort compare function for fixed dates which texts have an included resource "file name"; descending order. */ { static Uint previous_len; static int i; static char *a_text; static char *b_text; static char *ptr_char; static Bool is_initialized = FALSE; /* Don't sort on the included resource "file name", sort on the REAL text of the fixed date O N L Y !!! */ if (!is_initialized) { a_text = (char *) my_malloc (maxlen_max, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "a_text", 0); b_text = (char *) my_malloc (maxlen_max, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "b_text", 0); previous_len = maxlen_max; is_initialized = TRUE; } else if (previous_len < maxlen_max) { a_text = (char *) my_realloc ((VOID_PTR) a_text, maxlen_max, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "a_text", maxlen_max); b_text = (char *) my_realloc ((VOID_PTR) b_text, maxlen_max, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "b_text", maxlen_max); previous_len = maxlen_max; } i = len_year_max + 4; /* Copy the "date"-part AS IS. */ strncpy (a_text, *a, i); a_text[i] = '\0'; /* Skip the filename part. */ if (*(*a + i + 1) != PSEUDO_QUOTE) /* Internal error, a maintainer has modified the internal format of a line and forgots to respect this modification here! */ my_error (ERR_MAINTAINER_FAILURE, __FILE__, (long) __LINE__, "", 0); ptr_char = strchr (*a + i + 2, PSEUDO_QUOTE); if (ptr_char == (char *) NULL) /* Internal error, a maintainer has modified the internal format of a line and forgots to respect this modification here! */ my_error (ERR_MAINTAINER_FAILURE, __FILE__, (long) __LINE__, "", 0); ptr_char++; /* And concatenate the "text"-part. */ if (*ptr_char) strcat (a_text, ptr_char); /* Copy the "date"-part AS IS. */ strncpy (b_text, *b, i); b_text[i] = '\0'; /* Skip the filename part. */ if (*(*b + i + 1) != PSEUDO_QUOTE) /* Internal error, a maintainer has modified the internal format of a line and forgots to respect this modification here! */ my_error (ERR_MAINTAINER_FAILURE, __FILE__, (long) __LINE__, "", 0); ptr_char = strchr (*b + i + 2, PSEUDO_QUOTE); if (ptr_char == (char *) NULL) /* Internal error, a maintainer has modified the internal format of a line and forgots to respect this modification here! */ my_error (ERR_MAINTAINER_FAILURE, __FILE__, (long) __LINE__, "", 0); ptr_char++; /* And concatenate the "text"-part. */ if (*ptr_char) strcat (b_text, ptr_char); return (strcmp (b_text, a_text)); } #endif /* USE_RC */ gcal-4.1/src/hd-data2.c0000664000000000000000000044415512727633115011520 00000000000000/*! * \file hd-data2.c * \brief All other A-C countries data which is composed into the * eternal holiday list. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include definition header file to see whether HD_TOP20CC is defined there. * Compile this module only if HD_TOP20CC is NOT defined, otherwise skip it. */ #include "tailor.h" #if !HD_TOP20CC /* * Include header files. */ # include "common.h" # include "globals.h" # include "hd-defs.h" # include "hd-data.h" # include "hd-data1.h" # include "hd-data3.h" # include "hd-data4.h" # include "hd-data5.h" # include "hd-use.h" # include "utils.h" # include "hd-data2.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS static void ca_base_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); static void ch_base_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); __END_DECLARATIONS /* * All other A-C countries specific holiday management functions. */ void ad_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Andorra. */ { ptr_cc_id = "AD"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 14, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 8, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, "+", 24, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_CHARLES_DAY].ht_text), ptr_cc_id, "+", 4, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void ae_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United Arab Emirates. */ { ptr_cc_id = "AE"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 2, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHEIKH_ZAYEDS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 6, 8, year, hd_elems, fday, count); } void af_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Afghanistan. */ { ptr_cc_id = "AF"; use_other_cc = !use_other_cc; persian_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LOSS_OF_MUSLIM_NATION].ht_text), ptr_cc_id, "+", 28, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", 4, 5, year, hd_elems, fday, count); if (year > 1989) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 19, 8, year, hd_elems, fday, count); } void ag_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Antigua and Barbuda. */ { register int day; register int i; ptr_cc_id = "AG"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (DAY_MIN, 7, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CARICOM_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); for (i = 0; i < 2; i++) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", day + i, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MERCHANT_DAY].ht_text), ptr_cc_id, "+", 7, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); if (year > 1980) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void ai_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Anguilla. */ { register int day; register int i; ptr_cc_id = "AI"; holiday (*init_data, detected, _(hd_text[HD_SEPARATION_DAY].ht_text), ptr_cc_id, "+", 19, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); for (i = 0; i < DAY_MAX; i++) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF2, day + i, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", day + 4, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); day = eval_holiday (dvec[5 - 1], 5, year, 5, FALSE); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void al_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Albania. */ { ptr_cc_id = "AL"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); persian_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", 28, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", 2, MONTH_MIN, year, hd_elems, fday, count); if (year > 1943) { holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 29, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 11, MONTH_MIN, year, hd_elems, fday, count); } /* The Christian Western churches holidays. */ holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); /* The Christians in Albania compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches new calendar. */ easter = orthodox_easter (year, NULL, 1924, 3, 10, 22); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); } void am_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Armenia. */ { ptr_cc_id = "AM"; holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 5, 7, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 21, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MOTHERHOOD_AND_BEAUTY_DAY].ht_text), ptr_cc_id, "+", 7, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", 2, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 28, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1894) holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", 24, 4, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 29, 5, year, hd_elems, fday, count); if (year > 1991) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 21, 9, year, hd_elems, fday, count); /* The Christian Western churches holidays. */ holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); /* The Christians in Armenia compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar, but they celebrate the Easter feast itself on the same date as done by Christian Western churches. */ if (year != 1924) { register int i; auto int greg_diff; auto int d; auto int m; auto int y; (void) orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, m, year, hd_elems, fday, count); } } void an_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Netherlands Antilles/Netherlands Antilles-wide. */ { holiday (*init_data, detected, _(hd_text[HD_ASH_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 48, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", dvec[4 - 1], 4, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void an_bo_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Netherlands Antilles/Bonaire. */ { ptr_cc_id = "AN_BO"; an_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BONAIRE_DAY].ht_text), ptr_cc_id, "+", 6, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", 19, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, "+", 29, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, "+", 24, 6, year, hd_elems, fday, count); } void an_cu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Netherlands Antilles/Cura,cao. */ { ptr_cc_id = "AN_CU"; an_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ANTILLIAN_DAY].ht_text), ptr_cc_id, "+", 21, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", 2, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_NICHOLAS_EVE].ht_text), ptr_cc_id, "+", 5, MONTH_MAX, year, hd_elems, fday, count); } void an_ma_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Netherlands Antilles/St Maarten. */ { ptr_cc_id = "AN_MA"; an_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTINIMAS].ht_text), ptr_cc_id, "+", 11, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 15, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTOR_SCHOELCHER_DAY].ht_text), ptr_cc_id, "+", 21, 7, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_ARMISTICE_DAY].ht_text), ptr_cc_id, "+", 8, 5, year, hd_elems, fday, count); } void an_sa_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Netherlands Antilles/Saba and Statia. */ { register int day; register int i; ptr_cc_id = "AN_SA"; an_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ANTILLIAN_DAY].ht_text), ptr_cc_id, "+", 21, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_STATIA_AMERICA_DAY].ht_text), ptr_cc_id, "#", 16, 11, year, hd_elems, fday, count); for (i = day = eval_holiday (DAY_MIN, MONTH_MAX, year, 6, TRUE); day < i + 2; day++) holiday (*init_data, detected, _(hd_text[HD_SABA_DAY].ht_text), ptr_cc_id, "#", day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (dvec[7 - 1], 7, year, DAY_MIN, FALSE); holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 7, year, hd_elems, fday, count); if (year % 5) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 5, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 7, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_ARMISTICE_DAY].ht_text), ptr_cc_id, "+", 8, 5, year, hd_elems, fday, count); } void ao_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Angola. */ { ptr_cc_id = "AO"; holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, DAY_MIN, 8, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FAMILY_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_ARMED_STRUGGLE].ht_text), ptr_cc_id, "+", 4, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FOUNDATION_OF_NPLA_DAY].ht_text), ptr_cc_id, "+", 10, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 11, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HEROES_DAY].ht_text), ptr_cc_id, "+", 17, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PIONEER_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 27, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 14, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); } void ar_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Argentina. */ { register int day; register int i; ptr_cc_id = "AR"; day = 10; i = weekday_of_date (day, 6, year); if (i > 4) day += ((DAY_MAX - i) + 1); else day += (DAY_MIN - i); holiday (*init_data, detected, _(hd_text[HD_MALVINAS_DAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = 20; i = weekday_of_date (day, 6, year); if (i > 4) day += ((DAY_MAX - i) + 1); else day += (DAY_MIN - i); holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GENERAL_SAN_MARTINS_ANNIVERSARY].ht_text), ptr_cc_id, "+", 17, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_STUDENTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 21, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MAX, TRUE); holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MAX, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_FATHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 9, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MAX, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); if (year > 1809) holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 25, 5, year, hd_elems, fday, count); } void as_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in American Samoa. */ { ptr_cc_id = "AS"; /* I assume that no U.S. holiday observance rule is valid in this country/territory, if not, please let me know! */ observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", 17, 4, year, hd_elems, fday, count); } void at_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Austria. */ { ptr_cc_id = "AT"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; //according to §7 Arbeitsruhegesetz // (BGBl. Nr. 144/1983 zuletzt geändert durch BGBl. I Nr. 159/2004) //All Souls day is no holiday in Austria // holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), // ptr_cc_id, DIS_HLS_PREF2, 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 26, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void au_ct_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Australia/Australia Capital Territory (Canberra). */ { register int day; register int i; ptr_cc_id = "AU_CT"; au_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 3, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_CANBERRA_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); } void au_nt_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Australia/Northern Territory. */ { register int day; register int i; ptr_cc_id = "AU_NT"; au_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_PICNIC_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 7, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_ALICE_SPRINGS_SHOW_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 3, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 7, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_TENNANT_CREEK_SHOW_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 3, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 7, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_KATHERINE_SHOW_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 3, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 7, year, DAY_MIN, TRUE) + (3 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_DARWIN_SHOW_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 3, year, hd_elems, fday, count); } void au_qu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Australia/Queensland. */ { register int day; register int i; ptr_cc_id = "AU_QU"; au_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); } void au_sa_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Australia/Southern Australia. */ { register int day; ptr_cc_id = "AU_SA"; au_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ADELAIDE_CUP_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 18, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PROCLAMATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 26, MONTH_MAX, year, hd_elems, fday, count); } void au_sw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Australia/New South Wales. */ { register int day; register int i; ptr_cc_id = "AU_SW"; au_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); } void au_ta_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Australia/Tasmania. */ { register int day; register int i; ptr_cc_id = "AU_TA"; au_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 2, year, 2, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_REGATTA_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 2, year, hd_elems, fday, count); day = eval_holiday (dvec[2 - 1], 2, year, 3, TRUE); holiday (*init_data, detected, _(hd_text[HD_LAUNCESTON_CUP_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 2, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 3, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_EIGHT_HOURS_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", 14, 4, year, hd_elems, fday, count); day = eval_holiday (18, 10, year, 4, TRUE); holiday (*init_data, detected, _(hd_text[HD_HOBART_SHOW_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RECREATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 2, 11, year, hd_elems, fday, count); } void au_vi_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Australia/Victoria. */ { register int day; ptr_cc_id = "AU_VI"; use_other_cc = !use_other_cc; au_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; day = 26; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 3, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 11, year, 2, TRUE); holiday (*init_data, detected, _(hd_text[HD_MELBOURNE_CUP_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 11, year, hd_elems, fday, count); } void au_wa_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Australia/Western Australia. */ { register int day; register int i; ptr_cc_id = "AU_WA"; au_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (DAY_MIN, 3, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_FOUNDATION_DAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); } void aw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Aruba. */ { ptr_cc_id = "AW"; an_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, "+", 24, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_NICHOLAS_EVE].ht_text), ptr_cc_id, "+", 5, MONTH_MAX, year, hd_elems, fday, count); if (year > 1985) holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", 18, 3, year, hd_elems, fday, count); else holiday (*init_data, detected, _(hd_text[HD_ANTILLIAN_DAY].ht_text), ptr_cc_id, "+", 21, 10, year, hd_elems, fday, count); } void az_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Azerbaijan. */ { ptr_cc_id = "AZ"; use_other_cc = !use_other_cc; persian_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; if (year > 1917) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 28, 5, year, hd_elems, fday, count); if ((year > 1916) && (year < 1991)) { holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); } if (year > 1990) { holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 9, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", 20, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 17, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 18, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SOLIDARITY_DAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } } void ba_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Bosnia-Herzegovina. */ { auto int d; auto int greg_diff; ptr_cc_id = "BA"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 25, 11, year, hd_elems, fday, count); if (year > 1992) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 3, year, hd_elems, fday, count); /* The Christian Western churches holidays. */ holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_NATIVITY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 8, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); /* The Orthodox Christians in Bosnia-Herzegovina compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); d = DAY_MIN; if (year != 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); d = day_of_year (23, 4, year) + greg_diff; holiday (*init_data, detected, _(hd_text[HD_ST_GEORGES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); d = day_of_year (15, 8, year) + greg_diff; holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); d = day_of_year (8, 9, year) + greg_diff; holiday (*init_data, detected, _(hd_text[HD_MARYS_NATIVITY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); d = day_of_year (29, 6, year) + greg_diff; holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); d = day_of_year (15, 6, year) + greg_diff; holiday (*init_data, detected, _(hd_text[HD_VIDOVDAN].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); d = day_of_year (20, 7, year) + greg_diff; holiday (*init_data, detected, _(hd_text[HD_ST_ELIAHS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); d = day_of_year (26, 10, year) + greg_diff; holiday (*init_data, detected, _(hd_text[HD_ST_DEMETRIUS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); if (year != 1924) { register int i; auto int m; auto int y; d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, m, year, hd_elems, fday, count); } } void bb_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Barbados. */ { register int day; ptr_cc_id = "BB"; holiday (*init_data, detected, _(hd_text[HD_ERROL_BARROW_DAY].ht_text), ptr_cc_id, "+", 21, MONTH_MIN, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEROES_DAY].ht_text), ptr_cc_id, "+", 28, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 8, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_UNITED_NATIONS_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); if (year > 1965) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", dvec[11 - 1], 11, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void bd_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Bangladesh. */ { register int day; ptr_cc_id = "BD"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_SHAHEED_DAY].ht_text), ptr_cc_id, "+", 21, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 7, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 2, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_MOURNING_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 16, MONTH_MAX, year, hd_elems, fday, count); } void bf_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Burkina Faso. */ { ptr_cc_id = "BF"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 5, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 15, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 11, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PEOPLES_UPRISING_DAY].ht_text), ptr_cc_id, "+", 3, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 4, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); } void bg_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Bulgaria. */ { register int day; auto int greg_diff; ptr_cc_id = "BG"; /* The Orthodox Christians in Bulgaria compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches new calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CULTURE_DAY].ht_text), ptr_cc_id, "+", 24, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 3, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_REVIVAL_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); day = day_of_year (23, 4, year) + greg_diff; holiday (*init_data, detected, _(hd_text[HD_ST_GEORGES_DAY].ht_text), ptr_cc_id, "+", day, 0, year, hd_elems, fday, count); if (year > 1884) holiday (*init_data, detected, _(hd_text[HD_UNION_DAY].ht_text), ptr_cc_id, "+", 6, 9, year, hd_elems, fday, count); if (year > 1990) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 22, 9, year, hd_elems, fday, count); } void bh_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Bahrain. */ { ptr_cc_id = "BH"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 16, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); } void bi_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Burundi. */ { ptr_cc_id = "BI"; holiday (*init_data, detected, _(hd_text[HD_RWAGASORE_DAY].ht_text), ptr_cc_id, "+", 13, 10, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_NDADAYE_DAY].ht_text), ptr_cc_id, "+", 21, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_UNITY_DAY].ht_text), ptr_cc_id, "+", 5, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 18, 9, year, hd_elems, fday, count); } void bj_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Benin. */ { ptr_cc_id = "BJ"; holiday (*init_data, detected, _(hd_text[HD_TRADITIONAL_DAY].ht_text), ptr_cc_id, "+", 10, MONTH_MIN, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", DAY_MIN, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void bm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Bermuda. */ { register int day; register int i; ptr_cc_id = "BM"; day = 24; i = weekday_of_date (day, 5, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = day_of_year (eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE), 8, year) - 4; holiday (*init_data, detected, _(hd_text[HD_CUP_MATCH_DAY].ht_text), ptr_cc_id, "+", day, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SOMERS_DAY].ht_text), ptr_cc_id, "+", day + 1, 0, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 25; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 9, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); day = DAY_MIN; i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = 11; i = weekday_of_date (day, 11, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void bn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Brunei. */ { ptr_cc_id = "BN"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", dvec[5 - 1], 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 23, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, "+", 15, 7, year, hd_elems, fday, count); } void bo_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Bolivia. */ { register int i; ptr_cc_id = "BO"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; for (i = DAY_MAX; i; i--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46 - i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 6, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 27, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void bs_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Bahamas. */ { register int day; ptr_cc_id = "BS"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DISCOVERY_DAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 10, 7, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 5, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_SLAVE_LIBERATION_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void bt_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Bhutan. */ { ptr_cc_id = "BT"; holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 8, 8, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 17, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, "+", 11, 11, year, hd_elems, fday, count); } void bv_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Bouvet Island. */ { ptr_cc_id = "BV"; use_other_cc = !use_other_cc; no_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void bw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Botswana. */ { register int day; register int i; ptr_cc_id = "BW"; holiday (*init_data, detected, _(hd_text[HD_SERETSE_KHAMA_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 7, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = day_of_year (dvec[9 - 1], 9, year); for (i = 0; i < 2; i++) holiday (*init_data, detected, _(hd_text[HD_BOTSWANA_DAY].ht_text), ptr_cc_id, "+", day + i, 0, year, hd_elems, fday, count); for (day = 15; day <= 16; day++) holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void by_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Belarus. */ { auto int greg_diff; ptr_cc_id = "BY"; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); if (year > 1916) holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 7, 11, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 9, 5, year, hd_elems, fday, count); if (year > 1991) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 3, 7, year, hd_elems, fday, count); if (year > 1993) holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 15, 3, year, hd_elems, fday, count); /* The Christian Western churches holidays. */ holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); /* The Orthodox Christians in Belarus compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); if (year != 1924) { register int i; auto int d; auto int m; auto int y; d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); } } void bz_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Belize. */ { register int day; register int i; ptr_cc_id = "BZ"; day = 9; if (weekday_of_date (day, 3, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_BARON_BLISS_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = 19; if (weekday_of_date (day, 11, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_GARIFUNA_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 26; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); for (i = DAY_MAX; i; i--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46 - i, 0, year, hd_elems, fday, count); day = 25; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 24; if (weekday_of_date (day, 5, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_COMMONWEALTH_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = 21; if (weekday_of_date (day, 9, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, 5, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, MONTH_MIN, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = 10; if (weekday_of_date (day, 9, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_ST_GEORGES_DAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void ca_al_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Canada/Alberta. */ { register int day; ptr_cc_id = "CA_AL"; ca_hdy (init_data, detected, easter, year, hd_elems, fday, count); ca_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 2, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_FAMILY_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 2, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); } void ca_bc_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Canada/British Columbia. */ { register int day; ptr_cc_id = "CA_BC"; ca_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; ca_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); } void ca_ma_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Canada/Manitoba. */ { register int day; ptr_cc_id = "CA_MA"; ca_hdy (init_data, detected, easter, year, hd_elems, fday, count); ca_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); } void ca_nb_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Canada/New Brunswick. */ { register int day; ptr_cc_id = "CA_NB"; ca_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); } void ca_nf_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Canada/Newfoundland and Labrador. */ { register int day; ptr_cc_id = "CA_NF"; ca_hdy (init_data, detected, easter, year, hd_elems, fday, count); ca_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DISCOVERY_DAY].ht_text), ptr_cc_id, "+", 24, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, 3, TRUE); holiday (*init_data, detected, _(hd_text[HD_REGATTA_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 8, year, hd_elems, fday, count); } void ca_ns_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Canada/Nova Scotia. */ { register int day; ptr_cc_id = "CA_NS"; ca_hdy (init_data, detected, easter, year, hd_elems, fday, count); ca_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "#", day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); } void ca_nw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Canada/Northwest Territories. */ { ptr_cc_id = "CA_NW"; ca_hdy (init_data, detected, easter, year, hd_elems, fday, count); ca_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void ca_on_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Canada/Ontario. */ { register int day; ptr_cc_id = "CA_ON"; ca_hdy (init_data, detected, easter, year, hd_elems, fday, count); ca_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); } void ca_pe_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Canada/Prince Edward Island. */ { register int day; ptr_cc_id = "CA_PE"; ca_hdy (init_data, detected, easter, year, hd_elems, fday, count); ca_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 8, year, hd_elems, fday, count); } void ca_qu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Canada/Qu'ebec. */ { ptr_cc_id = "CA_QU"; ca_hdy (init_data, detected, easter, year, hd_elems, fday, count); ca_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JEAN_BAPTISTE_DAY].ht_text), ptr_cc_id, "+", 24, 6, year, hd_elems, fday, count); } void ca_sa_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /* Manages all specific holidays celebrated in Canada/Saskatchewan. */ { register int day; ptr_cc_id = "CA_SA"; ca_hdy (init_data, detected, easter, year, hd_elems, fday, count); ca_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); } void ca_yu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Canada/Yukon. */ { register int day; register int i; ptr_cc_id = "CA_YU"; ca_hdy (init_data, detected, easter, year, hd_elems, fday, count); ca_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = 17; i = weekday_of_date (day, 8, year); if (i > 4) day += ((DAY_MAX - i) + 1); else day += (DAY_MIN - i); holiday (*init_data, detected, _(hd_text[HD_DISCOVERY_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); day = eval_holiday (dvec[2 - 1], 2, year, DAY_MAX, FALSE) - 2; holiday (*init_data, detected, _(hd_text[HD_HERITAGE_DAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); } void cc_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Cocos (Keeling) Islands. */ { register int day; register int i; ptr_cc_id = "CC"; /* I assume that the Australian holiday observance rule is valid in this country/territory, if not, please let me know! */ au_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); } void cd_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Democratic Republic of Congo. */ { ptr_cc_id = "CD"; holiday (*init_data, detected, _(hd_text[HD_NAMING_DAY].ht_text), ptr_cc_id, "+", 27, 10, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_NEW_REGIME_ANNIVERSARY].ht_text), ptr_cc_id, "+", 24, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 17, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 24, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_MOVEMENT_DAY].ht_text), ptr_cc_id, "+", 20, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_FOUNDATION_DAY].ht_text), ptr_cc_id, "+", 14, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PARENTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, "+", 14, 10, year, hd_elems, fday, count); if (year > 1959) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 30, 6, year, hd_elems, fday, count); } void cf_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Central African Republic. */ { ptr_cc_id = "CF"; holiday (*init_data, detected, _(hd_text[HD_BOGANDA_DAY].ht_text), ptr_cc_id, "+", 29, 3, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 13, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void cg_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Republic of Congo. */ { ptr_cc_id = "CG"; holiday (*init_data, detected, _(hd_text[HD_MARIEN_NGOUABI_DAY].ht_text), ptr_cc_id, "+", 18, 3, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 22, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_MOVEMENT_DAY].ht_text), ptr_cc_id, "+", dvec[7 - 1], 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_DAY].ht_text), ptr_cc_id, "+", 5, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, "+", 8, 2, year, hd_elems, fday, count); } void ch_ar_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Appenzell-Ausserrhoden. */ { ptr_cc_id = "CH_AR"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", 13, MONTH_MIN, year, hd_elems, fday, count); } void ch_ag_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Aargau. */ { register int day; ptr_cc_id = "CH_AG"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 7, year, 5, TRUE); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); } void ch_ai_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Appenzell-Innerrhoden. */ { if (!use_other_cc) { ptr_cc_id = "CH_AI"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); } holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); } void ch_bl_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Basel-Landschaft. */ { ptr_cc_id = "CH_BL"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", 1, 5, year, hd_elems, fday, count); } void ch_be_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Bern. */ { register int i; ptr_cc_id = "CH_BE"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); for (i = 3; i; i--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", easter - 42 - i, 0, year, hd_elems, fday, count); } void ch_bs_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Basel-Stadt. */ { ptr_cc_id = "CH_BS"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", 1, 5, year, hd_elems, fday, count); } void ch_fr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Fribourg. */ { ptr_cc_id = "CH_FR"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; ch_ai_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void ch_gr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Graub"unden. */ { ptr_cc_id = "CH_GR"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void ch_gl_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Glarus. */ { register int day; ptr_cc_id = "CH_GL"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 4, year, 4, TRUE); if (day_of_year (day, 4, year) == easter - 3) day += DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_BATTLE_OF_NAEFELS].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); } void ch_ge_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /* Manages all specific holidays celebrated in Switzerland/Gen`eve. */ { register int day; ptr_cc_id = "CH_GE"; use_other_cc = !use_other_cc; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARRIVAL_OF_THE_SWISS].ht_text), ptr_cc_id, "+", DAY_MIN, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 9, year, 4, TRUE); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WHIT_MONDAY].ht_text), ptr_cc_id, "+", easter + 50, 0, year, hd_elems, fday, count); } void ch_ju_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Jura. */ { ptr_cc_id = "CH_JU"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 23, 6, year, hd_elems, fday, count); } void ch_lu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Luzern. */ { ptr_cc_id = "CH_LU"; ch_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ASH_MONDAY].ht_text), ptr_cc_id, "+", easter - 48, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTINIMAS].ht_text), ptr_cc_id, "+", 11, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, "+", easter - 47, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, "+", 19, 3, year, hd_elems, fday, count); } void ch_ne_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Neuch^atel. */ { register int day; ptr_cc_id = "CH_NE"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 9, year, DAY_MAX, TRUE) + (2 * DAY_MAX) + 1; holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 3, year, hd_elems, fday, count); } void ch_nw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Nidwalden. */ { ptr_cc_id = "CH_NW"; ch_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; ch_ai_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, "+", 19, 3, year, hd_elems, fday, count); } void ch_ow_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Obwalden. */ { ptr_cc_id = "CH_OW"; ch_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_NICHOLAS_DAY].ht_text), ptr_cc_id, "+", 25, 9, year, hd_elems, fday, count); } void ch_sg_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/St Gallen. */ { ptr_cc_id = "CH_SG"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", 16, 10, year, hd_elems, fday, count); } void ch_sh_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Schaffhausen. */ { ptr_cc_id = "CH_SH"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); } void ch_so_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Solothurn. */ { ptr_cc_id = "CH_SO"; ch_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); } void ch_sz_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Schwyz. */ { ptr_cc_id = "CH_SZ"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, "+", 19, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); } void ch_ti_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Ticino. */ { ptr_cc_id = "CH_TI"; use_other_cc = !use_other_cc; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); ch_ai_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ASH_MONDAY].ht_text), ptr_cc_id, "+", easter - 48, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, "+", easter - 47, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, "+", 19, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, "+", 29, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WHIT_MONDAY].ht_text), ptr_cc_id, "+", easter + 50, 0, year, hd_elems, fday, count); } void ch_tg_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Thurgau. */ { ptr_cc_id = "CH_TG"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); } void ch_ur_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Uri. */ { ptr_cc_id = "CH_UR"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; ch_ai_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, "+", 19, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); } void ch_vd_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Vaud. */ { register int day; ptr_cc_id = "CH_VD"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 9, year, DAY_MAX, TRUE) + (2 * DAY_MAX) + 1; holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); } void ch_vs_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Valais. */ { ptr_cc_id = "CH_VS"; use_other_cc = !use_other_cc; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ASH_MONDAY].ht_text), ptr_cc_id, "+", easter - 48, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, "+", easter - 47, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, "+", 19, 3, year, hd_elems, fday, count); } void ch_zg_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Zug. */ { ptr_cc_id = "CH_ZG"; ch_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; ch_ai_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ASH_MONDAY].ht_text), ptr_cc_id, "+", easter - 48, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, "+", easter - 47, 0, year, hd_elems, fday, count); } void ch_zh_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Switzerland/Z"urich. */ { register int day; register int i; ptr_cc_id = "CH_ZH"; ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count); for (i = 3; i; i--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", easter - 42 - i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 4, year, DAY_MIN, TRUE) + (2 * DAY_MAX); if (day_of_year (day, 4, year) == easter + 1) day += DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_SECHSELAEUTEN].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 9, year, 6, TRUE) + DAY_MAX; for (i = 0; i < 3; i++) holiday (*init_data, detected, _(hd_text[HD_KNABENSCHIESSEN].ht_text), ptr_cc_id, "+", day + i, 9, year, hd_elems, fday, count); } void ci_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in C^ote d'Ivoire. */ { ptr_cc_id = "CI"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 7, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMISTICE_DAY].ht_text), ptr_cc_id, "+", 15, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 7, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void ck_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Cook Islands. */ { register int day; register int i; ptr_cc_id = "CK"; day = 25; i = weekday_of_date (day, 7, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_GOSPEL_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 7, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = 26; i = weekday_of_date (day, 10, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_GOSPEL_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); day = 25; i = weekday_of_date (day, 4, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_ANZAC_DAY].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 25; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); day = 4; i = weekday_of_date (day, 8, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = DAY_MIN; i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void cl_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Chile. */ { register int day; ptr_cc_id = "CL"; holiday (*init_data, detected, _(hd_text[HD_BATTLE_OF_IQUIQUE].ht_text), ptr_cc_id, "+", 21, 5, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 19, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 18, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_UNITY_DAY].ht_text), ptr_cc_id, "+", 6, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 9, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_DAY_OF_RECONCILIATION].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, "+", 29, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, (year > 1995) ? DIS_HLS_PREF : "+", 11, 9, year, hd_elems, fday, count); } void cm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Cameroon. */ { ptr_cc_id = "CM"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_SHEEP_FESTIVAL].ht_text), ptr_cc_id, "+", 21, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "#", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "#", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "#", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "#", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "#", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 20, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, "+", 11, 2, year, hd_elems, fday, count); } void co_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Colombia. */ { register int i; register int j; auto int day; auto int month; ptr_cc_id = "CO"; holiday (*init_data, detected, _(hd_text[HD_BATTLE_OF_BOYACA].ht_text), ptr_cc_id, "+", 7, 8, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 20, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); day = DAY_MIN; i = weekday_of_date (day, 11, year); if (i != DAY_MIN) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); day = 12; i = weekday_of_date (day, 10, year); if (i != DAY_MIN) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); day = 11; i = weekday_of_date (day, 11, year); if (i != DAY_MIN) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_OF_CARTAGENA].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); day = 15; i = weekday_of_date (day, 8, year); if (i != DAY_MIN) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); day = 6; i = weekday_of_date (day, MONTH_MIN, year); if (i != DAY_MIN) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = 29; month = 6; i = weekday_of_date (day, month, year); if (i != DAY_MIN) { j = day_of_year (day, month, year) + ((DAY_MAX - i) + 1); (void) doy2date (j, (days_of_february (year) == 29), &day, &month); } holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, "+", day, month, year, hd_elems, fday, count); j = easter + 39; (void) doy2date (j, (days_of_february (year) == 29), &day, &month); i = weekday_of_date (day, month, year); if (i != DAY_MIN) j += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", j, 0, year, hd_elems, fday, count); j = easter + 60; (void) doy2date (j, (days_of_february (year) == 29), &day, &month); i = weekday_of_date (day, month, year); if (i != DAY_MIN) j += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", j, 0, year, hd_elems, fday, count); j = easter + 68; (void) doy2date (j, (days_of_february (year) == 29), &day, &month); i = weekday_of_date (day, month, year); if (i != DAY_MIN) j += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_HEART_JESUS].ht_text), ptr_cc_id, "+", j, 0, year, hd_elems, fday, count); if (year > 1917) { day = 19; i = weekday_of_date (day, 3, year); if (i != DAY_MIN) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_SAN_JOSE_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); } } void cr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Costa Rica. */ { register int day; ptr_cc_id = "CR"; holiday (*init_data, detected, _(hd_text[HD_GUACANASTE_DAY].ht_text), ptr_cc_id, "+", 25, 7, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_OUR_LADY_OF_LOS_ANGELES_DAY].ht_text), ptr_cc_id, "#", 2, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "#", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "#", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "#", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 15, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 19, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "#", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "#", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, "+", 29, 6, year, hd_elems, fday, count); for (day = 28; day <= dvec[MONTH_MAX - 1]; day++) holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "#", day, MONTH_MAX, year, hd_elems, fday, count); if (year > 1855) holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HEROES_DAY].ht_text), ptr_cc_id, "+", 11, 4, year, hd_elems, fday, count); } void cu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Cuba. */ { register int day; ptr_cc_id = "CU"; holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 10, 10, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); for (day = 25; day <= 27; day++) holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 2, MONTH_MIN, year, hd_elems, fday, count); } void cv_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Cape Verde. */ { ptr_cc_id = "CV"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ASH_MONDAY].ht_text), ptr_cc_id, "+", easter - 48, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEROES_DAY].ht_text), ptr_cc_id, "+", 20, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 5, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 12, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void cx_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Christmas Islands. */ { register int day; register int i; ptr_cc_id = "CX"; /* I assume that the Australian holiday observance rule is valid in this country/territory, if not, please let me know! */ au_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); } void cy_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Cyprus. */ { ptr_cc_id = "CY"; holiday (*init_data, detected, _(hd_text[HD_ARCHBISHOP_MAKARIOS_NAME_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 19, MONTH_MIN, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ARCHBISHOP_MAKARIOS_MEMORIAL_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 3, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", DAY_MIN, 4, year, hd_elems, fday, count); use_other_cc = !use_other_cc; gr_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void cz_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Czech Republic. */ { register int day; ptr_cc_id = "CZ"; if (*init_data) *init_data = FALSE; /* * Several important days which are not state holidays. */ day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PEOPLES_UPRISING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 5, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 1, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_NICHOLAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 6, 12, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); /* * I've tried to capture the somewhat complex evolution of the Czech holidays, * but so far I have only a little information on the state before year 1975, * so if you know more, please let me know. * Martin Mares , September 2003 * * This is a brief sketch of the history: * * Law: 56/75 141/88 167/90 204/90 218/91 245/00 * Effective: 23.6.75 21.9.88 10.5.90 18.5.90 31.5.91 9.8.00 * 1. 1. + + + + + + * Easter + + + + + + * 1. 5. + + + + + + * 5. 5. * 8. 5. + + * 9. 5. + + + + * 5. 7. + + + + * 6. 7. + + + * 28. 9. + * 28.10. + + + + + * 17.11. + * 24.12. + + + + * 25.12. + + + + + + * 26.12. + + + + + + */ holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", 1, 1, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", 1, 5, year, hd_elems, fday, count); if (year >= 1992) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 8, 5, year, hd_elems, fday, count); else holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 9, 5, year, hd_elems, fday, count); if (year >= 1990) { holiday (*init_data, detected, _(hd_text[HD_KONSTANTIN_AND_METHODIUS].ht_text), ptr_cc_id, "+", 5, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BURNING_OF_JAN_HUS].ht_text), ptr_cc_id, "+", 6, 7, year, hd_elems, fday, count); } if (year >= 2000) holiday (*init_data, detected, _(hd_text[HD_DAY_OF_CZECH_STATEHOOD].ht_text), ptr_cc_id, "+", 28, 9, year, hd_elems, fday, count); if (year >= 1988) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 28, 10, year, hd_elems, fday, count); if (year >= 2000) holiday (*init_data, detected, _(hd_text[HD_DAY_OF_STUDENTS_REVOLT].ht_text), ptr_cc_id, "+", 17, 11, year, hd_elems, fday, count); if (year >= 1990) holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, 12, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, 12, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, 12, year, hd_elems, fday, count); } static void ca_base_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all base holidays celebrated in Canada. */ { register int day; day = 26; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (24, 5, year, DAY_MIN, FALSE); holiday (*init_data, detected, _(hd_text[HD_VICTORIA_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); if (!use_other_cc) holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); } static void ch_base_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all base holidays celebrated in Switzerland. */ { ch_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); } #endif /* !HD_TOP20CC */ gcal-4.1/src/hd-data2.h0000664000000000000000000004046412244130561011507 00000000000000#ifndef __HD_DATA2_H # define __HD_DATA2_H /*! * \file hd-data2.h * \brief All other A-C countries data which is composed into the * eternal holiday list header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: hd-data2.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `hd-data2.c'. */ extern void ad_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ae_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void af_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ag_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ai_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void al_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void am_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void an_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void an_bo_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void an_cu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void an_ma_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void an_sa_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ao_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ar_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void as_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void at_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void au_ct_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void au_nt_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void au_qu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void au_sa_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void au_sw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void au_ta_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void au_vi_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void au_wa_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void aw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void az_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ba_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bb_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bd_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bf_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bg_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bh_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bi_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bj_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bo_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bs_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bt_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bv_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void by_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void bz_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_al_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_bc_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_ma_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_nb_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_nf_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_ns_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_nw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_on_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_pe_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_qu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_sa_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_yu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cc_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cd_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cf_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cg_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_ar_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_ag_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_ai_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_bl_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_be_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_bs_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_fr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_gr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_gl_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_ge_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_ju_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_lu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_ne_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_nw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_ow_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_sg_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_sh_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_so_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_sz_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_ti_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_tg_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_ur_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_vd_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_vs_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_zg_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_zh_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ci_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ck_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cl_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void co_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cv_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cx_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cy_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cz_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); __END_DECLARATIONS #endif /* __HD_DATA2_H */ gcal-4.1/src/rc-astro.h0000664000000000000000000000530112244130561011644 00000000000000#ifndef __RC_ASTRO_H # define __RC_ASTRO_H /*! * \file rc-astro.h * \brief Astronmical and suppurt functions * necessary for managing the fixed dates header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: rc-astro.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /*! * Default ICAO atmospheric pressure in Newton per sqare meter (Nm^-2) * used to calculate the atmospheric refraction. */ # define DEFAULT_PRESSURE 101325.0 /*! * Default ICAO atmospheric temperature in degrees Celsius * used to calculate the atmospheric refraction. */ # define DEFAULT_TEMPERATURE 15.0 /*! * Precalculated square of flattening of Earth := (1.0 - 1.0 / 298.257223563) ^ 2 */ # define FLATTENING_OF_EARTH 0.993305620009859 /*! * Earth-equator radius in meters. */ # define EQUATOR_EARTH_RADIUS 6378137.0 /*! * One astronomical unit in kilometers. */ # define ASTRONOMICAL_UNIT 149597870.691 /*! * Earth-equator radii per astronomical unit (au / (equator_earth_radius * 0.001)). */ # define EARTH_RADII_PER_AU 23454.7910606184865 /*! * Mean Earth radius in kilometers. */ # define MEAN_EARTH_RADIUS 6371.221 /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `rc-astro.c'. */ extern double gd_latitude2gc_latitude __P_ ((const double gd_latitude, const int meters_above_sea_level, double *gc_latitude)); extern double sun_rise_set __P_ ((const Aevent_enum event, const Bool is_limited, int day, int month, int year, Coor_struct * coordinates)); extern double moon_rise_set __P_ ((const Aevent_enum event, int day, int month, int year, Coor_struct * coordinates)); extern int moondisk __P_ ((Bool * is_full_new, int day, int month, int year, const int hour, const int min)); extern void draw_moon __P_ ((const int age, const int lines, char **string)); __END_DECLARATIONS #endif /* __RC_ASTRO_H */ gcal-4.1/src/gcal2txt.h0000664000000000000000000000234512244130561011647 00000000000000#ifndef __GCAL2TXT_H # define __GCAL2TXT_H /*! * \file gcal2txt.h * \brief Create a verbatim text file * from a Gcal resource file header file. */ /* * Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, * 2009, 2010, 2011, 2013 Free Software Foundation, Inc. * Copyright (c) 1996, 1997, 2000 Thomas Esken * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: gcal2txt.h 2.06 2000/06/14 02:00:06 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS extern int main __P_ ((int argc, char *argv[])); __END_DECLARATIONS #endif /* __GCAL2TXT_H */ gcal-4.1/src/hd-data5.c0000664000000000000000000035652112727633115011522 00000000000000/*! * \file hd-data5.c * \brief All other T-Z countries data which is composed into the * eternal holiday list. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include definition header file to see whether HD_TOP20CC is defined there. * Compile this module only if HD_TOP20CC is NOT defined, otherwise skip it. */ #include "tailor.h" #if !HD_TOP20CC /* * Include header files. */ # include "common.h" # include "globals.h" # include "hd-defs.h" # include "hd-data.h" # include "hd-data1.h" # include "hd-data2.h" # include "hd-data3.h" # include "hd-data4.h" # include "hd-use.h" # include "utils.h" # include "hd-data5.h" /* * All other T-Z countries specific holiday management functions. */ void tc_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Turks and Caicos Islands. */ { register int day; ptr_cc_id = "TC"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 3, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_COMMONWEALTH_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 30, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HUMAN_RIGHTS_DAY].ht_text), ptr_cc_id, "+", 10, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, "+", dvec[9 - 1], 9, year, hd_elems, fday, count); } void td_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Chad. */ { ptr_cc_id = "TD"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 11, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 13, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_OAU_DAY].ht_text), ptr_cc_id, "+", 25, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 28, 11, year, hd_elems, fday, count); } void tg_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Togo. */ { ptr_cc_id = "TG"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ECONOMIC_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 24, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 27, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 13, MONTH_MIN, year, hd_elems, fday, count); } void th_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Thailand. */ { ptr_cc_id = "TH"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); use_other_cc = !use_other_cc; if (year > 1887) { register int day; register int i; day = 6; i = weekday_of_date (day, 4, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_KING_RAMA_I_MEMORIAL_DAY].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); day = 23; i = weekday_of_date (day, 10, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_KING_RAMA_V_MEMORIAL_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); day = 10; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 5; i = weekday_of_date (day, 5, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_CORONATION_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = 5; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = DAY_MIN; i = weekday_of_date (day, 5, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 5, year, hd_elems, fday, count); day = DAY_MIN; i = weekday_of_date (day, 7, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_MID_YEAR_FESTIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 7, year, hd_elems, fday, count); day = 12; i = weekday_of_date (day, 8, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); /* Calculate the year number used in the Thai ***CIVIL*** (western oriented) calendar based on the Buddhist Era. */ sprintf (s2, "%s %d", _(hd_text[HD_THAI_NEW_YEARS_DAY].ht_text), year + 543); day = DAY_MIN; if (year > 1939) { i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += ((DAY_MAX - i) + 1); i = MONTH_MIN; } else i = 4; holiday (*init_data, detected, s2, ptr_cc_id, "+", day, i, year, hd_elems, fday, count); if (year > 1888) { day = eval_holiday (DAY_MIN, MONTH_MIN, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, MONTH_MIN, year, hd_elems, fday, count); } if (year > 1994) { day = 14; i = weekday_of_date (day, 4, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_FAMILY_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 4, year, hd_elems, fday, count); } } } void tj_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Tajikistan. */ { ptr_cc_id = "TJ"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); persian_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; if ((year > 1916) && (year < 1991)) { holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 9, 5, year, hd_elems, fday, count); } if (year > 1990) { holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 23, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 9, 9, year, hd_elems, fday, count); } } void tk_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Tokelau. */ { ptr_cc_id = "TK"; use_other_cc = !use_other_cc; nz_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void tm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Turkmenistan. */ { register int i; auto int d; auto int greg_diff; ptr_cc_id = "TM"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); persian_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; if ((year > 1916) && (year < 1991)) { holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 9, 5, year, hd_elems, fday, count); } if (year > 1990) { holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 18, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", 19, 2, year, hd_elems, fday, count); for (i = 27; i <= 28; i++) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", i, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEUTRALITY_DAY].ht_text), ptr_cc_id, "+", 12, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", 6, 10, year, hd_elems, fday, count); } /* The Christians in Turkmenistan compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); d = DAY_MIN; if (year != 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); if (year != 1924) { auto int m; auto int y; d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, m, year, hd_elems, fday, count); } holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); } void tn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Tunisia. */ { ptr_cc_id = "TN"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_EVACUATION_DAY].ht_text), ptr_cc_id, "+", 15, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 20, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", 9, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", 7, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 25, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 18, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 13, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, "+", 21, 3, year, hd_elems, fday, count); if (year > 1933) holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", 3, 9, year, hd_elems, fday, count); } void to_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Tonga. */ { ptr_cc_id = "TO"; holiday (*init_data, detected, _(hd_text[HD_THE_CROWN_PRINCES_BIRTHDAY].ht_text), ptr_cc_id, "+", 4, 5, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_TOPOU_I_DAY].ht_text), ptr_cc_id, "+", 4, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ANZAC_DAY].ht_text), ptr_cc_id, "+", 25, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 4, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 4, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, "+", 4, 7, year, hd_elems, fday, count); } void tr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Turkey. */ { ptr_cc_id = "TR"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ATATURK_MEMORIAL_DAY].ht_text), ptr_cc_id, "+", 19, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 23, 4, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 29, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 30, 8, year, hd_elems, fday, count); } void tt_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Trinidad and Tobago. */ { register int i; ptr_cc_id = "TT"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ASH_WEDNESDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); for (i = 2; i; i--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", easter - 46 - i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDIAN_ARRIVAL_DAY].ht_text), ptr_cc_id, "+", 30, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", 19, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 30, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SLAVE_LIBERATION_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if ((year > 1961) && (year < 1999)) holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 24, 9, year, hd_elems, fday, count); if (year > 1975) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", dvec[8 - 1], 8, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void tv_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Tuvalu. */ { register int day; ptr_cc_id = "TV"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, "+", 5, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COMMONWEALTH_DAY].ht_text), ptr_cc_id, "+", 11, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOSPEL_DAY].ht_text), ptr_cc_id, "+", 13, 5, year, hd_elems, fday, count); for (day = DAY_MIN; day <= 2; day++) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRINCE_OF_WALES_BIRTHDAY].ht_text), ptr_cc_id, "+", 14, 11, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void tw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Taiwan. */ { register int day; ptr_cc_id = "TW"; use_other_cc = !use_other_cc; if ((year > 1894) && (year < 1945)) japanese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); else chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); use_other_cc = !use_other_cc; for (day = DAY_MIN; day <= 2; day++) holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", 3, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MID_YEAR_FESTIVAL].ht_text), ptr_cc_id, "+", DAY_MIN, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHIANG_KAI_SHEKS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[10 - 1], 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DR_SUN_YAT_SENS_BIRTHDAY].ht_text), ptr_cc_id, "+", 12, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 10, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_TEACHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 28, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 29, 3, year, hd_elems, fday, count); } void tz_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Tanzania. */ { ptr_cc_id = "TZ"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_C_MAPINDUZI_DAY].ht_text), ptr_cc_id, "+", 5, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FARMERS_DAY].ht_text), ptr_cc_id, "+", 7, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 9, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 12, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_UNION_DAY].ht_text), ptr_cc_id, "+", 28, 4, year, hd_elems, fday, count); } void ua_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Ukraine. */ { register int i; auto int d; auto int greg_diff; ptr_cc_id = "UA"; d = 28; i = weekday_of_date (d, 6, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", d, 6, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; d = day_of_year (eval_holiday (dvec[5 - 1], 5, year, 6, FALSE), 5, year); for (i = 0; i < 2; i++) holiday (*init_data, detected, _(hd_text[HD_KIEV_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d + i, 0, year, hd_elems, fday, count); d = DAY_MIN; i = weekday_of_date (d, 5, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", d, 5, year, hd_elems, fday, count); d = 2; i = weekday_of_date (d, 5, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", d, 5, year, hd_elems, fday, count); d = DAY_MIN; i = weekday_of_date (d, MONTH_MIN, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", d, MONTH_MIN, year, hd_elems, fday, count); d = 8; i = weekday_of_date (d, 3, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", d, 3, year, hd_elems, fday, count); if (year > 1944) { d = 9; i = weekday_of_date (d, 5, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", d, 5, year, hd_elems, fday, count); } if (year > 1990) { d = 24; i = weekday_of_date (d, 8, year); if (i > 5) d += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", d, 8, year, hd_elems, fday, count); } /* The Christians in Ukraine compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); d = DAY_MIN; if (year != 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); if (year != 1924) { auto int m; auto int y; d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, m, year, hd_elems, fday, count); } holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); for (i = 0; i < 2; i++) holiday (*init_data, detected, _(hd_text[HD_HOLY_TRINITY].ht_text), ptr_cc_id, "+", easter + 56 + i, 0, year, hd_elems, fday, count); } void ug_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Uganda. */ { ptr_cc_id = "UG"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 9, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", 3, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HEROES_DAY].ht_text), ptr_cc_id, "+", 9, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); } void us_ak_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Alaska. */ { register int day; register int i; ptr_cc_id = "US_AK"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (dvec[3 - 1], 3, year, DAY_MIN, FALSE); holiday (*init_data, detected, _(hd_text[HD_SEWARDS_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); day = 18; i = weekday_of_date (day, 10, year); if (i == DAY_MAX) day++; else if (i == 6) day--; holiday (*init_data, detected, _(hd_text[HD_ALASKA_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); } void us_al_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Alabama. */ { register int day; ptr_cc_id = "US_AL"; observe_us_hdy = SASA_SUMO; use_other_cc = !use_other_cc; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_JEFFERSON_DAVIS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, MONTH_MIN, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_MARTIN_LUTHER_KINGS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 4, year, DAY_MIN, TRUE) + (3 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, "+", easter - 47, 0, year, hd_elems, fday, count); } void us_ar_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Arkansas. */ { register int day; ptr_cc_id = "US_AR"; observe_us_hdy = SASA_SUSU; use_other_cc = !use_other_cc; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, MONTH_MIN, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_MARTIN_LUTHER_KINGS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 2, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_DAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); } void us_az_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Arizona. */ { ptr_cc_id = "US_AZ"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void us_ca_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/California. */ { register int day; ptr_cc_id = "US_CA"; observe_us_hdy = SASAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = 12; if (weekday_of_date (day, 2, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); day = dvec[3 - 1]; if (weekday_of_date (day, 3, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CESAR_CHAVEZ_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); day = 9; if (weekday_of_date (day, 9, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_ADMISSION_DAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 11, year, 4, TRUE) + (3 * DAY_MAX) + 1; holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } void us_co_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Colorado. */ { ptr_cc_id = "US_CO"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", 12, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COLORADO_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); } void us_ct_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Connecticut. */ { ptr_cc_id = "US_CT"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", 12, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); } void us_dc_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/District of Columbia. */ { ptr_cc_id = "US_DC"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); if ((year > 1964) && !((1965 - year) & 3)) { register int day; day = 20; if (weekday_of_date (day, MONTH_MIN, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_PRESIDENTIAL_INAUGURATION].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); } } void us_de_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Delaware. */ { ptr_cc_id = "US_DE"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); if (year > 1844) { register int day; day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RETURN_DAY].ht_text), ptr_cc_id, "#", day + 2, 11, year, hd_elems, fday, count); } } void us_fl_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Florida. */ { ptr_cc_id = "US_FL"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", 12, 2, year, hd_elems, fday, count); } void us_ga_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Georgia. */ { register int day; ptr_cc_id = "US_GA"; observe_us_hdy = SASA_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 4, year, DAY_MIN, TRUE) + (3 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 11, year, 4, TRUE) + (3 * DAY_MAX) + 1; holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); } void us_hi_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Hawaii. */ { register int day; ptr_cc_id = "US_HI"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, 5, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_ADMISSION_DAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRINCE_KALANIANAOLE_DAY].ht_text), ptr_cc_id, "+", 26, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_KING_KAMEHAMEHA_DAY].ht_text), ptr_cc_id, "+", 26, 3, year, hd_elems, fday, count); if (year > 1844) { day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } } void us_ia_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Iowa. */ { register int day; ptr_cc_id = "US_IA"; observe_us_hdy = SASA_SUSU; use_other_cc = !use_other_cc; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; day = eval_holiday (DAY_MIN, MONTH_MIN, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_MARTIN_LUTHER_KINGS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", 12, 2, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 2, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_DAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); } void us_id_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Idaho. */ { ptr_cc_id = "US_ID"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void us_il_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Illinois. */ { register int day; ptr_cc_id = "US_IL"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 3, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CASIMIR_PULASKIS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", 12, 2, year, hd_elems, fday, count); if (year > 1844) { day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } } void us_in_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Indiana. */ { register int day; ptr_cc_id = "US_IN"; observe_us_hdy = SASA_SUSU; use_other_cc = !use_other_cc; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, MONTH_MIN, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_MARTIN_LUTHER_KINGS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); if (year > 1844) { day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } } void us_ks_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Kansas. */ { ptr_cc_id = "US_KS"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void us_ky_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Kentucky. */ { ptr_cc_id = "US_KY"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); } void us_la_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Louisiana. */ { register int day; ptr_cc_id = "US_LA"; observe_us_hdy = SASA_SUMO; use_other_cc = !use_other_cc; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, MONTH_MIN, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_MARTIN_LUTHER_KINGS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, "+", easter - 47, 0, year, hd_elems, fday, count); if (year > 1844) { day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } } void us_ma_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Massachusetts. */ { register int day; ptr_cc_id = "US_MA"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EVACUATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 17, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BUNKER_HILL_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 17, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 4, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_PATRIOTS_DAY].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); } void us_md_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Maryland. */ { register int day; ptr_cc_id = "US_MD"; observe_us_hdy = SASA_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = 12; if (weekday_of_date (day, 9, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_DEFENDERS_DAY].ht_text), ptr_cc_id, "#", day, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "#", easter - 2, 0, year, hd_elems, fday, count); day = 25; if (weekday_of_date (day, 3, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_MARYLAND_DAY].ht_text), ptr_cc_id, "#", day, 3, year, hd_elems, fday, count); day = 12; if (weekday_of_date (day, 2, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "#", day, 2, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 11, year, 4, TRUE) + (3 * DAY_MAX) + 1; holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 11, year, hd_elems, fday, count); if ((year > 1964) && !((1965 - year) & 3)) { day = 20; if (weekday_of_date (day, MONTH_MIN, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_PRESIDENTIAL_INAUGURATION].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, MONTH_MIN, year, hd_elems, fday, count); } if (year > 1844) { day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } } void us_me_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Maine. */ { register int day; ptr_cc_id = "US_ME"; observe_us_hdy = SASA_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 4, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_PATRIOTS_DAY].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); } void us_mi_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Michigan. */ { ptr_cc_id = "US_MI"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", 12, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); } void us_mn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Minnesota. */ { ptr_cc_id = "US_MN"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void us_mo_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Missouri. */ { ptr_cc_id = "US_MO"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", 12, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_TRUMAN_DAY].ht_text), ptr_cc_id, "+", 8, 5, year, hd_elems, fday, count); } void us_ms_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Mississippi. */ { register int day; ptr_cc_id = "US_MS"; observe_us_hdy = SASA_SUSU; use_other_cc = !use_other_cc; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; day = eval_holiday (DAY_MIN, MONTH_MIN, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_MARTIN_LUTHER_KINGS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 2, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_DAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 4, year, DAY_MIN, TRUE) + (3 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 11, year, 4, TRUE) + (3 * DAY_MAX) + 1; holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } void us_mt_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Montana. */ { ptr_cc_id = "US_MT"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); if (year > 1844) { register int day; day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } } void us_nc_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/North Carolina. */ { ptr_cc_id = "US_NC"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); } void us_nd_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/North Dakota. */ { ptr_cc_id = "US_ND"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); } void us_ne_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Nebraska. */ { register int day; ptr_cc_id = "US_NE"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (dvec[4 - 1], 4, year, 5, FALSE); holiday (*init_data, detected, _(hd_text[HD_ARBOR_DAY].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); } void us_nh_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/New Hampshire. */ { ptr_cc_id = "US_NH"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); if (year > 1844) { register int day; day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } } void us_nj_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/New Jersey. */ { ptr_cc_id = "US_NJ"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", 12, 2, year, hd_elems, fday, count); if (year > 1844) { register int day; day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } } void us_nm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/New Mexico. */ { ptr_cc_id = "US_NM"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void us_nv_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Nevada. */ { register int day; register int i; ptr_cc_id = "US_NV"; observe_us_hdy = SAFR_SUMO; use_other_cc = !use_other_cc; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; day = eval_holiday (DAY_MIN, 11, year, 4, TRUE) + (3 * DAY_MAX) + 1; holiday (*init_data, detected, _(hd_text[HD_FAMILY_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, MONTH_MIN, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_MARTIN_LUTHER_KINGS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = day_of_year (dvec[10 - 1], 10, year); i = weekday_of_date (dvec[10 - 1], 10, year); if (i == DAY_MAX) day++; else if (i == 6) day--; holiday (*init_data, detected, _(hd_text[HD_NEVADA_DAY].ht_text), ptr_cc_id, "+", day, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 2, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_DAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); } void us_ny_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/New York. */ { ptr_cc_id = "US_NY"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", 12, 2, year, hd_elems, fday, count); if (year > 1844) { register int day; day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } } void us_oh_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Ohio. */ { ptr_cc_id = "US_OH"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void us_ok_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Oklahoma. */ { ptr_cc_id = "US_OK"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void us_or_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Oregon. */ { ptr_cc_id = "US_OR"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void us_pa_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Pennsylvania. */ { ptr_cc_id = "US_PA"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", 14, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", 12, 2, year, hd_elems, fday, count); } void us_ri_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Rhode Island. */ { register int day; register int i; ptr_cc_id = "US_RI"; observe_us_hdy = SAMO_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = 4; i = weekday_of_date (day, 5, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); if (year > 1844) { day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } } void us_sc_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/South Carolina. */ { ptr_cc_id = "US_SC"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (year > 1844) { register int day; day = eval_holiday (DAY_MIN, 11, year, DAY_MIN, TRUE) + 1; holiday (*init_data, detected, _(hd_text[HD_ELECTION_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } } void us_sd_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/South Dakota. */ { ptr_cc_id = "US_SD"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void us_tn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Tennessee. */ { ptr_cc_id = "US_TN"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void us_tx_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Texas. */ { register int day; ptr_cc_id = "US_TX"; observe_us_hdy = SASA_SUSU; use_other_cc = !use_other_cc; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 2, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LYNDON_B_JOHNSON_DAY].ht_text), ptr_cc_id, "+", 27, 8, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, MONTH_MIN, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_MARTIN_LUTHER_KINGS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 2, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_DAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SAN_JACINTO_DAY].ht_text), ptr_cc_id, "+", 21, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SLAVE_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 19, 6, year, hd_elems, fday, count); } void us_ut_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Utah. */ { register int day; register int i; ptr_cc_id = "US_UT"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = 24; i = weekday_of_date (day, 7, year); if (i == DAY_MAX) day++; else if (i == 6) day--; holiday (*init_data, detected, _(hd_text[HD_PIONEER_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); } void us_va_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Virginia. */ { ptr_cc_id = "US_VA"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); if ((year > 1964) && !((1965 - year) & 3)) { register int day; day = 20; if (weekday_of_date (day, MONTH_MIN, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_PRESIDENTIAL_INAUGURATION].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, MONTH_MIN, year, hd_elems, fday, count); } } void us_vt_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Vermont. */ { register int day; register int i; ptr_cc_id = "US_VT"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = 16; i = weekday_of_date (day, 8, year); if (i == DAY_MAX) day++; else if (i == 6) day--; holiday (*init_data, detected, _(hd_text[HD_BENNINGTON_BATTLE_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); day = 12; i = weekday_of_date (day, 2, year); if (i == DAY_MAX) day++; else if (i == 6) day--; holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 3, year, 2, TRUE); holiday (*init_data, detected, _(hd_text[HD_TOWN_MEETING_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); } void us_wa_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Washington. */ { ptr_cc_id = "US_WA"; observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 47, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", 12, 2, year, hd_elems, fday, count); } void us_wi_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Wisconsin. */ { ptr_cc_id = "US_WI"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void us_wv_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/West Virginia. */ { register int day; register int i; ptr_cc_id = "US_WV"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = 24; i = weekday_of_date (day, MONTH_MAX, year); if (i == DAY_MAX) day++; else if (i == 6) day--; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 12; i = weekday_of_date (day, 2, year); if (i == DAY_MAX) day++; else if (i == 6) day--; holiday (*init_data, detected, _(hd_text[HD_PRESIDENT_LINCOLNS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); day = 20; i = weekday_of_date (day, 6, year); if (i == DAY_MAX) day++; else if (i == 6) day--; holiday (*init_data, detected, _(hd_text[HD_WEST_VIRGINIA_DAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = dvec[MONTH_MAX - 1]; i = weekday_of_date (day, MONTH_MAX, year); if (i == DAY_MAX) i = SPECIAL_VALUE; else if (i == 6) day--; if (i != SPECIAL_VALUE) holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); if (weekday_of_date (dvec[MONTH_MAX - 1], MONTH_MAX, year - 1) == DAY_MAX) holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); } void us_wy_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in United States/Wyoming. */ { ptr_cc_id = "US_WY"; observe_us_hdy = SAFR_SUMO; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void uy_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Uruguay. */ { register int i; ptr_cc_id = "UY"; holiday (*init_data, detected, _(hd_text[HD_BATTLE_OF_LAS_PIEDRAS].ht_text), ptr_cc_id, "+", 18, 5, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ARTIGAS_BIRTHDAY].ht_text), ptr_cc_id, "+", 19, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BLESSING_OF_THE_WATER].ht_text), ptr_cc_id, DIS_HLS_PREF, 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EXPEDITION_OF_THE_33].ht_text), ptr_cc_id, "+", 19, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 11, year, hd_elems, fday, count); for (i = 2; i; i--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46 - i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 18, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 25, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); } void uz_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Uzbekistan. */ { auto int d; auto int greg_diff; ptr_cc_id = "UZ"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); persian_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; if ((year > 1916) && (year < 1991)) { holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 9, 5, year, hd_elems, fday, count); } if (year > 1990) { holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 3, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", 18, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 9, year, hd_elems, fday, count); } /* The Christians in Uzbekistan compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); d = DAY_MIN; if (year != 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); if (year != 1924) { register int i; auto int m; auto int y; d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, m, year, hd_elems, fday, count); } holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); } void vc_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in St Vincent and Grenadines. */ { register int day; ptr_cc_id = "VC"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 7, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CARICOM_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 7, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 7, year, 2, TRUE); holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HEROES_DAY].ht_text), ptr_cc_id, "+", 22, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_SLAVE_LIBERATION_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1978) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 27, 10, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void ve_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Venezuela. */ { auto int day; auto int month; register int i; ptr_cc_id = "VE"; holiday (*init_data, detected, _(hd_text[HD_BATTLE_OF_CARABOBO].ht_text), ptr_cc_id, "+", 24, 6, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = DAY_MIN; i = weekday_of_date (day, 11, year); if ((i > DAY_MIN) && (i < 5)) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 11, year, hd_elems, fday, count); for (day = 2; day; day--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", easter - 46 - day, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); (void) doy2date (easter + 39, (days_of_february (year) == 29), &day, &month); i = weekday_of_date (day, month, year); if ((i > DAY_MIN) && (i < 5)) day = easter + 39 + (DAY_MAX - i) + 1; holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 5, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_PROCLAMATION].ht_text), ptr_cc_id, "+", 19, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); day = 15; i = weekday_of_date (day, 8, year); if ((i > DAY_MIN) && (i < 5)) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 8, year, hd_elems, fday, count); day = 8; i = weekday_of_date (day, MONTH_MAX, year); if ((i > DAY_MIN) && (i < 5)) day += (DAY_MIN - i); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PALM_SUNDAY].ht_text), ptr_cc_id, "+", easter - DAY_MAX, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SIMON_BOLIVAR_DAY].ht_text), ptr_cc_id, "+", 24, 7, year, hd_elems, fday, count); day = 19; i = weekday_of_date (day, 3, year); if ((i > DAY_MIN) && (i < 5)) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 3, year, hd_elems, fday, count); day = day_of_year (29, 6, year); i = weekday_of_date (29, 6, year); if ((i > DAY_MIN) && (i < 5)) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF2, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = 6; i = weekday_of_date (day, MONTH_MIN, year); if (i > 4) day += ((DAY_MAX - i) + 1); else day += (DAY_MIN - i); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, MONTH_MIN, year, hd_elems, fday, count); } void vg_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in British Virgin Islands. */ { register int day; register int i; ptr_cc_id = "VG"; day = eval_holiday (DAY_MIN, 3, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_COMMONWEALTH_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_TERRITORY_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_URSULAS_DAY].ht_text), ptr_cc_id, "+", 21, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); for (i = 0; i < 3; i++) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", day + i, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRINCE_OF_WALES_BIRTHDAY].ht_text), ptr_cc_id, "+", 14, 11, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void vi_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in U.S. Virgin Islands. */ { register int day; register int i; ptr_cc_id = "VI"; holiday (*init_data, detected, _(hd_text[HD_TRANSFER_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[3 - 1], 3, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (dvec[7 - 1], 7, year, DAY_MIN, FALSE) - DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_HURRICANE_SUPPLICATION_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); day = eval_holiday (dvec[10 - 1], 10, year, DAY_MIN, FALSE) - DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_HURRICANE_THANKSGIVING_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BRINGING_IN_THE_HARVEST_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 13, 11, year, hd_elems, fday, count); day = eval_holiday (dvec[4 - 1], 4, year, DAY_MAX, FALSE); for (i = 0; i < 2; i++) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, day - i, 4, year, hd_elems, fday, count); day = 25; i = weekday_of_date (day, MONTH_MAX, year); if (i == DAY_MAX) day++; else if (i == 6) day--; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 10, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = weekday_of_date (4, 7, year); if (day == DAY_MAX) day = 5; else if (day != 6) day = 4; else day = 3; holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 9, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERTY_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, MONTH_MIN, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_MARTIN_LUTHER_KINGS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 2, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_DAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); day = eval_holiday (dvec[5 - 1], 5, year, DAY_MIN, FALSE); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SLAVE_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 3, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 11, year, 4, TRUE) + (3 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); day = 11; if (weekday_of_date (day, 11, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_VETERANS_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); } void vn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Viet Nam. */ { ptr_cc_id = "VN"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_HO_CHI_MINHS_BIRTHDAY].ht_text), ptr_cc_id, "+", 19, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FOUNDING_OF_THE_COMMUNIST_PARTY].ht_text), ptr_cc_id, "+", 3, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", dvec[4 - 1], 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 2, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); } void vu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Vanuatu. */ { register int day; ptr_cc_id = "VU"; day = 25; if (weekday_of_date (day, 9, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CUSTOM_CHIEFS_DAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = 24; if (weekday_of_date (day, 7, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); day = 25; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); day = 5; if (weekday_of_date (day, 10, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = 26; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_FAMILY_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 30; if (weekday_of_date (day, 7, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, 5, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = 15; if (weekday_of_date (day, 8, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); day = 29; if (weekday_of_date (day, 11, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_UNITY_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, MONTH_MIN, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void wf_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Wallis and Futuna Islands. */ { ptr_cc_id = "WF"; use_other_cc = !use_other_cc; fr_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void ws_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in (Western) Samoa. */ { register int day; ptr_cc_id = "WS"; day = eval_holiday (DAY_MIN, 10, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_WHITE_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 10, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", day + 1, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ANZAC_DAY].ht_text), ptr_cc_id, "+", 25, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARBOR_DAY].ht_text), ptr_cc_id, "+", 3, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); for (day = DAY_MIN; day <= 3; day++) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", 7, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 15, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 4, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 24, 11, year, hd_elems, fday, count); } void ye_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Yemen. */ { ptr_cc_id = "YE"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_UNITY_FACTORY_DAY].ht_text), ptr_cc_id, "+", 7, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 30, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_UNITY_DAY].ht_text), ptr_cc_id, "+", 22, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1961) holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 26, 9, year, hd_elems, fday, count); if (year > 1962) holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 14, 10, year, hd_elems, fday, count); } void yt_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Mayotte. */ { ptr_cc_id = "YT"; use_other_cc = !use_other_cc; fr_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void yu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Serbia and Montenegro. */ { auto int d; auto int greg_diff; ptr_cc_id = "YU"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_BELGRADES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 20, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "#", 28, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 27, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); if (year > 1943) holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 11, MONTH_MIN, year, hd_elems, fday, count); /* The Christian Western churches holidays. */ holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter, 0, year, hd_elems, fday, count); /* The Christians in Serbia and Montenegro compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); d = DAY_MIN; if (year != 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); if (year != 1924) { register int i; auto int m; auto int y; d = 24; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, m, year, hd_elems, fday, count); (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); } d = day_of_year (14, MONTH_MIN, year); if (year > 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_JESUS_CIRCUMCISION].ht_text), ptr_cc_id, "+", d, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); } void za_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in South Africa. */ { register int day; ptr_cc_id = "ZA"; holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_FAMILY_DAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, 5, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = 25; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 26; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_DAY_OF_GOODWILL].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); if (year > 1992) { day = 21; if (weekday_of_date (day, 3, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_HUMAN_RIGHTS_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); day = 24; if (weekday_of_date (day, 9, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_HERITAGE_DAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); day = 16; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_DAY_OF_RECONCILIATION].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 27; if (weekday_of_date (day, 4, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_LIBERTY_DAY].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, MONTH_MIN, year) == DAY_MAX) day++; day = 9; if (weekday_of_date (day, 8, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); day = 16; if (weekday_of_date (day, 6, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); } else { holiday (*init_data, detected, _(hd_text[HD_SETTLERS_DAY].ht_text), ptr_cc_id, "+", 6, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", dvec[5 - 1], 5, year, hd_elems, fday, count); } } void zm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Zambia. */ { register int day; ptr_cc_id = "ZM"; day = 25; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_FARMERS_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); day = 24; if (weekday_of_date (day, 10, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, 5, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 7, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_HEROES_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_UNITY_DAY].ht_text), ptr_cc_id, "+", day + 1, 7, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, MONTH_MIN, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = 25; if (weekday_of_date (day, 5, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_OAU_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = 12; if (weekday_of_date (day, 3, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); } void zw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Zimbabwe. */ { ptr_cc_id = "ZW"; holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 12, 8, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 18, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEROES_DAY].ht_text), ptr_cc_id, "+", 11, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_UNITY_DAY].ht_text), ptr_cc_id, "+", 22, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_OAU_DAY].ht_text), ptr_cc_id, "+", 25, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } #endif /* !HD_TOP20CC */ gcal-4.1/src/txt2gcal.c0000664000000000000000000006265512353315577011671 00000000000000/*! * \file txt2gcal.c * \brief Creates a verbatim Gcal resource file from a text file. */ /* * Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, * 2009, 2010, 2011, 2013, 2014 Free Software Foundation, Inc. * Copyright (c) 1996, 1997, 2000 Thomas Esken * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ #include "tailor.h" #if HAVE_ASSERT_H # include #endif #if HAVE_CTYPE_H # include #endif #if HAVE_ERRNO_H # include #endif #if (!HAVE_SIGNAL_H || !HAVE_SIGNAL) && HAVE_SYS_TYPES_H /* Otherwise "gcal.h" includes . */ # include #endif #if HAVE_SYS_STAT_H # include #endif #ifndef USE_RC # define USE_RC 1 #else # if !USE_RC # undef USE_RC # define USE_RC 1 # endif #endif #include "common.h" #include "rc-defs.h" #include "txt2gcal.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS static void usage_msg __P_ ((FILE * fp, const char *prgr_name, int exit_status)); static void version_msg __P_ ((FILE * fp, const char *prgr_name, int exit_status)); static VOID_PTR my_malloc __P_ ((const int amount, const int exit_status, const char *module_name, const long module_line, const char *var_name, const int var_contents)); static VOID_PTR my_realloc __P_ ((VOID_PTR ptr_memblock, const int amount, const int exit_status, const char *module_name, const long module_line, const char *var_name, const int var_contents)); static void my_error __P_ ((const int exit_status, const char *module_name, const long module_line, const char *var_name, const int var_contents)); #if HAVE_SIGNAL && (defined(SIGINT) || defined(SIGTERM) || defined(SIGHUP)) static RETSIGTYPE handle_signal __P_ ((int the_signal)); #endif #if !HAVE_STRNCASECMP static int my_strncasecmp __P_ ((const char *s1, const char *s2, int len)); #endif /* !HAVE_STRNCASECMP */ static char *decode_format __P_ ((FILE * fp, Bool * is_eof, int *flen, int *fwidth, int *ch)); __END_DECLARATIONS /* * static variables definitions. */ #ifdef DJG /*! Set to SHRT_MAX for checking the maximum table range. */ static Usint testval = (Usint) 0; #else /*! Set to INT_MAX for checking the maximum table range. */ static Uint testval = (Uint) 0; #endif /*! Actual length of all strings. */ static Uint maxlen_max = MAXLEN_MAX; /*! The name of this executable. */ static char *prgr_name = (char *) NULL; /*! Text of `--help' option name. */ static char *help_option_name = "help"; /*! Text of `--version' option name. */ static char *version_option_name = "version"; /* * Function implementations. */ static void usage_msg (fp, prgr_name, exit_status) FILE *fp; const char *prgr_name; int exit_status; /*! Writes the program "usage" text to file `fp' and terminates the program with `exit_status'. */ { fprintf (fp, _("Usage: %s [--%s | --%s] | [TEXT-FILE | -] [DATE-PART]\n"), prgr_name, help_option_name, version_option_name); if (exit_status == EXIT_SUCCESS) { S_NEWLINE (fp); fprintf (fp, _("Email bug reports to <%s>"), BUG_REPORT_ADR1); S_NEWLINE (fp); } exit (exit_status); } static void version_msg (fp, prgr_name, exit_status) FILE *fp; const char *prgr_name; int exit_status; /*! Writes the program "version" text to file `fp' and terminates the program with `exit_status'. */ { fprintf (fp, "%s (GNU cal %s)\n", prgr_name, PACKAGE_VERSION); fprintf (fp, "%s\n", COPYRIGHT_TXT); fprintf (fp, _ ("This is free software; see the source for copying conditions.")); S_NEWLINE (fp); fprintf (fp, _("There is NO warranty, without even the implied warranty of")); S_NEWLINE (fp); fprintf (fp, _("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.")); S_NEWLINE (fp); exit (exit_status); } static VOID_PTR my_malloc (amount, exit_status, module_name, module_line, var_name, var_contents) const int amount; const int exit_status; const char *module_name; const long module_line; const char *var_name; const int var_contents; /*! Allocate AMOUNT bytes of memory dynamically, with error checking. Calls `my_error()' and terminates the program if any errors occur. AMOUNT is limited to `int' range instead of `size_t' range; this is wanted! */ { auto VOID_PTR ptr_memblock; if ((Uint) amount > testval) /* Error, table size overflow! */ my_error (ERR_INTERNAL_TABLE_CRASH, module_name, module_line, var_name, (int) testval); ptr_memblock = (VOID_PTR) malloc ((int) amount); if (ptr_memblock == (VOID_PTR) NULL) /* Error, `malloc()' failed. */ my_error (exit_status, module_name, module_line, var_name, var_contents); return (ptr_memblock); } static VOID_PTR my_realloc (ptr_memblock, amount, exit_status, module_name, module_line, var_name, var_contents) VOID_PTR ptr_memblock; const int amount; const int exit_status; const char *module_name; const long module_line; const char *var_name; const int var_contents; /*! Change the size of an allocated block of memory PTR_MEMBLOCK to AMOUNT bytes, with error checking. Calls `my_error()' and terminates the program if any errors occur. AMOUNT is limited to `int' range instead of `size_t' range; this is wanted! If PTR_MEMBLOCK is NULL, `my_malloc()' is called instead. */ { if ((Uint) amount > testval) /* Error, table size overflow! */ my_error (ERR_INTERNAL_TABLE_CRASH, module_name, module_line, var_name, (int) testval); if (ptr_memblock == (VOID_PTR) NULL) return (my_malloc (amount, exit_status, module_name, module_line, var_name, var_contents)); ptr_memblock = (VOID_PTR) realloc (ptr_memblock, (int) amount); if (ptr_memblock == (VOID_PTR) NULL) /* Error, `realloc()' failed. */ my_error (exit_status, module_name, module_line, var_name, var_contents); return (ptr_memblock); } static void my_error (exit_status, module_name, module_line, var_name, var_contents) const int exit_status; const char *module_name; const long module_line; const char *var_name; const int var_contents; /*! Displays a specific error message on STDERR channel and terminates the program with status `exit_status'. */ { fprintf (stderr, _("\n%s: abort, "), prgr_name); switch (exit_status) { case ERR_NO_MEMORY_AVAILABLE: fprintf (stderr, _("`%s' line %ld: virtual memory exhausted (%s=%d)"), module_name, module_line, var_name, var_contents); break; case ERR_INTERNAL_TABLE_CRASH: fprintf (stderr, _ ("`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'"), module_name, module_line, _("internal"), var_name, var_contents); break; default: fprintf (stderr, _("`%s' line %ld: (`%s') unmanaged error (%d)"), module_name, module_line, _("internal"), exit_status); } S_NEWLINE (stderr); exit (exit_status); } #if HAVE_SIGNAL && (defined(SIGINT) || defined(SIGTERM) || defined(SIGHUP)) static RETSIGTYPE handle_signal (the_signal) int the_signal; /*! Signal handler function which displays the numeric ID of the received signal on STDERR channel and terminates the program with ERR_TERMINATION_BY_SIGNAL exit status. */ { fflush (stdout); fprintf (stderr, _("\n%s: program aborted by signal %d\n"), prgr_name, the_signal); exit (ERR_TERMINATION_BY_SIGNAL); } #endif /* HAVE_SIGNAL && (SIGINT || SIGTERM || SIGHUP) */ #if !HAVE_STRNCASECMP static int my_strncasecmp (s1, s2, len) const char *s1; const char *s2; int len; /*! Same as the ANSI C `strncmp()' function, but case insensitive. */ { auto const Uchar *p1 = (const Uchar *) s1; auto const Uchar *p2 = (const Uchar *) s2; auto Uchar c1; auto Uchar c2; if (!len || p1 == p2) return (0); if (len < 0) len = -len; do { c1 = tolower (*p1++); c2 = tolower (*p2++); if (!c1 || c1 != c2) return (c1 - c2); } while (--len); return (c1 - c2); } #endif /* !HAVE_STRNCASECMP */ static char * decode_format (fp, is_eof, flen, fwidth, ch) FILE *fp; Bool *is_eof; int *flen; int *fwidth; int *ch; /*! Simplified check for an optional format instruction taken from `fp' stream which can either be used in case a TVAR or a `%...' special text is referenced. The template of such a format is: [ ALIGNMENT [SIGN] [LZERO] WIDTH [STYLE] [SUFFIX] FORMAT ], e.g., $[<|:|>[+][0]N[u|U|l|L|w|W][&]*|#]TVAR, resp., %[<|:|>[+][0]N[u|U|l|L|w|W][&]*|#]?, like `$:+010u&#a' or `%>20l&*Y'. ALIGNMENT: '<' == adjusts field contents at the left margin using width WIDTH. ':' == adjusts field contents in centered manner using width WIDTH. '>' == ajdusts field contents at the right margin using width WIDTH. SIGN : '+' == leads a numerical value always by its sign. LZERO : '0' == fills a numerical value up to WIDTH leading zeroes inclusivly a possibly leading explicit SIGN or an implicitly leading negative sign. WIDTH : FWIDTH_MIN...FWIDTH_MAX == is the width of the field. STYLE : 'u' == converts field contents to upper-case letters. 'l' == converts field contents to lower-case letters. 'w' == converts field contents to capitalized words. SUFFIX : '&' == provides a numerical value with an ordinal number suffix. FORMAT : '*' == does not cut the field contents after position WIDTH if it is longer than WIDTH. '#' == cuts the field contents after position WIDTH if it is longer than WIDTH. This function returns the scanned format instruction inclusive the TVAR resp., %... special text character, its length in `&flen' , and on success, a value not equal SPECIAL_VALUE in `&fwidth'. `&fwidth' is set to SPECIAL_VALUE in case an error occurs during the scan of the format instruction. `&is_eof' is set to TRUE if END_OF_FILE is detected during the scan, otherwise it is set to FALSE. `&ch' contains the last character scanned. */ { static int the_len = 0; static char *format_txt; auto char *ptr_char; static Bool is_allocated = FALSE; *is_eof = FALSE; *flen = 0; *fwidth = SPECIAL_VALUE; /* Allocate the memory area of the returned `format_txt' string. */ if (!is_allocated) { is_allocated = TRUE; /* Detect the number of digits of FWIDTH_MAX. */ *ch = FWIDTH_MAX; while (*ch) { the_len++; *ch /= 10; } /* Initial memory allocation for the `format_txt' string, which is: ALIGNMENT + [SIGN] + [LZERO] + WIDTH + [STYLE] + [SUFFIX] + FORMAT + CHAR + TERMINATOR 1 + [1+] [1+] + the_len + [1+] + [1+] 1 + 1 + 1 ==> 7 + 1('\0' terminator) + the_len(FWIDTH_MAX==up to 3 digits) ==> 11 characters maximum. */ format_txt = (char *) my_malloc (the_len + 8, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "format_txt", 0); } ptr_char = format_txt; /* Start scanning the format instruction. */ *ch = fgetc (fp); *ptr_char++ = (char) *ch; (*flen)++; switch (*ch) { case FLEFT_CHAR: case FCENTER_CHAR: case FRIGHT_CHAR: if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *ptr_char = '\0'; return (format_txt); } break; default: *ptr_char = '\0'; return (format_txt); } if (*ch == FSIGN_CHAR) { *ptr_char++ = (char) *ch; (*flen)++; if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *ptr_char = '\0'; return (format_txt); } } if (*ch == FLZERO_CHAR) { *ptr_char++ = (char) *ch; (*flen)++; if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *ptr_char = '\0'; return (format_txt); } } if (isdigit (*ch)) { if (*ch != FLZERO_CHAR) { register int len = the_len; LOOP { if (isdigit (*ch)) { *ptr_char++ = (char) *ch; (*flen)++; if (!--len) { if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *ptr_char = '\0'; return (format_txt); } break; } } else break; if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *ptr_char = '\0'; return (format_txt); } } *fwidth = 0; if (toupper (*ch) == toupper (FUPPER_CHAR) || toupper (*ch) == toupper (FLOWER_CHAR) || toupper (*ch) == toupper (FWORD_CHAR)) { *ptr_char++ = (char) *ch; (*flen)++; if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *fwidth = SPECIAL_VALUE; *ptr_char = '\0'; return (format_txt); } } if (*ch == FSUFFIX_CHAR) { *ptr_char++ = (char) *ch; (*flen)++; if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *fwidth = SPECIAL_VALUE; *ptr_char = '\0'; return (format_txt); } } switch (*ch) { case FFIX_CHAR: case FVAR_CHAR: *ptr_char++ = (char) *ch; (*flen)++; if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *fwidth = SPECIAL_VALUE; } *ptr_char++ = (char) *ch; (*flen)++; break; default: *ptr_char++ = (char) *ch; (*flen)++; *fwidth = SPECIAL_VALUE; } } else { *ptr_char++ = (char) *ch; (*flen)++; } } *ptr_char = '\0'; return (format_txt); } int main (argc, argv) int argc; char *argv[]; /*! Creates a verbatim Gcal resource file from a given text file (optional argument 1) with a given date-part (optional argument 2) and displays the results on the STDOUT channel. If no text file name or only a dash '-' is given, read input from STDIN channel. */ { auto FILE *fp = (FILE *) NULL; register int i; register int ch; register int ch2; register int ch3 = '\0'; auto int flen; auto int fwidth; auto int last_char = '\0'; auto char *s1; auto char *ptr_char; auto Bool is_eof = FALSE; auto Bool is_regular_file = TRUE; auto Bool avoid_quote_char = FALSE; auto Bool is_trailing_whitespace = FALSE; #ifdef GCAL_NLS /* Now initialize the NLS functions. */ # if HAVE_SETLOCALE setlocale (LC_ALL, ""); # endif # ifndef LOCALEDIR # define LOCALEDIR NULL # endif bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif /* Let's set `testval' to SHRT_MAX/INT_MAX if SHRT_MAX/INT_MAX itself isn't defined. This solution only works on machines with internal arithmethics based on "two complements". */ #ifdef DJG # ifdef SHRT_MAX testval = SHRT_MAX; # else /* !SHRT_MAX */ testval = ~0; testval >>= 1; # endif /* !SHRT_MAX */ #else /* !DJG */ # ifdef INT_MAX testval = INT_MAX; # else /* !INT_MAX */ testval = ~0; testval >>= 1; # endif /* !INT_MAX */ #endif /* !DJG */ #if HAVE_ASSERT_H /* To ensure safe program operations, MAXLEN_MAX must be 1024 minimum and `testval' maximum! */ assert (MAXLEN_MAX >= 1024); assert ((Uint) MAXLEN_MAX <= testval); assert (strlen (PACKAGE_VERSION) > 0); #endif /* HAVE_ASSERT_H */ /* Initial memory allocation for the `s1' string. */ s1 = (char *) my_malloc (MAXLEN_MAX, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "s1", 0); /* Detect the own program name. */ i = (int) strlen (*argv); if ((Uint) i >= maxlen_max) s1 = my_realloc ((VOID_PTR) s1, i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "s1", i + 1); strcpy (s1, *argv); #ifdef SUFFIX_SEP /* Eliminate version suffix under VMS. */ ptr_char = strrchr (s1, *SUFFIX_SEP); if (ptr_char != (char *) NULL) *ptr_char = '\0'; #endif i = (int) strlen (s1); #ifdef DJG ptr_char = strrchr (s1, *DIR2_SEP); #else /* !DJG */ ptr_char = strrchr (s1, *DIR_SEP); #endif /* !DJG */ if (ptr_char != (char *) NULL) { ptr_char++; i = (int) strlen (ptr_char); } else ptr_char = s1; if (tolower ('A') == 'a') { auto char *buf_ptr_char = ptr_char; for (; *ptr_char; ptr_char++) *ptr_char = (char) tolower (*ptr_char); ptr_char = buf_ptr_char; } /* Suppress ".exe" suffix for MSDOS, OS/2 and VMS. */ if ((i > 4) && !strcmp (ptr_char + i - 4, ".exe")) { i -= 4; *(ptr_char + i) = '\0'; } prgr_name = (char *) my_malloc (i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "prgr_name", 0); strcpy (prgr_name, ptr_char); #if HAVE_SIGNAL /* Now let's modify the signal handling a bit to make sure that temporary files are always deleted if such signals are raised. */ # ifdef SIGINT if (signal (SIGINT, SIG_IGN) != SIG_IGN) (void) signal (SIGINT, (Sig_type) handle_signal); # endif # ifdef SIGTERM if (signal (SIGTERM, SIG_IGN) != SIG_IGN) (void) signal (SIGTERM, (Sig_type) handle_signal); # endif # ifdef SIGHUP if (signal (SIGHUP, SIG_IGN) != SIG_IGN) (void) signal (SIGHUP, (Sig_type) handle_signal); # endif #endif /* HAVE_SIGNAL */ if (argc > 1) { if ((strlen (argv[1]) == 1) && (*argv[1] == *SWITCH)) /* STDIN channel explicitly wanted! */ fp = stdin; else { /* Check if `--help' or `--version' long-style option is given. */ if ((strlen (argv[1]) > 2) && (*argv[1] == *SWITCH) && (*(argv[1] + 1) == *SWITCH)) { if (!strncasecmp (argv[1] + 2, help_option_name, strlen (argv[1] + 2))) usage_msg (stdout, prgr_name, EXIT_SUCCESS); if (!strncasecmp (argv[1] + 2, version_option_name, strlen (argv[1] + 2))) version_msg (stdout, prgr_name, EXIT_SUCCESS); /* Error, unknown long-style option given. */ fprintf (stderr, _("%s: unrecognized option `%s'"), prgr_name, argv[1]); S_NEWLINE (stderr); usage_msg (stderr, prgr_name, ERR_INVALID_OPTION); } else { #if HAVE_SYS_STAT_H && defined(S_IFMT) && defined(S_IFREG) auto struct stat statbuf; /* Test if the file is a regular file, if not, this is an error! */ if (!stat (argv[1], &statbuf)) { if ((statbuf.st_mode & S_IFMT) == S_IFREG) fp = fopen (argv[1], "r"); else is_regular_file = FALSE; } #else /* !HAVE_SYS_STAT_H || !S_IFMT || !S_IFREG */ fp = fopen (argv[1], "r"); #endif /* !HAVE_SYS_STAT_H || !S_IFMT || !S_IFREG */ } } } else fp = stdin; if (fp == (FILE *) NULL) { i = (int) strlen (prgr_name) + strlen (argv[1]) + 5; if ((Uint) i >= maxlen_max) s1 = (char *) my_realloc ((VOID_PTR) s1, i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2, "s1", 0); sprintf (s1, "%s: `%s' ", prgr_name, argv[1]); #if HAVE_ERRNO_H if (!is_regular_file) fprintf (stderr, _("%s: no regular file\n"), s1); else perror (s1); exit (EXIT_FAILURE); #else /* !HAVE_ERRNO_H */ fprintf (stderr, _("%s: file not found\n"), s1); exit (ERR_FILE_NOT_FOUND); #endif /* !HAVE_ERRNO_H */ } /* Write "date"-part of resource file line. */ if (argc > 2) fprintf (stdout, "%s ", argv[2]); else fputs ("0 ", stdout); while ((ch = ch2 = fgetc (fp)) != EOF) { switch (ch) { case QUOTE_CHAR: ch2 = fgetc (fp); if (ch2 != EOF) switch (ch2) { case '\n': fprintf (stdout, "%c %c%c%c", ch, RC_NL_CHAR, ch, ch2); break; case RC_NL_CHAR: case RC_NL2_CHAR: case RC_TVAR_CHAR: case RC_SPECIAL_TEXT_CHAR: fprintf (stdout, "%c%c%c", ch, ch, ch2); break; default: fprintf (stdout, "%c%c", ch, ch2); } else fputc (ch, stdout); break; case RC_TVAR_CHAR: ptr_char = decode_format (fp, &is_eof, &flen, &fwidth, &last_char); if (!is_eof) { ch2 = *(ptr_char + flen - 1); if ((isalpha (ch2) && (fwidth != SPECIAL_VALUE || *ptr_char == ch2)) || ch3 == QUOTE_CHAR) fputc (QUOTE_CHAR, stdout); *(ptr_char + flen - 1) = '\0'; switch (ch2) { case RC_NL_CHAR: case RC_NL2_CHAR: fprintf (stdout, "%c%c%c", ch, QUOTE_CHAR, ch2); break; case RC_SPECIAL_TEXT_CHAR: case RC_TVAR_CHAR: if (*ptr_char) fprintf (stdout, "%c%s", ch, ptr_char); else fputc (ch, stdout); ungetc (ch2, fp); break; case '\n': if (*ptr_char) fprintf (stdout, "%c%s%c%c%c", ch, ptr_char, RC_NL_CHAR, QUOTE_CHAR, ch2); else fprintf (stdout, "%c%c%c%c", ch, RC_NL_CHAR, QUOTE_CHAR, ch2); if (!ch3) avoid_quote_char = TRUE; break; default: if (*ptr_char) fprintf (stdout, "%c%s%c", ch, ptr_char, ch2); else fprintf (stdout, "%c%c", ch, ch2); if (!ch3) avoid_quote_char = TRUE; if (ch2 != last_char) ungetc (last_char, fp); } } else fputc (ch, stdout); break; case RC_SPECIAL_TEXT_CHAR: ptr_char = decode_format (fp, &is_eof, &flen, &fwidth, &last_char); if (!is_eof) { ch2 = *(ptr_char + flen - 1); switch (ch2) { case RC_SHELL_ESC_CHAR: case RC_ENV_VAR_CHAR: case RC_EX_LHDY_CHAR: case RC_EX_NLHDY_CHAR: case RC_EX_AHDY_CHAR: case RC_EX_NAHDY_CHAR: case RC_EX_MON_CHAR: case RC_EX_NMON_CHAR: case RC_EX_TUE_CHAR: case RC_EX_NTUE_CHAR: case RC_EX_WED_CHAR: case RC_EX_NWED_CHAR: case RC_EX_THU_CHAR: case RC_EX_NTHU_CHAR: case RC_EX_FRI_CHAR: case RC_EX_NFRI_CHAR: case RC_EX_SAT_CHAR: case RC_EX_NSAT_CHAR: case RC_EX_SUN_CHAR: case RC_EX_NSUN_CHAR: case RC_EX_MON_2_THU_CHAR: case RC_EX_NMON_2_THU_CHAR: case RC_EX_MON_2_FRI_CHAR: case RC_EX_NMON_2_FRI_CHAR: case RC_IDATE_CHAR: case RC_EDATE_CHAR: case RC_WDNAME_CHAR: case RC_WDNR_M1_2_S7_CHAR: case RC_WDNR_M0_2_S6_CHAR: case RC_WDNR_S1_2_S7_CHAR: case RC_WDNR_S0_2_S6_CHAR: case RC_WDNR_X1_2_X7_CHAR: case RC_WDNR_X0_2_X6_CHAR: case RC_DOYNR_CHAR: case RC_DAYNR_CHAR: case RC_MONTHNAME_CHAR: case RC_MONTHNR_CHAR: case RC_YEARNR_CHAR: case RC_WEEKNR_CHAR: case RC_BYEAR_CHAR: case RC_MOON_CHAR: case RC_MOON_IMAGE_CHAR: case RC_BIO_CHAR: case RC_BIO_BAR_CHAR: case RC_TDATE_CHAR: case RC_JDAYS_CHAR: case RC_TIME_CHAR: case RC_TIME_TMI_CHAR: case RC_TIME_HR_CHAR: case RC_TIME_MI_CHAR: case RC_TIME_AMPM_CHAR: case RC_GMTIME_CHAR: case RC_GMTIME_TMI_CHAR: case RC_GMTIME_HR_CHAR: case RC_GMTIME_MI_CHAR: case RC_GMTIME_AMPM_CHAR: case RC_LT_ZONE_OFFS_CHAR: case RC_UT_ZONE_OFFS_CHAR: case RC_DISTANCE_CHAR: case RC_SUN_RISE_CHAR: case RC_SUN_SET_CHAR: case RC_SUN_DAY_CHAR: case RC_SUN_NIGHT_CHAR: case RC_MOON_RISE_CHAR: case RC_MOON_SET_CHAR: case RC_MOON_DAY_CHAR: case RC_MOON_NIGHT_CHAR: case RC_DAY_DIFF_CHAR: case RC_WEEK_DIFF_CHAR: case RC_MONTH_DIFF_CHAR: case RC_YEAR_DIFF_CHAR: case RC_HLS1S_CHAR: case RC_HLS1E_CHAR: case RC_HLS2S_CHAR: case RC_HLS2E_CHAR: case RC_HLS3S_CHAR: case RC_HLS3E_CHAR: case RC_HLS4S_CHAR: case RC_HLS4E_CHAR: case RC_HLS5S_CHAR: case RC_HLS5E_CHAR: if (fwidth != SPECIAL_VALUE || *ptr_char == ch2) fputc (QUOTE_CHAR, stdout); ch3 = '\0'; /* Fallthrough. */ default: if (ch3 == QUOTE_CHAR) fputc (QUOTE_CHAR, stdout); *(ptr_char + flen - 1) = '\0'; switch (ch2) { case RC_NL_CHAR: case RC_NL2_CHAR: fprintf (stdout, "%c%c%c", ch, QUOTE_CHAR, ch2); break; case RC_SPECIAL_TEXT_CHAR: case RC_TVAR_CHAR: if (*ptr_char) fprintf (stdout, "%c%s", ch, ptr_char); else fputc (ch, stdout); ungetc (ch2, fp); break; case '\n': if (*ptr_char) fprintf (stdout, "%c%s%c%c%c", ch, ptr_char, RC_NL_CHAR, QUOTE_CHAR, ch2); else fprintf (stdout, "%c%c%c%c", ch, RC_NL_CHAR, QUOTE_CHAR, ch2); if (!ch3) avoid_quote_char = TRUE; break; default: if (*ptr_char) fprintf (stdout, "%c%s%c", ch, ptr_char, ch2); else fprintf (stdout, "%c%c", ch, ch2); if (!ch3) avoid_quote_char = TRUE; if (ch2 != last_char) ungetc (last_char, fp); } } } else fputc (ch, stdout); break; case RC_NL_CHAR: case RC_NL2_CHAR: fputc (QUOTE_CHAR, stdout); /* Fallthrough. */ default: switch (ch) { case '\n': ch2 = fgetc (fp); if (ch2 != EOF) { switch (ch3) { case QUOTE_CHAR: fprintf (stdout, " %c%c%c", RC_NL_CHAR, ch3, ch); break; default: fprintf (stdout, "%c%c%c", RC_NL_CHAR, QUOTE_CHAR, ch); if (!ch3) avoid_quote_char = TRUE; } ungetc (ch2, fp); } break; default: if (isspace (ch) && !avoid_quote_char && !is_trailing_whitespace) fputc (QUOTE_CHAR, stdout); is_trailing_whitespace = TRUE; fputc (ch, stdout); } } if (is_eof) break; ch3 = ch2; } (void) fclose (fp); exit (EXIT_SUCCESS); } gcal-4.1/src/hd-data.h0000664000000000000000000001233012727633115011425 00000000000000#ifndef __HD_DATA_H # define __HD_DATA_H /*! * \file hd-data.h * \brief All data which is composed into the eternal holiday list header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: hd-data.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `hd_data.c'. */ extern const Cc_struct *binsearch_cc_id __P_ ((char *id)); extern void base_christian_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count, const char *cc)); extern void astronomical_hdy __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count)); extern void bahai_hdy __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count, const char *cc)); extern void bahai_mth __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count)); extern void celtic_hdy __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count, const char *cc)); extern void chinese_hdy __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count, const char *cc, const Bool is_any_meridian)); extern void chinese_mth __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count, const Bool is_any_meridian, const Bool do_chinese)); extern void christian_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void coptic_mth __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count, const Bool do_coptic)); extern void french_revolutionary_mth __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count)); extern void indian_civil_mth __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count)); extern void hebrew_hdy __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count, const char *cc)); extern void hebrew_mth __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count)); extern void islamic_hdy __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count, const char *cc)); extern void islamic_mth __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count)); extern void japanese_hdy __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count, const char *cc, const Bool is_any_meridian)); extern void multicultural_new_year_hdy __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count)); extern void old_egyptic_mth __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count, const Bool do_old_egyptic)); extern void orthodox_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count, const char *cc, const Bool is_new_calendar)); extern void persian_hdy __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count, const char *cc)); extern void persian_mth __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count)); extern void zodiacal_marker_hdy __P_ ((Bool * init_data, const Bool detected, const int year, int *hd_elems, const int fday, const int count)); __END_DECLARATIONS #endif /* __HD_DATA_H */ gcal-4.1/src/print.c0000664000000000000000000011654412244130561011255 00000000000000/*! * \file print.c * \brief Create, construct and print the calendar sheet(s). */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include header files. */ #include "tailor.h" #include "common.h" #if USE_RC # include "rc-defs.h" #endif /* USE_RC */ #include "globals.h" #include "hd-defs.h" #include "hd-use.h" #if USE_RC # include "rc-use.h" #endif /* USE_RC */ #include "tty.h" #include "utils.h" #include "print.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `print.c'. */ static void fill_year_vector __P_ ((int year)); static Bool print_unhighlighted_date __P_ ((Bool marker_flag)); static Bool print_highlighted_date __P_ ((const Bool last_item, const Bool marker_flag, const char *hls_start, const int hls_slen, const char *hls_end, const int hls_elen)); __END_DECLARATIONS /* * static variables definitions. */ /*! Standard or special year dates. */ static int year_vector[VEC_ELEMS]; /*! Special year dates only. */ static int special_vector[VEC_ELEMS]; /* * Function implementations. */ void print_calendar () /*! Prints one or more single month/year calendar(s). */ { auto Slint amount = 0L; auto Slint count; register int tmp_ad = act_day; register int i; register int j; register int n; register int lym; register int d; register int m; register int mm; register int yy; register int outer_end = (special_calsheet_flag) ? MONTH_COLS : DAY_MAX; register int inner_end; register int blanks_between = (special_calsheet_flag) ? 5 : 2; register int hday; auto int hmonth; auto int this_day; auto int this_month; auto Bool is_marked = FALSE; auto Bool marker_flag = FALSE; auto Bool y_backwards = FALSE; auto Bool m_backwards = FALSE; if (cal_special_flag) act_day = day_of_year (tmp_ad, act_month, act_year); /* Evaluate the entries of `month_list': Set the actual list/range/fiscal year mode and initialize the controlling variables of the main loop. */ if (is_special_range || is_multi_range) { y_backwards = (Bool) ((*month_list).ml_year > month_list[1].ml_year); if (y_backwards) amount = (*month_list).ml_year - month_list[1].ml_year + 1L; else amount = month_list[1].ml_year - (*month_list).ml_year + 1L; if (is_multi_range) { m_backwards = (Bool) ((*month_list).ml_month > month_list[1].ml_month); if (m_backwards) i = (*month_list).ml_month - month_list[1].ml_month + 1; else i = month_list[1].ml_month - (*month_list).ml_month + 1; amount *= (Slint) i; } month = (*month_list).ml_month; year = (*month_list).ml_year; } else if (!is_ext_range) for (i = 0; month_list[i].ml_month; i++) { if (!month_list[i].ml_year) { if (year != act_year) month_list[i].ml_year = year; else month_list[i].ml_year = act_year; } amount++; } else { if (!is_ext_year) { if (!(*month_list).ml_year) (*month_list).ml_year = act_year; if (!month_list[1].ml_year) month_list[1].ml_year = act_year; y_backwards = (Bool) ((*month_list).ml_year > month_list[1].ml_year || (((*month_list).ml_year == month_list[1].ml_year) && ((*month_list).ml_month > month_list[1].ml_month))); if (y_backwards) amount = ((((*month_list).ml_year - 1L) - month_list[1].ml_year) * MONTH_MAX) + (*month_list).ml_month + ((MONTH_MAX - month_list[1].ml_month) + 1L); else amount = (((month_list[1].ml_year - 1L) - (*month_list).ml_year) * MONTH_MAX) + month_list[1].ml_month + ((MONTH_MAX - (*month_list).ml_month) + 1L); month = (*month_list).ml_month; year = (*month_list).ml_year; } else { if (is_fiscal_year) { y_backwards = (Bool) ((*month_list).ml_year > month_list[1].ml_year); if (y_backwards) amount = ((*month_list).ml_year - month_list[1].ml_year) + 1L; else amount = (month_list[1].ml_year - (*month_list).ml_year) + 1L; year = (*month_list).ml_year; } else { y_backwards = (Bool) ((*month_list).ml_month > month_list[1].ml_month); if (y_backwards) amount = ((*month_list).ml_month - month_list[1].ml_month) + 1L; else amount = (month_list[1].ml_month - (*month_list).ml_month) + 1L; year = (*month_list).ml_month; } } } if (is_fiscal_year) fiscal_month = (*month_list).ml_month; if (!fiscal_month) fiscal_month = act_month; if (!amount) amount++; #if USE_RC /* A `-cNw' option and no explicit date given: Set the correct month/year to display. */ if (rc_week_year_flag && !rc_period_list && !is_date_given) { i = weekno2doy (rc_period, act_year, iso_week_number, start_day); if (i != -WEEK_MAX) { if (i < DAY_MIN || i + DAY_MAX - 1 > DAY_LAST + is_leap_year) { is_2month_mode = is_fiscal_year = TRUE; (*month_list).ml_month = fiscal_month = MONTH_MAX; if (i < DAY_MIN) (*month_list).ml_year = --year; } else { (void) doy2date (i, is_leap_year, &day, &month); m = month; (void) doy2date (i + DAY_MAX - 1, is_leap_year, &day, &month); if (m != month) { is_2month_mode = is_fiscal_year = TRUE; month = fiscal_month = m; } else is_1month_mode = TRUE; (*month_list).ml_month = month; } if (is_2month_mode) { if (cal_both_dates_flag) { out_rows = B2_OUT_ROWS; out_cols = B2_OUT_COLS; } else { out_rows = A2_OUT_ROWS; out_cols = A2_OUT_COLS; } } } } #endif /* All necessary global initializations done, so let's enter the loop. */ for (count = 0L; count < amount; count++) { /* If the loop must be processed multiple, we have to re-initialize the affected variables according to actual mode. */ mm = yy = 0; if (!is_ext_list && !is_ext_range && !is_special_range && !is_multi_range) { /* If a month calendar of only the current year is wanted resp., a year calendar of only the current year is wanted: Initialize the touched variables. */ month = month_list[(int) count].ml_month; if (month_list[(int) count].ml_year) year = month_list[(int) count].ml_year; if (count) yy = year; #if USE_RC /* Modify the actual date. */ if (rc_period_flag && (rc_forwards_flag || rc_backwards_flag) && !rc_period_list && !is_date_given) { if (cal_special_flag) i = act_day; else i = day_of_year (tmp_ad, act_month, act_year); if (rc_forwards_flag) { /* Correction in case date occurs during Gregorian Reformation period. */ if ((act_year == greg->year) && (i < day_of_year (greg->first_day, greg->month, greg->year)) && (i + rc_period >= day_of_year (greg->first_day, greg->month, greg->year))) i += (greg->last_day - greg->first_day + 1); i += rc_period; } else { /* Correction in case date occurs during Gregorian Reformation period. */ if ((act_year == greg->year) && (i > day_of_year (greg->last_day, greg->month, greg->year)) && (i - rc_period <= day_of_year (greg->last_day, greg->month, greg->year))) i -= (greg->last_day - greg->first_day + 1); i -= rc_period; } if ((i > 0) && (i < DAY_LAST + is_leap_year + 1)) { (void) doy2date (i, is_leap_year, &day, &month); act_month = month; if (cal_special_flag) act_day = day_of_year (day, month, act_year); else act_day = day; } } #endif /* USE_RC */ } else if (is_ext_list) { if (!is_ext_year) { month = month_list[(int) count].ml_month; if (count && (year == month_list[(int) count].ml_year)) yy = year; else year = month_list[(int) count].ml_year; } else { month = 0; if (is_fiscal_year) { if (count && (fiscal_month == month_list[(int) count].ml_month) && (year == month_list[(int) count].ml_year)) { mm = fiscal_month; yy = year; } else { fiscal_month = month_list[(int) count].ml_month; year = month_list[(int) count].ml_year; } } else { if (count && (year == month_list[(int) count].ml_month)) yy = year; else year = month_list[(int) count].ml_month; } } } else if ((is_ext_range || is_special_range || is_multi_range) && count) { if (!is_special_range && !is_multi_range && !is_ext_year) { yy = year; if (y_backwards) { month--; if (month < MONTH_MIN) month = MONTH_MAX, year--; } else { month++; if (month > MONTH_MAX) month = MONTH_MIN, year++; } } else { if (!is_special_range && !is_multi_range) month = 0; if (is_multi_range) { if (m_backwards) { month--; if (month < month_list[1].ml_month) { month = (*month_list).ml_month; if (y_backwards) year--; else year++; } else yy = year; } else { month++; if (month > month_list[1].ml_month) { month = (*month_list).ml_month; if (y_backwards) year--; else year++; } else yy = year; } } else if (y_backwards) year--; else year++; } } else if (!is_special_range && !is_multi_range && is_ext_year) month = 0; if (yy != year || (is_fiscal_year && (mm != fiscal_month))) { is_leap_year = (days_of_february (year) == 29); if (count) for (i = 0; i < VEC_ELEMS; i++) year_vector[i] = special_vector[i] = 0; /* Build the year calendar data structure. */ fill_year_vector (year); /* Get the dates of the eternal holidays; used for highlighting the calendar. */ if (((year == EASTER_MIN - 1) && (fiscal_month > MONTH_MIN)) || ((year >= EASTER_MIN) && (year <= EASTER_MAX))) print_all_holidays (TRUE, TRUE); else if (count) for (i = 0; i < HD_MAX; i++) hd_ldays[i] = '\0'; } else /* Get the actual dates of holidays; used for highlighting the calendar. */ if (((year == EASTER_MIN - 1) && (fiscal_month > MONTH_MIN)) || ((year >= EASTER_MIN) && (year <= EASTER_MAX))) print_all_holidays (TRUE, TRUE); *s1 = '\0'; /* All necessary initializations done. So print a month calendar / year calendar of the required year. */ if (!is_ext_year && !is_fiscal_year #if USE_RC && !is_2month_mode #endif && (month || is_ext_list || is_ext_range || is_special_range || is_multi_range)) { /* If no explicit request for suppressing the calendar sheet is given in the command line (`-u' option), create it! (What else is the expense in this source file good for?) */ if (!suppr_cal_flag) { lym = len_year_max; if (transform_year) { n = year - transform_year; if ((n >= 0) && (transform_year > 0)) n++; if (abs (n) > YEAR_MAX) lym++; } else n = year; /* Print the month calendar sheet and if needed the fixed dates, which are related to the month and the eternal holidays related to the month. */ print_text (stdout, s1); if (special_calsheet_flag) { /* Print the month calendar in the special format: Initialize the terminating value of the inner loop. */ inner_end = DAY_MAX; /* Print the month header in centered manner. */ if (use_year_zeroleaded) { i = ((format_len * DAY_MAX) >> 1) + ((strlen (month_name (month)) + lym + 1) >> 1) - lym; sprintf (s1, "%*s %0*d", i, month_name (month), lym, n); } else { sprintf (s1, "%d", n); d = (int) strlen (s1); i = ((format_len * DAY_MAX) >> 1) + ((strlen (month_name (month)) + d + 1) >> 1) - d; sprintf (s1, "%*s %d", i, month_name (month), n); } print_text (stdout, s1); /* Print the day names. */ for (i = DAY_MIN; i <= DAY_MAX; i++) { if (use_short3_day_name && (format_len > FORMAT_LEN_MIN)) sprintf (s2, "%*s", format_len, short3_day_name (SDAY (i, start_day))); else sprintf (s2, "%*s", format_len, short_day_name (SDAY (i, start_day))); strcat (s1, s2); } if (cal_with_week_number) { /* The short week text which should be a proper abbreviation of "calendar week", consists of 2 letters and is separated by one space character of the month calendar. */ /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "Calendar Week". */ sprintf (s2, " %2s", _("CW")); strcat (s1, s2); } } else { /* Print the month calendar in the standard format: Initialize the terminating value of the inner loop. */ inner_end = MONTH_COLS; /* Print the month header. */ if (use_year_zeroleaded) sprintf (s1, "%s %0*d", month_name (month), lym, n); else sprintf (s1, "%s %d", month_name (month), n); print_text (stdout, s1); if (cal_with_week_number) sprintf (s3, "%-*s", len_dayname_max + blanks_between, _("Week")); } print_text (stdout, s1); /* Print the days. */ for (i = 1; i <= outer_end; i++) { if (!special_calsheet_flag) /* Print the day names. */ sprintf (s1, "%-*s", len_dayname_max + blanks_between, day_name (SDAY (i, start_day))); for (d = 1; d <= inner_end; d++) { /* Compute the days position in `year_vector'. */ if (special_calsheet_flag) day = (month - 1) * VEC_BLOCK - 1 + (i - 1) * DAY_MAX + d; else day = (month - 1) * VEC_BLOCK - 1 + d * DAY_MAX - MONTH_COLS + i - 1; /* Is `day' the actual day? */ if (highlight_flag && (year_vector[day] == act_day) && (month == act_month) && (year == act_year)) { if (is_marked && (ehls1s.len == 1)) marker_flag = print_highlighted_date (d == inner_end, is_marked, "", 0, ehls1e.seq, ehls1e.len); else is_marked = marker_flag = print_highlighted_date (d == inner_end, is_marked, ehls1s.seq, ehls1s.len, ehls1e.seq, ehls1e.len); } else { /* Is `day' a legal holiday? */ j = 0; if (year_vector[day]) { if (cal_special_flag) (void) doy2date (year_vector[day], is_leap_year, &this_day, &month); else this_day = year_vector[day]; if (hd_ldays [((month - 1) * MONTH_LAST) + (this_day - 1)]) j = 1; } if (j && highlight_flag) { /* `day' is a legal holiday! */ if (is_marked && (ehls2s.len == 1)) marker_flag = print_highlighted_date (d == inner_end, is_marked, "", 0, ehls2e.seq, ehls2e.len); else is_marked = marker_flag = print_highlighted_date (d == inner_end, is_marked, ehls2s.seq, ehls2s.len, ehls2e.seq, ehls2e.len); } else { /* `day' is no holiday! */ marker_flag = print_unhighlighted_date (marker_flag); is_marked = FALSE; } } if (cal_with_week_number && ((special_calsheet_flag && (d == inner_end)) || (!special_calsheet_flag && (i == 1)))) { j = SPECIAL_VALUE; if (special_calsheet_flag) { j = 0; day -= (DAY_MAX - 1); if (day >= 0) { while ((j < DAY_MAX) && (day + j < VEC_ELEMS) && !year_vector[day + j]) j++; if ((j != DAY_MAX) && (day + j < VEC_ELEMS)) { if (cal_special_flag) { (void) doy2date (year_vector[day + j], is_leap_year, &day, &month); j = week_number (day, month, year, iso_week_number, start_day); } else j = week_number (year_vector[day + j], month, year, iso_week_number, start_day); } else j = SPECIAL_VALUE; } else j = SPECIAL_VALUE; } else { j = 0; while ((j < DAY_MAX) && (day + j < VEC_ELEMS) && !year_vector[day + j]) j++; if ((j != DAY_MAX) && (day + j < VEC_ELEMS)) { if (cal_special_flag) { (void) doy2date (year_vector[day + j], is_leap_year, &day, &month); j = week_number (day, month, year, iso_week_number, start_day); } else j = week_number (year_vector[day + j], month, year, iso_week_number, start_day); } else j = SPECIAL_VALUE; } if (j != SPECIAL_VALUE) { /* We convert the computed week number to a week number text (this looks nicer in output). */ if (j < 0) /* Week starts in previous year and the first days of the actual year are not in its first week. */ sprintf (s2, "%02d/0", -j); else if (!j) /* Week starts in previous year and the first days of the actual year are in its first week. */ sprintf (s2, "%s", "53/1"); else /* Week starts in actual year. */ sprintf (s2, "%02d", j); if (!special_calsheet_flag && (strlen (s2) > 2) && (d == 1)) { j = (int) strlen (s3); s3[j - 2] = '\0'; } } else if (special_calsheet_flag || (!special_calsheet_flag && (i == 1))) strcpy (s2, " "); if (special_calsheet_flag) { if (!is_marked || (is_marked && ((ehls1s.len > 1) || (ehls2s.len > 1)))) strcat (s1, " "); strcat (s1, s2); } else { sprintf (s4, "%*s", format_len - 2, ""); strcat (s3, s4); strcat (s3, s2); } } } /* Print the constructed line. */ print_text (stdout, s1); is_marked = marker_flag = FALSE; } if (cal_with_week_number && !special_calsheet_flag) { print_text (stdout, s1); print_text (stdout, s3); } } #if USE_RC /* Print the fixed dates list. */ if (rc_use_flag && (is_ext_list || is_ext_range || is_special_range || is_multi_range || amount > 1L)) rc_use (); #endif /* Print the eternal holiday list. */ if (holiday_flag && (is_ext_list || is_ext_range || is_special_range || is_multi_range || amount > 1L) && (((year == EASTER_MIN - 1) && (fiscal_month > MONTH_MIN)) || ((year >= EASTER_MIN) && (year <= EASTER_MAX)))) print_all_holidays (FALSE, FALSE); } else { /* If no explicit request for suppressing the calendar sheet is given in command line (`-u' option), create it! */ if (!suppr_cal_flag) { register int n2; lym = len_year_max; if (transform_year) { n = year - transform_year; if ((n >= 0) && (transform_year > 0)) n++; n2 = (year - transform_year) + 1; if ((n2 >= 0) && (transform_year > 0)) n2++; if (abs (n) > YEAR_MAX || abs (n2) > YEAR_MAX) lym++; } else { n = year; n2 = year + 1; } /* Print the year calendar sheet and if needed: The fixed dates related to the year and the eternal holidays related to the year. */ print_text (stdout, s1); print_text (stdout, s1); if (special_calsheet_flag) { /* Print the year calendar in the special format: Initialize the terminating value of the inner loop. */ inner_end = DAY_MAX * out_cols; /* Compute the position of the year number. */ i = ((out_cols - 1) * blanks_between + out_cols * format_len * DAY_MAX) >> 1; } else { /* Print the year calendar in the standard format: Initialize the terminating value of the inner loop. */ inner_end = MONTH_COLS * out_cols; /* Compute the position of the year number. */ i = (out_cols * format_len * MONTH_COLS + 2 + blanks_between) >> 1; } /* Print the year header. */ if ((!is_3month_mode #if USE_RC && !is_2month_mode #endif && !is_3month_mode2 && (fiscal_month > MONTH_MIN) && (year + 1 <= YEAR_MAX)) #if USE_RC || (is_2month_mode && (fiscal_month == MONTH_MAX)) #endif || (is_3month_mode && (fiscal_month >= MONTH_MAX - 1))) { if (use_year_zeroleaded) sprintf (s1, "%*s%0*d/%0*d", i - lym, "", lym, n, lym, n2); else { sprintf (s1, "%d", n); d = (int) strlen (s1); sprintf (s1, "%d", n2); d += (int) strlen (s1); sprintf (s1, "%*s%d/%d", i - (d >> 1), "", n, n2); } } else { if (use_year_zeroleaded) sprintf (s1, "%*s%0*d", i - (lym >> 1), "", lym, n); else { sprintf (s1, "%d", n); d = (int) strlen (s1); sprintf (s1, "%*s%d", i - (d >> 1), "", n); } } print_text (stdout, s1); print_text (stdout, s1); print_text (stdout, s1); for (m = 0; m < out_rows; m++) { if (special_calsheet_flag) { /* Print the month header in centered manner. */ for (i = 1; i <= out_cols; i++) { d = ((format_len * DAY_MAX) >> 1) + (strlen (month_name (SMONTH (m * out_cols + i, fiscal_month))) >> 1); sprintf (s2, "%*s", d, month_name (SMONTH (m * out_cols + i, fiscal_month))); strcat (s1, s2); if (i != out_cols) { sprintf (s2, "%*s", (format_len * DAY_MAX) - (d - blanks_between), ""); strcat (s1, s2); } } print_text (stdout, s1); /* Print the day names. */ for (i = 1; i <= out_cols; i++) { for (d = DAY_MIN; d <= DAY_MAX; d++) { if (use_short3_day_name && (format_len > FORMAT_LEN_MIN)) sprintf (s2, "%*s", format_len, short3_day_name (SDAY (d, start_day))); else sprintf (s2, "%*s", format_len, short_day_name (SDAY (d, start_day))); strcat (s1, s2); } if (cal_with_week_number) { /* The short week text which should be a proper abbreviation of "calendar week", consists of 2 letters and is separated by one space character of the month calendar. */ /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "Calendar Week". */ sprintf (s2, " %2s", _("CW")); strcat (s1, s2); } if (i != out_cols) { sprintf (s2, "%*s", (cal_with_week_number) ? blanks_between - 3 : blanks_between, ""); strcat (s1, s2); } } } else { /* Print the month header. */ if (use_short3_day_name) strcat (s1, " "); for (i = 1; i <= out_cols; i++) { strcpy (s2, month_name (SMONTH (m * out_cols + i, fiscal_month))); d = (int) strlen (s2); sprintf (s2, "%*s%s", 2 + blanks_between + 1, "", month_name (SMONTH (m * out_cols + i, fiscal_month))); strcat (s1, s2); if (i != out_cols) { sprintf (s2, "%*s", (format_len * MONTH_COLS) - (d + 2 + blanks_between + 1), ""); strcat (s1, s2); } } if (cal_with_week_number) { if (use_short3_day_name) j = 3; else j = 2; /* The short week text which should be a proper abbreviation of "calendar week", consists of 2 letters and is separated by one space character of the month calendar. */ /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "Calendar Week". */ sprintf (s3, "%-*s", j + blanks_between, _("CW")); } print_text (stdout, s1); } print_text (stdout, s1); /* Print the days. */ for (i = 1; i <= outer_end; i++) { if (!special_calsheet_flag) { /* Print the day name. */ if (use_short3_day_name) sprintf (s1, "%-*s", 3 + blanks_between, short3_day_name (SDAY (i, start_day))); else sprintf (s1, "%-*s", 2 + blanks_between, short_day_name (SDAY (i, start_day))); } for (d = 1; d <= inner_end; d++) { /* Compute the days position in `year_vector'. */ if (special_calsheet_flag) day = m * out_cols * VEC_BLOCK - 1 + (((d - 1) / DAY_MAX) * VEC_BLOCK) + ((i - 1) * DAY_MAX) + ((d - 1) % DAY_MAX) + 1; else day = m * out_cols * VEC_BLOCK - 1 + (d * DAY_MAX - MONTH_COLS) + (i - 1); hday = (m * out_cols) + ((d - 1) / ((special_calsheet_flag) ? DAY_MAX : MONTH_COLS)) + 1; hmonth = SMONTH (hday, fiscal_month); /* Is `day' the actual day? */ if (highlight_flag && (year_vector[day] == act_day) && (hmonth == act_month) && (act_year == ((hday > hmonth) ? year + 1 : year))) { if (is_marked && (ehls1s.len == 1)) marker_flag = print_highlighted_date (TRUE, is_marked, "", 0, ehls1e. seq, ehls1e. len); else is_marked = marker_flag = print_highlighted_date ((ehls1s.len == 1) ? TRUE : FALSE, is_marked, ehls1s.seq, ehls1s.len, ehls1e.seq, ehls1e.len); } else { /* Is `day' a legal holiday? */ j = 0; if (year_vector[day]) { if (cal_special_flag) (void) doy2date (year_vector[day + j], (hday > hmonth) ? days_of_february (year + 1) == 29 : is_leap_year, &this_day, &this_month); else { this_day = year_vector[day]; this_month = hmonth; } if (hd_ldays [((this_month - 1) * MONTH_LAST) + (this_day - 1)]) j = 1; } if (j && highlight_flag) { /* `day' is a legal holiday! */ if (is_marked && (ehls2s.len == 1)) marker_flag = print_highlighted_date (TRUE, is_marked, "", 0, ehls2e.seq, ehls2e.len); else is_marked = marker_flag = print_highlighted_date ((ehls2s.len == 1) ? TRUE : FALSE, is_marked, ehls2s.seq, ehls2s.len, ehls2e.seq, ehls2e.len); } else { /* `day' is no holiday! */ marker_flag = print_unhighlighted_date (marker_flag); is_marked = FALSE; } } if (cal_with_week_number && ((special_calsheet_flag && !(d % DAY_MAX)) || (!special_calsheet_flag && (i == 1)))) { j = SPECIAL_VALUE; if (special_calsheet_flag) { j = 0; day -= (DAY_MAX - 1); if (day >= 0) { while ((j < DAY_MAX) && (day + j < VEC_ELEMS) && !year_vector[day + j]) j++; if ((j != DAY_MAX) && (day + j < VEC_ELEMS)) { if (cal_special_flag) { (void) doy2date (year_vector [day + j], (hday > hmonth) ? days_of_february (year + 1) == 29 : is_leap_year, &day, &hmonth); j = week_number (day, hmonth, (hday > hmonth) ? year + 1 : year, iso_week_number, start_day); } else j = week_number (year_vector [day + j], hmonth, (hday > hmonth) ? year + 1 : year, iso_week_number, start_day); } else j = SPECIAL_VALUE; } else j = SPECIAL_VALUE; } else { j = 0; while ((j < DAY_MAX) && (day + j < VEC_ELEMS) && !year_vector[day + j]) j++; if ((j != DAY_MAX) && (day + j < VEC_ELEMS)) { if (cal_special_flag) { (void) doy2date (year_vector[day + j], (hday > hmonth) ? days_of_february (year + 1) == 29 : is_leap_year, &day, &hmonth); j = week_number (day, hmonth, (hday > hmonth) ? year + 1 : year, iso_week_number, start_day); } else j = week_number (year_vector[day + j], hmonth, (hday > hmonth) ? year + 1 : year, iso_week_number, start_day); } else j = SPECIAL_VALUE; } if (j != SPECIAL_VALUE) { /* We convert the computed week number to a week number text (this looks nicer in output). */ if (j < 0) /* Week starts in previous year and the first days of the actual year are not in its first week. */ sprintf (s2, "%02d", -j); else if (!j) /* Week starts in previous year and the first days of the actual year are in its first week. */ sprintf (s2, "%02d", 1); else /* Week starts in actual year. */ sprintf (s2, "%02d", j); } else if (special_calsheet_flag || (!special_calsheet_flag && (i == 1))) strcpy (s2, " "); if (special_calsheet_flag) { if (!is_marked) strcat (s1, " "); strcat (s1, s2); } else { sprintf (s4, "%*s", format_len - 2, ""); strcat (s3, s4); strcat (s3, s2); } } /* If we have completed a day line of a month: Concatenate some separating blanks between the months. */ if (special_calsheet_flag && !(d % DAY_MAX) && (d != DAY_MAX * out_cols)) { sprintf (s2, "%*s", (cal_with_week_number) ? blanks_between - 3 : blanks_between, ""); if (cal_with_week_number && is_marked) strcat (s2, " "); strcat (s1, s2); } } /* Print the constructed line. */ print_text (stdout, s1); marker_flag = is_marked = FALSE; } if (cal_with_week_number && !special_calsheet_flag) { print_text (stdout, s1); print_text (stdout, s3); } /* Print two NEWLINE characters between the month rows. */ if (m < out_rows - 1) { print_text (stdout, s1); print_text (stdout, s1); } } } #if USE_RC /* Print the fixed dates list. */ if (rc_use_flag && (is_ext_list || is_ext_range)) rc_use (); #endif /* Print the eternal holiday list. */ if (is_ext_year && holiday_flag && (((year == EASTER_MIN - 1) && (fiscal_month > MONTH_MIN)) || ((year >= EASTER_MIN) && (year <= EASTER_MAX)))) print_all_holidays (FALSE, FALSE); } } #if USE_RC /* A `-cNw' option and no explicit date given: Reset some affected global variables. */ if (is_1month_mode || is_2month_mode) { is_fiscal_year = TRUE; fiscal_month = month; year = act_year; } else /* Re-initialize the actual date. */ if (rc_period_flag && (rc_forwards_flag || rc_backwards_flag) && !rc_period_list && !is_date_given) (void) get_actual_date (); else #endif /* USE_RC */ if (cal_special_flag) act_day = tmp_ad; } static void fill_year_vector (year) int year; /*! Builds the "standard" year vector and the "special" year vector according to the delivered `year'. */ { #if !USE_RC register int days_of_feb = days_of_february (year); #endif register int i; register int j; register int count; register int d; register int m = fiscal_month; /* First, detect starting day of the fiscal/standard year. */ i = weekday_of_date (DAY_MIN, m, year); i = day = SYEAR (i, start_day); j = d = 0; if (fiscal_month > MONTH_MIN) count = day_of_year (DAY_MIN, m, year) - 1; else count = 0; /* Then, fill the year vector. */ LOOP { d++; count++; #if USE_RC if (!valid_date (d, m, year)) #else /* !USE_RC */ if (((m != 2) && (d > dvec[m - 1])) || ((m == 2) && (d > days_of_feb))) #endif /* !USE_RC */ { j++; if ((m < MONTH_MAX) && (j < MONTH_MAX)) { if (fiscal_month > MONTH_MIN) i = j * VEC_BLOCK + day; else i = m * VEC_BLOCK + day; d = DAY_MIN; m++; } else { if (fiscal_month > MONTH_MIN) { year++; if (j == MONTH_MAX || year > YEAR_MAX) break; i = j * VEC_BLOCK + day; count = d = DAY_MIN; m = MONTH_MIN; #if !USE_RC days_of_feb = days_of_february (year); #endif } else break; } } if ((year == greg->year) && (m == greg->month) && ((d >= greg->first_day) && (d <= greg->last_day))) i--; else { day++; if (cal_special_flag) year_vector[i - 1] = count; else year_vector[i - 1] = d; special_vector[i - 1] = count; } i++; if (day > DAY_MAX) day = DAY_MIN; } } static Bool print_unhighlighted_date (marker_flag) Bool marker_flag; /*! Prints a date in NON-highlighted manner. If the MARKER_FLAG is set to TRUE when entering this function, this indicates, that a highlighting sequence/marking character pair was already displayed previously (or better adjacent) in the same row of the line, so it can be set to FALSE now and returned by this function, otherwise it will be returned untouched (means it was FALSE). The respection of this MARKER_FLAG is absolutely necessary to format the line properly. */ { if (cal_both_dates_flag) { if (year_vector[day]) { if (marker_flag) { if (use_day_zeroleaded) sprintf (s2, "%02d(%03d)", year_vector[day], special_vector[day]); else sprintf (s2, "%2d(%3d)", year_vector[day], special_vector[day]); marker_flag = FALSE; } else if (use_day_zeroleaded) sprintf (s2, " %02d(%03d)", year_vector[day], special_vector[day]); else sprintf (s2, " %2d(%3d)", year_vector[day], special_vector[day]); } else { if (marker_flag) { sprintf (s2, "%*s", format_len - 1, ""); marker_flag = FALSE; } else sprintf (s2, "%*s", format_len, ""); } } else { if (year_vector[day]) { if (marker_flag) { if (use_day_zeroleaded) sprintf (s2, "%0*d", format_len - 1, year_vector[day]); else sprintf (s2, "%*d", format_len - 1, year_vector[day]); marker_flag = FALSE; } else if (use_day_zeroleaded) sprintf (s2, " %0*d", format_len - 1, year_vector[day]); else sprintf (s2, "%*d", format_len, year_vector[day]); } else { if (marker_flag) { sprintf (s2, "%*s", format_len - 1, ""); marker_flag = FALSE; } else sprintf (s2, "%*s", format_len, ""); } } strcat (s1, s2); return (marker_flag); } static Bool print_highlighted_date (last_item, marker_flag, hls_start, hls_slen, hls_end, hls_elen) const Bool last_item; const Bool marker_flag; const char *hls_start; const int hls_slen; const char *hls_end; const int hls_elen; /*! Prints a date in highlighted manner using the given highlighting sequence, which consists of the "starting" highlighting sequence HLS_START and the "ending/final" highlighting sequence HLS_END, for distinguishing whether a real highlighting sequence is given. The lengths of such a highlighting sequence/marking character pair are delivered, too. If these lengths are greater ONE, it's assumed that a "real" (Termcap/ANSI) highlighting sequence pair is given, otherwise a marking character pair. If the MARKER_FLAG is set to TRUE when entering this function, this indicates, that a highlighting sequence/marking character pair was already displayed previously (or better adjacent) in the same row of the line, so only an ending marking character may be produced in this case (this doesn't matter to "real" highlighting sequences, because their width is zero on the display [if interpreted properly by the screen device driver], but a marking character has the width of one), otherwise, all components of the marking character pair must be produced. The respection of this MARKER_FLAG is absolutely necessary to format the line properly. If `last_item' is set to TRUE, this function does not produce a trailing blank character after an ending highlighting sequence respectively marking character. Returns always TRUE to indicate, that a marking character/highlighting sequence pair is set by it! */ { if (cal_both_dates_flag) { if (use_day_zeroleaded) sprintf (s2, "%s%s%02d(%03d)%s%s", (((hls_slen > 1) && !marker_flag) ? NO_HLS : ""), hls_start, year_vector[day], special_vector[day], hls_end, (((hls_elen > 1) && !last_item) ? NO_HLS : "")); else sprintf (s2, "%s%s%2d(%3d)%s%s", (((hls_slen > 1) && !marker_flag) ? NO_HLS : ""), hls_start, year_vector[day], special_vector[day], hls_end, (((hls_elen > 1) && !last_item) ? NO_HLS : "")); } else { if (use_day_zeroleaded) sprintf (s2, "%s%s%0*d%s%s", (((hls_slen > 1) && !marker_flag) ? NO_HLS : ""), hls_start, format_len - 1, year_vector[day], hls_end, (((hls_elen > 1) && !last_item) ? NO_HLS : "")); else sprintf (s2, "%s%s%*d%s%s", (((hls_slen > 1) && !marker_flag) ? NO_HLS : ""), hls_start, format_len - 1, year_vector[day], hls_end, (((hls_elen > 1) && !last_item) ? NO_HLS : "")); } strcat (s1, s2); return (TRUE); } gcal-4.1/src/Makefile.am0000664000000000000000000000556612353364271012022 00000000000000# GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ MISC_LIBS = @LIBM@ @LIBS@ LIBS = $(MISC_LIBS) AM_CFLAGS = -I$(top_srcdir)/lib -I$(srcdir) -I.. $(CPPFLAGS) LDADD = ../lib/libgnu.a $(LIBINTL) SRCS = \ file-io.c \ gcal.c \ hd-astro.c \ hd-data.c \ hd-data1.c \ hd-data2.c \ hd-data3.c \ hd-data4.c \ hd-data5.c \ hd-use.c \ help.c \ print.c \ rc-astro.c \ rc-check.c \ rc-insert.c \ rc-use.c \ rc-utils.c \ tty.c \ utils.c \ tcal.c \ txt2gcal.c \ gcal2txt.c COMMON_HDRS = \ common.h \ defines.h \ tailor.h GCAL_BASE_HDRS = \ file-io.h \ gcal.h \ globals.h \ hd-astro.h \ hd-data.h \ hd-data1.h \ hd-defs.h \ hd-use.h \ help.h \ print.h \ tty.h \ utils.h GCAL_HD_HDRS = \ hd-data2.h \ hd-data3.h \ hd-data4.h \ hd-data5.h GCAL_RC_HDRS = \ rc-astro.h \ rc-check.h \ rc-defs.h \ rc-insert.h \ rc-use.h \ rc-utils.h GCAL2TXT_HDRS = \ gcal2txt.h TCAL_HDRS = \ tcal.h TXT2GCAL_HDRS = \ txt2gcal.h HDRS = \ $(COMMON_HDRS) \ $(GCAL_BASE_HDRS) \ $(GCAL_HD_HDRS) \ $(GCAL_RC_HDRS) \ $(GCAL2TXT_HDRS) \ $(TCAL_HDRS) \ $(TXT2GCAL_HDRS) GCAL_BASE_SRCS = \ gcal.c \ file-io.c \ hd-astro.c \ hd-data.c \ hd-data1.c \ hd-use.c \ help.c \ print.c \ tty.c \ utils.c GCAL_HD_SRCS = \ hd-data2.c \ hd-data3.c \ hd-data4.c \ hd-data5.c GCAL_RC_SRCS = \ rc-astro.c \ rc-check.c \ rc-insert.c \ rc-use.c \ rc-utils.c GCAL2TXT_SRCS = \ gcal2txt.c TCAL_SRCS = \ tcal.c TXT2GCAL_SRCS = \ txt2gcal.c bin_PROGRAMS = gcal gcal2txt tcal txt2gcal gcal_SOURCES = $(GCAL_BASE_SRCS) $(GCAL_RC_SRCS) $(GCAL_HD_SRCS) gcal2txt_SOURCES = $(GCAL2TXT_SRCS) tcal_SOURCES = $(TCAL_SRCS) txt2gcal_SOURCES = $(TXT2GCAL_SRCS) EXTRA_DIST = common.h \ gcal2txt.h \ hd-data1.h \ hd-data5.h \ print.h \ rc-insert.h \ tailor.h \ utils.h \ defines.h \ globals.h \ hd-data2.h \ hd-defs.h \ rc-astro.h \ rc-use.h \ tcal.h \ file-io.h \ hd-astro.h \ hd-data3.h \ hd-use.h \ rc-check.h \ rc-utils.h \ tty.h \ gcal.h \ hd-data.h \ hd-data4.h \ help.h \ rc-defs.h \ txt2gcal.h gcal-4.1/src/txt2gcal.h0000664000000000000000000000232412244130561011644 00000000000000#ifndef __TXT2GAL_H # define __TXT2GAL_H /*! * \file txt2gcal.h * \brief Creates a verbatim Gcal resource file from a text file header file. */ /* * Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, * 2009, 2010, 2011, 2013 Free Software Foundation, Inc. * Copyright (c) 1996, 1997, 2000 Thomas Esken * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: txt2gcal.h 3.06 2000/06/14 03:00:06 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS extern int main __P_ ((int argc, char *argv[])); __END_DECLARATIONS #endif /* __TXT2GCAL_H */ gcal-4.1/src/print.h0000664000000000000000000000232312244130561011247 00000000000000#ifndef __PRINT_H # define __PRINT_H /*! * \file print.h * \brief Create, construct and print the calendar sheet(s) header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: print.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `print.c'. */ extern void print_calendar __P_ ((void)); __END_DECLARATIONS #endif /* __PRINT_H */ gcal-4.1/src/defines.h0000664000000000000000000000552012244130561011532 00000000000000#ifndef __DEFINES_H # define __DEFINES_H /*! * \file defines.h * \brief Program name, release number and modification symbols. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * * BEGIN: General program modification symbols, * which may be changed by the user !! * */ /* * To adapt this program, EITHER define/activate the following symbols in * this file OR add the following symbols in Makefile (-D`symbol=value'...) * (this all isn't necessary if the GNU Autoconf(igure) technology is used): * * a) - Define `USE_EASC 1' for using an extended ASCII character set. * - Delete the symbol USE_EASC or write `USE_EASC 0' for using the * ISO-ASCII/EBCDIC character set... * * b) - Define `USE_HLS 1' to run this program using control sequences * for highlighting the current day/holidays/text (MS/PC-DOS will * use the [n]ansi.sys driver for emitting ANSI Escape highlighting * sequences; OS2/Linux/UN*X-like systems will use `termcap' for * emitting the terminal specific highlighting sequences. If this * fails, default (generic) ANSI highlighting sequences will be used). * - Delete the symbol USE_HLS or write `USE_HLS 0' to run this program * without highlighting... * * c) - Define `USE_PAGER 1' for using an external pager (availabe only * on UN*X-like systems) or for using the simple, internal pager * (if external pager fails). * - Delete the symbol USE_PAGER or write `USE_PAGER 0' if you don't * like this feature... * * d) - Define `USE_RC 1' for using the special month dates functions * (print daily/weekly/monthly/yearly/eternal/special fixed dates * texts which are stated in the resource file(s)). * - Delete the symbol USE_RC or write `USE_RC 0' if you don't * like this feature... */ # if 0 # define USE_EASC 0 # define USE_HLS 1 # define USE_PAGER 1 # define USE_RC 1 # endif /* 0 */ /* * * END: General program modification symbols, * which may be changed by the user !! * */ #endif /* __DEFINES_H */ gcal-4.1/src/Makefile.in0000664000000000000000000020407213041163550012014 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = gcal$(EXEEXT) gcal2txt$(EXEEXT) tcal$(EXEEXT) \ txt2gcal$(EXEEXT) subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acos.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asin.m4 \ $(top_srcdir)/m4/assert.m4 $(top_srcdir)/m4/atan.m4 \ $(top_srcdir)/m4/atan2.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/cond.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/cos.m4 $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/fatal-signal.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fflush.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/floor.m4 \ $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpurge.m4 \ $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fseek.m4 $(top_srcdir)/m4/fseeko.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftell.m4 \ $(top_srcdir)/m4/ftello.m4 $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/limits-h.m4 \ $(top_srcdir)/m4/link.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/log.m4 $(top_srcdir)/m4/log10.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mkostemp.m4 \ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \ $(top_srcdir)/m4/pipe2.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/posix_spawn.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/raise.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/realloc.m4 \ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/sched_h.m4 \ $(top_srcdir)/m4/secure_getenv.m4 \ $(top_srcdir)/m4/sig_atomic_t.m4 $(top_srcdir)/m4/sigaction.m4 \ $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sin.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/spawn-pipe.m4 \ $(top_srcdir)/m4/spawn_h.m4 $(top_srcdir)/m4/sqrt.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strcspn.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strstr.m4 \ $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tan.m4 \ $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/tmpdir.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/wait-process.m4 \ $(top_srcdir)/m4/waitpid.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am__objects_1 = gcal.$(OBJEXT) file-io.$(OBJEXT) hd-astro.$(OBJEXT) \ hd-data.$(OBJEXT) hd-data1.$(OBJEXT) hd-use.$(OBJEXT) \ help.$(OBJEXT) print.$(OBJEXT) tty.$(OBJEXT) utils.$(OBJEXT) am__objects_2 = rc-astro.$(OBJEXT) rc-check.$(OBJEXT) \ rc-insert.$(OBJEXT) rc-use.$(OBJEXT) rc-utils.$(OBJEXT) am__objects_3 = hd-data2.$(OBJEXT) hd-data3.$(OBJEXT) \ hd-data4.$(OBJEXT) hd-data5.$(OBJEXT) am_gcal_OBJECTS = $(am__objects_1) $(am__objects_2) $(am__objects_3) gcal_OBJECTS = $(am_gcal_OBJECTS) gcal_LDADD = $(LDADD) am__DEPENDENCIES_1 = gcal_DEPENDENCIES = ../lib/libgnu.a $(am__DEPENDENCIES_1) am__objects_4 = gcal2txt.$(OBJEXT) am_gcal2txt_OBJECTS = $(am__objects_4) gcal2txt_OBJECTS = $(am_gcal2txt_OBJECTS) gcal2txt_LDADD = $(LDADD) gcal2txt_DEPENDENCIES = ../lib/libgnu.a $(am__DEPENDENCIES_1) am__objects_5 = tcal.$(OBJEXT) am_tcal_OBJECTS = $(am__objects_5) tcal_OBJECTS = $(am_tcal_OBJECTS) tcal_LDADD = $(LDADD) tcal_DEPENDENCIES = ../lib/libgnu.a $(am__DEPENDENCIES_1) am__objects_6 = txt2gcal.$(OBJEXT) am_txt2gcal_OBJECTS = $(am__objects_6) txt2gcal_OBJECTS = $(am_txt2gcal_OBJECTS) txt2gcal_LDADD = $(LDADD) txt2gcal_DEPENDENCIES = ../lib/libgnu.a $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(gcal_SOURCES) $(gcal2txt_SOURCES) $(tcal_SOURCES) \ $(txt2gcal_SOURCES) DIST_SOURCES = $(gcal_SOURCES) $(gcal2txt_SOURCES) $(tcal_SOURCES) \ $(txt2gcal_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in \ $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ACOS_LIBM = @ACOS_LIBM@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASIN_LIBM = @ASIN_LIBM@ ATAN2_LIBM = @ATAN2_LIBM@ ATAN_LIBM = @ATAN_LIBM@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CEIL_LIBM = @CEIL_LIBM@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ COS_LIBM = @COS_LIBM@ CP = @CP@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FLOAT_H = @FLOAT_H@ FLOOR_LIBM = @FLOOR_LIBM@ GCAL_HD_OBJS = @GCAL_HD_OBJS@ GCAL_RC_OBJS = @GCAL_RC_OBJS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ACOSF = @GNULIB_ACOSF@ GNULIB_ACOSL = @GNULIB_ACOSL@ GNULIB_ASINF = @GNULIB_ASINF@ GNULIB_ASINL = @GNULIB_ASINL@ GNULIB_ATAN2F = @GNULIB_ATAN2F@ GNULIB_ATANF = @GNULIB_ATANF@ GNULIB_ATANL = @GNULIB_ATANL@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CBRT = @GNULIB_CBRT@ GNULIB_CBRTF = @GNULIB_CBRTF@ GNULIB_CBRTL = @GNULIB_CBRTL@ GNULIB_CEIL = @GNULIB_CEIL@ GNULIB_CEILF = @GNULIB_CEILF@ GNULIB_CEILL = @GNULIB_CEILL@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ GNULIB_COSF = @GNULIB_COSF@ GNULIB_COSHF = @GNULIB_COSHF@ GNULIB_COSL = @GNULIB_COSL@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXP2 = @GNULIB_EXP2@ GNULIB_EXP2F = @GNULIB_EXP2F@ GNULIB_EXP2L = @GNULIB_EXP2L@ GNULIB_EXPF = @GNULIB_EXPF@ GNULIB_EXPL = @GNULIB_EXPL@ GNULIB_EXPM1 = @GNULIB_EXPM1@ GNULIB_EXPM1F = @GNULIB_EXPM1F@ GNULIB_EXPM1L = @GNULIB_EXPM1L@ GNULIB_FABSF = @GNULIB_FABSF@ GNULIB_FABSL = @GNULIB_FABSL@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ GNULIB_FMA = @GNULIB_FMA@ GNULIB_FMAF = @GNULIB_FMAF@ GNULIB_FMAL = @GNULIB_FMAL@ GNULIB_FMOD = @GNULIB_FMOD@ GNULIB_FMODF = @GNULIB_FMODF@ GNULIB_FMODL = @GNULIB_FMODL@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPF = @GNULIB_FREXPF@ GNULIB_FREXPL = @GNULIB_FREXPL@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_HYPOT = @GNULIB_HYPOT@ GNULIB_HYPOTF = @GNULIB_HYPOTF@ GNULIB_HYPOTL = @GNULIB_HYPOTL@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_ILOGB = @GNULIB_ILOGB@ GNULIB_ILOGBF = @GNULIB_ILOGBF@ GNULIB_ILOGBL = @GNULIB_ILOGBL@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPF = @GNULIB_LDEXPF@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOG = @GNULIB_LOG@ GNULIB_LOG10 = @GNULIB_LOG10@ GNULIB_LOG10F = @GNULIB_LOG10F@ GNULIB_LOG10L = @GNULIB_LOG10L@ GNULIB_LOG1P = @GNULIB_LOG1P@ GNULIB_LOG1PF = @GNULIB_LOG1PF@ GNULIB_LOG1PL = @GNULIB_LOG1PL@ GNULIB_LOG2 = @GNULIB_LOG2@ GNULIB_LOG2F = @GNULIB_LOG2F@ GNULIB_LOG2L = @GNULIB_LOG2L@ GNULIB_LOGB = @GNULIB_LOGB@ GNULIB_LOGBF = @GNULIB_LOGBF@ GNULIB_LOGBL = @GNULIB_LOGBL@ GNULIB_LOGF = @GNULIB_LOGF@ GNULIB_LOGL = @GNULIB_LOGL@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_MODF = @GNULIB_MODF@ GNULIB_MODFF = @GNULIB_MODFF@ GNULIB_MODFL = @GNULIB_MODFL@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@ GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@ GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@ GNULIB_POSIX_SPAWNATTR_GETPGROUP = @GNULIB_POSIX_SPAWNATTR_GETPGROUP@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_GETSIGMASK = @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@ GNULIB_POSIX_SPAWNATTR_INIT = @GNULIB_POSIX_SPAWNATTR_INIT@ GNULIB_POSIX_SPAWNATTR_SETFLAGS = @GNULIB_POSIX_SPAWNATTR_SETFLAGS@ GNULIB_POSIX_SPAWNATTR_SETPGROUP = @GNULIB_POSIX_SPAWNATTR_SETPGROUP@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_SETSIGMASK = @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@ GNULIB_POSIX_SPAWNP = @GNULIB_POSIX_SPAWNP@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT@ GNULIB_POWF = @GNULIB_POWF@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMAINDER = @GNULIB_REMAINDER@ GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RINT = @GNULIB_RINT@ GNULIB_RINTF = @GNULIB_RINTF@ GNULIB_RINTL = @GNULIB_RINTL@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_ROUND = @GNULIB_ROUND@ GNULIB_ROUNDF = @GNULIB_ROUNDF@ GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SINF = @GNULIB_SINF@ GNULIB_SINHF = @GNULIB_SINHF@ GNULIB_SINL = @GNULIB_SINL@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTF = @GNULIB_SQRTF@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TANF = @GNULIB_TANF@ GNULIB_TANHF = @GNULIB_TANHF@ GNULIB_TANL = @GNULIB_TANL@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ HAVE_ATAN2F = @HAVE_ATAN2F@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@ HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@ HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@ HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@ HAVE_DECL_LOGB = @HAVE_DECL_LOGB@ HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_REMAINDER = @HAVE_DECL_REMAINDER@ HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@ HAVE_DECL_RINTF = @HAVE_DECL_RINTF@ HAVE_DECL_ROUND = @HAVE_DECL_ROUND@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FMA = @HAVE_FMA@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LOG10F = @HAVE_LOG10F@ HAVE_LOG10L = @HAVE_LOG10L@ HAVE_LOG1P = @HAVE_LOG1P@ HAVE_LOG1PF = @HAVE_LOG1PF@ HAVE_LOG1PL = @HAVE_LOG1PL@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MODFF = @HAVE_MODFF@ HAVE_MODFL = @HAVE_MODFL@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@ HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@ HAVE_POSIX_SPAWN_FILE_ACTIONS_T = @HAVE_POSIX_SPAWN_FILE_ACTIONS_T@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RINT = @HAVE_RINT@ HAVE_RINTL = @HAVE_RINTL@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCHED_H = @HAVE_SCHED_H@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SINF = @HAVE_SINF@ HAVE_SINHF = @HAVE_SINHF@ HAVE_SINL = @HAVE_SINL@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_SPAWN_H = @HAVE_SPAWN_H@ HAVE_SQRTF = @HAVE_SQRTF@ HAVE_SQRTL = @HAVE_SQRTL@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SCHED_PARAM = @HAVE_STRUCT_SCHED_PARAM@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = $(MISC_LIBS) LIBTHREAD = @LIBTHREAD@ LIB_POSIX_SPAWN = @LIB_POSIX_SPAWN@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOG10_LIBM = @LOG10_LIBM@ LOG_LIBM = @LOG_LIBM@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_SCHED_H = @NEXT_SCHED_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_SPAWN_H = @NEXT_SPAWN_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PAGER1 = @PAGER1@ PAGER2 = @PAGER2@ PAGER3 = @PAGER3@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ POW_LIBM = @POW_LIBM@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACOSF = @REPLACE_ACOSF@ REPLACE_ASINF = @REPLACE_ASINF@ REPLACE_ATAN2F = @REPLACE_ATAN2F@ REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_COSF = @REPLACE_COSF@ REPLACE_COSHF = @REPLACE_COSHF@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ REPLACE_EXPF = @REPLACE_EXPF@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ REPLACE_FABSL = @REPLACE_FABSL@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ REPLACE_FMA = @REPLACE_FMA@ REPLACE_FMAF = @REPLACE_FMAF@ REPLACE_FMAL = @REPLACE_FMAL@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ REPLACE_LOG10F = @REPLACE_LOG10F@ REPLACE_LOG10L = @REPLACE_LOG10L@ REPLACE_LOG1P = @REPLACE_LOG1P@ REPLACE_LOG1PF = @REPLACE_LOG1PF@ REPLACE_LOG1PL = @REPLACE_LOG1PL@ REPLACE_LOG2 = @REPLACE_LOG2@ REPLACE_LOG2F = @REPLACE_LOG2F@ REPLACE_LOG2L = @REPLACE_LOG2L@ REPLACE_LOGB = @REPLACE_LOGB@ REPLACE_LOGBF = @REPLACE_LOGBF@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_SPAWN = @REPLACE_POSIX_SPAWN@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SINF = @REPLACE_SINF@ REPLACE_SINHF = @REPLACE_SINHF@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TANF = @REPLACE_TANF@ REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SCHED_H = @SCHED_H@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIN_LIBM = @SIN_LIBM@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ SQRT_LIBM = @SQRT_LIBM@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TAN_LIBM = @TAN_LIBM@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ZDUMP = @ZDUMP@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MISC_LIBS = @LIBM@ @LIBS@ AM_CFLAGS = -I$(top_srcdir)/lib -I$(srcdir) -I.. $(CPPFLAGS) LDADD = ../lib/libgnu.a $(LIBINTL) SRCS = \ file-io.c \ gcal.c \ hd-astro.c \ hd-data.c \ hd-data1.c \ hd-data2.c \ hd-data3.c \ hd-data4.c \ hd-data5.c \ hd-use.c \ help.c \ print.c \ rc-astro.c \ rc-check.c \ rc-insert.c \ rc-use.c \ rc-utils.c \ tty.c \ utils.c \ tcal.c \ txt2gcal.c \ gcal2txt.c COMMON_HDRS = \ common.h \ defines.h \ tailor.h GCAL_BASE_HDRS = \ file-io.h \ gcal.h \ globals.h \ hd-astro.h \ hd-data.h \ hd-data1.h \ hd-defs.h \ hd-use.h \ help.h \ print.h \ tty.h \ utils.h GCAL_HD_HDRS = \ hd-data2.h \ hd-data3.h \ hd-data4.h \ hd-data5.h GCAL_RC_HDRS = \ rc-astro.h \ rc-check.h \ rc-defs.h \ rc-insert.h \ rc-use.h \ rc-utils.h GCAL2TXT_HDRS = \ gcal2txt.h TCAL_HDRS = \ tcal.h TXT2GCAL_HDRS = \ txt2gcal.h HDRS = \ $(COMMON_HDRS) \ $(GCAL_BASE_HDRS) \ $(GCAL_HD_HDRS) \ $(GCAL_RC_HDRS) \ $(GCAL2TXT_HDRS) \ $(TCAL_HDRS) \ $(TXT2GCAL_HDRS) GCAL_BASE_SRCS = \ gcal.c \ file-io.c \ hd-astro.c \ hd-data.c \ hd-data1.c \ hd-use.c \ help.c \ print.c \ tty.c \ utils.c GCAL_HD_SRCS = \ hd-data2.c \ hd-data3.c \ hd-data4.c \ hd-data5.c GCAL_RC_SRCS = \ rc-astro.c \ rc-check.c \ rc-insert.c \ rc-use.c \ rc-utils.c GCAL2TXT_SRCS = \ gcal2txt.c TCAL_SRCS = \ tcal.c TXT2GCAL_SRCS = \ txt2gcal.c gcal_SOURCES = $(GCAL_BASE_SRCS) $(GCAL_RC_SRCS) $(GCAL_HD_SRCS) gcal2txt_SOURCES = $(GCAL2TXT_SRCS) tcal_SOURCES = $(TCAL_SRCS) txt2gcal_SOURCES = $(TXT2GCAL_SRCS) EXTRA_DIST = common.h \ gcal2txt.h \ hd-data1.h \ hd-data5.h \ print.h \ rc-insert.h \ tailor.h \ utils.h \ defines.h \ globals.h \ hd-data2.h \ hd-defs.h \ rc-astro.h \ rc-use.h \ tcal.h \ file-io.h \ hd-astro.h \ hd-data3.h \ hd-use.h \ rc-check.h \ rc-utils.h \ tty.h \ gcal.h \ hd-data.h \ hd-data4.h \ help.h \ rc-defs.h \ txt2gcal.h all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) gcal$(EXEEXT): $(gcal_OBJECTS) $(gcal_DEPENDENCIES) $(EXTRA_gcal_DEPENDENCIES) @rm -f gcal$(EXEEXT) $(AM_V_CCLD)$(LINK) $(gcal_OBJECTS) $(gcal_LDADD) $(LIBS) gcal2txt$(EXEEXT): $(gcal2txt_OBJECTS) $(gcal2txt_DEPENDENCIES) $(EXTRA_gcal2txt_DEPENDENCIES) @rm -f gcal2txt$(EXEEXT) $(AM_V_CCLD)$(LINK) $(gcal2txt_OBJECTS) $(gcal2txt_LDADD) $(LIBS) tcal$(EXEEXT): $(tcal_OBJECTS) $(tcal_DEPENDENCIES) $(EXTRA_tcal_DEPENDENCIES) @rm -f tcal$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tcal_OBJECTS) $(tcal_LDADD) $(LIBS) txt2gcal$(EXEEXT): $(txt2gcal_OBJECTS) $(txt2gcal_DEPENDENCIES) $(EXTRA_txt2gcal_DEPENDENCIES) @rm -f txt2gcal$(EXEEXT) $(AM_V_CCLD)$(LINK) $(txt2gcal_OBJECTS) $(txt2gcal_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-io.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gcal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gcal2txt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hd-astro.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hd-data.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hd-data1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hd-data2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hd-data3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hd-data4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hd-data5.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hd-use.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/help.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rc-astro.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rc-check.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rc-insert.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rc-use.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rc-utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tcal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tty.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/txt2gcal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-binPROGRAMS install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gcal-4.1/src/utils.h0000664000000000000000000001101312244130561011247 00000000000000#ifndef __UTILS_H # define __UTILS_H /*! * \file utils.h * \brief Pool of common functions header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: utils.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `utils.c'. */ extern VOID_PTR my_malloc __P_ ((const int amount, const int exit_status, const char *module_name, const long module_line, const char *var_name, const int var_contents)); extern VOID_PTR my_realloc __P_ ((VOID_PTR ptr_memblock, const int amount, const int exit_status, const char *module_name, const long module_line, const char *var_name, const int var_contents)); extern void allocate_all_strings __P_ ((const int amount, const char *module_name, const long module_line)); extern void resize_all_strings __P_ ((const int amount, const Bool with_line_buffer, const char *module_name, const long module_line)); extern void my_error __P_ ((const int exit_status, const char *module_name, const long module_line, const char *var_name, const int var_contents)); # if HAVE_SIGNAL && (defined(SIGINT) || defined(SIGTERM) || defined(SIGHUP)) extern RETSIGTYPE handle_signal __P_ ((int the_signal)); # endif extern void my_exit __P_ ((const int exit_status)); extern int my_atoi __P_ ((const char *string)); extern int my_system __P_ ((const char *command)); # if !HAVE_STRSTR extern char *my_strstr __P_ ((const char *text, const char *pattern)); # endif /* !HAVE_STRSTR */ # if !HAVE_STRCSPN extern char *my_strcspn __P_ ((const char *s1, const char *s2)); # endif /* !HAVE_STRCSPN */ # if !HAVE_STRCASECMP extern int my_strcasecmp __P_ ((const char *s1, const char *s2)); # endif /* !HAVE_STRCASECMP */ # if !HAVE_STRNCASECMP extern int my_strncasecmp __P_ ((const char *s1, const char *s2, int len)); # endif /* !HAVE_STRNCASECMP */ extern Bool get_actual_date __P_ ((void)); extern int compare_d_m_name __P_ ((const char *string, const Cmode_enum mode)); extern int asc_sort __P_ ((const char **a, const char **b)); extern int des_sort __P_ ((const char **a, const char **b)); extern Bool is_presorted __P_ ((char **table, int elems)); extern void reverse_order __P_ ((char **table, const int elems)); extern const char *day_suffix __P_ ((int day)); extern const char *short3_day_name __P_ ((const int day)); extern const char *short_day_name __P_ ((const int day)); extern const char *day_name __P_ ((const int day)); extern const char *short_month_name __P_ ((const int month)); extern const char *month_name __P_ ((const int month)); extern Ulint date2num __P_ ((const int day, const int month, const int year)); extern void num2date __P_ ((Ulint mjd, int *day, int *month, int *year)); extern Bool doy2date __P_ ((int doy, const int is_leap_year, int *day, int *month)); extern int weekday_of_date __P_ ((const int day, const int month, const int year)); extern int day_of_year __P_ ((const int day, const int month, const int year)); extern int days_of_february __P_ ((const int year)); extern Bool valid_date __P_ ((const int day, const int month, const int year)); extern Bool prev_date __P_ ((int *day, int *month, int *year)); extern Bool next_date __P_ ((int *day, int *month, int *year)); extern int week_number __P_ ((const int day, const int month, const int year, const Bool is_iso_week, const int start_day_of_week)); extern int weekno2doy __P_ ((int week, const int year, const Bool is_iso_week, const int start_day_of_week)); extern int knuth_easter_formula __P_ ((const int year)); extern int julian_gregorian_diff __P_ ((const int day, const int month, const int year)); __END_DECLARATIONS #endif /* __UTILS_H */ gcal-4.1/src/tty.h0000664000000000000000000000402012244130561010727 00000000000000#ifndef __TTY_H # define __TTY_H /*! * \file tty.h * \brief Screen support functions and major output function header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: tty.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * Definition of the Termcap buffer size. */ # if (USE_PAGER || USE_HLS) && defined(GCAL_TCAP) # define TC_BUFLEN 4096 # endif /* (USE_PAGER || USE_HLS) && GCAL_TCAP */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS # if (USE_PAGER || USE_HLS) && defined(GCAL_TCAP) # if !HAVE_TERMCAP_H extern int tgetent __P_ ((char *buffer, char *termtype)); extern int tgetnum __P_ ((char *name)); # if USE_HLS extern char *tgetstr __P_ ((char *name, char **area)); extern char *tputs __P_ ((char *string, int nlines, int (*outfunc) ())); # endif /* USE_HLS */ # if USE_PAGER extern int tgetflag __P_ ((char *name)); # endif /* USE_PAGER */ # endif /* !HAVE_TERMCAP_H */ # endif /* (USE_PAGER || USE_HLS) && GCAL_TCAP */ /* ************************************************** Defined in `tty.c'. */ extern void print_text __P_ ((FILE * fp, char *text_line)); extern void get_tty_hls __P_ ((const char *sequence_str)); # if USE_PAGER extern void get_tty_scr_size __P_ ((int *rows, int *cols)); # endif __END_DECLARATIONS #endif /* __TTY_H */ gcal-4.1/src/hd-data4.c0000664000000000000000000036140712727633115011520 00000000000000/*! * \file hd-data4.c * \brief All other M-S countries data which is composed into the * eternal holiday list. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include definition header file to see whether HD_TOP20CC is defined there. * Compile this module only if HD_TOP20CC is NOT defined, otherwise skip it. */ #include "tailor.h" #if !HD_TOP20CC /* * Include header files. */ # include "common.h" # include "globals.h" # include "hd-defs.h" # include "hd-data.h" # include "hd-data1.h" # include "hd-data2.h" # include "hd-data3.h" # include "hd-data5.h" # include "hd-use.h" # include "utils.h" # include "hd-data4.h" /* * All other M-S countries specific holiday management functions. */ void ma_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Morocco. */ { if (!use_other_cc) ptr_cc_id = "MA"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_GREEN_MARCH].ht_text), ptr_cc_id, "+", 6, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REUNIFICATION_DAY].ht_text), ptr_cc_id, "+", 14, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 18, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_PROCLAMATION].ht_text), ptr_cc_id, "+", 11, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 3, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 23, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 20, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, "+", 9, 7, year, hd_elems, fday, count); } void mc_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Monaco. */ { register int day; ptr_cc_id = "MC"; holiday (*init_data, detected, _(hd_text[HD_MI_CAREME_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 19, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; for (day = 26; day <= 27; day++) holiday (*init_data, detected, _(hd_text[HD_ST_DEVOTE_DAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF2, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 3, 0, year, hd_elems, fday, count); for (day = 18; day <= 19; day++) holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 47, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF2, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void md_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Republic of Moldova. */ { auto int d; auto int greg_diff; ptr_cc_id = "MD"; holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 9, 5, year, hd_elems, fday, count); if (year > 1991) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 27, 8, year, hd_elems, fday, count); /* The Christians in Moldova compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); d = DAY_MIN; if (year != 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); if (year != 1924) { register int i; auto int d; auto int m; auto int y; d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); } holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); } void mg_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Madagascar. */ { ptr_cc_id = "MG"; holiday (*init_data, detected, _(hd_text[HD_ST_VINCENT_DE_PAULS_DAY].ht_text), ptr_cc_id, "+", 27, 9, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 26, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", 29, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 30, MONTH_MAX, year, hd_elems, fday, count); } void mh_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Marshall Islands. */ { ptr_cc_id = "MH"; holiday (*init_data, detected, _(hd_text[HD_COMPACT_DAY].ht_text), ptr_cc_id, "+", 21, 10, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_FISHERMANS_DAY].ht_text), ptr_cc_id, "+", 4, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MERCHANT_DAY].ht_text), ptr_cc_id, "+", dvec[9 - 1], 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_DAY].ht_text), ptr_cc_id, "+", 17, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, "+", 4, MONTH_MAX, year, hd_elems, fday, count); } void mk_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Former Yugoslav Republic of Macedonia. */ { auto int d; auto int greg_diff; ptr_cc_id = "MK"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); /* The Christians in Macedonia compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); d = DAY_MIN; if (year != 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); if (year != 1924) { register int i; auto int m; auto int y; d = 24; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); } d = day_of_year (20, 7, year) + greg_diff; holiday (*init_data, detected, _(hd_text[HD_ST_ELIAHS_DAY].ht_text), ptr_cc_id, "+", d, 0, year, hd_elems, fday, count); d = day_of_year (11, 5, year) + greg_diff; holiday (*init_data, detected, _(hd_text[HD_KONSTANTIN_AND_METHODIUS].ht_text), ptr_cc_id, "+", d, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); if (year > 1992) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 8, 9, year, hd_elems, fday, count); } void ml_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Mali. */ { ptr_cc_id = "ML"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ARMY_COUP_DAY].ht_text), ptr_cc_id, "+", 19, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 20, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_OAU_DAY].ht_text), ptr_cc_id, "+", 25, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 22, 9, year, hd_elems, fday, count); } void mn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Mongolia. */ { register int day; ptr_cc_id = "MN"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 6, year, hd_elems, fday, count); for (day = 11; day <= 13; day++) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 26, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); } void mo_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Macau. */ { ptr_cc_id = "MO"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, "+", 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CAMOES_DAY].ht_text), ptr_cc_id, "+", 10, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 5, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 25, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JEAN_BAPTISTE_DAY].ht_text), ptr_cc_id, "+", 24, 6, year, hd_elems, fday, count); if (year > 1948) holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", DAY_MIN, 10, year, hd_elems, fday, count); } void mp_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Northern Marian Islands (Saipan). */ { ptr_cc_id = "MP"; /* I assume that no U.S. holiday observance rule is valid in this country/territory, if not, please let me know! */ observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CITIZENSHIP_DAY].ht_text), ptr_cc_id, "+", 4, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COMMONWEALTH_DAY].ht_text), ptr_cc_id, "+", 8, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COMPACT_DAY].ht_text), ptr_cc_id, "+", 24, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 9, MONTH_MAX, year, hd_elems, fday, count); } void mq_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Martinique. */ { register int i; if (!use_other_cc) ptr_cc_id = "MQ"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ASH_WEDNESDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46, 0, year, hd_elems, fday, count); for (i = 5; i; i--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", easter - 46 - i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 14, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SLAVE_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 27, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTOR_SCHOELCHER_DAY].ht_text), ptr_cc_id, "+", 21, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1917) holiday (*init_data, detected, _(hd_text[HD_ARMISTICE_DAY].ht_text), ptr_cc_id, "+", 11, 11, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void mr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Mauritania. */ { ptr_cc_id = "MR"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 10, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 28, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_OAU_DAY].ht_text), ptr_cc_id, "+", 25, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 8, 3, year, hd_elems, fday, count); } void ms_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Montserrat. */ { register int day; ptr_cc_id = "MS"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 23, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PATRICKS_DAY].ht_text), ptr_cc_id, "+", 17, 3, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1966) { day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); } base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void mt_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Malta. */ { register int i; ptr_cc_id = "MT"; holiday (*init_data, detected, _(hd_text[HD_OUR_LADY_OF_VICTORIES_DAY].ht_text), ptr_cc_id, "+", 8, 9, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ST_PAULS_SHIPSWRECK].ht_text), ptr_cc_id, "+", 10, 2, year, hd_elems, fday, count); for (i = 4; i; i--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46 - i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 21, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 13, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, "+", 19, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, "+", 29, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1918) holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", 7, 6, year, hd_elems, fday, count); if (year > 1943) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", dvec[3 - 1], 3, year, hd_elems, fday, count); } void mu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Mauritius. */ { register int day; ptr_cc_id = "MU"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FATHER_LEVAL_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 9, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); for (day = DAY_MIN; day <= 2; day++) holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 12, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); } void mv_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Maldives. */ { register int day; ptr_cc_id = "MV"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); for (day = 26; day <= 27; day++) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); for (day = 11; day <= 12; day++) holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 3, 11, year, hd_elems, fday, count); } void mw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Malawi. */ { register int day; register int i; ptr_cc_id = "MW"; day = 15; i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_J_CHILEMBWE_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 25; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = 14; i = weekday_of_date (day, 6, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = 3; i = weekday_of_date (day, 3, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); day = DAY_MIN; i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = 6; i = weekday_of_date (day, 7, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void my_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Malaysia. */ { register int day; ptr_cc_id = "MY"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", dvec[8 - 1], 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "#", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_TEACHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 15, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); } void mz_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Mozambique. */ { ptr_cc_id = "MZ"; holiday (*init_data, detected, _(hd_text[HD_MAPUTO_CITY_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 10, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 25, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FAMILY_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEROES_DAY].ht_text), ptr_cc_id, "+", 3, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 25, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 7, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 7, 4, year, hd_elems, fday, count); } void na_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Namibia. */ { ptr_cc_id = "NA"; holiday (*init_data, detected, _(hd_text[HD_CASSINGA_DAY].ht_text), ptr_cc_id, "+", 4, 5, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DAY_OF_GOODWILL].ht_text), ptr_cc_id, "+", 7, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FAMILY_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEROES_DAY].ht_text), ptr_cc_id, "+", 26, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HUMAN_RIGHTS_DAY].ht_text), ptr_cc_id, "+", 10, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 21, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_OAU_DAY].ht_text), ptr_cc_id, "+", 25, 5, year, hd_elems, fday, count); } void nc_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in New Caledonia. */ { ptr_cc_id = "NC"; use_other_cc = !use_other_cc; fr_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void ne_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Niger. */ { ptr_cc_id = "NE"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ARMY_COUP_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 3, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 24, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 18, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void nf_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Norfolk Island. */ { register int day; register int i; ptr_cc_id = "NF"; /* I assume that the Australian holiday observance rule is valid in this country/territory, if not, please let me know! */ au_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = 8; i = weekday_of_date (day, 6, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_BOUNTY_DAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = 6; i = weekday_of_date (day, 3, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_FOUNDATION_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); } void ng_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Nigeria. */ { ptr_cc_id = "NG"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", DAY_MIN, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void ni_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Nicaragua. */ { ptr_cc_id = "NI"; holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, "+", 2, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", DAY_MIN, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 15, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 19, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, "+", 30, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SAN_JACINTO_DAY].ht_text), ptr_cc_id, "+", 14, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void nm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Myanmar (Burma). */ { ptr_cc_id = "NM"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_DRY_SEASON_CELEBRATION].ht_text), ptr_cc_id, "+", 10, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 27, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FARMERS_DAY].ht_text), ptr_cc_id, "+", 2, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 4, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", 19, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_UNION_DAY].ht_text), ptr_cc_id, "+", 12, 2, year, hd_elems, fday, count); } void no_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Norway. */ { if (!use_other_cc) ptr_cc_id = "NO"; holiday (*init_data, detected, _(hd_text[HD_LAPP_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 6, 2, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_UNION_WITH_SWEDEN_DISSOLVED].ht_text), ptr_cc_id, DIS_HLS_PREF, 7, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_OLAVS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 29, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_OLAVS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 28, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ASH_WEDNESDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF2, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 21, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMERS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 23, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 17, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PALM_SUNDAY].ht_text), ptr_cc_id, "+", easter - DAY_MAX, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF2, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 4, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_UNITED_NATIONS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 8, 3, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 8, 5, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void np_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Nepal. */ { ptr_cc_id = "NP"; holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 15, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", 29, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 19, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_UNITY_DAY].ht_text), ptr_cc_id, "+", 11, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, "+", 29, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); } void nr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Nauru. */ { ptr_cc_id = "NR"; holiday (*init_data, detected, _(hd_text[HD_ANGAM_DAY].ht_text), ptr_cc_id, "+", 26, 10, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 17, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MIN - 1], MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void nu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Niue. */ { ptr_cc_id = "NU"; use_other_cc = !use_other_cc; nz_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void om_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Oman. */ { ptr_cc_id = "OM"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_SULTAN_QABOOS_BIRTHDAY].ht_text), ptr_cc_id, "+", 19, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 18, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); } void pa_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Panama. */ { register int i; ptr_cc_id = "PA"; holiday (*init_data, detected, _(hd_text[HD_DIA_DE_LOS_MAESTROS].ht_text), ptr_cc_id, "+", 11, 3, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_DIA_DEL_PADRE].ht_text), ptr_cc_id, "+", 16, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COLON_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 5, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PANAMA_CITY_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ASH_WEDNESDAY].ht_text), ptr_cc_id, "+", easter - 46, 0, year, hd_elems, fday, count); for (i = 2; i; i--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46 - i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", 4, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 10, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 28, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", 9, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SEPARATION_DAY].ht_text), ptr_cc_id, "+", 3, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); } void pe_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Peru. */ { register int day; ptr_cc_id = "PE"; holiday (*init_data, detected, _(hd_text[HD_BATTLE_OF_ANGAMOS].ht_text), ptr_cc_id, "+", 8, 10, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 15, 5, year, hd_elems, fday, count); for (day = 28; day <= 29; day++) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, "+", 29, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_ROSE_OF_LIMA].ht_text), ptr_cc_id, "+", 30, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void pf_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in French Polynesia. */ { ptr_cc_id = "PF"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); fr_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_INTERNAL_AUTONOMY_DAY].ht_text), ptr_cc_id, "+", 5, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MISSIONARY_DAY].ht_text), ptr_cc_id, "+", 8, 9, year, hd_elems, fday, count); } void pg_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Papua New Guinea. */ { ptr_cc_id = "PG"; holiday (*init_data, detected, _(hd_text[HD_ST_MICHAELS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 29, 9, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 16, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", 23, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void ph_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Philippines. */ { ptr_cc_id = "PH"; holiday (*init_data, detected, _(hd_text[HD_PEOPLE_POWER_DAY].ht_text), ptr_cc_id, "#", 22, 2, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BATAAN_DAY].ht_text), ptr_cc_id, "+", 9, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ELECTIONS_FOR_NATIONAL_ASSEMBLY].ht_text), ptr_cc_id, DIS_HLS_PREF, 8, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MANILA_DAY].ht_text), ptr_cc_id, "+", 24, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PHILIPPINE_USA_FRIENDSHIP].ht_text), ptr_cc_id, DIS_HLS_PREF, 4, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEROES_DAY].ht_text), ptr_cc_id, "+", dvec[11 - 1], 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RIZAL_DAY].ht_text), ptr_cc_id, "+", 30, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 12, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HEROES_DAY].ht_text), ptr_cc_id, "+", dvec[8 - 1], 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void pk_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Pakistan. */ { ptr_cc_id = "PK"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_DEATH_OF_QAID_I_AZAM].ht_text), ptr_cc_id, "+", 11, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_QAID_I_AZAMS_BIRTHDAY].ht_text), ptr_cc_id, "+", 27, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", DAY_MIN, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DEFENDERS_OF_MOTHERLAND_DAY].ht_text), ptr_cc_id, "+", 6, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 14, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 23, 3, year, hd_elems, fday, count); } void pl_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Poland. */ { ptr_cc_id = "PL"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 3, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FATHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 23, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 26, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_VALENTINES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 2, year, hd_elems, fday, count); if ((year > 1944) && (year < 1990)) { holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 22, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 9, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 8, 3, year, hd_elems, fday, count); } if (year > 1989) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 11, 11, year, hd_elems, fday, count); } void pm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Saint-Pierre and Miquelon. */ { ptr_cc_id = "PM"; use_other_cc = !use_other_cc; fr_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, "+", 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, "+", easter - 47, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", 2, MONTH_MIN, year, hd_elems, fday, count); } void pn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Pitcairn. */ { register int day; register int i; ptr_cc_id = "PN"; /* I assume that the U.K. holiday observance rule is valid in this country/territory, if not, please let me know! */ gb_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = 28; i = weekday_of_date (day, 4, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_BOUNTY_DAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); } void pr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Puerto Rico. */ { ptr_cc_id = "PR"; /* I assume that no U.S. holiday observance rule is valid in this country/territory, if not, please let me know! */ observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_E_HOSTOS_BIRTHDAY].ht_text), ptr_cc_id, "+", 9, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_J_BARBOSAS_BIRTHDAY].ht_text), ptr_cc_id, "+", 27, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_J_DIEGOS_BIRTHDAY].ht_text), ptr_cc_id, "+", 16, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_L_RIVERAS_BIRTHDAY].ht_text), ptr_cc_id, "+", 17, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 25, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DISCOVERY_DAY].ht_text), ptr_cc_id, "+", 19, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SLAVE_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 22, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JEAN_BAPTISTE_DAY].ht_text), ptr_cc_id, "+", 24, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); } void pw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Palau. */ { ptr_cc_id = "PW"; /* I assume that no U.S. holiday observance rule is valid in this country/territory, if not, please let me know! */ observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 9, 7, year, hd_elems, fday, count); } void py_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Paraguay. */ { ptr_cc_id = "PY"; holiday (*init_data, detected, _(hd_text[HD_ASUNCION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOQUERON_BATTLE_DAY].ht_text), ptr_cc_id, "+", 29, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMISTICE_DAY].ht_text), ptr_cc_id, "+", 12, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 16, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEROES_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 15, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); } void qa_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Qatar. */ { ptr_cc_id = "QA"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_AMIRS_SUCCESSION].ht_text), ptr_cc_id, "+", 27, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 3, 9, year, hd_elems, fday, count); } void re_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in R'eunion. */ { ptr_cc_id = "RE"; use_other_cc = !use_other_cc; fr_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void ro_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Romania. */ { register int day; ptr_cc_id = "RO"; /* The Christians in Romania compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches new calendar. */ easter = orthodox_easter (year, NULL, 1924, 3, 10, 22); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MAX, year, hd_elems, fday, count); for (day = DAY_MIN; day <= 2; day++) holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void rw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Rwanda. */ { ptr_cc_id = "RW"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_KAMARAMPAKA_DAY].ht_text), ptr_cc_id, "+", 25, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 4, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_MOURNING_DAY].ht_text), ptr_cc_id, "+", 7, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_UNITY_DAY].ht_text), ptr_cc_id, "+", 5, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void sa_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Saudi Arabia. */ { ptr_cc_id = "SA"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_UNITY_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, 9, year, hd_elems, fday, count); } void sb_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Solomon Islands. */ { register int day; ptr_cc_id = "SB"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 7, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); } void sc_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Seychelles. */ { ptr_cc_id = "SC"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 29, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 5, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void sd_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Sudan. */ { ptr_cc_id = "SD"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_UNITY_DAY].ht_text), ptr_cc_id, "+", 3, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PEOPLES_UPRISING_DAY].ht_text), ptr_cc_id, "+", 6, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 25, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 30, 6, year, hd_elems, fday, count); } void se_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Sweden. */ { register int day; register int i; ptr_cc_id = "SE"; holiday (*init_data, detected, _(hd_text[HD_ST_CANUTES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 13, MONTH_MIN, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_NAME_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 28, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_CROWN_PRINCESSES_NAME_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 12, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EVE_OF_EPIPHANY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 5, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WHITSUN_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 48, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_CROWN_PRINCESSES_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_NAME_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 8, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GUSTAVUS_ADOLPHUS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 6, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NOBEL_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 10, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_LUCIAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 13, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HOLY_INNOCENTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 28, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_FOOLS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 4, year, hd_elems, fday, count); day = day_of_year (31, 10, year); i = weekday_of_date (31, 10, year); if (i != 6) { if (i < 6) day += ((DAY_MAX - i) - 1); else day += 6; } holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", day, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF2, day - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF2, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 11, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_FATHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[4 - 1], 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ANNUNCIATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 3, 0, year, hd_elems, fday, count); day = eval_holiday (20, 6, year, 6, TRUE); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMERS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, day - 1, 6, year, hd_elems, fday, count); day = eval_holiday (dvec[5 - 1], 5, year, DAY_MAX, FALSE); holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, year >= 2005 ? "+" : DIS_HLS_PREF2, 6, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 23, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 47, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_VALENTINES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VALBORGS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[4 - 1], 4, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); holiday (*init_data, detected, _(hd_text[HD_WHIT_MONDAY].ht_text), ptr_cc_id, year < 2005 ? "+" : DIS_HLS_PREF2, easter + 50, 0, year, hd_elems, fday, count); } void sg_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Singapore. */ { register int day; ptr_cc_id = "SG"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; day = 25; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, 5, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = 9; if (weekday_of_date (day, 8, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, MONTH_MIN, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_TEACHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 15, 5, year, hd_elems, fday, count); } void sh_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Saint Helena. */ { register int day; ptr_cc_id = "SH"; gb_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); } void si_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Slovenia. */ { register int day; ptr_cc_id = "SI"; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CULTURE_DAY].ht_text), ptr_cc_id, "+", 8, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); for (day = DAY_MIN; day <= 2; day++) holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 25, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_RESISTANCE_DAY].ht_text), ptr_cc_id, "+", 27, 4, year, hd_elems, fday, count); for (day = DAY_MIN; day <= 2; day++) holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1516) holiday (*init_data, detected, _(hd_text[HD_REFORMATION_DAY].ht_text), ptr_cc_id, "+", dvec[10 - 1], 10, year, hd_elems, fday, count); } void sj_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Svalbard and Jan Mayen Islands. */ { ptr_cc_id = "SJ"; use_other_cc = !use_other_cc; no_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void sk_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Slovakia. */ { register int day; ptr_cc_id = "SK"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", DAY_MIN, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "#", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_KONSTANTIN_AND_METHODIUS].ht_text), ptr_cc_id, "+", 5, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_RESISTANCE_DAY].ht_text), ptr_cc_id, "+", 29, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_OUR_LADY_OF_SEVEN_SORROWS].ht_text), ptr_cc_id, "+", 15, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "#", 8, 5, year, hd_elems, fday, count); } void sl_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Sierra Leone. */ { ptr_cc_id = "SL"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 27, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void sm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in San Marino. */ { ptr_cc_id = "SM"; holiday (*init_data, detected, _(hd_text[HD_REGENCY_EXCHANGE].ht_text), ptr_cc_id, "+", DAY_MIN, 4, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_REGENCY_EXCHANGE].ht_text), ptr_cc_id, "+", DAY_MIN, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_FOUNDATION_DAY].ht_text), ptr_cc_id, "+", 3, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1739) holiday (*init_data, detected, _(hd_text[HD_ST_AGATA_DAY].ht_text), ptr_cc_id, "+", 5, 2, year, hd_elems, fday, count); if (year > 1905) holiday (*init_data, detected, _(hd_text[HD_ARENGO_ANNIVERSARY].ht_text), ptr_cc_id, "+", 25, 3, year, hd_elems, fday, count); if (year > 1943) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 28, 7, year, hd_elems, fday, count); } void sn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Senegal. */ { ptr_cc_id = "SN"; holiday (*init_data, detected, _(hd_text[HD_CONFEDERAL_AGREEMENT_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 2, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 20, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 4, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void so_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Somalia. */ { ptr_cc_id = "SO"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "#", 26, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "#", DAY_MIN, 7, year, hd_elems, fday, count); } void sr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Suriname. */ { ptr_cc_id = "SO"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 25, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 25, 2, year, hd_elems, fday, count); } void st_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Sao Tom'e and Principe. */ { ptr_cc_id = "ST"; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 12, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", 3, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void sv_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in El Salvador. */ { register int day; ptr_cc_id = "SV"; holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, "+", 2, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", dvec[6 - 1], 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GUADALUPE_VIRGINS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 12, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HOLY_WEDNESDAY].ht_text), ptr_cc_id, "+", easter - 4, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 15, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 5, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_TEACHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 22, 6, year, hd_elems, fday, count); for (day = 4; day <= 6; day++) holiday (*init_data, detected, _(hd_text[HD_TRANSFIGURATION_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); } void sy_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Syrian Arab Republic. */ { ptr_cc_id = "SY"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ARAB_LEAGUE_DAY].ht_text), ptr_cc_id, "+", 22, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 17, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", 6, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_UNITY_DAY].ht_text), ptr_cc_id, "+", 22, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); } void sz_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Swaziland. */ { ptr_cc_id = "SZ"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", 25, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 6, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, "+", 22, 7, year, hd_elems, fday, count); } #endif /* !HD_TOP20CC */ gcal-4.1/src/tailor.h0000664000000000000000000005712112366000750011414 00000000000000#ifndef __TAILOR_H # define __TAILOR_H /*! * \file tailor.h * \brief Machine/target dependent definitions. */ /* * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: tailor.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * SUB-include definitions header files ;< */ # include "defines.h" # if HAVE_CONFIG_H # include # endif # include # include # define GCAL_NLS # include # include # define _(Str) gettext(Str) # define N_(Str) (Str) # ifdef HAVE_LANGINFO_H # include # endif /* * Detect the machine / os. */ /* * Define the symbol MSDOS for MS-DOS machines. */ # if defined(__MSDOS__) || defined(__MSDOS) || defined(_MSDOS) /* Now let's define the symbol MSDOS generally. */ # ifndef MSDOS # define MSDOS # endif # endif # if defined(__TURBOC__) || defined(__ZTC__) || defined(M_I86) # ifndef MSDOS /* Now let's define the symbol MSDOS generally. */ # define MSDOS # endif # endif /* * Define the symbol OS2 for OS/2 machines. */ # if defined(__OS2__) || defined(__OS2) || defined(_OS2) /* Now let's define the symbol OS2 generally. */ # ifndef OS2 # define OS2 # endif # endif /* * Microsoft-C or Borland-C or Waterloo-C under OS/2. */ # if defined(OS2) # if defined(MSDOS) || defined(__TURBOC__) # ifdef MSDOS # undef MSDOS # endif # endif # endif /* * Define the symbol LINUX for Linux machines. */ # if defined(__LINUX__) || defined(__LINUX) || defined(_LINUX) || defined(LINUX) /* Now let's define the symbol LINUX generally. */ # ifndef LINUX # define LINUX # endif # endif # if defined(__linux__) || defined(__linux) || defined(_linux) || defined(linux) /* Now let's define the symbol LINUX generally. */ # ifndef LINUX # define LINUX # endif # endif /* * Define the symbol UNIX for UN*X machines. */ # if defined(__UNIX__) || defined(__UNIX) || defined(_UNIX) /* Now let's define the symbol UNIX generally. */ # ifndef UNIX # define UNIX # endif # endif # if defined(__unix__) || defined(__unix) || defined(_unix) || defined(unix) /* Now let's define the symbol UNIX generally. */ # ifndef UNIX # define UNIX # endif # endif # ifdef MSDOS # ifdef UNIX # if (defined(__GNUC__) || defined(__GO32__)) && !defined(M_UNIX) /* Now let's define the symbol DJG (DJ-GCC under MSDOS) for these machines. */ # ifndef DJG # define DJG # endif # endif # undef MSDOS # else /* !UNIX */ # if defined(__i386) || defined(i386) /* Now let's define the symbol SCO for these machines, too. */ # ifndef SCO # define SCO # endif # undef MSDOS # endif # endif /* !UNIX */ # endif /* !MSDOS */ /* * Target specific predefines. */ # if defined(MSDOS) || defined(DJG) || defined(WIN32) # define USE_PROTOTYPES 1 # define STDC_HEADERS 1 # define HAVE_ASSERT_H 1 # define HAVE_CTYPE_H 1 # define HAVE_ERRNO_H 1 # define HAVE_SIGNAL_H 1 # define HAVE_LIMITS_H 1 # define HAVE_SYS_STAT_H 1 # define HAVE_SYS_TYPES_H 1 # define HAVE_UPPER_LOWER 1 # define HAVE_ISDIGIT 1 # define HAVE_ISALPHA 1 # define HAVE_ISALNUM 1 # define HAVE_ISSPACE 1 # define HAVE_SIGNAL 1 # define HAVE_STRTOL 1 # define HAVE_STRSTR 1 # define HAVE_STRCSPN 1 # define HAVE_SYSTEM 1 # define HAVE_TIME_T 1 # define HAVE_VOID 1 # ifdef DJG # define HAVE_UNISTD_H 1 # define HAVE_MATH_H 1 # define HAVE_LIBM 1 /* Directory/folder separator. */ # define DIR2_SEP "/" # if 0 # define HAVE_REGEX_H 1 # define HAVE_GNU_RE_COMPILE_PATTERN 1 # endif /* 0 */ # else /* !DJG */ # include # define HD_TOP20CC 1 # endif /* !DJG */ # if USE_PAGER /* Default number of terminal rows. */ # define SCREEN_ROWS 25 # endif /* Disk/Drive separator. */ # define DISK_SEP ":" /* Directory/folder separator. */ # define DIR_SEP "\\" /* Path separator. */ # define PATH_SEP ";" # else /* !MSDOS && !DJG && !WIN32 */ # if defined(OS2) # define USE_PROTOTYPES 1 # if !defined(__GNUC__) && !defined(__EMX__) # define STDC_HEADERS 1 # define HAVE_ASSERT_H 1 # define HAVE_CTYPE_H 1 # define HAVE_ERRNO_H 1 # define HAVE_LIMITS_H 1 # define HAVE_SIGNAL_H 1 # define HAVE_SYS_STAT_H 1 # define HAVE_SYS_TYPES_H 1 # define HAVE_UPPER_LOWER 1 # define HAVE_ISDIGIT 1 # define HAVE_ISALPHA 1 # define HAVE_ISALNUM 1 # define HAVE_ISSPACE 1 # define HAVE_SIGNAL 1 # define HAVE_STRTOL 1 # define HAVE_STRSTR 1 # define HAVE_STRCSPN 1 # define HAVE_SYSTEM 1 # define HAVE_TIME_T 1 # define HAVE_VOID 1 # endif /* !__GCC__ && !__EMX__ */ # if 0 # define HAVE_REGEX_H 1 # define HAVE_GNU_RE_COMPILE_PATTERN 1 # define HAVE_MATH_H 1 # define HAVE_LIBM 1 # define HAVE_LIBTERMCAP 1 # define HAVE_TERMCAP_H 1 # define HAVE_TERMIOS_H 1 # define HAVE_TERMIOS_FUNCS 1 # define HAVE_UNISTD_H 1 # define HAVE_FCNTL_H 1 # define HAVE_SYS_IOCTL_H 1 # define HAVE_SYS_STREAM_H 1 # define HAVE_SYS_TIME_H 1 # define HAVE_SYS_WAIT_H 1 # define HAVE_DUP 1 # define HAVE_DUP2 1 # define HAVE_STRCHR 1 # define HAVE_STRRCHR 1 # endif /* 0 */ # include # if USE_PAGER /* Default number of terminal rows. */ # define SCREEN_ROWS 25 # endif /* Disk/Drive separator. */ # define DISK_SEP ":" /* Directory/folder separator. */ # define DIR_SEP "\\" /* Path separator. */ # define PATH_SEP ";" # ifdef __GNUC__ /* Environment variable holding path to termcap data base file. */ # define ENV_VAR_TCAP "TERMCAP" /* Name of termcap database file. */ # define FNAME_TCAP "termcap.dat" /* Name of default terminal type. */ # define DFLT_TERM "ansi" # endif # else /* !OS2 */ # if defined(ACORN) # define USE_PROTOTYPES 1 # define STDC_HEADERS 1 # define HAVE_ASSERT_H 1 # define HAVE_CTYPE_H 1 # define HAVE_ERRNO_H 1 # define HAVE_LIMITS_H 1 # define HAVE_SIGNAL_H 1 # define HAVE_SYS_STAT_H 1 # define HAVE_SYS_TYPES_H 1 # define HAVE_UPPER_LOWER 1 # define HAVE_ISDIGIT 1 # define HAVE_ISALPHA 1 # define HAVE_ISALNUM 1 # define HAVE_ISSPACE 1 # define HAVE_SIGNAL 1 # define HAVE_STRTOL 1 # define HAVE_STRSTR 1 # define HAVE_STRCSPN 1 # define HAVE_TIME_T 1 # define HAVE_VOID 1 /* Disk/Drive separator. */ # define DISK_SEP "$" /* Directory/Folder separator. */ # define DIR_SEP "." /* Path separator. */ # define PATH_SEP "," /* Name of program search path environment variable. */ # define ENV_VAR_PATH "Run$Path" # ifdef __GNUC__ # define HAVE_UNISTD_H 1 # if 0 # define HAVE_REGEX_H 1 # define HAVE_GNU_RE_COMPILE_PATTERN 1 # endif /* 0 */ # endif /* !__GNUC__ */ # else /* !ACORN */ # if defined(AMIGA) # define USE_PROTOTYPES 1 # define STDC_HEADERS 1 # define HAVE_ASSERT_H 1 # define HAVE_CTYPE_H 1 # define HAVE_ERRNO_H 1 # define HAVE_LIMITS_H 1 # define HAVE_SIGNAL_H 1 # define HAVE_SYS_TYPES_H 1 # define HAVE_UPPER_LOWER 1 # define HAVE_ISDIGIT 1 # define HAVE_ISALPHA 1 # define HAVE_ISALNUM 1 # define HAVE_ISSPACE 1 # define HAVE_SIGNAL 1 # define HAVE_STRTOL 1 # define HAVE_STRSTR 1 # define HAVE_STRCSPN 1 # define HAVE_TIME_T 1 # define HAVE_VOID 1 # ifdef __GNUC__ # define HAVE_UNISTD_H 1 # if 0 # define HAVE_REGEX_H 1 # define HAVE_GNU_RE_COMPILE_PATTERN 1 # endif /* 0 */ # endif /* !__GNUC__ */ # else /* !AMIGA */ # if defined(ATARI) # define USE_PROTOTYPES 1 # ifdef __GNUC__ # ifndef STDC_HEADERS # define STDC_HEADERS 1 # endif # define HAVE_UNISTD_H 1 # if 0 # define HAVE_REGEX_H 1 # define HAVE_GNU_RE_COMPILE_PATTERN 1 # endif /* 0 */ # else /* !__GNUC__ */ # define STDC_HEADERS 1 # endif /* !__GNUC__ */ # define HAVE_ASSERT_H 1 # define HAVE_CTYPE_H 1 # define HAVE_ERRNO_H 1 # define HAVE_LIMITS_H 1 # define HAVE_SIGNAL_H 1 # define HAVE_SYS_STAT_H 1 # define HAVE_SYS_TYPES_H 1 # define HAVE_UPPER_LOWER 1 # define HAVE_ISDIGIT 1 # define HAVE_ISALPHA 1 # define HAVE_ISALNUM 1 # define HAVE_ISSPACE 1 # define HAVE_SIGNAL 1 # define HAVE_STRTOL 1 # define HAVE_STRSTR 1 # define HAVE_STRCSPN 1 # define HAVE_TIME_T 1 # define HAVE_VOID 1 /* Directory/folder separator. */ # define DIR_SEP "\\" /* Path separator. */ # define PATH_SEP "," # else /* !ATARI */ # if defined(__50SERIES) || defined(PRIMOS) /* Prime/PRIMOS. */ # define USE_PROTOTYPES 1 # define STDC_HEADERS 1 # define HAVE_ASSERT_H 1 # define HAVE_CTYPE_H 1 # define HAVE_ERRNO_H 1 # define HAVE_LIMITS_H 1 # define HAVE_SIGNAL_H 1 # define HAVE_SYS_STAT_H 1 # define HAVE_SYS_TYPES_H 1 # define HAVE_UPPER_LOWER 1 # define HAVE_ISDIGIT 1 # define HAVE_ISALPHA 1 # define HAVE_ISALNUM 1 # define HAVE_ISSPACE 1 # define HAVE_SIGNAL 1 # define HAVE_STRTOL 1 # define HAVE_STRSTR 1 # define HAVE_STRCSPN 1 # define HAVE_TIME_T 1 # define HAVE_VOID 1 /* Directory/folder separator. */ # define DIR_SEP ">" # else /* !__50SERIES */ # if defined(VAXC) || defined(VMS) /* DEC Vax. */ /* Now let's define the symbol UNIX as default. */ # ifndef UNIX # define UNIX # endif # define USE_PROTOTYPES 1 # ifdef __GNUC__ # define HAVE_REGEX_H 1 # define HAVE_GNU_RE_COMPILE_PATTERN 1 # else /* !__GNUC__ */ # endif /* !__GNUC__ */ # define STDC_HEADERS 1 # define HAVE_ASSERT_H 1 # define HAVE_CTYPE_H 1 # define HAVE_ERRNO_H 1 # define HAVE_LIMITS_H 1 # define HAVE_SIGNAL_H 1 # define HAVE_SYS_STAT_H 1 # define HAVE_SYS_TYPES_H 1 # define HAVE_UPPER_LOWER 1 # define HAVE_ISDIGIT 1 # define HAVE_ISALPHA 1 # define HAVE_ISALNUM 1 # define HAVE_ISSPACE 1 # define HAVE_SIGNAL 1 # define HAVE_STRTOL 1 # define HAVE_STRSTR 1 # define HAVE_STRCSPN 1 # define HAVE_SYSTEM 1 # define HAVE_TIME_T 1 # define HAVE_VOID 1 # ifdef VAXC # include # endif /* Disk/Drive separator. */ # define DISK_SEP ":" /* Directory/folder separator. */ # define DIR_SEP "]" /* Suffix (version number) separator. */ # define SUFFIX_SEP ";" /* Name of programs default options variable. */ # define ENV_VAR_GCAL "GCAL_OPT" # ifndef unlink # define unlink(file) delete((file)) # endif # else /* default: UNIX. Let `configure' detect what's in store .) Now let's define the symbol UNIX (NOT GNU or RMS, hehe) as default. */ # ifndef UNIX # define UNIX # endif # endif /* default: UNIX */ # endif /* !__50SERIES */ # endif /* !ATARI */ # endif /* !AMIGA */ # endif /* !ACORN */ # endif /* !OS2 */ # endif /* !MSDOS && !DJG && !WIN32 */ /* * Compiler specific macro for prototyping. */ # ifndef __P_ # if (defined(__STDC__) && __STDC__) || defined(__cplusplus) || USE_PROTOTYPES # define __P_(gc_proto) gc_proto # else /* !__STDC__ && !__cplusplus && !USE_PROTOTYPES */ # define __P_(gc_proto) () # endif /* !__STDC__ && !__cplusplus && !USE_PROTOTYPES */ # endif /* * Function prototype begin and end declarations. */ # ifdef __cplusplus # ifndef __BEGIN_DECLARATIONS # define __BEGIN_DECLARATIONS extern "C" { # endif # ifndef __END_DECLARATIONS # define __END_DECLARATIONS } # endif # else /* !__cplusplus */ # ifndef __BEGIN_DECLARATIONS # define __BEGIN_DECLARATIONS # endif # ifndef __END_DECLARATIONS # define __END_DECLARATIONS # endif # endif /* !__cplusplus */ /* * Action specific preprocessor constants. */ /* * Termcap action is only allowed on these systems. */ # ifndef DJG # if defined(UNIX) || (defined(OS2) && defined(__GNUC__)) # if HAVE_TTYLIBS # define GCAL_TCAP # endif # endif # endif /*! * Writing a shell script is only allowed on these systems. */ # if defined(UNIX) && !defined(DJG) # define GCAL_SHELL # endif /*! * Using an external pager is only allowed on these systems. */ # if defined(UNIX) && !defined(DJG) && USE_PAGER # define GCAL_EPAGER # endif /*! * Email option is only allowed on these systems. */ # if defined(__GNUC__) || defined(UNIX) || defined(OS2) || defined(MSDOS) || defined(DJG) || defined(WIN32) # define GCAL_EMAIL # endif /* * Target specific preprocessor statements. */ # ifdef GCAL_TCAP /* Name of terminal mode/type environment varable. */ # ifndef ENV_VAR_TERM # define ENV_VAR_TERM "TERM" # endif # endif # ifdef GCAL_SHELL /*! The comment character used by shell scripts. */ # define SHL_REM "#" /*! The escape character used by shell scripts. */ # define SHL_ESC "\\" /*! Name of default `chmod' program. */ # ifndef CHMOD_PRGR # define CHMOD_PRGR "chmod" # endif /*! Make created shell script executable for all users. */ # define CHMOD_OPTS "+x" /*! ID for the first line of a shell script. */ # if HAVE_SYS_INTERPRETER && !defined(SHELL) # define SHELL "! /bin/sh" # endif # endif # ifdef GCAL_EMAIL /*! Input redirection symbol. */ # ifndef REDIRECT_IN # define REDIRECT_IN "<" # endif /*! Stores the name of default mailer program in environment. */ # ifndef ENV_VAR_MAILPROG # define ENV_VAR_MAILPROG "MAILPROG" # endif /*! Name of default eMail address environment variable 1. */ # ifndef ENV_VAR_MAILTO # define ENV_VAR_MAILTO "MAILTO" # endif /*! Name of default eMail address environment variable 2. */ # ifndef ENV_VAR_USER # define ENV_VAR_USER "USER" # endif /*! Name of default eMail address environment variable 3. */ # ifndef ENV_VAR_LOGNAME # define ENV_VAR_LOGNAME "LOGNAME" # endif /*! Name of default mailer if $MAILPROG is not set. */ # ifndef MAIL_PRGR # define MAIL_PRGR "mail" # endif # endif /* GCAL_EMAIL */ # if USE_RC || defined(GCAL_EMAIL) /* The proper function for a temporary file name according to used target system. */ # ifdef MSDOS # define TMPFILENAME tempnam(NULL, NULL) # else /* !MSDOS */ # include # include static char __buftmpfn[2048]; static char *_tmpfn () { int fd; if (path_search (__buftmpfn, sizeof (__buftmpfn), NULL, "gcal", false) < 0) return NULL; fd = mkostemp (__buftmpfn, 0); if (fd < 0) return NULL; close (fd); return __buftmpfn; } # define TMPFILENAME _tmpfn () # endif /* !MSDOS */ # endif /* GCAL_EMAIL || USE_RC */ /*! Default number of terminal columns, unconditional. */ # ifndef SCREEN_COLS # define SCREEN_COLS 80 # endif # if USE_PAGER /*! Default number of terminal rows. */ # ifndef SCREEN_ROWS # define SCREEN_ROWS 24 # endif # ifdef GCAL_EPAGER /*! Name of external pager program environment variable. */ # define ENV_VAR_PAGER "PAGER" /*! Name of preferred external pager program. */ # ifndef PAGER1_PROG # define PAGER1_PROG "less" # endif /*! Name of alternative external pager program. */ # ifndef PAGER2_PROG # define PAGER2_PROG "more" # endif /*! Name of second alternative external pager program. */ # ifndef PAGER3_PROG # define PAGER3_PROG "pg" # endif # endif /* GCAL_EPAGER */ # endif /* USE_PAGER */ # ifdef GCAL_NLS /*! Name of first used national language environment variable. */ # define ENV_VAR_LANGUAGE "LANGUAGE" /*! Name of second used national language environment variable. */ # define ENV_VAR_LC_ALL "LC_ALL" /*! Name of third used national language environment variable. */ # if HAVE_LC_MESSAGES # define ENV_VAR_LC_MESSAGES "LC_MESSAGES" # endif /*! Name of fourth used national language environment variable. */ # define ENV_VAR_LANG "LANG" # endif /*! The character used to specify the actual directory folder. */ # ifndef ACTUAL_DIR # define ACTUAL_DIR "." # endif /*! Default directory/folder separator. */ # ifndef DIR_SEP # define DIR_SEP "/" # endif /*! Default path separator. */ # ifndef PATH_SEP # define PATH_SEP ":" # endif /*! Name of home directory environment variable. */ # ifndef ENV_VAR_HOME # define ENV_VAR_HOME "HOME" # endif /*! Name of program search path environment variable. */ # ifndef ENV_VAR_PATH # define ENV_VAR_PATH "PATH" # endif /*! Name of data search path environment variable. */ # ifndef ENV_VAR_GCALPATH # define ENV_VAR_GCALPATH "GCALPATH" # endif /*! Name of programs default options variable. */ # ifndef ENV_VAR_GCAL # define ENV_VAR_GCAL "GCAL" # endif /*! Name of variable for setting ANSI-sequences to default. */ # ifndef ENV_VAR_GCALANSI # define ENV_VAR_GCALANSI "GCALANSI" # endif /*! Name of variable for ordering the date. */ # ifndef ENV_VAR_GCAL_DATE_FORMAT # define ENV_VAR_GCAL_DATE_FORMAT "GCAL_DATE_FORMAT" # endif /* * Define how the German `Umlaute' letters and other accent characters * are displayed and how the default marking characters are displayed. */ # if USE_EASC # if defined(NeXT) /* NeXTstep character set. */ # define AE "\303" # define OE "\324" # define UE "\300" # define SZ "\222" # define AAE "\316" # define OOE "\333" # define UUE "\232" # define ARA "\251" # define ERA_M "\301" # define ELA "\312" # define ADG "\302" # define EDG "\310" # define ODG "\323" # define CD "\200" /* Marking character 1 start (current day). */ # define BUF_HLS1S "<" /* Marking character 1 end (current day). */ # define BUF_HLS1E ">" /* Marking character 2 start (holiday). */ # define BUF_HLS2S ":" /* Marking character 2 end (holiday). */ # define BUF_HLS2E ":" # else # if defined(ATARI) /* Atari character set. */ # define AE "\204" # define OE "\224" # define UE "\201" # define SZ "\377" # define AAE "\216" # define OOE "\231" # define UUE "\232" # define ARA "\240" # define ERA_M "\202" # define ELA "\212" # define ADG "\203" # define EDG "\210" # define ODG "\223" # define CD "\207" /* Marking character 1 start (current day). */ # define BUF_HLS1S "<" /* Marking character 1 end (current day). */ # define BUF_HLS1E ">" /* Marking character 2 start (holiday). */ # define BUF_HLS2S ":" /* Marking character 2 end (holiday). */ # define BUF_HLS2E ":" # else # if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(SCO) || defined(COHERENT) /* IBM PC character set. */ # define AE "\204" # define OE "\224" # define UE "\201" # define SZ "\341" # define AAE "\216" # define OOE "\231" # define UUE "\232" # define ARA "\240" # define ERA_M "\202" # define ELA "\212" # define ADG "\203" # define EDG "\210" # define ODG "\223" # define CD "\207" /*! Marking character 1 start (current day). */ # define BUF_HLS1S "\021" /*! Marking character 1 end (current day). */ # define BUF_HLS1E "\020" /*! Marking character 2 start (holiday). */ # define BUF_HLS2S "\256" /*! Marking character 2 end (holiday). */ # define BUF_HLS2E "\257" # else /* !IBM PC character set. */ /* (defined(UNIX) && !defined(SCO) && !defined(COHERENT) && !defined(NeXT)) || defined(AMIGA) || ... */ /* ISO Latin-1 character set. */ # define AE "\344" # define OE "\366" # define UE "\374" # define SZ "\337" # define AAE "\304" # define OOE "\326" # define UUE "\334" # define ARA "\301" # define ERA_M "\351" # define ELA "\350" # define ADG "\342" # define EDG "\352" # define ODG "\364" # define CD "\347" /*! Marking character 1 start (current day). */ # define BUF_HLS1S "<" /*! Marking character 1 end (current day). */ # define BUF_HLS1E ">" /*! Marking character 2 start (holiday). */ # define BUF_HLS2S ":" /*! Marking character 2 end (holiday). */ # define BUF_HLS2E ":" # endif /* !IBM PC character set. */ # endif /* Atari character set. */ # endif /* NeXTstep character set. */ # else /* !USE_EASC */ # define AE "\"a" # define OE "\"o" # define UE "\"e" # define SZ "ss" # define AAE "\"A" # define OOE "\"O" # define UUE "\"U" # define ARA "'a" # define ERA_M "'e" # define ELA "`e" # define ADG "^a" # define EDG "^e" # define ODG "^o" # define CD ",c" /*! Marking character 1 start (current day). */ # define BUF_HLS1S "<" /*! Marking character 1 end (current day). */ # define BUF_HLS1E ">" /*! Marking character 2 start (holiday). */ # define BUF_HLS2S ":" /*! Marking character 2 end (holiday). */ # define BUF_HLS2E ":" # endif /* !USE_EASC */ /* * Define the default highlighting sequences. */ # if USE_HLS # if defined(MSDOS) || defined(OS2) || defined(LINUX) || defined(DJG) /*! Highlighting sequence 1 start (current day). */ # define HLS1S "\033[1m" /*! Highlighting sequence 2 start (holiday). */ # define HLS2S "\033[36m" # else /* !MSDOS && !OS2 && !LINUX && !DJG */ /*! Highlighting sequence 1 start (current day). */ # define HLS1S "\033[7m" /*! Highlighting sequence 2 start (holiday). */ # define HLS2S "\033[1m" # endif /* !MSDOS && !OS2 && !LINUX && !DJG */ /*! Highlighting sequence 1 end (current day). */ # define HLS1E "\033[0m" /*! Highlighting sequence 2 end (holiday). */ # define HLS2E "\033[0m" /*! Termcap mode character HLS 1 start (current day). */ # define TC_MC_HL1S "mr" /*! Termcap mode character HLS 1 end (current day). */ # define TC_MC_HL1E "me" /*! Termcap mode character HLS 2 start (holiday). */ # define TC_MC_HL2S "md" /*! Termcap mode character HLS 2 end (holiday). */ # define TC_MC_HL2E "me" # else /* !USE_HLS */ /*! Highlighting sequence 1 start (current day). */ # define HLS1S BUF_HLS1S /*! Highlighting sequence 1 end (current day). */ # define HLS1E BUF_HLS1E /*! Highlighting sequence 2 start (holiday). */ # define HLS2S BUF_HLS2S /*! Highlighting sequence 2 end (holiday). */ # define HLS2E BUF_HLS2E # endif /* !USE_HLS */ /*! Maximum number of termcap mode chars/single HL sequences used. */ # define TC_MC_MAX 4 /*! Print blank character if highlighting is disabled. */ # define NO_HLS " " #endif /* __TAILOR_H */ gcal-4.1/src/common.h0000664000000000000000000010156512353365045011423 00000000000000#ifndef __COMMON_H # define __COMMON_H /*! * \file common.h * \brief Basic program specific statements, macros and typedefs... */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011, 2012 Thomas Esken * Copyright (c) 2010, 2011, 2013, 2014 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: common.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * Include (sub)header files ;< */ # if USE_UNICODE # include "unistdio.h" # include "unistr.h" # undef sprintf # define sprintf u8_sprintf # undef strlen # define strlen u8_strlen # endif # if HAVE_STDIO_H || STDC_HEADERS # include # endif # if HAVE_STDLIB_H || STDC_HEADERS # include # endif # if HAVE_STRING_H || STDC_HEADERS # include # else /* !HAVE_STRING_H && !STDC_HEADERS */ # include # if !HAVE_STRCHR # ifndef strchr # define strchr index extern char *strchr __P_ ((const char *s, int c)); # endif # endif /* !HAVE_STRCHR */ # if !HAVE_STRRCHR # ifndef strrchr # define strrchr rindex extern char *strrchr __P_ ((const char *s, int c)); # endif # endif /* !HAVE_STRRCHR */ # endif /* !HAVE_STRING_H && !STDC_HEADERS */ # if HAVE_SIGNAL_H && HAVE_SIGNAL # if HAVE_SYS_TYPES_H # include # endif # include # endif # if defined(AMIGA) && !defined(__GNUC__) extern long atol __P_ ((const char *string)); # endif # ifdef __50SERIES extern char *getenv __P_ ((const char *env_var)); # if HAVE_SIGNAL && defined(SIGTERM) /* We don't want a signal handler for SIGTERM */ # undef SIGTERM # endif # endif /* * Basic preprocessor statements and macros. */ # ifdef SPECIAL_VALUE # undef SPECIAL_VALUE # endif /* * !!! DO NOT TOUCH THIS SPECIAL_VALUE, OTHERWISE YOU DESTROY THE PROGRAM !!! */ # define SPECIAL_VALUE (-1) # ifndef TRUE # define TRUE (0==0) # endif # ifndef FALSE # define FALSE (!TRUE) # endif # ifndef __LINE__ # define __LINE__ 0L # endif # ifndef __FILE__ # define __FILE__ "???" # endif # ifndef __DATE__ # define __DATE__ "DD-MMM-YYYY" # endif # ifndef __TIME__ # define __TIME__ "HH:MM:SS" # endif # define LOOP for(;;) # if HAVE_VOID # define VOID_PTR void * # else /* !HAVE_VOID */ # define VOID_PTR char * # define void int # endif /* !HAVE_VOID */ # ifndef RETSIGTYPE # define RETSIGTYPE void # endif # if !HAVE_STRSTR # ifndef strstr # define strstr my_strstr # endif # endif # if !HAVE_STRCSPN # ifndef strcspn # define strcspn my_strcspn # endif # endif # if !HAVE_STRCASECMP # ifndef strcasecmp # define strcasecmp my_strcasecmp # endif # endif # if !HAVE_STRNCASECMP # ifndef strncasecmp # define strncasecmp my_strncasecmp # endif # endif # if HAVE_TIME_T # define MY_TIME_T time_t # else /* !HAVE_TIME_T */ # define MY_TIME_T long # endif /* !HAVE_TIME_T */ # if !HAVE_UPPER_LOWER # ifndef islower # define islower(gc_c) (((gc_c) >= 'a') && ((gc_c) <= 'z')) # endif # ifndef isupper # define isupper(gc_c) (((gc_c) >= 'A') && ((gc_c) <= 'Z')) # endif # ifndef tolower # define tolower(gc_c) ((isupper(gc_c)) ? (gc_c) - 'A' + 'a' : (gc_c)) # endif # ifndef toupper # define toupper(gc_c) ((islower(gc_c)) ? (gc_c) - 'a' + 'A' : (gc_c)) # endif # endif # if !HAVE_ISDIGIT # ifndef isdigit # define isdigit(gc_c) (((gc_c) >= '0') && ((gc_c) <= '9')) # endif # endif # if !HAVE_ISALPHA # ifndef isalpha # define isalpha(gc_c) (isupper(gc_c) || islower(gc_c)) # endif # endif # if !HAVE_ISALNUM # ifndef isalnum # define isalnum(gc_c) (isalpha(gc_c) || isdigit(gc_c)) # endif # endif # if !HAVE_ISSPACE # ifndef isspace # define isspace(gc_c) ( (gc_c) == ' ' || (gc_c) == '\f' || (gc_c) == '\n' \ || (gc_c) == '\r' || (gc_c) == '\t' || (gc_c) == '\v') # endif # endif /* * Preprocessor macros used to activate some self-written mathematical * functions if no mathematical library is available. */ # if !HAVE_LIBM # ifdef floor # undef floor # endif # define floor my_floor # ifdef ceil # undef ceil # endif # define ceil my_ceil # ifdef sqrt # undef sqrt # endif # define sqrt my_sqrt # ifdef log # undef log # endif # define log my_log # ifdef log10 # undef log10 # endif # define log10 my_log10 # ifdef sin # undef sin # endif # define sin my_sin # ifdef cos # undef cos # endif # define cos my_cos # ifdef tan # undef tan # endif # define tan my_tan # ifdef asin # undef asin # endif # define asin my_asin # ifdef acos # undef acos # endif # define acos my_acos # ifdef atan # undef atan # endif # define atan my_atan # endif /* !HAVE_LIBM */ /*! * Preprocessor statements for the exit codes. */ # define ERR_NONE 0 /* * Common values. */ # define ERR_TERMINATION_BY_SIGNAL 3 # define ERR_INVALID_DATE_FORMAT 106 # define ERR_INTERNAL_TABLE_CRASH 107 # define ERR_ILLEGAL_CHAR_IN_FILE 108 # define ERR_READ_FILE 109 # define ERR_WRITE_FILE 115 # define ERR_NO_MEMORY_AVAILABLE 124 # define ERR_INVALID_EASTER_DATE 125 # define ERR_INVALID_OPTION 126 # define ERR_EXIT_INFO_TEXTS_NON_ZERO 127 /* * System/configuration dependent values. */ # ifdef GCAL_EMAIL # define ERR_EMAIL_SEND_FAILURE 111 # endif # if defined(GCAL_EPAGER) || defined(GCAL_EMAIL) || USE_RC # define ERR_INTERNAL_C_FUNC_FAILURE 110 # endif /* * Force the use of THESE values! */ # ifndef EXIT_FATAL # define EXIT_FATAL 2 # endif /* * Program specific preprocessor statements. */ /*! Maximum length of a file block buffer. */ # ifndef BUF_LEN # define BUF_LEN 16384 # endif /*! Default length of a "string" text buffer. */ # ifndef MAXLEN_MAX # define MAXLEN_MAX 1024 # endif /*! Default number of command line arguments in `my_argv[]' table. */ # ifndef MY_ARGC_MAX # define MY_ARGC_MAX 64 # endif /*! Gcal's exit status on: help, version, license. */ # ifndef EXIT_STAT_HELP # define EXIT_STAT_HELP EXIT_SUCCESS # endif /*! Default length of a displayed (native language translated) text line. */ # ifndef LEN_SINGLE_LINE # define LEN_SINGLE_LINE 200 # endif /*! Maximum amount of debug/warning levels. */ # define WARN_LVL_MAX 4 /*! * Preprocessor statements for long options `Lopt_struct' field `symbolic_name'. */ # define SYM_NIL 0 /* * Common values. */ # define SYM_BLOCKS 1 # define SYM_CALENDAR_DATES 2 # define SYM_CALENDAR_WITH_WEEK_NUMBER 3 # define SYM_DATE_FORMAT 4 # define SYM_DEBUG 5 # define SYM_DESC_HOLIDAY_LIST 6 # define SYM_DISABLE_HIGHLIGHTING 7 # define SYM_EXCLUDE_HD_TITLE 8 # define SYM_EXIT_STAT_HELP_NON_ZERO 9 # define SYM_FORCE_HIGHLIGHTING 10 # define SYM_GREG_REFORM 11 # define SYM_HELP 12 # define SYM_HIGHLIGHTING 13 # define SYM_HOLIDAY_DATES 14 # define SYM_HOLIDAY_LIST 15 # define SYM_ISO_WEEK_NUMBER 16 # define SYM_LICENSE1 17 # define SYM_LICENSE2 18 # define SYM_LICENSE3 19 # define SYM_LONG_HELP1 20 # define SYM_LONG_HELP2 21 # define SYM_ORTHODOX_CALENDAR 22 # define SYM_RESPONSE_FILE 23 # define SYM_STARTING_DAY 24 # define SYM_SUPPRESS_CALENDAR 25 # define SYM_SUPPRESS_HDLIST_SEP 26 # define SYM_TIME_OFFSET 27 # define SYM_TRANSFORM_YEAR 28 # define SYM_TRANSLATE_STRING 29 # define SYM_TYPE_OF_CALENDAR 30 # define SYM_VERSION 31 /* * Common holiday list values. */ # define SYM_ASTRONOMICAL_HDY 50 # define SYM_MULTICULTURAL_NEW_YEAR_HDY 51 # define SYM_ZODIACAL_MARKER_HDY 52 # define SYM_CC_HDY 53 /* * Calendar specific holiday list values. */ # define SYM_BAHAI_HDY 60 # define SYM_CELTIC_HDY 61 # define SYM_CHINESE_FLEXIBLE_HDY 62 # define SYM_CHINESE_HDY 63 # define SYM_CHRISTIAN_HDY 64 # define SYM_HEBREW_HDY 65 # define SYM_ISLAMIC_HDY 66 # define SYM_JAPANESE_FLEXIBLE_HDY 67 # define SYM_JAPANESE_HDY 68 # define SYM_ORTHODOX_NEW_HDY 69 # define SYM_ORTHODOX_OLD_HDY 70 # define SYM_PERSIAN_HDY 71 /* * Calendar specific month list values. */ # define SYM_BAHAI_MTH 80 # define SYM_CHINESE_FLEXIBLE_MTH 81 # define SYM_CHINESE_MTH 82 # define SYM_COPTIC_MTH 83 # define SYM_ETHIOPIC_MTH 84 # define SYM_FRENCH_REVOLUTIONARY_MTH 85 # define SYM_HEBREW_MTH 86 # define SYM_INDIAN_CIVIL_MTH 87 # define SYM_ISLAMIC_MTH 88 # define SYM_JAPANESE_FLEXIBLE_MTH 89 # define SYM_JAPANESE_MTH 90 # define SYM_OLD_ARMENIC_MTH 91 # define SYM_OLD_EGYPTIC_MTH 92 # define SYM_PERSIAN_MTH 93 /* * System dependent values. */ # ifdef GCAL_SHELL # define SYM_SCRIPT_FILE 100 # endif # ifdef GCAL_EMAIL # define SYM_MAIL 101 # endif /*! * Configuration dependent values. */ # if USE_PAGER # define SYM_PAGER 150 # endif /* * Preprocessor statements for long options `Lopt_struct' field `larg_mode'. */ /*! `--foo'. */ # define LARG_NO 0 /*! `--foo' or `--foo=BAR'. */ # define LARG_NO_OR_ONE 1 /*! `--foo=BAR'. */ # define LARG_ONE 2 /*! `--foo=BAR' or `--foo=ARG'. */ # define LARG_ONE_OR_ARG 3 /* * Further preprocessor statements used for long-style options. */ /*! Maximum number of arguments a long option may have. */ # define LARG_MAX 6 /*! Argument separator of a long option, e.g. `--foo=BAR'. */ # define LARG_SEP "=" /* * Some other common environment variable names. */ /*! Name of the timezone environment variable. */ # define ENV_VAR_TZ "TZ" # if USE_PAGER /*! Name of number of terminal rows environment variable. */ # define ENV_VAR_LI "GCAL_LINES" /*! Name of number of terminal columns environment variable. */ # define ENV_VAR_CO "GCAL_COLUMNS" /*! Name of number of terminal rows environment variable. */ # define ENV_VAR_LI2 "LINES" /* Name of number of terminal columns environment variable. */ # define ENV_VAR_CO2 "COLUMNS" # endif /* * Further preprocessor symbols. */ /*! Comment character of a resource/response file line. */ # define REM_CHAR ';' /*! Marker character of a response file (@FILE). */ # define RSP_CHAR '@' /*! Character used to quote a newline character etc. */ # define QUOTE_CHAR '\\' /*! Character used to replace a QUOTE_CHAR. */ # define PSEUDO_QUOTE '\001' /*! Used to insert a blank (' ') in places the OS normally forbits its use. */ # define PSEUDO_BLANK '_' /*! Separator of user defined sequences: `-HSEQ:SEQ...' `-vARG:ARG...' `-rARG:ARG...'. */ # define SEP ":" /*! Separator used for splitting lists, e.g. `-P e[DATE][,e[DATE],...]. */ # define SPLIT_SEP "," /*! Separator used for connecting lists, e.g. `--cc-holidays=CC[+CC+...]'. */ # define CONNECT_SEP "+" /*! Default switch char, which defines an command line option. */ # define SWITCH "-" /*! First additional switch char. */ # define SWITCH2 "/" /*! Separator of a list of months (MM,MM). */ # define MLIST_SEP "," /*! Separator of a range of months (MM-MM). */ # define MRANGE_SEP "-" /*! Separator of a list of years (YYYY;YYYY). */ # define YLIST_SEP ";" /*! Separator of a range of years (YYYY+YYYY). */ # define YRANGE_SEP "+" /*! Separator of a standard year (MM/YYYY). */ # define YEAR_SEP "/" /*! Separator of a fiscal year (MM:YYYY). */ # define FYEAR_SEP ":" /*! Command for enabling 3-month mode (.|..|.+|.-). */ # define MONTH3_LIT "." /*! Prefix to disable highlighting of a holiday. */ # define DIS_HLS_PREF "-" /*! Prefix to disable highlighting of a holiday. */ # define DIS_HLS_PREF2 "*" /*! Modifier for moving ascending/forwards in date/PLUS sign. */ # define ASC_LIT "+" /*! Modifier for moving descending/backwards in date/MINUS sign. */ # define DES_LIT "-" /*! Identifier for actual local time based time offsets used in the `--time_offset=ARG' option. */ # if !USE_RC # define staticTIME_CHAR 't' # endif /* USE_RC */ /*! Default time separator for scanning HH:MM time expressions. */ # define DEFAULT_TIME_SEP ":" /*! Mininum length of a day "cell" used in calendar sheets. */ # define FORMAT_LEN_MIN 3 /*! Minimum length of a textual day name. */ # define TXTLEN_DAY 2 /*! Minimum length of a textual month name. */ # define TXTLEN_MONTH 3 /*! Number of standard calsheet format default rows standard date. */ # define S_OUT_ROWS 3 /*! Number of standard calsheet format default columns standard date. */ # define S_OUT_COLS 4 /*! Number of standard calsheet format default rows special date. */ # define J_OUT_ROWS 4 /*! Number of standard calsheet format default columns special date. */ # define J_OUT_COLS 3 /*! Number of standard calsheet format default rows both dates. */ # define B_OUT_ROWS 12 /*! Number of standard calsheet format default columns both dates. */ # define B_OUT_COLS 1 /*! Number of special calsheet format default rows standard date. */ # define SI_OUT_ROWS 4 /*! Number of special calsheet format default columns standard date. */ # define SI_OUT_COLS 3 /*! Number of special calsheet format default rows special date. */ # define JI_OUT_ROWS 6 /*! Number of special calsheet format default columns special date. */ # define JI_OUT_COLS 2 /*! Number of special calsheet format default rows both dates. */ # define BI_OUT_ROWS B_OUT_ROWS /*! Number of special calsheet format default columns both dates. */ # define BI_OUT_COLS B_OUT_COLS /*! No of standard calsheet format default 3-month mode rows standard date. */ # define S3_OUT_ROWS 1 /*! No of standard calsheet format default 3-month mode columns standard date. */ # define S3_OUT_COLS 3 /*! No of standard calsheet format default 3-month mode rows special date. */ # define J3_OUT_ROWS S3_OUT_ROWS /*! No of standard calsheet format default 3-month mode columns special date. */ # define J3_OUT_COLS S3_OUT_COLS /*! No of standard calsheet format default 3-month mode rows both dates. */ # define B3_OUT_ROWS 3 /*! No of standard calsheet format default 3-month mode columns both dates. */ # define B3_OUT_COLS 1 /*! No of special calsheet format default 3-month mode rows standard date. */ # define SI3_OUT_ROWS S3_OUT_ROWS /*! No of special calsheet format default 3-month mode columns standard date. */ # define SI3_OUT_COLS S3_OUT_COLS /*! No of special calsheet format default 3-month mode rows special date. */ # define JI3_OUT_ROWS B3_OUT_ROWS /*! No of special calsheet format default 3-month mode columns special date. */ # define JI3_OUT_COLS B3_OUT_COLS /*! No of special calsheet format default 3-month mode rows both dates. */ # define BI3_OUT_ROWS B3_OUT_ROWS /*! No of special calsheet format default 3-month mode columns both dates. */ # define BI3_OUT_COLS B3_OUT_COLS /* * Characters used for ordering a displayed date. */ /*! Identifier leading the character used for ordering a displayed date. */ # define DFORMAT_CHAR '%' /*! %weekday name. */ # define WDNAME_CHAR 'K' /*! %day number. */ # define DAYNR_CHAR 'D' /*! %month name. */ # define MONTHNAME_CHAR 'U' /*! %month number. */ # define MONTHNR_CHAR 'M' /*! %year number. */ # define YEARNR_CHAR 'Y' /*! %highlighting sequence 1 enable. */ # define HLS1S_CHAR '1' /*! %highlighting sequence 1 disable. */ # define HLS1E_CHAR '2' /* * The elements used within the optional %... text format field, * which template is: ALIGNMENT [SIGN] [LZERO] WIDTH [STYLE] [SUFFIX] FORMAT */ /* Identification values for the different field styles. */ # define FSTYLE_NONE SPECIAL_VALUE # define FSTYLE_UPPER 1 # define FSTYLE_LOWER 2 # define FSTYLE_WORD 4 /*! Minimum width of a field. */ # define FWIDTH_MIN 1 /*! Maximum width of a field. */ # define FWIDTH_MAX 256 /*! Field contents is aligned left. */ # define FLEFT_CHAR '<' /*! Field contents is centered. */ # define FCENTER_CHAR ':' /*! Field contents is aligned right. */ # define FRIGHT_CHAR '>' /*! Provides numerical field contents with leading sign. */ # define FSIGN_CHAR '+' /*! Provides numerical field contents with leading zero(es) */ # define FLZERO_CHAR '0' /*! Field contents is converted to upper-case letters. */ # define FUPPER_CHAR 'u' /*! Field contents is converted to lower-case letters. */ # define FLOWER_CHAR 'l' /*! Field contents is converted to capitalized words. */ # define FWORD_CHAR 'w' /*! Appends ordinal number suffix to numerical field contents. */ # define FSUFFIX_CHAR '&' /*! Variable length field format. */ # define FVAR_CHAR '*' /*! Fixed length field format. */ # define FFIX_CHAR '#' /* * Important preprocessor symbols for the internal ranges. */ /*! Minimum day of week/month/year. */ # define DAY_MIN 1 /*! Maximum day/amount of days of week. */ # define DAY_MAX 7 /*! Last day in a NON leap year. */ # define DAY_LAST 365 /*! Maximum week number of year. */ # define WEEK_MAX 52 /*! Minimum month of year. */ # define MONTH_MIN 1 /*! Maximum month of year. */ # define MONTH_MAX 12 /*! Highest day number in a month. */ # define MONTH_LAST 31 /*! Minimum year able to compute. */ # define YEAR_MIN 1 /*! Maximum year able to compute. */ # define YEAR_MAX 9999 /*! Operating system standard starting century, DON'T change! */ # define CENTURY 1900 /*! Minimum year for computing Easter Sunday (29+1). */ # define EASTER_MIN 30 /*! Maximum year for computing Easter Sunday. */ # define EASTER_MAX YEAR_MAX /*! Maximum number of columns of a month. */ # define MONTH_COLS 6 /*! Maximum number of elements per month (DAY_MAX*MONTH_COLS). */ # define VEC_BLOCK 42 /*! Maximum number of elements per year (VEC_BLOCK*MONTH_MAX). */ # define VEC_ELEMS 504 /* * Additional usage texts. */ # if !USE_RC # define USAGE_RC1 "" # define USAGE_RC2 "" # define USAGE_RC3 "" # define USAGE_RC4 "" # endif /* !USE_RC */ # if USE_PAGER /* Quits the internal pager. */ # define PAGER_QUIT "q" /* Additional usage text. */ # define USAGE_PAGER "p" # else /* !USE_PAGER */ # define USAGE_PAGER "" # endif /* !USE_PAGER */ # ifdef GCAL_SHELL /* Additional usage text. */ # define USAGE_SHELL "S" # else /* !GCAL_SHELL */ # define USAGE_SHELL "" # endif /* !GCAL_SHELL */ /* * And last but not least... */ # define COPYRIGHT_TXT "Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken\n" \ "Copyright (c) 2010, 2011, 2012, 2014 Free Software Foundation, Inc." # define BUG_REPORT_ADR1 "bug-gcal@gnu.org" # define HOMEPAGE "http://www.gnu.org/software/gcal" # define HOMEPAGE_GNU_SOFTWARE "http://www.gnu.org/gethelp/" /*! * Number of days between 1.5-Jan-4713 BCE and 1.5-Jan-0001 CE. */ # define MIN_BCE_TO_1_CE 1721424L /* * Some important mathematical constants. */ # define MY_PI 3.14159265358979323846 # define MY_TWO_PI 6.28318530717958647692 # define MY_HALF_PI 1.57079632679489661923 /* * Common preprocessor macros. */ # ifdef S_NEWLINE # undef S_NEWLINE # endif # define S_NEWLINE(gc_fp) fputc('\n', (gc_fp)) # ifdef MIN # undef MIN # endif # define MIN(gc_x1, gc_x2) (((gc_x1) < (gc_x2)) ? (gc_x1) : (gc_x2)) # ifdef MAX # undef MAX # endif # define MAX(gc_x1, gc_x2) (((gc_x1) > (gc_x2)) ? (gc_x1) : (gc_x2)) # ifdef SYEAR # undef SYEAR # endif # define SYEAR(gc_d, gc_s) ( ((gc_d)-(gc_s)+1) < DAY_MIN) \ ? ((gc_d)-(gc_s)+(DAY_MAX+1)) \ : ((gc_d)-(gc_s)+1) # ifdef SMONTH # undef SMONTH # endif # define SMONTH(gc_d, gc_s) ( ((gc_d)+(gc_s)-1) > MONTH_MAX) \ ? ((gc_d)+(gc_s)-(MONTH_MAX+1)) \ : ((gc_d)+(gc_s)-1) # ifdef SDAY # undef SDAY # endif # define SDAY(gc_d, gc_s) ( ((gc_d)+(gc_s)-1) > DAY_MAX) \ ? ((gc_d)+(gc_s)-(DAY_MAX+1)) \ : ((gc_d)+(gc_s)-1) /* * Some useful mathematical functions. */ /*! * Reduce a degree value to a value within circle range. */ # ifdef FIXANGLE # undef FIXANGLE # endif # define FIXANGLE(a) ((a) - 360.0 * (floor((a) / 360.0))) /*! * Degrees to Radians := degree_value * Pi / 180. */ # ifdef TORAD # undef TORAD # endif # define TORAD(r) ((r)*0.017453292519943295769) /*! * Radians to Degrees := radian_value * 180 / Pi. */ # ifdef TODEG # undef TODEG # endif # define TODEG(d) ((d)*57.295779513082320877) /*! * Absolute value of a number := |x|. */ # ifdef abs # undef abs # endif # define abs(x) (((x) < 0) ? (-(x)) : (x)) /*! * Sign of a number. */ # ifdef SGN # undef SGN # endif # define SGN(x) (((x) < 0) ? -1 : (((x) > 0) ? 1 : 0)) /*! * Round-up factor. */ # ifdef ROUND # undef ROUND # endif # define ROUND(x) ((abs(x)+0.5)*SGN(x)) /* * Some time values. */ # define HOURS_PER_DAY 24 # define HOURS_PER_HALF_DAY 12 # define MINS_PER_DAY 1440 # define MINS_PER_HOUR 60 # define SECS_PER_MIN MINS_PER_HOUR # define SECS_PER_HOUR 3600 # define SECS_PER_DAY 86400L /* * Some degree values. */ # define DEGS_PER_HOUR 15.0 /* 2 Pi in degrees / 24.0 hours. */ # define DEGS_PER_06_HOURS 90.0 /* Pi / 2 in degrees. */ # define DEGS_PER_12_HOURS 180.0 /* Pi in degrees. */ # define DEGS_PER_24_HOURS 360.0 /* 2 Pi in degrees. */ /* * Some degree to time and vice-versa conversion functions. */ /*! * Degrees to Days := degree_value / 360.0 (15 degrees * 24 hours [2 Pi]). */ # define DEG2DAY(d) ((d) / DEGS_PER_24_HOURS) /*! * Degrees to Hours := degree_value / 15.0 (360 degrees / 24 hours). */ # define DEG2HH(d) ((d) / DEGS_PER_HOUR) /*! * Degrees to Minutes := degree_value * 60.0. */ # define DEG2MM(d) ((d) * (double)MINS_PER_HOUR) /*! * Degrees to Seconds := degree_value * 3600.0 (60 minutes * 60 seconds). */ # define DEG2SS(d) ((d) * (double)SECS_PER_HOUR) /*! * Days to Degrees := day_value * 360.0 (15 degrees * 24 hours [2 Pi]). */ # define DAY2DEG(x) ((x) * DEGS_PER_24_HOURS) /*! * Hours to Degrees := hour_value * 15.0 (360 degrees / 24 hours). */ # define HH2DEG(h) ((h) * DEGS_PER_HOUR) /*! * Minutes to Degrees := minute_value / 60.0. */ # define MM2DEG(m) ((m) / (double)MINS_PER_HOUR) /*! * Seconds to Degrees := second_value / 3600.0 (60 minutes * 60 seconds). */ # define SS2DEG(s) ((s) / (double)SECS_PER_HOUR) /*! * Hours to Days := hour_value / 24.0. */ # define HH2DAY(h) ((h) / (double)HOURS_PER_DAY) /*! * Minutes to Days := minute_value / 1440.0 (24 hours * 60 minutes). */ # define MM2DAY(m) ((m) / (double)MINS_PER_DAY) /*! * Seconds to Days := second_value / 86400.0 (24 hours * 3600 seconds). */ # define SS2DAY(s) ((s) / (double)SECS_PER_DAY) /*! * Days to Hours := day_value * 24.0. */ # define DAY2HH(x) ((x) * (double)HOURS_PER_DAY) /*! * Days to Minutes := day_value * 1440.0 (24 hours * 60 minutes). */ # define DAY2MM(x) ((x) * (double)MINS_PER_DAY) /*! * Days to Seconds := day_value * 86400.0 (24 hours * 3600 seconds). */ # define DAY2SS(x) ((x) * (double)SECS_PER_DAY) /*! * Hours and Minutes to Days := (hour_value * 60 + min_value) / 1440.0. */ # define HHMM2DAY(h, m) (((h) * MINS_PER_HOUR + (m)) / (double)MINS_PER_DAY) /*! * Hours and Minutes to Hours := hour_value + min_value / 60.0. */ # define HHMM2HH(h, m) ((h) + (m) / (double)MINS_PER_HOUR) /*! * Hours and Minutes to Minutes := hour_value * 60 + min_value. */ # define HHMM2MM(h, m) ((h) * MINS_PER_HOUR + (m)) /*! * Hours and Minutes to Seconds := hour_value * 3600 + min_value * 60. */ # define HHMM2SS(h, m) ((h) * SECS_PER_HOUR + (m) * SECS_PER_MIN) /*! * Hours to Minutes. */ # define HH2MM(x) DEG2MM(x) /*! * Hours to Seconds. */ # define HH2SS(x) DEG2SS(x) /*! * Minutes to Hours. */ # define MM2HH(x) MM2DEG(x) /*! * Minutes to Seconds. */ # define MM2SS(x) DEG2MM(x) /*! * Seconds to Hours. */ # define SS2HH(x) SS2DEG(x) /*! * Seconds to Minutes. */ # define SS2MM(x) MM2DEG(x) # ifdef CUT_LONGNAMES /* * Cut resp., replace some long variable or function names to 6 significant * places so ANY linker should be able to bind an executable file. */ # define bahai_hdy F_bhd # define bahai_mth F_bmt # define chinese_hdy F_chd # define chinese_mth F_cmt # define compare_d_m_name F_cdm # define comparemode V_cm # if !USE_RC # define days_of_feb V_dof # endif # define decode_date_format F_ddf # define decode_eclipse F_de # define decode_format F_df # define days_of_february F_dof # if USE_HLS || USE_PAGER # define get_termcap_hls F_ghl # define get_termcap_scr_attrib F_gsc # endif # define get_tty_hls F_gth # if USE_PAGER # define get_tty_scr_size F_gts # endif # define hd_title_flag V_htf # define hd_title_shown V_hts # define hebrew_hdy F_hhd # define hebrew_mth F_hmt # define hdy_chinese V_hc # define hdy_chinese_flexible V_hcf # define hdy_christian V_hcr # define hdy_japanese V_hj # define hdy_japanese_flexible V_hjf # define hdy_orthodox_new V_hon # define hdy_orthodox_old V_hoo # define holiday V_hd # define holiday_flag V_hf # define holiday_name V_hn # define holiday_prefix V_hp # define is_3month_mode V_3m # define is_3month_mode2 V_3m2 # define is_ext_list V_iel # define is_ext_range V_ier # define is_ext_year V_iey # define is_tty V_it # define is_tty1 V_it1 # define is_tty2 V_it2 # define islamic_hdy F_ihd # define islamic_mth F_imt # define longopt V_lo # define longopt_symbolic V_los # define module_line V_mdl # define module_name V_mdn # define month_list V_ml # define month_list_max V_mlm # define month_name F_mn # define month_set V_ms # define moon_corrected_anomaly V_mca # define moon_corrected_longitude V_mcl # define moon_correction_equation_of_center V_mce # define moon_correction_term1 V_mc1 # define moon_correction_term2 V_mc2 # define moon_mean_anomaly V_mma # define moon_mean_longitude V_mml # define moon_present_age V_mpa # define moon_present_longitude V_mpl # define moon_present_phase V_mpp # define mth_chinese V_mtc # define mth_chinese_flexible V_mcf # define mth_japanese V_mtj # define mth_japanese_flexible V_mjf # define mth_old_armenian V_moa # define mth_old_egyptian V_moe # define my_argc V_mac # define my_argc_max V_max # define my_argv V_mav # if !HAVE_LIBM # define my_atan V_ma1 # define my_atan2 V_ma2 # endif # define my_help_head_text F_mhh # define my_help_tail_text F_mht # if !HAVE_LIBM # define my_log V_mle # define my_log10 V_ml1 # endif # define my_strstr F_mss # define my_strcspn F_msp # define my_strcasecmp F_msc # define my_strncasecmp F_msn # define orthodox_calendar V_oc # define orthodox_easter F_oe # define orthodox_hdy F_oh # define persian_hdy F_phy # define persian_mth F_pmt # define print_all_holidays F_pah # define print_calendar F_pc # define print_highlighted_date F_phd # if USE_HLS # define print_hls V_phl # endif # define print_text F_ptx # define print_unhighlighted_date F_pud # define ptr_cc V_pcc # define ptr_cc_holidays V_pcd # define ptr_cc_id V_pid # define ptr_info_date_format V_pdf # define short_day_name F_sdn # define short_month_name F_smn # define special_flag V_sf # define special_vector V_sv # define users_date_format V_ud # define users_greg V_ug # define use_day_suffix V_uds # define use_day_zeroleaded V_udz # endif /* CUT_LONGNAMES */ /* * Type definitions. */ typedef unsigned char Uchar; typedef unsigned int Uint; # ifdef DJG typedef # if defined(__STDC__) && __STDC__ unsigned short int # else /* !__STDC__ */ unsigned short # endif /* !__STDC__ */ Usint; # endif /* DJG */ typedef # if defined(__STDC__) && __STDC__ signed long int # else /* !__STDC__ */ long # endif /* !__STDC__ */ Slint; typedef # if defined(__STDC__) && __STDC__ unsigned long int # else /* !__STDC__ */ unsigned long # endif /* !__STDC__ */ Ulint; typedef int Bool; /*! * The quicksort (`qsort()') compare function type. */ typedef int (*Cmp_func) __P_ ((const VOID_PTR, const VOID_PTR)); # if HAVE_SIGNAL && (defined(SIGINT) || defined(SIGTERM) || defined(SIGHUP)) /*! * The signal (`signal()') handler function return type. */ typedef RETSIGTYPE (*Sig_type) __P_ ((int)); # endif /*! * The long option record, see file `gcal.c' for a detailed description of it! */ typedef struct long_option_type { int symbolic_name; char *long_name; char *short_name[LARG_MAX]; int larg_mode; char *largs[LARG_MAX]; } Lopt_struct; /*! * The highlighting sequence record. */ typedef struct hls_type { const char *seq; int len; } Hls_struct; /*! * The list/range of months/years record. */ typedef struct ml_type { int ml_month; int ml_year; } Ml_struct; /*! * The supported date format record. */ typedef struct date_format_type { /* Identifying text of the format. */ char *df_id; /* Description text of the format. */ char *df_info; /* The format text itself. */ char *df_format; } Df_struct; /*! * The Gregorian Reformation date record. */ typedef struct greg_type { /* Year of Gregorian Reformation. */ int year; /* Month of Gregorian Reformation. */ int month; /* First missing day of Reformation period. */ int first_day; /* Last missing day of Reformation period. */ int last_day; } Greg_struct; /*! * General purpose enumerations. */ typedef enum compare_mode { DAy = 1, # if USE_RC DVar, TVar, EAster, TOday, WEek, # endif MOnth } Cmode_enum; typedef enum file_mode { REsponse = 1, # if USE_RC USr_include, SYs_include, REsource, HEre, # endif # ifdef GCAL_SHELL SCript, # endif COmmon } Fmode_enum; #endif /* __COMMON_H */ gcal-4.1/src/rc-insert.c0000664000000000000000000031553012353366371012036 00000000000000/*! * \file rc-insert.c * \brief Inserts a line (of a resource file) into `rc_elems_table[]'. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include definition header file to see whether USE_RC is defined there. * Compile this module only if USE_RC is defined, otherwise skip it. */ #include "tailor.h" #if USE_RC /* * Include header files. */ # if HAVE_CTYPE_H # include # endif # if TIME_WITH_SYS_TIME # include # include # else /* !TIME_WITH_SYS_TIME */ # if HAVE_SYS_TIME_H # include # else /* !HAVE_SYS_TIME_H */ # include # endif /* !HAVE_SYS_TIME_H */ # endif /* !TIME_WITH_SYS_TIME */ # include "common.h" # include "rc-defs.h" # include "globals.h" # include "hd-astro.h" # include "hd-use.h" # include "rc-astro.h" # include "rc-utils.h" # include "tty.h" # include "utils.h" # include "rc-insert.h" /* * static variables definitions. */ /*! The table containing the codes that define the output and error format types used for formatting the data of the %sun* and %moon* special texts. */ static const Aobj_oformat_struct aobj_oformat[][AOBJ_MOON + 1] = { /* { SUN::{char data_format, char error_format}, MOON::{char data_format, char error_format} } */ /* Mode 0...4. */ {{FMT_HHH, ERR_HHH}, {FMT_HHH, ERR_HHH}}, {{FMT_HHH, ERR_HHH}, {FMT_HHH, ERR_HHH}}, {{FMT_HHH, ERR_HHH}, {FMT_HHH, ERR_HHH}}, {{FMT_HHH, ERR_HHH}, {FMT_HHH, ERR_HHH}}, {{FMT_HHH, ERR_HHH}, {FMT_HHH, ERR_HHH}}, /* Mode 5...9. */ {{FMT_HHH, ERR_HHH}, {FMT_HHH, ERR_HHH}}, {{FMT_HHH, ERR_HHH}, {FMT_DDD, ERR_DDD}}, {{FMT_HHH, ERR_HHH}, {FMT_DDD, ERR_DDD}}, {{FMT_HHH, ERR_HHH}, {FMT_NSD, ERR_NNN}}, {{FMT_HHH, ERR_HHH}, {FMT_NND, ERR_NNN}}, /* Mode 10...14. */ {{FMT_DDS, ERR_DDD}, {FMT_DDS, ERR_DDD}}, {{FMT_DDD, ERR_DDD}, {FMT_DDD, ERR_DDD}}, {{FMT_DDS, ERR_DDD}, {FMT_DDS, ERR_DDD}}, {{FMT_DDD, ERR_DDD}, {FMT_DDD, ERR_DDD}}, {{FMT_TTT, ERR_TTT}, {FMT_DDS, ERR_DDD}}, /* Mode 15...19. */ {{FMT_NND, ERR_NNN}, {FMT_TTT, ERR_TTT}}, {{FMT_DDD, ERR_DDD}, {FMT_NND, ERR_NNN}}, {{FMT_DDD, ERR_DDD}, {FMT_DDD, ERR_DDD}}, {{FMT_DDD, ERR_DDD}, {FMT_DDD, ERR_DDD}}, {{FMT_DDS, ERR_DDD}, {FMT_DDD, ERR_DDD}}, /* Mode 20...24. */ {{FMT_DDD, ERR_DDD}, {FMT_DDD, ERR_DDD}}, {{FMT_DDS, ERR_DDD}, {FMT_NSD, ERR_NNN}}, {{FMT_DDD, ERR_DDD}, {FMT_NND, ERR_NNN}}, {{FMT_TTT, ERR_TTT}, {FMT_DDS, ERR_DDD}}, {{FMT_NND, ERR_NNN}, {FMT_DDD, ERR_DDD}}, /* Mode 25...29. */ {{FMT_DDD, ERR_DDD}, {FMT_DDS, ERR_DDD}}, {{FMT_DDD, ERR_DDD}, {FMT_DDD, ERR_DDD}}, {{FMT_NSD, ERR_NNN}, {FMT_DDS, ERR_DDD}}, {{FMT_HHH, ERR_HHH}, {FMT_TTT, ERR_TTT}}, {{FMT_TXS, ERR_TTT}, {FMT_NND, ERR_NNN}}, /* Mode 30...34. */ {{FMT_NND, ERR_NNN}, {FMT_DDD, ERR_DDD}}, {{FMT_NND, ERR_NNN}, {FMT_NSD, ERR_NNN}}, {{FMT_TTS, ERR_TTT}, {FMT_HHH, ERR_HHH}}, {{FMT_DDS, ERR_DDD}, {FMT_TXS, ERR_TTT}}, {{FMT_DDS, ERR_DDD}, {FMT_NND, ERR_NNN}}, /* Mode 35...39. */ {{FMT_DDS, ERR_DDD}, {FMT_NND, ERR_NNN}}, {{FMT_DDS, ERR_DDD}, {FMT_DDS, ERR_DDD}}, {{FMT_DDS, ERR_DDD}, {FMT_DDS, ERR_DDD}}, {{FMT_DDS, ERR_DDD}, {FMT_DDS, ERR_DDD}}, {{FMT_DDS, ERR_DDD}, {FMT_DDS, ERR_DDD}}, /* Mode 40...44. */ {{FMT_DDS, ERR_DDD}, {FMT_DDS, ERR_DDD}}, {{FMT_TTS, ERR_TTT}, {FMT_DDS, ERR_DDD}}, {{FMT_TTS, ERR_TTT}, {FMT_DDS, ERR_DDD}}, {{FMT_TTS, ERR_TTT}, {FMT_DDS, ERR_DDD}}, {{FMT_DDS, ERR_DDD}, {FMT_TTS, ERR_TTT}}, /* Mode 45...49. */ {{FMT_DDS, ERR_DDD}, {FMT_TTS, ERR_TTT}}, {{FMT_DDS, ERR_DDD}, {FMT_TTS, ERR_TTT}}, {{FMT_DDD, ERR_DDD}, {FMT_DDS, ERR_DDD}}, {{FMT_DDS, ERR_DDD}, {FMT_NND, ERR_NNN}}, {{FMT_DDS, ERR_DDD}, {FMT_DDS, ERR_DDD}}, /* Mode 50...54. */ {{FMT_DDS, ERR_DDD}, {FMT_NND, ERR_NNN}}, {{FMT_DDD, ERR_DDD}, {FMT_DDS, ERR_DDD}}, {{FMT_HHH, ERR_HHH}, {FMT_DDD, ERR_DDD}}, {{FMT_HHH, ERR_HHH}, {FMT_NND, ERR_NNN}}, {{FMT_NIL, ERR_NIL}, {FMT_DDS, ERR_DDD}}, /* Mode 55...60. */ {{FMT_NIL, ERR_NIL}, {FMT_NND, ERR_NNN}}, {{FMT_NIL, ERR_NIL}, {FMT_DDS, ERR_DDD}}, {{FMT_NIL, ERR_NIL}, {FMT_NND, ERR_NNN}}, {{FMT_NIL, ERR_NIL}, {FMT_DDS, ERR_DDD}}, {{FMT_NIL, ERR_NIL}, {FMT_DDD, ERR_DDD}}, {{FMT_NIL, ERR_NIL}, {FMT_NND, ERR_NNN}}, /* Auxiliary modes 61 ..68. */ {{FMT_NNN, ERR_NNN}, {FMT_NNN, ERR_NNN}}, {{FMT_NND, ERR_NNN}, {FMT_NND, ERR_NNN}}, {{FMT_NSD, ERR_NNN}, {FMT_NSD, ERR_NNN}}, {{FMT_HHH, ERR_HHH}, {FMT_HHH, ERR_HHH}}, {{FMT_TTT, ERR_TTT}, {FMT_TTT, ERR_TTT}}, {{FMT_TTS, ERR_TTT}, {FMT_TTS, ERR_TTT}}, {{FMT_DDD, ERR_DDD}, {FMT_DDD, ERR_DDD}}, {{FMT_DDS, ERR_DDD}, {FMT_DDS, ERR_DDD}}, }; /* * Function implementations. */ void insert_line_into_table (line_buffer, filename, line_number, rc_elems, len_date, print_twice) char *line_buffer; const char *filename; const long line_number; int *rc_elems; int len_date; int print_twice; /*! Inserts a line into `rc_elems_table[]', but before this the line is checked and evaluated first for TVAR text variables and then for %?... special texts. */ { auto Slint num; register int i; register int j; register int j_buf; register int j_diff; register int k; register int kk; register int kpos; register int kkpos; register int len_fn = len_year_max + 5; /* Position of the `(' of the "(FILENAME)" text */ register int tmp_year = year; auto int len; auto int rlen; auto int dd; auto int rdd; auto int mm; auto int rmm; auto int yy; auto int ryy; auto int nn; auto int rnn; auto int hhn; auto int rhn; auto int hhwd; auto int rhwd; auto int bio_emo_phase; auto int bio_emo_waxes; auto int bio_int_phase; auto int bio_int_waxes; auto int bio_phy_phase; auto int bio_phy_waxes; auto int bio_critical_day; auto int bio_positive_day; auto int bio_negative_day; auto int fstyle; auto int fwidth; static char buffer[40]; static char date_text[23]; static char bio_emo_ptext[7]; static char bio_int_ptext[7]; static char bio_phy_ptext[7]; auto char *ptr_date_text; auto char *ptr_char = line_buffer + len_date; auto char hhc; auto char rhc; static Bool inclusive_date_map[DAY_LAST + 2]; static Bool exclusive_date_map[DAY_LAST + 2]; auto Bool ie_date_maps_set; auto Bool hls1_set; auto Bool hls2_set; auto Bool is_weekday_mode; auto Bool ris_weekday_mode; auto Bool moon_min_max; auto Bool ok; auto Bool hls_set; auto Bool print_line; auto Bool is_obsolete_whitespace; auto Bool is_cformat; auto Bool is_lformat; auto Bool is_sign; auto Bool is_lzero; auto Bool is_fformat; auto Bool is_suffix; auto Bool got_command = FALSE; if (rc_enable_fn_flag) len_fn += (int) strlen (filename) + 3; /* +3 due to the "(THE_REAL_FILENAME_ITSELF) " text */ /* Skip the delimiting whitespace characters between the "date"-part and the "text"-part. */ while (isspace (*ptr_char)) ptr_char++; if (*ptr_char) { /* If the "text"-part starts with a QUOTEd whitespace character, exchange the QUOTE character by a PSEUDO_QUOTE character ('\001') to keep the internal sorting order intact. */ if ((*ptr_char == QUOTE_CHAR) && isspace (*(ptr_char + 1))) *ptr_char = PSEUDO_QUOTE; if ((Uint) len_the_text < maxlen_max) { len_the_text = (int) maxlen_max; the_text = (char *) my_realloc ((VOID_PTR) the_text, len_the_text, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "the_text", len_the_text); } strcpy (the_text, ptr_char); } else /* No "text"-part given. */ *the_text = '\0'; do { /* Initialize some controlling variables. */ print_line = TRUE; ptr_date_text = date_text; j = k = j_buf = kk = j_diff = kpos = kkpos = 0; ie_date_maps_set = is_obsolete_whitespace = hls_set = hls1_set = hls2_set = FALSE; fstyle = FSTYLE_NONE; fwidth = SPECIAL_VALUE; ok = is_cformat = is_lformat = is_sign = is_lzero = is_fformat = is_suffix = FALSE; /* If `--filter-period=ARG' is given and ARG matches the date of the fixed date, suppress this fixed date! */ if ((rc_filter_period != (char *) NULL) && (line_number != SPECIAL_VALUE)) print_line = rc_valid_period (rc_filter_period, d, m, y, incr_year, decr_year); /* If `--filter-day=ARG' is given and ARG matches the date of the fixed date, suppress this fixed date! */ if (print_line && (rc_filter_day != (char *) NULL) && (line_number != SPECIAL_VALUE)) print_line = rc_valid_day (rc_filter_day, d, m, year + incr_year - decr_year); if (!print_line) ok = TRUE; else /* Check line for %?... special texts and quoted TVAR text variables. */ *s6 = *date_text = '\0'; while (!ok) { while (*(the_text + j)) { if ((Uint) k >= maxlen_max - (Uint) len_fn) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); if (*(the_text + j) == RC_SPECIAL_TEXT_CHAR || *(the_text + j) == RC_TVAR_CHAR) { if (j) { /* Check if the %?... special text or the TVAR text variable is quoted. */ if (*(the_text + (j - 1)) == QUOTE_CHAR) { k--; kk--; } else if (*(the_text + j) == RC_SPECIAL_TEXT_CHAR) break; } else if (*(the_text + j) == RC_SPECIAL_TEXT_CHAR) break; } if (is_obsolete_whitespace && isspace (*(the_text + j))) { is_obsolete_whitespace = FALSE; j++; } else s1[k++] = s6[kk++] = *(the_text + j++); } if ((Uint) k >= maxlen_max - (Uint) len_fn) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); if (*(the_text + j)) { auto char special_text_char; /* A '%' character (special text prefix) found! */ j_buf = j++; /* Check for a special text format. */ j = decode_format (the_text, j, &is_cformat, &is_lformat, &is_sign, &is_lzero, &is_suffix, &is_fformat, &fstyle, &fwidth); *s2 = '\0'; special_text_char = *(the_text + j); if ((!got_command && (special_text_char == RC_IDATE_CHAR || special_text_char == RC_EDATE_CHAR)) || special_text_char == RC_TDATE_CHAR || special_text_char == RC_WDNAME_CHAR || special_text_char == RC_WDNR_M1_2_S7_CHAR || special_text_char == RC_WDNR_M0_2_S6_CHAR || special_text_char == RC_WDNR_S1_2_S7_CHAR || special_text_char == RC_WDNR_S0_2_S6_CHAR || special_text_char == RC_WDNR_X1_2_X7_CHAR || special_text_char == RC_WDNR_X0_2_X6_CHAR || special_text_char == RC_DOYNR_CHAR || special_text_char == RC_DAYNR_CHAR || special_text_char == RC_MONTHNAME_CHAR || special_text_char == RC_MONTHNR_CHAR || special_text_char == RC_YEARNR_CHAR || special_text_char == RC_WEEKNR_CHAR || special_text_char == RC_BYEAR_CHAR || ((special_text_char == RC_YEAR_DIFF_CHAR) && *(the_text + j + 1) && !isspace (*(the_text + j + 1))) || special_text_char == RC_MOON_CHAR || special_text_char == RC_MOON_IMAGE_CHAR || special_text_char == RC_BIO_CHAR || special_text_char == RC_BIO_BAR_CHAR) { j++; if (special_text_char == RC_TDATE_CHAR) { auto Slint jdate; /* %textual_date[[+|-]N] special text found. */ i = 0; if (*(the_text + j) == *ASC_LIT || *(the_text + j) == *DES_LIT) s2[i++] = *(the_text + j++); while (isdigit (*(the_text + j))) { if ((Uint) i >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); s2[i++] = *(the_text + j++); } s2[i] = '\0'; num = atol (s2); jdate = (Slint) date2num (d, m, year + incr_year - decr_year); if ((jdate + num <= (Slint) date2num (dvec[MONTH_MAX - 1], MONTH_MAX, YEAR_MAX)) && (jdate + num >= 1L)) { num2date (jdate + num, &dd, &mm, &yy); if (transform_year) { yy = yy - transform_year; if ((yy >= 0) && (transform_year > 0)) yy++; } sprintf (s2, "%02d-%s-%0*d", dd, short_month_name (mm), len_year_max, yy); } else *s2 = '\0'; /* And copy the expanded special text into the target string. */ i = 0; while (s2[i]) { if ((Uint) k >= maxlen_max - (Uint) len_fn) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); s1[k++] = s6[kk++] = s2[i++]; } } else { auto Bool is_ie = FALSE; auto Bool is_range = FALSE; auto Bool dflt_yy_set = FALSE; auto Bool dflt_ryy_set = FALSE; rhc = '\0'; rlen = rdd = rmm = ryy = rnn = 0; /* Check if a range of dates is given. */ if (special_text_char == RC_IDATE_CHAR || special_text_char == RC_EDATE_CHAR) { is_ie = TRUE; if (!ie_date_maps_set) { for (i = 1; i < DAY_LAST + 2; i++) inclusive_date_map[i] = !(exclusive_date_map[i] = TRUE); ie_date_maps_set = !(*inclusive_date_map = *exclusive_date_map = FALSE); } ptr_char = the_text + j; while (*ptr_char && !isspace (*ptr_char) && (*ptr_char != RC_DRANGE_CHAR)) ptr_char++; if (*ptr_char == RC_DRANGE_CHAR) is_range = TRUE; } if (is_range) *ptr_char = '\0'; (void) rc_get_date (the_text + j, lptrs2, FALSE, &is_weekday_mode, &dd, &mm, &yy, &nn, &len, &hhc, &hhn, &hhwd, filename, line_number, the_text + j - 2, TRUE); j += len; if (is_range) { j++; (void) rc_get_date (the_text + j, lptrs2, FALSE, &ris_weekday_mode, &rdd, &rmm, &ryy, &rnn, &rlen, &rhc, &rhn, &rhwd, filename, line_number, the_text + j, TRUE); j += rlen; } if (is_ie) { if (!len) dflt_yy_set = TRUE; if (!rlen) dflt_ryy_set = TRUE; } if (!yy) { if (dflt_yy_set) yy = YEAR_MIN; else { yy = year; if (y && (fiscal_month > MONTH_MIN)) yy = y; } } if (!ryy) { if (dflt_ryy_set) ryy = YEAR_MAX; else { ryy = year; if (y && (fiscal_month > MONTH_MIN)) ryy = y; } } /* Respect possible fiscal year. */ if (!dflt_yy_set && (yy != SPECIAL_VALUE)) { yy -= incr_year; yy += decr_year; } if (!dflt_ryy_set && (ryy != SPECIAL_VALUE)) { ryy -= incr_year; ryy += decr_year; } /* If @... "date"-part is given, compute the according date. */ switch (hhc) { case RC_EASTER_CHAR: case RC_TODAY_CHAR: if (!dflt_yy_set && (fiscal_month > MONTH_MIN)) { if (!precomp_date (hhn, hhwd, &dd, &mm, yy + incr_year, (hhc == RC_EASTER_CHAR) ? EAster : TOday)) yy = SPECIAL_VALUE; } else if (!precomp_date (hhn, hhwd, &dd, &mm, yy, (hhc == RC_EASTER_CHAR) ? EAster : TOday)) yy = SPECIAL_VALUE; break; case 'D': case 'W': if (!dflt_yy_set && (fiscal_month > MONTH_MIN)) { auto int fiscal_year = yy + incr_year; if (!precomp_nth_wd (hhn, hhwd, &hhn, &dd, &mm, &fiscal_year, (hhc == 'D') ? DAy : WEek)) yy = fiscal_year; } else (void) precomp_nth_wd (hhn, hhwd, &hhn, &dd, &mm, &yy, (hhc == 'D') ? DAy : WEek); break; default: if (islower (hhc)) { if (rc_dvar[IDX (hhc)].dvar_local.dvar_month) { mm = (int) rc_dvar[IDX (hhc)].dvar_local. dvar_month; dd = (int) rc_dvar[IDX (hhc)].dvar_local. dvar_day; } else if (rc_dvar[IDX (hhc)].dvar_global.dvar_month) { mm = (int) rc_dvar[IDX (hhc)].dvar_global. dvar_month; dd = (int) rc_dvar[IDX (hhc)].dvar_global. dvar_day; } if (!dflt_yy_set && (fiscal_month > MONTH_MIN)) { if (!precomp_date (hhn, hhwd, &dd, &mm, yy + incr_year, DVar)) yy = SPECIAL_VALUE; } else if (!precomp_date (hhn, hhwd, &dd, &mm, yy, DVar)) yy = SPECIAL_VALUE; } } switch (rhc) { case RC_EASTER_CHAR: case RC_TODAY_CHAR: if (!dflt_ryy_set && (fiscal_month > MONTH_MIN)) { if (!precomp_date (rhn, rhwd, &rdd, &rmm, ryy + incr_year, (rhc == RC_EASTER_CHAR) ? EAster : TOday)) ryy = SPECIAL_VALUE; } else if (!precomp_date (rhn, rhwd, &rdd, &rmm, ryy, (rhc == RC_EASTER_CHAR) ? EAster : TOday)) ryy = SPECIAL_VALUE; break; case 'D': case 'W': if (!dflt_ryy_set && (fiscal_month > MONTH_MIN)) { auto int fiscal_year = ryy + incr_year; if (!precomp_nth_wd (rhn, rhwd, &rhn, &rdd, &rmm, &fiscal_year, (rhc == 'D') ? DAy : WEek)) ryy = fiscal_year; } else (void) precomp_nth_wd (rhn, rhwd, &rhn, &rdd, &rmm, &ryy, (rhc == 'D') ? DAy : WEek); break; default: if (islower (rhc)) { if (rc_dvar[IDX (rhc)].dvar_local.dvar_month) { rmm = (int) rc_dvar[IDX (rhc)].dvar_local. dvar_month; rdd = (int) rc_dvar[IDX (rhc)].dvar_local. dvar_day; } else if (rc_dvar[IDX (rhc)].dvar_global.dvar_month) { rmm = (int) rc_dvar[IDX (rhc)].dvar_global. dvar_month; rdd = (int) rc_dvar[IDX (rhc)].dvar_global. dvar_day; } if (!dflt_ryy_set && (fiscal_month > MONTH_MIN)) { if (!precomp_date (rhn, rhwd, &rdd, &rmm, ryy + incr_year, DVar)) ryy = SPECIAL_VALUE; } else if (!precomp_date (rhn, rhwd, &rdd, &rmm, ryy, DVar)) ryy = SPECIAL_VALUE; } } if (len > len_year_max) len -= len_year_max; else len = 0; if (rlen > len_year_max) rlen -= len_year_max; else rlen = 0; /* All %?[STARTING_DATE][#[ENDING_DATE]] special texts. */ if (is_ie) { /* Assume current/first month of year. */ if (!mm) { if (len >= 1) { mm = m; if (len == 2) len = 0; else len--; } else mm = MONTH_MIN; } else { if (len == 2) len = 0; else len--; } /* Assume current/first day of month. */ if (!dd) { if (len >= 1) dd = d; else dd = DAY_MIN; } /* Assume current/last month of year. */ if (!rmm) { if (rlen >= 1) { rmm = m; if (rlen == 2) rlen = 0; else rlen--; } else rmm = MONTH_MAX; } else { if (rlen == 2) rlen = 0; else rlen--; } /* Assume current/last day of month. */ if (!rdd) { if (rlen >= 1) rdd = d; else { if (rmm == 2) { if (!dflt_ryy_set && (fiscal_month > MONTH_MIN)) rdd = days_of_february (ryy + incr_year); else rdd = days_of_february (ryy); } else rdd = dvec[rmm - 1]; } } } else /* All other %?[DATE] special texts. */ { /* Assume current month/day. */ if (!mm) mm = m; if (!dd) dd = d; } /* If special value "99" for day `dd' is given, set the day to last day of month. */ if (dd == 99) { /* Assume the last day of month. */ if (mm == 2) dd = days_of_february (yy); else dd = dvec[mm - 1]; } if (rdd == 99) { /* Assume the last day of month. */ if (rmm == 2) { if (!dflt_ryy_set && (fiscal_month > MONTH_MIN)) rdd = days_of_february (ryy + incr_year); else rdd = days_of_february (ryy); } else rdd = dvec[rmm - 1]; } /* If "N'th weekday of month" entry set, compute the according date. */ if (nn) nth_weekday_of_month (&dd, &mm, &yy, &nn, &is_weekday_mode); if (rnn) nth_weekday_of_month (&rdd, &rmm, &ryy, &rnn, &ris_weekday_mode); /* Proceed if (optionally specified) date is valid. */ if ((!is_range && (yy != SPECIAL_VALUE)) || (is_range && (yy != SPECIAL_VALUE) && (ryy != SPECIAL_VALUE))) { register int true_year = (y) ? y : year + incr_year; if (!nn && !dflt_yy_set && (fiscal_month > MONTH_MIN || (incr_year && (rc_tomorrow_flag || rc_week_flag)))) yy += incr_year; if (!rnn && !dflt_ryy_set && (fiscal_month > MONTH_MIN || (incr_year && (rc_tomorrow_flag || rc_week_flag)))) ryy += incr_year; /* Manage the %?[STARTING_DATE[#ENDING_DATE]] special texts. */ if (is_ie) { /* If starting date of event not greater than ending date of event, mark the period in according map, otherwise ignore the %?... special text completely. */ num = d_between (dd, mm, yy, rdd, rmm, ryy); if (num >= 0L) { register int s_doy = DAY_MIN; register int e_doy = DAY_LAST + 1; if (special_text_char == RC_IDATE_CHAR) *inclusive_date_map = TRUE; else *exclusive_date_map = TRUE; if (yy == true_year) s_doy = day_of_year (dd, mm, yy); else if (yy > true_year) s_doy = SPECIAL_VALUE; if (ryy == true_year) e_doy = day_of_year (rdd, rmm, ryy); else if (ryy < true_year) e_doy = SPECIAL_VALUE; if ((s_doy != SPECIAL_VALUE) && (e_doy != SPECIAL_VALUE)) { if (special_text_char == RC_IDATE_CHAR) for (i = s_doy; i <= e_doy; i++) inclusive_date_map[i] = TRUE; else for (i = s_doy; i <= e_doy; i++) exclusive_date_map[i] = FALSE; } } } else /* Manage the %?[DATE] special texts. */ { if ((special_text_char != RC_BYEAR_CHAR) && (special_text_char != RC_YEAR_DIFF_CHAR)) yy += incr_year; i = weekday_of_date (dd, mm, yy); switch (special_text_char) { case RC_WDNAME_CHAR: /* %weekday_name special text. */ (void) use_format (&s2, 0, day_name (i), 0, FALSE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_WDNR_M1_2_S7_CHAR: /* %weekday_number special text. */ (void) use_format (&s2, 0, "", i, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_WDNR_M0_2_S6_CHAR: /* %weekday_number special text. */ (void) use_format (&s2, 0, "", i - 1, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_WDNR_S1_2_S7_CHAR: /* %weekday_number special text. */ (void) use_format (&s2, 0, "", (i == DAY_MAX) ? DAY_MIN : i + 1, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_WDNR_S0_2_S6_CHAR: /* %weekday_number special text. */ (void) use_format (&s2, 0, "", (i == DAY_MAX) ? DAY_MIN - 1 : i, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_WDNR_X1_2_X7_CHAR: /* %weekday_number special text. */ (void) use_format (&s2, 0, "", SYEAR (i, start_day), TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_WDNR_X0_2_X6_CHAR: /* %weekday_number special text. */ (void) use_format (&s2, 0, "", (SYEAR (i, start_day)) - 1, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_DOYNR_CHAR: /* %day_of_year_number special text. */ (void) use_format (&s2, 0, "", day_of_year (dd, mm, yy), TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_DAYNR_CHAR: /* %day_number special text. */ (void) use_format (&s2, 0, "", dd, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_MONTHNAME_CHAR: /* %month_name special text. */ (void) use_format (&s2, 0, month_name (mm), 0, FALSE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_MONTHNR_CHAR: /* %month_number special text. */ (void) use_format (&s2, 0, "", mm, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_WEEKNR_CHAR: /* %week_number special text. */ i = week_number (dd, mm, yy, iso_week_number, start_day); /* We convert the computed week number to a week number text (this looks nicer in output). */ if (i < 0) /* Week starts in previous year and the first days of the actual year are not in its first week. */ sprintf (s2, "%02d/0", -i); else if (!i) /* Week starts in previous year and the first days of the actual year are in its first week. */ sprintf (s2, "%s", "53/1"); else /* Week starts in actual year. */ sprintf (s2, "%02d", i); break; case RC_YEAR_DIFF_CHAR: /* %year_difference special text. */ yy = yy - true_year; if (m < mm || ((m == mm) && (d < dd))) { if (yy < 1) yy++; else if (yy > 1) yy--; } (void) use_format (&s2, 0, "", yy, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_YEARNR_CHAR: /* %year_number special text. */ if (transform_year) { yy = yy - transform_year; if ((yy >= 0) && (transform_year > 0)) yy++; } (void) use_format (&s2, 0, "", yy, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_BYEAR_CHAR: /* %birth_age_number special text. */ yy = true_year - yy; if (m < mm || ((m == mm) && (d < dd))) yy--; if (yy >= 1) (void) use_format (&s2, 0, "", yy, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); else *s2 = '\0'; break; case RC_MOON_CHAR: /* Calculate the Moon phase. */ i = moondisk (&moon_min_max, dd, mm, yy, time_hour_offset, time_min_offset); (void) use_format (&s2, 0, "", abs (i), TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); strcat (s2, "%"); if (moon_min_max) { if (abs (i) < 50) strcat (s2, MOON_MIN); else strcat (s2, MOON_MAX); } else if (i < 0) strcat (s2, MOON_WANES); else strcat (s2, MOON_WAXES); break; case RC_MOON_IMAGE_CHAR: /* %moon_phase_text_graphics_image special text. Calculate the Moon phase. */ draw_moon (moondisk (&moon_min_max, dd, mm, yy, time_hour_offset, time_min_offset), ((fwidth >= MOONIMAGE_MIN) && (fwidth <= MOONIMAGE_MAX)) ? fwidth : rc_moonimage_lines, &s2); /* Exchange all RC_NL_CHAR=='~' by RC_NL2_CHAR=='^' in `s2' in case the Moon text graphics special text is lead by a RC_NL2_CHAR. */ if (k) if (s1[k - 1] == RC_NL2_CHAR) for (i = 0; s2[i]; i++) if (s2[i] == RC_NL_CHAR) s2[i] = RC_NL2_CHAR; break; case RC_BIO_CHAR: /* %biorhythm special text. */ if (!y) y = year + incr_year - decr_year; (void) biorhythm (FALSE, rc_bio_axis_len, s2, d, m, y, dd, mm, yy, rc_bio_emo_lit, &bio_emo_phase, &bio_emo_waxes, rc_bio_int_lit, &bio_int_phase, &bio_int_waxes, rc_bio_phy_lit, &bio_phy_phase, &bio_phy_waxes, &bio_critical_day, &bio_positive_day, &bio_negative_day); /* Convert the "emotional" phase value to a string of template `+NNN%+', where `+' indicates a sign and `N' indicates a digit (use '0' if none). */ sprintf (bio_emo_ptext, "%4d%%%c", abs (bio_emo_phase), (abs (bio_emo_phase) == 100) ? *BIO_STABLE : ((bio_emo_waxes) ? *BIO_WAXES : *BIO_WANES)); ptr_char = bio_emo_ptext + 1; while (isspace (*ptr_char)) *ptr_char++ = '0'; if (bio_emo_phase < 0) *bio_emo_ptext = *BIO_WANES; else *bio_emo_ptext = *BIO_WAXES; /* Convert the "intellectual" phase value to a string of template `+NNN%+', where `+' indicates a sign and `N' indicates a digit (use '0' if none). */ sprintf (bio_int_ptext, "%4d%%%c", abs (bio_int_phase), (abs (bio_int_phase) == 100) ? *BIO_STABLE : ((bio_int_waxes) ? *BIO_WAXES : *BIO_WANES)); ptr_char = bio_int_ptext + 1; while (isspace (*ptr_char)) *ptr_char++ = '0'; if (bio_int_phase < 0) *bio_int_ptext = *BIO_WANES; else *bio_int_ptext = *BIO_WAXES; /* Convert the "physical" phase value to a string of template `+NNN%+', where `+' indicates a sign and `N' indicates a digit (use '0' if none). */ sprintf (bio_phy_ptext, "%4d%%%c", abs (bio_phy_phase), (abs (bio_phy_phase) == 100) ? *BIO_STABLE : ((bio_phy_waxes) ? *BIO_WAXES : *BIO_WANES)); ptr_char = bio_phy_ptext + 1; while (isspace (*ptr_char)) *ptr_char++ = '0'; if (bio_phy_phase < 0) *bio_phy_ptext = *BIO_WANES; else *bio_phy_ptext = *BIO_WAXES; /* Create the resulting biorhythm values line. */ sprintf (s2, "%d%c %d%c %d%c , %s=%s %s=%s %s=%s", bio_critical_day, *BIO_CRITICAL, bio_positive_day, *BIO_WAXES, bio_negative_day, *BIO_WANES, rc_bio_emo_lit, bio_emo_ptext, rc_bio_int_lit, bio_int_ptext, rc_bio_phy_lit, bio_phy_ptext); break; case RC_BIO_BAR_CHAR: /* %biorhythm_text_graphics_bar special text. */ if (fwidth >= BIO_AXIS_MIN || fwidth <= BIO_AXIS_MAX) /* Decrease `fwidth' by 1 until it divides BIO_AXIS_MAX without a remainder. */ while (BIO_AXIS_MAX % fwidth) fwidth--; if (!y) y = year + incr_year - decr_year; s2 = biorhythm (TRUE, (fwidth != SPECIAL_VALUE) ? fwidth : rc_bio_axis_len, s2, d, m, y, dd, mm, yy, rc_bio_emo_lit, &bio_emo_phase, &bio_emo_waxes, rc_bio_int_lit, &bio_int_phase, &bio_int_waxes, rc_bio_phy_lit, &bio_phy_phase, &bio_phy_waxes, &bio_critical_day, &bio_positive_day, &bio_negative_day); break; default: /* This case MUST be an internal error! */ abort (); } /* And copy the expanded special text into the target string. */ i = 0; /* A Moon text graphics special text leads the text part of a resource file line so it is good now to remove its leading newline character, which is represented by a RC_NL_CHAR=='~' in `s2[0]', to avoid a redundant line break-up, but only in this definite case and in the case, all RC_NL_CHAR's of the Moon text graphics string are already exchanged by RC_NL2_CHAR's=='^'! */ if ((!k && (*s2 == RC_NL_CHAR)) || (*s2 == RC_NL2_CHAR)) i++; while (s2[i]) { if ((Uint) k >= maxlen_max - (Uint) len_fn) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); s1[k++] = s6[kk++] = s2[i++]; } } if (!*(the_text + j)) ok = TRUE; } is_obsolete_whitespace = TRUE; } } else { if (special_text_char == RC_TIME_CHAR || special_text_char == RC_TIME_TMI_CHAR || special_text_char == RC_TIME_HR_CHAR || special_text_char == RC_TIME_MI_CHAR || special_text_char == RC_TIME_AMPM_CHAR || special_text_char == RC_GMTIME_CHAR || special_text_char == RC_GMTIME_TMI_CHAR || special_text_char == RC_GMTIME_HR_CHAR || special_text_char == RC_GMTIME_MI_CHAR || special_text_char == RC_GMTIME_AMPM_CHAR || special_text_char == RC_LT_ZONE_OFFS_CHAR || special_text_char == RC_UT_ZONE_OFFS_CHAR || special_text_char == RC_DISTANCE_CHAR || special_text_char == RC_SUN_RISE_CHAR || special_text_char == RC_SUN_SET_CHAR || special_text_char == RC_SUN_DAY_CHAR || special_text_char == RC_SUN_NIGHT_CHAR || special_text_char == RC_MOON_RISE_CHAR || special_text_char == RC_MOON_SET_CHAR || special_text_char == RC_MOON_DAY_CHAR || special_text_char == RC_MOON_NIGHT_CHAR || special_text_char == RC_ENV_VAR_CHAR || special_text_char == RC_JDAYS_CHAR || special_text_char == RC_DAY_DIFF_CHAR || special_text_char == RC_WEEK_DIFF_CHAR || special_text_char == RC_MONTH_DIFF_CHAR || special_text_char == RC_YEAR_DIFF_CHAR || special_text_char == RC_HLS1S_CHAR || special_text_char == RC_HLS1E_CHAR || special_text_char == RC_HLS2S_CHAR || special_text_char == RC_HLS2E_CHAR || special_text_char == RC_HLS3S_CHAR || special_text_char == RC_HLS3E_CHAR || special_text_char == RC_HLS4S_CHAR || special_text_char == RC_HLS4E_CHAR || special_text_char == RC_HLS5S_CHAR || special_text_char == RC_HLS5E_CHAR) { if (special_text_char == RC_TIME_CHAR || special_text_char == RC_TIME_TMI_CHAR || special_text_char == RC_TIME_HR_CHAR || special_text_char == RC_TIME_MI_CHAR || special_text_char == RC_TIME_AMPM_CHAR || special_text_char == RC_GMTIME_CHAR || special_text_char == RC_GMTIME_TMI_CHAR || special_text_char == RC_GMTIME_HR_CHAR || special_text_char == RC_GMTIME_MI_CHAR || special_text_char == RC_GMTIME_AMPM_CHAR || special_text_char == RC_LT_ZONE_OFFS_CHAR || special_text_char == RC_UT_ZONE_OFFS_CHAR) { register int sign = 0; register int state = 1; register int digits = 0; auto Bool skip = FALSE; auto Bool is_last = FALSE; auto Bool is_error = FALSE; auto Bool is_2error = FALSE; auto Bool time_sep_found = FALSE; auto Bool is_leading_zero = TRUE; auto Bool is_format_modifier_given = FALSE; auto Bool is_tzo = (Bool) (special_text_char == RC_LT_ZONE_OFFS_CHAR || special_text_char == RC_UT_ZONE_OFFS_CHAR); auto Bool is_gmt = (Bool) (special_text_char == RC_GMTIME_CHAR || special_text_char == RC_GMTIME_HR_CHAR || special_text_char == RC_GMTIME_MI_CHAR || special_text_char == RC_GMTIME_TMI_CHAR || special_text_char == RC_GMTIME_AMPM_CHAR); /* If %time[*][[+|-]MMMM|HH:[MM]] special text is found: replace it by the current system time HH:MM, if `*' is specified, replace it by the current system time hour converted to the am|pm notation and provide it by a trailing am|pm suffix. If %time_total_minutes[[+|-]MMMM|HH:[MM]] special text is found: replace it by the total system time minutes MMMM. If %time_hour[*][[+|-]MMMM|HH:[MM]] special text is found: replace it by the current system time hour HH, if `*' is specified, replace it by the current system time hour converted to the am|pm notation. If %time_minute[[+|-]MMMM|HH:[MM]] special text is found: replace it by the current system time minute MM. If %time_am_pm_suffix special text is found: replace it by the current system time `am|pm' suffix. If %gmtime[*][[+|-]MMMM|HH:[MM]] special text is found: replace it by the current Greenwich Mean Time and date HH:MM/TEXTUAL_DATE, if `*' is specified, replace it by the current GMT hour converted to the am|pm notation and provide it by a trailing am|pm suffix. If %gmtime_total_minutes[[+|-]MMMM|HH:[MM]] special text is found: replace it by the total Greenwich Mean Time minutes and date MMMM/TEXTUAL_DATE. If %gmtime_hour[*][[+|-]MMMM|HH:[MM]] special text is found: replace it by the current Greenwich Mean Time hour HH, if `*' is specified, replace it by the current GMT hour converted to the am|pm notation. If %gmtime_minute[[+|-]MMMM|HH:[MM]] special text is found: replace it by the current GMT minute MM. If %gmtime_am_pm_suffix special text is found: replace it by the current Greenwich Mean Time `am|pm' suffix. If %timezone_offset[[+|-]MMMM|HH:[MM]] special text is found: replace it by the timezone offset +|-HHMM. All above mentioned special texts respect a possibly given displacement value [[+|-]MMMM|HH:[MM]]. If [+|-]MMMM is given, skip all possibly leading zeroes of MMMM. The HH:[MM] time separating character ':' is choosen by the used locale at runtime. If no am|pm notation is allowed but a `*' character is leading an above mentioned displacement value, ignore that statement so it has no further effect. */ i = 0; j++; if (*(the_text + j) == RC_12_HOURS_FORMAT_CHAR) { j++; switch (special_text_char) { case RC_TIME_CHAR: case RC_GMTIME_CHAR: case RC_TIME_HR_CHAR: case RC_GMTIME_HR_CHAR: is_format_modifier_given = TRUE; break; default: ; /* Void, nothing to do! */ } } while (*(the_text + j) && !isspace (*(the_text + j))) { skip = FALSE; /* Scan the remaining argument of the %[gm]time* special text. */ switch (state) { case 1: if (!isdigit (*(the_text + j))) { if (*(the_text + j) == *ASC_LIT || *(the_text + j) == *DES_LIT) { if (sign || time_sep_found) state = 0; else sign++; break; } else state++; } else { if (*(the_text + j) == '0') { if (is_leading_zero) { skip = TRUE; break; } digits++; } else digits++; is_leading_zero = FALSE; break; } /* Fallthrough. */ case 2: if (!digits && !is_leading_zero) state = 0; else if (!time_sep_found) { if (*(the_text + j) == *time_sep || *(the_text + j) == *DEFAULT_TIME_SEP) { if (digits > 2) state = 0; else { time_sep_found = TRUE; digits = 0; state--; } } else state = 0; } else { if (digits > 4) state = 0; else is_last = TRUE; } break; default: state = 0; } if (state && !skip) s2[i++] = *(the_text + j); j++; } if (!state || is_last || (i && !time_sep_found && !is_leading_zero && !digits) || (time_sep_found && (digits > 2)) || ((state == 1) && (digits > 4))) /* Error, invalid condition occurred. */ is_error = TRUE; j--; if (i && !is_error) { s2[i] = '\0'; /* Process the time displacement value. */ i = atoi (s2); if (time_sep_found) { i *= MINS_PER_HOUR; ptr_char = strchr (s2, *time_sep); if (ptr_char == (char *) NULL) ptr_char = strchr (s2, *DEFAULT_TIME_SEP); if (*++ptr_char) { state = atoi (ptr_char); if (abs (state) >= MINS_PER_HOUR) is_error = TRUE; else if (!i) { if (*s2 == *DES_LIT) i = -state; else i = state; } else if (SGN (i) < 0) i -= state; else i += state; } } } if (!is_error) { register int the_time = 0; auto int gmt_day; auto int gmt_month; auto int gmt_year; auto char *time_suffix = ""; auto Bool is_am_pm = (Bool) (special_text_char == RC_TIME_AMPM_CHAR || special_text_char == RC_GMTIME_AMPM_CHAR); if (is_tzo) { if (special_text_char == RC_LT_ZONE_OFFS_CHAR) { if (gmt_loc_diff > 0) the_time = (MINS_PER_DAY - HHMM2MM (act_hour, act_min)) + HHMM2MM (gmt_hour, gmt_min); else if (gmt_loc_diff < 0) the_time = (MINS_PER_DAY - HHMM2MM (gmt_hour, gmt_min)) + HHMM2MM (act_hour, act_min); else the_time = HHMM2MM (act_hour, act_min) - HHMM2MM (gmt_hour, gmt_min); } sign = 1; the_time += i; if (the_time < 0) { sign = -sign; the_time = -the_time; } i = the_time % MINS_PER_HOUR; the_time /= MINS_PER_HOUR; } else if (!is_gmt) the_time = HHMM2MM (act_hour, act_min) + i; else { the_time = HHMM2MM (gmt_hour, gmt_min) + i; /* Adjust the GMT date in case it is not the today's local date. */ if (d_between (d, m, year + incr_year - decr_year, buf_gd, buf_gm, buf_gy)) { gmt_day = d; gmt_month = m; gmt_year = year + incr_year - decr_year; if (gmt_loc_diff > 0) { (void) next_date (&gmt_day, &gmt_month, &gmt_year); if (gmt_year > YEAR_MAX) is_2error = TRUE; } else if (gmt_loc_diff < 0) { (void) prev_date (&gmt_day, &gmt_month, &gmt_year); if (gmt_year < YEAR_MIN) is_2error = TRUE; } } else { gmt_day = buf_gd; gmt_month = buf_gm; gmt_year = buf_gy; } } if (!is_error && !is_2error && !is_tzo) { i = the_time % MINS_PER_HOUR; the_time /= MINS_PER_HOUR; if (the_time >= HOURS_PER_DAY) while (the_time >= HOURS_PER_DAY) { the_time -= HOURS_PER_DAY; if (is_gmt) { (void) next_date (&gmt_day, &gmt_month, &gmt_year); if (gmt_year > YEAR_MAX) is_2error = TRUE; } } else if (i < 0 || the_time < 0) { if (the_time <= 0) the_time--; while (the_time < 0) { the_time += HOURS_PER_DAY; if (is_gmt) { (void) prev_date (&gmt_day, &gmt_month, &gmt_year); if (gmt_year < YEAR_MIN) is_2error = TRUE; } } if (i) i = MINS_PER_HOUR + i; else the_time++; } } if (!is_error && !is_2error) { if (is_am_pm || is_format_modifier_given) { /* Copy a trailing "am" resp., "pm" suffix to the text. */ if (the_time >= HOURS_PER_HALF_DAY) { /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "post meridiem". */ time_suffix = _("pm"); if (!is_am_pm) the_time -= HOURS_PER_HALF_DAY; } else /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "ante meridiem". */ time_suffix = _("am"); } if (transform_year) { gmt_year = gmt_year - transform_year; if ((gmt_year >= 0) && (transform_year > 0)) gmt_year++; } *s2 = '\0'; switch (special_text_char) { case RC_TIME_CHAR: /* %time special text. */ sprintf (buffer, "%02d%s%02d%s", the_time, time_sep, i, time_suffix); break; case RC_GMTIME_CHAR: /* %gmtime special text. */ sprintf (buffer, "%02d%s%02d%s/%02d-%s-%0*d", the_time, time_sep, i, time_suffix, gmt_day, short_month_name (gmt_month), len_year_max, gmt_year); break; case RC_TIME_TMI_CHAR: /* %time_total_minutes special text. */ (void) use_format (&s2, 0, "", the_time * MINS_PER_HOUR + i, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_GMTIME_TMI_CHAR: /* %gmtime_total_minutes special text. */ { sprintf (buffer, "/%02d-%s-%0*d", gmt_day, short_month_name (gmt_month), len_year_max, gmt_year); (void) use_format (&s2, 0, "", the_time * MINS_PER_HOUR + i, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); strcat (s2, buffer); } break; case RC_TIME_HR_CHAR: case RC_GMTIME_HR_CHAR: /* %[gm]time_hour special text. */ (void) use_format (&s2, 0, "", the_time, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_TIME_MI_CHAR: case RC_GMTIME_MI_CHAR: /* %[gm]time_minute special text. */ (void) use_format (&s2, 0, "", i, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_TIME_AMPM_CHAR: case RC_GMTIME_AMPM_CHAR: /* %[gm]time_am_pm_suffix special text. */ (void) use_format (&s2, 0, time_suffix, 0, FALSE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case RC_LT_ZONE_OFFS_CHAR: case RC_UT_ZONE_OFFS_CHAR: /* %timezone_offset either based on local time zone or UTC/GMT zone special text. */ sprintf (buffer, "%s%02d%02d", (sign > 0) ? ASC_LIT : DES_LIT, the_time, i); break; default: /* This case MUST be an internal error! */ abort (); } } } if (!is_error && !is_2error) { if (!*s2) (void) use_format (&s2, 0, buffer, 0, FALSE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); } else { for (i = 0; i < len_year_max; i++) buffer[i] = *RC_INVALID_PARAM_TEXT; buffer[i] = '\0'; switch (special_text_char) { case RC_TIME_CHAR: sprintf (s2, "%s%s%s", (is_error) ? RC_INVALID_PARAM_TEXT : RC_INVALID_VALUE_TEXT, time_sep, (is_error) ? RC_INVALID_PARAM_TEXT : RC_INVALID_VALUE_TEXT); break; case RC_GMTIME_CHAR: sprintf (s2, "%s%s%s/%s-%s%c-%s", (is_error) ? RC_INVALID_PARAM_TEXT : RC_INVALID_VALUE_TEXT, time_sep, (is_error) ? RC_INVALID_PARAM_TEXT : RC_INVALID_VALUE_TEXT, RC_INVALID_PARAM_TEXT, RC_INVALID_PARAM_TEXT, *RC_INVALID_PARAM_TEXT, buffer); break; case RC_TIME_TMI_CHAR: sprintf (s2, "%s", (is_error) ? RC_INVALID_PARAM_TEXT : RC_INVALID_VALUE_TEXT); break; case RC_GMTIME_TMI_CHAR: sprintf (s2, "%s/%s-%s%c-%s", (is_error) ? RC_INVALID_PARAM_TEXT : RC_INVALID_VALUE_TEXT, RC_INVALID_PARAM_TEXT, RC_INVALID_PARAM_TEXT, *RC_INVALID_PARAM_TEXT, buffer); break; case RC_TIME_HR_CHAR: case RC_GMTIME_HR_CHAR: case RC_TIME_MI_CHAR: case RC_GMTIME_MI_CHAR: case RC_TIME_AMPM_CHAR: case RC_GMTIME_AMPM_CHAR: sprintf (s2, "%s", (is_error) ? RC_INVALID_PARAM_TEXT : RC_INVALID_VALUE_TEXT); break; case RC_LT_ZONE_OFFS_CHAR: case RC_UT_ZONE_OFFS_CHAR: sprintf (s2, "+%s%s", (is_error) ? RC_INVALID_PARAM_TEXT : RC_INVALID_VALUE_TEXT, (is_error) ? RC_INVALID_PARAM_TEXT : RC_INVALID_VALUE_TEXT); break; default: /* This case MUST be an internal error! */ abort (); } strcpy (buffer, s2); *s2 = '\0'; (void) use_format (&s2, 0, buffer, 0, FALSE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); } is_obsolete_whitespace = TRUE; } else if (special_text_char == RC_DISTANCE_CHAR || special_text_char == RC_SUN_RISE_CHAR || special_text_char == RC_SUN_SET_CHAR || special_text_char == RC_SUN_DAY_CHAR || special_text_char == RC_SUN_NIGHT_CHAR || special_text_char == RC_MOON_RISE_CHAR || special_text_char == RC_MOON_SET_CHAR || special_text_char == RC_MOON_DAY_CHAR || special_text_char == RC_MOON_NIGHT_CHAR) { auto double the_time = 0.0; auto double the_error; auto int dots; auto int sign; register int split; register int state; register int digits; register int decimals; register int num_coord; register int parsed_coordinates = (special_text_char == RC_DISTANCE_CHAR) ? 2 : 1; register int dist_mode = 0; register int aobj_mode = 5; register int astronomical_object = AOBJ_NONE; auto char *sep; auto char *time_suffix = ""; auto Bool skip; auto Bool is_last; auto Bool is_error; auto Bool is_decimal; auto Bool got_lat_min; auto Bool got_lon_min; auto Bool time_sep_found; auto Bool is_leading_zero; auto Bool is_format_modifier_given = FALSE; auto Bool is_rise_set = (Bool) (special_text_char == RC_SUN_RISE_CHAR || special_text_char == RC_SUN_SET_CHAR || special_text_char == RC_MOON_RISE_CHAR || special_text_char == RC_MOON_SET_CHAR); /* Decode and evaluate co-ordinate-based special texts. */ j++; if (special_text_char == RC_DISTANCE_CHAR) { if (*(the_text + j) == RC_SMILES_FORMAT_CHAR) { j++; is_format_modifier_given = TRUE; } if (isdigit (*(the_text + j))) { dist_mode = CHR2DIG (*(the_text + j)); if (dist_mode <= 2) j++; else dist_mode = 0; } } else { if (special_text_char == RC_SUN_RISE_CHAR || special_text_char == RC_SUN_SET_CHAR || special_text_char == RC_SUN_DAY_CHAR || special_text_char == RC_SUN_NIGHT_CHAR) astronomical_object = AOBJ_SUN; else astronomical_object = AOBJ_MOON; if (*(the_text + j) == RC_12_HOURS_FORMAT_CHAR) { j++; is_format_modifier_given = TRUE; } if (isdigit (*(the_text + j))) { aobj_mode = CHR2DIG (*(the_text + j)); j++; } else if (islower (*(the_text + j))) { aobj_mode = IDX (*(the_text + j)) + 10; j++; } else if (isupper (*(the_text + j))) { aobj_mode = IDX (*(the_text + j)) + 36; if (((astronomical_object == AOBJ_SUN) && (aobj_mode <= 53)) || ((astronomical_object == AOBJ_MOON) && (aobj_mode <= 60))) j++; else aobj_mode = 61; } } if (astronomical_object == AOBJ_NONE) /* *** Translators, please translate this as a fixed 2-character text. *** This text should contain the proper abbreviations for "degrees" and "minutes". */ sep = _("d'\""); else if (is_rise_set && (aobj_oformat[aobj_mode][astronomical_object]. error_format == ERR_DDD)) /* *** Translators, please translate this as a fixed 3-character text. *** This text should contain the proper abbreviations for "degrees", "minutes" and "seconds". */ sep = _("d'\""); else if (!is_rise_set || aobj_oformat[aobj_mode][astronomical_object]. error_format == ERR_TTT) /* *** Translators, please translate this as a fixed 3-character text. *** This text should contain the proper abbreviations for "hours", "minutes" and "seconds". */ sep = _("h'\""); else sep = time_sep; LABEL_get_second_coordinate: the_error = 0.0; num_coord = state = 1; i = dots = sign = split = digits = decimals = 0; is_leading_zero = TRUE; is_last = got_lat_min = got_lon_min = FALSE; is_error = is_decimal = time_sep_found = FALSE; coor1->lon_deg = coor1->lon_min = coor1->lon_sec = 0; coor1->lat_deg = coor1->lat_min = coor1->lat_sec = 0; if (special_text_char == RC_DISTANCE_CHAR) coor1->the_mode = dist_mode; else coor1->the_mode = aobj_mode; coor1->meters_above_sea_level = coor1->time_zone_in_mins = 0; while (((special_text_char != RC_DISTANCE_CHAR) && *(the_text + j) && !isspace (*(the_text + j))) || ((special_text_char == RC_DISTANCE_CHAR) && *(the_text + j) && !isspace (*(the_text + j)) && (*(the_text + j) != *RC_COORDINATE_SEP))) { skip = FALSE; /* Scan the remaining argument of the %distance*, %sun* or %moon* special text and arrange its elements properly separated by SPLIT_SEPs. */ switch (state) { case 1: if (*(the_text + j) == *ASC_LIT || *(the_text + j) == *DES_LIT) state++; else state = 0; break; case 2: if (!isdigit (*(the_text + j))) state++; else { digits++; break; } /* Fallthrough. */ case 3: if (!decimals && (((num_coord == 1) && (digits != 2) && (digits != 4) && (digits != 6)) || ((num_coord == 2) && (digits != 3) && (digits != 5) && (digits != 7)) || ((num_coord == 3) && (digits > 4)))) state = 0; else if (*(the_text + j) == '.') { if (dots) state = 0; else { if (((num_coord == 1) && (split <= 2)) || ((num_coord == 2) && (split - is_decimal <= 5))) { s2[i++] = '0'; s2[i++] = *SPLIT_SEP; if (((num_coord == 1) && (split == 1)) || ((num_coord == 2) && (split - is_decimal == 4))) { s2[i++] = '0'; s2[i++] = *SPLIT_SEP; split++; } split++; } dots++; is_decimal = TRUE; decimals = !(digits = 0); state--; } } else if (*(the_text + j) == *ASC_LIT || *(the_text + j) == *DES_LIT) { if (decimals && !digits) state = 0; else { if (s2[i - 1] != *SPLIT_SEP) { split++; s2[i++] = *SPLIT_SEP; } if (((num_coord == 1) && (split <= 2)) || ((num_coord == 2) && (split - is_decimal <= 5))) { s2[i++] = '0'; s2[i++] = *SPLIT_SEP; if (((num_coord == 1) && (split == 1)) || ((num_coord == 2) && (split - is_decimal == 4))) { s2[i++] = '0'; s2[i++] = *SPLIT_SEP; split++; } split++; } decimals = dots = digits = 0; num_coord++; state--; } } else if ((num_coord > 1) && (*(the_text + j) == *SPLIT_SEP)) { if (decimals && !digits) state = 0; else { if (split - is_decimal <= 5) { s2[i++] = '0'; s2[i++] = *SPLIT_SEP; if (split - is_decimal == 4) { s2[i++] = '0'; s2[i++] = *SPLIT_SEP; split++; } split++; } digits = 0; state++; } } else state = 0; break; case 4: if (!isdigit (*(the_text + j))) { if (*(the_text + j) == *ASC_LIT || *(the_text + j) == *DES_LIT) { if (sign || time_sep_found) state = 0; else sign++; break; } else state++; } else { if (*(the_text + j) == '0') { if (is_leading_zero) { skip = TRUE; break; } digits++; } else digits++; is_leading_zero = FALSE; break; } /* Fallthrough. */ case 5: if (!digits && !is_leading_zero) state = 0; else if (!time_sep_found) { if (*(the_text + j) == *time_sep || *(the_text + j) == *DEFAULT_TIME_SEP) { if (digits > 2) state = 0; else { time_sep_found = TRUE; digits = 0; state--; } } else state = 0; } else { if (digits > 4) state = 0; else is_last = TRUE; } if (!state && (*(the_text + j) == *SPLIT_SEP)) { s2[i++] = *(the_text + j); split++; sign = FALSE; digits = 0; state = 4; } break; default: state = 0; } if (state && !skip) { if (digits <= 7) { if (i) { if (s2[i - 1] != *SPLIT_SEP || *(the_text + j) != *SPLIT_SEP) s2[i++] = *(the_text + j); } else { if (*(the_text + j) == *SPLIT_SEP) split++; s2[i++] = *(the_text + j); } if (!decimals) { if ((state == 2) && (((num_coord == 1) && (digits == 2 || digits == 4 || digits == 6)) || ((num_coord == 2) && (digits == 3 || digits == 5 || digits == 7)))) if (s2[i - 1] != *SPLIT_SEP) { split++; s2[i++] = *SPLIT_SEP; } if (state == 2) { if ((num_coord == 1) && (digits > 2)) got_lat_min = TRUE; else if ((num_coord == 2) && (digits > 3)) got_lon_min = TRUE; } } } else if (s2[i - 1] != *SPLIT_SEP) { split++; s2[i++] = *SPLIT_SEP; } } j++; } if (i && (split - is_decimal <= 5)) { s2[i++] = '0'; if (split - is_decimal == 4) { s2[i++] = *SPLIT_SEP; s2[i++] = '0'; } } if (!state || is_last || num_coord > 3 || (i && !time_sep_found && !is_leading_zero && !digits) || (time_sep_found && (digits > 2)) || (!is_decimal && (num_coord == state) && (digits != 3) && (digits != 5) && (digits != 7)) || ((num_coord == 3 || state == 4) && (digits > 4))) /* Error, invalid condition occurred. */ is_error = TRUE; if (j) j--; if (i && !is_error) { auto double val = 0.0; auto Bool ok2 = FALSE; /* Store the split argument of the %sun* or %moon* special text in the Coor_struct variable `coordinate' properly. */ coor1->lon_deg = coor1->lon_min = coor1->lon_sec = SECS_PER_HOUR; coor1->lat_deg = coor1->lat_min = coor1->lat_sec = SECS_PER_HOUR; coor1->meters_above_sea_level = coor1->time_zone_in_mins = SECS_PER_HOUR * 5; s2[i] = '\0'; ptr_char = s2; do { i = 0; is_decimal = FALSE; /* Get an element. */ while (!ok2) { if (*ptr_char) { if (*ptr_char != *SPLIT_SEP) { if (!i && (*ptr_char == '.')) is_decimal = TRUE; s2[i++] = *ptr_char++; } else { ptr_char++; break; } } else ok2 = TRUE; } s2[i] = '\0'; /* Process the element. */ if (i) { i = SPECIAL_VALUE; if (is_decimal) (void) sscanf (s2, "%lf", &val); else i = atoi (s2); if (coor1->lat_deg == SECS_PER_HOUR) coor1->lat_deg = i; else if (coor1->lat_min == SECS_PER_HOUR) coor1->lat_min = i * ((SGN (coor1->lat_deg)) ? SGN (coor1->lat_deg) : 1); else if (coor1->lat_sec == SECS_PER_HOUR) coor1->lat_sec = i * ((SGN (coor1->lat_deg)) ? SGN (coor1->lat_deg) : 1); else if (coor1->lon_deg == SECS_PER_HOUR) { if (is_decimal) { if (!got_lat_min && !coor1->lat_min) { val *= (double) MINS_PER_HOUR; sprintf (buffer, "%.6f", val); i = atoi (buffer); coor1->lat_min = i * ((SGN (coor1->lat_deg)) ? SGN (coor1-> lat_deg) : 1); val -= (double) i; } if (!coor1->lat_sec) { val *= (double) SECS_PER_MIN; sprintf (buffer, "%.6f", val); i = atoi (buffer); coor1->lat_sec = i * ((SGN (coor1->lat_deg)) ? SGN (coor1-> lat_deg) : 1); } } else coor1->lon_deg = i; } else if (coor1->lon_min == SECS_PER_HOUR) coor1->lon_min = i * ((SGN (coor1->lon_deg)) ? SGN (coor1->lon_deg) : 1); else if (coor1->lon_sec == SECS_PER_HOUR) coor1->lon_sec = i * ((SGN (coor1->lon_deg)) ? SGN (coor1->lon_deg) : 1); else if (num_coord == 3 && (coor1-> meters_above_sea_level == SECS_PER_HOUR * 5)) coor1->meters_above_sea_level = i; else if (coor1->time_zone_in_mins == SECS_PER_HOUR * 5) { if (is_decimal) { if (!got_lon_min && !coor1->lon_min) { val *= (double) MINS_PER_HOUR; sprintf (buffer, "%.6f", val); i = atoi (buffer); coor1->lon_min = i * ((SGN (coor1->lon_deg)) ? SGN (coor1-> lon_deg) : 1); val -= (double) i; } if (!coor1->lon_sec) { val *= (double) SECS_PER_MIN; sprintf (buffer, "%.6f", val); i = atoi (buffer); coor1->lon_sec = i * ((SGN (coor1->lon_deg)) ? SGN (coor1-> lon_deg) : 1); } } else { /* Ensure that we always get the right timezone value if the locale-specific time separator character is also defined as the decimal point character DOT, but we generally don't use a locale-specific decimal point character like COMMA or such, so the DOT indicated the use of a floating point value which we now have to respect! */ if (i == SPECIAL_VALUE && is_decimal) i = (int) val; coor1->time_zone_in_mins = i; if (time_sep_found) { coor1->time_zone_in_mins *= MINS_PER_HOUR; ptr_char = strchr (s2, *time_sep); if (ptr_char == (char *) NULL) ptr_char = strchr (s2, *DEFAULT_TIME_SEP); if (ptr_char != (char *) NULL) { if (*++ptr_char) { i = atoi (ptr_char); if (abs (i) >= MINS_PER_HOUR) is_error = TRUE; else if (!coor1-> time_zone_in_mins) { if (*s2 == *DES_LIT) coor1-> time_zone_in_mins = -i; else coor1-> time_zone_in_mins = i; } else if (SGN (coor1-> time_zone_in_mins) < 0) coor1-> time_zone_in_mins -= i; else coor1-> time_zone_in_mins += i; } } else is_error = TRUE; } } } else /* Error, argument contains too many elements. */ is_error = TRUE; } } while (!ok2 && !is_error); if (!is_error) { /* Check whether an invalid co-ordinate element is given. */ if (abs (coor1->lon_deg) > COOR_LON_DEG_MAX || abs (coor1->lon_min) >= COOR_LON_MIN_MAX || abs (coor1->lon_sec) >= COOR_LON_SEC_MAX || ((abs (coor1->lon_deg) == COOR_LON_DEG_MAX) && (coor1->lon_min != 0 || coor1->lon_sec != 0)) || abs (coor1->lat_deg) > COOR_LAT_DEG_MAX || abs (coor1->lat_min) >= COOR_LAT_MIN_MAX || abs (coor1->lat_sec) >= COOR_LAT_SEC_MAX || ((abs (coor1->lat_deg) == COOR_LAT_DEG_MAX) && (coor1->lat_min != 0 || coor1->lat_sec != 0))) /* Error, invalid co-ordinate element found. */ is_error = TRUE; else { /* Let's check if we have to use the default meters_above_sea_level value. */ if (coor1->meters_above_sea_level == SECS_PER_HOUR * 5) coor1->meters_above_sea_level = 0; /* Let's check if we have to use the default time value. */ if (coor1->time_zone_in_mins == SECS_PER_HOUR * 5) coor1->time_zone_in_mins = 0; else coor1->time_zone_in_mins = (int) (SGN (coor1->time_zone_in_mins) * (abs (coor1->time_zone_in_mins) % MINS_PER_DAY)); } } } if (!is_error && --parsed_coordinates) { if (*(the_text + j + 1) == *RC_COORDINATE_SEP) { j += 2; coor2->lon_deg = coor1->lon_deg; coor2->lon_min = coor1->lon_min; coor2->lon_sec = coor1->lon_sec; coor2->lat_deg = coor1->lat_deg; coor2->lat_min = coor1->lat_min; coor2->lat_sec = coor1->lat_sec; coor2->meters_above_sea_level = coor1->meters_above_sea_level; coor2->the_mode = coor1->the_mode; goto LABEL_get_second_coordinate; } if (digits) is_error = TRUE; } /* Avoid a nonsense computation of day and night length if the selection made for the astronomical object's data is the calculation of a non-rise/set time-based mode. */ if (!is_rise_set && (astronomical_object != AOBJ_NONE) && (is_error || (aobj_mode <= 1 || ((aobj_mode > 9) && (aobj_mode < 52) && (astronomical_object == AOBJ_SUN)) || ((aobj_mode > 5) && (astronomical_object == AOBJ_MOON))))) { aobj_mode = 65; is_error = TRUE; } if (!is_error) { auto double rise = SECS_PER_HOUR; auto double set = SECS_PER_HOUR; if (!y) y = year + incr_year - decr_year; /* Get the data. */ switch (special_text_char) { case RC_DISTANCE_CHAR: the_time = compute_distance (coor2, coor1); if (the_time == SPECIAL_VALUE) /* Internal error condition occurred within the `compute_distance()' function. */ the_error = the_time; else if (!dist_mode && is_format_modifier_given) /* Convert the distance value into statute miles. */ the_time = KM2SM (the_time); break; case RC_SUN_DAY_CHAR: case RC_SUN_NIGHT_CHAR: case RC_SUN_RISE_CHAR: rise = sun_rise_set (RIse, rc_limit, d, m, y, coor1); if (is_rise_set) { if (((aobj_mode <= 9 || aobj_mode >= 52) && (rise <= SPECIAL_VALUE)) || ((aobj_mode >= 37) && (aobj_mode < 52) && (rise <= HH2SS (SPECIAL_VALUE)))) /* Internal error condition occurred within the `sun_rise_set()' function. */ the_error = rise; break; } /* Fallthrough. */ case RC_SUN_SET_CHAR: set = sun_rise_set (SEt, rc_limit, d, m, y, coor1); if (is_rise_set && (((aobj_mode <= 9 || aobj_mode >= 52) && (set <= SPECIAL_VALUE)) || ((aobj_mode >= 37) && (aobj_mode < 52) && (set <= HH2SS (SPECIAL_VALUE))))) /* Internal error condition occurred within the `sun_rise_set()' function. */ the_error = set; break; case RC_MOON_DAY_CHAR: case RC_MOON_NIGHT_CHAR: case RC_MOON_RISE_CHAR: rise = moon_rise_set (RIse, d, m, y, coor1); if (is_rise_set) { if (((aobj_mode <= 5) && (rise <= SPECIAL_VALUE)) || ((aobj_mode >= 40) && (rise <= HH2SS (SPECIAL_VALUE)))) /* Internal error condition occurred within the `moon_rise_set()' function. */ the_error = rise; break; } /* Fallthrough. */ case RC_MOON_SET_CHAR: set = moon_rise_set (SEt, d, m, y, coor1); if (is_rise_set && (((aobj_mode <= 5) && (set <= SPECIAL_VALUE)) || ((aobj_mode >= 40) && (set <= HH2SS (SPECIAL_VALUE))))) /* Internal error condition occurred within the `moon_rise_set()' function. */ the_error = set; break; default: /* This case MUST be an internal error! */ abort (); } if (!is_error && (astronomical_object != AOBJ_NONE)) { if (is_rise_set) { if (!(int) ROUND (the_error)) { if (set == SECS_PER_HOUR) the_time = rise; else the_time = set; if (is_format_modifier_given) { if (aobj_oformat[aobj_mode] [astronomical_object]. error_format == ERR_HHH) { /* Copy a trailing "am" resp., "pm" suffix to the text. */ if (the_time >= HOURS_PER_HALF_DAY) { /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "post meridiem". */ time_suffix = _("pm"); the_time -= HOURS_PER_HALF_DAY; } else /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "ante meridiem". */ time_suffix = _("am"); state = strlen (time_suffix); } else /* Manage the Sun|Moon/Earth distance and the Moon phase angle modes. */ switch (astronomical_object) { case AOBJ_SUN: if (aobj_mode == 15 || aobj_mode == 24) { /* Convert the distance value into kilometers. */ the_time = AU2KM (the_time); aobj_mode = 61; } break; case AOBJ_MOON: if (aobj_mode == 16 || aobj_mode == 29) { /* Convert the distance value into kilometers. */ the_time = ER2KM (the_time); aobj_mode = 61; } else if (aobj_mode == 9 || aobj_mode == 22 || aobj_mode == 48 || aobj_mode == 50 || aobj_mode == 53 || aobj_mode == 55 || aobj_mode == 57 || aobj_mode == 60) /* Convert the phase angle value into percents. */ the_time *= 100.0; break; default: ; /* Void, nothing to do! */ } } } } else { aobj_mode = 65; if (rise <= SPECIAL_VALUE || set <= SPECIAL_VALUE) { if (rise == SPECIAL_VALUE || rise == SPECIAL_VALUE * 2) rise = 0.0; else if (rise == SPECIAL_VALUE * 3) rise = HOURS_PER_DAY; if (set == SPECIAL_VALUE || set == SPECIAL_VALUE * 2) set = 0.0; else if (set == SPECIAL_VALUE * 3) set = HOURS_PER_DAY; } if (rise == set) the_time = rise; else if (rise > set) the_time = (HOURS_PER_DAY - rise) + set; else the_time = set - rise; if (special_text_char == RC_SUN_NIGHT_CHAR || special_text_char == RC_MOON_NIGHT_CHAR) the_time = HOURS_PER_DAY - the_time; } } } /* Format the data properly. */ if (!is_error && !(int) ROUND (the_error)) { if (astronomical_object == AOBJ_NONE) { if (!dist_mode) i = FMT_NNN; else i = FMT_DDD; } else i = aobj_oformat[aobj_mode] [astronomical_object].data_format; /* Force representation of [signed] number with fraction. */ if (is_format_modifier_given) switch (i) { case FMT_TTT: case FMT_DDD: i = FMT_NND; break; case FMT_TTS: case FMT_TXS: case FMT_DDS: i = FMT_NSD; break; default: ; /* Void, nothing to do! */ } if (rc_precise) digits = 6; else digits = 3; switch (i) { case FMT_NNN: if (rc_precise) digits = 3; else digits = 0; /* Number with[out] fraction. */ sprintf (buffer, "%.*f", digits, abs (the_time)); break; case FMT_NND: /* Number with fraction. */ sprintf (buffer, "%.*f", digits, abs (the_time)); break; case FMT_NSD: /* Number with sign and fraction. */ sprintf (buffer, "%c%.*f", (the_time < 0.0) ? *DES_LIT : *ASC_LIT, digits, abs (the_time)); break; case FMT_HHH: if (rc_precise) { /* Hour, minute and second+fraction. */ val2hours (HH2DAY (abs (the_time)), &dots, &sign, &the_error); digits = (int) ROUND ((the_error - (int) the_error) * 1000.0); if (digits == 1000) digits--; sprintf (buffer, "%02d%c%02d%c%02d.%03d%s", dots, *sep, sign, *sep, (int) the_error, digits, time_suffix); } else { /* Hour and minute. */ val2hours (HH2DAY (abs (the_time)), &dots, &sign, NULL); sprintf (buffer, "%02d%c%02d%s", dots, *sep, sign, time_suffix); } break; case FMT_TTT: the_time = abs (the_time); if (rc_precise) { /* Value in hours, minutes and seconds+fraction. */ val2hours (HH2DAY (the_time), &dots, &sign, &the_error); digits = (int) ROUND ((the_error - (int) the_error) * 1000.0); if (digits == 1000) digits--; } else /* Value in hours and minutes. */ val2hours (HH2DAY (the_time), &dots, &sign, NULL); if ((aobj_mode == 65) && !dots && (the_time >= HOURS_PER_HALF_DAY)) { dots = HOURS_PER_DAY; digits = sign = 0; the_error = 0.0; } if (rc_precise) sprintf (buffer, "%02d%c%02d%c%02d.%03d%c", dots, *sep, sign, *(sep + 1), (int) the_error, digits, *(sep + 2)); else sprintf (buffer, "%02d%c%02d%c", dots, *sep, sign, *(sep + 1)); break; case FMT_TTS: if (rc_precise) { /* Value in hours, minutes and seconds+fraction with sign. */ val2hours (HH2DAY (the_time), &dots, &sign, &the_error); the_error = abs (the_error); digits = (int) ROUND ((the_error - (int) the_error) * 1000.0); if (digits == 1000) digits--; sprintf (buffer, "%c%02d%c%02d%c%02d.%03d%c", (the_time < 0.0) ? *DES_LIT : *ASC_LIT, abs (dots), *sep, abs (sign), *(sep + 1), (int) the_error, digits, *(sep + 2)); } else case FMT_TXS: { /* Value in hours and minutes with sign. */ val2hours (HH2DAY (the_time), &dots, &sign, NULL); sprintf (buffer, "%c%02d%c%02d%c", (the_time < 0.0) ? *DES_LIT : *ASC_LIT, abs (dots), *sep, abs (sign), *(sep + 1)); } break; case FMT_DDD: if (rc_precise) { /* Degree, minute and second+fraction. */ val2degrees (abs (the_time), &dots, &sign, &the_error); digits = (int) ROUND ((the_error - (int) the_error) * 1000.0); if (digits == 1000) digits--; sprintf (buffer, "%03d%c%02d%c%02d.%03d%c", dots, *sep, sign, *(sep + 1), (int) the_error, digits, *(sep + 2)); } else { /* Degree and minute. */ val2degrees (abs (the_time), &dots, &sign, NULL); sprintf (buffer, "%03d%c%02d%c", dots, *sep, sign, *(sep + 1)); } break; case FMT_DDS: if (rc_precise) { /* Degree, minute and second+fraction with sign. */ val2degrees (the_time, &dots, &sign, &the_error); the_error = abs (the_error); digits = (int) ROUND ((the_error - (int) the_error) * 1000.0); if (digits == 1000) digits--; sprintf (buffer, "%c%03d%c%02d%c%02d.%03d%c", (the_time < 0.0) ? *DES_LIT : *ASC_LIT, abs (dots), *sep, abs (sign), *(sep + 1), (int) the_error, digits, *(sep + 2)); } else { /* Degree and minute with sign. */ val2degrees (the_time, &dots, &sign, NULL); sprintf (buffer, "%c%03d%c%02d%c", (the_time < 0.0) ? *DES_LIT : *ASC_LIT, abs (dots), *sep, abs (sign), *(sep + 1)); } break; default: /* This case MUST be an internal error! */ abort (); } } else { sign = 0; if (astronomical_object == AOBJ_NONE) { if (is_error) { /* Skip the misspelled argument. */ if (*(the_text + j) && !isspace (*(the_text + j))) { while (*(the_text + j) && !isspace (*(the_text + j))) j++; j--; } } if (!dist_mode) i = ERR_NNN; else i = ERR_DDD; } else { i = aobj_oformat[aobj_mode] [astronomical_object].error_format; if (aobj_oformat[aobj_mode] [astronomical_object].data_format == FMT_TTS || aobj_oformat[aobj_mode] [astronomical_object].data_format == FMT_DDS) sign = 1; } /* Force representation of numerical error text. */ if (is_format_modifier_given) switch (i) { case ERR_TTT: case ERR_DDD: i = ERR_NNN; sign = 0; break; default: ; /* Void, nothing to do! */ } if (the_error <= HH2SS (SPECIAL_VALUE)) the_error = SS2HH (the_error); if (is_error) time_suffix = RC_INVALID_PARAM_TEXT; else switch ((int) the_error) { case SPECIAL_VALUE * 3: time_suffix = RC_A_ABOVE_VALUE_TEXT; break; case SPECIAL_VALUE * 2: time_suffix = RC_A_BELOW_VALUE_TEXT; break; default: time_suffix = RC_INVALID_VALUE_TEXT; } switch (i) { case ERR_NNN: strcpy (buffer, time_suffix); break; case ERR_HHH: if (rc_precise) sprintf (buffer, "%s%c%s%c%s.%s%c", time_suffix, *sep, time_suffix, *sep, time_suffix, time_suffix, *time_suffix); else sprintf (buffer, "%s%c%s", time_suffix, *sep, time_suffix); if (is_format_modifier_given) for (i = 0; i < state; i++) strcat (buffer, time_suffix + 1); break; case ERR_TTT: if (sign) *buffer = *time_suffix; if (rc_precise && (aobj_oformat[aobj_mode] [astronomical_object].data_format != FMT_TXS)) sprintf (buffer + sign, "%s%c%s%c%s.%s%c%c", time_suffix, *sep, time_suffix, *(sep + 1), time_suffix, time_suffix, *time_suffix, *(sep + 2)); else sprintf (buffer + sign, "%s%c%s%c", time_suffix, *sep, time_suffix, *(sep + 1)); break; case ERR_DDD: if (sign) *buffer = *time_suffix; if (rc_precise) sprintf (buffer + sign, "%s%c%c%s%c%s.%s%c%c", time_suffix, *time_suffix, *sep, time_suffix, *(sep + 1), time_suffix, time_suffix, *time_suffix, *(sep + 2)); else sprintf (buffer + sign, "%s%c%c%s%c", time_suffix, *time_suffix, *sep, time_suffix, *(sep + 1)); break; default: /* This case MUST be an internal error! */ abort (); } } *s2 = '\0'; (void) use_format (&s2, 0, buffer, 0, FALSE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); is_obsolete_whitespace = TRUE; } else if (special_text_char == RC_ENV_VAR_CHAR) { auto char *ptr_env = (char *) NULL; /* %shell_environment_variable special text found: Replace it by the contents of the environment variable. */ i = 0; j++; while (*(the_text + j) && !isspace (*(the_text + j))) { if ((Uint) i >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); s2[i++] = *(the_text + j++); } s2[i] = '\0'; j--; # if !defined(AMIGA) || defined(__GNUC__) ptr_env = getenv (s2); # endif /* !AMIGA || __GNUC__ */ /* Insert the contents of environment variable into text. */ *s2 = '\0'; if (ptr_env != (char *) NULL) (void) use_format (&s2, 0, ptr_env, 0, FALSE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); is_obsolete_whitespace = TRUE; } else if (special_text_char == RC_HLS1S_CHAR || special_text_char == RC_HLS1E_CHAR || special_text_char == RC_HLS2S_CHAR || special_text_char == RC_HLS2E_CHAR || special_text_char == RC_HLS3S_CHAR || special_text_char == RC_HLS3E_CHAR || special_text_char == RC_HLS4S_CHAR || special_text_char == RC_HLS4E_CHAR || special_text_char == RC_HLS5S_CHAR || special_text_char == RC_HLS5E_CHAR) { /* One of the %highlighting special texts found: Replace it by the real hightlighting sequence. */ *s2 = '\0'; if (highlight_flag) { hls_set = FALSE; if ((special_text_char == RC_HLS1S_CHAR) && !hls1_set) { sprintf (s2, "%s", ehls1s.seq); hls_set = TRUE; hls1_set = TRUE; hls2_set = FALSE; } else if ((special_text_char == RC_HLS1E_CHAR) && hls1_set) { sprintf (s2, "%s", ehls1e.seq); hls_set = TRUE; hls1_set = FALSE; } else if ((special_text_char == RC_HLS2S_CHAR) && !hls2_set) { sprintf (s2, "%s", ehls2s.seq); hls_set = TRUE; hls2_set = TRUE; hls1_set = FALSE; } else if ((special_text_char == RC_HLS2E_CHAR) && hls2_set) { sprintf (s2, "%s", ehls2e.seq); hls_set = TRUE; hls2_set = FALSE; } else /* Set highlighting sequence 1 only if the fixed date is on today's date! */ if ((special_text_char == RC_HLS3S_CHAR || special_text_char == RC_HLS5S_CHAR) && (year + incr_year - decr_year == act_year) && (m == act_month) && (d == act_day) && !hls1_set) { sprintf (s2, "%s", ehls1s.seq); hls_set = TRUE; hls1_set = TRUE; hls2_set = FALSE; } else if ((special_text_char == RC_HLS3E_CHAR || special_text_char == RC_HLS5E_CHAR) && hls1_set) { sprintf (s2, "%s", ehls1e.seq); hls_set = TRUE; hls1_set = FALSE; } else /* Set highlighting sequence 2 only if the fixed date is on a legal holiday date! */ if ((special_text_char == RC_HLS4S_CHAR || special_text_char == RC_HLS5S_CHAR) && hd_ldays[((m - 1) * MONTH_LAST) + (d - 1)] && !hls2_set) { sprintf (s2, "%s", ehls2s.seq); hls_set = TRUE; hls2_set = TRUE; hls1_set = FALSE; } else if ((special_text_char == RC_HLS4E_CHAR || special_text_char == RC_HLS5E_CHAR) && hls2_set) { sprintf (s2, "%s", ehls2e.seq); hls_set = TRUE; hls2_set = FALSE; } } } else { auto Slint diff; dd = act_day; mm = act_month; yy = act_year; (void) get_actual_date (); y = year + incr_year - decr_year; /* Now compute the differences: date1 == actual (base)date (act_day, act_month, act_year) date2 == reported date (d, m, y) */ if (special_text_char == RC_JDAYS_CHAR) { auto char op = '\0'; /* A %julian_day[[+|-]N] special text found (we always suppress the day fraction part of 0.5). */ diff = d_between (1, 1, 1, d, m, y); j++; if (*(the_text + j) == *ASC_LIT || *(the_text + j) == *DES_LIT) op = *(the_text + j++); i = 0; while (isdigit (*(the_text + j))) { if ((Uint) i >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); s2[i++] = *(the_text + j++); } s2[i] = '\0'; j--; num = atol (s2); *s2 = '\0'; diff += MIN_BCE_TO_1_CE; if (op == *ASC_LIT) diff += num; else diff -= num; } else { if (special_text_char == RC_DAY_DIFF_CHAR) /* %day_difference special text found. */ diff = d_between (act_day, act_month, act_year, d, m, y); else if (special_text_char == RC_WEEK_DIFF_CHAR) /* %week_difference special text found. */ diff = w_between (act_day, act_month, act_year, d, m, y); else if (special_text_char == RC_MONTH_DIFF_CHAR) /* %month_difference special text found. */ diff = m_between (act_month, act_year, m, y); else /* A simple %year_difference special text found. */ diff = (Slint) y - act_year; if (j_buf) /* Check whether a '-' character is put before the `%?' special text, e.g. `x -%d x'. If so, switch the sign of the computed value. In case the '-' character preceding the special is quoted, like "\-", remove the quote character '-' and do not switch the sign of the computed value. */ if (*(the_text + j_buf - 1) == *DES_LIT) { if ((j_buf > 1) && (*(the_text + j_buf - 2) == QUOTE_CHAR)) { s1[k - 2] = s1[k - 1]; k--; s6[kk - 2] = s6[kk - 1]; kk--; } else { k--; kk--; diff = -diff; } } } (void) use_format (&s2, 0, "", diff, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); act_day = dd; act_month = mm; act_year = yy; } /* And copy the expanded special text into the target string. */ i = 0; while (s2[i]) { if ((Uint) k >= maxlen_max - (Uint) len_fn) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); s1[k++] = s2[i]; /* Don't add highlighting sequences in that text, in which we search for PATTERN! */ if (!remove_hls_in_regex || !hls_set) s6[kk++] = s2[i]; i++; } j++; } else /* Check for %? special_texts which disable a fixed date. */ if (!got_command && (special_text_char == RC_EX_LHDY_CHAR || special_text_char == RC_EX_NLHDY_CHAR || special_text_char == RC_EX_AHDY_CHAR || special_text_char == RC_EX_NAHDY_CHAR || special_text_char == RC_EX_MON_CHAR || special_text_char == RC_EX_NMON_CHAR || special_text_char == RC_EX_TUE_CHAR || special_text_char == RC_EX_NTUE_CHAR || special_text_char == RC_EX_WED_CHAR || special_text_char == RC_EX_NWED_CHAR || special_text_char == RC_EX_THU_CHAR || special_text_char == RC_EX_NTHU_CHAR || special_text_char == RC_EX_FRI_CHAR || special_text_char == RC_EX_NFRI_CHAR || special_text_char == RC_EX_SAT_CHAR || special_text_char == RC_EX_NSAT_CHAR || special_text_char == RC_EX_SUN_CHAR || special_text_char == RC_EX_NSUN_CHAR || special_text_char == RC_EX_MON_2_THU_CHAR || special_text_char == RC_EX_NMON_2_THU_CHAR || special_text_char == RC_EX_MON_2_FRI_CHAR || special_text_char == RC_EX_NMON_2_FRI_CHAR)) { if (strchr (date_text, special_text_char) == (char *) NULL) { /* Insert the `special_text_char' into `date_text' only in cases it is not already stored in there! */ *ptr_date_text++ = special_text_char; *ptr_date_text = '\0'; } j++; } else { /* Check for %shell_escape[TEXT-TILL-EOL] special text. */ if (rc_execute_command && !got_command && (special_text_char == RC_SHELL_ESC_CHAR)) { /* Buffer the starting position of the %shell_escape[TEXT-TILL-EOL] special text and process it as usual, so other special texts possibly contained are expanded! */ kpos = k; kkpos = kk; j_diff = j - j_buf - 1; got_command = TRUE; } for (; j_buf < j; j_buf++, k++, kk++) s1[k] = s6[kk] = *(the_text + j_buf); } } } else ok = TRUE; } if (line_number != SPECIAL_VALUE) { /* Check whether a period to exclude is marked in the maps and if so, avoid displaying the fixed date entry. */ if (ie_date_maps_set && (*inclusive_date_map || *exclusive_date_map)) { i = day_of_year (d, m, year + incr_year - decr_year); if (*inclusive_date_map && *exclusive_date_map) { if (!inclusive_date_map[i] || !exclusive_date_map[i]) print_line = FALSE; } else if (*inclusive_date_map) { if (!inclusive_date_map[i]) print_line = FALSE; } else if (!exclusive_date_map[i]) print_line = FALSE; } /* Check whether a weekday to exclude is marked in the maps and if so, avoid displaying the fixed date entry. */ if (print_line && *date_text) print_line = rc_valid_day (date_text, d, m, year + incr_year - decr_year); } if (print_line) { s1[k] = s6[kk] = '\0'; if (got_command) { /* Is it necessary to print any leading text before executing the %!shell_command[TEXT-TILL-EOL]? */ if (!kpos) print_line = FALSE; else { /* Allow regular expression search only in the text which leads a later executed %!shell_command[TEXT-TILL-EOL]. */ kk = kkpos; s1[kpos] = s6[kk] = '\0'; } } /* If `--filter-text=PATTERN' is given and REGEX doesn't match the text of the fixed date, suppress this fixed date! */ if (print_line && (rc_filter_text != (char *) NULL) && (line_number != SPECIAL_VALUE)) { # if HAVE_GNU_RE_COMPILE_PATTERN print_line = (Bool) (re_search (®pattern, s6, kk, 0, kk, (struct re_registers *) NULL) >= 0); # else /* !HAVE_GNU_RE_COMPILE_PATTERN */ # if HAVE_POSIX_REGCOMP static regmatch_t rm_dummy; # endif if (rc_ignore_case_flag) { /* Set all letters of the fixed date text to lower-case. */ ptr_char = s6; for (; *ptr_char; ptr_char++) *ptr_char = (char) tolower (*ptr_char); } # if HAVE_POSIX_REGCOMP print_line = (Bool) ! regexec (®pattern, s6, 1, &rm_dummy, 0); # endif # if HAVE_RE_COMP print_line = (Bool) (re_exec (s6) == 1); # endif # endif /* !HAVE_GNU_RE_COMPILE_PATTERN */ if (rc_revert_match_flag) print_line = !print_line; } /* Is it necessary to execute the %!shell_command[TEXT-TILL-EOL] now? */ if (got_command && ((print_line && (kpos || rc_filter_text != (char *) NULL)) || (!print_line && (!kpos || rc_filter_text == (char *) NULL)))) { /* Execute the command. */ i = my_system (s1 + kpos + j_diff + 2); if (warning_level >= 0) { if (i == -1) { /* Error, `system()' function failed. */ sprintf (s2, _ ("Cannot execute command in file `%s'\nLine: %ld %s"), filename, line_number, the_text + kpos + j_diff + 2); print_text (stderr, s2); if (warning_level >= WARN_LVL_MAX) { k = (int) strlen (s1 + kpos + j_diff + 2); if ((Uint) k >= maxlen_max - 9) resize_all_strings (k + 9, FALSE, __FILE__, (long) __LINE__); sprintf (s2, "system(%s)=", s1 + kpos + j_diff + 2); my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 22L, s2, i); } } else { /* Report the exit code of command executed by the `system()' function. */ sprintf (s2, _ ("Command executed (exit code=%d) in file `%s'\nLine %ld: %s"), i, filename, line_number, s1 + kpos + j_diff + 2); print_text (stderr, s2); /* The command executed by the `system()' function returned a value not equal zero so we terminate all further processing now with ERR_EXTERNAL_CMD_FAILURE exit status. */ if (i && (warning_level >= WARN_LVL_MAX)) my_exit (ERR_EXTERNAL_CMD_FAILURE); } } shell_escape_done = TRUE; } if (print_line && highlight_flag && (hls1_set || hls2_set)) { /* Hmm, seems the user forgot to give the right %highlighting special text for disabling a highlighting sequence already enabled, let's do this for him/her/it/PER/or... hehehe! */ if (hls1_set) { if (ehls1e.len == 1) { if ((Uint) k >= maxlen_max - (Uint) len_fn - 1) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); } else { while ((Uint) k >= maxlen_max - (Uint) len_fn - (ehls1e.len + 1)) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); } strcat (s1, ehls1e.seq); } else { if (ehls2e.len == 1) { if ((Uint) k >= maxlen_max - (Uint) len_fn - 1) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); } else { while ((Uint) k >= maxlen_max - (Uint) len_fn - (ehls2e.len + 1)) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); } strcat (s1, ehls2e.seq); } } } if (print_line) { if (rc_enable_fn_flag && (line_number != SPECIAL_VALUE)) { sprintf (s6, "%0*d%02d%02d %c%s#%05ld%c", len_year_max, year + incr_year - decr_year, m, d, PSEUDO_QUOTE, filename, line_number, PSEUDO_QUOTE); if (rc_suppr_text_part_flag) j = strlen (s6); if (*s1) { strcat (s6, " "); strcat (s6, s1); } } else { sprintf (s6, "%0*d%02d%02d %s", len_year_max, year + incr_year - decr_year, m, d, s1); if (rc_suppr_text_part_flag) j = len_year_max + 4; } /* Now compute whether a filler text for a week entry is needed: Week 51/0 == 7 chars text "|51/0| " -> no filler text. Week 52/0 == 7 chars text "|52/1| " -> no filler text. Week 53/0 == 7 chars text "|53/0| " -> no filler text. Week 53/1 == 7 chars text "|53/1| " -> no filler text. Week 1...52 == 5 chars text "|nn| " -> 2 chars filler text. */ if (rc_week_number_flag && (line_number != SPECIAL_VALUE)) if (week_number (d, m, year + incr_year - decr_year, iso_week_number, start_day) <= 0) len_fil_wt = 2; /* Now place the fixed date into the table: Only if the previous fixed date is equal the actual fixed date, avoid insertation of actual fixed date! */ i = 1; if (*rc_elems && (line_number != SPECIAL_VALUE)) i = strcmp (s6, rc_elems_table[*rc_elems - 1]); /* Store the constructed "raw" line in `rc_elems_table[]'. */ if (i) { if ((Uint) * rc_elems >= rc_elems_max) { /* Resize the `rc_elems_table[]' table. */ rc_elems_max <<= 1; if (rc_elems_max * sizeof (char *) > testval) rc_elems_max--; rc_elems_table = (char **) my_realloc ((VOID_PTR) rc_elems_table, rc_elems_max * sizeof (char *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "rc_elems_table[rc_elems_max]", rc_elems_max); } if (rc_suppr_text_part_flag && (line_number != SPECIAL_VALUE)) { rc_elems_table[*rc_elems] = (char *) my_malloc (j + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_elems_table[rc_elems]", *rc_elems); s6[j] = '\0'; } else rc_elems_table[*rc_elems] = (char *) my_malloc (strlen (s6) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_elems_table[rc_elems]", *rc_elems); strcpy (rc_elems_table[(*rc_elems)++], s6); } } /* Do we have to construct a 1x2 production of the line? */ if (print_twice > 1) { if (is_2easter) { /* Precalculate the next date relative to Easter Sunday's date. */ incr_year = 1; precomp_date (hn, hwd, &d, &m, year + incr_year, EAster); } else if (is_2dvar) { /* Precalculate the next date relative to date variable's date and use original date of DVAR, i.e. use buffer of day and month. */ incr_year = 1; if (islower (hc)) (void) precomp_date (hn, hwd, &d_buf, &m_buf, year + incr_year, (hc == RC_TODAY_CHAR) ? TOday : DVar); else { y = year + incr_year; (void) precomp_nth_wd (hn, hwd, &hn, &d_buf, &m_buf, &y, (hc == 'D') ? DAy : WEek); } d = d_buf; m = m_buf; } else /* Compute tomorrow's date. */ (void) next_date (&d, &m, &year); /* If the "new" precomputed date has left the year bounds, we have to exit the loop! */ if (year + incr_year > YEAR_MAX) print_twice--; else /* Force the second processing of the line! */ print_line = TRUE; } } while (--print_twice); year = tmp_year; } #endif /* USE_RC */ gcal-4.1/src/rc-astro.c0000664000000000000000000035774112244130561011661 00000000000000/*! * \file rc-astro.c * \brief Astronomical functions necessary for managing the fixed dates. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include definition header file to see whether USE_RC is defined there. * Compile this module only if USE_RC is defined, otherwise skip it. */ #include "tailor.h" #if USE_RC /* * Include header files. */ # if HAVE_MATH_H && HAVE_LIBM # include # endif # include "common.h" # include "rc-defs.h" # include "globals.h" # include "hd-astro.h" # include "rc-astro.h" # include "utils.h" # include "rc-utils.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `rc-astro.c'. */ static double atmospheric_refraction __P_ ((const double altitude, double pressure, const double temperature)); static int moon_charpos __P_ ((const double x, const int lines)); static double internal_moon_rise_set __P_ ((const Aevent_enum event, int day, int month, int year, Coor_struct * coordinates)); __END_DECLARATIONS /* * Function implementations. */ static double atmospheric_refraction (altitude, pressure, temperature) const double altitude; double pressure; const double temperature; /*! Returns the approximate atmospheric refraction for the given true radians ALTITUDE in radians, the atmospheric PRESSURE in Newton per sqare meter (Nm^-2), and the atmospheric TEMPERATURE in degrees Celsius, which results the apparent altitude when added to the true altitude. Atmospheric refraction is calculated for altitude values that are greater equal -2.0 degrees upto +90.0 degrees. If PRESSURE is set to a value less equal zero, no atmospheric refraction will be calculated, i.e. this function always returns 0.0 (radians). This function is taken from the `aa.arc' archive, which is a nice and precise ephemeris calculation software written by Stephen L. Moshier ; adapted and pretty-printed according to Gcal's needs. References: * U.S. Government Printing Office, "The Astronomical Almanac" (AA), 1986. */ { auto double degrees_altitude = TODEG (altitude); /* Convert PRESSURE given in Newton per square meter (Nm^-2) to Millibar. */ pressure /= 100.0; if (pressure <= 0.0 || degrees_altitude < -2.0 || degrees_altitude >= DEGS_PER_06_HOURS) /* No atmospheric refraction for such altitudes. */ return (0.0); if (degrees_altitude < DEGS_PER_HOUR) { auto double old_altitude = degrees_altitude; auto double old_degrees = 0.0; auto double new_altitude = degrees_altitude; auto double new_degrees = 0.0; auto double new_pressure = (pressure - 80.0) / 930.0; auto double new_temperature = 0.0048 * (temperature - 10.0); auto double n; register int i; /* Manage altitudes below 15 degrees (== 1.0 hour) above horizon. The formula for low altitudes is from the "Almanac for Computers". It gives the correction for the observed altitude, so has to be inverted numerically to get the observed from the true. Accuracy about 0.2' for -20 C < TEMPERATURE < +40 C and 970 mb < PRESSURE < 1050 mb. */ for (i = 0; i < 4; i++) { n = 1.0 / tan (TORAD (new_altitude + (7.31 / (new_altitude + 4.4)))); new_degrees = n * new_pressure / (60.0 + new_temperature * (n + 39.0)); n = new_altitude - old_altitude; /* Denominator of derivative. */ old_altitude = new_degrees - old_degrees - n; if ((n != 0.0) && (old_altitude != 0.0)) /* Newton's iteration with numerically estimated derivative. */ n = new_altitude - n * (degrees_altitude + new_degrees - new_altitude) / old_altitude; else /* Can't do it on first pass. */ n = degrees_altitude + new_degrees; old_altitude = new_altitude; old_degrees = new_degrees; new_altitude = n; } return (TORAD (new_degrees)); } /* Manage altitudes above 15 degrees above horizon. */ return (0.00007888888 * pressure / ((273.0 + temperature) * tan (altitude))); } static int moon_charpos (x, lines) const double x; const int lines; /*! Computes the position where to place the next character of the Moon text graphics image. */ { register int i; i = (int) (x * (double) lines - 0.5); if (i + lines < 1) i = 0; else i += lines; return (i); } double gd_latitude2gc_latitude (gd_latitude, meters_above_sea_level, gc_latitude) const double gd_latitude; const int meters_above_sea_level; double *gc_latitude; /*! Reduces the geodetic latitude GD_LATITUDE of the Earth (which must be given in radians) to a geocentric latitude respecting the altitude of the location above/below sea level by using METERS_ABOVE_SEA_LEVEL. Returns the calculated true Earth radius in meters for the location and the calculated geocentric latitude in radians via the address of GC_LATITUDE. References: * U.S. Government Printing Office, "The Astronomical Almanac" (AA), 1986. */ { auto double x1; auto double x2; auto double x3; auto double cos_gd_latitude = cos (gd_latitude); auto double cos2_gd_latitude; auto double sin2_gd_latitude; sin2_gd_latitude = sin (gd_latitude); sin2_gd_latitude *= sin2_gd_latitude; cos2_gd_latitude = cos_gd_latitude * cos_gd_latitude; x1 = (1.0 / sqrt (cos2_gd_latitude + FLATTENING_OF_EARTH * sin2_gd_latitude)) * EQUATOR_EARTH_RADIUS; x2 = x1 + meters_above_sea_level; x3 = x1 * FLATTENING_OF_EARTH + meters_above_sea_level; x1 = sqrt (x2 * x2 * cos2_gd_latitude + x3 * x3 * sin2_gd_latitude); x3 = acos (x2 * cos_gd_latitude / x1); if (SGN (gd_latitude) < 0) x3 = -x3; if (gc_latitude != (double *) NULL) *gc_latitude = x3; return (x1); } double sun_rise_set (event, is_limited, day, month, year, coordinates) const Aevent_enum event; const Bool is_limited; const int day; const int month; const int year; Coor_struct *coordinates; /*! Returns the approximate timezone-based (local time) rise time of a definite Sun altitude for the given date in hours plus fraction if EVENT is `RIse', otherwise the approximate timezone-based (local time) set time of a definite Sun altitude for the given date in hours plus fraction, resp., SPECIAL_VALUE if the calculated Sun rise/set time refers to a yesterdays or tomorrows date, 2*SPECIAL_VALUE if the Sun is always below the queried altitude on the given date, or 3*SPECIAL_VALUE if the Sun is always above the queried altitude on the given date. If the global `adjust_value' variable is set within a range of -90...+90 degree, its value is respected as reference altitude for rise/set-based times and data, respectively, reference shadow length factor instead of the pre-defined values otherwise used. If data is computed that refers to rise/set times, and a rise/set time does not occur on the given date, the ``error'' indicating return values are the same as before but converted to seconds per hour for distinction purposes. If IS_LIMITED is TRUE and a calculated timezone-based rise/set time does not occur on the given date, i.e. is prior or past the given date, SPECIAL_VALUE is returned. If IS_LIMITED is FALSE and a calculated timezone-based rise/set time is prior or past the given date (such can always happen at high latitudes; locations that are within --or close to, if you calculate the rise/set times for reference altitudes other than the standard ones-- the solar Arctic Circle where the Sun occasionally rises/sets more than once during a single day, respectively, never rises or sets during a single day), the ``normalized'' --back-converted to the given date-- timezone-based time in hours plus fraction is returned. The longitude co-ordinates west of the zero meridian have a negative sign. The longitude co-ordinates east of the zero meridian have a positive sign. The latitude co-ordinates north of the equator have a positive sign. The latitude co-ordinates south of the equator have a negative sign. For negative numbers, all three of `*_deg', `*_min' and `*_sec' should be negative. For example, the ISO 6709 co-ordinate `-202233+1100010' (==+|-Latitude+|-Longitude) must be defined as `-20 -22 -33 +110 0 +10'. Define which data of the Sun must be computed via the member variable `the_mode'. Calculations for non-rise/set/transit/shadow length based data are done for a line at a definite meridian expressed as a time value. This time value is given by the member variable `time_zone_in_mins' for the timezone that is respected at the given co-ordinate, and by the global `time_offset' variable, which serves as the displacement value that is added to midnight's time. If `time_offset' is set to zero, calculations are made for Universal Time (UT/GMT). If `time_offset' has a positive sign, UT/GMT calculations are made for meridians East of Greenwich, otherwise for meridians West of Greenwich. Here are all valid mode values and their description: 0 == This case is managed specially. Hour plus fraction when the Sun's center passes the meridian opposite the noon direction under or above the horizon near the lowermost culmination point (meridian anti-transit, it is Sun's midnight). 1 == This case is managed specially. Hour plus fraction when the Sun's center passes the meridian opposite the midnight direction under or above the horizon near the uppermost culmination point (meridian transit, it is Sun's noon). 2 == 0.0 degrees. Hour plus fraction when the center of Sun's disk touches the horizon, uncorrected for atmospheric refraction (mathematical horizon). 3 == approximately -16arc_minutes/60 => -0.26~ degrees. Hour plus fraction when the Sun's upper limb touches the horizon, uncorrected for atmospheric refraction (mathematical horizon). 4 == approximately -34arc_minutes/60 => -0.56~ degrees. Hour plus fraction when the center of Sun's disk touches the horizon, corrected for atmospheric refraction. 5 == approximately -50arc_minutes/60 => -0.83~ degrees. Hour plus fraction when the Sun's upper limb touches the horizon, corrected for atmospheric refraction (standard rise/set). 6 == -6.0 degrees. Hour plus fraction of civil twilight (one can no longer read outside without artificial illumination). 7 == -12.0 degrees. Hour plus fraction of nautical twilight (navigation using a sea horizon no longer possible). 8 == -15.0 degrees. Hour plus fraction of amateur astronomical twilight (the sky is dark enough for most astronomical observations). 9 == -18.0 degrees. Hour plus fraction of astronomical twilight (the sky is completely dark). 10 == This case is managed specially. The topocentric apparent height of the Sun's center under or above the sea-level horizon (elevation angle) in degrees plus fraction that appears at midnight on the given date, corrected for atmospheric refraction. 11 == This case is managed specially. The Sun's topocentric apparent azimuth angle in degrees plus fraction that appears at midnight on the given date. 12 == This case is managed specially. The Sun's topocentric apparent declination angle in degrees plus fraction that appears at midnight on the given date. 13 == This case is managed specially. The Sun's topocentric apparent ecliptic longitude in degrees plus fraction that appears at midnight on the given date. 14 == This case is managed specially. The Sun's topocentric apparent right ascension angle in hours plus fraction that appears at midnight on the given date. 15 == This case is managed specially. The topocentric Sun/Earth distance in astronomical units plus fraction that appears at midnight on the given date. 16 == This case is managed specially. The Sun's topocentric apparent horizontal parallax in degrees plus fraction that appears at midnight on the given date. 17 == This case is managed specially. The Sun's topocentric apparent semidiameter in degrees plus fraction that appears at midnight on the given date. 18 == The atmospheric refraction which is calculated for correcting the Sun's topocentric true elevation angle to the Sun's topocentric apparent elevation angle in degrees plus fraction that appears at midnight on the given date. 19 == This case is managed specially. The geocentric apparent height of the Sun's center under or above the imaginary geocentric horizon (elevation angle) in degrees plus fraction that appears at midnight on the given date. 20 == This case is managed specially. The Sun's geocentric apparent azimuth angle in degrees plus fraction that appears at midnight on the given date. 21 == This case is managed specially. The Sun's geocentric apparent declination angle in degrees plus fraction that appears at midnight on the given date. 22 == This case is managed specially. The Sun's geocentric apparent ecliptic longitude in degrees plus fraction that appears at midnight on the given date. 23 == This case is managed specially. The Sun's geocentric apparent right ascension angle in hours plus fraction that appears at midnight on the given date. 24 == This case is managed specially. The geocentric Sun/Earth distance in astronomical units plus fraction that appears at midnight on the given date. 25 == This case is managed specially. The Sun's geocentric apparent horizontal parallax in degrees plus fraction that appears at midnight on the given date. 26 == This case is managed specially. The Sun's geocentric apparent semidiameter in degrees plus fraction that appears at midnight on the given date. 27 == This case is managed specially. The approximate ``Delta-T'' in seconds plus fraction, which is the difference between Terrestrial Dynamical Time, TDT (formerly called Ephemeris Time, ET), and Universal Time, UT, so `Delta_T = TDT - UT', that appears at midnight on the given date. 28 == This case is managed specially. The local sidereal time in hours plus fraction that appears at midnight on the given date. 29 == This case is managed specially. The globally given time offset value in hours plus fraction. 30 == This case is managed specially. The local ``Julian Date'' in days plus fraction that appears at midnight on the given date. 31 == This case is managed specially. The approximate local ``Julian Ephemeris Date'' in days plus fraction that appears at midnight on the given date. 32 == This case is managed specially. The ``Equation of Time'' in hours plus fraction that appears at midnight on the given date. 33 == This case is managed specially. The difference between the Sun's and the Moon's topocentric apparent elevation angles in degrees plus fraction that appears at midnight on the given date. 34 == This case is managed specially. The difference between the Sun's and the Moon's topocentric apparent azimuth angles in degrees plus fraction that appears at midnight on the given date. 35 == This case is managed specially. The difference between the Sun's and the Moon's geocentric apparent elevation angles in degrees plus fraction that appears at midnight on the given date. 36 == This case is managed specially. The difference between the Sun's and the Moon's geocentric apparent azimuth angles in degrees plus fraction that appears at midnight on the given date. 37 == This case is managed specially. The difference between the Sun's and the Moon's topocentric apparent elevation angles in degrees plus fraction that appears at Sun's standard rise/set time. 38 == This case is managed specially. The difference between the Sun's and the Moon's topocentric apparent azimuth angles in degrees plus fraction that appears at Sun's standard rise/set time. 39 == This case is managed specially. The difference between the Sun's and the Moon's geocentric apparent elevation angles in degrees plus fraction that appears at Sun's standard rise/set time. 40 == This case is managed specially. The difference between the Sun's and the Moon's geocentric apparent azimuth angles in degrees plus fraction that appears at Sun's standard rise/set time. 41 == This case is managed specially. The difference between the Sun's and the Moon's meridian anti-transit time in hours plus fraction that appears at Sun's meridian anti-transit time. 42 == This case is managed specially. The difference between the Sun's and the Moon's meridian transit time in hours plus fraction that appears at Sun's meridian transit time. 43 == This case is managed specially. The difference between the Sun's and the Moon's standard rise/set time in hours plus fraction that appears at Sun's standard rise/set time. 44 == This case is managed specially. The Sun's topocentric apparent elevation angle (Sun's midnight height) in degrees plus fraction that appears when the Sun's center anti-transits the meridian under or above the sea-level horizon, corrected for atmospheric refraction. 45 == This case is managed specially. The Sun's topocentric apparent elevation angle (Sun's noon height) in degrees plus fraction that appears when the Sun's center transits the meridian under or above the sea-level horizon, corrected for atmospheric refraction. By the way, you can calculate the shadow length of an object by using the formula: Shadow_Length := Object_Height / tangent Sun_elevation_angle and if the object length is 1, directly by: Shadow_Length := cotangent Sun_elevation_angle where the ``cotangent'' can be defined by: cotangent X := cosine X / sine X or by: cotangent X := 1 / tangent X. 46 == This case is managed specially. The Sun's topocentric apparent elevation angle under or above the true horizon (the given height at the location) in degrees plus fraction that appears at Sun's standard rise/set time, corrected for atmospheric refraction. 47 == This case is managed specially. The Sun's topocentric apparent azimuth angle in degrees plus fraction that appears at Sun's standard rise/set time. 48 == This case is managed specially. The Sun's geocentric apparent elevation angle (Sun's midnight height) in degrees plus fraction that appears when the Sun's center anti-transits the meridian under or above the sea-level horizon. 49 == This case is managed specially. The Sun's geocentric apparent elevation angle (Sun's noon height) in degrees plus fraction that appears when the Sun's center transits the meridian under or above the sea-level horizon. 50 == This case is managed specially. The Sun's geocentric apparent elevation angle under or above the true horizon (the given height at the location) in degrees plus fraction that appears at Sun's standard rise/set time. 51 == This case is managed specially. The Sun's geocentric apparent azimuth angle in degrees plus fraction that appears at Sun's standard rise/set time. 52 == This case is managed specially. Hour plus fraction when the shadow length of an object at true horizon (the given height at the location) is twice the height of the object. 53 == This case is managed specially. Hour plus fraction when the shadow length of an object at true horizon (the given height at the location) is equal the height of the object. *** CAREFUL *** Keep in mind that all values computed here are approximations only, based on low-precision formula terms; and some values are computed recursively! *** CAREFUL *** State `meters_above_sea_level' if you know them for the co-ordinate, otherwise 0. Specify `time_zone_in_mins' in +/- minutes MMM the co-ordinate is before/behind UT/GMT, so that the calculated UT/GMT-based rise/set times can be properly converted to local time times. For example, if a co-ordinates timezone is `GMT-2' (==CEST), use `+120'. References: * "Practical Astronomy with your Calculator", Peter Duffet-Smith, 3rd edition. Cambridge University Press 1988, ISBN 0-521-35699-7. * "Astronomical Formulae for Calculators", Jean Meeus, 4th ed, Willmann-Bell 1988, ISBN 0-943396-22-0. * "Astronomical Algorithms", Jean Meeus, 1st ed, Willmann-Bell 1991, ISBN 0-943396-35-2. * The WWW documents "How to compute planetary positions" and "How to compute rise/set times and altitude above horizon" by Paul Schlyter, or . Btw., Keith Burnett publishes a lot of diverse --good quality-- astronomical sources and links at . */ { auto double x1 = 0.0; auto double x2; auto double x3; auto double x4; auto double longitude; auto double latitude; auto double sin_latitude; auto double cos_latitude; auto double mjd; auto double mjd_0ut; auto double jc; auto double local_sidereal_time; auto double obliquity_of_ecliptic; auto double sin_obliquity_of_ecliptic; auto double cos_obliquity_of_ecliptic; auto double argument_of_perihelion; auto double mean_anomaly; auto double eccentricity; auto double anomaly_of_eccentric; auto double divisor_term; auto double true_anomaly; auto double distance; auto double ecliptic_longitude; auto double xe; auto double ye; auto double ze; auto double right_ascension; auto double declination; auto double meridian_transit_time = SECS_PER_DAY; auto double the_time = SECS_PER_DAY; auto double geodetic_height = 0.0; register int n = 0; register int tz_offset; register int save_the_mode; auto Bool iter_mt = FALSE; /* Reduce the given timezone value in minutes to a single day. */ tz_offset = (int) (SGN (coordinates->time_zone_in_mins) * (abs (coordinates->time_zone_in_mins) % MINS_PER_DAY)); x2 = DAY2HH (time_offset); x4 = ((int) DAY2MM (time_offset)) % MINS_PER_HOUR; switch (coordinates->the_mode) { case 27: /* Return ``Delta-T'' in seconds plus fraction. */ return (delta_t (day, month, year, (int) x2, (int) x4)); case 29: /* Return the globally given time offset value in hours plus fraction. */ return (DAY2HH (time_offset)); case 31: /* Return the local ``Julian Ephemeris Date'' in days plus fraction. */ x1 = SS2DAY (delta_t (day, month, year, (int) x2, (int) x4)); /* Fallthrough. */ case 30: /* Return the local ``Julian Date'' in days plus fraction. */ return (date2num (day, month, year) + (MIN_BCE_TO_1_CE - 1.5) + x1 + time_offset); case 32: longitude = 0.0; break; case 33: case 34: case 35: case 36: save_the_mode = coordinates->the_mode; switch (save_the_mode) { case 33: /* Calculate the Sun's topocentric apparent elevation angle under or above the sea-level horizon in degrees plus fraction, corrected for atmospheric refraction. */ coordinates->the_mode = 10; break; case 34: /* Calculate the Sun's topocentric apparent azimuth angle in degrees plus fraction. */ coordinates->the_mode = 11; break; case 35: /* Calculate the Sun's geocentric apparent elevation angle under or above the imaginary geocentric horizon in degrees plus fraction. */ coordinates->the_mode = 19; break; default: /* Calculate the Sun's geocentric apparent azimuth angle in degrees plus fraction. */ coordinates->the_mode = 20; break; } the_time = sun_rise_set (event, is_limited, day, month, year, coordinates); switch (save_the_mode) { case 33: case 35: if (save_the_mode == 33) /* Calculate the difference between the Sun's and the Moon's topocentric apparent elevation angles in degrees plus fraction that appears at midnight on the given date. */ coordinates->the_mode = 10; else /* Calculate the difference between the Sun's and the Moon's geocentric apparent elevation angles in degrees plus fraction that appears at midnight on the given date. */ coordinates->the_mode = 23; the_time -= internal_moon_rise_set (event, day, month, year, coordinates); break; default: if (save_the_mode == 34) /* Calculate the difference between the Sun's and the Moon's topocentric apparent azimuth angles in degrees plus fraction that appears at midnight on the given date. */ coordinates->the_mode = 11; else /* Calculate the difference between the Sun's and the Moon's geocentric apparent azimuth angles in degrees plus fraction that appears at midnight on the given date. */ coordinates->the_mode = 24; x4 = the_time - internal_moon_rise_set (event, day, month, year, coordinates); /* Reduce the resulting angle to -180.0...+180.0 degrees. */ if (abs (x4) <= DEGS_PER_12_HOURS) the_time = x4; else if (x4 > DEGS_PER_12_HOURS) the_time = -DEGS_PER_24_HOURS + x4; else the_time = DEGS_PER_24_HOURS + x4; } coordinates->the_mode = save_the_mode; return (the_time); case 41: case 42: case 43: case 44: case 45: case 48: case 49: x1 = time_offset; save_the_mode = coordinates->the_mode; switch (save_the_mode) { case 43: /* Perform calculations for Sun's standard rise/set time. */ coordinates->the_mode = 5; break; case 41: case 44: case 48: /* Perform calculations for Sun's astronomical midnight. */ coordinates->the_mode = 0; break; default: /* Perform calculations for Sun's astronomical noon. */ coordinates->the_mode = 1; } time_offset = sun_rise_set (event, is_limited, day, month, year, coordinates); if (time_offset > SPECIAL_VALUE) { time_offset = HH2DAY (time_offset); if (save_the_mode <= 42) { if (save_the_mode == 41) /* Calculate the difference between the Sun's and the Moon's meridian anti-transit time in hours plus fraction that appears at Sun's meridian anti-transit time. */ coordinates->the_mode = 0; else /* Calculate the difference between the Sun's and the Moon's meridian transit time in hours plus fraction that appears at Sun's meridian transit time. */ coordinates->the_mode = 1; the_time = moon_rise_set (event, day, month, year, coordinates); if (the_time > SPECIAL_VALUE) the_time = DAY2HH (time_offset) - the_time; else the_time = HH2SS (the_time); } else if (save_the_mode == 43) { /* Calculate the difference between the Sun's and the Moon's standard rise/set time in hours plus fraction that appears at Sun's standard rise/set time. */ coordinates->the_mode = 5; the_time = moon_rise_set (event, day, month, year, coordinates); if (the_time > SPECIAL_VALUE) the_time = DAY2HH (time_offset) - the_time; else the_time = HH2SS (the_time); } else { switch (save_the_mode) { case 44: case 45: /* Calculate the Sun's topocentric apparent elevation angle under or above the sea-level horizon in degrees plus fraction, corrected for atmospheric refraction. */ coordinates->the_mode = 10; break; default: /* Calculate the Sun's geocentric apparent elevation angle under or above the imaginary geocentric horizon in degrees plus fraction. */ coordinates->the_mode = 19; } the_time = sun_rise_set (event, is_limited, day, month, year, coordinates); } } else the_time = HH2SS (time_offset); coordinates->the_mode = save_the_mode; time_offset = x1; return (the_time); case 37: case 38: case 39: case 40: case 46: case 47: case 50: case 51: x1 = time_offset; save_the_mode = coordinates->the_mode; coordinates->the_mode = 5; time_offset = sun_rise_set (event, is_limited, day, month, year, coordinates); if (time_offset > SPECIAL_VALUE) { time_offset = HH2DAY (time_offset); switch (save_the_mode) { case 37: case 46: /* Calculate the Sun's topocentric apparent elevation angle under or above the true horizon in degrees plus fraction that appears at Sun's standard rise/set time, corrected for atmospheric refraction. */ coordinates->the_mode = 10; break; case 38: case 47: /* Calculate the Sun's topocentric apparent azimuth angle in degrees plus fraction that appears at Sun's standard rise/set time. */ coordinates->the_mode = 11; break; case 39: case 50: /* Calculate the Sun's geocentric apparent elevation angle under or above the true horizon in degrees plus fraction that appears at Sun's standard rise/set time. */ coordinates->the_mode = 19; break; default: /* Calculate the Sun's geocentric apparent azimuth angle in degrees plus fraction that appears at Sun's standard rise/set time. */ coordinates->the_mode = 20; } the_time = sun_rise_set (event, is_limited, day, month, year, coordinates); if ((save_the_mode >= 37) && (save_the_mode <= 40)) switch (save_the_mode) { case 37: case 39: if (save_the_mode == 37) /* Calculate the difference between the Sun's and the Moon's topocentric apparent elevation angles in degrees plus fraction that appears at Sun's standard rise/set time. */ coordinates->the_mode = 10; else /* Calculate the difference between the Sun's and the Moon's geocentric apparent elevation angles in degrees plus fraction that appears at Sun's standard rise/set time. */ coordinates->the_mode = 23; the_time -= internal_moon_rise_set (event, day, month, year, coordinates); break; default: if (save_the_mode == 38) /* Calculate the difference between the Sun's and the Moon's topocentric apparent azimuth angles in degrees plus fraction that appears at Sun's standard rise/set time. */ coordinates->the_mode = 11; else /* Calculate the difference between the Sun's and the Moon's geocentric apparent azimuth angles in degrees plus fraction that appears at Sun's standard rise/set time. */ coordinates->the_mode = 24; x4 = the_time - internal_moon_rise_set (event, day, month, year, coordinates); /* Reduce the resulting angle to -180.0...+180.0 degrees. */ if (abs (x4) <= DEGS_PER_12_HOURS) the_time = x4; else if (x4 > DEGS_PER_12_HOURS) the_time = -DEGS_PER_24_HOURS + x4; else the_time = DEGS_PER_24_HOURS + x4; } } else the_time = HH2SS (time_offset); coordinates->the_mode = save_the_mode; time_offset = x1; return (the_time); case 0: case 1: iter_mt = TRUE; /* Fallthrough. */ default: longitude = coordinates->lon_deg + MM2DEG (coordinates->lon_min) + SS2DEG (coordinates->lon_sec); } latitude = TORAD (coordinates->lat_deg + MM2DEG (coordinates->lat_min) + SS2DEG (coordinates->lat_sec)); if (coordinates->meters_above_sea_level > 0) geodetic_height = TORAD (0.0347 * sqrt (coordinates->meters_above_sea_level)); /* Epoch starts 01-Jan-2000 12:00:00 UT, convert UT to TDT. */ x1 = SS2DAY (delta_t (day, month, year, 0, 0)); mjd = mjd_0ut = date2num (day, month, year) + x1 - 730122.5; /* Respect timezone and time displacement value for Sun's non-rise/set/transit/shadow length based modes. */ if ((coordinates->the_mode >= 10) && (coordinates->the_mode <= 36)) mjd += (time_offset - MM2DAY (tz_offset) + SS2DAY (delta_t (day, month, year, (int) x2, (int) x4)) - x1); do { LABEL_sun_iter_mt: local_sidereal_time = FIXANGLE (100.46061837 + 0.9856472275 * mjd + longitude); jc = mjd / 36525.0; obliquity_of_ecliptic = TORAD (FIXANGLE (23.43929111 - (0.013004167 + (0.00000016389 - 0.0000005036 * jc) * jc) * jc)); argument_of_perihelion = TORAD (FIXANGLE (282.93735 + (0.71953 + (0.00046 * jc)) * jc)); mean_anomaly = TORAD (FIXANGLE (357.52910 + (35999.05030 - (0.0001559 + 0.00000048 * jc) * jc) * jc)); eccentricity = 0.016708617 - (0.000042037 + (0.0000001236 * jc)) * jc; x2 = mean_anomaly + eccentricity * sin (mean_anomaly) * (1.0 + eccentricity * cos (mean_anomaly)); do { x1 = x2; x2 = x1 - (x1 - eccentricity * sin (x1) - mean_anomaly) / (1.0 - eccentricity * cos (x1)); } while (abs (abs (x1) - abs (x2)) > 0.000001); anomaly_of_eccentric = x2; divisor_term = cos (anomaly_of_eccentric) - eccentricity; true_anomaly = sqrt (1.0 - eccentricity * eccentricity) * sin (anomaly_of_eccentric); /* Calculate the geocentric Sun/Earth distance. */ distance = sqrt (divisor_term * divisor_term + true_anomaly * true_anomaly); switch (coordinates->the_mode) { case 24: /* Return the geocentric Sun/Earth distance in astronomical units plus fraction. */ return (distance); case 25: /* Return the Sun's geocentric apparent horizontal parallax in degrees plus fraction. */ return (SS2DEG (8.794) * distance); case 26: /* Return the Sun's geocentric apparent semidiameter in degrees plus fraction. */ return (SS2DEG (959.63) * distance); default: ; /* Void, nothing to do! */ } true_anomaly = atan (true_anomaly / divisor_term); if (divisor_term < 0.0) true_anomaly += MY_PI; ecliptic_longitude = TORAD (FIXANGLE (TODEG (true_anomaly + argument_of_perihelion) + jc - 0.00569 - 0.00479 * sin (TORAD (124.90 - (1934.134 - (0.002063 * jc)) * jc)))); if (coordinates->the_mode == 22) /* Return the Sun's geocentric apparent ecliptic longitude in degrees plus fraction. */ return (TODEG (ecliptic_longitude)); /* Calculate geocentric rectangular equatorial co-ordinates. */ cos_obliquity_of_ecliptic = cos (obliquity_of_ecliptic); x1 = sin (ecliptic_longitude) * distance; xe = cos (ecliptic_longitude) * distance; ye = cos_obliquity_of_ecliptic * x1; /* Calculate the Sun's geocentric apparent right ascension angle. */ right_ascension = FIXANGLE (TODEG (my_atan2 (ye, xe))); if (coordinates->the_mode == 23) /* Return the Sun's geocentric apparent right ascension angle in hours plus fraction. */ return (DEG2HH (right_ascension)); x4 = meridian_transit_time; meridian_transit_time = FIXANGLE (right_ascension - local_sidereal_time); if (coordinates->the_mode == 32) /* Return the ``Equation of Time'' in hours plus fraction. */ return (DEG2HH (DEGS_PER_12_HOURS - meridian_transit_time)); if (iter_mt) { /* Calculate the meridian transit time (Sun's astronomical noon). */ mjd = mjd_0ut + DEG2DAY (meridian_transit_time); /* Exit iteration loop if the actually computed value is less than 1/1000.0 hours (== 3.6 seconds [0.015 degrees]) smaller the previously computed value. A ``next'' iteration loop would not change the result significantly -- the only change would be by the order of fractions of seconds. Well, such a ``huge :-)'' epsilon value as well as a smaller epsilon value can be really critical if the iterated time is very near midnight, but what's perfect? */ if (abs (abs (meridian_transit_time) - abs (x4)) > 0.015) goto LABEL_sun_iter_mt; the_time = meridian_transit_time; break; } sin_obliquity_of_ecliptic = sin (obliquity_of_ecliptic); ze = sin_obliquity_of_ecliptic * x1; /* Calculate the Sun's geocentric apparent declination angle. */ declination = asin (ze / distance); if (coordinates->the_mode == 21) /* Return the Sun's geocentric apparent declination angle in degrees plus fraction. */ return (TODEG (declination)); sin_latitude = sin (latitude); cos_latitude = cos (latitude); if ((coordinates->the_mode >= 10) && (coordinates->the_mode <= 28)) { /* Calculate the local sidereal time of moment. */ local_sidereal_time = FIXANGLE (local_sidereal_time + DAY2DEG (time_offset - MM2DAY (tz_offset))); switch (coordinates->the_mode) { case 19: case 20: x1 = TORAD (FIXANGLE (local_sidereal_time - right_ascension)); if (coordinates->the_mode == 19) /* Return the geocentric apparent height of the Sun's center under or above the imaginary geocentric horizon (elevation angle) in degrees plus fraction. */ return (TODEG (asin (sin_latitude * sin (declination) + cos_latitude * cos (declination) * cos (x1)))); /* Return the Sun's geocentric apparent azimuth angle in degrees plus fraction. */ return (FIXANGLE (TODEG (my_atan2 (sin (x1), sin_latitude * cos (x1) - cos_latitude * tan (declination)) + MY_PI))); case 28: /* Return the local sidereal time of moment in hours plus fraction. */ return (DEG2HH (local_sidereal_time)); default: /* Calculate topocentric rectangular equatorial co-ordinates. */ x4 = gd_latitude2gc_latitude (latitude, (coordinates-> meters_above_sea_level > 0) ? coordinates-> meters_above_sea_level : 0, &x3) / EQUATOR_EARTH_RADIUS; x4 /= (distance * EARTH_RADII_PER_AU); x1 = cos (x3) * x4; x2 = TORAD (local_sidereal_time); xe -= (cos (x2) * x1); ye -= (sin (x2) * x1); ze -= (sin (x3) * x4); } /* Calculate the topocentric Sun/Earth distance in astronomical units plus fraction. */ distance = sqrt (xe * xe + ye * ye + ze * ze); switch (coordinates->the_mode) { case 15: /* Return the topocentric Sun/Earth distance in astronomical units plus fraction. */ return (distance); case 16: /* Return the Sun's topocentric apparent horizontal parallax in degrees plus fraction. */ return (SS2DEG (8.794) * distance); case 17: /* Return the Sun's topocentric apparent semidiameter in degrees plus fraction. */ return (SS2DEG (959.63) * distance); default: ; /* Void, nothing to do! */ } /* Calculate the topocentric right ascension angle, uncorrected for atmospheric refraction. */ right_ascension = FIXANGLE (TODEG (my_atan2 (ye, xe))); /* Calculate the topocentric declination angle, uncorrected for atmospheric refraction. */ declination = asin (ze / distance); if (coordinates->the_mode == 13) /* Return the Sun's topocentric apparent ecliptic longitude in degrees plus fraction. */ return (FIXANGLE (TODEG (my_atan2 (cos_obliquity_of_ecliptic * sin (TORAD (right_ascension)) + sin_obliquity_of_ecliptic * tan (declination), cos (TORAD (right_ascension)))))); /* Calculate the topocentric apparent height of the Sun's center under or above the sea-level horizon (elevation angle), corrected for atmospheric refraction. */ x1 = TORAD (FIXANGLE (local_sidereal_time - right_ascension)); x3 = cos (x1); x2 = asin (sin_latitude * sin (declination) + cos_latitude * cos (declination) * x3); /* Calculate the atmospheric refraction for correcting the Sun's topocentric true elevation angle to the Sun's topocentric apparent elevation angle. */ x4 = atmospheric_refraction (x2, atm_pressure, atm_temperature); if (coordinates->the_mode == 18) /* Return the atmospheric refraction for correcting the Sun's topocentric true elevation angle to the Sun's topocentric apparent elevation angle in degrees plus fraction. */ return (TODEG (x4)); x2 += x4; if (x2 > MY_HALF_PI) x2 = MY_PI - x2; if (coordinates->the_mode == 10) /* Return the topocentric apparent height of the Sun's center under or above the sea-level horizon (elevation angle) in degrees plus fraction, corrected for atmospheric refraction. */ return (TODEG (x2)); /* Calculate the Sun's topocentric apparent azimuth angle in degrees plus fraction. */ x3 = FIXANGLE (TODEG (my_atan2 (sin (x1), sin_latitude * x3 - cos_latitude * tan (declination)) + MY_PI)); if (coordinates->the_mode == 11) return (x3); /* Reconvert the topocentric apparent azimuth angle and the topocentric apparent elevation angle to topocentric apparent right ascension angle and topocentric apparent declination angle. */ x3 = TORAD (x3); xe = cos (x2); ye = sin (x2); ze = cos (x3); x1 = xe * ze; x2 = -xe * sin (x3); x3 = cos_latitude * ye - sin_latitude * x1; if (coordinates->the_mode == 12) /* Return the Sun's topocentric apparent declination angle in degrees plus fraction. */ return (TODEG (asin (sin_latitude * ye + cos_latitude * x1))); /* Return the Sun's topocentric apparent right ascension angle in hours plus fraction. */ return (DEG2HH (FIXANGLE (local_sidereal_time - TODEG (my_atan2 (x2, x3))))); } /* Select the proper reference altitude according to the requested rise/set mode of the Sun. */ if (adjust_value != DEGS_PER_24_HOURS) switch (coordinates->the_mode) { case 52: case 53: x1 = adjust_value; break; case 3: case 5: /* Sun's upper limb based altitude. */ x1 = TORAD (adjust_value - (SS2DEG (959.63) * distance)); break; default: /* All other Sun's center based altitudes. */ x1 = TORAD (adjust_value); } else switch (coordinates->the_mode) { case 2: case 4: /* Sun's center based altitude (0.0 degree == 0.0 radians). */ x1 = 0.0; break; case 3: case 5: /* Sun's upper limb based altitude. */ x1 = TORAD (SS2DEG (-959.63) * distance); break; case 6: /* Civil twilight altitude (-6.0 degree == -0.104719755119659771 radians). */ x1 = -0.104719755119659771; break; case 7: /* Nautical twilight altitude (-12.0 degree == -0.209439510239319541 radians). */ x1 = -0.209439510239319541; break; case 8: /* Amateur astronomical twilight altitude (-15.0 degree == -0.261799387799149426 radians). */ x1 = -0.261799387799149426; break; case 9: /* Astronomical twilight altitude (-18.0 degree == -0.314159265358979312 radians). */ x1 = -0.314159265358979312; break; case 52: /* Shadow length at true horizon is twice the height of object. */ x1 = 2.0; break; case 53: /* Shadow length at true horizon is equal the height of object. */ x1 = 1.0; } switch (coordinates->the_mode) { case 52: case 53: x2 = latitude - declination; if (SGN (latitude) < 0) { declination = -declination; if (SGN (x2) < 0) x2 = -x2; } x2 = (sin (my_acot (x1 + tan (x2)) - geodetic_height) - abs (sin_latitude) * sin (declination)) / (abs (cos_latitude) * cos (declination)); break; case 4: case 5: /* Correct the true altitude giving the apparent altitude. */ if (adjust_value != DEGS_PER_24_HOURS || atm_pressure != DEFAULT_PRESSURE || atm_temperature != DEFAULT_TEMPERATURE) x2 = atmospheric_refraction (x1, atm_pressure, atm_temperature); else /* Standard refraction of 34arc_minutes/60 == 0.00989019909463453388 radians. */ x2 = 0.00989019909463453388; x1 -= x2; /* Fallthrough. */ default: x2 = (sin (x1 - geodetic_height) - sin_latitude * sin (declination)) / (cos_latitude * cos (declination)); } if (abs (x2) > 1.0) { if (n) { if (x2 > 0.0) /* No rise/set for the given date because the Sun is always below the queried altitude. */ return (2 * SPECIAL_VALUE); /* No rise/set for the given date because the Sun is always above the queried altitude. */ return (3 * SPECIAL_VALUE); } /* Try a next iteration step by using the Sun's meridian transit time. */ mjd = mjd_0ut + DEG2DAY (meridian_transit_time); n++; continue; } /* Calculate the Sun's rise/set time. */ x2 = TODEG (acos (x2)); x1 = the_time; if (event == RIse) the_time = meridian_transit_time - x2; else the_time = meridian_transit_time + x2; mjd = mjd_0ut + DEG2DAY (the_time); /* Exit iteration loop if the actually computed value is less than 1/1000.0 hours (== 3.6 seconds [0.015 degrees]) smaller the previously computed value. A ``next'' iteration loop would not change the result significantly -- the only change would be by the order of fractions of seconds. Well, such a ``huge :-)'' epsilon value as well as a smaller epsilon value can be really critical if the iterated time is very near midnight, but what's perfect? */ } while (abs (abs (the_time) - abs (x1)) > 0.015); /* Convert sun's UT/GMT-based rise/set/transit position to timezone-based position. */ the_time += HH2DEG (MM2HH (tz_offset)); if (!coordinates->the_mode) { /* Calculate the meridian anti-transit time (Sun's astronomical midnight). */ x1 = time_offset; coordinates->the_mode = 32; time_offset = DEG2DAY (the_time); x2 = sun_rise_set (event, is_limited, day, month, year, coordinates); if (the_time >= DEGS_PER_12_HOURS) the_time -= DEGS_PER_12_HOURS; else the_time += DEGS_PER_12_HOURS; time_offset = DEG2DAY (the_time); x3 = sun_rise_set (event, is_limited, day, month, year, coordinates); /* Calculation by using the ``Equation of Time'' is precise enough here in this low-precision function! */ the_time += HH2DEG (x2 - x3); coordinates->the_mode = 0; time_offset = x1; } if (is_limited && (the_time < 0.0 || the_time >= DEGS_PER_24_HOURS)) /* No rise/set of the Sun for the given date due to limitation to the given date, but on the day prior or after. Gcal ignores such an event because it would place a ``yesterday's'' or ``tomorrow's'' rise/set time to ``today's'' date, and not to a ``yesterday's'' or ``tomorrow's'' date as it would be the astronomical *TRUTH*! Gcal must behave like this as long as it is still unable to put more than a single rise/set time into output for each given special text in a resource file that enables such a rise/set time. */ return (SPECIAL_VALUE); /* Correct the calculated (position) data to circle range. */ while (the_time >= DEGS_PER_24_HOURS) the_time -= DEGS_PER_24_HOURS; while (the_time < 0.0) the_time += DEGS_PER_24_HOURS; /* Return the rise/set/transit times of the Sun in hours plus fraction. */ return (DEG2HH (the_time)); } double moon_rise_set (event, day, month, year, coordinates) const Aevent_enum event; int day; int month; int year; Coor_struct *coordinates; /*! Driver/wrapper function to calculate timezone-based (local time) rise/set times of the Moon correctly. See the `internal_moon_rise_set()' function for more details! */ { auto double the_time; register int tz_offset; /* Reduce the given timezone value to a single day. */ tz_offset = SGN (coordinates->time_zone_in_mins) * (abs (coordinates->time_zone_in_mins) % MINS_PER_DAY); /* Calculate a UTC/GMT-based rise/set time or other data. */ the_time = internal_moon_rise_set (event, day, month, year, coordinates); if (tz_offset && (coordinates->the_mode < 6)) { /* Convert the calculated UTC/GMT-based rise/set time to local time. */ if (the_time > SPECIAL_VALUE) { the_time += MM2HH (tz_offset); if (the_time < 0.0 || the_time >= HOURS_PER_DAY) { if (coordinates->time_zone_in_mins < 0) (void) next_date (&day, &month, &year); else (void) prev_date (&day, &month, &year); the_time = internal_moon_rise_set (event, day, month, year, coordinates); if (the_time <= SPECIAL_VALUE) return (the_time); the_time += MM2HH (tz_offset); if ((the_time >= 0.0) && (the_time < HOURS_PER_DAY)) return (SPECIAL_VALUE); /* Correct the calculated time to day range. */ while (the_time >= HOURS_PER_DAY) the_time -= HOURS_PER_DAY; while (the_time < 0.0) the_time += HOURS_PER_DAY; } } else if (the_time == SPECIAL_VALUE) { if (coordinates->time_zone_in_mins < 0) (void) next_date (&day, &month, &year); else (void) prev_date (&day, &month, &year); the_time = internal_moon_rise_set (event, day, month, year, coordinates); if (the_time > SPECIAL_VALUE) { the_time += MM2HH (tz_offset); if ((the_time > 0.0) && (the_time <= HOURS_PER_DAY)) return (SPECIAL_VALUE); /* Correct the calculated time to day range. */ while (the_time >= HOURS_PER_DAY) the_time -= HOURS_PER_DAY; while (the_time < 0.0) the_time += HOURS_PER_DAY; } } } return (the_time); } static double internal_moon_rise_set (event, day, month, year, coordinates) const Aevent_enum event; int day; int month; int year; Coor_struct *coordinates; /*! Returns the approximate UT/GMT-based rise time of a definite Moon altitude for the given date in hours plus fraction if EVENT is `RIse', otherwise the approximate UT/GMT-based set time of a definite Moon altitude for the given date in hours plus fraction, resp., SPECIAL_VALUE if the Moon does not rise/set on the given date, 2*SPECIAL_VALUE if the Moon is always below the queried altitude on the given date, or 3*SPECIAL_VALUE if the Moon is always above the queried altitude on the given date. If the global `adjust_value' variable is set within a range of -90...+90 degree, its value is respected as reference altitude for rise/set-based times and data instead of the pre-defined values otherwise used. If data is computed that refers to rise/set/transit times, and a rise/set/transit time does not occur on the given date, the ``error'' indicating return values are the same as before but converted to seconds per hour for distinction purposes. The longitude co-ordinates west of the zero meridian have a negative sign. The longitude co-ordinates east of the zero meridian have a positive sign. The latitude co-ordinates north of the equator have a positive sign. The latitude co-ordinates south of the equator have a negative sign. For negative numbers, all three of `*_deg', `*_min' and `*_sec' should be negative. For example, the ISO 6709 co-ordinate `-202233+1100010' (==+|-Latitude+|-Longitude) must be defined as `-20 -22 -33 +110 0 +10'. Define which data of the Moon must be computed via the member variable `the_mode'. Calculations for non-rise/set/transit based data are done for a line at a definite meridian expressed as a time value. This time value is given by the member variable `time_zone_in_mins' for the timezone that is respected at the given co-ordinate, and by the global `time_offset' variable, which serves as the displacement value that is added to midnight's time. If `time_offset' is set to zero, calculations are made for Universal Time (UT/GMT). If `time_offset' has a positive sign, UT/GMT calculations are made for meridians East of Greenwich, otherwise for meridians West of Greenwich. Here are all valid mode values and their description: 0 == This case is managed specially. Hour plus fraction when the Moon's center passes the meridian opposite the noon direction under or above the horizon near the lowermost culmination point (meridian anti-transit, it is Moon's midnight). 1 == This case is managed specially. Hour plus fraction when the Moon's center passes the meridian opposite the midnight direction under or above the horizon near the uppermost culmination point (meridian transit, it is Moon's noon). 2 == approximately 54...61arc_minutes/60 ~=> +0.9000...+1.0163~ degrees. Hour plus fraction when the center of Moon's disk touches the horizon, uncorrected for atmospheric refraction (mathematical horizon). 3 == approximately 39...44arc_minutes/60 ~=> +0.6500...+0.7333~ degrees. Hour plus fraction when the Moon's upper limb touches the horizon, uncorrected for atmospheric refraction (mathematical horizon). 4 == approximately 20...27arc_minutes/60 ~=> +0.333~...+0.45000 degrees. Hour plus fraction when the center of Moon's disk touches the horizon, corrected for atmospheric refraction. 5 == approximately 5...10arc_minutes/60 ~=> +0.083~...+0.1666~ degrees. Hour plus fraction when the Moon's upper limb touches the horizon, corrected for atmospheric refraction (standard rise/set). 6 == This case is managed specially. The Moon's topocentric apparent horizontal parallax in degrees plus fraction that appears at midnight on the given date. 7 == This case is managed specially. The Moon's topocentric apparent semidiameter in degrees plus fraction that appears at midnight on the given date. 8 == This case is managed specially. The Moon's topocentric apparent brightness in magnitude units plus fraction that appears at midnight on the given date. 9 == This case is managed specially. The topocentric apparent phase angle of the Moon in range +1.0...0.0 that appears at midnight on the given date. 10 == This case is managed specially. The topocentric apparent height of the Moon's center under or above the sea-level horizon (elevation angle) in degrees plus fraction that appears at midnight on the given date, corrected for atmospheric refraction. 11 == This case is managed specially. The Moon's topocentric apparent azimuth angle in degrees plus fraction that appears at midnight on the given date. 12 == This case is managed specially. The Moon's topocentric apparent declination angle in degrees plus fraction that appears at midnight on the given date, corrected for atmospheric refraction. 13 == This case is managed specially. The Moon's topocentric apparent ecliptic longitude in degrees plus fraction that appears at midnight on the given date. 14 == This case is managed specially. The Moon's topocentric apparent ecliptic latitude in degrees plus fraction that appears at midnight on the given date. 15 == This case is managed specially. The Moon's topocentric apparent right ascension angle in hours plus fraction that appears at midnight on the given date, corrected for atmospheric refraction. 16 == This case is managed specially. The topocentric Moon/Earth distance in Earth equator radii plus fraction that appears at midnight on the given date. 17 == This case is managed specially. The topocentric Sun/Moon elongation in degrees plus fraction that appears at midnight on the given date. 18 == This case is managed specially. The atmospheric refraction which is calculated for correcting the Moon's topocentric true elevation angle to the Moon's topocentric apparent elevation angle in degrees plus fraction that appears at midnight on the given date. 19 == This case is managed specially. The Moon's geocentric apparent horizontal parallax in degrees plus fraction that appears at midnight on the given date. 20 == This case is managed specially. The Moon's geocentric apparent semidiameter in degrees plus fraction that appears at midnight on the given date. 21 == This case is managed specially. The Moon's geocentric apparent brightness in magnitude units plus fraction that appears at midnight on the given date. 22 == This case is managed specially. The geocentric apparent phase angle of the Moon in range +1.0...0.0 under or above the imaginary geocentric horizon that appears at midnight on the given date. 23 == This case is managed specially. The geocentric apparent height of the Moon's center under or above the imaginary geocentric horizon (elevation angle) in degrees plus fraction that appears at midnight on the given date. 24 == This case is managed specially. The Moon's geocentric apparent azimuth angle in degrees plus fraction that appears at midnight on the given date. 25 == This case is managed specially. The Moon's geocentric apparent declination angle in degrees plus fraction that appears at midnight on the given date. 26 == This case is managed specially. The Moon's geocentric apparent ecliptic longitude in degrees plus fraction that appears at midnight on the given date. 27 == This case is managed specially. The Moon's geocentric apparent ecliptic latitude in degrees plus fraction that appears at midnight on the given date. 28 == This case is managed specially. The Moon's geocentric apparent right ascension angle in hours plus fraction that appears at midnight on the given date. 29 == This case is managed specially. The geocentric Moon/Earth distance in Earth equator radii plus fraction that appears at midnight on the given date. 30 == This case is managed specially. The geocentric Sun/Moon elongation in degrees plus fraction that appears at midnight on the given date. 31 == This case is managed specially. The approximate ``Delta-T'' in seconds plus fraction, which is the difference between Terrestrial Dynamical Time, TDT (formerly called Ephemeris Time, ET), and Universal Time, UT, so `Delta_T = TDT - UT', that appears at midnight on the given date. 32 == This case is managed specially. The local sidereal time in hours plus fraction that appears at midnight on the given date. 33 == This case is managed specially. The globally given time offset value in hours plus fraction. 34 == This case is managed specially. The local ``Julian Date'' in days plus fraction that appears at midnight on the given date. 35 == This case is managed specially. The approximate local ``Julian Ephemeris Date'' in days plus fraction that appears at midnight on the given date. 36 == This case is managed specially. The difference between the Moon's and the Sun's topocentric apparent elevation angles in degrees plus fraction that appears at midnight on the given date. 37 == This case is managed specially. The difference between the Moon's and the Sun's topocentric apparent azimuth angles in degrees plus fraction that appears at midnight on the given date. 38 == This case is managed specially. The difference between the Moon's and the Sun's geocentric apparent elevation angles in degrees plus fraction that appears at midnight on the given date. 39 == This case is managed specially. The difference between the Moon's and the Sun's geocentric apparent azimuth angles in degrees plus fraction that appears at midnight on the given date. 40 == This case is managed specially. The difference between the Moon's and the Sun's topocentric apparent elevation angles in degrees plus fraction that appears at Moon's standard rise/set time. 41 == This case is managed specially. The difference between the Moon's and the Sun's topocentric apparent azimuth angles in degrees plus fraction that appears at Moon's standard rise/set time. 42 == This case is managed specially. The difference between the Moon's and the Sun's geocentric apparent elevation angles in degrees plus fraction that appears at Moon's standard rise/set time. 43 == This case is managed specially. The difference between the Moon's and the Sun's geocentric apparent azimuth angles in degrees plus fraction that appears at Moon's standard rise/set time. 44 == This case is managed specially. The difference between the Moon's and the Sun's meridian anti-transit time in hours plus fraction that appears at Moon's meridian anti-transit time. 45 == This case is managed specially. The difference between the Moon's and the Sun's meridian transit time in hours plus fraction that appears at Moon's meridian transit time. 46 == This case is managed specially. The difference between the Moon's and the Sun's standard rise/set time in hours plus fraction that appears at Moon's standard rise/set time. 47 == This case is managed specially. The Moon's topocentric apparent elevation angle (midnight height) in degrees plus fraction that appears when the Moon's center anti-transits the meridian under or above the sea-level horizon, corrected for atmospheric refraction. 48 == This case is managed specially. The topocentric apparent phase angle (Moon's midnight phase) in range +1.0...0.0 that appears when the Moon's center anti-transits the meridian under or above the sea-level horizon. 49 == This case is managed specially. The Moon's topocentric apparent elevation angle (noon height) in degrees plus fraction that appears when the Moon's center transits the meridian under or above the sea-level horizon, corrected for atmospheric refraction. 50 == This case is managed specially. The topocentric apparent phase angle (Moon's noon phase) in range +1.0...0.0 that appears when the Moon's center transits the meridian under or above the sea-level horizon. 51 == This case is managed specially. The Moon's topocentric apparent elevation angle under or above the true horizon (the given height at the location) in degrees plus fraction that appears at Moon's standard rise/set time, corrected for atmospheric refraction. 52 == This case is managed specially. The Moon's topocentric apparent azimuth angle in degrees plus fraction that appears at Moon's standard rise/set time. 53 == This case is managed specially. The Moon's topocentric apparent phase angle in range +1.0...0.0 that appears at Moon's standard rise/set time. 54 == This case is managed specially. The Moon's geocentric apparent elevation angle (midnight height) in degrees plus fraction that appears when the Moon's center anti-transits the meridian under or above the imaginary geocentric horizon. 55 == This case is managed specially. The geocentric apparent phase angle (Moon's midnight phase) in range +1.0...0.0 that appears when the Moon's center anti-transits the meridian under or above the imaginary geocentric horizon. 56 == This case is managed specially. The Moon's geocentric apparent elevation angle (noon height) in degrees plus fraction that appears when the Moon's center transits the meridian under or above the imaginary geocentric horizon. 57 == This case is managed specially. The geocentric apparent phase angle (Moon's noon phase) in range +1.0...0.0 that appears when the Moon's center transits the meridian under or above the imaginary geocentric horizon. 58 == This case is managed specially. The Moon's geocentric apparent elevation angle under or above the true horizon (the given height at the location) in degrees plus fraction that appears at Moon's standard rise/set time. 59 == This case is managed specially. The Moon's geocentric apparent azimuth angle in degrees plus fraction that appears at Moon's standard rise/set time. 60 == This case is managed specially. The Moon's geocentric apparent phase angle in range +1.0...0.0 that appears at Moon's standard rise/set time. *** CAREFUL *** Keep in mind that all values computed here are approximations only, based on low-precision formula terms; and some values are computed recursively! *** CAREFUL *** It can happen that this function misses A SECOND rise/set time if the Moon rises/sets more than once during a single day at some dates at high latitudes; locations that are within --or close to, if you calculate the rise/set times for reference altitudes other than the standard ones-- the lunar Arctic Circle. *** CAREFUL *** For latitudes that are within the lunar Arctic Circle or nearby (depending on the reference altitude that is used to calculate the rise/set times), it occasionally can happen that this function simply returns SPECIAL_VALUE instead of the --more the astronomically ``truth'' reflecting-- [2|3]*SPECIAL_VALUE value when the Moon does not rise/set on the given date if there is no merdian transit of the Moon on the given date! *** CAREFUL *** State `meters_above_sea_level' if you know them for the co-ordinate, otherwise 0. Specify `time_zone_in_mins' in +/- minutes MMM the co-ordinate is before/behind UT/GMT, so that the calculated UT/GMT-based rise/set times can be properly converted to local time times. For example, if a co-ordinates timezone is `GMT-2' (==CEST), use `+120'. References: * "Practical Astronomy with your Calculator", Peter Duffet-Smith, 3rd edition. Cambridge University Press 1988, ISBN 0-521-35699-7. * "Astronomical Formulae for Calculators", Jean Meeus, 4th ed, Willmann-Bell 1988, ISBN 0-943396-22-0. - Geocentric apparent ecliptic longitude claimed to 10". - Geocentric apparent ecliptic latitude claimed to 3". - Horizontal apparent parallax claimed to 0.2". - Positions referred to mean equinox of date but nutation correction for geocentric apparent ecliptic longitude. * "Astronomical Algorithms", Jean Meeus, 1st ed, Willmann-Bell 1991, ISBN 0-943396-35-2. * The WWW documents "How to compute planetary positions" and "How to compute rise/set times and altitude above horizon" by Paul Schlyter, or . Btw., Keith Burnett publishes a lot of diverse --good quality-- astronomical sources and links at . */ { auto double x1 = 0.0; auto double x2; auto double x3 = 0.0; auto double x4; auto double longitude; auto double latitude; auto double sin_latitude; auto double cos_latitude; auto double jc; auto double mjd1; auto double mjd1_0ut; auto double mjd2; auto double mjd2_0ut; auto double local_sidereal_time; auto double obliquity_of_ecliptic; auto double sin_obliquity_of_ecliptic; auto double cos_obliquity_of_ecliptic; auto double argument_of_perihelion; auto double sma_sun_mean_anomaly; auto double sma_2; auto double e_eccentricity; auto double e_e; auto double anomaly_of_eccentric; auto double divisor_term; auto double true_anomaly; auto double s_distance; auto double s_longitude; auto double m_longitude; auto double m_mean_longitude; auto double mma_moon_mean_anomaly; auto double mma_2; auto double mma_3; auto double mme_moon_mean_elongation; auto double mme_2; auto double mme_4; auto double m_latitude; auto double m_2_latitude; auto double m_3_latitude; auto double m_parallax; auto double m_semidiameter; auto double m_distance; auto double xg; auto double yg; auto double zg; auto double xe; auto double ye; auto double ze; auto double right_ascension; auto double declination; auto double meridian_transit_time = SECS_PER_DAY; auto double the_time = SECS_PER_DAY; auto double tt = SECS_PER_DAY; auto double geodetic_height = 0.0; register int i = 0; register int j = 0; register int n = 0; register int tz_offset; register int save_the_mode; auto Bool ok = FALSE; auto Bool is_adjusted = FALSE; auto Bool iter_mt = FALSE; /* Reduce the given timezone value in minutes to a single day. */ tz_offset = (int) (SGN (coordinates->time_zone_in_mins) * (abs (coordinates->time_zone_in_mins) % MINS_PER_DAY)); x2 = DAY2HH (time_offset); x4 = ((int) DAY2MM (time_offset)) % MINS_PER_HOUR; switch (coordinates->the_mode) { case 0: /* Calculate the meridian anti-transit time (Moon's astronomical midnight). */ coordinates->the_mode = 1; x1 = internal_moon_rise_set (event, day, month, year, coordinates); (void) next_date (&day, &month, &year); x2 = internal_moon_rise_set (event, day, month, year, coordinates); the_time = x1 + ((x2 - x1) + HOURS_PER_DAY) * 0.5; (void) prev_date (&day, &month, &year); if (the_time >= HOURS_PER_DAY || x1 == SPECIAL_VALUE || x2 == SPECIAL_VALUE) { if (x1 == SPECIAL_VALUE) x1 = x2 + HOURS_PER_DAY; (void) prev_date (&day, &month, &year); x2 = internal_moon_rise_set (event, day, month, year, coordinates); the_time = x2 + ((x1 - x2) + HOURS_PER_DAY) * 0.5; if (the_time < HOURS_PER_DAY) the_time = SPECIAL_VALUE; else { the_time -= HOURS_PER_DAY; (void) next_date (&day, &month, &year); } } if (the_time != SPECIAL_VALUE) { x1 = time_offset; coordinates->the_mode = 24; n = 0; e_e = MM2DAY (tz_offset); /* Start binary-search with margins set to +/- 2 minutes around the estimated value previously calculated. */ x3 = HH2DAY (the_time); x4 = HHMM2DAY (0, 2); x2 = x3 - x4; x3 += x4; x4 = (x3 + x2) * 0.5; LOOP { time_offset = x4 + e_e; the_time = internal_moon_rise_set (event, day, month, year, coordinates); the_time = FIXANGLE (the_time + DEGS_PER_06_HOURS); if (the_time > DEGS_PER_12_HOURS) the_time = -(the_time - DEGS_PER_24_HOURS); /* Exit interpolation loop if the actually computed value is less than 0.0001 degrees smaller the previously computed value. A ``next'' interpolation step would not change the result significantly -- the only change would be by the order of small fractions of seconds. */ if (abs (DEGS_PER_06_HOURS - the_time) > 0.0001) { /* Yes, perform next interpolation step with adjusted margins. */ if (the_time > DEGS_PER_06_HOURS) x3 = x4; else x2 = x4; x4 = (x3 + x2) * 0.5; } else /* No, the interpolation result is precise enough now. */ break; /* Avoid neverending loop if interpolation divergence is detected. */ if (++n >= 100) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 1L, "internal_moon_rise_set():interpolation<", n); } the_time = DAY2HH (x4); time_offset = x1; } coordinates->the_mode = 0; return (the_time); case 31: /* Return ``Delta-T'' in seconds plus fraction. */ return (delta_t (day, month, year, (int) x2, (int) x4)); case 33: /* Return the globally given time offset value in hours plus fraction. */ return (DAY2HH (time_offset)); case 35: /* Return the local ``Julian Ephemeris Date'' in days plus fraction. */ x1 = SS2DAY (delta_t (day, month, year, (int) x2, (int) x4)); /* Fallthrough. */ case 34: /* Return the local ``Julian Date'' in days plus fraction. */ return (date2num (day, month, year) + (MIN_BCE_TO_1_CE - 1.5) + x1 + time_offset); case 36: case 37: case 38: case 39: save_the_mode = coordinates->the_mode; switch (save_the_mode) { case 36: /* Calculate the Moon's topocentric apparent elevation angle under or above the sea-level horizon in degrees plus fraction, corrected for atmospheric refraction. */ coordinates->the_mode = 10; break; case 37: /* Calculate the Moon's topocentric apparent azimuth angle in degrees plus fraction. */ coordinates->the_mode = 11; break; case 38: /* Calculate the Moon's geocentric apparent elevation angle under or above the imaginary geocentric horizon in degrees plus fraction. */ coordinates->the_mode = 23; break; default: /* Calculate the Moon's geocentric apparent azimuth angle in degrees plus fraction. */ coordinates->the_mode = 24; break; } the_time = internal_moon_rise_set (event, day, month, year, coordinates); switch (save_the_mode) { case 36: case 38: if (save_the_mode == 36) /* Calculate the difference between the Moon's and the Sun's topocentric apparent elevation angles in degrees plus fraction that appears at midnight on the given date. */ coordinates->the_mode = 10; else /* Calculate the difference between the Moon's and the Sun's geocentric apparent elevation angles in degrees plus fraction that appears at midnight on the given date. */ coordinates->the_mode = 19; the_time -= sun_rise_set (event, FALSE, day, month, year, coordinates); break; default: if (save_the_mode == 37) /* Calculate the difference between the Moon's and the Sun's topocentric apparent azimuth angles in degrees plus fraction that appears at midnight on the given date. */ coordinates->the_mode = 11; else /* Calculate the difference between the Moon's and the Sun's geocentric apparent azimuth angles in degrees plus fraction that appears at midnight on the given date. */ coordinates->the_mode = 20; x4 = the_time - sun_rise_set (event, FALSE, day, month, year, coordinates); /* Reduce the resulting angle to -180.0...+180.0 degrees. */ if (abs (x4) <= DEGS_PER_12_HOURS) the_time = x4; else if (x4 > DEGS_PER_12_HOURS) the_time = -DEGS_PER_24_HOURS + x4; else the_time = DEGS_PER_24_HOURS + x4; } coordinates->the_mode = save_the_mode; return (the_time); case 44: case 45: case 46: case 47: case 48: case 49: case 50: case 54: case 55: case 56: case 57: x1 = time_offset; save_the_mode = coordinates->the_mode; switch (save_the_mode) { case 46: /* Perform calculations for Moon's standard rise/set time. */ coordinates->the_mode = 5; break; case 44: case 47: case 48: case 54: case 55: /* Perform calculations for Moon's astronomical midnight. */ coordinates->the_mode = 0; break; default: /* Perform calculations for Moon's astronomical noon. */ coordinates->the_mode = 1; } time_offset = moon_rise_set (event, day, month, year, coordinates); if (time_offset > SPECIAL_VALUE) { time_offset = HH2DAY (time_offset); if (save_the_mode <= 45) { if (save_the_mode == 44) /* Calculate the difference between the Moon's and the Sun's meridian anti-transit time in hours plus fraction that appears at Moon's meridian anti-transit time. */ coordinates->the_mode = 0; else /* Calculate the difference between the Moon's and the Sun's meridian transit time in hours plus fraction that appears at Moon's meridian transit time. */ coordinates->the_mode = 1; the_time = sun_rise_set (event, FALSE, day, month, year, coordinates); if (the_time > SPECIAL_VALUE) the_time = DAY2HH (time_offset) - the_time; else the_time = HH2SS (the_time); } else if (save_the_mode == 46) { /* Calculate the difference between the Moon's and the Sun's standard rise/set time in hours plus fraction that appears at Moon's standard rise/set time. */ coordinates->the_mode = 5; the_time = sun_rise_set (event, FALSE, day, month, year, coordinates); if (the_time > SPECIAL_VALUE) the_time = DAY2HH (time_offset) - the_time; else the_time = HH2SS (the_time); } else { switch (save_the_mode) { case 47: case 49: /* Calculate the Moon's topocentric apparent elevation angle under or above the sea-level horizon in degrees plus fraction, corrected for atmospheric refraction. */ coordinates->the_mode = 10; break; case 48: case 50: /* Calculate the topocentric apparent phase angle in range +1.0...0.0 under or above the sea-level horizon. */ coordinates->the_mode = 9; break; case 54: case 56: /* Calculate the Moon's geocentric apparent elevation angle under or above the sea-level horizon in degrees plus fraction. */ coordinates->the_mode = 23; break; default: /* Calculate the geocentric apparent phase angle in range +1.0...0.0 under or above the imaginary geocentric horizon. */ coordinates->the_mode = 22; } the_time = moon_rise_set (event, day, month, year, coordinates); } } else the_time = HH2SS (time_offset); coordinates->the_mode = save_the_mode; time_offset = x1; return (the_time); case 40: case 41: case 42: case 43: case 51: case 52: case 53: case 58: case 59: case 60: x1 = time_offset; save_the_mode = coordinates->the_mode; coordinates->the_mode = 5; time_offset = moon_rise_set (event, day, month, year, coordinates); if (time_offset > SPECIAL_VALUE) { time_offset = HH2DAY (time_offset); switch (save_the_mode) { case 40: case 51: /* Calculate the Moon's topocentric apparent elevation angle under or above the true horizon in degrees plus fraction that appears at Moon's standard rise/set time, corrected for atmospheric refraction. */ coordinates->the_mode = 10; break; case 41: case 52: /* Calculate the Moon's topocentric apparent azimuth angle in degrees plus fraction that appears at Moon's standard rise/set time. */ coordinates->the_mode = 11; break; case 53: /* Calculate the topocentric apparent phase angle of the Moon in range +1.0...0.0 that appears at Moon's standard rise/set time. */ coordinates->the_mode = 9; break; case 42: case 58: /* Calculate the Moon's geocentric apparent elevation angle under or above the true horizon in degrees plus fraction that appears at Moon's standard rise/set time. */ coordinates->the_mode = 23; break; case 43: case 59: /* Calculate the Moon's geocentric apparent azimuth angle in degrees plus fraction that appears at Moon's standard rise/set time. */ coordinates->the_mode = 24; break; default: /* Calculate the geocentric apparent phase angle of the Moon in range +1.0...0.0 that appears at Moon's standard rise/set time. */ coordinates->the_mode = 22; } the_time = moon_rise_set (event, day, month, year, coordinates); if ((save_the_mode >= 40) && (save_the_mode <= 43)) switch (save_the_mode) { case 40: case 42: if (save_the_mode == 40) /* Calculate the difference between the Moon's and the Sun's topocentric apparent elevation angles in degrees plus fraction that appears at Moon's standard rise/set time. */ coordinates->the_mode = 10; else /* Calculate the difference between the Moon's and the Sun's geocentric apparent elevation angles in degrees plus fraction that appears at Moon's standard rise/set time. */ coordinates->the_mode = 19; the_time -= sun_rise_set (event, FALSE, day, month, year, coordinates); break; default: if (save_the_mode == 41) /* Calculate the difference between the Moon's and the Sun's topocentric apparent azimuth angles in degrees plus fraction that appears at Moon's standard rise/set time. */ coordinates->the_mode = 11; else /* Calculate the difference between the Moon's and the Sun's geocentric apparent azimuth angles in degrees plus fraction that appears at Moon's standard rise/set time. */ coordinates->the_mode = 20; x4 = the_time - sun_rise_set (event, FALSE, day, month, year, coordinates); /* Reduce the resulting angle to -180.0...+180.0 degrees. */ if (abs (x4) <= DEGS_PER_12_HOURS) the_time = x4; else if (x4 > DEGS_PER_12_HOURS) the_time = -DEGS_PER_24_HOURS + x4; else the_time = DEGS_PER_24_HOURS + x4; } } else the_time = HH2SS (time_offset); coordinates->the_mode = save_the_mode; time_offset = x1; return (the_time); case 1: iter_mt = TRUE; /* Fallthrough. */ default: longitude = coordinates->lon_deg + MM2DEG (coordinates->lon_min) + SS2DEG (coordinates->lon_sec); } latitude = TORAD (coordinates->lat_deg + MM2DEG (coordinates->lat_min) + SS2DEG (coordinates->lat_sec)); if (coordinates->meters_above_sea_level > 0) geodetic_height = TORAD (0.0347 * sqrt (coordinates->meters_above_sea_level)); /* Convert UT date to TDT date. */ e_e = SS2DAY (delta_t (day, month, year, 0, 0)); x1 = date2num (day, month, year) + e_e; /* Epoch-1 starts 01-Jan-2000 12:00:00 UT. */ mjd1 = mjd1_0ut = x1 - 730122.5; /* Epoch-2 starts 31-Dec-1899 12:00:00 UT. */ mjd2 = mjd2_0ut = x1 - 693597.5; /* Respect timezone and time displacement value for Moon's non-rise/set/transit based modes. */ if ((coordinates->the_mode >= 6) && (coordinates->the_mode <= 39)) { x1 = time_offset - MM2DAY (tz_offset) + SS2DAY (delta_t (day, month, year, (int) x2, (int) x4)) - e_e; mjd1 += x1; mjd2 += x1; } while (!ok) { do { LABEL_moon_iter_mt: local_sidereal_time = FIXANGLE (100.46061837 + 0.9856472275 * mjd1 + longitude); /* Compute Sun data. */ jc = mjd1 / 36525.0; obliquity_of_ecliptic = TORAD (FIXANGLE (23.43929111 - (0.013004167 + (0.00000016389 - 0.0000005036 * jc) * jc) * jc)); argument_of_perihelion = TORAD (FIXANGLE (282.93735 + (0.71953 + (0.00046 * jc)) * jc)); sma_sun_mean_anomaly = TORAD (FIXANGLE (357.52910 + (35999.05030 - (0.0001559 + 0.00000048 * jc) * jc) * jc)); e_eccentricity = 0.016708617 - (0.000042037 + (0.0000001236 * jc)) * jc; x2 = sma_sun_mean_anomaly + e_eccentricity * sin (sma_sun_mean_anomaly) * (1.0 + e_eccentricity * cos (sma_sun_mean_anomaly)); do { x1 = x2; x2 = x1 - (x1 - e_eccentricity * sin (x1) - sma_sun_mean_anomaly) / (1.0 - e_eccentricity * cos (x1)); } while (abs (abs (x1) - abs (x2)) > 0.000001); anomaly_of_eccentric = x2; divisor_term = cos (anomaly_of_eccentric) - e_eccentricity; s_distance = sqrt (1.0 - e_eccentricity * e_eccentricity) * sin (anomaly_of_eccentric); true_anomaly = atan (s_distance / divisor_term); if (divisor_term < 0.0) true_anomaly += MY_PI; s_longitude = TORAD (FIXANGLE (TODEG (true_anomaly + argument_of_perihelion) + jc - 0.00569 - 0.00479 * sin (TORAD (124.90 - (1934.134 - (0.002063 * jc)) * jc)))); /* Compute Moon data. */ jc = mjd2 / 36525.0; /* Precompute some constant values first. */ x1 = sin (TORAD (FIXANGLE (51.2 + 20.2 * jc))); x2 = 0.0039640 * sin (TORAD (FIXANGLE (346.560 + (132.870 - (0.0091731 * jc)) * jc))); m_longitude = TORAD (FIXANGLE (259.183275 - (1934.142 - (0.002078 + 0.0000022 * jc) * jc) * jc)); /* Precompute more constant values. */ x3 = sin (m_longitude); x4 = TORAD (275.05 - 2.30 * jc); /* Compute orbit data. */ m_mean_longitude = FIXANGLE (270.434164 + (481267.8831 - (0.001133 - 0.0000019 * jc) * jc) * jc + 0.000233 * x1 + x2 + 0.001964 * x3); # if 0 /* That's Meeus' original term, but here we use the above computed one for speed-up purposes because the results do not differ very much. */ sma_sun_mean_anomaly = TORAD (FIXANGLE (358.475833 + (35999.0498 - (0.00015 + 0.0000033 * jc) * jc) * jc - 0.001778 * x1)); # endif mma_moon_mean_anomaly = TORAD (FIXANGLE (296.104608 + (477198.8491 + (0.009192 + 0.0000144 * jc) * jc) * jc + 0.000817 * x1 + x2 + 0.002541 * x3)); mme_moon_mean_elongation = TORAD (FIXANGLE (350.737486 + (445267.1142 - (0.001436 - 0.0000019 * jc) * jc) * jc + 0.002011 * x1 + x2 + 0.001964 * x3)); m_latitude = TORAD (FIXANGLE (11.250889 + (483202.0251 - (0.003211 + 0.0000003 * jc) * jc) * jc + x2 - 0.024691 * x3 - 0.004328 * sin (m_longitude + x4))); e_eccentricity = 1.0 - (0.002495 + (0.00000752 * jc)) * jc; /* Precompute more constant values. */ mme_2 = 2.0 * mme_moon_mean_elongation; mme_4 = 4.0 * mme_moon_mean_elongation; sma_2 = 2.0 * sma_sun_mean_anomaly; mma_2 = 2.0 * mma_moon_mean_anomaly; mma_3 = 3.0 * mma_moon_mean_anomaly; m_2_latitude = 2.0 * m_latitude; m_3_latitude = 3.0 * m_latitude; e_e = e_eccentricity * e_eccentricity; zg = m_latitude + mme_4; yg = mme_4 - m_latitude; xg = mme_2 - m_latitude; ze = mme_2 + m_latitude; ye = mme_4 - mma_moon_mean_anomaly; xe = mme_4 - sma_sun_mean_anomaly; x1 = mme_2 - sma_sun_mean_anomaly; x2 = mme_2 - mma_moon_mean_anomaly; /* Calculate the Moon's geocentric apparent horizontal parallax. */ m_parallax = 0.950724 + 0.051818 * cos (mma_moon_mean_anomaly) + 0.009531 * cos (x2) + 0.007843 * cos (mme_2) + 0.002824 * cos (mma_2) + 0.000857 * cos (mme_2 + mma_moon_mean_anomaly) + 0.000533 * cos (x1) * e_eccentricity + 0.000401 * cos (x1 - mma_moon_mean_anomaly) * e_eccentricity + 0.000320 * cos (mma_moon_mean_anomaly - sma_sun_mean_anomaly) * e_eccentricity - 0.000271 * cos (mme_moon_mean_elongation) - 0.000264 * cos (sma_sun_mean_anomaly + mma_moon_mean_anomaly) * e_eccentricity - 0.000198 * cos (m_2_latitude - mma_moon_mean_anomaly) + 0.000173 * cos (mma_3) + 0.000167 * cos (ye) - 0.000111 * cos (sma_sun_mean_anomaly) * e_eccentricity + 0.000103 * cos (mme_4 - mma_2) - 0.000084 * cos (mma_2 - mme_2) - 0.000083 * cos (mme_2 + sma_sun_mean_anomaly) * e_eccentricity + 0.000079 * cos (mme_2 + mma_2) + 0.000072 * cos (mme_4) + 0.000064 * cos (x1 + mma_moon_mean_anomaly) * e_eccentricity - 0.000063 * cos (mme_2 + sma_sun_mean_anomaly - mma_moon_mean_anomaly) * e_eccentricity + 0.000041 * cos (sma_sun_mean_anomaly + mme_moon_mean_elongation) * e_eccentricity + 0.000035 * cos (mma_2 - sma_sun_mean_anomaly) * e_eccentricity - 0.000033 * cos (mma_3 - mme_2) - 0.000030 * cos (mma_moon_mean_anomaly + mme_moon_mean_elongation) - 0.000029 * cos (m_2_latitude - mme_2) - 0.000029 * cos (mma_2 + sma_sun_mean_anomaly) * e_eccentricity + 0.000026 * cos (mme_2 - sma_2) * e_e - 0.000023 * cos (m_2_latitude - mme_2 + mma_moon_mean_anomaly) + 0.000019 * cos (xe - mma_moon_mean_anomaly) * e_eccentricity; if (coordinates->the_mode == 19) /* Return the Moon's geocentric apparent horizontal parallax in degrees plus fraction. */ return (m_parallax); m_parallax = TORAD (m_parallax); /* Calculate the geocentric Moon/Earth distance in Earth equator radii plus fraction. */ m_distance = 1.0 / sin (m_parallax); if (coordinates->the_mode == 29) return (m_distance); /* Calculate the Moon's geocentric apparent semidiameter in degrees plus fraction. */ m_semidiameter = SS2DEG (936.85 * 60.0 / m_distance); if (coordinates->the_mode == 20) return (m_semidiameter); /* Calculate the Moon's geocentric apparent ecliptic latitude. */ m_latitude = 5.128189 * sin (m_latitude) + 0.280606 * sin (mma_moon_mean_anomaly + m_latitude) + 0.277693 * sin (mma_moon_mean_anomaly - m_latitude) + 0.173238 * sin (xg) + 0.055413 * sin (ze - mma_moon_mean_anomaly) + 0.046272 * sin (xg - mma_moon_mean_anomaly) + 0.032573 * sin (ze) + 0.017198 * sin (mma_2 + m_latitude) + 0.009267 * sin (mme_2 + mma_moon_mean_anomaly - m_latitude) + 0.008823 * sin (mma_2 - m_latitude) + 0.008247 * sin (x1 - m_latitude) * e_eccentricity + 0.004323 * sin (xg - mma_2) + 0.004200 * sin (ze + mma_moon_mean_anomaly) + 0.003372 * sin (m_latitude - sma_sun_mean_anomaly - mme_2) * e_eccentricity + 0.002472 * sin (ze - sma_sun_mean_anomaly - mma_moon_mean_anomaly) * e_eccentricity + 0.002222 * sin (ze - sma_sun_mean_anomaly) * e_eccentricity + 0.002072 * sin (xg - sma_sun_mean_anomaly - mma_moon_mean_anomaly) * e_eccentricity + 0.001877 * sin (m_latitude - sma_sun_mean_anomaly + mma_moon_mean_anomaly) * e_eccentricity + 0.001828 * sin (yg - mma_moon_mean_anomaly) - 0.001803 * sin (m_latitude + sma_sun_mean_anomaly) * e_eccentricity - 0.001750 * sin (m_3_latitude) + 0.001570 * sin (mma_moon_mean_anomaly - sma_sun_mean_anomaly - m_latitude) * e_eccentricity - 0.001487 * sin (m_latitude + mme_moon_mean_elongation) - 0.001481 * sin (m_latitude + sma_sun_mean_anomaly + mma_moon_mean_anomaly) * e_eccentricity + 0.001417 * sin (m_latitude - sma_sun_mean_anomaly - mma_moon_mean_anomaly) * e_eccentricity + 0.001350 * sin (m_latitude - sma_sun_mean_anomaly) * e_eccentricity + 0.001330 * sin (m_latitude - mme_moon_mean_elongation) + 0.001106 * sin (m_latitude + mma_3) + 0.001020 * sin (yg) + 0.000833 * sin (zg - mma_moon_mean_anomaly) + 0.000781 * sin (mma_moon_mean_anomaly - m_3_latitude) + 0.000670 * sin (zg - mma_2) + 0.000606 * sin (mme_2 - m_3_latitude) + 0.000597 * sin (mme_2 + mma_2 - m_latitude) + 0.000492 * sin (mme_2 + mma_moon_mean_anomaly - sma_sun_mean_anomaly - m_latitude) * e_eccentricity + 0.000450 * sin (mma_2 - m_latitude - mme_2) + 0.000439 * sin (mma_3 - m_latitude) + 0.000423 * sin (m_latitude + mme_2 + mma_2) + 0.000422 * sin (xg - mma_3) - 0.000367 * sin (sma_sun_mean_anomaly + m_latitude + mme_2 - mma_moon_mean_anomaly) * e_eccentricity - 0.000353 * sin (sma_sun_mean_anomaly + m_latitude + mme_2) * e_eccentricity + 0.000331 * sin (zg) + 0.000317 * sin (ze - sma_sun_mean_anomaly + mma_moon_mean_anomaly) * e_eccentricity + 0.000306 * sin (mme_2 - sma_2 - m_latitude) * e_e - 0.000283 * sin (mma_moon_mean_anomaly + m_3_latitude) /* Nutation term. */ * (1.0 - (0.0004664 * cos (m_longitude)) - (0.0000754 * cos (m_longitude + x4))); m_latitude = TORAD (m_latitude); /* Correction term for far away dates past/prior the epoch. */ if (m_latitude < 0.0) m_latitude -= (jc * 0.0000111); else m_latitude += (jc * 0.0000111); if (coordinates->the_mode == 27) /* Return the Moon's geocentric apparent ecliptic latitude in degrees plus fraction. */ return (TODEG (m_latitude)); /* Calculate the Moon's geocentric apparent ecliptic longitude. */ m_longitude = m_mean_longitude + 6.288750 * sin (mma_moon_mean_anomaly) + 1.274018 * sin (x2) + 0.658309 * sin (mme_2) + 0.213616 * sin (mma_2) - 0.185596 * sin (sma_sun_mean_anomaly) * e_eccentricity - 0.114336 * sin (m_2_latitude) + 0.058793 * sin (mme_2 - mma_2) + 0.057212 * sin (x1 - mma_moon_mean_anomaly) * e_eccentricity + 0.053320 * sin (mme_2 + mma_moon_mean_anomaly) + 0.045874 * sin (x1) * e_eccentricity + 0.041024 * sin (mma_moon_mean_anomaly - sma_sun_mean_anomaly) * e_eccentricity - 0.034718 * sin (mme_moon_mean_elongation) - 0.030465 * sin (sma_sun_mean_anomaly + mma_moon_mean_anomaly) * e_eccentricity + 0.015326 * sin (mme_2 - m_2_latitude) - 0.012528 * sin (m_2_latitude + mma_moon_mean_anomaly) - 0.010980 * sin (m_2_latitude - mma_moon_mean_anomaly) + 0.010674 * sin (ye) + 0.010034 * sin (mma_3) + 0.008548 * sin (mme_4 - mma_2) - 0.007910 * sin (sma_sun_mean_anomaly - mma_moon_mean_anomaly + mme_2) * e_eccentricity - 0.006783 * sin (mme_2 + sma_sun_mean_anomaly) * e_eccentricity + 0.005162 * sin (mma_moon_mean_anomaly - mme_moon_mean_elongation) + 0.005000 * sin (sma_sun_mean_anomaly + mme_moon_mean_elongation) * e_eccentricity + 0.004049 * sin (mma_moon_mean_anomaly - sma_sun_mean_anomaly + mme_2) * e_eccentricity + 0.003996 * sin (mma_2 + mme_2) + 0.003862 * sin (mme_4) + 0.003665 * sin (mme_2 - mma_3) + 0.002695 * sin (mma_2 - sma_sun_mean_anomaly) * e_eccentricity + 0.002602 * sin (mma_moon_mean_anomaly - m_2_latitude - mme_2) + 0.002396 * sin (x1 - mma_2) * e_eccentricity - 0.002349 * sin (mma_moon_mean_anomaly + mme_moon_mean_elongation) + 0.002249 * sin (mme_2 - sma_2) * e_e - 0.002125 * sin (mma_2 + sma_sun_mean_anomaly) * e_eccentricity - 0.002079 * sin (sma_2) * e_e + 0.002059 * sin (x2 - sma_2) * e_e - 0.001773 * sin (mma_moon_mean_anomaly + mme_2 - m_2_latitude) - 0.001595 * sin (m_2_latitude + mme_2) + 0.001220 * sin (xe - mma_moon_mean_anomaly) * e_eccentricity - 0.001110 * sin (mma_2 + m_2_latitude) + 0.000892 * sin (mma_moon_mean_anomaly - 3.0 * mme_moon_mean_elongation) - 0.000811 * sin (sma_sun_mean_anomaly + mma_moon_mean_anomaly + mme_2) * e_eccentricity + 0.000761 * sin (xe - mma_2) * e_eccentricity + 0.000717 * sin (mma_moon_mean_anomaly - sma_2) * e_e + 0.000704 * sin (mma_moon_mean_anomaly - sma_2 - mme_2) * e_e + 0.000693 * sin (sma_sun_mean_anomaly - mma_2 + mme_2) * e_eccentricity + 0.000598 * sin (x1 - m_2_latitude) * e_eccentricity + 0.000550 * sin (mma_moon_mean_anomaly + mme_4) + 0.000538 * sin (4.0 * mma_moon_mean_anomaly) + 0.000521 * sin (xe) * e_eccentricity + 0.000486 * sin (mma_2 - mme_moon_mean_elongation) /* Nutation term. */ + SS2DEG (-17.2 * x3 - 1.3 * sin (2.0 * TORAD (FIXANGLE (279.6967 + (36000.7689 + (0.000303 * jc)) * jc)))) /* Correction term for far away dates past/prior the epoch. */ - 0.0005915 * jc * jc; m_longitude = FIXANGLE (m_longitude); if (coordinates->the_mode == 26) /* Return the Moon's geocentric apparent ecliptic longitude in degrees plus fraction. */ return (m_longitude); m_longitude = TORAD (m_longitude); /* Calculate the geocentric Sun/Moon elongation. */ x4 = acos (cos (s_longitude - m_longitude) * cos (m_latitude)); if (coordinates->the_mode == 30) /* Return the geocentric Sun/Moon elongation in degrees plus fraction. */ return (TODEG (x4)); /* Calculate geocentric rectangular ecliptic co-ordinates. */ x1 = cos (m_latitude) * m_distance; xg = cos (m_longitude) * x1; yg = sin (m_longitude) * x1; zg = sin (m_latitude) * m_distance; /* Calculate geocentric rectangular equatorial co-ordinates. */ sin_obliquity_of_ecliptic = sin (obliquity_of_ecliptic); cos_obliquity_of_ecliptic = cos (obliquity_of_ecliptic); xe = xg; ye = cos_obliquity_of_ecliptic * yg - sin_obliquity_of_ecliptic * zg; ze = sin_obliquity_of_ecliptic * yg + cos_obliquity_of_ecliptic * zg; /* Calculate the Moon's geocentric apparent right ascension angle. */ right_ascension = FIXANGLE (TODEG (my_atan2 (ye, xe))); if (coordinates->the_mode == 28) /* Return the Moon's geocentric apparent right ascension angle in hours plus fraction. */ return (DEG2HH (right_ascension)); /* Calculate the Moon's geocentric apparent declination angle. */ declination = asin (ze / m_distance); if (coordinates->the_mode == 25) /* Return the Moon's geocentric apparent declination angle in degrees plus fraction. */ return (TODEG (declination)); sin_latitude = sin (latitude); cos_latitude = cos (latitude); if (coordinates->the_mode >= 6) { /* Calculate the local sidereal time of moment. */ local_sidereal_time = FIXANGLE (local_sidereal_time + DAY2DEG (time_offset - MM2DAY (tz_offset))); switch (coordinates->the_mode) { case 21: case 22: x2 = MY_PI - x4; if (coordinates->the_mode == 22) /* Return the geocentric apparent phase angle of the Moon in range +1.0...0.0. */ return ((1.0 + cos (x2)) * 0.5); /* Calculate the Moon's geocentric apparent brightness in magnitude units plus fraction. */ x2 = TODEG (x2); s_distance = sqrt (divisor_term * divisor_term + s_distance * s_distance); return (-21.62 + 5.0 * log10 (s_distance * m_distance) + 0.026 * x2 + 0.000000004 * x2 * x2 * x2 * x2); case 23: case 24: x1 = TORAD (FIXANGLE (local_sidereal_time - right_ascension)); if (coordinates->the_mode == 23) /* Return the geocentric apparent height of the Moon's center under or above the imaginary geocentric horizon (elevation angle) in degrees plus fraction. */ return (TODEG (asin (sin_latitude * sin (declination) + cos_latitude * cos (declination) * cos (x1)))); /* Return the Moon's geocentric apparent azimuth angle in degrees plus fraction. */ return (FIXANGLE (TODEG (my_atan2 (sin (x1), sin_latitude * cos (x1) - cos_latitude * tan (declination)) + MY_PI))); case 32: /* Return the local sidereal time of moment in hours plus fraction. */ return (DEG2HH (local_sidereal_time)); default: /* Calculate topocentric rectangular equatorial co-ordinates. */ x4 = gd_latitude2gc_latitude (latitude, (coordinates-> meters_above_sea_level > 0) ? coordinates-> meters_above_sea_level : 0, &x3) / EQUATOR_EARTH_RADIUS; x1 = cos (x3) * x4; x2 = TORAD (local_sidereal_time); xe -= (cos (x2) * x1); ye -= (sin (x2) * x1); ze -= (sin (x3) * x4); } /* Calculate the topocentric Moon/Earth distance in Earth equator radii plus fraction. */ m_distance = sqrt (xe * xe + ye * ye + ze * ze); switch (coordinates->the_mode) { case 6: /* Return the Moon's topocentric apparent horizontal parallax in degrees plus fraction. */ return (TODEG (asin (1.0 / m_distance))); case 7: /* Return the Moon's topocentric apparent semidiameter in degrees plus fraction. */ return (SS2DEG (936.85 * 60.0 / m_distance)); case 16: /* Return the topocentric Moon/Earth distance in Earth equator radii plus fraction. */ return (m_distance); default: ; /* Void, nothing to do! */ } /* Calculate the topocentric right ascension angle, uncorrected for atmospheric refraction. */ right_ascension = FIXANGLE (TODEG (my_atan2 (ye, xe))); /* Calculate the topocentric declination angle, uncorrected for atmospheric refraction. */ declination = asin (ze / m_distance); switch (coordinates->the_mode) { case 8: case 9: case 13: case 14: case 17: /* Calculate the Moon's topocentric apparent ecliptic longitude. */ m_longitude = FIXANGLE (TODEG (my_atan2 (cos_obliquity_of_ecliptic * sin (TORAD (right_ascension)) + sin_obliquity_of_ecliptic * tan (declination), cos (TORAD (right_ascension))))); if (coordinates->the_mode == 13) /* Return the Moon's topocentric apparent ecliptic longitude in degrees plus fraction. */ return (m_longitude); /* Calculate the Moon's topocentric apparent ecliptic latitude. */ m_latitude = asin (cos_obliquity_of_ecliptic * sin (declination) - sin_obliquity_of_ecliptic * cos (declination) * sin (TORAD (right_ascension))); if (coordinates->the_mode == 14) /* Return the Moon's topocentric apparent ecliptic latitude in degrees plus fraction. */ return (TODEG (m_latitude)); /* Calculate the topocentric Sun/Moon elongation. */ save_the_mode = coordinates->the_mode; /* Get the Sun's topocentric apparent ecliptic longitude. */ coordinates->the_mode = 13; s_longitude = sun_rise_set (event, FALSE, day, month, year, coordinates); coordinates->the_mode = save_the_mode; x4 = acos (cos (TORAD (s_longitude - m_longitude)) * cos (m_latitude)); if (coordinates->the_mode == 17) /* Return the topocentric Sun/Moon elongation in degrees plus fraction. */ return (TODEG (x4)); x2 = MY_PI - x4; if (coordinates->the_mode == 9) /* Return the topocentric apparent phase angle of the Moon in range +1.0...0.0. */ return ((1.0 + cos (x2)) * 0.5); /* Calculate the Moon's topocentric apparent brightness in magnitude units plus fraction. */ x2 = TODEG (x2); save_the_mode = coordinates->the_mode; /* Get the Sun's topocentric distance. */ coordinates->the_mode = 15; s_distance = sun_rise_set (event, FALSE, day, month, year, coordinates); coordinates->the_mode = save_the_mode; return (-21.62 + 5.0 * log10 (s_distance * m_distance) + 0.026 * x2 + 0.000000004 * x2 * x2 * x2 * x2); default: ; /* Void, nothing to do! */ } /* Calculate the topocentric apparent height of the Moon's center under or above the sea-level horizon (elevation angle), corrected for atmospheric refraction. */ x1 = TORAD (FIXANGLE (local_sidereal_time - right_ascension)); x3 = cos (x1); x2 = asin (sin_latitude * sin (declination) + cos_latitude * cos (declination) * x3); /* Calculate the atmospheric refraction for correcting the Moon's topocentric true elevation angle to the Moon's topocentric apparent elevation angle. */ x4 = atmospheric_refraction (x2, atm_pressure, atm_temperature); if (coordinates->the_mode == 18) /* Return the atmospheric refraction for correcting the Moon's topocentric true elevation angle to the Moon's topocentric apparent elevation angle in degrees plus fraction. */ return (TODEG (x4)); x2 += x4; if (x2 > MY_HALF_PI) x2 = MY_PI - x2; if (coordinates->the_mode == 10) /* Return the topocentric apparent height of the Moon's center under or above the sea-level horizon (elevation angle) in degrees plus fraction, corrected for atmospheric refraction. */ return (TODEG (x2)); /* Calculate the Moon's topocentric apparent azimuth angle in degrees plus fraction. */ x3 = FIXANGLE (TODEG (my_atan2 (sin (x1), sin_latitude * x3 - cos_latitude * tan (declination)) + MY_PI)); if (coordinates->the_mode == 11) return (x3); /* Reconvert the topocentric apparent azimuth angle and the topocentric apparent elevation angle to topocentric apparent right ascension angle and topocentric apparent declination angle. */ x3 = TORAD (x3); xe = cos (x2); ye = sin (x2); ze = cos (x3); x1 = xe * ze; x2 = -xe * sin (x3); x3 = cos_latitude * ye - sin_latitude * x1; if (coordinates->the_mode == 12) /* Return the Moon's topocentric apparent declination angle in degrees plus fraction. */ return (TODEG (asin (sin_latitude * ye + cos_latitude * x1))); /* Return the Moon's topocentric apparent right ascension angle in hours plus fraction. */ return (DEG2HH (FIXANGLE (local_sidereal_time - TODEG (my_atan2 (x2, x3))))); } x4 = meridian_transit_time; meridian_transit_time = FIXANGLE (right_ascension - local_sidereal_time); if (iter_mt) { /* Calculate the meridian transit time (Moon's astronomical noon). */ if ((i > 3) && (abs (abs (meridian_transit_time) - abs (x4)) > DEGS_PER_12_HOURS)) return (SPECIAL_VALUE); i++; mjd1 = mjd1_0ut + DEG2DAY (meridian_transit_time); mjd2 = mjd2_0ut + DEG2DAY (meridian_transit_time); /* Exit iteration loop if the actually computed value is less than 1/1000.0 hours (== 3.6 seconds [0.015 degrees]) smaller the previously computed value. A ``next'' iteration loop would not change the result significantly -- the only change would be by the order of small fractions of seconds. Well, such a ``huge :-)'' epsilon value as well as a smaller epsilon value can be really critical if the iterated time is very near midnight, but what's perfect? */ if (abs (abs (meridian_transit_time) - abs (x4)) > 0.015) goto LABEL_moon_iter_mt; return (DEG2HH (FIXANGLE (meridian_transit_time))); } /* Select the proper reference altitude according to the requested rise/set mode of the Moon. */ switch (coordinates->the_mode) { case 2: case 4: /* Moon's center based altitude (0.0 degree == 0.0 radians). */ if (adjust_value != DEGS_PER_24_HOURS) x1 = TORAD (adjust_value); else x1 = 0.0; break; case 3: case 5: /* Moon's upper limb based altitude. */ if (adjust_value != DEGS_PER_24_HOURS) x1 = TORAD (adjust_value - m_semidiameter); else x1 = TORAD (-m_semidiameter); } switch (coordinates->the_mode) { case 4: case 5: /* Correct the true altitude giving the apparent altitude. */ if (adjust_value != DEGS_PER_24_HOURS || atm_pressure != DEFAULT_PRESSURE || atm_temperature != DEFAULT_TEMPERATURE) x2 = atmospheric_refraction (x1, atm_pressure, atm_temperature); else /* Standard refraction of 34arc_minutes/60 == 0.00989019909463453388 radians. */ x2 = 0.00989019909463453388; x1 -= x2; } x3 = (sin (x1 + m_parallax - geodetic_height) - sin_latitude * sin (declination)) / (cos_latitude * cos (declination)); if (abs (x3) > 1.0) { if (!n && (is_adjusted || the_time == SECS_PER_DAY)) tt = x3; if (n > 2) { if (the_time != SECS_PER_DAY) break; if (x3 > 0.0) /* No rise/set for the given date because the Moon is always below the queried altitude. */ return (2 * SPECIAL_VALUE); /* No rise/set for the given date because the Moon is always above the queried altitude. */ return (3 * SPECIAL_VALUE); } /* Try a next iteration step by using the Moon's meridian transit time. */ n++; x2 = DEG2DAY (meridian_transit_time); mjd1 = mjd1_0ut + x2; mjd2 = mjd2_0ut + x2; continue; } x2 = TODEG (acos (x3)); x1 = the_time; if (event == RIse) the_time = meridian_transit_time - x2; else the_time = meridian_transit_time + x2; if (x1 != SECS_PER_DAY) { if (event == RIse) { if ((x1 < 0.0) && (the_time >= 0.0)) { if (i > 2) { the_time = tt; tt = SECS_PER_DAY; break; } tt = x1; i++; } else if (!i && abs (abs (meridian_transit_time) - abs (x4)) > DEGS_PER_12_HOURS) { if (j > 2) /* No Moon rise for the given date. */ return (SPECIAL_VALUE); j++; } } else if ((x1 < DEGS_PER_24_HOURS) && (the_time >= DEGS_PER_24_HOURS)) { if (i > 2) { the_time = tt; tt = SECS_PER_DAY; break; } tt = the_time; i++; } else if (!i && abs (abs (meridian_transit_time) - abs (x4)) > DEGS_PER_12_HOURS) { if (j > 2) /* No Moon set for the given date. */ return (SPECIAL_VALUE); j++; } } mjd1 = mjd1_0ut + DEG2DAY (the_time); mjd2 = mjd2_0ut + DEG2DAY (the_time); /* Exit iteration loop if the actually computed value is less than 1/1000.0 hours (== 3.6 seconds [0.015 degrees]) smaller the previously computed value. A ``next'' iteration loop would not change the result significantly -- the only change would be by the order of small fractions of seconds. Well, such a ``huge :-)'' epsilon value as well as a smaller epsilon value can be really critical if the iterated time is very near midnight, but what's perfect? */ } while (abs (abs (the_time) - abs (x1)) > 0.015); /* And post-process the iterated rise/set/transit data of the Moon. */ if (event == RIse) { if (!is_adjusted && (the_time < 0.0)) { /* Try the day after the given date. */ mjd1_0ut++; mjd2_0ut++; if (n > 1) tt = SECS_PER_DAY; } else ok = TRUE; } else if (!is_adjusted && (the_time >= DEGS_PER_24_HOURS)) { /* Try the day prior the given date. */ mjd1_0ut--; mjd2_0ut--; if (n > 1) tt = SECS_PER_DAY; } else ok = TRUE; if (!ok) { if (n == 1 || tt == SECS_PER_DAY) { /* Restart the calculation for the day prior or after the given date. */ is_adjusted = TRUE; tt = the_time = SECS_PER_DAY; i = j = n = 0; } else if (n > 1) { if (tt > 1.0) return (2 * SPECIAL_VALUE); else if (tt < -1.0) return (3 * SPECIAL_VALUE); return (SPECIAL_VALUE); } else if (!n) return (SPECIAL_VALUE); } } /* Ok, all iteration-stuff done, so perform a final check whether the calculated rise/set/transit data of the Moon is valid for the given date! */ if (is_adjusted && (n != 1) && (tt != SECS_PER_DAY)) { if (n) { if (tt > 1.0) return (2 * SPECIAL_VALUE); else if (tt < -1.0) return (3 * SPECIAL_VALUE); } return (SPECIAL_VALUE); } if (!is_adjusted && (n > 1)) { if (x3 > 1.0) return (2 * SPECIAL_VALUE); else if (x3 < -1.0) return (3 * SPECIAL_VALUE); return (SPECIAL_VALUE); } /* Yes, the rise/set/transit data of the Moon is valid for the given date, so correct the calculated (position) data to circle range. */ while (the_time >= DEGS_PER_24_HOURS) the_time -= DEGS_PER_24_HOURS; while (the_time < 0.0) the_time += DEGS_PER_24_HOURS; return (DEG2HH (the_time)); } int moondisk (is_full_new, day, month, year, hour, min) Bool *is_full_new; int day; int month; int year; const int hour; const int min; /*! Calculates the approximate illuminated fraction of the Moon's disk for the given Julian/Gregorian date (range 00010101...99991231) and returns it represented by an integer value within the range of -100...0...+100, which has a negative sign in case the Moon wanes, otherwise the sign is positive. The New Moon phase is around the 0.0 value and the Full Moon phase is around the +/-100 value. The address of IS_FULL_NEW is set to TRUE in case the Moon is in the "Full" or in the "New" phase at that date, otherwise to FALSE. Calculations are made for a definite meridian expressed as a time value in HOUR and MIN. If HOUR and MIN are set to zero, calculations are made for Universal Time (UTC/GMT). If HOUR and MIN have a positive sign, UTC/GMT calculations are made for meridians East of Greenwich, otherwise for meridians West of Greenwich. For simplification and speed-up purposes, this function assumes the illumination change rate of the Moon's disk as the linear result as expressed by a quadratic sine curve, where the +50% value (the Moon's First Quarter) and the -50% value (the Moon's Last Quarter) are treated as the mid-points respective in between successive New and Full Moon phases. This modell does not match the true phenomenon very well, but it produces acceptable results. The maximum error is less than 15% absolute (about 7% relative) near curve regions where the absolute gradient of the curve is at maximum (the +|-50% value). */ { auto double new_moon; auto double full_moon; auto double len_lunation_half; auto double illuminated_fraction; auto Ulint lunation; auto Ulint mjd = date2num (day, month, year); *is_full_new = FALSE; if (mjd <= 13L) { lunation = 1L; new_moon = moonphase (MPHASE_NEW, FALSE, NULL, &lunation, &day, &month, &year, hour, min); /* The last Full Moon phase prior the Christian Era was on 29-Dec-0001 BCE, 14:55 UT, approximately. */ full_moon = -2.3784722; } else { lunation = 0L; new_moon = moonphase (MPHASE_NEW, FALSE, NULL, &lunation, &day, &month, &year, -hour, -min); lunation--; full_moon = moonphase (MPHASE_FUL, FALSE, NULL, &lunation, &day, &month, &year, -hour, -min); if (date2num (day, month, year) >= mjd) new_moon = moonphase (MPHASE_NEW, FALSE, NULL, &lunation, &day, &month, &year, -hour, -min); } len_lunation_half = abs (full_moon - new_moon); if (mjd > (Ulint) new_moon) len_lunation_half = (mjd - new_moon) / len_lunation_half; else len_lunation_half = (-len_lunation_half + (mjd - full_moon)) / len_lunation_half; illuminated_fraction = sin (len_lunation_half * MY_HALF_PI); illuminated_fraction *= illuminated_fraction; if (len_lunation_half < 0.0) illuminated_fraction = -illuminated_fraction; if (mjd == (Ulint) new_moon || mjd == (Ulint) full_moon) *is_full_new = TRUE; return ((int) ROUND (illuminated_fraction * 100.0)); } void draw_moon (age, lines, string) const int age; const int lines; char **string; /*! Creates a text graphics image of the Moon according to its `age', which is expressed as the illuminated fraction of the Moon's disk as a value within the range of -100...0...+100, which has a negative sign in case the Moon wanes, otherwise the sign is positive. Uses the delivered `&string' for storing this image (each line with a leading newline character represented by Gcal's RC_NL_CHAR=='~') and returns it. The caller has to guarantee that enough `&string' space is allocated, which means there must be two Bytes allocated minimum in this case, because this function increases the `&string' properly by reallocating it internally when used within Gcal. */ { register Uint slen = 0; register int i; register int j; register int k; register int end; auto double counter = (double) age; auto const double step = 2.0 / (double) lines; auto double squisher; auto double horizon; auto double terminator; static char buffer[80]; /* Proper if [MOONIMAGE_MIN]6<=lines<=30[MOONIMAGE_MAX] */ auto char *ptr_buffer; **string = '\0'; if (counter < 0.0) counter = -counter; if (age < 0) counter = (100.0 - (double) (((Uint) counter >> 1) + 50)) / 100.0; else counter /= 200.0; squisher = cos (counter * MY_TWO_PI); for (counter = 0.93; counter > -1.0; counter -= step) { sprintf (buffer, "%c", RC_NL_CHAR); strcat (*string, buffer); slen++; horizon = sqrt (1.0 - counter * counter); i = j = moon_charpos (horizon, lines + 6); for (ptr_buffer = buffer; i--;) *ptr_buffer++ = ' '; i = j; slen += (i + 1); buffer[i] = *MOONIMAGE_REDGE; buffer[i + 1] = '\0'; j = moon_charpos (-horizon, lines + 6); buffer[j] = *MOONIMAGE_LEDGE; terminator = horizon * squisher; if (abs (age) > 6) { k = moon_charpos (terminator, lines + 6); if (age > 0) { end = i; i = k; } else { i = j; end = k; } while (i <= end) buffer[i++] = *MOONIMAGE_BRIGHT; } if (slen + 1 >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); strcat (*string, buffer); } } #endif /* USE_RC */ gcal-4.1/src/gcal.h0000664000000000000000000000250112244130561011017 00000000000000#ifndef __GCAL_H # define __GCAL_H /*! * \file gcal.h * \brief Get and process the program options * and lauch the extended calendar program header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: gcal.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `gcal.c'. */ extern int main __P_ ((int argc, char *argv[])); extern int eval_longopt __P_ ((char *longopt, int *longopt_symbolic)); __END_DECLARATIONS #endif /* __GCAL_H */ gcal-4.1/src/tcal.h0000664000000000000000000000266412244130561011046 00000000000000#ifndef __TCAL_H # define __TCAL_H /*! * \file tcal.h * \brief Start `gcal' with date set ONE day ahead header file. */ /* * Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, * 2009, 2010, 2011, 2013 Free Software Foundation, Inc. * Copyright (c) 1995, 96, 1997, 2000 Thomas Esken * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: tcal.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * Program specific preprocessor statements. */ /*! Name of environment variable for accessing the Gcal program. */ # define ENV_VAR_GCALPROG "GCALPROG" /*! Default shift value; may be set to "0"..."9". */ # define SHIFT_VALUE_DEFAULT "1" /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS extern int main __P_ ((int argc, char *argv[])); __END_DECLARATIONS #endif /* __TCAL_H */ gcal-4.1/src/hd-data4.h0000664000000000000000000002613012244130561011503 00000000000000#ifndef __HD_DATA4_H # define __HD_DATA4_H /*! * \file hd-data4.h * \brief All other M-S countries data which is composed into the * eternal holiday list header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: hd-data4.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `hd-data4.c'. */ extern void ma_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mc_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void md_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mg_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mh_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mk_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ml_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mo_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mp_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mq_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ms_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mt_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mv_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void my_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mz_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void na_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void nc_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ne_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void nf_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ng_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ni_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void nm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void no_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void np_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void nr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void nu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void om_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void pa_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void pe_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void pf_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void pg_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ph_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void pk_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void pl_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void pm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void pn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void pr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void pw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void py_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void qa_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void re_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ro_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void rw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sa_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sb_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sc_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sd_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void se_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sg_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sh_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void si_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sj_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sk_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sl_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void so_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void st_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sv_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sy_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void sz_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); __END_DECLARATIONS #endif /* __HD_DATA4_H */ gcal-4.1/src/tty.c0000664000000000000000000012340012244130561010726 00000000000000/*! * \file tty.c * \brief Screen support functions and major output function. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include header files. */ #include "tailor.h" #if HAVE_CTYPE_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if USE_PAGER || USE_HLS # if defined(UNIX) && !defined(DJG) # if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS # include # if HAVE_SYS_IOCTL_H && !defined(TIOCGWINSZ) # include # endif # else /* !HAVE_TERMIOS_H || !HAVE_TERMIOS_FUNCS */ # if HAVE_TERMIO_H # include # else /* !HAVE_TERMIO_H */ # include # if HAVE_SYS_IOCTL_H && (defined(WIOCGETD) || defined(TIOCGWINSZ) || defined(TCGETA) || defined(TIOCGETP)) # include # endif # endif /* !HAVE_TERMIO_H */ # endif /* !HAVE_TERMIOS_H || !HAVE_TERMIOS_FUNCS */ /* * For the Unix PC (ATT 7300 & 3B1): (taken from less-278 by Mark Nudelman) * Since WIOCGETD is defined in sys/window.h, we can't use that to decide * whether to include sys/window.h. Use SIGPHONE from sys/signal.h instead. */ # ifndef TIOCGWINSZ # include # ifdef SIGPHONE # include # endif # endif # if HAVE_SYS_STREAM_H # include # endif # if HAVE_SYS_PTEM_H # include # endif # endif /* UNIX && !DJG */ # ifdef DJG # include # else /* !DJG */ # if defined(UNIX) || (defined(OS2) && defined(__GNUC__)) # if HAVE_TERMCAP_H && HAVE_TTYLIBS # if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS && defined(OS2) && defined(__GNUC__) # include # endif # include # endif /* HAVE_TERMCAP_H && HAVE_TTYLIBS */ # endif /* UNIX || (OS2 && __GNUC__) */ # endif /* !DJG */ #endif /* USE_PAGER || USE_HLS */ #include "common.h" #include "globals.h" #include "utils.h" #include "tty.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `tty.c'. */ #if defined(GCAL_TCAP) && USE_HLS static char *skip_leading_padding_info __P_ ((char *sequence_str)); #endif #if USE_HLS || USE_PAGER # ifdef GCAL_TCAP static Bool open_termcap __P_ ((void)); # if USE_HLS static void get_ospeed __P_ ((void)); static int outchar __P_ ((int ch)); static Bool get_termcap_hls __P_ ((Bool * hls1_set, Bool * hls2_set)); # endif /* USE_HLS */ # if USE_PAGER static Bool get_termcap_scr_attrib __P_ ((int *rows, int *cols)); # endif /* USE_PAGER */ # else /* !GCAL_TCAP */ # if defined(MSDOS) && USE_PAGER static Uchar peek_byte __P_ ((Uint segment, Uint offset)); # endif # endif /* GCAL_TCAP */ #endif /* USE_HLS || USE_PAGER */ static void get_hl_seq __P_ ((const char *sequence_str, Bool * hls1_set, Bool * hls2_set)); #if !HAVE_STRTOL static int sbyte2int __P_ ((const char *string, const int base)); #endif __END_DECLARATIONS /* * static variables definitions. */ #if USE_PAGER || USE_HLS # ifdef GCAL_TCAP /*! Module global Termcap buffer. */ static char tc_buf[TC_BUFLEN]; /*! Termcap access error occurred. */ static Bool tc_no_error = TRUE; # if USE_HLS /*! Module global file which is used by the `tputs()' function. */ static FILE *fp_outchar = (FILE *) NULL; /*! Stores whether padding is used or not. */ static Bool is_padding = FALSE; # endif # endif /* GCAL_TCAP */ # if USE_PAGER /*! Terminal has automatic margins. */ static Bool tty_am = TRUE; /*! Terminal ignores newline after wrap. */ static Bool tty_xn = FALSE; # endif /* USE_PAGER */ #endif /* USE_PAGER || USE_HLS */ /* * Function implementations. */ void print_text (fp, text_line) FILE *fp; char *text_line; /*! This is the central tty output function, which works according to actual display mode. It prints a line of text given in `text_line' with newline to file `fp' with paging option (very poor and simple paging, only used if preprocessor symbol USE_PAGER is defined) and ALWAYS "deletes" the delivered `text_line' automatically after printing (*text_line = '\0'). */ { #if USE_PAGER || (defined(GCAL_TCAP) && USE_HLS) if (is_tty # if USE_PAGER && (!defined(GCAL_TCAP) || !USE_HLS) && pager_flag # endif && is_tty1 && is_tty2) { register int hls_pos = SPECIAL_VALUE; register int hls1_pos = SPECIAL_VALUE; register int hls2_pos = SPECIAL_VALUE; register int hls_chars = 0; register int i = 0; register int nl; register int j; # if USE_PAGER register int k; register int final_nl = 0; static int lines_printed = 0; # endif auto char *ptr_1hls = (char *) NULL; auto char *ptr_2hls = (char *) NULL; auto Bool hls_start; # if USE_PAGER auto Bool print_hls = (Bool) (is_tty && highlight_flag && !emu_hls); # endif auto Bool nl_found = FALSE; auto Bool buf_highlight_flag = highlight_flag; # if defined(GCAL_TCAP) && USE_HLS fp_outchar = fp; # endif LOOP { # if USE_PAGER if (final_nl != SPECIAL_VALUE) final_nl = 0; # endif hls_chars = nl = j = 0; if (highlight_flag && !emu_hls) { /* Try to detect a highlighting sequence, store its position and point to it... */ hls_pos = hls1_pos = hls2_pos = SPECIAL_VALUE; if (*(text_line + i)) { if (tty_cols != SPECIAL_VALUE) { ptr_1hls = strstr (text_line + i, ehls1s.seq); if (ptr_1hls != (char *) NULL) hls1_pos = i + (int) (ptr_1hls - (text_line + i)); ptr_2hls = strstr (text_line + i, ehls2s.seq); if (ptr_2hls != (char *) NULL) hls2_pos = i + (int) (ptr_2hls - (text_line + i)); } if ((hls1_pos != SPECIAL_VALUE) && (hls2_pos != SPECIAL_VALUE)) { if (hls1_pos > hls2_pos) hls_pos = hls2_pos; else hls_pos = hls1_pos; } else if (hls1_pos != SPECIAL_VALUE) hls_pos = hls1_pos; else if (hls2_pos != SPECIAL_VALUE) hls_pos = hls2_pos; } if (hls_pos == SPECIAL_VALUE) highlight_flag = FALSE; } /* No real highlighting sequence found AND either: no '\n'-NEWLINE character found or: no "pager_flag" given or: "pager_flag" given but we use an external paging program --> Let's print the complete line as a whole! */ if ((strchr (text_line + i, '\n') == (char *) NULL # if USE_PAGER || !pager_flag # ifdef GCAL_EPAGER || (pager_flag && (ext_pager != (char *) NULL)) # endif # endif ) && (hls_pos == SPECIAL_VALUE)) { fprintf (fp, "%s\n", text_line + i); i = (int) strlen (text_line); } else { /* Otherwise we have to inspect each character of the line whether it's part of a real highlighting sequence or not (because of managing a potential padding) and to count the NEWLINES so we are able to paginate the output internally. */ hls_start = TRUE; while (*(text_line + i)) { /* `\n'-NEWLINE character found (actual line must be a RC fixed date => TILDE-character expansion was performed): Print this NEWLINE character. */ if (*(text_line + i) == '\n') { i++; if (j) nl++; nl_found = TRUE; # if USE_PAGER if (final_nl != SPECIAL_VALUE) final_nl = 1; # endif break; } /* Look for a real highlighting sequence; if found, store its length in `hls_chars' and print it explicitly by means of tputs(). */ if (highlight_flag && !emu_hls && (i == hls_pos)) { if (hls_pos == hls1_pos) { if (hls_start) { # if defined(GCAL_TCAP) && USE_HLS tputs ((char *) ehls1s.seq, 1, outchar); # else /* !GCAL_TCAP || !USE_HLS */ fputs (ehls1s.seq, fp); # endif /* !GCAL_TCAP || !USE_HLS */ hls_chars += ehls1s.len; i += ehls1s.len; if (tty_cols != SPECIAL_VALUE) ptr_1hls = strstr (text_line + i, ehls1e.seq); if (ptr_1hls != (char *) NULL) hls_pos = hls1_pos = i + (int) (ptr_1hls - (text_line + i)); else hls_pos = hls2_pos; hls_start = FALSE; } else { # if defined(GCAL_TCAP) && USE_HLS tputs ((char *) ehls1e.seq, 1, outchar); # else /* !GCAL_TCAP || !USE_HLS */ fputs (ehls1e.seq, fp); # endif /* !GCAL_TCAP || !USE_HLS */ hls_chars += ehls1e.len; i += ehls1e.len; if (tty_cols != SPECIAL_VALUE) ptr_1hls = strstr (text_line + i, ehls1s.seq); if (ptr_1hls != (char *) NULL) hls_pos = hls1_pos = i + (int) (ptr_1hls - (text_line + i)); else hls_pos = hls2_pos; hls_start = TRUE; } if (*(text_line + i)) fputc (*(text_line + i), fp); else break; } else if (hls_pos == hls2_pos) { if (hls_start) { # if defined(GCAL_TCAP) && USE_HLS tputs ((char *) ehls2s.seq, 1, outchar); # else /* !GCAL_TCAP || !USE_HLS */ fputs (ehls2s.seq, fp); # endif /* !GCAL_TCAP || !USE_HLS */ hls_chars += ehls2s.len; i += ehls2s.len; if (tty_cols != SPECIAL_VALUE) ptr_2hls = strstr (text_line + i, ehls2e.seq); if (ptr_2hls != (char *) NULL) hls_pos = hls2_pos = i + (int) (ptr_2hls - (text_line + i)); else hls_pos = hls1_pos; hls_start = FALSE; } else { # if defined(GCAL_TCAP) && USE_HLS tputs ((char *) ehls2e.seq, 1, outchar); # else /* !GCAL_TCAP || !USE_HLS */ fputs (ehls2e.seq, fp); # endif /* !GCAL_TCAP || !USE_HLS */ hls_chars += ehls2e.len; i += ehls2e.len; if (tty_cols != SPECIAL_VALUE) ptr_2hls = strstr (text_line + i, ehls2s.seq); if (ptr_2hls != (char *) NULL) hls_pos = hls2_pos = i + (int) (ptr_2hls - (text_line + i)); else hls_pos = hls1_pos; hls_start = TRUE; } if (*(text_line + i)) fputc (*(text_line + i), fp); else break; } } else /* Otherwise, print the actual character in the string. */ fputc (*(text_line + i), fp); j++; i++; } S_NEWLINE (fp); } # if USE_PAGER if (pager_flag # ifdef GCAL_EPAGER && (ext_pager == (char *) NULL) # endif ) { /* Must we prompt the user? */ if (!tty_am) j = 0; else { k = ((nl_found) ? j : i) - nl - hls_chars; j = k / tty_cols; if (j && tty_xn && !(k % tty_cols)) j--; } if (lines_printed + j >= tty_rows - 1) { if (print_hls) # if defined(GCAL_TCAP) && USE_HLS tputs ((char *) ehls1s.seq, 1, outchar); # else /* !GCAL_TCAP || !USE_HLS */ fputs (ehls1s.seq, fp); # endif /* !GCAL_TCAP || !USE_HLS */ fprintf (fp, _("%s: for more, <%s> to quit..."), prgr_name, PAGER_QUIT); if (print_hls) # if defined(GCAL_TCAP) && USE_HLS tputs ((char *) ehls1e.seq, 1, outchar); # else /* !GCAL_TCAP || !USE_HLS */ fputs (ehls1e.seq, fp); # endif /* !GCAL_TCAP || !USE_HLS */ k = fgetc (stdin); /* Quit the pager by the quit "key" command. */ if (tolower (k) == (int) *PAGER_QUIT) { /* In case a leading "quit" character and other text is in the STDIN buffer: Clean the whole buffer. */ while (((k = fgetc (stdin)) != '\n') && (k != EOF)) ; /* Void */ k = EOF; } else /* In case a "quit" character is not leading (anywhere) in the STDIN buffer: Clean the buffer until the "quit" character isn't found. */ if (k != '\n') while (((k = fgetc (stdin)) != '\n') && (tolower (k) != (int) *PAGER_QUIT) && (k != EOF)) ; /* Void */ /* In case the "quit" character is found in the STDIN buffer now: Clean up the rest of buffer (until its end). */ if (tolower (k) == (int) *PAGER_QUIT) { while (((k = fgetc (stdin)) != '\n') && (k != EOF)) ; /* Void */ k = EOF; } /* Exit the program with success if the PAGER_QUIT character was found in the STDIN buffer. */ if (k == EOF) my_exit (EXIT_SUCCESS); /* Begin scrolling of the next page. */ lines_printed = 0; } else lines_printed += (j + 1); if (!*(text_line + i)) { if (final_nl && (final_nl != SPECIAL_VALUE)) { /* Respect an implicit NEWLINE character in case a TILDE-expansion was performed at the end of a line! */ final_nl = SPECIAL_VALUE; i--; } else break; } } else # endif /* USE_PAGER */ if (!*(text_line + i)) break; } highlight_flag = buf_highlight_flag; } else #endif /* USE_PAGER || (GCAL_TCAP && USE_HLS) */ { /* If the mailing option is selected, print the output to the temporary file. */ if ((fp != (FILE *) stderr) #ifdef GCAL_EMAIL && (tfp != (FILE *) NULL) #endif ) fprintf (tfp, "%s\n", text_line); else fprintf (fp, "%s\n", text_line); } *text_line = '\0'; } void get_tty_hls (sequence_str) const char *sequence_str; /*! Reads the colors/highlighting sequences from Termcap and assigns them to the according variables. If Termcap isn't present, defaults are used. */ { #if USE_HLS # if !defined(AMIGA) || defined(__GNUC__) auto char *ptr_env = getenv (ENV_VAR_GCALANSI); # else /* AMIGA && !__GNUC__ */ auto char *ptr_env = (char *) NULL; # endif /* AMIGA && !__GNUC__ */ # ifdef GCAL_TCAP auto Bool check_again = FALSE; # endif #endif auto Bool hls1_set = FALSE; auto Bool hls2_set = FALSE; /* Check whether highlighting must be disabled (`-H' given in the command line). */ if (!highlight_flag) { emu_hls = TRUE; ehls1s.seq = NO_HLS; ehls1e.seq = NO_HLS; ehls2s.seq = NO_HLS; ehls2e.seq = NO_HLS; } else { /* If output is not directed to a tty, emulate the highlighting sequences by using marking characters. */ if (!is_tty && !emu_hls && highlight_flag) emu_hls = TRUE; /* Check whether user defined highlighting sequences are given in the command line (`-H'). */ if (sequence_str != (char *) NULL) { get_hl_seq (sequence_str, &hls1_set, &hls2_set); #if USE_HLS && defined(GCAL_TCAP) if ((hls1_set && (ehls1s.len > 1 || ehls1e.len > 1)) || (hls2_set && (ehls2s.len > 1 || ehls2e.len > 1))) check_again = TRUE; #endif } /* No or partitial highlighting sequences are given in command line -> Complete them (or if a padding was given, init the necessary functions for managing it). */ if (!hls1_set #if USE_HLS && defined(GCAL_TCAP) || check_again #endif || !hls2_set) { #if USE_HLS # ifdef GCAL_TCAP if (!emu_hls) { /* Try to open the `[/etc/]termcap' file. */ tc_no_error = open_termcap (); if (tc_no_error) get_termcap_hls (&hls1_set, &hls2_set); if (check_again) { get_hl_seq (sequence_str, &hls1_set, &hls2_set); if (tc_no_error) get_termcap_hls (&hls1_set, &hls2_set); } if (ptr_env != (char *) NULL) { /* Some or all Termcap highlighting sequences are missing: Use according "default" ANSI highlighting sequences if the environment variable $GCALANSI is set. */ if (!hls1_set) { ehls1s.seq = HLS1S; ehls1e.seq = HLS1E; } if (!hls2_set) { ehls2s.seq = HLS2S; ehls2e.seq = HLS2E; } } else if (!hls1_set || !hls2_set) { /* Some or all Termcap highlighting sequences are missing: Emulate ALL highlighting sequences by marking character pairs if the environment variable $GCALANSI isn't set. */ emu_hls = TRUE; ehls1s.seq = BUF_HLS1S; ehls1e.seq = BUF_HLS1E; ehls2s.seq = BUF_HLS2S; ehls2e.seq = BUF_HLS2E; } } else # endif /* GCAL_TCAP */ { if (emu_hls) { /* Use emulation of highlighting sequences in case output is not directed to a tty and the highlighting sequences are not explicit disabled in the command line by `-H'. */ if (!hls1_set) { ehls1s.seq = BUF_HLS1S; ehls1e.seq = BUF_HLS1E; } if (!hls2_set) { ehls2s.seq = BUF_HLS2S; ehls2e.seq = BUF_HLS2E; } } else { /* Use highlighting sequences directly in all other cases. */ if (ptr_env != (char *) NULL) { /* If environment variable $GCALANSI is set: Use the according "default" ANSI highlighting sequences. */ if (!hls1_set) { ehls1s.seq = HLS1S; ehls1e.seq = HLS1E; } if (!hls2_set) { ehls2s.seq = HLS2S; ehls2e.seq = HLS2E; } } else if (!hls1_set || !hls2_set) { /* If environment variable $GCALANSI is not set: Emulate ALL highlighting sequences by marking character pairs. */ emu_hls = TRUE; ehls1s.seq = BUF_HLS1S; ehls1e.seq = BUF_HLS1E; ehls2s.seq = BUF_HLS2S; ehls2e.seq = BUF_HLS2E; } } } #else /* !USE_HLS */ /* Use the default highlighting sequences. */ if (!hls1_set) { ehls1s.seq = HLS1S; ehls1e.seq = HLS1E; } if (!hls2_set) { ehls2s.seq = HLS2S; ehls2e.seq = HLS2E; } #endif /* !USE_HLS */ } } /* Detect and store length of the highlighting sequences. */ #if defined(GCAL_TCAP) && USE_HLS /* If padding is specified in Termcap and output is not connected to a tty, avoid to emit the padding information itself in the output, because it's senseless to redirect/pipe such an information to the consumser, who doesn't interpret it! */ if (is_padding && (!is_tty || !is_tty1 || !is_tty2)) { ehls1s.seq = (const char *) skip_leading_padding_info ((char *) ehls1s.seq); ehls1e.seq = (const char *) skip_leading_padding_info ((char *) ehls1e.seq); ehls2s.seq = (const char *) skip_leading_padding_info ((char *) ehls2s.seq); ehls2e.seq = (const char *) skip_leading_padding_info ((char *) ehls2e.seq); } #endif /* !GCAL_TCAP || !USE_HLS */ ehls1s.len = (int) strlen (ehls1s.seq); ehls1e.len = (int) strlen (ehls1e.seq); ehls2s.len = (int) strlen (ehls2s.seq); ehls2e.len = (int) strlen (ehls2e.seq); } #if USE_PAGER void get_tty_scr_size (rows, cols) int *rows; int *cols; /*! Detects the number of rows and columns of a tty and stores the values found in `&rows' and `&cols'. */ { # if !defined(AMIGA) || defined(__GNUC__) register int li = 0; register int co = 0; auto char *ptr_env; /* First look into the environment variable pair $GCAL_LINES and $GCAL_COLUMNS resp., $LINES and $COLUMNS in case these are defined and have valid settings: Use these settings. */ ptr_env = getenv (ENV_VAR_LI); if (ptr_env != (char *) NULL) if (*ptr_env) { li = my_atoi (ptr_env); ptr_env = getenv (ENV_VAR_CO); if (ptr_env != (char *) NULL) if (*ptr_env) co = my_atoi (ptr_env); } if ((li > 0) && (co > 0)) { *rows = li; *cols = co; } else { ptr_env = getenv (ENV_VAR_LI2); if (ptr_env != (char *) NULL) if (*ptr_env) { li = my_atoi (ptr_env); ptr_env = getenv (ENV_VAR_CO2); if (ptr_env != (char *) NULL) if (*ptr_env) co = my_atoi (ptr_env); } if ((li > 0) && (co > 0)) { *rows = li; *cols = co; } else { # if defined(OS2) && defined(__GNUC__) auto int info[2]; # endif /* OS2 && __GNUC__ */ # if defined(UNIX) && !defined(DJG) # ifdef TIOCGWINSZ auto struct winsize wsz; # else /* !TIOCGWINSZ */ # ifdef WIOCGETD auto struct uwdata wsz; # endif # endif /* !TIOCGWINSZ */ # endif /* UNIX && !DJG */ # if !defined(DJG) && !defined(MSDOS) && !defined(OS2) && !defined(UNIX) /* For these machines: Defaults only! */ *rows = SCREEN_ROWS; *cols = SCREEN_COLS; # else /* DJG || MSDOS || OS2 || UNIX */ # ifdef DJG /* Get the actual number of lines and columns of the video by using the DJGPP-GCC `ScreenRows()' and `ScreenCols()' functions. */ *rows = ScreenRows (); *cols = ScreenCols (); # else /* !DJG */ # if defined(MSDOS) /* Look directly into the PC-BIOS and get the actual number of lines and columns of the video. */ *rows = peek_byte (0x40, 0x84) + 1; /* Get lower part of 2-byte word. */ *cols = peek_byte (0x40, 0x4b); *cols <<= 0x08; /* Add higher part of 2-byte word. */ *cols += peek_byte (0x40, 0x4a); # else /* !MSDOS */ # if defined(OS2) && defined(__GNUC__) /* Get the actual number of lines and columns of the video by using the EMX-GCC `_scrsize()' function. */ _scrsize (info); *cols = s1[0]; *rows = s1[1]; # else /* !OS2 || !__GNUC__ */ # if defined(UNIX) /* Get the actual number of lines and columns of the video by using the `ioctl()' function. */ # ifdef TIOCGWINSZ if (!ioctl (1, TIOCGWINSZ, &wsz) && (wsz.ws_row > 0)) { *rows = wsz.ws_row; if (!ioctl (1, TIOCGWINSZ, &wsz) && (wsz.ws_col > 0)) *cols = wsz.ws_col; else *rows = SPECIAL_VALUE; } # else /* !TIOCGWINSZ */ # ifdef WIOCGETD if (!ioctl (1, WIOCGETD, &wsz) && (wsz.uw_height > 0)) { *rows = wsz.uw_height / wsz.uw_vs; if (!ioctl (1, WIOCGETD, &wsz) && (wsz.uw_width > 0)) *cols = wsz.uw_width / wsz.uw_hs; else *rows = SPECIAL_VALUE; } # endif # endif /* !TIOCGWINSZ */ # endif /* UNIX */ # endif /* !OS2 || !__GNUC__ */ # endif /* !MSDOS */ # endif /* !DJG */ if ((*rows == SPECIAL_VALUE) && (*cols == SPECIAL_VALUE)) { # if HAVE_TTYLIBS /* If the previous actions have failed, try to open the `[/etc/]termcap' file. */ tc_no_error = open_termcap (); if (tc_no_error) { if (!get_termcap_scr_attrib (rows, cols)) { /* No valid Termcap entries: Defaults only! */ *rows = SCREEN_ROWS; *cols = SCREEN_COLS; } } else { /* Access to `[/etc/]termcap' file has failed: Defaults only! */ *rows = SCREEN_ROWS; *cols = SCREEN_COLS; } # else /* !HAVE_TTYLIBS */ /* No `[/etc/]termcap' file available: Defaults only! */ *rows = SCREEN_ROWS; *cols = SCREEN_COLS; # endif /* !HAVE_TTYLIBS */ } # endif /* DJG || MSDOS || OS2 || UNIX */ } } # else /* AMIGA && !__GNUC__ */ # ifdef AMIGA /* Amiga gets the window size by asking the `console.device'. */ { auto long len; auto char buf[30]; Write (Output (), "\2330 q", 4); len = Read (Input (), buf, 29); buf[len] = '\0'; sscanf (&buf[5], "%d;%d", rows, cols); } # else /* !AMIGA */ /* All other systems: Defaults only. */ *rows = SCREEN_ROWS; *cols = SCREEN_COLS; # endif /* !AMIGA */ # endif /* AMIGA && !__GNUC__ */ if (*rows > 1) (*rows)--; } #endif /* USE_PAGER */ #if defined(GCAL_TCAP) && USE_HLS static char * skip_leading_padding_info (sequence_str) char *sequence_str; /*! Skips the leading padding information part of a highlighting sequence. */ { if (isdigit (*sequence_str)) { is_padding = TRUE; while (isdigit (*sequence_str)) sequence_str++; if (*sequence_str == '.') { sequence_str++; if (isdigit (*sequence_str)) sequence_str++; } if (*sequence_str == '*') sequence_str++; } return (sequence_str); } #endif /* GCAL_TCAP && USE_HLS */ #if USE_PAGER || USE_HLS # ifdef GCAL_TCAP static Bool open_termcap () /*! Tries to open the Termcap library and returns the terminal entry found in the module global vector `tc_buf[]'. I cannot rely that we use the access functions of the GNU Termcap library --- which allows to pass a NULL pointer to `tgetent()' --- so this function can check itself how large `tc_buf[]' must be and allocates it automatically. So I set `tc_buf' to a size of 4096 (TC_BUFLEN) bytes hoping that this will be enough for save program operation... May be called only once. Returns FALSE if an error occurs, otherwise TRUE. */ { # if defined(OS2) && defined(__GNUC__) auto char *ptr_env = getenv (ENV_VAR_TCAP); auto char *ptr_tc; # endif /* OS2 && __GNUC__ */ auto char *term = getenv (ENV_VAR_TERM); static Bool func_accessed = FALSE; auto Bool is_error = FALSE; if (!func_accessed) { func_accessed = TRUE; # if defined(OS2) && defined(__GNUC__) /* Under OS/2 with GNU-C, we use the default terminal type (ANSI) and access the Termcap library instead of printing an informational message and using burned-in defaults if the $TERM environment variable isn't set. */ if (term == (char *) NULL || !*term) term = DFLT_TERM; # else /* !OS2 || !__GNUC__ */ if (term == (char *) NULL) { if (warning_level >= 0) sprintf (s1, _("environment variable `%s' not found"), ENV_VAR_TERM); is_error = TRUE; } else if (!*term) { if (warning_level >= 0) sprintf (s1, _("environment variable `%s' not set"), ENV_VAR_TERM); is_error = TRUE; } else # endif /* !OS2 || !__GNUC__ */ { # if defined(OS2) && defined(__GNUC__) /* Ensure the Termcap database is available, i.e. store its access path in the environment explicitly so we are able to refer it. */ if (ptr_env == NULL || !*ptr_env) { ptr_env = (char *) my_malloc (256, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "ptr_env", 0); _searchenv (FNAME_TCAP, "INIT", ptr_env); if (!*ptr_env) _searchenv (FNAME_TCAP, ENV_VAR_PATH, ptr_env); if (!*ptr_env) _searchenv (FNAME_TCAP, ENV_VAR_GCALPATH, ptr_env); if (*ptr_env) { ptr_tc = (char *) my_malloc (strlen (ptr_env) + 9, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "ptr_tc", 0); sprintf (ptr_tc, "%s=%s", ENV_VAR_TCAP, ptr_env); putenv (ptr_tc); } free (ptr_env); } # endif /* OS2 && __GNUC__ */ switch (tgetent (tc_buf, term)) { case -1: if (warning_level >= 0) strcpy (s1, _("`termcap' file not found")); is_error = TRUE; break; case 0: if (warning_level >= 0) sprintf (s1, _("unknown terminal type defined in `%s'"), ENV_VAR_TERM); is_error = TRUE; break; default: ; /* Void, Termcap access ok */ } } if (is_error && (warning_level >= 0)) fprintf (stderr, _("\n%s: warning, %s.\n\n"), prgr_name, s1); return ((Bool) ! is_error); } return (tc_no_error); } # if USE_HLS static void get_ospeed () /*! Tries to detect the terminal speed and store its value to Termcap's global `ospeed' variable. */ { # if HAVE_TERMIOS_H && HAVE_TERMIOS_FUNCS auto struct termios buf; /* Get the terminal mode. */ tcgetattr (1, &buf); /* Get ospeed! */ # if HAVE_OSPEED switch (cfgetospeed (&buf)) { # ifdef B0 case B0: ospeed = 0; break; # endif # ifdef B50 case B50: ospeed = 1; break; # endif # ifdef B75 case B75: ospeed = 2; break; # endif # ifdef B110 case B110: ospeed = 3; break; # endif # ifdef B134 case B134: ospeed = 4; break; # endif # ifdef B150 case B150: ospeed = 5; break; # endif # ifdef B200 case B200: ospeed = 6; break; # endif # ifdef B300 case B300: ospeed = 7; break; # endif # ifdef B600 case B600: ospeed = 8; break; # endif # ifdef B1200 case B1200: ospeed = 9; break; # endif # ifdef B1800 case B1800: ospeed = 10; break; # endif # ifdef B2400 case B2400: ospeed = 11; break; # endif # ifdef B4800 case B4800: ospeed = 12; break; # endif # ifdef B9600 case B9600: ospeed = 13; break; # endif # ifdef EXTA case EXTA: ospeed = 14; break; # endif # ifdef EXTB case EXTB: ospeed = 15; break; # endif # ifdef B57600 case B57600: ospeed = 16; break; # endif # ifdef B115200 case B115200: ospeed = 17; break; # endif default: ; /* Void */ } # endif /* HAVE_OSPEED */ # else /* !HAVE_TERMIOS_H || !HAVE_TERMIOS_FUNC */ # if TCGETA auto struct termio buf; /* Get the terminal mode. */ ioctl (1, TCGETA, &buf); /* Get ospeed! */ # if HAVE_OSPEED ospeed = buf.c_cflag & CBAUD; # endif # else /* !TCGETA */ auto struct sgttyb buf; /* Get the terminal mode. */ ioctl (1, TIOCGETP, &buf); /* Get ospeed! */ # if HAVE_OSPEED ospeed = buf.sg_ospeed; # endif # endif /* !TCGETA */ # endif /* !HAVE_TERMIOS_H || !HAVE_TERMIOS_FUNC */ } static int outchar (ch) int ch; /*! Termcap's `tputs()' function prints a character to the module local defined file `fp_outchar', which must be assigned before using `tputs()' itself. */ { return (fputc (ch, fp_outchar)); } static Bool get_termcap_hls (hls1_set, hls2_set) Bool *hls1_set; Bool *hls2_set; /*! Inspects the Termcap buffer `tc_buf' to detect the tty color/highlighting sequences. The module global vector `tc_buf[]' must be filled previously. May be called only once. Returns FALSE if an error occurs, otherwise TRUE. */ { register int i = (*hls1_set) ? 2 : 0; register int j = (*hls2_set) ? TC_MC_MAX - 2 : TC_MC_MAX; static char *tc[TC_MC_MAX] = { TC_MC_HL1S, TC_MC_HL1E, TC_MC_HL2S, TC_MC_HL2E }; # if HAVE_OSPEED static char *padding; # endif static char *area; auto char *ptr_char; auto char *ptr_area; static Bool func_accessed = FALSE; auto Bool is_error = FALSE; if (!func_accessed) { func_accessed = TRUE; area = (char *) my_malloc (TC_BUFLEN, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "area", 0); ptr_area = area; # if HAVE_OSPEED /* Get the padding sequence. */ padding = tgetstr ("pc", &ptr_area); PC = (padding) ? *padding : '\0'; /* Get the terminal speed. */ get_ospeed (); # endif for (; (i < j) && !is_error; i++) { ptr_char = tgetstr (tc[i], &ptr_area); if (ptr_char != (char *) NULL) { switch (i) { case 0: ehls1s.seq = ptr_char; break; case 1: ehls1e.seq = ptr_char; *hls1_set = TRUE; break; case 2: ehls2s.seq = ptr_char; break; case 3: ehls2e.seq = ptr_char; *hls2_set = TRUE; break; default: /* Error, more then 2 highlight sequence pairs given. */ is_error = TRUE; } } else /* Error, no terminal capability string found for mode `tc[i]'. */ is_error = TRUE; } } return ((Bool) ! is_error); } # endif /* USE_HLS */ # if USE_PAGER static Bool get_termcap_scr_attrib (rows, cols) int *rows; int *cols; /*! Inspects the Termcap buffer `tc_buf' to detect first the amount of rows and columns of the tty, next whether the terminal wraps the line automatically at right margin. If Termcap isn't present, internal default values are used. The module global vector `tc_buf[]' must be filled previously. May be called only once. Returns FALSE if an error occurs, otherwise TRUE. */ { static Bool func_accessed = FALSE; if (!func_accessed) { func_accessed = TRUE; /* Get the amount of tty rows and columns. */ if (tgetnum ("li") == SPECIAL_VALUE || tgetnum ("co") == SPECIAL_VALUE) return (FALSE); else { *rows = tgetnum ("li"); *cols = tgetnum ("co"); /* Check whether tty wraps the line automatically at right margin and ignores newline after wrapping. */ tty_am = tgetflag ("am"); tty_xn = tgetflag ("xn"); } } return (TRUE); } # endif /* USE_PAGER */ # else /* !GCAL_TCAP */ # if defined(MSDOS) && USE_PAGER static Uchar peek_byte (segment, offset) Uint segment; Uint offset; /*! Gets a byte of IBM/PC-memory from address (segment:offset). */ { auto Ulint long_tmp; auto Uchar far *ptr_char; long_tmp = (Ulint) segment; long_tmp <<= 0x10; long_tmp += (Ulint) offset; ptr_char = (Uchar far *) long_tmp; return (*ptr_char); } # endif /* MSDOS && USE_PAGER */ # endif /* !GCAL_TCAP */ #endif /* USE_PAGER || USE_HLS */ static void get_hl_seq (sequence_str, hls1_set, hls2_set) const char *sequence_str; Bool *hls1_set; Bool *hls2_set; /*! Highlighting sequences/marking characters are given in command line (`-H' option set), i.e.: the colon separated string `sequence_str', which should contain highlighting sequence/marking character pairs (2 pairs maximum, first for actual day, second for holiday; seq?_start enables, seq?_end disables), is delivered, e.g.: \x20:\x20:\x1:# marks holiday date like: \x1`date'# using given marking characters. e.g.: \x1b[34;42m:\x1b[0;40m or \033[34;42m:\033[0;40m or \E[34;42m:\E[0;40m thus all defines starting (ANSI)escape highlighting sequence \x1b[34;42m used for actual day and ending (ANSI)escape highlighting sequence \x1b[0;40m with no given highlighting sequence for holiday, so default highlighting sequences for holiday are used (unnotated entries are always skipped). Control code definitions may contain any printable characters. Non-printable characters may be encoded in octal or hexadecimal notation. The abbreviation \E resp., \e directly encodes the escape character (\x1B resp., \033). A character can be encoded octal by typing \NNN (BACKSLASH-octal digit(s)), where N must be a valid octal digit (0...7). Normally, 3 octal digits must be given. If the octal character code consists of 1 or 2 octal digits, leading zeroes must be added; except the case, the encoded octal character is given last in single sequence. A character can be encoded hexadecimal by typing \xNN (BACKSLASH-x- hexadecimal digit(s)), where N must be a valid hexadecimal digit (0...9A...Fa...f). Normally, 2 hexadecimal digits must be given. If the hexadecimal character code consists of 1 hexadecimal digit, a leading zero must be added; except the case, the encoded hexadecimal character is given last in a single sequence. If the sequence separator character, the colon `:' character itself is used for marking character, it must be specified either octal by \072 or hexadecimal by \x3A. Gets, converts and stores them in the global hls structs. */ { register int i = 0; register int n; register int j; register int k; register int diff; register int seq_no = 0; static char *buf_hls[TC_MC_MAX]; auto const char *ptr_char = sequence_str; auto char *ptr_err = (char *) NULL; static char str4[5]; auto Bool is_error = FALSE; auto Bool is_hex; auto Bool is_oct; auto Bool is_esc; (*hls1_set) = (*hls2_set) = FALSE; while (*ptr_char && !is_error && (seq_no < TC_MC_MAX)) { /* Copy highlighting sequence/marking character to temporary sequence string (until colon character found). */ while (*ptr_char && (*ptr_char != *SEP)) { if ((Uint) i >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); s1[i++] = *ptr_char++; } if ((Uint) i == maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); if (*ptr_char) ptr_char++; if (i) { s1[i] = '\0'; i = n = 0; /* Convert all textual: HEX character sequences \xNN OCT character sequences \NNN ESC character sequences \E or \e found in sequence string to real characters */ while (s1[i + n]) { is_hex = is_oct = is_esc = FALSE; diff = 0; if (s1[i + n] == '\\') { is_esc = (Bool) (tolower (s1[i + n + 1]) == 'e'); is_hex = (Bool) (tolower (s1[i + n + 1]) == 'x'); is_oct = (Bool) isdigit (s1[i + n + 1]); } if (is_esc) { s1[i] = '\033'; /* \x1b */ n++; } else if (is_hex || is_oct) { k = 0; if (is_hex) { str4[k++] = '0'; str4[k++] = 'x'; } else { if (s1[i + n + 1] != '0') str4[k++] = '0'; else diff = 1; str4[k++] = s1[i + n + 1]; } /* Copy hex/oct digits to prefix. */ j = i + n + 2; while (s1[j] && (s1[j] != *SEP) && (k < 4 - diff)) str4[k++] = s1[j++]; str4[k] = '\0'; /* Convert textual hex/oct character to a decimal value. */ #if HAVE_STRTOL j = (int) strtol (str4, &ptr_err, 0); #else /* !HAVE_STRTOL */ ptr_err = str4 + 1; if (is_hex) ptr_err++; j = sbyte2int (ptr_err, (is_hex) ? 16 : 8); #endif /* !HAVE_STRTOL */ /* If conversion error occurs (invalid chars in hex/oct character sequence), don't store ALL sequences, which are previously decoded! */ if (j == -1 #if HAVE_STRTOL || *ptr_err #endif ) { is_error = TRUE; break; } /* Put converted character code back to the sequence string. */ s1[i] = (char) j; n += (k - 2 + diff) + 1; } i++; s1[i] = s1[i + n]; } if (!is_error) { /* Store highlighting sequence/marker character in according global highlighting sequence struct_variable using static buffer `buf_hls[]'. */ n = (int) strlen (s1); buf_hls[seq_no] = (char *) my_malloc (n + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "buf_hls[seq_no]", seq_no); strcpy (buf_hls[seq_no], s1); switch (seq_no) { case 0: ehls1s.seq = buf_hls[seq_no]; ehls1s.len = n; break; case 1: ehls1e.seq = buf_hls[seq_no]; ehls1e.len = n; *hls1_set = TRUE; break; case 2: ehls2s.seq = buf_hls[seq_no]; ehls2s.len = n; break; case 3: ehls2e.seq = buf_hls[seq_no]; ehls2e.len = n; *hls2_set = TRUE; break; default: ; /* Void */ } } } i = 0; seq_no++; } /* Either real highlighting sequences (ESC-char..., length>1) only or marking characters (length==1) only can be managed: Avoid mixture of both! */ #if USE_HLS if (*hls1_set) if (((ehls1s.len == 1) && (ehls1e.len != 1)) || ((ehls1s.len != 1) && (ehls1e.len == 1))) *hls1_set = FALSE; if (*hls2_set) if (((ehls2s.len == 1) && (ehls2e.len != 1)) || ((ehls2s.len != 1) && (ehls2e.len == 1))) *hls2_set = FALSE; if (*hls1_set) { if ((ehls1s.len == 1) && (ehls1e.len == 1)) { if (*hls2_set) { if ((ehls2s.len == 1) && (ehls2e.len == 1)) emu_hls = TRUE; else { if (emu_hls) *hls2_set = FALSE; else *hls1_set = FALSE; } } else if (!emu_hls) *hls1_set = FALSE; } else { if (*hls2_set) { if ((ehls2s.len != 1) && (ehls2e.len != 1)) ; /* Void, ok */ else { if (emu_hls) *hls1_set = FALSE; else *hls2_set = FALSE; } } else if (emu_hls) *hls1_set = FALSE; } } if (!*hls1_set && *hls2_set) { if ((ehls2s.len == 1) && (ehls2e.len == 1)) { if (!emu_hls) *hls2_set = FALSE; } else if (emu_hls) *hls2_set = FALSE; } if (*hls1_set && *hls2_set) if (emu_hls && (ehls1s.len > 1) && (ehls2s.len > 1)) (*hls1_set) = (*hls2_set) = FALSE; #else /* !USE_HLS */ if (*hls1_set) if (ehls1s.len != 1 || ehls1e.len != 1) *hls1_set = FALSE; if (*hls2_set) if (ehls2s.len != 1 || ehls2e.len != 1) *hls2_set = FALSE; #endif /* !USE_HLS */ } #if !HAVE_STRTOL static int sbyte2int (string, base) const char *string; const int base; /*! Converts a textual b-adic string `string', which contains the absolute textual representation of a byte given in number base `base' (2-16) to decimal base, and returns its decimal value. If an error occurs, SPECIAL_VALUE is returned. */ { register int val; register int res = 0; register int mul = 1; register int len = (int) strlen (string); register int len_base_str; static const char base_str[] = "0123456789abcdef"; auto const char *ptr_char = string + (len - 1); len_base_str = (int) strlen (base_str); if (!len || base < 2 || base > len_base_str) return (SPECIAL_VALUE); for (; len; len--) { if (strchr (base_str, tolower (*ptr_char)) == (char *) NULL) return (SPECIAL_VALUE); val = len_base_str - (int) strlen (strchr (base_str, *ptr_char--)); if (val > base) return (SPECIAL_VALUE); res += (val * mul); mul *= base; } return (res); } #endif /* !HAVE_STRTOL */ gcal-4.1/src/tcal.c0000664000000000000000000006636712353516705011064 00000000000000/*! * \file tcal.c * \brief Start `gcal' with date set ONE day ahead * * (default mode, like the `--shift=1' long-style option is passed to it). * Useful if you call this program in `~/.profile' and you want to see all * fixed dates related to tomorrow + 1 day (advanced -ct respectively * --period-of-fixed-dates=t option). Works *only* for Gregorian years! */ /* * Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, * 2009, 2010, 2011, 2013, 2014 Free Software Foundation, Inc. * Copyright (c) 1995, 96, 1997, 2000 Thomas Esken * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include header files. */ #include "tailor.h" #if HAVE_ASSERT_H # include #endif #if HAVE_CTYPE_H # include #endif #if HAVE_UNISTD_H # include #endif #if HAVE_LIMITS_H # include #endif #if HAVE_ERRNO_H # include #endif #if (!HAVE_SIGNAL_H || !HAVE_SIGNAL) && HAVE_SYS_TYPES_H /* Otherwise "gcal.h" includes . */ # include #endif #if HAVE_SYS_STAT_H # include #endif #if TIME_WITH_SYS_TIME # include # include #else /* !TIME_WITH_SYS_TIME */ # if HAVE_SYS_TIME_H # include # else /* !HAVE_SYS_TIME_H */ # include # endif /* !HAVE_SYS_TIME_H */ #endif /* !TIME_WITH_SYS_TIME */ #ifdef MSDOS # include #endif #ifndef USE_RC # define USE_RC 1 #else # if !USE_RC # undef USE_RC # define USE_RC 1 # endif #endif #include "common.h" #include "rc-defs.h" #include "tcal.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS static void usage_msg __P_ ((FILE * fp, const char *prgr_name, int exit_status)); static void version_msg __P_ ((FILE * fp, const char *prgr_name, int exit_status)); static VOID_PTR my_malloc __P_ ((const int amount, const int exit_status, const char *module_name, const long module_line, const char *var_name, const int var_contents)); static VOID_PTR my_realloc __P_ ((VOID_PTR ptr_memblock, const int amount, const int exit_status, const char *module_name, const long module_line, const char *var_name, const int var_contents)); static void my_error __P_ ((const int exit_status, const char *module_name, const long module_line, const char *var_name, const int var_contents)); #if HAVE_SIGNAL && (defined(SIGINT) || defined(SIGTERM) || defined(SIGHUP)) static RETSIGTYPE handle_signal __P_ ((int the_signal)); #endif #if !HAVE_STRNCASECMP static int my_strncasecmp __P_ ((const char *s1, const char *s2, int len)); #endif /* !HAVE_STRNCASECMP */ static int days_of_february __P_ ((const int year)); static Bool doy2date __P_ ((int doy, const int is_leap_year, int *day, int *month)); static Ulint date2num __P_ ((const int day, const int month, const int year)); static void num2date __P_ ((Ulint mjd, int *day, int *month, int *year)); static void get_actual_date __P_ ((int *day, int *month, int *year)); __END_DECLARATIONS /* * static variables definitions. */ /*! Number of days in months. */ static const int dvec[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; /*! Number of past days of month. */ static const int mvec[] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; /*! The Gregorian Reformation dates table is an unterminated vector of `Greg_struct'. */ static Greg_struct greg_reform_date[] = { /* { int year, int month, int f_day, int l_day }, */ {1582, 10, 5, 14}, {1752, 9, 3, 13} }; /*! Points to the used Gregorian Reformation date. */ static Greg_struct *greg = greg_reform_date; #ifdef DJG /*! Set to SHRT_MAX for checking the maximum table range. */ static Usint testval = (Usint) 0; #else /*! Set to INT_MAX for checking the maximum table range. */ static Uint testval = (Uint) 0; #endif /*! Actual length of all strings. */ static Uint maxlen_max = MAXLEN_MAX; /*! The name of this executable. */ static char *prgr_name = (char *) NULL; /*! Text of `--help' option name. */ static char *help_option_name = "help"; /*! Text of `--version' option name. */ static char *version_option_name = "version"; /*! Text of `--shift' option name. */ static char *shift_option_name = "shift"; /* * Function implementations. */ static void usage_msg (fp, prgr_name, exit_status) FILE *fp; const char *prgr_name; int exit_status; /*! Writes the program "usage" text to file `fp' and terminates the program with `exit_status'. */ { fprintf (fp, _ ("Usage: %s [--%s | --%s] | [--%s=[+|-]NUMBER] [ARGUMENT...]\n"), prgr_name, help_option_name, version_option_name, shift_option_name); if (exit_status == EXIT_SUCCESS) { S_NEWLINE (fp); fprintf (fp, _("Email bug reports to <%s>"), BUG_REPORT_ADR1); S_NEWLINE (fp); } exit (exit_status); } static void version_msg (fp, prgr_name, exit_status) FILE *fp; const char *prgr_name; int exit_status; /*! Writes the program "version" text to file `fp' and terminates the program with `exit_status'. */ { fprintf (fp, "%s (GNU cal %s)\n", prgr_name, PACKAGE_VERSION); fprintf (fp, "%s\n", COPYRIGHT_TXT); fprintf (fp, _ ("This is free software; see the source for copying conditions.")); S_NEWLINE (fp); fprintf (fp, _("There is NO warranty, without even the implied warranty of")); S_NEWLINE (fp); fprintf (fp, _("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.")); S_NEWLINE (fp); exit (exit_status); } static VOID_PTR my_malloc (amount, exit_status, module_name, module_line, var_name, var_contents) const int amount; const int exit_status; const char *module_name; const long module_line; const char *var_name; const int var_contents; /*! Allocate AMOUNT bytes of memory dynamically, with error checking. Calls `my_error()' and terminates the program if any errors occur. AMOUNT is limited to `int' range instead of `size_t' range; this is wanted! */ { auto VOID_PTR ptr_memblock; if ((Uint) amount > testval) /* Error, table size overflow! */ my_error (ERR_INTERNAL_TABLE_CRASH, module_name, module_line, var_name, (int) testval); ptr_memblock = (VOID_PTR) malloc ((int) amount); if (ptr_memblock == (VOID_PTR) NULL) /* Error, `malloc()' function failed. */ my_error (exit_status, module_name, module_line, var_name, var_contents); return (ptr_memblock); } static VOID_PTR my_realloc (ptr_memblock, amount, exit_status, module_name, module_line, var_name, var_contents) VOID_PTR ptr_memblock; const int amount; const int exit_status; const char *module_name; const long module_line; const char *var_name; const int var_contents; /*! Change the size of an allocated block of memory PTR_MEMBLOCK to AMOUNT bytes, with error checking. Calls `my_error()' and terminates the program if any errors occur. AMOUNT is limited to `int' range instead of `size_t' range; this is wanted! If PTR_MEMBLOCK is NULL, `my_malloc()' is called instead. */ { if ((Uint) amount > testval) /* Error, table size overflow! */ my_error (ERR_INTERNAL_TABLE_CRASH, module_name, module_line, var_name, (int) testval); if (ptr_memblock == (VOID_PTR) NULL) return (my_malloc (amount, exit_status, module_name, module_line, var_name, var_contents)); ptr_memblock = (VOID_PTR) realloc (ptr_memblock, (int) amount); if (ptr_memblock == (VOID_PTR) NULL) /* Error, `realloc()' function failed. */ my_error (exit_status, module_name, module_line, var_name, var_contents); return (ptr_memblock); } static void my_error (exit_status, module_name, module_line, var_name, var_contents) const int exit_status; const char *module_name; const long module_line; const char *var_name; const int var_contents; /*! Displays a specific error message on STDERR channel and terminates the program with status `exit_status'. */ { fprintf (stderr, _("\n%s: abort, "), prgr_name); switch (exit_status) { case ERR_NO_MEMORY_AVAILABLE: fprintf (stderr, _("`%s' line %ld: virtual memory exhausted (%s=%d)"), module_name, module_line, var_name, var_contents); break; case ERR_INTERNAL_TABLE_CRASH: fprintf (stderr, _ ("`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'"), module_name, module_line, _("internal"), var_name, var_contents); break; case EXIT_FATAL: fprintf (stderr, _("shift value `%s' is invalid"), var_name); break; default: fprintf (stderr, _("`%s' line %ld: (`%s') unmanaged error (%d)"), module_name, module_line, _("internal"), exit_status); } S_NEWLINE (stderr); exit (exit_status); } #if HAVE_SIGNAL && (defined(SIGINT) || defined(SIGTERM) || defined(SIGHUP)) static RETSIGTYPE handle_signal (the_signal) int the_signal; /*! Signal handler function which displays the numeric ID of the received signal on STDERR channel and terminates the program with ERR_TERMINATION_BY_SIGNAL exit status. */ { fflush (stdout); fprintf (stderr, _("\n%s: program aborted by signal %d\n"), prgr_name, the_signal); exit (ERR_TERMINATION_BY_SIGNAL); } #endif /* HAVE_SIGNAL && (SIGINT || SIGTERM || SIGHUP) */ #if !HAVE_STRNCASECMP static int my_strncasecmp (s1, s2, len) const char *s1; const char *s2; int len; /*! Same as the ANSI C `strncmp()' function, but case insensitive. */ { auto const Uchar *p1 = (const Uchar *) s1; auto const Uchar *p2 = (const Uchar *) s2; auto Uchar c1; auto Uchar c2; if (!len || p1 == p2) return (0); if (len < 0) len = -len; do { c1 = tolower (*p1++); c2 = tolower (*p2++); if (!c1 || c1 != c2) return (c1 - c2); } while (--len); return (c1 - c2); } #endif /* !HAVE_STRNCASECMP */ static int days_of_february (year) const int year; /*! Computes the number of days in February --- respecting the Gregorian Reformation period --- and returns them. */ { register int day; if ((year > greg->year) || ((year == greg->year) && (greg->month == 1 || ((greg->month == 2) && (greg->last_day >= 28))))) day = (year & 3) ? 28 : ((!(year % 100) && (year % 400)) ? 28 : 29); else day = (year & 3) ? 28 : 29; /* Exception, the year 4 AD was historically NO leap year! */ if (year == 4) day--; return (day); } static Bool doy2date (doy, is_leap_year, day, month) int doy; const int is_leap_year; int *day; int *month; /*! Converts a given number of days of a year to a standard date (returned in &day and &month) and returns: TRUE in case the `day_of_year' number is valid; FALSE otherwise. */ { register int i; auto Bool decrement_date; if (doy > DAY_LAST + is_leap_year || doy < DAY_MIN) return (FALSE); decrement_date = (Bool) (is_leap_year && (doy > mvec[2])); if (decrement_date) doy--; for (i = MONTH_MIN; i < MONTH_MAX; i++) { doy -= dvec[i - 1]; if (doy <= 0) { doy += dvec[i - 1]; break; } } *month = i; *day = doy; if (decrement_date && (*month == 2) && (*day == 28)) (*day)++; return (TRUE); } static Ulint date2num (day, month, year) const int day; const int month; const int year; /*! Computes the absolute number of days of the given date since 00010101(==YYYYMMDD) respecting the missing period of the Gregorian Reformation. */ { auto Ulint mjd = (Ulint) ((year - 1) * (Ulint) (DAY_LAST) + ((year - 1) >> 2)); if (year > greg->year || ((year == greg->year) && (month > greg->month || ((month == greg->month) && (day > greg->last_day))))) mjd -= (Ulint) (greg->last_day - greg->first_day + 1); if (year > greg->year) { mjd += (((year - 1) / 400) - (greg->year / 400)); mjd -= (((year - 1) / 100) - (greg->year / 100)); if (!(greg->year % 100) && (greg->year % 400)) mjd--; } mjd += (Ulint) mvec[month - 1]; mjd += day; if ((days_of_february (year) == 29) && (month > 2)) mjd++; return (mjd); } static void num2date (mjd, day, month, year) Ulint mjd; int *day; int *month; int *year; /*! Converts a delivered absolute number of days `mjd' to a standard date (since 00010101(==YYYYMMDD), returned in &day, &month and &year) respecting the missing period of the Gregorian Reformation. */ { auto double x; auto Ulint jdays = date2num (greg->first_day - 1, greg->month, greg->year); register int i; if (mjd > jdays) mjd += (Ulint) (greg->last_day - greg->first_day + 1); x = (double) mjd / (DAY_LAST + 0.25); i = (int) x; if ((double) i != x) *year = i + 1; else { *year = i; i--; } if (mjd > jdays) { /* Correction for Gregorian years. */ mjd -= (Ulint) ((*year / 400) - (greg->year / 400)); mjd += (Ulint) ((*year / 100) - (greg->year / 100)); x = (double) mjd / (DAY_LAST + 0.25); i = (int) x; if ((double) i != x) *year = i + 1; else { *year = i; i--; } if ((*year % 400) && !(*year % 100)) mjd--; } i = (int) (mjd - (Ulint) (i * (DAY_LAST + 0.25))); /* Correction for Gregorian centuries. */ if ((*year > greg->year) && (*year % 400) && !(*year % 100) && (i < ((*year / 100) - (greg->year / 100)) - ((*year / 400) - (greg->year / 400)))) i++; (void) doy2date (i, (days_of_february (*year) == 29), day, month); } static void get_actual_date (day, month, year) int *day; int *month; int *year; /*! Gets the actual date from the system. */ { auto struct tm *sys_date; auto MY_TIME_T sys_time; sys_time = time ((MY_TIME_T *) NULL); sys_date = localtime (&sys_time); *day = sys_date->tm_mday; *month = sys_date->tm_mon + 1; *year = sys_date->tm_year; if (*year < CENTURY) *year += CENTURY; } int main (argc, argv) int argc; char *argv[]; /*! Starts Gcal with date set one day ahead (default mode, like the `--shift=1' long-style option is passed to it) and all other arguments which are given in the command line. The program first tries to use the `gcal' executable which is specified in the environment variable $GCALPROG if it is set, otherwise it will be searched using the $PATH environment variable. */ { auto Ulint the_date; auto Slint shift_value = (Slint) CHR2DIG (*SHIFT_VALUE_DEFAULT); register Uint my_argc_max = MY_ARGC_MAX; register int my_argc = 0; register int len_year_max; register int i; register int arg_len; register int status; auto int day; auto int month; auto int year; auto char **my_argv = (char **) NULL; auto char *s1; auto char *gcal_prgr; auto char *ptr_char; auto char *buf_ptr_char; auto Bool shift_value_set = FALSE; #if defined(GCAL_NLS) auto Bool is_en = FALSE; #endif /* Let's set `testval' to SHRT_MAX/INT_MAX if SHRT_MAX/INT_MAX itself isn't defined. This solution only works on machines with internal arithmethics based on "two complements". */ #ifdef DJG # ifdef SHRT_MAX testval = SHRT_MAX; # else /* !SHRT_MAX */ testval = ~0; testval >>= 1; # endif /* !SHRT_MAX */ #else /* !DJG */ # ifdef INT_MAX testval = INT_MAX; # else /* !INT_MAX */ testval = ~0; testval >>= 1; # endif /* !INT_MAX */ #endif /* !DJG */ #if HAVE_ASSERT_H /* To ensure safe program operations, MAXLEN_MAX must be 1024 minimum and `testval' maximum! */ assert (MAXLEN_MAX >= 1024); assert ((Uint) MAXLEN_MAX <= testval); #endif /* Initial memory allocation for the `s1' string. */ s1 = (char *) my_malloc (MAXLEN_MAX, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "s1", 0); /* Compute the string length of the maximum year able to compute. */ sprintf (s1, "%d", YEAR_MAX); len_year_max = (int) strlen (s1); /* Perform some more assertations for safe program operation. */ #if HAVE_ASSERT_H /* Check if value for maximum number of table entries fits to the positive range of a signed int (SHRT_MAX/INT_MAX)! */ assert (len_year_max < 11); assert (len_year_max > 0); assert (YEAR_MAX >= YEAR_MIN); assert (MONTH_MAX == 12); assert (CENTURY == 1900); assert (strlen (PACKAGE_NAME) > 0); assert (strlen (PACKAGE_VERSION) > 0); assert (MY_ARGC_MAX > 1); assert ((Uint) MY_ARGC_MAX <= testval); #endif /* HAVE_ASSERT_H */ #ifdef GCAL_NLS /* Now initialize the NLS functions. */ #if HAVE_SETLOCALE setlocale (LC_ALL, ""); # endif # ifndef LOCALEDIR # define LOCALEDIR NULL # endif bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); /* Now check whether we have to use the Gregorian Reformation date of 1752 (table index 1 !!) by default! */ # if !defined(AMIGA) || defined(__GNUC__) /* Detect whether the $LANGUAGE environment variable (GNU specific) is set. */ ptr_char = getenv (ENV_VAR_LANGUAGE); if (ptr_char != (char *) NULL) if (!*ptr_char) ptr_char = (char *) NULL; if (ptr_char == (char *) NULL) { /* Detect whether the $LC_ALL environment variable is set. */ ptr_char = getenv (ENV_VAR_LC_ALL); if (ptr_char != (char *) NULL) if (!*ptr_char) ptr_char = (char *) NULL; } # if HAVE_LC_MESSAGES if (ptr_char == (char *) NULL) { /* Detect whether the $LC_MESSAGES environment variable is set. */ ptr_char = getenv (ENV_VAR_LC_MESSAGES); if (ptr_char != (char *) NULL) if (!*ptr_char) ptr_char = (char *) NULL; } # endif if (ptr_char == (char *) NULL) { /* Detect whether the $LANG environment variable is set. */ ptr_char = getenv (ENV_VAR_LANG); if (ptr_char != (char *) NULL) if (!*ptr_char) ptr_char = (char *) NULL; } /* Now check the kind of territory specifics we have to use! */ if (ptr_char != (char *) NULL) { if (*ptr_char) { strncpy (s1, ptr_char, 6); s1[5] = '\0'; if (!strncasecmp (s1, "en", 2)) /* We have to use the Gregorian Reformation date of 1752 (table index 1 !!). */ is_en = TRUE; else /* Hmm... We have to check whether the special settings "C" or "POSIX" are given, if so, we have to use the Gregorian Reformation date of 1752 (table index 1 !!). */ if (!strncasecmp (s1, "posix", 5) || !strcasecmp (s1, "c")) is_en = TRUE; } else /* Environment variable defined but not set, hmm... Let's use the Gregorian Reformation date of 1752 (table index 1 !!). */ is_en = TRUE; } else /* No environment variable defined. */ # endif /* !AMIGA || __GNUC__ */ /* Let's use the Gregorian Reformation date of 1752 (table index 1 !!). */ is_en = TRUE; if (is_en) /* Set the date of Gregorian Reformation to 1752 (table index 1 !!) */ greg++; #else /* !GCAL_NLS */ /* Set the date of Gregorian Reformation to 1752 (table index 1 !!) */ greg++; #endif /* !GCAL_NLS */ /* Detect the own program name. */ i = (int) strlen (*argv); if ((Uint) i >= maxlen_max) s1 = my_realloc ((VOID_PTR) s1, i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "s1", i + 1); strcpy (s1, *argv); #ifdef SUFFIX_SEP /* Eliminate version suffix under VMS. */ ptr_char = strrchr (s1, *SUFFIX_SEP); if (ptr_char != (char *) NULL) *ptr_char = '\0'; #endif i = (int) strlen (s1); #ifdef DJG ptr_char = strrchr (s1, *DIR2_SEP); #else /* !DJG */ ptr_char = strrchr (s1, *DIR_SEP); #endif /* !DJG */ if (ptr_char != (char *) NULL) { ptr_char++; i = (int) strlen (ptr_char); } else ptr_char = s1; if (tolower ('A') == 'a') { buf_ptr_char = ptr_char; for (; *ptr_char; ptr_char++) *ptr_char = (char) tolower (*ptr_char); ptr_char = buf_ptr_char; } /* Suppress ".exe" suffix for MSDOS, OS/2 and VMS. */ if ((i > 4) && !strcmp (ptr_char + i - 4, ".exe")) { i -= 4; *(ptr_char + i) = '\0'; } prgr_name = (char *) my_malloc (i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "prgr_name", 0); strcpy (prgr_name, ptr_char); #if HAVE_SIGNAL /* Now let's modify the signal handling a bit to make sure that temporary files are always deleted if such signals are raised. */ # ifdef SIGINT if (signal (SIGINT, SIG_IGN) != SIG_IGN) (void) signal (SIGINT, (Sig_type) handle_signal); # endif # ifdef SIGTERM if (signal (SIGTERM, SIG_IGN) != SIG_IGN) (void) signal (SIGTERM, (Sig_type) handle_signal); # endif # ifdef SIGHUP if (signal (SIGHUP, SIG_IGN) != SIG_IGN) (void) signal (SIGHUP, (Sig_type) handle_signal); # endif #endif /* HAVE_SIGNAL */ buf_ptr_char = SHIFT_VALUE_DEFAULT; if (argc > 1) { /* Check if `--help', `--version' or `--shift=[+|-]NUMBER' long-style option is given. */ arg_len = (int) strlen (argv[1]) - 2; if ((arg_len > 0) && (*argv[1] == *SWITCH) && (*(argv[1] + 1) == *SWITCH)) { auto Bool is_number = TRUE; if (!strncasecmp (argv[1] + 2, help_option_name, arg_len)) usage_msg (stdout, prgr_name, EXIT_SUCCESS); if (!strncasecmp (argv[1] + 2, version_option_name, arg_len)) version_msg (stdout, prgr_name, EXIT_SUCCESS); if (!strncasecmp (argv[1] + 2, shift_option_name, 3)) { ptr_char = strchr (argv[1] + 2, *LARG_SEP); if (ptr_char != (char *) NULL) i = (int) (ptr_char - (argv[1] + 2)); else i = arg_len; switch (i) { case 3: case 4: case 5: if (!strncasecmp (argv[1] + 2, shift_option_name, i)) break; /* Fallthrough. */ default: /* Error, unrecognized option. */ fprintf (stderr, _("%s: unrecognized option `%s'"), prgr_name, argv[1]); S_NEWLINE (stderr); usage_msg (stderr, prgr_name, ERR_INVALID_OPTION); } if (ptr_char == (char *) NULL || ((ptr_char != (char *) NULL) && !*(ptr_char + 1))) { /* Error, option requires an argument. */ fprintf (stderr, _("%s: option `--%s' requires an argument"), prgr_name, shift_option_name); S_NEWLINE (stderr); usage_msg (stderr, prgr_name, ERR_INVALID_OPTION); } else { /* Let's get the argument of the `--shift=[+|-]NUMBER' long-style option. */ ptr_char++; shift_value = atol (ptr_char); /* Check if the argument is a NUMBER. */ buf_ptr_char = ptr_char; if (*ptr_char == '+' || *ptr_char == '-') ptr_char++; if (!*ptr_char) is_number = FALSE; else { while (isdigit (*ptr_char)) ptr_char++; if (*ptr_char) is_number = FALSE; } if (!is_number) { /* Error, invalid argument. */ fprintf (stderr, _("%s: option with invalid argument -- %s"), prgr_name, argv[1]); S_NEWLINE (stderr); usage_msg (stderr, prgr_name, ERR_INVALID_OPTION); } shift_value_set = TRUE; } } } } /* Detect the name of the Gcal executable. */ #if !defined(AMIGA) || defined(__GNUC__) gcal_prgr = getenv (ENV_VAR_GCALPROG); if (gcal_prgr != (char *) NULL) { if (!*gcal_prgr) gcal_prgr = PACKAGE_NAME; } else #endif /* !AMIGA || __GNUC__ */ gcal_prgr = PACKAGE_NAME; /* Get the actual date. */ get_actual_date (&day, &month, &year); /* Compute the Julian Day number of the actual date. */ the_date = date2num (day, month, year); /* Check if the shifted date is in the right range. */ if ((Slint) the_date + shift_value <= 0L || (Slint) the_date + shift_value > (Slint) date2num (dvec[MONTH_MAX - 1], MONTH_MAX, YEAR_MAX)) my_error (EXIT_FATAL, "", 0L, buf_ptr_char, 0); /* Now calculate the shifted date (default mode is tomorrow [+1]). */ num2date ((Ulint) the_date + shift_value, &day, &month, &year); /* Initial memory allocation for the `my_argv[]' table. */ my_argv = (char **) my_malloc (MY_ARGC_MAX * sizeof (char *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "my_argv[MY_ARGC_MAX]", MY_ARGC_MAX); /* Now copy the name of the Gcal executable into `my_argv[]' table at position 0. */ my_argv[my_argc] = (char *) my_malloc (strlen (gcal_prgr) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "my_argv[my_argc]", my_argc); strcpy (my_argv[my_argc++], gcal_prgr); /* Now construct and copy the actual date modifier %DATE into `my_argv[]' table at position 1. */ sprintf (s1, "%c%0*d%02d%02d", RC_ADATE_CHAR, len_year_max, year, month, day); my_argv[my_argc] = (char *) my_malloc (strlen (s1) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "my_argv[my_argc]", my_argc); strcpy (my_argv[my_argc++], s1); /* Skip the locally respected `--shift=[+|-]NUMBER' long-style option if given in the command line. */ if (shift_value_set) { argc--; argv++; } /* Now copy all other command line arguments which are delivered to the Gcal executable into `my_argv[]' table at position `my_argc'. */ while (argc > 1) { argv++; if ((Uint) my_argc >= my_argc_max) { /* Resize the `my_argv[]' table. */ my_argc_max <<= 1; if (my_argc_max * sizeof (char *) > testval) my_argc_max--; my_argv = (char **) my_realloc ((VOID_PTR) my_argv, my_argc_max * sizeof (char *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "my_argv[my_argc_max]", my_argc_max); } my_argv[my_argc] = (char *) my_malloc (strlen (*argv) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "my_argv[my_argc]", my_argc); strcpy (my_argv[my_argc++], *argv); argc--; } /* And terminate the `my_argv[]' table by a final NULL element. */ if ((Uint) my_argc >= my_argc_max) { /* Resize the `my_argv[]' table. */ my_argc_max <<= 1; if (my_argc_max * sizeof (char *) > testval) my_argc_max--; my_argv = (char **) my_realloc ((VOID_PTR) my_argv, my_argc_max * sizeof (char *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "my_argv[my_argc_max]", my_argc_max); } my_argv[my_argc] = (char *) NULL; /* Run the Gcal executable alltogether with the collected arguments. */ status = execvp (gcal_prgr, my_argv); if (status == -1) { fprintf (stderr, _("%s: error during program execution of `%s'\n"), prgr_name, gcal_prgr); #if HAVE_ERRNO_H perror (gcal_prgr); #endif exit (ERR_EXTERNAL_CMD_FAILURE); } exit (status); } gcal-4.1/src/hd-astro.h0000664000000000000000000000667312353516624011661 00000000000000#ifndef __HD_ASTRO_H # define __HD_ASTRO_H /*! * \file hd-astro.h * \brief Astronomical and support functions for the * eternal holiday list header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: hd-astro.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * Equinox and solstice MODE constants for northern and southern Hemisphere. */ # define NH_VE 0.0 # define SH_AE NH_VE # define NH_SS 90.0 # define SH_WS NH_SS # define NH_AE 180.0 # define SH_VE NH_AE # define NH_WS 270.0 # define SH_SS NH_WS /* * Solar and lunar eclipse type constants. */ # define ECLIPSE_PENUMBRAL 100000000.0 # define ECLIPSE_PARTIAL 200000000.0 # define ECLIPSE_ANNULAR 300000000.0 # define ECLIPSE_TOTAL 400000000.0 /* * Moon phase constants. */ # define MPHASE_NEW 0.00 # define MPHASE_FQT 0.25 # define MPHASE_FUL 0.50 # define MPHASE_LQT 0.75 /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `hd_astro.c'. */ extern double equinox_solstice __P_ ((const double longitude, int *day, int *month, int *year, int hour, int min)); extern double delta_t __P_ ((const int day, const int month, const int year, const int hour, const int min)); extern double moonphase __P_ ((const double phase_selector, const Bool find_eclipse, double *eclipse_type, Ulint * lunation, int *day, int *month, int *year, int hour, int min)); extern double next_sun_longitude __P_ ((double *longitude, const double step, const double mjd, int *day, int *month, int *year, const int hour, const int min)); extern double sun_longitude __P_ ((const double longitude, int *day, int *month, int *year, int hour, int min, const Bool next_mode)); extern void val2hours __P_ ((double val, int *hour, int *min, double *sec)); extern void val2degrees __P_ ((double val, int *degree, int *min, double *sec)); extern double my_cot __P_ ((double x)); extern double my_acot __P_ ((double x)); extern double my_atan2 __P_ ((double y, double x)); # if !HAVE_LIBM extern double my_floor __P_ ((double x)); extern double my_ceil __P_ ((double x)); extern double my_sqrt __P_ ((double x)); extern double my_log __P_ ((double x)); extern double my_log10 __P_ ((double x)); extern double my_sin __P_ ((double x)); extern double my_cos __P_ ((double x)); extern double my_tan __P_ ((double x)); extern double my_cot __P_ ((double x)); extern double my_asin __P_ ((double x)); extern double my_acos __P_ ((double x)); extern double my_atan __P_ ((double x)); extern double my_acot __P_ ((double x)); # endif /* !HAVE_LIBM */ __END_DECLARATIONS #endif /* __HD_ASTRO_H */ gcal-4.1/src/utils.c0000664000000000000000000015671612464144064011275 00000000000000/*! * \file utils.c * \brief Pool of common functions. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013, 2014 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include header files. */ #include "tailor.h" #if HAVE_CTYPE_H # include #endif #if HAVE_ERRNO_H # include #endif #if HAVE_UNISTD_H # include #endif #if TIME_WITH_SYS_TIME # include # include #else /* !TIME_WITH_SYS_TIME */ # if HAVE_SYS_TIME_H # include # else /* !HAVE_SYS_TIME_H */ # include # endif /* !HAVE_SYS_TIME_H */ #endif /* !TIME_WITH_SYS_TIME */ #include "common.h" #if USE_RC # include "rc-defs.h" #endif /* USE_RC */ #include "globals.h" #include "hd-defs.h" #include "hd-use.h" #if USE_RC # include "rc-utils.h" #endif /* USE_RC */ #include "utils.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `utils.c'. */ static void gregorian2julian __P_ ((int *day, int *month, int *year)); static int raw_week_number __P_ ((const int day, const int month, const int year, const Bool is_iso_week, const int start_day_of_week)); static const char *dflt_day_name __P_ ((const int day)); static const char *dflt_month_name __P_ ((const int month)); __END_DECLARATIONS /* * Function implementations. */ VOID_PTR my_malloc (amount, exit_status, module_name, module_line, var_name, var_contents) const int amount; const int exit_status; const char *module_name; const long module_line; const char *var_name; const int var_contents; /*! Allocates AMOUNT bytes of memory dynamically, with error checking. Calls `my_error()' and terminates the program if any errors occur. AMOUNT is limited to `int' range instead of `size_t' range; this is wanted! */ { auto VOID_PTR ptr_memblock; if ((Uint) amount > testval) /* Error, table size overflow! */ my_error (ERR_INTERNAL_TABLE_CRASH, module_name, module_line, var_name, (int) testval); ptr_memblock = (VOID_PTR) malloc ((int) amount); if (ptr_memblock == (VOID_PTR) NULL) /* Error, `malloc()' function failed. */ my_error (exit_status, module_name, module_line, var_name, var_contents); return (ptr_memblock); } VOID_PTR my_realloc (ptr_memblock, amount, exit_status, module_name, module_line, var_name, var_contents) VOID_PTR ptr_memblock; const int amount; const int exit_status; const char *module_name; const long module_line; const char *var_name; const int var_contents; /*! Changes the size of an allocated block of memory PTR_MEMBLOCK to AMOUNT bytes, with error checking. Calls `my_error()' and terminates the program if any errors occur. AMOUNT is limited to `int' range instead of `size_t' range; this is wanted! If PTR_MEMBLOCK is NULL, `my_malloc()' is called instead. */ { if ((Uint) amount > testval) /* Error, table size overflow! */ my_error (ERR_INTERNAL_TABLE_CRASH, module_name, module_line, var_name, (int) testval); if (ptr_memblock == (VOID_PTR) NULL) return (my_malloc (amount, exit_status, module_name, module_line, var_name, var_contents)); ptr_memblock = (VOID_PTR) realloc (ptr_memblock, (int) amount); if (ptr_memblock == (VOID_PTR) NULL) /* Error, `realloc()' function failed. */ my_error (exit_status, module_name, module_line, var_name, var_contents); return (ptr_memblock); } void allocate_all_strings (amount, module_name, module_line) const int amount; const char *module_name; const long module_line; /*! Initially allocates AMOUNT bytes of memory dynamically for all string vectors used, with error checking. Calls `my_error()' indirectly and terminates the program if any errors occur. AMOUNT is limited to `int' range instead of `size_t' range; this is wanted! Can only be called once! */ { static Bool all_strings_initialized = FALSE; if (!all_strings_initialized) { s1 = (char *) my_malloc (amount, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s1", 0); s2 = (char *) my_malloc (amount, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s2", 0); s3 = (char *) my_malloc (amount, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s3", 0); s4 = (char *) my_malloc (amount, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s4", 0); #if USE_RC s5 = (char *) my_malloc (amount, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s5", 0); s6 = (char *) my_malloc (amount, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s6", 0); s7 = (char *) my_malloc (amount, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s7", 0); line_buffer = (char *) my_malloc (amount, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "line_buffer", 0); #endif all_strings_initialized = TRUE; } } void resize_all_strings (amount, with_line_buffer, module_name, module_line) const int amount; const Bool with_line_buffer; const char *module_name; const long module_line; /*! Changes the size of all string vectors used to AMOUNT bytes, with error checking. Calls `my_error()' indirectly and terminates the program if any errors occur. AMOUNT is limited to `int' range instead of `size_t' range; this is wanted! */ { if (((Uint) amount > testval) && (maxlen_max < testval)) maxlen_max = testval; else maxlen_max = (Uint) amount; s1 = (char *) my_realloc ((VOID_PTR) s1, maxlen_max, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s1", maxlen_max); s2 = (char *) my_realloc ((VOID_PTR) s2, maxlen_max, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s2", maxlen_max); s3 = (char *) my_realloc ((VOID_PTR) s3, maxlen_max, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s3", maxlen_max); s4 = (char *) my_realloc ((VOID_PTR) s4, maxlen_max, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s4", maxlen_max); #if USE_RC s5 = (char *) my_realloc ((VOID_PTR) s5, maxlen_max, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s5", maxlen_max); s6 = (char *) my_realloc ((VOID_PTR) s6, maxlen_max, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s6", maxlen_max); s7 = (char *) my_realloc ((VOID_PTR) s7, maxlen_max, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "s7", maxlen_max); if (with_line_buffer) line_buffer = (char *) my_realloc ((VOID_PTR) line_buffer, maxlen_max, ERR_NO_MEMORY_AVAILABLE, module_name, module_line, "line_buffer", maxlen_max); #endif } void my_error (exit_status, module_name, module_line, var_name, var_contents) const int exit_status; const char *module_name; const long module_line; const char *var_name; const int var_contents; /*! Displays a specific error message on STDERR channel and terminates the program with status `exit_status'. */ { S_NEWLINE (stderr); if (prgr_name == (char *) NULL) prgr_name = PACKAGE_NAME; fprintf (stderr, _("%s: abort, "), prgr_name); switch (exit_status) { case ERR_INVALID_EASTER_DATE: fprintf (stderr, _ ("invalid year for computing Easter Sundays date\nYear must be in range (%d...%d)"), EASTER_MIN, EASTER_MAX); break; case ERR_NO_MEMORY_AVAILABLE: fprintf (stderr, _("`%s' line %ld: virtual memory exhausted (%s=%d)"), module_name, module_line, var_name, var_contents); break; #if USE_RC case ERR_INVALID_DATE_FIELD: fprintf (stderr, _("invalid date part in file `%s'\nLine %ld: %s"), module_name, module_line, var_name); break; case ERR_INVALID_MONTH_FIELD: fprintf (stderr, _("invalid month field(%02d) in file `%s'\nLine %ld: %s"), var_contents, module_name, module_line, var_name); break; case ERR_INVALID_DAY_FIELD: fprintf (stderr, _("invalid day field(%02d) in file `%s'\nLine %ld: %s"), var_contents, module_name, module_line, var_name); break; case ERR_MALFORMED_INCLUDE: fprintf (stderr, _("malformed %s in file `%s'\nLine %ld: %s"), RC_INCL_STMENT, module_name, module_line, var_name); break; case ERR_CYCLIC_INCLUDE: fprintf (stderr, _("invalid recursive/cyclic %s in file `%s'\nLine %ld: %s"), RC_INCL_STMENT, module_name, module_line, var_name); break; case ERR_FILE_NOT_FOUND: fprintf (stderr, _("file `%s' not found"), module_name); break; case ERR_INVALID_NWD_FIELD: fprintf (stderr, _("invalid N'th weekday field(%d) in file `%s'\nLine %ld: %s"), var_contents, module_name, module_line, var_name); break; case ERR_NO_SEPARATOR_CHAR: fprintf (stderr, _ ("missing `whitespace' character after date part in file `%s'\nLine %ld: %s"), module_name, module_line, var_name); break; #endif /* USE_RC */ case ERR_WRITE_FILE: fprintf (stderr, _("file `%s' can't be written\nStorage media full!"), var_name); break; #ifdef GCAL_EMAIL case ERR_EMAIL_SEND_FAILURE: fprintf (stderr, _("sending eMail to <%s> failed"), var_name); # if HAVE_ERRNO_H fprintf (stderr, _("\n`%s' line %ld: "), module_name, module_line); perror ("perror"); # endif break; #endif #if defined(GCAL_EPAGER) || defined(GCAL_EMAIL) || USE_RC case ERR_INTERNAL_C_FUNC_FAILURE: fprintf (stderr, _("`%s' line %ld: (`%s') `%s%d' failed"), module_name, module_line, _("Internal"), var_name, var_contents); # if HAVE_ERRNO_H perror ("\nperror"); # endif break; #endif case ERR_READ_FILE: fprintf (stderr, _("read error in file `%s'"), var_name); #if HAVE_ERRNO_H fprintf (stderr, _("\n`%s' line %ld: "), module_name, module_line); perror ("perror"); #endif break; case ERR_ILLEGAL_CHAR_IN_FILE: fprintf (stderr, _("illegal character in response file `%s'\nLine %ld: %s"), module_name, module_line, var_name); break; case ERR_INTERNAL_TABLE_CRASH: fprintf (stderr, _ ("`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'"), module_name, module_line, _("Internal"), var_name, var_contents); break; case ERR_INVALID_DATE_FORMAT: fprintf (stderr, _("(`%s') date format `%s' is invalid"), module_name, var_name); break; #if USE_RC case ERR_INVALID_REGEX_PATTERN: if (*module_name) fprintf (stderr, _("%s in search pattern `%s'"), module_name, var_name); else fprintf (stderr, _("invalid search pattern `%s' specified"), var_name); break; #endif /* USE_RC */ default: fprintf (stderr, _("`%s' line %ld: (`%s') unmanaged error (%d)"), module_name, module_line, _("internal"), exit_status); } S_NEWLINE (stderr); my_exit (exit_status); } #if HAVE_SIGNAL && (defined(SIGINT) || defined(SIGTERM) || defined(SIGHUP)) RETSIGTYPE handle_signal (the_signal) int the_signal; /*! Signal handler function which displays the numeric ID of the received signal on STDERR channel and terminates the program with ERR_TERMINATION_BY_SIGNAL exit status. */ { fflush (stdout); fprintf (stderr, _("\n%s: program aborted by signal %d\n"), prgr_name, the_signal); my_exit (ERR_TERMINATION_BY_SIGNAL); } #endif /* HAVE_SIGNAL && (SIGINT || SIGTERM || SIGHUP) */ void my_exit (exit_status) const int exit_status; /*! Tries to erase all temporary files before without error checking and quits the program by calling the systems `exit()' function. */ { #if USE_RC if (rc_tvar_tfp != (FILE *) NULL) (void) fclose (rc_tvar_tfp); if (rc_tvar_tfn != (char *) NULL) (void) unlink (rc_tvar_tfn); if (rc_here_fp != (FILE *) NULL) (void) fclose (rc_here_fp); if (rc_here_fn != (char *) NULL) (void) unlink (rc_here_fn); #endif #ifdef GCAL_EMAIL if (tfp != (FILE *) NULL) (void) fclose (tfp); if (tfn != (char *) NULL) (void) unlink (tfn); #endif exit (exit_status); } int my_atoi (string) const char *string; /*! Converts given `string' to a positiv integer value skipping leading zeroes and returns values in range 0...YEAR_MAX only (invalid values are set to 0). */ { while (*string == '0') string++; if (*string == '-' || (int) strlen (string) > len_year_max) return (0); return (atoi (string)); } int my_system (command) const char *command; /*! Wrapper for the system() function. */ { #if HAVE_SYSTEM return (((unsigned int) system (command) >> 8) & 0xff); #else /* !HAVE_SYSTEM */ return (-1); #endif /* !HAVE_SYSTEM */ } #if !HAVE_STRSTR char * my_strstr (text, pattern) const char *text; const char *pattern; /*! Search the `pattern' needle in haystack `text' =8^) (emulates the ANSI C strstr() function; not very well optimized). */ { register int i = (int) strlen (text); register int j = (int) strlen (pattern); register int k; auto const char *ptr_char = text; if (!j) return (ptr_char); if (i < j) return (NULL); for (i = 0; *ptr_char; i++, ptr_char++) { for (k = 0, j = i; pat[k] && (text[j] == pattern[k]); j++, k++) ; if (k && !pattern[k]) return (ptr_char); } return (NULL); } #endif /* !HAVE_STRSTR */ #if !HAVE_STRCSPN int my_strcspn (s1, s2) const char *s1; const char *s2; /*! Find length of initial segment of `s1' consisting entirely of characters not from `s2' (emulates the ANSI C strcspn() function). */ { register int count = 0; auto const char *scan1; auto const char *scan2; for (scan1 = s1; *scan1; scan1++) { for (scan2 = s2; *scan2;) if (*scan1 == *scan2++) return (count); count++; } return (count); } #endif /* !HAVE_STRCSPN */ #if !HAVE_STRCASECMP int my_strcasecmp (s1, s2) const char *s1; const char *s2; /*! Same as the ANSI C `strcmp()' function, but case insensitive. */ { auto const Uchar *p1 = (const Uchar *) s1; auto const Uchar *p2 = (const Uchar *) s2; auto Uchar c1; auto Uchar c2; if (p1 == p2) return (0); do { c1 = tolower (*p1++); c2 = tolower (*p2++); if (!c1) break; } while (c1 == c2); return (c1 - c2); } #endif /* !HAVE_STRCASECMP */ #if !HAVE_STRNCASECMP int my_strncasecmp (s1, s2, len) const char *s1; const char *s2; int len; /*! Same as the ANSI C `strncmp()' function, but case insensitive. */ { auto const Uchar *p1 = (const Uchar *) s1; auto const Uchar *p2 = (const Uchar *) s2; auto Uchar c1; auto Uchar c2; if (!len || p1 == p2) return (0); if (len < 0) len = -len; do { c1 = tolower (*p1++); c2 = tolower (*p2++); if (!c1 || c1 != c2) return (c1 - c2); } while (--len); return (c1 - c2); } #endif /* !HAVE_STRNCASECMP */ Bool get_actual_date () /*! Gets the actual local/GMT date and time from the system resp., evaluates the "actual" date from global `rc_adate'-ptr to string. Returns TRUE if it's possible to evaluate `rc_adate', otherwise FALSE. */ { auto struct tm *sys_date; auto MY_TIME_T sys_time; static Bool got_time = FALSE; sys_time = time ((MY_TIME_T *) NULL); sys_date = localtime (&sys_time); true_day = act_day = sys_date->tm_mday; true_month = act_month = sys_date->tm_mon + 1; act_year = sys_date->tm_year; if (act_year < CENTURY) act_year += CENTURY; true_year = act_year; if (!got_time) { act_sec = sys_date->tm_sec; act_min = sys_date->tm_min; act_hour = sys_date->tm_hour; buf_ad = act_day; buf_am = act_month; buf_ay = act_year; } #if USE_RC /* Actual date modifier %DATE given. */ if (rc_adate != (char *) NULL) { auto int d = 0; auto int m = 0; auto int y = 0; auto int n = 0; auto int hn = 0; auto int hwd = 0; auto int i_dummy; auto char hc = '\0'; auto char *c_dummy = (char *) NULL; auto Bool b_dummy; if (!*rc_adate || *rc_adate == RC_HDY_CHAR) return (FALSE); /* Pre-initialize month and year to actual date. */ m = act_month; y = act_year; /* Check if a numeric date is given. */ if (isdigit (*rc_adate)) { /* Check if a numeric day in month is given. */ if ((int) strlen (rc_adate) <= 2) { d = atoi (rc_adate); if (!d) /* Error, invalid day number given. */ return (FALSE); } else (void) rc_get_date (rc_adate, lptrs3, FALSE, &b_dummy, &d, &m, &y, &n, &i_dummy, &hc, &hn, &hwd, _("Internal"), -1L, rc_adate, FALSE); } else { /* Check if textual weekday name is given. */ d = compare_d_m_name (rc_adate, DAy); if (d) { /* If a digit (1...5, 9) trails the textual weekday name, generate "N'th weekday of month" date. */ c_dummy = rc_adate; while (isalpha (*c_dummy)) c_dummy++; if (*c_dummy) { n = atoi (c_dummy); if (!n) /* Error, invalid "N'th weekday of month" given (must be 1...5, 9). */ return (FALSE); /* Check if the digit is trailed by anything further... */ c_dummy++; if (*c_dummy) /* Error, invalid "N'th weekday of month" given. */ return (FALSE); } else { /* Only textual weekday name found, so compute absolute day in month of that weekday (of current week). */ hn = act_day; i_dummy = weekday_of_date (act_day, act_month, act_year); if (d > i_dummy) do { (void) next_date (&hn, &m, &y); } while (d != weekday_of_date (hn, m, y)); else if (d < i_dummy) do { (void) prev_date (&hn, &m, &y); } while (d != weekday_of_date (hn, m, y)); d = hn; } } else { /* Check if short month name is given. */ m = compare_d_m_name (rc_adate, MOnth); if (!m) /* Error, invalid month name given. */ return (FALSE); /* Check if a day number trails textual a month name. */ c_dummy = rc_adate; while (isupper (*c_dummy) || islower (*c_dummy)) c_dummy++; if (*c_dummy) { d = atoi (c_dummy); if (!d) /* Error, invalid trailing day number given. */ return (FALSE); } else d = act_day; } } if (y >= 0) { if (!y) y = act_year; if (!m) m = act_month; if (n) { if (d > DAY_MAX) return (FALSE); if (!d) d = weekday_of_date (act_day, m, y); if (m == 2) i_dummy = days_of_february (y); else i_dummy = dvec[m - 1]; if (n == 9) d = eval_holiday (i_dummy, m, y, d, FALSE); else if ((n >= 1) && (n <= 5)) { d = eval_holiday (DAY_MIN, m, y, d, TRUE); d += (DAY_MAX * (n - 1)); /* The "N'th weekday of month" doesn't occur in month: generate no "actual" date. */ if (d > i_dummy) return (FALSE); } else return (FALSE); } else if (hc) { /* If no explicit year is given in the actual date modifier %DATE, like %0@e|t|DVAR[[-]N[WW[W]]] resp., %0*d|wN[WW[W]], compute the date respecting the displacement, which was returned by the function `rc_get_date()' in variable `&hn' and `&hwd'. */ switch (hc) { case RC_EASTER_CHAR: case RC_TODAY_CHAR: if (!precomp_date (hn, hwd, &d, &m, y, (hc == RC_EASTER_CHAR) ? EAster : TOday)) return (FALSE); break; case 'D': case 'W': if (!precomp_nth_wd (hn, hwd, &n, &d, &m, &y, ((hc == 'D') ? DAy : WEek))) return (FALSE); break; default: if (!islower (hc)) return (FALSE); else if (!precomp_date (hn, hwd, &d, &m, y, DVar)) return (FALSE); } } else if (!d) d = act_day; else if (d == 99) { /* Assume last day of month. */ if (m == 2) d = days_of_february (y); else d = dvec[m - 1]; } if (valid_date (d, m, y)) { act_day = d; act_month = m; act_year = y; } else return (FALSE); } else return (FALSE); } #endif /* USE_RC */ /* If the period of the Gregorian Reformation is past the actual local (Gregorian) system date, convert it to the proper Julian date. */ gregorian2julian (&act_day, &act_month, &act_year); if (!got_time) { got_time = TRUE; #if USE_RC /* Get the actual GMT and date. */ sys_date = gmtime (&sys_time); gmt_min = sys_date->tm_min; gmt_hour = sys_date->tm_hour; buf_gd = sys_date->tm_mday; buf_gm = sys_date->tm_mon + 1; buf_gy = sys_date->tm_year; if (buf_gy < CENTURY) buf_gy += CENTURY; /* If the period of the Gregorian Reformation is past the actual GMT (Gregorian) system date, convert it to the proper Julian date. */ gregorian2julian (&buf_gd, &buf_gm, &buf_gy); /* Compute the day difference between the actual GMT date and the local time date. */ gmt_loc_diff = (int) d_between (buf_ad, buf_am, buf_ay, buf_gd, buf_gm, buf_gy); #endif /* USE_RC */ buf_ad = act_day; buf_am = act_month; buf_ay = act_year; } return (TRUE); } int compare_d_m_name (string, mode) const char *string; const Cmode_enum mode; /*! Compares the given day/month name `string' with built-in names and returns (1...7|1...12) either if `string' matches partly (until `\0' or first digit found in `string') or `string' matches complete. If `string' doesn't match or the length of `string' is less 2 for a day name or less 3 for a month name (we need such lengths to distinguish in a save way!), the function returns 0 always. This function checks first if a native language day/month name is given, if such a name can't be found, it checks next whether an "default" English day/month name is given. Depending on mode: mode==DAy: Compares delivered day name `string' with the built-in day names and returns: 1...7 == dayname 1...7 found ; 0 otherwise mode==MOnth: Compares delivered month name `string' with the built-in month names and returns: 1...12 == monthname 1...12 found ; 0 otherwise */ { register int len = (int) strlen (string); register const int len_min = (mode == DAy) ? TXTLEN_DAY : TXTLEN_MONTH; register int i; register int imax = (mode == DAy) ? DAY_MAX : MONTH_MAX; register int j = 0; register int checks; auto const char *ptr_char = string; #ifdef GCAL_NLS if (is_en) checks = 1; else checks = 2; #else /* !GCAL_NLS */ checks = 1; #endif /* !GCAL_NLS */ if (len >= TXTLEN_DAY) { while (*(ptr_char + j) #if USE_RC && !isdigit (*(ptr_char + j)) && (*(ptr_char + j) != RC_REPEAT_CHAR) && (*(ptr_char + j) != RC_APPEARS_CHAR) #endif ) j++; if (j >= len_min) do { for (i = (mode == DAy) ? DAY_MIN : MONTH_MIN; i <= imax; i++) { if (checks == 2) ptr_char = (mode == DAy) ? day_name (i) : month_name (i); else ptr_char = (mode == DAy) ? dflt_day_name (i) : dflt_month_name (i); j = 0; while (*(ptr_char + j) && string[j]) if (tolower (*(ptr_char + j)) == tolower (string[j])) j++; else break; if (j == len #if USE_RC || (j && (isdigit (string[j]) || string[j] == RC_REPEAT_CHAR || string[j] == RC_APPEARS_CHAR)) #endif || !*(ptr_char + j)) return (i); } } while (--checks); } return (0); } int asc_sort (a, b) const char **a; const char **b; /*! The (q)sort compare function; ascending order. */ { return (strcmp (*a, *b)); } int des_sort (a, b) const char **a; const char **b; /*! The (q)sort compare function; descending order. */ { return (strcmp (*b, *a)); } Bool is_presorted (table, elems) char **table; int elems; /*! Checks whether the textual entries in `&table[]' are presorted in ascending sort order. Returns TRUE if the entries in `table' are presorted, otherwise FALSE. */ { if (--elems > 0) { register int i = 0; register int j = 0; while (elems--) { j++; if (*table[i] >= *table[j]) if (strcmp (table[i], table[j]) > 0) return (FALSE); i++; } } return (TRUE); } void reverse_order (table, elems) char **table; const int elems; /*! Rearranges (reverts) the sort order of the textual entries in `&table[]' from ascending sort order to descending sort order by swapping the `table' pointers. */ { register int right = elems - 1; if (right > 0) { register int left = 0; auto char *ptr_elem; while (left < right) { ptr_elem = table[left]; table[left++] = table[right]; table[right--] = ptr_elem; } } } const char * day_suffix (day) int day; /*! Returns the ordinal suffix (st, nd, rd or th) which is added to a single day number. */ { static const char *suffix[] = { /* *** Translators, this text should be a proper abbreviation of "fourth...". */ N_("th"), /* *** Translators, this text should be a proper abbreviation of "first". */ N_("st"), /* *** Translators, this text should be a proper abbreviation of "second". */ N_("nd"), /* *** Translators, this text should be a proper abbreviation of "third". */ N_("rd") }; register int i = 0; if (day < 0) day = -day; if (day > 10000) day %= 10000; if (day > 1000) day %= 1000; if (day > 100) day %= 100; if (day < 11 || day > 13) i = day % 10; if (i > 3) i = 0; return (_(suffix[i])); } const char * short3_day_name (day) const int day; /*! Returns the short name of the day using the `printf()' format "%-3s". */ { static const char *name[] = { N_("invalid day"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "Monday". */ N_("Mon"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "Tuesday". */ N_("Tue"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "Wednesday". */ N_("Wed"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "Thursday". */ N_("Thu"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "Friday". */ N_("Fri"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "Saturday". */ N_("Sat"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "Sunday". */ N_("Sun") }; return (((day < DAY_MIN) || (day > DAY_MAX)) ? _(name[0]) : _(name[day])); } const char * short_day_name (day) const int day; /*! Returns the short name of the day using the `printf()' format "%-2s". */ { static const char *name[] = { N_("invalid day"), /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "Monday". */ N_("Mo"), /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "Tuesday". */ N_("Tu"), /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "Wednesday". */ N_("We"), /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "Thursday". */ N_("Th"), /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "Friday". */ N_("Fr"), /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "Saturday". */ N_("Sa"), /* *** Translators, please translate this as a fixed 2-character text. *** This text should be a proper abbreviation of "Sunday". */ N_("Su") }; return (((day < DAY_MIN) || (day > DAY_MAX)) ? _(name[0]) : _(name[day])); } const char * day_name (day) const int day; /*! Returns the complete name of the day. */ { static const char *name[] = { N_("invalid day"), N_("Monday"), N_("Tuesday"), N_("Wednesday"), N_("Thursday"), N_("Friday"), N_("Saturday"), N_("Sunday") }; return (((day < DAY_MIN) || (day > DAY_MAX)) ? _(name[0]) : _(name[day])); } const char * short_month_name (month) const int month; /*! Returns the short name of the month using the `printf()' format "%-3s". */ { static const char *name[] = { N_("invalid month"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "January". */ N_("Jan"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "February". */ N_("Feb"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "March". */ N_("Mar"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "April". */ N_("Apr"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "May". */ N_("May"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "June". */ N_("Jun"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "July". */ N_("Jul"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "August". */ N_("Aug"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "September". */ N_("Sep"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "October". */ N_("Oct"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "November". */ N_("Nov"), /* *** Translators, please translate this as a fixed 3-character text. *** This text should be a proper abbreviation of "December". */ N_("Dec") }; return (((month < MONTH_MIN) || (month > MONTH_MAX)) ? _(name[0]) : _(name[month])); } const char * month_name (month) const int month; /*! Returns the complete name of the month. */ { static char *name[] = { N_("invalid month"), N_("January"), N_("February"), N_("March"), N_("April"), /* *** Translators, please translate this as the complete month name "May". *** This text contains a final BLANK character, otherwise it is not *** distinguished from the 3-letter abbreviation of the complete month *** name "May", which is also "May". *** Your translation of this text should NOT contain any final BLANK *** characters, even the abbreviated and complete month names are *** the same in the language you are translating to. */ N_("May "), N_("June"), N_("July"), N_("August"), N_("September"), N_("October"), N_("November"), N_("December") }; if (month == 5) { static char *mayname; static Bool is_initialized = FALSE; /* Now let's remove the trailing BLANK character from the complete text for the month MAY. */ if (!is_initialized) { register int len; auto char *s = _(name[month]); len = (int) strlen (s) - 1; mayname = (char *) my_malloc (len, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "mayname", 0); strcpy (mayname, s); while (*(mayname + len) == ' ') *(mayname + len--) = '\0'; is_initialized = TRUE; } return (mayname); } return (((month < MONTH_MIN) || (month > MONTH_MAX)) ? _(name[0]) : _(name[month])); } Ulint date2num (day, month, year) const int day; const int month; const int year; /*! Returns the absolute number of days of the given date since 00010101(==YYYYMMDD) respecting the missing period of the Gregorian Reformation. */ { auto Ulint mjd = (Ulint) ((year - 1) * (Ulint) (DAY_LAST) + ((year - 1) >> 2)); if (year > greg->year || ((year == greg->year) && (month > greg->month || ((month == greg->month) && (day > greg->last_day))))) mjd -= (Ulint) (greg->last_day - greg->first_day + 1); if (year > greg->year) { mjd += (((year - 1) / 400) - (greg->year / 400)); mjd -= (((year - 1) / 100) - (greg->year / 100)); if (!(greg->year % 100) && (greg->year % 400)) mjd--; } mjd += (Ulint) mvec[month - 1]; mjd += day; if ((days_of_february (year) == 29) && (month > 2)) mjd++; return (mjd); } void num2date (mjd, day, month, year) Ulint mjd; int *day; int *month; int *year; /*! Converts a delivered absolute number of days `mjd' to a standard date (since 00010101(==YYYYMMDD), returned in `&day', `&month' and `&year') respecting the missing period of the Gregorian Reformation. */ { auto double x; auto Ulint jdays = date2num (greg->first_day - 1, greg->month, greg->year); register int i; if (mjd > jdays) mjd += (Ulint) (greg->last_day - greg->first_day + 1); x = (double) mjd / (DAY_LAST + 0.25); i = (int) x; if ((double) i != x) *year = i + 1; else { *year = i; i--; } if (mjd > jdays) { /* Correction for Gregorian years. */ mjd -= (Ulint) ((*year / 400) - (greg->year / 400)); mjd += (Ulint) ((*year / 100) - (greg->year / 100)); x = (double) mjd / (DAY_LAST + 0.25); i = (int) x; if ((double) i != x) *year = i + 1; else { *year = i; i--; } if ((*year % 400) && !(*year % 100)) mjd--; } i = (int) (mjd - (Ulint) (i * (DAY_LAST + 0.25))); /* Correction for Gregorian centuries. */ if ((*year > greg->year) && (*year % 400) && !(*year % 100) && (i < ((*year / 100) - (greg->year / 100)) - ((*year / 400) - (greg->year / 400)))) i++; (void) doy2date (i, (days_of_february (*year) == 29), day, month); } Bool doy2date (doy, is_leap_year, day, month) int doy; const int is_leap_year; int *day; int *month; /*! Converts a given number of days of a year to a standard date (returned in `&day' and `&month') and returns: TRUE in case the `day_of_year' number is valid; FALSE otherwise. */ { register int i; auto Bool decrement_date; if (doy > DAY_LAST + is_leap_year || doy < DAY_MIN) return (FALSE); decrement_date = (Bool) (is_leap_year && (doy > mvec[2])); if (decrement_date) doy--; for (i = MONTH_MIN; i < MONTH_MAX; i++) { doy -= dvec[i - 1]; if (doy <= 0) { doy += dvec[i - 1]; break; } } *month = i; *day = doy; if (decrement_date && (*month == 2) && (*day == 28)) (*day)++; return (TRUE); /* Alternative floating-point algorithm for managing this stuff: ... if (doy-is_leap_year > mvec[2]) { month = (int)((63 + doy - is_leap_year) / 30.61) - 1; day = (int)(63 + doy - is_leap_year - abs((int)((month + 1) * 30.61))); } else { month = (int)((428 + doy) / 30.61) - 13; day = (int)(428 + doy - abs((int)((month + 13) * 30.61))); } ... */ } int weekday_of_date (day, month, year) const int day; const int month; const int year; /*! Returns the weekday of a Gregorian/Julian calendar date (month must be 1...12) and returns 1...7 (1==mo, 2==tu...7==su). */ { auto Ulint mjd = date2num (day, month, year) % DAY_MAX; return ((mjd > 2) ? (int) mjd - 2 : (int) mjd + 5); } int day_of_year (day, month, year) const int day; const int month; const int year; /*! Returns the day of the year of a Gregorian or Julian calendar date (month must be 1...12) and returns 1...365|366. */ { register int i; if (month < 3) i = mvec[month - 1] + day; else i = mvec[month - 1] + day + (days_of_february (year) == 29); return (i); } int days_of_february (year) const int year; /*! Returns the number of days in February --- respecting the Gregorian Reformation period likewise the leap year rule as used by the Eastern Orthodox churches. */ { register int day; if ((year > greg->year) || ((year == greg->year) && (greg->month == 1 || ((greg->month == 2) && (greg->last_day >= 28))))) { if (orthodox_calendar) day = (year & 3) ? 28 : ((!(year % 100)) ? (((year % 9) == 2 || (year % 9) == 6) ? 29 : 28) : 29); else day = (year & 3) ? 28 : ((!(year % 100) && (year % 400)) ? 28 : 29); } else day = (year & 3) ? 28 : 29; /* Exception, the year 4 AD was historically NO leap year! */ if (year == 4) day--; return (day); } Bool valid_date (day, month, year) const int day; const int month; const int year; /*! Checks whether a delivered date is valid. */ { if (day < 0 || month < MONTH_MIN || month > MONTH_MAX || ((month != 2) && (day > dvec[month - 1])) || ((month == 2) && (day > days_of_february (year)))) return (FALSE); return (TRUE); } Bool prev_date (day, month, year) int *day; int *month; int *year; /*! Sets a delivered date back by one day (to yesterday's date) respecting the missing period of the Gregorian Reformation. Returns FALSE in case a date was within the missing period of Gregorian Reformation, otherwise TRUE; */ { auto Bool no_missing_date = TRUE; if ((*day <= greg->last_day + 1) && (*day >= greg->first_day) && (*month == greg->month) && (*year == greg->year)) { no_missing_date = FALSE; *day = greg->first_day - 1; } else { (*day)--; if (!*day || !valid_date (*day, *month, *year)) { (*month)--; if (*month < MONTH_MIN) { *month = MONTH_MAX; (*year)--; } if (*month == 2) *day = days_of_february (*year); else *day = dvec[*month - 1]; } } return (no_missing_date); } Bool next_date (day, month, year) int *day; int *month; int *year; /*! Sets the delivered date forwards by one day (to tomorrow's date) respecting the missing period of the Gregorian Reformation. Returns FALSE in case a date was in the missing period of Gregorian Reformation, otherwise TRUE. */ { auto Bool no_missing_date = TRUE; if ((*day >= greg->first_day - 1) && (*day <= greg->last_day) && (*month == greg->month) && (*year == greg->year)) { no_missing_date = FALSE; *day = greg->last_day + 1; } else { (*day)++; if (!valid_date (*day, *month, *year)) { *day = DAY_MIN; if (*month == MONTH_MAX) { *month = MONTH_MIN; (*year)++; } else (*month)++; } } return (no_missing_date); } int week_number (day, month, year, is_iso_week, start_day_of_week) const int day; const int month; const int year; const Bool is_iso_week; const int start_day_of_week; /*! Returns either a ISO-8601:1988 standard week number of the given date if the `is_iso_week' variable is TRUE, or a special value for marking a special event, which can be managed by the caller in a special way if needed! Note that an ISO week starts on a Monday(=1) and ends on a Sunday(=7), and the first week of a year is the one which includes the first Thursday; equivalently, the one which includes 4th January. If the `is_iso_week' variable is FALSE, either return a non-ISO week number of the given date, or a special or a special value for marking a special event, which can be managed by the caller in a special way if needed! Note that a non-ISO week can start on any weekday, and the first week of a year is the one which includes the first starting day of the week. The function return values are: -(WEEK_MAX+1) : Date appears both in 53rd (=last) week of previous year and first days of year, BUT these first days of year are NOT IN the first week of year. -WEEK_MAX : Date appears both in 52nd (=last) week of previous year and first days of year, BUT these first days of year are NOT IN the first week of year. -(WEEK_MAX-1) : Date appears both in 51rd (=last) week of previous year and first days of year, BUT these first days of year are NOT IN the first week of year. This special event only happens in the December of the year of Gregorian Reformation or in the January of the year after the year of Gregorian Reformation! 0 : Date appears both in 53rd (=last) week of previous year and first days of year, AND these first days of year are IN the first week of year. 1...WEEK_MAX : Date appears in the year. */ { register int i = raw_week_number (day, month, year, is_iso_week, start_day_of_week); register int j; register int wmax = WEEK_MAX; if ((i > 1) && (year == greg->year)) wmax = ((DAY_LAST + (days_of_february (greg->year) == 29) - (greg->last_day - greg->first_day + 1)) / DAY_MAX) + 1; if (i >= wmax) { if (month == MONTH_MIN) { j = raw_week_number (dvec[MONTH_MAX - 1], MONTH_MAX, year - 1, is_iso_week, start_day_of_week); if (i == j) i = -i; else i = 0; } else { j = raw_week_number (DAY_MIN, MONTH_MIN, year + 1, is_iso_week, start_day_of_week); if (i == j) i = -i; else if ((j == 1) && (i == wmax + 1)) i = 0; } } else if (i == 1) { if ((is_iso_week && (weekday_of_date (DAY_MIN, MONTH_MIN, year) <= 4)) || (!is_iso_week && (weekday_of_date (DAY_MIN, MONTH_MIN, year) <= start_day_of_week))) { j = raw_week_number (dvec[MONTH_MAX - 1], MONTH_MAX, year - 1, is_iso_week, start_day_of_week); if (year - 1 == greg->year) wmax = ((DAY_LAST + (days_of_february (greg->year) == 29) - (greg->last_day - greg->first_day + 1)) / DAY_MAX) + 1; if (j != wmax) i = 0; } } else if ((i == wmax - 1) && (month == MONTH_MIN) && (year == greg->year + 1)) i = -i; return (i); } int weekno2doy (week, year, is_iso_week, start_day_of_week) int week; const int year; const Bool is_iso_week; const int start_day_of_week; /*! Returns the "day_of_year" number of a Julian or Gregorian calendar year, the given week number (either ISO-8601:1988 or non-ISO) starts at. Week number may be: (a) 0 == Returns day_of_year number of first week of year. resp., that dates, which occur both in last week of previous year and first week of year (in this case, the function return value is -5...0 indicating how many days+1 are in the previous year). (b) 1...52 == Returns day_of_year number always. (c) 53 == Returns day_of_year_number or if year has NO 53rd week, returns -WEEK_MAX [=special value]). (d) 99 == Returns day_of_year number of last week of year. Return values are: -WEEK_MAX == Event (c) has occurred and year has NO 53rd week. -5...0 == In case event (a) has occurred and the first days of year occur both in last week of previous year and first week of year. 1...365|366 == Events (b), (c) and (d). */ { register int wd = weekday_of_date (DAY_MIN, MONTH_MIN, year); register int ww = week_number (DAY_MIN, MONTH_MIN, year, is_iso_week, start_day_of_week); register int wm = week_number (dvec[MONTH_MAX - 1], MONTH_MAX, year, is_iso_week, start_day_of_week); register int wmax = WEEK_MAX; register int i = DAY_MIN; if (wm < 0) wm = -wm; if (ww == -(wmax - 1) || year == greg->year) wmax = ((DAY_LAST + (days_of_february (greg->year) == 29) - (greg->last_day - greg->first_day + 1)) / DAY_MAX) + 1; if (ww < 0) ww = -ww; if (ww > 1) i += SDAY (DAY_MAX - wd + 1, start_day_of_week); else if (!ww) i -= SDAY (wd - 1, start_day_of_week); if (wm && (wm != wmax + 1) && (week == wmax + 1)) return (-WEEK_MAX); else if (week == 99) { week = wm; if (!wm) week = wmax + 1; i += (((week - 1) * DAY_MAX)); } else { i += (((week - 1) * DAY_MAX)); if (!week && (i <= -(DAY_MAX - 1))) i += DAY_MAX; } /* Correction in case week occurs during Gregorian Reformation period. */ if (year == greg->year) if (i + (greg->last_day - greg->first_day + 1) > day_of_year (greg->last_day, greg->month, greg->year)) i += (greg->last_day - greg->first_day + 1); if (i > DAY_LAST + (days_of_february (year) == 29)) return (-WEEK_MAX); return (i); } int knuth_easter_formula (year) const int year; /*! This procedure calculates the day and month of Easter giving the year. It returns the "actual day_of_year date" of Western Eastern (not the Eastern Easter of the Eastern Orthodox churches) after AD 463. *** *** ANNOTATION by Thomas Esken , 12-DEC-1996 *** *** But in fact, this procedure works correctly for *** calculating the Easter Sunday's date after AD 29. *** (Ref.: Hans Lietzmann, Zeitrechnung, De gryter 1984, 4te Auflage) *** `golden_number' is the number of the year in the Metonic cycle, used to determine the position of the calendar Moon. `gregorian_correction' is the number of preceding years like 1700, 1800, 1900 when leap year was not held. `clavian_correction' is a correction for the Metonic cycle of about 8 days every 2500 years. `epact' is the age of the calendar Moon at the beginning of the year. `extra_days' specifies when Sunday occurs in March. `epact' specifies when Full Moon occurs. Easter is the first Sunday following the first Full Moon which occurs on or after March 21. (Ref.: De Morgan, A Budget of Paradoxes) This basic Algorithm was given by Don Knuth in CACM 5(1962), 209-210, and is altered accordingly for managing different Gregorian Reformation periods. */ { auto long extra_days; register int golden_number = (year % 19) + 1; register int century; register int gregorian_correction; register int clavian_correction; register int epact; register int day; register int month; register int easter; auto Bool was_julian = FALSE; if ((year > greg->year) || ((year == greg->year) && (greg->month < 3 || ((greg->month == 3) && (greg->last_day < 22))))) { /* Computation for Gregorian years. */ LABEL_compute_gregorian: century = year / 100 + 1; gregorian_correction = (3 * century / 4) - 12; clavian_correction = ((8 * century + 5) / 25) - 5; extra_days = (5L * year / 4) - gregorian_correction - 10; epact = (11 * golden_number + 20 + clavian_correction - gregorian_correction) % 30; /* BTW, the earliest year the calculated epact is negative or null is the year 1710! (see chapter 1.3.2 "THE MIX ASSEMBLY LANGUAGE", page 155, question 15 of Don Knuth's "The Art of Computer Programming", Vol. 1) */ if (epact <= 0) epact += 30; if (((epact == 25) && (golden_number > 11)) || epact == 24) epact++; } else { /* Computation for Julian calendar years. */ was_julian = TRUE; extra_days = (5L * year) / 4; epact = ((11 * golden_number - 4) % 30) + 1; } day = 44 - epact; if (day < 21) day += 30; day += DAY_MAX - (int) ((extra_days + day) % DAY_MAX); if (day > MONTH_LAST) { day -= MONTH_LAST; month = 4; } else month = 3; easter = day_of_year (day, month, year); /* Correction for potential Reformation period which occurred during the period Easter Sunday may take place (22-MAR...25-APR). I assume if such a Reformation periods happens, the proper solution for computing Easter Sunday's date has to be done for the Gregorian year instead of the Julian year. */ if (was_julian && (year == greg->year) && (greg->month == 3 || ((greg->month == 4) && (greg->last_day <= 25)))) { was_julian = FALSE; if ((easter >= day_of_year (greg->first_day, greg->month, greg->year)) && (easter <= day_of_year (greg->last_day, greg->month, greg->year))) goto LABEL_compute_gregorian; } return (easter); } int julian_gregorian_diff (day, month, year) const int day; const int month; const int year; /*! Returns the day difference between the given Gregorian calendar date and the according Julian calendar date, i.e. the amount of days, the Julian calendar is past the Gregorian calendar. */ { auto Ulint mjd = (Ulint) ((year - 1) * (Ulint) (DAY_LAST) + ((year - 1) >> 2)); mjd += (Ulint) (mvec[month - 1] + day); if ((days_of_february (year) == 29) && (month > 2)) mjd++; return ((int) (mjd - date2num (day, month, year))); } static void gregorian2julian (day, month, year) int *day; int *month; int *year; /*! Converts a Gregorian date to a Julian date. */ { if (*year < greg->year || ((*year == greg->year) && (*month < greg->month || ((*month == greg->month) && (*day < greg->first_day))))) { auto Greg_struct tmp_greg; auto Ulint mjd; register int diff; /* So first we need to buffer the Gregorian Reformation period actually used. */ tmp_greg.first_day = greg->first_day; tmp_greg.last_day = greg->last_day; tmp_greg.month = greg->month; tmp_greg.year = greg->year; /* Then we set the Gregorian Reformation period to the date it has happened historically (this was 05-Oct-1582...14-Oct-1582). */ greg->first_day = 5; greg->last_day = 14; greg->month = 10; greg->year = 1582; /* Now let's adjust the date. */ mjd = date2num (*day, *month, *year); diff = julian_gregorian_diff (*day, *month, *year); num2date (mjd - diff, day, month, year); /* And restore the buffered Gregorian Reformation date actually used. */ greg->year = tmp_greg.year; greg->month = tmp_greg.month; greg->last_day = tmp_greg.last_day; greg->first_day = tmp_greg.first_day; } } static int raw_week_number (day, month, year, is_iso_week, start_day_of_week) const int day; const int month; const int year; const Bool is_iso_week; const int start_day_of_week; /*! Returns either the raw ISO-8601:1988 standard week number of the given date if the `is_iso_week' variable is TRUE. Note that an ISO week starts on a Monday(=1) and ends on a Sunday(=7), and the first week of a year is the one which includes the first Thursday; equivalently, the one which includes 4th January. If the `is_iso_week' variable is FALSE, return a raw non-ISO week number of the given date. Note that a non-ISO week can start on any weekday, and the first week of a year is the one which includes the first starting day of the week. */ { register int jd = day_of_year (day, month, year); register int sd = weekday_of_date (DAY_MIN, MONTH_MIN, year); register int ww; if ((year == greg->year) && (month > greg->month || ((month == greg->month) && (day > greg->last_day)))) jd -= (greg->last_day - greg->first_day + 1); if (is_iso_week) { /* Correct the computed day_of_year number of delivered date. */ if (sd > 4) /* Starting day of year is Friday...Sunday. */ jd -= ((DAY_MAX - sd) + 1); else /* Starting day of year is Monday...Thursday. */ jd += (sd - 1); } else { /* Correct the computed day_of_year number of delivered date. */ if (sd > start_day_of_week) /* Starting day of year is greater the starting day of week. */ jd -= (DAY_MAX - (sd - start_day_of_week)); else /* Starting day of year is less than the starting day of week. */ jd += (sd - start_day_of_week); } /* Compute week number of delivered date. */ if (jd > 0) /* Date has consecutive week number of current year: Compute it. */ ww = (jd - 1) / DAY_MAX + 1; else /* Date has week number of last week of previous year: Detect that week number by calling this function recursivly ;) */ ww = raw_week_number (dvec[MONTH_MAX - 1], MONTH_MAX, year - 1, is_iso_week, start_day_of_week); return (ww); } static const char * dflt_day_name (day) const int day; /*! Returns the complete default (==English) name of the day (needed by the `compare_d_m_name()' function if another native language other than English must be supported). */ { static const char *name[] = { "invalid day", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; return (((day < DAY_MIN) || (day > DAY_MAX)) ? name[0] : name[day]); } static const char * dflt_month_name (month) const int month; /*! Returns the complete default (==English) name of the month (needed by the `compare_d_m_name()' function if another native lanuage other than English must be supported). */ { static const char *name[] = { "invalid month", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; return (((month < MONTH_MIN) || (month > MONTH_MAX)) ? name[0] : name[month]); } gcal-4.1/src/hd-data3.c0000664000000000000000000050064512727633115011516 00000000000000/*! * \file hd-data3.c * \brief All other D-L countries data which is composed into the * eternal holiday list. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include definition header file to see whether HD_TOP20CC is defined there. * Compile this module only if HD_TOP20CC is NOT defined, otherwise skip it. */ #include "tailor.h" #if !HD_TOP20CC /* * Include header files. */ # include "common.h" # include "globals.h" # include "hd-astro.h" # include "hd-defs.h" # include "hd-data.h" # include "hd-data1.h" # include "hd-data2.h" # include "hd-data4.h" # include "hd-data5.h" # include "hd-use.h" # include "utils.h" # include "hd-data3.h" /* * All other D-L countries specific holiday management functions. */ void de_by_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Bavaria. */ { ptr_cc_id = "DE_BY"; use_other_cc = !use_other_cc; de_nw_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "#", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PEACE_FESTIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF2, 8, 8, year, hd_elems, fday, count); } void de_bb_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Brandenburg. */ { if (!use_other_cc) { ptr_cc_id = "DE_BB"; use_other_cc = !use_other_cc; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } else de_hdy (init_data, detected, easter, year, hd_elems, fday, count); if (year > 1516 && year != 2017) holiday (*init_data, detected, _(hd_text[HD_REFORMATION_DAY].ht_text), ptr_cc_id, "+", dvec[10 - 1], 10, year, hd_elems, fday, count); if (year > 1989) holiday (*init_data, detected, _(hd_text[HD_GERMAN_UNITY_DAY].ht_text), ptr_cc_id, "+", 3, 10, year, hd_elems, fday, count); } void de_be_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Berlin. */ { register int day; if (!use_other_cc) { ptr_cc_id = "DE_BE"; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); } day = weekday_of_date (DAY_MIN, 11, year); day = (day < 3) ? 18 - day : 25 - day; holiday (*init_data, detected, _(hd_text[HD_DAY_OF_PRAYER_AND_REPENTANCE].ht_text), ptr_cc_id, (year > 1994) ? DIS_HLS_PREF : "+", day, 11, year, hd_elems, fday, count); } void de_hb_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Bremen. */ { ptr_cc_id = "DE_HB"; use_other_cc = !use_other_cc; de_be_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void de_bw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Baden-W"urttemberg. */ { ptr_cc_id = "DE_BW"; use_other_cc = !use_other_cc; de_nw_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); } void de_hh_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Hamburg. */ { ptr_cc_id = "DE_HH"; use_other_cc = !use_other_cc; de_be_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void de_he_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Hessen. */ { ptr_cc_id = "DE_HE"; use_other_cc = !use_other_cc; de_be_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); } void de_mv_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Mecklenburg-Vorpommern. */ { ptr_cc_id = "DE_MV"; use_other_cc = !use_other_cc; de_bb_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void de_ni_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Lower Saxony. */ { ptr_cc_id = "DE_NI"; use_other_cc = !use_other_cc; de_be_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void de_nw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/North Rhine-Westphalia. */ { if (!use_other_cc) { ptr_cc_id = "DE_NW"; use_other_cc = !use_other_cc; de_be_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); } holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); } void de_rp_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Rhineland Palatinate. */ { ptr_cc_id = "DE_RP"; use_other_cc = !use_other_cc; de_nw_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void de_st_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Saxony-Anhalt. */ { ptr_cc_id = "DE_ST"; use_other_cc = !use_other_cc; de_bb_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); } void de_sh_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Schleswig-Holstein. */ { ptr_cc_id = "DE_SH"; use_other_cc = !use_other_cc; de_be_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); } void de_sl_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Saarland. */ { ptr_cc_id = "DE_SL"; use_other_cc = !use_other_cc; de_be_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); } void de_sn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Saxony. */ { register int day; ptr_cc_id = "DE_SN"; use_other_cc = !use_other_cc; de_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 60, 0, year, hd_elems, fday, count); day = weekday_of_date (DAY_MIN, 11, year); day = (day < 3) ? 18 - day : 25 - day; holiday (*init_data, detected, _(hd_text[HD_DAY_OF_PRAYER_AND_REPENTANCE].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); if (year > 1516 && year != 2017) holiday (*init_data, detected, _(hd_text[HD_REFORMATION_DAY].ht_text), ptr_cc_id, "+", dvec[10 - 1], 10, year, hd_elems, fday, count); if (year > 1989) holiday (*init_data, detected, _(hd_text[HD_GERMAN_UNITY_DAY].ht_text), ptr_cc_id, "+", 3, 10, year, hd_elems, fday, count); } void de_th_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Germany/Thuringia. */ { ptr_cc_id = "DE_TH"; use_other_cc = !use_other_cc; de_bb_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 60, 0, year, hd_elems, fday, count); } void dj_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Djibouti. */ { ptr_cc_id = "DJ"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 27, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); } void dk_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Denmark. */ { register int day; if (!use_other_cc) ptr_cc_id = "DK"; holiday (*init_data, detected, _(hd_text[HD_PRAYER_DAY].ht_text), ptr_cc_id, "+", easter + 26, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "#", 5, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTINIMAS].ht_text), ptr_cc_id, DIS_HLS_PREF, 11, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMERS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 23, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PALM_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - DAY_MAX, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 16, 4, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void dm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Dominica. */ { register int i; ptr_cc_id = "DM"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; for (i = 2; i; i--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", easter - 46 - i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); i = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", i, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); i = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", i, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MERCHANT_DAY].ht_text), ptr_cc_id, "#", 2, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1977) for (i = 3; i <= 4; i++) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", i, 11, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void do_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Dominican Republic. */ { ptr_cc_id = "DO"; holiday (*init_data, detected, _(hd_text[HD_DUARTES_BIRTHDAY].ht_text), ptr_cc_id, "+", 26, MONTH_MIN, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_OUR_LADY_OF_ALTAGRACIA_DAY].ht_text), ptr_cc_id, "+", 21, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_OUR_LADY_OF_LAS_MERCEDES_DAY].ht_text), ptr_cc_id, "+", 24, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 6, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 27, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RESTORATION_DAY].ht_text), ptr_cc_id, "+", 16, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); } void dz_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Algeria. */ { ptr_cc_id = "DZ"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 5, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 19, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); } void ec_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Ecuador. */ { register int i; ptr_cc_id = "EC"; holiday (*init_data, detected, _(hd_text[HD_PICHINCHA_DAY].ht_text), ptr_cc_id, "+", 24, 5, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_OF_CUENCA].ht_text), ptr_cc_id, "+", 3, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_OF_GUAYAQUIL].ht_text), ptr_cc_id, DIS_HLS_PREF2, 9, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_OF_QUITO].ht_text), ptr_cc_id, "+", 6, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SIMON_BOLIVAR_DAY].ht_text), ptr_cc_id, "+", 24, 7, year, hd_elems, fday, count); i = eval_holiday (dvec[6 - 1], 6, year, 5, FALSE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", i, 6, year, hd_elems, fday, count); for (i = 2; i; i--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", easter - 46 - i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 10, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void ee_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Estonia. */ { ptr_cc_id = "EE"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 24, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, "+", 24, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMERS_EVE].ht_text), ptr_cc_id, "+", 23, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PENTECOST].ht_text), ptr_cc_id, "+", easter + 49, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RESTORATION_DAY].ht_text), ptr_cc_id, "+", 20, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WHIT_MONDAY].ht_text), ptr_cc_id, "+", easter + 50, 0, year, hd_elems, fday, count); } void eg_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Egypt. */ { ptr_cc_id = "EG"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_UNION_DAY].ht_text), ptr_cc_id, "+", 22, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SNIFF_THE_BREEZE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 22, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SINAI_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 25, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 6, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", DAY_MIN, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EVACUATION_DAY].ht_text), ptr_cc_id, "+", 18, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 23, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 23, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 23, MONTH_MAX, year, hd_elems, fday, count); if (year > 1974) holiday (*init_data, detected, _(hd_text[HD_SUEZ_VICTORY_DAY].ht_text), ptr_cc_id, "+", 24, 10, year, hd_elems, fday, count); if (year > 283) { auto int greg_diff; auto int d; /* The Coptic Christians in Egyt compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); if ((year != 284) && (year != 1924)) { register int i; auto int m; auto int y; d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, m, year, hd_elems, fday, count); } d = day_of_year (29, 8, year) + ((year & 3) == 3) + greg_diff; /* Calculate the year number used in the Coptic calendar. */ sprintf (s2, "%s %d", _(hd_text[HD_COPTIC_NEW_YEARS_DAY].ht_text), year - 283); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PENTECOST].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 49, 0, year, hd_elems, fday, count); } } void eh_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Western Sahara. */ { ptr_cc_id = "EH"; use_other_cc = !use_other_cc; ma_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void er_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Eritrea. */ { ptr_cc_id = "ER"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_ARMED_STRUGGLE].ht_text), ptr_cc_id, "+", DAY_MIN, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 24, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", 20, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); /* The Christian Western churches holidays. */ holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "#", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "#", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "#", easter - 2, 0, year, hd_elems, fday, count); if (year > 283) { auto int greg_diff; auto int d; /* The Coptic Christians in Eritrea compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); if ((year != 284) && (year != 1924)) { register int i; auto int m; auto int y; d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "#", d, m, year, hd_elems, fday, count); } d = day_of_year (29, 8, year) + ((year & 3) == 3) + greg_diff; /* Calculate the year number used in the Coptic calendar. */ sprintf (s2, "%s %d", _(hd_text[HD_COPTIC_NEW_YEARS_DAY].ht_text), year - 283); holiday (*init_data, detected, s2, ptr_cc_id, "#", d, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "#", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "#", easter - 2, 0, year, hd_elems, fday, count); } } void et_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Ethiopia. */ { register int i; auto int greg_diff; auto int d; auto int m; auto int y; ptr_cc_id = "ET"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; if (year > 1990) holiday (*init_data, detected, _(hd_text[HD_DOWNFALL_OF_THE_DERGUE].ht_text), ptr_cc_id, "+", 28, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 2, 3, year, hd_elems, fday, count); /* The Ethiopian Christians in Ethiopia compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); if (year != 1924) { d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); } d = day_of_year (6, MONTH_MIN, year); if (year > 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", d, 0, year, hd_elems, fday, count); d = day_of_year (29, 8, year) + (days_of_february (year) == 29) + greg_diff; /* Calculate the year number used in the Ethiopic calendar. */ sprintf (s2, "%s %d", _(hd_text[HD_ETHIOPIC_NEW_YEARS_DAY].ht_text), year - 7); holiday (*init_data, detected, s2, ptr_cc_id, "+", d, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CROSS_RAISING_DAY].ht_text), ptr_cc_id, "+", d + 16, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); } void fi_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Finland. */ { register int day; register int i; ptr_cc_id = "FI"; holiday (*init_data, detected, _(hd_text[HD_ALEKSIS_KIVI_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 10, 10, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_SWEDEN_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 6, 11, year, hd_elems, fday, count); day = day_of_year (31, 10, year); i = weekday_of_date (31, 10, year); if (i != 6) { if (i < 6) day += ((DAY_MAX - i) - 1); else day += 6; } holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", day, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF2, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 11, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_FATHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "#", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 3, 0, year, hd_elems, fday, count); day = eval_holiday (20, 6, year, 6, TRUE); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMERS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF2, day - 1, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PALM_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - DAY_MAX, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PENTECOST].ht_text), ptr_cc_id, "+", easter + 49, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 19, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_VALENTINES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void fj_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Fiji. */ { register int day; ptr_cc_id = "FJ"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); /* The following holidays are oftenly observed on another day by the Government, but the rules change almost every year! */ holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 10, 10, year, hd_elems, fday, count); day = eval_holiday (dvec[5 - 1], 5, year, 5, FALSE); holiday (*init_data, detected, _(hd_text[HD_RATU_SUKUMA_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 28, 7, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, "+", 7, 3, year, hd_elems, fday, count); } void fk_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Falkland Islands. */ { register int day; register int i; ptr_cc_id = "FK"; /* I assume that the U.K. holiday observance rule is valid in this country/territory, if not, please let me know! */ gb_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = 14; i = weekday_of_date (day, 6, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); } void fm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Federation States of Micronesia. */ { register int day; ptr_cc_id = "FM"; holiday (*init_data, detected, _(hd_text[HD_CHARTER_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 23, 9, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_YAP_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, DAY_MIN, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 11, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "#", 8, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CULTURE_DAY].ht_text), ptr_cc_id, "#", dvec[3 - 1], 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "#", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_PROCLAMATION].ht_text), ptr_cc_id, "+", 10, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "#", 11, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 4, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 11, year, 4, TRUE) + (3 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_UNITED_NATIONS_DAY].ht_text), ptr_cc_id, "+", 24, 10, year, hd_elems, fday, count); } void fo_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Faroes. */ { ptr_cc_id = "FO"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 5, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", 25, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRAYER_DAY].ht_text), ptr_cc_id, "+", easter + 26, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_OLAVS_DAY].ht_text), ptr_cc_id, "+", 29, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_OLAVS_EVE].ht_text), ptr_cc_id, "+", 28, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF2, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void ga_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Gabon. */ { register int day; ptr_cc_id = "GA"; day = DAY_MIN; if (weekday_of_date (day, 11, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = DAY_MIN; if (weekday_of_date (day, 5, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = 6; if (weekday_of_date (day, 5, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = 15; if (weekday_of_date (day, 8, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); day = 16; if (weekday_of_date (day, 8, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void gb_en_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Great Britain/England and Wales. */ { register int day; ptr_cc_id = "GB_EN"; gb_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); } void gb_ni_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Great Britain/Northern Ireland. */ { register int day; register int i; ptr_cc_id = "GB_NI"; gb_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = 12; i = weekday_of_date (day, 7, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_BATTLE_OF_BOYNE].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); day = 17; i = weekday_of_date (day, 3, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_ST_PATRICKS_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); } void gb_sl_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Great Britain/Scotland. */ { register int day; register int i; ptr_cc_id = "GB_SL"; use_other_cc = !use_other_cc; gb_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; day = 2; i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BURNS_NIGHT].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); } void gd_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Grenada. */ { register int day; register int i; ptr_cc_id = "GD"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE) + DAY_MAX; for (i = 0; i < 2; i++) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", day + i, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); for (i = 0; i < 2; i++) holiday (*init_data, detected, _(hd_text[HD_SLAVE_LIBERATION_DAY].ht_text), ptr_cc_id, "+", day + i, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1973) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 7, 2, year, hd_elems, fday, count); if (year > 1982) holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, "+", 25, 10, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void ge_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Georgia. */ { register int i; auto int greg_diff; auto int d; auto int m; auto int y; ptr_cc_id = "GE"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_SVETITSKHOVLOBA].ht_text), ptr_cc_id, "+", 14, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); /* The Christians in Georgia compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); d = DAY_MIN; if (year != 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); if (year != 1924) { d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); } d = day_of_year (6, MONTH_MIN, year) + greg_diff; holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", d, 0, year, hd_elems, fday, count); d = day_of_year (15, 8, year) + greg_diff; holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", d, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, "+", 13, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_GEORGES_DAY].ht_text), ptr_cc_id, "+", 23, 11, year, hd_elems, fday, count); if (year > 1991) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 26, 5, year, hd_elems, fday, count); } void gf_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in French Guiana. */ { ptr_cc_id = "GF"; use_other_cc = !use_other_cc; fr_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_CAYENNE_FESTIVAL].ht_text), ptr_cc_id, "+", 16, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ASH_WEDNESDAY].ht_text), ptr_cc_id, "+", easter - 46, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, "+", 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, "+", easter - 47, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SLAVE_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 10, 6, year, hd_elems, fday, count); } void gh_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Ghana. */ { ptr_cc_id = "GH"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_FARMERS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 6, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1978) holiday (*init_data, detected, _(hd_text[HD_PEOPLES_UPRISING_DAY].ht_text), ptr_cc_id, "+", 4, 6, year, hd_elems, fday, count); } void gi_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Gibraltar. */ { register int day; register int i; ptr_cc_id = "GI"; day = eval_holiday (dvec[5 - 1], 5, year, DAY_MIN, FALSE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (dvec[8 - 1], 8, year, DAY_MIN, FALSE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += 2; else if (i == DAY_MIN) day++; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); day = 25; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); day = 9; if (weekday_of_date (day, 3, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_COMMONWEALTH_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = DAY_MIN; if (weekday_of_date (day, 5, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = 10; if (weekday_of_date (day, 9, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, 9, year, hd_elems, fday, count); day = DAY_MIN; i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX + 2; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); } void gl_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Greenland. */ { ptr_cc_id = "GL"; use_other_cc = !use_other_cc; dk_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "#", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 21, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 6, MONTH_MIN, year, hd_elems, fday, count); } void gm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Gambia. */ { ptr_cc_id = "GM"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 18, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); } void gn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Guinea. */ { ptr_cc_id = "GN"; use_other_cc = !use_other_cc; fr_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_REFERENDUM_DAY].ht_text), ptr_cc_id, "+", 28, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 3, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 2, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 10, 11, year, hd_elems, fday, count); } void gp_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Guadeloupe. */ { ptr_cc_id = "GP"; use_other_cc = !use_other_cc; mq_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_ST_BARTHOLOMEW_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 24, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_LAURENTIUS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 10, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTINIMAS].ht_text), ptr_cc_id, DIS_HLS_PREF2, 11, 11, year, hd_elems, fday, count); } void gq_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Equatorial Guinea. */ { ptr_cc_id = "GQ"; holiday (*init_data, detected, _(hd_text[HD_OAU_DAY].ht_text), ptr_cc_id, "+", 25, 5, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 3, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HUMAN_RIGHTS_DAY].ht_text), ptr_cc_id, "+", 10, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRESIDENTS_DAY].ht_text), ptr_cc_id, "+", 5, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void gr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Greece. */ { if (!use_other_cc) ptr_cc_id = "GR"; /* The Christians in Greece compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches new calendar. */ easter = orthodox_easter (year, NULL, 1924, 3, 10, 22); holiday (*init_data, detected, _(hd_text[HD_ASH_MONDAY].ht_text), ptr_cc_id, "+", easter - 48, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CROSS_RAISING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 14, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_OUR_THEOTOKOS].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_TUESDAY].ht_text), ptr_cc_id, "#", easter + 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "#", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 25, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 28, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SCHOOL_HOLIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 30, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void gs_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in South Georgia and South Sandwich Islands. */ { ptr_cc_id = "GS"; gb_hdy (init_data, detected, easter, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); } void gt_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Guatemala. */ { ptr_cc_id = "GT"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", dvec[6 - 1], 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF2, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HOLY_WEDNESDAY].ht_text), ptr_cc_id, "+", easter - 4, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 15, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 20, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF2, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void gu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Guam. */ { register int day; ptr_cc_id = "GU"; /* I assume that no U.S. holiday observance rule is valid in this country/territory, if not, please let me know! */ observe_us_hdy = SASA_SUSU; us_hdy (init_data, detected, easter, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_OUR_LADY_OF_CAMARIN_DAY].ht_text), ptr_cc_id, "+", 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, "+", 2, 11, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 3, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_DISCOVERY_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 21, 7, year, hd_elems, fday, count); } void gw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Guinea-Bissau. */ { ptr_cc_id = "GW"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEROES_DAY].ht_text), ptr_cc_id, "+", 20, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 10, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DAY_OF_RECONCILIATION].ht_text), ptr_cc_id, "+", 14, 1, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); } void gy_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Guyana. */ { register int day; ptr_cc_id = "GY"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 7, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CARICOM_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 26, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 23, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SLAVE_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 5, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void hk_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Hong Kong. */ { register int day; register int i; ptr_cc_id = "HK"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_SAR_ESTABLISHMENT_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 7, year, hd_elems, fday, count); day = 26; i = weekday_of_date (day, MONTH_MAX, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, "+", easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); day = DAY_MIN; i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", day, MONTH_MIN, year, hd_elems, fday, count); if (year == 1999) holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "#", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1948) for (day = DAY_MIN; day <= 2; day++) holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); } void hm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Heard and Mc Donald Islands. */ { ptr_cc_id = "HM"; use_other_cc = !use_other_cc; fr_hdy (init_data, detected, easter, year, hd_elems, fday, count); use_other_cc = !use_other_cc; } void hn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Honduras. */ { ptr_cc_id = "HN"; holiday (*init_data, detected, _(hd_text[HD_MORAZAN_DAY].ht_text), ptr_cc_id, "+", 3, 10, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_PANAMERICAN_DAY].ht_text), ptr_cc_id, "+", 14, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 21, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_COLUMBUS_DAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 15, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void hr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Croatia. */ { ptr_cc_id = "HR"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, "+", 5, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); if (year > 1943) holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_ARMED_STRUGGLE].ht_text), ptr_cc_id, "+", 22, 6, year, hd_elems, fday, count); if (year > 1991) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 30, 5, year, hd_elems, fday, count); } void ht_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Haiti. */ { ptr_cc_id = "HT"; holiday (*init_data, detected, _(hd_text[HD_AMERICAS_DAY].ht_text), ptr_cc_id, "+", 14, 4, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_RESPECT_FOR_THE_AGED_DAY].ht_text), ptr_cc_id, "+", 2, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DEATH_OF_H_CHRISTOPHE].ht_text), ptr_cc_id, "+", 8, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DEATH_OF_J_DESSALINES].ht_text), ptr_cc_id, "+", 17, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DEATH_OF_T_LOUVERTURE].ht_text), ptr_cc_id, DIS_HLS_PREF2, 7, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, "+", 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 18, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DISCOVERY_DAY].ht_text), ptr_cc_id, "+", 5, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", 18, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ANNUNCIATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, DIS_HLS_PREF, 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, "+", easter - 47, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_ANDREWS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[11 - 1], 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 22, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_UNITED_NATIONS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 24, 10, year, hd_elems, fday, count); } void hu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Hungary. */ { ptr_cc_id = "HU"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF2, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 20, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 15, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 23, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year < 1990) { if (year > 1916) holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 7, 11, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 4, 4, year, hd_elems, fday, count); } if (year > 1999) holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", 1, 11, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void id_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Indonesia. */ { ptr_cc_id = "ID"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_KARTINI_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 21, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); if (year > 1944) { holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 5, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 17, 8, year, hd_elems, fday, count); } } void ie_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Ireland. */ { register int day; register int i; ptr_cc_id = "IE"; day = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "#", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_JUNE_HOLIDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = DAY_MIN; i = weekday_of_date (day, MONTH_MIN, year); if (i > 5) day += ((DAY_MAX - i) + 1); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (dvec[10 - 1], 10, year, DAY_MIN, FALSE); holiday (*init_data, detected, _(hd_text[HD_OCTOBER_HOLIDAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); day = 17; if (weekday_of_date (day, 3, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_ST_PATRICKS_DAY].ht_text), ptr_cc_id, "+", day, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, DIS_HLS_PREF2, 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1903) holiday (*init_data, detected, _(hd_text[HD_BLOOMSDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 16, 6, year, hd_elems, fday, count); } void in_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in India. */ { ptr_cc_id = "IN"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_MAHATMA_GANDHIS_BIRTHDAY].ht_text), ptr_cc_id, "+", 2, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MIN, year, hd_elems, fday, count); if (year > 1956) { register int day = 22; /* Calculate the year number used in the Indian **CIVIL** (reformed) calendar corresponding to Caitra 1. */ sprintf (s2, "%s %d", _(hd_text[HD_INDIAN_NEW_YEARS_DAY].ht_text), year - 78); day -= (days_of_february (year) == 29); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF2, day, 3, year, hd_elems, fday, count); } } void iq_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Iraq. */ { ptr_cc_id = "IQ"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_BAATH_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 17, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FAO_DAY].ht_text), ptr_cc_id, "+", 17, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 14, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PEACE_FESTIVAL].ht_text), ptr_cc_id, "+", 8, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 8, 2, year, hd_elems, fday, count); } void ir_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Iran. */ { ptr_cc_id = "IR"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); persian_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_OIL_INDUSTRY_DAY].ht_text), ptr_cc_id, "+", 20, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 2, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 11, 2, year, hd_elems, fday, count); } void is_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Iceland. */ { register int day; ptr_cc_id = "IS"; day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; day = eval_holiday (19, 4, year, 4, TRUE); holiday (*init_data, detected, _(hd_text[HD_BEGINNING_OF_SUMMER].ht_text), ptr_cc_id, "+", day, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "#", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "#", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "#", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, "+", easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_BUN_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 18, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 17, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "#", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void jm_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Jamaica. */ { register int day; ptr_cc_id = "JM"; holiday (*init_data, detected, _(hd_text[HD_ASH_WEDNESDAY].ht_text), ptr_cc_id, "+", easter - 46, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); day = day_of_year (day, 8, year); holiday (*init_data, detected, _(hd_text[HD_SLAVE_LIBERATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day - 1, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE) + (3 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 10, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HEROES_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void jo_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Jordan. */ { ptr_cc_id = "JO"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; /* The Christians in Jordan compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches new calendar. */ easter = orthodox_easter (year, NULL, 1924, 3, 10, 22); holiday (*init_data, detected, _(hd_text[HD_ARBOR_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 15, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 10, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CORONATION_DAY].ht_text), ptr_cc_id, "+", 11, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 25, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PALM_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - DAY_MAX, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, "+", 14, 11, year, hd_elems, fday, count); } void ke_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Kenya. */ { ptr_cc_id = "KE"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_MADARAKA_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NOI_DAY].ht_text), ptr_cc_id, "+", 10, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 20, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CIVIC_HOLIDAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 12, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); } void kg_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Kyrgyzstan. */ { auto int d; auto int greg_diff; ptr_cc_id = "KG"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); persian_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; if ((year > 1916) && (year < 1991)) { holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 9, 5, year, hd_elems, fday, count); } if (year > 1990) { holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 5, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", dvec[8 - 1], 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 2, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", 13, 6, year, hd_elems, fday, count); } /* The Christians in Kyrgyzstan compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); d = DAY_MIN; if (year != 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); if (year != 1924) { register int i; auto int m; auto int y; d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); } holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); } void kh_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Cambodia. */ { register int day; register int i; ptr_cc_id = "KH"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_PARIS_PEACE_AGREEMENT_DAY].ht_text), ptr_cc_id, "+", 23, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 24, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HUMAN_RIGHTS_DAY].ht_text), ptr_cc_id, "+", 10, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 9, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); day = day_of_year (30, 10, year); for (i = 0; i < 3; i++) holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, "+", day + i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); } void ki_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Kiribati. */ { register int day; ptr_cc_id = "KI"; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEALTH_AND_SPORTS_DAY].ht_text), ptr_cc_id, "+", 7, 8, year, hd_elems, fday, count); for (day = 12; day <= 14; day++) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, "+", 7, 8, year, hd_elems, fday, count); } void km_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Comoros. */ { ptr_cc_id = "KM"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_DEATH_OF_PRESIDENT_CHEIKH].ht_text), ptr_cc_id, "+", 18, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DEATH_OF_PRESIDENT_SOILIH].ht_text), ptr_cc_id, "+", 29, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DEATH_OF_PRESIDENT_ABDALLAH].ht_text), ptr_cc_id, "+", 26, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 6, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_OAU_DAY].ht_text), ptr_cc_id, "+", 25, 5, year, hd_elems, fday, count); } void kn_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in St Kitts and Nevis. */ { register int day; ptr_cc_id = "KN"; day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BANK_HOLIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, day + 1, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", 2, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRINCE_OF_WALES_BIRTHDAY].ht_text), ptr_cc_id, "+", 14, 11, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1982) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 19, 9, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void kp_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in North Korea. */ { ptr_cc_id = "KP"; use_other_cc = !use_other_cc; if ((year > 1909) && (year < 1945)) japanese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); else chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); use_other_cc = !use_other_cc; if (year > 1911) { holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 8, 3, year, hd_elems, fday, count); if (year > 1918) holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_MOVEMENT_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 3, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); if (year > 1947) { holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", 27, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ANNIVERSARY_OF_ARMED_STRUGGLE].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_KIM_JONG_ILS_BIRTHDAY].ht_text), ptr_cc_id, "+", 16, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_KIM_IL_SUNGS_BIRTHDAY].ht_text), ptr_cc_id, "+", 15, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 25, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FOUNDING_OF_THE_COMMUNIST_PARTY].ht_text), ptr_cc_id, "+", 10, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_FOUNDATION_DAY].ht_text), ptr_cc_id, "+", 9, 9, year, hd_elems, fday, count); } if (year > 1952) holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 27, 7, year, hd_elems, fday, count); } } void kw_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Kuwait. */ { ptr_cc_id = "KW"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 25, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); if (year > 1989) holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 26, 2, year, hd_elems, fday, count); } void ky_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Caiman Islands. */ { register int day; ptr_cc_id = "KY"; holiday (*init_data, detected, _(hd_text[HD_ASH_WEDNESDAY].ht_text), ptr_cc_id, "+", easter - 46, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 7, year, DAY_MIN, TRUE); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, "+", day, 7, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MIN, TRUE) + (2 * DAY_MAX); holiday (*init_data, detected, _(hd_text[HD_DISCOVERY_DAY].ht_text), ptr_cc_id, "+", day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX + 2; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); day = 11; if (weekday_of_date (day, 11, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, "+", day, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void kz_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Kazakhstan. */ { auto int d; auto int greg_diff; ptr_cc_id = "KZ"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); persian_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; if ((year > 1916) && (year < 1991)) { holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, "+", 9, 5, year, hd_elems, fday, count); } if (year > 1990) { holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 25, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 15, MONTH_MAX, year, hd_elems, fday, count); } /* The Christians in Kazakhstan compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); d = DAY_MIN; if (year != 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); if (year != 1924) { register int i; auto int m; auto int y; d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); } holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); } void la_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Laos. */ { ptr_cc_id = "LA"; use_other_cc = !use_other_cc; chinese_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id, FALSE); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_DAY_OF_THE_FREE_LAOS].ht_text), ptr_cc_id, "+", 13, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FOUNDING_OF_PEOPLES_PARTY].ht_text), ptr_cc_id, "+", 22, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 20, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 2, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LIBERATION_DAY].ht_text), ptr_cc_id, "+", 12, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WOMENS_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); } void lb_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Lebanon. */ { auto int d; auto int greg_diff; ptr_cc_id = "LB"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; if (year > 674) holiday (*init_data, detected, _(hd_text[HD_ST_MAROONS_DAY].ht_text), ptr_cc_id, "+", 9, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SOLIDARITY_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EVACUATION_DAY].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 22, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", 6, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 16, 4, year, hd_elems, fday, count); /* The Christian Western churches holidays. */ holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); /* The Christians in Lebanon compute all holiday dates which are depending on Easter Sunday's date in the way done by the Orthodox Christian Eastern churches old calendar, AND also in the way done by Christian Western churches. */ easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); d = DAY_MIN; if (year != 1924) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, d, 0, year, hd_elems, fday, count); if (year != 1924) { register int i; auto int m; auto int y; d = 25; m = MONTH_MAX; y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "#", d, m, year, hd_elems, fday, count); } holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); } void lc_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in St Lucia. */ { register int day; ptr_cc_id = "LC"; holiday (*init_data, detected, _(hd_text[HD_ST_MARGUERITES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 17, 10, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ST_CEDILIAS_DAY].ht_text), ptr_cc_id, "+", 22, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, "+", 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ASH_WEDNESDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); for (day = 2; day; day--) holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", easter - 46 - day, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); day = 13; if (weekday_of_date (day, MONTH_MAX, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", 2, MONTH_MIN, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 6, year, 6, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_THE_QUEENS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 11, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, DIS_HLS_PREF, 29, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_ROSE_OF_LIMA].ht_text), ptr_cc_id, DIS_HLS_PREF, 30, 8, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 8, year, 5, TRUE); holiday (*init_data, detected, _(hd_text[HD_SLAVE_LIBERATION_DAY].ht_text), ptr_cc_id, "+", day, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); day = 5; if (weekday_of_date (day, 10, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_THANKSGIVING_DAY].ht_text), ptr_cc_id, "+", day, 10, year, hd_elems, fday, count); if (year > 1978) { day = 22; if (weekday_of_date (day, 2, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", day, 2, year, hd_elems, fday, count); } base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void li_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Liechtenstein. */ { ptr_cc_id = "LI"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, "+", 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, "+", easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_CANDLEMAS].ht_text), ptr_cc_id, "+", 2, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, "+", 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_NATIVITY].ht_text), ptr_cc_id, "+", 8, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SHROVE_TUESDAY].ht_text), ptr_cc_id, "+", easter - 47, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_BERCHTOLDS_DAY].ht_text), ptr_cc_id, "+", 2, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, "+", 19, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_STEPHENS_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, "+", 6, MONTH_MIN, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void lk_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Sri Lanka. */ { auto double mjd; auto Ulint lunation = 0L; register int doy; register int doy2; register int i; auto int the_hour; auto int the_min; auto int d = DAY_MIN; auto int m = MONTH_MIN; auto int y = year; auto Bool set_hdy; auto Bool hd1_set = FALSE; auto Bool hd2_set = FALSE; auto Bool hd3_set = FALSE; ptr_cc_id = "LK"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, easter - 2, 0, year, hd_elems, fday, count); /* Detect the Full Moon phases for Sri Lanka, also called ``Poya Days'', which are celebrated as holidays. The calculation of them is based on Sri Lanka local time, not on UTC/GMT. Colombo local time (not respecting Daylight Savings) is UTC/GMT-5.5. */ while (y == year) { mjd = moonphase (MPHASE_FUL, FALSE, NULL, &lunation, &d, &m, &y, 5, 30); if (y == year) { val2hours (mjd, &the_hour, &the_min, NULL); sprintf (s2, "%s %02d%s%02d", _(hd_text[HD_POYA_DAY].ht_text), the_hour, time_sep, the_min); holiday (*init_data, detected, s2, ptr_cc_id, "+", d, m, year, hd_elems, fday, count); /* The following public holidays are observed at the previous working day if they fall on a Saturday. If they fall on a Sunday or ``Poya Day'', they are observed at the next working day. */ doy2 = day_of_year (d, m, year); if (!hd1_set) { set_hdy = FALSE; doy = day_of_year (4, 2, year); i = weekday_of_date (4, 2, year); if (i == 6) { if (doy - 1 == doy2) { doy -= 2; set_hdy = TRUE; } } else if (i == DAY_MAX) { if (doy + 1 == doy2) { doy += 2; set_hdy = TRUE; } } else if (doy == doy2) { if (i < 5) doy++; else doy += ((DAY_MAX - i) + 1); set_hdy = TRUE; } if (set_hdy) { holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", doy, 0, year, hd_elems, fday, count); hd1_set = TRUE; } } if (!hd2_set) { set_hdy = FALSE; doy = day_of_year (DAY_MIN, 5, year); i = weekday_of_date (DAY_MIN, 5, year); if (i == 6) { if (doy - 1 == doy2) { doy -= 2; set_hdy = TRUE; } } else if (i == DAY_MAX) { if (doy + 1 == doy2) { doy += 2; set_hdy = TRUE; } } else if (doy == doy2) { if (i < 5) doy++; else doy += ((DAY_MAX - i) + 1); set_hdy = TRUE; } if (set_hdy) { holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", doy, 0, year, hd_elems, fday, count); hd2_set = TRUE; } } if (!hd3_set) { set_hdy = FALSE; doy = day_of_year (25, MONTH_MAX, year); i = weekday_of_date (25, MONTH_MAX, year); if (i == 6) { if (doy - 1 == doy2) { doy -= 2; set_hdy = TRUE; } } else if (i == DAY_MAX) { if (doy + 1 == doy2) { doy += 2; set_hdy = TRUE; } } else if (doy == doy2) { if (i < 5) doy++; else doy += ((DAY_MAX - i) + 1); set_hdy = TRUE; } if (set_hdy) { holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", doy, 0, year, hd_elems, fday, count); hd3_set = TRUE; } } lunation++; } } if (!hd1_set) { doy = day_of_year (4, 2, year); i = weekday_of_date (4, 2, year); if (i == 6) doy--; else if (i == DAY_MAX) doy++; holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", doy, 0, year, hd_elems, fday, count); } if (!hd2_set) { doy = day_of_year (DAY_MIN, 5, year); i = weekday_of_date (DAY_MIN, 5, year); if (i == 6) doy--; else if (i == DAY_MAX) doy++; holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", doy, 0, year, hd_elems, fday, count); } if (!hd3_set) { doy = day_of_year (25, MONTH_MAX, year); i = weekday_of_date (25, MONTH_MAX, year); if (i == 6) doy--; else if (i == DAY_MAX) doy++; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", doy, 0, year, hd_elems, fday, count); } } void lr_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Liberia. */ { ptr_cc_id = "LR"; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_REDEMPTION_DAY].ht_text), ptr_cc_id, "+", 12, 4, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_J_ROBERTS_BIRTHDAY].ht_text), ptr_cc_id, "+", 15, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_S_DOES_BIRTHDAY].ht_text), ptr_cc_id, "+", 6, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_W_TUBMANS_BIRTHDAY].ht_text), ptr_cc_id, "+", 29, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ARMED_FORCES_DAY].ht_text), ptr_cc_id, "+", 11, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FLAG_DAY].ht_text), ptr_cc_id, "+", 24, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 26, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HEROES_DAY].ht_text), ptr_cc_id, "+", 8, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_UNITY_DAY].ht_text), ptr_cc_id, "+", 14, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_OAU_DAY].ht_text), ptr_cc_id, "+", 25, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PRAYER_DAY].ht_text), ptr_cc_id, "+", 14, 4, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_YOUTH_DAY].ht_text), ptr_cc_id, "+", 29, 10, year, hd_elems, fday, count); } void ls_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Lesotho. */ { ptr_cc_id = "LS"; holiday (*init_data, detected, _(hd_text[HD_MOSHESHOES_DAY].ht_text), ptr_cc_id, "+", 12, 3, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ARBOR_DAY].ht_text), ptr_cc_id, "+", 21, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, day, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FAMILY_DAY].ht_text), ptr_cc_id, "+", 4, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 4, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THE_KINGS_BIRTHDAY].ht_text), ptr_cc_id, "+", 2, 5, year, hd_elems, fday, count); } void lt_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Lithuania. */ { ptr_cc_id = "LT"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CONSTITUTION_ANNIVERSARY].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_DEFENDERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 13, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 16, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMERS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 23, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_MOURNING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RE_DAY].ht_text), ptr_cc_id, "+", 6, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_RESTORATION_DAY].ht_text), ptr_cc_id, "+", 11, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); } void lu_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Luxembourg. */ { register int day; ptr_cc_id = "LU"; holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 11, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF2, 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CARNIVAL].ht_text), ptr_cc_id, "+", easter - 48, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FRENCH_CULTURE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 27, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LUXEMBOURG_CITY_KERMIS].ht_text), ptr_cc_id, DIS_HLS_PREF2, DAY_MIN, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, "+", 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAY_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); day = 23; if (weekday_of_date (day, 6, year) == DAY_MAX) day++; holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", day, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_QUINQUAGESIMA_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 49, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_STEPHENS_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, ptr_cc_id); } void lv_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Latvia. */ { register int day; ptr_cc_id = "LV"; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, "+", easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_DAY].ht_text), ptr_cc_id, "+", 18, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_INDEPENDENCE_PROCLAMATION].ht_text), ptr_cc_id, DIS_HLS_PREF, 4, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_LABOUR_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, "+", 24, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMERS_EVE].ht_text), ptr_cc_id, "+", 23, 6, year, hd_elems, fday, count); day = eval_holiday (DAY_MIN, 5, year, DAY_MAX, TRUE) + DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_MOTHERS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, day, 5, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_MOURNING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PENTECOST].ht_text), ptr_cc_id, "+", easter + 49, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REMEMBRANCE_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 4, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_STEPHENS_DAY].ht_text), ptr_cc_id, "+", 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, "+", dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); if (year > 1944) holiday (*init_data, detected, _(hd_text[HD_VICTORY_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 9, 5, year, hd_elems, fday, count); } void ly_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all specific holidays celebrated in Libyan Arab Jamahiriya. */ { ptr_cc_id = "LY"; use_other_cc = !use_other_cc; islamic_hdy (init_data, detected, year, hd_elems, fday, count, ptr_cc_id); use_other_cc = !use_other_cc; holiday (*init_data, detected, _(hd_text[HD_AUTHORITIYS_POWER_DAY].ht_text), ptr_cc_id, "+", 3, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EVACUATION_DAY].ht_text), ptr_cc_id, "+", 28, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EVACUATION_DAY].ht_text), ptr_cc_id, "+", 11, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EVACUATION_DAY].ht_text), ptr_cc_id, "+", 7, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", DAY_MIN, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_REVOLUTION_DAY].ht_text), ptr_cc_id, "+", 23, 7, year, hd_elems, fday, count); } #endif /* !HD_TOP20CC */ gcal-4.1/src/hd-astro.c0000664000000000000000000015111612244130561011634 00000000000000/*! * \file hd-astro.c * \brief Astronomical and support functions used by the eternal holiday list. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include header files. */ #include "tailor.h" #if HAVE_MATH_H && HAVE_LIBM # include #endif #include "common.h" #include "globals.h" #include "utils.h" #include "hd-astro.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `hd-astro.c'. */ static double meeus_equinox_solstice __P_ ((const double mode, const int year, int hour, int min)); __END_DECLARATIONS /* * Function implementations. */ static double meeus_equinox_solstice (mode, year, hour, min) const double mode; const int year; int hour; int min; /*! According to MODE (== 0.0|90.0|180.0|270.0), this function calculates the dates of equinoxes and solstices for the given YEAR (range: 0001...9999) and returns the properly converted Julian/Gregorian date and time fraction. Calculations are done for a line at a definite meridian expressed as a time value in HOUR and MIN. If HOUR and MIN are set to zero, calculations are done for UTC/GMT. If HOUR and MIN have a positive sign, calculations are done for meridians East of Greenwich, otherwise for meridians West of Greenwich. The computed result is quite precise when compared with the results created by standard ephemeris software (aa, moontool, xephemer...) for the years AD 0001...5999 (about), but the ``error'' increases significantly for far future years. As you surely know, such an ``error'' can be really critical when it appears for dates computed near midnight, by reason the computed date can be different the ``true'' date! The formula is taken from Jean Meeus' "Astronomical Algorithms" and adapted to Gcal's needs. */ { auto double meridian_time = HHMM2DAY (hour, min); auto double jc = ((double) year - 2000.0) / 1000; auto double mjd; auto double w; auto double c; auto double l; auto int d; auto int m; auto int y; switch ((int) ROUND (mode)) { case 0: /* Northern hemisphere: vernal equinox Southern hemisphere: autumnal equinox */ mjd = 730201.30984 + (365242.37404 + (0.05169 - (0.00411 + 0.00057 * jc) * jc) * jc) * jc; break; case 90: /* Northern hemisphere: summer solstice Southern hemisphere: winter solstice */ mjd = 730294.06767 + (365241.62603 + (0.00325 + (0.00888 - 0.00030 * jc) * jc) * jc) * jc; break; case 180: /* Northern hemisphere: autumnal equinox Southern hemisphere: vernal equinox */ mjd = 730387.71715 + (365242.01767 - (0.11575 - (0.00337 + 0.00078 * jc) * jc) * jc) * jc; break; case 270: /* Northern hemisphere: winter solstice Southern hemisphere: summer solstice */ mjd = 730477.55925 + (365242.74049 - (0.06223 + (0.00823 - 0.00032 * jc) * jc) * jc) * jc; break; default: abort (); /* Error, invalid mode! */ } /* Epoch starts 01-Jan-2000 12:00:00 UT. */ jc = (mjd - 730122.5) / 36525.0; /* Perform some correction terms. */ w = 35999.373 * jc - 2.47; l = 1.0 + 0.0334 * cos (TORAD (w)) + 0.0007 * cos (TORAD (2.0 * w)); c = 0.00485 * cos (TORAD (324.96 + 1934.136 * jc)) + 0.00203 * cos (TORAD (337.23 + 32964.467 * jc)) + 0.00199 * cos (TORAD (342.08 + 20.186 * jc)) + 0.00182 * cos (TORAD (27.85 + 445267.112 * jc)) + 0.00156 * cos (TORAD (73.14 + 45036.886 * jc)) + 0.00136 * cos (TORAD (171.52 + 22518.443 * jc)) + 0.00077 * cos (TORAD (222.54 + 65928.934 * jc)) + 0.00074 * cos (TORAD (296.72 + 3034.906 * jc)) + 0.00070 * cos (TORAD (243.58 + 9037.513 * jc)) + 0.00058 * cos (TORAD (119.81 + 33718.147 * jc)) + 0.00052 * cos (TORAD (297.17 + 150.678 * jc)) + 0.00050 * cos (TORAD (21.02 + 2281.226 * jc)) + 0.00045 * cos (TORAD (247.54 + 29929.562 * jc)) + 0.00044 * cos (TORAD (325.15 + 31555.956 * jc)) + 0.00029 * cos (TORAD (60.93 + 4443.417 * jc)) + 0.00018 * cos (TORAD (155.12 + 67555.328 * jc)) + 0.00017 * cos (TORAD (288.79 + 4562.452 * jc)) + 0.00016 * cos (TORAD (198.04 + 62894.029 * jc)) + 0.00014 * cos (TORAD (199.76 + 31436.921 * jc)) + 0.00012 * cos (TORAD (95.39 + 14577.848 * jc)) + 0.00012 * cos (TORAD (287.11 + 31931.756 * jc)) + 0.00012 * cos (TORAD (320.81 + 34777.259 * jc)) + 0.00009 * cos (TORAD (227.73 + 1222.114 * jc)) + 0.00008 * cos (TORAD (15.45 + 16859.074 * jc)); mjd += (c / l); /* Convert TDT to UT. */ num2date ((Ulint) mjd, &d, &m, &y); val2hours (mjd, &hour, &min, NULL); mjd -= SS2DAY (delta_t (d, m, y, hour, min)); /* Convert UT to local time. */ mjd += meridian_time; return (mjd); } double equinox_solstice (longitude, day, month, year, hour, min) const double longitude; int *day; int *month; int *year; const int hour; const int min; /*! Wrapper/driver function for selecting the proper function that calculates the date and time of the equinoxes/solstices ``most precise'' for the given YEAR. */ { auto double mjd; if (*year < 6000) { mjd = meeus_equinox_solstice (longitude, *year, hour, min); num2date ((Ulint) mjd, day, month, year); } else mjd = sun_longitude (longitude, day, month, year, hour, min, FALSE); return (mjd); } double delta_t (day, month, year, hour, min) const int day; const int month; const int year; const int hour; const int min; /*! Returns the approximate Delta_T in seconds plus fraction for the given Julian/Gregorian calendar date (range 00010101..99991231), which is the difference between Terrestrial Dynamical Time, TDT (formerly called Ephemeris Time, ET), and Universal Time, UT, so `Delta_T = TDT - UT'. This function is taken from the `aa.arc' archive, which is a nice and precise ephemeris calculation software written by Stephen L. Moshier ; adapted and pretty-printed according to Gcal's needs. One major adaption made is to let the table of Delta_T values start in AD 1630 instead of AD 1620, because this fits better to the Delta_T values prior AD 1630 that are calculated by using the formula from Stevenson and Morrison (now, the gap is only about 30 seconds from 31-Dec-1629 to 01-Jan-1630 instead of about 60 seconds from 31-Dec-1619 to 01-Jan-1620)! Here are Stephen's essential (and reformatted) remarks: The tabulated values of Delta_T, in hundredths of a second, were taken from "The Astronomical Almanac", page K8. This function adjusts for a value of secular tidal acceleration NDOT. It is -25.8 arcsec per century squared for JPL's DE403 ephemeris. ELP2000 and DE200 use the value -23.8946. The tabulated range is 1620.0...2004.0. Bessel's interpolation formula is implemented to obtain fourth order interpolated values at intermediate times. Updated Delta_T predictions can be obtained from this network archive: ftp://maia.usno.navy.mil/ser7/deltat.[preds|data] For dates earlier than the tabulated range, this function calculates approximate formulae of Stephenson and Morrison or K. M. Borkowski. These approximations have an estimated error of 15 minutes at 1500 BC. They are not adjusted for small improvements in the current estimate of NDOT because the formulas were derived from studies of ancient eclipses and other historical information, whose interpretation depends only partly on NDOT. A quadratic extrapolation formula, that agrees in value and slope with current data, predicts future values of Delta_T. References: * Stephenson, F. R., and L. V. Morrison, "Long-term changes in the rotation of the Earth: 700 BC to AD 1980", Philosophical Transactions of the Royal Society of London Series A 313, 47-70 (1984). Note: Stephenson and Morrison's table starts at the year 1630. * Borkowski, K. M., "ELP2000-85 and the Dynamical Time - Universal Time relation", Astronomy and Astrophysics 205, L8-L10 (1988). Note: Borkowski's formula is derived from eclipses going back to 2137 BC and uses lunar position based on tidal coefficient of -23.9 arcsec/cy^2. * Chapront-Touze, Michelle, and Jean Chapront, "Lunar Tables and Programs from 4000 BC to AD 8000", Willmann-Bell 1991. Note: Their table agrees with the one here, but the entries are rounded to the nearest whole second. The Chapronts' table does not agree with the Almanac prior to 1630. * Stephenson, F. R., and M. A. Houlden, "Atlas of Historical Eclipse Maps", Cambridge U. Press (1986). * U.S. Government Printing Office, "The Astronomical Almanac" (AA), 1986. */ { static short int dt_table[] = { /* The actual accuracy decreases rapidly prior to 1780! Years 1620.0...1659.0. */ #if 0 12400, 11900, 11500, 11000, 10600, 10200, 9800, 9500, 9100, 8800, #endif 8500, 8200, 7900, 7700, 7400, 7200, 7000, 6700, 6500, 6300, 6200, 6000, 5800, 5700, 5500, 5400, 5300, 5100, 5000, 4900, 4800, 4700, 4600, 4500, 4400, 4300, 4200, 4100, 4000, 3800, /* Years 1660.0...1699.0. */ 3700, 3600, 3500, 3400, 3300, 3200, 3100, 3000, 2800, 2700, 2600, 2500, 2400, 2300, 2200, 2100, 2000, 1900, 1800, 1700, 1600, 1500, 1400, 1400, 1300, 1200, 1200, 1100, 1100, 1000, 1000, 1000, 900, 900, 900, 900, 900, 900, 900, 900, /* Years 1700.0...1739.0. */ 900, 900, 900, 900, 900, 900, 900, 900, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1200, 1200, 1200, 1200, 1200, 1200, /* Years 1740.0...1779.0. */ 1200, 1200, 1200, 1200, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1700, 1700, 1700, 1700, 1700, /* Years 1780.0...1819.0. */ 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1600, 1600, 1600, 1600, 1500, 1500, 1400, 1400, 1370, 1340, 1310, 1290, 1270, 1260, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1240, 1230, 1220, /* Years 1820.0...1859.0. */ 1200, 1170, 1140, 1110, 1060, 1020, 960, 910, 860, 800, 750, 700, 660, 630, 600, 580, 570, 560, 560, 560, 570, 580, 590, 610, 620, 630, 650, 660, 680, 690, 710, 720, 730, 740, 750, 760, 770, 770, 780, 780, /* Years 1860.0...1899.0. */ 788, 782, 754, 697, 640, 602, 541, 410, 292, 182, 161, 10, -102, -128, -269, -324, -364, -454, -471, -511, -540, -542, -520, -546, -546, -579, -563, -564, -580, -566, -587, -601, -619, -664, -644, -647, -609, -576, -466, -374, /* Years 1900.0...1939.0. */ -272, -154, -2, 124, 264, 386, 537, 614, 775, 913, 1046, 1153, 1336, 1465, 1601, 1720, 1824, 1906, 2025, 2095, 2116, 2225, 2241, 2303, 2349, 2362, 2386, 2449, 2434, 2408, 2402, 2400, 2387, 2395, 2386, 2393, 2373, 2392, 2396, 2402, /* Years 1940.0...1979.0. */ 2433, 2483, 2530, 2570, 2624, 2677, 2728, 2778, 2825, 2871, 2915, 2957, 2997, 3036, 3072, 3107, 3135, 3168, 3218, 3268, 3315, 3359, 3400, 3447, 3503, 3573, 3654, 3743, 3829, 3920, 4018, 4117, 4223, 4337, 4449, 4548, 4646, 4752, 4853, 4959, /* Years 1980.0...1995.0. */ 5054, 5138, 5217, 5296, 5379, 5434, 5487, 5532, 5582, 5630, 5686, 5757, 5831, 5912, 5998, 6078, /* Years 1996.0...2011.0 extrapolated values (USNO). */ 6163, 6240, 6330, 6410, 6480, 6580, 6700, 6800, 6900, 7000, 7100, 7200, 7300, 7400, 7500, 7600 }; auto double julian_years; auto double result; auto double p; auto double b; static int dt_table_size = sizeof dt_table / sizeof (short int); static int dt_table_end; static int dt_table_start = 1630; auto int dt_diff[6]; register int n; register int i; register int j; static Bool is_initialized = FALSE; if (!is_initialized) { dt_table_end = dt_table_start + dt_table_size - 1; is_initialized = TRUE; } /* Epoch starts 01-Jan-2000 00:00:00 UT. */ julian_years = 2000.0 + (date2num (day, month, year) + HHMM2DAY (hour, min) - 730122.0) / 365.25; if (year > dt_table_end) { #if 0 /* Morrison, L. V. and F. R. Stephenson, "Sun and Planetary System", Vol 96,73 eds. W. Fricke, G. Teleki, Reidel, Dordrecht (1982). */ b = 0.01 * (julian_years - 1800.0) - 0.1; return (-15.0 + 32.5 * b * b); #endif /* 0 */ /* Extrapolate forward by a second-degree curve that agrees with the most recent data in value and slope, and vaguely fits over the past century. This idea communicated by Paul Muller, who says NASA used to do something like it. */ b = julian_years - dt_table_end; /* Slope. */ p = dt_table[dt_table_size - 1] - dt_table[dt_table_size - 2]; /* Square term. */ result = (dt_table[dt_table_size - 101] - (dt_table[dt_table_size - 1] - 100.0 * p)) * 0.0001; return (0.01 * (dt_table[dt_table_size - 1] + p * b + result * b * b)); } if (year < dt_table_start) { b = 0.01 * (julian_years - 2000.0); if (year >= 948) /* Stephenson and Morrison, stated domain is 948.0...1600.0: 25.5(centuries from 1800)^2 - 1.9159(centuries from 1955)^2. */ return ((23.58 * b + 100.3) * b + 101.6); /* Borkowski. */ b += 3.75; return (35.0 * b * b + 40.0); } do { /* Besselian interpolation from tabulated values. See AA page K11. */ i = year - dt_table_start; j = i + 1; /* Zeroth order estimate is value at start of year. */ result = dt_table[i]; if (j >= dt_table_size) break; /* The fraction of tabulation interval. */ p = julian_years - year; /* First order interpolated value. */ result += (p * (dt_table[j] - dt_table[i])); if (i - 1 < 0 || i + 2 >= dt_table_size) break; /* Make table of first differences. */ j = i - 2; for (n = 0; n < 5; n++, j++) { if (j < 0 || j + 1 >= dt_table_size) dt_diff[n] = 0; else dt_diff[n] = dt_table[j + 1] - dt_table[j]; } /* Compute second differences. */ for (n = 0; n < 4; n++) dt_diff[n] = dt_diff[n + 1] - dt_diff[n]; b = 0.25 * p * (p - 1.0); result += b * (dt_diff[1] + dt_diff[2]); if (i + 2 >= dt_table_size) break; /* Compute third differences. */ for (n = 0; n < 3; n++) dt_diff[n] = dt_diff[n + 1] - dt_diff[n]; b = 2.0 * b / 3.0; result += ((p - 0.5) * b * dt_diff[1]); if (i - 2 < 0 || i + 3 > dt_table_size) break; /* Compute fourth differences. */ for (n = 0; n < 2; n++) dt_diff[n] = dt_diff[n + 1] - dt_diff[n]; b = 0.125 * b * (p + 1.0) * (p - 2.0); result += (b * (dt_diff[0] + dt_diff[1])); } while (FALSE); /* The "Astronomical Almanac" table is corrected by adding the expression `-0.000091*(NDOT+26)*(julian_years-1955)^2 seconds' to entries prior to 1955 (AA page K8), where NDOT is the secular tidal term in the mean motion of the Moon. Entries after 1955 are referred to atomic time standards and are not affected by errors in lunar or planetary theory. */ result *= 0.01; if (year < 1955) { b = (julian_years - 1955.0); result += (-0.000091 * (-25.8 + 26.0) * b * b); } return (result); } double moonphase (phase_selector, find_eclipse, eclipse_type, lunation, day, month, year, hour, min) const double phase_selector; const Bool find_eclipse; double *eclipse_type; Ulint *lunation; int *day; int *month; int *year; int hour; int min; /*! According to PHASE_SELECTOR, this function calculates the requested Moon phase, which occurs on or later the given Julian/Gregorian date (range 00010101...99991231). This is the case if LUNATION is set to zero. If LUNATION is set to a value greater than zero, this function calculates the requested Moon phase for the given LUNATION. The LUNATION is a posivite integer number counted from the beginning of the Christian Era by reason I define that the LUNATION number 1 is equivalent to the New Moon phase on AD 13-Jan-0001. If FIND_ECLIPSE is TRUE, this functions also checks whether a lunar eclipse happens while the Full Moon phase occurs (MPHASE_FUL), respectively, whether also a solar eclipse happens while the New Moon phase occurs (MPHASE_NEW). If an eclipse occurs during such a Moon phase, its Julian date and time fraction based on the Christian Era is returned via the address of ECLIPSE_TYPE, otherwise ECLIPSE_TYPE is set to SPECIAL_VALUE. If an eclipse occurs, ECLIPSE_TYPE also contains the type of the eclipse, which is added by using a proper (large) constant value that identifies the type of the eclipse. Returns the calculated Julian date and time fraction of the requested Moon phase based on the Christian Era, which is a number starting from 1 at AD 01-Jan-0001. Properly converted, this number is also passed via the addresses of DAY, MONTH and YEAR. And furthermore, the (calculated) lunation number is passed via the address of LUNATION, too. Calculations are done for a line at a definite meridian expressed as a time value in HOUR and MIN. If HOUR and MIN are set to zero, calculations are done for UTC/GMT. If HOUR and MIN have a positive sign, calculations are done for meridians East of Greenwich, otherwise for meridians West of Greenwich. The base formula is taken from Jean Meeus' "Astronomical Algorithms" and adapted to Gcal's needs. */ { auto double the_lunation; auto double jc_julian_centuries; auto double jc_jc; auto double julian_date; auto double sea_sun_eccent_anomaly; auto double sea_sea; auto double sma_sun_mean_anomaly; auto double sma_2; auto double mma_moon_mean_anomaly; auto double mma_2; auto double mma_3; auto double mma_m_sma; auto double mma_p_sma; auto double mla_moon_latitude; auto double mla_2; auto double moon_longitude; auto double meridian_time = HHMM2DAY (hour, min); auto double mjd = 0.0; auto double jd = 0.0; auto double jd2; auto double a; auto double coeff1; auto double coeff2; register int selector = (int) ROUND (phase_selector * 4.0); auto Bool is_lunation_given = (*lunation != 0L); if (!is_lunation_given) { /* Convert local time to UT. */ jd = date2num (*day, *month, *year) + meridian_time; num2date ((Ulint) jd, day, month, year); val2hours (jd, &hour, &min, NULL); /* Convert UT to TDT. */ mjd = jd + SS2DAY (delta_t (*day, *month, *year, hour, min)); /* Calculate the approximate lunation number first. */ the_lunation = (Slint) ((mjd + 0.11111112) / 29.5305892) + 1.0; *lunation = (Ulint) the_lunation; } else the_lunation = *lunation; /* Normalize the lunation number so it refers to Christian Era's New Moon phase at 13-Jan-0001, which I've defined as LUNATION number 1. */ the_lunation -= (24725.0 - phase_selector); LOOP { jc_julian_centuries = the_lunation / 1236.85; jc_jc = jc_julian_centuries * jc_julian_centuries; /* Approximated Julian Date. */ jd2 = julian_date = 2451550.09765 + 29.530588853 * the_lunation + jc_jc * (0.0001337 + jc_julian_centuries * (-0.000000150 + 0.00000000073 * jc_julian_centuries)); sea_sun_eccent_anomaly = 1.0 + jc_julian_centuries * (-0.002516 + -0.0000074 * jc_julian_centuries); sma_sun_mean_anomaly = TORAD (2.5534 + 29.10535669 * the_lunation + jc_jc * (-0.0000218 + -0.00000011 * jc_julian_centuries)); mma_moon_mean_anomaly = TORAD (201.5643 + 385.81693528 * the_lunation + jc_jc * (0.0107438 + jc_julian_centuries * (0.00001239 + -0.000000058 * jc_julian_centuries))); mla_moon_latitude = TORAD (160.7108 + 390.67050274 * the_lunation + jc_jc * (-0.0016341 * jc_julian_centuries * (-0.00000227 + 0.000000011 * jc_julian_centuries))); moon_longitude = TORAD (124.7746 - 1.56375580 * the_lunation + jc_jc * (0.0020691 + 0.00000215 * jc_julian_centuries)); mla_2 = 2.0 * mla_moon_latitude; sma_2 = 2.0 * sma_sun_mean_anomaly; mma_2 = 2.0 * mma_moon_mean_anomaly; mma_3 = 3.0 * mma_moon_mean_anomaly; mma_m_sma = mma_moon_mean_anomaly - sma_sun_mean_anomaly; mma_p_sma = mma_moon_mean_anomaly + sma_sun_mean_anomaly; sea_sea = sea_sun_eccent_anomaly * sea_sun_eccent_anomaly; /* Calculate correction values. */ a = TORAD (299.77 + 0.107408 * the_lunation - 0.009173 * jc_jc); coeff1 = 0.000325 * sin (a) + 0.000165 * sin (TORAD (251.88 + 0.016321 * the_lunation)) + 0.000164 * sin (TORAD (251.83 + 26.651886 * the_lunation)) + 0.000126 * sin (TORAD (349.42 + 36.412478 * the_lunation)) + 0.000110 * sin (TORAD (84.66 + 18.206239 * the_lunation)) + 0.000062 * sin (TORAD (141.74 + 53.303771 * the_lunation)) + 0.000060 * sin (TORAD (207.14 + 2.453732 * the_lunation)) + 0.000056 * sin (TORAD (154.84 + 7.306860 * the_lunation)) + 0.000047 * sin (TORAD (34.52 + 27.261239 * the_lunation)) + 0.000042 * sin (TORAD (207.19 + 0.121824 * the_lunation)) + 0.000040 * sin (TORAD (291.34 + 1.844379 * the_lunation)) + 0.000037 * sin (TORAD (161.72 + 24.198154 * the_lunation)) + 0.000035 * sin (TORAD (239.56 + 25.513099 * the_lunation)) + 0.000023 * sin (TORAD (331.55 + 3.592518 * the_lunation)); if (!(selector & 1)) coeff2 = -0.00111 * sin (mma_moon_mean_anomaly - mla_2) - 0.00057 * sin (mma_moon_mean_anomaly + mla_2) + 0.00056 * sin (mma_2 + sma_sun_mean_anomaly) * sea_sun_eccent_anomaly - 0.00042 * sin (mma_3) + 0.00042 * sin (sma_sun_mean_anomaly + mla_2) * sea_sun_eccent_anomaly + 0.00038 * sin (sma_sun_mean_anomaly - mla_2) * sea_sun_eccent_anomaly - 0.00024 * sin (mma_2 - sma_sun_mean_anomaly) * sea_sun_eccent_anomaly - 0.00017 * sin (moon_longitude) - 0.00007 * sin (mma_moon_mean_anomaly + sma_2) + 0.00004 * sin (mma_2 - mla_2) + 0.00004 * sin (3.0 * sma_sun_mean_anomaly) + 0.00003 * sin (mma_p_sma - mla_2) + 0.00003 * sin (mma_2 + mla_2) - 0.00003 * sin (mma_p_sma + mla_2) + 0.00003 * sin (mma_m_sma + mla_2) - 0.00002 * sin (mma_m_sma - mla_2) - 0.00002 * sin (mma_3 + sma_sun_mean_anomaly) + 0.00002 * sin (4.0 * mma_moon_mean_anomaly); else coeff2 = 0.00306 - 0.00038 * cos (sma_sun_mean_anomaly) * sea_sun_eccent_anomaly + 0.00026 * cos (mma_moon_mean_anomaly) - 0.00002 * cos (mma_m_sma) + 0.00002 * cos (mma_p_sma) + 0.00002 * cos (mla_2); /* Correct Julian Date. */ switch (selector) { case 0: /* New Moon phase. */ julian_date += (-0.40720 * sin (mma_moon_mean_anomaly) + 0.17241 * sin (sma_sun_mean_anomaly) * sea_sun_eccent_anomaly + 0.01608 * sin (mma_2) + 0.01039 * sin (mla_2) + 0.00739 * sin (mma_m_sma) * sea_sun_eccent_anomaly - 0.00514 * sin (mma_p_sma) * sea_sun_eccent_anomaly + 0.00208 * sin (sma_2) * sea_sea); break; case 2: /* Full Moon phase. */ julian_date += (-0.40614 * sin (mma_moon_mean_anomaly) + 0.17302 * sin (sma_sun_mean_anomaly) * sea_sun_eccent_anomaly + 0.01614 * sin (mma_2) + 0.01043 * sin (mla_2) + 0.00734 * sin (mma_m_sma) * sea_sun_eccent_anomaly - 0.00515 * sin (mma_p_sma) * sea_sun_eccent_anomaly + 0.00209 * sin (sma_2) * sea_sea); break; case 3: /* Last quarter phase. */ coeff2 = -coeff2; /* Fallthrough. */ case 1: /* First quarter phase. */ julian_date += (-0.62801 * sin (mma_moon_mean_anomaly) + 0.17172 * sin (sma_sun_mean_anomaly) * sea_sun_eccent_anomaly - 0.01183 * sin (mma_p_sma) * sea_sun_eccent_anomaly + 0.00862 * sin (mma_2) + 0.00804 * sin (mla_2) + 0.00454 * sin (mma_m_sma) * sea_sun_eccent_anomaly + 0.00204 * sin (sma_2) * sea_sea - 0.00180 * sin (mma_moon_mean_anomaly - mla_2) - 0.00070 * sin (mma_moon_mean_anomaly + mla_2) - 0.00040 * sin (mma_3) - 0.00034 * sin (mma_2 - sma_sun_mean_anomaly) * sea_sun_eccent_anomaly + 0.00032 * sin (sma_sun_mean_anomaly + mla_2) * sea_sun_eccent_anomaly + 0.00032 * sin (sma_sun_mean_anomaly - mla_2) * sea_sun_eccent_anomaly - 0.00028 * sin (mma_moon_mean_anomaly + sma_2) * sea_sea + 0.00027 * sin (mma_2 + sma_sun_mean_anomaly) * sea_sun_eccent_anomaly - 0.00017 * sin (moon_longitude) - 0.00005 * sin (mma_m_sma - mla_2) + 0.00004 * sin (mma_2 + mla_2) - 0.00004 * sin (mma_p_sma + mla_2) + 0.00004 * sin (mma_moon_mean_anomaly - sma_2) + 0.00003 * sin (mma_p_sma - mla_2) + 0.00003 * sin (3.0 * sma_sun_mean_anomaly) + 0.00002 * sin (mma_2 - mla_2) + 0.00002 * sin (mma_m_sma + mla_2) - 0.00002 * sin (mma_3 + sma_sun_mean_anomaly)); break; default: /* This case must be an internal error! */ abort (); } julian_date += (coeff1 + coeff2); /* Convert to Christian Era. */ julian_date -= (MIN_BCE_TO_1_CE - 1.5); /* Convert TDT to UT. */ num2date ((Ulint) julian_date, day, month, year); val2hours (julian_date, &hour, &min, NULL); julian_date -= SS2DAY (delta_t (*day, *month, *year, hour, min)); /* Convert UT to local time. */ julian_date += meridian_time; num2date ((Ulint) julian_date, day, month, year); if (!is_lunation_given) { /* And check whether we have found the proper Moon phase. */ if ((Ulint) julian_date < (Ulint) jd) { /* No, let's try the next lunation. */ the_lunation += 1.0; (*lunation)++; } else break; } else break; } if (eclipse_type != (double *) NULL) *eclipse_type = SPECIAL_VALUE; if (find_eclipse && !(selector & 1)) { if (eclipse_type == (double *) NULL) /* Internal error, invalid address for ECLIPSE_MODE given. */ abort (); if (sin (abs (mla_moon_latitude)) <= 0.36) { auto double f; auto double f_2; auto double p; auto double q; auto double g; auto double u; f = mla_moon_latitude - 0.02665 * sin (moon_longitude); f_2 = 2.0 * f; p = 0.2070 * sin (sma_sun_mean_anomaly) * sea_sun_eccent_anomaly + 0.0024 * sin (sma_2) * sea_sun_eccent_anomaly - 0.0392 * sin (mma_moon_mean_anomaly) + 0.0116 * sin (mma_2) - 0.0730 * sin (mma_p_sma) * sea_sun_eccent_anomaly + 0.0067 * sin (mma_m_sma) * sea_sun_eccent_anomaly + 0.0118 * sin (f_2); q = 5.2207 - 0.0048 * cos (sma_sun_mean_anomaly) * sea_sun_eccent_anomaly + 0.0020 * cos (sma_2) * sea_sun_eccent_anomaly - 0.3299 * cos (mma_moon_mean_anomaly) - 0.0060 * cos (mma_p_sma) * sea_sun_eccent_anomaly + 0.0041 * cos (mma_m_sma) * sea_sun_eccent_anomaly; g = (p * cos (f) + q * sin (f)) * (1.0 - 0.0048 * cos (abs (f))); u = 0.0059 + 0.0046 * cos (sma_sun_mean_anomaly) * sea_sun_eccent_anomaly - 0.0182 * cos (mma_moon_mean_anomaly) + 0.0004 * cos (mma_2) - 0.0005 * cos (mma_p_sma); if (phase_selector == MPHASE_FUL) { /* Find lunar eclipse. */ f = (1.0248 - u - abs (g)) / 0.545; if (f > -1.059) { if (f < 0.0) *eclipse_type = ECLIPSE_PENUMBRAL; else { if (((1.0128 - u - abs (g)) / 0.545 > 0.0) && ((0.4678 - u) * (0.4678 - u) - g * g > 0.0)) *eclipse_type = ECLIPSE_TOTAL; else *eclipse_type = ECLIPSE_PARTIAL; } coeff1 = -0.4065; coeff2 = 0.1727; } } else /* Find solar eclipse. */ if (abs (g) <= 1.5433 + u) { if (((g >= -0.9972) && (g <= 0.9972)) || ((abs (g) >= 0.9972) && (abs (g) < 0.9972 + abs (u)))) { if (u < 0.0 || ((g > 0.0) && (u >= 0.0) && (u <= 0.0047) && (u < 0.00464 * sqrt (1.0 - g * g)))) *eclipse_type = ECLIPSE_TOTAL; else *eclipse_type = ECLIPSE_ANNULAR; } else *eclipse_type = ECLIPSE_PARTIAL; coeff1 = -0.4075; coeff2 = 0.1721; } if (*eclipse_type != SPECIAL_VALUE) { auto int d; auto int m; auto int y; jd2 += (coeff1 * sin (mma_moon_mean_anomaly) + coeff2 * sin (sma_sun_mean_anomaly) * sea_sun_eccent_anomaly + 0.0161 * sin (mma_2) - 0.0097 * sin (f_2) + 0.0073 * sin (mma_m_sma) * sea_sun_eccent_anomaly - 0.0050 * sin (mma_p_sma) * sea_sun_eccent_anomaly - 0.0023 * sin (mma_moon_mean_anomaly - f_2) + 0.0021 * sin (sma_2) * sea_sun_eccent_anomaly + 0.0012 * sin (mma_moon_mean_anomaly + f_2) + 0.0006 * sin (mma_2 + sma_sun_mean_anomaly) * sea_sun_eccent_anomaly - 0.0004 * sin (mma_3) - 0.0003 * sin (sma_sun_mean_anomaly + f_2) * sea_sun_eccent_anomaly + 0.0003 * sin (a) - 0.0002 * sin (sma_sun_mean_anomaly - f_2) * sea_sun_eccent_anomaly - 0.0002 * sin (mma_2 - sma_sun_mean_anomaly) * sea_sun_eccent_anomaly - 0.0002 * sin (moon_longitude)); /* Convert to Christian Era. */ jd2 -= (MIN_BCE_TO_1_CE - 1.5); /* Convert TDT to UT. */ num2date ((Ulint) jd2, &d, &m, &y); val2hours (jd2, &hour, &min, NULL); jd2 -= SS2DAY (delta_t (d, m, y, hour, min)); /* Convert UT to local time. */ jd2 += meridian_time; *eclipse_type += jd2; } } } return (julian_date); } double next_sun_longitude (longitude, step, mjd, day, month, year, hour, min) double *longitude; const double step; const double mjd; int *day; int *month; int *year; const int hour; const int min; /*! Calculates and returns the Julian/Gregorian date and time fraction (properly converted, and this number is also passed via the addresses of DAY, MONTH and YEAR), at which the true solar longitude degree has moved by STEP degrees from the base LONGITUDE in the given base YEAR. The date of the LONGITUDE, expressed as a Julian/Gregorian date and time fraction, must be given via MJD, so the date of the ``next'' longitude can be computed (which can possibly be a date in a ``next'' year). The caller has to guarantee that LONGITUDE and STEP are set to proper values within the range 0...359.9~. Calculations are done for a line at a definite meridian expressed as a time value in HOUR and MIN. If HOUR and MIN are set to zero, calculations are done for UTC/GMT. If HOUR and MIN have a positive sign, calculations are done for meridians East of Greenwich, otherwise for meridians West of Greenwich. If LONGITUDE does not appear in YEAR, or LONGITUDE is during the period 00010101...0001-ONE-DAY-PRIOR-VERNAL_EQUINOX, SPECIAL_VALUE is returned. */ { auto double next; *longitude += step; if (*longitude >= DEGS_PER_24_HOURS) *longitude = (double) ((((int) *longitude) % (int) DEGS_PER_24_HOURS) + (*longitude - (int) *longitude)); next = sun_longitude (*longitude, day, month, year, hour, min, TRUE); if ((Slint) next - (Slint) mjd < 0L || (Slint) next - (Slint) mjd > DAY_LAST || next == SPECIAL_VALUE) { if ((Slint) next - (Slint) mjd > DAY_LAST) { (*year)--; next = sun_longitude (*longitude, day, month, year, hour, min, FALSE); } else { (*year)++; next = sun_longitude (*longitude, day, month, year, hour, min, TRUE); } } return (next); } double sun_longitude (longitude, day, month, year, hour, min, next_mode) const double longitude; int *day; int *month; int *year; int hour; int min; const Bool next_mode; /*! If LONGITUDE is set to SPECIAL_VALUE, this function calculates and returns the approximate apparent geocentric solar ecliptic longitude degree for the given Julian/Gregorian date (range 00010101...99991231), which occurs at HOUR:MIN UTC/GMT. The addresses of DAY, MONTH and YEAR remain untouched in this case. If LONGITUDE is set to 0.0...359.9~, this function calculates and returns the Julian/Gregorian date and time fraction (properly converted, and this number is also passed via the addresses of DAY, MONTH and YEAR), at which the approximate apparent geocentric solar ecliptic longitude degree is approximately equal the given/searched LONGITUDE in the given YEAR. The caller has to guarantee that LONGITUDE is set to a proper value within the range described above. Calculations are done for a line at a definite meridian expressed as a time value in HOUR and MIN. If HOUR and MIN are set to zero, calculations are done for UTC/GMT. If HOUR and MIN have a positive sign, calculations are done for meridians East of Greenwich, otherwise for meridians West of Greenwich. If LONGITUDE does not appear in YEAR, or LONGITUDE is during the period 00010101...0001-ONE-DAY-PRIOR-VERNAL_EQUINOX, SPECIAL_VALUE is returned. The maximum error of this function is less than |0.028| degree (about 1.7 arcminutes, respectively, 0h42' minutes of time) for some dates in the respected period AD 0001...9999 --typically near the maximum year-- when compared with the results created by standard ephemeris software (aa, moontool, xephemer...), but normally much much smaller than this value. The error can be really critical when it appears for dates computed near midnight, by reason the computed date can be different the real date! References: * "Practical Astronomy with your Calculator", Peter Duffet-Smith, 3rd edition. Cambridge University Press 1988, ISBN 0-521-35699-7. * "Astronomical Formulae for Calculators", Jean Meeus, 4th ed, Willmann-Bell 1988, ISBN 0-943396-22-0. * "Astronomical Algorithms", Jean Meeus, 1st ed, Willmann-Bell 1991, ISBN 0-943396-35-2. * The WWW documents "How to compute planetary positions" and "How to compute rise/set times and altitude above horizon" by Paul Schlyter, or . Btw., Keith Burnett publishes a lot of diverse --good quality-- astronomical sources and links at . */ { auto double x; auto double low = 0.0; auto double high = 0.0; auto double delta; auto double meridian_time = HHMM2DAY (hour, min); auto double mjd; auto double jc; auto double argument_of_perihelion; auto double mean_anomaly; auto double eccentricity; auto double anomaly_of_eccentric; auto double divisor_term; auto double true_anomaly; auto double ecliptic_longitude; register int y = *year; register int steps = 0; register int i; LABEL_sel_start: i = 0; /* Epoch starts 01-Jan-2000 12:00:00 UT, convert UT to TDT. */ if (longitude == SPECIAL_VALUE) mjd = date2num (*day, *month, *year) + SS2DAY (delta_t (*day, *month, *year, hour, min)) + meridian_time - 730122.5; else { mjd = date2num (DAY_MIN, MONTH_MIN, *year) + SS2DAY (delta_t (DAY_MIN, MONTH_MIN, *year, hour, min)) - 730122.5; /* Perform correction if it is a proleptic Julian date. */ if (*year <= greg->year) mjd -= ((*year / 100) - (*year / 400) - 2); /* Set proper starting values for the binary search. */ low = mjd + longitude + 65.0; high = mjd + longitude + 95.0; mjd = (high + low) * 0.5; } LOOP { jc = mjd / 36525.0; argument_of_perihelion = TORAD (FIXANGLE (282.93735 + (0.71953 + (0.00046 * jc)) * jc)); mean_anomaly = TORAD (FIXANGLE (357.52910 + (35999.05030 - (0.0001559 + 0.00000048 * jc) * jc) * jc)); eccentricity = 0.016708617 - (0.000042037 + (0.0000001236 * jc)) * jc; delta = mean_anomaly + eccentricity * sin (mean_anomaly) * (1.0 + eccentricity * cos (mean_anomaly)); do { x = delta; delta = x - (x - eccentricity * sin (x) - mean_anomaly) / (1.0 - eccentricity * cos (x)); } while (abs (abs (x) - abs (delta)) > 0.000001); anomaly_of_eccentric = delta; divisor_term = cos (anomaly_of_eccentric) - eccentricity; true_anomaly = atan ((sqrt (1.0 - eccentricity * eccentricity) * sin (anomaly_of_eccentric)) / divisor_term); if (divisor_term < 0.0) true_anomaly += MY_PI; ecliptic_longitude = FIXANGLE (TODEG (true_anomaly + argument_of_perihelion) + jc - 0.00569 - 0.00479 * sin (TORAD (124.90 - (1934.134 - (0.002063 * jc)) * jc))); if (longitude == SPECIAL_VALUE) return (ecliptic_longitude); delta = abs (longitude - abs (ecliptic_longitude)); /* Check whether we are searching around the zero degree range, which is a discontinuity in this case and must be treated specially. */ if (delta > DEGS_PER_12_HOURS) { /* Discontinuity detected, so perform proper adjustments to keep the convergence of the interpolation. */ ecliptic_longitude -= DEGS_PER_24_HOURS; if ((longitude > 330.0) && (abs (ecliptic_longitude) < longitude)) ecliptic_longitude = longitude + 1.0; else if (ecliptic_longitude < -DEGS_PER_12_HOURS) ecliptic_longitude = -ecliptic_longitude; } /* Check whether the actual delta value is greater than the given epsilon. */ if (delta > 0.000001) { /* Yes, perform next interpolation step with adjusted margins. */ if (ecliptic_longitude > longitude) high = mjd; else low = mjd; mjd = (high + low) * 0.5; } else /* No, the interpolation result is precise enough now. */ break; /* Avoid neverending loop if interpolation divergence is detected. */ if (++i >= 100) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 1L, "sun_longitude():interpolation<", i); } /* Convert TDT to UT. */ mjd += 730122.5; num2date ((Ulint) mjd, day, month, year); val2hours (mjd, &hour, &min, NULL); mjd -= SS2DAY (delta_t (*day, *month, *year, hour, min)); /* Respect the given meridian's time value. */ mjd += meridian_time; num2date ((Ulint) mjd, day, month, year); /* Check if we have found the LONGITUDE in the given YEAR. */ if (!next_mode && (y != *year)) { /* We found the LONGITUDE beyond the given YEAR, so restart searching the LONGITUDE in the year prior YEAR. */ if (++steps > 1) /* Error, the LONGITUDE does not appear in YEAR. */ return (SPECIAL_VALUE); *year -= 2; if (!*year) /* Error, unable to manage the period AD 00010101...0001-ONE-DAY-PRIOR-VERNAL_EQUINOX. */ return (SPECIAL_VALUE); goto LABEL_sel_start; } /* Finally, correct the time fraction if the calculated date is prior the Epoch. */ delta = mjd - (Slint) mjd; if (delta < 0.0) mjd = (Slint) mjd + (1.0 + delta); return (mjd); } void val2hours (val, hour, min, sec) double val; int *hour; int *min; double *sec; /*! Returns the day fraction which is given by VAL either converted to a rounded 24-hour time value HH:MM via the addresses of HOUR and MIN if SEC is NULL, or converted to a non-rounded 24-hour time value HH:MM:SS.FRACTION via the addresses of HOUR, MIN and SEC. */ { register int sign = SGN (val); val = abs (val); val -= (Ulint) val; val *= HOURS_PER_DAY; *hour = (int) val; val -= (int) val; if (sec != (double *) NULL) { val *= MINS_PER_HOUR; *min = (int) val; val -= (int) val; *sec = val * SECS_PER_MIN; if ((int) ROUND (*sec) > SECS_PER_MIN) { *sec = 0.0; (*min)++; if (*min > MINS_PER_HOUR) { *min = 0; (*hour)++; if (*hour >= HOURS_PER_DAY) *hour = 0; } } } else { *min = (int) ROUND (val * MINS_PER_HOUR); if (*min >= MINS_PER_HOUR) { if ((*hour) + 1 >= HOURS_PER_DAY) *min = MINS_PER_HOUR - 1; else { (*hour)++; *min = 0; } } } *hour *= sign; *min *= sign; if (sec != (double *) NULL) *sec *= sign; } void val2degrees (val, degree, min, sec) double val; int *degree; int *min; double *sec; /*! Returns VAL either converted to a rounded 360-degree value DDDdMM' via the addresses of DEGREE and MIN if SEC is NULL, or converted to a non-rounded 360-degree value DDDdMM'SS.FRACTION via the addresses of DEGREE, MIN and SEC. */ { register int sign = SGN (val); val = abs (val); val = FIXANGLE (val); *degree = (int) val; val -= (int) val; if (sec != (double *) NULL) { val *= MINS_PER_HOUR; *min = (int) val; val -= (int) val; *sec = val * SECS_PER_MIN; if ((int) ROUND (*sec) > SECS_PER_MIN) { *sec = 0.0; (*min)++; if (*min > MINS_PER_HOUR) { *min = 0; (*degree)++; if (*degree >= (int) DEGS_PER_24_HOURS) *degree = 0; } } } else { *min = (int) ROUND (val * MINS_PER_HOUR); if (*min >= MINS_PER_HOUR) { if ((*degree) + 1 >= (int) DEGS_PER_24_HOURS) *min = MINS_PER_HOUR - 1; else { (*degree)++; *min = 0; } } } *degree *= sign; *min *= sign; if (sec != (double *) NULL) *sec *= sign; } double my_cot (x) double x; /*! Computes the "cotangent" of a given X by using the formula: cotangent X := 1 / tangent X Another alternative formula is: cotangent X := cosine X / sine X */ { x = tan (x); if (x == 0.0) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 1L, "my_cot()=", 0); return (1.0 / x); } double my_acot (x) double x; /*! Computes the "arc cotangent" of a given X by using the formulae: arc cotangent X := arc tangent 1 / X for X values greater than 0.0; arc cotangent X := Pi / 2 for X values equal 0.0; arc cotangent X := arc tangent 1 / X + Pi for X values less than 0.0. */ { if (x == 0.0) return (MY_HALF_PI); if (x > 0.0) return (atan (1.0 / x)); return (atan (1.0 / x) + MY_PI); } double my_atan2 (y, x) double y; double x; /*! Computes the "arc tangent Y/X" selecting the correct quadrant, i.e. returns the angle between 0 and 2 Pi whose tangent is Y/X. */ { if (x > 0.0) return (atan (y / x)); else if (x < 0.0) return (atan (y / x) + MY_PI); else if (y > 0.0) return (MY_HALF_PI); else if (y < 0.0) return (-MY_HALF_PI); return (0.0); } #if !HAVE_LIBM double my_floor (x) double x; /*! Returns the largest integer value not greater than X. */ { auto double sign = 1.0; /* Get the sign of X. */ if (x < 0.0) { x = -x; sign = -sign; } /* Calculate the `floor()' value. */ if (x - (Slint) x >= 0.0) { x = (Slint) x; if (sign < 0.0) x += 1.0; } return (sign * x); } double my_ceil (x) double x; /*! Returns the smallest integer value not less than X. */ { auto double sign = 1.0; /* Get the sign of X. */ if (x < 0.0) { x = -x; sign = -sign; } /* Calculate the `ceil()' value. */ if (x - (Slint) x >= 0.0) { x = (Slint) x; if (sign > 0.0) x += 1.0; } return (sign * x); } double my_sqrt (x) double x; /*! Computes the "square root" of a given X by using Newton's iteration formula: sqrt X := X = X - (f(X ) / f'(X )) , n=0,1,2,... , abs((f(X) * f''(X)) / (f'(X))^2) < 1 n+1 n n n */ { auto const double my_epsilon = 0.000001; auto double old_term; auto double current_term; if (x == 0.0 || x == 1.0) return (x); if (x < 0.0) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 1L, "my_sqrt()<", 0); old_term = x; current_term = 1.0; LOOP { current_term = (current_term + x / current_term) * 0.5; if (abs (current_term) - abs (old_term) < current_term * my_epsilon) /* Result does not change anymore, we have computed it with success. */ break; old_term = current_term; } return (current_term); } double my_log (x) double x; /*! Computes the "logarithm base e" (logarithmus naturalis, ln) of a given X by using a series and the fact, that log X^2 == 2 log X: e e log X := 2 ( X e + (((X-1)/(X+1))^3) / 3 + (((X-1)/(X+1))^5) / 5 + ... + (((X-1)/(X+1))^(2n+1)) / (2n+1)) , r=inf , X > 0 This function is partly based on the ideas found in the `libmath.b' file of the GNU `bc-1.05a' package written by Philip A. Nelson , which is copyrighted by the FSF. So see it for more information! It is adapted and `pretty-printed' to the requirements of Gcal. */ { auto double current_term; auto double numerator_value; auto double accumulated_value; auto double temp; auto Ulint factor = 2L; register int n; if (x <= 0.0) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 1L, "my_log()<=", 0); /* Precondition X to make 0.5 < X < 2.0. */ while (x >= 2.0) { /* For large numbers. */ factor *= 2L; x = my_sqrt (x); } while (x <= 0.5) { /* For small numbers. */ factor *= 2L; x = my_sqrt (x); } /* Initialize the series. */ accumulated_value = numerator_value = (x - 1) / (x + 1); temp = accumulated_value * accumulated_value; /* Calculate the series. */ n = 3; LOOP { numerator_value *= temp; current_term = numerator_value / (double) n; if (abs (accumulated_value) - abs (current_term) == abs (accumulated_value)) /* Result does not change anymore, we have computed it with success. */ break; accumulated_value += current_term; n += 2; } return (factor * accumulated_value); } double my_log10 (x) double x; /*! Computes the "logarithm base 10" of a given X by using the formula: log X := log X / log 10 10 e e */ { if (x <= 0.0) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 1L, "my_log10()<=", 0); return (my_log (x) / 2.302585092994045684); } double my_sin (x) double x; /*! Computes the "sine" of a given X by using the series: sine X := X - (X^3) / 3! + (X^5) / 5! - (X^7) / 7! +- ... + (-1)^n * ((X^(2n+1)) / (2n+1)!) + ... , r=inf This function is partly based on the ideas found in the `libmath.b' file of the GNU `bc-1.05a' package written by Philip A. Nelson , which is copyrighted by the FSF. So see it for more information! It is adapted and `pretty-printed' to the requirements of Gcal. */ { auto double sign = 1.0; auto double current_term; auto double numerator_value; auto double accumulated_value; auto double temp; register int n; /* Get the sign of X. */ if (x < 0.0) { x = -x; sign = -sign; } /* Pi / 4. */ accumulated_value = 0.785398163397448309616; /* Precondition X. */ numerator_value = (((Slint) (x / accumulated_value)) + 2) / 4; x = x - 4.0 * numerator_value * accumulated_value; if (((Slint) numerator_value) % 2) x = -x; /* Initialize the series. */ accumulated_value = current_term = x; temp = -x * x; /* Calculate the series. */ n = 3; LOOP { current_term *= (temp / (double) (n * (n - 1))); if (abs (accumulated_value) - abs (current_term) == abs (accumulated_value)) /* Result does not change anymore, we have computed it with success. */ break; accumulated_value += current_term; n += 2; } return (sign * accumulated_value); } double my_cos (x) double x; /*! Computes the "cosine" of a given X by using the formula: cosine X := sine (X + Pi / 2) */ { return (my_sin (x + MY_HALF_PI)); } double my_tan (x) double x; /*! Computes the "tangent" of a given X by using the formula: tangent X := sine X / cosine X */ { auto double y = my_cos (x); if (y == 0.0) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 1L, "my_tan()=", 0); return (my_sin (x) / my_cos (x)); } double my_asin (x) double x; /*! Computes the "arc sine" of a given X by using the formula: arc sine X := Pi / 2 - arc tangent (square root (1 - X * X) / X) for X values greater than 0.7; and for X values less equal 0.7 by using the formula: arc sine X := arc tangent (X / sqare root (1 - X * X)) */ { auto double sign = 1.0; auto double temp; /* Get the sign of X. */ if (x < 0.0) { x = -x; sign = -sign; } if (x > 1.0) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 1L, "my_asin()>", 1); temp = my_sqrt (1.0 - x * x); if (x > 0.70) temp = MY_HALF_PI - my_atan (temp / x); else temp = my_atan (x / temp); return (sign * temp); } double my_acos (x) double x; /*! Computes the "arc cosine" of a given X by using the formula: arc cosine := Pi / 2 - arc sine X */ { if (x > 1.0 || x < -1.0) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 2L, "abs(my_acos())>", 1); return (MY_HALF_PI - my_asin (x)); } double my_atan (x) double x; /*! Computes the "arc tangent" of a given X by using the formula: arc tangent X := arc tangent c + arc tangent ((X - c) / (1 + X * c)) for a small `c' (0.2 here) and for X values greater than 0.2; and for X values less than 0.2 by using the series: arc tangent X := X - (X^3) / 3 + (X^5) / 5 - (X^7) / 7 +- ... + (-1^n) * (X^(2n+1) / (2n+1)) + ... , r=1 This function is partly based on the ideas found in the `libmath.b' file of the GNU `bc-1.05a' package written by Philip A. Nelson , which is copyrighted by the FSF. So see it for more information! It is adapted and `pretty-printed' to the requirements of Gcal. */ { auto double known_atan_value = 0.0; auto double number_of_known_atan = 0.0; auto double sign = 1.0; auto double current_term; auto double numerator_value; auto double accumulated_value; auto double temp; register int n; /* Get the sign of X. */ if (x < 0.0) { x = -x; sign = -sign; } /* Calculate the "arc tangent" of a known number (0.20 here). */ if (x > 0.20) known_atan_value = 0.197395559849880758370; /* Precondition X. */ while (x > 0.20) { number_of_known_atan += 1.0; x = (x - 0.20) / (1.0 + x * 0.20); } /* Initialize the series. */ accumulated_value = numerator_value = x; temp = -x * x; /* Calculate the series. */ n = 3; LOOP { numerator_value *= temp; current_term = numerator_value / (double) n; if (abs (accumulated_value) - abs (current_term) == abs (accumulated_value)) /* Result does not change anymore, we have computed it with success. */ break; accumulated_value += current_term; n += 2; } return (sign * (number_of_known_atan * known_atan_value + accumulated_value)); } #endif /* !HAVE_LIBM */ gcal-4.1/src/hd-defs.h0000664000000000000000000007670112353516637011455 00000000000000#ifndef __HD_DEFS_H # define __HD_DEFS_H /*! * \file hd-defs.h * \brief Holiday dates specific statements, macros, typedefs, * global variable declarations... */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: hd-defs.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * Program specific preprocessor statements. */ /*! Maximum number of holidays per year (MONTH_MAX*MONTH_LAST). */ # define HD_MAX 372 /*! Maximum amount of eternal holidays in the table. */ # if HD_TOP20CC # define HD_ELEMS_MAX 1280 # else /* !HD_TOP20CC */ # define HD_ELEMS_MAX 8192 # endif /* !HD_TOP20CC */ /*! Maximum length of a holiday name inclusive `\0' ==> 31 characters effective textlength maximum. */ # define LEN_HD_NAME 40 /*! Identification for the Multicultural New Year's Day holidays. */ # define HD_MCNY "MCNY" /* * U.S. holidays observance MODE constants. */ /*! * Holiday is not observed: * Saturday -> Saturday * Sunday -> Sunday */ # define SASA_SUSU 0 /*! * Holiday is observed: * Saturday -> Saturday * Sunday -> next Monday */ # define SASA_SUMO 1 /*! * Holiday is observed: * Saturday -> next Monday * Sunday -> next Monday */ # define SAMO_SUMO 2 /*! * Holiday is observed: * Saturday -> preceding Friday * Sunday -> next Monday */ # define SAFR_SUMO 3 /*! * Holiday is observed: * Saturday -> preceding Friday (Veterans' Day only in US_CA) * Saturday -> Saturday (otherwise) * Sunday -> next Monday */ # define SASAFR_SUMO 4 /* * ISO-3166 A2 (2-letters) country codes. */ # define CC_DE "DE" # define CC_GB "GB" # define CC_US "US" /* * The index of the supported country specific holiday texts. */ # define HD_1ST_ADVENT 0 # define HD_1ST_SUNDAY_IN_LENT 1 # define HD_2ND_ADVENT 2 # define HD_2ND_SUNDAY_IN_LENT 3 # define HD_3RD_ADVENT 4 # define HD_3RD_SUNDAY_IN_LENT 5 # define HD_4TH_ADVENT 6 # define HD_4TH_SUNDAY_IN_LENT 7 # define HD_7_5_3_FESTIVAL 8 # define HD_ABORIGINES_DAY 9 # define HD_ALL_FOOLS_DAY 10 # define HD_ALL_SAINTS_DAY 11 # define HD_ALL_SOULS_DAY 12 # define HD_ALPHABET_DAY 13 # define HD_ANNIVERSARY_OF_AUCKLAND 14 # define HD_ANNIVERSARY_OF_CANTERBURY_NORTH 15 # define HD_ANNIVERSARY_OF_CANTERBURY_SOUTH 16 # define HD_ANNIVERSARY_OF_CHATHAM_ISLANDS 17 # define HD_ANNIVERSARY_OF_HAWKES_BAY 18 # define HD_ANNIVERSARY_OF_MARLBOROUGH 19 # define HD_ANNIVERSARY_OF_NELSON 20 # define HD_ANNIVERSARY_OF_OTAGO 21 # define HD_ANNIVERSARY_OF_SOUTHLAND 22 # define HD_ANNIVERSARY_OF_TARANAKI 23 # define HD_ANNIVERSARY_OF_WELLINGTON 24 # define HD_ANNIVERSARY_OF_WESTLAND 25 # define HD_ANZAC_DAY 26 # define HD_ARBOR_DAY 27 # define HD_ARMED_FORCES_DAY 28 # define HD_ARMISTICE_DAY 29 # define HD_ASH_MONDAY 30 # define HD_ASH_WEDNESDAY 31 # define HD_BAHAI_ASCENSION_OF_ABDUL_BAHA 32 # define HD_BAHAI_ASCENSION_OF_BAHA_ULLAH 33 # define HD_BAHAI_BIRTH_OF_BAHA_ULLAH 34 # define HD_BAHAI_BIRTH_OF_THE_BAB 35 # define HD_BAHAI_DAY_OF_THE_COVENANT 36 # define HD_BAHAI_DECLARATION_OF_THE_BAB 37 # define HD_BAHAI_FIRST_DAY_OF_RIDVAN 38 # define HD_BAHAI_MARTYRDOM_OF_THE_BAB 39 # define HD_BAHAI_NEW_YEARS_DAY 40 # define HD_BAHAI_NINTH_DAY_OF_RIDVAN 41 # define HD_BAHAI_TWELFTH_DAY_OF_RIDVAN 42 # define HD_BANK_HOLIDAY 43 # define HD_BASQUE_NATIONAL_DAY 44 # define HD_BATTLE_OF_BOYNE 45 # define HD_BATTLE_OF_PUEBLA 46 # define HD_BEGINNING_OF_FINANCIAL_YEAR 47 # define HD_BENITO_JUAREZ_DAY 48 # define HD_BODHIDHARMAS_BIRTHDAY 49 # define HD_BOSSES_DAY 50 # define HD_BOXING_DAY 51 # define HD_BRINGING_HOME_THE_HERDS_DAY 52 # define HD_BRINGING_IN_THE_HARVEST_DAY 53 # define HD_BUDDHAS_BIRTHDAY 54 # define HD_BURNS_NIGHT 55 # define HD_CAMOES_DAY 56 # define HD_CARNIVAL 57 # define HD_CELTIC_BELTANE 58 # define HD_CELTIC_IMBOLG 59 # define HD_CELTIC_LUGHNASA 60 # define HD_CELTIC_SAMHAIN 61 # define HD_CHILDRENS_DAY 62 # define HD_CHINESE_CYCLE 63 # define HD_CHINESE_NEW_YEARS_DAY 64 # define HD_CHINESE_NEW_YEARS_EVE 65 # define HD_CHRISTMAS_DAY 66 # define HD_CHRISTMAS_EVE 67 # define HD_CHRISTS_ASCENSION_DAY 68 # define HD_CHRYSANTHENUM_DAY 69 # define HD_CITIZENSHIP_DAY 70 # define HD_CIVIC_HOLIDAY 71 # define HD_COLUMBUS_DAY 72 # define HD_COMING_OF_AGE_DAY 73 # define HD_CONFUCIUS_BIRTHDAY 74 # define HD_CONSTITUTION_ANNIVERSARY 75 # define HD_COPTIC_NEW_YEARS_DAY 76 # define HD_COSMONAUTS_DAY 77 # define HD_CROSS_RAISING_DAY 78 # define HD_CULTURE_DAY 79 # define HD_DAY_AFTER_MID_AUTUMN_FESTIVAL 80 # define HD_DAY_AFTER_TOMB_SWEEPING_DAY 81 # define HD_DAY_OF_ANDALUCIA 82 # define HD_DAY_OF_CATALONIA 83 # define HD_DAY_OF_GALICIA 84 # define HD_DAY_OF_PRAYER_AND_REPENTANCE 85 # define HD_DAY_OF_RECONCILIATION 86 # define HD_DEFENDERS_OF_MOTHERLAND_DAY 87 # define HD_DOUBLE_9_DAY 88 # define HD_DRAGON_BOAT_FESTIVAL 89 # define HD_DYNASTY_DAY 90 # define HD_EASTER_MONDAY 91 # define HD_EASTER_SUNDAY 92 # define HD_ECLIPSE_LUNAR 93 # define HD_ECLIPSE_SOLAR 94 # define HD_ECLIPSE_TYPE_ANNULAR 95 # define HD_ECLIPSE_TYPE_PARTIAL 96 # define HD_ECLIPSE_TYPE_PENUMBRAL 97 # define HD_ECLIPSE_TYPE_TOTAL 98 # define HD_EINDHOVENS_LIBERATION 99 # define HD_ELECTION_DAY 100 # define HD_EMPERORS_BIRTHDAY 101 # define HD_EQUINOX_DAY 102 # define HD_ETHIOPIC_NEW_YEARS_DAY 103 # define HD_FATHERS_DAY 104 # define HD_FEAST_OF_CORPUS_CHRISTI 105 # define HD_FEAST_OF_FORTUNE 106 # define HD_FEAST_OF_HEART_JESUS 107 # define HD_FESTIVAL_OF_LANTERNS 108 # define HD_FESTIVAL_OF_SADEH 109 # define HD_FLAG_DAY 110 # define HD_FLEMISH_CULTURE_DAY 111 # define HD_FOUNDING_OF_THE_COMMUNIST_PARTY 112 # define HD_FRENCH_CULTURE_DAY 113 # define HD_FRENCH_REVOLUTIONARY 114 # define HD_FRIENDSHIP_DAY 115 # define HD_GERMAN_UNITY_DAY 116 # define HD_GOOD_FRIDAY 117 # define HD_GOOD_SATURDAY 118 # define HD_GRANDPARENTS_DAY 119 # define HD_GREENERY_DAY 120 # define HD_GROTTO_DAY 121 # define HD_GROUNDHOG_DAY 122 # define HD_GUADALUPE_VIRGINS_DAY 123 # define HD_GUY_FAWKES_DAY 124 # define HD_HALLOWEEN 125 # define HD_HEALTH_AND_SPORTS_DAY 126 # define HD_HEB_HANNUKAH 127 # define HD_HEB_LAG_BOMER 128 # define HD_HEB_PESACH 129 # define HD_HEB_PURIM 130 # define HD_HEB_ROSH_HASHANA 131 # define HD_HEB_SHAVUOT 132 # define HD_HEB_SHUSHAN_PURIM 133 # define HD_HEB_SIMCHAT_TORAH 134 # define HD_HEB_SUKKOT 135 # define HD_HEB_TISHA_BAV 136 # define HD_HEB_TU_BSHEVAT 137 # define HD_HEB_YOM_HASHOAH 138 # define HD_HEB_YOM_HAZIKARON 139 # define HD_HEB_YOM_HA_AZMAUT 140 # define HD_HEB_YOM_KIPPUR 141 # define HD_HEB_YOM_YERUSHALAYIM 142 # define HD_HOLY_INNOCENTS_DAY 143 # define HD_HOLY_TRINITY 144 # define HD_HURAVEE_DAY 145 # define HD_INDEPENDENCE_DAY 146 # define HD_INDEPENDENCE_MOVEMENT_DAY 147 # define HD_INDEPENDENCE_PROCLAMATION 148 # define HD_INDIAN_NEW_YEARS_DAY 149 # define HD_ISL_AGA_KHANS_BIRTHDAY 150 # define HD_ISL_ASHURA 151 # define HD_ISL_EID_AL_ADHA 152 # define HD_ISL_EID_AL_FITR 153 # define HD_ISL_EID_I_MILAD_UN_NABI 154 # define HD_ISL_GHADIR 155 # define HD_ISL_IMAMAT_DAY 156 # define HD_ISL_NEW_YEARS_DAY 157 # define HD_ISL_NUZUL_AL_QURAN 158 # define HD_ISL_QUDS_DAY 159 # define HD_ISL_RAMADAN 160 # define HD_ISL_SHAB_E_BARAT 161 # define HD_ISL_SHAB_E_MIRAJ 162 # define HD_ISL_SHAB_E_QADR 163 # define HD_ISL_WAQF_AL_ARAFAT 164 # define HD_JAPANESE_NEW_YEARS_DAY 165 # define HD_JAPANESE_NEW_YEARS_EVE 166 # define HD_JESUS_CIRCUMCISION 167 # define HD_KWANZAA 168 # define HD_LABOUR_DAY 169 # define HD_LABOUR_THANKSGIVING_DAY 170 # define HD_LAO_TZES_BIRTHDAY 171 # define HD_LIBERATION_DAY 172 # define HD_MARINE_DAY 173 # define HD_MARTINIMAS 174 # define HD_MARTIN_LUTHER_KINGS_DAY 175 # define HD_MARTYRS_DAY 176 # define HD_MARYS_ANNUNCIATION_DAY 177 # define HD_MARYS_ASCENSION_DAY 178 # define HD_MARYS_CANDLEMAS 179 # define HD_MARYS_EXPECTATION 180 # define HD_MARYS_IMMACULATE_CONCEPTION 181 # define HD_MARYS_MATERNITY 182 # define HD_MARYS_NAME 183 # define HD_MARYS_NATIVITY 184 # define HD_MARYS_SACRIFICE 185 # define HD_MARYS_VISITATION 186 # define HD_MARY_BLESSED_VIRGIN 187 # define HD_MAUNDY_THURSDAY 188 # define HD_MAY_DAY 189 # define HD_MIDSUMMER_DAY 190 # define HD_MID_AUTUMN_FESTIVAL 191 # define HD_MID_SPRING_FESTIVAL 192 # define HD_MID_YEAR_FESTIVAL 193 # define HD_MOON_FIRST_QUARTER 194 # define HD_MOON_FULL 195 # define HD_MOON_LAST_QUARTER 196 # define HD_MOON_NEW 197 # define HD_MOTHERS_DAY 198 # define HD_MOTHER_IN_LAWS_DAY 199 # define HD_MUSIC_WATER_BANQUET 200 # define HD_NATIONAL_FOUNDATION_DAY 201 # define HD_NATIONAL_HOLIDAY 202 # define HD_NATIONAL_MOURNING_DAY 203 # define HD_NEW_YEARS_DAY 204 # define HD_NURSES_DAY 205 # define HD_OLD_ARMENIC_NEW_YEARS_DAY 206 # define HD_OLD_EGYPTIC_NEW_YEARS_DAY 207 # define HD_ORTHODOX_NEW_YEARS_DAY 208 # define HD_OUR_LADY_APARECIDA_DAY 209 # define HD_PALM_SUNDAY 210 # define HD_PARENTS_DAY 211 # define HD_PASSION_SUNDAY 212 # define HD_PEACE_FESTIVAL 213 # define HD_PEACH_FESTIVAL 214 # define HD_PENTECOST 215 # define HD_PERSIAN_NEW_YEARS_DAY 216 # define HD_PRAYER_DAY 217 # define HD_PRESIDENTIAL_INAUGURATION 218 # define HD_PRESIDENTS_DAY 219 # define HD_PRESIDENTS_INFORM 220 # define HD_PRESIDENT_LINCOLNS_BIRTHDAY 221 # define HD_PRINCESS_DAY 222 # define HD_QUINQUAGESIMA_SUNDAY 223 # define HD_REFORMATION_DAY 224 # define HD_REMEMBRANCE_DAY 225 # define HD_RE_DAY 226 # define HD_RESPECT_FOR_THE_AGED_DAY 227 # define HD_REVOLUTION_DAY 228 # define HD_RIO_DE_JANEIRO_ANNIVERSARY 229 # define HD_ROGATION_SUNDAY 230 # define HD_SAO_PAULO_ANNIVERSARY 231 # define HD_SAPPORO_SNOW_FESTIVAL 232 # define HD_SEASON_CHANGE 233 # define HD_SEPTUAGESIMA_SUNDAY 234 # define HD_SEVEN_SLEEPERS_DAY 235 # define HD_SEXAGESIMA_SUNDAY 236 # define HD_SHROVE_TUESDAY 237 # define HD_SOLSTICE_DAY 238 # define HD_SOOT_SWEEPING_DAY 239 # define HD_SPRING_FESTIVAL 240 # define HD_START_OF_COMMON_MONTH 241 # define HD_START_OF_LEAP_MONTH 242 # define HD_STAR_FESTIVAL 243 # define HD_ST_ANDREWS_DAY 244 # define HD_ST_BARTHOLOMEW_DAY 245 # define HD_ST_BERCHTOLDS_DAY 246 # define HD_ST_DAVIDS_DAY 247 # define HD_ST_EDWARDS_DAY 248 # define HD_ST_GEORGES_DAY 249 # define HD_ST_JAMES_DAY 250 # define HD_ST_JOSEPHS_DAY 251 # define HD_ST_LAURENTIUS_DAY 252 # define HD_ST_NICHOLAS_DAY 253 # define HD_ST_NICHOLAS_EVE 254 # define HD_ST_PATRICKS_DAY 255 # define HD_ST_PETER_AND_ST_PAUL 256 # define HD_ST_STEPHENS_DAY 257 # define HD_ST_VALENTINES_DAY 258 # define HD_SUNDAY_OF_THE_DEAD 259 # define HD_SWALLOW_DAY 260 # define HD_SWEETEST_DAY 261 # define HD_SYLVESTER 262 # define HD_TEACHERS_DAY 263 # define HD_THAI_NEW_YEARS_DAY 264 # define HD_THANKSGIVING_DAY 265 # define HD_THE_KINGS_BIRTHDAY 266 # define HD_THE_QUEENS_BIRTHDAY 267 # define HD_THREE_KINGS_DAY 268 # define HD_TIRADENTES_DAY 269 # define HD_TOMB_SWEEPING_DAY 270 # define HD_TRANSFIGURATION_DAY 271 # define HD_TYNWALD_DAY 272 # define HD_VALBORGS_EVE 273 # define HD_VENICE_CARNIVAL 274 # define HD_VETERANS_DAY 275 # define HD_VICTORIA_DAY 276 # define HD_VICTORY_DAY 277 # define HD_WHIT_MONDAY 278 # define HD_WOMENS_DAY 279 # define HD_WOMENS_SHROVE_DAY 280 # define HD_WORLD_ANIMAL_DAY 281 # define HD_YOUTH_DAY 282 # if !HD_TOP20CC # define HD_ADELAIDE_CUP_DAY 283 # define HD_ADMISSION_DAY 284 # define HD_ALASKA_DAY 285 # define HD_ALEKSIS_KIVI_DAY 286 # define HD_ALICE_SPRINGS_SHOW_DAY 287 # define HD_ALL_SAINTS_EVE 288 # define HD_AMERICAS_DAY 289 # define HD_ANGAM_DAY 290 # define HD_ANNIVERSARY_OF_AMIRS_SUCCESSION 291 # define HD_ANNIVERSARY_OF_ARMED_STRUGGLE 292 # define HD_ANNIVERSARY_OF_GREEN_MARCH 293 # define HD_ANTILLIAN_DAY 294 # define HD_ARAB_LEAGUE_DAY 295 # define HD_ARCHBISHOP_MAKARIOS_MEMORIAL_DAY 296 # define HD_ARCHBISHOP_MAKARIOS_NAME_DAY 297 # define HD_ARENGO_ANNIVERSARY 298 # define HD_ARMY_COUP_DAY 299 # define HD_ARRIVAL_OF_THE_SWISS 300 # define HD_ARTIGAS_BIRTHDAY 301 # define HD_ASUNCION_DAY 302 # define HD_ATATURK_MEMORIAL_DAY 303 # define HD_AUTHORITIYS_POWER_DAY 304 # define HD_BAATH_REVOLUTION_DAY 305 # define HD_BARON_BLISS_DAY 306 # define HD_BATAAN_DAY 307 # define HD_BATTLE_OF_ANGAMOS 308 # define HD_BATTLE_OF_BOYACA 309 # define HD_BATTLE_OF_CARABOBO 310 # define HD_BATTLE_OF_IQUIQUE 311 # define HD_BATTLE_OF_LAS_PIEDRAS 312 # define HD_BATTLE_OF_NAEFELS 313 # define HD_BEGINNING_OF_SUMMER 314 # define HD_BELGRADES_DAY 315 # define HD_BENNINGTON_BATTLE_DAY 316 # define HD_BLESSING_OF_THE_WATER 317 # define HD_BLOOMSDAY 318 # define HD_BOGANDA_DAY 319 # define HD_BONAIRE_DAY 320 # define HD_BOQUERON_BATTLE_DAY 321 # define HD_BOTSWANA_DAY 322 # define HD_BOUNTY_DAY 323 # define HD_BUNKER_HILL_DAY 324 # define HD_BURNING_OF_JAN_HUS 325 # define HD_CANBERRA_DAY 326 # define HD_CARICOM_DAY 327 # define HD_CASIMIR_PULASKIS_BIRTHDAY 328 # define HD_CASSINGA_DAY 329 # define HD_CAYENNE_FESTIVAL 330 # define HD_CESAR_CHAVEZ_DAY 331 # define HD_CHARTER_DAY 332 # define HD_CHIANG_KAI_SHEKS_BIRTHDAY 333 # define HD_CHILDRENS_WHITE_SUNDAY 334 # define HD_COLON_DAY 335 # define HD_COLORADO_DAY 336 # define HD_COMMONWEALTH_DAY 337 # define HD_COMPACT_DAY 338 # define HD_CONFEDERAL_AGREEMENT_DAY 339 # define HD_CORONATION_DAY 340 # define HD_CUP_MATCH_DAY 341 # define HD_CUSTOM_CHIEFS_DAY 342 # define HD_C_MAPINDUZI_DAY 343 # define HD_DARWIN_SHOW_DAY 344 # define HD_DAY_OF_GOODWILL 345 # define HD_DAY_OF_STUDENTS_REVOLT 346 # define HD_DAY_OF_THE_FREE_LAOS 347 # define HD_DEATH_OF_H_CHRISTOPHE 348 # define HD_DEATH_OF_J_DESSALINES 349 # define HD_DEATH_OF_PRESIDENT_ABDALLAH 350 # define HD_DEATH_OF_PRESIDENT_CHEIKH 351 # define HD_DEATH_OF_PRESIDENT_SOILIH 352 # define HD_DEATH_OF_QAID_I_AZAM 353 # define HD_DEATH_OF_T_LOUVERTURE 354 # define HD_DEFENDERS_DAY 355 # define HD_DIA_DEL_PADRE 356 # define HD_DIA_DE_LOS_MAESTROS 357 # define HD_DISCOVERY_DAY 358 # define HD_DOWNFALL_OF_THE_DERGUE 359 # define HD_DRY_SEASON_CELEBRATION 360 # define HD_DR_SUN_YAT_SENS_BIRTHDAY 361 # define HD_DUARTES_BIRTHDAY 362 # define HD_EASTER_TUESDAY 363 # define HD_ECONOMIC_LIBERATION_DAY 364 # define HD_EIGHT_HOURS_DAY 365 # define HD_ELECTIONS_FOR_NATIONAL_ASSEMBLY 366 # define HD_ERROL_BARROW_DAY 367 # define HD_EVACUATION_DAY 368 # define HD_EVE_OF_EPIPHANY 369 # define HD_EXPEDITION_OF_THE_33 370 # define HD_E_HOSTOS_BIRTHDAY 371 # define HD_FAMILY_DAY 372 # define HD_FAO_DAY 373 # define HD_FARMERS_DAY 374 # define HD_FATHER_LEVAL_DAY 375 # define HD_FEAST_OF_OUR_THEOTOKOS 376 # define HD_FISHERMANS_DAY 377 # define HD_FOUNDATION_OF_NPLA_DAY 378 # define HD_FOUNDING_OF_PEOPLES_PARTY 379 # define HD_GARIFUNA_DAY 380 # define HD_GENERAL_SAN_MARTINS_ANNIVERSARY 381 # define HD_GOSPEL_DAY 382 # define HD_GUACANASTE_DAY 383 # define HD_GUSTAVUS_ADOLPHUS_DAY 384 # define HD_HERITAGE_DAY 385 # define HD_HEROES_DAY 386 # define HD_HOBART_SHOW_DAY 387 # define HD_HOLY_WEDNESDAY 388 # define HD_HO_CHI_MINHS_BIRTHDAY 389 # define HD_HUMAN_RIGHTS_DAY 390 # define HD_HURRICANE_SUPPLICATION_DAY 391 # define HD_HURRICANE_THANKSGIVING_DAY 392 # define HD_INDEPENDENCE_OF_CARTAGENA 393 # define HD_INDEPENDENCE_OF_CUENCA 394 # define HD_INDEPENDENCE_OF_GUAYAQUIL 395 # define HD_INDEPENDENCE_OF_QUITO 396 # define HD_INDIAN_ARRIVAL_DAY 397 # define HD_INTERNAL_AUTONOMY_DAY 398 # define HD_JEFFERSON_DAVIS_BIRTHDAY 399 # define HD_JUNE_HOLIDAY 400 # define HD_J_BARBOSAS_BIRTHDAY 401 # define HD_J_CHILEMBWE_DAY 402 # define HD_J_DIEGOS_BIRTHDAY 403 # define HD_J_ROBERTS_BIRTHDAY 404 # define HD_KAMARAMPAKA_DAY 405 # define HD_KARTINI_DAY 406 # define HD_KATHERINE_SHOW_DAY 407 # define HD_KIEV_DAY 408 # define HD_KIM_IL_SUNGS_BIRTHDAY 409 # define HD_KIM_JONG_ILS_BIRTHDAY 410 # define HD_KING_KAMEHAMEHA_DAY 411 # define HD_KING_RAMA_I_MEMORIAL_DAY 412 # define HD_KING_RAMA_V_MEMORIAL_DAY 413 # define HD_KNABENSCHIESSEN 414 # define HD_KONSTANTIN_AND_METHODIUS 415 # define HD_LAPP_NATIONAL_HOLIDAY 416 # define HD_LAUNCESTON_CUP_DAY 417 # define HD_LIBERTY_DAY 418 # define HD_LOSS_OF_MUSLIM_NATION 419 # define HD_LUXEMBOURG_CITY_KERMIS 420 # define HD_LYNDON_B_JOHNSON_DAY 421 # define HD_L_RIVERAS_BIRTHDAY 422 # define HD_MADARAKA_DAY 423 # define HD_MAHATMA_GANDHIS_BIRTHDAY 424 # define HD_MALVINAS_DAY 425 # define HD_MANILA_DAY 426 # define HD_MAPUTO_CITY_DAY 427 # define HD_MARIEN_NGOUABI_DAY 428 # define HD_MARYLAND_DAY 429 # define HD_MELBOURNE_CUP_DAY 430 # define HD_MERCHANT_DAY 431 # define HD_MIDSUMMERS_EVE 432 # define HD_MISSIONARY_DAY 433 # define HD_MI_CAREME_DAY 434 # define HD_MORAZAN_DAY 435 # define HD_MOSHESHOES_DAY 436 # define HD_MOTHERHOOD_AND_BEAUTY_DAY 437 # define HD_NAMING_DAY 438 # define HD_NATIONAL_BUN_DAY 439 # define HD_NATIONAL_HEROES_DAY 440 # define HD_NATIONAL_REDEMPTION_DAY 441 # define HD_NATIONAL_RESISTANCE_DAY 442 # define HD_NATIONAL_REVIVAL_DAY 443 # define HD_NATIONAL_UNITY_DAY 444 # define HD_NDADAYE_DAY 445 # define HD_NEUTRALITY_DAY 446 # define HD_NEVADA_DAY 447 # define HD_NEW_REGIME_ANNIVERSARY 448 # define HD_NOBEL_DAY 449 # define HD_NOI_DAY 450 # define HD_OAU_DAY 451 # define HD_OCTOBER_HOLIDAY 452 # define HD_OIL_INDUSTRY_DAY 453 # define HD_OUR_LADY_OF_ALTAGRACIA_DAY 454 # define HD_OUR_LADY_OF_CAMARIN_DAY 455 # define HD_OUR_LADY_OF_LAS_MERCEDES_DAY 456 # define HD_OUR_LADY_OF_LOS_ANGELES_DAY 457 # define HD_OUR_LADY_OF_SEVEN_SORROWS 458 # define HD_OUR_LADY_OF_VICTORIES_DAY 459 # define HD_PANAMA_CITY_DAY 460 # define HD_PANAMERICAN_DAY 461 # define HD_PARIS_PEACE_AGREEMENT_DAY 462 # define HD_PATRIOTS_DAY 463 # define HD_PEOPLES_UPRISING_DAY 464 # define HD_PEOPLE_POWER_DAY 465 # define HD_PHILIPPINE_USA_FRIENDSHIP 466 # define HD_PICHINCHA_DAY 467 # define HD_PICNIC_DAY 468 # define HD_PIONEER_DAY 469 # define HD_POYA_DAY 470 # define HD_PRINCE_KALANIANAOLE_DAY 471 # define HD_PRINCE_OF_WALES_BIRTHDAY 472 # define HD_PROCLAMATION_DAY 473 # define HD_QAID_I_AZAMS_BIRTHDAY 474 # define HD_RATU_SUKUMA_DAY 475 # define HD_RECREATION_DAY 476 # define HD_REFERENDUM_DAY 477 # define HD_REGATTA_DAY 478 # define HD_REGENCY_EXCHANGE 479 # define HD_RESTORATION_DAY 480 # define HD_RETURN_DAY 481 # define HD_REUNIFICATION_DAY 482 # define HD_RIZAL_DAY 483 # define HD_RWAGASORE_DAY 484 # define HD_SABA_DAY 485 # define HD_SAN_JACINTO_DAY 486 # define HD_SAN_JOSE_DAY 487 # define HD_SAR_ESTABLISHMENT_DAY 488 # define HD_SCHOOL_HOLIDAY 489 # define HD_SECHSELAEUTEN 490 # define HD_SEPARATION_DAY 491 # define HD_SERETSE_KHAMA_DAY 492 # define HD_SETTLERS_DAY 493 # define HD_SEWARDS_DAY 494 # define HD_SHAHEED_DAY 495 # define HD_SHEEP_FESTIVAL 496 # define HD_SHEIKH_ZAYEDS_ASCENSION_DAY 497 # define HD_SIMON_BOLIVAR_DAY 498 # define HD_SINAI_LIBERATION_DAY 499 # define HD_SLAVE_LIBERATION_DAY 500 # define HD_SNIFF_THE_BREEZE_DAY 501 # define HD_SOLIDARITY_DAY 502 # define HD_SOMERS_DAY 503 # define HD_STATIA_AMERICA_DAY 504 # define HD_STUDENTS_DAY 505 # define HD_ST_AGATA_DAY 506 # define HD_ST_CANUTES_DAY 507 # define HD_ST_CEDILIAS_DAY 508 # define HD_ST_CHARLES_DAY 509 # define HD_ST_DEMETRIUS_DAY 510 # define HD_ST_DEVOTE_DAY 511 # define HD_ST_ELIAHS_DAY 512 # define HD_ST_JEAN_BAPTISTE_DAY 513 # define HD_ST_LUCIAS_DAY 514 # define HD_ST_MARGUERITES_DAY 515 # define HD_ST_MAROONS_DAY 516 # define HD_ST_MICHAELS_DAY 517 # define HD_ST_OLAVS_DAY 518 # define HD_ST_OLAVS_EVE 519 # define HD_ST_PAULS_SHIPSWRECK 520 # define HD_ST_ROSE_OF_LIMA 521 # define HD_ST_URSULAS_DAY 522 # define HD_ST_VINCENT_DE_PAULS_DAY 523 # define HD_SUEZ_VICTORY_DAY 524 # define HD_SULTAN_QABOOS_BIRTHDAY 525 # define HD_SVETITSKHOVLOBA 526 # define HD_SWEDEN_DAY 527 # define HD_S_DOES_BIRTHDAY 528 # define HD_TENNANT_CREEK_SHOW_DAY 529 # define HD_TERRITORY_DAY 530 # define HD_THE_CROWN_PRINCESSES_BIRTHDAY 531 # define HD_THE_CROWN_PRINCESSES_NAME_DAY 532 # define HD_THE_CROWN_PRINCES_BIRTHDAY 533 # define HD_THE_KINGS_NAME_DAY 534 # define HD_THE_QUEENS_NAME_DAY 535 # define HD_TOPOU_I_DAY 536 # define HD_TOWN_MEETING_DAY 537 # define HD_TRADITIONAL_DAY 538 # define HD_TRANSFER_DAY 539 # define HD_TRUMAN_DAY 540 # define HD_UNION_DAY 541 # define HD_UNION_WITH_SWEDEN_DISSOLVED 542 # define HD_UNITED_NATIONS_DAY 543 # define HD_UNITY_FACTORY_DAY 544 # define HD_VICTOR_SCHOELCHER_DAY 545 # define HD_VIDOVDAN 546 # define HD_WEST_VIRGINIA_DAY 547 # define HD_WHITSUN_EVE 548 # define HD_W_TUBMANS_BIRTHDAY 549 # define HD_YAP_DAY 550 # define HD_DAY_OF_CZECH_STATEHOOD 551 # endif /* !HD_TOP20CC */ /* * Type definitions. */ /* * The country code record. */ typedef struct country_code_type { /* The ISO-3166 2-characters country code identifer, plus an optionally trailing territory text `_TT'. */ char *cc_id; /* Description text of the country code; the country name. */ char *cc_info; /* The country code specific holiday handling function. */ void (*Cc_hdy_handler) (); } Cc_struct; /* * The country specific holiday text record. */ typedef struct holiday_text_type { /* The index of the country specific holiday text. */ int ht_id; /* The country specific holiday text itself. */ char *ht_text; } Ht_struct; /* * The country code specific holiday handling function type. */ typedef void (*Cc_hdy_handler) __P_ ((Bool *, const Bool, int, const int, int *, const int, const int)); /* * GLOBAL variables declarations. */ /*! The table of country specific holidays. */ extern const Cc_struct cc_holidays[]; /*! The table which contains all the holiday texts. */ extern const Ht_struct hd_text[]; /*! U.S. holidays observance mode. */ extern int observe_us_hdy; /*! The ISO-3166 character code used in the country specific `hdy_*()' functions. */ extern char *ptr_cc_id; /*! Toggle which indicates to use a different CC in output. */ extern Bool use_other_cc; #endif /* __HD_DEFS_H */ gcal-4.1/src/hd-data.c0000664000000000000000000046464412727633215011444 00000000000000/*! * \file hd-data.c * \brief All data which is composed into the eternal holiday list. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include header files. */ #include "tailor.h" #include "common.h" #include "globals.h" #include "hd-astro.h" #include "hd-defs.h" #include "hd-data1.h" #if !HD_TOP20CC # include "hd-data2.h" # include "hd-data3.h" # include "hd-data4.h" # include "hd-data5.h" #endif #include "hd-use.h" #include "tty.h" #include "utils.h" #include "hd-data.h" /* * GLOBAL variables definitions. */ /*! The table used to manage the country specific holidays is a vector of `Cc_struct' terminated by an element containing a `cc_info' which is zero! The `cc_id' entries in this table *MUST* be listed in ASCENDING SORT ORDER !! */ const Cc_struct cc_holidays[] = { /* The A2 (2-letters) country codes are taken from ISO-3166. { char *cc_id, char *cc_info, void (*Cc_hdy_handler)() }, */ #if HD_TOP20CC {"AU", N_("Australia"), au_hdy}, {"BE", N_("Belgium"), be_hdy}, {"BR", N_("Brazil"), br_hdy}, {"CA", N_("Canada"), ca_hdy}, {"CH", N_("Switzerland"), ch_hdy}, {"CN", N_("China"), cn_hdy}, {CC_DE, N_("Germany"), de_hdy}, {"ES", N_("Spain"), es_hdy}, {"FR", N_("France"), fr_hdy}, {CC_GB, N_("Great Britain"), gb_hdy}, {"IL", N_("Israel"), il_hdy}, {"IT", N_("Italy"), it_hdy}, {"JP", N_("Japan"), jp_hdy}, {"KR", N_("Republic of Korea"), kr_hdy}, {"MX", N_("Mexico"), mx_hdy}, {"NL", N_("Netherlands"), nl_hdy}, {"NZ", N_("New Zealand"), nz_hdy}, {"PT", N_("Portugal"), pt_hdy}, {"RU", N_("Russian Federation"), ru_hdy}, {CC_US, N_("United States"), us_hdy}, #else /* !HD_TOP20CC */ {"AD", N_("Andorra"), ad_hdy}, {"AE", N_("United Arab Emirates"), ae_hdy}, {"AF", N_("Afghanistan"), af_hdy}, {"AG", N_("Antigua and Barbuda"), ag_hdy}, {"AI", N_("Anguilla"), ai_hdy}, {"AL", N_("Albania"), al_hdy}, {"AM", N_("Armenia"), am_hdy}, {"AN_BO", N_("Netherlands Antilles/Bonaire"), an_bo_hdy}, {"AN_CU", N_("Netherlands Antilles/Curaçao"), an_cu_hdy}, {"AN_MA", N_("Netherlands Antilles/St Maarten"), an_ma_hdy}, {"AN_SA", N_("Netherlands Antilles/Saba and Statia"), an_sa_hdy}, {"AO", N_("Angola #"), ao_hdy}, {"AR", N_("Argentina"), ar_hdy}, {"AS", N_("American Samoa"), as_hdy}, {"AT", N_("Austria"), at_hdy}, {"AU_CT", N_("Australia/Canberra"), au_ct_hdy}, {"AU_NT", N_("Australia/Northern Territory"), au_nt_hdy}, {"AU_QU", N_("Australia/Queensland"), au_qu_hdy}, {"AU_SA", N_("Australia/Southern Australia"), au_sa_hdy}, {"AU_SW", N_("Australia/New South Wales"), au_sw_hdy}, {"AU_TA", N_("Australia/Tasmania"), au_ta_hdy}, {"AU_VI", N_("Australia/Victoria"), au_vi_hdy}, {"AU_WA", N_("Australia/Western Australia"), au_wa_hdy}, {"AW", N_("Aruba"), aw_hdy}, {"AZ", N_("Azerbaijan"), az_hdy}, {"BA", N_("Bosnia-Herzegovina"), ba_hdy}, {"BB", N_("Barbados"), bb_hdy}, {"BD", N_("Bangladesh #"), bd_hdy}, {"BE", N_("Belgium"), be_hdy}, {"BF", N_("Burkina Faso"), bf_hdy}, {"BG", N_("Bulgaria"), bg_hdy}, {"BH", N_("Bahrain"), bh_hdy}, {"BI", N_("Burundi #"), bi_hdy}, {"BJ", N_("Benin #"), bj_hdy}, {"BM", N_("Bermuda"), bm_hdy}, {"BN", N_("Brunei"), bn_hdy}, {"BO", N_("Bolivia"), bo_hdy}, {"BR", N_("Brazil"), br_hdy}, {"BS", N_("Bahamas"), bs_hdy}, {"BT", N_("Bhutan #"), bt_hdy}, {"BV", N_("Bouvet Island"), bv_hdy}, {"BW", N_("Botswana"), bw_hdy}, {"BY", N_("Belarus"), by_hdy}, {"BZ", N_("Belize"), bz_hdy}, {"CA_AL", N_("Canada/Alberta"), ca_al_hdy}, {"CA_BC", N_("Canada/British Columbia"), ca_bc_hdy}, {"CA_MA", N_("Canada/Manitoba"), ca_ma_hdy}, {"CA_NB", N_("Canada/New Brunswick"), ca_nb_hdy}, {"CA_NF", N_("Canada/Newfoundland and Labrador"), ca_nf_hdy}, {"CA_NS", N_("Canada/Nova Scotia"), ca_ns_hdy}, {"CA_NW", N_("Canada/Northwest Territories"), ca_nw_hdy}, {"CA_ON", N_("Canada/Ontario"), ca_on_hdy}, {"CA_PE", N_("Canada/Prince Edward Island"), ca_pe_hdy}, {"CA_QU", N_("Canada/Québec"), ca_qu_hdy}, {"CA_SA", N_("Canada/Saskatchewan"), ca_sa_hdy}, {"CA_YU", N_("Canada/Yukon"), ca_yu_hdy}, {"CC", N_("Cocos Islands (Keeling)"), cc_hdy}, {"CD", N_("Democratic Republic of Congo #"), cd_hdy}, {"CF", N_("Central African Republic #"), cf_hdy}, {"CG", N_("Republic of Congo #"), cg_hdy}, {"CH_AG", N_("Switzerland/Aargau"), ch_ag_hdy}, {"CH_AI", N_("Switzerland/Appenzell Innerrhoden"), ch_ai_hdy}, {"CH_AR", N_("Switzerland/Appenzell Ausserrhoden"), ch_ar_hdy}, {"CH_BE", N_("Switzerland/Bern"), ch_be_hdy}, {"CH_BL", N_("Switzerland/Basel-Landschaft"), ch_bl_hdy}, {"CH_BS", N_("Switzerland/Basel-Stadt"), ch_bs_hdy}, {"CH_FR", N_("Switzerland/Fribourg"), ch_fr_hdy}, {"CH_GE", N_("Switzerland/Genève"), ch_ge_hdy}, {"CH_GL", N_("Switzerland/Glarus"), ch_gl_hdy}, {"CH_GR", N_("Switzerland/Graubünden"), ch_gr_hdy}, {"CH_JU", N_("Switzerland/Jura"), ch_ju_hdy}, {"CH_LU", N_("Switzerland/Luzern"), ch_lu_hdy}, {"CH_NE", N_("Switzerland/Neuchâtel"), ch_ne_hdy}, {"CH_NW", N_("Switzerland/Nidwalden"), ch_nw_hdy}, {"CH_OW", N_("Switzerland/Obwalden"), ch_ow_hdy}, {"CH_SG", N_("Switzerland/St Gallen"), ch_sg_hdy}, {"CH_SH", N_("Switzerland/Schaffhausen"), ch_sh_hdy}, {"CH_SO", N_("Switzerland/Solothurn"), ch_so_hdy}, {"CH_SZ", N_("Switzerland/Schwyz"), ch_sz_hdy}, {"CH_TG", N_("Switzerland/Thurgau"), ch_tg_hdy}, {"CH_TI", N_("Switzerland/Ticino"), ch_ti_hdy}, {"CH_UR", N_("Switzerland/Uri"), ch_ur_hdy}, {"CH_VD", N_("Switzerland/Vaud"), ch_vd_hdy}, {"CH_VS", N_("Switzerland/Valais"), ch_vs_hdy}, {"CH_ZG", N_("Switzerland/Zug"), ch_zg_hdy}, {"CH_ZH", N_("Switzerland/Zürich"), ch_zh_hdy}, {"CI", N_("Côte d'Ivoire"), ci_hdy}, {"CK", N_("Cook Islands"), ck_hdy}, {"CL", N_("Chile"), cl_hdy}, {"CM", N_("Cameroon"), cm_hdy}, {"CN", N_("China"), cn_hdy}, {"CO", N_("Colombia"), co_hdy}, {"CR", N_("Costa Rica"), cr_hdy}, {"CU", N_("Cuba"), cu_hdy}, {"CV", N_("Cape Verde"), cv_hdy}, {"CX", N_("Christmas Islands"), cx_hdy}, {"CY", N_("Cyprus"), cy_hdy}, {"CZ", N_("Czech Republic"), cz_hdy}, {"DE_BB", N_("Germany/Brandenburg"), de_bb_hdy}, {"DE_BE", N_("Germany/Berlin"), de_be_hdy}, {"DE_BW", N_("Germany/Baden-Württemberg"), de_bw_hdy}, {"DE_BY", N_("Germany/Bavaria"), de_by_hdy}, {"DE_HB", N_("Germany/Bremen"), de_hb_hdy}, {"DE_HE", N_("Germany/Hesse"), de_he_hdy}, {"DE_HH", N_("Germany/Hamburg"), de_hh_hdy}, {"DE_MV", N_("Germany/Mecklenburg-West Pomerania"), de_mv_hdy}, {"DE_NI", N_("Germany/Lower Saxony"), de_ni_hdy}, {"DE_NW", N_("Germany/North Rhine-Westphalia"), de_nw_hdy}, {"DE_RP", N_("Germany/Rhineland Palatinate"), de_rp_hdy}, {"DE_SH", N_("Germany/Schleswig-Holstein"), de_sh_hdy}, {"DE_SL", N_("Germany/Saarland"), de_sl_hdy}, {"DE_SN", N_("Germany/Saxony"), de_sn_hdy}, {"DE_ST", N_("Germany/Saxony-Anhalt"), de_st_hdy}, {"DE_TH", N_("Germany/Thuringia"), de_th_hdy}, {"DJ", N_("Djibouti"), dj_hdy}, {"DK", N_("Denmark"), dk_hdy}, {"DM", N_("Dominica"), dm_hdy}, {"DO", N_("Dominican Republic"), do_hdy}, {"DZ", N_("Algeria"), dz_hdy}, {"EC", N_("Ecuador"), ec_hdy}, {"EE", N_("Estonia"), ee_hdy}, {"EG", N_("Egypt"), eg_hdy}, {"EH", N_("Western Sahara"), eh_hdy}, {"ER", N_("Eritrea"), er_hdy}, {"ES", N_("Spain"), es_hdy}, {"ET", N_("Ethiopia"), et_hdy}, {"FI", N_("Finland"), fi_hdy}, {"FJ", N_("Fiji #"), fj_hdy}, {"FK", N_("Falkland Islands (Malvinas)"), fk_hdy}, {"FM", N_("Federated States of Micronesia"), fm_hdy}, {"FO", N_("Faroes"), fo_hdy}, {"FR", N_("France"), fr_hdy}, {"GA", N_("Gabon #"), ga_hdy}, {"GB_EN", N_("Great Britain/England and Wales"), gb_en_hdy}, {"GB_NI", N_("Great Britain/Northern Ireland"), gb_ni_hdy}, {"GB_SL", N_("Great Britain/Scotland"), gb_sl_hdy}, {"GD", N_("Grenada"), gd_hdy}, {"GE", N_("Georgia"), ge_hdy}, {"GF", N_("French Guiana"), gf_hdy}, {"GH", N_("Ghana"), gh_hdy}, {"GI", N_("Gibraltar"), gi_hdy}, {"GL", N_("Greenland"), gl_hdy}, {"GM", N_("Gambia"), gm_hdy}, {"GN", N_("Guinea"), gn_hdy}, {"GP", N_("Guadeloupe"), gp_hdy}, {"GQ", N_("Equatorial Guinea"), gq_hdy}, {"GR", N_("Greece"), gr_hdy}, {"GS", N_("South Georgia and South Sandwich Islands"), gs_hdy}, {"GT", N_("Guatemala"), gt_hdy}, {"GU", N_("Guam"), gu_hdy}, {"GW", N_("Guinea-Bissau #"), gw_hdy}, {"GY", N_("Guyana #"), gy_hdy}, {"HK", N_("Hong Kong"), hk_hdy}, {"HM", N_("Heard and Mc Donald Islands"), hm_hdy}, {"HN", N_("Honduras"), hn_hdy}, {"HR", N_("Croatia"), hr_hdy}, {"HT", N_("Haiti"), ht_hdy}, {"HU", N_("Hungary"), hu_hdy}, {"ID", N_("Indonesia #"), id_hdy}, {"IE", N_("Ireland"), ie_hdy}, {"IL", N_("Israel"), il_hdy}, {"IN", N_("India #"), in_hdy}, {"IQ", N_("Iraq"), iq_hdy}, {"IR", N_("Islamic Republic of Iran"), ir_hdy}, {"IS", N_("Iceland"), is_hdy}, {"IT", N_("Italy"), it_hdy}, {"JM", N_("Jamaica"), jm_hdy}, {"JO", N_("Jordan"), jo_hdy}, {"JP", N_("Japan"), jp_hdy}, {"KE", N_("Kenya #"), ke_hdy}, {"KG", N_("Kyrgyzstan"), kg_hdy}, {"KH", N_("Cambodia #"), kh_hdy}, {"KI", N_("Kiribati #"), ki_hdy}, {"KM", N_("Comoros"), km_hdy}, {"KN", N_("St Kitts and Nevis"), kn_hdy}, {"KP", N_("Democratic People's Republic of Korea"), kp_hdy}, {"KR", N_("Republic of Korea"), kr_hdy}, {"KW", N_("Kuwait"), kw_hdy}, {"KY", N_("Cayman Islands"), ky_hdy}, {"KZ", N_("Kazakhstan"), kz_hdy}, {"LA", N_("Laos People's Democratic Republic #"), la_hdy}, {"LB", N_("Lebanon"), lb_hdy}, {"LC", N_("St Lucia"), lc_hdy}, {"LI", N_("Liechtenstein"), li_hdy}, {"LK", N_("Sri Lanka #"), lk_hdy}, {"LR", N_("Liberia"), lr_hdy}, {"LS", N_("Lesotho"), ls_hdy}, {"LT", N_("Lithuania"), lt_hdy}, {"LU", N_("Luxembourg"), lu_hdy}, {"LV", N_("Latvia"), lv_hdy}, {"LY", N_("Libyan Arab Jamahiriya (Libya)"), ly_hdy}, {"MA", N_("Morocco"), ma_hdy}, {"MC", N_("Monaco"), mc_hdy}, {"MD", N_("Republic of Moldova"), md_hdy}, {"MG", N_("Madagascar #"), mg_hdy}, {"MH", N_("Marshall Islands"), mh_hdy}, {"MK", N_("Former Yugoslav Republic of Macedonia"), mk_hdy}, {"ML", N_("Mali"), ml_hdy}, {"MN", N_("Mongolia #"), mn_hdy}, {"MO", N_("Macau"), mo_hdy}, {"MP", N_("Northern Marian Islands (Saipan)"), mp_hdy}, {"MQ", N_("Martinique"), mq_hdy}, {"MR", N_("Mauritania"), mr_hdy}, {"MS", N_("Montserrat"), ms_hdy}, {"MT", N_("Malta"), mt_hdy}, {"MU", N_("Mauritius"), mu_hdy}, {"MV", N_("Maldives"), mv_hdy}, {"MW", N_("Malawi"), mw_hdy}, {"MX", N_("Mexico"), mx_hdy}, {"MY", N_("Malaysia #"), my_hdy}, {"MZ", N_("Mozambique"), mz_hdy}, {"NA", N_("Namibia"), na_hdy}, {"NC", N_("New Caledonia"), nc_hdy}, {"NE", N_("Niger"), ne_hdy}, {"NF", N_("Norfolk Island"), nf_hdy}, {"NG", N_("Nigeria"), ng_hdy}, {"NI", N_("Nicaragua"), ni_hdy}, {"NL", N_("Netherlands"), nl_hdy}, {"NM", N_("Myanmar (Burma) #"), nm_hdy}, {"NO", N_("Norway"), no_hdy}, {"NP", N_("Nepal #"), np_hdy}, {"NR", N_("Nauru"), nr_hdy}, {"NU", N_("Niue"), nu_hdy}, {"NZ", N_("New Zealand"), nz_hdy}, {"OM", N_("Oman"), om_hdy}, {"PA", N_("Panama"), pa_hdy}, {"PE", N_("Peru"), pe_hdy}, {"PF", N_("French Polynesia"), pf_hdy}, {"PG", N_("Papua New Guinea"), pg_hdy}, {"PH", N_("Philippines"), ph_hdy}, {"PK", N_("Pakistan"), pk_hdy}, {"PL", N_("Poland"), pl_hdy}, {"PM", N_("Saint-Pierre and Miquelon"), pm_hdy}, {"PN", N_("Pitcairn"), pn_hdy}, {"PR", N_("Puerto Rico"), pr_hdy}, {"PT", N_("Portugal"), pt_hdy}, {"PW", N_("Palau"), pw_hdy}, {"PY", N_("Paraguay"), py_hdy}, {"QA", N_("Qatar"), qa_hdy}, {"RE", N_("Réunion"), re_hdy}, {"RO", N_("Romania"), ro_hdy}, {"RU", N_("Russian Federation"), ru_hdy}, {"RW", N_("Rwanda"), rw_hdy}, {"SA", N_("Saudi Arabia"), sa_hdy}, {"SB", N_("Solomon Islands"), sb_hdy}, {"SC", N_("Seychellen"), sc_hdy}, {"SD", N_("Sudan"), sd_hdy}, {"SE", N_("Sweden"), se_hdy}, {"SG", N_("Singapore #"), sg_hdy}, {"SH", N_("St Helena"), sh_hdy}, {"SI", N_("Slovenia"), si_hdy}, {"SJ", N_("Svalbard and Jan Mayen Islands"), sj_hdy}, {"SK", N_("Slovakia"), sk_hdy}, {"SL", N_("Sierra Leone"), sl_hdy}, {"SM", N_("San Marino"), sm_hdy}, {"SN", N_("Senegal"), sn_hdy}, {"SO", N_("Somalia"), so_hdy}, {"SR", N_("Suriname #"), sr_hdy}, {"ST", N_("Sao Tomé and Principe"), st_hdy}, {"SV", N_("El Salvador"), sv_hdy}, {"SY", N_("Syrian Arab Republic (Syria)"), sy_hdy}, {"SZ", N_("Swaziland"), sz_hdy}, {"TC", N_("Turks and Caicos Islands"), tc_hdy}, {"TD", N_("Chad"), td_hdy}, {"TG", N_("Togo #"), tg_hdy}, {"TH", N_("Thailand #"), th_hdy}, {"TJ", N_("Tajikistan"), tj_hdy}, {"TK", N_("Tokelau"), tk_hdy}, {"TM", N_("Turkmenistan"), tm_hdy}, {"TN", N_("Tunisia"), tn_hdy}, {"TO", N_("Tonga"), to_hdy}, {"TR", N_("Turkey"), tr_hdy}, {"TT", N_("Trinidad and Tobago #"), tt_hdy}, {"TV", N_("Tuvalu"), tv_hdy}, {"TW", N_("Taiwan"), tw_hdy}, {"TZ", N_("Tanzania"), tz_hdy}, {"UA", N_("Ukraine"), ua_hdy}, {"UG", N_("Uganda"), ug_hdy}, {"US_AK", N_("United States/Alaska"), us_ak_hdy}, {"US_AL", N_("United States/Alabama"), us_al_hdy}, {"US_AR", N_("United States/Arkansas"), us_ar_hdy}, {"US_AZ", N_("United States/Arizona"), us_az_hdy}, {"US_CA", N_("United States/California"), us_ca_hdy}, {"US_CO", N_("United States/Colorado"), us_co_hdy}, {"US_CT", N_("United States/Connecticut"), us_ct_hdy}, {"US_DC", N_("United States/District of Columbia"), us_dc_hdy}, {"US_DE", N_("United States/Delaware"), us_de_hdy}, {"US_FL", N_("United States/Florida"), us_fl_hdy}, {"US_GA", N_("United States/Georgia"), us_ga_hdy}, {"US_HI", N_("United States/Hawaii"), us_hi_hdy}, {"US_IA", N_("United States/Iowa"), us_ia_hdy}, {"US_ID", N_("United States/Idaho"), us_id_hdy}, {"US_IL", N_("United States/Illinois"), us_il_hdy}, {"US_IN", N_("United States/Indiana"), us_in_hdy}, {"US_KS", N_("United States/Kansas"), us_ks_hdy}, {"US_KY", N_("United States/Kentucky"), us_ky_hdy}, {"US_LA", N_("United States/Louisiana"), us_la_hdy}, {"US_MA", N_("United States/Massachusetts"), us_ma_hdy}, {"US_MD", N_("United States/Maryland"), us_md_hdy}, {"US_ME", N_("United States/Maine"), us_me_hdy}, {"US_MI", N_("United States/Michigan"), us_mi_hdy}, {"US_MN", N_("United States/Minnesota"), us_mn_hdy}, {"US_MO", N_("United States/Missouri"), us_mo_hdy}, {"US_MS", N_("United States/Mississippi"), us_ms_hdy}, {"US_MT", N_("United States/Montana"), us_mt_hdy}, {"US_NC", N_("United States/North Carolina"), us_nc_hdy}, {"US_ND", N_("United States/North Dakota"), us_nd_hdy}, {"US_NE", N_("United States/Nebraska"), us_ne_hdy}, {"US_NH", N_("United States/New Hampshire"), us_nh_hdy}, {"US_NJ", N_("United States/New Jersey"), us_nj_hdy}, {"US_NM", N_("United States/New Mexico"), us_nm_hdy}, {"US_NV", N_("United States/Nevada"), us_nv_hdy}, {"US_NY", N_("United States/New York"), us_ny_hdy}, {"US_OH", N_("United States/Ohio"), us_oh_hdy}, {"US_OK", N_("United States/Oklahoma"), us_ok_hdy}, {"US_OR", N_("United States/Oregon"), us_or_hdy}, {"US_PA", N_("United States/Pennsylvania"), us_pa_hdy}, {"US_RI", N_("United States/Rhode Island"), us_ri_hdy}, {"US_SC", N_("United States/South Carolina"), us_sc_hdy}, {"US_SD", N_("United States/South Dakota"), us_sd_hdy}, {"US_TN", N_("United States/Tennessee"), us_tn_hdy}, {"US_TX", N_("United States/Texas"), us_tx_hdy}, {"US_UT", N_("United States/Utah"), us_ut_hdy}, {"US_VA", N_("United States/Virginia"), us_va_hdy}, {"US_VT", N_("United States/Vermont"), us_vt_hdy}, {"US_WA", N_("United States/Washington"), us_wa_hdy}, {"US_WI", N_("United States/Wisconsin"), us_wi_hdy}, {"US_WV", N_("United States/West Virginia"), us_wv_hdy}, {"US_WY", N_("United States/Wyoming"), us_wy_hdy}, {"UY", N_("Uruguay"), uy_hdy}, {"UZ", N_("Uzbekistan"), uz_hdy}, {"VC", N_("St Vincent and Grenadines"), vc_hdy}, {"VE", N_("Venezuela"), ve_hdy}, {"VG", N_("British Virgin Islands"), vg_hdy}, {"VI", N_("U.S. Virgin Islands"), vi_hdy}, {"VN", N_("Viet Nam"), vn_hdy}, {"VU", N_("Vanuatu"), vu_hdy}, {"WF", N_("Wallis and Futuna Islands"), wf_hdy}, {"WS", N_("Samoa"), ws_hdy}, {"YE", N_("Yemen"), ye_hdy}, {"YT", N_("Mayotte"), yt_hdy}, {"YU", N_("Serbia and Montenegro"), yu_hdy}, {"ZA", N_("South Africa"), za_hdy}, {"ZM", N_("Zambia"), zm_hdy}, {"ZW", N_("Zimbabwe"), zw_hdy}, #endif /* !HD_TOP20CC */ {NULL, NULL, NULL} }; /*! U.S. holidays observance mode. */ int observe_us_hdy = SAFR_SUMO; /*! The ISO-3166 character code used in the country specific `hdy_*()' functions. */ char *ptr_cc_id = (char *) NULL; /*! Toggle which indicates to use a different CC in output. */ Bool use_other_cc = FALSE; /*! The table which contains all the holiday texts is an unterminated vector of `Ht_struct'. */ const Ht_struct hd_text[] = { /* { int ht_id, char *ht_text }, */ /* *** Translators, please keep in mind to translate all trailing *** holiday texts to texts which have a maximum length of: *** 34 characters (if the COUNTRY-CODE suffix has 2 characters) *** 33 characters (if the COUNTRY-CODE suffix has 3 characters) *** 32 characters (if the COUNTRY-CODE suffix has 4 characters) *** 31 characters (if the COUNTRY-CODE_TERRITORY suffix has 5 characters). */ {HD_1ST_ADVENT, N_("1st Advent")}, {HD_1ST_SUNDAY_IN_LENT, N_("1st Sunday in Lent")}, {HD_2ND_ADVENT, N_("2nd Advent")}, {HD_2ND_SUNDAY_IN_LENT, N_("2nd Sunday in Lent")}, {HD_3RD_ADVENT, N_("3rd Advent")}, {HD_3RD_SUNDAY_IN_LENT, N_("3rd Sunday in Lent")}, {HD_4TH_ADVENT, N_("4th Advent")}, {HD_4TH_SUNDAY_IN_LENT, N_("4th Sunday in Lent")}, {HD_7_5_3_FESTIVAL, N_("7-5-3 Festival")}, {HD_ABORIGINES_DAY, N_("Aborigines Day")}, {HD_ALL_FOOLS_DAY, N_("All Fool's Day")}, {HD_ALL_SAINTS_DAY, N_("All Saints' Day")}, {HD_ALL_SOULS_DAY, N_("All Souls' Day")}, {HD_ALPHABET_DAY, N_("Alphabet Day")}, {HD_ANNIVERSARY_OF_AUCKLAND, N_("Anniversary of Auckland")}, {HD_ANNIVERSARY_OF_CANTERBURY_NORTH, N_("Anniversary of Canterbury North")}, {HD_ANNIVERSARY_OF_CANTERBURY_SOUTH, N_("Anniversary of Canterbury South")}, {HD_ANNIVERSARY_OF_CHATHAM_ISLANDS, N_("Anniversary of Chatham Islands")}, {HD_ANNIVERSARY_OF_HAWKES_BAY, N_("Anniversary of Hawkes' Bay")}, {HD_ANNIVERSARY_OF_MARLBOROUGH, N_("Anniversary of Marlborough")}, {HD_ANNIVERSARY_OF_NELSON, N_("Anniversary of Nelson")}, {HD_ANNIVERSARY_OF_OTAGO, N_("Anniversary of Otago")}, {HD_ANNIVERSARY_OF_SOUTHLAND, N_("Anniversary of Southland")}, {HD_ANNIVERSARY_OF_TARANAKI, N_("Anniversary of Taranaki")}, {HD_ANNIVERSARY_OF_WELLINGTON, N_("Anniversary of Wellington")}, {HD_ANNIVERSARY_OF_WESTLAND, N_("Anniversary of Westland")}, {HD_ANZAC_DAY, N_("Anzac Day")}, {HD_ARBOR_DAY, N_("Arbor Day")}, {HD_ARMED_FORCES_DAY, N_("Armed Forces Day")}, {HD_ARMISTICE_DAY, N_("Armistice Day")}, {HD_ASH_MONDAY, N_("Ash Monday")}, {HD_ASH_WEDNESDAY, N_("Ash Wednesday")}, {HD_BAHAI_ASCENSION_OF_ABDUL_BAHA, N_("Ascension of Abdu'l-Baha")}, {HD_BAHAI_ASCENSION_OF_BAHA_ULLAH, N_("Ascension of Baha'u'llah")}, {HD_BAHAI_BIRTH_OF_BAHA_ULLAH, N_("Birth of Baha'u'llah")}, {HD_BAHAI_BIRTH_OF_THE_BAB, N_("Birth of the Bab")}, {HD_BAHAI_DAY_OF_THE_COVENANT, N_("Day of the Covenant")}, {HD_BAHAI_DECLARATION_OF_THE_BAB, N_("Declaration of the Bab")}, {HD_BAHAI_FIRST_DAY_OF_RIDVAN, N_("First Day of Ridvan")}, {HD_BAHAI_MARTYRDOM_OF_THE_BAB, N_("Martyrdom of the Bab")}, {HD_BAHAI_NEW_YEARS_DAY, N_("Bahá'i New Year's Day")}, {HD_BAHAI_NINTH_DAY_OF_RIDVAN, N_("Ninth Day of Ridvan")}, {HD_BAHAI_TWELFTH_DAY_OF_RIDVAN, N_("Twelfth Day of Ridvan")}, {HD_BANK_HOLIDAY, N_("Bank Holiday")}, {HD_BASQUE_NATIONAL_DAY, N_("Basque National Day")}, {HD_BATTLE_OF_BOYNE, N_("Battle of Boyne")}, {HD_BATTLE_OF_PUEBLA, N_("Battle of Puebla")}, {HD_BEGINNING_OF_FINANCIAL_YEAR, N_("Beginning of Financial Year")}, {HD_BENITO_JUAREZ_DAY, N_("Benito Juárez Day")}, {HD_BODHIDHARMAS_BIRTHDAY, N_("Bodhidharma's Birthday")}, {HD_BOSSES_DAY, N_("Bosses' Day")}, {HD_BOXING_DAY, N_("Boxing Day")}, {HD_BRINGING_HOME_THE_HERDS_DAY, N_("Bringing Home the Herds Day")}, {HD_BRINGING_IN_THE_HARVEST_DAY, N_("Bringing in the Harvest Day")}, {HD_BUDDHAS_BIRTHDAY, N_("Buddha's Birthday")}, {HD_BURNS_NIGHT, N_("Burns Night")}, {HD_CAMOES_DAY, N_("Camoes Day")}, {HD_CARNIVAL, N_("Carnival")}, {HD_CELTIC_BELTANE, N_("Beltane")}, {HD_CELTIC_IMBOLG, N_("Imbolg")}, {HD_CELTIC_LUGHNASA, N_("Lughnasa")}, {HD_CELTIC_SAMHAIN, N_("Samhain/Celtic New Year's Day")}, {HD_CHILDRENS_DAY, N_("Children's Day")}, {HD_CHINESE_CYCLE, N_("Cycle")}, {HD_CHINESE_NEW_YEARS_DAY, N_("Chinese New Year's Day")}, {HD_CHINESE_NEW_YEARS_EVE, N_("Chinese New Year's Eve")}, {HD_CHRISTMAS_DAY, N_("Christmas Day")}, {HD_CHRISTMAS_EVE, N_("Christmas Eve")}, {HD_CHRISTS_ASCENSION_DAY, N_("Christ's Ascension Day")}, {HD_CHRYSANTHENUM_DAY, N_("Chrysanthenum Day")}, {HD_CITIZENSHIP_DAY, N_("Citizenship Day")}, {HD_CIVIC_HOLIDAY, N_("Civic Holiday")}, {HD_COLUMBUS_DAY, N_("Columbus Day")}, {HD_COMING_OF_AGE_DAY, N_("Coming of Age Day")}, {HD_CONFUCIUS_BIRTHDAY, N_("Confucius' Birthday")}, {HD_CONSTITUTION_ANNIVERSARY, N_("Constitution Anniversary")}, {HD_COPTIC_NEW_YEARS_DAY, N_("Coptic New Year's Day")}, {HD_COSMONAUTS_DAY, N_("Cosmonauts' Day")}, {HD_CROSS_RAISING_DAY, N_("Cross Raising Day")}, {HD_CULTURE_DAY, N_("Culture Day")}, {HD_DAY_AFTER_MID_AUTUMN_FESTIVAL, N_("Day after Mid-Autumn Festival")}, {HD_DAY_AFTER_TOMB_SWEEPING_DAY, N_("Day after Tomb-Sweeping Day")}, {HD_DAY_OF_ANDALUCIA, N_("Day of Andalucia")}, {HD_DAY_OF_CATALONIA, N_("Day of Catalonia")}, {HD_DAY_OF_GALICIA, N_("Day of Galicia")}, {HD_DAY_OF_PRAYER_AND_REPENTANCE, N_("Day of Prayer and Repentance")}, {HD_DAY_OF_RECONCILIATION, N_("Day of Reconciliation")}, {HD_DEFENDERS_OF_MOTHERLAND_DAY, N_("Defenders of Motherland Day")}, {HD_DOUBLE_9_DAY, N_("Double-9 Day")}, {HD_DRAGON_BOAT_FESTIVAL, N_("Dragon Boat Festival")}, {HD_DYNASTY_DAY, N_("Dynasty Day")}, {HD_EASTER_MONDAY, N_("Easter Monday")}, {HD_EASTER_SUNDAY, N_("Easter Sunday")}, {HD_ECLIPSE_LUNAR, N_("Lunar Eclipse")}, {HD_ECLIPSE_SOLAR, N_("Solar Eclipse")}, {HD_ECLIPSE_TYPE_ANNULAR, N_("Annular")}, {HD_ECLIPSE_TYPE_PARTIAL, N_("Partial")}, {HD_ECLIPSE_TYPE_PENUMBRAL, N_("Penumbral")}, {HD_ECLIPSE_TYPE_TOTAL, N_("Total")}, {HD_EINDHOVENS_LIBERATION, N_("Eindhoven's Liberation")}, {HD_ELECTION_DAY, N_("Election Day")}, {HD_EMPERORS_BIRTHDAY, N_("Emperor's Birthday")}, {HD_EQUINOX_DAY, N_("Equinox Day")}, {HD_ETHIOPIC_NEW_YEARS_DAY, N_("Ethiopic New Year's Day")}, {HD_FATHERS_DAY, N_("Father's Day")}, {HD_FEAST_OF_CORPUS_CHRISTI, N_("Feast of Corpus Christi")}, {HD_FEAST_OF_FORTUNE, N_("Feast of Fortune")}, {HD_FEAST_OF_HEART_JESUS, N_("Feast of Heart Jesus")}, {HD_FESTIVAL_OF_LANTERNS, N_("Festival of Lanterns")}, {HD_FESTIVAL_OF_SADEH, N_("Festival of Sadeh")}, {HD_FLAG_DAY, N_("Flag Day")}, {HD_FLEMISH_CULTURE_DAY, N_("Flemish Culture Day")}, {HD_FOUNDING_OF_THE_COMMUNIST_PARTY, N_("Founding of the Communist Party")}, {HD_FRENCH_CULTURE_DAY, N_("French Culture Day")}, {HD_FRENCH_REVOLUTIONARY, N_("French Revolutionary")}, {HD_FRIENDSHIP_DAY, N_("Friendship Day")}, {HD_GERMAN_UNITY_DAY, N_("German Unity Day")}, {HD_GOOD_FRIDAY, N_("Good Friday")}, {HD_GOOD_SATURDAY, N_("Good Saturday/Easter Eve")}, {HD_GRANDPARENTS_DAY, N_("Grandparents' Day")}, {HD_GREENERY_DAY, N_("Greenery Day")}, {HD_GROTTO_DAY, N_("Grotto Day")}, {HD_GROUNDHOG_DAY, N_("Groundhog Day")}, {HD_GUADALUPE_VIRGINS_DAY, N_("Guadalupe Virgin's Day")}, {HD_GUY_FAWKES_DAY, N_("Guy Fawkes Day")}, {HD_HALLOWEEN, N_("Halloween")}, {HD_HEALTH_AND_SPORTS_DAY, N_("Health and Sport's Day")}, {HD_HEB_HANNUKAH, N_("Hannukah/Festival of Lights")}, {HD_HEB_LAG_BOMER, N_("Lag B'Omer")}, {HD_HEB_PESACH, N_("Pesach/Passover")}, {HD_HEB_PURIM, N_("Purim/Feast of Lots")}, {HD_HEB_ROSH_HASHANA, N_("Rosh Hashana/New Year's Day")}, {HD_HEB_SHAVUOT, N_("Shavuot/Giving of the Torah")}, {HD_HEB_SHUSHAN_PURIM, N_("Shushan Purim")}, {HD_HEB_SIMCHAT_TORAH, N_("Simchat Torah")}, {HD_HEB_SUKKOT, N_("Sukkot/Feast of Tabernacles")}, {HD_HEB_TISHA_BAV, N_("Tisha B'Av/Fasting Day")}, {HD_HEB_TU_BSHEVAT, N_("Tu B'Shevat/New Year of Trees")}, {HD_HEB_YOM_HASHOAH, N_("Yom Hashoah/Holocaust Memorial")}, {HD_HEB_YOM_HAZIKARON, N_("Yom Hazikaron/Soldiers Memorial")}, {HD_HEB_YOM_HA_AZMAUT, N_("Yom Ha Azmaut/Independence Day")}, {HD_HEB_YOM_KIPPUR, N_("Yom Kippur/Atonement Day")}, {HD_HEB_YOM_YERUSHALAYIM, N_("Yom Yerushalayim/Jerusalem Day")}, {HD_HOLY_INNOCENTS_DAY, N_("Holy Innocent's Day")}, {HD_HOLY_TRINITY, N_("Holy Trinity")}, {HD_HURAVEE_DAY, N_("Huravee Day")}, {HD_INDEPENDENCE_DAY, N_("Independence Day")}, {HD_INDEPENDENCE_MOVEMENT_DAY, N_("Independence Movement Day")}, {HD_INDEPENDENCE_PROCLAMATION, N_("Independence Proclamation")}, {HD_INDIAN_NEW_YEARS_DAY, N_("Indian New Year's Day")}, {HD_ISL_AGA_KHANS_BIRTHDAY, N_("Aga Khan's Birthday")}, {HD_ISL_ASHURA, N_("Ashura'")}, {HD_ISL_EID_AL_ADHA, N_("Eid-al-Adha")}, {HD_ISL_EID_AL_FITR, N_("Eid-al-Fitr")}, {HD_ISL_EID_I_MILAD_UN_NABI, N_("Eid-i-Milad-un-Nabi")}, {HD_ISL_GHADIR, N_("Ghadir")}, {HD_ISL_IMAMAT_DAY, N_("Imamat Day")}, {HD_ISL_NEW_YEARS_DAY, N_("Islamic New Year's Day")}, {HD_ISL_NUZUL_AL_QURAN, N_("Nuzul-al-Qur'an")}, {HD_ISL_QUDS_DAY, N_("Quds Day")}, {HD_ISL_RAMADAN, N_("Ramadan")}, {HD_ISL_SHAB_E_BARAT, N_("Shab-e-Bara't")}, {HD_ISL_SHAB_E_MIRAJ, N_("Shab-e-Mi'raj")}, {HD_ISL_SHAB_E_QADR, N_("Shab-e Qadr")}, {HD_ISL_WAQF_AL_ARAFAT, N_("Waqf-al-Arafat")}, {HD_JAPANESE_NEW_YEARS_DAY, N_("Japanese New Year's Day")}, {HD_JAPANESE_NEW_YEARS_EVE, N_("Japanese New Year's Eve")}, {HD_JESUS_CIRCUMCISION, N_("Jesus' Circumcision")}, {HD_KWANZAA, N_("Kwanzaa")}, {HD_LABOUR_DAY, N_("Labour Day")}, {HD_LABOUR_THANKSGIVING_DAY, N_("Labour Thanksgiving Day")}, {HD_LAO_TZES_BIRTHDAY, N_("Lao Tze's Birthday")}, {HD_LIBERATION_DAY, N_("Liberation Day")}, {HD_MARINE_DAY, N_("Marine Day")}, {HD_MARTINIMAS, N_("Martinimas")}, {HD_MARTIN_LUTHER_KINGS_DAY, N_("Martin L. King's Day")}, {HD_MARTYRS_DAY, N_("Martyrs' Day")}, {HD_MARYS_ANNUNCIATION_DAY, N_("Mary's Annunciation Day")}, {HD_MARYS_ASCENSION_DAY, N_("Mary's Ascension Day")}, {HD_MARYS_CANDLEMAS, N_("Mary's Candlemas")}, {HD_MARYS_EXPECTATION, N_("Mary's Expectation")}, {HD_MARYS_IMMACULATE_CONCEPTION, N_("Mary's Immaculate Conception")}, {HD_MARYS_MATERNITY, N_("Mary's Maternity")}, {HD_MARYS_NAME, N_("Mary's Name")}, {HD_MARYS_NATIVITY, N_("Mary's Nativity")}, {HD_MARYS_SACRIFICE, N_("Mary's Sacrifice")}, {HD_MARYS_VISITATION, N_("Mary's Visitation")}, {HD_MARY_BLESSED_VIRGIN, N_("Mary - Blessed Virgin")}, {HD_MAUNDY_THURSDAY, N_("Maundy Thursday")}, {HD_MAY_DAY, N_("May Day")}, {HD_MIDSUMMER_DAY, N_("St John's/Midsummer Day")}, {HD_MID_AUTUMN_FESTIVAL, N_("Mid-Autumn Festival")}, {HD_MID_SPRING_FESTIVAL, N_("Mid-Spring Festival")}, {HD_MID_YEAR_FESTIVAL, N_("Mid-Year Festival")}, {HD_MOON_FIRST_QUARTER, N_("Waxing Half Moon")}, {HD_MOON_FULL, N_("Full Moon")}, {HD_MOON_LAST_QUARTER, N_("Waning Half Moon")}, {HD_MOON_NEW, N_("New Moon")}, {HD_MOTHERS_DAY, N_("Mother's Day")}, {HD_MOTHER_IN_LAWS_DAY, N_("Mother in Law's Day")}, {HD_MUSIC_WATER_BANQUET, N_("Music Water Banquet")}, {HD_NATIONAL_FOUNDATION_DAY, N_("National Foundation Day")}, {HD_NATIONAL_HOLIDAY, N_("National Holiday")}, {HD_NATIONAL_MOURNING_DAY, N_("National Mourning Day")}, {HD_NEW_YEARS_DAY, N_("New Year's Day")}, {HD_NURSES_DAY, N_("Nurses' Day")}, {HD_OLD_ARMENIC_NEW_YEARS_DAY, N_("Old-Armenic New Year")}, {HD_OLD_EGYPTIC_NEW_YEARS_DAY, N_("Old-Egyptic New Year")}, {HD_ORTHODOX_NEW_YEARS_DAY, N_("Orthodox New Year's Day")}, {HD_OUR_LADY_APARECIDA_DAY, N_("Our Lady Aparecida Day")}, {HD_PALM_SUNDAY, N_("Palm Sunday")}, {HD_PARENTS_DAY, N_("Parent's Day")}, {HD_PASSION_SUNDAY, N_("Passion Sunday")}, {HD_PEACE_FESTIVAL, N_("Peace Festival")}, {HD_PEACH_FESTIVAL, N_("Peach Festival")}, {HD_PENTECOST, N_("Whitsunday/Pentecost")}, {HD_PERSIAN_NEW_YEARS_DAY, N_("Noruz/Persian New Year's Day")}, {HD_PRAYER_DAY, N_("Prayer Day")}, {HD_PRESIDENTIAL_INAUGURATION, N_("Presidential Inauguration")}, {HD_PRESIDENTS_DAY, N_("Presidents' Day")}, {HD_PRESIDENTS_INFORM, N_("Presidents' Inform")}, {HD_PRESIDENT_LINCOLNS_BIRTHDAY, N_("President Lincoln's Birthday")}, {HD_PRINCESS_DAY, N_("Princess' Day")}, {HD_QUINQUAGESIMA_SUNDAY, N_("Quinquagesima Sunday")}, {HD_REFORMATION_DAY, N_("Reformation Day")}, {HD_REMEMBRANCE_DAY, N_("Remembrance/Memorial Day")}, {HD_RE_DAY, N_("Republic Day")}, {HD_RESPECT_FOR_THE_AGED_DAY, N_("Respect for the Aged Day")}, {HD_REVOLUTION_DAY, N_("Revolution Day")}, {HD_RIO_DE_JANEIRO_ANNIVERSARY, N_("Rio de Janeiro Anniversary")}, {HD_ROGATION_SUNDAY, N_("Rogation Sunday")}, {HD_SAO_PAULO_ANNIVERSARY, N_("Sao Paulo Anniversary")}, {HD_SAPPORO_SNOW_FESTIVAL, N_("Sapporo Snow Festival")}, {HD_SEASON_CHANGE, N_("Season Change/Bean-Festival")}, {HD_SEPTUAGESIMA_SUNDAY, N_("Septuagesima Sunday")}, {HD_SEVEN_SLEEPERS_DAY, N_("Seven Sleepers Day")}, {HD_SEXAGESIMA_SUNDAY, N_("Sexagesima Sunday")}, {HD_SHROVE_TUESDAY, N_("Shrove Tuesday/Mardi Gras")}, {HD_SOLSTICE_DAY, N_("Solstice Day")}, {HD_SOOT_SWEEPING_DAY, N_("Soot-Sweeping Day")}, {HD_SPRING_FESTIVAL, N_("Spring Festival")}, {HD_START_OF_COMMON_MONTH, N_("Start of common month")}, {HD_START_OF_LEAP_MONTH, N_("Start of leap month")}, {HD_STAR_FESTIVAL, N_("Star Festival")}, {HD_ST_ANDREWS_DAY, N_("St Andrew's Day")}, {HD_ST_BARTHOLOMEW_DAY, N_("St Bartholomew Day")}, {HD_ST_BERCHTOLDS_DAY, N_("St Berchtold's Day")}, {HD_ST_DAVIDS_DAY, N_("St David's Day")}, {HD_ST_EDWARDS_DAY, N_("St Edward's Day")}, {HD_ST_GEORGES_DAY, N_("St George's Day")}, {HD_ST_JAMES_DAY, N_("St James' Day")}, {HD_ST_JOSEPHS_DAY, N_("St Joseph's Day")}, {HD_ST_LAURENTIUS_DAY, N_("St Laurentius Day")}, {HD_ST_NICHOLAS_DAY, N_("St Nicholas' Day")}, {HD_ST_NICHOLAS_EVE, N_("St Nicholas' Eve")}, {HD_ST_PATRICKS_DAY, N_("St Patrick's Day")}, {HD_ST_PETER_AND_ST_PAUL, N_("St Peter and St Paul")}, {HD_ST_STEPHENS_DAY, N_("St Stephen's Day")}, {HD_ST_VALENTINES_DAY, N_("St Valentine's Day")}, {HD_SUNDAY_OF_THE_DEAD, N_("Sunday of the Dead")}, {HD_SWALLOW_DAY, N_("Swallow Day")}, {HD_SWEETEST_DAY, N_("Sweetest Day")}, {HD_SYLVESTER, N_("Sylvester/New Year's Eve")}, {HD_TEACHERS_DAY, N_("Teacher's Day")}, {HD_THAI_NEW_YEARS_DAY, N_("Thai New Year's Day")}, {HD_THANKSGIVING_DAY, N_("Thanksgiving Day")}, {HD_THE_KINGS_BIRTHDAY, N_("The King's Birthday")}, {HD_THE_QUEENS_BIRTHDAY, N_("The Queen's Birthday")}, {HD_THREE_KINGS_DAY, N_("Epiphany/Three King's Day")}, {HD_TIRADENTES_DAY, N_("Tiradentes Day")}, {HD_TOMB_SWEEPING_DAY, N_("Tomb-Sweeping Day")}, {HD_TRANSFIGURATION_DAY, N_("Transfiguration Day")}, {HD_TYNWALD_DAY, N_("Tynwald Day")}, {HD_VALBORGS_EVE, N_("Valborg's Eve")}, {HD_VENICE_CARNIVAL, N_("Venice Carnival")}, {HD_VETERANS_DAY, N_("Veteran's Day")}, {HD_VICTORIA_DAY, N_("Victoria Day")}, {HD_VICTORY_DAY, N_("Victory Day")}, {HD_WHIT_MONDAY, N_("Whit Monday")}, {HD_WOMENS_DAY, N_("Women's Day")}, {HD_WOMENS_SHROVE_DAY, N_("Women's Shrove Day")}, {HD_WORLD_ANIMAL_DAY, N_("World Animal Day")}, {HD_YOUTH_DAY, N_("Youth Day")} #if !HD_TOP20CC /* This COMMA is necessary here! */ , {HD_ADELAIDE_CUP_DAY, N_("Adelaide Cup Day")}, {HD_ADMISSION_DAY, N_("Admission Day")}, {HD_ALASKA_DAY, N_("Alaska Day")}, {HD_ALEKSIS_KIVI_DAY, N_("Aleksis Kivi Day")}, {HD_ALICE_SPRINGS_SHOW_DAY, N_("Alice-Springs Show Day")}, {HD_ALL_SAINTS_EVE, N_("All Saints' Eve")}, {HD_AMERICAS_DAY, N_("Americas Day")}, {HD_ANGAM_DAY, N_("Angam Day")}, {HD_ANNIVERSARY_OF_AMIRS_SUCCESSION, N_("Anniversary of Amir's Succession")}, {HD_ANNIVERSARY_OF_ARMED_STRUGGLE, N_("Anniversary of Armed Struggle")}, {HD_ANNIVERSARY_OF_GREEN_MARCH, N_("Anniversary of Green March")}, {HD_ANTILLIAN_DAY, N_("Antillian Day")}, {HD_ARAB_LEAGUE_DAY, N_("Arab League Day")}, {HD_ARCHBISHOP_MAKARIOS_MEMORIAL_DAY, N_("Archbishop Makarios' Memorial Day")}, {HD_ARCHBISHOP_MAKARIOS_NAME_DAY, N_("Archbishop Makarios' Name-Day")}, {HD_ARENGO_ANNIVERSARY, N_("Arengo Anniversary")}, {HD_ARMY_COUP_DAY, N_("Army Coup Day")}, {HD_ARRIVAL_OF_THE_SWISS, N_("Arrival of the Swiss")}, {HD_ARTIGAS_BIRTHDAY, N_("Artigas' Birthday")}, {HD_ASUNCION_DAY, N_("Asuncion Day")}, {HD_ATATURK_MEMORIAL_DAY, N_("Ataturk Memorial Day")}, {HD_AUTHORITIYS_POWER_DAY, N_("Authority's Power Day")}, {HD_BAATH_REVOLUTION_DAY, N_("Ba'ath Revolution Day")}, {HD_BARON_BLISS_DAY, N_("Baron Bliss Day")}, {HD_BATAAN_DAY, N_("Bataan Day")}, {HD_BATTLE_OF_ANGAMOS, N_("Battle of Angamos")}, {HD_BATTLE_OF_BOYACA, N_("Battle of Boyacá")}, {HD_BATTLE_OF_CARABOBO, N_("Battle of Carabobo")}, {HD_BATTLE_OF_IQUIQUE, N_("Battle of Iquique")}, {HD_BATTLE_OF_LAS_PIEDRAS, N_("Battle of Las Piedras")}, {HD_BATTLE_OF_NAEFELS, N_("Battle of Näfels")}, {HD_BEGINNING_OF_SUMMER, N_("Beginning of Summer")}, {HD_BELGRADES_DAY, N_("Belgrade's Day")}, {HD_BENNINGTON_BATTLE_DAY, N_("Bennington Battle Day")}, {HD_BLESSING_OF_THE_WATER, N_("Blessing of the Water")}, {HD_BLOOMSDAY, N_("Bloomsday")}, {HD_BOGANDA_DAY, N_("Boganda Day")}, {HD_BONAIRE_DAY, N_("Bonaire Day")}, {HD_BOQUERON_BATTLE_DAY, N_("Boqueron Battle Day")}, {HD_BOTSWANA_DAY, N_("Botswana Day")}, {HD_BOUNTY_DAY, N_("Bounty Day")}, {HD_BUNKER_HILL_DAY, N_("Bunker Hill Day")}, {HD_BURNING_OF_JAN_HUS, N_("Burning of Jan Hus")}, {HD_CANBERRA_DAY, N_("Canberra Day")}, {HD_CARICOM_DAY, N_("Caricom Day")}, {HD_CASIMIR_PULASKIS_BIRTHDAY, N_("Casimir Pulaski's Birthday")}, {HD_CASSINGA_DAY, N_("Cassinga Day")}, {HD_CAYENNE_FESTIVAL, N_("Cayenne Festival")}, {HD_CESAR_CHAVEZ_DAY, N_("Cesar Chavez Day")}, {HD_CHARTER_DAY, N_("Charter Day")}, {HD_CHIANG_KAI_SHEKS_BIRTHDAY, N_("Chiang Kai-shek's Birthday")}, {HD_CHILDRENS_WHITE_SUNDAY, N_("Children's White Sunday")}, {HD_COLON_DAY, N_("Colon Day")}, {HD_COLORADO_DAY, N_("Colorado Day")}, {HD_COMMONWEALTH_DAY, N_("Commonwealth Day")}, {HD_COMPACT_DAY, N_("Compact Day")}, {HD_CONFEDERAL_AGREEMENT_DAY, N_("Confederal Agreement Day")}, {HD_CORONATION_DAY, N_("Coronation Day")}, {HD_CUP_MATCH_DAY, N_("Cup Match Day")}, {HD_CUSTOM_CHIEFS_DAY, N_("Custom Chief's Day")}, {HD_C_MAPINDUZI_DAY, N_("C. Mapinduzi Day")}, {HD_DARWIN_SHOW_DAY, N_("Darwin Show Day")}, {HD_DAY_OF_GOODWILL, N_("Day of Goodwill")}, {HD_DAY_OF_STUDENTS_REVOLT, N_("Day of Students Revolt")}, {HD_DAY_OF_THE_FREE_LAOS, N_("Day of the Free Laos")}, {HD_DEATH_OF_H_CHRISTOPHE, N_("Death of H. Christophe")}, {HD_DEATH_OF_J_DESSALINES, N_("Death of J. Dessalines")}, {HD_DEATH_OF_PRESIDENT_ABDALLAH, N_("Death of President Abdallah")}, {HD_DEATH_OF_PRESIDENT_CHEIKH, N_("Death of President Cheikh")}, {HD_DEATH_OF_PRESIDENT_SOILIH, N_("Death of President Soilih")}, {HD_DEATH_OF_QAID_I_AZAM, N_("Death of Qaid-i-Azam")}, {HD_DEATH_OF_T_LOUVERTURE, N_("Death of T. Louverture")}, {HD_DEFENDERS_DAY, N_("Defenders Day")}, {HD_DIA_DEL_PADRE, N_("Dia del Padre")}, {HD_DIA_DE_LOS_MAESTROS, N_("Dia de los Maestros")}, {HD_DISCOVERY_DAY, N_("Discovery Day")}, {HD_DOWNFALL_OF_THE_DERGUE, N_("Downfall of the Dergue")}, {HD_DRY_SEASON_CELEBRATION, N_("Dry Season Celebration")}, {HD_DR_SUN_YAT_SENS_BIRTHDAY, N_("Dr. Sun Yat-sen's Birthday")}, {HD_DUARTES_BIRTHDAY, N_("Duarte's Birthday")}, {HD_EASTER_TUESDAY, N_("Easter Tuesday")}, {HD_ECONOMIC_LIBERATION_DAY, N_("Economic Liberation Day")}, {HD_EIGHT_HOURS_DAY, N_("Eight Hours Day")}, {HD_ELECTIONS_FOR_NATIONAL_ASSEMBLY, N_("Elections for National Assembly")}, {HD_ERROL_BARROW_DAY, N_("Errol Barrow Day")}, {HD_EVACUATION_DAY, N_("Evacuation Day")}, {HD_EVE_OF_EPIPHANY, N_("Eve of Epiphany")}, {HD_EXPEDITION_OF_THE_33, N_("Expedition of the 33")}, {HD_E_HOSTOS_BIRTHDAY, N_("E. Hostos' Birthday")}, {HD_FAMILY_DAY, N_("Family Day")}, {HD_FAO_DAY, N_("FAO Day")}, {HD_FARMERS_DAY, N_("Farmers' Day")}, {HD_FATHER_LEVAL_DAY, N_("Father Leval Day")}, {HD_FEAST_OF_OUR_THEOTOKOS, N_("Feast of Our Theotokos")}, {HD_FISHERMANS_DAY, N_("Fisherman's Day")}, {HD_FOUNDATION_OF_NPLA_DAY, N_("Foundation of NPLA Day")}, {HD_FOUNDING_OF_PEOPLES_PARTY, N_("Founding of People's Party")}, {HD_GARIFUNA_DAY, N_("Garifuna Day")}, {HD_GENERAL_SAN_MARTINS_ANNIVERSARY, N_("General San Martin's Anniversary")}, {HD_GOSPEL_DAY, N_("Gospel Day")}, {HD_GUACANASTE_DAY, N_("Guacanaste Day")}, {HD_GUSTAVUS_ADOLPHUS_DAY, N_("Gustavus Adolphus' Day")}, {HD_HERITAGE_DAY, N_("Heritage Day")}, {HD_HEROES_DAY, N_("Heroes Day")}, {HD_HOBART_SHOW_DAY, N_("Hobart Show Day")}, {HD_HOLY_WEDNESDAY, N_("Holy Wednesday")}, {HD_HO_CHI_MINHS_BIRTHDAY, N_("Ho Chi Minh's Birthday")}, {HD_HUMAN_RIGHTS_DAY, N_("Human Rights Day")}, {HD_HURRICANE_SUPPLICATION_DAY, N_("Hurricane Supplication Day")}, {HD_HURRICANE_THANKSGIVING_DAY, N_("Hurricane Thanksgiving Day")}, {HD_INDEPENDENCE_OF_CARTAGENA, N_("Independence of Cartagena")}, {HD_INDEPENDENCE_OF_CUENCA, N_("Independence of Cuenca")}, {HD_INDEPENDENCE_OF_GUAYAQUIL, N_("Independence of Guayaquil")}, {HD_INDEPENDENCE_OF_QUITO, N_("Independence of Quito")}, {HD_INDIAN_ARRIVAL_DAY, N_("Indian Arrival Day")}, {HD_INTERNAL_AUTONOMY_DAY, N_("Internal Autonomy Day")}, {HD_JEFFERSON_DAVIS_BIRTHDAY, N_("Jefferson Davis' Birthday")}, {HD_JUNE_HOLIDAY, N_("June Holiday")}, {HD_J_BARBOSAS_BIRTHDAY, N_("J. Barbosa's Birthday")}, {HD_J_CHILEMBWE_DAY, N_("J. Chilembwe Day")}, {HD_J_DIEGOS_BIRTHDAY, N_("J. Diego's Birthday")}, {HD_J_ROBERTS_BIRTHDAY, N_("J. Robert's Birthday")}, {HD_KAMARAMPAKA_DAY, N_("Kamarampaka Day")}, {HD_KARTINI_DAY, N_("Kartini Day")}, {HD_KATHERINE_SHOW_DAY, N_("Catherine Show Day")}, {HD_KIEV_DAY, N_("Kiev Day")}, {HD_KIM_IL_SUNGS_BIRTHDAY, N_("Kim Il-Sung's Birthday")}, {HD_KIM_JONG_ILS_BIRTHDAY, N_("Kim Jong-Il's Birthday")}, {HD_KING_KAMEHAMEHA_DAY, N_("King Kamehameha Day")}, {HD_KING_RAMA_I_MEMORIAL_DAY, N_("King Rama I Memorial Day/Chakri")}, {HD_KING_RAMA_V_MEMORIAL_DAY, N_("King Rama V Memorial Day")}, {HD_KNABENSCHIESSEN, N_("Knabenschiessen")}, {HD_KONSTANTIN_AND_METHODIUS, N_("Konstantin and Methodius")}, {HD_LAPP_NATIONAL_HOLIDAY, N_("Lapp National Holiday")}, {HD_LAUNCESTON_CUP_DAY, N_("Launceston Cup Day")}, {HD_LIBERTY_DAY, N_("Liberty Day")}, {HD_LOSS_OF_MUSLIM_NATION, N_("Loss of Muslim Nation")}, {HD_LUXEMBOURG_CITY_KERMIS, N_("Luxembourg City Kermis")}, {HD_LYNDON_B_JOHNSON_DAY, N_("Lyndon B. Johnson Day")}, {HD_L_RIVERAS_BIRTHDAY, N_("L. Rivera's Birthday")}, {HD_MADARAKA_DAY, N_("Madaraka Day")}, {HD_MAHATMA_GANDHIS_BIRTHDAY, N_("Mahatma Gandhi's Birthday")}, {HD_MALVINAS_DAY, N_("Malvinas Day")}, {HD_MANILA_DAY, N_("Manila Day")}, {HD_MAPUTO_CITY_DAY, N_("Maputo City Day")}, {HD_MARIEN_NGOUABI_DAY, N_("Marien Ngouabi Day")}, {HD_MARYLAND_DAY, N_("Maryland Day")}, {HD_MELBOURNE_CUP_DAY, N_("Melbourne Cup Day")}, {HD_MERCHANT_DAY, N_("Merchant Day")}, {HD_MIDSUMMERS_EVE, N_("St John's/Midsummers Eve")}, {HD_MISSIONARY_DAY, N_("Missionary Day")}, {HD_MI_CAREME_DAY, N_("Mi-Carême Day")}, {HD_MORAZAN_DAY, N_("Morazan Day")}, {HD_MOSHESHOES_DAY, N_("Mosheshoe's Day")}, {HD_MOTHERHOOD_AND_BEAUTY_DAY, N_("Motherhood and Beauty Day")}, {HD_NAMING_DAY, N_("Naming Day")}, {HD_NATIONAL_BUN_DAY, N_("National Bun Day")}, {HD_NATIONAL_HEROES_DAY, N_("National Heroes Day")}, {HD_NATIONAL_REDEMPTION_DAY, N_("National Redemption Day")}, {HD_NATIONAL_RESISTANCE_DAY, N_("National Resistance Day")}, {HD_NATIONAL_REVIVAL_DAY, N_("National Revival Day")}, {HD_NATIONAL_UNITY_DAY, N_("National Unity Day")}, {HD_NDADAYE_DAY, N_("Ndadaye Day")}, {HD_NEUTRALITY_DAY, N_("Neutrality Day")}, {HD_NEVADA_DAY, N_("Nevada Day")}, {HD_NEW_REGIME_ANNIVERSARY, N_("New Regime Anniversary")}, {HD_NOBEL_DAY, N_("Nobel Day")}, {HD_NOI_DAY, N_("Noi Day")}, {HD_OAU_DAY, N_("OAU Day")}, {HD_OCTOBER_HOLIDAY, N_("October Holiday")}, {HD_OIL_INDUSTRY_DAY, N_("Oil Industry Day")}, {HD_OUR_LADY_OF_ALTAGRACIA_DAY, N_("Our Lady of Altagracia Day")}, {HD_OUR_LADY_OF_CAMARIN_DAY, N_("Our Lady of Camarin Day")}, {HD_OUR_LADY_OF_LAS_MERCEDES_DAY, N_("Our Lady of Las Mercedes Day")}, {HD_OUR_LADY_OF_LOS_ANGELES_DAY, N_("Our Lady of Los Angeles Day")}, {HD_OUR_LADY_OF_SEVEN_SORROWS, N_("Our Lady of Seven Sorrows")}, {HD_OUR_LADY_OF_VICTORIES_DAY, N_("Our Lady of Victories Day")}, {HD_PANAMA_CITY_DAY, N_("Panama City Day")}, {HD_PANAMERICAN_DAY, N_("Panamerica Day")}, {HD_PARIS_PEACE_AGREEMENT_DAY, N_("Paris Peace Agreement Day")}, {HD_PATRIOTS_DAY, N_("Patriot's Day")}, {HD_PEOPLES_UPRISING_DAY, N_("People's Uprising Day")}, {HD_PEOPLE_POWER_DAY, N_("People Power Day")}, {HD_PHILIPPINE_USA_FRIENDSHIP, N_("Philippine-American Friendship")}, {HD_PICHINCHA_DAY, N_("Pichincha Day")}, {HD_PICNIC_DAY, N_("Picnic Day")}, {HD_PIONEER_DAY, N_("Pioneer Day")}, {HD_POYA_DAY, N_("Poya Day")}, {HD_PRINCE_KALANIANAOLE_DAY, N_("Prince Kalanianaole Day")}, {HD_PRINCE_OF_WALES_BIRTHDAY, N_("Prince of Wales' Birthday")}, {HD_PROCLAMATION_DAY, N_("Proclamation Day")}, {HD_QAID_I_AZAMS_BIRTHDAY, N_("Qaid-i-Azam's Birthday")}, {HD_RATU_SUKUMA_DAY, N_("Ratu Sukuma Day")}, {HD_RECREATION_DAY, N_("Recreation Day")}, {HD_REFERENDUM_DAY, N_("Referendum Day")}, {HD_REGATTA_DAY, N_("Regatta Day")}, {HD_REGENCY_EXCHANGE, N_("Regency Exchange")}, {HD_RESTORATION_DAY, N_("Restoration Day")}, {HD_RETURN_DAY, N_("Return Day")}, {HD_REUNIFICATION_DAY, N_("Reunification Day")}, {HD_RIZAL_DAY, N_("Rizal Day")}, {HD_RWAGASORE_DAY, N_("Rwagasore Day")}, {HD_SABA_DAY, N_("Saba Day")}, {HD_SAN_JACINTO_DAY, N_("San Jacinto Day")}, {HD_SAN_JOSE_DAY, N_("San José Day")}, {HD_SAR_ESTABLISHMENT_DAY, N_("SAR Establishment Day")}, {HD_SCHOOL_HOLIDAY, N_("School Holiday")}, {HD_SECHSELAEUTEN, N_("Sechseläuten")}, {HD_SEPARATION_DAY, N_("Separation Day")}, {HD_SERETSE_KHAMA_DAY, N_("Seretse Khama Day")}, {HD_SETTLERS_DAY, N_("Settlers Day")}, {HD_SEWARDS_DAY, N_("Seward's Day")}, {HD_SHAHEED_DAY, N_("Shaheed Day")}, {HD_SHEEP_FESTIVAL, N_("Sheep Festival")}, {HD_SHEIKH_ZAYEDS_ASCENSION_DAY, N_("Sheikh Zayed's Ascension Day")}, {HD_SIMON_BOLIVAR_DAY, N_("Simon Bolivar's Day")}, {HD_SINAI_LIBERATION_DAY, N_("Sinai-Liberation Day")}, {HD_SLAVE_LIBERATION_DAY, N_("Slave-Liberation Day")}, {HD_SNIFF_THE_BREEZE_DAY, N_("Sniff the Breeze Day")}, {HD_SOLIDARITY_DAY, N_("Solidarity Day")}, {HD_SOMERS_DAY, N_("Somers Day")}, {HD_STATIA_AMERICA_DAY, N_("Statia-American Day")}, {HD_STUDENTS_DAY, N_("Student's Day")}, {HD_ST_AGATA_DAY, N_("St Agata Day")}, {HD_ST_CANUTES_DAY, N_("St Canute's Day")}, {HD_ST_CEDILIAS_DAY, N_("St Cedilia's Day")}, {HD_ST_CHARLES_DAY, N_("St Charles' Day")}, {HD_ST_DEMETRIUS_DAY, N_("St Demetrius' Day")}, {HD_ST_DEVOTE_DAY, N_("St Dévote Day")}, {HD_ST_ELIAHS_DAY, N_("St Eliah's Day")}, {HD_ST_JEAN_BAPTISTE_DAY, N_("St Jean Baptiste Day")}, {HD_ST_LUCIAS_DAY, N_("St Lucia's Day")}, {HD_ST_MARGUERITES_DAY, N_("St Marguerite's Day")}, {HD_ST_MAROONS_DAY, N_("St Maroon's Day")}, {HD_ST_MICHAELS_DAY, N_("St Michael's Day")}, {HD_ST_OLAVS_DAY, N_("St Olav's Day")}, {HD_ST_OLAVS_EVE, N_("St Olav's Eve")}, {HD_ST_PAULS_SHIPSWRECK, N_("St Paul's Shipswreck")}, {HD_ST_ROSE_OF_LIMA, N_("St Rose of Lima")}, {HD_ST_URSULAS_DAY, N_("St Ursula's Day")}, {HD_ST_VINCENT_DE_PAULS_DAY, N_("St Vincent de Paul's Day")}, {HD_SUEZ_VICTORY_DAY, N_("Suez Victory Day")}, {HD_SULTAN_QABOOS_BIRTHDAY, N_("Sultan Qaboos' Birthday")}, {HD_SVETITSKHOVLOBA, N_("Svetitskhovloba")}, {HD_SWEDEN_DAY, N_("Sweden Day")}, {HD_S_DOES_BIRTHDAY, N_("S. Doe's Birthday")}, {HD_TENNANT_CREEK_SHOW_DAY, N_("Tennant-Creek Show Day")}, {HD_TERRITORY_DAY, N_("Territory Day")}, {HD_THE_CROWN_PRINCESSES_BIRTHDAY, N_("The Crown Princesse's Birthday")}, {HD_THE_CROWN_PRINCESSES_NAME_DAY, N_("The Crown Princesse's Name-Day")}, {HD_THE_CROWN_PRINCES_BIRTHDAY, N_("The Crown Prince's Birthday")}, {HD_THE_KINGS_NAME_DAY, N_("The King's Name-Day")}, {HD_THE_QUEENS_NAME_DAY, N_("The Queen's Name-Day")}, {HD_TOPOU_I_DAY, N_("Topou I Day")}, {HD_TOWN_MEETING_DAY, N_("Town Meeting Day")}, {HD_TRADITIONAL_DAY, N_("Traditional Day")}, {HD_TRANSFER_DAY, N_("Transfer Day")}, {HD_TRUMAN_DAY, N_("Truman Day")}, {HD_UNION_DAY, N_("Union Day")}, {HD_UNION_WITH_SWEDEN_DISSOLVED, N_("Union with Sweden dissolved")}, {HD_UNITED_NATIONS_DAY, N_("United Nations Day")}, {HD_UNITY_FACTORY_DAY, N_("Unity Factory Day")}, {HD_VICTOR_SCHOELCHER_DAY, N_("Victor-Schoelcher Day")}, {HD_VIDOVDAN, N_("Vidovdan")}, {HD_WEST_VIRGINIA_DAY, N_("West Virginia Day")}, {HD_WHITSUN_EVE, N_("Whitsun Eve")}, {HD_W_TUBMANS_BIRTHDAY, N_("W. Tubman's Birthday")}, {HD_YAP_DAY, N_("Yap Day")}, {HD_DAY_OF_CZECH_STATEHOOD, N_("Day of Czech Statehood")} #endif /* !HD_TOP20CC */ }; /* * static functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `hd-data.c'. */ static char *decode_eclipse __P_ ((double *eclipse)); static void ocs_monthtext __P_ ((Bool * init_data, const Bool detected, const char *ptr_cc_id, const int day, const int month, const int year, const Bool ocs_leap, const int ocs_month, const int ocs_year, const int ocs_extra, int *hd_elems, const int fday, const int count)); __END_DECLARATIONS /* * static variables definitions. */ /*! Number of past days of Hebrew month. */ static const int hmvec[][MONTH_MAX + 1] = { {0, 30, 59, 88, 117, 147, 147, 176, 206, 235, 265, 294, 324}, {0, 30, 59, 89, 118, 148, 148, 177, 207, 236, 266, 295, 325}, {0, 30, 60, 90, 119, 149, 149, 178, 208, 237, 267, 296, 326}, {0, 30, 59, 88, 117, 147, 177, 206, 236, 265, 295, 324, 354}, {0, 30, 59, 89, 118, 148, 178, 207, 237, 266, 296, 325, 355}, {0, 30, 60, 90, 119, 149, 179, 208, 238, 267, 297, 326, 356} }; /*! Latin Zodiac names. */ static const char *zod_name[] = { "Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpius", "Sagittarius", "Capricornus", "Aquarius", "Pisces" }; /*! Chinese (Mandarin??) names for the celestial stems. */ static const char *chi_stem[] = { "Jia", "Yi", "Bing", "Ding", "Wu", "Ji", "Geng", "Xin", "Ren", "Gui" }; /*! Chinese (Mandarin??) names for the heavenly branches. */ static const char *chi_branch[] = { N_("Zi/Rat"), N_("Chou/Ox"), N_("Yin/Tiger"), N_("Mao/Rabbit"), N_("Chen/Dragon"), N_("Si/Snake"), N_("Wu/Horse"), N_("Wei/Sheep"), N_("Shen/Monkey"), N_("You/Rooster"), N_("Xu/Dog"), N_("Hai/Pig") }; /* * Function implementations. */ static char * decode_eclipse (eclipse) double *eclipse; /*! Decodes the eclipse mode value given via the address of ECLIPSE in that it is reduced to the Julian/Gregorian date with time fraction and returns a pointer to the proper eclipse mode text found. */ { if (*eclipse > ECLIPSE_TOTAL) { *eclipse -= ECLIPSE_TOTAL; return (_(hd_text[HD_ECLIPSE_TYPE_TOTAL].ht_text)); } if (*eclipse > ECLIPSE_ANNULAR) { *eclipse -= ECLIPSE_ANNULAR; return (_(hd_text[HD_ECLIPSE_TYPE_ANNULAR].ht_text)); } if (*eclipse > ECLIPSE_PARTIAL) { *eclipse -= ECLIPSE_PARTIAL; return (_(hd_text[HD_ECLIPSE_TYPE_PARTIAL].ht_text)); } if (*eclipse > ECLIPSE_PENUMBRAL) { *eclipse -= ECLIPSE_PENUMBRAL; return (_(hd_text[HD_ECLIPSE_TYPE_PENUMBRAL].ht_text)); } /* Internal error, misplaced eclipse mode constants defined by maintainer! */ abort (); /* Notreached, only used to make the compiler happy :) */ return (NULL); } static void ocs_monthtext (init_data, detected, ptr_cc_id, day, month, year, ocs_leap, ocs_month, ocs_year, ocs_extra, hd_elems, fday, count) Bool *init_data; const Bool detected; const char *ptr_cc_id; const int day; const int month; const int year; const Bool ocs_leap; const int ocs_month; const int ocs_year; const int ocs_extra; int *hd_elems; const int fday; const int count; /*! Formats a text that includes the given OCS_MONTH and OCS_YEAR number, which is based on another calendar systems date. The given PTR_CC_ID is also placed in the text, provided with a trailing SUFFIX character. */ { static char the_cc_id[7]; auto char *the_text; strcpy (the_cc_id, ptr_cc_id); strcat (the_cc_id, "*"); if (ocs_leap) the_text = _(hd_text[HD_START_OF_LEAP_MONTH].ht_text); else the_text = _(hd_text[HD_START_OF_COMMON_MONTH].ht_text); if (ocs_extra != SPECIAL_VALUE) sprintf (s2, "%s %02d/%d-%d", the_text, ocs_month, ocs_year, ocs_extra); else sprintf (s2, "%s %02d/%d", the_text, ocs_month, ocs_year); holiday (*init_data, detected, s2, the_cc_id, DIS_HLS_PREF, day, month, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } const Cc_struct * binsearch_cc_id (id) char *id; /*! Simple binary search the delivered `id' if it is listed in the global `cc_holidays' table. The `id' is an ISO-3166 A2 (2-letter) country code, plus an optionally trailing territory text `_TT'. If `id' is found in the table, this function returns a pointer to its complete record, otherwise NULL. *** This functions must be placed in the same `.c' file *** in which the `cc_holidays' table is defined! */ { auto const Cc_struct *ptr_cc; register int i; register int low = 0; register int mid; register int high = (sizeof cc_holidays / sizeof (Cc_struct)) - 2; while (low <= high) { mid = ((low + high) >> 1); ptr_cc = cc_holidays + mid; i = strcmp (id, ptr_cc->cc_id); if (i < 0) high = mid - 1; else if (i > 0) low = mid + 1; else return (ptr_cc); } return (NULL); } void base_christian_hdy (init_data, detected, easter, year, hd_elems, fday, count, cc) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; const char *cc; /*! Manages all base Christian Western churches calendar based holidays. */ { holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, "+", 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, "+", easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, "+", easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_NEW_YEARS_DAY].ht_text), ptr_cc_id, "+", DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PENTECOST].ht_text), ptr_cc_id, "+", easter + 49, 0, year, hd_elems, fday, count); if (strcmp (cc, "SE") != 0) holiday (*init_data, detected, _(hd_text[HD_WHIT_MONDAY].ht_text), ptr_cc_id, "+", easter + 50, 0, year, hd_elems, fday, count); } /* * All global holiday management functions. */ void astronomical_hdy (init_data, detected, year, hd_elems, fday, count) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; /*! Manages all Astronomically based holidays (equinoxes, solstices, Moon phases, solar and lunar eclipses). Calculations are done for a line at a definite meridian expressed as a time value. This time value is given by the global `time_hour_offset' variable and by the global `time_min_offset' variable. If HOUR and MIN are set to zero, calculations are made for Universal Time (UTC/GMT). If HOUR and MIN have a positive sign, UTC/GMT calculations are made for meridians East of Greenwich, otherwise for meridians West of Greenwich. */ { auto double mjd; auto double eclipse; auto double x; auto Ulint lunation; auto int the_min; auto int the_hour; auto int d; auto int m; auto int y = year; auto char *ptr_txt; auto char *ptr2_txt = (char *) NULL; ptr_cc_id = _("Ast"); /* Detect all equinoxes and solstices of the YEAR. */ for (x = NH_VE; x <= NH_WS; x += 90.0) { mjd = equinox_solstice (x, &d, &m, &y, time_hour_offset, time_min_offset); if (mjd != SPECIAL_VALUE) { val2hours (mjd, &the_hour, &the_min, NULL); if (x == NH_VE || x == NH_AE) ptr_txt = _(hd_text[HD_EQUINOX_DAY].ht_text); else ptr_txt = _(hd_text[HD_SOLSTICE_DAY].ht_text); sprintf (s2, "%s %02d%s%02d", ptr_txt, the_hour, time_sep, the_min); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } else y = year; } /* Detect all New, First Quarter, Full and Last Quarter Moon phases, and all solar and lunar eclipses of the YEAR. */ for (x = MPHASE_NEW; x <= MPHASE_LQT; x += 0.25) { lunation = 0L; d = DAY_MIN; m = MONTH_MIN; y = year; while (y == year) { mjd = moonphase (x, TRUE, &eclipse, &lunation, &d, &m, &y, time_hour_offset, time_min_offset); if (y == year) { /* Manage Moon phase. */ switch ((int) ROUND (x * 4.0)) { case 0: ptr_txt = _(hd_text[HD_MOON_NEW].ht_text); ptr2_txt = _(hd_text[HD_ECLIPSE_SOLAR].ht_text); break; case 1: ptr_txt = _(hd_text[HD_MOON_FIRST_QUARTER].ht_text); break; case 2: ptr_txt = _(hd_text[HD_MOON_FULL].ht_text); ptr2_txt = _(hd_text[HD_ECLIPSE_LUNAR].ht_text); break; case 3: ptr_txt = _(hd_text[HD_MOON_LAST_QUARTER].ht_text); break; default: abort (); /* Error, invalid case! */ } val2hours (mjd, &the_hour, &the_min, NULL); sprintf (s2, "%s %02d%s%02d", ptr_txt, the_hour, time_sep, the_min); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); /* Manage eclipse. */ if (eclipse != SPECIAL_VALUE) { ptr_txt = decode_eclipse (&eclipse); num2date ((Ulint) eclipse, &d, &m, &y); val2hours (eclipse, &the_hour, &the_min, NULL); sprintf (s2, "%s/%s %02d%s%02d", ptr2_txt, ptr_txt, the_hour, time_sep, the_min); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } lunation++; } } } } void bahai_hdy (init_data, detected, year, hd_elems, fday, count, cc) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; const char *cc; /*! Manages all Bah'a'i calendar based holidays since AD 21-Mar-1844. */ { if (year > 1843) { register int doy; register int cc_mode; if (cc == (char *) NULL) cc_mode = 0; else if (!strcmp (cc, HD_MCNY)) cc_mode = SPECIAL_VALUE; else abort (); /* Error, invalid case! */ ptr_cc_id = _("Bah"); doy = day_of_year (21, 3, year); if (year <= greg->year) doy -= 12; /* Calculate the year number used in the Bah'a'i calendar. */ sprintf (s2, "%s %d", _(hd_text[HD_BAHAI_NEW_YEARS_DAY].ht_text), year - 1843); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, doy, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; if (!cc_mode) { holiday (*init_data, detected, _(hd_text[HD_BAHAI_FIRST_DAY_OF_RIDVAN].ht_text), ptr_cc_id, DIS_HLS_PREF, doy + 31, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BAHAI_NINTH_DAY_OF_RIDVAN].ht_text), ptr_cc_id, DIS_HLS_PREF, doy + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BAHAI_TWELFTH_DAY_OF_RIDVAN].ht_text), ptr_cc_id, DIS_HLS_PREF, doy + 42, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BAHAI_DECLARATION_OF_THE_BAB].ht_text), ptr_cc_id, DIS_HLS_PREF, doy + 63, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BAHAI_ASCENSION_OF_BAHA_ULLAH].ht_text), ptr_cc_id, DIS_HLS_PREF, doy + 69, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BAHAI_MARTYRDOM_OF_THE_BAB].ht_text), ptr_cc_id, DIS_HLS_PREF, doy + 110, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BAHAI_BIRTH_OF_THE_BAB].ht_text), ptr_cc_id, DIS_HLS_PREF, doy + 213, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BAHAI_BIRTH_OF_BAHA_ULLAH].ht_text), ptr_cc_id, DIS_HLS_PREF, doy + 236, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BAHAI_DAY_OF_THE_COVENANT].ht_text), ptr_cc_id, DIS_HLS_PREF, doy + 250, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BAHAI_ASCENSION_OF_ABDUL_BAHA].ht_text), ptr_cc_id, DIS_HLS_PREF, doy + 252, 0, year, hd_elems, fday, count); } } } void bahai_mth (init_data, detected, year, hd_elems, fday, count) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; /*! Manages all Bah'a'i calendar based months since AD 21-Mar-1844. */ { if (year > 1843) { auto Ulint bdate; register int bm; register int i; register int n; auto int d; auto int m; auto int y; ptr_cc_id = _("Bah"); for (n = year - 1; n <= year; n++) if (n > 1843) { bdate = date2num (21, 3, n); if (n <= greg->year) bdate -= 12; /* And manage all Bah'a'i calendar months. */ for (bm = MONTH_MIN, i = 0; i <= 19; bm++, i++) { num2date (bdate, &d, &m, &y); if (y == year) { if (i == 18) { bm--; bdate -= (15 - (days_of_february (n) != 29)); ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, TRUE, bm, n - 1843, SPECIAL_VALUE, hd_elems, fday, count); } else ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, FALSE, bm, n - 1843, SPECIAL_VALUE, hd_elems, fday, count); } bdate += 19; } } } } void celtic_hdy (init_data, detected, year, hd_elems, fday, count, cc) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; const char *cc; /*! Manages all Celtic calendar based holidays. Calculations are done for a line at a definite meridian expressed as a time value. This time value is given by the global `time_hour_offset' variable and by the global `time_min_offset' variable. If HOUR and MIN are set to zero, calculations are made for Universal Time (UTC/GMT). If HOUR and MIN have a positive sign, UTC/GMT calculations are made for meridians East of Greenwich, otherwise for meridians West of Greenwich. */ { register int cc_mode; auto int d; auto int m; auto int y = year; if (cc == (char *) NULL) cc_mode = 0; else if (!strcmp (cc, HD_MCNY)) cc_mode = SPECIAL_VALUE; else abort (); /* Error, invalid case! */ ptr_cc_id = _("Cel"); /* Manage all critical holidays, which can exceed the year bounds of a Julian/Gregorian calendar year. */ if (sun_longitude (225.0, &d, &m, &y, time_hour_offset, time_min_offset, FALSE) != SPECIAL_VALUE) { holiday (*init_data, detected, _(hd_text[HD_CELTIC_SAMHAIN].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } else y = year; if (!cc_mode) { if (sun_longitude (315.0, &d, &m, &y, time_hour_offset, time_min_offset, FALSE) != SPECIAL_VALUE) { holiday (*init_data, detected, _(hd_text[HD_CELTIC_IMBOLG].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } else y = year; if (sun_longitude (45.0, &d, &m, &y, time_hour_offset, time_min_offset, FALSE) != SPECIAL_VALUE) { holiday (*init_data, detected, _(hd_text[HD_CELTIC_BELTANE].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } else y = year; if (sun_longitude (135.0, &d, &m, &y, time_hour_offset, time_min_offset, FALSE) != SPECIAL_VALUE) { holiday (*init_data, detected, _(hd_text[HD_CELTIC_LUGHNASA].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } } void chinese_hdy (init_data, detected, year, hd_elems, fday, count, cc, is_any_meridian) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; const char *cc; const Bool is_any_meridian; /*! Manages all Chinese calendar based holidays since AD 1645. Earlier years are not respected, because the rules of the Chinese calendar have changed too many times during these former years. The function results have to be interpreted with caution, because of the inaccuratenesses of the Moon phase and the Sun longitude calculation function used. For a good and detailed reference of the Chinese calendar, see: "The Mathematics of the Chinese Calendar" by Helmer Aslaksen, . */ { if (year > 1644) { auto Ulint conjunction_vector[MONTH_MAX + 4]; auto Ulint *ptr_conjunction_vector = conjunction_vector; auto Ulint zq; register int cj; register int lm; register int cc_mode; register int hour; register int min; register int extra = 0; register int i; register int j; register int k; auto int d; auto int m; auto int y = year; auto char *hdy_prefix; auto Bool is_checked = FALSE; auto Bool check_twice = FALSE; if (cc == (char *) NULL) cc_mode = 0; else if (!strcmp (cc, "BN")) cc_mode = 1; else if (!strcmp (cc, "CN")) cc_mode = 2; else if (!strcmp (cc, "HK")) cc_mode = 3; else if (!strcmp (cc, "ID")) cc_mode = 4; else if (!strcmp (cc, "KH")) cc_mode = 5; else if (!strcmp (cc, "KR")) cc_mode = 6; else if (!strcmp (cc, "KP")) cc_mode = 7; else if (!strcmp (cc, "LA")) cc_mode = 8; else if (!strcmp (cc, "MN")) cc_mode = 9; else if (!strcmp (cc, "MO")) cc_mode = 10; else if (!strcmp (cc, "MU")) cc_mode = 11; else if (!strcmp (cc, "MY")) cc_mode = 12; else if (!strcmp (cc, "PF")) cc_mode = 13; else if (!strcmp (cc, "SG")) cc_mode = 14; else if (!strcmp (cc, "TH")) cc_mode = 15; else if (!strcmp (cc, "TW")) cc_mode = 16; else if (!strcmp (cc, "VN")) cc_mode = 17; else if (!strcmp (cc, HD_MCNY)) cc_mode = SPECIAL_VALUE; else abort (); /* Error, invalid case! */ if (!cc_mode || cc_mode == SPECIAL_VALUE) ptr_cc_id = _("Chi"); if (is_any_meridian) { /* Astronomical calculations are done for a line at a definite meridian expressed as a time value. This time value is given by the global `time_hour_offset' variable and by the global `time_min_offset' variable. If HOUR and MIN are set to zero, calculations are made for Universal Time (UTC/GMT). If HOUR and MIN have a positive sign, UTC/GMT calculations are made for meridians East of Greenwich, otherwise for meridians West of Greenwich. */ hour = time_hour_offset; min = time_min_offset; } else { /* Astronomical calculations are based on China local time. */ if (year < 1929) { /* Meridian Beijing (116 25' degrees East), UTC/GMT time difference. */ hour = 7; min = 45; } else { /* UTC/GMT-8 for the meridian 120 degrees East. */ hour = 8; min = 0; } } if (cc_mode != SPECIAL_VALUE) { /* Manage the major solar term/Zhong-Qi related festivals first. */ if (!cc_mode || cc_mode == 2 || cc_mode == 10) { if (cc_mode == 10) hdy_prefix = "+"; else hdy_prefix = DIS_HLS_PREF; if (equinox_solstice (NH_WS, &d, &m, &y, hour, min) != SPECIAL_VALUE) { holiday (*init_data, detected, _(hd_text[HD_SOLSTICE_DAY].ht_text), ptr_cc_id, hdy_prefix, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } else y = year; } /* Manage the minor solar term/Jie-Qi related festivals next. */ if (!cc_mode || cc_mode == 2 || cc_mode == 10) j = 1; else if (cc_mode == 3 || cc_mode == 16) j = 2; else j = 0; if (j) { if (cc_mode == 3 || cc_mode == 10 || cc_mode == 16) hdy_prefix = "+"; else hdy_prefix = DIS_HLS_PREF; if (sun_longitude (15.0, &d, &m, &y, hour, min, FALSE) != SPECIAL_VALUE) { if (j == 1) holiday (*init_data, detected, _(hd_text[HD_TOMB_SWEEPING_DAY].ht_text), ptr_cc_id, hdy_prefix, d, m, y, hd_elems, fday, count); else { (void) next_date (&d, &m, &y); holiday (*init_data, detected, _(hd_text[HD_DAY_AFTER_TOMB_SWEEPING_DAY]. ht_text), ptr_cc_id, hdy_prefix, d, m, y, hd_elems, fday, count); } if (*init_data) *init_data = FALSE; } else y = year; } } LABEL_chinese_new_year_twice: /* And now the lunar based holidays, so check for a possible leap month. */ lm = find_chinese_leap_month (ptr_conjunction_vector, &zq, y, hour, min); if (lm == SPECIAL_VALUE) { /* Error, cannot compute the lunisolar based calendar correctly. */ if (warning_level >= 0) { sprintf (s2, _ ("Cannot calculate lunisolar calendar for %d correctly"), y); print_text (stderr, s2); if (warning_level >= WARN_LVL_MAX) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 15L, "find_chinese_leap_month()::lm!=", lm); } } else { /* Now, since we know the leap month in the year YEAR, we can calculate the date of the Chinese_New_Year/Chinese calendar month 1 correctly. The Chinese_New_Year is on the date of the second New Moon ***after*** the date of the winter solstice (which is always in the 11th month of the Chinese calendar) of the previous YEAR, but only if there is NO leap month 11 or 12 (this case is marked by `lm==-11|-12'), otherwise it is on the date of the third New Moon ***after*** the date of the winter solstice of the previous YEAR. */ cj = 0; if (conjunction_vector[cj] == zq) cj++; if (lm < 0) cj += 2; else cj++; num2date (conjunction_vector[cj], &d, &m, &y); /* Detect whether it is necessary to respect the holidays of the next YEAR. This must always be done if we are creating dates according to the proleptic Julian calendar and the Chinese_New_Year holiday either started in the previous YEAR or started early in the actual YEAR. */ if (!is_checked && ((y != year) || ((year <= greg->year) && (year >= 2700)))) is_checked = check_twice = TRUE; if (!cc_mode || cc_mode == 6 || cc_mode == 16) { (void) prev_date (&d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_CHINESE_NEW_YEARS_EVE].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } (void) next_date (&d, &m, &y); } if (y == year) { if (!cc_mode || cc_mode == 7 || cc_mode == 15 || cc_mode == SPECIAL_VALUE) hdy_prefix = DIS_HLS_PREF; else if (cc_mode == 4 || cc_mode == 5) hdy_prefix = DIS_HLS_PREF2; else hdy_prefix = "+"; /* Calculate the year number used in the Chinese calendar, based on the first historical record of the 60-year cycle from 08-Mar-2637 BCE. */ k = y + 2637 + extra; sprintf (s2, "%s %d-%d", _(hd_text[HD_CHINESE_NEW_YEARS_DAY].ht_text), k, (lm < 0) ? 0 : lm); holiday (*init_data, detected, s2, ptr_cc_id, hdy_prefix, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; if (!cc_mode || cc_mode == SPECIAL_VALUE) { /* Compute the sexagesimal cycle data. */ i = ((k - 1) / 60) + 1; j = ((k - 1) % 60) + 1; sprintf (s2, "%s %d/%02d-%02d %s-%s", _(hd_text[HD_CHINESE_CYCLE].ht_text), i, j, (lm < 0) ? 0 : lm, chi_stem[((j - 1) % 10)], _(chi_branch[((j - 1) % 12)])); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); } } if (cc_mode != SPECIAL_VALUE) { if (cc_mode == 1 || cc_mode == 4 || cc_mode == 5 || cc_mode == 8 || cc_mode == 11 || cc_mode == 13) j = 0; else if (cc_mode == 6 || cc_mode == 12 || cc_mode == 14) j = 1; else if (cc_mode == 2) j = 4; else if (!cc_mode) j = 14; else j = 2; if (j) { if (!cc_mode || cc_mode == 7 || cc_mode == 15) hdy_prefix = DIS_HLS_PREF; else hdy_prefix = "+"; for (i = 0; i < j; i++) { (void) next_date (&d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_CHINESE_NEW_YEARS_DAY]. ht_text), ptr_cc_id, hdy_prefix, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } } if (!cc_mode) j = 1; else if (cc_mode == 6 || cc_mode == 7) j = 3; else j = 0; if (j) { if (!cc_mode || cc_mode == 6 || cc_mode == 7) hdy_prefix = DIS_HLS_PREF; else hdy_prefix = "+"; num2date (conjunction_vector[cj] + 14, &d, &m, &y); for (i = 0; i < j; i++) { if (y == year) { holiday (*init_data, detected, _(hd_text[HD_FESTIVAL_OF_LANTERNS]. ht_text), ptr_cc_id, hdy_prefix, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } (void) next_date (&d, &m, &y); } } /* Detect the date of the first day of the Chinese calendar month 2. */ if (lm == 1) cj++; cj++; if (!cc_mode) { num2date (conjunction_vector[cj] + 14, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_LAO_TZES_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } /* Detect the date of the first day of the Chinese calendar month 4. */ if (lm == 2 || lm == 3) cj++; cj += 2; num2date (conjunction_vector[cj] + 7, &d, &m, &y); if (y == year) { if (!cc_mode || cc_mode == 3 || cc_mode == 6 || cc_mode == 7) { if (cc_mode == 3) hdy_prefix = "+"; else if (cc_mode == 6) { if (year > 1974) hdy_prefix = "+"; else hdy_prefix = DIS_HLS_PREF; } else hdy_prefix = DIS_HLS_PREF; holiday (*init_data, detected, _(hd_text[HD_BUDDHAS_BIRTHDAY].ht_text), ptr_cc_id, hdy_prefix, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } /* Detect the date of the first day of the Chinese calendar month 5. */ if (lm == 4) cj++; num2date (conjunction_vector[++cj] + 4, &d, &m, &y); if (y == year) { if (cc_mode == 3 || cc_mode == 10) hdy_prefix = "+"; else hdy_prefix = DIS_HLS_PREF; if (!cc_mode || cc_mode == 2 || cc_mode == 3 || cc_mode == 6 || cc_mode == 7 || cc_mode == 10) { holiday (*init_data, detected, _(hd_text[HD_DRAGON_BOAT_FESTIVAL].ht_text), ptr_cc_id, hdy_prefix, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } /* Detect the date of the first day of the Chinese calendar month 7. */ if (lm == 5 || lm == 6) cj++; cj += 2; if (!cc_mode) { num2date (conjunction_vector[cj] + 6, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_STAR_FESTIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } /* Detect the date of the first day of the Chinese calendar month 8. */ if (lm == 7) cj++; num2date (conjunction_vector[++cj] + 13, &d, &m, &y); if (cc_mode == 6 || cc_mode == 7 || cc_mode == 10) hdy_prefix = "+"; else hdy_prefix = DIS_HLS_PREF; if ((cc_mode == 6) && (y == year)) { holiday (*init_data, detected, _(hd_text[HD_MID_AUTUMN_FESTIVAL].ht_text), ptr_cc_id, hdy_prefix, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } if (!cc_mode || cc_mode == 2 || cc_mode == 10) j = 1; else if (cc_mode == 6) j = 2; else if (cc_mode == 7) j = 3; else j = 0; for (i = 0; i < j; i++) { (void) next_date (&d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_MID_AUTUMN_FESTIVAL].ht_text), ptr_cc_id, hdy_prefix, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } if (cc_mode == 3 || cc_mode == 10) { num2date (conjunction_vector[cj] + 15, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_DAY_AFTER_MID_AUTUMN_FESTIVAL]. ht_text), ptr_cc_id, "+", d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } if (!cc_mode) { num2date (conjunction_vector[cj] + 26, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_CONFUCIUS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } /* Detect the date of the first day of the Chinese calendar month 9. */ if (lm == 8) cj++; cj++; if (!cc_mode || cc_mode == 3) { num2date (conjunction_vector[cj] + 8, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_DOUBLE_9_DAY].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } /* Detect the date of the first day of the Chinese calendar month 10. */ if (lm == 9) cj++; cj++; if (!cc_mode) { num2date (conjunction_vector[cj] + 5, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_BODHIDHARMAS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } } if (check_twice) { check_twice = FALSE; y = year + 1; extra++; goto LABEL_chinese_new_year_twice; } } } } void chinese_mth (init_data, detected, year, hd_elems, fday, count, is_any_meridian, do_chinese) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; const Bool is_any_meridian; const Bool do_chinese; /*! Manages all Chinese/Japanese calendar based months since AD 1645. Earlier years are not respected, because the rules of the Chinese/Japanese calendar have changed too many times during these former years. The function results have to be interpreted with caution, because of the inaccuratenesses of the Moon phase and the Sun longitude calculation function used. For a good and detailed reference of the Chinese calendar, see: "The Mathematics of the Chinese Calendar" by Helmer Aslaksen, . */ { if (year > 1644) { auto Ulint conjunction_vector[MONTH_MAX + 4]; auto Ulint *ptr_conjunction_vector = conjunction_vector; auto Ulint zq; auto Ulint cj_buf = 0L; register int cj; register int lm_buf = 0; register int lm; register int cny; register int cm; register int hour; register int min; register int i; register int j = 0; register int n; register int n_max; auto int d; auto int m; auto int y; if (do_chinese) ptr_cc_id = _("Chi"); else ptr_cc_id = _("Jap"); if (is_any_meridian) { /* Astronomical calculations are done for a line at a definite meridian expressed as a time value. This time value is given by the global `time_hour_offset' variable and by the global `time_min_offset' variable. If HOUR and MIN are set to zero, calculations are made for Universal Time (UTC/GMT). If HOUR and MIN have a positive sign, UTC/GMT calculations are made for meridians East of Greenwich, otherwise for meridians West of Greenwich. */ hour = time_hour_offset; min = time_min_offset; } else { if (do_chinese) { /* Astronomical calculations are based on China local time. */ if (year < 1929) { /* Meridian Beijing (116 25' degrees East), UTC/GMT time difference. */ hour = 7; min = 45; } else { /* UTC/GMT-8 for the meridian 120 degrees East. */ hour = 8; min = 0; } } else { /* Astronomical calculations are based on China/Japan local time. */ if (year < 1888) { /* Meridian Beijing (116 25' degrees East), UTC/GMT time difference. */ hour = 7; min = 45; } else { /* UTC/GMT-9 for the meridian 135 degrees East. */ hour = 9; min = 0; } } } /* Detect whether it is necessary to respect the holidays of the next YEAR instead of the previous YEAR. This must always be done if we are creating dates according to the proleptic Julian calendar and the Chinese_New_Year holiday either started in the previous YEAR or started early in the actual YEAR. */ if ((year <= greg->year) && (year >= 2700)) { n = year; n_max = year + 1; } else { n = year - 1; n_max = year; } for (; n <= n_max; n++) { y = n; /* Manage the lunar based months, so check for a possible leap month. */ lm = find_chinese_leap_month (ptr_conjunction_vector, &zq, y, hour, min); if (lm == SPECIAL_VALUE) { /* Error, cannot compute the lunisolar based calendar correctly. */ if (warning_level >= 0) { sprintf (s2, _ ("Cannot calculate lunisolar calendar for %d correctly"), y); print_text (stderr, s2); if (warning_level >= WARN_LVL_MAX) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 15L, "find_chinese_leap_month()::lm!=", lm); } } else { cj = 0; if (conjunction_vector[cj] == zq) cj++; if (lm < 0) cj += 2; else cj++; if (!lm) lm = YEAR_MAX; cny = cj; /* And manage all Chinese/Japanese calendar months. */ for (cm = MONTH_MIN, i = 0; i <= MONTH_MAX; cm++, i++) { num2date (conjunction_vector[cj++], &d, &m, &y); if (cm > MONTH_MAX) { if (!cj_buf) { lm_buf = lm; cj_buf = conjunction_vector[cj - 1]; } } else if (y == year) { if (do_chinese) /* Calculate the year number used in the Chinese calendar, based on the first historical record of the 60-year cycle from 08-Mar-2637 BCE. */ j = n + 2637; else /* Calculate the year number used in the Japanese calendar, based on the first historical record of the 60-year cycle from 660 BCE. */ j = n + 660; if (i == lm) { cm--; ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, TRUE, cm, j, SPECIAL_VALUE, hd_elems, fday, count); } else ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, FALSE, cm, j, SPECIAL_VALUE, hd_elems, fday, count); } } if (cj_buf) if (cj_buf < conjunction_vector[cny]) { num2date (cj_buf, &d, &m, &y); if (y == year) ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, (lm_buf == MONTH_MAX), MONTH_MAX, j - 1, SPECIAL_VALUE, hd_elems, fday, count); } } } } } void christian_hdy (init_data, detected, easter, year, hd_elems, fday, count) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; /*! Manages all Christian Western churches calendar based holidays. */ { register int day; register int month; ptr_cc_id = _("Chr"); holiday (*init_data, detected, _(hd_text[HD_1ST_SUNDAY_IN_LENT].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 42, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_2ND_SUNDAY_IN_LENT].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 35, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_3RD_SUNDAY_IN_LENT].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 28, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_4TH_SUNDAY_IN_LENT].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 21, 0, year, hd_elems, fday, count); day = eval_holiday (24, MONTH_MAX, year, DAY_MAX, FALSE); holiday (*init_data, detected, _(hd_text[HD_4TH_ADVENT].ht_text), ptr_cc_id, DIS_HLS_PREF, day, MONTH_MAX, year, hd_elems, fday, count); day -= DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_3RD_ADVENT].ht_text), ptr_cc_id, DIS_HLS_PREF, day, MONTH_MAX, year, hd_elems, fday, count); day -= DAY_MAX; holiday (*init_data, detected, _(hd_text[HD_2ND_ADVENT].ht_text), ptr_cc_id, DIS_HLS_PREF, day, MONTH_MAX, year, hd_elems, fday, count); day -= DAY_MAX; if (day > 0) month = MONTH_MAX; else { day = dvec[11 - 1] + day; month = 11; } holiday (*init_data, detected, _(hd_text[HD_1ST_ADVENT].ht_text), ptr_cc_id, DIS_HLS_PREF, day, month, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ASH_WEDNESDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 46, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_BARTHOLOMEW_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BOXING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 26, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_CORPUS_CHRISTI].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 60, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_HEART_JESUS].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 68, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARTINIMAS].ht_text), ptr_cc_id, DIS_HLS_PREF, 11, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ANNUNCIATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 25, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 15, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARY_BLESSED_VIRGIN].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_CANDLEMAS].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_EXPECTATION].ht_text), ptr_cc_id, DIS_HLS_PREF, 18, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_IMMACULATE_CONCEPTION].ht_text), ptr_cc_id, DIS_HLS_PREF, 8, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_NATIVITY].ht_text), ptr_cc_id, DIS_HLS_PREF, 8, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_NAME].ht_text), ptr_cc_id, DIS_HLS_PREF, 12, 9, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_MATERNITY].ht_text), ptr_cc_id, DIS_HLS_PREF, 11, 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_SACRIFICE].ht_text), ptr_cc_id, DIS_HLS_PREF, 21, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MARYS_VISITATION].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 7, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 24, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PALM_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - DAY_MAX, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PASSION_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 14, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PENTECOST].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 49, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_QUINQUAGESIMA_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 49, 0, year, hd_elems, fday, count); if (year > 1516) holiday (*init_data, detected, _(hd_text[HD_REFORMATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[10 - 1], 10, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ROGATION_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 35, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SEPTUAGESIMA_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 63, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SEXAGESIMA_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 56, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_ANDREWS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[11 - 1], 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_JOSEPHS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 19, 3, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_LAURENTIUS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 10, 8, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_NICHOLAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 6, MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_PETER_AND_ST_PAUL].ht_text), ptr_cc_id, DIS_HLS_PREF, 29, 6, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ST_VALENTINES_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 14, 2, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_SYLVESTER].ht_text), ptr_cc_id, DIS_HLS_PREF, dvec[MONTH_MAX - 1], MONTH_MAX, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 6, MONTH_MIN, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HOLY_TRINITY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 56, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_WHIT_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 50, 0, year, hd_elems, fday, count); } void coptic_mth (init_data, detected, year, hd_elems, fday, count, do_coptic) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; const Bool do_coptic; /*! Manages all Coptic/Ethiopic calendar based months since AD 284 (Coptic) respectively AD 7 (Ethiopic). */ { if (!do_coptic || (do_coptic && (year > 283))) { auto Ulint cdate; register int i; register int n; auto int d; auto int m; auto int y; if (do_coptic) ptr_cc_id = "EG"; else ptr_cc_id = "ET"; for (n = year - 1; n <= year; n++) if (!do_coptic || (do_coptic && (n > 283))) { cdate = date2num (29, 8, n) + ((n & 3) == 3) + julian_gregorian_diff (29, 8, n); /* And manage all Coptic/Ethiopic calendar months. */ for (i = 0; i <= MONTH_MAX; i++) { num2date (cdate, &d, &m, &y); if (y == year) ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, (i == MONTH_MAX), (i == MONTH_MAX) ? i : i + 1, (do_coptic) ? n - 283 : n - 7, SPECIAL_VALUE, hd_elems, fday, count); cdate += 30; } } } } void french_revolutionary_mth (init_data, detected, year, hd_elems, fday, count) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; /*! Manages all French Revolutionary (Republican) calendar months since AD 22-Sep-1792. */ { if (year > 1791) { auto Ulint fdate; register int i; register int n; auto int d; auto int m; auto int y; ptr_cc_id = _("FRR"); for (n = year - 1; n <= year; n++) if (n > 1791) { y = n; /* Detect the French_Revolutionary_New_Year's_Day as used in the French Revolutionary (Republican) calendar, which is based on the date of the autumnal equinox as it occurs in Paris, FR. */ fdate = (Ulint) equinox_solstice (NH_AE, &d, &m, &y, 0, 9); if (fdate != (Ulint) SPECIAL_VALUE) { /* And manage all French Revolutionary calendar months. */ for (i = 0; i <= MONTH_MAX; i++) { num2date (fdate, &d, &m, &y); if (y == year) ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, (i == MONTH_MAX), (i == MONTH_MAX) ? i : i + 1, n - 1791, SPECIAL_VALUE, hd_elems, fday, count); fdate += 30; } } } } } void indian_civil_mth (init_data, detected, year, hd_elems, fday, count) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; /*! Manages all Indian civil-calendar (reformed calendar) months since AD 22-Mar-1957. */ { if (year > 1956) { auto Ulint idate; register int i; register int n; auto int d; auto int m; auto int y; ptr_cc_id = "IN"; for (n = year - 1; n <= year; n++) if (n > 1956) { d = 22 - (days_of_february (n) == 29); if (n <= greg->year) d -= 13; idate = date2num (d, 3, n); /* And manage all Indian civil-calendar months. */ for (i = MONTH_MIN; i <= MONTH_MAX; i++) { num2date (idate, &d, &m, &y); if (y == year) ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, FALSE, i, n - 78, SPECIAL_VALUE, hd_elems, fday, count); if (i == MONTH_MIN) idate += ((days_of_february (n) == 29) ? 31 : 30); else idate += ((i < 7) ? 31 : 30); } } } } void hebrew_hdy (init_data, detected, year, hd_elems, fday, count, cc) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; const char *cc; /*! Manages all Hebrew calendar based holidays. (Really unoptimized and dull implementation of the arithmetical lunisolar Hebrew calendar, but it works.) */ { auto Ulint ddiff; auto Ulint hdate; register int cc_mode; register int doy; register int hm; register int i; register int n; auto int d; auto int m; auto int y; if (cc == (char *) NULL) cc_mode = 0; else if (!strcmp (cc, "IL")) cc_mode = 1; else if (!strcmp (cc, HD_MCNY)) cc_mode = SPECIAL_VALUE; else abort (); /* Error, invalid case! */ if (!cc_mode || cc_mode == SPECIAL_VALUE) ptr_cc_id = _("Heb"); /* Manage those holidays first, which either cannot exceed the year bounds of a Julian/Gregorian calendar year, or do not depend on the length of the Hebrew calendar year. */ doy = tishri_1 (year) - 1; /* Calculate the year number used in the Hebrew calendar. */ d = doy + 1; sprintf (s2, "%s %d", _(hd_text[HD_HEB_ROSH_HASHANA].ht_text), year + 3761); holiday (*init_data, detected, s2, ptr_cc_id, (cc_mode > 0) ? "+" : DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; if (cc_mode != SPECIAL_VALUE) { holiday (*init_data, detected, _(hd_text[HD_HEB_ROSH_HASHANA].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d + 1, 0, year, hd_elems, fday, count); (void) doy2date (doy - 143, (days_of_february (year) == 29), &d, &m); i = weekday_of_date (d, m, year); if (i == 4) (void) doy2date (doy - 144, (days_of_february (year) == 29), &d, &m); else if (i == 5) (void) doy2date (doy - 145, (days_of_february (year) == 29), &d, &m); holiday (*init_data, detected, _(hd_text[HD_HEB_YOM_HAZIKARON].ht_text), ptr_cc_id, (cc_mode) ? "#" : DIS_HLS_PREF, d, m, year, hd_elems, fday, count); d = doy - 162; if (!cc_mode) for (i = 0; i < 7; i++) holiday (*init_data, detected, _(hd_text[HD_HEB_PESACH].ht_text), ptr_cc_id, DIS_HLS_PREF, d + i, 0, year, hd_elems, fday, count); else { holiday (*init_data, detected, _(hd_text[HD_HEB_PESACH].ht_text), ptr_cc_id, "+", d, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEB_PESACH].ht_text), ptr_cc_id, "+", d + 6, 0, year, hd_elems, fday, count); } if (year > 1942) { (void) doy2date (doy - 150, (days_of_february (year) == 29), &d, &m); if (weekday_of_date (d, m, year) == 5) (void) doy2date (doy - 151, (days_of_february (year) == 29), &d, &m); holiday (*init_data, detected, _(hd_text[HD_HEB_YOM_HASHOAH].ht_text), ptr_cc_id, (cc_mode) ? "#" : DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } (void) doy2date (doy - 142, (days_of_february (year) == 29), &d, &m); i = weekday_of_date (d, m, year); if (i == 5) (void) doy2date (doy - 143, (days_of_february (year) == 29), &d, &m); else if (i == 6) (void) doy2date (doy - 144, (days_of_february (year) == 29), &d, &m); if (year > 1947) holiday (*init_data, detected, _(hd_text[HD_HEB_YOM_HA_AZMAUT].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d, m, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEB_LAG_BOMER].ht_text), ptr_cc_id, DIS_HLS_PREF, doy - 129, 0, year, hd_elems, fday, count); if (year > 1966) holiday (*init_data, detected, _(hd_text[HD_HEB_YOM_YERUSHALAYIM].ht_text), ptr_cc_id, DIS_HLS_PREF, doy - 119, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEB_SHAVUOT].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, doy - 112, 0, year, hd_elems, fday, count); (void) doy2date (doy - 50, (days_of_february (year) == 29), &d, &m); if (weekday_of_date (d, m, year) == 6) (void) doy2date (doy - 49, (days_of_february (year) == 29), &d, &m); holiday (*init_data, detected, _(hd_text[HD_HEB_TISHA_BAV].ht_text), ptr_cc_id, (cc_mode) ? "#" : DIS_HLS_PREF, d, m, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEB_YOM_KIPPUR].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, doy + 10, 0, year, hd_elems, fday, count); d = doy + 15; if (!cc_mode) for (i = 0; i < 7; i++) holiday (*init_data, detected, _(hd_text[HD_HEB_SUKKOT].ht_text), ptr_cc_id, DIS_HLS_PREF, d + i, 0, year, hd_elems, fday, count); else { holiday (*init_data, detected, _(hd_text[HD_HEB_SUKKOT].ht_text), ptr_cc_id, "+", d, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_HEB_SUKKOT].ht_text), ptr_cc_id, "+", d + 6, 0, year, hd_elems, fday, count); } holiday (*init_data, detected, _(hd_text[HD_HEB_SIMCHAT_TORAH].ht_text), ptr_cc_id, DIS_HLS_PREF, doy + 22, 0, year, hd_elems, fday, count); /* Manage those holidays last, which can either exceed the year bounds of a Julian/Gregorian calendar year, or depend on the length of the Hebrew calendar year. */ for (n = year - 1; n <= year; n++) { /* Detect the length of the Hebrew calendar year. */ (void) doy2date (tishri_1 (n + 1), (days_of_february (n + 1) == 29), &d, &m); ddiff = date2num (d, m, n + 1); doy = tishri_1 (n) - 1; (void) doy2date (doy + 1, (days_of_february (n) == 29), &d, &m); hdate = date2num (d, m, n); ddiff -= hdate--; /* Calculate the selector for the proper number of past days of month. */ if (ddiff < 383) hm = (int) ddiff - 353; else hm = (int) ddiff - 380; /* And manage all ``critical'' holidays. */ for (i = 0; i < 8; i++) { num2date (hdate + hmvec[hm][3 - 1] + 25 + i, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_HEB_HANNUKAH].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } num2date (hdate + hmvec[hm][5 - 1] + 15, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_HEB_TU_BSHEVAT].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); num2date (hdate + hmvec[hm][7 - 1] + 14, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_HEB_PURIM].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); num2date (hdate + hmvec[hm][7 - 1] + 15, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_HEB_SHUSHAN_PURIM].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } } } void hebrew_mth (init_data, detected, year, hd_elems, fday, count) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; /*! Manages all Hebrew calendar based months. (Really unoptimized and dull implementation of the arithmetical lunisolar Hebrew calendar, but it works.) */ { auto Ulint ddiff; auto Ulint hdate; register int hms; register int hm; register int i; register int n; auto int d; auto int m; auto int y; ptr_cc_id = _("Heb"); for (n = year - 1; n <= year; n++) { /* Detect the length of the Hebrew calendar year. */ (void) doy2date (tishri_1 (n + 1), (days_of_february (n + 1) == 29), &d, &m); ddiff = date2num (d, m, n + 1); (void) doy2date (tishri_1 (n), (days_of_february (n) == 29), &d, &m); hdate = date2num (d, m, n); ddiff -= hdate; /* Calculate the selector for the proper number of past days of month. */ if (ddiff < 383) hms = (int) ddiff - 353; else hms = (int) ddiff - 380; /* And manage all Hebrew calendar months. */ for (hm = MONTH_MIN, i = 0; i <= MONTH_MAX; hm++, i++) { num2date (hdate + hmvec[hms][i], &d, &m, &y); if (y == year) { if (i == 6) { hm--; if (hmvec[hms][i] != hmvec[hms][i - 1]) ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, TRUE, ((hm + 5) % MONTH_MAX) + 1, n + 3761, SPECIAL_VALUE, hd_elems, fday, count); } else ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, FALSE, ((hm + 5) % MONTH_MAX) + 1, n + 3761, SPECIAL_VALUE, hd_elems, fday, count); } } } } void islamic_hdy (init_data, detected, year, hd_elems, fday, count, cc) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; const char *cc; /*! Manages all Islamic civil-calendar based holidays since AD 622. Note that this function uses the arithmetical lunar Islamic ***CIVIL*** calendar. This kind of calendar is just a rough estimate of the religious Islamic lunar calendar, which is calculated astronomically. So don't be surprised if some holiday dates differ from the religious Islamic calendar about +/-1...2 days in some years. */ { if (year > 621) { auto Ulint idate; register int cc_mode = YEAR_MAX; register int i; register int j; register int n; register int doy; auto int doy2; auto int d; auto int m; auto int y; auto char *hdy_prefix; auto Bool check_twice = FALSE; if (cc == (char *) NULL) cc_mode = 0; else { if (!strcmp (cc, "AE")) cc_mode = 1; if (!strcmp (cc, "AF")) cc_mode = 2; if (!strcmp (cc, "AL")) cc_mode = 3; if (!strcmp (cc, "AZ")) cc_mode = 4; if (!strcmp (cc, "BA")) cc_mode = 5; if (!strcmp (cc, "BD")) cc_mode = 6; if (!strcmp (cc, "BF")) cc_mode = 7; if (!strcmp (cc, "BH")) cc_mode = 8; if (!strcmp (cc, "BJ")) cc_mode = 9; if (!strcmp (cc, "BN")) cc_mode = 10; if (!strcmp (cc, "CI")) cc_mode = 11; if (!strcmp (cc, "CM")) cc_mode = 12; if (!strcmp (cc, "DJ")) cc_mode = 13; if (!strcmp (cc, "DZ")) cc_mode = 14; if (!strcmp (cc, "EG")) cc_mode = 15; if (!strcmp (cc, "ER")) cc_mode = 16; if (!strcmp (cc, "ET")) cc_mode = 17; if (!strcmp (cc, "FJ")) cc_mode = 18; if (!strcmp (cc, "GE")) cc_mode = 19; if (!strcmp (cc, "GH")) cc_mode = 20; if (!strcmp (cc, "GM")) cc_mode = 21; if (!strcmp (cc, "GN")) cc_mode = 22; if (!strcmp (cc, "GW")) cc_mode = 23; if (!strcmp (cc, "GY")) cc_mode = 24; if (!strcmp (cc, "ID")) cc_mode = 25; if (!strcmp (cc, "IN")) cc_mode = 26; if (!strcmp (cc, "IQ")) cc_mode = 27; if (!strcmp (cc, "IR")) cc_mode = 28; if (!strcmp (cc, "JO")) cc_mode = 29; if (!strcmp (cc, "KE")) cc_mode = 30; if (!strcmp (cc, "KG")) cc_mode = 31; if (!strcmp (cc, "KM")) cc_mode = 32; if (!strcmp (cc, "KW")) cc_mode = 33; if (!strcmp (cc, "KZ")) cc_mode = 34; if (!strcmp (cc, "LB")) cc_mode = 35; if (!strcmp (cc, "LK")) cc_mode = 36; if (!strcmp (cc, "LY")) cc_mode = 37; if (!strcmp (cc, "MA") || !strcmp (cc, "EH")) cc_mode = 38; if (!strcmp (cc, "MK")) cc_mode = 39; if (!strcmp (cc, "ML")) cc_mode = 40; if (!strcmp (cc, "MR")) cc_mode = 41; if (!strcmp (cc, "MU")) cc_mode = 42; if (!strcmp (cc, "MV")) cc_mode = 43; if (!strcmp (cc, "MY")) cc_mode = 44; if (!strcmp (cc, "NE")) cc_mode = 45; if (!strcmp (cc, "NG")) cc_mode = 46; if (!strcmp (cc, "NM")) cc_mode = 47; if (!strcmp (cc, "OM")) cc_mode = 48; if (!strcmp (cc, "PK")) cc_mode = 49; if (!strcmp (cc, "QA")) cc_mode = 50; if (!strcmp (cc, "RW")) cc_mode = 51; if (!strcmp (cc, "SA")) cc_mode = 52; if (!strcmp (cc, "SD")) cc_mode = 53; if (!strcmp (cc, "SG")) cc_mode = 54; if (!strcmp (cc, "SL")) cc_mode = 55; if (!strcmp (cc, "SO")) cc_mode = 56; if (!strcmp (cc, "SR")) cc_mode = 57; if (!strcmp (cc, "SY")) cc_mode = 58; if (!strcmp (cc, "TD")) cc_mode = 59; if (!strcmp (cc, "TG")) cc_mode = 60; if (!strcmp (cc, "TJ")) cc_mode = 61; if (!strcmp (cc, "TM")) cc_mode = 62; if (!strcmp (cc, "TN")) cc_mode = 63; if (!strcmp (cc, "TR")) cc_mode = 64; if (!strcmp (cc, "TT")) cc_mode = 65; if (!strcmp (cc, "TZ")) cc_mode = 66; if (!strcmp (cc, "UG")) cc_mode = 67; if (!strcmp (cc, "UZ")) cc_mode = 68; if (!strcmp (cc, "YE")) cc_mode = 69; if (!strcmp (cc, "YU")) cc_mode = 70; if (!strcmp (cc, HD_MCNY)) cc_mode = SPECIAL_VALUE; } if (cc_mode == YEAR_MAX) abort (); /* Error, invalid case! */ if (!cc_mode || cc_mode == SPECIAL_VALUE) ptr_cc_id = _("Isl"); /* Manage those holidays first, which either cannot exceed the year bounds of a Julian/Gregorian calendar year. */ doy = muharram_1 (year, &doy2); if (!cc_mode || cc_mode == 3 || cc_mode == 4 || cc_mode == 7 || cc_mode == 9 || cc_mode == 11 || cc_mode == 12 || cc_mode == 13 || cc_mode == 16 || cc_mode == 17 || cc_mode == 18 || cc_mode == 19 || cc_mode == 20 || cc_mode == 21 || cc_mode == 24 || cc_mode == 26 || cc_mode == 30 || cc_mode == 36 || cc_mode == 39 || cc_mode == 42 || cc_mode == 45 || cc_mode == 46 || cc_mode == 47 || cc_mode == 51 || cc_mode == 52 || cc_mode == 54 || cc_mode == 55 || cc_mode == 60 || cc_mode == 61 || cc_mode == 62 || cc_mode == 64 || cc_mode == 65 || cc_mode == 66 || cc_mode == 67 || cc_mode == 70 || cc_mode == SPECIAL_VALUE) hdy_prefix = DIS_HLS_PREF; else hdy_prefix = "+"; /* Calculate the year number used in the Islamic calendar. */ (void) doy2date (doy, (days_of_february (year) == 29), &d, &m); y = (int) ROUND (((date2num (d, m, year) - 227015L) / 354.36707) + 1.0); sprintf (s2, "%s %d", _(hd_text[HD_ISL_NEW_YEARS_DAY].ht_text), y); holiday (*init_data, detected, s2, ptr_cc_id, hdy_prefix, doy, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; if (doy2) { /* MuHarram_1 appears twice in YEAR. */ check_twice = TRUE; sprintf (s2, "%s %d", _(hd_text[HD_ISL_NEW_YEARS_DAY].ht_text), y + 1); holiday (*init_data, detected, s2, ptr_cc_id, hdy_prefix, doy2, 0, year, hd_elems, fday, count); } /* Manage those holidays last, which can exceed the year bounds of a Julian/Gregorian calendar year. */ if (cc_mode != SPECIAL_VALUE) for (n = year - 1; n <= year; n++) if (n > 621) { doy = muharram_1 (n, &doy2); if (doy2 && (n == year - 1)) (void) doy2date (doy2, (days_of_february (n) == 29), &d, &m); else (void) doy2date (doy, (days_of_february (n) == 29), &d, &m); LABEL_ih_muharram_1_twice: idate = date2num (d, m, n); /* And manage all ``critical'' holidays. */ if (!cc_mode || cc_mode == 2 || cc_mode == 4 || cc_mode == 8 || cc_mode == 14 || cc_mode == 26 || cc_mode == 27 || cc_mode == 28 || cc_mode == 35 || cc_mode == 49 || cc_mode == 50) { if (!cc_mode || cc_mode == 26) hdy_prefix = DIS_HLS_PREF; else if (cc_mode == 2) hdy_prefix = DIS_HLS_PREF2; else hdy_prefix = "+"; if (!cc_mode || cc_mode == 26) j = 1; else j = 2; for (i = 0; i < j; i++) { num2date (idate + 9 + i, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_ASHURA].ht_text), ptr_cc_id, hdy_prefix, d, m, year, hd_elems, fday, count); } } if ((cc_mode != 3) && (cc_mode != 4) && (cc_mode != 12) && (cc_mode != 20) && (cc_mode != 30) && (cc_mode != 39) && (cc_mode != 42) && (cc_mode != 47) && (cc_mode != 50) && (cc_mode != 51) && (cc_mode != 54) && (cc_mode != 60) && (cc_mode != 61) && (cc_mode != 62) && (cc_mode != 64) && (cc_mode != 65) && (cc_mode != 67) && (cc_mode != 70)) { if (!cc_mode || cc_mode == 26) hdy_prefix = DIS_HLS_PREF; else if (cc_mode == 36) hdy_prefix = DIS_HLS_PREF2; else hdy_prefix = "+"; if (cc_mode == 48) j = 2; else j = 1; for (i = 0; i < j; i++) { num2date (idate + 70 + i, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_EID_I_MILAD_UN_NABI]. ht_text), ptr_cc_id, hdy_prefix, d, m, year, hd_elems, fday, count); } } if (!cc_mode || cc_mode == 1 || cc_mode == 10 || cc_mode == 25 || cc_mode == 29 || cc_mode == 33 || cc_mode == 35 || cc_mode == 48 || cc_mode == 69) { num2date (idate + 203, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_SHAB_E_MIRAJ].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } if (!cc_mode || cc_mode == 6) { num2date (idate + 221, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_SHAB_E_BARAT].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } if (cc_mode == 10 || cc_mode == 43 || cc_mode == 61) hdy_prefix = "+"; else hdy_prefix = DIS_HLS_PREF; num2date (idate + 236, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_RAMADAN].ht_text), ptr_cc_id, hdy_prefix, d, m, year, hd_elems, fday, count); if (!cc_mode || cc_mode == 6) { num2date (idate + 262, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_SHAB_E_QADR].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } if (!cc_mode || cc_mode == 62) hdy_prefix = DIS_HLS_PREF; else if (cc_mode == 36 || cc_mode == 39 || cc_mode == 60 || cc_mode == 70) hdy_prefix = DIS_HLS_PREF2; else hdy_prefix = "+"; if (cc_mode == 18) j = 0; else if (cc_mode == 5 || cc_mode == 6 || cc_mode == 7 || cc_mode == 9 || cc_mode == 10 || cc_mode == 12 || cc_mode == 16 || cc_mode == 17 || cc_mode == 19 || cc_mode == 21 || cc_mode == 24 || cc_mode == 26 || cc_mode == 30 || cc_mode == 36 || cc_mode == 42 || cc_mode == 44 || cc_mode == 45 || cc_mode == 46 || cc_mode == 47 || cc_mode == 51 || cc_mode == 54 || cc_mode == 55 || cc_mode == 57 || cc_mode == 60 || cc_mode == 62 || cc_mode == 65 || cc_mode == 66 || cc_mode == 67 || cc_mode == 70) j = 1; else if (cc_mode == 2 || cc_mode == 11 || cc_mode == 13 || cc_mode == 14 || cc_mode == 20 || cc_mode == 25 || cc_mode == 38 || cc_mode == 62) j = 2; else if (cc_mode == 28 || cc_mode == 48 || cc_mode == 50 || cc_mode == 69) j = 4; else if (cc_mode == 4 || cc_mode == 52) j = 7; else j = 3; for (i = 0; i < j; i++) { num2date (idate + 266 + i, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_EID_AL_FITR].ht_text), ptr_cc_id, hdy_prefix, d, m, year, hd_elems, fday, count); } if (!cc_mode || cc_mode == 2 || cc_mode == 15 || cc_mode == 43) { num2date (idate + 333, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_WAQF_AL_ARAFAT].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } if (!cc_mode || cc_mode == 26) hdy_prefix = DIS_HLS_PREF; else if (cc_mode == 36 || cc_mode == 39 || cc_mode == 60 || cc_mode == 70) hdy_prefix = DIS_HLS_PREF2; else hdy_prefix = "+"; if (cc_mode == 3 || cc_mode == 18 || cc_mode == 30 || cc_mode == 42 || cc_mode == 47 || cc_mode == 51 || cc_mode == 65) j = 0; else if (cc_mode == 5 || cc_mode == 6 || cc_mode == 7 || cc_mode == 9 || cc_mode == 10 || cc_mode == 12 || cc_mode == 16 || cc_mode == 17 || cc_mode == 19 || cc_mode == 21 || cc_mode == 24 || cc_mode == 25 || cc_mode == 36 || cc_mode == 44 || cc_mode == 45 || cc_mode == 46 || cc_mode == 54 || cc_mode == 55 || cc_mode == 57 || cc_mode == 60 || cc_mode == 66 || cc_mode == 67 || cc_mode == 70) j = 1; else if (cc_mode == 2 || cc_mode == 11 || cc_mode == 13 || cc_mode == 14 || cc_mode == 20 || cc_mode == 38 || cc_mode == 62) j = 2; else if (cc_mode == 28 || cc_mode == 29 || cc_mode == 43 || cc_mode == 48 || cc_mode == 50 || cc_mode == 64) j = 4; else if (cc_mode == 69) j = 5; else if (cc_mode == 4 || cc_mode == 52) j = 10; else j = 3; for (i = 0; i < j; i++) { num2date (idate + 334 + i, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_EID_AL_ADHA].ht_text), ptr_cc_id, hdy_prefix, d, m, year, hd_elems, fday, count); } if (cc_mode == 43) { /* Manage some specific holidays celebrated in Maldives (MV), which are tied to the Islamic calendar. */ num2date (idate + 59, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_NATIONAL_HOLIDAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); num2date (idate + 177, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_HURAVEE_DAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); num2date (idate + 207, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_MARTYRS_DAY].ht_text), ptr_cc_id, "+", d, m, year, hd_elems, fday, count); } if (!cc_mode) { num2date (idate + 15, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_IMAMAT_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); num2date (idate + 170, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_AGA_KHANS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); num2date (idate + 252, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_NUZUL_AL_QURAN].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); num2date (idate + 265, &d, &m, &y); LOOP { if (weekday_of_date (d, m, y) == 5) break; else (void) prev_date (&d, &m, &y); } if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_QUDS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); num2date (idate + 342, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ISL_GHADIR].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } if (check_twice && (n == year)) { check_twice = FALSE; (void) doy2date (doy2, (days_of_february (n) == 29), &d, &m); goto LABEL_ih_muharram_1_twice; } } } } void islamic_mth (init_data, detected, year, hd_elems, fday, count) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; /*! Manages all Islamic civil-calendar based months since AD 622. Note that this function uses the arithmetical lunar Islamic ***CIVIL*** calendar. This kind of calendar is just a rough estimate of the religious Islamic lunar calendar, which is calculated astronomically. So don't be surprised if some month dates differ from the religious Islamic calendar about +/-1...2 days in some years. */ { if (year > 621) { auto Ulint idate; register int i; register int j; register int n; register int doy; auto int doy2; auto int d2; auto int m2; auto int d; auto int m; auto int y; auto Bool check_twice = FALSE; ptr_cc_id = _("Isl"); (void) muharram_1 (year, &doy2); if (doy2) /* MuHarram_1 appears twice in YEAR. */ check_twice = TRUE; for (n = year - 1; n <= year; n++) if (n > 621) { doy = muharram_1 (n, &doy2); if (doy2 && (n == year - 1)) j = doy2; else j = doy; (void) doy2date (j, (days_of_february (n) == 29), &d, &m); LABEL_im_muharram_1_twice: idate = date2num (d, m, n); /* And manage all Islamic civil-calendar months. */ for (i = MONTH_MIN; i <= MONTH_MAX; i++) { num2date (idate, &d, &m, &y); if (y == year) { /* Calculate the year number used in the Islamic calendar. */ (void) doy2date (j, (days_of_february (year) == 29), &d2, &m2); y = (int) ROUND (((date2num (d2, m2, n) - 227015L) / 354.36707) + 1.0); ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, FALSE, i, y, SPECIAL_VALUE, hd_elems, fday, count); } idate += ((i & 1) ? 30 : 29); } if (check_twice && (n == year)) { check_twice = FALSE; (void) doy2date (doy2, (days_of_february (n) == 29), &d, &m); goto LABEL_im_muharram_1_twice; } } } } void japanese_hdy (init_data, detected, year, hd_elems, fday, count, cc, is_any_meridian) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; const char *cc; const Bool is_any_meridian; /*! Manages all Japanese calendar based holidays since AD 1645. Earlier years are not respected, because the rules of the Japanese calendar have changed too many times during these former years. The function results have to be interpreted with caution, because of the inaccuratenesses of the Moon phase and the Sun longitude calculation function used. The rules to calculate the Japanese calendar are identical the rules to calculate the Chinese calendar, except that since AD 1888 they use the longitude 135 degrees east for computations. See the `chinese_hdy()' function for further information. */ { if (year > 1644) { auto Ulint conjunction_vector[MONTH_MAX + 4]; auto Ulint *ptr_conjunction_vector = conjunction_vector; auto Ulint zq; register int cj; register int lm; register int cc_mode; register int hour; register int min; register int extra = 0; auto int ssd1 = 0; auto int ssd2 = 0; register int i; register int j; register int k; auto int d; auto int m; auto int y = year; auto Bool is_checked = FALSE; auto Bool check_twice = FALSE; if (cc == (char *) NULL) cc_mode = 0; else if (!strcmp (cc, "KR") || !strcmp (cc, "KP") || !strcmp (cc, "TW")) cc_mode = 1; else if (!strcmp (cc, "JP")) cc_mode = 2; else if (!strcmp (cc, HD_MCNY)) cc_mode = SPECIAL_VALUE; else abort (); /* Error, invalid case! */ if (!cc_mode || cc_mode == SPECIAL_VALUE) ptr_cc_id = _("Jap"); if (is_any_meridian) { /* Astronomical calculations are done for a line at a definite meridian expressed as a time value. This time value is given by the global `time_hour_offset' variable and by the global `time_min_offset' variable. If HOUR and MIN are set to zero, calculations are made for Universal Time (UTC/GMT). If HOUR and MIN have a positive sign, UTC/GMT calculations are made for meridians East of Greenwich, otherwise for meridians West of Greenwich. */ hour = time_hour_offset; min = time_min_offset; } else { /* Astronomical calculations are based on China/Japan local time. */ if (year < 1888) { /* Meridian Beijing (116 25' degrees East), UTC/GMT time difference. */ hour = 7; min = 45; } else { /* UTC/GMT-9 for the meridian 135 degrees East. */ hour = 9; min = 0; } } if (cc_mode != SPECIAL_VALUE) { /* Manage the major solar term/Zhong-Qi related festivals first. */ if (equinox_solstice (NH_VE, &d, &m, &y, hour, min) != SPECIAL_VALUE) { holiday (*init_data, detected, _(hd_text[HD_EQUINOX_DAY].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } else y = year; if (equinox_solstice (NH_AE, &d, &m, &y, hour, min) != SPECIAL_VALUE) { holiday (*init_data, detected, _(hd_text[HD_EQUINOX_DAY].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } else y = year; if (equinox_solstice (NH_WS, &d, &m, &y, hour, min) != SPECIAL_VALUE) { holiday (*init_data, detected, _(hd_text[HD_SOLSTICE_DAY].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } else y = year; /* And manage the minor solar term/Jie-Qi related festivals next. */ if (sun_longitude (315.0, &d, &m, &y, hour, min, FALSE) != SPECIAL_VALUE) { (void) prev_date (&d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_SEASON_CHANGE].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } y = year; } LABEL_japanese_new_year_twice: /* And now the lunar based holidays, so check for a possible leap month. */ lm = find_chinese_leap_month (ptr_conjunction_vector, &zq, y, hour, min); if (lm == SPECIAL_VALUE) { /* Error, cannot compute the lunisolar based calendar correctly. */ if (warning_level >= 0) { sprintf (s2, _ ("Cannot calculate lunisolar calendar for %d correctly"), y); print_text (stderr, s2); if (warning_level >= WARN_LVL_MAX) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 15L, "find_chinese_leap_month()::lm!=", lm); } } else { /* Now, since we know the leap month in the year YEAR, we can calculate the date of the Japanese_New_Year/Japanese calendar month 1 correctly. The Japanese_New_Year is on the date of the second New Moon ***after*** the date of the winter solstice (which is always in the 11th month of the Japanese calendar) of the previous YEAR, but only if there is NO leap month 11 or 12 (this case is marked by `lm==-11|-12'), otherwise it is on the date of the third New Moon ***after*** the date of the winter solstice of the previous YEAR. */ cj = 0; if (conjunction_vector[cj] == zq) cj++; if (lm < 0) cj += 2; else cj++; if (cc_mode != SPECIAL_VALUE) { /* Detect the date of the first day of the Japanese calendar month 12 of the previous YEAR. */ if (lm == -MONTH_MAX) num2date (conjunction_vector[cj - 2] + 12, &d, &m, &y); else num2date (conjunction_vector[cj - 1] + 12, &d, &m, &y); if (y == year) { i = day_of_year (d, m, y); if ((i != ssd1) && (i != ssd2)) { ssd1 = i; holiday (*init_data, detected, _(hd_text[HD_SOOT_SWEEPING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } } /* Detect the date of the last day of the Japanese calendar month, which is prior the first day of the Japanese calendar month 1. */ num2date (conjunction_vector[cj] - 1, &d, &m, &y); if ((y == year) && (cc_mode != SPECIAL_VALUE)) { holiday (*init_data, detected, _(hd_text[HD_JAPANESE_NEW_YEARS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } /* Detect the date of the first day of the Japanese calendar month 1. */ (void) next_date (&d, &m, &y); /* Detect whether it is necessary to respect the holidays of next YEAR. This must be always done if we creating dates according to the proleptic Julian calendar and the Japanese_New_Year holiday either started in the previous YEAR or started early in the actual YEAR. */ if (!is_checked && ((y != year) || ((year <= greg->year) && (year >= 2700)))) is_checked = check_twice = TRUE; if (y == year) { /* Calculate the year number used in the Japanese calendar, based on the first historical record of the 60-year cycle from 660 BCE. */ k = y + 660 + extra; sprintf (s2, "%s %d-%d", _(hd_text[HD_JAPANESE_NEW_YEARS_DAY].ht_text), k, (lm < 0) ? 0 : lm); holiday (*init_data, detected, s2, ptr_cc_id, (cc_mode > 0) ? "+" : DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; if (!cc_mode || cc_mode == SPECIAL_VALUE) { /* Compute the sexagesimal cycle data based on the year number used in the Chinese calendar, which is based on the first historical record of the 60-year cycle from 08-Mar-2637 BCE. */ k = y + 2637 + extra; i = ((k - 1) / 60) + 1; j = ((k - 1) % 60) + 1; sprintf (s2, "%s %d/%02d-%02d %s-%s", _(hd_text[HD_CHINESE_CYCLE].ht_text), i, j, (lm < 0) ? 0 : lm, chi_stem[((j - 1) % 10)], _(chi_branch[((j - 1) % 12)])); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); } } if (cc_mode != SPECIAL_VALUE) { if (!cc_mode) j = 6; else j = 2; for (i = 0; i < j; i++) { (void) next_date (&d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_JAPANESE_NEW_YEARS_DAY].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d, m, y, hd_elems, fday, count); } /* Detect the date of the first day of the Japanese calendar month 3. */ if (lm == 1 || lm == 2) cj++; cj += 2; num2date (conjunction_vector[cj] + 2, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_MUSIC_WATER_BANQUET].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } /* Detect the date of the first day of the Japanese calendar month 4. */ if (lm == 3) cj++; num2date (conjunction_vector[++cj] + 7, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_BUDDHAS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } /* Detect the date of the first day of the Japanese calendar month 5. */ if (lm == 4) cj++; num2date (conjunction_vector[++cj] + 4, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_CHILDRENS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } /* Detect the date of the first day of the Japanese calendar month 7. */ if (lm == 5 || lm == 6) cj++; cj += 2; num2date (conjunction_vector[cj] + 6, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_STAR_FESTIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } num2date (conjunction_vector[cj] + 14, &d, &m, &y); for (i = 0; i < 3; i++) { if (y == year) { holiday (*init_data, detected, _(hd_text[HD_FEAST_OF_FORTUNE].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; (void) next_date (&d, &m, &y); } } /* Detect the date of the first day of the Japanese calendar month 8. */ if (lm == 7) cj++; num2date (conjunction_vector[++cj] + 14, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_MID_AUTUMN_FESTIVAL].ht_text), ptr_cc_id, (cc_mode) ? "+" : DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } /* Detect the date of the first day of the Japanese calendar month 9. */ if (lm == 8) cj++; num2date (conjunction_vector[++cj] + 8, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_CHRYSANTHENUM_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } /* Detect the date of the first day of the Japanese calendar month 10. */ if (lm == 9) cj++; num2date (conjunction_vector[++cj] + 5, &d, &m, &y); if (y == year) { holiday (*init_data, detected, _(hd_text[HD_BODHIDHARMAS_BIRTHDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } /* Detect the date of the first day of the Japanese calendar month 12. */ if (lm == 10 || lm == 11) cj++; cj += 2; num2date (conjunction_vector[cj] + 12, &d, &m, &y); if (y == year) { i = day_of_year (d, m, y); if ((i != ssd1) && (i != ssd2)) { ssd2 = i; holiday (*init_data, detected, _(hd_text[HD_SOOT_SWEEPING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } } } if (check_twice) { check_twice = FALSE; y = year + 1; extra++; goto LABEL_japanese_new_year_twice; } } } } void multicultural_new_year_hdy (init_data, detected, year, hd_elems, fday, count) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; /*! Manages all Multicultural New_Year's_Day holidays, which are majorly based on calendar systems different the Julian/Gregorian calendar system. */ { auto double x; auto Ulint mjd; auto int d; auto int m; auto int y; bahai_hdy (init_data, detected, year, hd_elems, fday, count, HD_MCNY); celtic_hdy (init_data, detected, year, hd_elems, fday, count, HD_MCNY); chinese_hdy (init_data, detected, year, hd_elems, fday, count, HD_MCNY, FALSE); hebrew_hdy (init_data, detected, year, hd_elems, fday, count, HD_MCNY); islamic_hdy (init_data, detected, year, hd_elems, fday, count, HD_MCNY); japanese_hdy (init_data, detected, year, hd_elems, fday, count, HD_MCNY, FALSE); orthodox_hdy (init_data, detected, 0, year, hd_elems, fday, count, HD_MCNY, TRUE); orthodox_hdy (init_data, detected, 0, year, hd_elems, fday, count, HD_MCNY, FALSE); persian_hdy (init_data, detected, year, hd_elems, fday, count, HD_MCNY); if (year > 1791) { /* Calculate the year number used in the French Revolutionary (Republican) calendar, based on the date of the autumnal equinox as it occurs in Paris, FR. */ ptr_cc_id = _("FRR"); y = year; mjd = (Ulint) equinox_solstice (NH_AE, &d, &m, &y, 0, 9); if (mjd != (Ulint) SPECIAL_VALUE) { sprintf (s2, "%s %d", _(hd_text[HD_FRENCH_REVOLUTIONARY].ht_text), year - 1791); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } } if (year > 1887) { /* Calculate the year number used in the Thai ***CIVIL*** (western oriented) calendar based on the Buddhist Era. */ ptr_cc_id = "TH"; if (year > 1939) m = MONTH_MIN; else m = 4; if (year <= greg->year) { if (m == MONTH_MIN) { mjd = date2num (DAY_MIN, m, year + 1); mjd -= (((year + 1) / 100) - ((year + 1) / 400) - 2); num2date (mjd, &d, &m, &y); d = day_of_year (d, m, y); m = year + 1; } else { d = day_of_year (DAY_MIN, m, year); d -= ((year / 100) - (year / 400) - 2); m = year; } } else { d = day_of_year (DAY_MIN, m, year); m = year; } sprintf (s2, "%s %d", _(hd_text[HD_THAI_NEW_YEARS_DAY].ht_text), m + 543); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); } if (year > 1956) { /* Calculate the year number used in the Indian **CIVIL** (reformed) calendar corresponding to Caitra 1. */ ptr_cc_id = "IN"; sprintf (s2, "%s %d", _(hd_text[HD_INDIAN_NEW_YEARS_DAY].ht_text), year - 78); d = 22 - (days_of_february (year) == 29); if (year <= greg->year) d -= 13; holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, 3, year, hd_elems, fday, count); } if (year > 551) { /* Calculate the year number used in the Old-Armenic calendar, based on the Epoch AD 11-Jul-0552. */ ptr_cc_id = _("AMO"); mjd = date2num (DAY_MIN, MONTH_MIN, year) - 201081L; x = mjd / (double) DAY_LAST; y = (int) x + 1; x = ROUND ((1.0 - (x - (Ulint) x)) * (double) DAY_LAST); sprintf (s2, "%s %d", _(hd_text[HD_OLD_ARMENIC_NEW_YEARS_DAY].ht_text), y); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, (int) x, 0, year, hd_elems, fday, count); if ((days_of_february (year) == 29) && ((int) x == 1)) { sprintf (s2, "%s %d", _(hd_text[HD_OLD_ARMENIC_NEW_YEARS_DAY].ht_text), y + 1); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, DAY_LAST + 1, 0, year, hd_elems, fday, count); } } /* Calculate the year number and the Sothisperiod used in the Old-Egyptic calendar, based on the Epoch 19-Jul-4241 BCE. */ ptr_cc_id = _("EGO"); mjd = date2num (DAY_MIN, MONTH_MIN, year) + MIN_BCE_TO_1_CE - 172235L; m = ((int) (mjd / 533256L)) + 1; x = mjd / (double) DAY_LAST; y = (int) x + 1; x = ROUND ((1.0 - (x - (Ulint) x)) * (double) DAY_LAST); sprintf (s2, "%s %d-%d", _(hd_text[HD_OLD_EGYPTIC_NEW_YEARS_DAY].ht_text), y, m); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, (int) x, 0, year, hd_elems, fday, count); if ((days_of_february (year) == 29) && ((int) x == 1)) { sprintf (s2, "%s %d-%d", _(hd_text[HD_OLD_EGYPTIC_NEW_YEARS_DAY].ht_text), y + 1, m); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, DAY_LAST + 1, 0, year, hd_elems, fday, count); } /* Calculate the year number used in the Ethiopic calendar. */ ptr_cc_id = "ET"; d = day_of_year (29, 8, year) + ((year & 3) == 3) + julian_gregorian_diff (29, 8, year); sprintf (s2, "%s %d", _(hd_text[HD_ETHIOPIC_NEW_YEARS_DAY].ht_text), year - 7); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); if (year > 283) { /* Calculate the year number used in the Coptic calendar. */ ptr_cc_id = "EG"; sprintf (s2, "%s %d", _(hd_text[HD_COPTIC_NEW_YEARS_DAY].ht_text), year - 283); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); } } void old_egyptic_mth (init_data, detected, year, hd_elems, fday, count, do_egyptic) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; const Bool do_egyptic; /*! Manages all Old-Armenic/Old-Egyptic calendar based months since AD 11-Jul-0552 (Old-Armenic). */ { if (do_egyptic || (!do_egyptic && (year > 551))) { auto double mjd; auto Ulint edate; register int sothisperiod; register int em; register int ey; register int i; register int n; auto int d; auto int m; auto int y; auto Bool is_special_case = FALSE; if (do_egyptic) ptr_cc_id = _("EGO"); else ptr_cc_id = _("AMO"); for (n = year - 1; n <= year; n++) if (do_egyptic || (!do_egyptic && (n > 551))) { /* Detect the Old-Armenian/Old-Egyptian_New_Year's_Day date and calculate the year number used in the Old-Armenic calendar -- based on the Epoch AD 11-Jul-0552 -- respectively, calculate the year number used in the Old-Egyptic calendar -- based on the Epoch 19-Jul-4241 BCE --. */ if (do_egyptic) { mjd = date2num (DAY_MIN, MONTH_MIN, n) + MIN_BCE_TO_1_CE - 172235L; sothisperiod = ((int) (mjd / 533256L)) + 1; } else { mjd = date2num (DAY_MIN, MONTH_MIN, n) - 201081L; sothisperiod = SPECIAL_VALUE; } mjd = mjd / (double) DAY_LAST; ey = (int) mjd + 1; mjd = ROUND ((1.0 - (mjd - (Ulint) mjd)) * (double) DAY_LAST); if ((n == year) && (days_of_february (n - 1) == 29) && ((int) mjd == DAY_LAST)) { is_special_case = TRUE; em = MONTH_MIN; ey--; mjd = 30.0; } else em = 0; (void) doy2date ((int) mjd, (days_of_february (n) == 29), &d, &m); edate = date2num (d, m, n); /* And manage all Old-Armenic/Old-Egyptic calendar months. */ for (i = 0; i <= MONTH_MAX; em++, i++) { num2date (edate, &d, &m, &y); if (y == year) { if (is_special_case) { if (i == MONTH_MAX - 1) edate -= 25; else if (i == MONTH_MAX) { em = 0; ey++; } } ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, (em == MONTH_MAX), (em == MONTH_MAX) ? em : em + 1, ey, sothisperiod, hd_elems, fday, count); } edate += 30; } if ((n == year) && (days_of_february (n) == 29) && ((int) mjd == 1)) ocs_monthtext (init_data, detected, ptr_cc_id, DAY_LAST + 1, 0, year, FALSE, MONTH_MIN, ey + 1, sothisperiod, hd_elems, fday, count); } } } void orthodox_hdy (init_data, detected, easter, year, hd_elems, fday, count, cc, is_new_calendar) Bool *init_data; const Bool detected; int easter; const int year; int *hd_elems; const int fday; const int count; const char *cc; const Bool is_new_calendar; /*! Manages all Orthodox Christian Eastern churches calendar based holidays. If `is_new_calendar' is set to TRUE, the new calendar holidays are computed, otherwise the old calendar holidays. */ { register int i = year; register int cc_mode; auto int greg_diff; auto int d; auto int m; auto int y; if (cc == (char *) NULL) cc_mode = 0; else if (!strcmp (cc, HD_MCNY)) cc_mode = SPECIAL_VALUE; else abort (); /* Error, invalid case! */ if (is_new_calendar) ptr_cc_id = _("OxN"); else ptr_cc_id = _("OxO"); /* Process the holiday data. */ if (cc_mode == SPECIAL_VALUE) { d = DAY_MIN; if (!is_new_calendar) d += julian_gregorian_diff (d, MONTH_MIN, year); else if (year <= greg->year) { greg_diff = (year / 100) - (year / 400) - 2; if (greg_diff < 0) { auto Ulint mjd; i = y = year + 1; greg_diff = (y / 100) - (y / 400) - 2; mjd = date2num (d, MONTH_MIN, y); num2date (mjd + greg_diff, &d, &m, &y); d = day_of_year (d, m, y); } else d += greg_diff; } sprintf (s2, "%s %d", _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), i); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } else { easter = orthodox_easter (year, &greg_diff, 1924, 3, 10, 22); holiday (*init_data, detected, _(hd_text[HD_ASH_MONDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 48, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; holiday (*init_data, detected, _(hd_text[HD_PALM_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - DAY_MAX, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MAUNDY_THURSDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 3, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_FRIDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 2, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_GOOD_SATURDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter - 1, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_EASTER_SUNDAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_CHRISTS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 39, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_PENTECOST].ht_text), ptr_cc_id, DIS_HLS_PREF, easter + 49, 0, year, hd_elems, fday, count); d = DAY_MIN; if (!is_new_calendar && (year > 1924)) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_ORTHODOX_NEW_YEARS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); d = 6; if (!is_new_calendar && (year > 1924)) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_THREE_KINGS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); d = 14; if (!is_new_calendar && (year > 1924)) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_JESUS_CIRCUMCISION].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); d = day_of_year (2, 2, year); if (!is_new_calendar && (year > 1924)) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_MARYS_CANDLEMAS].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); d = day_of_year (25, 3, year); if (!is_new_calendar) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_MARYS_ANNUNCIATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); d = day_of_year (6, 8, year); if (!is_new_calendar) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_TRANSFIGURATION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); d = day_of_year (15, 8, year); if (!is_new_calendar) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_MARYS_ASCENSION_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); d = day_of_year (8, 9, year); if (!is_new_calendar) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_MARYS_NATIVITY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); d = day_of_year (14, 9, year); if (!is_new_calendar) d += greg_diff; holiday (*init_data, detected, _(hd_text[HD_CROSS_RAISING_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, 0, year, hd_elems, fday, count); if (is_new_calendar) { holiday (*init_data, detected, _(hd_text[HD_ALL_SAINTS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, DAY_MIN, 11, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, 2, 11, year, hd_elems, fday, count); } d = 24; m = MONTH_MAX; if (!is_new_calendar && (year != 1924)) { y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); } if (is_new_calendar || (!is_new_calendar && (year != 1924))) holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_EVE].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); d = 25; m = MONTH_MAX; if (!is_new_calendar && (year != 1924)) { y = year - 1; for (i = 0; i < greg_diff; i++) (void) next_date (&d, &m, &y); } if (is_new_calendar || (!is_new_calendar && (year != 1924))) holiday (*init_data, detected, _(hd_text[HD_CHRISTMAS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } } void persian_hdy (init_data, detected, year, hd_elems, fday, count, cc) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; const char *cc; /*! Manages all Persian ``Jalaali'' calendar based holidays since AD 622. Note that this function calculates the solar ``Jalaali'' calendar astronomically and not arithmetically, so necessary calendar reformations which must apply in the furture for the arithmetical solution are avoided. */ { if (year > 621) { auto double mjd; auto Ulint pdate; register int cc_mode; register int i; register int n; auto int d; auto int m; auto int y = year; auto char *hdy_prefix; if (cc == (char *) NULL) cc_mode = 0; else if (!strcmp (cc, "AF")) cc_mode = 1; else if (!strcmp (cc, "AL")) cc_mode = 2; else if (!strcmp (cc, "AZ")) cc_mode = 3; else if (!strcmp (cc, "IR")) cc_mode = 4; else if (!strcmp (cc, "KG")) cc_mode = 5; else if (!strcmp (cc, "KZ")) cc_mode = 6; else if (!strcmp (cc, "TJ")) cc_mode = 7; else if (!strcmp (cc, "TM")) cc_mode = 8; else if (!strcmp (cc, "UZ")) cc_mode = 9; else if (!strcmp (cc, HD_MCNY)) cc_mode = SPECIAL_VALUE; else abort (); /* Error, invalid case! */ if (!cc_mode || cc_mode == SPECIAL_VALUE) ptr_cc_id = _("Per"); /* Detect the Persian_New_Year/Noruz, which is around the vernal equinox. The calculation of the vernal equinox is based on Iraq local time, not on UTC/GMT. Tehran local time (not respecting Daylight Savings) is UTC/GMT-3.5. */ mjd = equinox_solstice (NH_VE, &d, &m, &y, 3, 30); if (mjd != SPECIAL_VALUE) { if (mjd - (Ulint) mjd >= 0.5) /* If the vernal equinox appears at or after noon, the Persian_New_Year/Noruz is on the next day. */ (void) next_date (&d, &m, &y); mjd = day_of_year (d, m, y); /* Manage those holidays first, which cannot exceed the year bounds of a Julian/Gregorian calendar year. */ if (!cc_mode || cc_mode == SPECIAL_VALUE) hdy_prefix = DIS_HLS_PREF; else if (cc_mode == 2) hdy_prefix = DIS_HLS_PREF2; else hdy_prefix = "+"; /* Calculate the year number used in the Persian ``Jalaali'' calendar. */ sprintf (s2, "%s %d", _(hd_text[HD_PERSIAN_NEW_YEARS_DAY].ht_text), year - 621); holiday (*init_data, detected, s2, ptr_cc_id, hdy_prefix, (int) mjd, 0, year, hd_elems, fday, count); if (*init_data) *init_data = FALSE; if (!cc_mode) { for (i = 0; i < 5; i++) { holiday (*init_data, detected, _(hd_text[HD_MID_SPRING_FESTIVAL].ht_text), ptr_cc_id, DIS_HLS_PREF, (int) mjd + 40 + i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_MIDSUMMER_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, (int) mjd + 100 + i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BRINGING_IN_THE_HARVEST_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, (int) mjd + 175 + i, 0, year, hd_elems, fday, count); holiday (*init_data, detected, _(hd_text[HD_BRINGING_HOME_THE_HERDS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, (int) mjd + 205 + i, 0, year, hd_elems, fday, count); } /* Manage those holidays last, which can exceed the year bounds of a Julian/Gregorian calendar year. */ for (n = year - 1; n <= year; n++) if (n > 621) { y = n; mjd = equinox_solstice (NH_VE, &d, &m, &y, 3, 30); if (mjd != SPECIAL_VALUE) { if (mjd - (Ulint) mjd >= 0.5) (void) next_date (&d, &m, &y); pdate = date2num (d, m, y) - 1; /* And manage all ``critical'' holidays. */ for (i = 0; i < 5; i++) { num2date (pdate + 286 + i, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_MID_YEAR_FESTIVAL]. ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); num2date (pdate + 361 + i, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_ALL_SOULS_DAY].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } num2date (pdate + 310, &d, &m, &y); if (y == year) holiday (*init_data, detected, _(hd_text[HD_FESTIVAL_OF_SADEH].ht_text), ptr_cc_id, DIS_HLS_PREF, d, m, year, hd_elems, fday, count); } } } } } } void persian_mth (init_data, detected, year, hd_elems, fday, count) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; /*! Manages all Persian ``Jalaali'' calendar based months since AD 622. Note that this function calculates the solar ``Jalaali'' calendar astronomically and not arithmetically, so necessary calendar reformations which must apply in the furture for the arithmetical solution are avoided. */ { if (year > 621) { auto double mjd; auto Ulint pdate; register int i; register int n; auto int d; auto int m; auto int y; ptr_cc_id = _("Per"); for (n = year - 1; n <= year; n++) if (n > 621) { y = n; /* Detect the Persian_New_Year/Noruz, which is around the vernal equinox. The calculation of the vernal equinox is based on Iraq local time, not on UTC/GMT. Tehran local time (not respecting Daylight Savings) is UTC/GMT-3.5. */ mjd = equinox_solstice (NH_VE, &d, &m, &y, 3, 30); if (mjd != SPECIAL_VALUE) { if (mjd - (Ulint) mjd >= 0.5) /* If the vernal equinox appears at or after noon, the Persian_New_Year/Noruz is on the next day. */ (void) next_date (&d, &m, &y); pdate = date2num (d, m, y); /* And manage all Persian calendar months. */ for (i = MONTH_MIN; i <= MONTH_MAX; i++) { num2date (pdate, &d, &m, &y); if (y == year) ocs_monthtext (init_data, detected, ptr_cc_id, d, m, year, FALSE, i, n - 621, SPECIAL_VALUE, hd_elems, fday, count); pdate += ((i < 7) ? 31 : 30); } } } } } void zodiacal_marker_hdy (init_data, detected, year, hd_elems, fday, count) Bool *init_data; const Bool detected; const int year; int *hd_elems; const int fday; const int count; /*! Manages all Zodiacal/Solar Seasonal Marker based holidays. Calculations are done for a line at a definite meridian expressed as a time value. This time value is given by the global `time_hour_offset' variable and by the global `time_min_offset' variable. If HOUR and MIN are set to zero, calculations are made for Universal Time (UTC/GMT). If HOUR and MIN have a positive sign, UTC/GMT calculations are made for meridians East of Greenwich, otherwise for meridians West of Greenwich. */ { auto double n; auto double mjd; register int i; auto int the_min; auto int the_hour; auto int d; auto int m; auto int y = year; ptr_cc_id = _("Zod"); /* All major zodiacal/solar term/Zhong-Qi seasonal markers. */ for (i = 0, n = 0.0; i < MONTH_MAX; i++, n += 30.0) { mjd = sun_longitude (n, &d, &m, &y, time_hour_offset, time_min_offset, FALSE); if (mjd != SPECIAL_VALUE) { val2hours (mjd, &the_hour, &the_min, NULL); sprintf (s2, "ZhongQi-%02d/%s[%03d] %02d%s%02d", ((i + 1) % MONTH_MAX) + 1, zod_name[i], (int) n, the_hour, time_sep, the_min); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); if (*init_data) *init_data = FALSE; } else y = year; } /* All minor zodiacal/solar term/Jie-Qi seasonal markers. */ for (i = 0, n = 15.0; i < MONTH_MAX; i++, n += 30.0) { mjd = sun_longitude (n, &d, &m, &y, time_hour_offset, time_min_offset, FALSE); if (mjd != SPECIAL_VALUE) { val2hours (mjd, &the_hour, &the_min, NULL); sprintf (s2, "JieQi-%02d[%03d] %02d%s%02d", ((i + 2) % MONTH_MAX) + 1, (int) n, the_hour, time_sep, the_min); holiday (*init_data, detected, s2, ptr_cc_id, DIS_HLS_PREF, d, m, y, hd_elems, fday, count); } else y = year; } } gcal-4.1/src/help.c0000664000000000000000000032134112244130561011042 00000000000000/*! * \file help.c * \brief The help, version and license screens. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include header files. */ #include "tailor.h" #if HAVE_CTYPE_H # include #endif #include "common.h" #if USE_RC # include "rc-defs.h" #endif /* USE_RC */ #include "globals.h" #include "hd-defs.h" #include "tty.h" #include "utils.h" #include "help.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `help.c'. */ static int gmt_timezone_value __P_ ((int hour)); static const char *get_longopt_description __P_ ((const int longopt_symbolic, const Bool with_larglist)); static void my_bug_report_address __P_ ((FILE * fp)); static void my_copyright __P_ ((FILE * fp, const Bool with_short_licence)); static void my_help_head_text __P_ ((FILE * fp)); static void print_compiler_info __P_ ((FILE * fp)); __END_DECLARATIONS /* * static variables definitions. */ /*! Compiler infotext. */ static const char *compiler_info[] = { N_("Compiled with %s%s for %s%s%s%s") }; /*! The table used to inform about the supported date formats is a vector of `Di_struct' terminated by an element containing a `di_info' which is zero! */ static const Di_struct info_date_format[] = { /* { char *di_info, char di_1format, char di_2format }, */ {N_("# Day number (must be defined)"), DFORMAT_CHAR, DAYNR_CHAR}, {N_("# Year number (must be defined)"), DFORMAT_CHAR, YEARNR_CHAR}, {N_("# Weekday name (may be defined)"), DFORMAT_CHAR, WDNAME_CHAR}, {N_("Month group (exactly one member must be defined):"), '\0', '\0'}, {N_("# Month number"), DFORMAT_CHAR, MONTHNR_CHAR}, {N_("# Month name"), DFORMAT_CHAR, MONTHNAME_CHAR}, {N_("Highlighting group (all members must be defined):"), '\0', '\0'}, {N_("Start of highlighting sequence/marking character"), DFORMAT_CHAR, HLS1S_CHAR}, {N_("End of highlighting sequence/marking character"), DFORMAT_CHAR, HLS1E_CHAR}, {N_("Character replacement:"), '\0', '\0'}, {N_("Space/blank ('%c') character"), PSEUDO_BLANK, ' '}, {N_("Underscore ('%c') character"), QUOTE_CHAR, PSEUDO_BLANK}, {N_("Percent ('%c') character"), QUOTE_CHAR, DFORMAT_CHAR}, {N_("Backslash ('%c') character"), QUOTE_CHAR, QUOTE_CHAR}, {N_("All format elements marked by # may optionally"), '\0', '\0'}, {N_("contain a format instruction, which template is like:"), '\0', '\0'}, {N_("[ALIGNMENT [SIGN] [ZERO] WIDTH [STYLE] [SUFFIX] FORMAT]"), '\0', '\0'}, {N_("ALIGNMENT group (exactly one member must be defined):"), '\0', '\0'}, {N_("Field contents placed at the left margin using width WIDTH"), FLEFT_CHAR, ' '}, {N_("Field contents placed in centered manner using width WIDTH"), FCENTER_CHAR, ' '}, {N_("Field contents placed at the right margin using width WIDTH"), FRIGHT_CHAR, ' '}, {N_("SIGN (may be defined):"), '\0', '\0'}, {N_("Numerical value is provided with leading sign"), FSIGN_CHAR, ' '}, {N_("ZERO (may be defined):"), '\0', '\0'}, {N_("Numerical value is filled with leading zero(es)"), FLZERO_CHAR, ' '}, {N_("WIDTH (must be defined):"), '\0', '\0'}, {N_("Field has the width N (%d...%d)"), 'N', '\0'}, {N_("STYLE group (exactly one member may be defined):"), '\0', '\0'}, {N_("Field contents is converted to upper-case letters"), FUPPER_CHAR, ' '}, {N_("Field contents is converted to lower-case letters"), FLOWER_CHAR, ' '}, {N_("Field contents is converted to capitalized words"), FWORD_CHAR, ' '}, {N_("SUFFIX (may be defined):"), '\0', '\0'}, {N_("Numerical value is provided with an ordinal number suffix"), FSUFFIX_CHAR, ' '}, {N_("FORMAT group (exactly one member must be defined):"), '\0', '\0'}, {N_("Field contents is not cut after position WIDTH"), FVAR_CHAR, ' '}, {N_("Field contents is cut after position WIDTH"), FFIX_CHAR, ' '}, {NULL, '\0', '\0'} }; #if USE_RC /*! The table used to inform about the characters used in the %? inclusive/exclusive day special texts is a vector of `Ed_struct' terminated by an element containing an `ed_info' which is zero! */ static const Ed_struct info_exclusive_day[] = { /* { char ed_id, char *ed_info }, */ {RC_EX_LHDY_CHAR, N_("legal holidays")}, {RC_EX_AHDY_CHAR, N_("holidays")}, {RC_EX_MON_CHAR, N_("Mondays")}, {RC_EX_TUE_CHAR, N_("Tuesdays")}, {RC_EX_WED_CHAR, N_("Wednesdays")}, {RC_EX_THU_CHAR, N_("Thursdays")}, {RC_EX_FRI_CHAR, N_("Fridays")}, {RC_EX_SAT_CHAR, N_("Saturdays")}, {RC_EX_SUN_CHAR, N_("Sundays")}, {RC_EX_MON_2_THU_CHAR, N_("Mondays...Thursdays")}, {RC_EX_MON_2_FRI_CHAR, N_("Mondays...Fridays")}, {'\0', NULL} }; #endif /* * Function implementations. */ void my_help_on_help (fp, longopt, lopt_ambig, cols) FILE *fp; const char *longopt; const Bool lopt_ambig; const int cols; /*! Prints the "help on help" text to file `fp' using the central output function `print_text()', and uses the global text buffer `s1' internally. If delivered `lopt_ambig' is TRUE, only display the names of all longoptions stored in `lopt' structure member `long_name', which are equal to delivered `longopt'. */ { auto const Lopt_struct *ptr_lopt = lopt; register const int filler_blanks = 2; register const int len_longopt = (int) strlen (longopt); register int len_line; register int len_string; sprintf (s1, _("%s: Use `%s %s' with one of these arguments"), prgr_name, prgr_name, get_longopt_description (SYM_LONG_HELP2, TRUE)); print_text (fp, s1); print_text (fp, s1); for (len_line = 0; len_line < filler_blanks; len_line++) s1[len_line] = ' '; s1[len_line] = '\0'; if (lopt_ambig) { while (tolower (*ptr_lopt->long_name) < tolower (*longopt)) ptr_lopt++; while (strncasecmp (longopt + 1, ptr_lopt->long_name + 1, len_longopt - 1)) ptr_lopt++; } while (ptr_lopt->long_name != NULL) { len_string = (int) strlen (ptr_lopt->long_name) + 1; if ((ptr_lopt + 1)->long_name != NULL) len_string++; if (len_line + len_string >= cols) { print_text (fp, s1); for (len_line = 0; len_line < filler_blanks; len_line++) s1[len_line] = ' '; s1[len_line] = '\0'; } strcat (s1, " "); strcat (s1, ptr_lopt->long_name); if ((ptr_lopt + 1)->long_name != NULL) { if (lopt_ambig && strncasecmp (longopt, (ptr_lopt + 1)->long_name, len_longopt)) break; strcat (s1, ","); len_line += len_string; } ptr_lopt++; } print_text (fp, s1); } void my_extended_help (fp, longopt_symbolic) FILE *fp; const int longopt_symbolic; /*! Prints the "extended help" text to file `fp' using the central output function `print_text()', and uses the global text buffers `s1' and `s2' internally. If `longopt_symbolic' is set to SYM_NIL, the complete text is shown, otherwise the text corresponding to SYM_??? only! */ { #if USE_RC auto const Ed_struct *ptr_info_exclusive_day = info_exclusive_day; #endif auto const Cc_struct *ptr_cc_holidays = cc_holidays; auto Df_struct *ptr_date_format = supported_date_format; auto const Di_struct *ptr_info_date_format = info_date_format; auto Greg_struct *ptr_greg = greg_reform_date; auto char *ptr_env; if (longopt_symbolic == SYM_NIL) { my_help_head_text (fp); print_text (fp, s1); strcpy (s1, _("OPTION")); print_text (fp, s1); } switch (longopt_symbolic) { case SYM_NIL: case SYM_HELP: sprintf (s1, "%s? %s", SWITCH, get_longopt_description (SYM_HELP, TRUE)); print_text (fp, s1); sprintf (s1, "%sh %s", SWITCH, get_longopt_description (SYM_HELP, TRUE)); print_text (fp, s1); strcpy (s1, _(" Display help text and quit program")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_LONG_HELP1: case SYM_LONG_HELP2: sprintf (s1, "%s?? %s", SWITCH, get_longopt_description (SYM_LONG_HELP1, TRUE)); print_text (fp, s1); sprintf (s1, "%shh %s", SWITCH, get_longopt_description (SYM_LONG_HELP1, TRUE)); print_text (fp, s1); sprintf (s1, " %s", get_longopt_description (SYM_LONG_HELP2, TRUE)); print_text (fp, s1); strcpy (s1, _(" Display extended help text and quit program")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_LICENSE1: case SYM_LICENSE2: case SYM_LICENSE3: sprintf (s1, "%sL %s", SWITCH, get_longopt_description (SYM_LICENSE1, TRUE)); print_text (fp, s1); sprintf (s1, " %s", get_longopt_description (SYM_LICENSE2, TRUE)); print_text (fp, s1); sprintf (s1, " %s", get_longopt_description (SYM_LICENSE3, TRUE)); print_text (fp, s1); strcpy (s1, _(" Display software license and quit program")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_VERSION: sprintf (s1, "%sV %s", SWITCH, get_longopt_description (SYM_VERSION, TRUE)); print_text (fp, s1); strcpy (s1, _(" Display version information and quit program")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_EXIT_STAT_HELP_NON_ZERO: sprintf (s1, " %s", get_longopt_description (SYM_EXIT_STAT_HELP_NON_ZERO, TRUE)); print_text (fp, s1); sprintf (s1, _(" Set EXIT status of program to %d on `%s' etc."), ERR_EXIT_INFO_TEXTS_NON_ZERO, get_longopt_description (SYM_HELP, FALSE)); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_RESPONSE_FILE: sprintf (s1, "%sR %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_RESPONSE_FILE, TRUE)); print_text (fp, s1); sprintf (s1, _(" Create response file for the `%cFILE' option"), RSP_CHAR); print_text (fp, s1); sprintf (s1, _(" %-3s = Store arguments of command line in file %s"), larg_lit, larg_lit); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #ifdef GCAL_SHELL case SYM_SCRIPT_FILE: sprintf (s1, "%sS %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_SCRIPT_FILE, TRUE)); print_text (fp, s1); sprintf (s1, _ (" Create shell script which contains the arguments of command line")); print_text (fp, s1); sprintf (s1, _(" %-3s = File name of the shell script"), larg_lit); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #endif #if USE_RC case SYM_DATE_VARIABLE: sprintf (s1, "%sv %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_DATE_VARIABLE, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Define global date variable(s) \"DVAR->a...d|f...s|u...|z\"")); print_text (fp, s1); sprintf (s1, _ (" %-3s = \"DVAR%s%s%s\" definitions separated by `%s' characters"), larg_lit, RC_VAR_ASSIGN, mm_lit, dd_lit, SEP); print_text (fp, s1); sprintf (s1, _ (" E.g. %sv a%s1127%sb%s054 Set `a' to Nov 27 and `b' to May 4"), SWITCH, RC_VAR_ASSIGN, SEP, RC_VAR_ASSIGN); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_extern_static_DVARS: sprintf (s1, " %s", get_longopt_description (SYM_extern_static_DVARS, TRUE)); print_text (fp, s1); strcpy (s1, _(" Export local date variables from file to file")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_TEXT_VARIABLE: sprintf (s1, "%sr %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_TEXT_VARIABLE, TRUE)); print_text (fp, s1); sprintf (s1, _ (" Define global text variable(s) \"TVAR->%ca...%cz\""), RC_TVAR_CHAR, RC_TVAR_CHAR); print_text (fp, s1); sprintf (s1, _ (" %-3s = \"TVAR%sTEXT\" definitions separated by `%s' characters"), larg_lit, RC_VAR_ASSIGN, SEP); print_text (fp, s1); sprintf (s1, _ (" E.g. %sr %ca%sfoo%s%cb%sbar Set `%ca' to `foo' and `%cb' to `bar'"), SWITCH, RC_TVAR_CHAR, RC_VAR_ASSIGN, SEP, RC_TVAR_CHAR, RC_VAR_ASSIGN, RC_TVAR_CHAR, RC_TVAR_CHAR); print_text (fp, s1); sprintf (s1, _ (" = \"TVAR[%s|%c%s]COMMAND\" definitions separated by `%s' characters"), RC_TVAR_ICMD_ASSIGN, QUOTE_CHAR, RC_TVAR_UCMD_ASSIGN, SEP); print_text (fp, s1); sprintf (s1, _ (" E.g. %sr %ca%sfoo Assign output of command `foo' to `%ca'"), SWITCH, RC_TVAR_CHAR, RC_TVAR_ICMD_ASSIGN, RC_TVAR_CHAR); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_extern_static_TVARS: sprintf (s1, " %s", get_longopt_description (SYM_extern_static_TVARS, TRUE)); print_text (fp, s1); strcpy (s1, _(" Export local text variables from file to file")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_FILTER_DAY: sprintf (s1, "%sD %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_FILTER_DAY, TRUE)); print_text (fp, s1); sprintf (s1, _ (" Display only those fixed dates, whose date is not excluded by %s"), larg_lit); print_text (fp, s1); sprintf (s1, _ (" %-3s = One or more of the following characters. If character"), larg_lit); print_text (fp, s1); strcpy (s1, _ (" is a LOWER-CASE-LETTER, it means a non-exclusion!")); print_text (fp, s1); do { sprintf (s1, _(" %c = Exclusion of all %s"), ptr_info_exclusive_day->ed_id, _(ptr_info_exclusive_day->ed_info)); print_text (fp, s1); } while ((++ptr_info_exclusive_day)->ed_info != (char *) NULL); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_FILTER_PERIOD: sprintf (s1, "%sP %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_FILTER_PERIOD, TRUE)); print_text (fp, s1); sprintf (s1, _ (" Display only those fixed dates, whose date is not excluded by %s"), larg_lit); print_text (fp, s1); sprintf (s1, _ (" %-3s = List of `%c[DATE][%c[DATE]]' and/or `%c[DATE][%c[DATE]]'"), larg_lit, RC_IDATE_CHAR, RC_DRANGE_CHAR, RC_EDATE_CHAR, RC_DRANGE_CHAR); print_text (fp, s1); sprintf (s1, _(" expressions separated by `%s' characters"), SPLIT_SEP); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_FILTER_TEXT: sprintf (s1, "%sI %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_FILTER_TEXT, TRUE)); print_text (fp, s1); sprintf (s1, _ (" Display only those fixed dates, whose text is matched by %s"), larg_lit); print_text (fp, s1); sprintf (s1, _ (" %-3s = Any text respectively \"regular expression\" you like"), larg_lit); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_IGNORE_CASE: sprintf (s1, " %s", get_longopt_description (SYM_IGNORE_CASE, TRUE)); print_text (fp, s1); sprintf (s1, _ (" Ignore case distinctions if `%s' option is given"), get_longopt_description (SYM_FILTER_TEXT, FALSE)); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_REVERT_MATCH: sprintf (s1, " %s", get_longopt_description (SYM_REVERT_MATCH, TRUE)); print_text (fp, s1); sprintf (s1, _(" Revert the sense of matching of the `%s' option"), get_longopt_description (SYM_FILTER_TEXT, FALSE)); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #endif /* USE_RC */ case SYM_DEBUG: sprintf (s1, " %s", get_longopt_description (SYM_DEBUG, TRUE)); print_text (fp, s1); strcpy (s1, _(" Display some debug information")); print_text (fp, s1); /* *** Translators, please don't translate the word `internal', *** because it is used textually AS IS as an option argument. */ sprintf (s1, _ (" [%-3s] = internal Information if program internal maximums are reached"), larg_lit); print_text (fp, s1); /* *** Translators, please don't translate the words `handled' and `internal', *** because they are used textually AS IS as an option argument. */ strcpy (s1, _ (" = handled Like `internal' and file names which are handled")); print_text (fp, s1); /* *** Translators, please don't translate the words `unhandled' and `internal', *** because they are used textually AS IS as an option argument. */ strcpy (s1, _ (" = unhandled Like `internal' and file names which are unhandled")); print_text (fp, s1); /* *** Translators, please don't translate the words `all', `handled' and `unhandled', *** because they are used textually AS IS as an option argument. */ strcpy (s1, _ (" = all Like `handled' and `unhandled' together")); print_text (fp, s1); /* *** Translators, please don't translate the words `abort' and `all', *** because they are used textually AS IS as an option argument. */ strcpy (s1, _ (" = abort Like `all' and abort if file name can't be handled")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_TYPE_OF_CALENDAR: sprintf (s1, "%si[MOD] %s", SWITCH, get_longopt_description (SYM_TYPE_OF_CALENDAR, TRUE)); print_text (fp, s1); strcpy (s1, _(" Use special format for calendar sheet")); print_text (fp, s1); strcat (s1, _(" [MOD] = - Use standard format for calendar sheet")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_ORTHODOX_CALENDAR: sprintf (s1, "%sO %s", SWITCH, get_longopt_description (SYM_ORTHODOX_CALENDAR, TRUE)); print_text (fp, s1); strcpy (s1, _(" Use leap year rule of Eastern Orthodox churches")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_CALENDAR_WITH_WEEK_NUMBER: sprintf (s1, "%sK %s", SWITCH, get_longopt_description (SYM_CALENDAR_WITH_WEEK_NUMBER, TRUE)); print_text (fp, s1); strcpy (s1, _(" Provide calendar sheet with week numbers")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_ISO_WEEK_NUMBER: sprintf (s1, " %s", get_longopt_description (SYM_ISO_WEEK_NUMBER, TRUE)); print_text (fp, s1); sprintf (s1, _(" Determine type of week numbers (actual: %s)"), (iso_week_number) ? "ISO-8601:1988" : _("Standard")); print_text (fp, s1); /* *** Translators, please don't translate the word `yes', *** because it is used textually AS IS as an option argument. */ sprintf (s1, _(" %-3s = yes ISO-8601:1988 week numbers"), larg_lit); print_text (fp, s1); /* *** Translators, please don't translate the word `no', *** because it is used textually AS IS as an option argument. */ strcpy (s1, _(" = no Standard week numbers")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_SUPPRESS_CALENDAR: sprintf (s1, "%su %s", SWITCH, get_longopt_description (SYM_SUPPRESS_CALENDAR, TRUE)); print_text (fp, s1); strcpy (s1, _(" Suppress output of calendar sheet explicitly")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #if USE_PAGER case SYM_PAGER: sprintf (s1, "%sp %s", SWITCH, get_longopt_description (SYM_PAGER, TRUE)); print_text (fp, s1); # ifdef GCAL_EPAGER if (ext_pager != (char *) NULL) sprintf (s1, _(" Direct output through external `%s' pager"), (*ext_pager == *DIR_SEP) ? strrchr (ext_pager, *DIR_SEP) + 1 : ext_pager); else strcpy (s1, _(" Direct output through simple internal pager")); # else /* !GCAL_EPAGER */ strcpy (s1, _(" Direct output through simple internal pager")); # endif /* !GCAL_EPAGER */ print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #endif /* USE_PAGER */ case SYM_DISABLE_HIGHLIGHTING: sprintf (s1, "%sH no %s", SWITCH, get_longopt_description (SYM_DISABLE_HIGHLIGHTING, TRUE)); print_text (fp, s1); sprintf (s1, " %s=no", get_longopt_description (SYM_HIGHLIGHTING, FALSE)); print_text (fp, s1); strcpy (s1, _ (" Disable highlighting of text, holiday resp., actual day")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_FORCE_HIGHLIGHTING: sprintf (s1, "%sH yes %s", SWITCH, get_longopt_description (SYM_FORCE_HIGHLIGHTING, TRUE)); print_text (fp, s1); sprintf (s1, " %s=yes", get_longopt_description (SYM_HIGHLIGHTING, FALSE)); print_text (fp, s1); strcpy (s1, _ (" Forces highlighting sequences if output is redirected/piped")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_HIGHLIGHTING: sprintf (s1, "%sH %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_HIGHLIGHTING, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Set highlighting sequence pairs 1 (=actual day) and 2 (=holiday)")); print_text (fp, s1); sprintf (s1, _ (" %-3s = Highlighting sequence pairs separated by `%s' characters"), larg_lit, SEP); print_text (fp, s1); sprintf (s1, _ (" E.g. %sH \\x2%s\\xAE Use hex values 2 and AE for sequence 1"), SWITCH, SEP); print_text (fp, s1); sprintf (s1, _ (" E.g. %sH %s%s*%s* Use characters `*' and `*' for sequence 2"), SWITCH, SEP, SEP, SEP); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_BLOCKS: sprintf (s1, "%sb %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_BLOCKS, TRUE)); print_text (fp, s1); strcpy (s1, _(" Modify format of year calendar")); print_text (fp, s1); sprintf (s1, _ (" %-3s = 1|2|3|4|6|12 Number of blocks (actual: %d)"), larg_lit, out_rows); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_CALENDAR_DATES: sprintf (s1, "%sj[MOD] %s", SWITCH, get_longopt_description (SYM_CALENDAR_DATES, TRUE)); print_text (fp, s1); strcpy (s1, _(" Use consecutive day of year in calendar sheet")); print_text (fp, s1); strcpy (s1, _ (" [MOD] = b Use both date notations (day of month+year)")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_HOLIDAY_DATES: sprintf (s1, "%sjn[MOD] %s", SWITCH, get_longopt_description (SYM_HOLIDAY_DATES, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Use consecutive day of year in eternal holiday list")); print_text (fp, s1); strcpy (s1, _ (" [MOD] = b Use both date notations (day of month+year)")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #if USE_RC case SYM_FIXED_DATES: sprintf (s1, "%sjc[MOD] %s", SWITCH, get_longopt_description (SYM_FIXED_DATES, TRUE)); print_text (fp, s1); strcpy (s1, _(" Use consecutive day of year in fixed date list")); print_text (fp, s1); strcpy (s1, _ (" [MOD] = b Use both date notations (day of month+year)")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #endif case SYM_STARTING_DAY: sprintf (s1, "%ss %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_STARTING_DAY, TRUE)); print_text (fp, s1); sprintf (s1, _(" Set starting day of week (actual: %s)"), (use_short3_day_name) ? short3_day_name (start_day) : short_day_name (start_day)); print_text (fp, s1); if (use_short3_day_name) sprintf (s1, " %-3s = 0|today | %d|%s | %d|%s | ... | %d|%s", larg_lit, DAY_MIN, short3_day_name (DAY_MIN), DAY_MIN + 1, short3_day_name (DAY_MIN + 1), DAY_MAX, short3_day_name (DAY_MAX)); else sprintf (s1, " %-3s = 0|today | %d|%s | %d|%s | ... | %d|%s", larg_lit, DAY_MIN, short_day_name (DAY_MIN), DAY_MIN + 1, short_day_name (DAY_MIN + 1), DAY_MAX, short_day_name (DAY_MAX)); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #ifdef GCAL_EMAIL case SYM_MAIL: sprintf (s1, " %s", get_longopt_description (SYM_MAIL, TRUE)); print_text (fp, s1); # if !defined(AMIGA) || defined(__GNUC__) ptr_env = getenv (ENV_VAR_MAILPROG); if (ptr_env != (char *) NULL) { if (!*ptr_env) ptr_env = MAIL_PRGR; } else # endif /* AMIGA && !__GNUC__ */ ptr_env = MAIL_PRGR; sprintf (s1, _(" Send output via `%s' program to user"), ptr_env); print_text (fp, s1); if (email_adr != (char *) NULL) ptr_env = email_adr; # if !defined(AMIGA) || defined(__GNUC__) else ptr_env = getenv (ENV_VAR_MAILTO); if (ptr_env != (char *) NULL) { if (!*ptr_env) ptr_env = getenv (ENV_VAR_USER); } else ptr_env = getenv (ENV_VAR_USER); if (ptr_env != (char *) NULL) { if (!*ptr_env) ptr_env = getenv (ENV_VAR_LOGNAME); } else ptr_env = getenv (ENV_VAR_LOGNAME); if (ptr_env != (char *) NULL) { if (!*ptr_env) ptr_env = (char *) NULL; } # endif /* AMIGA && !__GNUC__ */ if (ptr_env == (char *) NULL) ptr_env = _("UNKNOWN"); sprintf (s1, _ (" [%-3s] = Email address, otherwise eMail is send to user `%s'"), larg_lit, ptr_env); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #endif /* GCAL_EMAIL */ case SYM_HOLIDAY_LIST: case SYM_DESC_HOLIDAY_LIST: sprintf (s1, "%sn|N[MOD] %s", SWITCH, get_longopt_description (SYM_HOLIDAY_LIST, TRUE)); print_text (fp, s1); sprintf (s1, " %s", get_longopt_description (SYM_DESC_HOLIDAY_LIST, TRUE)); print_text (fp, s1); sprintf (s1, _ (" Display eternal holiday list (Year in range: %d...%d)"), EASTER_MIN, EASTER_MAX); print_text (fp, s1); strcpy (s1, _(" n = Legal days and memorial days")); print_text (fp, s1); strcpy (s1, _(" N = Legal days only")); print_text (fp, s1); sprintf (s1, _(" [MOD] = %s Descending sort order"), DES_LIT); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_SUPPRESS_HDLIST_SEP: sprintf (s1, "%sG %s", SWITCH, get_longopt_description (SYM_SUPPRESS_HDLIST_SEP, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Suppress leading blank line of eternal holiday list")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_EXCLUDE_HD_TITLE: sprintf (s1, "%sX %s", SWITCH, get_longopt_description (SYM_EXCLUDE_HD_TITLE, TRUE)); print_text (fp, s1); strcpy (s1, _(" Exclude title of eternal holiday list")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_ASTRONOMICAL_HDY: sprintf (s1, " %s", get_longopt_description (SYM_ASTRONOMICAL_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with astronomical data")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_BAHAI_HDY: sprintf (s1, " %s", get_longopt_description (SYM_BAHAI_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Bahá'i calendar holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_BAHAI_MTH: sprintf (s1, " %s", get_longopt_description (SYM_BAHAI_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Bahá'i calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_CELTIC_HDY: sprintf (s1, " %s", get_longopt_description (SYM_CELTIC_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Celtic calendar holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_CHINESE_FLEXIBLE_HDY: sprintf (s1, " %s", get_longopt_description (SYM_CHINESE_FLEXIBLE_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Chinese flexible calendar holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_CHINESE_FLEXIBLE_MTH: sprintf (s1, " %s", get_longopt_description (SYM_CHINESE_FLEXIBLE_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Chinese flexible calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_CHINESE_HDY: sprintf (s1, " %s", get_longopt_description (SYM_CHINESE_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Chinese calendar holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_CHINESE_MTH: sprintf (s1, " %s", get_longopt_description (SYM_CHINESE_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Chinese calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_CHRISTIAN_HDY: sprintf (s1, " %s", get_longopt_description (SYM_CHRISTIAN_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Christian Western calendar holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_COPTIC_MTH: sprintf (s1, " %s", get_longopt_description (SYM_COPTIC_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Coptic calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_ETHIOPIC_MTH: sprintf (s1, " %s", get_longopt_description (SYM_ETHIOPIC_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Ethiopic calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_FRENCH_REVOLUTIONARY_MTH: sprintf (s1, " %s", get_longopt_description (SYM_FRENCH_REVOLUTIONARY_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with French Revolutionary calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_HEBREW_HDY: sprintf (s1, " %s", get_longopt_description (SYM_HEBREW_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Hebrew calendar holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_HEBREW_MTH: sprintf (s1, " %s", get_longopt_description (SYM_HEBREW_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Hebrew calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_INDIAN_CIVIL_MTH: sprintf (s1, " %s", get_longopt_description (SYM_INDIAN_CIVIL_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Indian civil-calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_ISLAMIC_HDY: sprintf (s1, " %s", get_longopt_description (SYM_ISLAMIC_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Islamic civil-calendar holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_ISLAMIC_MTH: sprintf (s1, " %s", get_longopt_description (SYM_ISLAMIC_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Islamic civil-calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_JAPANESE_FLEXIBLE_HDY: sprintf (s1, " %s", get_longopt_description (SYM_JAPANESE_FLEXIBLE_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Japanese flexible calendar holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_JAPANESE_FLEXIBLE_MTH: sprintf (s1, " %s", get_longopt_description (SYM_JAPANESE_FLEXIBLE_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Japanese flexible calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_JAPANESE_HDY: sprintf (s1, " %s", get_longopt_description (SYM_JAPANESE_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Japanese calendar holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_JAPANESE_MTH: sprintf (s1, " %s", get_longopt_description (SYM_JAPANESE_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Japanese calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_MULTICULTURAL_NEW_YEAR_HDY: sprintf (s1, " %s", get_longopt_description (SYM_MULTICULTURAL_NEW_YEAR_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with multicultural New Year holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_OLD_ARMENIC_MTH: sprintf (s1, " %s", get_longopt_description (SYM_OLD_ARMENIC_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Old-Armenic calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_OLD_EGYPTIC_MTH: sprintf (s1, " %s", get_longopt_description (SYM_OLD_EGYPTIC_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Old-Egyptic calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_ORTHODOX_NEW_HDY: sprintf (s1, " %s", get_longopt_description (SYM_ORTHODOX_NEW_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Orthodox new-calendar holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_ORTHODOX_OLD_HDY: sprintf (s1, " %s", get_longopt_description (SYM_ORTHODOX_OLD_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Orthodox old-calendar holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_PERSIAN_HDY: sprintf (s1, " %s", get_longopt_description (SYM_PERSIAN_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Persian Jalaali-calendar holidays")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_PERSIAN_MTH: sprintf (s1, " %s", get_longopt_description (SYM_PERSIAN_MTH, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with Persian Jalaali-calendar months")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_ZODIACAL_MARKER_HDY: sprintf (s1, " %s", get_longopt_description (SYM_ZODIACAL_MARKER_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with zodiacal marker data")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_CC_HDY: sprintf (s1, "%sq %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_CC_HDY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Provide eternal holiday list with country specific holidays")); print_text (fp, s1); sprintf (s1, _ (" %-3s = Single country resp., territory code or a list of these,"), larg_lit); print_text (fp, s1); sprintf (s1, _ (" which are connected by `%s' characters. Countries/territories,"), CONNECT_SEP); print_text (fp, s1); strcpy (s1, _ (" marked by # have an incomplete recording of holidays")); print_text (fp, s1); do { sprintf (s1, _(" %-*s = Holidays in %s"), #if HD_TOP20CC 2, #else /* !HD_TOP20CC */ 5, #endif /* !HD_TOP20CC */ ptr_cc_holidays->cc_id, _(ptr_cc_holidays->cc_info)); print_text (fp, s1); } while ((++ptr_cc_holidays)->cc_info != (char *) NULL); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #if USE_RC case SYM_ADJUST_VALUE: sprintf (s1, " %s", get_longopt_description (SYM_ADJUST_VALUE, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Set reference value for rise/set time respectively shadow length")); print_text (fp, s1); sprintf (s1, _ (" %-3s = Angular value respectively factor in range: %+.1f...%+.1f"), larg_lit, -DEGS_PER_06_HOURS, DEGS_PER_06_HOURS); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_ATMOSPHERE: sprintf (s1, " %s", get_longopt_description (SYM_ATMOSPHERE, TRUE)); print_text (fp, s1); strcpy (s1, _(" Set base data of Earth's atmosphere")); print_text (fp, s1); sprintf (s1, _ (" %-3s = Air pressure and temperature separated by `%s' character"), larg_lit, SPLIT_SEP); print_text (fp, s1); sprintf (s1, _(" Air pressure in Millibar (actual: %.3f)"), atm_pressure / 100.0); print_text (fp, s1); sprintf (s1, _ (" Air temperature in degrees Celsius (actual: %+.3f)"), atm_temperature); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_LIMIT: sprintf (s1, " %s", get_longopt_description (SYM_LIMIT, TRUE)); print_text (fp, s1); strcpy (s1, _(" Limit rise/set times of Sun to the day")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_PRECISE: sprintf (s1, " %s", get_longopt_description (SYM_PRECISE, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Represent astronomical times and data with utmost precision")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_EXECUTE_COMMAND: sprintf (s1, " %s", get_longopt_description (SYM_EXECUTE_COMMAND, TRUE)); print_text (fp, s1); sprintf (s1, _(" Execute `%c%c[%s]' shell commands"), RC_SPECIAL_TEXT_CHAR, RC_SHELL_ESC_CHAR, larg_lit); print_text (fp, s1); sprintf (s1, _(" and \"TVAR[%s|%c%s]COMMAND\" assignments"), RC_TVAR_ICMD_ASSIGN, QUOTE_CHAR, RC_TVAR_UCMD_ASSIGN); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #endif case SYM_TIME_OFFSET: sprintf (s1, " %s", get_longopt_description (SYM_TIME_OFFSET, TRUE)); print_text (fp, s1); strcpy (s1, _(" Change base time of astronomical functions")); print_text (fp, s1); #if USE_RC strcpy (s1, _(" respectively, change cycle-starting time")); print_text (fp, s1); #endif if (time_hour_offset) sprintf (s2, "%+d", gmt_timezone_value (time_hour_offset)); else *s2 = '\0'; #if USE_RC sprintf (s1, _ (" %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s)"), larg_lit, RC_TIME_CHAR, RC_GMTIME_CHAR, RC_TIME_CHAR, RC_GMTIME_CHAR, ASC_LIT, DES_LIT, time_sep, (time_hour_offset + time_min_offset < 0) ? DES_LIT : ASC_LIT, abs (time_hour_offset), time_sep, abs (time_min_offset), s2); #else /* !USE_RC */ sprintf (s1, _ (" %-3s = %c|[%c][%s|%s]MMMM|HH%s[MM] Time offset value (actual: %s%02d%s%02d == GMT%s)"), larg_lit, staticTIME_CHAR, staticTIME_CHAR, ASC_LIT, DES_LIT, time_sep, (time_hour_offset + time_min_offset < 0) ? DES_LIT : ASC_LIT, abs (time_hour_offset), time_sep, abs (time_min_offset), s2); #endif /* !USE_RC */ print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #if USE_RC case SYM_CYCLE_END: sprintf (s1, " %s", get_longopt_description (SYM_CYCLE_END, TRUE)); print_text (fp, s1); strcpy (s1, _(" Change cycle-ending time")); print_text (fp, s1); sprintf (s1, _ (" %-3s = %c|%c|[%c|%c][%s|%s]MMMM|HH%s[MM] Ending time value (actual: %02d%s%02d)"), larg_lit, RC_TIME_CHAR, RC_GMTIME_CHAR, RC_TIME_CHAR, RC_GMTIME_CHAR, ASC_LIT, DES_LIT, time_sep, (int) MM2HH (loop_end), time_sep, (loop_end > SPECIAL_VALUE) ? loop_end % MINS_PER_HOUR : 0); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_CYCLE_STEP: sprintf (s1, " %s", get_longopt_description (SYM_CYCLE_STEP, TRUE)); print_text (fp, s1); strcpy (s1, _(" Change cycle-timestep")); print_text (fp, s1); sprintf (s1, _ (" %-3s = MMMM|HH%s[MM] Timestep value (actual: %02d%s%02d)"), larg_lit, time_sep, (int) MM2HH (loop_step), time_sep, loop_step % MINS_PER_HOUR); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); #endif case SYM_TRANSFORM_YEAR: sprintf (s1, " %s", get_longopt_description (SYM_TRANSFORM_YEAR, TRUE)); print_text (fp, s1); strcpy (s1, _(" Change base year of calendar")); print_text (fp, s1); sprintf (s1, _ (" %-3s = [%s|%s]YYYY Year offset value (actual: %d)"), larg_lit, ASC_LIT, DES_LIT, (transform_year) ? transform_year : YEAR_MIN); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_GREG_REFORM: sprintf (s1, " %s", get_longopt_description (SYM_GREG_REFORM, TRUE)); print_text (fp, s1); strcpy (s1, _(" Set period of Gregorian Reformation")); print_text (fp, s1); sprintf (s1, _(" Actual respected period: %02d-%02d %s %0*d"), greg->first_day, greg->last_day, short_month_name (greg->month), len_year_max, greg->year); print_text (fp, s1); do { sprintf (s1, _(" %-*d%*s = Set period to: %02d-%02d %s %0*d"), len_year_max, ptr_greg->year, 6 - len_year_max, "", ptr_greg->first_day, ptr_greg->last_day, short_month_name (ptr_greg->month), len_year_max, ptr_greg->year); print_text (fp, s1); } while ((++ptr_greg)->year); sprintf (s1, _(" %-3s = %s%c%s%s%s%s%s%s Set period explicitly"), larg_lit, yyyy_lit, *yyyy_lit, SPLIT_SEP, mm_lit, SPLIT_SEP, dd_lit, SPLIT_SEP, dd_lit); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_DATE_FORMAT: sprintf (s1, " %s", get_longopt_description (SYM_DATE_FORMAT, TRUE)); print_text (fp, s1); sprintf (s1, _ (" Set order of date elements using the %s format text"), larg_lit); print_text (fp, s1); sprintf (s1, _(" Actual: (%s) `%s' (%s)"), (date_format->df_id == (char *) NULL) ? _("self-defined") : date_format->df_id, date_format->df_format, _(date_format->df_info)); print_text (fp, s1); do { sprintf (s1, _(" %-6s = Format is: `%s' (%s)"), ptr_date_format->df_id, ptr_date_format->df_format, _(ptr_date_format->df_info)); print_text (fp, s1); } while ((++ptr_date_format)->df_info != (char *) NULL); sprintf (s1, _ (" %-3s = Define individual format. Respected format elements are:"), larg_lit); print_text (fp, s1); do { if (!ptr_info_date_format->di_1format) sprintf (s1, " %s", _(ptr_info_date_format->di_info)); else { if (ptr_info_date_format->di_1format != DFORMAT_CHAR) { if (ptr_info_date_format->di_2format) sprintf (s2, _(ptr_info_date_format->di_info), ptr_info_date_format->di_2format); else sprintf (s2, _(ptr_info_date_format->di_info), FWIDTH_MIN, FWIDTH_MAX); sprintf (s1, " %c%c = %s", ptr_info_date_format->di_1format, (ptr_info_date_format-> di_2format) ? ptr_info_date_format-> di_2format : ' ', s2); } else sprintf (s1, " %c%c = %s", ptr_info_date_format->di_1format, ptr_info_date_format->di_2format, _(ptr_info_date_format->di_info)); } print_text (fp, s1); } while ((++ptr_info_date_format)->di_info != (char *) NULL); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_TRANSLATE_STRING: sprintf (s1, " %s", get_longopt_description (SYM_TRANSLATE_STRING, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Define translatable country specific special character pairs")); print_text (fp, s1); sprintf (s1, _ (" %-3s = UPPER-CASE-LETTER\"\"LOWER-CASE-LETTER... definitions"), larg_lit); print_text (fp, s1); sprintf (s1, _ (" E.g. a `%s%s%s%s%s%s%s%s' %-3s causes the correct conversion of"), AAE, AE, OOE, OE, UUE, UE, SZ, SZ, larg_lit); print_text (fp, s1); strcpy (s1, _ (" the preceding special characters in an individual date format,")); print_text (fp, s1); strcpy (s1, _ (" which has a STYLE format instruction component, and that, how")); print_text (fp, s1); strcpy (s1, _ (" they are used by the character set used in Germany")); print_text (fp, s1); default: ; /* Void */ } #if USE_RC if (longopt_symbolic == SYM_NIL) { print_text (fp, s1); sprintf (s1, _("+++ FIXED DATES +++")); print_text (fp, s1); print_text (fp, s1); } switch (longopt_symbolic) { case SYM_NIL: case SYM_TODAY: case SYM_FIXED_DATES_LIST: case SYM_DESC_FIXED_DATES_LIST: sprintf (s1, "%sc|C[MOD] %s", SWITCH, get_longopt_description (SYM_FIXED_DATES_LIST, TRUE)); print_text (fp, s1); sprintf (s1, " %s", get_longopt_description (SYM_DESC_FIXED_DATES_LIST, TRUE)); print_text (fp, s1); sprintf (s1, " %s", get_longopt_description (SYM_TODAY, TRUE)); print_text (fp, s1); # ifdef GCAL_SHELL sprintf (s1, _ (" Use standard resource file `.%s%s' for fixed date list"), PACKAGE_NAME, RC_SUFFIX); # else /* !GCAL_SHELL */ sprintf (s1, _ (" Use standard resource file `%s%s' for fixed date list"), PACKAGE_NAME, RC_SUFFIX); # endif /* !GCAL_SHELL */ print_text (fp, s1); strcpy (s1, _(" Implies period: Today")); print_text (fp, s1); strcpy (s1, _ (" c = Display only those dates, for which fixed dates exists")); print_text (fp, s1); strcpy (s1, _ (" C = Display those dates, for which fixed dates doesn't exist, too")); print_text (fp, s1); sprintf (s1, _(" [MOD] = %s Descending sort order"), DES_LIT); print_text (fp, s1); default: ; /* Void */ } if (longopt_symbolic == SYM_NIL) { print_text (fp, s1); strcpy (s1, _ (" [MOD] = One or more of the following modifiers which are marked by #")); print_text (fp, s1); print_text (fp, s1); } switch (longopt_symbolic) { case SYM_NIL: case SYM_HEADING_TEXT: sprintf (s1, " %s", get_longopt_description (SYM_HEADING_TEXT, TRUE)); print_text (fp, s1); sprintf (s1, _ (" %-3s = Heading/Title text used for fixed date list"), larg_lit); print_text (fp, s1); sprintf (s1, _(" Actual: `%s'"), rc_heading_text + 2); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_GROUPING_TEXT: sprintf (s1, " %s", get_longopt_description (SYM_GROUPING_TEXT, TRUE)); print_text (fp, s1); strcpy (s1, _ (" # g[MOD] = Group fixed dates by day using text MOD")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); default: ; /* Void */ } if (longopt_symbolic == SYM_NIL) { print_text (fp, s1); strcpy (s1, _(" 1. Representation of text")); print_text (fp, s1); } switch (longopt_symbolic) { case SYM_NIL: case SYM_BIORHYTHM_AXIS_LEN: sprintf (s1, " %s", get_longopt_description (SYM_BIORHYTHM_AXIS_LEN, TRUE)); print_text (fp, s1); strcpy (s1, _ (" = Set width of the biorhythm text graphics")); print_text (fp, s1); sprintf (s1, _ (" %-3s = %d...%d Length of a single axis"), larg_lit, BIO_AXIS_MIN, BIO_AXIS_MAX); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_MOONIMAGE_LINES: sprintf (s1, " %s", get_longopt_description (SYM_MOONIMAGE_LINES, TRUE)); print_text (fp, s1); strcpy (s1, _ (" = Set height of the Moon phase text graphics")); print_text (fp, s1); sprintf (s1, _ (" %-3s = %d...%d Total number of lines"), larg_lit, MOONIMAGE_MIN, MOONIMAGE_MAX); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_INCLUDE_FILENAME: sprintf (s1, " %s", get_longopt_description (SYM_INCLUDE_FILENAME, TRUE)); print_text (fp, s1); strcpy (s1, _(" # a = Display origin of fixed date")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_ALTERNATIVE_FORMAT: sprintf (s1, " %s", get_longopt_description (SYM_ALTERNATIVE_FORMAT, TRUE)); print_text (fp, s1); strcpy (s1, _ (" # A = Display using alternative list format")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_INCLUDE_HOLIDAY: sprintf (s1, " %s", get_longopt_description (SYM_INCLUDE_HOLIDAY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" # e = Include legal days and memorial days")); print_text (fp, s1); strcpy (s1, _(" # E = Include legal days only")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_INCLUDE_WEEK_NUMBER: sprintf (s1, " %s", get_longopt_description (SYM_INCLUDE_WEEK_NUMBER, TRUE)); print_text (fp, s1); strcpy (s1, _(" # k = Display week number")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_OMIT_DATE_PART: sprintf (s1, " %s", get_longopt_description (SYM_OMIT_DATE_PART, TRUE)); print_text (fp, s1); strcpy (s1, _ (" # o = Omit repeating date part of fixed dates")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_SUPPRESS_FDLIST_SEP: sprintf (s1, " %s", get_longopt_description (SYM_SUPPRESS_FDLIST_SEP, TRUE)); print_text (fp, s1); strcpy (s1, _ (" # Q = Suppress leading blank line of fixed dates list")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_SUPPRESS_DATE_PART: sprintf (s1, " %s", get_longopt_description (SYM_SUPPRESS_DATE_PART, TRUE)); print_text (fp, s1); strcpy (s1, _ (" # U = Suppress date part of fixed dates")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_SUPPRESS_TEXT_PART: sprintf (s1, " %s", get_longopt_description (SYM_SUPPRESS_TEXT_PART, TRUE)); print_text (fp, s1); strcpy (s1, _ (" # J = Suppress text part of fixed dates")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_EXCLUDE_RC_TITLE: sprintf (s1, " %s", get_longopt_description (SYM_EXCLUDE_RC_TITLE, TRUE)); print_text (fp, s1); strcpy (s1, _ (" # x = Exclude title of fixed date list")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_INCLUDE_CONS_NUMBER: sprintf (s1, " %s", get_longopt_description (SYM_INCLUDE_CONS_NUMBER, TRUE)); print_text (fp, s1); strcpy (s1, _ (" # z = Display consecutive number of fixed date")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_ZERO_DATES: sprintf (s1, " %s", get_longopt_description (SYM_ZERO_DATES, TRUE)); print_text (fp, s1); strcpy (s1, _ (" # Z = Display dates, for which fixed dates doesn't exist")); print_text (fp, s1); default: ; /* Void */ } if (longopt_symbolic == SYM_NIL) { print_text (fp, s1); strcpy (s1, _(" 2. Respected period")); print_text (fp, s1); } switch (longopt_symbolic) { case SYM_NIL: case SYM_LEAP_DAY: sprintf (s1, " %s", get_longopt_description (SYM_LEAP_DAY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" = Manage `29-FEBRUARY' in non-leap years")); print_text (fp, s1); /* *** Translators, please don't translate the word `february', *** because it is used textually AS IS as an option argument. */ sprintf (s1, _ (" %-3s = february Respect at `28-FEBRUARY'"), larg_lit); print_text (fp, s1); /* *** Translators, please don't translate the word `march', *** because it is used textually AS IS as an option argument. */ sprintf (s1, _ (" %-3s = march Respect at `01-MARCH'"), larg_lit); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_INCLUDE_TODAY: sprintf (s1, " %s", get_longopt_description (SYM_INCLUDE_TODAY, TRUE)); print_text (fp, s1); strcpy (s1, _ (" # d = Include actual date if list of periods is generated")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_LIST_MODE: sprintf (s1, " %s", get_longopt_description (SYM_LIST_MODE, TRUE)); print_text (fp, s1); strcpy (s1, _ (" # l = Generate list of periods instead of a single period")); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); default: ; /* Void */ } switch (longopt_symbolic) { case SYM_NIL: case SYM_PERIOD: sprintf (s1, " %s", get_longopt_description (SYM_PERIOD, TRUE)); print_text (fp, s1); strcpy (s1, _(" # Nd = Single absolute day N")); print_text (fp, s1); sprintf (s1, _(" # %cdN = Single absolute day N"), RC_NWD_CHAR); print_text (fp, s1); print_text (fp, s1); strcpy (s1, _(" # NMOD = Single day N relative to today")); print_text (fp, s1); sprintf (s1, _(" MOD = %s Forwards"), ASC_LIT); print_text (fp, s1); sprintf (s1, _(" = %s Backwards"), DES_LIT); print_text (fp, s1); print_text (fp, s1); strcpy (s1, _(" # Nw = Complete week N")); print_text (fp, s1); strcpy (s1, _ (" N = 0 1st week / last week of previous year")); print_text (fp, s1); strcpy (s1, _ (" N = 1...52 1st...52nd week (always)")); print_text (fp, s1); strcpy (s1, _ (" N = 53 53rd week (sometimes)")); print_text (fp, s1); strcpy (s1, _(" N = 99 Last week")); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _(" # %s%s = Single day %s of month %s"), mm_lit, dd_lit, dd_lit, mm_lit); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _ (" # %s%sN = Single N'th weekday %s of month %s"), mm_lit, www_lit, www_lit, mm_lit); print_text (fp, s1); sprintf (s1, _ (" N = 1...4 1st...4th weekday %s (always)"), www_lit); print_text (fp, s1); sprintf (s1, _ (" N = 5 5th weekday %s (sometimes)"), www_lit); print_text (fp, s1); sprintf (s1, _(" N = 9 Last weekday %s"), www_lit); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _(" # %cdN%s = Single N'th weekday %s"), RC_NWD_CHAR, www_lit, www_lit); print_text (fp, s1); sprintf (s1, _ (" N = 1...51 1st...51st weekday %s (always)"), www_lit); print_text (fp, s1); sprintf (s1, _ (" N = 52|53 52|53rd weekday %s (sometimes)"), www_lit); print_text (fp, s1); sprintf (s1, _(" N = 99 Last weekday %s"), www_lit); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _(" # %cwN%s = Single weekday %s of N'th week"), RC_NWD_CHAR, www_lit, www_lit); print_text (fp, s1); sprintf (s1, _ (" N = 0 %s which isn't located in 1st week"), www_lit); print_text (fp, s1); sprintf (s1, _ (" N = 1...51 %s of 1st...51st week (always)"), www_lit); print_text (fp, s1); sprintf (s1, _ (" N = 52|53 %s of 52|53rd week (sometimes)"), www_lit); print_text (fp, s1); sprintf (s1, _(" N = 99 %s of last week"), www_lit); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _ (" # %c%c[[%s|%s]N] = Single day N relative to Easter Sunday"), RC_HDY_CHAR, RC_EASTER_CHAR, ASC_LIT, DES_LIT); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _ (" # %c%c[%s|%s]N%s = Single N'th weekday relative to Easter Sunday"), RC_HDY_CHAR, RC_EASTER_CHAR, ASC_LIT, DES_LIT, www_lit); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _ (" # %c%c[[%s|%s]N] = Single day N relative to today's date"), RC_HDY_CHAR, RC_TODAY_CHAR, ASC_LIT, DES_LIT); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _ (" # %c%c[%s|%s]N%s = Single N'th weekday relative to today's date"), RC_HDY_CHAR, RC_TODAY_CHAR, ASC_LIT, DES_LIT, www_lit); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _ (" # %c?[[%s|%s]N] = Single day N relative to date variable"), RC_HDY_CHAR, ASC_LIT, DES_LIT); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _ (" # %c?[%s|%s]N%s = Single N'th weekday relative to date variable"), RC_HDY_CHAR, ASC_LIT, DES_LIT, www_lit); print_text (fp, s1); print_text (fp, s1); case SYM_TOMORROW: sprintf (s1, " %s", get_longopt_description (SYM_TOMORROW, TRUE)); print_text (fp, s1); strcpy (s1, _(" # t|T = List tomorrow")); print_text (fp, s1); if (longopt_symbolic == SYM_TOMORROW) break; /* Fallthrough. */ print_text (fp, s1); case SYM_WEEK: case SYM_END_OF_WEEK: case SYM_START_OF_WEEK: sprintf (s1, " %s", get_longopt_description (SYM_WEEK, TRUE)); print_text (fp, s1); sprintf (s1, " %s", get_longopt_description (SYM_END_OF_WEEK, TRUE)); print_text (fp, s1); sprintf (s1, " %s", get_longopt_description (SYM_START_OF_WEEK, TRUE)); print_text (fp, s1); strcpy (s1, _(" # w|W[MOD] = List complete week")); print_text (fp, s1); sprintf (s1, _ (" [MOD] = %s List tomorrow until ending day of week"), ASC_LIT); print_text (fp, s1); sprintf (s1, _ (" = %s List yesterday until starting day of week"), DES_LIT); print_text (fp, s1); if (longopt_symbolic == SYM_WEEK || longopt_symbolic == SYM_END_OF_WEEK || longopt_symbolic == SYM_START_OF_WEEK) break; /* Fallthrough. */ print_text (fp, s1); case SYM_MONTH: case SYM_END_OF_MONTH: case SYM_START_OF_MONTH: sprintf (s1, " %s", get_longopt_description (SYM_MONTH, TRUE)); print_text (fp, s1); sprintf (s1, " %s", get_longopt_description (SYM_END_OF_MONTH, TRUE)); print_text (fp, s1); sprintf (s1, " %s", get_longopt_description (SYM_START_OF_MONTH, TRUE)); print_text (fp, s1); strcpy (s1, _(" # m|M[MOD] = List complete month")); print_text (fp, s1); sprintf (s1, _ (" [MOD] = %s List tomorrow until ending day of month"), ASC_LIT); print_text (fp, s1); sprintf (s1, _ (" = %s List yesterday until starting day of month"), DES_LIT); print_text (fp, s1); if (longopt_symbolic == SYM_MONTH || longopt_symbolic == SYM_END_OF_MONTH || longopt_symbolic == SYM_START_OF_MONTH) break; /* Fallthrough. */ print_text (fp, s1); case SYM_YEAR: case SYM_END_OF_YEAR: case SYM_START_OF_YEAR: sprintf (s1, " %s", get_longopt_description (SYM_YEAR, TRUE)); print_text (fp, s1); sprintf (s1, " %s", get_longopt_description (SYM_END_OF_YEAR, TRUE)); print_text (fp, s1); sprintf (s1, " %s", get_longopt_description (SYM_START_OF_YEAR, TRUE)); print_text (fp, s1); strcpy (s1, _(" # y|Y[MOD] = List complete year")); print_text (fp, s1); sprintf (s1, _ (" [MOD] = %s List tomorrow until ending day of year"), ASC_LIT); print_text (fp, s1); sprintf (s1, _ (" = %s List yesterday until starting day of year"), DES_LIT); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_RESOURCE_FILE: sprintf (s1, "%sf|F %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_RESOURCE_FILE, TRUE)); print_text (fp, s1); strcpy (s1, _ (" Use alternative file(s) instead of standard resource file")); print_text (fp, s1); strcpy (s1, _(" Implies period: Today")); print_text (fp, s1); strcpy (s1, _ (" f = Display only those dates, for which fixed dates exists")); print_text (fp, s1); strcpy (s1, _ (" F = Display those dates, for which fixed dates doesn't exist, too")); print_text (fp, s1); sprintf (s1, _ (" %-3s = Single file or list of files connected by `%s' characters"), larg_lit, CONNECT_SEP); print_text (fp, s1); if (longopt_symbolic != SYM_NIL) break; /* Fallthrough. */ print_text (fp, s1); case SYM_HERE_FILE: sprintf (s1, "%s# %-3s %s", SWITCH, larg_lit, get_longopt_description (SYM_HERE_FILE, TRUE)); print_text (fp, s1); strcpy (s1, _(" Define additional resource file line")); print_text (fp, s1); sprintf (s1, _(" %-3s = Any possible resource file line"), larg_lit); print_text (fp, s1); default: ; /* Void */ } if (longopt_symbolic == SYM_NIL) { print_text (fp, s1); print_text (fp, s1); sprintf (s1, _("%cDATE"), RC_ADATE_CHAR); print_text (fp, s1); strcpy (s1, _("Use given `DATE' instead of today's date")); print_text (fp, s1); sprintf (s1, _ ("Date format: %s[%s[%s|%s[N]]], %s%c%c|%c|DVAR[[%s|%s]N[%s]], %s%cdN[%s]"), yyyy_lit, mm_lit, dd_lit, www_lit, yyyy_lit, RC_HDY_CHAR, RC_EASTER_CHAR, RC_TODAY_CHAR, ASC_LIT, DES_LIT, www_lit, yyyy_lit, RC_NWD_CHAR, www_lit); print_text (fp, s1); sprintf (s1, _ (" %s%cwN[%s], month name[%s], weekday name[N] or %s"), yyyy_lit, RC_NWD_CHAR, www_lit, dd_lit, dd_lit); print_text (fp, s1); } #endif /* USE_RC */ if (longopt_symbolic == SYM_NIL) { print_text (fp, s1); print_text (fp, s1); sprintf (s1, _("%cFILE"), RSP_CHAR); print_text (fp, s1); strcpy (s1, _("Preload options and commands from `FILE'")); print_text (fp, s1); print_text (fp, s1); print_text (fp, s1); strcpy (s1, _("COMMAND")); print_text (fp, s1); sprintf (s1, _("%s = Month in range: %d...%d"), mm_lit, MONTH_MIN, MONTH_MAX); print_text (fp, s1); sprintf (s1, _ (" or: month name | %s | %s%s | %s%s | %s%s"), MONTH3_LIT, MONTH3_LIT, MONTH3_LIT, MONTH3_LIT, ASC_LIT, MONTH3_LIT, DES_LIT); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _(" List: %s[%s%s]%s...%s%s[%s%s]"), mm_lit, YEAR_SEP, yyyy_lit, MLIST_SEP, MLIST_SEP, mm_lit, YEAR_SEP, yyyy_lit); print_text (fp, s1); sprintf (s1, _ (" Range: %s[%s%s]%s%s[%s%s] | %s%s%s%s%s | %s %s%s%s"), mm_lit, YEAR_SEP, yyyy_lit, MRANGE_SEP, mm_lit, YEAR_SEP, yyyy_lit, mm_lit, YEAR_SEP, yyyy_lit, MRANGE_SEP, yyyy_lit, mm_lit, yyyy_lit, MRANGE_SEP, yyyy_lit); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _("%s%*s = Year in range: %d...%d"), yyyy_lit, 6 - len_year_max, "", YEAR_MIN, YEAR_MAX); print_text (fp, s1); print_text (fp, s1); sprintf (s1, _(" List: [%s%s]%s%s...%s[%s%s]%s"), mm_lit, FYEAR_SEP, yyyy_lit, YLIST_SEP, YLIST_SEP, mm_lit, FYEAR_SEP, yyyy_lit); print_text (fp, s1); sprintf (s1, _(" Range: [%s%s]%s%s[%s%s]%s | %s%s%s %s%s%s"), mm_lit, FYEAR_SEP, yyyy_lit, YRANGE_SEP, mm_lit, FYEAR_SEP, yyyy_lit, mm_lit, MRANGE_SEP, mm_lit, yyyy_lit, YRANGE_SEP, yyyy_lit); } if (longopt_symbolic == SYM_NIL) { print_text (fp, s1); print_text (fp, s1); my_bug_report_address (fp); } } void my_basic_help (fp) FILE *fp; /*! Prints the "basic help" text to file `fp' using the central output function `print_text()' and uses global text buffer `s1' internally. */ { my_help_head_text (fp); sprintf (s1, _(" %sh, %s Display this help text and quit program"), SWITCH, get_longopt_description (SYM_HELP, TRUE)); print_text (fp, s1); sprintf (s1, _(" %shh, %s Display extended help text and quit program"), SWITCH, get_longopt_description (SYM_LONG_HELP2, TRUE)); print_text (fp, s1); sprintf (s1, _(" %sL, %s Display software license and quit program"), SWITCH, get_longopt_description (SYM_LICENSE1, TRUE)); print_text (fp, s1); sprintf (s1, _(" %sV, %s Display version information and quit program"), SWITCH, get_longopt_description (SYM_VERSION, TRUE)); print_text (fp, s1); #if USE_PAGER # ifdef GCAL_EPAGER if (ext_pager != (char *) NULL) sprintf (s1, _ (" %sp, %s Direct output through external `%s' pager"), SWITCH, get_longopt_description (SYM_PAGER, TRUE), (*ext_pager == *DIR_SEP) ? strrchr (ext_pager, *DIR_SEP) + 1 : ext_pager); else sprintf (s1, _ (" %sp, %s Direct output through simple internal pager"), SWITCH, get_longopt_description (SYM_PAGER, TRUE)); # else /* !GCAL_EPAGER */ sprintf (s1, _ (" %sp, %s Direct output through simple internal pager"), SWITCH, get_longopt_description (SYM_PAGER, TRUE)); # endif /* !GCAL_EPAGER */ #endif /* USE_PAGER */ print_text (fp, s1); strcpy (s1, lopt_msg ()); print_text (fp, s1); my_bug_report_address (fp); } void my_license (fp) FILE *fp; /*! Prints the program-id and the license text to file `fp' using the central output function `print_text()', and uses the global text buffer `s1' internally. */ { my_copyright (fp, FALSE); strcpy (s1, _ ("This software doesn't claim completeness, correctness or usability.")); print_text (fp, s1); strcpy (s1, _ ("On principle I will not be liable for ANY damages or losses (implicit")); print_text (fp, s1); strcpy (s1, _ ("or explicit), which result from using or handling my software.")); print_text (fp, s1); strcpy (s1, _ ("If you use this software, you agree without any exception to this")); print_text (fp, s1); strcpy (s1, _("agreement, which binds you LEGALLY !!")); print_text (fp, s1); print_text (fp, s1); strcpy (s1, _ ("This program is free software; you can redistribute it and/or modify")); print_text (fp, s1); strcpy (s1, _ ("it under the terms of the `GNU General Public License' as published by")); print_text (fp, s1); strcpy (s1, _ ("the `Free Software Foundation'; either version 3, or (at your option)")); print_text (fp, s1); strcpy (s1, _("any later version.")); print_text (fp, s1); print_text (fp, s1); strcpy (s1, _ ("You should have received a copy of the `GNU General Public License'")); print_text (fp, s1); strcpy (s1, _("along with this program; if not, write to the:")); print_text (fp, s1); print_text (fp, s1); strcpy (s1, " Free Software Foundation, Inc."); print_text (fp, s1); } void my_version (fp) FILE *fp; /*! Prints the program-id and all compilation flags to file `fp' using the central output function `print_text()', and uses the global text buffers `s1' and `s2' internally. */ { auto const Cc_struct *ptr_cc_holidays = cc_holidays; register int i = 0; #if USE_RC auto char *ptr_env; # if !defined(AMIGA) || defined(__GNUC__) auto char *ptr_home; # endif #endif my_copyright (fp, TRUE); } char * usage_msg () /*! Creates the usage text `usg_text' and includes the actual program name. */ { static char *usg_text; static Bool is_initialized = FALSE; if (!is_initialized) { usg_text = (char *) my_malloc (LEN_SINGLE_LINE, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "usg_text", 0); sprintf (usg_text, _ ("Usage: %s [%s|%s{[?|h|??|hh|L|V]|{%sHKNOR%sXb%sijn%sq%ssu%s}}] [[%s] [%s]]"), prgr_name, SWITCH, SWITCH2, USAGE_RC1, USAGE_SHELL, USAGE_RC2, USAGE_PAGER, USAGE_RC3, USAGE_RC4, mm_lit, yyyy_lit); is_initialized = TRUE; } return (usg_text); } char * lopt_msg () /*! Returns the `lopt_text' description text of the long-style options including the actual program name, and uses the global text buffer `s3' internally. */ { static char *lopt_text; static Bool is_initialized = FALSE; if (!is_initialized) { lopt_text = (char *) my_malloc (LEN_SINGLE_LINE, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "lopt_text", 0); sprintf (lopt_text, _("Use `%s %s|[%s?]"), prgr_name, get_longopt_description (SYM_LONG_HELP2, TRUE), LARG_SEP); #if USE_PAGER sprintf (s3, " %s' ", get_longopt_description (SYM_PAGER, TRUE)); strcat (lopt_text, s3); #else /* !USE_PAGER */ strcat (lopt_text, "' "); #endif /* !USE_PAGER */ strcat (lopt_text, _("for more information.")); is_initialized = TRUE; } return (lopt_text); } static int gmt_timezone_value (hour) int hour; /*! Returns the given HOUR offset value as an offset value N within the range -12...-1...[0]...+1...+12, which is based on the Greenwich Mean Time timezone `GMT[[+|-]N]'. */ { register int sign = -SGN (hour); hour = abs (hour); while (hour > HOURS_PER_DAY) hour -= HOURS_PER_DAY; if (hour > HOURS_PER_HALF_DAY) hour -= (HOURS_PER_DAY + 1); return (hour * sign); } static const char * get_longopt_description (longopt_symbolic, with_larglist) const int longopt_symbolic; const Bool with_larglist; /*! Returns a description text of given `longopt_symbolic' long-style option in global text buffer `s2'. If `with_larglist' is TRUE, the returned description text contains the argument list text (if any) too, otherwise the returned description text contains the complete name of the long option only! */ { auto const Lopt_struct *ptr_lopt = lopt; register int i; while (ptr_lopt->long_name != NULL) { if (ptr_lopt->symbolic_name == longopt_symbolic) break; ptr_lopt++; } if (ptr_lopt->long_name != NULL) { i = 0; sprintf (s2, "%s%s%s", SWITCH, SWITCH, ptr_lopt->long_name); if (with_larglist && (ptr_lopt->larg_mode != LARG_NO)) { if (ptr_lopt->larg_mode == LARG_NO_OR_ONE) { strcat (s2, "["); strcat (s2, LARG_SEP); } else strcat (s2, LARG_SEP); if ((ptr_lopt->larg_mode == LARG_ONE) && (ptr_lopt->largs[0] == NULL)) strcat (s2, larg_lit); else { if (ptr_lopt->largs[0] == NULL) strcat (s2, larg_lit); else while (ptr_lopt->largs[i] != NULL) { strcat (s2, ptr_lopt->largs[i]); if (ptr_lopt->largs[i + 1] != NULL) strcat (s2, "|"); i++; } } if (ptr_lopt->larg_mode == LARG_NO_OR_ONE) strcat (s2, "]"); } } else *s2 = '\0'; return (s2); } static void my_bug_report_address (fp) FILE *fp; /*! Prints the bug report address to file `fp' using the central output function `print_text()', and uses the global text buffer `s1' internally. */ { print_text (fp, s1); sprintf (s1, _("Email bug reports to <%s>"), BUG_REPORT_ADR1); print_text (fp, s1); sprintf (s1, _("GNU gcal home page: <%s>"), HOMEPAGE); print_text (fp, s1); sprintf (s1, _("General help using GNU software: <%s>"), HOMEPAGE_GNU_SOFTWARE); print_text (fp, s1); } static void my_copyright (fp, with_short_license) FILE *fp; const Bool with_short_license; /*! Prints the program-id and copyright text to file `fp' using the central output function `print_text()', and uses the global text buffer `s1' internally. */ { sprintf (s1, "%s (GNU cal) %s", prgr_name, PACKAGE_VERSION); print_text (fp, s1); if (!with_short_license) print_text (fp, s1); strcpy (s1, COPYRIGHT_TXT); print_text (fp, s1); if (with_short_license) { strcpy (s1, _ ("This is free software; see the source for copying conditions.")); print_text (fp, s1); strcpy (s1, _ ("There is NO warranty, without even the implied warranty of")); print_text (fp, s1); strcpy (s1, _("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.")); print_text (fp, s1); } } static void my_help_head_text (fp) FILE *fp; /*! Prints the help heading text to file `fp' using the central output function `print_text()', and uses the global text buffer `s1' internally. */ { sprintf (s1, _("%s: The Gregorian calendar program (GNU cal) %s"), prgr_name, PACKAGE_VERSION); print_text (fp, s1); print_text (fp, s1); strcat (s1, COPYRIGHT_TXT); print_text (fp, s1); print_text (fp, s1); #if USE_RC sprintf (s1, _("Usage: %s [[OPTION...] [%cDATE] [%cFILE...]] [COMMAND]"), prgr_name, RC_ADATE_CHAR, RSP_CHAR); #else /* !USE_RC */ sprintf (s1, _("Usage: %s [[OPTION...] [%cFILE...]] [COMMAND]"), prgr_name, RSP_CHAR); #endif /* !USE_RC */ print_text (fp, s1); print_text (fp, s1); strcpy (s1, usage_msg ()); print_text (fp, s1); print_text (fp, s1); } /* Writes an informational text to "fp" using the central output function showing the date, compiler and operating system used. Uses the global text buffer `s1' internally. The code is taken from `zip21' source package and adjusted to Gcal's needs. Special thanks to the Info-ZIP group (`http://quest.jpl.nasa.gov/Info-ZIP/'), which merely granted the permission to use their `version_local()' function of `zip-2.1' in a modified way for Gcal (the `print_compiler_info()' function is based on copyrighted code by the Info-ZIP group). */ #if defined(MSDOS) static void print_compiler_info (fp) FILE *fp; { # if defined(__DJGPP__) || defined(__WATCOMC__) || (defined(_MSC_VER) && (_MSC_VER != 800)) char buf[80]; # endif sprintf (s1, _(*compiler_info), # ifdef __GNUC__ # ifdef __DJGPP__ (sprintf (buf, "djgpp v%d / gcc ", __DJGPP__), buf), # else # ifdef __GO32__ /* __GO32__ is defined as "1" only (sigh) */ "djgpp v1.x / gcc ", # else # ifdef __EMX__ /* ...so is __EMX__ (double sigh) */ "emx+gcc ", # else "gcc ", # endif # endif # endif __VERSION__, # else # ifdef __WATCOMC__ # if (__WATCOMC__ % 10 > 0) /* We do this silly test because __WATCOMC__ gives two digits for the */ /* minor version, but Watcom packaging prefers to show only one digit. */ (sprintf (buf, "Watcom C/C++ %d.%02d", __WATCOMC__ / 100, __WATCOMC__ % 100), buf), "", # else (sprintf (buf, "Watcom C/C++ %d.%d", __WATCOMC__ / 100, (__WATCOMC__ % 100) / 10), buf), "", # endif # else # ifdef __TURBOC__ # ifdef __BORLANDC__ "Borland C++", # if (__BORLANDC__ < 0x0200) " 1.0", # else # if (__BORLANDC__ == 0x0200) /* James: __TURBOC__ = 0x0297 */ " 2.0", # else # if (__BORLANDC__ == 0x0400) " 3.0", # else # if (__BORLANDC__ == 0x0410) /* __BCPLUSPLUS__ = 0x0310 */ " 3.1", # else # if (__BORLANDC__ == 0x0452) /* __BCPLUSPLUS__ = 0x0320 */ _(" 4.0 or 4.02"), # else # if (__BORLANDC__ == 0x0460) /* __BCPLUSPLUS__ = 0x0340 */ " 4.5", # else # if (__BORLANDC__ == 0x0500) /* __TURBOC__ = 0x0500 */ " 5.0", # else _(" later than 5.0"), # endif # endif # endif # endif # endif # endif # endif # else "Turbo C", # if (__TURBOC__ >= 0x0400) /* Kevin: 3.0 -> 0x0401 */ _("++ 3.0 or later"), # else # if (__TURBOC__ == 0x0295) /* [661] vfy'd by Kevin */ "++ 1.0", # else # if ((__TURBOC__ >= 0x018d) && (__TURBOC__ <= 0x0200)) /* James: 0x0200 */ " 2.0", # else # if (__TURBOC__ > 0x0100) " 1.5", /* James: 0x0105? */ # else " 1.0", /* James: 0x0100 */ # endif # endif # endif # endif # endif # else # ifdef MSC "Microsoft C ", # ifdef _MSC_VER # if (_MSC_VER == 800) "8.0/8.0c (Visual C++ 1.0/1.5)", # else (sprintf (buf, "%d.%02d", _MSC_VER / 100, _MSC_VER % 100), buf), # endif # else _("5.1 or earlier"), # endif # else _("unknown compiler"), "", # endif /* MSC */ # endif /* __TURBOC__ */ # endif /* __WATCOMC__ */ # endif /* __GNUC__ */ "MS-DOS", # if (defined(__GNUC__) || (defined(__WATCOMC__) && defined(__386__))) " (32-bit)", # else # if defined(M_I86HM) || defined(__HUGE__) " (16-bit, huge)", # else # if defined(M_I86LM) || defined(__LARGE__) " (16-bit, large)", # else # if defined(M_I86MM) || defined(__MEDIUM__) " (16-bit, medium)", # else # if defined(M_I86CM) || defined(__COMPACT__) " (16-bit, compact)", # else # if defined(M_I86SM) || defined(__SMALL__) " (16-bit, small)", # else # if defined(M_I86TM) || defined(__TINY__) " (16-bit, tiny)", # else " (16-bit)", # endif # endif # endif # endif # endif # endif # endif _(" on "), __DATE__ ); print_text (fp, s1); } #else /* !MSDOS */ # if defined(WIN32) static void print_compiler_info (fp) FILE *fp; { # if (defined(_MSC_VER) || defined(__WATCOMC__)) char buf[80]; # endif sprintf (s1, _(*compiler_info), # ifdef _MSC_VER /* MSC == MSVC++, including the SDK compiler */ (sprintf (buf, "Microsoft C %d.%02d ", _MSC_VER / 100, _MSC_VER % 100), buf), # if (_MSC_VER == 800) "(Visual C++ v1.1)", # else # if (_MSC_VER == 850) "(Windows NT v3.5 SDK)", # else # if (_MSC_VER == 900) "(Visual C++ v2.0/v2.1)", # else # if (_MSC_VER == 1000) "(Visual C++ v4.0)", # else # if (_MSC_VER == 1010) "(Visual C++ v4.1)", # else # if (_MSC_VER > 800) "(Visual C++)", # else _("(bad version)"), # endif # endif # endif # endif # endif # endif # endif /* _MSC_VER */ # ifdef __WATCOMC__ # if (__WATCOMC__ % 10 > 0) /* We do this silly test because __WATCOMC__ gives two digits for the */ /* minor version, but Watcom packaging prefers to show only one digit. */ (sprintf (buf, "Watcom C/C++ %d.%02d", __WATCOMC__ / 100, __WATCOMC__ % 100), buf), "", # else (sprintf (buf, "Watcom C/C++ %d.%d", __WATCOMC__ / 100, (__WATCOMC__ % 100) / 10), buf), "", # endif /* __WATCOMC__ % 10 > 0 */ # endif /* __WATCOMC__ */ # ifdef __TURBOC__ # ifdef __BORLANDC__ "Borland C++", # if (__BORLANDC__ == 0x0452) /* __BCPLUSPLUS__ = 0x0320 */ _(" 4.0 or 4.02"), # else # if (__BORLANDC__ == 0x0460) /* __BCPLUSPLUS__ = 0x0340 */ " 4.5", # else # if (__BORLANDC__ == 0x0500) /* __TURBOC__ = 0x0500 */ " 5.0", # else _(" later than 5.0"), # endif # endif # endif # else /* !__BORLANDC__ */ "Turbo C", # if (__TURBOC__ >= 0x0400) /* Kevin: 3.0 -> 0x0401 */ _("++ 3.0 or later"), # else # if (__TURBOC__ == 0x0295) /* [661] vfy'd by Kevin */ "++ 1.0", # endif # endif # endif /* __BORLANDC__ */ # endif /* __TURBOC__ */ # if !defined(__TURBOC__) && !defined(__WATCOMC__) && !defined(_MSC_VER) _("unknown compiler (SDK?)"), "", # endif "\n\tWindows 95 / Windows NT", " (32-bit)", _(" on "), __DATE__ ); print_text (fp, s1); } # else /* !WIN32 */ # if defined(OS2) static void print_compiler_info (fp) FILE *fp; { # if defined(__IBMC__) || defined(__WATCOMC__) || defined(_MSC_VER) char buf[80]; # endif sprintf (s1, _(*compiler_info), # ifdef __GNUC__ # ifdef __EMX__ /* __EMX__ is defined as "1" only (sigh) */ "emx+gcc ", __VERSION__, # else "gcc/2 ", __VERSION__, # endif # else # ifdef __IBMC__ "IBM ", # if (__IBMC__ < 200) (sprintf (buf, "C Set/2 %d.%02d", __IBMC__ / 100, __IBMC__ % 100), buf), # else # if (__IBMC__ < 300) (sprintf (buf, "C Set++ %d.%02d", __IBMC__ / 100, __IBMC__ % 100), buf), # else (sprintf (buf, "Visual Age C++ %d.%02d", __IBMC__ / 100, __IBMC__ % 100), buf), # endif # endif # else # ifdef __WATCOMC__ "Watcom C", (sprintf (buf, " (__WATCOMC__ = %d)", __WATCOMC__), buf), # else # ifdef __TURBOC__ # ifdef __BORLANDC__ "Borland C++", # if (__BORLANDC__ < 0x0200) " 1.0", # else # if (__BORLANDC__ == 0x0200) " 2.0", # else # if (__BORLANDC__ == 0x0400) " 3.0", # else # if (__BORLANDC__ == 0x0410) " 3.1", # else # if (__BORLANDC__ == 0x0452) " 4.0", # else /* these two are guesses based on DOS version */ # if (__BORLANDC__ == 0x0460) " 4.5", # else _(" later than 4.5"), # endif # endif # endif # endif # endif # endif # else "Turbo C", # if (__TURBOC__ >= 661) _("++ 1.0 or later"), # else # if (__TURBOC__ == 661) " 3.0?", # else # if (__TURBOC__ == 397) " 2.0", # else _(" 1.0 or 1.5?"), # endif # endif # endif # endif # else # ifdef MSC "Microsoft C ", # ifdef _MSC_VER (sprintf (buf, "%d.%02d", _MSC_VER / 100, _MSC_VER % 100), buf), # else _("5.1 or earlier"), # endif # else _("unknown compiler"), "", # endif /* MSC */ # endif /* __TURBOC__ */ # endif /* __WATCOMC__ */ # endif /* __IBMC__ */ # endif /* __GNUC__ */ "OS/2", /* GRR: does IBM C/2 identify itself as IBM rather than Microsoft? */ # if (defined(MSC) || (defined(__WATCOMC__) && !defined(__386__))) # if defined(M_I86HM) || defined(__HUGE__) " (16-bit, huge)", # else # if defined(M_I86LM) || defined(__LARGE__) " (16-bit, large)", # else # if defined(M_I86MM) || defined(__MEDIUM__) " (16-bit, medium)", # else # if defined(M_I86CM) || defined(__COMPACT__) " (16-bit, compact)", # else # if defined(M_I86SM) || defined(__SMALL__) " (16-bit, small)", # else # if defined(M_I86TM) || defined(__TINY__) " (16-bit, tiny)", # else " (16-bit)", # endif # endif # endif # endif # endif # endif # else " 2.x (32-bit)", # endif _(" on "), __DATE__ ); print_text (fp, s1); } # else /* !OS2 */ # if defined(ACORN) static void print_compiler_info (fp) FILE *fp; { sprintf (s1, _(*compiler_info), # ifdef __GNUC__ "gcc ", __VERSION__, # else # ifdef __CC_NORCROFT "Norcroft ", "cc", # else "cc", "", # endif # endif "RISC OS", " (Acorn Computers Ltd)", _(" on "), __DATE__ ); print_text (fp, s1); } # else /* !ACORN */ # if defined(AMIGA) /* NOTE: the following include depends upon the environment * variable $Workbench to be set correctly. (Set by * default, by kickstart during startup) */ int WBversion = (int) /* #include "ENV:Workbench" */ 10; static void print_compiler_info (fp) FILE *fp; { /* Define buffers. */ char buf1[40]; /* compiler name */ char buf2[40]; /* revstamp */ char buf3[40]; /* OS version */ /* format "with" name strings */ # ifdef __SASC strcpy (buf1, "SAS/C "); # else # ifdef LATTICE strcpy (buf1, "Lattice C "); # else # ifdef AZTEC_C strcpy (buf1, "Manx Aztec C "); # else # ifdef __GNUC__ strcpy (buf1, "gcc "); # else strcpy (buf1, _("unknown ")); # endif # endif # endif # endif /* Define revision, date, and time strings. * NOTE: Do not calculate run time, be sure to use time compiled. * Pass these strings via your makefile if undefined. */ # if defined(__VERSION__) && defined(__REVISION__) sprintf (buf2, _("version %d.%d"), __VERSION__, __REVISION__); # else # ifdef __VERSION__ sprintf (buf2, _("version %d"), __VERSION__); # else sprintf (buf2, _("unknown version")); # endif # endif /* "under" */ /* strcpy(buf3, "AmigaDOS "); */ sprintf (buf3, "v%d", WBversion); sprintf (s1, _(*compiler_info), buf1, buf2, "AmigaDOS", buf3, _(" on "), __DATE__); print_text (fp, s1); } # else /* !AMIGA */ # if defined(ATARI) static void print_compiler_info (fp) FILE *fp; { # ifdef __TURBOC__ char buf[40]; # endif sprintf (s1, _(*compiler_info), # ifdef __GNUC__ "gcc ", __VERSION__, # else # ifdef __any_other_unix_like_compiler__ /* !!! FIXME */ "cc ", (sprintf (buf, _("version %d"), _RELEASE), buf), # else # ifdef __TURBOC__ "Turbo C", (sprintf (buf, " (0x%04x = %d)", __TURBOC__, __TURBOC__), buf), # else _("unknown compiler"), "", # endif # endif # endif # ifdef __MINT__ "Atari TOS/MiNT", # else "Atari TOS", # endif " (Atari ST/TT/Falcon030)", _(" on "), __DATE__ ); print_text (fp, s1); } # else /* !ATARI */ # if defined(__50SERIES) /* Prime/PRIMOS */ static void print_compiler_info (fp) FILE *fp; { sprintf (s1, _(*compiler_info), # ifdef __GNUC__ "gcc ", __VERSION__, # else "cc", "", # endif "PRIMOS", " (Prime Computer Inc)", _(" on "), __DATE__ ); print_text (fp, s1); } # else /* !__50SERIES */ # if defined(VAXC) || defined(VMS) /* DEC Vax */ static void print_compiler_info (fp) FILE *fp; { # ifdef VMS_VERSION char buf[40]; # endif # ifdef __DECC_VER char buf2[40]; int vtyp; # endif /* DEC C in ANSI mode does not like "#ifdef MACRO" inside another macro when MACRO is equated to a value (by "#define MACRO 1"). */ sprintf (s1, _(*compiler_info), # ifdef __GNUC__ "gcc ", __VERSION__, # else # if defined(DECC) || defined(__DECC) || defined (__DECC__) "DEC C", # ifdef __DECC_VER (sprintf (buf2, " %c%d.%d-%03d", ((vtyp = (__DECC_VER / 10000) % 10) == 6 ? 'T' : (vtyp == 8 ? 'S' : 'V')), __DECC_VER / 10000000, (__DECC_VER % 10000000) / 100000, __DECC_VER % 1000), buf2), # else "", # endif # else # ifdef VAXC "VAX C", "", # else _("unknown compiler"), "", # endif # endif # endif # ifdef VMS_VERSION # if defined(__alpha) "OpenVMS", /* version has trailing spaces ("V6.1 "), so truncate: */ (sprintf (buf, _(" (%.4s for Alpha)"), VMS_VERSION), buf), # else /* VAX */ (VMS_VERSION[1] >= '6') ? "OpenVMS" : "VMS", (sprintf (buf, _(" (%.4s for VAX)"), VMS_VERSION), buf), # endif # else "VMS", "", # endif /* ?VMS_VERSION */ _(" on "), __DATE__ ); print_text (fp, s1); } # else /* default: UNIX */ # if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__386BSD__) || defined(__bsdi__) # include /* for the BSD4_4 define */ # endif static void print_compiler_info (fp) FILE *fp; { # if defined(CRAY) || defined(NX_CURRENT_COMPILER_RELEASE) || defined(NetBSD) char buf1[40]; # if defined(CRAY) || defined(NX_CURRENT_COMPILER_RELEASE) char buf2[40]; # endif # endif /* Pyramid, NeXT have problems with huge macro expansion, too: no Info() */ sprintf (s1, _(*compiler_info), # ifdef __GNUC__ # ifdef NX_CURRENT_COMPILER_RELEASE (sprintf (buf1, "NeXT DevKit %d.%02d ", NX_CURRENT_COMPILER_RELEASE / 100, NX_CURRENT_COMPILER_RELEASE % 100), buf1), (strlen (__VERSION__) > 8) ? "(gcc)" : (sprintf (buf2, "(gcc %s)", __VERSION__), buf2), # else "gcc ", __VERSION__, # endif # else # if defined(CRAY) && defined(_RELEASE) "cc ", (sprintf (buf1, _("version %d"), _RELEASE), buf1), # else # ifdef __VERSION__ "cc ", __VERSION__, # else "cc", "", # endif # endif # endif "Unix", # if defined(sgi) || defined(__sgi) " (Silicon Graphics IRIX)", # else # ifdef sun # ifdef sparc # ifdef __SVR4 " (Sun Sparc/Solaris)", # else /* may or may not be SunOS */ " (Sun Sparc)", # endif # else # if defined(sun386) || defined(i386) " (Sun 386i)", # else # if defined(mc68020) || defined(__mc68020__) " (Sun 3)", # else /* mc68010 or mc68000: Sun 2 or earlier */ " (Sun 2)", # endif # endif # endif # else # ifdef __hpux " (HP/UX)", # else # ifdef __osf__ " (DEC OSF/1)", # else # ifdef _AIX " (IBM AIX)", # else # ifdef aiws " (IBM RT/AIX)", # else # if defined(CRAY) || defined(cray) # ifdef _UNICOS (sprintf (buf2, " (Cray UNICOS release %d)", _UNICOS), buf2), # else " (Cray UNICOS)", # endif # else # if defined(uts) || defined(UTS) " (Amdahl UTS)", # else # ifdef NeXT # ifdef mc68000 " (NeXTStep/black)", # else " (NeXTStep for Intel)", # endif # else /* the next dozen or so are somewhat order-dependent */ # if defined(linux) || defined(__linux__) # ifdef __ELF__ " (Linux ELF)", # else " (Linux a.out)", # endif # else # ifdef MINIX " (Minix)", # else # ifdef M_UNIX " (SCO Unix)", # else # ifdef M_XENIX " (SCO Xenix)", # else # ifdef __NetBSD__ # ifdef NetBSD0_8 # if NetBSD0_8 == 1 " (NetBSD 0.8)", # else (sprintf (buf1, " (NetBSD 0.8%c)", (char) (NetBSD0_8 + '@')), buf1), # endif # else # ifdef NetBSD0_9 # if NetBSD0_9 == 1 " (NetBSD 0.9)", # else (sprintf (buf1, " (NetBSD 0.9%c)", (char) (NetBSD0_9 + 'A' - 2)), buf1), # endif # else # ifdef NetBSD1_0 # if NetBSD1_0 == 1 " (NetBSD 1.0)", # else (sprintf (buf1, " (NetBSD 1.0%c)", (char) (NetBSD1_0 + 'A' - 2)), buf1), # endif # else # ifdef NetBSD1_1 # if NetBSD1_1 == 1 " (NetBSD 1.1)", # else (sprintf (buf1, " (NetBSD 1.1%c)", (char) (NetBSD1_1 + 'A' - 2)), buf1), # endif # else (BSD4_4 == 0.5) ? _(" (NetBSD before 0.9)") : _(" (NetBSD 1.2 or later)"), # endif # endif # endif # endif # else # ifdef __FreeBSD__ (BSD4_4 == 0.5) ? " (FreeBSD 1.x)" : _(" (FreeBSD 2.0 or later)"), # else # ifdef __bsdi__ (BSD4_4 == 0.5) ? " (BSD/386 1.0)" : _(" (BSD/386 1.1 or later)"), # else # ifdef __386BSD__ (BSD4_4 == 1) ? " (386BSD, post-4.4 release)" : " (386BSD)", # else # if defined(i486) || defined(__i486) || defined(__i486__) " (Intel 486)", # else # if defined(i386) || defined(__i386) || defined(__i386__) " (Intel 386)", # else # ifdef pyr " (Pyramid)", # else # if defined(ultrix) || defined(__ultrix) # if defined(mips) || defined(__mips) " (DEC/MIPS)", # else # if defined(vax) || defined(__vax) " (DEC/VAX)", # else /* __alpha? */ " (DEC/Alpha)", # endif # endif # else # ifdef gould " (Gould)", # else # ifdef MTS " (MTS)", # else # ifdef __convexc__ " (Convex)", # else "", # endif /* Convex */ # endif /* MTS */ # endif /* Gould */ # endif /* DEC */ # endif /* Pyramid */ # endif /* 386 */ # endif /* 486 */ # endif /* 386BSD */ # endif /* BSDI BSD/386 */ # endif /* NetBSD */ # endif /* FreeBSD */ # endif /* SCO Xenix */ # endif /* SCO Unix */ # endif /* Minix */ # endif /* Linux */ # endif /* NeXT */ # endif /* Amdahl */ # endif /* Cray */ # endif /* RT/AIX */ # endif /* AIX */ # endif /* OSF/1 */ # endif /* HP/UX */ # endif /* Sun */ # endif /* SGI */ _(" on "), __DATE__ ); print_text (fp, s1); } # endif /* default: UNIX */ # endif /* !__50SERIES */ # endif /* !ATARI */ # endif /* !AMIGA */ # endif /* !ACORN */ # endif /* !OS2 */ # endif /* !WIN32 */ #endif /* !MSDOS */ gcal-4.1/src/hd-data1.h0000664000000000000000000001032712244130561011501 00000000000000#ifndef __HD_DATA1_H # define __HD_DATA1_H /*! * \file hd-data1.h * \brief All top 20 countries data which is composed into the * eternal holiday list header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: hd-data1.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `hd_data1.c'. */ extern void au_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void be_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void br_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ca_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ch_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void cn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void es_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void fr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gb_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void il_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void it_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void jp_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void kr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void mx_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void nl_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void nz_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void pt_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ru_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void us_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); __END_DECLARATIONS #endif /* __HD_DATA1_H */ gcal-4.1/src/file-io.h0000664000000000000000000000372312244130561011444 00000000000000#ifndef __FILE_IO_H # define __FILE_IO_H /*! * \file file-io.h * \brief Managing and accessing resource, include and response files header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: file-io.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `file-io.c'. */ extern FILE *file_open __P_ ((char **filename, const int level, const Fmode_enum mode, Bool * bad_sys_include)); extern char *file_read_line __P_ ((FILE * fp, char **line_buffer, int *in_pool, char *pool, char *ptr_pool, const char *filename, long *line_number, int *line_length, const Fmode_enum mode, Bool * is_include, Bool * is_dvar, Bool * is_tvar)); extern char **insert_response_file __P_ ((FILE * fp, char *filename, const char *opt_list, Uint * my_argc_max, int *my_argc, char *my_argv[])); extern void write_log_file __P_ ((const char *filename, const Fmode_enum mode, const char *mode_txt, const char *created_txt, const int argc, char *argv[])); __END_DECLARATIONS #endif /* __FILE_IO_H */ gcal-4.1/src/hd-data3.h0000664000000000000000000003500212244130561011500 00000000000000#ifndef __HD_DATA3_H # define __HD_DATA3_H /*! * \file hd-data3.h * \brief All other D-L countries data which is composed into the * eternal holiday list header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: hd-data3.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `hd-data3.c'. */ extern void de_by_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_bb_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_be_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_hb_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_bw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_hh_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_he_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_mv_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_ni_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_nw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_rp_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_st_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_sh_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_sl_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_sn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void de_th_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void dj_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void dk_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void dm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void do_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void dz_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ec_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ee_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void eg_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void eh_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void er_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void et_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void fi_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void fj_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void fk_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void fm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void fo_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ga_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gb_en_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gb_ni_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gb_sl_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gd_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ge_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gf_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gh_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gi_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gl_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gp_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gq_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gs_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gt_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void gy_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void hk_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void hm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void hn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void hr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ht_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void hu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void id_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ie_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void in_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void iq_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ir_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void is_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void jm_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void jo_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ke_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void kg_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void kh_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ki_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void km_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void kn_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void kp_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void kw_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ky_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void kz_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void la_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void lb_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void lc_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void li_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void lk_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void lr_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ls_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void lt_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void lu_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void lv_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); extern void ly_hdy __P_ ((Bool * init_data, const Bool detected, int easter, const int year, int *hd_elems, const int fday, const int count)); __END_DECLARATIONS #endif /* __HD_DATA3_H */ gcal-4.1/src/rc-check.c0000664000000000000000000015615412353366302011606 00000000000000/*! * \file rc-check.c * \brief Checks if a line (of a resource file) * must be inserted into `rc_elems_table[]'. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include definition header file to see whether USE_RC is defined there. * Compile this module only if USE_RC is defined, otherwise skip it. */ #include "tailor.h" #if USE_RC /* * Include header files. */ # if HAVE_CTYPE_H # include # endif # include "common.h" # include "rc-defs.h" # include "globals.h" # include "rc-insert.h" # include "rc-utils.h" # include "utils.h" # include "rc-check.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `rc-check.c'. */ static Bool date_matches_period __P_ ((int *print_twice, int day, int ed, const int wd)); static int get_number __P_ ((char **string)); __END_DECLARATIONS /* * static variables definitions. */ /*! Textual weekday name is found and must be respected. */ static Bool is_weekday_mode = FALSE; /*! No explicit month command is given in the command line. */ static Bool changed_month = FALSE; /* * Function implementations. */ void rc_check (line_buffer, filename, line_number, line_length, rc_elems, day, ed, wd) char *line_buffer; const char *filename; const long line_number; const int line_length; int *rc_elems; const int day; const int ed; const int wd; /*! Checks whether a single line of a resource file resp., eternal holiday must be displayed. */ { register int i; register int j; register int buf_d = 0; register int buf_m; register int buf_y; register int dvar_base_day = 0; register int dvar_base_month = 0; register int repeat = 0; register int appears = 0; register int productions = 2; register int tmp_month = month; auto int print_twice; auto int len_date; auto int n; auto int tmp_d; auto int tmp_m; auto int tmp_y; auto int tmp_n; auto int tmp_hn; auto int tmp_hwd = 0; auto Bool is_valid_date; auto Bool is_day_given; auto Bool is_month_given; auto Bool is_coded_month; auto Bool is_first = TRUE; auto Bool is_range = FALSE; auto Bool date_unset = FALSE; auto Bool must_ignore_feb_29 = FALSE; /* Decode a delivered line: This means all necessary information is stored in the according variables, which are set by decoding the "date"-part of the line. */ lineptrs = rc_get_date (line_buffer, lineptrs, TRUE, &is_weekday_mode, &d, &m, &y, &n, &len_date, &hc, &hn, &hwd, filename, line_number, line_buffer, TRUE); if (len_date < 1) /* Error, invalid date field given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); if ((len_date < line_length) && !*lineptrs->text_part) /* Error, missing whitespace character between "date"-part and "text"-part. */ my_error (ERR_NO_SEPARATOR_CHAR, filename, line_number, line_buffer, 0); if (!month) { month = act_month; changed_month = TRUE; } else changed_month = FALSE; buf_m = m; buf_y = y; /* We work with a buffer of the returned (allocated and filled) char pointers of the `lineptrs' struct. */ lptrs->day_part = lineptrs->day_part; lptrs->repeat_part = lineptrs->repeat_part; lptrs->appears_part = lineptrs->appears_part; do { /* Look if a list/range of days/weekday names is given, if so then let's create 1xN productions of such a line. */ if (!is_range && (lptrs->day_part != (char *) NULL)) { auto char *ptr2_char; auto char ch; repeat = appears = hwd = tmp_hn = hn = tmp_n = n = i = 0; is_range = is_coded_month = is_month_given = is_day_given = is_weekday_mode = FALSE; /* Store the base date if a date variable is given. */ if (is_first && islower (hc)) { if (y == SPECIAL_VALUE) /* Error, date variable is undefined. */ break; dvar_base_day = d; dvar_base_month = m; } if (lineptrs->day_list) /* Manage a list of days/weekday names. */ { /* If a list of days/weekday names is given, we have to set the number of productions to any value greater 1, because we terminate the production creating loop by a `break' statement after all elements of the list are evaluated. */ productions = 2; /* Copy an element of the list into `s6'. */ while (*lptrs->day_part && !isspace (*lptrs->day_part) && (*lptrs->day_part != RC_DLIST_CHAR && (*lptrs->day_part != RC_REPEAT_CHAR) && (*lptrs->day_part != RC_APPEARS_CHAR))) s6[i++] = *(lptrs->day_part++); s6[i] = '\0'; if (!i && (!is_first || !islower (hc))) /* Error, an empty list element given (e.g.: DD,,DD or WW[W],,WW[W]N). The only place where an empty list element may occur is the trailing character after a @e|t|DVAR text, e.g.: @e,+10,-3fr ..., which means -> first evaluate @e and then @e+10 and then @e-3fr. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); is_first = FALSE; ptr2_char = s6; if (hc && *ptr2_char) { hn = atoi (s6); if (islower (hc)) { if (*ptr2_char == *ASC_LIT || *ptr2_char == *DES_LIT) ptr2_char++; if (*ptr2_char == *ASC_LIT || *ptr2_char == *DES_LIT || isalpha (*ptr2_char)) /* Error, simple weekday name or invalid sign given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } else if (*ptr2_char == *ASC_LIT || *ptr2_char == *DES_LIT) /* Error, invalid sign given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); /* Now eat all digits. */ while (isdigit (*ptr2_char)) ptr2_char++; } if (!hc || *ptr2_char) { if (!hc && i) { if (i > 2) { if (!isdigit (*ptr2_char)) { ch = s6[TXTLEN_MONTH]; s6[TXTLEN_MONTH] = '\0'; m = compare_d_m_name (ptr2_char, MOnth); s6[TXTLEN_MONTH] = ch; if (!m) { if (compare_d_m_name (ptr2_char, DAy)) goto LABEL_list_day_name_given; /* Error, invalid textual month name given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } ptr2_char++; } else { ch = s6[2]; s6[2] = '\0'; m = atoi (ptr2_char); if (m == 99) m = MONTH_MAX; if (m > MONTH_MAX) /* Error, invalid month number (mm) given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); s6[2] = ch; } ptr2_char += 2; if (m) is_month_given = TRUE; else is_coded_month = TRUE; } LABEL_list_day_name_given: d = atoi (ptr2_char); if (d) is_day_given = TRUE; else if (isdigit (*ptr2_char)) /* Error, invalid day number (DD) given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } if (!isdigit (*ptr2_char)) { d = compare_d_m_name (ptr2_char, DAy); if (!d) /* Error, invalid textual day name (WW[W]) given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } } if (!is_month_given && !is_coded_month) m = buf_m; y = buf_y; if (!is_day_given) { if (!hc) { if (isdigit (s6[i - 1])) { if (isdigit (s6[i - 2])) /* Error, "N'th weekday of month" field contains more than one digit. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); n = CHR2DIG (s6[i - 1]); /* Error, invalid "N'th weekday of month" number given. */ if ((n > 5) && (n < 9)) my_error (ERR_INVALID_NWD_FIELD, filename, line_number, line_buffer, n); } if (!n) is_weekday_mode = TRUE; } else { if (*ptr2_char) hwd = d; if (!islower (hc)) d = 0; } } if (islower (hc)) { d = dvar_base_day; m = dvar_base_month; } if (hc && y) { if (islower (hc)) { if (!precomp_date (hn, hwd, &d, &m, y, (hc == RC_EASTER_CHAR) ? EAster : ((hc == RC_TODAY_CHAR) ? TOday : DVar))) /* If the date is not computable, skip this list entry. */ y = SPECIAL_VALUE; } else if (!precomp_nth_wd (hn, hwd, &hn, &d, &m, &y, (hc == 'D') ? DAy : WEek)) /* If the date is not computable, skip this list entry. */ y = SPECIAL_VALUE; } if (!y && !is_coded_month) manage_leap_day (&d, &m, year, line_buffer, filename, line_number); /* Check if a "repeat for N days since..." field or a "for each N'th day since..." field is given in this list element. */ if (*lptrs->day_part == RC_REPEAT_CHAR || *lptrs->day_part == RC_APPEARS_CHAR) { if (is_weekday_mode) /* Error, it's invalid to specify a simple weekday name WWW with a "repeat" or "appears" coding (e.g.: WWW:10,WWW.3,WWW:10.3 ...). */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); else { register int num_repeat = 0; register int num_appears = 0; do { if (*lptrs->day_part == RC_REPEAT_CHAR) { repeat = get_number (&lptrs->day_part); num_repeat++; } if (*lptrs->day_part == RC_APPEARS_CHAR) { appears = get_number (&lptrs->day_part); num_appears++; } } while (--productions); if (num_repeat > 1 || num_appears > 1 || (!repeat && !appears)) /* Error, either "repeat" or "appears" coding given twice or invalid by other reasons (a number > 999 given). */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); if (appears) appears--; /* Well, we have to use an unoptimized number of productions now. */ productions = repeat; } } /* Skip the ONE separating character of the list of days. */ if (*lptrs->day_part == RC_DLIST_CHAR) lptrs->day_part++; else if (!*lptrs->day_part || isspace (*lptrs->day_part)) { free (lineptrs->day_part); lptrs->day_part = lineptrs->day_part = (char *) NULL; } else /* Error, invalid "repeat" or "appears" coding given (one of the fields contains invalid characters). */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } else /* Manage a range of days/weekday names. */ { if (lptrs->repeat_part != (char *) NULL) /* Error, a "repeat" coding makes no sense in ranges of days. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); /* Copy the starting element of the range into `s6'. */ while (*lptrs->day_part != RC_DRANGE_CHAR) s6[i++] = *(lptrs->day_part++); s6[i] = '\0'; if (strchr (s6, RC_APPEARS_CHAR) != (char *) NULL) /* Error, a "appears" coding may only be given last to a range of days. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); ptr2_char = s6; /* Skip THE separating character of the range of days. */ lptrs->day_part++; if (hc && *ptr2_char) { hn = atoi (s6); if (islower (hc)) { if (*ptr2_char == *ASC_LIT || *ptr2_char == *DES_LIT) ptr2_char++; if (*ptr2_char == *ASC_LIT || *ptr2_char == *DES_LIT || isalpha (*ptr2_char)) /* Error, simple weekday name WWW or invalid sign given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } else if (*ptr2_char == *ASC_LIT || *ptr2_char == *DES_LIT) /* Error, invalid sign given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); /* Now eat all digits. */ while (isdigit (*ptr2_char)) ptr2_char++; } if (!hc || *ptr2_char) { if (!hc) { d = atoi (ptr2_char); if (d) is_day_given = TRUE; else if (isdigit (*ptr2_char)) /* Error, invalid day number (==0) given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } if (!isdigit (*ptr2_char)) { buf_d = d = compare_d_m_name (ptr2_char, DAy); if (!d) /* Error, invalid weekday name (WW[W]) given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } if (!is_day_given) { if (!hc && isdigit (s6[i - 1])) { if (isdigit (s6[i - 2])) /* Error, "N'th weekday of month" field contains more than one digit. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); n = CHR2DIG (s6[i - 1]); /* Error, invalid "N'th weekday of month" number given. */ if ((n > 5) && (n < 9)) my_error (ERR_INVALID_NWD_FIELD, filename, line_number, line_buffer, n); if (n) { is_range = TRUE; nth_weekday_of_month (&d, &m, &y, &n, &is_weekday_mode); if (!m || y == SPECIAL_VALUE) /* If the date is not computable, exit the loop. */ break; } else is_weekday_mode = TRUE; } else { if (!hc) is_weekday_mode = TRUE; else { is_range = TRUE; hwd = d; } } } else { if (!m && (rc_year_flag || rc_period_list || is_3month_mode || is_3month_mode2 || fiscal_month > MONTH_MIN)) /* If no month `m' is given and we are in one of these modes, exit the loop. */ break; is_range = TRUE; if (!y) y = year; if (!m) m = month; } } else { is_range = TRUE; hwd = 0; } if (hc) { if (!y) y = year; if (islower (hc)) { d = dvar_base_day; m = dvar_base_month; if (!precomp_date (hn, hwd, &d, &m, y, (hc == RC_EASTER_CHAR) ? EAster : ((hc == RC_TODAY_CHAR) ? TOday : DVar))) date_unset = TRUE; } else if (!precomp_nth_wd (hn, hwd, &hn, &d, &m, &y, (hc == 'D') ? DAy : WEek)) date_unset = TRUE; if (date_unset) { /* If the date is not computable, set `d' and `m' to 1-JAN if `hn' is less zero, otherwise to 31-DEC if `hn' is greater than +1. */ if (!hn || hwd) /* If the date isn't computable at all, exit the loop. */ break; date_unset = FALSE; if (hn < 0) { m = MONTH_MIN; d = DAY_MIN; } else { m = MONTH_MAX; d = dvec[m - 1]; } } } /* Copy the final element of the range into `s6'. */ is_day_given = FALSE; i = 0; while (*lptrs->day_part && !isspace (*lptrs->day_part) && (*lptrs->day_part != RC_APPEARS_CHAR)) s6[i++] = *(lptrs->day_part++); s6[i] = '\0'; ptr2_char = s6; free (lineptrs->day_part); lptrs->day_part = lineptrs->day_part = (char *) NULL; if (hc && *ptr2_char) { tmp_hn = atoi (s6); if (islower (hc)) { if (*ptr2_char == *ASC_LIT || *ptr2_char == *DES_LIT) ptr2_char++; if (*ptr2_char == *ASC_LIT || *ptr2_char == *DES_LIT || isalpha (*ptr2_char)) /* Error, simple weekday name or invalid sign given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } else if (*ptr2_char == *ASC_LIT || *ptr2_char == *DES_LIT) /* Error, invalid sign given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); /* Now eat all digits. */ while (isdigit (*ptr2_char)) ptr2_char++; /* Now eat an "appears" field (if given). */ if (*ptr2_char == RC_APPEARS_CHAR) { ptr2_char++; while (isdigit (*ptr2_char)) ptr2_char++; } } if (!hc || *ptr2_char) { if (!hc && i) { if (i > 2) { if (!isdigit (*ptr2_char)) { ch = s6[TXTLEN_MONTH]; s6[TXTLEN_MONTH] = '\0'; tmp_m = compare_d_m_name (ptr2_char, MOnth); s6[TXTLEN_MONTH] = ch; if (!tmp_m) { if (compare_d_m_name (ptr2_char, DAy)) goto LABEL_range_day_name_given; /* Error, invalid textual month name given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } s6[3] = ch; ptr2_char++; } else { ch = s6[2]; s6[2] = '\0'; tmp_m = atoi (ptr2_char); if (tmp_m == 99) tmp_m = MONTH_MAX; if (tmp_m > MONTH_MAX) /* Error, invalid month number (MM) given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); s6[2] = ch; } ptr2_char += 2; if (tmp_m) is_month_given = TRUE; else is_coded_month = TRUE; } LABEL_range_day_name_given: tmp_d = atoi (ptr2_char); if (tmp_d) is_day_given = TRUE; } if (!isdigit (*ptr2_char)) { buf_d = tmp_d = compare_d_m_name (ptr2_char, DAy); if (!tmp_d) /* Error, invalid textual day name (WW[W]) given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } if (!is_day_given) { if (isdigit (s6[i - 1])) { if (isdigit (s6[i - 2])) /* Error, "N'th weekday of month" field contains more than one digit. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); tmp_n = CHR2DIG (s6[i - 1]); } if (!hc && tmp_n && is_range) { /* Error, invalid "N'th weekday of month" number given. */ if ((tmp_n > 5) && (tmp_n < 9)) my_error (ERR_INVALID_NWD_FIELD, filename, line_number, line_buffer, tmp_n); if (!is_month_given) tmp_m = buf_m; tmp_y = buf_y; nth_weekday_of_month (&tmp_d, &tmp_m, &tmp_y, &tmp_n, &is_weekday_mode); if (!tmp_m || tmp_y == SPECIAL_VALUE) /* If the date is not computable, exit the loop. */ break; if (y != tmp_y) /* If the dates are in different years, exit the loop. */ break; } else { if (!hc && (tmp_n || is_range)) /* Error, mixed range of days given (DD#WW[W], WW[W]#WW[W]N or WW[W]N#WW[w]). */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); else if (!tmp_hn && is_range) /* Error, invalid range of days given (NWW[W]#WW[W]). */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); else tmp_hwd = tmp_d; } } else { if (is_day_given && !is_range) /* Error, invalid range of days given (WW[W]#DD). */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); if (!tmp_m && is_coded_month && (rc_year_flag || rc_period_list || is_3month_mode || is_3month_mode2 || fiscal_month > MONTH_MIN)) /* If the month of a final day is coded like: ...#MMDD or ...#MMWW[W]N, but MM is explicitly set to zero (==00 coded) and we are in one of these modes, exit the loop. */ break; if (!is_month_given) tmp_m = m; tmp_y = y; } } else tmp_hwd = 0; /* We have to avoid constructions like: YYYY00DD|WW[W]N#MMDD|WW[W]N which means, no starting month but a final month is given and if both months differ after pre-evaluating the starting month (which is set to the current month), exit the loop. */ if (!buf_m && is_month_given && (m != tmp_m)) break; if (hc) { tmp_y = y; if (islower (hc)) { tmp_d = dvar_base_day; tmp_m = dvar_base_month; if (!precomp_date (tmp_hn, tmp_hwd, &tmp_d, &tmp_m, tmp_y, (hc == RC_EASTER_CHAR) ? EAster : ((hc == RC_TODAY_CHAR) ? TOday : DVar))) date_unset = TRUE; } else if (!precomp_nth_wd (tmp_hn, tmp_hwd, &tmp_hn, &tmp_d, &tmp_m, &tmp_y, (hc == 'D') ? DAy : WEek)) date_unset = TRUE; if (date_unset) { /* If the date is not computable, set `tmp_d' and `tmp_m' to 1-JAN if `tmp_hn' is less zero, otherwise to 31-DEC if `tmp_hn' is greater than +1. */ if (!tmp_hn || tmp_hwd) /* If the date isn't computable at all, exit the loop. */ break; if (tmp_hn < 0) { tmp_m = MONTH_MIN; tmp_d = DAY_MIN; } else { tmp_m = MONTH_MAX; tmp_d = dvec[tmp_m - 1]; } } hc = '\0'; } n = 0; /* Let's decode the "for each N'th day since..." field of a line. */ if (lptrs->appears_part != (char *) NULL) { appears = get_number (&lptrs->appears_part); if (!appears || (*lptrs->appears_part && !isspace (*lptrs->appears_part))) /* Error, invalid "appears" field given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); appears--; } /* Compute the number of 1xN productions. */ if (is_range) { /* If the special value "99" for a day is given, set the day to the last day of the month. */ if (d == 99) { if (m == 2) d = days_of_february (y); else d = dvec[m - 1]; } if (tmp_d == 99) { if (tmp_m == 2) tmp_d = days_of_february (tmp_y); else tmp_d = dvec[tmp_m - 1]; } if (d > MONTH_LAST || tmp_d > MONTH_LAST) /* Error, invalid day number (>MONTH_LAST) is given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); if (!buf_y) { if (buf_m) manage_leap_day (&d, &m, y, line_buffer, filename, line_number); if (is_month_given || (buf_m && !is_month_given)) manage_leap_day (&tmp_d, &tmp_m, tmp_y, line_buffer, filename, line_number); /* Check if a range of days starting or ending at 00000229 must be ignored in non-leap years. */ if ((days_of_february (y) == 28) && (((d == 29) && (m == 2) && (m == buf_m)) || ((tmp_d == 29) && (tmp_m == 2) && (tmp_m == buf_m || is_month_given)))) must_ignore_feb_29 = TRUE; } /* If invalid dates are given, try to correct them. */ while (!valid_date (d, m, y)) { if (!buf_m || must_ignore_feb_29) d--; else /* Error, invalid date given (e.g.: YYYY0230 or YYYY0931). */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } while (!valid_date (tmp_d, tmp_m, tmp_y)) { if ((!buf_m && !is_month_given) || must_ignore_feb_29) tmp_d--; else /* Error, invalid date given (e.g.: YYYY0230 or YYYY0931). */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } /* Compute the raw number of 1xN productions. */ i = day_of_year (d, m, y); j = day_of_year (tmp_d, tmp_m, tmp_y); if (i > j) { /* Swap the starting date of the event. */ int tmp = i; i = j; j = tmp; d = tmp_d; m = tmp_m; y = tmp_y; } productions = j - i; if (productions) { /* Optimize the number of 1xN productions. */ if (i < day) { if (appears) { register int k; /* Advance to the first date in period if an "appears" coding is given. */ do { k = i; (void) doy2date (i + appears + 1, (days_of_february (y) == 29), &d, &m); i = day_of_year (d, m, y); if (i == k) /* The date can't be advanced by an "appears" factor because the computed date would be leaving the year bounds! */ i = day; } while (i < day); } else i = day; } /* Set a new starting date of the event. */ (void) doy2date (i, (days_of_february (y) == 29), &d, &m); if (j > ed - 1) j = ed - 1; productions = j - i; if (productions < 0) /* Date doesn't match the period, exit the loop. */ break; } } else { if (is_month_given) /* Error, simple textual weekday ranges (WW[W]#WW[W]) may not have a specified final month like: WW[W]#MMWW[W]. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); /* Compute the number of 1xN productions for simple weekdays! */ if (d > tmp_d) productions = DAY_MAX - d + tmp_d; else productions = tmp_d - d; buf_d = d; } productions++; is_first = FALSE; } } else if (is_first) { /* Single date given (means no list of days AND no range of days). */ if (!y) manage_leap_day (&d, &m, year, line_buffer, filename, line_number); /* Let's decode the "repeat for N days since..." field of a line and/or the "for each N'th day since..." field of a line. */ if (lptrs->repeat_part != (char *) NULL || lptrs->appears_part != (char *) NULL) { if (is_weekday_mode && !n) /* Error, "repeat" or "appears" coding given to a simple weekday name (e.g.: YYYYMMWW[W]:10.3 ...). */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); if (lptrs->repeat_part != (char *) NULL) { repeat = get_number (&lptrs->repeat_part); if (!repeat || (*lptrs->repeat_part && !isspace (*lptrs->repeat_part) && (*lptrs->repeat_part != RC_APPEARS_CHAR))) /* Error, invalid "repeat" field given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } if (lptrs->appears_part != (char *) NULL) { appears = get_number (&lptrs->appears_part); if (!appears || (*lptrs->appears_part && !isspace (*lptrs->appears_part) && (*lptrs->appears_part != RC_REPEAT_CHAR))) /* Error, invalid "appears" field given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } } if (!repeat) /* Let's create either 1x1 or 1x2 productions of such a line by default. */ productions = 1; else { /* Now we have the number of productions of this date! */ is_first = FALSE; if (appears) appears--; /* Well, we have to use an unoptimized number of productions in this case. */ productions = repeat; } } /* If the "date"-part of the current line is valid, try to respect the current line. */ if (y >= 0) { /* Necessary pre-initializations of module local variables. */ is_valid_date = TRUE; is_2dvar = is_2easter = FALSE; incr_year = decr_year = d_buf = m_buf = 0; /* Default is a 1x1 production of a line (except some cases the `-c[]t' "tomorrow" flag is given). */ print_twice = 1; if (!is_range) { if (d) { /* If the special value "99" for a day is given, set the day to the last day of the month. */ if (d == 99) { if (m) { if (m == 2) d = days_of_february ((y) ? y : year); else d = dvec[m - 1]; } else { if (month == 2) d = days_of_february ((y) ? y : year); else d = dvec[month - 1]; } } is_valid_date = valid_date (d, (m) ? m : month, (y) ? y : year); } if (!is_valid_date) { if ((!y && (((m == 2 || (!m && (month == 2))) && (d == 29)) || (!m && (d <= MONTH_LAST)))) || (y && !m && (d <= MONTH_LAST))) /* If no month/year entry given, ignore that date. */ ; else /* Invalid date field given. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } /* If a "N'th weekday of month" field is given, compute the according date. */ if (n) { nth_weekday_of_month (&d, &m, &y, &n, &is_weekday_mode); if (!m) /* If the date is not computable (`m' is still 0), exit the loop. */ break; } else if (!y) { if (hwd && ((fiscal_month > MONTH_MIN) || ((hc == RC_EASTER_CHAR) && (day < DAY_MIN || ed > DAY_LAST + is_leap_year + 1)))) /* FIXME! Actually it's not possible to evaluate events, which occur in every year and are set to a "N'th weekday" displacement, and the mode of operation is generally for fiscal years or for weeks, which have left the bounds of the actual year and are related to the Easter Sundays date, because Easter Sunday is on one date in the current year and on another date in the other year!! Grrr... seems I've to rework this for future releases ...or will it be a feature??? */ y = SPECIAL_VALUE; else { /* If @e... Easter holiday "date"-part is given, compute the according date. */ if (hc == RC_EASTER_CHAR) { register int epy = knuth_easter_formula (year - 1); /* Easter Sunday in previous year */ register int eay = knuth_easter_formula (year); /* Easter Sunday in current year */ register int eny = knuth_easter_formula (year + 1); /* Easter Sunday in next year */ if (fiscal_month > MONTH_MIN) { /* Precalculate the number of days in last month of fiscal year. */ if (fiscal_month - 1 == 2) i = days_of_february (year + 1); else i = dvec[fiscal_month - 2]; /* Manage fiscal year request. */ if (year == EASTER_MIN - 1) { j = day_of_year (i, fiscal_month - 1, year + 1); if (hn + eny <= j) { if (!precomp_date (hn, hwd, &d, &m, year + 1, EAster)) y = SPECIAL_VALUE; } else y = SPECIAL_VALUE; } else { j = day_of_year (DAY_MIN, fiscal_month, year); if (hn + eay >= j) { if (!precomp_date (hn, hwd, &d, &m, year, EAster)) y = SPECIAL_VALUE; else { /* Check whether this single event also occurs in the next year. */ j = day_of_year (i, fiscal_month - 1, year + 1); if (!is_3month_mode && !is_3month_mode2 && (hn + eny <= j)) { /* We need a 1x2 production of the line. */ print_twice++; is_2easter = TRUE; } } } else { if (is_3month_mode || is_3month_mode2) { if (fiscal_month >= MONTH_MAX - 1) { j = dvec[MONTH_MIN - 1]; if (fiscal_month == MONTH_MAX) j += days_of_february (year + 1) + is_leap_year; if (hn + eny <= j) { if (!precomp_date (hn, hwd, &d, &m, year + 1, EAster)) y = SPECIAL_VALUE; } else y = SPECIAL_VALUE; } else y = SPECIAL_VALUE; } else { j = day_of_year (i, fiscal_month - 1, year + 1); if (hn + eny <= j) { if (!precomp_date (hn, hwd, &d, &m, year + 1, EAster)) y = SPECIAL_VALUE; } else y = SPECIAL_VALUE; } } } } else /* Manage `-c0w' request resp., `-cw' in case date is in first days of January. */ if (day < DAY_MIN) { j = DAY_LAST + (days_of_february (year - 1) == 29); if ((hn + epy >= j + day) && (hn + epy <= j)) { if (!precomp_date (hn, hwd, &d, &m, year - 1, EAster)) y = SPECIAL_VALUE; } else { if (hn + eay < ed) { if (!precomp_date (hn, hwd, &d, &m, year, EAster)) y = SPECIAL_VALUE; } else y = SPECIAL_VALUE; } } else /* Manage `-c99w' (`-c52w' | `-c53w') request resp., `-ct' or `-cw' in case date is in last days of December. */ if (ed > DAY_LAST + is_leap_year + 1) { j = DAY_LAST + is_leap_year; if ((hn + eay >= day) && (hn + eay <= j)) { if (!precomp_date (hn, hwd, &d, &m, year, EAster)) y = SPECIAL_VALUE; } else { if (hn + eny < ed - j) { if (!precomp_date (hn, hwd, &d, &m, year + 1, EAster)) y = SPECIAL_VALUE; } else y = SPECIAL_VALUE; } } else /* All other "ordinary" requests... */ if (!precomp_date (hn, hwd, &d, &m, year, EAster)) y = SPECIAL_VALUE; } else /* If @t|DVAR... "date"-part is given, compute the according date. */ if (islower (hc)) { if (fiscal_month > MONTH_MIN) { register int date_dvar = day_of_year (d, m, year); /* Precalculate number of days in the last month of fiscal year. */ if (fiscal_month - 1 == 2) i = days_of_february (year + 1); else i = dvec[fiscal_month - 2]; /* Manage fiscal year request. */ j = day_of_year (DAY_MIN, fiscal_month, year); /* Buffer day and month. */ d_buf = d; m_buf = m; if (hn + date_dvar >= j) { if (!precomp_date (hn, hwd, &d, &m, year, (hc == RC_TODAY_CHAR) ? TOday : DVar)) y = SPECIAL_VALUE; else { /* Check whether this single event also occurs in next year. */ j = day_of_year (i, fiscal_month - 1, year + 1); if (!is_3month_mode && !is_3month_mode2 && (hn + date_dvar <= j)) { /* We need a 1x2 production of the line. */ print_twice++; is_2dvar = TRUE; } } } else { if (is_3month_mode || is_3month_mode2) { if (fiscal_month >= MONTH_MAX - 1) { j = dvec[MONTH_MIN - 1]; if (fiscal_month == MONTH_MAX) j += days_of_february (year + 1) + is_leap_year; if (hn + date_dvar <= j) { if (!precomp_date (hn, hwd, &d, &m, year + 1, (hc == RC_TODAY_CHAR) ? TOday : DVar)) y = SPECIAL_VALUE; } else y = SPECIAL_VALUE; } else y = SPECIAL_VALUE; } else { j = day_of_year (i, fiscal_month - 1, year + 1); if (hn + date_dvar <= j) { if (!precomp_date (hn, hwd, &d, &m, year + 1, (hc == RC_TODAY_CHAR) ? TOday : DVar)) y = SPECIAL_VALUE; } else y = SPECIAL_VALUE; } } } else /* All other "ordinary" requests... */ if (!precomp_date (hn, hwd, &d, &m, year, (hc == RC_TODAY_CHAR) ? TOday : DVar)) y = SPECIAL_VALUE; } else /* If a 0*d|wN[WW[W]] "date"-part is given, compute the according date. */ if (hc == 'D' || hc == 'W') { y = year; if (precomp_nth_wd (hn, hwd, &hn, &d, &m, &y, (hc == 'D') ? DAy : WEek)) { register int date_dvar = day_of_year (d, m, y); if (fiscal_month > MONTH_MIN) { /* Precalculate the number of days of the last month of fiscal year. */ if (fiscal_month - 1 == 2) i = days_of_february (year + 1); else i = dvec[fiscal_month - 2]; /* Manage fiscal year request. */ j = day_of_year (DAY_MIN, fiscal_month, year); if (date_dvar >= j) { /* Check whether this single event also occurs in the next year */ j = day_of_year (i, fiscal_month - 1, year + 1); if (!is_3month_mode && !is_3month_mode2 && (date_dvar <= j)) { /* Buffer day and month. */ d_buf = d; m_buf = m; /* We need a 1x2 production of the line. */ print_twice++; is_2dvar = TRUE; } } else { if (is_3month_mode || is_3month_mode2) { if (fiscal_month >= MONTH_MAX - 1) { j = dvec[MONTH_MIN - 1]; if (fiscal_month == MONTH_MAX) j += days_of_february (year + 1) + is_leap_year; if (date_dvar <= j) { y++; (void) precomp_nth_wd (hn, hwd, &hn, &d, &m, &y, (hc == 'D') ? DAy : WEek); } else y = SPECIAL_VALUE; } else y = SPECIAL_VALUE; } else { j = day_of_year (i, fiscal_month - 1, year + 1); if (date_dvar <= j) { y++; (void) precomp_nth_wd (hn, hwd, &hn, &d, &m, &y, (hc == 'D') ? DAy : WEek); } else y = SPECIAL_VALUE; } } } } } } } } /* Check whether this current line must be displayed. */ if (y >= 0) { if (!is_range && (repeat > 1)) is_range = TRUE; if (date_matches_period (&print_twice, day, ed, wd)) /* Now insert this current line into `rc_elems_table[]' (lines with no "text"-part are valid and are displayed). */ insert_line_into_table (line_buffer, filename, line_number, rc_elems, len_date, print_twice); } } /* We have to restore some elements of the date and to precompute the next date if a range of days is given! */ if (lineptrs->day_range || repeat) { if (is_range) { if (m) { if (y <= 0) y = year; if (appears) { /* Advance to the next date in period if an "appears" coding is given. */ i = day_of_year (d, m, y); (void) doy2date (i + appears + 1, (days_of_february (y) == 29), &d, &m); productions -= appears; } else (void) next_date (&d, &m, &y); /* If we evaluate a list of days and found "repeat" or "appears" fields in it and made all necessary productions, we must manage this explicitly by setting `is_range' to FALSE and `productions' to any value greater 1, otherwise the next element of the list would not be managed! */ if (lineptrs->day_list && (productions <= 1) && (lptrs->day_part != (char *) NULL)) { productions = 2; is_range = FALSE; } } else /* Such a date is not computable. */ if (lineptrs->day_list) { /* The list of days still contains elements. */ if (lptrs->day_part != (char *) NULL) { productions = 2; is_range = FALSE; } else /* We are at the end of a list of days. */ break; } } else { if (appears) { /* Advance to the next date in period if an "appears" coding is given. */ productions -= appears; if (productions > 0) for (i = 0; i <= appears; i++) if (++buf_d > DAY_MAX) buf_d = DAY_MIN; } else if (++buf_d > DAY_MAX) buf_d = DAY_MIN; d = buf_d; m = buf_m; y = buf_y; } } else if (lineptrs->day_list && (lptrs->day_part == (char *) NULL)) /* We have already managed the last element of a list of days. */ break; } while (--productions > 0); month = tmp_month; if (lineptrs->repeat_part != (char *) NULL) free (lineptrs->repeat_part); if (lineptrs->appears_part != (char *) NULL) free (lineptrs->appears_part); } static Bool date_matches_period (print_twice, day, ed, wd) int *print_twice; int day; int ed; const int wd; /*! Checks if a given date (module global variables `d' for the day, `m' for the month and `y' for the year) matches a given period, which starts at absolute day of year `day' and ends at absolute day of year `ed' (the actual weekday is given in `wd'). If the given date matches the specified period, return TRUE, otherwise FALSE. */ { register int i; register int j; auto int dd; auto int mm; auto int yy; auto Bool print_line = FALSE; auto Bool is_valid_date = TRUE; if (is_date_given || ((year != act_year) && (day > 0)) || ((month && (month != act_month)) && (year == act_year))) { /* NOT in simple month-/year mode (an explicit date is given in command line): Manage `-c[]' arguments. */ if (d && !is_weekday_mode) { incr_year = ((fiscal_month > MONTH_MIN) && (m < fiscal_month) && (!y || y == year + 1)); if (is_date_given && month && !changed_month && !m) { m = month; is_valid_date = valid_date (d, m, (y) ? y : year); } if (is_valid_date && (!y || y - incr_year == year) && m && d) { if (month && !changed_month) { if (m == month) { if (!is_leap_year && (m == 2) && (d == 29)) ; /* If the year is no leap year, ignore that date */ else print_line = TRUE; } } else { if (fiscal_month > MONTH_MIN) { /* Respect fiscal years! */ if ((incr_year && (year < YEAR_MAX)) || ((m >= fiscal_month) && (!y || y == year))) { if ((days_of_february (year + incr_year) == 28) && (m == 2) && (d == 29)) ; /* If the year is no leap year, ignore that date */ else print_line = TRUE; } } else /* Respect non fiscal years! */ if (!is_leap_year && (m == 2) && (d == 29)) ; /* If the year is no leap year, ignore that date */ else print_line = TRUE; } } } } else { /* Simple month-/year mode (NO explicit date is given in command line): Manage `-c[]w|m|y[+|-]' arguments. */ if ((rc_period_flag || rc_week_flag || rc_month_flag || rc_year_flag) && !is_date_given && (!y || y == year || (rc_week_flag && (((year + 1 <= YEAR_MAX) && (ed > DAY_LAST + is_leap_year + 1)) || ((year - 1 >= YEAR_MIN) && (day < DAY_MIN)))))) { register int td; if (m && d) { if (rc_week_flag && !y && (m != month)) { if ((ed > DAY_LAST + is_leap_year + 1) && !adate_set && (rc_forwards_flag || (!rc_forwards_flag && !rc_backwards_flag))) y = year + 1; else if ((day < DAY_MIN) && !adate_set && (rc_backwards_flag || (!rc_forwards_flag && !rc_backwards_flag))) y = year - 1; } if (y < YEAR_MIN || y > YEAR_MAX) { if (adate_set) { if (m == month) { if (day < DAY_MIN) y = year - 1; } else { if (ed > DAY_LAST + is_leap_year + 1) y = year + 1; } if (y < YEAR_MIN || y > YEAR_MAX) y = year; } else y = year; } } if ((rc_week_flag && is_weekday_mode) || (!is_weekday_mode && (y || m || d))) { /* Respect short day name entry YYYYMMWW[W] ... (WW[W]==short dayname). */ if (rc_week_flag && is_weekday_mode) { static struct { char day[DAY_MAX]; char dst[DAY_MAX]; } wday_list; static Bool fill_wday_list = FALSE; j = 0; if (!fill_wday_list) { if (rc_forwards_flag || (!rc_forwards_flag && !rc_backwards_flag)) { i = wd; LOOP { wday_list.day[i - 1] = (char) i; wday_list.dst[i - 1] = (char) j++; i++; if (i > DAY_MAX) i = DAY_MIN; if (i == start_day) break; } } j = 0; if (rc_backwards_flag || (!rc_forwards_flag && !rc_backwards_flag)) { i = wd; LOOP { if (i < DAY_MIN) i = DAY_MAX; wday_list.day[i - 1] = (char) i; wday_list.dst[i - 1] = (char) ++j; if (i == start_day) break; i--; } } fill_wday_list = TRUE; } if (wday_list.day[d - 1]) { yy = year; if (rc_week_year_flag) { j = day; if (day < 1) { yy = year - 1; j += (DAY_LAST + (days_of_february (yy) == 29)); } (void) doy2date (j, (days_of_february (yy) == 29), &dd, &mm); } else { dd = act_day; mm = month; } if (rc_forwards_flag) for (i = 0; i < wday_list.dst[d - 1]; i++) (void) next_date (&dd, &mm, &yy); else if (rc_backwards_flag) for (i = 1; i < wday_list.dst[d - 1]; i++) (void) prev_date (&dd, &mm, &yy); else { i = SYEAR (d, start_day); j = SYEAR (wd, start_day); if (i - j <= 0) for (i = 1; i < wday_list.dst[d - 1]; i++) (void) prev_date (&dd, &mm, &yy); else for (i = 0; i < wday_list.dst[d - 1]; i++) (void) next_date (&dd, &mm, &yy); } if ((!m || m == mm) && (!y || y == yy)) { d = dd; m = mm; y = yy; } else y = SPECIAL_VALUE; } else y = SPECIAL_VALUE; } if (rc_week_flag && (y >= 0) && (day < DAY_MIN || ed > DAY_LAST + is_leap_year + 1)) { if ((rc_backwards_flag || (!rc_forwards_flag && !rc_backwards_flag)) && (y == year - 1) && m && d) { ed = DAY_LAST + (days_of_february (y) == 29); day = ed + day; td = day_of_year (d, m, y); if ((td <= ed) && (td >= day)) { decr_year = 1; print_line = TRUE; } } else if ((rc_forwards_flag || (!rc_forwards_flag && !rc_backwards_flag)) && (y == year + 1) && m && d) { td = day_of_year (d, m, y) + DAY_LAST + is_leap_year; if ((td < ed) && (td >= day)) { incr_year = 1; print_line = TRUE; } } else { if ((y == year || ((y == year - 1) && !rc_forwards_flag) || ((y == year + 1) && !rc_backwards_flag)) && m && d) { td = day_of_year (d, m, y); if ((td < ed) && (td >= day)) print_line = TRUE; } else if (d) { td = 0; m = month; if (day < DAY_MIN) { if (!y || y == year || y == year - 1) { if (adate_set) i = dvec[MONTH_MAX - 1] + day - 1; else i = dvec[MONTH_MAX - 1] + act_day - (SYEAR (wd, start_day)); if (d > i) { m = MONTH_MAX; if (!y) y = year - 1; if (y == year) td = day_of_year (d, m, year); else { ed = DAY_LAST + (days_of_february (y) == 29); day = ed + day; td = day_of_year (d, m, y); decr_year = 1; } } else if (!y || y == year) { if (adate_set) { m = MONTH_MIN; td = day_of_year (d, m, year) + 1; } else td = day_of_year (d, m, year) + 1; } else td = ed + 1; if ((td <= ed) && (td >= day)) print_line = TRUE; } } else if (!y || y == year || y == year + 1) { i = act_day - (SYEAR (wd, start_day)); if (d < i) { m = MONTH_MIN; if (!y) y = year + 1; if (y == year + 1) { td = day_of_year (d, m, y) + DAY_LAST + is_leap_year; incr_year = 1; } } else if (!y || y == year) td = day_of_year (d, m, year); if ((td < ed) && (td >= day)) print_line = TRUE; } } } } else if (y >= 0 || y == year) { if (((rc_month_flag || rc_week_flag || rc_period_flag) && m && !d) || ((rc_month_flag || rc_week_flag) && !m && !d) || ((rc_year_flag || rc_period_list) && (!m || !d))) ; /* Void, ignore such entries! */ else { register int mmm = m; if (!y) y = year; if (!m) { mmm = m = month; (void) doy2date (day, is_leap_year, &dd, &mm); if ((dd > d) && (mm == m)) m++; else if ((dd < d) && (mm < m)) m--; } /* If a valid date is given, respect it. */ if (valid_date (d, m, y)) { td = day_of_year (d, m, y); if ((td >= day) && (td < ed)) print_line = TRUE; else m = mmm; } else m = mmm; } } } } else if (!rc_period_flag && !rc_week_flag && !rc_month_flag && !rc_year_flag) { /* Simple month-/year month mode (NO explicit date is given in command line): Manage `-c[]' or `-c[]t' arguments. */ dd = act_day; mm = month; yy = year; if (rc_tomorrow_flag) (void) next_date (&dd, &mm, &yy); if ((!y || y == year || (rc_tomorrow_flag && (ed > DAY_LAST + is_leap_year + 1) && (y == year + 1) && (!m || m == mm))) && (!m || m == month || (rc_tomorrow_flag && (m == mm) && (!y || ((ed > DAY_LAST + is_leap_year + 1) && (y == year + 1)) || ((ed <= DAY_LAST + is_leap_year + 1) && (y == year)))))) { if (is_weekday_mode) { /* Respect short day name entry YYYYMMWW[W] ... (WW[W]==short dayname). */ i = weekday_of_date (act_day, month, year); j = 0; if (rc_tomorrow_flag) j = (d == weekday_of_date (dd, mm, yy)); if (((d == i) && (ed <= DAY_LAST + is_leap_year + 1) && (!m || m == month)) || ((d == i) && ((ed > DAY_LAST + is_leap_year + 1) && ((!y && (!m || m == month)) || y == year))) || (j && (!m || m == month + 1 || m == mm) && (!y || ((ed > DAY_LAST + is_leap_year + 1) && (y == year + 1)) || ((ed <= DAY_LAST + is_leap_year + 1) && (y == year))))) { if (j) { m = mm; d = dd; if (rc_tomorrow_flag && (yy != year)) incr_year = 1; } else { m = month; d = act_day; } if (rc_tomorrow_flag && !rc_have_today_in_list && (d != dd)) ; /* Void, ignore such entries! */ else print_line = TRUE; } } else if (!d || ((d == act_day) && (!m || m == month) && (!y || y == year)) || ((d == dd) && (mm == month || (rc_tomorrow_flag && ((!m && (ed <= DAY_LAST + is_leap_year + 1) && (!y || y == year)) || m == month + 1 || m == mm))))) { if (rc_tomorrow_flag) { if (!d && (!m || (mm == month || m == month + 1 || m == mm))) { if ((yy > year) && (d || m || y)) { if (!y || y == yy) { m = mm; d = dd; incr_year = 1; } } else if (m || y != year || ed <= DAY_LAST + is_leap_year + 1) { if (!d && m && (mm != month) && (!y || y == year)) { m = mm; d = dd; } else { if (rc_have_today_in_list) /* We need a 1x2 production of the line. */ (*print_twice)++; else { m = mm; d = dd; if (yy != year) incr_year = 1; } } } } else { if ((d == dd) && (!m || m == mm)) { m = mm; if (ed > DAY_LAST + is_leap_year + 1) incr_year = 1; } } } if (!m) m = month; if (!d) d = act_day; if (rc_tomorrow_flag && !rc_have_today_in_list && (d != dd)) ; /* Void, ignore such entries! */ else print_line = TRUE; } } } } /* Avoid an incorrect assignment in case fixed date mentioned occurred during the missing period in month of Gregorian Reformation. */ if (print_line && (year + incr_year - decr_year == greg->year) && (m == greg->month) && ((d >= greg->first_day) && (d <= greg->last_day))) print_line = FALSE; /* If 3-month mode is wanted, insert only those fixed dates which occur in that period. */ if (print_line && (is_3month_mode || is_3month_mode2)) { register int m2 = fiscal_month + 1; register int m3 = fiscal_month + 2; if (fiscal_month >= MONTH_MAX - 1) { m3 = MONTH_MIN; if (fiscal_month == MONTH_MAX) { m2 = MONTH_MIN; m3++; } } if ((m != fiscal_month) && (m != m2) && (m != m3)) print_line = FALSE; } return (print_line); } static int get_number (string) char **string; /*! Returns the absolute value of a "repeat for N days since..." field or "for each N'th day since..." field using the global `s6' text buffer. */ { register int i = 0; if (*string != (char *) NULL) { (*string)++; while (isdigit (**string)) s6[i++] = *((*string)++); s6[i] = '\0'; /* Make sure we return values in range 1...366 or 0 if an error has occurred. */ if (i > 3) return (0); i = atoi (s6); if (i > DAY_LAST + 1) i = DAY_LAST + 1; } return (i); } #endif /* USE_RC */ gcal-4.1/src/rc-use.h0000664000000000000000000000274512353516672011335 00000000000000#ifndef __RC_USE_H # define __RC_USE_H /*! * \file rc-use.h * \brief Central function, manages the resource file handling and * displays the results file header. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: rc-use.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * The REGEX stuff. */ # if HAVE_POSIX_REGCOMP # ifdef REG_EXTENDED # define REGCOMP_FLAG REG_EXTENDED # else # define REGCOMP_FLAG 0 # endif # endif /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* * The REGEX stuff. */ # if HAVE_RE_COMP extern char *re_comp (); # endif /* ************************************************** Defined in `rc-use.c'. */ extern void rc_use __P_ ((void)); __END_DECLARATIONS #endif /* __RC_USE_H */ gcal-4.1/src/rc-utils.c0000664000000000000000000027733012244130561011664 00000000000000/*! * \file rc-utils.c * \brief Pool of special functions necessary for managing * the fixed dates. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include definition header file to see whether USE_RC is defined there. * Compile this module only if USE_RC is defined, otherwise skip it. */ #include "tailor.h" #if USE_RC /* * Include header files. */ # if HAVE_CTYPE_H # include # endif # if HAVE_UNISTD_H # include # endif # if HAVE_MATH_H && HAVE_LIBM # include # endif # include "common.h" # include "rc-defs.h" # include "globals.h" # include "file-io.h" # include "hd-astro.h" # include "hd-use.h" # include "help.h" # include "rc-astro.h" # include "tty.h" # include "utils.h" # include "rc-utils.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `rc-utils.c'. */ static void var_warning __P_ ((const int exit_status, const int var_name, const char *line_buffer, const char *filename, const long line_number)); __END_DECLARATIONS /* * Function implementations. */ Bool rc_valid_day (date_text, day, month, year) const char *date_text; const int day; const int month; const int year; /*! Checks the `date_text' for "%? special texts without argument", which disables a fixed dates and which is stored in `date_text' without a leading '%' character, and stores them into maps. The `date_text' has to be proofed by the caller! If the date given in `day', `month' and `year' is marked in the maps, we know that this date must be excluded so this function returns FALSE, otherwise TRUE. */ { register int i; register int wd = weekday_of_date (day, month, year); auto const char *ptr_date_text = date_text; auto Bool hd_found; static Bool inclusive_weekday_map[DAY_MAX + 1]; static Bool exclusive_weekday_map[DAY_MAX + 1]; for (i = DAY_MIN; i <= DAY_MAX; i++) inclusive_weekday_map[i] = !(exclusive_weekday_map[i] = TRUE); *inclusive_weekday_map = *exclusive_weekday_map = FALSE; while (*ptr_date_text) { hd_found = FALSE; switch (*ptr_date_text) { case RC_EX_LHDY_CHAR: case RC_EX_AHDY_CHAR: /* %exclude_legal_holiday special text or %exclude_all_holiday special text found. */ if (hd_ldays[((month - 1) * MONTH_LAST) + (day - 1)]) hd_found = TRUE; if (hd_found || *ptr_date_text == RC_EX_LHDY_CHAR) { if (hd_found) { exclusive_weekday_map[wd] = FALSE; *exclusive_weekday_map = TRUE; } break; } if (hd_mdays[((month - 1) * MONTH_LAST) + (day - 1)]) { exclusive_weekday_map[wd] = FALSE; *exclusive_weekday_map = TRUE; } break; case RC_EX_NLHDY_CHAR: case RC_EX_NAHDY_CHAR: /* %exclude_no_legal_holiday special text or %exclude_no_all_holiday special text found. */ if (hd_ldays[((month - 1) * MONTH_LAST) + (day - 1)]) { hd_found = TRUE; break; } if (hd_found || *ptr_date_text == RC_EX_NLHDY_CHAR) { if (hd_found) inclusive_weekday_map[wd] = TRUE; *inclusive_weekday_map = TRUE; break; } if (hd_mdays[((month - 1) * MONTH_LAST) + (day - 1)]) { hd_found = TRUE; break; } if (hd_found) inclusive_weekday_map[wd] = TRUE; *inclusive_weekday_map = TRUE; break; case RC_EX_MON_CHAR: /* %exclude_monday special text found. */ exclusive_weekday_map[DAY_MIN] = FALSE; *exclusive_weekday_map = TRUE; break; case RC_EX_NMON_CHAR: /* %exclude_no_monday special text found. */ *inclusive_weekday_map = inclusive_weekday_map[DAY_MIN] = TRUE; break; case RC_EX_TUE_CHAR: /* %exclude_tuesday special text found. */ exclusive_weekday_map[2] = FALSE; *exclusive_weekday_map = TRUE; break; case RC_EX_NTUE_CHAR: /* %exclude_no_tuesday special text found. */ *inclusive_weekday_map = inclusive_weekday_map[2] = TRUE; break; case RC_EX_WED_CHAR: /* %exclude_wednesday special text found. */ exclusive_weekday_map[3] = FALSE; *exclusive_weekday_map = TRUE; break; case RC_EX_NWED_CHAR: /* %exclude_no_wednesday special text found. */ *inclusive_weekday_map = inclusive_weekday_map[3] = TRUE; break; case RC_EX_THU_CHAR: /* %exclude_thursday special text found. */ exclusive_weekday_map[4] = FALSE; *exclusive_weekday_map = TRUE; break; case RC_EX_NTHU_CHAR: /* %exclude_no_thursday special text found. */ *inclusive_weekday_map = inclusive_weekday_map[4] = TRUE; break; case RC_EX_FRI_CHAR: /* %exclude_friday special text found. */ exclusive_weekday_map[5] = FALSE; *exclusive_weekday_map = TRUE; break; case RC_EX_NFRI_CHAR: /* %exclude_no_friday special text found. */ *inclusive_weekday_map = inclusive_weekday_map[5] = TRUE; break; case RC_EX_SAT_CHAR: /* %exclude_saturday special text found. */ exclusive_weekday_map[6] = FALSE; *exclusive_weekday_map = TRUE; break; case RC_EX_NSAT_CHAR: /* %exclude_no_saturday special text found. */ *inclusive_weekday_map = inclusive_weekday_map[6] = TRUE; break; case RC_EX_SUN_CHAR: /* %exclude_sunday special text found. */ exclusive_weekday_map[DAY_MAX] = FALSE; *exclusive_weekday_map = TRUE; break; case RC_EX_NSUN_CHAR: /* %exclude_no_sunday special text found. */ *inclusive_weekday_map = inclusive_weekday_map[DAY_MAX] = TRUE; break; case RC_EX_MON_2_THU_CHAR: /* %exclude_monday_to_thursday special text found. */ for (i = DAY_MIN; i <= 4; i++) exclusive_weekday_map[i] = FALSE; *exclusive_weekday_map = TRUE; break; case RC_EX_NMON_2_THU_CHAR: /* %exclude_no_monday_to_thursday special text found. */ for (i = 0; i <= 4; i++) inclusive_weekday_map[i] = TRUE; break; case RC_EX_MON_2_FRI_CHAR: /* %exclude_monday_to_friday special text found. */ for (i = DAY_MIN; i <= 5; i++) exclusive_weekday_map[i] = FALSE; *exclusive_weekday_map = TRUE; break; case RC_EX_NMON_2_FRI_CHAR: /* %exclude_no_monday_to_friday special text found. */ for (i = 0; i <= 5; i++) inclusive_weekday_map[i] = TRUE; break; default: /* This case MUST be an internal error! */ abort (); } ptr_date_text++; } /* Check whether a weekday to exclude is marked in the maps and if so, avoid displaying the fixed date entry. */ if (*inclusive_weekday_map || *exclusive_weekday_map) { if (*inclusive_weekday_map && *exclusive_weekday_map) { if (!inclusive_weekday_map[wd] || !exclusive_weekday_map[wd]) return (FALSE); } else if (*inclusive_weekday_map) { if (!inclusive_weekday_map[wd]) return (FALSE); } else if (!exclusive_weekday_map[wd]) return (FALSE); } return (TRUE); } Bool rc_valid_period (date_text, d, m, y, incr_year, decr_year) char *date_text; const int d; const int m; const int y; const int incr_year; const int decr_year; /*! Checks the `date_text' for "%? special texts with date argument", which disables a fixed dates and which is stored in `date_text' without a leading '%' character, but separated by ',' colon characters, and stores them into maps. The `date_text' has to be proofed by the caller! If `the_day', `the_month' and `the_year' is marked there, we know that this date must be excluded so this function returns FALSE, otherwise TRUE. */ { auto Slint num; register int i; static Bool inclusive_date_map[DAY_LAST + 2]; static Bool exclusive_date_map[DAY_LAST + 2]; auto int len; auto int rlen; auto int dd; auto int rdd; auto int mm; auto int rmm; auto int yy; auto int ryy; auto int nn; auto int rnn; auto int hhn; auto int rhn; auto int hhwd; auto int rhwd; auto char *ptr_date_text = date_text; auto char *ptr_char; auto char special_text_char; auto char ch; auto char hhc; auto char rhc; auto Bool is_weekday_mode; auto Bool ris_weekday_mode; auto Bool is_range; auto Bool dflt_yy_set; auto Bool dflt_ryy_set; /* Initialize the tables. */ for (i = DAY_MIN; i < DAY_LAST + 2; i++) inclusive_date_map[i] = !(exclusive_date_map[i] = TRUE); *inclusive_date_map = *exclusive_date_map = FALSE; while (*ptr_date_text) { /* Check if a range of dates is given. */ rhc = '\0'; rlen = rdd = rmm = ryy = rnn = 0; is_range = dflt_yy_set = dflt_ryy_set = FALSE; special_text_char = *ptr_date_text++; ptr_char = ptr_date_text; while (*ptr_date_text && (*ptr_date_text != *SPLIT_SEP) && (*ptr_date_text != RC_DRANGE_CHAR)) ptr_date_text++; if (*ptr_date_text == RC_DRANGE_CHAR) is_range = TRUE; ch = *ptr_date_text; *ptr_date_text = '\0'; (void) rc_get_date (ptr_char, lptrs3, FALSE, &is_weekday_mode, &dd, &mm, &yy, &nn, &len, &hhc, &hhn, &hhwd, _("Internal"), -1L, date_text, FALSE); /* Error, invalid date encoded. */ if (yy == SPECIAL_VALUE) { fprintf (stderr, _("%s: invalid date given -- %s\n%s\n%s\n"), prgr_name, date_text, usage_msg (), lopt_msg ()); my_exit (ERR_INVALID_OPTION); } *ptr_date_text = ch; if (is_range) { ptr_char = ++ptr_date_text; while (*ptr_date_text && (*ptr_date_text != *SPLIT_SEP)) ptr_date_text++; ch = *ptr_date_text; *ptr_date_text = '\0'; (void) rc_get_date (ptr_char, lptrs3, FALSE, &ris_weekday_mode, &rdd, &rmm, &ryy, &rnn, &rlen, &rhc, &rhn, &rhwd, _("Internal"), -1L, date_text, FALSE); if (ryy == SPECIAL_VALUE) { fprintf (stderr, _("%s: invalid date given -- %s\n%s\n%s\n"), prgr_name, date_text, usage_msg (), lopt_msg ()); my_exit (ERR_INVALID_OPTION); } *ptr_date_text = ch; } if (ch) ptr_date_text++; if (!len) dflt_yy_set = TRUE; if (!rlen) dflt_ryy_set = TRUE; if (!yy) { if (dflt_yy_set) yy = YEAR_MIN; else { yy = year; if (y && (fiscal_month > MONTH_MIN)) yy = y; } } if (!ryy) { if (dflt_ryy_set) ryy = YEAR_MAX; else { ryy = year; if (y && (fiscal_month > MONTH_MIN)) ryy = y; } } /* Respect possible fiscal year. */ if (!dflt_yy_set && (yy != SPECIAL_VALUE)) { yy -= incr_year; yy += decr_year; } if (!dflt_ryy_set && (ryy != SPECIAL_VALUE)) { ryy -= incr_year; ryy += decr_year; } /* If @... "date"-part is given, compute the according date. */ switch (hhc) { case RC_EASTER_CHAR: case RC_TODAY_CHAR: if (!dflt_yy_set && (fiscal_month > MONTH_MIN)) { if (!precomp_date (hhn, hhwd, &dd, &mm, yy + incr_year, (hhc == RC_EASTER_CHAR) ? EAster : TOday)) yy = SPECIAL_VALUE; } else if (!precomp_date (hhn, hhwd, &dd, &mm, yy, (hhc == RC_EASTER_CHAR) ? EAster : TOday)) yy = SPECIAL_VALUE; break; case 'D': case 'W': if (!dflt_yy_set && (fiscal_month > MONTH_MIN)) { auto int fiscal_year = yy + incr_year; if (!precomp_nth_wd (hhn, hhwd, &hhn, &dd, &mm, &fiscal_year, (hhc == 'D') ? DAy : WEek)) yy = fiscal_year; } else (void) precomp_nth_wd (hhn, hhwd, &hhn, &dd, &mm, &yy, (hhc == 'D') ? DAy : WEek); break; default: if (islower (hhc)) { if (rc_dvar[IDX (hhc)].dvar_local.dvar_month) { mm = (int) rc_dvar[IDX (hhc)].dvar_local.dvar_month; dd = (int) rc_dvar[IDX (hhc)].dvar_local.dvar_day; } else if (rc_dvar[IDX (hhc)].dvar_global.dvar_month) { mm = (int) rc_dvar[IDX (hhc)].dvar_global.dvar_month; dd = (int) rc_dvar[IDX (hhc)].dvar_global.dvar_day; } if (!dflt_yy_set && (fiscal_month > MONTH_MIN)) { if (!precomp_date (hhn, hhwd, &dd, &mm, yy + incr_year, DVar)) yy = SPECIAL_VALUE; } else if (!precomp_date (hhn, hhwd, &dd, &mm, yy, DVar)) yy = SPECIAL_VALUE; } } switch (rhc) { case RC_EASTER_CHAR: case RC_TODAY_CHAR: if (!dflt_ryy_set && (fiscal_month > MONTH_MIN)) { if (!precomp_date (rhn, rhwd, &rdd, &rmm, ryy + incr_year, (rhc == RC_EASTER_CHAR) ? EAster : TOday)) ryy = SPECIAL_VALUE; } else if (!precomp_date (rhn, rhwd, &rdd, &rmm, ryy, (rhc == RC_EASTER_CHAR) ? EAster : TOday)) ryy = SPECIAL_VALUE; break; case 'D': case 'W': if (!dflt_ryy_set && (fiscal_month > MONTH_MIN)) { auto int fiscal_year = ryy + incr_year; if (!precomp_nth_wd (rhn, rhwd, &rhn, &rdd, &rmm, &fiscal_year, (rhc == 'D') ? DAy : WEek)) ryy = fiscal_year; } else (void) precomp_nth_wd (rhn, rhwd, &rhn, &rdd, &rmm, &ryy, (rhc == 'D') ? DAy : WEek); break; default: if (islower (rhc)) { if (rc_dvar[IDX (rhc)].dvar_local.dvar_month) { rmm = (int) rc_dvar[IDX (rhc)].dvar_local.dvar_month; rdd = (int) rc_dvar[IDX (rhc)].dvar_local.dvar_day; } else if (rc_dvar[IDX (rhc)].dvar_global.dvar_month) { rmm = (int) rc_dvar[IDX (rhc)].dvar_global.dvar_month; rdd = (int) rc_dvar[IDX (rhc)].dvar_global.dvar_day; } if (!dflt_ryy_set && (fiscal_month > MONTH_MIN)) { if (!precomp_date (rhn, rhwd, &rdd, &rmm, ryy + incr_year, DVar)) ryy = SPECIAL_VALUE; } else if (!precomp_date (rhn, rhwd, &rdd, &rmm, ryy, DVar)) ryy = SPECIAL_VALUE; } } if (len > len_year_max) len -= len_year_max; else len = 0; if (rlen > len_year_max) rlen -= len_year_max; else rlen = 0; /* Assume current/first month of year. */ if (!mm) { if (len >= 1) { mm = m; if (len == 2) len = 0; else len--; } else mm = MONTH_MIN; } else { if (len == 2) len = 0; else len--; } /* Assume current/first day of month. */ if (!dd) { if (len >= 1) dd = d; else dd = DAY_MIN; } /* Assume current/last month of year. */ if (!rmm) { if (rlen >= 1) { rmm = m; if (rlen == 2) rlen = 0; else rlen--; } else rmm = MONTH_MAX; } else { if (rlen == 2) rlen = 0; else rlen--; } /* Assume current/last day of month. */ if (!rdd) { if (rlen >= 1) rdd = d; else { if (rmm == 2) { if (!dflt_ryy_set && (fiscal_month > MONTH_MIN)) rdd = days_of_february (ryy + incr_year); else rdd = days_of_february (ryy); } else rdd = dvec[rmm - 1]; } } /* If special value "99" for day `dd' is given, set the day to last day of month. */ if (dd == 99) { /* Assume the last day of month. */ if (mm == 2) dd = days_of_february (yy); else dd = dvec[mm - 1]; } if (rdd == 99) { /* Assume the last day of month. */ if (rmm == 2) { if (!dflt_ryy_set && (fiscal_month > MONTH_MIN)) rdd = days_of_february (ryy + incr_year); else rdd = days_of_february (ryy); } else rdd = dvec[rmm - 1]; } /* If "N'th weekday of month" entry set, compute the according date. */ if (nn) nth_weekday_of_month (&dd, &mm, &yy, &nn, &is_weekday_mode); if (rnn) nth_weekday_of_month (&rdd, &rmm, &ryy, &rnn, &ris_weekday_mode); /* Proceed if (optionally specified) date is valid. */ if ((!is_range && (yy != SPECIAL_VALUE)) || (is_range && (yy != SPECIAL_VALUE) && (ryy != SPECIAL_VALUE))) { register int true_year = (y) ? y : year + incr_year; if (!nn && !dflt_yy_set && (fiscal_month > MONTH_MIN || (incr_year && (rc_tomorrow_flag || rc_week_flag)))) yy += incr_year; if (!rnn && !dflt_ryy_set && (fiscal_month > MONTH_MIN || (incr_year && (rc_tomorrow_flag || rc_week_flag)))) ryy += incr_year; /* If starting date of event not greater than ending date of event, mark the period in according map, otherwise ignore the %?... special text completely. */ num = d_between (dd, mm, yy, rdd, rmm, ryy); if (num >= 0L) { register int s_doy = DAY_MIN; register int e_doy = DAY_LAST + 1; if (special_text_char == RC_IDATE_CHAR) *inclusive_date_map = TRUE; else *exclusive_date_map = TRUE; if (yy == true_year) s_doy = day_of_year (dd, mm, yy); else if (yy > true_year) s_doy = SPECIAL_VALUE; if (ryy == true_year) e_doy = day_of_year (rdd, rmm, ryy); else if (ryy < true_year) e_doy = SPECIAL_VALUE; if ((s_doy != SPECIAL_VALUE) && (e_doy != SPECIAL_VALUE)) { if (special_text_char == RC_IDATE_CHAR) for (i = s_doy; i <= e_doy; i++) inclusive_date_map[i] = TRUE; else for (i = s_doy; i <= e_doy; i++) exclusive_date_map[i] = FALSE; } } } } /* Check whether a period to exclude is marked in the maps and if so, avoid displaying the fixed date entry. */ if (*inclusive_date_map || *exclusive_date_map) { i = day_of_year (d, m, year + incr_year - decr_year); if (*inclusive_date_map && *exclusive_date_map) { if (!inclusive_date_map[i] || !exclusive_date_map[i]) return (FALSE); } else if (*inclusive_date_map) { if (!inclusive_date_map[i]) return (FALSE); } else if (!exclusive_date_map[i]) return (FALSE); } return (TRUE); } void rc_clean_flags () /*! Cleans all global flags (except `rc_period_list') which are related to the fixed date period. */ { rc_tomorrow_flag = rc_week_flag = rc_month_flag = rc_year_flag = rc_week_year_flag = rc_forwards_flag = rc_backwards_flag = rc_period_flag = FALSE; } Line_struct * rc_get_date (the_line, lineptrs, is_rc_file, is_weekday_mode, d, m, y, n, len, hc, hn, hwd, filename, line_number, line_buffer, on_error_exit) char *the_line; Line_struct *lineptrs; const Bool is_rc_file; Bool *is_weekday_mode; int *d; int *m; int *y; int *n; int *len; char *hc; int *hn; int *hwd; const char *filename; const long line_number; const char *line_buffer; const Bool on_error_exit; /*! Converts the textual/string `date' of a RC-file line into a numerical date and returns a pointer struct to the "day"-part and the "text"-part of the line indicating whether the "day"-part contains a list or a range of days; a char pointer to the "repeat"-field and to the "appears"-field if these exists, and/or if a @... or *... day is encoded in "date"-part and year is set to zero in the line, then this function returns holiday_mode_char (==date variable) or upper-case characters 'D' or 'W' in `&hc', the day displacement in `&hn' and a possible weekday name (mo...su) converted to a number (1...7) in `&hwd' for further managing of such a line. If any invalid date is given in `the_line', then this function either returns SPECIAL_VALUE in &y or aborts the program with an error message (depending on mode of operation resp., contents of `on_error_exit' variable). */ { register int num_of_range_chars = 0; register int num_of_repeat_chars = 0; register int num_of_appears_chars = 0; register int i; static char str7[8]; /* For "date"-parts, length of 7 chars+'\0' maximum! */ auto char *ptr_char; auto Bool is_hdy_mode = FALSE; *hc = '\0'; lineptrs->day_list = lineptrs->day_range = FALSE; lineptrs->repeat_part = lineptrs->appears_part = (char *) NULL; (*len) = (*hn) = (*hwd) = (*n) = i = 0; /* Get the year from the year field of the line. */ while (*the_line && !isspace (*the_line) && isdigit (*the_line) && (i < len_year_max)) str7[i++] = *the_line++; str7[i] = '\0'; *y = my_atoi (str7); *len = i; /* Get the month from the month field of the line. */ i = 0; while (*the_line && !isspace (*the_line) && (i < 2)) str7[i++] = *the_line++; if (i) /* Try to get a short (3 character) textual month name. */ if (isalpha (*the_line) && (isupper (str7[i - 1]) # if USE_EASC || str7[i - 1] == *AE || str7[i - 1] == *OE || str7[i - 1] == *UE || str7[i - 1] == *AAE || str7[i - 1] == *OOE || str7[i - 1] == *UUE # else /* !USE_EASC */ || str7[i - 1] == '"' # endif /* !USE_EASC */ || islower (str7[i - 1]))) str7[i++] = *the_line++; str7[i] = '\0'; *m = my_atoi (str7); if (!*m) /* Check for short (3 character) textual month name. */ *m = compare_d_m_name (str7, MOnth); else if (i == 3 || ((i == 2) && (!isdigit (str7[1])))) { /* Error, invalid month field. */ if (on_error_exit) my_error (ERR_INVALID_MONTH_FIELD, filename, line_number, line_buffer, *m); *y = SPECIAL_VALUE; } /* Check if @... date variable statement or *... statement is given. */ if (i) { *len += i; if (*str7 == RC_HDY_CHAR) { is_hdy_mode = TRUE; if (i == 2) *hc = (char) tolower (str7[1]); } else if (*str7 == RC_NWD_CHAR) { is_hdy_mode = TRUE; if ((i == 2) && (toupper (str7[1]) == 'D' || toupper (str7[1]) == 'W')) *hc = (char) toupper (str7[1]); else { if (i == 2) /* Error, invalid mode specifying character given. */ *hc = (char) toupper (str7[1]); else /* Error, no mode specifying character given. */ *hc = *str7; } } } /* If the special value "99" for a month `&m' is given, set the month to 12 (December). */ if (*m == 99) *m = MONTH_MAX; if (!is_hdy_mode && (*m > MONTH_MAX || (!*m && (((i == 1) && !isdigit (*str7)) || ((i == 2) && (!isdigit (*str7) || !isdigit (str7[1]))) || ((i == 3) && (!isdigit (*str7) || !isdigit (str7[1]) || !isdigit (str7[2]))))))) { /* Error, invalid month field given. */ if (on_error_exit) my_error (ERR_INVALID_MONTH_FIELD, filename, line_number, line_buffer, *m); *y = SPECIAL_VALUE; } /* Get the day (maximum 3 characters in this case, template is either DD, WW or WWW) resp., @... date variable or *... statement (maximum 7 characters in this case, template is: [+|-]NNNWWW). */ ptr_char = lineptrs->day_part = the_line; i = 0; while (*the_line && !isspace (*the_line) && (i < ((is_hdy_mode) ? 7 : 3))) str7[i++] = *the_line++; str7[i] = '\0'; *d = atoi (str7); *len += i; *is_weekday_mode = FALSE; the_line--; if (isalpha (*the_line) || ((i < 3) && !is_hdy_mode)) the_line++; /* Check for a list/range of days/textual day names, if such a list is found, let `lineptrs->day_part' point to it and return to caller for further managing this list/range. */ while (*ptr_char && !isspace (*ptr_char)) { if (*ptr_char == RC_DLIST_CHAR) lineptrs->day_list = TRUE; else if (*ptr_char == RC_DRANGE_CHAR) { num_of_range_chars++; lineptrs->day_range = TRUE; } else if (*ptr_char == RC_REPEAT_CHAR) { num_of_repeat_chars++; lineptrs->repeat_part = ptr_char; } else if (*ptr_char == RC_APPEARS_CHAR) { num_of_appears_chars++; lineptrs->appears_part = ptr_char; } ptr_char++; } if (lineptrs->day_list || lineptrs->day_range) { if (is_rc_file) { if ((num_of_range_chars > 1 || *ptr_char == RC_DLIST_CHAR || *ptr_char == RC_DRANGE_CHAR || (lineptrs->day_list && lineptrs->day_range) || (!lineptrs->day_list && !lineptrs->day_range && (num_of_repeat_chars > 1 || num_of_appears_chars > 1))) && on_error_exit) /* Error, invalid list/range of days. */ my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); /* Check if a day variable is referenced. */ if (islower (*hc) && (*hc != RC_EASTER_CHAR) && (*hc != RC_TODAY_CHAR)) { /* Try to assign a local date variable if there is set any, else try to assign a global date variable if there is set any, otherwise we have to skip this part. */ if (rc_dvar[IDX (*hc)].dvar_local.dvar_month || rc_dvar[IDX (*hc)].dvar_global.dvar_month) { if (rc_dvar[IDX (*hc)].dvar_local.dvar_month) { *m = (int) rc_dvar[IDX (*hc)].dvar_local.dvar_month; *d = (int) rc_dvar[IDX (*hc)].dvar_local.dvar_day; } else { *m = (int) rc_dvar[IDX (*hc)].dvar_global.dvar_month; *d = (int) rc_dvar[IDX (*hc)].dvar_global.dvar_day; } } else { /* Error, no such date variable defined. */ if ((warning_level >= 0) && on_error_exit) var_warning (ERR_INVALID_VAR_REFERENCE, (int) *hc, line_buffer, filename, line_number); *y = SPECIAL_VALUE; } } if (!isalpha (str7[i - 1])) (*len)--; i = 0; while (*the_line && !isspace (*the_line)) { the_line++; i++; } *len += i; } else { /* Error, list/range of days is given in an expression it may not occur. */ if (on_error_exit) my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); *y = SPECIAL_VALUE; } } else { if (!is_rc_file && (num_of_repeat_chars || num_of_appears_chars)) { /* Error, day "repeat" or "appears" coding is given in an expression it may not occur. */ if (on_error_exit) my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); *y = SPECIAL_VALUE; } else if (num_of_repeat_chars > 1 || num_of_appears_chars > 1) { /* Error, "repeat" or "appears" coding given twice or more. */ if (on_error_exit) my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); *y = SPECIAL_VALUE; } lineptrs->day_part = (char *) NULL; } /* If no list/range of days is given, try to precompute the according date. */ if (lineptrs->day_part == (char *) NULL) { if (!is_hdy_mode) { /* Check for simple textual day name (either two or three characters), template WW or WWW. */ if (!*d) { if (*str7) *d = compare_d_m_name (str7, DAy); if (*d) { *is_weekday_mode = TRUE; if (isdigit (str7[i - 1])) (*len)--; } else { i = 0; while (isdigit (str7[i])) i++; if (str7[i]) { /* Error, invalid day field. */ if (on_error_exit) my_error (ERR_INVALID_DAY_FIELD, filename, line_number, line_buffer, *d); *y = SPECIAL_VALUE; } } } else if ((i > 1) && !isdigit (str7[1])) { /* Error, invalid day field. */ if (on_error_exit) my_error (ERR_INVALID_DAY_FIELD, filename, line_number, line_buffer, *d); *y = SPECIAL_VALUE; } /* Check whether a "N'th weekday of month" field exists. */ if (*the_line && !isspace (*the_line)) { if (isdigit (*the_line)) { *n = CHR2DIG (*the_line); if (*n) { if ((*n > 5) && (*n < 9)) { /* Error, invalid "N'th weekday of month" field. */ if (on_error_exit) my_error (ERR_INVALID_NWD_FIELD, filename, line_number, line_buffer, *n); *y = SPECIAL_VALUE; } } } else if ((lineptrs->repeat_part == (char *) NULL) && (lineptrs->appears_part == (char *) NULL)) { /* Error, missing separator between "date"-part and "text"-part. */ if (on_error_exit) my_error (ERR_NO_SEPARATOR_CHAR, filename, line_number, line_buffer, 0); *y = SPECIAL_VALUE; } if (*the_line) the_line++; if (*the_line && !isspace (*the_line) && (lineptrs->repeat_part == (char *) NULL) && (lineptrs->appears_part == (char *) NULL)) { /* Error, missing separator between "date"-part and "text"-part. */ if (on_error_exit) my_error (ERR_NO_SEPARATOR_CHAR, filename, line_number, line_buffer, 0); *y = SPECIAL_VALUE; } if (*n && (*d < DAY_MIN || *d > DAY_MAX)) { /* Error, "N'th weekday of month" entry set but invalid day encoded. */ if (on_error_exit) my_error (ERR_INVALID_DAY_FIELD, filename, line_number, line_buffer, *d); *y = SPECIAL_VALUE; } (*len)++; if (lineptrs->repeat_part != (char *) NULL || lineptrs->appears_part != (char *) NULL) while (*the_line && !isspace (*the_line)) { the_line++; (*len)++; } } } else { if (isdigit (*the_line)) the_line++; if (*the_line && !isspace (*the_line) && (lineptrs->repeat_part == (char *) NULL) && (lineptrs->appears_part == (char *) NULL)) { /* Error, missing separator character between "date"-part and "text"-part. */ if (on_error_exit) my_error (ERR_NO_SEPARATOR_CHAR, filename, line_number, line_buffer, 0); *y = SPECIAL_VALUE; } /* Compute the base date of '@' date variable "date"-part of line or '*' N'th weekday of year/weekday WW[W] of N'th week in case an explicit year YYYY is given in the "date"-part. */ i = atoi (str7); ptr_char = str7; if (islower (*hc)) { if (*ptr_char == *ASC_LIT || *ptr_char == *DES_LIT) ptr_char++; if (*ptr_char == *ASC_LIT || *ptr_char == *DES_LIT || isalpha (*ptr_char)) { /* Error, simple weekday name or invalid sign given. */ if (on_error_exit) my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); *hc = '\0'; *d = 0; *y = SPECIAL_VALUE; } } else if (*ptr_char == *ASC_LIT || *ptr_char == *DES_LIT) { /* Error, invalid sign given. */ if (on_error_exit) my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); *hc = '\0'; *d = 0; *y = SPECIAL_VALUE; } /* Now eat all digits. */ while (isdigit (*ptr_char)) ptr_char++; if (*ptr_char && (*ptr_char != RC_REPEAT_CHAR) && (*ptr_char != RC_APPEARS_CHAR)) { *hwd = compare_d_m_name (ptr_char, DAy); if (!*hwd) { /* Error, invalid textual short day name given. */ if (on_error_exit) my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); *hc = '\0'; *d = 0; *y = SPECIAL_VALUE; } } if (*y >= 0) { if (*hc == RC_EASTER_CHAR || *hc == RC_TODAY_CHAR) { if (!precomp_date (i, *hwd, d, m, *y, (*hc == RC_EASTER_CHAR) ? EAster : TOday)) { if (!*y) { /* No explicit year YYYY given in "date"-part of line. */ *hn = i; *d = (*m) = 0; } else { /* Invalid relative date given. */ *hc = '\0'; *d = 0; *y = SPECIAL_VALUE; } } else *hc = '\0'; } else if (islower (*hc)) { /* Try to assign a local date variable if there is set any, else try to assign a global date variable if there is set any, otherwise we have to skip this part. */ if (rc_dvar[IDX (*hc)].dvar_local.dvar_month || rc_dvar[IDX (*hc)].dvar_global.dvar_month) { if (rc_dvar[IDX (*hc)].dvar_local.dvar_month) { *m = (int) rc_dvar[IDX (*hc)].dvar_local.dvar_month; *d = (int) rc_dvar[IDX (*hc)].dvar_local.dvar_day; } else { *m = (int) rc_dvar[IDX (*hc)].dvar_global.dvar_month; *d = (int) rc_dvar[IDX (*hc)].dvar_global.dvar_day; } if (!precomp_date (i, *hwd, d, m, *y, DVar)) { if (!*y) /* No explicit year YYYY given in "date"-part of line. */ *hn = i; else { /* Invalid relative date given. */ *hc = '\0'; *d = 0; *y = SPECIAL_VALUE; } } else *hc = '\0'; } else { /* Error, no such date variable defined. */ if ((warning_level >= 0) && on_error_exit) var_warning (ERR_INVALID_VAR_REFERENCE, (int) *hc, line_buffer, filename, line_number); *hc = '\0'; *d = 0; *y = SPECIAL_VALUE; } } else if (*hc == 'D' || *hc == 'W') { /* Try to compute the '*' N'th weekday of year resp., weekday WW[W] of N'th week statement. */ if (*y == 0) { /* No explicit year YYYY given in "date"-part of line. */ *hn = i; *d = 0; *m = 0; } else if (precomp_nth_wd (i, *hwd, hn, d, m, y, (*hc == 'D') ? DAy : WEek)) *hc = '\0'; } else /* Error, either an invalid date variable character trails the holiday mode character '@', or an invalid character trails the "N'th weekday of year" resp., weekday WW[W] of "N'th week mode" character '*'. */ if (on_error_exit) my_error (ERR_INVALID_DATE_FIELD, filename, line_number, line_buffer, 0); } if (lineptrs->repeat_part != (char *) NULL || lineptrs->appears_part != (char *) NULL) while (*the_line && !isspace (*the_line)) { the_line++; (*len)++; } if (*the_line) the_line++; } } /* Now let's allocate memory for all pointers to texts of the `lineptrs' structure if we work on a resource/include file (except `text_part'). That's absolutely necessary because after a potential resizing of "all strings" elsewhere in a later part of the program, these pointers could get lost otherwise. The caller has to free this memory! */ if (is_rc_file) { /* ONLY IF DETECTED! */ if (lineptrs->day_part != (char *) NULL) { ptr_char = lineptrs->day_part; i = 0; LOOP { if (!*ptr_char || isspace (*ptr_char)) break; i++; ptr_char++; } ptr_char = lineptrs->day_part; lineptrs->day_part = (char *) my_malloc (i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "lineptrs->day_part", 0); strncpy (lineptrs->day_part, ptr_char, i); lineptrs->day_part[i] = '\0'; } /* ONLY IF DETECTED! */ if (lineptrs->repeat_part != (char *) NULL) { ptr_char = lineptrs->repeat_part; i = 0; LOOP { if (!*ptr_char || isspace (*ptr_char)) break; i++; ptr_char++; } ptr_char = lineptrs->repeat_part; lineptrs->repeat_part = (char *) my_malloc (i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "lineptrs->repeat_part", 0); strncpy (lineptrs->repeat_part, ptr_char, i); lineptrs->repeat_part[i] = '\0'; } /* ONLY IF DETECTED! */ if (lineptrs->appears_part != (char *) NULL) { ptr_char = lineptrs->appears_part; i = 0; LOOP { if (!*ptr_char || isspace (*ptr_char)) break; i++; ptr_char++; } ptr_char = lineptrs->appears_part; lineptrs->appears_part = (char *) my_malloc (i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "lineptrs->appears_part", 0); strncpy (lineptrs->appears_part, ptr_char, i); lineptrs->appears_part[i] = '\0'; } if ((lineptrs->repeat_part != (char *) NULL || lineptrs->appears_part != (char *) NULL) && !is_hdy_mode && !*is_weekday_mode && !lineptrs->day_list && !lineptrs->day_range) (*len)--; } /* ALWAYS! */ lineptrs->text_part = the_line; return (lineptrs); } Bool precomp_nth_wd (diff, wd, n, day, month, year, mode) int diff; const int wd; int *n; int *day; int *month; int *year; const Cmode_enum mode; /*! Precomputes the date of the "N'th absolute weekday" `wd' of the year or the date of weekday `wd' of the "N'th absolute week" of the year (returned in `&day', `&month' and `&year'; if `&year' is not concrete the computed `diff' is returned by `&n'), and returns TRUE in case such a date exits in the year, otherwise FALSE. */ { register int the_diff = diff; register int j = DAY_LAST + (days_of_february (*year) == 29); auto int i = 0; if (*year) { if (mode == DAy) { *day = DAY_MIN; *month = MONTH_MIN; if (wd) { if (the_diff == WEEK_MAX + 1 || the_diff == 99) { i = the_diff; diff = WEEK_MAX; } } else { /* If a special value "999" for `diff' is given, set it to last day of year (365|366). */ if (the_diff == 999) diff = j; i = diff--; } } else { register int k = (iso_week_number) ? DAY_MIN : start_day; /* `mode' == WEek. */ diff = i = weekno2doy (the_diff, *year, iso_week_number, k); if (diff > DAY_MIN) { diff--; k = j - diff; if (iso_week_number) j = wd; else j = SYEAR (wd, start_day); /* If a weekday of the LAST week (==99) is wanted, but this weekday doesn't exist anymore in the last week of the current year by reason it is already located in the next year, let's use the last date at which this weekday occurs in the current year instead. */ if ((the_diff == 99) && (*year != YEAR_MAX) && (j > k)) diff -= DAY_MAX; } else diff = 1; if (doy2date (diff, (days_of_february (*year) == 29), day, month)) diff = 1; } } if (!precomp_date (diff, wd, day, month, *year, DVar)) { if (!*year) { /* No explicit year YYYY given in "date"-part of line. */ *day = 0; *month = 0; *n = diff; } else { /* Invalid relative date given. */ *day = 0; *month = 0; *year = SPECIAL_VALUE; } return (FALSE); } else { if (wd && (mode == DAy)) { register int year_old = (*year); if (i) for (diff = DAY_MIN; diff <= DAY_MAX; diff++) (void) next_date (day, month, year); if (((*day <= DAY_MAX) && (*year != year_old)) || weekday_of_date (DAY_MIN, MONTH_MIN, *year) == wd) for (diff = DAY_MIN; diff <= DAY_MAX; diff++) (void) prev_date (day, month, year); if (i == WEEK_MAX + 1) { i = DAY_MIN; *month = MONTH_MIN; (void) precomp_date (WEEK_MAX, wd, &i, month, *year, DVar); if ((*day == i) && (weekday_of_date (DAY_MIN, MONTH_MIN, *year) != wd)) { /* Error, no such 53rd weekday WW[W] of year. */ *day = 0; *month = 0; *year = SPECIAL_VALUE; return (FALSE); } } } else /* `mode' == WEek. */ if (!wd || i < DAY_MIN || ((the_diff <= 1) && (*day == DAY_MAX + 1) && (wd == DAY_MIN))) { if (*day >= DAY_MAX + i) *day -= DAY_MAX; else if (!wd && (i < DAY_MIN || ((*day == DAY_MIN + 1) && (i == DAY_MIN)))) (*day)--; if (*day < DAY_MIN) { /* Error, N'th week doesn't contain such a weekday WW[W]. */ *day = 0; *month = 0; *year = SPECIAL_VALUE; return (FALSE); } } } return (TRUE); } Bool precomp_date (diff, wd, day, month, year, mode) int diff; const int wd; int *day; int *month; const int year; const Cmode_enum mode; /*! Precomputes the date relative to Easter Sunday's date (mode==EAster), relative to today's date (mode==TOday) or relative to date variables date (mode==DVar) plus displacement `diff' or displacement `diff' `wd' (returned in `&day' and `&month'), and returns TRUE in case such a date exits in the year, otherwise FALSE. */ { register int i; if (((mode == EAster) && (year >= EASTER_MIN) && (year <= EASTER_MAX)) || ((mode == TOday || mode == DVar) && (year >= YEAR_MIN) && (year <= YEAR_MAX))) { switch (mode) { case EAster: i = knuth_easter_formula (year); break; case TOday: *day = act_day; *month = act_month; /* Fallthrough. */ default: if (!valid_date (*day, *month, year)) /* Error, invalid date given (e.g. 19010229). */ return (FALSE); i = day_of_year (*day, *month, year); } if (wd) { /* Calculate date like: 3rd(`diff') Friday(`wd') before Easter Sunday's date. */ if (wd < DAY_MIN || wd > DAY_MAX) /* Error, invalid weekday specified. */ return (FALSE); else if (!diff) /* Error, a weekday but no difference specified. */ return (FALSE); else if (diff == -99) { /* Detect first weekday `wd' of year. */ *month = MONTH_MIN; *day = eval_holiday (DAY_MIN, *month, year, wd, TRUE); return (TRUE); } else if (diff == 99) { /* Detect last weekday `wd' of year. */ *month = MONTH_MAX; *day = eval_holiday (dvec[MONTH_MAX - 1], *month, year, wd, FALSE); return (TRUE); } else { register int act_wd; auto int d; auto int m; auto int y = year; (void) doy2date (i, (days_of_february (y) == 29), &d, &m); act_wd = weekday_of_date (d, m, y); if (act_wd != wd) { if (diff < 0) { /* Try to detect first weekday `wd' before actual date. */ while (act_wd != wd) { (void) prev_date (&d, &m, &y); act_wd = weekday_of_date (d, m, y); i--; } diff++; } else { /* Try to detect first weekday `wd' after actual date. */ while (act_wd != wd) { (void) next_date (&d, &m, &y); act_wd = weekday_of_date (d, m, y); i++; } diff--; } } if (y != year) /* Error, we have left the year bounds. */ return (FALSE); /* Calculate the difference. */ i += diff * DAY_MAX; } } else { /* Calculate the difference. */ if (diff == -999) i = 1; else if (diff == 999) i = DAY_LAST + (days_of_february (year) == 29); else i += diff; } if (doy2date (i, (days_of_february (year) == 29), day, month)) return (TRUE); } return (FALSE); } void set_dvar (line_buffer, lineptrs, filename, line_number, mode) const char *line_buffer; Line_struct *lineptrs; const char *filename; const long line_number; const Var_enum mode; /*! Scans given string `line_buffer' and tries to detect a valid date variable reference, which can be: 1) DVAR=``NOTHING'' --> Undefine local DVAR so we are able to use its global value. If `mode' is set to "GLobal", this "empty" assignment results an error. 2) DVAR=MMDD --> Assignment of a constant date expression MMDD. 3) DVAR=MMWW[W]N --> Assignment of a dynamic date expression N'th weekday WW[W] of month MM. 4) DVAR=*dN[WW[W]] --> Assignment of a dynamic date expression N'th weekday WW[W] of year. 5) DVAR=*wN[WW[W]] --> Assignment of a dynamic date expression weekday WW[W] of N'th week of year. 6) DVAR=DVAR --> Assignment of a date variable DVAR, which must be already defined. 7) DVAR=DVAR[+|-]N --> Assignment of a date variable DVAR, which must be already defined, plus/minus N days. 8) DVAR=DVAR[+|-]NWW[W] --> Assignment of a date variable DVAR, which must be already defined, plus/minus N weekdays WW[W]. 9) DVAR++ --> Simple incrementation by one day. 10) DVAR-- --> Simple decrementation by one day. 11) DVAR+=[+|-]N --> Addition of a constant numeric factor [+|-]N. 12) DVAR-=[+|-]N --> Subtraction of a constant numeric factor [+|-]N. 13) DVAR+=[+|-]NWW[W] --> Addition of [+|-]N weekdays WW[W]. 14) DVAR-=[+|-]NWW[W] --> Subtraction of [+|-]N weekdays WW[W]. A date variable name is valid from a...d, f...s and u...z (24 variables totally, case-insensitive), because the `e' variable is always reserved for the current Easter Sunday's date and the `t' variable is always reserved for today's date, so we must skip any reference to these variables. No whitespace characters may occur between the date variable, operator and value. Stores assignment (1)...(8) at position `date variable' into global date variable vector `rc_dvar[]' (either the local or the global ones, depending on given `mode', which can be either "GLobal" or "LOcal". Assignment (1), (3)...(5), (7), (8) and operation (9)...(14) may ONLY be used on local date variables. */ { register int error = 0; auto char dvar = '\0'; /* Skip and return error if invalid date variable name is given. */ if (isalpha (*line_buffer) && (tolower (*line_buffer) != RC_EASTER_CHAR) && (tolower (*line_buffer) != RC_TODAY_CHAR)) { auto int i; auto int len; auto int d = 0; auto int m = 0; auto int y = year; auto int n; auto const char *ptr_char = line_buffer; auto char op; auto char op2; static char str20[21]; auto Bool is_weekday_mode; auto Bool dvar_with_displacement = FALSE; auto Bool dvar_add_sub = FALSE; auto Bool dvar_inc_dec = FALSE; ptr_char++; /* Check if assignment (1)...(8) is given. */ if (*ptr_char != *RC_VAR_ASSIGN) { if ((*ptr_char != *RC_VAR_ADD) && (*ptr_char != *RC_VAR_SUB)) /* Error, invalid first operator character found (neither '+' nor '-' given). */ error = ERR_ILLEGAL_VAR_DEFINITION; else { /* Check if operation (9)...(14) is given. */ op = *ptr_char++; if (*ptr_char) { op2 = *ptr_char++; if (op2 == op || op2 == *RC_VAR_ASSIGN) { if (mode == LOcal) m = (int) rc_dvar[IDX (*line_buffer)].dvar_local. dvar_month; if (m) { if (op == op2) { while (isspace (*ptr_char)) ptr_char++; if (*ptr_char) /* Error, found invalid trailing characters. */ error = ERR_ILLEGAL_VAR_OPERATION; else /* Either DVAR++ or DVAR-- found. */ dvar_inc_dec = TRUE; } else { /* Either DVAR+=... or DVAR-=... found. */ dvar_add_sub = TRUE; /* Respect a trailing sign of the value. */ if (*ptr_char == *RC_VAR_ADD || *ptr_char == *RC_VAR_SUB) { if (op == *RC_VAR_SUB) { if (*ptr_char == *RC_VAR_ADD) op = *RC_VAR_SUB; else op = *RC_VAR_ADD; } else op = *ptr_char; ptr_char++; } } if (!error) goto LABEL_compute_dvar; } else { if (mode == GLobal) /* Error, operation given in global mode. */ error = ERR_ILLEGAL_VAR_OPERATION; else /* Error, date variable undefined. */ error = ERR_INVALID_VAR_REFERENCE; } } else /* Error, invalid second operator character found (no '=', '+' or '-' given resp., illegal combination of '+' and '-'). */ error = ERR_ILLEGAL_VAR_OPERATION; } else /* Error, incomplete operator found (neither '+=', '-=', '++' nor '--' given). */ error = ERR_ILLEGAL_VAR_OPERATION; } } else { /* Assignment (1)...(8) to date variable found (simple '=' given), scan expression part of date variable definition. Assignments (1), (3)...(5), (7), (8) are ONLY allowed for local date variables. */ i = 0; ptr_char++; if (!*ptr_char) { /* No date assigned ("empty" assignment), set the date variable slot to zero so we are able to use its possibly set global value if this variable is referenced again at a later place within the sequence. This kind of assignment is allowed for local date variables only; for global date variables, we have to report an error instead. */ if (mode == GLobal) /* Error, "empty" assignment on a global date variable given. */ error = ERR_ILLEGAL_VAR_DEFINITION; } else { if (isalpha (*ptr_char) && !isalpha (*(ptr_char + 1))) { dvar = op = *ptr_char; ptr_char++; if (!*ptr_char || isspace (*ptr_char)) { if (tolower (dvar) == RC_EASTER_CHAR || tolower (dvar) == RC_TODAY_CHAR) /* Error, date variable is invalid. */ error = ERR_INVALID_VAR_ASSIGNMENT; else { /* If the character after '=' is alphabetic and is not trailed by digits, assume assignment (6) is given. */ if (mode == GLobal) { m = (int) rc_dvar[IDX (dvar)].dvar_global. dvar_month; d = (int) rc_dvar[IDX (dvar)].dvar_global. dvar_day; } else { m = (int) rc_dvar[IDX (dvar)].dvar_local. dvar_month; d = (int) rc_dvar[IDX (dvar)].dvar_local.dvar_day; } if (!m) /* Error, date variable undefined. */ error = ERR_INVALID_VAR_REFERENCE; } } else { /* Check if assignments (7)...(8) are given. */ if (*ptr_char == *ASC_LIT || *ptr_char == *DES_LIT || isdigit (*ptr_char)) { ptr_char--; dvar_with_displacement = TRUE; goto LABEL_compute_dvar; } else /* Error, invalid date variable name given. */ error = ERR_ILLEGAL_VAR_DEFINITION; } } else { LABEL_compute_dvar: /* Assuming the string vectors have a minimum length of 1024 Bytes and the maximum text length of a date variable assignment/operation in a line may not be longer than 20 Bytes, let's use these 20 Bytes of the line only. */ strncpy (str20, ptr_char, 20); str20[20] = '\0'; if (dvar_with_displacement) sprintf (s5, "%0*d%c%s", len_year_max, y, RC_HDY_CHAR, str20); else if (dvar_add_sub) sprintf (s5, "%0*d%c%c%c%s", len_year_max, y, RC_HDY_CHAR, *line_buffer, op, str20); else if (dvar_inc_dec) sprintf (s5, "%0*d%c%c%c1", len_year_max, y, RC_HDY_CHAR, *line_buffer, op); else sprintf (s5, "%0*d%s", len_year_max, y, str20); /* `rc_get_date()' arguments `len' and `i' are dummys only and must be given. They are not used further! */ (void) rc_get_date (s5, lineptrs, FALSE, &is_weekday_mode, &d, &m, &y, &n, &len, &op, &i, &i, filename, line_number, line_buffer, TRUE); if (y != SPECIAL_VALUE) { /* Check if assignments (3)...(5) are given. */ if ((mode == GLobal) && (op || is_weekday_mode)) error = ERR_ILLEGAL_VAR_OPERATION; else { /* Assignments (2)...(3) are given. */ if (m < MONTH_MIN || m > MONTH_MAX) /* Error, invalid month given. */ error = ERR_ILLEGAL_VAR_DEFINITION; else { i = dvec[m - 1]; if (m == 2) i += is_leap_year; /* Check for assignment (3) DVAR=MMWW[W]N (WW=mo...su, WWW=mon...sun, N=1...5|9), e.g.: x=03mo3 sets `x' to date of 3rd Monday in March. e.g.: x=03mon3 sets `x' to date of 3rd Monday in March, too. */ if (is_weekday_mode) { if (n == 9) d = eval_holiday (i, m, year, d, FALSE); else { d = eval_holiday (DAY_MIN, m, year, d, TRUE); d += (DAY_MAX * (n - 1)); if (d > i) /* Month contains no such "N'th weekday of month", ignore the assignment. */ error = ERR_INVALID_VAR_ASSIGNMENT; } } else { /* Assume assignment (1) is given. */ if (d == 99) d = i; /* We must avoid an assigment like DVAR=0229 if we are in fiscal year mode and the next year is no leap year and no `--leap-day=ARG' option is given! */ if ((fiscal_month > MONTH_MIN + 1) && (days_of_february (year + 1) == 28) && !rc_feb_29_to_feb_28 && !rc_feb_29_to_mar_01 && (m == 2) && (d == 29)) /* Year contains no such date, ignore the assignment. */ error = ERR_INVALID_VAR_ASSIGNMENT; else { if (d > i) { manage_leap_day (&d, &m, year, line_buffer, filename, line_number); i = d; } if (d < DAY_MIN || d > i) /* Error, invalid day given. */ error = ERR_ILLEGAL_VAR_DEFINITION; } } } } } else /* Year contains no such date, ignore the assignment. */ error = ERR_INVALID_VAR_ASSIGNMENT; } } } if (!error) { /* Store the assigned/calculated date. */ if (mode == GLobal) { rc_dvar[IDX (*line_buffer)].dvar_global.dvar_month = (char) m; rc_dvar[IDX (*line_buffer)].dvar_global.dvar_day = (char) d; } else { rc_dvar[IDX (*line_buffer)].dvar_local.dvar_month = (char) m; rc_dvar[IDX (*line_buffer)].dvar_local.dvar_day = (char) d; } } } else /* Error, invalid date variable name given (not a...d, f...s, u...z). */ error = ERR_ILLEGAL_VAR_DEFINITION; if (error) { if ((mode == GLobal) && (error == ERR_ILLEGAL_VAR_DEFINITION || error == ERR_ILLEGAL_VAR_OPERATION)) warning_level = WARN_LVL_MAX; if (warning_level >= 0) { if (!dvar) dvar = *line_buffer; var_warning (error, (int) dvar, line_buffer, filename, line_number); } } } void set_tvar (line_buffer, filename, line_number, mode) const char *line_buffer; const char *filename; const long line_number; const Var_enum mode; /*! Scans given string `line_buffer' and tries to detect a valid text variable reference, which is: 1) $TVAR=[TEXT] --> Assignment of a constant text expression TEXT to TVAR. TEXT may contain references to other TVAR's, which are always expanded recursively before the assignment is performed! 2) $TVAR?COMMAND --> Interpreted assignment of that text to TVAR, which is created by the COMMAND on the STDOUT channel. The text may contain references to other TVAR's, which are expanded in case TVAR is referenced at a later place of program execution. 3) $TVAR:COMMAND --> Uninterpreted assignment of that text to TVAR, which is created by the COMMAND on the STDOUT channel. References to other TVAR's are not expanded! 4) $TVAR++ --> Simple incrementation by one (length preserved). 5) $TVAR-- --> Simple decrementation by one (length preserved). 6) $TVAR+=[+|-]N --> Addition of a constant numeric factor [+|-]N (length preserved). 7) $TVAR-=[+|-]N --> Subtraction of a constant numeric factor [+|-]N (length preserved). A text variable name is valid from $a...$z (totally 26 variables, case-insensitve). No whitespace characters may occur between the text variable prefix character '$' and the text variable letter itself, the operator and the value. In general, assignment (1)...(3) is stored at position `text variable' into the global text variable vector `rc_tvar[]' (either the local or the global ones, depending on given `mode', which can be either "GLobal" or "LOcal". Assignment (2) inserts the text created by the COMMAND into the TVAR as is, but only if it is allowed (`--execute-command' option must be given). Assignment (3) inserts the text created by the COMMAND into the TVAR postprocessed by the Txt2gcal program, but only if it is allowed (`--execute-command' option must be given). Operation (4)...(7) may ONLY be used on local text variables (if they contain integer values). Uses the global text buffers `s5' and `s7' internally. Returns FALSE if an error occurs, otherwise TRUE. */ { register int error = 0; auto char tvar = '\0'; if (*line_buffer != RC_TVAR_CHAR) /* Error, no leading '$' character (text variable prefix) given. */ error = ERR_ILLEGAL_VAR_DEFINITION; else { auto char *ptr_char = (char *) line_buffer; /* Skip the trailing '$' character of a text variable by default. */ ptr_char++; /* Skip and return error if invalid text variable name is given. */ if (!isalpha (*ptr_char)) /* Error, invalid text variable name given (not a...z resp., A...Z). */ error = ERR_ILLEGAL_VAR_DEFINITION; else { tvar = *ptr_char++; /* Check if assignment (1)...(3) or operation (4)...(7) is given. */ if ((*ptr_char != *RC_VAR_ASSIGN) && (*ptr_char != *RC_TVAR_ICMD_ASSIGN) && (*ptr_char != *RC_TVAR_UCMD_ASSIGN) && (*ptr_char != *RC_VAR_ADD) && (*ptr_char != *RC_VAR_SUB)) /* Error, invalid first operator character found (neither '=' nor '+' nor '-' nor '?' nor ':' given). */ error = ERR_ILLEGAL_VAR_DEFINITION; else { register int i = 0; register int j; register int len = 0; auto char *ptr_tvar; auto char op; auto char op2 = '\0'; auto char op3 = op2; auto Bool is_quoted = FALSE; auto Bool restore_tvar = FALSE; op = *ptr_char++; if (op) { op2 = *ptr_char; if (op2) op3 = *(ptr_char + 1); } /* Check if the assigned TEXT contains any references to other TVAR variables, if so, insert their TEXT's. */ ptr_tvar = strchr (ptr_char, RC_TVAR_CHAR); if (ptr_tvar != (char *) NULL) { auto Bool global_tvar_defined; auto Bool local_tvar_set; do { len = (int) (ptr_tvar - ptr_char); if (len) { while ((Uint) len + i >= maxlen_max) resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); strncpy (s5 + i, ptr_char, len); i += len; } s5[i] = '\0'; if (i) if (s5[i - 1] == QUOTE_CHAR) is_quoted = TRUE; ptr_tvar++; if (!is_quoted && isalpha (*ptr_tvar)) { global_tvar_defined = local_tvar_set = FALSE; if (rc_tvar[IDX (*ptr_tvar)].tvar_global. tvar_text != (char *) NULL) global_tvar_defined = TRUE; if (rc_tvar[IDX (*ptr_tvar)].tvar_local.tvar_text != (char *) NULL) if (*rc_tvar[IDX (*ptr_tvar)].tvar_local. tvar_text) local_tvar_set = TRUE; /* Try to insert the value of this TVAR (that's its TEXT). */ j = 0; if (global_tvar_defined && (mode == GLobal || ((mode == LOcal) && !local_tvar_set))) { j = (int) strlen (rc_tvar[IDX (*ptr_tvar)]. tvar_global.tvar_text); if (j) { while ((Uint) i + j >= maxlen_max) resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); strcat (s5, rc_tvar[IDX (*ptr_tvar)]. tvar_global.tvar_text); } } else if ((mode == LOcal) && local_tvar_set) { j = (int) strlen (rc_tvar[IDX (*ptr_tvar)]. tvar_local.tvar_text); while ((Uint) i + j >= maxlen_max) resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); strcat (s5, rc_tvar[IDX (*ptr_tvar)].tvar_local. tvar_text); } if (((mode == GLobal) && global_tvar_defined) || ((mode == LOcal) && (global_tvar_defined || local_tvar_set)) || ((tvar == *ptr_tvar) && (((mode == GLobal) && !global_tvar_defined) || ((mode == LOcal) && !global_tvar_defined && !local_tvar_set)))) { /* Skip TVAR name. */ len += 2; if (j) i += j; else /* If TVAR is "empty", remove a possibly obsolete whitespace character. */ if (i) if (isspace (s5[i - 1]) && isspace (*(ptr_tvar + 1))) s5[--i] = '\0'; } else restore_tvar = TRUE; } else restore_tvar = TRUE; /* If TVAR isn't defined, or quoted, or an invalid TVAR name is found, don't touch it. */ if (restore_tvar) { if ((Uint) i + 1 >= maxlen_max) resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); s5[i++] = RC_TVAR_CHAR; len++; if (*ptr_tvar) { if ((Uint) i + 1 >= maxlen_max) resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); s5[i++] = *ptr_tvar; len++; } s5[i] = '\0'; } ptr_char += len; ptr_tvar = strchr (ptr_char, RC_TVAR_CHAR); restore_tvar = is_quoted = FALSE; } while (ptr_tvar != (char *) NULL); /* Add possibly trailing ordinary text. */ if (*ptr_char) { i += (int) strlen (ptr_char); while ((Uint) i >= maxlen_max) resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); strcat (s5, ptr_char); } i++; ptr_char = s5; } else i = (int) strlen (ptr_char) + 1; if (op == *RC_VAR_ASSIGN || op == *RC_TVAR_ICMD_ASSIGN || op == *RC_TVAR_UCMD_ASSIGN) { if (rc_execute_command && (i > 1) && (op == *RC_TVAR_ICMD_ASSIGN || op == *RC_TVAR_UCMD_ASSIGN)) { static char *txt2gcal_prgr = (char *) NULL; auto char *ptr_tfn; auto char *the_command; /* Assignment (2)...(3) to text variable found, (':' or '?' given), so perform all necessary actions. */ ptr_tfn = TMPFILENAME; if (ptr_tfn == (char *) NULL) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 2L, "tmpnam()=", 0); rc_tvar_tfn = (char *) my_malloc (strlen (ptr_tfn) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_tvar_tfn", 0); strcpy (rc_tvar_tfn, ptr_tfn); rc_tvar_tfp = fopen (rc_tvar_tfn, "w"); if (rc_tvar_tfp == (FILE *) NULL) my_error (ERR_WRITE_FILE, __FILE__, ((long) __LINE__) - 2L, rc_tvar_tfn, 0); if (op == *RC_TVAR_ICMD_ASSIGN) i += (strlen (REDIRECT_OUT) + strlen (rc_tvar_tfn)); else { if (txt2gcal_prgr == (char *) NULL) { /* Detect the name of the Txt2gcal executable. */ # if !defined(AMIGA) || defined(__GNUC__) txt2gcal_prgr = getenv (ENV_VAR_TXT2GCALPROG); if (txt2gcal_prgr != (char *) NULL) { if (!*txt2gcal_prgr) txt2gcal_prgr = TXT2GCAL_PRGR; } else # endif /* !AMIGA || __GNUC__ */ txt2gcal_prgr = TXT2GCAL_PRGR; } i += (strlen (PIPELINE) + strlen (txt2gcal_prgr) + strlen (REDIRECT_OUT) + strlen (rc_tvar_tfn)); } j = i; the_command = (char *) my_malloc (i, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_tvar_tfn", 0); if (op == *RC_TVAR_ICMD_ASSIGN) sprintf (the_command, "%s%s%s", ptr_char, REDIRECT_OUT, rc_tvar_tfn); else sprintf (the_command, "%s%s%s%s%s", ptr_char, PIPELINE, txt2gcal_prgr, REDIRECT_OUT, rc_tvar_tfn); /* Execute the command and redirect the STDOUT output of it into TEMPFILE NOW. */ i = my_system (the_command); if (warning_level >= 0) { while ((Uint) j + LEN_SINGLE_LINE >= maxlen_max) resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); if (i == -1) { /* Error, `system()' function failed. */ sprintf (s5, _ ("Cannot execute command in file `%s'\nLine: %ld %s"), filename, line_number, the_command); print_text (stderr, s5); if (warning_level >= WARN_LVL_MAX) { j = (int) strlen (the_command); if ((Uint) j >= maxlen_max - 9) resize_all_strings (j + 9, FALSE, __FILE__, (long) __LINE__); sprintf (s5, "system(%s)=", the_command); my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 22L, s5, i); } error = ERR_INVALID_VAR_ASSIGNMENT; } else { /* Report the exit code of command executed by the `system()' function. */ sprintf (s5, _ ("Command executed (exit code=%d) in file `%s'\nLine %ld: %s"), i, filename, line_number, the_command); print_text (stderr, s5); /* The command executed by the `system()' function returned a value not equal zero, so we terminate all further processing now with ERR_EXTERNAL_CMD_FAILURE exit status. */ if (i && (warning_level >= WARN_LVL_MAX)) my_exit (ERR_EXTERNAL_CMD_FAILURE); } } free (the_command); if (!error) { auto long lnumber = 0L; auto int llength; auto int in_pool = 0; static char rc_nl[2] = { RC_NL_CHAR, '\0' }; auto char *pool = (char *) NULL; auto char *ptr_pool = (char *) NULL; auto Bool b_dummy; /* Necessary dummy for `file_read_line()' function. */ /* Command executed successfully, we can close the TEMPFILE and re-open it. */ if (fclose (rc_tvar_tfp) == EOF) my_error (ERR_WRITE_FILE, __FILE__, ((long) __LINE__) - 1L, rc_tvar_tfn, 0); rc_tvar_tfp = fopen (rc_tvar_tfn, "r"); if (rc_tvar_tfp == (FILE *) NULL) my_error (ERR_READ_FILE, __FILE__, ((long) __LINE__) - 2L, rc_tvar_tfn, 0); /* Now process then contents of TEMPFILE according to the selected assignment mode. */ pool = (char *) my_malloc (BUF_LEN + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "pool", 0); j = 0; *s5 = '\0'; while ((ptr_pool = file_read_line (rc_tvar_tfp, &s7, &in_pool, pool, ptr_pool, rc_tvar_tfn, &lnumber, &llength, COmmon, &b_dummy, &b_dummy, &b_dummy)) != (char *) NULL) { if (op == *RC_TVAR_ICMD_ASSIGN) { /* Interpret the contents of TEMPFILE. */ if ((Uint) j + llength + 2 >= maxlen_max) resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); if (*s7) strcat (s5, s7); strcat (s5, rc_nl); j += (llength + 1); } else { /* Do not interpret the contents of TEMPFILE, so skip the date-part which was created by the Txt2gcal executable. */ i = 0; ptr_char = s7; while (!isspace (*ptr_char)) { ptr_char++; i++; } ptr_char++; i = llength - i; break; } } free (pool); if (op == *RC_TVAR_ICMD_ASSIGN) { /* Remove the last RC_NL_CHAR of the line. */ i = j; s5[i - 1] = '\0'; /* Check if the assigned TEXT contains any '\n' newline characters, if so, exchange them by Gcal's RC_NL_CHAR (=='~') characters. */ ptr_char = strchr (s5, '\n'); if (ptr_char != (char *) NULL) do { *ptr_char = RC_NL_CHAR; ptr_char = strchr (s5, '\n'); } while (ptr_char != (char *) NULL); ptr_char = s5; } /* And do the necessary ending operations. */ if (fclose (rc_tvar_tfp) == EOF) my_error (ERR_WRITE_FILE, __FILE__, ((long) __LINE__) - 1L, rc_tvar_tfn, 0); j = unlink (rc_tvar_tfn); if (j) my_error (ERR_INTERNAL_C_FUNC_FAILURE, __FILE__, ((long) __LINE__) - 2L, "unlink(rc_tvar_tfn)=", j); free (rc_tvar_tfn); rc_tvar_tfn = (char *) NULL; } } /* Assignment (1)...(3) to text variable found, so store TEXT into the according TVAR text variable slot. */ if (mode == GLobal) { if (rc_tvar[IDX (tvar)].tvar_global.tvar_text == (char *) NULL) rc_tvar[IDX (tvar)].tvar_global.tvar_text = (char *) my_malloc (i, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "rc_tvar[IDX(tvar)].tvar_global.tvar_text", IDX (tvar)); else rc_tvar[IDX (tvar)].tvar_global.tvar_text = (char *) my_realloc ((VOID_PTR) (rc_tvar[IDX (tvar)].tvar_global. tvar_text), i, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_tvar[IDX(tvar)].tvar_global.tvar_text", IDX (tvar)); strcpy (rc_tvar[IDX (tvar)].tvar_global.tvar_text, ptr_char); } else { /* We have to store the assigned text. */ if (rc_tvar[IDX (tvar)].tvar_local.tvar_text == (char *) NULL) rc_tvar[IDX (tvar)].tvar_local.tvar_text = (char *) my_malloc (i, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "rc_tvar[IDX(tvar)].tvar_local.tvar_text", IDX (tvar)); else rc_tvar[IDX (tvar)].tvar_local.tvar_text = (char *) my_realloc ((VOID_PTR) (rc_tvar[IDX (tvar)].tvar_local. tvar_text), i, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_tvar[IDX(tvar)].tvar_local.tvar_text", IDX (tvar)); strcpy (rc_tvar[IDX (tvar)].tvar_local.tvar_text, ptr_char); } } else { auto Bool tvar_inc_dec = FALSE; /* Check if operation (4)...(7) is given. */ if (op2 == op || op2 == *RC_VAR_ASSIGN) { if (mode == LOcal) { if (rc_tvar[IDX (tvar)].tvar_local.tvar_text != (char *) NULL) { if (*rc_tvar[IDX (tvar)].tvar_local.tvar_text) { if (op == op2) { if (op3 && !isspace (op3)) /* Error, invalid trailing character found. */ error = ERR_ILLEGAL_VAR_OPERATION; else { /* Either TVAR++ or TVAR-- found, so check if TVAR contains an integer value. */ ptr_char = rc_tvar[IDX (tvar)].tvar_local. tvar_text; /* Eat one possibly leading sign. */ if (*ptr_char == *RC_VAR_ADD || *ptr_char == *RC_VAR_SUB) ptr_char++; while (isdigit (*ptr_char)) ptr_char++; if (*ptr_char) /* Error, TVAR contains no integer value. */ error = ERR_ILLEGAL_VAR_OPERATION; else tvar_inc_dec = TRUE; } } else { /* Either TVAR+=... or TVAR-=... found. */ ptr_char++; /* Respect a possibly leading sign of value. */ if (*ptr_char == *RC_VAR_ADD || *ptr_char == *RC_VAR_SUB) { if (op == *RC_VAR_SUB) { if (*ptr_char == *RC_VAR_ADD) op = *RC_VAR_SUB; else op = *RC_VAR_ADD; } else op = *ptr_char; ptr_char++; } } } else /* Error, text variable unset. */ error = ERR_INVALID_VAR_REFERENCE; } else /* Error, text variable undefined. */ error = ERR_INVALID_VAR_REFERENCE; } else /* Error, operation given in global mode. */ error = ERR_ILLEGAL_VAR_OPERATION; } else /* Error, invalid second operator character found (no '=', '+' or '-' given resp., illegal combination of '+' and '-'). */ error = ERR_ILLEGAL_VAR_OPERATION; if (!error) { static Slint num; /* Perform the operation and store the calculated value. */ if (tvar_inc_dec) { len = strlen (rc_tvar[IDX (tvar)].tvar_local.tvar_text); num = atol (rc_tvar[IDX (tvar)].tvar_local.tvar_text); if (op == *RC_VAR_ADD) num++; else num--; } else { i = 0; while (isdigit (*ptr_char)) s5[i++] = *ptr_char++; while (isspace (*ptr_char)) ptr_char++; if (i && !*ptr_char) { s5[i] = '\0'; len = strlen (rc_tvar[IDX (tvar)].tvar_local. tvar_text); num = atol (rc_tvar[IDX (tvar)].tvar_local. tvar_text); if (op == *RC_VAR_ADD) num += atol (s5); else num -= atol (s5); } else /* Error, non-numerical value given. */ error = ERR_ILLEGAL_VAR_OPERATION; } /* Store the calculated value. */ if (!error) { sprintf (s5, "%0*ld", len, num); len = (int) strlen (s5); if (len != (int) strlen (rc_tvar[IDX (tvar)].tvar_local. tvar_text)) rc_tvar[IDX (tvar)].tvar_local.tvar_text = (char *) my_realloc ((VOID_PTR) (rc_tvar[IDX (tvar)].tvar_local. tvar_text), len + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "rc_tvar[IDX(tvar)].tvar_local.tvar_text", IDX (tvar)); strcpy (rc_tvar[IDX (tvar)].tvar_local.tvar_text, s5); } } } } } } if (error) { if ((mode == GLobal) && (error == ERR_ILLEGAL_VAR_DEFINITION || error == ERR_ILLEGAL_VAR_OPERATION)) /* These errors always cause termination of program in global mode. */ warning_level = WARN_LVL_MAX; if (warning_level >= 0) { if (*line_buffer == RC_TVAR_CHAR) tvar = *(line_buffer + 1); if (!tvar) tvar = *line_buffer; var_warning (error, (int) tvar, line_buffer, filename, line_number); } } } void nth_weekday_of_month (d, m, y, n, is_weekday_mode) int *d; int *m; int *y; const int *n; Bool *is_weekday_mode; /*! If "N'th weekday of month" field is encoded: Compute the according date and return it in `&d', `&m' and `&y'. If a conversion error occurs, return SPECIAL_VALUE in `&y'. */ { register int i; register int j = 0; auto int dd = 0; auto int mm = 0; auto Bool year_set = FALSE; auto Bool year_modified = FALSE; if (*n && (!rc_year_flag || (*m && rc_year_flag)) && (!rc_period_list || (*m && rc_period_list))) { if (!*m && (is_3month_mode || is_3month_mode2 || fiscal_month > MONTH_MIN)) /* If fiscal year resp., 3 month mode and no month encoded, skip evaluation. */ ; else { *is_weekday_mode = FALSE; if (!*y) { year_set = TRUE; *y = year; } if (!*m) { *m = month; /* A `-c[N]w' or `-ct' option set: Lookahead whether the week ends in the month it started. */ if (rc_week_flag || rc_tomorrow_flag) { /* <0000|YYYY>00WW[W]N event is in last week of last month of previous year. */ if ((*n > 3) && (day < DAY_MIN)) { i = (days_of_february (year - 1) == 29); j = day + DAY_LAST + i; (void) doy2date (j, i, &dd, &mm); } else if (*n == 1) { /* <0000|YYYY>00WW[W]N event is in first week of next month of actual year. */ if ((day + DAY_MAX - 1 > 0) && (day + DAY_MAX - 1 < DAY_LAST + is_leap_year + 1)) (void) doy2date (day + DAY_MAX - 1, is_leap_year, &dd, &mm); else { /* <0000|YYYY>00WW[W]N event is in first week of first month of next year. */ i = (days_of_february (year + 1) == 29); j = (day + DAY_MAX - 1) - (DAY_LAST + is_leap_year); (void) doy2date (j, i, &dd, &mm); } } dd = *d; } } else if (year_set && (rc_week_flag || rc_tomorrow_flag)) { if ((*n == 9) && (*m == MONTH_MAX) && (*y > YEAR_MIN) && (day < DAY_MIN)) { year_modified = TRUE; (*y)--; } else if ((*n == 1) && (*m == MONTH_MIN) && (*y < YEAR_MAX) && (day + DAY_MAX >= DAY_LAST + is_leap_year)) { year_modified = TRUE; (*y)++; } } if (year_set && (*y < YEAR_MAX) && ((fiscal_month > MONTH_MIN) && (*m < fiscal_month))) if (!year_modified) (*y)++; if (*m == 2) i = days_of_february (*y); else i = dvec[*m - 1]; if (*n == 9) *d = eval_holiday (i, *m, *y, *d, FALSE); else { *d = eval_holiday (DAY_MIN, *m, *y, *d, TRUE); *d += (DAY_MAX * (*n - 1)); /* The "N'th weekday of month" doesn't occur in month: Skip it. */ if (*d > i) *y = SPECIAL_VALUE; } /* A `-c[N]w' or `-ct' option set: Correction for lookahead. */ if (mm && (rc_week_flag || rc_tomorrow_flag)) { if ((*n == 1) && (mm != *m)) { *m = mm; if ((day + DAY_MAX - 1 > 0) && (day + DAY_MAX - 1 < DAY_LAST + is_leap_year + 1)) /* Void, don't change the year of event. */ ; else if (year_set && (year < YEAR_MAX)) *y = year + 1; *d = eval_holiday (DAY_MIN, *m, *y, dd, TRUE); } else if ((*n > 3) && ((adate_set && (mm == *m)) || (!adate_set && (mm != *m)))) { if (!adate_set) *m = mm; if (year_set && (year > YEAR_MIN)) *y = year - 1; if (*n == 9) *d = eval_holiday (dvec[MONTH_MAX - 1], *m, *y, dd, FALSE); else { *d = eval_holiday (DAY_MIN, *m, *y, dd, TRUE); *d += (DAY_MAX * (*n - 1)); /* The "N'th weekday of month" doesn't occur in month: Skip it */ if (*d > dvec[MONTH_MAX - 1]) *y = SPECIAL_VALUE; } } } } } } Slint d_between (d1, m1, y1, d2, m2, y2) const int d1; const int m1; const int y1; const int d2; const int m2; const int y2; /*! Computes the amount of days between date1(base date) and date2 exclusive date1 and date2, and adds 1 to the result. */ { return (date2num (d2, m2, y2) - date2num (d1, m1, y1)); } Slint w_between (d1, m1, y1, d2, m2, y2) const int d1; const int m1; const int y1; const int d2; const int m2; const int y2; /*! Computes the amount of weeks between date1(base date) and date2 exclusive date1 and date2, and adds 1 to the result. */ { auto Ulint date1 = date2num (d1, m1, y1); auto Ulint date2 = date2num (d2, m2, y2); auto Slint diff; auto Slint result; diff = (Slint) date2 - (date1 - (SYEAR (weekday_of_date (d1, m1, y1), start_day)) + 1); result = diff / DAY_MAX; if ((diff % DAY_MAX) && (diff < 0L)) result--; return (result); } Slint m_between (m1, y1, m2, y2) const int m1; const int y1; const int m2; const int y2; /*! Computes the amount of months between date1(base date) and date2 exclusive date1 and date2, and adds 1 to the result. */ { return (((y2 - y1) * MONTH_MAX) + (m2 - m1)); } void manage_leap_day (day, month, year, line_buffer, filename, line_number) int *day; int *month; int year; const char *line_buffer; const char *filename; const long line_number; /*! Tries to set the leap day (29-Feb) either to "28-Feb" or "1-Mar" and prints a informational message in case this date modification is performed successfully (only if `--debug[=ARG]' option is given). */ { register int action = 0; if ((*month == 2) && (*day == 29) && (rc_feb_29_to_feb_28 || rc_feb_29_to_mar_01)) { if ((fiscal_month > MONTH_MIN + 1) && (year < YEAR_MAX)) { if (days_of_february (year + 1) == 28) { if (rc_feb_29_to_feb_28) *day = action = 28; else { *day = action = DAY_MIN; (*month)++; } } } else if (days_of_february (year) == 28) { if (rc_feb_29_to_feb_28) *day = action = 28; else { *day = action = DAY_MIN; (*month)++; } } if ((warning_level >= 0) && action) { *s5 = '\0'; print_text (stderr, s5); action = (int) strlen (filename) + LEN_SINGLE_LINE; if ((Uint) action >= maxlen_max) resize_all_strings (action + 1, FALSE, __FILE__, (long) __LINE__); sprintf (s5, _("Leap-day set to `%02d-%s' in file `%s'."), *day, month_name (*month), filename); print_text (stderr, s5); sprintf (s5, _("Line %ld: %s"), line_number, line_buffer); print_text (stderr, s5); } } } char * biorhythm (create_bar, axis_len, string, day, month, year, birth_day, birth_month, birth_year, emo_text, emo_phase, emo_waxes, int_text, int_phase, int_waxes, phy_text, phy_phase, phy_waxes, critical_day, positive_day, negative_day) const Bool create_bar; int axis_len; char *string; const int day; const int month; const int year; const int birth_day; const int birth_month; const int birth_year; const char *emo_text; int *emo_phase; int *emo_waxes; const char *int_text; int *int_phase; int *int_waxes; const char *phy_text; int *phy_phase; int *phy_waxes; int *critical_day; int *positive_day; int *negative_day; /*! Computes the biorhythm for a date and creates a text graphics bar line according to the computed values in case `create_bar' is set to TRUE. Uses the delivered `string' for storing such a line and returns it. The caller has to guarantee that enough `string' space is allocated. When used within Gcal, the maximum number of 100 that a single `axis_len' may have (100*2+6=>206) fits properly into the string vectors, which have 1024 Bytes by default. */ { auto double x; auto Slint diff = d_between (birth_day, birth_month, birth_year, day, month, year); register int yes_phase; register int yes_waxes; register int i; (*critical_day) = (*positive_day) = (*negative_day) = (*emo_waxes) = (*int_waxes) = (*phy_waxes) = 0; if (create_bar) { auto char *ptr_string; # if 0 /* Decrease `axis_len' by 1 until it divides 100 without a remainder. */ if (axis_len < 1) axis_len = -axis_len; if (axis_len > 100) axis_len = 100; else while (100 % axis_len) axis_len--; # endif /* 0 */ /* Initialize the biorhythm text graphics bar. */ for (i = BIO_AXIS_TOTAL (axis_len), ptr_string = string; --i;) *ptr_string++ = ' '; string[BIO_AXIS_TOTAL (axis_len) - 1] = '\0'; string[BIO_AXIS_EXTRA - 1] = *BIO_WANES; string[BIO_AXIS_TOTAL (axis_len) - BIO_AXIS_EXTRA - 1] = *BIO_WAXES; } /* Reduce the day difference by multiples of 21252, which is the number of days at which each biorhythm cycle restarts from the birthdate. */ if (diff < 1L) diff = 21252L - (-diff % 21252L); else diff %= 21252L; /* Manage the "emotional" phase value (cycle of 28 days). */ x = MY_TWO_PI * (diff - 1L) / 28.0; yes_phase = (int) ROUND (100.0 * sin (x)); yes_waxes = SGN ((int) ROUND (100.0 * cos (x))); x = MY_TWO_PI * diff / 28.0; *emo_phase = (int) ROUND (100.0 * sin (x)); *emo_waxes = SGN ((int) ROUND (100.0 * cos (x))); if (*emo_phase == 100) (*positive_day)++; else if ((yes_waxes == 1) && (yes_phase != 100) && (*emo_waxes <= 0)) (*positive_day)++; if (*emo_phase == -100) (*negative_day)++; else if ((yes_waxes == -1) && (yes_phase != -100) && (*emo_waxes >= 0)) (*negative_day)++; *emo_waxes = (*emo_waxes >= 0); if (((SGN (yes_phase) == 1) && (SGN (*emo_phase) <= 0)) || ((SGN (yes_phase) == -1) && (SGN (*emo_phase) >= 0))) (*critical_day)++; /* Manage the "intellectual" phase value (cycle of 33 days). */ x = MY_TWO_PI * (diff - 1L) / 33.0; yes_phase = (int) ROUND (100.0 * sin (x)); yes_waxes = SGN ((int) ROUND (100.0 * cos (x))); x = MY_TWO_PI * diff / 33.0; *int_phase = (int) ROUND (100.0 * sin (x)); *int_waxes = SGN ((int) ROUND (100.0 * cos (x))); if (*int_phase == 100) (*positive_day)++; else if ((yes_waxes == 1) && (yes_phase != 100) && (*int_waxes <= 0)) (*positive_day)++; if (*int_phase == -100) (*negative_day)++; else if ((yes_waxes == -1) && (yes_phase != -100) && (*int_waxes >= 0)) (*negative_day)++; *int_waxes = (*int_waxes >= 0); if (((SGN (yes_phase) == 1) && (SGN (*int_phase) <= 0)) || ((SGN (yes_phase) == -1) && (SGN (*int_phase) >= 0))) (*critical_day)++; /* Manage the "physical" phase value (cycle of 23 days). */ x = MY_TWO_PI * (diff - 1L) / 23.0; yes_phase = (int) ROUND (100.0 * sin (x)); yes_waxes = SGN ((int) ROUND (100.0 * cos (x))); x = MY_TWO_PI * diff / 23.0; *phy_phase = (int) ROUND (100.0 * sin (x)); *phy_waxes = SGN ((int) ROUND (100.0 * cos (x))); if (*phy_phase == 100) (*positive_day)++; else if ((yes_waxes == 1) && (yes_phase != 100) && (*phy_waxes <= 0)) (*positive_day)++; if (*phy_phase == -100) (*negative_day)++; else if ((yes_waxes == -1) && (yes_phase != -100) && (*phy_waxes >= 0)) (*negative_day)++; *phy_waxes = (*phy_waxes >= 0); if (((SGN (yes_phase) == 1) && (SGN (*phy_phase) <= 0)) || ((SGN (yes_phase) == -1) && (SGN (*phy_phase) >= 0))) (*critical_day)++; if (create_bar) { /* Place the "emotional", "intellectual" and "physical" marker on the text graphics bar. */ i = *emo_phase / BIO_AXIS_SCALE (axis_len); if (SGN (*emo_phase) >= 0) i += BIO_AXIS_ZERO (axis_len); else i = BIO_AXIS_ZERO (axis_len) + i; if (string[i] == ' ') string[i] = *emo_text; else string[i] = *BIO_OVERLAPS; i = *int_phase / BIO_AXIS_SCALE (axis_len); if (SGN (*int_phase) >= 0) i += BIO_AXIS_ZERO (axis_len); else i = BIO_AXIS_ZERO (axis_len) + i; if (string[i] == ' ') string[i] = *int_text; else string[i] = *BIO_OVERLAPS; i = *phy_phase / BIO_AXIS_SCALE (axis_len); if (SGN (*phy_phase) >= 0) i += BIO_AXIS_ZERO (axis_len); else i = BIO_AXIS_ZERO (axis_len) + i; if (string[i] == ' ') string[i] = *phy_text; else string[i] = *BIO_OVERLAPS; /* Place the accumulated "negative", "positive" and "critical" day counters on the text graphics bar. */ *string = DIG2CHR (*negative_day); string[BIO_AXIS_TOTAL (axis_len) - BIO_AXIS_EXTRA] = DIG2CHR (*positive_day); string[BIO_AXIS_ZERO (axis_len)] = DIG2CHR (*critical_day); } return (string); } double compute_distance (coor1, coor2) const Coor_struct *coor1; const Coor_struct *coor2; /*! Returns the air line distance in Kilometers between the two geographical point locations which are delivered in the COOR1 and COOR2 structures if the member variable `the_mode' is set to zero. If `the_mode' is set to 1, the course/direction angle in degrees from COOR1 to COOR2 is returned (or SPECIAL_VALUE if an error occurs). If `the_mode' is set to 2, the course/direction angle in degrees from COOR2 to COOR1 is returned (or SPECIAL_VALUE if an error occurs). The course/direction angle is that angle, which one needs to go from the geographical point location given in one COOR? structure to the geographical point location given in the other COOR? structure. The angle values in degrees are: * North := 0.0 <= angle < 90.0 * East := 90.0 <= angle < 180.0 * South := 180.0 <= angle < 270.0 * West := 270.0 <= angle < 0.0 The longitude coordinates west of the zero meridian have a positive sign. The longitude coordinates east of the zero meridian have a negative sign. The latitude coordinates north of the equator have a positive sign. The latitude coordinates south of the equator have a negative sign. For negative numbers, all three of `*_deg', `*_min' and `*_sec' should be negative. For example, the ISO 6709 coordinate `-202233+1100010' (==+|-Latitude+|-Longitude) must be defined as `-20 -22 -33 -110 0 -10'. The spheric trigonometric formula used to calculate the distance is: R := 6371.221, the *mean* Earth radius phi1 := Latitude of COOR1 phi2 := Latitude of COOR2 delta_lambda := Longitude of COOR1 - Longitude of COOR2 g := arc cosine (sine phi1 * sine phi2 + cosine phi1 * cosine phi2 * cosine delta_lambda) => distance_in_km := 2 * Pi * R * degree(g) / 360 *** Gcal respects the flattening of the Earth in that it uses the true *** Earth radii of the given locations instead of the mean Earth radius, *** and their geocentric latitudes instead of their geodetic latitude! The spheric trigonometric formula used to calculate the direction angle for `the_mode==1' is: y := sine delta_lambda x := cosine phi1 * tangent phi2 - sine phi1 * cosine delta_lambda => (1) direction_angle_in_degrees := degree(arc tangent (y / x)) An alternative formula is: => (2) direction_angle_in_degrees := degree(arc sine (cos phi2 * sine delta_lambda / sine g)) Both formulaes do not move the direction angle into the correct quadrant immediately. For (1), this can be done by using the mathlib function `atan2()' instead of the mathlib function `atan()'. */ { auto double lon_c1 = TORAD (coor1->lon_deg + MM2DEG (coor1->lon_min) + SS2DEG (coor1->lon_sec)); auto double lat_c1 = TORAD (coor1->lat_deg + MM2DEG (coor1->lat_min) + SS2DEG (coor1->lat_sec)); auto double lon_c2 = TORAD (coor2->lon_deg + MM2DEG (coor2->lon_min) + SS2DEG (coor2->lon_sec)); auto double lat_c2 = TORAD (coor2->lat_deg + MM2DEG (coor2->lat_min) + SS2DEG (coor2->lat_sec)); auto double delta_lambda; auto double x1; auto double x2; switch (coor1->the_mode) { case 0: x1 = gd_latitude2gc_latitude (lat_c1, coor1->meters_above_sea_level, &lat_c1); x2 = gd_latitude2gc_latitude (lat_c2, coor2->meters_above_sea_level, &lat_c2); if (SGN (lat_c1) == 0 || SGN (lat_c2) == 0 || SGN (lat_c1) == SGN (lat_c2)) { delta_lambda = (x1 + x2) * 0.5; x1 = 2.0 * MAX (x1, delta_lambda) + MIN (x1, delta_lambda) + 2.0 * MAX (x2, delta_lambda) + MIN (x2, delta_lambda); } else x1 = 4.0 * EQUATOR_EARTH_RADIUS + x1 + x2; delta_lambda = lon_c1 - lon_c2; return (DEG2DAY (TODEG (acos (sin (lat_c1) * sin (lat_c2) + cos (lat_c1) * cos (lat_c2) * cos (delta_lambda)))) * (x1 / 6000.0) * MY_TWO_PI); case 1: delta_lambda = lon_c1 - lon_c2; x1 = cos (lat_c1) * tan (lat_c2) - sin (lat_c1) * cos (delta_lambda); break; case 2: delta_lambda = lon_c2 - lon_c1; x1 = cos (lat_c2) * tan (lat_c1) - sin (lat_c2) * cos (delta_lambda); break; default: /* This case MUST be an internal error! */ abort (); } x2 = sin (delta_lambda); /* Emulate the mathlib function `atan2()' so we can handle an error properly. */ if (x1 > 0.0) delta_lambda = atan (x2 / x1); else if (x1 < 0.0) delta_lambda = atan (x2 / x1) + MY_PI; else if (x2 > 0.0) delta_lambda = MY_HALF_PI; else if (x2 < 0.0) delta_lambda = -MY_HALF_PI; else /* This case (x2==0 && x1==0) is treated as an error here and is managed specially! */ return (SPECIAL_VALUE); if (SGN (delta_lambda) > 0) delta_lambda = MY_TWO_PI - delta_lambda; else if (SGN (delta_lambda) < 0) delta_lambda = -delta_lambda; return (TODEG (delta_lambda)); } static void var_warning (exit_status, var_name, line_buffer, filename, line_number) const int exit_status; const int var_name; const char *line_buffer; const char *filename; const long line_number; /*! Prints an informational message on STDERR channel in case an operation on a date or text variable is invalid. Terminates the program if `warning_level' is set to "WARN_LVL_MAX" with delivered `exit_status'. */ { register int i; auto Bool with_usage = FALSE; if (!line_number) S_NEWLINE (stderr); else { *s5 = '\0'; print_text (stderr, s5); } if (warning_level >= WARN_LVL_MAX) fprintf (stderr, _("%s: abort, "), prgr_name); i = (int) strlen (filename) + LEN_SINGLE_LINE; if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); switch (exit_status) { case ERR_ILLEGAL_VAR_DEFINITION: if (line_number) sprintf (s5, _("illegal variable definition in file `%s'"), filename); else sprintf (s5, _("illegal definition of variable `%c'"), (char) var_name); if (!line_number) with_usage = TRUE; break; case ERR_ILLEGAL_VAR_OPERATION: if (line_number) sprintf (s5, _("illegal variable operation in file `%s'"), filename); else sprintf (s5, _("illegal operation on variable `%c'"), (char) var_name); if (!line_number) with_usage = TRUE; break; case ERR_INVALID_VAR_REFERENCE: sprintf (s5, _("variable `%c' undefined in file `%s'"), (char) var_name, filename); break; case ERR_INVALID_VAR_ASSIGNMENT: sprintf (s5, _("invalid value assigned to variable `%c' in file `%s'"), (char) var_name, filename); break; default: /* This case MUST be an internal error! */ abort (); } if (warning_level < WARN_LVL_MAX) { *s5 = (char) toupper (*s5); strcat (s5, "."); } if (!line_number) fprintf (stderr, "%s\n", s5); else print_text (stderr, s5); if (warning_level >= WARN_LVL_MAX) { if (!line_number) fprintf (stderr, _("Invalid argument in command line given -- %s"), line_buffer); else fprintf (stderr, _("Line %ld: %s"), line_number, line_buffer); S_NEWLINE (stderr); } else { i = (int) strlen (line_buffer) + LEN_SINGLE_LINE; if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); if (!line_number) sprintf (s5, _("Argument `%s' of command line ignored."), line_buffer); else sprintf (s5, _("Line %ld ignored: %s"), line_number, line_buffer); if (!line_number) fprintf (stderr, "%s\n", s5); else print_text (stderr, s5); } if (with_usage) fprintf (stderr, "%s\n%s\n", usage_msg (), lopt_msg ()); if (warning_level >= WARN_LVL_MAX) my_exit (exit_status); } #endif /* USE_RC */ gcal-4.1/src/gcal2txt.c0000664000000000000000000006111112353315556011650 00000000000000/*! * \file gcal2txt.c * \brief Creates a verbatim text file from a Gcal resource file. */ /* * Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, * 2009, 2010, 2011, 2013, 2014 Free Software Foundation, Inc. * Copyright (c) 1996, 1997, 2000 Thomas Esken * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ #include "tailor.h" #if HAVE_ASSERT_H # include #endif #if HAVE_CTYPE_H # include #endif #if HAVE_ERRNO_H # include #endif #if (!HAVE_SIGNAL_H || !HAVE_SIGNAL) && HAVE_SYS_TYPES_H /* Otherwise "gcal.h" includes . */ # include #endif #if HAVE_SYS_STAT_H # include #endif #ifndef USE_RC # define USE_RC 1 #else # if !USE_RC # undef USE_RC # define USE_RC 1 # endif #endif #include "common.h" #include "rc-defs.h" #include "gcal2txt.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS static void usage_msg __P_ ((FILE * fp, const char *prgr_name, int exit_status)); static void version_msg __P_ ((FILE * fp, const char *prgr_name, int exit_status)); static VOID_PTR my_malloc __P_ ((const int amount, const int exit_status, const char *module_name, const long module_line, const char *var_name, const int var_contents)); static VOID_PTR my_realloc __P_ ((VOID_PTR ptr_memblock, const int amount, const int exit_status, const char *module_name, const long module_line, const char *var_name, const int var_contents)); static void my_error __P_ ((const int exit_status, const char *module_name, const long module_line, const char *var_name, const int var_contents)); #if HAVE_SIGNAL && (defined(SIGINT) || defined(SIGTERM) || defined(SIGHUP)) static RETSIGTYPE handle_signal __P_ ((int the_signal)); #endif #if !HAVE_STRNCASECMP static int my_strncasecmp __P_ ((const char *s1, const char *s2, int len)); #endif /* !HAVE_STRNCASECMP */ static char *decode_format __P_ ((FILE * fp, Bool * is_eof, int *flen, int *fwidth, int *ch)); __END_DECLARATIONS /* * static variables definitions. */ #ifdef DJG /*! Set to SHRT_MAX for checking the maximum table range. */ static Usint testval = (Usint) 0; #else /*! Set to INT_MAX for checking the maximum table range. */ static Uint testval = (Uint) 0; #endif /*! Actual length of all strings. */ static Uint maxlen_max = MAXLEN_MAX; /*! The name of this executable. */ static char *prgr_name = (char *) NULL; /*! Text of `--help' option name. */ static char *help_option_name = "help"; /*! Text of `--version' option name. */ static char *version_option_name = "version"; /* * Function implementations. */ static void usage_msg (fp, prgr_name, exit_status) FILE *fp; const char *prgr_name; int exit_status; /*! Writes the program "usage" text to file `fp' and terminates the program with `exit_status'. */ { fprintf (fp, _("Usage: %s [--%s | --%s] | [RESOURCE-FILE | -]\n"), prgr_name, help_option_name, version_option_name); if (exit_status == EXIT_SUCCESS) { S_NEWLINE (fp); fprintf (fp, _("Email bug reports to <%s>"), BUG_REPORT_ADR1); S_NEWLINE (fp); } exit (exit_status); } static void version_msg (fp, prgr_name, exit_status) FILE *fp; const char *prgr_name; int exit_status; /*! Writes the program "version" text to file `fp' and terminates the program with `exit_status'. */ { fprintf (fp, "%s (GNU cal %s)\n", prgr_name, PACKAGE_VERSION); fprintf (fp, "%s\n", COPYRIGHT_TXT); fprintf (fp, _ ("This is free software; see the source for copying conditions.")); S_NEWLINE (fp); fprintf (fp, _("There is NO warranty, without even the implied warranty of")); S_NEWLINE (fp); fprintf (fp, _("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.")); S_NEWLINE (fp); exit (exit_status); } static VOID_PTR my_malloc (amount, exit_status, module_name, module_line, var_name, var_contents) const int amount; const int exit_status; const char *module_name; const long module_line; const char *var_name; const int var_contents; /*! Allocate AMOUNT bytes of memory dynamically, with error checking. Calls `my_error()' and terminates the program if any errors occur. AMOUNT is limited to `int' range instead of `size_t' range; this is wanted! */ { auto VOID_PTR ptr_memblock; if ((Uint) amount > testval) /* Error, table size overflow! */ my_error (ERR_INTERNAL_TABLE_CRASH, module_name, module_line, var_name, (int) testval); ptr_memblock = (VOID_PTR) malloc ((int) amount); if (ptr_memblock == (VOID_PTR) NULL) /* Error, `malloc()' function failed. */ my_error (exit_status, module_name, module_line, var_name, var_contents); return (ptr_memblock); } static VOID_PTR my_realloc (ptr_memblock, amount, exit_status, module_name, module_line, var_name, var_contents) VOID_PTR ptr_memblock; const int amount; const int exit_status; const char *module_name; const long module_line; const char *var_name; const int var_contents; /*! Change the size of an allocated block of memory PTR_MEMBLOCK to AMOUNT bytes, with error checking. Calls `my_error()' and terminates the program if any errors occur. AMOUNT is limited to `int' range instead of `size_t' range; this is wanted! If PTR_MEMBLOCK is NULL, `my_malloc()' is called instead. */ { if ((Uint) amount > testval) /* Error, table size overflow! */ my_error (ERR_INTERNAL_TABLE_CRASH, module_name, module_line, var_name, (int) testval); if (ptr_memblock == (VOID_PTR) NULL) return (my_malloc (amount, exit_status, module_name, module_line, var_name, var_contents)); ptr_memblock = (VOID_PTR) realloc (ptr_memblock, (int) amount); if (ptr_memblock == (VOID_PTR) NULL) /* Error, `realloc()' function failed. */ my_error (exit_status, module_name, module_line, var_name, var_contents); return (ptr_memblock); } static void my_error (exit_status, module_name, module_line, var_name, var_contents) const int exit_status; const char *module_name; const long module_line; const char *var_name; const int var_contents; /*! Displays a specific error message on STDERR channel and terminates the program with status `exit_status'. */ { fprintf (stderr, _("\n%s: abort, "), prgr_name); switch (exit_status) { case ERR_NO_MEMORY_AVAILABLE: fprintf (stderr, _("`%s' line %ld: virtual memory exhausted (%s=%d)"), module_name, module_line, var_name, var_contents); break; case ERR_INTERNAL_TABLE_CRASH: fprintf (stderr, _ ("`%s' line %ld: (`%s') invalid value for table size `sizeof %s>%d'"), module_name, module_line, _("internal"), var_name, var_contents); break; default: fprintf (stderr, _("`%s' line %ld: (`%s') unmanaged error (%d)"), module_name, module_line, _("internal"), exit_status); } S_NEWLINE (stderr); exit (exit_status); } #if HAVE_SIGNAL && (defined(SIGINT) || defined(SIGTERM) || defined(SIGHUP)) static RETSIGTYPE handle_signal (the_signal) int the_signal; /*! Signal handler function which displays the numeric ID of the received signal on STDERR channel and terminates the program with ERR_TERMINATION_BY_SIGNAL exit status. */ { fflush (stdout); fprintf (stderr, _("\n%s: program aborted by signal %d\n"), prgr_name, the_signal); exit (ERR_TERMINATION_BY_SIGNAL); } #endif /* HAVE_SIGNAL && (SIGINT || SIGTERM || SIGHUP) */ #if !HAVE_STRNCASECMP static int my_strncasecmp (s1, s2, len) const char *s1; const char *s2; int len; /*! Same as the ANSI C `strncmp()' function, but case insensitive. */ { auto const Uchar *p1 = (const Uchar *) s1; auto const Uchar *p2 = (const Uchar *) s2; auto Uchar c1; auto Uchar c2; if (!len || p1 == p2) return (0); if (len < 0) len = -len; do { c1 = tolower (*p1++); c2 = tolower (*p2++); if (!c1 || c1 != c2) return (c1 - c2); } while (--len); return (c1 - c2); } #endif /* !HAVE_STRNCASECMP */ static char * decode_format (fp, is_eof, flen, fwidth, ch) FILE *fp; Bool *is_eof; int *flen; int *fwidth; int *ch; /*! Simplified check for an optional format instruction taken from `fp' stream which can either be used in case a TVAR or a `%...' special text is referenced. The template of such a format is: [ ALIGNMENT [SIGN] [LZERO] WIDTH [STYLE] [SUFFIX] FORMAT ], e.g., $[<|:|>[+][0]N[u|U|l|L|w|W][&]*|#]TVAR, resp., %[<|:|>[+][0]N[u|U|l|L|w|W][&]*|#]?, like `$:+010u&#a' or `%>20l&*Y'. ALIGNMENT: '<' == adjusts field contents at the left margin using width WIDTH. ':' == adjusts field contents in centered manner using width WIDTH. '>' == ajdusts field contents at the right margin using width WIDTH. SIGN : '+' == leads a numerical value always by its sign. LZERO : '0' == fills a numerical value up to WIDTH leading zeroes inclusivly a possibly leading explicit SIGN or an implicitly leading negative sign. WIDTH : FWIDTH_MIN...FWIDTH_MAX == is the width of the field. STYLE : 'u' == converts field contents to upper-case letters. 'l' == converts field contents to lower-case letters. 'w' == converts field contents to capitalized words. SUFFIX : '&' == provides a numerical value with an ordinal number suffix. FORMAT : '*' == does not cut the field contents after position WIDTH if it is longer than WIDTH. '#' == cuts the field contents after position WIDTH if it is longer than WIDTH. This function returns the scanned format instruction inclusive the TVAR resp., %... special text character, its length in `&flen' , and on success, a value not equal SPECIAL_VALUE in `&fwidth'. `&fwidth' is set to SPECIAL_VALUE in case an error occurs during the scan of the format instruction. `&is_eof' is set to TRUE if END_OF_FILE is detected during the scan, otherwise it is set to FALSE. `&ch' contains the last character scanned. */ { static int the_len = 0; static char *format_txt; auto char *ptr_char; static Bool is_allocated = FALSE; *is_eof = FALSE; *flen = 0; *fwidth = SPECIAL_VALUE; /* Allocate the memory area of the returned `format_txt' string. */ if (!is_allocated) { is_allocated = TRUE; /* Detect the number of digits of FWIDTH_MAX. */ *ch = FWIDTH_MAX; while (*ch) { the_len++; *ch /= 10; } /* Initial memory allocation for the `format_txt' string, which is: ALIGNMENT + [SIGN] + [LZERO] + WIDTH + [STYLE] + [SUFFIX] + FORMAT + CHAR + TERMINATOR 1 + [1+] [1+] + the_len + [1+] + [1+] 1 + 1 + 1 ==> 7 + 1('\0' terminator) + the_len(FWIDTH_MAX==up to 3 digits) ==> 11 characters maximum. */ format_txt = (char *) my_malloc (the_len + 8, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "format_txt", 0); } ptr_char = format_txt; /* Start scanning the format instruction. */ *ch = fgetc (fp); *ptr_char++ = (char) *ch; (*flen)++; switch (*ch) { case FLEFT_CHAR: case FCENTER_CHAR: case FRIGHT_CHAR: if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *ptr_char = '\0'; return (format_txt); } break; default: *ptr_char = '\0'; return (format_txt); } if (*ch == FSIGN_CHAR) { *ptr_char++ = (char) *ch; (*flen)++; if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *ptr_char = '\0'; return (format_txt); } } if (*ch == FLZERO_CHAR) { *ptr_char++ = (char) *ch; (*flen)++; if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *ptr_char = '\0'; return (format_txt); } } if (isdigit (*ch)) { if (*ch != FLZERO_CHAR) { register int len = the_len; LOOP { if (isdigit (*ch)) { *ptr_char++ = (char) *ch; (*flen)++; if (!--len) { if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *ptr_char = '\0'; return (format_txt); } break; } } else break; if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *ptr_char = '\0'; return (format_txt); } } *fwidth = 0; if (toupper (*ch) == toupper (FUPPER_CHAR) || toupper (*ch) == toupper (FLOWER_CHAR) || toupper (*ch) == toupper (FWORD_CHAR)) { *ptr_char++ = (char) *ch; (*flen)++; if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *fwidth = SPECIAL_VALUE; *ptr_char = '\0'; return (format_txt); } } if (*ch == FSUFFIX_CHAR) { *ptr_char++ = (char) *ch; (*flen)++; if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *fwidth = SPECIAL_VALUE; *ptr_char = '\0'; return (format_txt); } } switch (*ch) { case FFIX_CHAR: case FVAR_CHAR: *ptr_char++ = (char) *ch; (*flen)++; if ((*ch = fgetc (fp)) == EOF) { *is_eof = TRUE; *fwidth = SPECIAL_VALUE; } *ptr_char++ = (char) *ch; (*flen)++; break; default: *ptr_char++ = (char) *ch; (*flen)++; *fwidth = SPECIAL_VALUE; } } else { *ptr_char++ = (char) *ch; (*flen)++; } } *ptr_char = '\0'; return (format_txt); } int main (argc, argv) int argc; char *argv[]; /*! Creates a verbatim text file from a Gcal resource file (optional argument 1) and displays the results on the STDOUT channel. If no text file name or only a dash '-' is given, read input from STDIN channel. */ { auto FILE *fp = (FILE *) NULL; register int i; register int ch; register int ch2; register int ch3; auto int flen; auto int fwidth; auto int last_char = '\0'; auto char *s1; auto char *ptr_char; auto Bool got_quote = FALSE; auto Bool had_quote = FALSE; auto Bool is_eof = FALSE; auto Bool is_regular_file = TRUE; #ifdef GCAL_NLS /* Now initialize the NLS functions. */ # if HAVE_SETLOCALE setlocale (LC_ALL, ""); # endif # ifndef LOCALEDIR # define LOCALEDIR NULL # endif bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif /* Let's set `testval' to SHRT_MAX/INT_MAX if SHRT_MAX/INT_MAX itself isn't defined. This solution only works on machines with internal arithmethics based on "two complements". */ #ifdef DJG # ifdef SHRT_MAX testval = SHRT_MAX; # else /* !SHRT_MAX */ testval = ~0; testval >>= 1; # endif /* !SHRT_MAX */ #else /* !DJG */ # ifdef INT_MAX testval = INT_MAX; # else /* !INT_MAX */ testval = ~0; testval >>= 1; # endif /* !INT_MAX */ #endif /* !DJG */ #if HAVE_ASSERT_H /* To ensure safe program operations, MAXLEN_MAX must be 1024 minimum and `testval' maximum! */ assert (MAXLEN_MAX >= 1024); assert ((Uint) MAXLEN_MAX <= testval); assert (strlen (PACKAGE_VERSION) > 0); #endif /* HAVE_ASSERT_H */ /* Initial memory allocation for the `s1' string. */ s1 = (char *) my_malloc (MAXLEN_MAX, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "s1", 0); /* Detect the own program name. */ i = (int) strlen (*argv); if ((Uint) i >= maxlen_max) s1 = my_realloc ((VOID_PTR) s1, i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "s1", i + 1); strcpy (s1, *argv); #ifdef SUFFIX_SEP /* Eliminate version suffix under VMS. */ ptr_char = strrchr (s1, *SUFFIX_SEP); if (ptr_char != (char *) NULL) *ptr_char = '\0'; #endif i = (int) strlen (s1); #ifdef DJG ptr_char = strrchr (s1, *DIR2_SEP); #else /* !DJG */ ptr_char = strrchr (s1, *DIR_SEP); #endif /* !DJG */ if (ptr_char != (char *) NULL) { ptr_char++; i = (int) strlen (ptr_char); } else ptr_char = s1; if (tolower ('A') == 'a') { auto char *buf_ptr_char = ptr_char; for (; *ptr_char; ptr_char++) *ptr_char = (char) tolower (*ptr_char); ptr_char = buf_ptr_char; } /* Suppress ".exe" suffix for MSDOS, OS/2 and VMS. */ if ((i > 4) && !strcmp (ptr_char + i - 4, ".exe")) { i -= 4; *(ptr_char + i) = '\0'; } prgr_name = (char *) my_malloc (i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "prgr_name", 0); strcpy (prgr_name, ptr_char); #if HAVE_SIGNAL /* Now let's modify the signal handling a bit to make sure that temporary files are always deleted if such signals are raised. */ # ifdef SIGINT if (signal (SIGINT, SIG_IGN) != SIG_IGN) (void) signal (SIGINT, (Sig_type) handle_signal); # endif # ifdef SIGTERM if (signal (SIGTERM, SIG_IGN) != SIG_IGN) (void) signal (SIGTERM, (Sig_type) handle_signal); # endif # ifdef SIGHUP if (signal (SIGHUP, SIG_IGN) != SIG_IGN) (void) signal (SIGHUP, (Sig_type) handle_signal); # endif #endif /* HAVE_SIGNAL */ if (argc > 1) { if ((strlen (argv[1]) == 1) && (*argv[1] == *SWITCH)) /* STDIN channel explicitly wanted! */ fp = stdin; else { /* Check if `--help' or `--version' long-style option is given. */ if ((strlen (argv[1]) > 2) && (*argv[1] == *SWITCH) && (*(argv[1] + 1) == *SWITCH)) { if (!strncasecmp (argv[1] + 2, help_option_name, strlen (argv[1] + 2))) usage_msg (stdout, prgr_name, EXIT_SUCCESS); if (!strncasecmp (argv[1] + 2, version_option_name, strlen (argv[1] + 2))) version_msg (stdout, prgr_name, EXIT_SUCCESS); /* Error, unknown long-style option given. */ fprintf (stderr, _("%s: unrecognized option `%s'"), prgr_name, argv[1]); S_NEWLINE (stderr); usage_msg (stderr, prgr_name, ERR_INVALID_OPTION); } else { #if HAVE_SYS_STAT_H && defined(S_IFMT) && defined(S_IFREG) auto struct stat statbuf; /* Test if the file is a regular file, if not, this is an error! */ if (!stat (argv[1], &statbuf)) { if ((statbuf.st_mode & S_IFMT) == S_IFREG) fp = fopen (argv[1], "r"); else is_regular_file = FALSE; } #else /* !HAVE_SYS_STAT_H || !S_IFMT || !S_IFREG */ fp = fopen (argv[1], "r"); #endif /* !HAVE_SYS_STAT_H || !S_IFMT || !S_IFREG */ } } } else fp = stdin; if (fp == (FILE *) NULL) { i = (int) strlen (prgr_name) + strlen (argv[1]) + 5; if ((Uint) i >= maxlen_max) s1 = (char *) my_realloc ((VOID_PTR) s1, i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "s1", 0); sprintf (s1, "%s: `%s' ", prgr_name, argv[1]); #if HAVE_ERRNO_H if (!is_regular_file) fprintf (stderr, _("%s: no regular file\n"), s1); else perror (s1); exit (EXIT_FAILURE); #else /* !HAVE_ERRNO_H */ fprintf (stderr, _("%s: file not found\n"), s1); exit (ERR_FILE_NOT_FOUND); #endif /* !HAVE_ERRNO_H */ } /* Skip the "date"-part of the line. */ while ((ch = fgetc (fp)) != EOF) if (isspace (ch)) { ch = fgetc (fp); if (ch != EOF) { if (ch != QUOTE_CHAR) ungetc (ch, fp); else got_quote = TRUE; } break; } /* Manage the "text"-part of the line. */ if (ch != EOF) while ((ch = fgetc (fp)) != EOF) { switch (ch) { case RC_NL_CHAR: case RC_NL2_CHAR: ch2 = fgetc (fp); if (ch2 != EOF) switch (ch2) { case QUOTE_CHAR: ch3 = fgetc (fp); if (ch3 != EOF) switch (ch3) { case '\n': fputc (ch3, stdout); break; default: fprintf (stdout, "%c%c%c", ch, ch2, ch3); } else fprintf (stdout, "%c%c", ch, ch2); break; default: fprintf (stdout, "%c%c", ch, ch2); } else fputc (ch, stdout); had_quote = FALSE; break; case QUOTE_CHAR: if (got_quote) fputc (ch, stdout); ch2 = fgetc (fp); if (ch2 != EOF) switch (ch2) { case RC_TVAR_CHAR: ptr_char = decode_format (fp, &is_eof, &flen, &fwidth, &last_char); if (!is_eof) { ch3 = *(ptr_char + flen - 1); if (isalpha (ch3) && (fwidth != SPECIAL_VALUE || *ptr_char == ch3)) { if (had_quote) fprintf (stdout, "%c%c%s", ch, ch2, ptr_char); else fprintf (stdout, "%c%s", ch2, ptr_char); } had_quote = FALSE; break; } else fputc (ch, stdout); /* Fallthrough. */ case '\n': case RC_NL_CHAR: case RC_NL2_CHAR: fputc (ch2, stdout); had_quote = FALSE; break; case RC_SPECIAL_TEXT_CHAR: ptr_char = decode_format (fp, &is_eof, &flen, &fwidth, &last_char); if (!is_eof) { ch3 = *(ptr_char + flen - 1); switch (ch3) { case RC_SHELL_ESC_CHAR: case RC_ENV_VAR_CHAR: case RC_EX_LHDY_CHAR: case RC_EX_NLHDY_CHAR: case RC_EX_AHDY_CHAR: case RC_EX_NAHDY_CHAR: case RC_EX_MON_CHAR: case RC_EX_NMON_CHAR: case RC_EX_TUE_CHAR: case RC_EX_NTUE_CHAR: case RC_EX_WED_CHAR: case RC_EX_NWED_CHAR: case RC_EX_THU_CHAR: case RC_EX_NTHU_CHAR: case RC_EX_FRI_CHAR: case RC_EX_NFRI_CHAR: case RC_EX_SAT_CHAR: case RC_EX_NSAT_CHAR: case RC_EX_SUN_CHAR: case RC_EX_NSUN_CHAR: case RC_EX_MON_2_THU_CHAR: case RC_EX_NMON_2_THU_CHAR: case RC_EX_MON_2_FRI_CHAR: case RC_EX_NMON_2_FRI_CHAR: case RC_IDATE_CHAR: case RC_EDATE_CHAR: case RC_WDNAME_CHAR: case RC_WDNR_M1_2_S7_CHAR: case RC_WDNR_M0_2_S6_CHAR: case RC_WDNR_S1_2_S7_CHAR: case RC_WDNR_S0_2_S6_CHAR: case RC_WDNR_X1_2_X7_CHAR: case RC_WDNR_X0_2_X6_CHAR: case RC_DOYNR_CHAR: case RC_DAYNR_CHAR: case RC_MONTHNAME_CHAR: case RC_MONTHNR_CHAR: case RC_YEARNR_CHAR: case RC_WEEKNR_CHAR: case RC_BYEAR_CHAR: case RC_MOON_CHAR: case RC_MOON_IMAGE_CHAR: case RC_BIO_CHAR: case RC_BIO_BAR_CHAR: case RC_TDATE_CHAR: case RC_JDAYS_CHAR: case RC_TIME_CHAR: case RC_TIME_TMI_CHAR: case RC_TIME_HR_CHAR: case RC_TIME_MI_CHAR: case RC_TIME_AMPM_CHAR: case RC_GMTIME_CHAR: case RC_GMTIME_TMI_CHAR: case RC_GMTIME_HR_CHAR: case RC_GMTIME_MI_CHAR: case RC_GMTIME_AMPM_CHAR: case RC_LT_ZONE_OFFS_CHAR: case RC_UT_ZONE_OFFS_CHAR: case RC_DISTANCE_CHAR: case RC_SUN_RISE_CHAR: case RC_SUN_SET_CHAR: case RC_SUN_DAY_CHAR: case RC_SUN_NIGHT_CHAR: case RC_MOON_RISE_CHAR: case RC_MOON_SET_CHAR: case RC_MOON_DAY_CHAR: case RC_MOON_NIGHT_CHAR: case RC_DAY_DIFF_CHAR: case RC_WEEK_DIFF_CHAR: case RC_MONTH_DIFF_CHAR: case RC_YEAR_DIFF_CHAR: case RC_HLS1S_CHAR: case RC_HLS1E_CHAR: case RC_HLS2S_CHAR: case RC_HLS2E_CHAR: case RC_HLS3S_CHAR: case RC_HLS3E_CHAR: case RC_HLS4S_CHAR: case RC_HLS4E_CHAR: case RC_HLS5S_CHAR: case RC_HLS5E_CHAR: if (had_quote) fprintf (stdout, "%c%c%s", ch, ch2, ptr_char); else fprintf (stdout, "%c%s", ch2, ptr_char); break; default: if (ch3 == RC_TVAR_CHAR || ch3 == RC_SPECIAL_TEXT_CHAR || ch3 == QUOTE_CHAR || ch3 == RC_NL_CHAR || ch3 == RC_NL2_CHAR) { *(ptr_char + flen - 1) = '\0'; ungetc (ch3, fp); } fprintf (stdout, "%c%c%s", ch, ch2, ptr_char); } } else fprintf (stdout, "%c%c", ch, ch2); had_quote = FALSE; break; default: fputc (ch, stdout); if (ch2 == QUOTE_CHAR) { if (had_quote) fputc (ch2, stdout); ch3 = fgetc (fp); if (ch3 != EOF) switch (ch3) { case QUOTE_CHAR: fputc (ch3, stdout); had_quote = TRUE; break; default: had_quote = FALSE; ungetc (ch3, fp); } else { fputc (ch2, stdout); had_quote = FALSE; } } else { ungetc (ch2, fp); had_quote = FALSE; } } break; default: fputc (ch, stdout); had_quote = FALSE; } if (is_eof) break; got_quote = FALSE; } (void) fclose (fp); exit (EXIT_SUCCESS); } gcal-4.1/src/file-io.c0000664000000000000000000012714312244130561011442 00000000000000/*! * \file file-io.c * \brief Managing and accessing resource, include and response files. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include header files. */ #include "tailor.h" #if HAVE_CTYPE_H # include #endif #ifdef GCAL_SHELL # if HAVE_UNISTD_H # include # endif #endif #if HAVE_SYS_STAT_H # if HAVE_SYS_TYPES_H # include # endif # include #endif #include "common.h" #if USE_RC # include "rc-defs.h" #endif /* !USE_RC */ #include "globals.h" #include "gcal.h" #include "hd-defs.h" #include "hd-use.h" #if USE_RC # include "rc-utils.h" #endif #include "tty.h" #include "utils.h" #include "file-io.h" /* * static functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `file-io.c'. */ static void make_absolute_filename __P_ ((char **absolute_filename, const char *directory, const char *filename)); static FILE *get_file_ptr __P_ ((FILE * fp, const char *filename, const int level, const Fmode_enum mode, Bool * is_first)); __END_DECLARATIONS /* * Function implementations. */ FILE * file_open (filename, level, mode, bad_sys_include) char ** filename; const int level; const Fmode_enum mode; Bool * bad_sys_include; /*! Tries to open a resource/response file (MODE == `REsource', `REsponse') in the following order: 1) $GCALPATH 2) $HOME 3) $GCAL_USR_DATADIR (environment variable first; default name if unset) 4) $GCAL_SYS_DATADIR (environment variable first; default name if unset) and returns a file pointer to this file and it's MODIFIED name in some cases (due to this, it's necessary to reallocate the memory area of `&filename', which must be allocated on the heap), otherwise return a NULL pointer. If MODE is set to `USr_include', this function tries to open an include file (#include "file" directive found) in: 1) actual directory 2) $GCALPATH 3) $HOME 4) $GCAL_USR_DATADIR (environment variable first; default name if unset) 5) $GCAL_SYS_DATADIR (environment variable first; default name if unset) and returns a file pointer to this file and it's MODIFIED name in some cases (due to this, it's necessary to reallocate the memory area of `&filename', which must be allocated on the heap), otherwise return a NULL pointer. If a root directory based include file name is given, set `&bad_sys_include' to TRUE! If MODE is set to `SYs_include', this function tries to open an include file (#include directive found) only in: 1) $GCAL_USR_DATADIR (environment variable first; default name if unset) 2) $GCAL_SYS_DATADIR (environment variable first; default name if unset) and returns a file pointer to this file and it's MODIFIED name in some cases (due to this, it's necessary to reallocate the memory area of `&filename', which must be allocated on the heap), otherwise return a NULL pointer. If a root directory based include file name is given, set `&bad_sys_include' to TRUE! If MODE is set to `HEre', this function tries to open a "here" file (`--here=ARG' option) in 1) actual directory and returns a file pointer to this file and it's name, otherwise return a NULL pointer. If MODE is set to `COmmon', this function tries to open a common file in 1) $PATH and returns a file pointer to this file and it's name, otherwise return a NULL pointer. Passes the nesting LEVEL only for informational purposes to other functions called here. NO informational messages will be emitted in `REsponse' and `COmmon' modes!! */ { auto FILE *fp = (FILE *) NULL; register int len; auto char *ptr_env; auto char *ptr_char; auto Bool is_absolute_filename = FALSE; #if USE_RC auto Bool is_root_based_filename = FALSE; auto Bool is_disk_given = FALSE; auto Bool is_first = (Bool) ((mode == REsource) ? TRUE : FALSE); #else /* !USE_RC */ auto Bool is_first = FALSE; #endif /* !USE_RC */ len = (int) strlen (*filename); if ((Uint) len >= maxlen_max) resize_all_strings (len + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s1, *filename); ptr_char = *filename; #ifdef DISK_SEP ptr_char = strchr (*filename, *DISK_SEP); if (ptr_char != (char *) NULL) { /* If a disk/drive is specified, this is like an absolute file name! */ is_absolute_filename = TRUE; # if USE_RC is_disk_given = TRUE; # endif ptr_char++; } else ptr_char = *filename; #endif /* DISK_SEP */ #if USE_RC /* Check if an absolute file name is given. */ if (*ptr_char == *DIR_SEP || *ptr_char == *ACTUAL_DIR) { if (*ptr_char == *ACTUAL_DIR) { while (*ptr_char == *ACTUAL_DIR) ptr_char++; if (*ptr_char == *DIR_SEP) { is_absolute_filename = TRUE; ptr_char--; } } else is_absolute_filename = TRUE; } else /* Check if STDIN channel is wanted. */ if ((*ptr_char == '-') && (len == 1)) is_absolute_filename = TRUE; if (*ptr_char == *DIR_SEP) is_root_based_filename = TRUE; if ((is_disk_given || is_root_based_filename) && (mode == SYs_include)) { /* Include files names. which are based by the root directory, are not allowed in system include statements, e.g.: #include or #include . */ *bad_sys_include = TRUE; return (NULL); } *bad_sys_include = FALSE; if (mode != SYs_include) #endif { if (mode != COmmon) { /* Try to open the file directly (either absolute file name, USr_include file type or HEre file type given). */ if (is_absolute_filename #if USE_RC || mode == USr_include || mode == HEre #endif ) { fp = get_file_ptr (fp, *filename, level, mode, &is_first); /* If the file is found, return to caller immediately. */ if (fp != (FILE *) NULL) return (fp); else if (is_absolute_filename #if USE_RC || mode == HEre #endif ) { #if USE_RC if ((fp == (FILE *) NULL) && (warning_level >= WARN_LVL_MAX)) /* Terminate if `--debug=abort' option is given and the absolute file name or the `HEre' file name isn't found. */ my_error (ERR_FILE_NOT_FOUND, *filename, 0L, *filename, 0); #endif return (NULL); } } } #if !defined(AMIGA) || defined(__GNUC__) if (fp == (FILE *) NULL) { /* Simple file name delivered and the file isn't found: * Either search a COmmon file in the directory/ies, which are stored in the environment variable $PATH * Or search all other file types in the directory/ies, which are stored in the environment variable $GCALPATH. */ if (mode == COmmon) ptr_env = getenv (ENV_VAR_PATH); else ptr_env = getenv (ENV_VAR_GCALPATH); if (ptr_env != (char *) NULL) if (*ptr_env) { auto Bool ok = FALSE; len = (int) strlen (ptr_env); if ((Uint) len >= maxlen_max) resize_all_strings (len + 1, FALSE, __FILE__, (long) __LINE__); strcpy (s2, ptr_env); while (!ok && (fp == (FILE *) NULL)) { ok = (Bool) ((ptr_char = strchr (s2, *PATH_SEP)) == (char *) NULL); if (ok) len = (int) strlen (s2); else len = (int) strlen (s2) - strlen (ptr_char); strncpy (s1, s2, len); s1[len] = '\0'; if (len) if (s1[len - 1] != *DIR_SEP) strcat (s1, DIR_SEP); strcat (s1, *filename); # ifdef SUFFIX_SEP if ((ptr_char = strchr (s1, *SUFFIX_SEP)) != (char *) NULL) *ptr_char = '\0'; # endif if (*s1) fp = get_file_ptr (fp, s1, level, mode, &is_first); if (ok) break; ptr_char = s2 + len + 1; if (!*ptr_char) break; strcpy (s2, ptr_char); } /* If a file isn't found yet but the last character of the $[GCAL]PATH environment variable is a PATH_SEP character (which means the last search for the file must be done in the actual directory), perform this file access! */ if ((fp == (FILE *) NULL) && (*(ptr_env + strlen (ptr_env) - 1) == *PATH_SEP)) fp = get_file_ptr (fp, *filename, level, mode, &is_first); } } if (mode != COmmon) { if (fp == (FILE *) NULL) { /* File not found in the $GCALPATH directory: * Search the file in the directory, which is stored in the environment variable of $HOME. */ ptr_env = getenv (ENV_VAR_HOME); if (ptr_env != (char *) NULL) if (*ptr_env) { make_absolute_filename (&s1, ptr_env, *filename); fp = get_file_ptr (fp, s1, level, mode, &is_first); } } } } /* It's not necessary to perform further searches for COmmon files in the $GCAL_???_DATADIR directories! */ if (mode == COmmon) return (fp); # if USE_RC if (fp == (FILE *) NULL) { /* File not found in the $HOME directory: * Search the file in the user's library directory of $HOME/[$]GCAL_USR_DATADIR. */ ptr_env = getenv (ENV_VAR_HOME); if (ptr_env != (char *) NULL) if (*ptr_env) { ptr_char = getenv (ENV_VAR_USR_DATADIR); /* Search the file in the directory specified in the $GCAL_USR_DATADIR environment variable first. */ if (ptr_char != (char *) NULL) { if (*ptr_char) { make_absolute_filename (&s1, ptr_env, ptr_char); strcpy (s2, s1); make_absolute_filename (&s1, s2, *filename); fp = get_file_ptr (fp, s1, level, mode, &is_first); } } else { /* If the $GCAL_USR_DATADIR environment variable is unset, search the file in burned-in user's library directory of GCAL_USR_DATADIR. */ make_absolute_filename (&s1, ptr_env, GCAL_USR_DATADIR); strcpy (s2, s1); make_absolute_filename (&s1, s2, *filename); fp = get_file_ptr (fp, s1, level, mode, &is_first); } } } if (fp == (FILE *) NULL) { /* The file isn't found in user library directory of $HOME/[$]GCAL_USR_DATADIR: * Search the file in the system's library directory of $GCAL_SYS_DATADIR. */ ptr_env = getenv (ENV_VAR_SYS_DATADIR); /* Search the file in the directory specified in the $GCAL_SYS_DATADIR environment variable first. */ if (ptr_env != (char *) NULL) { if (*ptr_env) { make_absolute_filename (&s1, ptr_env, *filename); fp = get_file_ptr (fp, s1, level, mode, &is_first); } } else { /* If the $GCAL_SYS_DATADIR environment variable is unset: * Search the file in burned-in system's library directory of GCAL_SYS_DATADIR. */ make_absolute_filename (&s1, GCAL_SYS_DATADIR, *filename); fp = get_file_ptr (fp, s1, level, mode, &is_first); } } # endif /* USE_RC */ #else /* AMIGA && !__GNUC__ */ /* It's not necessary to perform further searches for COmmon files, because the compiler/system doesn't support the `getenv()' function. */ if (mode == COmmon) return (fp); # if USE_RC /* This part is for compilers/systems which do not support the `getenv()' function. */ if (fp == (FILE *) NULL) { /* The file isn't found in the actual directory: * Search the file in the burned-in user's library directory of GCAL_USR_DATADIR. */ make_absolute_filename (&s1, GCAL_USR_DATADIR, *filename); fp = get_file_ptr (fp, s1, level, mode, &is_first); } if (fp == (FILE *) NULL) { /* The file isn't found in the user's library directory of GCAL_USR_DATADIR: * Search the file in the burned-in system's library directory of GCAL_SYS_DATADIR. */ make_absolute_filename (&s1, GCAL_SYS_DATADIR, *filename); fp = get_file_ptr (fp, s1, level, mode, &is_first); } # endif /* USE_RC */ #endif /* AMIGA && !__GNUC__ */ /* If the file is found: Copy the real (absolute) name of the file to `&filename'. */ if (fp != (FILE *) NULL) { len = (int) strlen (s1); if ((int) strlen (*filename) < len) /* We MUST reallocate the memory area of `&filename'! */ *filename = (char *) my_realloc ((VOID_PTR) * filename, len + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "*filename", 0); strcpy (*filename, s1); } #if USE_RC else /* File not found! */ if (warning_level >= WARN_LVL_MAX) /* Terminate if `--debug=abort' option is given. */ my_error (ERR_FILE_NOT_FOUND, *filename, 0L, *filename, 0); #endif return (fp); } char *file_read_line (fp, line_buffer, in_pool, pool, ptr_pool, filename, line_number, line_length, mode, is_include, is_dvar, is_tvar) FILE *fp; char **line_buffer; int *in_pool; char *pool; char *ptr_pool; const char *filename; long *line_number; int *line_length; const Fmode_enum mode; Bool *is_include; Bool *is_dvar; Bool *is_tvar; /*! Reads a line of a delivered resource/response file into `&line_buffer' using the delivered char vector `pool', which must be allocated by caller with size BUF_LEN+1 (BUF_LEN should be "A POWER OF 2", e.g., 4096). Returns the position in buffer of the character managed in next call by char pointer `ptr_pool', which must be defined by caller; or NULL if EOF is detected. */ { static Uint lbuf_max = MAXLEN_MAX; register int i = 1; auto char *ptr_char; auto char ch; auto Bool is_error = FALSE; #if USE_RC auto Bool is_rem = FALSE; #endif /* Ensure NOW that `&line_buffer' is ALWAYS as large as all "other" string vectors (s1...s7) are, because the `&line_buffer' is not resized in all cases when the "other" strings vectors are resized! */ if (lbuf_max < maxlen_max) { *line_buffer = (char *) my_realloc ((VOID_PTR) * line_buffer, maxlen_max, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "*line_buffer", maxlen_max); lbuf_max = maxlen_max; } **line_buffer = '\0'; *line_length = 0; ptr_char = *line_buffer; (*is_include) = (*is_dvar) = (*is_tvar) = FALSE; /* Initial fill/refill of `pool'. */ if (!*in_pool) { *in_pool = read (fileno (fp), (char *) pool, BUF_LEN); if (!*in_pool) /* At end of file. */ return (NULL); else if (*in_pool < 0) /* File read error. */ my_error (ERR_READ_FILE, __FILE__, (long) __LINE__, filename, 0); ptr_pool = pool; } if (*ptr_pool == '\n') (*line_number)++; while ((*ptr_pool != REM_CHAR) && ( #if USE_RC ((mode == REsource) && (*ptr_pool != *RC_INCL_STMENT) && (*ptr_pool != RC_TVAR_CHAR) && !isalnum (*ptr_pool)) || #endif ((mode == REsponse) && (*ptr_pool != *MONTH3_LIT) && (*ptr_pool != *FYEAR_SEP) && (*ptr_pool != RSP_CHAR) && !isalnum (*ptr_pool) #if USE_RC && (*ptr_pool != RC_ADATE_CHAR) #endif && (*ptr_pool != *SWITCH) && (*ptr_pool != *SWITCH2)))) { if ((!**line_buffer && !isspace (*ptr_pool)) || **line_buffer) { if ((Uint) i >= maxlen_max) { resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); ptr_char = *line_buffer + i - 1; } i++; *ptr_char++ = *ptr_pool++; } else ptr_pool++; (*in_pool)--; if (!*in_pool) { /* Refill `pool', because the line we work on isn't complete. */ *in_pool = read (fileno (fp), (char *) pool, BUF_LEN); if (!*in_pool) { /* At end of file. */ if (i > 1) /* Error, the line of the resource file contains no valid "date"-part. */ break; return (NULL); } else if (*in_pool < 0) /* File read error. */ my_error (ERR_READ_FILE, __FILE__, (long) __LINE__, filename, 0); ptr_pool = pool; } if (*ptr_pool == '\n') { if (i > 1) { /* Error, the line of the resource file contains no valid "date"-part. */ if ((Uint) i < maxlen_max) i--; (*in_pool)++; ptr_pool--; ptr_char--; break; } (*line_number)++; } } (*line_number)++; /* Skip whole line. */ if ((mode != COmmon) && (*ptr_pool == REM_CHAR)) { #if USE_RC is_rem = TRUE; #endif LOOP { ch = '\0'; /* Read until a NEWLINE character or EOF. */ while (*ptr_pool != '\n') { /* Refill `pool', because the line we work on isn't complete. */ if (!*in_pool) { *in_pool = read (fileno (fp), (char *) pool, BUF_LEN); if (!*in_pool) /* At end of file. */ return (NULL); else if (*in_pool < 0) /* File read error. */ my_error (ERR_READ_FILE, __FILE__, (long) __LINE__, filename, 0); ptr_pool = pool; } else { ch = *ptr_pool++; (*in_pool)--; } } /* Skip the trailing NEWLINE character of the line. */ ptr_pool++; if (*in_pool) (*in_pool)--; /* Check if it is a `\\'`\n' (BACKSLASH-NEWLINE) character sequence: If so, append the next line to the current line. */ if (ch == QUOTE_CHAR) { if (!*in_pool) { *in_pool = read (fileno (fp), (char *) pool, BUF_LEN); if (!*in_pool) /* At end of file. */ return (NULL); else if (*in_pool < 0) /* File read error. */ my_error (ERR_READ_FILE, __FILE__, (long) __LINE__, filename, 0); ptr_pool = pool; } (*line_number)++; } else break; } } else { if (i > 1) is_error = TRUE; #if USE_RC else if (mode == REsource) { if (*ptr_pool == *RC_INCL_STMENT) *is_include = TRUE; else if (isalpha (*ptr_pool)) *is_dvar = TRUE; else if (*ptr_pool == RC_TVAR_CHAR) *is_tvar = TRUE; else if (!isdigit (*ptr_pool)) is_error = TRUE; } #endif ch = (*ptr_char++) = *ptr_pool++; (*in_pool)--; LOOP { if (*in_pool) { if ((Uint) i < maxlen_max) i++; else { resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); ptr_char = *line_buffer + i++; } /* Character sequence `\\'`\n' (BACKSLASH-NEWLINE) found: Eliminate the sequence and append the next line to the current line. */ if ((*ptr_pool == '\n') && (ch == QUOTE_CHAR)) { if (is_error) { (*in_pool)--; break; } if ((Uint) i >= maxlen_max) { resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); ptr_char = *line_buffer + i - 1; } ptr_char--; i -= 2; (*line_number)++; ch = *ptr_pool; if (*in_pool) ptr_pool++; } else { ch = *ptr_pool++; /* Single NEWLINE character found: We must finish the line! */ if (ch == '\n') { (*in_pool)--; break; } else { if ((Uint) i >= maxlen_max) { resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); ptr_char = *line_buffer + i - 1; } *ptr_char++ = ch; } } if (*in_pool) (*in_pool)--; } /* Refill `pool', because the line we work on isn't complete. */ if (!*in_pool) { *in_pool = read (fileno (fp), (char *) pool, BUF_LEN); if (!*in_pool) { /* At end of file. */ if (!**line_buffer) return (NULL); else break; } else if (*in_pool < 0) /* File read error. */ my_error (ERR_READ_FILE, __FILE__, (long) __LINE__, filename, 0); ptr_pool = pool; } } } *ptr_char = '\0'; #if USE_RC if (!is_error && !is_rem && (mode == REsource)) { if (*is_tvar) { if (i > 2) { /* If the line does not consist of a text variable assignment or operation, expand the text variable. */ if ((isalpha (*(*line_buffer + 1)) && (*(*line_buffer + 2) != *RC_VAR_ASSIGN) && (*(*line_buffer + 2) != *RC_TVAR_ICMD_ASSIGN) && (*(*line_buffer + 2) != *RC_TVAR_UCMD_ASSIGN) && (*(*line_buffer + 2) != *RC_VAR_ADD) && (*(*line_buffer + 2) != *RC_VAR_SUB)) || *(*line_buffer + 1) == FLEFT_CHAR || *(*line_buffer + 1) == FCENTER_CHAR || *(*line_buffer + 1) == FRIGHT_CHAR) *is_tvar = FALSE; } else *is_tvar = FALSE; } /* Try to expand text variables NOW! */ if (!*is_tvar) { register int len; register int n; register int k; register int x; register int l; register int flen = 1; auto int fstyle = FSTYLE_NONE; auto int fwidth = SPECIAL_VALUE; auto char *ptr_tvar; static char tvar[2]; static char the_tvar; auto Bool is_quoted = FALSE; auto Bool restore_tvar = FALSE; auto Bool ok = FALSE; auto Bool is_cformat = FALSE; auto Bool is_lformat = FALSE; auto Bool is_sign = FALSE; auto Bool is_lzero = FALSE; auto Bool is_fformat = FALSE; auto Bool is_suffix = FALSE; /* Analyse line till ALL referenced text variables are expanded. */ do { ptr_char = *line_buffer; /* Check if the assigned TEXT contains any references to other TVAR variables, if so, insert their TEXTs. */ ptr_tvar = strchr (ptr_char, RC_TVAR_CHAR); if (ptr_tvar != (char *) NULL) { n = flen; /* Buffer the name of the text variable respecting a possible TVAR format $[<|:|>[+][0]N[&]#|*]TVAR. */ while (*(ptr_tvar + n) && !isalpha (*(ptr_tvar + n))) n++; the_tvar = *(ptr_tvar + n); *tvar = tvar[1] = '\0'; n = k = 0; do { /* Check for a TVAR format. */ flen = decode_format (ptr_tvar, flen, &is_cformat, &is_lformat, &is_sign, &is_lzero, &is_suffix, &is_fformat, &fstyle, &fwidth); if (fwidth == SPECIAL_VALUE) flen = 1; *tvar = *(ptr_tvar + flen); tvar[1] = *(ptr_tvar + flen + 1); len = (int) (ptr_tvar - ptr_char); if (len) { while ((Uint) len + k >= maxlen_max) { resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); ptr_char = *line_buffer + n; } strncpy (s5 + k, ptr_char, len); k += len; } s5[k] = '\0'; if (k) if (s5[k - 1] == QUOTE_CHAR) is_quoted = TRUE; if (!is_quoted && isalpha (*tvar)) { register int j = 0; register int j_buf; /* Try to insert the value of this TVAR (this is its TEXT). */ if (rc_tvar[IDX (*tvar)].tvar_local.tvar_text != (char *) NULL || rc_tvar[IDX (*tvar)].tvar_global. tvar_text != (char *) NULL) { auto char *buf; if (rc_tvar[IDX (*tvar)].tvar_local. tvar_text != (char *) NULL) { if (!*rc_tvar[IDX (*tvar)].tvar_local. tvar_text) { if (rc_tvar[IDX (*tvar)].tvar_global. tvar_text != (char *) NULL) buf = rc_tvar[IDX (*tvar)].tvar_global. tvar_text; else buf = rc_tvar[IDX (*tvar)].tvar_local. tvar_text; } else buf = rc_tvar[IDX (*tvar)].tvar_local. tvar_text; } else buf = rc_tvar[IDX (*tvar)].tvar_global. tvar_text; j_buf = (int) strlen (buf); if (fwidth != SPECIAL_VALUE) { if (is_fformat) j = fwidth; else { register int num_hls = 0; auto char *ptr_buf = buf; auto char *tvar_text; auto Bool quote = FALSE; /* Scan contents of TVAR for special texts used for highlighting. */ tvar_text = (char *) my_malloc (j_buf + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "tvar_text", 0); l = x = 0; LOOP { if (*(ptr_buf + l)) { if (*(ptr_buf + l) == RC_SPECIAL_TEXT_CHAR) { l++; switch (*(ptr_buf + l)) { case RC_HLS1S_CHAR: case RC_HLS1E_CHAR: case RC_HLS2S_CHAR: case RC_HLS2E_CHAR: case RC_HLS3S_CHAR: case RC_HLS3E_CHAR: case RC_HLS4S_CHAR: case RC_HLS4E_CHAR: case RC_HLS5S_CHAR: case RC_HLS5E_CHAR: if (quote) { quote = FALSE; x--; tvar_text[x++] = *(ptr_buf + l - 1); tvar_text[x++] = *(ptr_buf + l); } else num_hls++; break; default: tvar_text[x++] = *(ptr_buf + l - 1); tvar_text[x++] = *(ptr_buf + l); } } else { if (*(ptr_buf + l) == QUOTE_CHAR) quote = TRUE; else quote = FALSE; tvar_text[x++] = *(ptr_buf + l); } l++; } else { tvar_text[x] = '\0'; break; } } free (tvar_text); if (highlight_flag && (ehls1s.len == 1)) { fwidth += num_hls; j = MAX (fwidth, j_buf); } else { j_buf = x; j = MAX (fwidth, j_buf); j += (num_hls << 1); } } } else j = j_buf; if (j) { while ((Uint) k + j >= maxlen_max) { resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); ptr_char = *line_buffer + n; } if (fwidth != SPECIAL_VALUE) (void) use_format (&s5, k, buf, atol (buf), is_sign | is_lzero | is_suffix, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, j_buf); else strcat (s5, buf); } /* Skip TVAR name. */ len += (flen + 1); if (j) k += j; else /* If TVAR is "empty", remove a possibly obsolete whitespace. */ if (isspace (s5[k - 1]) && isspace (tvar[1])) s5[--k] = '\0'; } else restore_tvar = TRUE; } else restore_tvar = TRUE; /* If TVAR isn't defined, or quoted, or an invalid TVAR name is found, don't touch it. */ if (restore_tvar) { if ((Uint) k + 1 >= maxlen_max) { resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); ptr_char = *line_buffer + n; } s5[k++] = RC_TVAR_CHAR; len++; if (*tvar && (flen == 1)) { if ((Uint) k + 1 >= maxlen_max) { resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); ptr_char = *line_buffer + n; } s5[k++] = *tvar; len++; } s5[k] = '\0'; } n += len; ptr_char += len; ptr_tvar = strchr (ptr_char, RC_TVAR_CHAR); flen = 1; restore_tvar = is_quoted = FALSE; } while (ptr_tvar != (char *) NULL); /* Add possibly trailing ordinary text. */ if (*ptr_char) { k += (int) strlen (ptr_char); while ((Uint) k >= maxlen_max) { resize_all_strings (maxlen_max << 1, TRUE, __FILE__, (long) __LINE__); ptr_char = *line_buffer + n; } strcat (s5, ptr_char); } i = k++; strcpy (*line_buffer, s5); /* If the expansion results to a text variable assignment or operation, skip the expansion loop and perform the assignment/operation. */ if ((**line_buffer == RC_TVAR_CHAR) && isalpha (*(*line_buffer + 1)) && (*(*line_buffer + 2) == *RC_VAR_ASSIGN || *(*line_buffer + 2) == *RC_TVAR_ICMD_ASSIGN || *(*line_buffer + 2) == *RC_TVAR_UCMD_ASSIGN || *(*line_buffer + 2) == *RC_VAR_ADD || *(*line_buffer + 2) == *RC_VAR_SUB)) *is_tvar = ok = TRUE; /* Now check whether we have to analyse the line again in case text variables were expanded to texts which contain unquoted references of other text variables. */ n = 0; ptr_tvar = strchr (*line_buffer, RC_TVAR_CHAR); if (ptr_tvar != (char *) NULL) { do { if (!n && (**line_buffer != RC_TVAR_CHAR)) ptr_tvar--; else if (n) ptr_tvar--; *tvar = *ptr_tvar; if (!n && (**line_buffer != RC_TVAR_CHAR)) ptr_tvar++; else if (n) ptr_tvar++; ptr_tvar++; /* Check for a TVAR format. */ flen = decode_format (ptr_tvar, 0, &is_cformat, &is_lformat, &is_sign, &is_lzero, &is_suffix, &is_fformat, &fstyle, &fwidth); if (fwidth != SPECIAL_VALUE) ptr_tvar += flen; /* Check if a text variable reference is found which needs to be expanded again. */ if ((*tvar != QUOTE_CHAR) && isalpha (*ptr_tvar) && (rc_tvar[IDX (*ptr_tvar)].tvar_local. tvar_text != (char *) NULL || rc_tvar[IDX (*ptr_tvar)].tvar_global. tvar_text != (char *) NULL)) { /* Check if expansion results to invalid recursion. */ if (*ptr_tvar == the_tvar) ok = TRUE; else flen = 1; /* Text variable reference found which needs to be expanded again. */ break; } n = 1; while (*ptr_tvar == RC_TVAR_CHAR) ptr_tvar++; if (*ptr_tvar) ptr_tvar = strchr (ptr_tvar, RC_TVAR_CHAR); else ptr_tvar = (char *) NULL; } while (ptr_tvar != (char *) NULL); if (ptr_tvar == (char *) NULL) ok = TRUE; } else /* All text variable references already expanded. */ ok = TRUE; } else /* No text variable references found. */ ok = TRUE; /* If the expansion results to an include directive, skip the expansion loop and perform the assignment. */ if (**line_buffer == *RC_INCL_STMENT) *is_include = ok = TRUE; else /* If the expansion results to a date variable assignment, skip the expansion loop and perform the assignment. */ if (isalpha (**line_buffer)) *is_dvar = ok = TRUE; } while (!ok); } /* Check for a local date variable DVAR definition. */ if (*is_dvar) set_dvar (*line_buffer, lptrs3, filename, *line_number, LOcal); /* Check for a local text variable TVAR definition. */ if (*is_tvar) set_tvar (*line_buffer, filename, *line_number, LOcal); } #endif if (is_error) { #if USE_RC if (mode == REsource) /* Error, invalid date-"part" given. */ i = ERR_INVALID_DATE_FIELD; else #endif /* Error, illegal NUL character found in file. */ i = ERR_ILLEGAL_CHAR_IN_FILE; my_error (i, filename, *line_number, *line_buffer, 0); } if (ch == '\n') *line_length = i - 1; else *line_length = i; return (ptr_pool); } char **insert_response_file (fp, filename, opt_list, my_argc_max, my_argc, my_argv) FILE *fp; char *filename; const char *opt_list; Uint *my_argc_max; int *my_argc; char *my_argv[]; /*! Tries to manage a response file @FILE argument given in the command line. Inserts the options and commands found in file @FILE (name delivered in `filename' and its file pointer in `fp') into `my_argv[]' and sets delivered `&my_argc' and perhaps `&my_argc_max' to according "new" values. Uses the global text buffer `s1' internally. Returns the build `my_argv[]' ptr vector. */ { auto long line_number = 0L; auto int line_length; auto int in_pool = 0; auto char *pool = (char *) NULL; auto char *ptr_pool = (char *) NULL; auto Bool b_dummy; /* Necessary dummy for `file_read_line()' function. */ pool = (char *) my_malloc (BUF_LEN + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "pool", 0); while ((ptr_pool = file_read_line (fp, &s1, &in_pool, pool, ptr_pool, filename, &line_number, &line_length, REsponse, &b_dummy, &b_dummy, &b_dummy)) != (char *) NULL) if (*s1) { if ((*s1 == *SWITCH || *s1 == *SWITCH2) && s1[1] && (s1[1] != *SWITCH)) /* Short-style option found. */ if ((strchr (opt_list, s1[1]) != (char *) NULL) && isspace (s1[2])) { register int spaces = 1; /* Short-style option requires an argument, which could be separated by whitespace characters from the option character; respect this! This means all separating whitespace characters between the option character and argument will be eliminated. */ line_length = 2; while (s1[line_length + spaces] && isspace (s1[line_length + spaces])) /* Count the separating whitespace characters. */ spaces++; /* Store needed argument of option adjacent to option character. */ while (s1[line_length + spaces]) { s1[line_length] = s1[line_length + spaces]; line_length++; } s1[line_length] = '\0'; } /* Avoid one or two letter combinations of '-', '/' or '%' characters only! */ if (((line_length == 1) && (*s1 == *SWITCH #if USE_RC || *s1 == RC_ADATE_CHAR #endif || *s1 == *SWITCH2)) || ((line_length == 2) && (*s1 == *SWITCH #if USE_RC || *s1 == RC_ADATE_CHAR #endif || *s1 == *SWITCH2) && (s1[1] == *SWITCH #if USE_RC || s1[1] == RC_ADATE_CHAR #endif || s1[1] == *SWITCH2))) ; /* Void, don't allocate memory */ else { if ((Uint) * my_argc >= *my_argc_max) { /* Resize the `my_argv[]' table. */ *my_argc_max <<= 1; if (*my_argc_max * sizeof (char *) > testval) (*my_argc_max)--; my_argv = (char **) my_realloc ((VOID_PTR) my_argv, *my_argc_max * sizeof (char *), ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 3L, "my_argv[my_argc_max]", *my_argc_max); } my_argv[*my_argc] = (char *) my_malloc (line_length + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "my_argv[my_argc]", *my_argc); strcpy (my_argv[(*my_argc)++], s1); } } free (pool); return (my_argv); } void write_log_file (filename, mode, mode_txt, created_txt, argc, argv) const char *filename; const Fmode_enum mode; const char *mode_txt; const char *created_txt; const int argc; char *argv[]; /*! Writes the contents of the environment variable $GCAL, which is already stored in `argc' and the arguments of command line either into a response file (MODE==REsponse) or into a shell script (MODE==SCript); other settings to `mode' will `abort()' the program immediately. */ { auto FILE *fp = (FILE *) NULL; auto int len = 0; register int i = 0; fp = fopen (filename, "w"); if (fp != (FILE *) NULL) { switch (mode) { case REsponse: len = fprintf (fp, "%c `%s' %s `%s' --- %s %02d-%s-%04d %02d%s%02d%s%02d", REM_CHAR, prgr_name, mode_txt, filename, created_txt, true_day, short_month_name (true_month), true_year, act_hour, time_sep, act_min, time_sep, act_sec); if (tz != (char *) NULL) len = fprintf (fp, " %s", tz); len = fprintf (fp, "\n%c\n", REM_CHAR); break; #ifdef GCAL_SHELL case SCript: # if HAVE_SYS_INTERPRETER len = fprintf (fp, "%c%s\n%c\n%c `%s' %s `%s' --- %s %02d-%s-%04d %02d%s%02d%s%02d", *SHL_REM, SHELL, *SHL_REM, *SHL_REM, prgr_name, mode_txt, filename, created_txt, true_day, short_month_name (true_month), true_year, act_hour, time_sep, act_min, time_sep, act_sec); # else /* !HAVE_SYS_INTERPRETER */ len = fprintf (fp, "%c `%s' %s `%s' --- %s %02d-%s-%04 %02d%s%02d%s%02d", *SHL_REM, prgr_name, mode_txt, filename, created_txt, true_day, short_month_name (true_month), true_year, act_hour, time_sep, act_min, time_sep, act_sec); # endif /* !HAVE_SYS_INTERPRETER */ if (tz != (char *) NULL) len = fprintf (fp, " %s", tz); len = fprintf (fp, "\n%c\n%s %c\n", *SHL_REM, prgr_name, *SHL_ESC); break; #endif /* GCAL_SHELL */ default: /* This case MUST be an internal error! */ abort (); } if (len != EOF) { for (i = 1; i < argc; i++) { /* Don't write the name of a response file or of a shell script into the response file! */ if (*argv[i] == *SWITCH || *argv[i] == *SWITCH2) { /* If the short-style option -R or -S is given, skip it! */ if (*(argv[i] + 1) == 'R' #ifdef GCAL_SHELL || *(argv[i] + 1) == 'S' #endif ) continue; if (*(argv[i] + 1) == *SWITCH) { /* Detect whether the long-style option `--response-file=ARG' or `--shell-script=ARG' is given and if found, don't write this option itself into the response file! */ strcpy (s4, argv[i] + 2); (void) eval_longopt (s4, &len); if (len == SYM_RESPONSE_FILE) continue; #ifdef GCAL_SHELL if (len == SYM_SCRIPT_FILE) continue; #endif } } if (*argv[i] == RSP_CHAR) /* Avoid to write a response file @FILE argument into the resulting file. */ continue; switch (mode) { case REsponse: len = fprintf (fp, "%s\n", argv[i]); break; #ifdef GCAL_SHELL case SCript: len = fprintf (fp, "'%s' %c\n", argv[i], *SHL_ESC); break; #endif default: /* This case can't occur anymore, if so, it MUST be an internal error! */ abort (); } if (len == EOF) break; } #ifdef GCAL_SHELL if (mode == SCript) len = fprintf (fp, " $*\n"); #endif i = fclose (fp); } } else len = EOF; if (i == EOF) len = EOF; if (((len != EOF) && (warning_level == 1)) || ((len == EOF) && (warning_level == 2)) || warning_level > 2) { i = (int) strlen (filename) + MAX (ehls1s.len, ehls2s.len) + MAX (ehls1e.len, ehls2e.len) + LEN_SINGLE_LINE; if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); sprintf (s4, _("Try to write %s `%s'... %s%s%s"), mode_txt, filename, (ehls1s.len != 1) ? ((len == EOF) ? ehls2s.seq : ehls1s.seq) : "", (len == EOF) ? _("failed") : _("success"), (ehls1s.len != 1) ? ((len == EOF) ? ehls2e.seq : ehls1e.seq) : ""); print_text (stderr, s4); /* Terminate the program in case the file can't be written! */ if ((len == EOF) && (warning_level >= WARN_LVL_MAX)) my_error (ERR_WRITE_FILE, __FILE__, (long) __LINE__, filename, 0); } #ifdef GCAL_SHELL if ((mode == SCript) && (len != EOF)) { /* Try to make the created shell script executable! */ i = (int) strlen (filename) + strlen (CHMOD_PRGR) + strlen (CHMOD_OPTS) + 2; if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); sprintf (s4, "%s %s %s", CHMOD_PRGR, CHMOD_OPTS, filename); /* And ignore any errors... */ (void) my_system (s4); } #endif /* GCAL_SHELL */ } static void make_absolute_filename (absolute_filename, directory, filename) char **absolute_filename; const char *directory; const char *filename; /*! Creates an absolute file name (directory+file name) of a delivered file name and directory and returns it in delivered `&absolute_filename'. */ { register int dir_len = (int) strlen (directory); register int fil_len = (int) strlen (filename); if (directory[dir_len - 1] != *DIR_SEP) dir_len++; if ((Uint) dir_len + fil_len >= maxlen_max) resize_all_strings (dir_len + fil_len + 1, FALSE, __FILE__, (long) __LINE__); strcpy (*absolute_filename, directory); if (directory[dir_len - 1] != *DIR_SEP) strcat (*absolute_filename, DIR_SEP); strcat (*absolute_filename, filename); } static FILE *get_file_ptr (fp, filename, level, mode, is_first) FILE *fp; const char *filename; const int level; const Fmode_enum mode; Bool *is_first; /*! Tries to open the file (with optional diagnostic messages on STDERR channel in case the `--debug[=0...WARN_LVL_MAX]' option is set) and returns a valid file pointer of that file, or NULL if this fails. */ { #if HAVE_SYS_STAT_H && defined(S_IFMT) && defined(S_IFREG) auto struct stat statbuf; fp = (FILE *) NULL; /* Check whether STDIN channel is wanted. */ if ((*filename == '-') && (strlen (filename) == 1)) fp = stdin; else /* Test if the file is a regular file, if not, ignore it! */ if (!stat (filename, &statbuf)) if ((statbuf.st_mode & S_IFMT) == S_IFREG) fp = fopen (filename, "r"); #else /* !HAVE_SYS_STAT_H || !S_IFMT || !S_IFREG */ if ((*filename == '-') && (strlen (filename) == 1)) fp = stdin; else fp = fopen (filename, "r"); #endif /* !HAVE_SYS_STAT_H || !S_IFMT || !S_IFREG */ if ((warning_level >= 0) && (mode != REsponse) && (mode != COmmon)) #if USE_RC { if (((fp != (FILE *) NULL) && (warning_level == 1)) || ((fp == (FILE *) NULL) && (warning_level == 2)) || warning_level > 2) { register int i; /* If this function is entered the first time: Print a leading NEWLINE character before any information texts. */ if (*is_first) { *is_first = FALSE; *s4 = '\0'; print_text (stderr, s4); } i = (int) strlen (filename) + MAX (ehls1s.len, ehls2s.len) + MAX (ehls1e.len, ehls2e.len) + LEN_SINGLE_LINE; if ((Uint) i >= maxlen_max) resize_all_strings (i + 1, FALSE, __FILE__, (long) __LINE__); if (mode == REsource || mode == HEre) sprintf (s4, _("Try to open%sresource file `%s'... %s%s%s"), (mode == REsource) ? " " : _(" `HERE' "), filename, (ehls1s.len != 1) ? ((fp == (FILE *) NULL) ? ehls2s.seq : ehls1s.seq) : "", (fp == (FILE *) NULL) ? _("failed") : _("success"), (ehls1s.len != 1) ? ((fp == (FILE *) NULL) ? ehls2e.seq : ehls1e. seq) : ""); else sprintf (s4, _ ("Try to open (level: %02d) include file `%s'... %s%s%s"), level, filename, (ehls1s.len != 1) ? ((fp == (FILE *) NULL) ? ehls2s.seq : ehls1s.seq) : "", (fp == (FILE *) NULL) ? _("failed") : _("success"), (ehls1s.len != 1) ? ((fp == (FILE *) NULL) ? ehls2e.seq : ehls1e. seq) : ""); print_text (stderr, s4); } } #else /* !USE_RC */ ; /* Void, no text to display */ #endif /* !USE_RC */ return (fp); } gcal-4.1/src/hd-use.c0000664000000000000000000017072112527063557011321 00000000000000/*! * \file hd-use.c * \brief Manage the eternal holiday list. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000, 2011 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * Include header files. */ #include "tailor.h" #if HAVE_CTYPE_H # include #endif #include "common.h" #if USE_RC # include "rc-defs.h" #endif /* USE_RC */ #include "globals.h" #include "hd-astro.h" #include "hd-defs.h" #include "hd-data.h" #include "tty.h" #include "utils.h" #include "hd-use.h" /* * GLOBAL variables definitions. */ /*! Stores the fixed eternal holiday list texts. */ char *hd_table[HD_ELEMS_MAX] = { (char *) NULL }; /*! Vector of holiday dates (legal days). */ char hd_ldays[HD_MAX] = { '\0' }; /*! Vector of holiday dates (memorial days). */ char hd_mdays[HD_MAX] = { '\0' }; /* * Function implementations. */ int eval_holiday (day, month, year, wd, forwards) int day; const int month; const int year; const int wd; const Bool forwards; /*! Detects first (FORWARDS==TRUE) or last (FORWARDS==FALSE) appearance of weekday `wd' in given date starting the search at `day' and returns the day number of `wd' in month. */ { LOOP { if (weekday_of_date (day, month, year) == wd) break; else (forwards) ? day++ : day--; } /* Correction for missing days during Gregorian Reformation. */ if ((year == greg->year) && (month == greg->month) && (day >= greg->first_day) && (day <= greg->last_day)) day = (forwards) ? eval_holiday (greg->last_day + 1, month, year, wd, forwards) : eval_holiday (greg->first_day - 1, month, year, wd, forwards); return (day); } int orthodox_easter (year, greg_diff, greg_year, greg_month, greg_first_day, greg_last_day) const int year; int *greg_diff; const int greg_year; const int greg_month; const int greg_first_day; const int greg_last_day; /*! Calculates the day and month of Orthodox Easter giving the year and the specific Gregorian Reformation date. It returns the "actual day_of_year number" of Eastern Easter of the Eastern Orthodox churches after AD 29 and passes the number of days between the given Gregorian calendar date and the according Julian calendar date in `&greg_diff'. If my references are right, the Eastern Orthodox churches celebrated Easter on the date of the Hebrew Pesach feast for dates prior AD 325 (Council of Nicaea). Later dated Easter is celebrated according to the Nicaean Easter date rule (Metonic cycle, Epacts and so forth...), but conforming to the Julian calendar. So we have to compute the date of Easter by using Julian dates for a definite year, means, we have to ignore any missing days of a Gregorian Reformation for this year. Then, we simply add the day difference of the given Gregorian calendar date and the according Julian calendar date -- i.e. the amount of days, the Julian calendar is past the Gregorian calendar -- to this date! See the `knuth_easter_formula()' function for further details. */ { auto Greg_struct tmp_greg; register int easter; register int diff; /* We first need to buffer the Gregorian Reformation period actually used. */ tmp_greg.first_day = greg->first_day; tmp_greg.last_day = greg->last_day; tmp_greg.month = greg->month; tmp_greg.year = greg->year; if (year < 325) easter = tishri_1 (year) - 163; else { /* Then we set the Gregorian Reformation period to a date which is out of the range of dates Gcal is able to manage, for computing the Easter Sunday of a Julian date, means we behave as if no Gregorian Reformation has ever happened. */ greg->last_day = greg->first_day = DAY_MIN; greg->month = MONTH_MIN; greg->year = YEAR_MAX + 3; /* Compute the Julian Easter Sunday's date. */ easter = knuth_easter_formula (year); } /* Now we set the Gregorian Reformation period to the date given. */ greg->year = greg_year; greg->month = greg_month; greg->first_day = greg_first_day; greg->last_day = greg_last_day; /* The computation is done for the next date after the given Gregorian Reformation period, but for the current year (Gregorian date). If this is not proper, I would like to hear *your* solution how to compute it in the right way! */ diff = julian_gregorian_diff (greg->last_day + 1, greg->month, year); if (greg_diff != (int *) NULL) *greg_diff = diff; /* And restore the buffered Gregorian Reformation date actually used. */ greg->year = tmp_greg.year; greg->month = tmp_greg.month; greg->last_day = tmp_greg.last_day; greg->first_day = tmp_greg.first_day; return (easter + diff); } int tishri_1 (year) const int year; /*! Returns the `day_of_year' number of the (arithmetical lunisolar) Hebrew/Jewish Hebrew_New_Year/Rosh_Hashana/Tishri_1 for the given Julian/Gregorian year YEAR. Used formula: John H. Conway, Guy and Berlekamp: "Winning Ways", Vol. 2. References: Lot's of, but see `doc/calendar.faq' for the basics. */ { auto double n; register int golden_number = (year % 19) + 1; register int g12 = (12 * golden_number) % 19; register int doy = day_of_year (dvec[8 - 1], 8, year); /* Calculation for Julian years. */ n = ((765433.0 / 492480.0) * g12) + ((year % 4) / 4.0) - (((313.0 * year) + 89081.0) / 98496.0); if (year >= greg->year) /* Correction term for Gregorian years. */ n += ((year / 100) - (year / 400) - 2.0); doy += (int) n; switch (weekday_of_date ((int) n, 9, year)) { case 3: case 5: case DAY_MAX: doy++; break; case DAY_MIN: if ((n - (int) n >= 23269.0 / 25920.0) && (g12 > 11)) doy++; break; case 2: if ((n - (int) n >= 1367.0 / 2160.0) && (g12 > 6)) doy++; break; default: ; /* Void, nothing to do. */ } return (doy); } int muharram_1 (year, doy) const int year; int *doy; /*! Returns the `day_of_year' number of the (arithmetical lunar) Islamic *CIVIL* calendar's Islamic_New_Year/MuHarram_1 for the given Julian/Gregorian year YEAR, which must be greater than AD 621. The caller has to guarantee this! If MuHarram_1 appears twice in the year YEAR, the `day_of_year' number of the second (later) date is passed via the address of DOY, otherwise zero. Used formula: My own one :) References: Lot's of, but see `doc/calendar.faq' for the basics. */ { auto Ulint mjd; register int i; register int hijri_year; auto int d; auto int m; auto int y; auto int d2; auto int m2; auto int y2 = 0; /* Calculate the approximate Hijri calendar year number for YEAR. Since the Hijri year is consistently shorter than a Julian or Gregorian year, we can simply multiply the year difference of `year-621' with a proper constant factor. This factor is 1.03071206847898 in Julian years, and 1.03069090396012 in Gregorian years. The average length of a Hijri year is 354.36~ days (10631 days within a 30-year cycle divided by 30), and when one divides this average length by the average length of a Julian year (365.25 days) or of a Gregorian year (365.2425), these above mentioned constant factors are the result. */ if (year > greg->year) /* Gregorian years. */ hijri_year = (greg->year - 621) * 1.03071206847898 + (year - greg->year) * 1.03069090396012; else /* Julian years. */ hijri_year = (year - 621) * 1.03071206847898; /* Perform at least two checks to detect the date(s) of MuHarram_1. */ LOOP { /* Detect the number of complete 30-year cycles passed since MuHarram_1, 1 Anno Hegirae, which corresponds to AD 16-Jul-0622 historically. Then multiply this number by 10631 (the total number of days of such a cycle) and add 227017 (the number of days passed from AD 01-Jan-0001 until AD 16-Jul-0622). */ mjd = 227017L + (Ulint) (hijri_year / 30) * 10631L; /* Calculate the number of Hijri years in the actual 30-year cycle. */ i = hijri_year % 30; /* Is the actual 30-year cycle completed? */ if (i) { /* No, add the number of days of the remaining Hijri years `years-1'. */ mjd += (Ulint) ((i - 1) * 354); /* And also add the number of leap days of the Hirji years which occurred in the actual 30-year cycle except the actual Hirjri year. */ for (--i; i; i--) if (i == 2 || i == 5 || i == 7 || i == 10 || i == 13 || i == 16 || i == 18 || i == 21 || i == 24 || i == 26 || i == 29) mjd++; } else /* Yes, a completed 30-year cycle detected, so subtract one Hijri non-leap year. */ mjd -= 354L; /* Check if MuHarram_1 occurs twice in the year YEAR. */ if (mjd < date2num (13, MONTH_MIN, year)) { num2date (mjd, &d2, &m2, &y2); /* Detect if the *next* Hirji year completes a 30-year cycle. */ if (!(++hijri_year % 30)) { /* Yes, so add one Hijri leap year and skip processing (this case is the first check). */ mjd += 355L; break; } } else break; } num2date (mjd, &d, &m, &y); /* Check if MuHarram_1 occurs twice in the year YEAR. */ if (y == y2) { /* Yes, MuHarram_1 occurs twice in the year YEAR. */ *doy = day_of_year (d, m, y); return (day_of_year (d2, m2, y2)); } /* No, MuHarram_1 occurs only once in the year YEAR. */ *doy = 0; if (y2 == year) /* MuHarram_1 found during the first check. */ return (day_of_year (d2, m2, y2)); /* MuHarram_1 found during the second check. */ return (day_of_year (d, m, y)); } int find_chinese_leap_month (conjunction_vector, nh_ws_prev_year, year, hour, min) Ulint *conjunction_vector; Ulint *nh_ws_prev_year; const int year; const int hour; const int min; /*! Calculates the leap month of the Chinese calendar (based on the method used since AD 1645, which implemented the use of true -- astronomically detected -- Sun), which occurs in the given Julian/Gregorian year YEAR. * If the computation of the leap month fails by any reason, SPECIAL_VALUE is returned. * If there is no leap month in the YEAR, 0 is returned. * If there is a leap month and it belongs to the YEAR, +1...+12 is returned. * If there is a leap month and it belongs to the previous YEAR, -11...-12 is returned. The date of the winter solstice (major solar term/Zhong-Qi 11) of the previous YEAR is returned via the address of NH_WS_PREV_YEAR. All conjunction dates (starting on the date of NH_WS_PREV_YEAR or later) which are necessary to calculate the Chinese calendar for the YEAR, are returned via the address of CONJUNCTION_VECTOR. The caller has to guarantee that the CONJUNCTION_VECTOR has 16 elements! Calculations are done for a line at a definite meridian expressed as a time value in HOUR and MIN. If HOUR and MIN are set to zero, calculations are done for UTC/GMT. If HOUR and MIN have a positive sign, calculations are done for meridians East of Greenwich, otherwise for meridians West of Greenwich. For a good and detailed reference of the Chinese calendar, see: "The Mathematics of the Chinese Calendar" by Helmer Aslaksen, . */ { auto double n; auto Ulint the_conjunction = 0L; auto Ulint cj_prev; auto Ulint cj; auto Ulint zq_prev; auto Ulint zq; auto Ulint zq1; register int lm_prev = 0; register int lm = 0; register int i = 0; register int j = 0; auto int d; auto int m; auto int y; auto int d2; auto int m2; auto int y2; auto Bool lm_found = FALSE; auto Bool double_zq_found = FALSE; auto Bool second_double_zq_found = FALSE; /* Get the latest date that's necessary to check, which is the major solar term/Zhong-Qi 1 of the next YEAR. */ y = year; n = NH_WS; zq1 = (Ulint) sun_longitude (n, &d, &m, &y, hour, min, FALSE); if (zq1 == (Ulint) SPECIAL_VALUE) return ((int) zq1); zq1 = (Ulint) next_sun_longitude (&n, 60.0, (double) zq1, &d, &m, &y, hour, min); if (zq1 == (Ulint) SPECIAL_VALUE) return ((int) zq1); /* Get the earliest date that's necessary to check, which is the major solar term/Zhong-Qi 10 of the previous YEAR. */ y = year - 1; n = NH_WS - 30.0; zq_prev = (Ulint) sun_longitude (n, &d, &m, &y, hour, min, FALSE); if (zq_prev == (Ulint) SPECIAL_VALUE) return ((int) zq_prev); /* Get the major solar term/Zhong-Qi 11 of the previous YEAR, the winter solstice, which is the base date for computing the Chinese_New_Year for the YEAR. */ *nh_ws_prev_year = zq = (Ulint) next_sun_longitude (&n, 30.0, (double) zq_prev, &d, &m, &y, hour, min); if (zq == (Ulint) SPECIAL_VALUE) return ((int) zq); /* And reset to the major solar term/Zhong-Qi 11 of the previous YEAR used in the ``next'' search later. */ n -= 30.0; /* Get the conjunction date of the previous YEAR, which is on or after the winter solstice date. */ *conjunction_vector = cj = (Ulint) moonphase (MPHASE_NEW, FALSE, NULL, &the_conjunction, &d, &m, &y, hour, min); /* If the conjunction date is on a later date as the winter solstice, get the previous conjunction date. */ if (cj > zq) the_conjunction--; /* All preconditioning is done, now detect a possible leap month (that's a month without a major solar term). */ y2 = y = year - 1; LOOP { /* Get the actual conjunction date. */ cj_prev = cj; cj = (Ulint) moonphase (MPHASE_NEW, FALSE, NULL, &the_conjunction, &d, &m, &y, hour, min); if (j) { if (*conjunction_vector != cj) *(conjunction_vector + j) = cj; else j--; } /* Check for leap month. */ if (lm || (!lm_found && (zq < cj))) { if (lm) { if (!lm_found) { if (zq >= cj) { /* Raw leap month detected. */ lm_found = TRUE; lm = ((i + 10) % MONTH_MAX) - 1; if (lm <= 0) { lm += MONTH_MAX; if (i < MONTH_MAX) lm = -lm; } } } } else lm = SPECIAL_VALUE; } else lm = 0; /* Check for months with two solar terms. */ if (lm_found && (zq_prev >= cj_prev) && (zq < cj)) { if (!double_zq_found) { double_zq_found = TRUE; lm_prev = lm; } else second_double_zq_found = TRUE; if (lm > 0) lm_found = FALSE; } /* And get the date of the actual major solar term. */ zq_prev = zq; zq = (Ulint) next_sun_longitude (&n, 30.0, (double) zq_prev, &d2, &m2, &y2, hour, min); if (zq == (Ulint) SPECIAL_VALUE) return ((int) zq); /* Detect if the necessary range of dates is examined. */ if (cj >= zq1) break; /* Next conjunction. */ the_conjunction++; /* Increase the month and conjunction vector counter. */ i++; j++; } /* Correct the raw leap month found. */ if (double_zq_found && !second_double_zq_found) { y = year; zq = (Ulint) sun_longitude (NH_WS, &d, &m, &y, hour, min, FALSE); if (zq == (Ulint) SPECIAL_VALUE) return ((int) zq); if (lm == MONTH_MAX) { the_conjunction = 0L; cj = (Ulint) moonphase (MPHASE_NEW, FALSE, NULL, &the_conjunction, &d, &m, &y, hour, min); /* A 12th leap month can only occur if there is NO New Moon on the same date as the winter solstice of the next YEAR. */ if (cj == zq) /* The true leap month is the previously detected raw leap month. */ lm = lm_prev; } else if (lm != MONTH_MAX - 1) { j = MONTH_MAX - 2; while (*(conjunction_vector + j) <= zq) j++; if (j > MONTH_MAX) /* The true leap month is the previously detected raw leap month. */ lm = lm_prev; else /* This YEAR is no leap sui, so it does not have a leap month! (A sui is the solar year starting at the winter solstice of the previous YEAR and ending at the winter solstice of the YEAR. A sui is a leap sui if there are 12 complete months between the two 11th months at the beginning and end of the sui.) */ lm = SPECIAL_VALUE; } } if (lm == SPECIAL_VALUE) lm = 0; return (lm); } int decode_date_format (format_txt, result_txt, day, month, year, doy, hls1_set, hls2_set, fixed_length_names) char *format_txt; char **result_txt; int day; int month; const int year; const int doy; const Bool hls1_set; const Bool hls2_set; const Bool fixed_length_names; /*! Concatenates the elements of a date (inclusive highlighting) in formatted manner to `&result_txt' according to the order of format specifiers, which are given in the `format_txt. The core area of the string vector `&result_txt' must be allocated and "filled" properly by the caller. "Filled" either means `&result_txt' contains a ZERO terminated text at function startup or a previous "*result_txt = '\0';" statement was performed by the caller before entering this function. If `day' is not zero but `doy' is zero: Use day of month and all other GROUPS. If `day' is zero but `doy' is not zero: Use day of year, insert a "day" text, use all other GROUPS except the month GROUP. If `day' is not zero and `doy' is not zero: Use both day of month and day of year and all other GROUPS. If `day' is zero and `doy' is zero: This results to an unmanaged internal error, because this case is unchecked due to faster internal processing speed. If `hls1_set' is TRUE and `hls2_set' is FALSE: Use `ehls1' highlighting sequences/marking characters. If `hls1_set' is FALSE and `hls2_set' is TRUE: Use `ehls2' highlighting sequences/marking characters. If `hls1_set' is FALSE and `hls2_set' is FALSE: Use no highlighting sequences/marking characters. If `hls1_set' is TRUE and `hls2_set' is TRUE: This case is unchecked due to faster internal processing speed but doesn't result to an unmanaged internal error, because the `ehls1' sequence is used by default. If `fixed_length_names' is set to TRUE, the texts returned by the `day_name()' and `month_name()' functions are set to a fixed length of `len_???name_max' characters (means trailing spaces), otherwise these texts are used as is. The `format_txt' must have exactly ONE day and year format specifier, exactly ONE format specifier from the month GROUP, BOTH format specifiers from the highlighting GROUP (%1 must be given before %2), and may have ONE weekday name format specifier. All format specifiers -- except the ones from the highlighting group -- may be lead by an optional format instruction, which template is `[ ALIGNMENT [SIGN] [LZERO] WIDTH [STYLE] [SUFFIX] FORMAT ]', (see the `decode_format()' function for a more brief description of the format instruction), which will be evaluated and respected in case it is stated correctly: Day: %[FORMAT]D Year: %[FORMAT]Y Weekday name: %[FORMAT]K Month GROUP: %[FORMAT]M %[FORMAT]U Highlighting GROUP: %1 - Starting highlighting sequence %2 - Ending highlighting sequence Other (no group): _ - Blank (' ') character \_ - Underscore ('_') character \% - Percent ('%') character \\ - Backslash ('\') character The function return value is the text length of the "real" highlighting sequence pair if "real" highlighting must be performed, otherwise zero. */ { register int skip_space = 0; register int i = (int) strlen (format_txt); register int j; register int k; register int n; register int hls_len = 0; register int len = (int) strlen (*result_txt); register int pos; auto int fstyle = FSTYLE_NONE; auto int fwidth = SPECIAL_VALUE; auto int d = day; auto char *ptr_char; auto Bool hlsxe_before_month = TRUE; auto Bool is_obsolete_space = FALSE; auto Bool is_marking_char = (Bool) (ehls1s.len == 1); auto Bool is_special_date = (!day && doy); auto Bool is_cformat = FALSE; auto Bool is_lformat = FALSE; auto Bool is_sign = FALSE; auto Bool is_lzero = FALSE; auto Bool is_fformat = FALSE; auto Bool is_suffix = FALSE; j = len + i; if ((Uint) j >= maxlen_max) resize_all_strings ((Uint) j + 1, FALSE, __FILE__, (long) __LINE__); if ((hls1_set || hls2_set) && !is_marking_char) { if (hls1_set) hls_len = ehls1s.len + ehls1e.len; else hls_len = ehls2s.len + ehls2e.len; } if (is_special_date) (void) doy2date (doy, (days_of_february (year) == 29), &day, &month); do { while (*format_txt && (*format_txt != DFORMAT_CHAR) && (*format_txt != QUOTE_CHAR)) { if (!skip_space || ((*format_txt != ' ') && (*format_txt != PSEUDO_BLANK))) { if ((Uint) len >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); if (*format_txt == PSEUDO_BLANK) *(*result_txt + len++) = ' '; else *(*result_txt + len++) = *format_txt; } format_txt++; if (skip_space) skip_space--; } if ((Uint) len >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); *(*result_txt + len) = '\0'; if (*format_txt) { if (*format_txt == DFORMAT_CHAR) { pos = decode_format (format_txt, 1, &is_cformat, &is_lformat, &is_sign, &is_lzero, &is_suffix, &is_fformat, &fstyle, &fwidth); format_txt += pos; if (fwidth != SPECIAL_VALUE) if ((Uint) len + fwidth >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); /* Format specifier found. */ switch (*format_txt) { case HLS1S_CHAR: if (highlight_flag) { if (!hls1_set && !hls2_set) { if (!len && is_marking_char) { len++; strcat (*result_txt, NO_HLS); } } else if (len) if (is_marking_char && (*(*result_txt + (len - 1)) == ' ')) *(*result_txt + --len) = '\0'; if (hls1_set) { len += ehls1s.len; if ((Uint) len >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); strcat (*result_txt, ehls1s.seq); } else if (hls2_set) { len += ehls2s.len; if ((Uint) len >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); strcat (*result_txt, ehls2s.seq); } } break; case HLS1E_CHAR: if (highlight_flag) { if (is_marking_char && (*(format_txt + 1) != ' ') && (*(format_txt + 1) != PSEUDO_BLANK) && !hls1_set && !hls2_set) { len++; if ((Uint) len >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); strcat (*result_txt, NO_HLS); } if (hls1_set) { len += ehls1e.len; if ((Uint) len >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); strcat (*result_txt, ehls1e.seq); if (is_marking_char) { skip_space++; hlsxe_before_month = is_obsolete_space = TRUE; } } else if (hls2_set) { len += ehls2e.len; if ((Uint) len >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); strcat (*result_txt, ehls2e.seq); if (is_marking_char) { skip_space++; hlsxe_before_month = is_obsolete_space = TRUE; } } } break; case DAYNR_CHAR: if (hlsxe_before_month) { hlsxe_before_month = FALSE; if (skip_space) skip_space--; } if (is_special_date) i = doy; else i = day; if (is_suffix) k = len_suffix_max; else k = 0; if (fwidth == SPECIAL_VALUE) { if (is_special_date) fwidth = 3; else fwidth = 2; if ((Uint) len + fwidth + k >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); } else if (is_special_date) { fwidth++; if ((Uint) len + fwidth >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); } j = use_format (result_txt, len, "", i, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); len += j; if (is_suffix) { k += fwidth; if (j != k) { if (j < k) { if ((Uint) len + k - j >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); for (i = 0; i <= j; i++) *(*result_txt + len - i + k - j) = *(*result_txt + len - i); for (i = 0; i < k - j; i++) *(*result_txt + len - j + i) = ' '; len += (k - j); } else if (is_fformat) len -= (j - k); } } if (doy) { if (!d) { ptr_char = _(" day"); len += (int) strlen (ptr_char); if ((Uint) len >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); strcat (*result_txt, ptr_char); } else { fwidth++; if ((Uint) len + 2 + fwidth >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); strcat (*result_txt, "("); len += use_format (result_txt, len + 1, "", doy, TRUE, is_cformat, is_lformat, is_sign, is_lzero, FALSE, is_fformat, fstyle, fwidth, 0); strcat (*result_txt, ")"); len += 2; } } break; case WDNAME_CHAR: if (hlsxe_before_month) { hlsxe_before_month = FALSE; if (skip_space) skip_space--; } if (fixed_length_names && (fwidth == SPECIAL_VALUE)) { fwidth = len_dayname_max; is_lformat = TRUE; if ((Uint) len + fwidth >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); } len += use_format (result_txt, len, day_name (weekday_of_date (day, month, year)), 0, FALSE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); break; case MONTHNAME_CHAR: if (!is_special_date) { if (fixed_length_names && (fwidth == SPECIAL_VALUE)) { fwidth = len_monthname_max; is_lformat = TRUE; if ((Uint) len + fwidth >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); } len += use_format (result_txt, len, month_name (month), 0, FALSE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); } else { if (len) { if ((*(format_txt + 1) == ' ' || *(format_txt + 1) == PSEUDO_BLANK) && (*(*result_txt + (len - 1)) == ' ')) skip_space++; else if (!skip_space && is_obsolete_space && hlsxe_before_month) skip_space++; } hlsxe_before_month = is_obsolete_space = FALSE; } break; case MONTHNR_CHAR: if (!is_special_date) { if (is_suffix) k = len_suffix_max; else k = 0; if (fwidth == SPECIAL_VALUE) { fwidth = 2; if ((Uint) len + fwidth + k >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); } j = use_format (result_txt, len, "", month, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); len += j; if (is_suffix) { k += fwidth; if (j != k) { if (j < k) { if ((Uint) len + k - j >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); for (i = 0; i <= j; i++) *(*result_txt + len - i + k - j) = *(*result_txt + len - i); for (i = 0; i < k - j; i++) *(*result_txt + len - j + i) = ' '; len += (k - j); } else if (is_fformat) len -= (j - k); } } } else { if (len) { if ((*(format_txt + 1) == ' ' || *(format_txt + 1) == PSEUDO_BLANK) && (*(*result_txt + (len - 1)) == ' ')) skip_space++; else if (!skip_space && is_obsolete_space && hlsxe_before_month) skip_space++; } hlsxe_before_month = is_obsolete_space = FALSE; } break; case YEARNR_CHAR: if (hlsxe_before_month) { hlsxe_before_month = FALSE; if (skip_space) skip_space--; } n = len_year_max; if (transform_year) { j = year - transform_year; if ((j >= 0) && (transform_year > 0)) j++; if (abs (j) > YEAR_MAX) n++; } else j = year; if (is_suffix) k = len_suffix_max; else k = 0; if (fwidth == SPECIAL_VALUE) { fwidth = n; if ((Uint) len + fwidth + k >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); } j = use_format (result_txt, len, "", j, TRUE, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, 0); len += j; if (is_suffix) { k += fwidth; if (j != k) { if (j < k) { if ((Uint) len + k - j >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); for (i = 0; i <= j; i++) *(*result_txt + len - i + k - j) = *(*result_txt + len - i); for (i = 0; i < k - j; i++) *(*result_txt + len - j + i) = ' '; len += (k - j); } else if (is_fformat) len -= (j - k); } } break; default: /* This case must be an internal error! */ abort (); } } else { if ((Uint) len + 2 >= maxlen_max) resize_all_strings (maxlen_max << 1, FALSE, __FILE__, (long) __LINE__); /* Quote character found. */ switch (*++format_txt) { case PSEUDO_BLANK: case DFORMAT_CHAR: *(*result_txt + len++) = *format_txt; *(*result_txt + len) = '\0'; break; default: if (*format_txt) { if (*format_txt != QUOTE_CHAR) *(*result_txt + len++) = QUOTE_CHAR; *(*result_txt + len++) = *format_txt; *(*result_txt + len) = '\0'; } else format_txt--; } } } else break; } while (*++format_txt); return (hls_len); } int decode_format (format_txt, pos, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth) char *format_txt; int pos; Bool *is_cformat; Bool *is_lformat; Bool *is_sign; Bool *is_lzero; Bool *is_suffix; Bool *is_fformat; int *fstyle; int *fwidth; /*! Checks for an optional format instruction which can either be used in case a TVAR or a `%...' special text is referenced. The template of such a format is: [ ALIGNMENT [SIGN] [LZERO] WIDTH [STYLE] [SUFFIX] FORMAT ], e.g., $[<|:|>[+][0]N[u|U|l|L|w|W][&]*|#]TVAR, resp., %[<|:|>[+][0]N[u|U|l|L|w|W][&]*|#]?, like `$:+010u&#a' or `%>20l&*Y'. ALIGNMENT: '<' == adjusts field contents at the left margin using width WIDTH. ':' == adjusts field contents in centered manner using width WIDTH. '>' == ajdusts field contents at the right margin using width WIDTH. SIGN : '+' == leads a numerical value always by its sign. LZERO : '0' == fills a numerical value up to WIDTH leading zeroes inclusivly a possibly leading explicit SIGN or an implicitly leading negative sign. WIDTH : FWIDTH_MIN...FWIDTH_MAX == is the width of the field. STYLE : 'u' == converts field contents to upper-case letters. 'l' == converts field contents to lower-case letters. 'w' == converts field contents to capitalized words. SUFFIX : '&' == provides a numerical value with an ordinal number suffix. FORMAT : '*' == does not cut the field contents after position WIDTH if it is longer than WIDTH. '#' == cuts the field contents after position WIDTH if it is longer than WIDTH. On success, this function returns the position `pos' at which the format instruction ends in the `format_txt' and the width of the field in `&fwidth'. `&is_cformat', `&is_lformat', `&is_sign', `&is_lzero', `&is_suffix' and `&is_fformat' are set to TRUE if the according directive characters are found in proper order in `format_txt', otherwise they are set to FALSE; and `&fstyle' is set to the according style value, otherwise to FSTYLE_NONE. `&fwidth' is set to SPECIAL_VALUE and the unchanged position `pos' is returned in case an error occurs during the scan of the format instruction, which either means that it was not defined, or it contained a wrong or misplaced or misspelled element. */ { register int old_pos = pos; register int i; register int len; *is_cformat = (*is_lformat) = (*is_sign) = (*is_lzero) = (*is_suffix) = (*is_fformat) = FALSE; *fstyle = FSTYLE_NONE; *fwidth = SPECIAL_VALUE; switch (*(format_txt + pos)) { case FLEFT_CHAR: *is_lformat = TRUE; pos++; break; case FCENTER_CHAR: *is_cformat = TRUE; /* Fallthrough. */ case FRIGHT_CHAR: pos++; break; default: return (old_pos); } if (*(format_txt + pos) == FSIGN_CHAR) { pos++; *is_sign = TRUE; } if (*(format_txt + pos) == FLZERO_CHAR) { pos++; *is_lzero = TRUE; } if (isdigit (*(format_txt + pos))) { if (*(format_txt + pos) != FLZERO_CHAR) { *fwidth = atoi (format_txt + pos); if (*fwidth > FWIDTH_MAX) *fwidth = i = FWIDTH_MAX; else i = *fwidth; if (!i) len = 1; else { len = 0; while (i) { len++; i /= 10; } } pos += len; if (toupper (*(format_txt + pos)) == toupper (FUPPER_CHAR)) { pos++; *fstyle = FSTYLE_UPPER; } if (toupper (*(format_txt + pos)) == toupper (FLOWER_CHAR)) { if (*fstyle == FSTYLE_NONE) { pos++; *fstyle = FSTYLE_LOWER; } else *fwidth = SPECIAL_VALUE; } if (toupper (*(format_txt + pos)) == toupper (FWORD_CHAR)) { if (*fstyle == FSTYLE_NONE) { pos++; *fstyle = FSTYLE_WORD; } else *fwidth = SPECIAL_VALUE; } if (*(format_txt + pos) == FSUFFIX_CHAR) { pos++; *is_suffix = TRUE; } switch (*(format_txt + pos)) { case FFIX_CHAR: *is_fformat = TRUE; /* Fallthrough. */ case FVAR_CHAR: pos++; break; default: *fwidth = SPECIAL_VALUE; } } else *fwidth = SPECIAL_VALUE; } else *fwidth = SPECIAL_VALUE; if (*fwidth == SPECIAL_VALUE) { *is_cformat = (*is_lformat) = (*is_sign) = (*is_lzero) = (*is_suffix) = (*is_fformat) = FALSE; *fstyle = FSTYLE_NONE; return (old_pos); } return (pos); } int use_format (result_txt, pos, string, value, is_numeric, is_cformat, is_lformat, is_sign, is_lzero, is_suffix, is_fformat, fstyle, fwidth, extra_len) char **result_txt; const int pos; const char *string; const long value; const Bool is_numeric; const Bool is_cformat; const Bool is_lformat; const Bool is_sign; const Bool is_lzero; const Bool is_suffix; const Bool is_fformat; const int fstyle; const int fwidth; const int extra_len; /*! Formats either the text `string' points to, or the number stored in `value' and returns the effective length of the text formatted. If `is_numeric' is set to TRUE, `value' is formatted, otherwise `string'. If `extra_len' is not set to zero and this value is greater than the computed length of `value' resp., `string', this value is taken instead of the computed length of `value' resp., `string'. The formatted result is stored in `&result_txt', which must be allocated and "filled" properly by the caller. "Filled" either means `&result_txt' contains a ZERO terminated text at function startup or a previous "*result_txt = '\0';" statement was performed by the caller before entering this function. `pos' is the zero based index at which this function adds/inserts text into the `&result_txt'. */ { register int i = (int) strlen (string); register int j; register int n; register int len = (int) strlen (*result_txt); register int suffix_len = 0; auto char *buf; auto char *tmp; auto char *ptr_char; auto Bool is_translated; j = len + fwidth; if (!is_fformat && (i > fwidth)) j = len + i; if (is_suffix) j += len_suffix_max; if ((Uint) j >= maxlen_max) resize_all_strings ((Uint) j + 1, FALSE, __FILE__, (long) __LINE__); if (is_numeric) { auto long num = value; if (!num) len = 1; else { len = 0; if (is_sign || (num < 0L)) len++; while (num) { len++; num /= 10L; } } if (is_lzero && (len < fwidth)) len = fwidth; if (is_suffix) len += len_suffix_max; buf = (char *) my_malloc (len + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "buf", 0); if (is_sign) { if (is_lzero) sprintf (buf, "%+0*ld", fwidth, value); else sprintf (buf, "%+ld", value); } else { if (is_lzero) sprintf (buf, "%0*ld", fwidth, value); else sprintf (buf, "%ld", value); } if (is_suffix) { tmp = (char *) day_suffix ((int) value); suffix_len = (int) strlen (tmp); strcat (buf, tmp); } } else { buf = (char *) my_malloc (i + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "buf", 0); strcpy (buf, string); } j = len = (int) strlen (buf); switch (fstyle) { case FSTYLE_UPPER: for (i = 0; i < len; i++) { buf[i] = (char) toupper (buf[i]); if (!isupper (buf[i]) && (translate_string != (char *) NULL)) { ptr_char = translate_string + 1; while (*ptr_char) { if (*ptr_char == buf[i]) { buf[i] = *--ptr_char; break; } ptr_char++; if (*ptr_char) ptr_char++; } } } break; case FSTYLE_LOWER: for (i = 0; i < len; i++) { buf[i] = (char) tolower (buf[i]); if (!islower (buf[i]) && (translate_string != (char *) NULL)) { ptr_char = translate_string; while (*ptr_char) { if (*ptr_char == buf[i]) { buf[i] = *++ptr_char; break; } ptr_char++; if (*ptr_char) ptr_char++; } } } break; case FSTYLE_WORD: *buf = (char) toupper (*buf); if (translate_string == (char *) NULL) for (i = 1; i < len; i++) { if (!isalpha (buf[i - 1])) buf[i] = (char) toupper (buf[i]); else buf[i] = (char) tolower (buf[i]); } else { is_translated = FALSE; if (!isupper (*buf)) { ptr_char = translate_string + 1; while (*ptr_char) { if (*ptr_char == *buf) { *buf = *--ptr_char; is_translated = TRUE; break; } if (*(ptr_char - 1) == *buf) { is_translated = TRUE; break; } ptr_char++; if (*ptr_char) ptr_char++; } } for (i = 1; i < len; i++) { if (!isalpha (buf[i - 1]) && !is_translated) { buf[i] = (char) toupper (buf[i]); if (!isupper (buf[i])) { ptr_char = translate_string + 1; while (*ptr_char) { if (*ptr_char == buf[i]) { buf[i] = *--ptr_char; is_translated = TRUE; break; } if (*(ptr_char - 1) == buf[i]) { is_translated = TRUE; break; } ptr_char++; if (*ptr_char) ptr_char++; } } else if (isupper (buf[i])) is_translated = TRUE; } else { buf[i] = (char) tolower (buf[i]); if (!islower (buf[i])) { ptr_char = translate_string; while (*ptr_char) { if (*ptr_char == buf[i]) { buf[i] = *++ptr_char; break; } ptr_char++; if (*ptr_char == buf[i]) break; if (*ptr_char) ptr_char++; } if (!*ptr_char) is_translated = FALSE; } } } } break; default: ; /* Void, nothing to do! */ } if (!is_numeric && extra_len && (len != extra_len)) len = extra_len; if (is_cformat) { if (len < fwidth) { n = fwidth - len; n >>= 1; tmp = (char *) my_malloc (n + 2, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "tmp", 0); for (i = 0; i < n; i++) tmp[i] = ' '; tmp[i] = '\0'; strcat (*result_txt, tmp); strcat (*result_txt, buf); if ((fwidth - len) % 2) { tmp[i] = ' '; tmp[i + 1] = '\0'; } strcat (*result_txt, tmp); free (tmp); j = fwidth; } else { if (is_fformat) { if (is_numeric) { if (is_suffix) { i = len - fwidth - suffix_len; if (i <= 0) strncpy (*result_txt + pos, buf, fwidth + suffix_len); else strncpy (*result_txt + pos, buf + len - fwidth - suffix_len, fwidth + suffix_len); *(*result_txt + pos + fwidth + suffix_len) = '\0'; } else { strncpy (*result_txt + pos, buf + len - fwidth, fwidth); *(*result_txt + pos + fwidth) = '\0'; j = fwidth; } } else { strncpy (*result_txt + pos, buf, fwidth); *(*result_txt + pos + fwidth) = '\0'; j = fwidth; } } else strcat (*result_txt, buf); } } else if (is_lformat) { if (is_fformat && (len > fwidth)) { if (is_numeric) { if (is_suffix) { i = len - fwidth - suffix_len; if (i <= 0) strncpy (*result_txt + pos, buf, fwidth + suffix_len); else strncpy (*result_txt + pos, buf + len - fwidth - suffix_len, fwidth + suffix_len); *(*result_txt + pos + fwidth + suffix_len) = '\0'; } else { strncpy (*result_txt + pos, buf + len - fwidth, fwidth); *(*result_txt + pos + fwidth) = '\0'; j = fwidth; } } else { strncpy (*result_txt + pos, buf, fwidth); *(*result_txt + pos + fwidth) = '\0'; j = fwidth; } } else { strcat (*result_txt, buf); if (len < fwidth) { n = fwidth - len; tmp = (char *) my_malloc (n + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "tmp", 0); for (i = 0; i < n; i++) tmp[i] = ' '; tmp[i] = '\0'; strcat (*result_txt, tmp); free (tmp); j = fwidth; } } } else { if (is_fformat && (len > fwidth)) { if (is_numeric) { if (is_suffix) { i = len - fwidth - suffix_len; if (i <= 0) strncpy (*result_txt + pos, buf, fwidth + suffix_len); else strncpy (*result_txt + pos, buf + len - fwidth - suffix_len, fwidth + suffix_len); *(*result_txt + pos + fwidth + suffix_len) = '\0'; } else { strncpy (*result_txt + pos, buf + len - fwidth, fwidth); *(*result_txt + pos + fwidth) = '\0'; j = fwidth; } } else { strncpy (*result_txt + pos, buf, fwidth); *(*result_txt + pos + fwidth) = '\0'; j = fwidth; } } else { if (len < fwidth) { n = fwidth - len; tmp = (char *) my_malloc (n + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 1L, "tmp", 0); for (i = 0; i < n; i++) tmp[i] = ' '; tmp[i] = '\0'; strcat (*result_txt, tmp); free (tmp); j = fwidth; } strcat (*result_txt, buf); } } free (buf); return (j); } void print_all_holidays (init_data, detected) Bool init_data; const Bool detected; /*! Generate and display all holidays (global `hd_table') in sorted manner. */ { auto const Cc_struct *ptr_cc; register int easter; register int i = 0; register int j = 0; register int k; register int fday = 0; register int count = (fiscal_month > MONTH_MIN) ? 2 : 1; auto int hd_elems = 0; auto char *ptr_char; if (init_data || detected) { if (init_data) for (i = 0; i < HD_MAX; i++) hd_ldays[i] = hd_mdays[i] = '\0'; if (fiscal_month > MONTH_MIN) { fday = day_of_year (DAY_MIN, fiscal_month, year); j = is_leap_year; i = year; } do { count--; easter = knuth_easter_formula (year); /* Use the global holiday management functions. */ if (hdy_astronomical) astronomical_hdy (&init_data, detected, year, &hd_elems, fday, count); if (hdy_bahai) bahai_hdy (&init_data, detected, year, &hd_elems, fday, count, NULL); if (hdy_celtic) celtic_hdy (&init_data, detected, year, &hd_elems, fday, count, NULL); if (hdy_chinese_flexible) chinese_hdy (&init_data, detected, year, &hd_elems, fday, count, NULL, TRUE); if (hdy_chinese) chinese_hdy (&init_data, detected, year, &hd_elems, fday, count, NULL, FALSE); if (hdy_christian) christian_hdy (&init_data, detected, easter, year, &hd_elems, fday, count); if (hdy_hebrew) hebrew_hdy (&init_data, detected, year, &hd_elems, fday, count, NULL); if (hdy_islamic) islamic_hdy (&init_data, detected, year, &hd_elems, fday, count, NULL); if (hdy_japanese_flexible) japanese_hdy (&init_data, detected, year, &hd_elems, fday, count, NULL, TRUE); if (hdy_japanese) japanese_hdy (&init_data, detected, year, &hd_elems, fday, count, NULL, FALSE); if (hdy_multicultural_new_year) multicultural_new_year_hdy (&init_data, detected, year, &hd_elems, fday, count); if (hdy_orthodox_new) orthodox_hdy (&init_data, detected, easter, year, &hd_elems, fday, count, NULL, TRUE); if (hdy_orthodox_old) orthodox_hdy (&init_data, detected, easter, year, &hd_elems, fday, count, NULL, FALSE); if (hdy_persian) persian_hdy (&init_data, detected, year, &hd_elems, fday, count, NULL); if (hdy_zodiacal_marker) zodiacal_marker_hdy (&init_data, detected, year, &hd_elems, fday, count); if (mth_bahai) bahai_mth (&init_data, detected, year, &hd_elems, fday, count); if (mth_chinese_flexible) chinese_mth (&init_data, detected, year, &hd_elems, fday, count, TRUE, TRUE); if (mth_chinese) chinese_mth (&init_data, detected, year, &hd_elems, fday, count, FALSE, TRUE); if (mth_coptic) coptic_mth (&init_data, detected, year, &hd_elems, fday, count, TRUE); if (mth_ethiopic) coptic_mth (&init_data, detected, year, &hd_elems, fday, count, FALSE); if (mth_french_revolutionary) french_revolutionary_mth (&init_data, detected, year, &hd_elems, fday, count); if (mth_hebrew) hebrew_mth (&init_data, detected, year, &hd_elems, fday, count); if (mth_indian_civil) indian_civil_mth (&init_data, detected, year, &hd_elems, fday, count); if (mth_islamic) islamic_mth (&init_data, detected, year, &hd_elems, fday, count); if (mth_japanese_flexible) chinese_mth (&init_data, detected, year, &hd_elems, fday, count, TRUE, FALSE); if (mth_japanese) chinese_mth (&init_data, detected, year, &hd_elems, fday, count, FALSE, FALSE); if (mth_old_armenic) old_egyptic_mth (&init_data, detected, year, &hd_elems, fday, count, FALSE); if (mth_old_egyptic) old_egyptic_mth (&init_data, detected, year, &hd_elems, fday, count, TRUE); if (mth_persian) persian_mth (&init_data, detected, year, &hd_elems, fday, count); if (cc != (char *) NULL) { /* Use the country specific holiday management functions. */ ptr_char = cc; do { /* Copy a single country code id into `s1'. */ k = 0; while (*ptr_char && (*ptr_char != *CONNECT_SEP)) s1[k++] = *ptr_char++; s1[k] = '\0'; ptr_cc = binsearch_cc_id (s1); if (ptr_cc == (Cc_struct *) NULL) /* This case MUST be an internal error (`cc_holidays[]' corrupt')! */ abort (); else (*ptr_cc->Cc_hdy_handler) (&init_data, detected, easter, year, &hd_elems, fday, count); /* Now skip a possibly trailing CONNECT_SEP. */ if (*ptr_char) ptr_char++; } while (*ptr_char); } if (fiscal_month > MONTH_MIN) { year++; is_leap_year = (days_of_february (year) == 29); } } while (count); if (fiscal_month > MONTH_MIN) { is_leap_year = j; year = i; } } if (hd_elems && holiday_flag) { /* At last, sort the eternal holiday dates only if they are not presorted. */ if (hd_elems > 1) { if (!is_presorted (hd_table, hd_elems)) { if (hd_sort_des_flag) qsort ((VOID_PTR) hd_table, hd_elems, sizeof *hd_table, (Cmp_func) des_sort); else qsort ((VOID_PTR) hd_table, hd_elems, sizeof *hd_table, (Cmp_func) asc_sort); } else if (hd_sort_des_flag) /* `hd_table[]' is presorted and must be shown in descending sort order, rearrange its internal sort order from ascending to descending sort order. */ reverse_order (hd_table, hd_elems); } } else if (!detected) { register int n; register int lym; register int m2 = fiscal_month + 1; register int m3 = fiscal_month + 2; register int tmp_month = month; auto Bool hd_title_shown = FALSE; auto Bool tmp_ify = is_fiscal_year; /* Display leading title text for a current year. */ if (hd_title_flag #if USE_RC && !is_1month_mode && !is_2month_mode #endif && ((!is_3month_mode && !is_3month_mode2 && ((!is_fiscal_year && !month) || (is_fiscal_year && (fiscal_month == MONTH_MIN)))) || is_3month_mode2 || (is_3month_mode && (fiscal_month < MONTH_MAX - 1)))) { /* Now display a leading NEWLINE character before the title text only if not explicitly suppressed by a `-G' command line option given. */ *s1 = '\0'; if (!hd_suppr_list_sep_flag) print_text (stdout, s1); if (hd_title_flag) { /* Now display the leading title text only if not explicitly suppressed by a `-X' command line option given. */ lym = len_year_max; if (transform_year) { n = year - transform_year; if ((n >= 0) && (transform_year > 0)) n++; if (abs (n) > YEAR_MAX) lym++; } else n = year; i = (int) strlen (_("Eternal holiday list")); if (use_year_zeroleaded) { if (is_leap_year) sprintf (s1, _("%s:%*sThe year %0*d is A leap year"), _("Eternal holiday list"), LEN_HD_NAME - i + 2, "", lym, n); else sprintf (s1, _("%s:%*sThe year %0*d is NO leap year"), _("Eternal holiday list"), LEN_HD_NAME - i + 2, "", lym, n); } else { if (is_leap_year) sprintf (s1, _("%s:%*sThe year %d is A leap year"), _("Eternal holiday list"), LEN_HD_NAME - i + 2, "", n); else sprintf (s1, _("%s:%*sThe year %d is NO leap year"), _("Eternal holiday list"), LEN_HD_NAME - i + 2, "", n); } print_text (stdout, s1); if (hd_table[0] != (char *) NULL) print_text (stdout, s1); } hd_title_shown = TRUE; } /* Now display the (complete) eternal holiday list. */ if (is_3month_mode #if USE_RC || is_1month_mode || is_2month_mode #endif || is_3month_mode2) { /* Set the range of the 2|3 months, which have to be respected. */ if (fiscal_month >= MONTH_MAX - 1) { m3 = MONTH_MIN; if (fiscal_month == MONTH_MAX) { m2 = MONTH_MIN; m3++; } } is_fiscal_year = FALSE; month = fiscal_month; } i = j = 0; while ((hd_table[i] != (char *) NULL) && (i < HD_ELEMS_MAX)) { /* One month resp., 2|3-month calendar mode: Get holiday month of holiday text. */ if (is_3month_mode #if USE_RC || is_1month_mode || is_2month_mode #endif || is_3month_mode2 || (month && !is_fiscal_year)) { s1[0] = hd_table[i][len_year_max]; s1[1] = hd_table[i][len_year_max + 1]; s1[2] = '\0'; j = my_atoi (s1); } /* Display dates of eternal holiday list: Year calendar --> Display all eternal holidays. Month calendar --> Display only those eternal holidays which refer to current month. */ if (is_fiscal_year || !month || month == j #if USE_RC || (is_1month_mode && (month == j)) || (is_2month_mode && (j == m2)) #endif || ((is_3month_mode || is_3month_mode2) && (j == m2 || j == m3))) { if (!hd_legal_days_only || (hd_legal_days_only && (*(*(hd_table + i) + LEN_HD_NAME + len_year_max + 4 + 2) != *DIS_HLS_PREF) && (*(*(hd_table + i) + LEN_HD_NAME + len_year_max + 4 + 2) != *DIS_HLS_PREF2))) { /* Month calendar mode: Display a leading NEWLINE character only in case an eternal holiday refers to the current month. */ if (!hd_title_shown) { /* Now display a leading NEWLINE character before the title text only if not explicitly suppressed by a `-G' command line option given. */ *s1 = '\0'; if (!hd_suppr_list_sep_flag) print_text (stdout, s1); if (hd_title_flag) { /* Now display the leading title text only if not explicitly suppressed by a `-X' command line option given. */ sprintf (s1, "%s:", _("Eternal holiday list")); print_text (stdout, s1); print_text (stdout, s1); } hd_title_shown = TRUE; } /* Display the eternal holiday text. */ sprintf (s1, "%s", *(hd_table + i) + len_year_max + 4 + 1); print_text (stdout, s1); } } free (hd_table[i]); hd_table[i++] = (char *) NULL; } if (is_3month_mode #if USE_RC || is_1month_mode || is_2month_mode #endif || is_3month_mode2) { month = tmp_month; is_fiscal_year = tmp_ify; } } } void holiday (init_data, detected, holiday_name, country_code, holiday_prefix, day, month, year, hd_elems, fday, count) Bool init_data; const Bool detected; const char *holiday_name; const char *country_code; const char *holiday_prefix; int day; int month; const int year; int *hd_elems; const int fday; const int count; /*! Generates a single holiday date text in formatted manner and stores the result into global `hd_table[]'. ONLY if `holiday_prefix' is a '-' (DIS_HLS_PREF) or '*' (DIS_HLS_PREF2) character, this holiday is not stored into global `hd_ldays' and will not be highlighted in the generated list, but is stored into global `hd_mdays'! If `holiday_prefix' is a '#' character, this marks the case the holiday is only valid in some parts of the country, but is stored into global `hd_ldays' and will be highlighted in the generated list. If `holiday_prefix' is a '\0' or any other character, the same rules concering to '#' character applies. If `month' is set to zero, it's assumed that the delivered date is a date relative to the Easter Sunday's date (`day' contains the according day_of_year number), otherwise the date is an absolute date of the `year'. */ { register int i = day; register int hd; register int hd2; if (!month) (void) doy2date (i, is_leap_year, &day, &month); if (month == 2) i = is_leap_year; else i = 0; hd = hd2 = day_of_year (day, month, year); if ((year >= EASTER_MIN) && (year <= EASTER_MAX) && (day >= DAY_MIN) && (day <= dvec[month - 1] + i) && (!fday || (count && (hd >= fday)) || (!count && (hd < fday - (days_of_february (year - 1) == 29))))) { if (holiday_flag #if USE_RC || rc_enable_hda_flag || rc_enable_hdl_flag #endif ) { register int d = day; sprintf (s1, " (%s)", country_code); i = (int) strlen (s1); strncpy (s2, holiday_name, LEN_HD_NAME - i); s2[LEN_HD_NAME - i - 1] = '\0'; strcat (s2, s1); sprintf (s1, "%0*d%02d%02d %-*s %1s ", len_year_max, year, month, day, LEN_HD_NAME - 1, s2, holiday_prefix); strcpy (s2, s1); i = hd - ((cal_special_flag) ? act_day : day_of_year (act_day, act_month, act_year)); if (!hd_both_dates_flag) { if (!hd_special_flag) hd2 = 0; else d = 0; } if (!i && (year == act_year)) (void) decode_date_format (date_format->df_format, &s2, d, month, year, hd2, TRUE, FALSE, TRUE); else if ((*holiday_prefix != *DIS_HLS_PREF) && (*holiday_prefix != *DIS_HLS_PREF2)) (void) decode_date_format (date_format->df_format, &s2, d, month, year, hd2, FALSE, TRUE, TRUE); else (void) decode_date_format (date_format->df_format, &s2, d, month, year, hd2, FALSE, FALSE, TRUE); /* Add the day displacement, which is relative to the "actual date" to the eternal holiday text. */ if ((fday && (((year == act_year - 1) && (month >= fiscal_month)) || ((year == act_year + 1) && (month < fiscal_month)))) || year == act_year) { if (fday && (year != act_year)) { if (year == act_year - 1) /* Eternal holiday to compute is in "actual year - 1". */ i = hd - (DAY_LAST + is_leap_year + ((cal_special_flag) ? act_day : day_of_year (act_day, act_month, act_year))); else /* Eternal holiday to compute is in "actual year + 1". */ i = hd + (DAY_LAST + (days_of_february (act_year) == 29) - ((cal_special_flag) ? act_day : day_of_year (act_day, act_month, act_year))); } if (i) { if (abs (i) == 1) sprintf (s1, _(" = %+4d day"), i); else sprintf (s1, _(" = %+4d days"), i); strcat (s2, s1); } } /* Store the constructed "raw" line in `hd_table[]'. */ if (*hd_elems < HD_ELEMS_MAX) { hd_table[*hd_elems] = (char *) my_malloc (strlen (s2) + 1, ERR_NO_MEMORY_AVAILABLE, __FILE__, ((long) __LINE__) - 2L, "hd_table[hd_elems]", *hd_elems); strcpy (hd_table[(*hd_elems)++], s2); } } /* This case can occur only, if the code was extended by more eternal holidays and the table size for `hd_table[]', namely HD_ELEMS_MAX, isn't increased/adjusted correctly so this warning/informational is for maintainers only!! */ if ((warning_level >= 0) && (*hd_elems >= HD_ELEMS_MAX)) { sprintf (s1, _("%s%s contains %d maximum entries now!%s"), ((ehls1s.len != 1) ? ehls1s.seq : ""), _("Eternal holiday list"), HD_ELEMS_MAX, ((ehls1s.len != 1) ? ehls1e.seq : "")); print_text (stderr, s1); } if (init_data) for (i = 0; i < HD_MAX; i++) hd_ldays[i] = hd_mdays[i] = '\0'; if (detected) { if (*holiday_prefix == *DIS_HLS_PREF || *holiday_prefix == *DIS_HLS_PREF2) hd_mdays[((month - 1) * MONTH_LAST) + (day - 1)] = '@'; else hd_ldays[((month - 1) * MONTH_LAST) + (day - 1)] = '@'; } } else if (init_data) for (i = 0; i < HD_MAX; i++) hd_ldays[i] = hd_mdays[i] = '\0'; } gcal-4.1/src/rc-check.h0000664000000000000000000000264012353516647011612 00000000000000#ifndef __RC_CHECK_H # define __RC_CHECK_H /*! * \file rc-check.h * \brief Checks if a line (of a resource file) must be * inserted into `rc_elems_table[]' header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: rc-check.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `rc-check.c'. */ extern void rc_check __P_ ((char *line_buffer, const char *filename, const long line_number, const int line_length, int *rc_elems, const int day, const int ed, const int wd)); __END_DECLARATIONS #endif /* __RC_CHECK_H */ gcal-4.1/src/help.h0000664000000000000000000000424612244130561011051 00000000000000#ifndef __HELP_H # define __HELP_H /*! * \file help.h * \brief The help, version and license screens header file. */ /* * Copyright (c) 1994, 95, 96, 1997, 2000 Thomas Esken * Copyright (c) 2010, 2011, 2013 Free Software Foundation, Inc. * * This software doesn't claim completeness, correctness or usability. * On principle I will not be liable for ANY damages or losses (implicit * or explicit), which result from using or handling my software. * If you use this software, you agree without any exception to this * agreement, which binds you LEGALLY !! * * This program is free software; you can redistribute it and/or modify * it under the terms of the `GNU General Public License' as published by * the `Free Software Foundation'; either version 3, or (at your option) * any later version. * * You should have received a copy of the `GNU General Public License' * along with this program; if not, write to the: * */ /* * $Id: help.h 3.01 2000/06/14 03:00:01 tom Exp $ */ /* * Type definitions. */ /*! * The supported date format information record. */ typedef struct date_format_information_type { /*! Information text of the format. */ char *di_info; /*! First character of the format. */ char di_1format; /*! Second character of the format. */ char di_2format; } Di_struct; # if USE_RC /*! * The exclusion date information record. */ typedef struct exclusion_date_type { /* The character used in the %? inclusive/exclusive day special text. */ char ed_id; /* Description text of the %? inclusive/exclusive day special text. */ char *ed_info; } Ed_struct; # endif /* USE_RC */ /* * GLOBAL functions prototypes. */ __BEGIN_DECLARATIONS /* ************************************************** Defined in `help.c'. */ extern void my_help_on_help __P_ ((FILE * fp, const char *longopt, const Bool lopt_ambig, const int cols)); extern void my_extended_help __P_ ((FILE * fp, const int longopt_symbolic)); extern void my_basic_help __P_ ((FILE * fp)); extern void my_license __P_ ((FILE * fp)); extern void my_version __P_ ((FILE * fp)); extern char *usage_msg __P_ ((void)); extern char *lopt_msg __P_ ((void)); __END_DECLARATIONS #endif /* __HELP_H */ gcal-4.1/install-inf.in0000664000000000000000000005445512353314150011737 00000000000000#! /bin/sh # # @configure_input@ # # $Id: install-inf.in 0.21 2000/06/14 00:02:01 tom Exp $ # # This is my private `install-info' script. # # It inserts INFO-DIR-ENTRY lines of Texinfo `.info' files at the end of # an existing `dir.texi' file and recreates the `dir' file either in the # directory given by the `--info-dir=DIR' option or in the first matching # $INFOPATH directory. It also creates a backup of the original `dir.texi' # file under the name `dir.texi~'. # # *** It cannot insert INFO-DIR-ENTRY lines into an existing `dir' file # *** in case no `dir.texi' file exists! # # This script also manages compressed/gzipped Texinfo `*.info' files like # `*.info*.Z', `*.info*.z' and `*.info*.gz', also compressed/gzipped `dir' # and `dir.texi' files. # # If both the `dir' and `dir.texi' files do not exist, this script will # create a new `dir.texi' file and --using it-- a new `dir' file! # # Needs `test', `echo', `head', `eval', `cat', `cd', `cp', `rm', `makeinfo', # `set', `gzip' or `compress', `sort', `sed' and `awk' for processing. # # Returns 0 if success. # Returns 1 in case an error occurs. # # Copyright (c) 1996, 97, 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Sed=sed Test=test Echo=echo # # Basically used texts. # PACKAGE=@PACKAGE@ VERSION=@VERSION@ myname=`$Echo "$0" | $Sed -e 's,.*/,,'` myversion=0.21 myinternalname="$myname ($PACKAGE $VERSION) $myversion" usage1="usage: $myname --help | --version" usage2="usage: $myname [--verbose] [--debug] [--info[-]dir=DIR] INFOFILE..." error1="$myinternalname: error: no input file specified" error2="$myinternalname: error: use --help to show usage" # # Some constant values. # EXIT_SUCCESS=0 EXIT_FAILURE=1 # # Let's start processing now. # if $Test "$#" -ne 0; then # # The suffix for the backup of the original `dir.texi' file. # backup_suffix="~" # # The suffixes of compressed/gzipped files. # gzip_2_suffix=.gz gzip_1_suffix=.z compress_suffix=.Z # # Number of lines to scan for INFO-DIR-ENTRY texts in an INFOFILE. # lines_to_scan=200 # # The used programs. # Head=head Head_flags="-$lines_to_scan" Eval=eval Set=set Cat=cat Cd=cd Cp="@CP@" Rm=rm Makeinfo=@MAKEINFO@ Gzip=@GZIP@ Compress=@COMPRESS@ Gzip_uncompress_flags=-cd Sort=sort Awk=@AWK@ # # Let's set some default directories and file names first. # tmpdir=/tmp prefix=@prefix@ infodir="$prefix/info" dirfile=dir dir_texifile="$dirfile.texi" # # Let's set the compressor program to `compress' if no `gzip' is available. # if $Test -z "$Gzip"; then if $Test -n "$Compress"; then Gzip="$Compress" fi fi # # Respect a $TMPDIR or a $TMP environment variable. # if $Test -n "$TMPDIR"; then tmpdir="$TMPDIR" else if $Test -n "$TMP"; then tmpdir="$TMP" fi fi # # Let's check for command line arguments. # verbose=no debug=no infodir_set=no previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | \ -help | -hel | -he | -h | \ --help=* | --hel=* | --he=* | --h=* | \ --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$usage1" $Echo "$usage2" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | \ -version | -versio | -versi | -vers | \ --version=* | --versio=* | --versi=* | --vers=* | \ --version | --versio | --versi | --vers) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -verbose=* | -verbos=* | -verbo=* | -verb=* | \ -verbose | -verbos | -verbo | -verb | \ --verbose=* | --verbos=* | --verbo=* | --verb=* | \ --verbose | --verbos | --verbo | --verb) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi verbose=yes ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes ;; -info-dir | -info-di | -info-d | -info- | \ -infodir | -infodi | -infod | -info | -inf | -in | -i | \ --info-dir | --info-di | --info-d | --info- | \ --infodir | --infodi | --infod | --info | --inf | --in | --i) previous=infodir ;; -info-dir=* | -info-di=* | -info-d=* | -info-=* | \ -infodir=* | -infodi=* | -infod=* | -info=* | -inf=* | -in=* | -i=* | \ --info-dir=* | --info-di=* | --info-d=* | --info-=* | \ --infodir=* | --infodi=* | --infod=* | --info=* | --inf=* | --in=* | --i=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi infodir_set=yes infodir="$optarg" ;; -*) $Echo "$myname: error: $option: invalid option; use --help to show usage" 1>&2 exit $EXIT_FAILURE ;; esac done if $Test -n "$previous"; then $Echo "$myname: error: missing argument to --$previous" 1>&2 exit $EXIT_FAILURE fi # # We need two temporary files for processing! # newtmp="n$$" dirtmp="d$$" if $Test "$debug" = yes; then # # Enable tracing. # $Set -x else trap "$Rm -f $tmpdir/$newtmp $tmpdir/$dirtmp;exit $EXIT_FAILURE" 1 2 15 fi # # Check for the presence of AWK. # if $Test -z "$Awk" then $Echo "$myinternalname: error: \`awk' not available" 1>&2 exit $EXIT_FAILURE fi # # Override an existing $INFOPATH environment variable. # if $Test "$infodir_set" = yes || $Test -z "$INFOPATH"; then if $Test -d "$infodir" && $Test -s "$infodir"; then INFOPATH="$infodir" else $Echo "$myinternalname: error: cannot access infodir \`$infodir'" 1>&2 exit $EXIT_FAILURE fi fi # # Detect where the original `dir.texi' and `dir' files are stored. # IFS="${IFS= }" save_ifs="$IFS" IFS="${IFS}:" dirpath="" real_dirfile="" dirfile_gzipped_2=no dirfile_gzipped_1=no dirfile_compressed=no dir_texifile_gzipped_2=no dir_texifile_gzipped_1=no dir_texifile_compressed=no for dir in $INFOPATH do if $Test -f "$dir/$dir_texifile""$gzip_2_suffix" && \ $Test -r "$dir/$dir_texifile""$gzip_2_suffix"; then dir_texifile_gzipped_2=yes dirpath="$dir/$dir_texifile""$gzip_2_suffix" fi if $Test "$dir_texi_file_gzipped_2" = no; then if $Test -f "$dir/$dir_texifile""$gzip_1_suffix" && \ $Test -r "$dir/$dir_texifile""$gzip_1_suffix"; then dir_texifile_gzipped_1=yes dirpath="$dir/$dir_texifile""$gzip_1_suffix" fi if $Test "$dir_texi_file_gzipped_1" = no; then if $Test -f "$dir/$dir_texifile""$compress_suffix" && \ $Test -r "$dir/$dir_texifile""$compress_suffix"; then dir_texifile_compressed=yes dirpath="$dir/$dir_texifile""$compress_suffix" fi fi fi if $Test "$dir_texifile_gzipped_2" = yes || \ $Test "$dir_texifile_gzipped_1" = yes || \ $Test "$dir_texifile_compressed" = yes || \ $Test -f "$dir/$dir_texifile"; then if $Test -f "$dir/$dir_texifile" && \ $Test -r "$dir/$dir_texifile"; then dirpath="$dir/$dir_texifile" fi if $Test -f "$dir/$dirfile""$gzip_2_suffix" && \ $Test -r "$dir/$dirfile""$gzip_2_suffix"; then dirfile_gzipped_2=yes real_dirfile="$dir/$dirfile""$gzip_2_suffix" fi if $Test "$dirfile_gzipped_2" = no; then if $Test -f "$dir/$dirfile""$gzip_1_suffix" && \ $Test -r "$dir/$dirfile""$gzip_1_suffix"; then dirfile_gzipped_1=yes real_dirfile="$dir/$dirfile""$gzip_1_suffix" fi if $Test "$dirfile_gzipped_1" = no; then if $Test -f "$dir/$dirfile""$compress_suffix" && \ $Test -r "$dir/$dirfile""$compress_suffix"; then dirfile_compressed=yes real_dirfile="$dir/$dirfile""$compress_suffix" else real_dirfile="$dir/$dirfile" fi fi fi break fi done IFS="$save_ifs" if $Test -z "$dirpath"; then if $Test "$verbose" = yes; then $Echo "$myinternalname: warning: no existing \`$infodir/$dir_texifile' file found" fi # # No `dir.texi' file found, so check for a `dir' file now. # if $Test -f "$dir/$dirfile" && \ $Test -r "$dir/$dirfile"; then # # This script cannot insert INFO-DIR-ENTY lines into an existing # `dir' file, which will be untouched now, so just exit with success. # if $Test "$verbose" = yes; then $Echo "$myinternalname: warning: but existing \`$infodir/$dirfile' file found" $Echo $Echo "$myinternalname: warning: this case cannot be managed now, so you" $Echo "$myinternalname: warning: have to install *GNU Texinfo-3.8* or later" $Echo "$myinternalname: warning: in order to install the INFO-DIR-ENTRY lines" $Echo fi $Echo "$myinternalname: mission impossible by reason of missing \`$infodir/$dir_texifile' file" exit $EXIT_SUCCESS fi if $Test "$verbose" = yes; then $Echo "$myinternalname: warning: a new \`$dir_texifile' file will be created now" $Echo "$myinternalname: warning: in the \`$infodir' directory, please wait..." fi dirpath="$infodir/$dir_texifile" $Echo "@setfilename dir" > $dirpath $Echo "@node Top, (dir), (dir), (dir)" >> $dirpath $Echo "@center" >> $dirpath $Echo "Welcome to the FSF's Info Browser =8^.@*" >> $dirpath $Echo "@center" >> $dirpath $Echo "Select one of the following basic documentations:" >> $dirpath $Echo "@menu" >> $dirpath $Echo "My favourite tools:" >> $dirpath $Echo "@end menu" >> $dirpath $Echo "@bye" >> $dirpath if $Test "$verbose" = yes; then $Echo $Echo "$myinternalname: \`$dirpath' successfully created" $Echo $Echo "$myinternalname: let's see if \`$dirpath'" $Echo "$myinternalname: can be extended by some INFO-DIR-ENTRY lines" $Echo $Echo "$myinternalname: please wait..." $Echo fi else if $Test ! -w "$dirpath"; then $Echo "$myinternalname: error: \`$dirpath' file not writeable" 1>&2 exit $EXIT_FAILURE else if $Test "$verbose" = yes; then $Echo "$myinternalname: let's see if \`$dirpath'" $Echo "$myinternalname: can be extended by some INFO-DIR-ENTRY lines" $Echo $Echo "$myinternalname: please wait..." $Echo fi fi fi # # Let's start processing now. # files_given=no for file in $* do case "$file" in -*) continue ;; *) files_given=yes # # Store all lines between `START-INFO-DIR-ENTRY' and `END-INFO-DIR-ENTRY'. # if $Test -f "$file" && $Test -r "$file"; then if $Test "$verbose" = yes; then $Echo "$myinternalname: working on \`$file' ..." fi # # Let's check for compressed/gzipped files. # infofile_gzipped_2=`$Echo "$file" | \ $Sed -e 's/\///g' -e "s/$gzip_2_suffix/\//" \ -e 's/[-_\*\ \\^\!\$%&=?+#,;:|.~<>(){}a-zA-Z0-9]/@/g' \ -e 's/@\/@//' -e 's/@\//yes/' -e 's/@//g'` if $Test "$infofile_gzipped_2" != yes; then infofile_gzipped_1=`$Echo "$file" | \ $Sed -e 's/\///g' -e "s/$gzip_1_suffix/\//" \ -e 's/[-_\*\ \\^\!\$%&=?+#,;:|.~<>(){}a-zA-Z0-9]/@/g' \ -e 's/@\/@//' -e 's/@\//yes/' -e 's/@//g'` if $Test "$infofile_gzipped_1" != yes; then infofile_compressed=`$Echo "$file" | \ $Sed -e 's/\///g' -e "s/$compress_suffix/\//" \ -e 's/[-_\*\ \\^\!\$%&=?+#,;:|.~<>(){}a-zA-Z0-9]/@/g' \ -e 's/@\/@//' -e 's/@\//yes/' -e 's/@//g'` fi fi if $Test "$infofile_gzipped_2" = yes || \ $Test "$infofile_gzipped_1" = yes || \ $Test "$infofile_compressed" = yes; then if $Test -n "$Gzip"; then cmd=`$Gzip $Gzip_uncompress_flags $file | \ $Head $Head_flags` else cmd="" fi else cmd=`$Head $Head_flags $file` fi if $Test -n "$cmd"; then $Echo "$cmd" | \ $Awk 'BEGIN {found = 0; lines = 0;} \ { \ if ($0 ~ /START-INFO-DIR-ENTRY/) \ found = 1; \ else \ if (found == 1) \ { \ if ($0 ~ /END-INFO-DIR-ENTRY/) \ { \ found = 0; \ if (lines > 0) \ { \ if (substr(buf, 1, 1) == "*") \ print buf; \ else \ { \ i = 1; \ while (substr(buf, i, 1) == " ") \ i++; \ if (i == 1) \ i++; \ print substr(buf, i-1); \ } \ } \ } \ else \ { \ if (lines == 0) \ buf = $0; \ else \ { \ nl_found = 0; \ if (substr($0, 1, 1) == "*") \ nl_found = 1; \ if (nl_found == 0) \ printf "%s", buf; \ else \ { \ i = 1; \ while (substr(buf, i, 1) == " ") \ i++; \ if (i == 1) \ i++; \ print substr(buf, i-1); \ } \ buf = $0; \ } \ lines++; \ } \ } \ }' - >> $tmpdir/$newtmp else $Echo "$myinternalname: warning: can't operate on \`$file' by reason of missing compressor program" fi else if $Test ! -f "$file"; then $Echo "$myinternalname: warning: \`$file' file not found" else $Echo "$myinternalname: warning: \`$file' file not readable" fi fi esac done # # Emit some diagnostic texts. # if $Test -s "$tmpdir/$newtmp" then # # Some INFO-DIR-ENTRY lines detected, go ahead. # if $Test "$verbose" = yes; then $Echo $Echo "$myinternalname: some INFO-DIR-ENTRY lines detected..." $Echo "$myinternalname: here they are:" $Cat $tmpdir/$newtmp $Echo fi else # # No INFO-DIR-ENTRY lines detected, exit. # if $Test "$debug" = no; then $Rm -f $tmpdir/$newtmp fi if $Test "$verbose" = yes; then if $Test "$files_given" = yes; then $Echo $Echo "$myinternalname: no INFO-DIR-ENTRY lines detected," $Echo "$myinternalname: so modification of \`$dirpath' unnecessary..." exit $EXIT_SUCCESS else $Echo "$myinternalname: error: no files specified" 1>&2 exit $EXIT_FAILURE fi else # # No INFO-DIR-ENTRY lines detected, exit with success. # $Echo "$myinternalname: nothing to do... bye bye" exit $EXIT_SUCCESS fi fi # # Check whether the `dir' file is compressed/gzipped. # use_gzip_with_dirfile=no if $Test "$dirfile_gzipped_2" = yes || \ $Test "$dirfile_gzipped_1" = yes || \ $Test "$dirfile_compressed" = yes; then use_gzip_with_dirfile=yes fi # # Check whether the `dir.texi' file is compressed/gzipped. # use_gzip_with_dir_texifile=no if $Test "$dir_texifile_gzipped_2" = yes || \ $Test "$dir_texifile_gzipped_1" = yes || \ $Test "$dir_texifile_compressed" = yes; then use_gzip_with_dir_texifile=yes fi # # We can always continue our task if the `dir.texi' file is uncompressed... # If it is compressed/gzipped, check whether it can be uncompressed. # If former have failed, we have lost because our mission is impossible! # if $Test "$use_gzip_with_dir_texifile" = no || $Test -n "$Gzip"; then # # Now create the NEW `dir.texi' file. # if $Test "$use_gzip_with_dir_texifile" = yes; then $Gzip $Gzip_uncompress_flags $dirpath | \ $Awk 'BEGIN {found = 0;} \ { \ if (found == 0) \ { \ if ($0 ~ /@end menu/) \ found = 1; \ else \ print $0; \ } \ }' - >> $tmpdir/$dirtmp else $Awk 'BEGIN {found = 0;} \ { \ if (found == 0) \ { \ if ($0 ~ /@end menu/) \ found = 1; \ else \ print $0; \ } \ }' $dirpath >> $tmpdir/$dirtmp fi # # After copying all text of the original `dir.texi' file until (exclusive) # an "@end menu" line, append the extracted texts between START-INFO-DIR-ENTRY # and END-INFO-DIR-ENTRY to the temporary file in sorted manner. # $Cat $tmpdir/$newtmp | $Sort >> $tmpdir/$dirtmp # # And append the rest of the original `dir.texi' file to the temporary file. # if $Test "$use_gzip_with_dir_texifile" = yes; then $Gzip $Gzip_uncompress_flags $dirpath | \ $Awk 'BEGIN {found = 0;} \ { \ if (found != 0) \ print $0; \ else \ if ($0 ~ /@end menu/) \ { \ found = 1; \ print $0; \ } \ }' - >> $tmpdir/$dirtmp else $Awk 'BEGIN {found = 0;} \ { \ if (found != 0) \ print $0; \ else \ if ($0 ~ /@end menu/) \ { \ found = 1; \ print $0; \ } \ }' $dirpath >> $tmpdir/$dirtmp fi if $Test -n "$Makeinfo"; then # # Create a NEW `dir' file by means of the `makeinfo' program, # but first backup the original `dir.texi' file and then copy # the results of processing to the NEW `dir.texi' file. # $Cd $dir if $Test -n "$Cp"; then $Cp $dirpath $dirpath""$backup_suffix $Cp $tmpdir/$dirtmp $dir_texifile else $Cat $dirpath > $dirpath""$backup_suffix $Cat $tmpdir/$dirtmp > $dir_texifile fi $Makeinfo $dir_texifile # # And compress/gzip the resulting file now. # if $Test "$use_gzip_with_dirfile" = yes && $Test -n "$Gzip"; then $Rm -f $real_dirfile $Gzip $dirfile fi else if $Test "$verbose" = yes; then $Echo "$myinternalname: warning: cannot create \`$dirfile' by reason of missing makeinfo program" fi fi if $Test "$use_gzip_with_dir_texifile" = yes && $Test -n "$Gzip"; then $Rm -f $dirpath $Gzip $dir_texifile fi # # At last, clean the temporary files and exit with success. # if $Test "$debug" = no; then $Rm -f $tmpdir/$newtmp $tmpdir/$dirtmp fi if $Test "$verbose" = yes; then $Echo fi $Echo "$myinternalname: all modifications successfully done" exit $EXIT_SUCCESS else # # At last, clean the one remaining temporary file and exit with success. # if $Test "$debug" = no; then $Rm -f $tmpdir/$newtmp fi if $Test "$verbose" = yes; then $Echo fi $Echo "$myinternalname: mission impossible by reason of missing compressor program" exit $EXIT_SUCCESS fi else $Echo "$error1" 1>&2 $Echo "$error2" 1>&2 exit $EXIT_FAILURE fi gcal-4.1/misc/0000775000000000000000000000000013041164075010171 500000000000000gcal-4.1/misc/locale.alias0000664000000000000000000000365512353314150012370 00000000000000# Locale name alias data base # Copyright (C) 1995, 2010, 2011, 2013 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc. # The format of this file is the same as for the corresponding file of # the X Window System, which normally can be found in # /usr/lib/X11/locale/locale.alias # A single line contains two fields: an alias and a substitution value. # All entries are case independent. # Note: This file is far from being complete. If you have a value for # your own site which you think might be useful for others too, share it # with the rest of us. Send it to bug-gnu-utils@prep.ai.mit.edu. czech cs_CZ.ISO-8859-2 danish da_DK.ISO-8859-1 dansk da_DK.ISO-8859-1 deutsch de_DE.ISO-8859-1 dutch nl_NL.ISO-8859-1 finnish fi_FI.ISO-8859-1 français fr_FR.ISO-8859-1 french fr_FR.ISO-8859-1 german de_DE.ISO-8859-1 greek el_GR.ISO-8859-7 hebrew iw_IL.ISO-8859-8 hungarian hu_HU.ISO-8859-2 icelandic is_IS.ISO-8859-1 italian it_CH.ISO-8859-1 japanese ja_JP.EUC norwegian no_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 portuguese pt_PT.ISO-8859-1 rumanian ro_RO.ISO-8859-2 russian ru_SU.ISO-8859-5 slovak sk_SK.ISO-8859-2 slovene sl_CS.ISO-8859-2 spanish es_ES.ISO-8859-1 swedish sv_SE.ISO-8859-1 turkish tr_TR.ISO-8859-9 gcal-4.1/misc/mrms/0000775000000000000000000000000013041164075011147 500000000000000gcal-4.1/misc/mrms/mrms.rc0000664000000000000000000001060012353314150012364 00000000000000; Moonrise/moonset of several locations for Gcal-2.20 or newer ; ; $Id: mrms.rc 0.01 2000/03/06 00:00:01 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; ; *** Keep in mind that all rise/set times computed are approximate times only, ; *** because the location's altitude is not set and therefore taken as zero. ; *** You may correct this :) ; The line templates. ; $f=/ $p=0*d1#999 $a=%@$t $f%($c,$t $f%)$c,$t $f$l ; Usage of variables in the lines below: ; ; $l -> Name of location (use '_' characters instead of ' ' characters). ; $c -> ISO-6709 coordinate for geographical point locations ; $t -> Number of minutes the location is distant from UT/GMT, ; +NUM if location is East of Greenwich, 0 or -NUM otherwise. ; a -> Date at which daylight saving time starts; don't define if none. ; b -> Date at which daylight saving time ends; don't define if none. ; And now, the locations (add/remove/exchange any if you like). ; $l=Samoa $c=-1350-17144 $t=-660 $p $a ; $l=Honolulu $c=+211825-1575130 $t=-600 $p $a ; $l=Anchorage $c=+611305-1495401 $t=-540 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=San_Francisco $c=+3747-12230 $t=-480 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Denver $c=+394421-1045903 $t=-420 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Managua $c=+1206-08620 $t=-300 $p $a ; $l=Chicago $c=+415100-0873900 $t=-360 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Montreal $c=+4531-07334 $t=-300 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=New_York $c=+404251-0740023 $t=-300 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Bermuda $c=+3217-06446 $t=-240 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Rio_de_Janeiro $c=-2300-04312 $t=-180 a=02sat2 b=10sun1 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a ; $l=Azores $c=+3744-02540 $t=-60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Dakar $c=+1440-01726 $t=0 $p $a ; $l=London $c=+512830-0001845 $t=0 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Lisbon $c=+3843-00908 $t=0 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Münster $c=+5158+00738 $t=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Madrid $c=+4024-00341 $t=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Stockholm $c=+5920+01803 $t=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Johannesburg $c=-2615+02800 $t=120 $p $a ; $l=Istanbul $c=+4101+02858 $t=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Helsinki $c=+6010+02458 $t=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Athens $c=+3758+02343 $t=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Nairobi $c=-0117+03649 $t=180 $p $a ; $l=Moscow $c=+5545+03735 $t=180 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Tehran $c=+3540+05126 $t=210 a=0321 b=0922 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Bombay $c=+1855+07250 $t=330 $p $a ; $l=Bangkok $c=+1345+10031 $t=420 $p $a ; $l=Beijing $c=+3955+11620 $t=480 $p $a ; $l=Hongkong $c=+2217+11409 $t=480 $p $a ; $l=Tokyo $c=+3542+13946 $t=540 $p $a ; $l=Seoul $c=+3733+12658 $t=540 $p $a ; $l=Sydney $c=-3352+15113 $t=600 a=03sun9 b=10sun9 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a ; $l=Wellington $c=-4119+17446 $t=720 a=03sun3 b=10sun1 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a gcal-4.1/misc/mrms/mrms.in0000664000000000000000000003140412353314150012373 00000000000000#! /bin/sh # # @configure_input@ # # $Id: mrms.in 0.02 2000/03/24 00:00:02 tom Exp $ # # mrms.in: Uses `mrms[.awk|.pl]' for processing the Gcal `mrms.rc' resource # file to display the times at which moonrise/moonset has happened # in the past respectively will happen in the future, based on # the actual local time. If a Gcal resource file is specified # as program option, this resource file is used instead of the # default resource file `mrms.rc'. # # Usage: mrms --help | --version # Usage: mrms [--debug] [--mail[=ADDRESS]] # [--no-pager] [--mode=rise|set] [--sort=abs|rel] # [RESOURCE-FILE] [more Gcal options...] # # `--debug': Turn on shell debugging. # `--mail[=ADDRESS]': EMail the result to the specified ADDRESS. # If no ADDRESS is given, eMail it to # $MAILTO, $USER or $LOGNAME. # `--no-pager': Disable the use of a pager program. # `--mode=rise': Display the moonrise local times of the # locations. # `--mode=set': Display the moonset local times of the # locations. If this option is not given, # `--mode=rise' is used by default. # `--sort=abs': The sort order of the past times (indicated # by a `-' sign) respectively future times # (indicated by a `+' sign) is absolute. # `--sort=rel': The sort order of the past times (indicated # by a `-' sign) respectively future times # (indicated by a `+' sign) is relative. # If this option is not given, `--mode=abs' # is used by default. # # UN*X solution. # # Needs `test', `echo', `eval', `set', `sed', `date', `mail', `sort', # `gcal' and `perl' or `awk' for processing! # # Returns 0 if any fixed dates are created (returned by AWK/Perl script # if neither `--help' nor `--version' option was specified). # Returns 1 in case no fixed dates are created (returned by AWK/Perl script). # Returns 2 if neither Perl nor AWK are present for further processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Sed=sed Set=set Test=test Echo=echo Sort=sort # # Basically used texts. # packagedatamiscdir=@srcdir@ # PACKAGE=@PACKAGE@ VERSION=@VERSION@ transform=@program_transform_name@ # mydefaultname=mrms # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.01 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # param1=rise param2=set param3=abs param4=rel # gcal_resource_file_suffix=.rc gcal_resource_file=$mydefaultname""$gcal_resource_file_suffix # info1="$myname: Displays the times at which moon""$param1/moon""$param2 has happened in the" info2="$myname: past respectively will happen in the future, based on the actual" info3="$myname: local time for several geographic locations around the world." info4="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--mail[=ADDRESS]] [--no-pager] [--mode=$param1|$param2]" usage3="usage: [--sort=$param3|$param4] [RESOURCE-FILE] [more Gcal options...]" usage4="usage: $myname without \`--mode=$param1|$param2' option uses \`--mode=$param1' by default" usage5="usage: $myname without \`--sort=$param3|$param4' option uses \`--sort=$param3' by default" usage6="usage: $myname without RESOURCE-FILE uses file "\ "\`$packagedatamiscdir/$gcal_resource_file' by default" # # Some constant values. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval Date=date ThisMail=mail ThisGcal=../../src/@PACKAGE@ Pager1=@PAGER1@ Pager2=@PAGER2@ Pager3=@PAGER3@ # Awk=@AWK@ Awk_script=$mydefaultname"".awk # Perl=@PERL@ Perl_script=$mydefaultname"".pl # # Let's check for command line arguments. # debug=no pager=yes mail=no opt_mail="" opt_mode="" opt_sort="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel |-he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" $Echo "$usage4" $Echo "$usage5" $Echo "$usage6" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -no-pager=* | -no-page | -no-pag=* | -no-pa=* | -no-p=* | -no-=* | -no=* | -n=* | \ -no-pager | -no-page | -no-pag | -no-pa | -no-p | -no- | -no | -n | \ --no-pager=* | --no-page=* | --no-pag=* | --no-pa=* | --no-p=* | --no-=* | --no=* | --n=* | \ --no-pager | --no-page | --no-pag | --no-pa | --no-p | --no- | --no | --n) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi pager=no shift ;; -mail | -mai | -ma | --mail | --mai | --ma | \ -mail=* | -mai=* | -ma=* | --mail=* | --mai=* | --ma=*) if $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_mail="$optarg" mail=yes shift ;; -mode | -mod | -mo | --mode | --mod | --mo) previous=mode ;; -mode=* | -mod=* | -mo=* | --mode=* | --mod=* | --mo=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_mode="$optarg" shift ;; -sort | -sor | -so | -s | --sort | --sor | --so | --s) previous=sort ;; -sort=* | -sor=* | -so=* | -s=* | --sort=* | --sor=* | --so=* | --s=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_sort="$optarg" shift ;; esac done if $Test -n "$previous"; then $Echo "$myname: error: missing argument to --$previous" 1>&2 exit $EXIT_FAILURE fi # # Enable tracing. # if $Test "$debug" = yes; then $Set -x fi # # Let's start processing now. # if $Test -n "$Awk" || $Test -n "$Perl"; then SCRIPT_ARGS="" if $Test -n "$opt_mode"; then arg=`$Echo "$opt_mode" | $Sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` if $Test "$arg" = "$param1" || $Test "$arg" = "$param2"; then SCRIPT_ARGS="-a""$arg" else $Echo "$myname: error: invalid option argument \`$opt_mode' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE fi fi if $Test -n "$opt_sort"; then arg=`$Echo "$opt_sort" | $Sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` if $Test "$arg" = "$param3" || $Test "$arg" = "$param4"; then SCRIPT_ARGS="$SCRIPT_ARGS -b""$arg" else $Echo "$myname: error: invalid option argument \`$opt_sort' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE fi fi ARGS="" CMDS="" FILS="" for arg in $* do case "$arg" in -*) ARGS="$ARGS $arg" ;; /*) ARGS="$ARGS $arg" ;; @*) ARGS="$ARGS $arg" ;; %*) ARGS="$ARGS $arg" ;; [0-9*]*) CMDS="$CMDS $arg" ;; *) if $Test -z "$FILS"; then FILS="$arg" else FILS="$FILS+$arg" fi esac done if $Test -z "$FILS"; then FILS=$packagedatamiscdir/$gcal_resource_file fi if $Test "$mail" = no; then ARGS="$ARGS -Hyes" fi # # We prefer the use of Perl. # if $Test -n "$Perl"; then result=`$ThisGcal $ARGS -QUx -f $FILS $CMDS | \ $Perl -- $packagedatamiscdir/$Perl_script $SCRIPT_ARGS` else result=`$ThisGcal $ARGS -QUx -f $FILS $CMDS | \ $Awk -f $packagedatamiscdir/$Awk_script $SCRIPT_ARGS` fi status=$? if $Test "$status" -eq "$EXIT_SUCCESS"; then if $Test "$mail" = yes; then # # Detect the proper eMail address. # if $Test -n "$opt_mail"; then MailAddr="$opt_mail" else if $Test -n "$MAILTO"; then MailAddr="$MAILTO" else if $Test -n "$USER"; then MailAddr="$USER" else if $Test -n "$LOGNAME"; then MailAddr="$LOGNAME" else $Echo "$myname: warning: cannot send mail, address unknown" 1>&2 $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' 1>&2 exit $EXIT_FAILURE fi fi fi fi # # EMail the result. # if $Test -n "$MAILPROG"; then ThisMail="$MAILPROG" fi if $Test "$debug" = no; then $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' | \ $ThisMail -s "Mail from \`$myname' (`$Date`)" $MailAddr fi $Echo "$myname: result sent by $ThisMail to \`$MailAddr'" else # # Detect a proper pager. # ThisPager="" if $Test "$pager" = yes; then if $Test -n "$Pager1"; then ThisPager="$Pager1" else if $Test -n "$Pager2"; then ThisPager="$Pager2" else if $Test -n "$Pager3"; then ThisPager="$Pager3" fi fi fi fi # # Display the result. # if $Test -n "$ThisPager"; then $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' | $ThisPager else $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' fi fi else if $Test "$status" -eq "$EXIT_FAILURE"; then $Echo "$myname: error: no moonrise/moonset times found" 1>&2 else if $Test "$status" -eq "$EXIT_FATAL"; then if $Test -n "$Perl"; then $Echo "$myinternalname: error: invalid option \`$SCRIPT_ARGS' to \`$Perl' given" 1>&2 else $Echo "$myinternalname: error: invalid option \`$SCRIPT_ARGS' to \`$Awk' given" 1>&2 fi fi fi fi exit $status else $Echo "$myinternalname: error: neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/mrms/mrms0000664000000000000000000003135413041163626011777 00000000000000#! /bin/sh # # misc/mrms/mrms. Generated from mrms.in by configure. # # $Id: mrms.in 0.02 2000/03/24 00:00:02 tom Exp $ # # mrms.in: Uses `mrms[.awk|.pl]' for processing the Gcal `mrms.rc' resource # file to display the times at which moonrise/moonset has happened # in the past respectively will happen in the future, based on # the actual local time. If a Gcal resource file is specified # as program option, this resource file is used instead of the # default resource file `mrms.rc'. # # Usage: mrms --help | --version # Usage: mrms [--debug] [--mail[=ADDRESS]] # [--no-pager] [--mode=rise|set] [--sort=abs|rel] # [RESOURCE-FILE] [more Gcal options...] # # `--debug': Turn on shell debugging. # `--mail[=ADDRESS]': EMail the result to the specified ADDRESS. # If no ADDRESS is given, eMail it to # $MAILTO, $USER or $LOGNAME. # `--no-pager': Disable the use of a pager program. # `--mode=rise': Display the moonrise local times of the # locations. # `--mode=set': Display the moonset local times of the # locations. If this option is not given, # `--mode=rise' is used by default. # `--sort=abs': The sort order of the past times (indicated # by a `-' sign) respectively future times # (indicated by a `+' sign) is absolute. # `--sort=rel': The sort order of the past times (indicated # by a `-' sign) respectively future times # (indicated by a `+' sign) is relative. # If this option is not given, `--mode=abs' # is used by default. # # UN*X solution. # # Needs `test', `echo', `eval', `set', `sed', `date', `mail', `sort', # `gcal' and `perl' or `awk' for processing! # # Returns 0 if any fixed dates are created (returned by AWK/Perl script # if neither `--help' nor `--version' option was specified). # Returns 1 in case no fixed dates are created (returned by AWK/Perl script). # Returns 2 if neither Perl nor AWK are present for further processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Sed=sed Set=set Test=test Echo=echo Sort=sort # # Basically used texts. # packagedatamiscdir=. # PACKAGE=gcal VERSION=4.1 transform=s,x,x, # mydefaultname=mrms # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.01 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # param1=rise param2=set param3=abs param4=rel # gcal_resource_file_suffix=.rc gcal_resource_file=$mydefaultname""$gcal_resource_file_suffix # info1="$myname: Displays the times at which moon""$param1/moon""$param2 has happened in the" info2="$myname: past respectively will happen in the future, based on the actual" info3="$myname: local time for several geographic locations around the world." info4="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--mail[=ADDRESS]] [--no-pager] [--mode=$param1|$param2]" usage3="usage: [--sort=$param3|$param4] [RESOURCE-FILE] [more Gcal options...]" usage4="usage: $myname without \`--mode=$param1|$param2' option uses \`--mode=$param1' by default" usage5="usage: $myname without \`--sort=$param3|$param4' option uses \`--sort=$param3' by default" usage6="usage: $myname without RESOURCE-FILE uses file "\ "\`$packagedatamiscdir/$gcal_resource_file' by default" # # Some constant values. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval Date=date ThisMail=mail ThisGcal=../../src/gcal Pager1=less Pager2=more Pager3= # Awk=gawk Awk_script=$mydefaultname"".awk # Perl=perl Perl_script=$mydefaultname"".pl # # Let's check for command line arguments. # debug=no pager=yes mail=no opt_mail="" opt_mode="" opt_sort="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel |-he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" $Echo "$usage4" $Echo "$usage5" $Echo "$usage6" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -no-pager=* | -no-page | -no-pag=* | -no-pa=* | -no-p=* | -no-=* | -no=* | -n=* | \ -no-pager | -no-page | -no-pag | -no-pa | -no-p | -no- | -no | -n | \ --no-pager=* | --no-page=* | --no-pag=* | --no-pa=* | --no-p=* | --no-=* | --no=* | --n=* | \ --no-pager | --no-page | --no-pag | --no-pa | --no-p | --no- | --no | --n) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi pager=no shift ;; -mail | -mai | -ma | --mail | --mai | --ma | \ -mail=* | -mai=* | -ma=* | --mail=* | --mai=* | --ma=*) if $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_mail="$optarg" mail=yes shift ;; -mode | -mod | -mo | --mode | --mod | --mo) previous=mode ;; -mode=* | -mod=* | -mo=* | --mode=* | --mod=* | --mo=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_mode="$optarg" shift ;; -sort | -sor | -so | -s | --sort | --sor | --so | --s) previous=sort ;; -sort=* | -sor=* | -so=* | -s=* | --sort=* | --sor=* | --so=* | --s=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_sort="$optarg" shift ;; esac done if $Test -n "$previous"; then $Echo "$myname: error: missing argument to --$previous" 1>&2 exit $EXIT_FAILURE fi # # Enable tracing. # if $Test "$debug" = yes; then $Set -x fi # # Let's start processing now. # if $Test -n "$Awk" || $Test -n "$Perl"; then SCRIPT_ARGS="" if $Test -n "$opt_mode"; then arg=`$Echo "$opt_mode" | $Sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` if $Test "$arg" = "$param1" || $Test "$arg" = "$param2"; then SCRIPT_ARGS="-a""$arg" else $Echo "$myname: error: invalid option argument \`$opt_mode' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE fi fi if $Test -n "$opt_sort"; then arg=`$Echo "$opt_sort" | $Sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` if $Test "$arg" = "$param3" || $Test "$arg" = "$param4"; then SCRIPT_ARGS="$SCRIPT_ARGS -b""$arg" else $Echo "$myname: error: invalid option argument \`$opt_sort' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE fi fi ARGS="" CMDS="" FILS="" for arg in $* do case "$arg" in -*) ARGS="$ARGS $arg" ;; /*) ARGS="$ARGS $arg" ;; @*) ARGS="$ARGS $arg" ;; %*) ARGS="$ARGS $arg" ;; [0-9*]*) CMDS="$CMDS $arg" ;; *) if $Test -z "$FILS"; then FILS="$arg" else FILS="$FILS+$arg" fi esac done if $Test -z "$FILS"; then FILS=$packagedatamiscdir/$gcal_resource_file fi if $Test "$mail" = no; then ARGS="$ARGS -Hyes" fi # # We prefer the use of Perl. # if $Test -n "$Perl"; then result=`$ThisGcal $ARGS -QUx -f $FILS $CMDS | \ $Perl -- $packagedatamiscdir/$Perl_script $SCRIPT_ARGS` else result=`$ThisGcal $ARGS -QUx -f $FILS $CMDS | \ $Awk -f $packagedatamiscdir/$Awk_script $SCRIPT_ARGS` fi status=$? if $Test "$status" -eq "$EXIT_SUCCESS"; then if $Test "$mail" = yes; then # # Detect the proper eMail address. # if $Test -n "$opt_mail"; then MailAddr="$opt_mail" else if $Test -n "$MAILTO"; then MailAddr="$MAILTO" else if $Test -n "$USER"; then MailAddr="$USER" else if $Test -n "$LOGNAME"; then MailAddr="$LOGNAME" else $Echo "$myname: warning: cannot send mail, address unknown" 1>&2 $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' 1>&2 exit $EXIT_FAILURE fi fi fi fi # # EMail the result. # if $Test -n "$MAILPROG"; then ThisMail="$MAILPROG" fi if $Test "$debug" = no; then $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' | \ $ThisMail -s "Mail from \`$myname' (`$Date`)" $MailAddr fi $Echo "$myname: result sent by $ThisMail to \`$MailAddr'" else # # Detect a proper pager. # ThisPager="" if $Test "$pager" = yes; then if $Test -n "$Pager1"; then ThisPager="$Pager1" else if $Test -n "$Pager2"; then ThisPager="$Pager2" else if $Test -n "$Pager3"; then ThisPager="$Pager3" fi fi fi fi # # Display the result. # if $Test -n "$ThisPager"; then $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' | $ThisPager else $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' fi fi else if $Test "$status" -eq "$EXIT_FAILURE"; then $Echo "$myname: error: no moonrise/moonset times found" 1>&2 else if $Test "$status" -eq "$EXIT_FATAL"; then if $Test -n "$Perl"; then $Echo "$myinternalname: error: invalid option \`$SCRIPT_ARGS' to \`$Perl' given" 1>&2 else $Echo "$myinternalname: error: invalid option \`$SCRIPT_ARGS' to \`$Awk' given" 1>&2 fi fi fi fi exit $status else $Echo "$myinternalname: error: neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/mrms/mrms.bat0000664000000000000000000001301512353314150012531 00000000000000@echo off :: $Id: mrms.bat 0.01 2000/03/06 00:00:01 tom Exp $ :: :: mrms.bat: Uses `mrms.awk' for processing the Gcal `mrms.rc' resource :: file to display the times at which moonrise/moonset has :: happened in the past respectively will happen in the future, :: based on the actual local time for several geographic :: locations around the world. :: :: Usage: mrms --help :: Usage: mrms [--no-pager] [rise|set [abs|rel]] [-- more Gcal options...] :: :: `rise': Display the moonrise local times of the locations. :: `set': Display the moonset local times of the locations. :: If this option is not given, `rise' is used :: by default. :: `abs': The sort order of the past times (indicated :: by a `-' sign) respectively future times :: (indicated by a `+' sign) is absolute. :: `rel': The sort order of the past times (indicated :: by a `-' sign) respectively future times :: (indicated by a `+' sign) is relative. :: If this option is not given, `abs' is used :: by default. :: `--no-pager': Disable the use of a pager program. :: :: MS-DOS solution. :: :: Needs `gcal', `gawk' and `sort' for processing! :: :: Copyright (c) 2000 Thomas Esken :: Im Hagenfeld 84 :: D-48147 M"unster :: GERMANY :: :: This software doesn't claim completeness, correctness or usability. :: On principle I will not be liable for ANY damages or losses (implicit :: or explicit), which result from using or handling my software. :: If you use this software, you agree without any exception to this :: agreement, which binds you LEGALLY !! :: :: This program is free software; you can redistribute it and/or modify :: it under the terms of the `GNU General Public License' as published by :: the `Free Software Foundation'; either version 3, or (at your option) :: any later version. :: :: You should have received a copy of the `GNU General Public License' :: along with this program; if not, write to the: :: :: :: :: Basically used programs, set these environment variables properly! :: set _=gcal set oldgcalpath=%gcalpath% set gcalpath=. set -=gawk set oldawkpath=%awkpath% set awkpath=.;c:\dos :: :: Generic file names, set these environment variables properly! :: set myname=%0 set mydefaultname=mrms :: :: Script/Input file names, set these environment variables properly! :: set gcalresource=%mydefaultname%.rc set awkscript=%mydefaultname%.awk :: :: Command line argument names, set these environment variables properly! :: set param0=--no-pager set param1=rise set param2=set set param3=abs set param4=rel :: if ""%1 == "" goto next0 if %1 == --help goto usage if %1 == --HELP goto usage if %1 == --hel goto usage if %1 == --HEL goto usage if %1 == --he goto usage if %1 == --HE goto usage if %1 == --h goto usage if %1 == --H goto usage if %1 == -h goto usage if %1 == -H goto usage if %1 == /h goto usage if %1 == /H goto usage if %1 == -? goto usage if %1 == /? goto usage if %1 == ? goto usage :: :next0 if exist %awkscript% goto next1 echo %myname%: error: file `%awkscript%' is missing goto eof :: :next1 if exist %gcalresource% goto next2 echo %myname%: error: file `%gcalresource%' is missing goto eof :: :next2 if ""%1 == "" goto default1 if %1 == -- goto default1 if %1 == %param1% goto check1 if %1 == %param2% goto check1 if %1 == %param0% goto next3 goto usage :: :next3 set no_pager=yes shift goto next2 :: :default1 set script_args=-a%param1% goto default2 :: :check1 set script_args=-a%1 shift if ""%1 == "" goto default2 if %1 == %param3% goto check2 if %1 == %param4% goto check2 goto usage :: :default2 set script_args=%script_args% -b%param3% if ""%1 == "" goto eval if %1 == -- goto remove_arg goto eval :: :check2 set script_args=%script_args% -b%1 :remove_arg shift :: :eval %_% -Hno -QUx -f %gcalresource% %1 %2 %3 %4 %5 %6 %7 %8 %9> $$$tmp0 %-% -f %awkscript% -- %script_args% $$$tmp0> $$$tmp1 if errorlevel 2 goto msg2 if errorlevel 1 goto msg1 type $$$tmp1 | sort> $$$tmp2 %-% -F@ "{print $2}" $$$tmp2> $$$tmp3 if ""%no_pager% == "" goto output1 type $$$tmp3 goto delete :: :output1 type $$$tmp3 | more goto delete :: :msg2 echo %myname%: error: invalid option `%script_args%' to `%-%' given goto delete :: :msg1 echo %myname%: error: no moon%param1%/moon%param2% times found :: :delete del $$$tmp? >NUL: goto eof :: :usage echo %myname%: Displays the times at which moon%param1%/moon%param2% has happened in echo %myname%: the past respectively will happen in the future, based on the echo %myname%: actual local time for several geographic locations around the echo %myname%: world, by using the Gcal resource file `%gcalresource%'. echo %myname%: echo usage: %myname% [--no-pager] [%param1% or %param2% [%param3% or %param4%]] [-- more Gcal options...] :: :eof :: set no_pager= set script_args= set param4= set param3= set param2= set param1= set param0= set awkscript= set gcalresource= set mydefaultname= set myname= set awkpath=%oldawkpath% set oldawkpath= set -= set gcalpath=%oldgcalpath% set oldgcalpath= set _= gcal-4.1/misc/mrms/mrms.pl0000664000000000000000000000767312353314150012413 00000000000000# $Id: mrms.pl 0.01 2000/03/06 00:00:01 tom Exp $ # # mrms.pl: Processes the Gcal `mrms.rc' resource file for displaying # the times at which moonrise/moonset has happened in the # past respectively will happen in the future, based on # the actual local time for several geographic locations # around the world. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `mrms' and a DOS batch `mrms.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # $[ = 1; # set array base to 1 # # Define the field separator used (SLASH actually). # $FS = '/'; # # Define the default return value of this process, which is EXIT_FAILURE. # $EXIT_SUCCESS = 0; $EXIT_FAILURE = 1; $EXIT_FATAL = 2; # $exit_status = $EXIT_FAILURE; # # Define the constant values used for default operation. # $the_mode = 'rise'; $the_sort = 'abs'; # # Get possibly given command line arguments. # for ($i = 1; $i < ($#ARGV+1); $i++) { if (substr($ARGV[$i], 1, 1) eq '-') { if (substr($ARGV[$i], 2, 1) eq 'a') { $the_mode = substr($ARGV[$i], 3, 999999); } elsif (substr($ARGV[$i], 2, 1) eq 'b') { $the_sort = substr($ARGV[$i], 3, 999999); } else { exit $EXIT_FATAL; } } else { last; } shift; $i--; } # # Main block. # line: while (<>) { chop; # strip record separator @Fld = split(/[$FS\n]/, $_, 9999); if (length($_) > 0) { # # Select the proper input field depending on the value of `the_mode'. # if ($the_mode eq 'rise') { $field = $Fld[3]; } else { $field = $Fld[4]; } # # Compute the actual local time `minute of day' of the location. # $min1 = substr($Fld[1], 1, 2) * 60; $min1 += substr($Fld[1], 4, 2); # # Compute the local time moonrise/moonset `minute of day' of the location. # $min2 = substr($field, 1, 2) * 60; $min2 += substr($field, 4, 2); # # Compute the time difference of both precomputed times. # $min = $min2 - $min1; $hour = $min / 60; if ($min < 0) { # # Moonrise/moonset has happened in the past. # $hour = -$hour; $min = -$min; $sign = '-'; } else { # # Moonrise/moonset will happen in the future. # $sign = '+'; } $min %= 60; # # And print the result in formatted manner. # if ($the_sort eq 'abs') { printf "%s%02d:%02d@%s, LT=%s%s%02d:%02d HH:MM = moon%s at %s in %s\n", $sign, $hour, $min, $Fld[2], $Fld[1], $sign, $hour, $min, $the_mode, $field, $Fld[5]; } else { printf "%02d:%02d%s@%s, LT=%s%s%02d:%02d HH:MM = moon%s at %s in %s\n", $hour, $min, $sign, $Fld[2], $Fld[1], $sign, $hour, $min, $the_mode, $field, $Fld[5]; } # # Set the return value of this process to EXIT_SUCCESS. # $exit_status = $EXIT_SUCCESS; } } exit $exit_status; gcal-4.1/misc/mrms/mrms.awk0000664000000000000000000000771612353314150012560 00000000000000# $Id: mrms.awk 0.01 2000/03/06 00:00:01 tom Exp $ # # mrms.awk: Processes the Gcal `mrms.rc' resource file for displaying # the times at which moonrise/moonset has happened in the # past respectively will happen in the future, based on # the actual local time for several geographic locations # around the world. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `mrms' and a DOS batch `mrms.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # BEGIN { # # Define the field separator used (SLASH actually). # FS = "/" # # Define the default return value of this process, which is EXIT_FAILURE. # EXIT_SUCCESS = 0 EXIT_FAILURE = 1 EXIT_FATAL = 2 # exit_status = EXIT_FAILURE # # Define the constant values used for default operation. # the_mode = "rise" the_sort = "abs" # # Get possibly given command line arguments. # for (i=1 ; i < ARGC ; i++) { if (substr(ARGV[i], 1, 1) == "-") { if (substr(ARGV[i], 2, 1) == "a") the_mode = substr(ARGV[i], 3) else if (substr(ARGV[i], 2, 1) == "b") the_sort = substr(ARGV[i], 3) else exit EXIT_FATAL } else break delete ARGV[i] } } # # Main block. # { if (length($0) > 0) { # # Select the proper input field depending on the value of `the_mode'. # if (the_mode == "rise") field = $3 else field = $4 # # Compute the actual local time `minute of day' of the location. # min1 = substr($1, 1, 2) * 60 min1 += substr($1, 4, 2) # # Compute the local time moonrise/moonset `minute of day' of the location. # min2 = substr(field, 1, 2) * 60 min2 += substr(field, 4, 2) # # Compute the time difference of both precomputed times. # min = min2 - min1 hour = min / 60 if (min < 0) { # # Moonrise/moonset has happened in the past. # hour = -hour min = -min sign = "-" } else { # # Moonrise/moonset will happen in the future. # sign = "+" } min %= 60 # # And print the result in formatted manner. # if (the_sort == "abs") printf "%s%02d:%02d@%s, LT=%s%s%02d:%02d HH:MM = moon%s at %s in %s\n", \ sign, hour, min, $2, $1, sign, hour, min, the_mode, field, $5 else printf "%02d:%02d%s@%s, LT=%s%s%02d:%02d HH:MM = moon%s at %s in %s\n", \ hour, min, sign, $2, $1, sign, hour, min, the_mode, field, $5 # # Set the return value of this process to EXIT_SUCCESS. # exit_status = EXIT_SUCCESS } } END { exit exit_status } gcal-4.1/misc/ddiff/0000775000000000000000000000000013041164075011245 500000000000000gcal-4.1/misc/ddiff/ddiff.in0000664000000000000000000002672512353314150012601 00000000000000#! /bin/sh # # @configure_input@ # # $Id: ddiff.in 0.06 2000/03/24 00:00:06 tom Exp $ # # ddiff.in: Uses `ddiff1[.awk|.pl]' and `ddiff2[.awk|.pl]' for creating # a Gcal location resource file which contains the day/night # lengths and differences for all days of the year YYYY for # a definite location. # A Gcal location response file is a Gcal response file # consisting of one line, which passes the location name # LOC, its country code CC, and the ISO-6709-co-ordinate # COORD via text variables to Gcal. The line template of # a Gcal location response file is: -r$l=CC-LOC:$c=COORD # # Usage: ddiff --help | --version # Usage: ddiff [--debug] [--precise] # [--year=YYYY] LOCATION-RESPONSE-FILE # Usage: ddiff [--debug] [--precise] # [--year=YYYY] CC LOCATION-NAME ISO-COORDINATE # # `--debug': Turn on shell debugging. # `--precise': Use more precise time values. # `--year=YYYY': Create the Gcal location resource file for the # year YYYY, otherwise for the actual year. # # UN*X solution. # # Needs `test', `echo', `expr', `eval', `set', `sed', `cat', `rm', `gcal' # and `perl' or `awk' for processing! # # Returns 0 if processing was successfully. # Returns 1 in case an error occured while processing. # Returns 2 if neither Perl nor AWK are present for further processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Rm=rm Cat=cat Sed=sed Set=set Test=test Echo=echo Expr=expr # # Basically used texts. # packagedatamiscdir=@srcdir@ # PACKAGE=@PACKAGE@ VERSION=@VERSION@ transform=@program_transform_name@ # mydefaultname=ddiff # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.06 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # gcal_resource_file_suffix=.rc # info1="$myname: Creates a Gcal location resource file which contains the" info2="$myname: day/night lengths and differences for all days of the year" info3="$myname: YYYY for a definite location." info4="$myname: By definition, a Gcal location response file is a text file of" info5="$myname: one line with a \`-r\$l=CC-LOCATION:\$c=COORDINATE' contents." info6="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--precise] [--year=YYYY] LOCATION-RESPONSE-FILE" usage3="usage: $myname [--debug] [--precise] [--year=YYYY] CC LOCATION-NAME ISO-COORDINATE" # # Some constant values (EXIT_SUCCESS(==0) and EXIT_FATAL(==2) # are also returned by the processed AWK/Perl script. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval ThisGcal=../../src/@PACKAGE@ # Awk=@AWK@ Awk_script1=$mydefaultname""1.awk Awk_script2=$mydefaultname""2.awk # Perl=@PERL@ Perl_script1=$mydefaultname""1.pl Perl_script2=$mydefaultname""2.pl # # Let's check for command line arguments. # debug=no precise="" opt_year="" commands="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel | -he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$info5" $Echo "$info6" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -precise=* | -precis=* | -preci=* | -prec=* | -pre=* | -pr=* | -p=* | \ -precise | -precis | -preci | -prec | -pre | -pr | -p | \ --precise=* | --precis=* | --preci=* | --prec=* | --pre=* | --pr=* | --p=* | \ --precise | --precis | --preci | --prec | --pre | --pr | --p) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi precise="--precise" shift ;; -year | -yea | -ye | -y | --year | --yea | --ye | --y) previous=year ;; -year=* | -yea=* | -ye=* | -y=* | --year=* | --yea=* | --ye=* | --y=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_year="$optarg" shift ;; -* | /*) $Echo "$myname: error: $option: invalid option, use --help to show usage" 1>&2 exit $EXIT_FAILURE ;; *) if $Test -z "$commands"; then commands="$option" else commands="$commands $option" fi esac done if $Test -n "$previous"; then $Echo "$myname: error: missing argument to --$previous" 1>&2 exit $EXIT_FAILURE fi # # Get the number of commands given and assign them to the local variables. # cmd_number=0 cmd_1="" cmd_2="" cmd_3="" for cmd in $commands do if $Test -z "$cmd_1"; then cmd_1="$cmd" else if $Test -z "$cmd_2"; then cmd_2="$cmd" else if $Test -z "$cmd_3"; then cmd_3="$cmd" fi fi fi cmd_number=`$Expr $cmd_number + 1` done # # Enable tracing. # if $Test "$debug" = yes; then $Set -x fi # # Let's start processing now. # if $Test -n "$Awk" || $Test -n "$Perl"; then if $Test "$cmd_number" -eq 0 || $Test "$cmd_number" -eq 2 || $Test "$cmd_number" -gt 3; then $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$info5" $Echo "$info6" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_FAILURE else gcal_year="" if $Test -n "$opt_year"; then arg=`$Echo "$opt_year" | $Sed -e 's/[0-9]//g'` if $Test -n "$arg"; then $Echo "$myname: error: invalid option argument \`$opt_year' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE else gcal_year="-u $opt_year""+""$opt_year" fi fi if $Test "$cmd_number" -eq 1; then if $Test -s "$cmd_1"; then outfile="$cmd_1""$gcal_resource_file_suffix" else $Echo "$myname: error: LOCATION-RESPONSE-FILE \`$cmd_1' is missing" 1>&2 exit $EXIT_FAILURE fi gcal_option="@""$cmd_1" else gcal_option="-r\$l=$cmd_1"-"$cmd_2":\$c="$cmd_3" outfile=`$Echo "$cmd_1"-"$cmd_2""$gcal_resource_file_suffix" | \ $Sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` fi # if $Test -n "$Perl"; then if $Test ! -s "$packagedatamiscdir/$Perl_script1"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Perl_script1' is missing" 1>&2 exit $EXIT_FAILURE fi if $Test ! -s "$packagedatamiscdir/$Perl_script2"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Perl_script2' is missing" 1>&2 exit $EXIT_FAILURE fi else if $Test ! -s "$packagedatamiscdir/$Awk_script1"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Awk_script1' is missing" 1>&2 exit $EXIT_FAILURE fi if $Test ! -s "$packagedatamiscdir/$Awk_script2"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Awk_script2' is missing" 1>&2 exit $EXIT_FAILURE fi fi # # Let's set some default directories first. # tmpdir=/tmp # # Respect a $TMPDIR or a $TMP environment variable. # if $Test -n "$TMPDIR"; then tmpdir="$TMPDIR" else if $Test -n "$TMP"; then tmpdir="$TMP" fi fi # tmpdir=`$Echo "$tmpdir" | $Sed -e 's,/\$,,'` # tmpfile1="$tmpdir"/1-"$$" tmpfile2="$tmpdir"/2-"$$" tmpfile3="$tmpdir"/3-"$$" # if $Test "$debug" = no; then trap "$Rm -f $outfile $tmpfile1 $tmpfile2 $tmpfile3;exit $EXIT_FAILURE" 1 2 15 fi # $Echo "$myname: creating the Gcal location resource file \`$outfile', please wait..." $ThisGcal -f/dev/null -QUx '-#0 -r$y=%:04*Y' > $tmpfile1 $ThisGcal $gcal_option \ @$tmpfile1 \ '--date-format=%>04*Y%>02*M%>02*D%1%2' \ '-#0*d1#999 $l %u$c d %z$c n $c %>04*Y$y@t -%>02*M$y@t -%>02*D$y@t %t %=' \ -f/dev/null -Qxy -Hno $precise $gcal_year > $tmpfile2 # # We prefer the use of Perl. # if $Test -n "$Perl"; then $Perl $packagedatamiscdir/$Perl_script1 $tmpfile2 > $tmpfile3 $Cat $packagedatamiscdir/$Perl_script2 >> $tmpfile3 $Perl -- $tmpfile3 -a$outfile $tmpfile2 > $outfile else $Awk -f $packagedatamiscdir/$Awk_script1 $tmpfile2 > $tmpfile3 $Cat $packagedatamiscdir/$Awk_script2 >> $tmpfile3 $Awk -f $tmpfile3 -- -a$outfile $tmpfile2 > $outfile fi status=$? if $Test "$debug" = no; then $Rm -f $tmpfile1 $tmpfile2 $tmpfile3 fi if $Test "$status" -eq "$EXIT_FATAL"; then if $Test -n "$Perl"; then $Echo "$myinternalname: error: invalid option to \`$Perl' given" 1>&2 else $Echo "$myinternalname: error: invalid option to \`$Awk' given" 1>&2 fi if $Test "$debug" = no; then $Rm -f $outfile fi exit $status fi fi exit $EXIT_SUCCESS else $Echo "$myinternalname: error: neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/ddiff/zone.tab0000664000000000000000000003622512353516553012647 00000000000000# Just added for fun, Thomas Esken , 17-Dec-1999: # DE +5158+00738 Europe/Muenster Capital of Westphalia # # --- original file starts here --- # TZ zone descriptions # # From Paul Eggert (1996-08-05): # # This file contains a table with the following columns: # 1. ISO 3166 2-character country code. See the file `iso3166.tab'. # 2. Latitude and longitude of the zone's principal location # in ISO 6709 sign-degrees-minutes-seconds format, # either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS, # first latitude (+ is north), then longitude (+ is east). # 3. Zone name used in value of TZ environment variable. # 4. Comments; present if and only if the country has multiple rows. # # Columns are separated by a single tab. # The table is sorted first by country, then an order within the country that # (1) makes some geographical sense, and # (2) puts the most populous zones first, where that does not contradict (1). # # Lines beginning with `#' are comments. # #country- #code coordinates TZ comments AD +4230+00131 Europe/Andorra AE +2518+05518 Asia/Dubai AF +3431+06912 Asia/Kabul AG +1703-06148 America/Antigua AI +1812-06304 America/Anguilla AL +4120+01950 Europe/Tirane AM +4011+04430 Asia/Yerevan AN +1211-06900 America/Curacao AO -0848+01314 Africa/Luanda AQ -7750+16636 Antarctica/McMurdo McMurdo Station, Ross Island AQ -9000+00000 Antarctica/South_Pole Amundsen-Scott Station, South Pole AQ -6448-06406 Antarctica/Palmer Palmer Station, Anvers Island AQ -6736+06253 Antarctica/Mawson Mawson Station, Holme Bay AQ -6617+11031 Antarctica/Casey Casey Station, Bailey Peninsula AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville Base, Terre Adelie AR -3436-05827 America/Buenos_Aires E Argentina (BA, DF, SC, TF) AR -3257-06040 America/Rosario NE Argentina (SF, ER, CN, MN, CC, FM, LP, CH) AR -3124-06411 America/Cordoba W Argentina (CB, SA, TM, LR, SJ, SL, NQ, RN) AR -2411-06518 America/Jujuy Jujuy (JY) AR -2828-06547 America/Catamarca Catamarca (CT) AR -3253-06849 America/Mendoza Mendoza (MZ) AS -1416-17042 Pacific/Pago_Pago AT +4813+01620 Europe/Vienna AU -3133+15905 Australia/Lord_Howe Lord Howe Island AU -4253+14719 Australia/Hobart Tasmania AU -3749+14458 Australia/Melbourne Victoria AU -3352+15113 Australia/Sydney New South Wales - most locations AU -3157+14127 Australia/Broken_Hill New South Wales - Broken Hill AU -2728+15302 Australia/Brisbane Queensland - most locations AU -2016+14900 Australia/Lindeman Queensland - Holiday Islands AU -3455+13835 Australia/Adelaide South Australia AU -1228+13050 Australia/Darwin Northern Territory AU -3157+11551 Australia/Perth Western Australia AW +1230-06858 America/Aruba AZ +4023+04951 Asia/Baku BA +4352+01825 Europe/Sarajevo BB +1306-05937 America/Barbados BD +2343+09025 Asia/Dacca BE +5050+00420 Europe/Brussels BF +1222-00131 Africa/Ouagadougou BG +4241+02319 Europe/Sofia BH +2623+05035 Asia/Bahrain BI -0323+02922 Africa/Bujumbura BJ +0629+00237 Africa/Porto-Novo BM +3217-06446 Atlantic/Bermuda BN +0456+11455 Asia/Brunei BO -1630-06809 America/La_Paz BR -0351-03225 America/Noronha Fernando de Noronha BR -0343-03830 America/Fortaleza NE Brazil (AP, east PA, MA, PI, CE, RN, PR, PE) BR -0940-03543 America/Maceio ENE Brazil (AL, SE, TO) BR -2332-04637 America/Sao_Paulo S & SE Brazil (BA, GO, DF, MG, ES, RJ, SP, PR, SC, RS) BR -1535-05605 America/Cuiaba SW Brazil (MT, MS) BR -0308-06001 America/Manaus NW Brazil (RR, west PA, AM, RO) BR -0934-06731 America/Porto_Acre Acre BS +2505-07721 America/Nassau BT +2728+08939 Asia/Thimbu BW -2545+02555 Africa/Gaborone BY +5354+02734 Europe/Minsk BZ +1730-08812 America/Belize CA +4734-05243 America/St_Johns Newfoundland Island CA +4439-06336 America/Halifax Atlantic Time - Nova Scotia (most places), NB, W Labrador, E Quebec & PEI CA +4612-05957 America/Glace_Bay Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971 CA +5320-06025 America/Goose_Bay Atlantic Time - E Labrador CA +6608-06544 America/Pangnirtung Atlantic Time - Northwest Territories CA +4531-07334 America/Montreal Eastern Time - Ontario & Quebec - most locations CA +4901-08816 America/Nipigon Eastern Time - Ontario & Quebec - places that did not observe DST 1967-1973 CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario CA +6344-06828 America/Iqaluit Eastern Time - Northwest Territories CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario CA +4843-09429 America/Rainy_River Central Time - Rainy River & Fort Frances, Ontario CA +6245-09210 America/Rankin_Inlet Central Time - Northwest Territories CA +5024-10439 America/Regina Central Standard Time - Saskatchewan - most locations CA +5017-10750 America/Swift_Current Central Standard Time - Saskatchewan - midwest CA +5333-11328 America/Edmonton Mountain Time - Alberta, east British Columbia & west Saskatchewan CA +6227-11421 America/Yellowknife Mountain Time - central Northwest Territories CA +6825-11330 America/Inuvik Mountain Time - west Northwest Territories CA +5946-12014 America/Dawson_Creek Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia CA +4916-12307 America/Vancouver Pacific Time - west British Columbia CA +6043-13503 America/Whitehorse Pacific Time - south Yukon CA +6404-13925 America/Dawson Pacific Time - north Yukon CC -1210+09655 Indian/Cocos CD -0418+01518 Africa/Kinshasa west Dem. Rep. of Congo CD -1140+02728 Africa/Lubumbashi east Dem. Rep. of Congo CF +0422+01835 Africa/Bangui CG -0416+01517 Africa/Brazzaville CH +4723+00832 Europe/Zurich CI +0519-00402 Africa/Abidjan CK -2114-15946 Pacific/Rarotonga CL -3327-07040 America/Santiago mainland CL -2710-10927 Pacific/Easter Easter Island CM +0403+00942 Africa/Douala CN +4545+12641 Asia/Harbin north Manchuria CN +3114+12128 Asia/Shanghai China coast CN +2217+11409 Asia/Hong_Kong Hong Kong CN +2934+10635 Asia/Chungking China mountains CN +4348+08735 Asia/Urumqi Tibet & Xinjiang CN +3929+07559 Asia/Kashgar Eastern Turkestan CO +0436-07405 America/Bogota CR +0956-08405 America/Costa_Rica CU +2308-08222 America/Havana CV +1455-02331 Atlantic/Cape_Verde CX -1025+10543 Indian/Christmas CY +3510+03322 Asia/Nicosia CZ +5005+01426 Europe/Prague DE +5230+01322 Europe/Berlin DJ +1136+04309 Africa/Djibouti DK +5540+01235 Europe/Copenhagen DM +1518-06124 America/Dominica DO +1828-06954 America/Santo_Domingo DZ +3647+00303 Africa/Algiers EC -0210-07950 America/Guayaquil mainland EC -0054-08936 Pacific/Galapagos Galapagos Islands EE +5925+02445 Europe/Tallinn EG +3003+03115 Africa/Cairo EH +2709-01312 Africa/El_Aaiun ER +1520+03853 Africa/Asmera ES +4024-00341 Europe/Madrid mainland ES +3553-00519 Africa/Ceuta Ceuta & Melilla ES +2806-01524 Atlantic/Canary Canary Islands ET +0902+03842 Africa/Addis_Ababa FI +6010+02458 Europe/Helsinki FJ -1808+17825 Pacific/Fiji FK -5142-05751 Atlantic/Stanley FM +0931+13808 Pacific/Yap Yap FM +0725+15147 Pacific/Truk Truk (Chuuk) FM +0658+15813 Pacific/Ponape Ponape (Pohnpei) FM +0519+16259 Pacific/Kosrae Kosrae FO +6201-00646 Atlantic/Faeroe FR +4852+00220 Europe/Paris GA +0023+00927 Africa/Libreville GB +512830-0001845 Europe/London Great Britain GB +5435-00555 Europe/Belfast Northern Ireland GD +1203-06145 America/Grenada GE +4143+04449 Asia/Tbilisi GF +0456-05220 America/Cayenne GH +0533-00013 Africa/Accra GI +3608-00521 Europe/Gibraltar GL +7030-02215 America/Scoresbysund east Greenland GL +6411-05144 America/Godthab southwest Greenland GL +7634-06847 America/Thule northwest Greenland GM +1328-01639 Africa/Banjul GN +0931-01343 Africa/Conakry GP +1614-06132 America/Guadeloupe GQ +0345+00847 Africa/Malabo GR +3758+02343 Europe/Athens GS -5416-03632 Atlantic/South_Georgia GT +1438-09031 America/Guatemala GU +1328+14445 Pacific/Guam GW +1151-01535 Africa/Bissau GY +0648-05810 America/Guyana HN +1406-08713 America/Tegucigalpa HR +4548+01558 Europe/Zagreb HT +1832-07220 America/Port-au-Prince HU +4730+01905 Europe/Budapest ID -0610+10648 Asia/Jakarta Java & Sumatra ID -0507+11924 Asia/Ujung_Pandang Borneo & Celebes ID -0232+14042 Asia/Jayapura Irian Jaya & the Moluccas IE +5320-00615 Europe/Dublin IL +3146+03514 Asia/Jerusalem most locations IL +3130+03428 Asia/Gaza Gaza Strip IN +2232+08822 Asia/Calcutta IO -0720+07225 Indian/Chagos IQ +3321+04425 Asia/Baghdad IR +3540+05126 Asia/Tehran IS +6409-02151 Atlantic/Reykjavik IT +4154+01229 Europe/Rome JM +1800-07648 America/Jamaica JO +3157+03556 Asia/Amman JP +3542+13946 Asia/Tokyo most locations JP +2420+12409 Asia/Ishigaki south Ryukyu Islands KE -0117+03649 Africa/Nairobi KG +4254+07436 Asia/Bishkek KH +1133+10455 Asia/Phnom_Penh KI +0125+17300 Pacific/Tarawa Gilbert Islands KI -0308-17105 Pacific/Enderbury Phoenix Islands KI +0152-15720 Pacific/Kiritimati Line Islands KM -1141+04316 Indian/Comoro KN +1718-06243 America/St_Kitts KP +3901+12545 Asia/Pyongyang KR +3733+12658 Asia/Seoul KW +2920+04759 Asia/Kuwait KY +1918-08123 America/Cayman KZ +4315+07657 Asia/Alma-Ata east Kazakhstan KZ +5017+05710 Asia/Aqtobe central Kazakhstan KZ +4431+05016 Asia/Aqtau west Kazakhstan LA +1758+10236 Asia/Vientiane LB +3353+03530 Asia/Beirut LC +1401-06100 America/St_Lucia LI +4709+00931 Europe/Vaduz LK +0656+07951 Asia/Colombo LR +0618-01047 Africa/Monrovia LS -2928+02730 Africa/Maseru LT +5441+02519 Europe/Vilnius LU +4936+00609 Europe/Luxembourg LV +5657+02406 Europe/Riga LY +3254+01311 Africa/Tripoli MA +3339-00735 Africa/Casablanca MC +4342+00723 Europe/Monaco MD +4700+02850 Europe/Chisinau MG -1855+04731 Indian/Antananarivo MH +0709+17112 Pacific/Majuro most locations MH +0905+16720 Pacific/Kwajalein Kwajalein MK +4159+02126 Europe/Skopje ML +1239-00800 Africa/Bamako southwest Mali ML +1446-00301 Africa/Timbuktu northeast Mali MM +1647+09610 Asia/Rangoon MN +4755+10653 Asia/Ulan_Bator MO +2214+11335 Asia/Macao MP +1512+14545 Pacific/Saipan MQ +1436-06105 America/Martinique MR +1806-01557 Africa/Nouakchott MS +1644-06213 America/Montserrat MT +3554+01431 Europe/Malta MU -2010+05730 Indian/Mauritius MV +0410+07330 Indian/Maldives MW -1547+03500 Africa/Blantyre MX +1924-09909 America/Mexico_City Central Time MX +2313-10625 America/Mazatlan Mountain Time MX +3152-11637 America/Ensenada Pacific Time - most locations MX +3232-11701 America/Tijuana Pacific Time - north Baja California MY +0310+10142 Asia/Kuala_Lumpur peninsular Malaysia MY +0133+11020 Asia/Kuching Sabah & Sarawak MZ -2558+03235 Africa/Maputo NA -2234+01706 Africa/Windhoek NC -2216+16530 Pacific/Noumea NE +1331+00207 Africa/Niamey NF -2903+16758 Pacific/Norfolk NG +0627+00324 Africa/Lagos NI +1209-08617 America/Managua NL +5222+00454 Europe/Amsterdam NO +5955+01045 Europe/Oslo NP +2743+08519 Asia/Katmandu NR -0031+16655 Pacific/Nauru NU -1901+16955 Pacific/Niue NZ -3652+17446 Pacific/Auckland most locations NZ -4355+17630 Pacific/Chatham Chatham Island OM +2336+05835 Asia/Muscat PA +0858-07932 America/Panama PE -1203-07703 America/Lima PF -1732-14934 Pacific/Tahiti Society Islands PF -0900-13930 Pacific/Marquesas Marquesas Islands PF -2308-13457 Pacific/Gambier Gambier Islands PG -0930+14710 Pacific/Port_Moresby PH +1435+12100 Asia/Manila PK +2452+06703 Asia/Karachi PL +5215+02100 Europe/Warsaw PM +4703-05620 America/Miquelon PN -2504-13005 Pacific/Pitcairn PR +182806-0660622 America/Puerto_Rico PT +3843-00908 Europe/Lisbon mainland PT +3238-01654 Atlantic/Madeira Madeira Islands PT +3744-02540 Atlantic/Azores Azores PW +0720+13429 Pacific/Palau PY -2516-05740 America/Asuncion QA +2517+05132 Asia/Qatar RE -2052+05528 Indian/Reunion RO +4426+02606 Europe/Bucharest RU +5443+02030 Europe/Kaliningrad Moscow-01 - Kaliningrad RU +5545+03735 Europe/Moscow Moscow+00 - west Russia RU +5312+05009 Europe/Samara Moscow+01 - Caspian Sea RU +5651+06036 Asia/Yekaterinburg Moscow+02 - Urals RU +5500+07324 Asia/Omsk Moscow+03 - west Siberia RU +5502+08255 Asia/Novosibirsk Moscow+03 - Novosibirsk RU +5601+09250 Asia/Krasnoyarsk Moscow+04 - Yenisei River RU +5216+10420 Asia/Irkutsk Moscow+05 - Lake Baikal RU +6200+12940 Asia/Yakutsk Moscow+06 - Lena River RU +4310+13156 Asia/Vladivostok Moscow+07 - Amur River RU +5934+15048 Asia/Magadan Moscow+08 - Magadan & Sakhalin RU +5301+15839 Asia/Kamchatka Moscow+09 - Kamchatka RU +6445+17729 Asia/Anadyr Moscow+10 - Bering Sea RW -0157+03004 Africa/Kigali SA +2438+04643 Asia/Riyadh SB -0932+16012 Pacific/Guadalcanal SC -0440+05528 Indian/Mahe SD +1536+03232 Africa/Khartoum SE +5920+01803 Europe/Stockholm SG +0117+10351 Asia/Singapore SH -1555-00542 Atlantic/St_Helena SI +4603+01431 Europe/Ljubljana SJ +7800+01600 Arctic/Longyearbyen Svalbard SJ +7059-00805 Atlantic/Jan_Mayen Jan Mayen SK +4809+01707 Europe/Bratislava SL +0830-01315 Africa/Freetown SM +4355+01228 Europe/San_Marino SN +1440-01726 Africa/Dakar SO +0204+04522 Africa/Mogadishu SR +0550-05510 America/Paramaribo ST +0020+00644 Africa/Sao_Tome SV +1342-08912 America/El_Salvador SY +3330+03618 Asia/Damascus SZ -2618+03106 Africa/Mbabane TC +2128-07108 America/Grand_Turk TD +1207+01503 Africa/Ndjamena TF -492110+0701303 Indian/Kerguelen TG +0608+00113 Africa/Lome TH +1345+10031 Asia/Bangkok TJ +3835+06848 Asia/Dushanbe TK -0922-17114 Pacific/Fakaofo TM +3757+05823 Asia/Ashkhabad TN +3648+01011 Africa/Tunis TO -2110+17510 Pacific/Tongatapu TR +4101+02858 Europe/Istanbul TT +1039-06131 America/Port_of_Spain TV -0831+17913 Pacific/Funafuti TW +2503+12130 Asia/Taipei TZ -0648+03917 Africa/Dar_es_Salaam UA +5026+03031 Europe/Kiev most locations UA +4457+03406 Europe/Simferopol Crimea UG +0019+03225 Africa/Kampala UM +1700-16830 Pacific/Johnston Johnston Atoll UM +2813-17722 Pacific/Midway Midway Islands UM +1917+16637 Pacific/Wake Wake Island US +404251-0740023 America/New_York Eastern Time US +421953-0830245 America/Detroit Eastern Time - Michigan - most locations US +381515-0854534 America/Louisville Eastern Time - Louisville, Kentucky US +394606-0860929 America/Indianapolis Eastern Standard Time - Indiana - most locations US +382232-0862041 America/Indiana/Marengo Eastern Standard Time - Indiana - Crawford County US +411745-0863730 America/Indiana/Knox Eastern Standard Time - Indiana - Starke County US +384452-0850402 America/Indiana/Vevay Eastern Standard Time - Indiana - Switzerland County US +415100-0873900 America/Chicago Central Time US +450628-0873651 America/Menominee Central Time - Michigan - Wisconsin border US +394421-1045903 America/Denver Mountain Time US +433649-1161209 America/Boise Mountain Time - south Idaho & east Oregon US +364708-1084111 America/Shiprock Mountain Time - Navajo US +332654-1120424 America/Phoenix Mountain Standard Time - Arizona US +340308-1181434 America/Los_Angeles Pacific Time US +611305-1495401 America/Anchorage Alaska Time US +581807-1342511 America/Juneau Alaska Time - Alaska panhandle US +593249-1394338 America/Yakutat Alaska Time - Alaska panhandle neck US +643004-1652423 America/Nome Alaska Time - west Alaska US +515248-1763929 America/Adak Aleutian Islands US +211825-1575130 Pacific/Honolulu Hawaii UY -3453-05611 America/Montevideo UZ +4120+06918 Asia/Tashkent VA +4154+01227 Europe/Vatican VC +1309-06114 America/St_Vincent VE +1030-06656 America/Caracas VG +1827-06437 America/Tortola VI +1821-06456 America/St_Thomas VN +1045+10640 Asia/Saigon VU -1740+16825 Pacific/Efate WF -1318-17610 Pacific/Wallis WS -1350-17144 Pacific/Apia YE +1245+04512 Asia/Aden YT -1247+04514 Indian/Mayotte YU +4450+02030 Europe/Belgrade ZA -2615+02800 Africa/Johannesburg ZM -1525+02817 Africa/Lusaka ZW -1750+03103 Africa/Harare gcal-4.1/misc/ddiff/ddiff2.awk0000664000000000000000000001264612353314150013034 00000000000000# $Id: ddiff2.awk 0.05 2000/03/20 00:00:05 tom Exp $ # # ddiff2.awk: Creates a Gcal location resource file. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `ddiff' and a DOS batch `ddiff.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Define the default return values of this process. # EXIT_SUCCESS = 0 EXIT_FATAL = 2 # # Get possibly given command line arguments. # for (i=1 ; i < ARGC ; i++) { if (substr(ARGV[i], 1, 1) == "-") { if (substr(ARGV[i], 2, 1) == "a") a = substr(ARGV[i], 3) else exit EXIT_FATAL } else break delete ARGV[i] } # # Set the default value of some variables. # ndiff = 0 dndiff = 0 first_run = 0 full_time = 0 # # Create the file header of Gcal location resource file. # printf "; %s, day/night lengths and differences for Gcal-2.20 or newer\n;\n", a } # # Main block. # { if (length($3) > 7) full_time = 1 dh = substr($3, 1, 2) dm = substr($3, 4, 2) dt = dh * 3600 + dm * 60 if (full_time == 1) dt += substr($3, 7, 6) if (first_run == 0) { first_run = 1 cc = substr($2, 1, 2) location = substr($2, 4) printf "; Location: %s, %s\n", location, cc printf "; Co-ordinate: %s\n", $5 printf "; Created: %s, %s\n", $6, $7 printf "; \\\n" if (full_time == 1) { printf "YYYYMMDD day=d night=n location dnDiff delta DdMAX DdMIN\\\n" printf "-----------------------------------------------------------------------------------------------------------------\n" } else { printf "YYYYMMDD day=d night=n location dnDiff delta DdMAX DdMIN\\\n" printf "----------------------------------------------------------------------\n" } ddiff = dt } nh = substr($4, 1, 2) nm = substr($4, 4, 2) nt = nh * 3600 + nm * 60 if (full_time == 1) nt += substr($4, 7, 6) if (ndiff == 0) ndiff = nt diff = dt - nt if (dndiff == 0) dndiff = diff delta = diff - dndiff x = dmax - dt ddmaxh = int(x) / 3600 if (ddmaxh < 0) ddmaxh = -ddmaxh ddmaxm = ((int(x) % 3600) + (x - int(x))) / 60 if (ddmaxm < 0) ddmaxm = -ddmaxm x = dt - dmin ddminh = int(x) / 3600 if (ddminh < 0) ddminh = -ddminh ddminm = ((int(x) % 3600) + (x - int(x))) / 60 if (ddminm < 0) ddminm = -ddminm if (full_time == 1) { if (delta < 0) { delta_sign = "-" delta = -delta } else delta_sign = "+" delta_mins = ((int(delta) % 3600) + (delta - int(delta))) / 60 ddmaxs = (ddmaxm - int(ddmaxm)) * 60 ddmins = (ddminm - int(ddminm)) * 60 if (diff < 0) { diff_mins = ((int(-diff) % 3600) + (-diff - int(-diff))) / 60 printf "%s %s %s %-14s~-%02dh%02d'%06.3f\" %s%02dh%02d'%06.3f\" -%02dh%02d'%06.3f\" +%02dh%02d'%06.3f\"\n", \ substr($1, 1, 8), $3, $4, substr(location, 1, 14), -diff/3600, diff_mins, (diff_mins-int(diff_mins))*60, delta_sign, delta/3600, delta_mins, (delta_mins-int(delta_mins))*60, ddmaxh, ddmaxm, ddmaxs, ddminh, ddminm, ddmins } else { diff_mins = ((int(diff) % 3600) + (diff - int(diff))) / 60 printf "%s %s %s %-14s~+%02dh%02d'%06.3f\" %s%02dh%02d'%06.3f\" -%02dh%02d'%06.3f\" +%02dh%02d'%06.3f\"\n", \ substr($1, 1, 8), $3, $4, substr(location, 1, 14), diff/3600, diff_mins, (diff_mins-int(diff_mins))*60, delta_sign, delta/3600, delta_mins, (delta_mins-int(delta_mins))*60, ddmaxh, ddmaxm, ddmaxs, ddminh, ddminm, ddmins } } else { if (diff < 0) printf "%s %s %s %-14s -%02dh%02d' %+05d' -%02dh%02d' +%02dh%02d'\n", \ substr($1, 1, 8), $3, $4, substr(location, 1, 14), -diff/3600, (-diff%3600)/60, delta/60, ddmaxh, ddmaxm, ddminh, ddminm else printf "%s %s %s %-14s +%02dh%02d' %+05d' -%02dh%02d' +%02dh%02d'\n", \ substr($1, 1, 8), $3, $4, substr(location, 1, 14), diff/3600, (diff%3600)/60, delta/60, ddmaxh, ddmaxm, ddminh, ddminm } ddiff = dt ndiff = nt dndiff = diff } END { exit EXIT_SUCCESS } gcal-4.1/misc/ddiff/ddiff1.pl0000664000000000000000000000417312353314150012660 00000000000000# $Id: ddiff1.pl 0.03 2000/03/20 00:00:03 tom Exp $ # # ddiff1.pl: Computes the minimum and maximum day lengths of a # definite location and prints these values, assigned # to variables, as the beginning of an AWK script, # which is used to create a Gcal location resource file. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `ddiff' and a DOS batch `ddiff.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # $[ = 1; # set array base to 1 $dmin = 99999; $dmax = 0; # # Main block. # while (<>) { chop; # strip record separator @Fld = split(/[ \n]/, $_, 9999); $t = substr($Fld[3], 1, 2) * 3600 + substr($Fld[3], 4, 2) * 60; if (length($Fld[3]) > 7) { $t += substr($Fld[3], 7, 6); } if ($dmax < $t) { $dmax = $t; } if ($dmin > $t) { $dmin = $t; } } printf "\$dmin = %f;\n\$dmax = %f;\n", $dmin, $dmax; gcal-4.1/misc/ddiff/ddiff1.awk0000664000000000000000000000375212353314150013031 00000000000000# $Id: ddiff1.awk 0.03 2000/03/20 00:00:03 tom Exp $ # # ddiff1.awk: Computes the minimum and maximum day lengths of a # definite location and prints these values, assigned # to variables, as the beginning of an AWK script, # which is used to create a Gcal location resource file. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `ddiff' and a DOS batch `ddiff.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # BEGIN { dmin = 99999 dmax = 0 } # # Main block. # { t = substr($3, 1, 2) * 3600 + substr($3, 4, 2) * 60 if (length($3) > 7) t += substr($3, 7, 6) if (dmax < t) dmax = t if (dmin > t) dmin = t } END { printf "BEGIN {\n dmin = %f;\n dmax = %f;\n", dmin, dmax } gcal-4.1/misc/ddiff/ddiff.@0000664000000000000000000000032412244130561012336 00000000000000; `gcal' response file `ddiff.@' --- Created 20-Mar-2000 11:21:17 MET ; --date-format=%>04*Y%>02*M%>02*D%1%2 -#0*d1#999_$l_%u$c_d_%z$c_n_$c_%>04*Y$y@t_-%>02*M$y@t_-%>02*D$y@t__%t_%= -fNUL: -Hno -Qxy -u --precise gcal-4.1/misc/ddiff/ddiffdrv.in0000664000000000000000000003214112353314150013302 00000000000000#! /bin/sh # # @configure_input@ # # $Id: ddiffdrv.in 0.06 2000/03/24 00:00:06 tom Exp $ # # ddiffdrv.in: First step: # Uses `ddiffdrv.rc' or any other Gcal location pool # resource file for creating all Gcal location response # files which can be generated from that file. # If no Gcal location pool resource file exists, this # script tries to create the `ddiffdrv.rc' file by # processing the ZONE file `zone.tab' by means of # AWK/Perl and the `ddiffdrv[.awk|.pl]' script. # A Gcal location response file is a Gcal response file # consisting of one line, which passes the location name # LOC, its country code CC, and the ISO-6709-co-ordinate # COORD via text variables to Gcal. The line template of # a Gcal location response file is: # -r$l=CC-LOC:$c=COORD # Second step (only if the `--create' option is given): # Creation of all Gcal location resource files, which # contain the day/night lengths and differences for all # days of the year YYYY for the location. # Third step (also only if the `--create' option is given): # Creation of the Gcal include file `ddiff.rc', which # contains include statements of all Gcal location # resource files created. # # Usage: ddiffdrv --help | --version # Usage: ddiffdrv [--debug] [--create] # [--precise] [--year=YYYY] # [LOCATION-POOL-RESOURCE-FILE without `.rc' suffix] # # `--debug': Turn on shell debugging. # `--create': Automatical creation of all Gcal location # resource files and the `ddiff.rc' include # file. # `--precise': Use more precise time values. # `--year=YYYY': Create all Gcal location resource files for # the year YYYY, otherwise for the actual year. # # UN*X solution. # # Needs `test', `echo', `expr', `eval', `/bin/sh', `set', `sed', `rm', `gcal', # and `perl' or `awk' for processing! # # Returns 0 if processing was successfully. # Returns 1 in case an error occured while processing. # Returns 2 if neither Perl nor AWK are present for further processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Shell=/bin/sh Rm=rm Sed=sed Set=set Test=test Echo=echo Expr=expr # # Basically used texts. # packagedatamiscdir=@srcdir@ # PACKAGE=@PACKAGE@ VERSION=@VERSION@ transform=@program_transform_name@ # mydefaultname=ddiffdrv # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.06 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # pool=$packagedatamiscdir/zone.tab runscriptname=ddiff gcal_resource_file_suffix=.rc outfile1_created=no outfile1=$mydefaultname""$gcal_resource_file_suffix outfile2=$runscriptname""$gcal_resource_file_suffix # info01="$myname: Creates all Gcal location response files which can be generated" info02="$myname: from the Gcal location pool resource file \`./$outfile1'." info03="$myname: By definition, a Gcal location response file is a text file of" info04="$myname: one line with a \`-r\$l=CC-LOCATION:\$c=COORDINATE' contents." info05="$myname: If no Gcal location pool resource file exists, this script tries" info06="$myname: to create the \`./$outfile1' file by processing the ZONE file" info07="$myname: \`$pool'." info08="$myname: Then, all Gcal location resource files are created, which " info09="$myname: contain the day/night lengths and differences for all days" info10="$myname: of the year YYYY for the location. At last, the Gcal include" info11="$myname: file \`$outfile2' is created, which contains include statements" info12="$myname: of all Gcal location resource files. These last two steps are" info13="$myname: done only if the \`--create' option is given!" info14="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--create] [--precise] [--year=YYYY] [LOCATION-POOL-RESOURCE-FILE]" usage3="usage: $myname without LOCATION-POOL-RESOURCE-FILE uses file \`./$outfile1' by default" # # Some constant values (EXIT_SUCCESS(==0) and EXIT_FATAL(==2) # are also returned by the processed AWK/Perl script. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval ThisGcal=../../src/@PACKAGE@ # Awk=@AWK@ Awk_script=$mydefaultname"".awk # Perl=@PERL@ Perl_script=$mydefaultname"".pl # # Let's check for command line arguments. # debug="" create=no precise="" commands="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel | -he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info01" $Echo "$info02" $Echo "$info03" $Echo "$info04" $Echo "$info05" $Echo "$info06" $Echo "$info07" $Echo "$info08" $Echo "$info09" $Echo "$info10" $Echo "$info11" $Echo "$info12" $Echo "$info13" $Echo "$info14" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug="$optarg" shift ;; -create=* | -creat=* | -crea=* | -cre=* | -cr=* | -c=* | \ -create | -creat | -crea | -cre | -cr | -c | \ --create=* | --creat=* | --crea=* | --cre=* | --cr=* | --c=* | \ --create | --creat | --crea | --cre | --cr | --c) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi create=yes shift ;; -precise=* | -precis=* | -preci=* | -prec=* | -pre=* | -pr=* | -p=* | \ -precise | -precis | -preci | -prec | -pre | -pr | -p | \ --precise=* | --precis=* | --preci=* | --prec=* | --pre=* | --pr=* | --p=* | \ --precise | --precis | --preci | --prec | --pre | --pr | --p) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi precise="$optarg" shift ;; -year | -yea | -ye | -y | --year | --yea | --ye | --y) previous=year ;; -year=* | -yea=* | -ye=* | -y=* | --year=* | --yea=* | --ye=* | --y=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_year="$optarg" shift ;; -* | /*) $Echo "$myname: error: $option: invalid option, use --help to show usage" 1>&2 exit $EXIT_FAILURE ;; *) if $Test -z "$commands"; then commands="$option" else commands="$commands $option" fi esac done if $Test -n "$previous"; then $Echo "$myname: error: missing argument to --$previous" 1>&2 exit $EXIT_FAILURE fi # # Get the number of commands given and assign them to the local variables. # cmd_number=0 cmd_1="" for cmd in $commands do if $Test -z "$cmd_1"; then cmd_1="$cmd" fi cmd_number=`$Expr $cmd_number + 1` done # # Enable tracing. # if $Test -n "$debug"; then $Set -x else trap "$Rm -f $outfile1 $outfile2;exit $EXIT_FAILURE" 1 2 15 fi # # Let's start processing now. # if $Test -n "$Awk" || $Test -n "$Perl"; then if $Test "$#" -gt 1; then $Echo "$info01" $Echo "$info02" $Echo "$info03" $Echo "$info04" $Echo "$info05" $Echo "$info06" $Echo "$info07" $Echo "$info08" $Echo "$info09" $Echo "$info10" $Echo "$info11" $Echo "$info12" $Echo "$info13" $Echo "$info14" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_FAILURE else gcal_year="" if $Test -n "$opt_year"; then arg=`$Echo "$opt_year" | $Sed -e 's/[0-9]//g'` if $Test -n "$arg"; then $Echo "$myname: error: invalid option argument \`$opt_year' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE else gcal_year="--year=$opt_year" fi fi if $Test "$cmd_number" -eq 1 && $Test -s "$cmd_1"; then outfile1="$cmd_1" else if $Test ! -s "$outfile1"; then # if $Test ! -s "$pool"; then $Echo "$myname: error: file \`$pool' is missing" 1>&2 exit $EXIT_FAILURE fi # # We prefer the use of Perl. # if $Test -n "$Perl"; then if $Test ! -s "$packagedatamiscdir/$Perl_script"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Perl_script' is missing" 1>&2 exit $EXIT_FAILURE fi $Echo "$myname: creating the Gcal location pool resource file \`$outfile1', please wait..." $Perl -- $packagedatamiscdir/$Perl_script -a0 -b$outfile1 -c$myname $pool > $outfile1 else if $Test ! -s "$packagedatamiscdir/$Awk_script"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Awk_script' is missing" 1>&2 exit $EXIT_FAILURE fi $Echo "$myname: creating the Gcal location pool resource file \`$outfile1', please wait..." $Awk -f $packagedatamiscdir/$Awk_script -- -a0 -b$outfile1 -c$myname $pool > $outfile1 fi status=$? if $Test "$status" -eq "$EXIT_FATAL"; then if $Test -n "$Perl"; then $Echo "$myinternalname: error: invalid option to \`$Perl' given" 1>&2 else $Echo "$myinternalname: error: invalid option to \`$Awk' given" 1>&2 fi if $Test -z "$debug"; then $Rm -f $outfile1 fi exit $status else outfile1_created=yes fi fi fi fi # $Echo "$myname: generating all Gcal location response files, please wait..." if $Test "$outfile1_created" = yes; then $ThisGcal --execute -f ./$outfile1 -QUx --translate-string=\\_ else $ThisGcal --execute -f $outfile1 -QUx --translate-string=\\_ fi if $Test "$create" = yes; then # # Create all Gcal location resource files. # for file in ??-*; do $Shell $runscriptname $debug $precise $gcal_year ./$file done # # Create the Gcal include file. # $Echo "$myname: creating the Gcal include file \`$outfile2', please wait..." $Echo "; $outfile2, includes the locations for Gcal-2.20 or newer" > $outfile2 $Echo ";" >> $outfile2 for file in ??-*$gcal_resource_file_suffix; do $Echo "#include \"$file\"" >> $outfile2 done fi exit $EXIT_SUCCESS else $Echo "$myinternalname: error: neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/ddiff/ddiff0000664000000000000000000002672013041163626012174 00000000000000#! /bin/sh # # misc/ddiff/ddiff. Generated from ddiff.in by configure. # # $Id: ddiff.in 0.06 2000/03/24 00:00:06 tom Exp $ # # ddiff.in: Uses `ddiff1[.awk|.pl]' and `ddiff2[.awk|.pl]' for creating # a Gcal location resource file which contains the day/night # lengths and differences for all days of the year YYYY for # a definite location. # A Gcal location response file is a Gcal response file # consisting of one line, which passes the location name # LOC, its country code CC, and the ISO-6709-co-ordinate # COORD via text variables to Gcal. The line template of # a Gcal location response file is: -r$l=CC-LOC:$c=COORD # # Usage: ddiff --help | --version # Usage: ddiff [--debug] [--precise] # [--year=YYYY] LOCATION-RESPONSE-FILE # Usage: ddiff [--debug] [--precise] # [--year=YYYY] CC LOCATION-NAME ISO-COORDINATE # # `--debug': Turn on shell debugging. # `--precise': Use more precise time values. # `--year=YYYY': Create the Gcal location resource file for the # year YYYY, otherwise for the actual year. # # UN*X solution. # # Needs `test', `echo', `expr', `eval', `set', `sed', `cat', `rm', `gcal' # and `perl' or `awk' for processing! # # Returns 0 if processing was successfully. # Returns 1 in case an error occured while processing. # Returns 2 if neither Perl nor AWK are present for further processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Rm=rm Cat=cat Sed=sed Set=set Test=test Echo=echo Expr=expr # # Basically used texts. # packagedatamiscdir=. # PACKAGE=gcal VERSION=4.1 transform=s,x,x, # mydefaultname=ddiff # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.06 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # gcal_resource_file_suffix=.rc # info1="$myname: Creates a Gcal location resource file which contains the" info2="$myname: day/night lengths and differences for all days of the year" info3="$myname: YYYY for a definite location." info4="$myname: By definition, a Gcal location response file is a text file of" info5="$myname: one line with a \`-r\$l=CC-LOCATION:\$c=COORDINATE' contents." info6="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--precise] [--year=YYYY] LOCATION-RESPONSE-FILE" usage3="usage: $myname [--debug] [--precise] [--year=YYYY] CC LOCATION-NAME ISO-COORDINATE" # # Some constant values (EXIT_SUCCESS(==0) and EXIT_FATAL(==2) # are also returned by the processed AWK/Perl script. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval ThisGcal=../../src/gcal # Awk=gawk Awk_script1=$mydefaultname""1.awk Awk_script2=$mydefaultname""2.awk # Perl=perl Perl_script1=$mydefaultname""1.pl Perl_script2=$mydefaultname""2.pl # # Let's check for command line arguments. # debug=no precise="" opt_year="" commands="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel | -he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$info5" $Echo "$info6" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -precise=* | -precis=* | -preci=* | -prec=* | -pre=* | -pr=* | -p=* | \ -precise | -precis | -preci | -prec | -pre | -pr | -p | \ --precise=* | --precis=* | --preci=* | --prec=* | --pre=* | --pr=* | --p=* | \ --precise | --precis | --preci | --prec | --pre | --pr | --p) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi precise="--precise" shift ;; -year | -yea | -ye | -y | --year | --yea | --ye | --y) previous=year ;; -year=* | -yea=* | -ye=* | -y=* | --year=* | --yea=* | --ye=* | --y=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_year="$optarg" shift ;; -* | /*) $Echo "$myname: error: $option: invalid option, use --help to show usage" 1>&2 exit $EXIT_FAILURE ;; *) if $Test -z "$commands"; then commands="$option" else commands="$commands $option" fi esac done if $Test -n "$previous"; then $Echo "$myname: error: missing argument to --$previous" 1>&2 exit $EXIT_FAILURE fi # # Get the number of commands given and assign them to the local variables. # cmd_number=0 cmd_1="" cmd_2="" cmd_3="" for cmd in $commands do if $Test -z "$cmd_1"; then cmd_1="$cmd" else if $Test -z "$cmd_2"; then cmd_2="$cmd" else if $Test -z "$cmd_3"; then cmd_3="$cmd" fi fi fi cmd_number=`$Expr $cmd_number + 1` done # # Enable tracing. # if $Test "$debug" = yes; then $Set -x fi # # Let's start processing now. # if $Test -n "$Awk" || $Test -n "$Perl"; then if $Test "$cmd_number" -eq 0 || $Test "$cmd_number" -eq 2 || $Test "$cmd_number" -gt 3; then $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$info5" $Echo "$info6" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_FAILURE else gcal_year="" if $Test -n "$opt_year"; then arg=`$Echo "$opt_year" | $Sed -e 's/[0-9]//g'` if $Test -n "$arg"; then $Echo "$myname: error: invalid option argument \`$opt_year' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE else gcal_year="-u $opt_year""+""$opt_year" fi fi if $Test "$cmd_number" -eq 1; then if $Test -s "$cmd_1"; then outfile="$cmd_1""$gcal_resource_file_suffix" else $Echo "$myname: error: LOCATION-RESPONSE-FILE \`$cmd_1' is missing" 1>&2 exit $EXIT_FAILURE fi gcal_option="@""$cmd_1" else gcal_option="-r\$l=$cmd_1"-"$cmd_2":\$c="$cmd_3" outfile=`$Echo "$cmd_1"-"$cmd_2""$gcal_resource_file_suffix" | \ $Sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` fi # if $Test -n "$Perl"; then if $Test ! -s "$packagedatamiscdir/$Perl_script1"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Perl_script1' is missing" 1>&2 exit $EXIT_FAILURE fi if $Test ! -s "$packagedatamiscdir/$Perl_script2"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Perl_script2' is missing" 1>&2 exit $EXIT_FAILURE fi else if $Test ! -s "$packagedatamiscdir/$Awk_script1"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Awk_script1' is missing" 1>&2 exit $EXIT_FAILURE fi if $Test ! -s "$packagedatamiscdir/$Awk_script2"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Awk_script2' is missing" 1>&2 exit $EXIT_FAILURE fi fi # # Let's set some default directories first. # tmpdir=/tmp # # Respect a $TMPDIR or a $TMP environment variable. # if $Test -n "$TMPDIR"; then tmpdir="$TMPDIR" else if $Test -n "$TMP"; then tmpdir="$TMP" fi fi # tmpdir=`$Echo "$tmpdir" | $Sed -e 's,/\$,,'` # tmpfile1="$tmpdir"/1-"$$" tmpfile2="$tmpdir"/2-"$$" tmpfile3="$tmpdir"/3-"$$" # if $Test "$debug" = no; then trap "$Rm -f $outfile $tmpfile1 $tmpfile2 $tmpfile3;exit $EXIT_FAILURE" 1 2 15 fi # $Echo "$myname: creating the Gcal location resource file \`$outfile', please wait..." $ThisGcal -f/dev/null -QUx '-#0 -r$y=%:04*Y' > $tmpfile1 $ThisGcal $gcal_option \ @$tmpfile1 \ '--date-format=%>04*Y%>02*M%>02*D%1%2' \ '-#0*d1#999 $l %u$c d %z$c n $c %>04*Y$y@t -%>02*M$y@t -%>02*D$y@t %t %=' \ -f/dev/null -Qxy -Hno $precise $gcal_year > $tmpfile2 # # We prefer the use of Perl. # if $Test -n "$Perl"; then $Perl $packagedatamiscdir/$Perl_script1 $tmpfile2 > $tmpfile3 $Cat $packagedatamiscdir/$Perl_script2 >> $tmpfile3 $Perl -- $tmpfile3 -a$outfile $tmpfile2 > $outfile else $Awk -f $packagedatamiscdir/$Awk_script1 $tmpfile2 > $tmpfile3 $Cat $packagedatamiscdir/$Awk_script2 >> $tmpfile3 $Awk -f $tmpfile3 -- -a$outfile $tmpfile2 > $outfile fi status=$? if $Test "$debug" = no; then $Rm -f $tmpfile1 $tmpfile2 $tmpfile3 fi if $Test "$status" -eq "$EXIT_FATAL"; then if $Test -n "$Perl"; then $Echo "$myinternalname: error: invalid option to \`$Perl' given" 1>&2 else $Echo "$myinternalname: error: invalid option to \`$Awk' given" 1>&2 fi if $Test "$debug" = no; then $Rm -f $outfile fi exit $status fi fi exit $EXIT_SUCCESS else $Echo "$myinternalname: error: neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/ddiff/ddiffdrv.awk0000664000000000000000000000624212353314150013461 00000000000000# $Id: ddiffdrv.awk 0.05 2000/01/12 00:00:05 tom Exp $ # # ddiffdrv.awk: Processes the ZONE file `zone.tab' and creates # Gcal location response files. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `ddiffdrv' and a DOS batch `ddiffdrv.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # BEGIN { # # Define the default return values of this process. # EXIT_SUCCESS = 0 EXIT_FATAL = 2 # # Get possibly given command line arguments. # for (i=1 ; i < ARGC ; i++) { if (substr(ARGV[i], 1, 1) == "-") { if (substr(ARGV[i], 2, 1) == "a") a = substr(ARGV[i], 3) else if (substr(ARGV[i], 2, 1) == "b") b = substr(ARGV[i], 3) else if (substr(ARGV[i], 2, 1) == "c") c = substr(ARGV[i], 3) else exit EXIT_FATAL } else break delete ARGV[i] } printf "; %s, location names and coordinates for Gcal-2.20 or newer\n;\n", b printf "; The line template.\n;\n" if (a == 0) printf "$x=0 %s: Gcal location response file `$<1l*l' created...%%!echo -r'\\$c=$c:\\$l=$l' > $<1l*l\n", c else printf "$x=0 %s: Gcal location response file `$<8l#l' created...%%!echo -r\\$c=$c:\\$l=$l> $<8l#l\n", c printf ";\n; The locations.\n" } # # Main block. # { if (substr($0, 1, 1) != "#" && $0 != "") { location = $3 len = length(location) for (i=1 ; i <= len ; i++) { if (substr(location, i, 1) == "/") { len -= i location = substr(location, i+1, len) i = 1 } } loc = "" len = length(location) for (i=1 ; i <= len ; i++) { if (substr(location, i, 1) == "_") loc = loc "\\" loc = loc substr(location, i, 1) } printf ";\n; Location %s, %s\n;\n$l=%s-%s\n$c=%s\n$x\n", \ location, $1, $1, loc, $2 } } END { exit EXIT_SUCCESS } gcal-4.1/misc/ddiff/ddiffdrv.bat0000664000000000000000000001631612353314150013450 00000000000000@echo off :: $Id: ddiffdrv.bat 0.04 2000/01/12 00:00:04 tom Exp $ :: :: ddiffdrv.bat: First step: :: Uses `ddiffdrv.rc' or any other Gcal location pool :: resource file for creating all Gcal location response :: files which can be generated from that file. :: If no Gcal location pool resource file exists, this :: script tries to create the `ddiffdrv.rc' file by :: processing the ZONE file `zone.tab' by means of GAWK :: and the `ddiffdrv.awk' script. :: A Gcal location response file is a Gcal response file :: consisting of one line, which passes the location name :: LOC, its country code CC, and the ISO-6709-co-ordinate :: COORD via text variables to Gcal. The line template of :: a Gcal location response file is: :: -r$l=CC-LOC:$c=COORD :: Second step (only if the `--create' option is given): :: Creation of all Gcal location resource files, which :: contain the day/night lengths and differences for all :: days of the year YYYY for the location. :: Third step (only if the `--create' option is given): :: Creation of the Gcal include file `ddiff.rc', which :: contains include statements of all Gcal location :: resource files created. :: :: Usage: ddiffdrv --help :: Usage: ddiffdrv [--create] [YYYY] [-- LOCATION-POOL-RESOURCE-FILE] :: :: MS-DOS solution. :: :: Needs `gcal' and `gawk' for processing! :: :: Copyright (c) 2000 Thomas Esken :: Im Hagenfeld 84 :: D-48147 M"unster :: GERMANY :: :: This software doesn't claim completeness, correctness or usability. :: On principle I will not be liable for ANY damages or losses (implicit :: or explicit), which result from using or handling my software. :: If you use this software, you agree without any exception to this :: agreement, which binds you LEGALLY !! :: :: This program is free software; you can redistribute it and/or modify :: it under the terms of the `GNU General Public License' as published by :: the `Free Software Foundation'; either version 3, or (at your option) :: any later version. :: :: You should have received a copy of the `GNU General Public License' :: along with this program; if not, write to the: :: :: :: :: Basically used programs, set these environment variables properly! :: set _=gcal set oldgcalpath=%gcalpath% set gcalpath=. set -=gawk set oldawkpath=%awkpath% set awkpath=.;c:\dos :: :: Generic file names, set these environment variables properly! :: set myname=%0 set mydefaultname=ddiffdrv :: :: Script file name, set this environment variable properly! :: set runscriptname=ddiff :: :: Input file names, set these environment variables properly! :: set pool=zone.tab set awkscript=%mydefaultname%.awk :: :: Output file names, set these environment variables properly! :: set gcalrcsuffix=.rc set outfile1=%mydefaultname%%gcalrcsuffix% set outfile2=%runscriptname%%gcalrcsuffix% :: set create=no :: if %1"" == "" goto default if %1 == --help goto usage if %1 == --HELP goto usage if %1 == --hel goto usage if %1 == --HEL goto usage if %1 == --he goto usage if %1 == --HE goto usage if %1 == --h goto usage if %1 == --H goto usage if %1 == -h goto usage if %1 == -H goto usage if %1 == /h goto usage if %1 == /H goto usage if %1 == -? goto usage if %1 == /? goto usage if %1 == ? goto usage :: if %1 == -- goto option2 if ""%2 == "" goto option1 if %2 == -- goto option3 if ""%3 == "" goto option2a if %3 == -- goto option4 goto usage :: :option4 if ""%4 == "" goto usage if %1 == --create set create=yes if %create% == yes shift set gcalyear=%1 shift if %1 == --create set create=yes if %create% == no goto usage shift shift if exist %1 goto setofn goto default :: :option3 if ""%3 == "" goto usage if %1 == --create set create=yes if %create% == yes goto option3a set gcalyear=%1 :option3a shift shift if exist %1 goto setofn goto default :: :option2 if ""%2 == "" goto usage shift if exist %1 goto setofn goto default :: :option2a if %1 == --create set create=yes if %create% == yes shift set gcalyear=%1 shift if %1 == --create set create=yes if %create% == no goto usage goto default :: :option1 if %1 == --create goto setcreate set gcalyear=%1 goto default :: :setcreate set create=yes goto default :: :setofn set outfile1=%1 shift if ""%1 == "" goto start goto usage :: :default if exist %outfile1% goto start if exist %awkscript% goto next2 echo %myname%: error: file `%awkscript%' is missing goto eof :: :next2 if exist %pool% goto next3 echo %myname%: error: file `%pool%' is missing goto eof :: :next3 shift if ""%1 == "" goto next3a goto usage :next3a echo %myname%: creating the Gcal location pool resource file `%outfile1%', please wait... %-% -f %awkscript% -- -a1 -b%outfile1% -c%myname% %pool%> %outfile1% if errorlevel 2 goto msg2 :: :start echo %myname%: generating all Gcal location response files, please wait... %_% --execute -f%outfile1% -QUx --translate-string=\_ if %create% == no goto eof :: set myoldname=%myname% for %%f in (??-*.) do call %runscriptname% %gcalyear% %%f :: echo %myoldname%: creating the Gcal include file `%outfile2%', please wait... echo ; %outfile2%, includes the locations for Gcal-2.20 or newer> %outfile2% echo ;>> %outfile2% for %%f in (??-*.rc) do echo #include "%%f">> %outfile2% goto eof :: :msg2 echo %myname%: error: invalid option to `%-%' given del %outfile1%> NUL: goto eof :: :usage echo %myname%: Creates all Gcal location response files which can be generated echo %myname%: from the Gcal location pool resource file `%outfile1%'. echo %myname%: By definition, a Gcal location response file is a text file of echo %myname%: one line with a `-r$l=CC-LOCATION:$c=COORDINATE' contents. echo %myname%: If no Gcal location pool resource file exists, this script tries echo %myname%: to create the `%outfile1%' file by processing the ZONE file echo %myname%: `%pool%'. Then, all Gcal location resource files are created, echo %myname%: which contain the day/night lengths and differences for all days echo %myname%: of the year YYYY for the location. At last, the Gcal include echo %myname%: file `%outfile2%' is created, which contains include statements echo %myname%: of all Gcal location resource files. These last two steps are echo %myname%: done only if the `--create' option is given! echo %myname%: echo usage: %myname% [--create] [YYYY] [-- LOCATION-POOL-RESOURCE-FILE] echo usage: %myname% without LOCATION-POOL-RESOURCE-FILE uses file `%outfile1%' by default :: :eof :: set myoldname= set create= set gcalyear= set outfile2= set outfile1= set gcalrcsuffix= set awkscript= set pool= set runscriptname= set mydefaultname= set myname= set awkpath=%oldawkpath% set oldawkpath= set -= set gcalpath=%oldgcalpath% set oldgcalpath= set _= gcal-4.1/misc/ddiff/ddiffdrv0000664000000000000000000003214213041163626012703 00000000000000#! /bin/sh # # misc/ddiff/ddiffdrv. Generated from ddiffdrv.in by configure. # # $Id: ddiffdrv.in 0.06 2000/03/24 00:00:06 tom Exp $ # # ddiffdrv.in: First step: # Uses `ddiffdrv.rc' or any other Gcal location pool # resource file for creating all Gcal location response # files which can be generated from that file. # If no Gcal location pool resource file exists, this # script tries to create the `ddiffdrv.rc' file by # processing the ZONE file `zone.tab' by means of # AWK/Perl and the `ddiffdrv[.awk|.pl]' script. # A Gcal location response file is a Gcal response file # consisting of one line, which passes the location name # LOC, its country code CC, and the ISO-6709-co-ordinate # COORD via text variables to Gcal. The line template of # a Gcal location response file is: # -r$l=CC-LOC:$c=COORD # Second step (only if the `--create' option is given): # Creation of all Gcal location resource files, which # contain the day/night lengths and differences for all # days of the year YYYY for the location. # Third step (also only if the `--create' option is given): # Creation of the Gcal include file `ddiff.rc', which # contains include statements of all Gcal location # resource files created. # # Usage: ddiffdrv --help | --version # Usage: ddiffdrv [--debug] [--create] # [--precise] [--year=YYYY] # [LOCATION-POOL-RESOURCE-FILE without `.rc' suffix] # # `--debug': Turn on shell debugging. # `--create': Automatical creation of all Gcal location # resource files and the `ddiff.rc' include # file. # `--precise': Use more precise time values. # `--year=YYYY': Create all Gcal location resource files for # the year YYYY, otherwise for the actual year. # # UN*X solution. # # Needs `test', `echo', `expr', `eval', `/bin/sh', `set', `sed', `rm', `gcal', # and `perl' or `awk' for processing! # # Returns 0 if processing was successfully. # Returns 1 in case an error occured while processing. # Returns 2 if neither Perl nor AWK are present for further processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Shell=/bin/sh Rm=rm Sed=sed Set=set Test=test Echo=echo Expr=expr # # Basically used texts. # packagedatamiscdir=. # PACKAGE=gcal VERSION=4.1 transform=s,x,x, # mydefaultname=ddiffdrv # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.06 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # pool=$packagedatamiscdir/zone.tab runscriptname=ddiff gcal_resource_file_suffix=.rc outfile1_created=no outfile1=$mydefaultname""$gcal_resource_file_suffix outfile2=$runscriptname""$gcal_resource_file_suffix # info01="$myname: Creates all Gcal location response files which can be generated" info02="$myname: from the Gcal location pool resource file \`./$outfile1'." info03="$myname: By definition, a Gcal location response file is a text file of" info04="$myname: one line with a \`-r\$l=CC-LOCATION:\$c=COORDINATE' contents." info05="$myname: If no Gcal location pool resource file exists, this script tries" info06="$myname: to create the \`./$outfile1' file by processing the ZONE file" info07="$myname: \`$pool'." info08="$myname: Then, all Gcal location resource files are created, which " info09="$myname: contain the day/night lengths and differences for all days" info10="$myname: of the year YYYY for the location. At last, the Gcal include" info11="$myname: file \`$outfile2' is created, which contains include statements" info12="$myname: of all Gcal location resource files. These last two steps are" info13="$myname: done only if the \`--create' option is given!" info14="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--create] [--precise] [--year=YYYY] [LOCATION-POOL-RESOURCE-FILE]" usage3="usage: $myname without LOCATION-POOL-RESOURCE-FILE uses file \`./$outfile1' by default" # # Some constant values (EXIT_SUCCESS(==0) and EXIT_FATAL(==2) # are also returned by the processed AWK/Perl script. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval ThisGcal=../../src/gcal # Awk=gawk Awk_script=$mydefaultname"".awk # Perl=perl Perl_script=$mydefaultname"".pl # # Let's check for command line arguments. # debug="" create=no precise="" commands="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel | -he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info01" $Echo "$info02" $Echo "$info03" $Echo "$info04" $Echo "$info05" $Echo "$info06" $Echo "$info07" $Echo "$info08" $Echo "$info09" $Echo "$info10" $Echo "$info11" $Echo "$info12" $Echo "$info13" $Echo "$info14" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug="$optarg" shift ;; -create=* | -creat=* | -crea=* | -cre=* | -cr=* | -c=* | \ -create | -creat | -crea | -cre | -cr | -c | \ --create=* | --creat=* | --crea=* | --cre=* | --cr=* | --c=* | \ --create | --creat | --crea | --cre | --cr | --c) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi create=yes shift ;; -precise=* | -precis=* | -preci=* | -prec=* | -pre=* | -pr=* | -p=* | \ -precise | -precis | -preci | -prec | -pre | -pr | -p | \ --precise=* | --precis=* | --preci=* | --prec=* | --pre=* | --pr=* | --p=* | \ --precise | --precis | --preci | --prec | --pre | --pr | --p) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi precise="$optarg" shift ;; -year | -yea | -ye | -y | --year | --yea | --ye | --y) previous=year ;; -year=* | -yea=* | -ye=* | -y=* | --year=* | --yea=* | --ye=* | --y=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_year="$optarg" shift ;; -* | /*) $Echo "$myname: error: $option: invalid option, use --help to show usage" 1>&2 exit $EXIT_FAILURE ;; *) if $Test -z "$commands"; then commands="$option" else commands="$commands $option" fi esac done if $Test -n "$previous"; then $Echo "$myname: error: missing argument to --$previous" 1>&2 exit $EXIT_FAILURE fi # # Get the number of commands given and assign them to the local variables. # cmd_number=0 cmd_1="" for cmd in $commands do if $Test -z "$cmd_1"; then cmd_1="$cmd" fi cmd_number=`$Expr $cmd_number + 1` done # # Enable tracing. # if $Test -n "$debug"; then $Set -x else trap "$Rm -f $outfile1 $outfile2;exit $EXIT_FAILURE" 1 2 15 fi # # Let's start processing now. # if $Test -n "$Awk" || $Test -n "$Perl"; then if $Test "$#" -gt 1; then $Echo "$info01" $Echo "$info02" $Echo "$info03" $Echo "$info04" $Echo "$info05" $Echo "$info06" $Echo "$info07" $Echo "$info08" $Echo "$info09" $Echo "$info10" $Echo "$info11" $Echo "$info12" $Echo "$info13" $Echo "$info14" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_FAILURE else gcal_year="" if $Test -n "$opt_year"; then arg=`$Echo "$opt_year" | $Sed -e 's/[0-9]//g'` if $Test -n "$arg"; then $Echo "$myname: error: invalid option argument \`$opt_year' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE else gcal_year="--year=$opt_year" fi fi if $Test "$cmd_number" -eq 1 && $Test -s "$cmd_1"; then outfile1="$cmd_1" else if $Test ! -s "$outfile1"; then # if $Test ! -s "$pool"; then $Echo "$myname: error: file \`$pool' is missing" 1>&2 exit $EXIT_FAILURE fi # # We prefer the use of Perl. # if $Test -n "$Perl"; then if $Test ! -s "$packagedatamiscdir/$Perl_script"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Perl_script' is missing" 1>&2 exit $EXIT_FAILURE fi $Echo "$myname: creating the Gcal location pool resource file \`$outfile1', please wait..." $Perl -- $packagedatamiscdir/$Perl_script -a0 -b$outfile1 -c$myname $pool > $outfile1 else if $Test ! -s "$packagedatamiscdir/$Awk_script"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Awk_script' is missing" 1>&2 exit $EXIT_FAILURE fi $Echo "$myname: creating the Gcal location pool resource file \`$outfile1', please wait..." $Awk -f $packagedatamiscdir/$Awk_script -- -a0 -b$outfile1 -c$myname $pool > $outfile1 fi status=$? if $Test "$status" -eq "$EXIT_FATAL"; then if $Test -n "$Perl"; then $Echo "$myinternalname: error: invalid option to \`$Perl' given" 1>&2 else $Echo "$myinternalname: error: invalid option to \`$Awk' given" 1>&2 fi if $Test -z "$debug"; then $Rm -f $outfile1 fi exit $status else outfile1_created=yes fi fi fi fi # $Echo "$myname: generating all Gcal location response files, please wait..." if $Test "$outfile1_created" = yes; then $ThisGcal --execute -f ./$outfile1 -QUx --translate-string=\\_ else $ThisGcal --execute -f $outfile1 -QUx --translate-string=\\_ fi if $Test "$create" = yes; then # # Create all Gcal location resource files. # for file in ??-*; do $Shell $runscriptname $debug $precise $gcal_year ./$file done # # Create the Gcal include file. # $Echo "$myname: creating the Gcal include file \`$outfile2', please wait..." $Echo "; $outfile2, includes the locations for Gcal-2.20 or newer" > $outfile2 $Echo ";" >> $outfile2 for file in ??-*$gcal_resource_file_suffix; do $Echo "#include \"$file\"" >> $outfile2 done fi exit $EXIT_SUCCESS else $Echo "$myinternalname: error: neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/ddiff/ddiffdrv.pl0000664000000000000000000000632112353314150013310 00000000000000# $Id: ddiffdrv.pl 0.04 2000/01/12 00:00:04 tom Exp $ # # ddiffdrv.pl: Processes the ZONE file `zone.tab' and creates # Gcal location response files. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `ddiffdrv' and a DOS batch `ddiffdrv.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # $[ = 1; # set array base to 1 # # Define the default return values of this process. # $EXIT_SUCCESS = 0; $EXIT_FATAL = 2; # # Get possibly given command line arguments. # for ($i = 1; $i < ($#ARGV+1); $i++) { if (substr($ARGV[$i], 1, 1) eq '-') { if (substr($ARGV[$i], 2, 1) eq 'a') { $a = substr($ARGV[$i], 3, 999999); } elsif (substr($ARGV[$i], 2, 1) eq 'b') { $b = substr($ARGV[$i], 3, 999999); } elsif (substr($ARGV[$i], 2, 1) eq 'c') { $c = substr($ARGV[$i], 3, 999999); } else { exit $EXIT_FATAL; } } else { last; } shift; $i--; } printf "; %s, location names and coordinates for Gcal-2.20 or newer\n;\n", $b; printf "; The line template.\n;\n"; if ($a == 0) { printf "\$x=0 %s: Gcal location response file `\$<1l*l' created...%%!echo -r'\\\$c=\$c:\\\$l=\$l' > \$<1l*l\n", $c; } else { printf "\$x=0 %s: Gcal location response file `\$<8l#l' created...%%!echo -r\\\$c=\$c:\\\$l=\$l> \$<8l#l\n", $c; } printf ";\n; The locations.\n"; # # Main block. # line: while (<>) { chop; # strip record separator @Fld = split(' ', $_, 9999); if (substr($_, 1, 1) ne '#' && $_ ne '') { $location = $Fld[3]; $len = length($location); for ($i = 1; $i <= $len; $i++) { if (substr($location, $i, 1) eq '/') { $len -= $i; $location = substr($location, $i + 1, $len); $i = 1; } } $loc = ''; $len = length($location); for ($i = 1; $i <= $len; $i++) { if (substr($location, $i, 1) eq '_') { $loc = $loc . "\\"; } $loc = $loc . substr($location, $i, 1); } printf ";\n; Location %s, %s\n;\n\$l=%s-%s\n\$c=%s\n\$x\n", $location, $Fld[1], $Fld[1], $loc, $Fld[2]; } } exit $EXIT_SUCCESS; gcal-4.1/misc/ddiff/ddiff2.pl0000664000000000000000000001340512353314150012657 00000000000000# $Id: ddiff2.pl 0.05 2000/03/20 00:00:05 tom Exp $ # # ddiff2.pl: Creates a Gcal location resource file. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `ddiff' and a DOS batch `ddiff.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # $[ = 1; # set array base to 1 # # Define the default return values of this process. # $EXIT_SUCCESS = 0; $EXIT_FATAL = 2; # # Get possibly given command line arguments. # for ($i = 1; $i < ($#ARGV+1); $i++) { if (substr($ARGV[$i], 1, 1) eq '-') { if (substr($ARGV[$i], 2, 1) eq 'a') { $a = substr($ARGV[$i], 3, 999999); } else { exit $EXIT_FATAL; } } else { last; } shift; $i--; } # # Set the default value of some variables. # $ndiff = 0; $dndiff = 0; $first_run = 0; $full_time = 0; # # Create the file header of Gcal location resource file. # printf "; %s, day/night lengths and differences for Gcal-2.20 or newer\n;\n", $a; # # Main block. # line: while (<>) { chop; # strip record separator @Fld = split(/[ \n]/, $_, 9999); if (length($Fld[3]) > 7) { $full_time = 1; } $dh = substr($Fld[3], 1, 2); $dm = substr($Fld[3], 4, 2); $dt = $dh * 3600 + $dm * 60; if ($full_time == 1) { $dt += substr($Fld[3], 7, 6); } if ($first_run == 0) { $first_run = 1; $cc = substr($Fld[2], 1, 2); $location = substr($Fld[2], 4, 999999); printf "; Location: %s, %s\n", $location, $cc; printf "; Co-ordinate: %s\n", $Fld[5]; printf "; Created: %s, %s\n", $Fld[6], $Fld[7]; printf "; \\\n"; if ($full_time == 1) { printf "YYYYMMDD day=d night=n location dnDiff delta DdMAX DdMIN\\\n"; printf "-----------------------------------------------------------------------------------------------------------------\n"; } else { printf "YYYYMMDD day=d night=n location dnDiff delta DdMAX DdMIN\\\n"; printf "----------------------------------------------------------------------\n"; } $ddiff = $dt; } $nh = substr($Fld[4], 1, 2); $nm = substr($Fld[4], 4, 2); $nt = $nh * 3600 + $nm * 60; if ($full_time == 1) { $nt += substr($Fld[4], 7, 6); } if ($ndiff == 0) { $ndiff = $nt; } $diff = $dt - $nt; if ($dndiff == 0) { $dndiff = $diff; } $delta = $diff - $dndiff; $x = $dmax - $dt; $ddmaxh = int($x) / 3600; if ($ddmaxh < 0) { $ddmaxh = -$ddmaxh; } $ddmaxm = ((int($x) % 3600) + ($x - int($x))) / 60; if ($ddmaxm < 0) { $ddmaxm = -$ddmaxm; } $x = $dt - $dmin; $ddminh = int($x) / 3600; if ($ddminh < 0) { $ddminh = -$ddminh; } $ddminm = ((int($x) % 3600) + ($x - int($x))) / 60; if ($ddminm < 0) { $ddminm = -$ddminm; } if ($full_time == 1) { if ($delta < 0) { $delta_sign = '-'; $delta = -$delta; } else { $delta_sign = '+'; } $delta_mins = ((int($delta) % 3600) + ($delta - int($delta))) / 60; $ddmaxs = ($ddmaxm - int($ddmaxm)) * 60; $ddmins = ($ddminm - int($ddminm)) * 60; if ($diff < 0) { $diff_mins = ((int(-$diff) % 3600) + (-$diff - int(-$diff))) / 60; printf "%s %s %s %-14s~-%02dh%02d'%06.3f\" %s%02dh%02d'%06.3f\" -%02dh%02d'%06.3f\" +%02dh%02d'%06.3f\"\n", substr($Fld[1], 1, 8), $Fld[3], $Fld[4], substr($location, 1, 14), -$diff / 3600, $diff_mins, ($diff_mins - int($diff_mins)) * 60, $delta_sign, $delta / 3600, $delta_mins, ($delta_mins - int($delta_mins)) * 60, $ddmaxh, $ddmaxm, $ddmaxs, $ddminh, $ddminm, $ddmins; } else { $diff_mins = ((int($diff) % 3600) + ($diff - int($diff))) / 60; printf "%s %s %s %-14s~+%02dh%02d'%06.3f\" %s%02dh%02d'%06.3f\" -%02dh%02d'%06.3f\" +%02dh%02d'%06.3f\"\n", substr($Fld[1], 1, 8), $Fld[3], $Fld[4], substr($location, 1, 14), $diff / 3600, $diff_mins, ($diff_mins - int($diff_mins)) * 60, $delta_sign, $delta / 3600, $delta_mins, ($delta_mins - int($delta_mins)) * 60, $ddmaxh, $ddmaxm, $ddmaxs, $ddminh, $ddminm, $ddmins; } } else { if ($diff < 0) { printf "%s %s %s %-14s -%02dh%02d' %+05d' -%02dh%02d' +%02dh%02d'\n", substr($Fld[1], 1, 8), $Fld[3], $Fld[4], substr($location, 1, 14), -$diff / 3600, (int(-$diff) % 3600) / 60, $delta / 60, $ddmaxh, $ddmaxm, $ddminh, $ddminm; } else { printf "%s %s %s %-14s +%02dh%02d' %+05d' -%02dh%02d' +%02dh%02d'\n", substr($Fld[1], 1, 8), $Fld[3], $Fld[4], substr($location, 1, 14), $diff / 3600, (int($diff) % 3600) / 60, $delta / 60, $ddmaxh, $ddmaxm, $ddminh, $ddminm; } } $ddiff = $dt; $ndiff = $nt; $dndiff = $diff; } exit $EXIT_SUCCESS; gcal-4.1/misc/ddiff/ddiff.bat0000664000000000000000000001237112353314150012731 00000000000000@echo off :: $Id: ddiff.bat 0.04 2000/01/12 00:00:04 tom Exp $ :: :: ddiff.bat: Uses `ddiff1.awk', `ddiff2.awk' and `ddiff.@' for creating :: a Gcal location resource file which contains the day/night :: lengths and differences for all days of the year YYYY for :: a definite location. :: A Gcal location response file is a Gcal response file :: consisting of one line, which passes the location name :: LOC, its country code CC, and the ISO-6709-co-ordinate :: COORD via text variables to Gcal. The line template of :: a Gcal location response file is: -r$l=CC-LOC:$c=COORD :: :: Usage: ddiff --help :: Usage: ddiff [YYYY] LOCATION-RESPONSE-FILE :: Usage: ddiff [YYYY] CC LOCATION-NAME ISO-COORDINATE :: :: MS-DOS solution. :: :: Needs `gcal' and `gawk' for processing! :: :: Copyright (c) 2000 Thomas Esken :: Im Hagenfeld 84 :: D-48147 M"unster :: GERMANY :: :: This software doesn't claim completeness, correctness or usability. :: On principle I will not be liable for ANY damages or losses (implicit :: or explicit), which result from using or handling my software. :: If you use this software, you agree without any exception to this :: agreement, which binds you LEGALLY !! :: :: This program is free software; you can redistribute it and/or modify :: it under the terms of the `GNU General Public License' as published by :: the `Free Software Foundation'; either version 3, or (at your option) :: any later version. :: :: You should have received a copy of the `GNU General Public License' :: along with this program; if not, write to the: :: :: :: :: Basically used programs, set these environment variables properly! :: set _=gcal set oldgcalpath=%gcalpath% set gcalpath=. set -=gawk set oldawkpath=%awkpath% set awkpath=.;c:\dos :: :: Generic file names, set these environment variables properly! :: set myname=%0 set mydefaultname=ddiff :: :: Input file names, set these environment variables properly! :: set gcalresponse=%mydefaultname%.@ set awkscript1=%mydefaultname%1.awk set awkscript2=%mydefaultname%2.awk :: if ""%1 == "" goto usage if %1 == --help goto usage if %1 == --HELP goto usage if %1 == --hel goto usage if %1 == --HEL goto usage if %1 == --he goto usage if %1 == --HE goto usage if %1 == --h goto usage if %1 == --H goto usage if %1 == -h goto usage if %1 == -H goto usage if %1 == /h goto usage if %1 == /H goto usage if %1 == -? goto usage if %1 == /? goto usage if %1 == ? goto usage :: if exist %gcalresponse% goto next0 echo %myname%: error: file `%gcalresponse%' is missing goto eof :: :next0 if exist %awkscript1% goto next1 echo %myname%: error: file `%awkscript1%' is missing goto eof :: :next1 if exist %awkscript2% goto next2 echo %myname%: error: file `%awkscript2%' is missing goto eof :: :next2 if ""%2 == "" goto option1 if ""%3 == "" goto option2 if ""%4 == "" goto option3 if ""%5 == "" goto option4 goto usage :: :option4 set outfile=%2-%3.rc echo %myname%: creating the Gcal location resource file `%outfile%', please wait... %_% -fNUL: -QUx -#0_-r$y=%%:04*Y> $$$tmp0 %_% -r$l=%2-%3:$c=%4 @$$$tmp0 @%gcalresponse% %1+%1> $$$tmp1 goto start :: :option3 set outfile=%1-%2.rc echo %myname%: creating the Gcal location resource file `%outfile%', please wait... %_% -fNUL: -QUx -#0_-r$y=%%:04*Y> $$$tmp0 %_% -r$l=%1-%2:$c=%3 @$$$tmp0 @%gcalresponse%> $$$tmp1 goto start :: :option2 if exist %2 goto cont2 echo %myname%: error: LOCATION-RESPONSE-FILE `%2' is missing goto eof :: :cont2 set outfile=%2.rc echo %myname%: creating the Gcal location resource file `%outfile%', please wait... %_% -fNUL: -QUx -#0_-r$y=%%:04*Y> $$$tmp0 %_% @%2 @$$$tmp0 @%gcalresponse% %1+%1> $$$tmp1 goto start :: :option1 if exist %1 goto cont1 echo %myname%: error: LOCATION-RESPONSE-FILE `%1' is missing goto eof :: :cont1 set outfile=%1.rc echo %myname%: creating the Gcal location resource file `%outfile%', please wait... %_% -fNUL: -QUx -#0_-r$y=%%:04*Y> $$$tmp0 %_% @%1 @$$$tmp0 @%gcalresponse%> $$$tmp1 goto start :: :start %-% -f %awkscript1% $$$tmp1> $$$tmp2 type %awkscript2%>> $$$tmp2 %-% -f $$$tmp2 -- -a%outfile% $$$tmp1> %outfile% if errorlevel 2 goto msg2 goto delete :: :msg2 echo %myname%: error: invalid option to `%-%' given del %outfile%> NUL: :: :delete del $$$tmp?> NUL: goto eof :: :usage echo %myname%: Creates a Gcal location resource file which contains the echo %myname%: day/night lengths and differences for all days of the year echo %myname%: YYYY for a definite location. echo %myname%: By definition, a Gcal location response file is a text file of echo %myname%: one line with a `-r$l=CC-LOCATION:$c=COORDINATE' contents. echo %myname%: echo usage: %myname% [YYYY] LOCATION-RESPONSE-FILE echo usage: %myname% [YYYY] CC LOCATION-NAME ISO-COORDINATE :: :eof :: set outfile= set awkscript2= set awkscript1= set gcalresponse= set mydefaultname= set myname= set awkpath=%oldawkpath% set oldawkpath= set -= set gcalpath=%oldgcalpath% set oldgcalpath= set _= gcal-4.1/misc/Makefile.am0000664000000000000000000001071312353315047012151 00000000000000# GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . miscdailyDIR = daily# miscdailySCRIPTFILES = \ $(miscdailyDIR)/daily miscdailyDATAFILES = \ $(srcdir)/$(miscdailyDIR)/daily.awk \ $(srcdir)/$(miscdailyDIR)/daily.pl \ $(srcdir)/$(miscdailyDIR)/daily.rc miscdailyMISCFILES = \ $(srcdir)/$(miscdailyDIR)/daily.in \ $(srcdir)/$(miscdailyDIR)/daily.bat miscddiffDIR = ddiff# miscddiffSCRIPTFILES = \ $(miscddiffDIR)/ddiff \ $(miscddiffDIR)/ddiffdrv miscddiffDATAFILES = \ $(srcdir)/$(miscddiffDIR)/ddiff1.awk \ $(srcdir)/$(miscddiffDIR)/ddiff1.pl \ $(srcdir)/$(miscddiffDIR)/ddiff2.awk \ $(srcdir)/$(miscddiffDIR)/ddiff2.pl \ $(srcdir)/$(miscddiffDIR)/ddiffdrv.awk \ $(srcdir)/$(miscddiffDIR)/ddiffdrv.pl \ $(srcdir)/$(miscddiffDIR)/zone.tab miscddiffMISCFILES = \ $(srcdir)/$(miscddiffDIR)/ddiff.in \ $(srcdir)/$(miscddiffDIR)/ddiff.@ \ $(srcdir)/$(miscddiffDIR)/ddiff.bat \ $(srcdir)/$(miscddiffDIR)/ddiffdrv.in \ $(srcdir)/$(miscddiffDIR)/ddiffdrv.bat miscdstDIR = dst# miscdstSCRIPTFILES = \ $(miscdstDIR)/dst miscdstDATAFILES = \ $(srcdir)/$(miscdstDIR)/dst.awk \ $(srcdir)/$(miscdstDIR)/dst.pl miscdstMISCFILES = \ $(srcdir)/$(miscdstDIR)/dst.in miscgcalltxDIR = gcalltx# miscgcalltxSCRIPTFILES = \ $(miscgcalltxDIR)/gcalltx \ $(miscgcalltxDIR)/gcalltx.pl miscgcalltxDATAFILES = \ $(srcdir)/$(miscgcalltxDIR)/gcalltx.sed miscgcalltxMISCFILES = \ $(srcdir)/$(miscgcalltxDIR)/gcalltx.in \ $(srcdir)/$(miscgcalltxDIR)/gcalltx.bat \ $(srcdir)/$(miscgcalltxDIR)/gcalltxp.in miscmoonDIR = moon# miscmoonSCRIPTFILES = \ $(miscmoonDIR)/moon miscmoonDATAFILES = miscmoonMISCFILES = \ $(srcdir)/$(miscmoonDIR)/moon.in \ $(srcdir)/$(miscmoonDIR)/moon.bat \ $(srcdir)/$(miscmoonDIR)/moon1.awk \ $(srcdir)/$(miscmoonDIR)/moon2.awk miscmrmsDIR = mrms# miscmrmsSCRIPTFILES = \ $(miscmrmsDIR)/mrms miscmrmsDATAFILES = \ $(srcdir)/$(miscmrmsDIR)/mrms.awk \ $(srcdir)/$(miscmrmsDIR)/mrms.pl \ $(srcdir)/$(miscmrmsDIR)/mrms.rc miscmrmsMISCFILES = \ $(srcdir)/$(miscmrmsDIR)/mrms.in \ $(srcdir)/$(miscmrmsDIR)/mrms.bat miscsrssDIR = srss# miscsrssSCRIPTFILES = \ $(miscsrssDIR)/srss miscsrssDATAFILES = \ $(srcdir)/$(miscsrssDIR)/srss.awk \ $(srcdir)/$(miscsrssDIR)/srss.pl \ $(srcdir)/$(miscsrssDIR)/srss.rc miscsrssMISCFILES = \ $(srcdir)/$(miscsrssDIR)/srss.in \ $(srcdir)/$(miscsrssDIR)/srss.bat miscwlocDIR = wloc# miscwlocSCRIPTFILES = \ $(miscwlocDIR)/wlocdrv miscwlocDATAFILES = \ $(srcdir)/$(miscwlocDIR)/wlocdrv1.awk \ $(srcdir)/$(miscwlocDIR)/wlocdrv1.pl \ $(srcdir)/$(miscwlocDIR)/wlocdrv2.awk \ $(srcdir)/$(miscwlocDIR)/wlocdrv2.pl \ $(srcdir)/$(miscwlocDIR)/zone.tab miscwlocMISCFILES = \ $(srcdir)/$(miscwlocDIR)/wlocdrv.in \ $(srcdir)/$(miscwlocDIR)/wlocdrv.bat miscSCRIPTFILES = \ $(miscdailySCRIPTFILES) \ $(miscddiffSCRIPTFILES) \ $(miscdstSCRIPTFILES) \ $(miscgcalltxSCRIPTFILES) \ $(miscmoonSCRIPTFILES) \ $(miscmrmsSCRIPTFILES) \ $(miscsrssSCRIPTFILES) \ $(miscwlocSCRIPTFILES) miscDATAFILES = \ $(miscdailyDATAFILES) \ $(miscddiffDATAFILES) \ $(miscdstDATAFILES) \ $(miscgcalltxDATAFILES) \ $(miscmoonDATAFILES) \ $(miscmrmsDATAFILES) \ $(miscsrssDATAFILES) \ $(miscwlocDATAFILES) miscINFOFILES = \ $(srcdir)/README \ $(srcdir)/gcalmagic.add miscMISCFILES = \ $(miscdailyMISCFILES) \ $(miscddiffMISCFILES) \ $(miscdstMISCFILES) \ $(miscgcalltxMISCFILES) \ $(miscmoonMISCFILES) \ $(miscmrmsMISCFILES) \ $(miscsrssMISCFILES) \ $(miscwlocMISCFILES) \ $(srcdir)/locale.alias \ $(srcdir)/magic.add \ $(srcdir)/Makefile.in EXTRA_DIST = \ $(miscDATAFILES) \ $(miscINFOFILES) \ $(miscSCRIPTFILES) \ $(miscMISCFILES) gcalltx/gcalltx.pl: cp gcalltx/gcalltxp gcalltx/gcalltx.pl chmod u+x gcalltx/gcalltx.pl gcal-4.1/misc/Makefile.in0000664000000000000000000016513513041163550012166 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # GNU gcal # # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = misc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acos.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/asin.m4 \ $(top_srcdir)/m4/assert.m4 $(top_srcdir)/m4/atan.m4 \ $(top_srcdir)/m4/atan2.m4 $(top_srcdir)/m4/btowc.m4 \ $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/ceil.m4 \ $(top_srcdir)/m4/close.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/cond.m4 $(top_srcdir)/m4/configmake.m4 \ $(top_srcdir)/m4/cos.m4 $(top_srcdir)/m4/dirname.m4 \ $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/fatal-signal.m4 $(top_srcdir)/m4/fclose.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fflush.m4 \ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/floor.m4 \ $(top_srcdir)/m4/fopen.m4 $(top_srcdir)/m4/fpurge.m4 \ $(top_srcdir)/m4/freading.m4 $(top_srcdir)/m4/free.m4 \ $(top_srcdir)/m4/fseek.m4 $(top_srcdir)/m4/fseeko.m4 \ $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/ftell.m4 \ $(top_srcdir)/m4/ftello.m4 $(top_srcdir)/m4/getdtablesize.m4 \ $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/hard-locale.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/iconv_h.m4 $(top_srcdir)/m4/include_next.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/ioctl.m4 \ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/limits-h.m4 \ $(top_srcdir)/m4/link.m4 $(top_srcdir)/m4/localcharset.m4 \ $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ $(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/locale_h.m4 \ $(top_srcdir)/m4/localeconv.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/log.m4 $(top_srcdir)/m4/log10.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/math_h.m4 $(top_srcdir)/m4/mathfunc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \ $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mbtowc.m4 \ $(top_srcdir)/m4/memchr.m4 $(top_srcdir)/m4/mkostemp.m4 \ $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ $(top_srcdir)/m4/msvc-inval.m4 \ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open.m4 \ $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \ $(top_srcdir)/m4/pipe2.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/posix_spawn.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ $(top_srcdir)/m4/putenv.m4 $(top_srcdir)/m4/raise.m4 \ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/realloc.m4 \ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/sched_h.m4 \ $(top_srcdir)/m4/secure_getenv.m4 \ $(top_srcdir)/m4/sig_atomic_t.m4 $(top_srcdir)/m4/sigaction.m4 \ $(top_srcdir)/m4/signal_h.m4 \ $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sin.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/spawn-pipe.m4 \ $(top_srcdir)/m4/spawn_h.m4 $(top_srcdir)/m4/sqrt.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \ $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdbool.m4 \ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strcspn.m4 \ $(top_srcdir)/m4/strdup.m4 $(top_srcdir)/m4/strerror.m4 \ $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/string_h.m4 \ $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strstr.m4 \ $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/sys_ioctl_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ $(top_srcdir)/m4/sys_wait_h.m4 $(top_srcdir)/m4/tan.m4 \ $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/tmpdir.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/wait-process.m4 \ $(top_srcdir)/m4/waitpid.m4 $(top_srcdir)/m4/warn-on-use.m4 \ $(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ ACOS_LIBM = @ACOS_LIBM@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ ASIN_LIBM = @ASIN_LIBM@ ATAN2_LIBM = @ATAN2_LIBM@ ATAN_LIBM = @ATAN_LIBM@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CEIL_LIBM = @CEIL_LIBM@ CFLAGS = @CFLAGS@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ COS_LIBM = @COS_LIBM@ CP = @CP@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FLOAT_H = @FLOAT_H@ FLOOR_LIBM = @FLOOR_LIBM@ GCAL_HD_OBJS = @GCAL_HD_OBJS@ GCAL_RC_OBJS = @GCAL_RC_OBJS@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ACCEPT = @GNULIB_ACCEPT@ GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ GNULIB_ACOSF = @GNULIB_ACOSF@ GNULIB_ACOSL = @GNULIB_ACOSL@ GNULIB_ASINF = @GNULIB_ASINF@ GNULIB_ASINL = @GNULIB_ASINL@ GNULIB_ATAN2F = @GNULIB_ATAN2F@ GNULIB_ATANF = @GNULIB_ATANF@ GNULIB_ATANL = @GNULIB_ATANL@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BIND = @GNULIB_BIND@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CBRT = @GNULIB_CBRT@ GNULIB_CBRTF = @GNULIB_CBRTF@ GNULIB_CBRTL = @GNULIB_CBRTL@ GNULIB_CEIL = @GNULIB_CEIL@ GNULIB_CEILF = @GNULIB_CEILF@ GNULIB_CEILL = @GNULIB_CEILL@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_CONNECT = @GNULIB_CONNECT@ GNULIB_COPYSIGN = @GNULIB_COPYSIGN@ GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@ GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@ GNULIB_COSF = @GNULIB_COSF@ GNULIB_COSHF = @GNULIB_COSHF@ GNULIB_COSL = @GNULIB_COSL@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_EXP2 = @GNULIB_EXP2@ GNULIB_EXP2F = @GNULIB_EXP2F@ GNULIB_EXP2L = @GNULIB_EXP2L@ GNULIB_EXPF = @GNULIB_EXPF@ GNULIB_EXPL = @GNULIB_EXPL@ GNULIB_EXPM1 = @GNULIB_EXPM1@ GNULIB_EXPM1F = @GNULIB_EXPM1F@ GNULIB_EXPM1L = @GNULIB_EXPM1L@ GNULIB_FABSF = @GNULIB_FABSF@ GNULIB_FABSL = @GNULIB_FABSL@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFS = @GNULIB_FFS@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FLOOR = @GNULIB_FLOOR@ GNULIB_FLOORF = @GNULIB_FLOORF@ GNULIB_FLOORL = @GNULIB_FLOORL@ GNULIB_FMA = @GNULIB_FMA@ GNULIB_FMAF = @GNULIB_FMAF@ GNULIB_FMAL = @GNULIB_FMAL@ GNULIB_FMOD = @GNULIB_FMOD@ GNULIB_FMODF = @GNULIB_FMODF@ GNULIB_FMODL = @GNULIB_FMODL@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FREXP = @GNULIB_FREXP@ GNULIB_FREXPF = @GNULIB_FREXPF@ GNULIB_FREXPL = @GNULIB_FREXPL@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_HYPOT = @GNULIB_HYPOT@ GNULIB_HYPOTF = @GNULIB_HYPOTF@ GNULIB_HYPOTL = @GNULIB_HYPOTL@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_ILOGB = @GNULIB_ILOGB@ GNULIB_ILOGBF = @GNULIB_ILOGBF@ GNULIB_ILOGBL = @GNULIB_ILOGBL@ GNULIB_IOCTL = @GNULIB_IOCTL@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_ISFINITE = @GNULIB_ISFINITE@ GNULIB_ISINF = @GNULIB_ISINF@ GNULIB_ISNAN = @GNULIB_ISNAN@ GNULIB_ISNAND = @GNULIB_ISNAND@ GNULIB_ISNANF = @GNULIB_ISNANF@ GNULIB_ISNANL = @GNULIB_ISNANL@ GNULIB_ISWBLANK = @GNULIB_ISWBLANK@ GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LDEXPF = @GNULIB_LDEXPF@ GNULIB_LDEXPL = @GNULIB_LDEXPL@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LISTEN = @GNULIB_LISTEN@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LOG = @GNULIB_LOG@ GNULIB_LOG10 = @GNULIB_LOG10@ GNULIB_LOG10F = @GNULIB_LOG10F@ GNULIB_LOG10L = @GNULIB_LOG10L@ GNULIB_LOG1P = @GNULIB_LOG1P@ GNULIB_LOG1PF = @GNULIB_LOG1PF@ GNULIB_LOG1PL = @GNULIB_LOG1PL@ GNULIB_LOG2 = @GNULIB_LOG2@ GNULIB_LOG2F = @GNULIB_LOG2F@ GNULIB_LOG2L = @GNULIB_LOG2L@ GNULIB_LOGB = @GNULIB_LOGB@ GNULIB_LOGBF = @GNULIB_LOGBF@ GNULIB_LOGBL = @GNULIB_LOGBL@ GNULIB_LOGF = @GNULIB_LOGF@ GNULIB_LOGL = @GNULIB_LOGL@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_MODF = @GNULIB_MODF@ GNULIB_MODFF = @GNULIB_MODFF@ GNULIB_MODFL = @GNULIB_MODFL@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_OVERRIDES_WINT_T = @GNULIB_OVERRIDES_WINT_T@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_POSIX_SPAWN = @GNULIB_POSIX_SPAWN@ GNULIB_POSIX_SPAWNATTR_DESTROY = @GNULIB_POSIX_SPAWNATTR_DESTROY@ GNULIB_POSIX_SPAWNATTR_GETFLAGS = @GNULIB_POSIX_SPAWNATTR_GETFLAGS@ GNULIB_POSIX_SPAWNATTR_GETPGROUP = @GNULIB_POSIX_SPAWNATTR_GETPGROUP@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_GETSIGMASK = @GNULIB_POSIX_SPAWNATTR_GETSIGMASK@ GNULIB_POSIX_SPAWNATTR_INIT = @GNULIB_POSIX_SPAWNATTR_INIT@ GNULIB_POSIX_SPAWNATTR_SETFLAGS = @GNULIB_POSIX_SPAWNATTR_SETFLAGS@ GNULIB_POSIX_SPAWNATTR_SETPGROUP = @GNULIB_POSIX_SPAWNATTR_SETPGROUP@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM@ GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY = @GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY@ GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT = @GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT@ GNULIB_POSIX_SPAWNATTR_SETSIGMASK = @GNULIB_POSIX_SPAWNATTR_SETSIGMASK@ GNULIB_POSIX_SPAWNP = @GNULIB_POSIX_SPAWNP@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY@ GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT = @GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT@ GNULIB_POWF = @GNULIB_POWF@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_QSORT_R = @GNULIB_QSORT_R@ GNULIB_RAISE = @GNULIB_RAISE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_RECV = @GNULIB_RECV@ GNULIB_RECVFROM = @GNULIB_RECVFROM@ GNULIB_REMAINDER = @GNULIB_REMAINDER@ GNULIB_REMAINDERF = @GNULIB_REMAINDERF@ GNULIB_REMAINDERL = @GNULIB_REMAINDERL@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RINT = @GNULIB_RINT@ GNULIB_RINTF = @GNULIB_RINTF@ GNULIB_RINTL = @GNULIB_RINTL@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_ROUND = @GNULIB_ROUND@ GNULIB_ROUNDF = @GNULIB_ROUNDF@ GNULIB_ROUNDL = @GNULIB_ROUNDL@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SEND = @GNULIB_SEND@ GNULIB_SENDTO = @GNULIB_SENDTO@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ GNULIB_SIGACTION = @GNULIB_SIGACTION@ GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@ GNULIB_SIGNBIT = @GNULIB_SIGNBIT@ GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@ GNULIB_SINF = @GNULIB_SINF@ GNULIB_SINHF = @GNULIB_SINHF@ GNULIB_SINL = @GNULIB_SINL@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SOCKET = @GNULIB_SOCKET@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_SQRTF = @GNULIB_SQRTF@ GNULIB_SQRTL = @GNULIB_SQRTL@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TANF = @GNULIB_TANF@ GNULIB_TANHF = @GNULIB_TANHF@ GNULIB_TANL = @GNULIB_TANL@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TIME_RZ = @GNULIB_TIME_RZ@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@ GNULIB_TRUNC = @GNULIB_TRUNC@ GNULIB_TRUNCF = @GNULIB_TRUNCF@ GNULIB_TRUNCL = @GNULIB_TRUNCL@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WAITPID = @GNULIB_WAITPID@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCTRANS = @GNULIB_WCTRANS@ GNULIB_WCTYPE = @GNULIB_WCTYPE@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ HAVE_ACCEPT4 = @HAVE_ACCEPT4@ HAVE_ACOSF = @HAVE_ACOSF@ HAVE_ACOSL = @HAVE_ACOSL@ HAVE_ASINF = @HAVE_ASINF@ HAVE_ASINL = @HAVE_ASINL@ HAVE_ATAN2F = @HAVE_ATAN2F@ HAVE_ATANF = @HAVE_ATANF@ HAVE_ATANL = @HAVE_ATANL@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CBRT = @HAVE_CBRT@ HAVE_CBRTF = @HAVE_CBRTF@ HAVE_CBRTL = @HAVE_CBRTL@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_COPYSIGN = @HAVE_COPYSIGN@ HAVE_COPYSIGNL = @HAVE_COPYSIGNL@ HAVE_COSF = @HAVE_COSF@ HAVE_COSHF = @HAVE_COSHF@ HAVE_COSL = @HAVE_COSL@ HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@ HAVE_DECL_ASINL = @HAVE_DECL_ASINL@ HAVE_DECL_ATANL = @HAVE_DECL_ATANL@ HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@ HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@ HAVE_DECL_CEILF = @HAVE_DECL_CEILF@ HAVE_DECL_CEILL = @HAVE_DECL_CEILL@ HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@ HAVE_DECL_COSL = @HAVE_DECL_COSL@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@ HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@ HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@ HAVE_DECL_EXPL = @HAVE_DECL_EXPL@ HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@ HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@ HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@ HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@ HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@ HAVE_DECL_LOGB = @HAVE_DECL_LOGB@ HAVE_DECL_LOGL = @HAVE_DECL_LOGL@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_REMAINDER = @HAVE_DECL_REMAINDER@ HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@ HAVE_DECL_RINTF = @HAVE_DECL_RINTF@ HAVE_DECL_ROUND = @HAVE_DECL_ROUND@ HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@ HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SINL = @HAVE_DECL_SINL@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_TANL = @HAVE_DECL_TANL@ HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@ HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@ HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_EXPF = @HAVE_EXPF@ HAVE_EXPL = @HAVE_EXPL@ HAVE_EXPM1 = @HAVE_EXPM1@ HAVE_EXPM1F = @HAVE_EXPM1F@ HAVE_FABSF = @HAVE_FABSF@ HAVE_FABSL = @HAVE_FABSL@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FMA = @HAVE_FMA@ HAVE_FMAF = @HAVE_FMAF@ HAVE_FMAL = @HAVE_FMAL@ HAVE_FMODF = @HAVE_FMODF@ HAVE_FMODL = @HAVE_FMODL@ HAVE_FREXPF = @HAVE_FREXPF@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_HYPOTF = @HAVE_HYPOTF@ HAVE_HYPOTL = @HAVE_HYPOTL@ HAVE_ILOGB = @HAVE_ILOGB@ HAVE_ILOGBF = @HAVE_ILOGBF@ HAVE_ILOGBL = @HAVE_ILOGBL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISNAND = @HAVE_ISNAND@ HAVE_ISNANF = @HAVE_ISNANF@ HAVE_ISNANL = @HAVE_ISNANL@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LDEXPF = @HAVE_LDEXPF@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LOG10F = @HAVE_LOG10F@ HAVE_LOG10L = @HAVE_LOG10L@ HAVE_LOG1P = @HAVE_LOG1P@ HAVE_LOG1PF = @HAVE_LOG1PF@ HAVE_LOG1PL = @HAVE_LOG1PL@ HAVE_LOGBF = @HAVE_LOGBF@ HAVE_LOGBL = @HAVE_LOGBL@ HAVE_LOGF = @HAVE_LOGF@ HAVE_LOGL = @HAVE_LOGL@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MODFF = @HAVE_MODFF@ HAVE_MODFL = @HAVE_MODFL@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ HAVE_POSIX_SPAWN = @HAVE_POSIX_SPAWN@ HAVE_POSIX_SPAWNATTR_T = @HAVE_POSIX_SPAWNATTR_T@ HAVE_POSIX_SPAWN_FILE_ACTIONS_T = @HAVE_POSIX_SPAWN_FILE_ACTIONS_T@ HAVE_POWF = @HAVE_POWF@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_QSORT_R = @HAVE_QSORT_R@ HAVE_RAISE = @HAVE_RAISE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_REMAINDER = @HAVE_REMAINDER@ HAVE_REMAINDERF = @HAVE_REMAINDERF@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RINT = @HAVE_RINT@ HAVE_RINTL = @HAVE_RINTL@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ HAVE_SCHED_H = @HAVE_SCHED_H@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGACTION = @HAVE_SIGACTION@ HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SIGSET_T = @HAVE_SIGSET_T@ HAVE_SINF = @HAVE_SINF@ HAVE_SINHF = @HAVE_SINHF@ HAVE_SINL = @HAVE_SINL@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_SPAWN_H = @HAVE_SPAWN_H@ HAVE_SQRTF = @HAVE_SQRTF@ HAVE_SQRTL = @HAVE_SQRTL@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRINGS_H = @HAVE_STRINGS_H@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_SCHED_PARAM = @HAVE_STRUCT_SCHED_PARAM@ HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ HAVE_TANF = @HAVE_TANF@ HAVE_TANHF = @HAVE_TANHF@ HAVE_TANL = @HAVE_TANL@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBM = @LIBM@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LIB_POSIX_SPAWN = @LIB_POSIX_SPAWN@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LOG10_LIBM = @LOG10_LIBM@ LOG_LIBM = @LOG_LIBM@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ NEXT_AS_FIRST_DIRECTIVE_SPAWN_H = @NEXT_AS_FIRST_DIRECTIVE_SPAWN_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_LIMITS_H = @NEXT_LIMITS_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_MATH_H = @NEXT_MATH_H@ NEXT_SCHED_H = @NEXT_SCHED_H@ NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ NEXT_SPAWN_H = @NEXT_SPAWN_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRINGS_H = @NEXT_STRINGS_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PAGER1 = @PAGER1@ PAGER2 = @PAGER2@ PAGER3 = @PAGER3@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ POW_LIBM = @POW_LIBM@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_ACOSF = @REPLACE_ACOSF@ REPLACE_ASINF = @REPLACE_ASINF@ REPLACE_ATAN2F = @REPLACE_ATAN2F@ REPLACE_ATANF = @REPLACE_ATANF@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CBRTF = @REPLACE_CBRTF@ REPLACE_CBRTL = @REPLACE_CBRTL@ REPLACE_CEIL = @REPLACE_CEIL@ REPLACE_CEILF = @REPLACE_CEILF@ REPLACE_CEILL = @REPLACE_CEILL@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_COSF = @REPLACE_COSF@ REPLACE_COSHF = @REPLACE_COSHF@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_EXP2 = @REPLACE_EXP2@ REPLACE_EXP2L = @REPLACE_EXP2L@ REPLACE_EXPF = @REPLACE_EXPF@ REPLACE_EXPM1 = @REPLACE_EXPM1@ REPLACE_EXPM1F = @REPLACE_EXPM1F@ REPLACE_FABSL = @REPLACE_FABSL@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FLOOR = @REPLACE_FLOOR@ REPLACE_FLOORF = @REPLACE_FLOORF@ REPLACE_FLOORL = @REPLACE_FLOORL@ REPLACE_FMA = @REPLACE_FMA@ REPLACE_FMAF = @REPLACE_FMAF@ REPLACE_FMAL = @REPLACE_FMAL@ REPLACE_FMOD = @REPLACE_FMOD@ REPLACE_FMODF = @REPLACE_FMODF@ REPLACE_FMODL = @REPLACE_FMODL@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FREXP = @REPLACE_FREXP@ REPLACE_FREXPF = @REPLACE_FREXPF@ REPLACE_FREXPL = @REPLACE_FREXPL@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@ REPLACE_HYPOT = @REPLACE_HYPOT@ REPLACE_HYPOTF = @REPLACE_HYPOTF@ REPLACE_HYPOTL = @REPLACE_HYPOTL@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ILOGB = @REPLACE_ILOGB@ REPLACE_ILOGBF = @REPLACE_ILOGBF@ REPLACE_IOCTL = @REPLACE_IOCTL@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_ISFINITE = @REPLACE_ISFINITE@ REPLACE_ISINF = @REPLACE_ISINF@ REPLACE_ISNAN = @REPLACE_ISNAN@ REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_ITOLD = @REPLACE_ITOLD@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LDEXPL = @REPLACE_LDEXPL@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LOG = @REPLACE_LOG@ REPLACE_LOG10 = @REPLACE_LOG10@ REPLACE_LOG10F = @REPLACE_LOG10F@ REPLACE_LOG10L = @REPLACE_LOG10L@ REPLACE_LOG1P = @REPLACE_LOG1P@ REPLACE_LOG1PF = @REPLACE_LOG1PF@ REPLACE_LOG1PL = @REPLACE_LOG1PL@ REPLACE_LOG2 = @REPLACE_LOG2@ REPLACE_LOG2F = @REPLACE_LOG2F@ REPLACE_LOG2L = @REPLACE_LOG2L@ REPLACE_LOGB = @REPLACE_LOGB@ REPLACE_LOGBF = @REPLACE_LOGBF@ REPLACE_LOGBL = @REPLACE_LOGBL@ REPLACE_LOGF = @REPLACE_LOGF@ REPLACE_LOGL = @REPLACE_LOGL@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_MODF = @REPLACE_MODF@ REPLACE_MODFF = @REPLACE_MODFF@ REPLACE_MODFL = @REPLACE_MODFL@ REPLACE_NAN = @REPLACE_NAN@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_POSIX_SPAWN = @REPLACE_POSIX_SPAWN@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2@ REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN = @REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_QSORT_R = @REPLACE_QSORT_R@ REPLACE_RAISE = @REPLACE_RAISE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_READLINKAT = @REPLACE_READLINKAT@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMAINDER = @REPLACE_REMAINDER@ REPLACE_REMAINDERF = @REPLACE_REMAINDERF@ REPLACE_REMAINDERL = @REPLACE_REMAINDERL@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_ROUND = @REPLACE_ROUND@ REPLACE_ROUNDF = @REPLACE_ROUNDF@ REPLACE_ROUNDL = @REPLACE_ROUNDL@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@ REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@ REPLACE_SINF = @REPLACE_SINF@ REPLACE_SINHF = @REPLACE_SINHF@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_SQRTF = @REPLACE_SQRTF@ REPLACE_SQRTL = @REPLACE_SQRTL@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ REPLACE_TANF = @REPLACE_TANF@ REPLACE_TANHF = @REPLACE_TANHF@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ REPLACE_TRUNC = @REPLACE_TRUNC@ REPLACE_TRUNCF = @REPLACE_TRUNCF@ REPLACE_TRUNCL = @REPLACE_TRUNCL@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SCHED_H = @SCHED_H@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIN_LIBM = @SIN_LIBM@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ SQRT_LIBM = @SQRT_LIBM@ STDALIGN_H = @STDALIGN_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TAN_LIBM = @TAN_LIBM@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ZDUMP = @ZDUMP@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ miscdailyDIR = daily# miscdailySCRIPTFILES = \ $(miscdailyDIR)/daily miscdailyDATAFILES = \ $(srcdir)/$(miscdailyDIR)/daily.awk \ $(srcdir)/$(miscdailyDIR)/daily.pl \ $(srcdir)/$(miscdailyDIR)/daily.rc miscdailyMISCFILES = \ $(srcdir)/$(miscdailyDIR)/daily.in \ $(srcdir)/$(miscdailyDIR)/daily.bat miscddiffDIR = ddiff# miscddiffSCRIPTFILES = \ $(miscddiffDIR)/ddiff \ $(miscddiffDIR)/ddiffdrv miscddiffDATAFILES = \ $(srcdir)/$(miscddiffDIR)/ddiff1.awk \ $(srcdir)/$(miscddiffDIR)/ddiff1.pl \ $(srcdir)/$(miscddiffDIR)/ddiff2.awk \ $(srcdir)/$(miscddiffDIR)/ddiff2.pl \ $(srcdir)/$(miscddiffDIR)/ddiffdrv.awk \ $(srcdir)/$(miscddiffDIR)/ddiffdrv.pl \ $(srcdir)/$(miscddiffDIR)/zone.tab miscddiffMISCFILES = \ $(srcdir)/$(miscddiffDIR)/ddiff.in \ $(srcdir)/$(miscddiffDIR)/ddiff.@ \ $(srcdir)/$(miscddiffDIR)/ddiff.bat \ $(srcdir)/$(miscddiffDIR)/ddiffdrv.in \ $(srcdir)/$(miscddiffDIR)/ddiffdrv.bat miscdstDIR = dst# miscdstSCRIPTFILES = \ $(miscdstDIR)/dst miscdstDATAFILES = \ $(srcdir)/$(miscdstDIR)/dst.awk \ $(srcdir)/$(miscdstDIR)/dst.pl miscdstMISCFILES = \ $(srcdir)/$(miscdstDIR)/dst.in miscgcalltxDIR = gcalltx# miscgcalltxSCRIPTFILES = \ $(miscgcalltxDIR)/gcalltx \ $(miscgcalltxDIR)/gcalltx.pl miscgcalltxDATAFILES = \ $(srcdir)/$(miscgcalltxDIR)/gcalltx.sed miscgcalltxMISCFILES = \ $(srcdir)/$(miscgcalltxDIR)/gcalltx.in \ $(srcdir)/$(miscgcalltxDIR)/gcalltx.bat \ $(srcdir)/$(miscgcalltxDIR)/gcalltxp.in miscmoonDIR = moon# miscmoonSCRIPTFILES = \ $(miscmoonDIR)/moon miscmoonDATAFILES = miscmoonMISCFILES = \ $(srcdir)/$(miscmoonDIR)/moon.in \ $(srcdir)/$(miscmoonDIR)/moon.bat \ $(srcdir)/$(miscmoonDIR)/moon1.awk \ $(srcdir)/$(miscmoonDIR)/moon2.awk miscmrmsDIR = mrms# miscmrmsSCRIPTFILES = \ $(miscmrmsDIR)/mrms miscmrmsDATAFILES = \ $(srcdir)/$(miscmrmsDIR)/mrms.awk \ $(srcdir)/$(miscmrmsDIR)/mrms.pl \ $(srcdir)/$(miscmrmsDIR)/mrms.rc miscmrmsMISCFILES = \ $(srcdir)/$(miscmrmsDIR)/mrms.in \ $(srcdir)/$(miscmrmsDIR)/mrms.bat miscsrssDIR = srss# miscsrssSCRIPTFILES = \ $(miscsrssDIR)/srss miscsrssDATAFILES = \ $(srcdir)/$(miscsrssDIR)/srss.awk \ $(srcdir)/$(miscsrssDIR)/srss.pl \ $(srcdir)/$(miscsrssDIR)/srss.rc miscsrssMISCFILES = \ $(srcdir)/$(miscsrssDIR)/srss.in \ $(srcdir)/$(miscsrssDIR)/srss.bat miscwlocDIR = wloc# miscwlocSCRIPTFILES = \ $(miscwlocDIR)/wlocdrv miscwlocDATAFILES = \ $(srcdir)/$(miscwlocDIR)/wlocdrv1.awk \ $(srcdir)/$(miscwlocDIR)/wlocdrv1.pl \ $(srcdir)/$(miscwlocDIR)/wlocdrv2.awk \ $(srcdir)/$(miscwlocDIR)/wlocdrv2.pl \ $(srcdir)/$(miscwlocDIR)/zone.tab miscwlocMISCFILES = \ $(srcdir)/$(miscwlocDIR)/wlocdrv.in \ $(srcdir)/$(miscwlocDIR)/wlocdrv.bat miscSCRIPTFILES = \ $(miscdailySCRIPTFILES) \ $(miscddiffSCRIPTFILES) \ $(miscdstSCRIPTFILES) \ $(miscgcalltxSCRIPTFILES) \ $(miscmoonSCRIPTFILES) \ $(miscmrmsSCRIPTFILES) \ $(miscsrssSCRIPTFILES) \ $(miscwlocSCRIPTFILES) miscDATAFILES = \ $(miscdailyDATAFILES) \ $(miscddiffDATAFILES) \ $(miscdstDATAFILES) \ $(miscgcalltxDATAFILES) \ $(miscmoonDATAFILES) \ $(miscmrmsDATAFILES) \ $(miscsrssDATAFILES) \ $(miscwlocDATAFILES) miscINFOFILES = \ $(srcdir)/README \ $(srcdir)/gcalmagic.add miscMISCFILES = \ $(miscdailyMISCFILES) \ $(miscddiffMISCFILES) \ $(miscdstMISCFILES) \ $(miscgcalltxMISCFILES) \ $(miscmoonMISCFILES) \ $(miscmrmsMISCFILES) \ $(miscsrssMISCFILES) \ $(miscwlocMISCFILES) \ $(srcdir)/locale.alias \ $(srcdir)/magic.add \ $(srcdir)/Makefile.in EXTRA_DIST = \ $(miscDATAFILES) \ $(miscINFOFILES) \ $(miscSCRIPTFILES) \ $(miscMISCFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu misc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu misc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am .PRECIOUS: Makefile gcalltx/gcalltx.pl: cp gcalltx/gcalltxp gcalltx/gcalltx.pl chmod u+x gcalltx/gcalltx.pl # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gcal-4.1/misc/magic.add0000664000000000000000000000042012244130561011634 00000000000000# # GNU nlsutils message catalog file format # 0 string \336\22\4\225 GNU message catalog (little endian), >4 lelong x revision %d, >8 lelong x %d messages 0 string \225\4\22\336 GNU message catalog (big endian), >4 belong x revision %d, >8 belong x %d messages gcal-4.1/misc/wloc/0000775000000000000000000000000013041164075011135 500000000000000gcal-4.1/misc/wloc/wlocdrv2.pl0000664000000000000000000000630712353314150013156 00000000000000# $Id: wlocdrv2.pl 0.05 2000/01/12 00:00:05 tom Exp $ # # wlocdrv2.pl: Generates the Gcal resource file `wlocdrv.rc' which # contains air line distances and course angles between # several geographic locations around the world, # by processing the ZONE file `zone.tab'. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `wlocdrv' and a DOS batch `wlocdrv.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # $[ = 1; # set array base to 1 # # Define the default return values of this process. # $EXIT_SUCCESS = 0; $EXIT_FATAL = 2; # # Get possibly given command line arguments. # for ($i = 1; $i < ($#ARGV+1); $i++) { if (substr($ARGV[$i], 1, 1) eq '-') { if (substr($ARGV[$i], 2, 1) eq 'a') { $a = substr($ARGV[$i], 3, 999999); } elsif (substr($ARGV[$i], 2, 1) eq 'b') { $b = substr($ARGV[$i], 3, 999999); } else { exit $EXIT_FATAL; } } else { last; } shift; $i--; } printf "; %s, air line distances between geographical locations for Gcal-2.20 or newer\n;\n", $b; printf "; Either set `\$f' to `%%>9*b0\$b/\$c km %%b1\$b/\$c \$:15*c' or to\n"; printf "; `%%>9*b*0\$b/\$c mi %%b1\$b/\$c \$:15*c' for displaying using statute miles.\n;\n"; printf "\$f=%%>9*b0\$b/\$c km %%b1\$b/\$c \$:15*c\n"; printf ";\$f=%%>9*b*0\$b/\$c mi %%b1\$b/\$c \$:15*c\n"; printf ";\n; The line templates.\n;\n"; printf "\$x=0 \$a \$:15*b \$f \$l\n"; printf "0 \$a \$:15*b END~\n;\n; The locations.\n"; # # Main block. # line: while (<>) { chop; # strip record separator @Fld = split(' ', $_, 9999); if (substr($_, 1, 1) ne '#' && $_ ne '') { $location = $Fld[3]; $len = length($location); for ($i = 1; $i <= $len; $i++) { if (substr($location, $i, 1) eq '/') { $len -= $i; $location = substr($location, $i + 1, $len); $i = 1; } } printf ";\n; Location %s, %s\n;\n\$l=%s-%s\n\$c=%s\n\$x\n", $location, $Fld[1], $Fld[1], $location, $Fld[2]; } } exit $EXIT_SUCCESS; gcal-4.1/misc/wloc/zone.tab0000664000000000000000000003622512353516611012532 00000000000000# Just added for fun, Thomas Esken , 17-Dec-1999: # DE +5158+00738 Europe/Muenster Capital of Westphalia # # --- original file starts here --- # TZ zone descriptions # # From Paul Eggert (1996-08-05): # # This file contains a table with the following columns: # 1. ISO 3166 2-character country code. See the file `iso3166.tab'. # 2. Latitude and longitude of the zone's principal location # in ISO 6709 sign-degrees-minutes-seconds format, # either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS, # first latitude (+ is north), then longitude (+ is east). # 3. Zone name used in value of TZ environment variable. # 4. Comments; present if and only if the country has multiple rows. # # Columns are separated by a single tab. # The table is sorted first by country, then an order within the country that # (1) makes some geographical sense, and # (2) puts the most populous zones first, where that does not contradict (1). # # Lines beginning with `#' are comments. # #country- #code coordinates TZ comments AD +4230+00131 Europe/Andorra AE +2518+05518 Asia/Dubai AF +3431+06912 Asia/Kabul AG +1703-06148 America/Antigua AI +1812-06304 America/Anguilla AL +4120+01950 Europe/Tirane AM +4011+04430 Asia/Yerevan AN +1211-06900 America/Curacao AO -0848+01314 Africa/Luanda AQ -7750+16636 Antarctica/McMurdo McMurdo Station, Ross Island AQ -9000+00000 Antarctica/South_Pole Amundsen-Scott Station, South Pole AQ -6448-06406 Antarctica/Palmer Palmer Station, Anvers Island AQ -6736+06253 Antarctica/Mawson Mawson Station, Holme Bay AQ -6617+11031 Antarctica/Casey Casey Station, Bailey Peninsula AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville Base, Terre Adelie AR -3436-05827 America/Buenos_Aires E Argentina (BA, DF, SC, TF) AR -3257-06040 America/Rosario NE Argentina (SF, ER, CN, MN, CC, FM, LP, CH) AR -3124-06411 America/Cordoba W Argentina (CB, SA, TM, LR, SJ, SL, NQ, RN) AR -2411-06518 America/Jujuy Jujuy (JY) AR -2828-06547 America/Catamarca Catamarca (CT) AR -3253-06849 America/Mendoza Mendoza (MZ) AS -1416-17042 Pacific/Pago_Pago AT +4813+01620 Europe/Vienna AU -3133+15905 Australia/Lord_Howe Lord Howe Island AU -4253+14719 Australia/Hobart Tasmania AU -3749+14458 Australia/Melbourne Victoria AU -3352+15113 Australia/Sydney New South Wales - most locations AU -3157+14127 Australia/Broken_Hill New South Wales - Broken Hill AU -2728+15302 Australia/Brisbane Queensland - most locations AU -2016+14900 Australia/Lindeman Queensland - Holiday Islands AU -3455+13835 Australia/Adelaide South Australia AU -1228+13050 Australia/Darwin Northern Territory AU -3157+11551 Australia/Perth Western Australia AW +1230-06858 America/Aruba AZ +4023+04951 Asia/Baku BA +4352+01825 Europe/Sarajevo BB +1306-05937 America/Barbados BD +2343+09025 Asia/Dacca BE +5050+00420 Europe/Brussels BF +1222-00131 Africa/Ouagadougou BG +4241+02319 Europe/Sofia BH +2623+05035 Asia/Bahrain BI -0323+02922 Africa/Bujumbura BJ +0629+00237 Africa/Porto-Novo BM +3217-06446 Atlantic/Bermuda BN +0456+11455 Asia/Brunei BO -1630-06809 America/La_Paz BR -0351-03225 America/Noronha Fernando de Noronha BR -0343-03830 America/Fortaleza NE Brazil (AP, east PA, MA, PI, CE, RN, PR, PE) BR -0940-03543 America/Maceio ENE Brazil (AL, SE, TO) BR -2332-04637 America/Sao_Paulo S & SE Brazil (BA, GO, DF, MG, ES, RJ, SP, PR, SC, RS) BR -1535-05605 America/Cuiaba SW Brazil (MT, MS) BR -0308-06001 America/Manaus NW Brazil (RR, west PA, AM, RO) BR -0934-06731 America/Porto_Acre Acre BS +2505-07721 America/Nassau BT +2728+08939 Asia/Thimbu BW -2545+02555 Africa/Gaborone BY +5354+02734 Europe/Minsk BZ +1730-08812 America/Belize CA +4734-05243 America/St_Johns Newfoundland Island CA +4439-06336 America/Halifax Atlantic Time - Nova Scotia (most places), NB, W Labrador, E Quebec & PEI CA +4612-05957 America/Glace_Bay Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971 CA +5320-06025 America/Goose_Bay Atlantic Time - E Labrador CA +6608-06544 America/Pangnirtung Atlantic Time - Northwest Territories CA +4531-07334 America/Montreal Eastern Time - Ontario & Quebec - most locations CA +4901-08816 America/Nipigon Eastern Time - Ontario & Quebec - places that did not observe DST 1967-1973 CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario CA +6344-06828 America/Iqaluit Eastern Time - Northwest Territories CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario CA +4843-09429 America/Rainy_River Central Time - Rainy River & Fort Frances, Ontario CA +6245-09210 America/Rankin_Inlet Central Time - Northwest Territories CA +5024-10439 America/Regina Central Standard Time - Saskatchewan - most locations CA +5017-10750 America/Swift_Current Central Standard Time - Saskatchewan - midwest CA +5333-11328 America/Edmonton Mountain Time - Alberta, east British Columbia & west Saskatchewan CA +6227-11421 America/Yellowknife Mountain Time - central Northwest Territories CA +6825-11330 America/Inuvik Mountain Time - west Northwest Territories CA +5946-12014 America/Dawson_Creek Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia CA +4916-12307 America/Vancouver Pacific Time - west British Columbia CA +6043-13503 America/Whitehorse Pacific Time - south Yukon CA +6404-13925 America/Dawson Pacific Time - north Yukon CC -1210+09655 Indian/Cocos CD -0418+01518 Africa/Kinshasa west Dem. Rep. of Congo CD -1140+02728 Africa/Lubumbashi east Dem. Rep. of Congo CF +0422+01835 Africa/Bangui CG -0416+01517 Africa/Brazzaville CH +4723+00832 Europe/Zurich CI +0519-00402 Africa/Abidjan CK -2114-15946 Pacific/Rarotonga CL -3327-07040 America/Santiago mainland CL -2710-10927 Pacific/Easter Easter Island CM +0403+00942 Africa/Douala CN +4545+12641 Asia/Harbin north Manchuria CN +3114+12128 Asia/Shanghai China coast CN +2217+11409 Asia/Hong_Kong Hong Kong CN +2934+10635 Asia/Chungking China mountains CN +4348+08735 Asia/Urumqi Tibet & Xinjiang CN +3929+07559 Asia/Kashgar Eastern Turkestan CO +0436-07405 America/Bogota CR +0956-08405 America/Costa_Rica CU +2308-08222 America/Havana CV +1455-02331 Atlantic/Cape_Verde CX -1025+10543 Indian/Christmas CY +3510+03322 Asia/Nicosia CZ +5005+01426 Europe/Prague DE +5230+01322 Europe/Berlin DJ +1136+04309 Africa/Djibouti DK +5540+01235 Europe/Copenhagen DM +1518-06124 America/Dominica DO +1828-06954 America/Santo_Domingo DZ +3647+00303 Africa/Algiers EC -0210-07950 America/Guayaquil mainland EC -0054-08936 Pacific/Galapagos Galapagos Islands EE +5925+02445 Europe/Tallinn EG +3003+03115 Africa/Cairo EH +2709-01312 Africa/El_Aaiun ER +1520+03853 Africa/Asmera ES +4024-00341 Europe/Madrid mainland ES +3553-00519 Africa/Ceuta Ceuta & Melilla ES +2806-01524 Atlantic/Canary Canary Islands ET +0902+03842 Africa/Addis_Ababa FI +6010+02458 Europe/Helsinki FJ -1808+17825 Pacific/Fiji FK -5142-05751 Atlantic/Stanley FM +0931+13808 Pacific/Yap Yap FM +0725+15147 Pacific/Truk Truk (Chuuk) FM +0658+15813 Pacific/Ponape Ponape (Pohnpei) FM +0519+16259 Pacific/Kosrae Kosrae FO +6201-00646 Atlantic/Faeroe FR +4852+00220 Europe/Paris GA +0023+00927 Africa/Libreville GB +512830-0001845 Europe/London Great Britain GB +5435-00555 Europe/Belfast Northern Ireland GD +1203-06145 America/Grenada GE +4143+04449 Asia/Tbilisi GF +0456-05220 America/Cayenne GH +0533-00013 Africa/Accra GI +3608-00521 Europe/Gibraltar GL +7030-02215 America/Scoresbysund east Greenland GL +6411-05144 America/Godthab southwest Greenland GL +7634-06847 America/Thule northwest Greenland GM +1328-01639 Africa/Banjul GN +0931-01343 Africa/Conakry GP +1614-06132 America/Guadeloupe GQ +0345+00847 Africa/Malabo GR +3758+02343 Europe/Athens GS -5416-03632 Atlantic/South_Georgia GT +1438-09031 America/Guatemala GU +1328+14445 Pacific/Guam GW +1151-01535 Africa/Bissau GY +0648-05810 America/Guyana HN +1406-08713 America/Tegucigalpa HR +4548+01558 Europe/Zagreb HT +1832-07220 America/Port-au-Prince HU +4730+01905 Europe/Budapest ID -0610+10648 Asia/Jakarta Java & Sumatra ID -0507+11924 Asia/Ujung_Pandang Borneo & Celebes ID -0232+14042 Asia/Jayapura Irian Jaya & the Moluccas IE +5320-00615 Europe/Dublin IL +3146+03514 Asia/Jerusalem most locations IL +3130+03428 Asia/Gaza Gaza Strip IN +2232+08822 Asia/Calcutta IO -0720+07225 Indian/Chagos IQ +3321+04425 Asia/Baghdad IR +3540+05126 Asia/Tehran IS +6409-02151 Atlantic/Reykjavik IT +4154+01229 Europe/Rome JM +1800-07648 America/Jamaica JO +3157+03556 Asia/Amman JP +3542+13946 Asia/Tokyo most locations JP +2420+12409 Asia/Ishigaki south Ryukyu Islands KE -0117+03649 Africa/Nairobi KG +4254+07436 Asia/Bishkek KH +1133+10455 Asia/Phnom_Penh KI +0125+17300 Pacific/Tarawa Gilbert Islands KI -0308-17105 Pacific/Enderbury Phoenix Islands KI +0152-15720 Pacific/Kiritimati Line Islands KM -1141+04316 Indian/Comoro KN +1718-06243 America/St_Kitts KP +3901+12545 Asia/Pyongyang KR +3733+12658 Asia/Seoul KW +2920+04759 Asia/Kuwait KY +1918-08123 America/Cayman KZ +4315+07657 Asia/Alma-Ata east Kazakhstan KZ +5017+05710 Asia/Aqtobe central Kazakhstan KZ +4431+05016 Asia/Aqtau west Kazakhstan LA +1758+10236 Asia/Vientiane LB +3353+03530 Asia/Beirut LC +1401-06100 America/St_Lucia LI +4709+00931 Europe/Vaduz LK +0656+07951 Asia/Colombo LR +0618-01047 Africa/Monrovia LS -2928+02730 Africa/Maseru LT +5441+02519 Europe/Vilnius LU +4936+00609 Europe/Luxembourg LV +5657+02406 Europe/Riga LY +3254+01311 Africa/Tripoli MA +3339-00735 Africa/Casablanca MC +4342+00723 Europe/Monaco MD +4700+02850 Europe/Chisinau MG -1855+04731 Indian/Antananarivo MH +0709+17112 Pacific/Majuro most locations MH +0905+16720 Pacific/Kwajalein Kwajalein MK +4159+02126 Europe/Skopje ML +1239-00800 Africa/Bamako southwest Mali ML +1446-00301 Africa/Timbuktu northeast Mali MM +1647+09610 Asia/Rangoon MN +4755+10653 Asia/Ulan_Bator MO +2214+11335 Asia/Macao MP +1512+14545 Pacific/Saipan MQ +1436-06105 America/Martinique MR +1806-01557 Africa/Nouakchott MS +1644-06213 America/Montserrat MT +3554+01431 Europe/Malta MU -2010+05730 Indian/Mauritius MV +0410+07330 Indian/Maldives MW -1547+03500 Africa/Blantyre MX +1924-09909 America/Mexico_City Central Time MX +2313-10625 America/Mazatlan Mountain Time MX +3152-11637 America/Ensenada Pacific Time - most locations MX +3232-11701 America/Tijuana Pacific Time - north Baja California MY +0310+10142 Asia/Kuala_Lumpur peninsular Malaysia MY +0133+11020 Asia/Kuching Sabah & Sarawak MZ -2558+03235 Africa/Maputo NA -2234+01706 Africa/Windhoek NC -2216+16530 Pacific/Noumea NE +1331+00207 Africa/Niamey NF -2903+16758 Pacific/Norfolk NG +0627+00324 Africa/Lagos NI +1209-08617 America/Managua NL +5222+00454 Europe/Amsterdam NO +5955+01045 Europe/Oslo NP +2743+08519 Asia/Katmandu NR -0031+16655 Pacific/Nauru NU -1901+16955 Pacific/Niue NZ -3652+17446 Pacific/Auckland most locations NZ -4355+17630 Pacific/Chatham Chatham Island OM +2336+05835 Asia/Muscat PA +0858-07932 America/Panama PE -1203-07703 America/Lima PF -1732-14934 Pacific/Tahiti Society Islands PF -0900-13930 Pacific/Marquesas Marquesas Islands PF -2308-13457 Pacific/Gambier Gambier Islands PG -0930+14710 Pacific/Port_Moresby PH +1435+12100 Asia/Manila PK +2452+06703 Asia/Karachi PL +5215+02100 Europe/Warsaw PM +4703-05620 America/Miquelon PN -2504-13005 Pacific/Pitcairn PR +182806-0660622 America/Puerto_Rico PT +3843-00908 Europe/Lisbon mainland PT +3238-01654 Atlantic/Madeira Madeira Islands PT +3744-02540 Atlantic/Azores Azores PW +0720+13429 Pacific/Palau PY -2516-05740 America/Asuncion QA +2517+05132 Asia/Qatar RE -2052+05528 Indian/Reunion RO +4426+02606 Europe/Bucharest RU +5443+02030 Europe/Kaliningrad Moscow-01 - Kaliningrad RU +5545+03735 Europe/Moscow Moscow+00 - west Russia RU +5312+05009 Europe/Samara Moscow+01 - Caspian Sea RU +5651+06036 Asia/Yekaterinburg Moscow+02 - Urals RU +5500+07324 Asia/Omsk Moscow+03 - west Siberia RU +5502+08255 Asia/Novosibirsk Moscow+03 - Novosibirsk RU +5601+09250 Asia/Krasnoyarsk Moscow+04 - Yenisei River RU +5216+10420 Asia/Irkutsk Moscow+05 - Lake Baikal RU +6200+12940 Asia/Yakutsk Moscow+06 - Lena River RU +4310+13156 Asia/Vladivostok Moscow+07 - Amur River RU +5934+15048 Asia/Magadan Moscow+08 - Magadan & Sakhalin RU +5301+15839 Asia/Kamchatka Moscow+09 - Kamchatka RU +6445+17729 Asia/Anadyr Moscow+10 - Bering Sea RW -0157+03004 Africa/Kigali SA +2438+04643 Asia/Riyadh SB -0932+16012 Pacific/Guadalcanal SC -0440+05528 Indian/Mahe SD +1536+03232 Africa/Khartoum SE +5920+01803 Europe/Stockholm SG +0117+10351 Asia/Singapore SH -1555-00542 Atlantic/St_Helena SI +4603+01431 Europe/Ljubljana SJ +7800+01600 Arctic/Longyearbyen Svalbard SJ +7059-00805 Atlantic/Jan_Mayen Jan Mayen SK +4809+01707 Europe/Bratislava SL +0830-01315 Africa/Freetown SM +4355+01228 Europe/San_Marino SN +1440-01726 Africa/Dakar SO +0204+04522 Africa/Mogadishu SR +0550-05510 America/Paramaribo ST +0020+00644 Africa/Sao_Tome SV +1342-08912 America/El_Salvador SY +3330+03618 Asia/Damascus SZ -2618+03106 Africa/Mbabane TC +2128-07108 America/Grand_Turk TD +1207+01503 Africa/Ndjamena TF -492110+0701303 Indian/Kerguelen TG +0608+00113 Africa/Lome TH +1345+10031 Asia/Bangkok TJ +3835+06848 Asia/Dushanbe TK -0922-17114 Pacific/Fakaofo TM +3757+05823 Asia/Ashkhabad TN +3648+01011 Africa/Tunis TO -2110+17510 Pacific/Tongatapu TR +4101+02858 Europe/Istanbul TT +1039-06131 America/Port_of_Spain TV -0831+17913 Pacific/Funafuti TW +2503+12130 Asia/Taipei TZ -0648+03917 Africa/Dar_es_Salaam UA +5026+03031 Europe/Kiev most locations UA +4457+03406 Europe/Simferopol Crimea UG +0019+03225 Africa/Kampala UM +1700-16830 Pacific/Johnston Johnston Atoll UM +2813-17722 Pacific/Midway Midway Islands UM +1917+16637 Pacific/Wake Wake Island US +404251-0740023 America/New_York Eastern Time US +421953-0830245 America/Detroit Eastern Time - Michigan - most locations US +381515-0854534 America/Louisville Eastern Time - Louisville, Kentucky US +394606-0860929 America/Indianapolis Eastern Standard Time - Indiana - most locations US +382232-0862041 America/Indiana/Marengo Eastern Standard Time - Indiana - Crawford County US +411745-0863730 America/Indiana/Knox Eastern Standard Time - Indiana - Starke County US +384452-0850402 America/Indiana/Vevay Eastern Standard Time - Indiana - Switzerland County US +415100-0873900 America/Chicago Central Time US +450628-0873651 America/Menominee Central Time - Michigan - Wisconsin border US +394421-1045903 America/Denver Mountain Time US +433649-1161209 America/Boise Mountain Time - south Idaho & east Oregon US +364708-1084111 America/Shiprock Mountain Time - Navajo US +332654-1120424 America/Phoenix Mountain Standard Time - Arizona US +340308-1181434 America/Los_Angeles Pacific Time US +611305-1495401 America/Anchorage Alaska Time US +581807-1342511 America/Juneau Alaska Time - Alaska panhandle US +593249-1394338 America/Yakutat Alaska Time - Alaska panhandle neck US +643004-1652423 America/Nome Alaska Time - west Alaska US +515248-1763929 America/Adak Aleutian Islands US +211825-1575130 Pacific/Honolulu Hawaii UY -3453-05611 America/Montevideo UZ +4120+06918 Asia/Tashkent VA +4154+01227 Europe/Vatican VC +1309-06114 America/St_Vincent VE +1030-06656 America/Caracas VG +1827-06437 America/Tortola VI +1821-06456 America/St_Thomas VN +1045+10640 Asia/Saigon VU -1740+16825 Pacific/Efate WF -1318-17610 Pacific/Wallis WS -1350-17144 Pacific/Apia YE +1245+04512 Asia/Aden YT -1247+04514 Indian/Mayotte YU +4450+02030 Europe/Belgrade ZA -2615+02800 Africa/Johannesburg ZM -1525+02817 Africa/Lusaka ZW -1750+03103 Africa/Harare gcal-4.1/misc/wloc/wlocdrv1.awk0000664000000000000000000001065612353314150013326 00000000000000# $Id: wlocdrv1.awk 0.07 2000/03/23 00:00:07 tom Exp $ # # wlocdrv1.awk: Generates the `wloc' script text necessary to create # all location files which contain air line distances # and course angles between several geographic locations # around the world, by processing the ZONE file `zone.tab'. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `wlocdrv' and a DOS batch `wlocdrv.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # BEGIN { # # Define the default return values of this process. # EXIT_SUCCESS = 0 EXIT_FATAL = 2 # # Get possibly given command line arguments. # for (i=1 ; i < ARGC ; i++) { if (substr(ARGV[i], 1, 1) == "-") { if (substr(ARGV[i], 2, 1) == "a") shell = substr(ARGV[i], 3) else if (substr(ARGV[i], 2, 1) == "b") gcalresource = substr(ARGV[i], 3) else if (substr(ARGV[i], 2, 1) == "c") gcalprogram = substr(ARGV[i], 3) else if (substr(ARGV[i], 2, 1) == "d") precise = substr(ARGV[i], 3) else exit EXIT_FATAL } else break delete ARGV[i] } if (shell == 1) { rem = "#" header = "#! /bin/sh" } else { rem = "::" header = "@echo off" } printf "%s\n%s\n", header, rem printf "%s Air line distances between geographical locations for Gcal-2.20 or newer\n", rem } # # Main block. # { if (substr($0, 1, 1) != "#" && $0 != "") { location = $3 len = length(location) for (i=1 ; i <= len ; i++) { if (substr(location, i, 1) == "/") { len -= i location = substr(location, i+1, len) i = 1 } } loc = "" len = length(location) for (i=1 ; i <= len ; i++) { if (substr(location, i, 1) == "_") { loc = loc "\\" if (a == 0) loc = loc "\\" } loc = loc substr(location, i, 1) } cc = $1 printf "%s\n%s Location %s, %s\n%s\n", rem, rem, location, cc, rem outname = "" len = length(cc) for (i=1 ; i <= len ; i++) outname = outname tolower(substr(cc, i, 1)) outname = outname "-" len = length(loc) for (i=1 ; i <= len ; i++) { chr = tolower(substr(loc, i, 1)) if (chr == "\\") { outname = outname "_" if (shell == 1) i++ } else outname = outname chr } if (shell == 1) { printf "echo \"%s: creating the air line distance file \\`%s', please wait...\"\n", \ gcalprogram, outname printf "%s %s -QUx -Hno -f%s -r\\$a=%s-%s:\\$b=%s > %s\n", \ gcalprogram, precise, gcalresource, cc, loc, $2, outname } else { outname = substr(outname, 1, 8) printf "echo %s: creating the air line distance file `%s', please wait...\n", \ gcalprogram, outname printf "%s %s -QUx -Hno -f%s -r$a=%s-%s:$b=%s> %s\n", \ gcalprogram, precise, gcalresource, cc, loc, $2, outname } } } END { exit EXIT_SUCCESS } gcal-4.1/misc/wloc/wlocdrv.in0000664000000000000000000002344112353314150013065 00000000000000#! /bin/sh # # @configure_input@ # # $Id: wlocdrv.in 0.08 2000/06/14 00:00:08 tom Exp $ # # wlocdrv.in: Uses `wlocdrv1[.awk|.pl]' and `wlocdrv2[.awk|.pl]' # for processing the ZONE file `zone.tab' to generate the # Gcal resource file `wlocdrv.rc' and the `wloc' script text, # which creates location files containing air line distances # and course angles between several geographic locations # around the world. # # Usage: wlocdrv --help | --version # Usage: wlocdrv [--debug] [--precise] [ZONE-FILE] # # `--debug': Turn on shell debugging. # `--precise': Use more precise values. # # UN*X solution. # # Needs `test', `echo', `expr', `eval', `set', `rm', `chmod', `sed' # and `perl' or `awk' for processing! # # Returns 0 if processing was successfully. # Returns 1 in case an error occured while processing. # Returns 2 if neither Perl nor AWK are present for further processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Rm=rm Sed=sed Set=set Test=test Echo=echo Expr=expr Chmod=chmod # # Basically used texts. # packagedatamiscdir=@srcdir@ # PACKAGE=@PACKAGE@ VERSION=@VERSION@ transform=@program_transform_name@ # mydefaultname=wlocdrv # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.08 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # pool=$packagedatamiscdir/zone.tab runscriptname=wloc gcal_resource_file_suffix=.rc gcal_resource_file=$mydefaultname""$gcal_resource_file_suffix # info1="$myname: Generates the Gcal resource file \`$gcal_resource_file' and" info2="$myname: the \`$runscriptname' script text, which creates location" info3="$myname: files containing air line distances and course angles" info4="$myname: between several geographic locations around the world." info5="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--precise] [ZONE-FILE]" usage3="usage: $myname without ZONE-FILE uses file \`$pool' by default" # # Some constant values (EXIT_SUCCESS(==0) and EXIT_FATAL(==2) # are also returned by the processed AWK/Perl script. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval ThisGcal=../../src/@PACKAGE@ # Awk=@AWK@ Awk_script1=$mydefaultname""1.awk Awk_script2=$mydefaultname""2.awk # Perl=@PERL@ Perl_script1=$mydefaultname""1.pl Perl_script2=$mydefaultname""2.pl # # Let's check for command line arguments. # debug=no precise="" commands="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel | -he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$info5" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -precise=* | -precis=* | -preci=* | -prec=* | -pre=* | -pr=* | -p=* | \ -precise | -precis | -preci | -prec | -pre | -pr | -p | \ --precise=* | --precis=* | --preci=* | --prec=* | --pre=* | --pr=* | --p=* | \ --precise | --precis | --preci | --prec | --pre | --pr | --p) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi precise="--precise" shift ;; -*) $Echo "$myname: error: $option: invalid option, use --help to show usage" 1>&2 exit $EXIT_FAILURE ;; *) if $Test -z "$commands"; then commands="$option" else commands="$commands $option" fi esac done # # Get the number of commands given and assign them to the local variables. # cmd_number=0 cmd_1="" for cmd in $commands do if $Test -z "$cmd_1"; then cmd_1="$cmd" fi cmd_number=`$Expr $cmd_number + 1` done # # Enable tracing. # if $Test "$debug" = yes; then $Set -x else trap "$Rm -f $runscriptname $gcal_resource_file;exit $EXIT_FAILURE" 1 2 15 fi # # Let's start processing now. # if $Test -n "$Awk" || $Test -n "$Perl"; then if $Test "$cmd_number" -gt 1; then $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$info5" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_FAILURE else if $Test "$cmd_number" -eq 1; then pool="$cmd_1" fi if $Test ! -s "$pool"; then $Echo "$myname: error: ZONE-FILE \`$pool' not found" 1>&2 exit $EXIT_FAILURE fi # # We prefer the use of Perl. # if $Test -n "$Perl"; then if $Test ! -s "$packagedatamiscdir/$Perl_script1"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Perl_script1' is missing" 1>&2 exit $EXIT_FAILURE fi if $Test ! -s "$packagedatamiscdir/$Perl_script2"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Perl_script2' is missing" 1>&2 exit $EXIT_FAILURE fi $Echo "$myname: generating the script text \`$runscriptname', please wait..." $Perl -- $packagedatamiscdir/$Perl_script1 -a1 -b./$gcal_resource_file -c$ThisGcal -d$precise $pool > $runscriptname status=$? if $Test "$status" -eq "$EXIT_FATAL"; then $Echo "$myinternalname: error: invalid option to \`$Perl' given" 1>&2 if $Test "$debug" = no; then $Rm -f $runscriptname fi exit $status else if $Test -s "$runscriptname"; then $Chmod u+x $runscriptname fi fi $Echo "$myname: generating the Gcal resource file \`$gcal_resource_file', please wait..." $Perl -- $packagedatamiscdir/$Perl_script2 -a1 -b$gcal_resource_file $pool > $gcal_resource_file status=$? if $Test "$status" -eq "$EXIT_FATAL"; then $Echo "$myinternalname: error: invalid option to \`$Perl' given" 1>&2 if $Test "$debug" = no; then $Rm -f $gcal_resource_file fi exit $status fi else if $Test ! -s "$packagedatamiscdir/$Awk_script1"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Awk_script1' is missing" 1>&2 exit $EXIT_FAILURE fi if $Test ! -s "$packagedatamiscdir/$Awk_script2"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Awk_script2' is missing" 1>&2 exit $EXIT_FAILURE fi $Echo "$myname: generating the script text \`$runscriptname', please wait..." $Awk -f $packagedatamiscdir/$Awk_script1 -- -a1 -b./$gcal_resource_file -c$ThisGcal -d$precise $pool > $runscriptname status=$? if $Test "$status" -eq "$EXIT_FATAL"; then $Echo "$myinternalname: error: invalid option to \`$Awk' given" 1>&2 if $Test "$debug" = no; then $Rm -f $runscriptname fi exit $status else if $Test -s "$runscriptname"; then $Chmod u+x $runscriptname fi fi $Echo "$myname: generating the Gcal resource file \`$gcal_resource_file', please wait..." $Awk -f $packagedatamiscdir/$Awk_script2 -- -a1 -b$gcal_resource_file $pool > $gcal_resource_file status=$? if $Test "$status" -eq "$EXIT_FATAL"; then $Echo "$myinternalname: error: invalid option to \`$Awk' given" 1>&2 if $Test "$debug" = no; then $Rm -f $gcal_resource_file fi exit $status fi fi fi exit $EXIT_SUCCESS else $Echo "$myinternalname: error: neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/wloc/wlocdrv.bat0000664000000000000000000001141212353314150013220 00000000000000@echo off :: $Id: wlocdrv.bat 0.06 2000/03/23 00:00:06 tom Exp $ :: :: wlocdrv.bat: Uses `wlocdrv1.awk' and `wlocdrv2.awk' for processing :: the ZONE file `zone.tab' to generate the Gcal resource :: file `wlocdrv.rc' and the `wloc' script text, which :: creates location files containing air line distances :: and course angles between several geographic locations :: around the world. :: :: Usage: wlocdrv --help :: Usage: wlocdrv [--precise] [ZONE-FILE] :: :: `--precise': Use more precise values. :: :: :: MS-DOS solution. :: :: Needs `gawk' for processing! :: :: Copyright (c) 2000 Thomas Esken :: Im Hagenfeld 84 :: D-48147 M"unster :: GERMANY :: :: This software doesn't claim completeness, correctness or usability. :: On principle I will not be liable for ANY damages or losses (implicit :: or explicit), which result from using or handling my software. :: If you use this software, you agree without any exception to this :: agreement, which binds you LEGALLY !! :: :: This program is free software; you can redistribute it and/or modify :: it under the terms of the `GNU General Public License' as published by :: the `Free Software Foundation'; either version 3, or (at your option) :: any later version. :: :: You should have received a copy of the `GNU General Public License' :: along with this program; if not, write to the: :: :: :: :: Basically used programs, set these environment variables properly! :: set _=gcal set -=gawk set oldawkpath=%awkpath% set awkpath=.;c:\dos :: :: Generic file names, set these environment variables properly! :: set myname=%0 set mydefaultname=wlocdrv :: :: Output/script file names, set these environment variables properly! :: set runscriptname=wloc set gcalresource=%mydefaultname%.rc set outfile=%runscriptname%.bat :: :: Input file names, set these environment variables properly! :: set pool=zone.tab set awkscript1=%mydefaultname%1.awk set awkscript2=%mydefaultname%2.awk :: if %1"" == "" goto next1 if %1 == --help goto usage if %1 == --HELP goto usage if %1 == --hel goto usage if %1 == --HEL goto usage if %1 == --he goto usage if %1 == --HE goto usage if %1 == --h goto usage if %1 == --H goto usage if %1 == -h goto usage if %1 == -H goto usage if %1 == /h goto usage if %1 == /H goto usage if %1 == -? goto usage if %1 == /? goto usage if %1 == ? goto usage :: if %1 == --precise goto next0 if %1 == --precis goto next0 if %1 == --preci goto next0 if %1 == --prec goto next0 if %1 == --pre goto next0 if %1 == --pr goto next0 if %1 == -precise goto next0 if %1 == -precis goto next0 if %1 == -preci goto next0 if %1 == -prec goto next0 if %1 == -pre goto next0 if %1 == -pr goto next0 goto next0a :: :next0 set precise=--precise shift if %1"" == "" goto next1 :: :next0a if exist %1 goto next0b echo %myname%: error: ZONE-FILE `%1' not found goto eof :: :next0b set pooltmp=%1 shift if ""%1 == "" goto next0c goto usage :next0c set pool=%pooltmp% set pooltmp= goto next2 :: :next1 if exist %pool% goto next2 echo %myname%: error: file `%pool%' is missing goto eof :: :next2 if exist %awkscript1% goto next3 echo %myname%: error: file `%awkscript1%' is missing goto eof :: :next3 if exist %awkscript2% goto start echo %myname%: error: file `%awkscript2%' is missing goto eof :: :start echo %myname%: generating the script text `%outfile%', please wait... %-% -f %awkscript1% -- -a0 -b.\%gcalresource% -c%_% -d%precise% %pool%> %outfile% if errorlevel 2 goto msg1 echo %myname%: generating the Gcal resource file `%gcalresource%', please wait... %-% -f %awkscript2% -- -a0 -b%gcalresource% %pool%> %gcalresource% if errorlevel 2 goto msg2 goto eof :: :msg1 echo %myname%: error: invalid option to `%-%' given if exist %outfile% del %outfile%> NUL: goto eof :: :msg2 echo %myname%: error: invalid option to `%-%' given if exist %gcalresource% del %gcalresource%> NUL: goto eof :: :usage echo %myname%: Generates the Gcal resource file `%gcalresource%' and echo %myname%: the `%outfile%' script text, which creates location echo %myname%: files containing air line distances and course angles echo %myname%: between several geographic locations around the world. echo %myname%: echo usage: %myname% [--precise] [ZONE-FILE] echo usage: %myname% without ZONE-FILE uses file `%pool%' by default :: :eof :: set precise= set awkscript2= set awkscript1= set pool= set outfile= set gcalresource= set runscriptname= set mydefaultname= set myname= set awkpath=%oldawkpath% set oldawkpath= set -= set _= gcal-4.1/misc/wloc/wlocdrv2.awk0000664000000000000000000000617612353314150013331 00000000000000# $Id: wlocdrv2.awk 0.06 2000/01/12 00:00:06 tom Exp $ # # wlocdrv2.awk: Generates the Gcal resource file `wlocdrv.rc' which # contains air line distances and course angles between # several geographic locations around the world, # by processing the ZONE file `zone.tab'. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `wlocdrv' and a DOS batch `wlocdrv.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # BEGIN { # # Define the default return values of this process. # EXIT_SUCCESS = 0 EXIT_FATAL = 2 # # Get possibly given command line arguments. # for (i=1 ; i < ARGC ; i++) { if (substr(ARGV[i], 1, 1) == "-") { if (substr(ARGV[i], 2, 1) == "a") a = substr(ARGV[i], 3) else if (substr(ARGV[i], 2, 1) == "b") b = substr(ARGV[i], 3) else exit EXIT_FATAL } else break delete ARGV[i] } printf "; %s, air line distances between geographical locations for Gcal-2.20 or newer\n;\n", b printf "; Either set `$f' to `%%>9*b0$b/$c km %%b1$b/$c $:15*c' or to\n" printf "; `%%>9*b*0$b/$c mi %%b1$b/$c $:15*c' for displaying using statute miles.\n;\n" printf "$f=%%>9*b0$b/$c km %%b1$b/$c $:15*c\n" printf ";$f=%%>9*b*0$b/$c mi %%b1$b/$c $:15*c\n" printf ";\n; The line templates.\n;\n" printf "$x=0 $a $:15*b $f $l\n" printf "0 $a $:15*b END~\n;\n; The locations.\n" } # # Main block. # { if (substr($0, 1, 1) != "#" && $0 != "") { location = $3 len = length(location) for (i=1 ; i <= len ; i++) { if (substr(location, i, 1) == "/") { len -= i location = substr(location, i+1, len) i = 1 } } printf ";\n; Location %s, %s\n;\n$l=%s-%s\n$c=%s\n$x\n", \ location, $1, $1, location, $2 } } END { exit EXIT_SUCCESS } gcal-4.1/misc/wloc/wlocdrv1.pl0000664000000000000000000001027012353314150013147 00000000000000# $Id: wlocdrv1.pl 0.06 2000/03/23 00:00:06 tom Exp $ # # wlocdrv1.pl: Generates the `wloc' script text necessary to create # all location files which contain air line distances # and course angles between several geographic locations # around the world, by processing the ZONE file `zone.tab'. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `wlocdrv' and a DOS batch `wlocdrv.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # $[ = 1; # set array base to 1 # # Define the default return values of this process. # $EXIT_SUCCESS = 0; $EXIT_FATAL = 2; # # Get possibly given command line arguments. # for ($i = 1; $i < ($#ARGV+1); $i++) { if (substr($ARGV[$i], 1, 1) eq '-') { if (substr($ARGV[$i], 2, 1) eq 'a') { $shell = substr($ARGV[$i], 3, 999999); } elsif (substr($ARGV[$i], 2, 1) eq 'b') { $gcalresource = substr($ARGV[$i], 3, 999999); } elsif (substr($ARGV[$i], 2, 1) eq 'c') { $gcalprogram = substr($ARGV[$i], 3, 999999); } elsif (substr($ARGV[$i], 2, 1) eq 'd') { $precise = substr($ARGV[$i], 3, 999999); } else { exit $EXIT_FATAL; } } else { last; } shift; $i--; } if ($shell == 1) { $rem = '#'; $header = '#! /bin/sh'; } else { $rem = '::'; $header = '@echo off'; } printf "%s\n%s\n", $header, $rem; printf "%s Air line distances between geographical locations for Gcal-2.20 or newer\n", $rem; # # Main block. # line: while (<>) { chop; # strip record separator @Fld = split(' ', $_, 9999); if (substr($_, 1, 1) ne '#' && $_ ne '') { $location = $Fld[3]; $len = length($location); for ($i = 1; $i <= $len; $i++) { if (substr($location, $i, 1) eq '/') { $len -= $i; $location = substr($location, $i + 1, $len); $i = 1; } } $loc = ''; $len = length($location); for ($i = 1; $i <= $len; $i++) { if (substr($location, $i, 1) eq '_') { $loc = $loc . "\\"; if ($a == 0) { $loc = $loc . "\\"; } } $loc = $loc . substr($location, $i, 1); } $cc = $Fld[1]; printf "%s\n%s Location %s, %s\n%s\n", $rem, $rem, $location, $cc, $rem; $outname = lc($cc) . '-'; $len = length($loc); for ($i = 1; $i <= $len; $i++) { $chr = lc(substr($loc, $i, 1)); if ($chr eq "\\") { $outname = $outname . '_'; if ($shell == 1) { $i++; } } else { $outname = $outname . $chr; } } if ($shell == 1) { printf "echo \"%s: creating the air line distance file \\`%s', please wait...\"\n", $gcalprogram, $outname; printf "%s %s -QUx -Hno -f%s -r\\\$a=%s-%s:\\\$b=%s > %s\n", $gcalprogram, $precise, $gcalresource, $cc, $loc, $Fld[2], $outname; } else { $outname = substr($outname, 1, 8); printf "echo %s: creating the air line distance file `%s', please wait...\n", $gcalprogram, $outname; printf "%s %s -QUx -Hno -f%s -r\$a=%s-%s:\$b=%s> %s\n", $gcalprogram, $precise, $gcalresource, $cc, $loc, $Fld[2], $outname; } } } exit $EXIT_SUCCESS; gcal-4.1/misc/wloc/wlocdrv0000664000000000000000000002343713041163626012472 00000000000000#! /bin/sh # # misc/wloc/wlocdrv. Generated from wlocdrv.in by configure. # # $Id: wlocdrv.in 0.08 2000/06/14 00:00:08 tom Exp $ # # wlocdrv.in: Uses `wlocdrv1[.awk|.pl]' and `wlocdrv2[.awk|.pl]' # for processing the ZONE file `zone.tab' to generate the # Gcal resource file `wlocdrv.rc' and the `wloc' script text, # which creates location files containing air line distances # and course angles between several geographic locations # around the world. # # Usage: wlocdrv --help | --version # Usage: wlocdrv [--debug] [--precise] [ZONE-FILE] # # `--debug': Turn on shell debugging. # `--precise': Use more precise values. # # UN*X solution. # # Needs `test', `echo', `expr', `eval', `set', `rm', `chmod', `sed' # and `perl' or `awk' for processing! # # Returns 0 if processing was successfully. # Returns 1 in case an error occured while processing. # Returns 2 if neither Perl nor AWK are present for further processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Rm=rm Sed=sed Set=set Test=test Echo=echo Expr=expr Chmod=chmod # # Basically used texts. # packagedatamiscdir=. # PACKAGE=gcal VERSION=4.1 transform=s,x,x, # mydefaultname=wlocdrv # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.08 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # pool=$packagedatamiscdir/zone.tab runscriptname=wloc gcal_resource_file_suffix=.rc gcal_resource_file=$mydefaultname""$gcal_resource_file_suffix # info1="$myname: Generates the Gcal resource file \`$gcal_resource_file' and" info2="$myname: the \`$runscriptname' script text, which creates location" info3="$myname: files containing air line distances and course angles" info4="$myname: between several geographic locations around the world." info5="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--precise] [ZONE-FILE]" usage3="usage: $myname without ZONE-FILE uses file \`$pool' by default" # # Some constant values (EXIT_SUCCESS(==0) and EXIT_FATAL(==2) # are also returned by the processed AWK/Perl script. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval ThisGcal=../../src/gcal # Awk=gawk Awk_script1=$mydefaultname""1.awk Awk_script2=$mydefaultname""2.awk # Perl=perl Perl_script1=$mydefaultname""1.pl Perl_script2=$mydefaultname""2.pl # # Let's check for command line arguments. # debug=no precise="" commands="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel | -he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$info5" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -precise=* | -precis=* | -preci=* | -prec=* | -pre=* | -pr=* | -p=* | \ -precise | -precis | -preci | -prec | -pre | -pr | -p | \ --precise=* | --precis=* | --preci=* | --prec=* | --pre=* | --pr=* | --p=* | \ --precise | --precis | --preci | --prec | --pre | --pr | --p) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi precise="--precise" shift ;; -*) $Echo "$myname: error: $option: invalid option, use --help to show usage" 1>&2 exit $EXIT_FAILURE ;; *) if $Test -z "$commands"; then commands="$option" else commands="$commands $option" fi esac done # # Get the number of commands given and assign them to the local variables. # cmd_number=0 cmd_1="" for cmd in $commands do if $Test -z "$cmd_1"; then cmd_1="$cmd" fi cmd_number=`$Expr $cmd_number + 1` done # # Enable tracing. # if $Test "$debug" = yes; then $Set -x else trap "$Rm -f $runscriptname $gcal_resource_file;exit $EXIT_FAILURE" 1 2 15 fi # # Let's start processing now. # if $Test -n "$Awk" || $Test -n "$Perl"; then if $Test "$cmd_number" -gt 1; then $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$info5" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_FAILURE else if $Test "$cmd_number" -eq 1; then pool="$cmd_1" fi if $Test ! -s "$pool"; then $Echo "$myname: error: ZONE-FILE \`$pool' not found" 1>&2 exit $EXIT_FAILURE fi # # We prefer the use of Perl. # if $Test -n "$Perl"; then if $Test ! -s "$packagedatamiscdir/$Perl_script1"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Perl_script1' is missing" 1>&2 exit $EXIT_FAILURE fi if $Test ! -s "$packagedatamiscdir/$Perl_script2"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Perl_script2' is missing" 1>&2 exit $EXIT_FAILURE fi $Echo "$myname: generating the script text \`$runscriptname', please wait..." $Perl -- $packagedatamiscdir/$Perl_script1 -a1 -b./$gcal_resource_file -c$ThisGcal -d$precise $pool > $runscriptname status=$? if $Test "$status" -eq "$EXIT_FATAL"; then $Echo "$myinternalname: error: invalid option to \`$Perl' given" 1>&2 if $Test "$debug" = no; then $Rm -f $runscriptname fi exit $status else if $Test -s "$runscriptname"; then $Chmod u+x $runscriptname fi fi $Echo "$myname: generating the Gcal resource file \`$gcal_resource_file', please wait..." $Perl -- $packagedatamiscdir/$Perl_script2 -a1 -b$gcal_resource_file $pool > $gcal_resource_file status=$? if $Test "$status" -eq "$EXIT_FATAL"; then $Echo "$myinternalname: error: invalid option to \`$Perl' given" 1>&2 if $Test "$debug" = no; then $Rm -f $gcal_resource_file fi exit $status fi else if $Test ! -s "$packagedatamiscdir/$Awk_script1"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Awk_script1' is missing" 1>&2 exit $EXIT_FAILURE fi if $Test ! -s "$packagedatamiscdir/$Awk_script2"; then $Echo "$myname: error: file \`$packagedatamiscdir/$Awk_script2' is missing" 1>&2 exit $EXIT_FAILURE fi $Echo "$myname: generating the script text \`$runscriptname', please wait..." $Awk -f $packagedatamiscdir/$Awk_script1 -- -a1 -b./$gcal_resource_file -c$ThisGcal -d$precise $pool > $runscriptname status=$? if $Test "$status" -eq "$EXIT_FATAL"; then $Echo "$myinternalname: error: invalid option to \`$Awk' given" 1>&2 if $Test "$debug" = no; then $Rm -f $runscriptname fi exit $status else if $Test -s "$runscriptname"; then $Chmod u+x $runscriptname fi fi $Echo "$myname: generating the Gcal resource file \`$gcal_resource_file', please wait..." $Awk -f $packagedatamiscdir/$Awk_script2 -- -a1 -b$gcal_resource_file $pool > $gcal_resource_file status=$? if $Test "$status" -eq "$EXIT_FATAL"; then $Echo "$myinternalname: error: invalid option to \`$Awk' given" 1>&2 if $Test "$debug" = no; then $Rm -f $gcal_resource_file fi exit $status fi fi fi exit $EXIT_SUCCESS else $Echo "$myinternalname: error: neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/moon/0000775000000000000000000000000013041164075011141 500000000000000gcal-4.1/misc/moon/moon.in0000664000000000000000000002623612353314150012366 00000000000000#! /bin/sh # # @configure_input@ # # $Id: moon.in 0.09 2000/03/24 00:00:09 tom Exp $ # # moon.in: Displays the dates at which the next Full Moon and New Moon # phases take place, plus some additionally information # about today's date. # # Usage: moon --help | version # Usage: moon [--debug] [--mail[=ADDRESS]] [more Gcal options...] # # `--debug': Turn on shell debugging. # `--mail[=ADDRESS]': EMail the result to the specified ADDRESS. # If no ADDRESS is given, eMail it to # $MAILTO, $USER or $LOGNAME. # # UN*X solution. # # Needs `rm', `cat', `set', `sed', `test', `echo', `eval', `expr', `grep', # `date', `mail', `gcal' and `perl' or `awk' for processing! # # Returns 0 if processing was successfully. # Returns 1 in case an error occured while processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Rm=rm Cat=cat Sed=sed Set=set Echo=echo Expr=expr Grep=grep Test=test # # Basically used texts. # PACKAGE=@PACKAGE@ VERSION=@VERSION@ transform=@program_transform_name@ # mydefaultname=moon # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.09 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # info1="$myname: Displays the dates at which the next Full Moon and" info2="$myname: New Moon phases take place, plus some additionally" info3="$myname: information about today's date." info4="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--mail[=ADDRESS]] [more Gcal options..]" # # Some constant values # EXIT_SUCCESS=0 EXIT_FAILURE=1 # # The used main programs. # Eval=eval Date=date ThisMail=mail ThisGcal=../../src/@PACKAGE@ # Awk=@AWK@ Perl=@PERL@ # # Set the temporary base filename. # tmpdir=/tmp # # Respect a $TMPDIR or a $TMP environment variable. # if $Test -n "$TMPDIR"; then tmpdir="$TMPDIR" else if $Test -n "$TMP"; then tmpdir="$TMP" fi fi # tmpdir=`$Echo "$tmpdir" | $Sed -e 's,/\$,,'` # tmpfile1="$tmpdir"/1-"$$"- tmpfile2="$tmpdir"/2-"$$"- tmpfile3="$tmpdir"/3-"$$" mailfile="$tmpdir"/m-"$$" # # Let's check for command line arguments. # debug=no mail=no opt_mail="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel | -he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$usage1" $Echo "$usage2" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -mail=* | -mai=* | -ma=* | -m=* | -mail | -mai | -ma | -m | \ --mail=* | --mai=* | --ma=* | --m=* | --mail | --mai | --ma | --m) if $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_mail="$optarg" mail=yes shift ;; esac done if $Test "$debug" = yes; then # # Enable tracing. # $Set -x else trap "$Rm -f $tmpfile1""* $tmpfile2""* $tmpfile3 $mailfile;exit $EXIT_FAILURE" 1 2 15 fi # # Let's start processing now. # # # Prints some information about today's date and the Moon phase. # if $Test "$mail" = yes; then $ThisGcal $* -f/dev/null -Hno -c-QUx \ '-#0@t %-\_ : Today is %K , %1%n%2 (J.D. %3%j%4, DOY %3%N %4, CW %1%k %2).' \ '-#0@t %-\_ : The Moon phase is %1%O %2.' > $mailfile else $ThisGcal $* -f/dev/null -c-QUx \ '-#0@t %-\_ : Today is %K , %1%n%2 (J.D. %3%j%4, DOY %3%N %4, CW %1%k %2).' \ '-#0@t %-\_ : The Moon phase is %1%O %2.' fi # # Prints the date of the next Full Moon and of the next New Moon phase. # if $Test -n "$Awk" || $Test -n "$Perl"; then # # Set some constant values. # level=0 # moon_marker=@ moon_text=Full # # And perform the processing. # while $Test "$level" -ne 2; do if $Test "$level" -eq 1; then moon_marker=! moon_text=New fi # # Check whether today is Full Moon resp., New Moon. # $ThisGcal $* -f/dev/null -#0_%O -QUx -I"$moon_marker" > /dev/null if $Test "$?" -eq 0; then $ThisGcal $* -f/dev/null -QUx "-#0@t %-\_ : Today (%n) is "$moon_text" Moon." fi # # Check if Full Moon/New Moon is up to the end of current month. # $ThisGcal $* -f/dev/null -#0*d1#999_%O -QUxm+ > $tmpfile1""$level $Grep $moon_marker $tmpfile1""$level > /dev/null if $Test "$?" -eq 0; then # # We prefer the use of Perl. # if $Test -n "$Perl"; then # # Full Moon/New Moon is up to the end of current month. # $Perl -e "\$found=0;\$moon_match=0;" \ -e "while(<>){chop;if(\$_=~/$moon_marker/){if(\$found==0)" \ -e "{\$moon_match=(\$.-\$FNRbase);\$found=1;}}}" \ -e "print \$moon_match;" $tmpfile1""$level > $tmpfile2""$level else # # Full Moon/New Moon is up to the end of current month. # $Awk "BEGIN{found=0;moon_match=0} \ {if(\$0~/"$moon_marker"/){if(found==0){moon_match=FNR;found=1}}} \ END{print moon_match}" $tmpfile1""$level > $tmpfile2""$level fi else # # Set the date to succeeding month. # month=`$ThisGcal $* -f/dev/null -QUx -#0_%M` MONTH=`$Expr $month + 1` if $Test "$MONTH" -eq 13; then year=`$ThisGcal $* -f/dev/null -QUx -#0_%Y` YEAR=`$Expr $year + 1` year=`$ThisGcal $* -f/dev/null -QUx -r\\$y=$YEAR -#'0 \$>04#y'` month=01 else year=0000 month=`$ThisGcal $* -f/dev/null -QUx -r\\$m=$MONTH -#'0 \$>02#m'` fi # # Full Moon/New Moon is in succeeding month. # $ThisGcal $* -f/dev/null -#0*d1#999_%O -QUxm %"$year""$month"01 >> $tmpfile1""$level # # We prefer the use of Perl. # if $Test -n "$Perl"; then $Perl -e "\$found=0;\$moon_match=0;" \ -e "while(<>){chop;if(\$_=~/$moon_marker/){if(\$found==0)" \ -e "{\$moon_match=(\$.-\$FNRbase);\$found=1;}}}" \ -e "print \$moon_match;" $tmpfile1""$level > $tmpfile2""$level else $Awk "BEGIN{found=0;moon_match=0} \ {if(\$0~/"$moon_marker"/){if(found==0){moon_match=FNR;found=1}}} \ END{print moon_match}" $tmpfile1""$level > $tmpfile2""$level fi fi # # Get the number of days the next Full Moon/New Moon phase is off # from today's date. # moon_date=`$Cat $tmpfile2""$level` tvar="\$f=in `$Echo $moon_date` day" if $Test "$moon_date" -ne 1; then tvar="$tvar""s" fi # # And print the result. # if $Test "$mail" = yes; then $ThisGcal $* -f/dev/null -Hno -QUx -r "$tvar" \ "-#0@t %-\_ : Next "$moon_text" Moon is on %1%n+"$moon_date"%2 (%3"\$f"%4)." >> $mailfile else $ThisGcal $* -f/dev/null -QUx -r "$tvar" \ "-#0@t %-\_ : Next "$moon_text" Moon is on %1%n+"$moon_date"%2 (%3"\$f"%4)." fi # # Remove temporary files. # if $Test "$debug" = no; then $Rm -f $tmpfile1""$level $tmpfile2""$level fi # # Increase the level. # level=`$Expr $level + 1` done else $Echo "$myname: cannot compute next Moon phases, neither \`perl' nor \`awk' available" 1>&2 fi # # Prints the number of days until New Year's Day of next year. # $ThisGcal $* -f/dev/null -QUxy -# '00001231 $d=%d' > $tmpfile3 $Echo '$d++' >> $tmpfile3 $Echo '0 %-_ : Only %1$d%2 days remaining until %3%n+$d%4 (J.D. %3%j+$d%4).' >> $tmpfile3 if $Test "$mail" = yes; then $ThisGcal $* -f $tmpfile3 -Hno -QUx >> $mailfile else $ThisGcal $* -f $tmpfile3 -QUx fi if $Test "$debug" = no; then $Rm -f $tmpfile3 fi # # Prints the number of days until New Year's Day 3000. # if $Test "$mail" = yes; then $ThisGcal $* -f/dev/null -Hno -QUx -u \ '-#30000101 %-\_ : Only %1%d%2 days remaining until %3%n%4 (J.D. %3%j%4).' \ 1 3000 >> $mailfile # # Detect the proper eMail address. # if $Test -n "$opt_mail"; then MailAddr="$opt_mail" else if $Test -n "$MAILTO"; then MailAddr="$MAILTO" else if $Test -n "$USER"; then MailAddr="$USER" else if $Test -n "$LOGNAME"; then MailAddr="$LOGNAME" else $Echo "$myname: warning: cannot send mail, address unknown" 1>&2 $Cat $mailfile if $Test "$debug" = no; then $Rm -f $mailfile fi exit $EXIT_FAILURE fi fi fi fi # # EMail the result. # if $Test -n "$MAILPROG"; then ThisMail="$MAILPROG" fi if $Test "$debug" = no; then $ThisMail -s "Mail from \`$myname' (`$Date`)" $MailAddr < $mailfile $Rm -f $mailfile fi $Echo "$myname: result sent by $ThisMail to \`$MailAddr'" else $ThisGcal $* -f/dev/null -QUx -u \ '-#30000101 %-\_ : Only %1%d%2 days remaining until %3%n%4 (J.D. %3%j%4).' \ 1 3000 fi exit $EXIT_SUCCESS gcal-4.1/misc/moon/moon.bat0000664000000000000000000001252312353314150012520 00000000000000@echo off :: $Id: moon.bat 0.07 2000/01/12 00:00:07 tom Exp $ :: :: moon.bat: Uses `moon1.awk' and `moon2.awk' for displaying the dates :: at which the next Full Moon and New Moon phases take place, :: plus some additionally information about today's date. :: :: Usage: moon --help :: Usage: moon [more Gcal options...] :: :: MS-DOS solution. :: :: Needs `gcal' and `gawk' for processing! :: :: Copyright (c) 2000 Thomas Esken :: Im Hagenfeld 84 :: D-48147 M"unster :: GERMANY :: :: This software doesn't claim completeness, correctness or usability. :: On principle I will not be liable for ANY damages or losses (implicit :: or explicit), which result from using or handling my software. :: If you use this software, you agree without any exception to this :: agreement, which binds you LEGALLY !! :: :: This program is free software; you can redistribute it and/or modify :: it under the terms of the `GNU General Public License' as published by :: the `Free Software Foundation'; either version 3, or (at your option) :: any later version. :: :: You should have received a copy of the `GNU General Public License' :: along with this program; if not, write to the: :: :: :: :: Basically used programs, set these environment variables properly! :: set _=gcal set oldgcalpath=%gcalpath% set gcalpath=. set -=gawk set oldawkpath=%awkpath% set awkpath=.;c:\dos :: :: Generic file names, set these environment variables properly! :: set myname=%0 set mydefaultname=moon :: :: Input file names, set these environment variables properly! :: set awkscript1=%mydefaultname%1.awk set awkscript2=%mydefaultname%2.awk :: if ""%1 == "" goto next0 if %1 == --help goto usage if %1 == --HELP goto usage if %1 == --hel goto usage if %1 == --HEL goto usage if %1 == --he goto usage if %1 == --HE goto usage if %1 == --h goto usage if %1 == --H goto usage if %1 == -h goto usage if %1 == -H goto usage if %1 == /h goto usage if %1 == /H goto usage if %1 == -? goto usage if %1 == /? goto usage if %1 == ? goto usage :: :next0 if exist %awkscript1% goto next1 echo %0: error: file `%awkscript1%' is missing goto eof :: :next1 if exist %awkscript2% goto start echo %0: error: file `%awkscript2%' is missing goto eof :: :start :: :: Prints some information about today's day. :: echo 0@t %%-_ : Today is %%K , %%1%%n%%2 (J.D. %%3%%j%%4, DOY %%3%%N %%4, CW %%1%%k %%2).>$$$mtxt %_% %1 %2 %3 -f$$$mtxt -QUx del $$$*>NUL: :: :: Prints today's Moon phase. :: %_% %1 %2 %3 -fNUL: -QUx -# "0@t %%-\_ : The Moon phase is %%1%%O %%2." :: :: Prints date of next Full Moon phase. :: set moon_marker=@ %_% %1 %2 %3 -fNUL: -QUx -# "0 %%O" -I%moon_marker%>NUL: if errorlevel 1 goto fm1: %_% %1 %2 %3 -fNUL: -QUx -# "0@t %%-\_ : Today (%%n) is Full Moon." :fm1 %_% %1 %2 %3 -fNUL: -QUxm+ -# "0*d1#999 %%O" -I%moon_marker%>NUL: if errorlevel 1 goto fm2: %_% %1 %2 %3 -fNUL: -QUxm+ -# "0*d1#999 %%O">$$$moon %-% -f%awkscript1% -vmoon=full $$$moon>$$$mres goto fm-result :fm2 %_% %1 %2 %3 -fNUL: -QUx -# "0 %%M %%>04*Y">$$$date %-% -f%awkscript2% $$$date>$$$@date %_% %1 %2 %3 -fNUL: -QUxm+ -# "0*d1#999 %%O">$$$moon %_% %1 %2 %3 -fNUL: -QUxm @$$$@date -# "0*d1#999 %%O">>$$$moon %-% -f%awkscript1% -vmoon=full $$$moon>$$$mres :fm-result echo 0@t %%-_ : Next Full Moon is on %%1%%n+$f%%2 (%%3in $f $t%%4).>$$$mtxt %_% %1 %2 %3 -f$$$mtxt @$$$mres -QUx del $$$moon>NUL: :: :: Prints date of next New Moon phase. :: set moon_marker=! %_% %1 %2 %3 -fNUL: -QUx -# "0 %%O" -I%moon_marker%>NUL: if errorlevel 1 goto nm1: %_% %1 %2 %3 -fNUL: -QUx -# "0@t %%-\_ : Today (%%n) is New Moon." :nm1 %_% %1 %2 %3 -fNUL: -QUxm+ -# "0*d1#999 %%O" -I%moon_marker%>NUL: if errorlevel 1 goto nm2: %_% %1 %2 %3 -fNUL: -QUxm+ -# "0*d1#999 %%O">$$$moon %-% -f%awkscript1% -vmoon=new $$$moon>$$$mres goto nm-result :nm2 if exist $$$date goto nm3 %_% %1 %2 %3 -fNUL: -QUx -# "0 %%M %%>04*Y">$$$date %-% -f%awkscript2% $$$date>$$$@date :nm3 %_% %1 %2 %3 -fNUL: -QUxm+ -# "0*d1#999 %%O">$$$moon %_% %1 %2 %3 -fNUL: -QUxm @$$$@date -# "0*d1#999 %%O">>$$$moon %-% -f%awkscript1% -vmoon=new $$$moon>$$$mres :nm-result echo 0@t %%-_ : Next New Moon is on %%1%%n+$f%%2 (%%3in $f $t%%4).>$$$mtxt %_% %1 %2 %3 -f$$$mtxt @$$$mres -QUx del $$$*>NUL: set moon_marker= :: :: Prints the number of days until New Year's Day of next year. :: %_% %1 %2 %3 -fNUL: -QUxy -# "00001231 $d=%%d">$$$mdays echo $d++>>$$$mdays echo 0 %%-_ : Only %%1$d%%2 days remaining until %%3%%n+$d%%4 (J.D. %%3%%j+$d%%4).>>$$$mdays %_% %1 %2 %3 -f$$$mdays -QUx del $$$*>NUL: :: :: Prints the number of days until New Year's Day 3000. :: echo 30000101 %%-_ : Only %%1%%d%%2 days remaining until %%3%%n%%4 (J.D. %%3%%j%%4).>$$$mtxt %_% %1 %2 %3 -f$$$mtxt -QUx -u 1 3000 del $$$*>NUL: goto eof :: :usage echo %myname%: Displays the dates at which the next Full Moon and echo %myname%: New Moon phases take place, plus some additionally echo %myname%: information about today's date. echo %myname%: echo usage: %myname% [more Gcal options...] :: :eof :: set awkscript2= set awkscript1= set mydefaultname= set myname= set awkpath=%oldawkpath% set oldawkpath= set -= set gcalpath=%oldgcalpath% set oldgcalpath= set _= gcal-4.1/misc/moon/moon1.awk0000664000000000000000000000301412353314150012610 00000000000000# $Id: moon1.awk 0.03 2000/01/12 00:00:03 tom Exp $ # # moon1.awk: Used by `moon.bat' for displaying the dates at which the next # Full Moon and New Moon phases take place, plus some # additionally information about today's date. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # BEGIN { found = 0 moon_match = 0 } $0 ~ /@/ { if (moon == "full") { if (found == 0) { moon_match = FNR found = 1 } } } $0 ~ /!/ { if (moon == "new") { if (found == 0) { moon_match = FNR found = 1 } } } END { if (moon_match == 1) printf "-r$f=%d:$t=day\n", moon_match else printf "-r$f=%d:$t=days\n", moon_match } gcal-4.1/misc/moon/moon0000664000000000000000000002623513041163626011765 00000000000000#! /bin/sh # # misc/moon/moon. Generated from moon.in by configure. # # $Id: moon.in 0.09 2000/03/24 00:00:09 tom Exp $ # # moon.in: Displays the dates at which the next Full Moon and New Moon # phases take place, plus some additionally information # about today's date. # # Usage: moon --help | version # Usage: moon [--debug] [--mail[=ADDRESS]] [more Gcal options...] # # `--debug': Turn on shell debugging. # `--mail[=ADDRESS]': EMail the result to the specified ADDRESS. # If no ADDRESS is given, eMail it to # $MAILTO, $USER or $LOGNAME. # # UN*X solution. # # Needs `rm', `cat', `set', `sed', `test', `echo', `eval', `expr', `grep', # `date', `mail', `gcal' and `perl' or `awk' for processing! # # Returns 0 if processing was successfully. # Returns 1 in case an error occured while processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Rm=rm Cat=cat Sed=sed Set=set Echo=echo Expr=expr Grep=grep Test=test # # Basically used texts. # PACKAGE=gcal VERSION=4.1 transform=s,x,x, # mydefaultname=moon # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.09 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # info1="$myname: Displays the dates at which the next Full Moon and" info2="$myname: New Moon phases take place, plus some additionally" info3="$myname: information about today's date." info4="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--mail[=ADDRESS]] [more Gcal options..]" # # Some constant values # EXIT_SUCCESS=0 EXIT_FAILURE=1 # # The used main programs. # Eval=eval Date=date ThisMail=mail ThisGcal=../../src/gcal # Awk=gawk Perl=perl # # Set the temporary base filename. # tmpdir=/tmp # # Respect a $TMPDIR or a $TMP environment variable. # if $Test -n "$TMPDIR"; then tmpdir="$TMPDIR" else if $Test -n "$TMP"; then tmpdir="$TMP" fi fi # tmpdir=`$Echo "$tmpdir" | $Sed -e 's,/\$,,'` # tmpfile1="$tmpdir"/1-"$$"- tmpfile2="$tmpdir"/2-"$$"- tmpfile3="$tmpdir"/3-"$$" mailfile="$tmpdir"/m-"$$" # # Let's check for command line arguments. # debug=no mail=no opt_mail="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel | -he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$usage1" $Echo "$usage2" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -mail=* | -mai=* | -ma=* | -m=* | -mail | -mai | -ma | -m | \ --mail=* | --mai=* | --ma=* | --m=* | --mail | --mai | --ma | --m) if $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_mail="$optarg" mail=yes shift ;; esac done if $Test "$debug" = yes; then # # Enable tracing. # $Set -x else trap "$Rm -f $tmpfile1""* $tmpfile2""* $tmpfile3 $mailfile;exit $EXIT_FAILURE" 1 2 15 fi # # Let's start processing now. # # # Prints some information about today's date and the Moon phase. # if $Test "$mail" = yes; then $ThisGcal $* -f/dev/null -Hno -c-QUx \ '-#0@t %-\_ : Today is %K , %1%n%2 (J.D. %3%j%4, DOY %3%N %4, CW %1%k %2).' \ '-#0@t %-\_ : The Moon phase is %1%O %2.' > $mailfile else $ThisGcal $* -f/dev/null -c-QUx \ '-#0@t %-\_ : Today is %K , %1%n%2 (J.D. %3%j%4, DOY %3%N %4, CW %1%k %2).' \ '-#0@t %-\_ : The Moon phase is %1%O %2.' fi # # Prints the date of the next Full Moon and of the next New Moon phase. # if $Test -n "$Awk" || $Test -n "$Perl"; then # # Set some constant values. # level=0 # moon_marker=@ moon_text=Full # # And perform the processing. # while $Test "$level" -ne 2; do if $Test "$level" -eq 1; then moon_marker=! moon_text=New fi # # Check whether today is Full Moon resp., New Moon. # $ThisGcal $* -f/dev/null -#0_%O -QUx -I"$moon_marker" > /dev/null if $Test "$?" -eq 0; then $ThisGcal $* -f/dev/null -QUx "-#0@t %-\_ : Today (%n) is "$moon_text" Moon." fi # # Check if Full Moon/New Moon is up to the end of current month. # $ThisGcal $* -f/dev/null -#0*d1#999_%O -QUxm+ > $tmpfile1""$level $Grep $moon_marker $tmpfile1""$level > /dev/null if $Test "$?" -eq 0; then # # We prefer the use of Perl. # if $Test -n "$Perl"; then # # Full Moon/New Moon is up to the end of current month. # $Perl -e "\$found=0;\$moon_match=0;" \ -e "while(<>){chop;if(\$_=~/$moon_marker/){if(\$found==0)" \ -e "{\$moon_match=(\$.-\$FNRbase);\$found=1;}}}" \ -e "print \$moon_match;" $tmpfile1""$level > $tmpfile2""$level else # # Full Moon/New Moon is up to the end of current month. # $Awk "BEGIN{found=0;moon_match=0} \ {if(\$0~/"$moon_marker"/){if(found==0){moon_match=FNR;found=1}}} \ END{print moon_match}" $tmpfile1""$level > $tmpfile2""$level fi else # # Set the date to succeeding month. # month=`$ThisGcal $* -f/dev/null -QUx -#0_%M` MONTH=`$Expr $month + 1` if $Test "$MONTH" -eq 13; then year=`$ThisGcal $* -f/dev/null -QUx -#0_%Y` YEAR=`$Expr $year + 1` year=`$ThisGcal $* -f/dev/null -QUx -r\\$y=$YEAR -#'0 \$>04#y'` month=01 else year=0000 month=`$ThisGcal $* -f/dev/null -QUx -r\\$m=$MONTH -#'0 \$>02#m'` fi # # Full Moon/New Moon is in succeeding month. # $ThisGcal $* -f/dev/null -#0*d1#999_%O -QUxm %"$year""$month"01 >> $tmpfile1""$level # # We prefer the use of Perl. # if $Test -n "$Perl"; then $Perl -e "\$found=0;\$moon_match=0;" \ -e "while(<>){chop;if(\$_=~/$moon_marker/){if(\$found==0)" \ -e "{\$moon_match=(\$.-\$FNRbase);\$found=1;}}}" \ -e "print \$moon_match;" $tmpfile1""$level > $tmpfile2""$level else $Awk "BEGIN{found=0;moon_match=0} \ {if(\$0~/"$moon_marker"/){if(found==0){moon_match=FNR;found=1}}} \ END{print moon_match}" $tmpfile1""$level > $tmpfile2""$level fi fi # # Get the number of days the next Full Moon/New Moon phase is off # from today's date. # moon_date=`$Cat $tmpfile2""$level` tvar="\$f=in `$Echo $moon_date` day" if $Test "$moon_date" -ne 1; then tvar="$tvar""s" fi # # And print the result. # if $Test "$mail" = yes; then $ThisGcal $* -f/dev/null -Hno -QUx -r "$tvar" \ "-#0@t %-\_ : Next "$moon_text" Moon is on %1%n+"$moon_date"%2 (%3"\$f"%4)." >> $mailfile else $ThisGcal $* -f/dev/null -QUx -r "$tvar" \ "-#0@t %-\_ : Next "$moon_text" Moon is on %1%n+"$moon_date"%2 (%3"\$f"%4)." fi # # Remove temporary files. # if $Test "$debug" = no; then $Rm -f $tmpfile1""$level $tmpfile2""$level fi # # Increase the level. # level=`$Expr $level + 1` done else $Echo "$myname: cannot compute next Moon phases, neither \`perl' nor \`awk' available" 1>&2 fi # # Prints the number of days until New Year's Day of next year. # $ThisGcal $* -f/dev/null -QUxy -# '00001231 $d=%d' > $tmpfile3 $Echo '$d++' >> $tmpfile3 $Echo '0 %-_ : Only %1$d%2 days remaining until %3%n+$d%4 (J.D. %3%j+$d%4).' >> $tmpfile3 if $Test "$mail" = yes; then $ThisGcal $* -f $tmpfile3 -Hno -QUx >> $mailfile else $ThisGcal $* -f $tmpfile3 -QUx fi if $Test "$debug" = no; then $Rm -f $tmpfile3 fi # # Prints the number of days until New Year's Day 3000. # if $Test "$mail" = yes; then $ThisGcal $* -f/dev/null -Hno -QUx -u \ '-#30000101 %-\_ : Only %1%d%2 days remaining until %3%n%4 (J.D. %3%j%4).' \ 1 3000 >> $mailfile # # Detect the proper eMail address. # if $Test -n "$opt_mail"; then MailAddr="$opt_mail" else if $Test -n "$MAILTO"; then MailAddr="$MAILTO" else if $Test -n "$USER"; then MailAddr="$USER" else if $Test -n "$LOGNAME"; then MailAddr="$LOGNAME" else $Echo "$myname: warning: cannot send mail, address unknown" 1>&2 $Cat $mailfile if $Test "$debug" = no; then $Rm -f $mailfile fi exit $EXIT_FAILURE fi fi fi fi # # EMail the result. # if $Test -n "$MAILPROG"; then ThisMail="$MAILPROG" fi if $Test "$debug" = no; then $ThisMail -s "Mail from \`$myname' (`$Date`)" $MailAddr < $mailfile $Rm -f $mailfile fi $Echo "$myname: result sent by $ThisMail to \`$MailAddr'" else $ThisGcal $* -f/dev/null -QUx -u \ '-#30000101 %-\_ : Only %1%d%2 days remaining until %3%n%4 (J.D. %3%j%4).' \ 1 3000 fi exit $EXIT_SUCCESS gcal-4.1/misc/moon/moon2.awk0000664000000000000000000000234012353314150012612 00000000000000# $Id: moon2.awk 0.04 2000/01/12 00:00:04 tom Exp $ # # moon2.awk: Used by `moon.bat' for displaying the dates at which the next # Full Moon and New Moon phases take place, plus some # additionally information about today's date. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # { if ($(NF-1)+1 <= 12) printf "%%%04d%02d1\n", $NF, $(NF-1)+1 else printf "%%%04d%02d1\n", $NF+1, 1 } gcal-4.1/misc/gcalmagic.add0000664000000000000000000000051112244130561012464 00000000000000# # GNU cal file types # # Shell script file 0 string #\ `gcal' Gcal shell script text 13 string #\ `gcal' Gcal shell script text # Response file 0 string ;\ `gcal' Gcal response file # Resource file (just a try) 0 string ;\ ct2gcal Gcal resource file 0 string ;\ cal2gcal Gcal resource file 0 string ; Gcal resource file gcal-4.1/misc/daily/0000775000000000000000000000000013041164075011273 500000000000000gcal-4.1/misc/daily/daily.in0000664000000000000000000002025412353314150012644 00000000000000#! /bin/sh # # @configure_input@ # # $Id: daily.in 0.12 2000/03/24 00:01:02 tom Exp $ # # daily.in: Uses `daily[.awk|.pl]' for processing Gcal resource file lines # used for time management of fixed dates stored in the fixed # `DATE-PART HH1:MM1,HH2:MM2,%n,%t FIXED-DATE-TEXT' format. # `HH1:MM1' is the time (HOUR:MINUTE) the fixed date takes place. # `HH2:MM2' is the time (HOUR:MINUTE) the fixed date is warned # in advance. The valid range of HOUR is 00...23, and the # valid range of MINUTE is 00...59. For example # `0 08:15,00:30,%n,%t Dentist' # creates a today's fixed date message of 30 minutes # starting at 07:45 until 08:15. # # Usage: daily --help | --version # Usage: daily [--debug] [--mail[=ADDRESS]] # [RESOURCE-FILE...] [more Gcal options...] # # `--debug': Turn on shell debugging. # `--mail[=ADDRESS]': If any fixed date messages are created, # eMail them to the specified ADDRESS. # If no ADDRESS is given, eMail them # to $MAILTO, $USER or $LOGNAME. # # UN*X solution. # # Needs `test', `echo', `eval', `set', `sed', `date', `mail', `gcal' # and `perl' or `awk' for processing! # # Returns 0 if one or more fixed date is active (returned by AWK/Perl script # if neither `--help' nor `--version' option was specified). # Returns 1 in case no fixed date is active (returned by AWK/Perl script). # Returns 2 if neither Perl nor AWK are present for further processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Sed=sed Set=set Test=test Echo=echo # # Basically used texts. # packagedatamiscdir=@srcdir@ # PACKAGE=@PACKAGE@ VERSION=@VERSION@ transform=@program_transform_name@ # mydefaultname=daily # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.12 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # gcal_resource_file_suffix=.rc gcal_resource_file=$mydefaultname""$gcal_resource_file_suffix info1="$myname: Time management of fixed dates, which are stored" info2="$myname: in a Gcal resource file by using the fixed format" info3="$myname: \`DATE-PART HH1:MM1,HH2:MM2,%n,%t FIXED-DATE-TEXT'." info4="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--mail[=ADDRESS]] [RESOURCE-FILE...] [more Gcal options..]" usage3="usage: $myname without RESOURCE-FILE uses file "\ "\`$packagedatamiscdir/$gcal_resource_file' by default" # # Some constant values (EXIT_SUCCESS(==0) and EXIT_FAILURE(==1) # are also returned by the processed AWK/Perl script. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval Date=date ThisMail=mail ThisGcal=../../src/@PACKAGE@ # Awk=@AWK@ Awk_script=$mydefaultname"".awk # Perl=@PERL@ Perl_script=$mydefaultname"".pl # # Let's check for command line arguments. # debug=no mail=no opt_mail="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel | -he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -mail=* | -mai=* | -ma=* | -m=* | -mail | -mai | -ma | -m | \ --mail=* | --mai=* | --ma=* | --m=* | --mail | --mai | --ma | --m) if $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_mail="$optarg" mail=yes shift ;; esac done # # Enable tracing. # if $Test "$debug" = yes; then $Set -x fi # # Let's start processing now. # if $Test -n "$Awk" || $Test -n "$Perl"; then ARGS="" CMDS="" FILS="" for arg in $* do case "$arg" in -*) ARGS="$ARGS $arg" ;; /*) ARGS="$ARGS $arg" ;; @*) ARGS="$ARGS $arg" ;; %*) ARGS="$ARGS $arg" ;; [0-9*]*) CMDS="$CMDS $arg" ;; *) if $Test -z "$FILS"; then FILS="$arg" else FILS="$FILS+$arg" fi esac done if $Test -z "$FILS"; then FILS=$packagedatamiscdir/$gcal_resource_file fi if $Test "$mail" = no; then ARGS="$ARGS -Hyes" fi # # We prefer the use of Perl. # if $Test -n "$Perl"; then result=`$ThisGcal $ARGS -QUax -f $FILS $CMDS | \ $Perl $packagedatamiscdir/$Perl_script` else result=`$ThisGcal $ARGS -QUax -f $FILS $CMDS | \ $Awk -f $packagedatamiscdir/$Awk_script` fi status=$? if $Test "$status" -eq "$EXIT_FAILURE"; then $Echo "$myname: no active fixed dates actually" 1>&2 else # # Detect the proper eMail address. # if $Test "$mail" = yes; then if $Test -n "$opt_mail"; then MailAddr="$opt_mail" else if $Test -n "$MAILTO"; then MailAddr="$MAILTO" else if $Test -n "$USER"; then MailAddr="$USER" else if $TEST -n "$LOGNAME"; then MailAddr="$LOGNAME" else $Echo "$myname: warning: cannot send mail, address unknown" 1>&2 $Echo "$result" 1>&2 exit $EXIT_FAILURE fi fi fi fi if $Test -n "$MAILPROG"; then ThisMail="$MAILPROG" fi if $Test "$debug" = no; then $Echo "$result" | $ThisMail -s "Mail from \`$myname' (`$Date`)" $MailAddr fi $Echo "$myname: active fixed dates sent by $ThisMail to \`$MailAddr'" else $Echo "$result" fi fi exit $status else $Echo "$myinternalname: error: neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/daily/daily.pl0000664000000000000000000001457712353314150012664 00000000000000# $Id: daily.pl 0.05 2000/01/12 00:00:05 tom Exp $ # # daily.pl: Processes Gcal resource file lines which are stored in the fixed # `DATE-PART HH1:MM1,HH2:MM2,%n,%t FIXED-DATE-TEXT' format. # `HH1:MM1' is the time (HOUR:MINUTE) the fixed date takes place. # `HH2:MM2' is the time (HOUR:MINUTE) the fixed date is warned # in advance. The valid range of HOUR is 00...23, and the # valid range of MINUTE is 00...59. For example # `0 08:15,00:30,%n,%t Dentist' # creates a today's fixed date message of 30 minutes # starting at 07:45 until 08:15. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `daily' and a DOS batch `daily.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # $[ = 1; # set array base to 1 # # Define the character Gcal uses to separate the file name # and the line number of the fixed dates' origin. # $GCAL_SEP = '#'; # # Define some constant values. # $HOURS_PER_DAY = 24; $MINUTES_PER_HOUR = 60; $MINUTES_PER_DAY = $HOURS_PER_DAY * $MINUTES_PER_HOUR; # # Define the default return value of this process, which is EXIT_FAILURE. # $EXIT_SUCCESS = 0; $EXIT_FAILURE = 1; # $exit_status = $EXIT_FAILURE; # # Main block. # while (<>) { chop; # strip record separator @Fld = split(/[ \n]/, $_, 9999); # # Skip all fields until the `HH1:MM1,HH2:MM2,%n,%t' timefield is detected. # $len_field = 0; $timefield = 1; if ($Fld[$timefield] =~ /[0-9]+\)/) { $len_field += (length($Fld[$timefield]) + 1); $timefield++; } while (substr($Fld[$timefield], 1, 1) !~ /[0-9]/ && $Fld[$timefield] ne '') { $len_field += (length($Fld[$timefield]) + 1); $timefield++; } if (substr($Fld[$timefield], 1, 1) =~ /[0-9]/) { $is_printed = 0; # # Compute the current time `minute of day'. # $actual = substr($Fld[$timefield], 25, 2) * $MINUTES_PER_HOUR + substr($Fld[$timefield], 28, 2); # # Compute the events time `minute of day'. # $event_hour = substr($Fld[$timefield], 1, 2); $event_minute = substr($Fld[$timefield], 4, 2); $event = $event_hour * $MINUTES_PER_HOUR + $event_minute; # # Compute the `number of minutes' the event must be displayed in advance. # $advance = substr($Fld[$timefield], 7, 2) * $MINUTES_PER_HOUR + substr($Fld[$timefield], 10, 2); # # Check whether the event is on tomorrow's day. # $tomorrows_event = 0; if ($event - $advance < 0) { $tomorrows_event = 1; } # # Pre-check whether the event must be displayed. # if ($event - $advance <= $actual && ($event >= $actual || $tomorrows_event == 1)) { # # Store today's date text. # $the_date = substr($Fld[$timefield], 13, 11); # # Store currents time text. # $the_time = substr($Fld[$timefield], 25, 5); # # Detect the length of `timefield' field which is removed in output. # $len_field += length($Fld[$timefield]) + 1; # # Compute some constant values and assign some texts. # $date_text_1 = ''; $date_text_2 = ''; $minutes_active = $advance - ($event - $actual); if ($tomorrows_event == 1) { # # Event was activated yesterday. # if ($minutes_active - $MINUTES_PER_DAY < 0) { $date_text_2 = 'yesterday '; } else { # # Event will occur tomorrow. # $minutes_active -= $MINUTES_PER_DAY; $date_text_1 = ' tomorrow'; } } # # Check again whether the event must be displayed. # if ($minutes_active <= $advance) { $is_printed = 1; # # Compute some more constant values. # $start_time = $event - $advance; if ($start_time < 0) { $start_time += $MINUTES_PER_DAY; } # # And print the results in formatted manner. # if ($. > 1) { printf "\n"; } if ($timefield != 1) { if ($Fld[1] =~ /^\(.+[#][0-9]+\)$/) { $file_name = ''; $file_line = ''; $mode = 0; $len = length($Fld[1]) - 1; for ($i = 2; $i <= $len; $i++) { if (substr($Fld[1], $i, 1) eq $GCAL_SEP) { $mode++; } else { if ($mode == 0) { $file_name = $file_name . substr($Fld[1], $i, 1); } else { $file_line = $file_line . substr($Fld[1], $i, 1); } } } $timefield--; printf "File: %s %d\n", $file_name, $file_line; } } printf "Date: %s\nTime: %s\n", $the_date, $the_time; $remaining = $event - $actual; if ($remaining < 0) { $remaining = $MINUTES_PER_DAY + ($event - $actual); } printf "Appointment at: %02d:%02d%s (in %d minutes)\n", $event_hour, $event_minute, $date_text_1, $remaining; printf "Activated since: %02d:%02d %s", $start_time / $MINUTES_PER_HOUR, $start_time % $MINUTES_PER_HOUR, $date_text_2; if ($advance > 0) { printf "(%d of %d minutes active)", $minutes_active, $advance; } printf "\nMessage text: "; if ($timefield != 1) { for ($i = 1; $i < $timefield; $i++) { printf "%s ", $Fld[$i]; } } printf "%s\n", substr($_, $len_field + 1, 999999); # # Set the return value of this process to EXIT_SUCCESS. # $exit_status = $EXIT_SUCCESS; } } } elsif ($is_printed == 1) { printf " %s\n", $_; } } exit $exit_status; gcal-4.1/misc/daily/daily0000664000000000000000000002024713041163626012246 00000000000000#! /bin/sh # # misc/daily/daily. Generated from daily.in by configure. # # $Id: daily.in 0.12 2000/03/24 00:01:02 tom Exp $ # # daily.in: Uses `daily[.awk|.pl]' for processing Gcal resource file lines # used for time management of fixed dates stored in the fixed # `DATE-PART HH1:MM1,HH2:MM2,%n,%t FIXED-DATE-TEXT' format. # `HH1:MM1' is the time (HOUR:MINUTE) the fixed date takes place. # `HH2:MM2' is the time (HOUR:MINUTE) the fixed date is warned # in advance. The valid range of HOUR is 00...23, and the # valid range of MINUTE is 00...59. For example # `0 08:15,00:30,%n,%t Dentist' # creates a today's fixed date message of 30 minutes # starting at 07:45 until 08:15. # # Usage: daily --help | --version # Usage: daily [--debug] [--mail[=ADDRESS]] # [RESOURCE-FILE...] [more Gcal options...] # # `--debug': Turn on shell debugging. # `--mail[=ADDRESS]': If any fixed date messages are created, # eMail them to the specified ADDRESS. # If no ADDRESS is given, eMail them # to $MAILTO, $USER or $LOGNAME. # # UN*X solution. # # Needs `test', `echo', `eval', `set', `sed', `date', `mail', `gcal' # and `perl' or `awk' for processing! # # Returns 0 if one or more fixed date is active (returned by AWK/Perl script # if neither `--help' nor `--version' option was specified). # Returns 1 in case no fixed date is active (returned by AWK/Perl script). # Returns 2 if neither Perl nor AWK are present for further processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Sed=sed Set=set Test=test Echo=echo # # Basically used texts. # packagedatamiscdir=. # PACKAGE=gcal VERSION=4.1 transform=s,x,x, # mydefaultname=daily # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.12 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # gcal_resource_file_suffix=.rc gcal_resource_file=$mydefaultname""$gcal_resource_file_suffix info1="$myname: Time management of fixed dates, which are stored" info2="$myname: in a Gcal resource file by using the fixed format" info3="$myname: \`DATE-PART HH1:MM1,HH2:MM2,%n,%t FIXED-DATE-TEXT'." info4="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--mail[=ADDRESS]] [RESOURCE-FILE...] [more Gcal options..]" usage3="usage: $myname without RESOURCE-FILE uses file "\ "\`$packagedatamiscdir/$gcal_resource_file' by default" # # Some constant values (EXIT_SUCCESS(==0) and EXIT_FAILURE(==1) # are also returned by the processed AWK/Perl script. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval Date=date ThisMail=mail ThisGcal=../../src/gcal # Awk=gawk Awk_script=$mydefaultname"".awk # Perl=perl Perl_script=$mydefaultname"".pl # # Let's check for command line arguments. # debug=no mail=no opt_mail="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel | -he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -mail=* | -mai=* | -ma=* | -m=* | -mail | -mai | -ma | -m | \ --mail=* | --mai=* | --ma=* | --m=* | --mail | --mai | --ma | --m) if $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_mail="$optarg" mail=yes shift ;; esac done # # Enable tracing. # if $Test "$debug" = yes; then $Set -x fi # # Let's start processing now. # if $Test -n "$Awk" || $Test -n "$Perl"; then ARGS="" CMDS="" FILS="" for arg in $* do case "$arg" in -*) ARGS="$ARGS $arg" ;; /*) ARGS="$ARGS $arg" ;; @*) ARGS="$ARGS $arg" ;; %*) ARGS="$ARGS $arg" ;; [0-9*]*) CMDS="$CMDS $arg" ;; *) if $Test -z "$FILS"; then FILS="$arg" else FILS="$FILS+$arg" fi esac done if $Test -z "$FILS"; then FILS=$packagedatamiscdir/$gcal_resource_file fi if $Test "$mail" = no; then ARGS="$ARGS -Hyes" fi # # We prefer the use of Perl. # if $Test -n "$Perl"; then result=`$ThisGcal $ARGS -QUax -f $FILS $CMDS | \ $Perl $packagedatamiscdir/$Perl_script` else result=`$ThisGcal $ARGS -QUax -f $FILS $CMDS | \ $Awk -f $packagedatamiscdir/$Awk_script` fi status=$? if $Test "$status" -eq "$EXIT_FAILURE"; then $Echo "$myname: no active fixed dates actually" 1>&2 else # # Detect the proper eMail address. # if $Test "$mail" = yes; then if $Test -n "$opt_mail"; then MailAddr="$opt_mail" else if $Test -n "$MAILTO"; then MailAddr="$MAILTO" else if $Test -n "$USER"; then MailAddr="$USER" else if $TEST -n "$LOGNAME"; then MailAddr="$LOGNAME" else $Echo "$myname: warning: cannot send mail, address unknown" 1>&2 $Echo "$result" 1>&2 exit $EXIT_FAILURE fi fi fi fi if $Test -n "$MAILPROG"; then ThisMail="$MAILPROG" fi if $Test "$debug" = no; then $Echo "$result" | $ThisMail -s "Mail from \`$myname' (`$Date`)" $MailAddr fi $Echo "$myname: active fixed dates sent by $ThisMail to \`$MailAddr'" else $Echo "$result" fi fi exit $status else $Echo "$myinternalname: error: neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/daily/daily.awk0000664000000000000000000001567512353314150013033 00000000000000# $Id: daily.awk 0.05 2000/01/12 00:00:05 tom Exp $ # # daily.awk: Processes Gcal resource file lines which are stored in the fixed # `DATE-PART HH1:MM1,HH2:MM2,%n,%t FIXED-DATE-TEXT' format. # `HH1:MM1' is the time (HOUR:MINUTE) the fixed date takes place. # `HH2:MM2' is the time (HOUR:MINUTE) the fixed date is warned # in advance. The valid range of HOUR is 00...23, and the # valid range of MINUTE is 00...59. For example # `0 08:15,00:30,%n,%t Dentist' # creates a today's fixed date message of 30 minutes # starting at 07:45 until 08:15. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `daily' and a DOS batch `daily.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # BEGIN { # # Define the field separator used (BLANK actually). # FS = " " # # Define the character Gcal uses to separate the file name # and the line number of the fixed dates' origin. # GCAL_SEP = "#" # # Define some constant values. # HOURS_PER_DAY = 24 MINUTES_PER_HOUR = 60 MINUTES_PER_DAY = HOURS_PER_DAY * MINUTES_PER_HOUR # # Define the default return value of this process, which is EXIT_FAILURE. # EXIT_SUCCESS = 0 EXIT_FAILURE = 1 # exit_status = EXIT_FAILURE } # # Main block. # { # # Skip all fields until the `HH1:MM1,HH2:MM2,%n,%t' timefield is detected. # len_field = 0 timefield = 1 if ($timefield ~ /[0-9]+\)/) { len_field += (length($timefield) + 1) timefield++ } while (substr($timefield, 1, 1) !~ /[0-9]/ && $timefield != "") { len_field += (length($timefield) + 1) timefield++ } if (substr($timefield, 1, 1) ~ /[0-9]/) { is_printed = 0 # # Compute the current time `minute of day'. # actual = substr($timefield, 25, 2) * MINUTES_PER_HOUR + substr($timefield, 28, 2) # # Compute the events time `minute of day'. # event_hour = substr($timefield, 1, 2) event_minute = substr($timefield, 4, 2) event = event_hour * MINUTES_PER_HOUR + event_minute # # Compute the `number of minutes' the event must be displayed in advance. # advance = substr($timefield, 7, 2) * MINUTES_PER_HOUR + substr($timefield, 10, 2) # # Check whether the event is on tomorrow's day. # tomorrows_event = 0 if (event-advance < 0) tomorrows_event = 1 # # Pre-check whether the event must be displayed. # if (event-advance <= actual && (event >= actual || tomorrows_event == 1)) { # # Store today's date text. # the_date = substr($timefield, 13, 11) # # Store currents time text. # the_time = substr($timefield, 25, 5) # # Detect the length of `timefield' field which is removed in output. # len_field += length($timefield) + 1 # # Compute some constant values and assign some texts. # date_text_1 = "" date_text_2 = "" minutes_active = advance - (event - actual) if (tomorrows_event == 1) { # # Event was activated yesterday. # if (minutes_active - MINUTES_PER_DAY < 0) date_text_2 = "yesterday " else { # # Event will occur tomorrow. # minutes_active -= MINUTES_PER_DAY date_text_1 = " tomorrow" } } # # Check again whether the event must be displayed. # if (minutes_active <= advance) { is_printed = 1 # # Compute some more constant values. # start_time = event - advance if (start_time < 0) start_time += MINUTES_PER_DAY # # And print the results in formatted manner. # if (NR > 1) printf "\n" if (timefield != 1) { if ($1 ~ /^\(.+[#][0-9]+\)$/) { file_name = "" file_line = "" mode = 0 len = length($1) - 1 for (i=2; i <= len ; i++) { if (substr($1, i, 1) == GCAL_SEP) mode++ else { if (mode == 0) file_name = file_name substr($1, i, 1) else file_line = file_line substr($1, i, 1) } } timefield-- printf "File: %s %d\n", file_name, file_line } } printf "Date: %s\nTime: %s\n", the_date, the_time remaining = event - actual if (remaining < 0) remaining = MINUTES_PER_DAY + (event - actual) printf "Appointment at: %02d:%02d%s (in %d minutes)\n", \ event_hour, event_minute, date_text_1, remaining printf "Activated since: %02d:%02d %s", \ start_time / MINUTES_PER_HOUR, start_time % MINUTES_PER_HOUR, date_text_2 if (advance > 0) printf "(%d of %d minutes active)", minutes_active, advance printf "\nMessage text: " if (timefield != 1) for (i=1; i < timefield; i++) printf "%s ", $i printf "%s\n", substr($0, len_field + 1) # # Set the return value of this process to EXIT_SUCCESS. # exit_status = EXIT_SUCCESS } } } else if (is_printed == 1) printf " %s\n", $0 } END { exit exit_status } gcal-4.1/misc/daily/daily.bat0000664000000000000000000000746712353314150013017 00000000000000@echo off :: $Id: daily.bat 0.07 2000/01/12 00:00:07 tom Exp $ :: :: daily.bat: Uses `daily.awk' for processing Gcal resource file lines used :: for time management of fixed dates stored in the fixed :: `DATE-PART HH1:MM1,HH2:MM2,%n,%t FIXED-DATE-TEXT' format. :: `HH1:MM1' is the time (HOUR:MINUTE) the fixed date takes place. :: `HH2:MM2' is the time (HOUR:MINUTE) the fixed date is warned :: in advance. The valid range of HOUR is 00...23, and the :: valid range of MINUTE is 00...59. For example :: `0 08:15,00:30,%n,%t Dentist' :: creates a today's fixed date message of 30 minutes :: starting at 07:45 until 08:15. :: :: Usage: daily --help :: Usage: daily [RESOURCE-FILE...] [more Gcal options...] :: :: MS-DOS solution. :: :: Needs `gcal' and `gawk' for processing! :: :: Copyright (c) 2000 Thomas Esken :: Im Hagenfeld 84 :: D-48147 M"unster :: GERMANY :: :: This software doesn't claim completeness, correctness or usability. :: On principle I will not be liable for ANY damages or losses (implicit :: or explicit), which result from using or handling my software. :: If you use this software, you agree without any exception to this :: agreement, which binds you LEGALLY !! :: :: This program is free software; you can redistribute it and/or modify :: it under the terms of the `GNU General Public License' as published by :: the `Free Software Foundation'; either version 3, or (at your option) :: any later version. :: :: You should have received a copy of the `GNU General Public License' :: along with this program; if not, write to the: :: :: :: :: Basically used programs, set these environment variables properly! :: set _=gcal set oldgcalpath=%gcalpath% set gcalpath=. set -=gawk set oldawkpath=%awkpath% set awkpath=.;c:\dos :: :: Generic file names, set these environment variables properly! :: set myname=%0 set mydefaultname=daily :: :: Input file names, set these environment variables properly! :: set awkscript=%mydefaultname%.awk set gcalresource=%mydefaultname%.rc :: if ""%1 == "" goto next0 if %1 == --help goto usage if %1 == --HELP goto usage if %1 == --hel goto usage if %1 == --HEL goto usage if %1 == --he goto usage if %1 == --HE goto usage if %1 == --h goto usage if %1 == --H goto usage if %1 == -h goto usage if %1 == -H goto usage if %1 == /h goto usage if %1 == /H goto usage if %1 == -? goto usage if %1 == /? goto usage if %1 == ? goto usage :: :next0 if exist %awkscript% goto next1 echo %myname%: error: file `%awkscript%' is missing goto eof :: :next1 if exist %gcalresource% goto start echo %myname%: error: file `%gcalresource%' is missing goto eof :: :start if ""%1 == "" goto default %_% -Hyes -QUax -f%1 %2 %3 %4 %5 %6 %7 %8 %9 >$$$tmp goto filter :: :default %_% -Hyes -QUax -f%gcalresource% %1 %2 %3 %4 %5 %6 %7 %8 %9 >$$$tmp :: :filter %-% -f%awkscript% $$$tmp if errorlevel 1 goto msg goto eof :: :msg echo %myname%: no active fixed dates actually goto eof :: :usage echo %myname%: Time management of fixed dates, which are stored echo %myname%: in a Gcal resource file by using the fixed format echo %myname%: `DATE-PART HH1:MM1,HH2:MM2,%%n,%%t FIXED-DATE-TEXT'. echo %myname%: echo usage: %myname% [RESOURCE-FILE...] [more Gcal options...] echo usage: %myname% without RESOURCE-FILE uses file `%gcalresource%' by default :: :eof :: if exist $$$tmp del $$$tmp >NUL: :: set gcalresource= set awkscript= set mydefaultname= set myname= set awkpath=%oldawkpath% set oldawkpath= set -= set gcalpath=%oldgcalpath% set oldgcalpath= set _= gcal-4.1/misc/daily/daily.rc0000664000000000000000000000176112244130561012645 00000000000000; daily.rc, time management of fixed dates demo for Gcal-2.20 or newer ; 0 00:00,22:15,%n,%t %1Fixed date %300 0 01:00,01:10,%n,%t %1Fixed date %301 0 02:00,00:45,%n,%t %1Fixed date %302 0 03:00,00:25,%n,%t %1Fixed date %303 0 04:00,05:05,%n,%t %1Fixed date %304 0 05:00,00:45,%n,%t %1Fixed date %305 0 06:00,00:15,%n,%t %1Fixed date %306 0 07:00,04:00,%n,%t %1Fixed date %307 0 08:00,01:45,%n,%t %1Fixed date %308 0 09:00,00:10,%n,%t %1Fixed date %309 0 10:00,00:20,%n,%t %1Fixed date %310 0 11:00,02:00,%n,%t %1Fixed date %311 0 12:00,01:15,%n,%t %1Fixed date %312 0 13:00,01:15,%n,%t %1Fixed date %313 0 14:00,00:03,%n,%t %1Fixed date %314 0 15:00,00:05,%n,%t %1Fixed date %315 0 16:00,00:55,%n,%t %1Fixed date %316 0 17:00,00:45,%n,%t %1Fixed date %317 0 18:00,00:35,%n,%t %1Fixed date %318 0 19:00,00:15,%n,%t %1Fixed date %319 0 20:00,00:05,%n,%t %1Fixed date %320 0 21:00,01:30,%n,%t %1Fixed date %321 0 22:00,08:00,%n,%t %1Fixed date %322 0 23:00,00:00,%n,%t %1Fixed date %323 gcal-4.1/misc/dst/0000775000000000000000000000000013041164075010763 500000000000000gcal-4.1/misc/dst/dst.in0000664000000000000000000002340512353314150012025 00000000000000#! /bin/sh # # @configure_input@ # # $Id: dst.in 0.09 2000/03/24 00:00:09 tom Exp $ # # dst.in: Uses `dst[.awk|.pl]' for processing ZONEINFO files and saves the # dates at which Daylight-Saving Times take place converted to the # Gcal fixed date format in a resource file. # # Usage: dst --help | --version # Usage: dst [--debug] [--before=DAYS] [--after=DAYS] ZONEINFO-FILE... # # `--debug': Turn on shell debugging. # `--before=DAYS': Display the fixed date up to number DAYS # before the Daylight-Saving Time is active. # If this option is not given, `--before=0' # is used by default. # `--after=DAYS': Display the fixed date up to number DAYS # after the Daylight-Saving Time is active. # If this option is not given, `--after=0' # is used by default. # # UN*X solution. # # Needs `test', `echo', `eval', `set', `sed', `mv', `rm', # `zdump', and `perl' or `awk' for processing! # # Returns 0 if any fixed dates are created (returned by AWK/Perl script # if neither `--help' nor `--version' option was specified). # Returns 1 in case no fixed dates are created (returned by AWK/Perl script). # Returns 2 if neither Zdump, or neither Perl nor AWK are present for # further processing. # # Copyright (c) 1998, 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Mv=mv Rm=rm Sed=sed Set=set Test=test Echo=echo # # Basically used texts. # packagedatamiscdir=@srcdir@ # PACKAGE=@PACKAGE@ VERSION=@VERSION@ transform=@program_transform_name@ # mydefaultname=dst # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.09 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # gcal_resource_file_suffix=.rc backup_suffix="~" # info1="$myname: Processes ZONEINFO files and saves the dates" info2="$myname: at which Daylight-Saving Times take place in" info3="$myname: a Gcal resource file by the name \`ZONEINFO-FILE""$gcal_resource_file_suffix'." info4="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--before=DAYS] [--after=DAYS] ZONEINFO-FILE..." usage3="usage: $myname without \`--before=DAYS' option uses \`--before=0' by default" usage4="usage: $myname without \`--after=DAYS' option uses \`--after=0' by default" # # Some constant values. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval ThisGcal=../../src/@PACKAGE@ # Zdump=@ZDUMP@ # Awk=@AWK@ Awk_script=$mydefaultname"".awk # Perl=@PERL@ Perl_script=$mydefaultname"".pl # # Let's check for command line arguments. # debug=no FILS="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel |-he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" $Echo "$usage4" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -before | -befor | -befo | -bef | -be | -b | \ --before | --befor | --befo | --bef | --be | --b) previous=before ;; -before=* | -befor=* | -befo=* | -bef=* | -be=* | -b=* | \ --before=* | --befor=* | --befo=* | --bef=* | --be=* | --b=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_before="$optarg" shift ;; -after | -afte | -aft | -af | -a | \ --after | --afte | --aft | --af | --a) previous=after ;; -after=* | -afte=* | -aft=* | -af=* | -a=* | \ --after=* | --afte=* | --aft=* | --af=* | --a=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_after="$optarg" shift ;; -* | /*) $Echo "$myname: error: $option: invalid option, use --help to show usage" 1>&2 exit $EXIT_FAILURE ;; *) if $Test -z "$FILS"; then FILS="$option" else FILS="$FILS $option" fi esac done if $Test -n "$previous"; then $Echo "$myname: error: missing argument to --$previous" 1>&2 exit $EXIT_FAILURE fi # # Enable tracing. # if $Test "$debug" = yes; then $Set -x fi # # Let's start processing now. # if $Test -n "$Zdump" && ($Test -n "$Awk" || $Test -n "$Perl"); then if $Test -z "$FILS"; then $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" $Echo "$usage4" exit $EXIT_FAILURE fi ARGS="" if $Test -n "$opt_after"; then arg=`$Echo "$opt_after" | $Sed -e 's/[0-9]//g'` if $Test -z "$arg"; then ARGS="-a""$opt_after" else $Echo "$myname: error: invalid option argument \`$opt_after' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE fi fi if $Test -n "$opt_before"; then arg=`$Echo "$opt_before" | $Sed -e 's/[0-9]//g'` if $Test -z "$arg"; then ARGS="$ARGS -b""$opt_before" else $Echo "$myname: error: invalid option argument \`$opt_before' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE fi fi # for file in $FILS do # # Design the name of the resulting Gcal resource file. # outfile="`$Echo $file | $Sed -e 's,.*/,,'`""$gcal_resource_file_suffix" # if $Test -s "$outfile" && \ $Test -f "$outfile" && \ $Test -r "$outfile"; then $Mv $outfile $outfile""$backup_suffix fi # if $Test "$debug" = no; then trap "$Rm -f $outfile; \ if $Test -s "$outfile""$backup_suffix" && \ $Test -f "$outfile""$backup_suffix" && \ $Test -r "$outfile""$backup_suffix"; \ then \ $Mv $outfile""$backup_suffix $outfile; \ fi;\ exit $EXIT_FAILURE" 1 2 15 fi # # We prefer the use of Perl. # if $Test -n "$Perl"; then $Echo "$myname: \``$Echo $Zdump | $Sed -e 's,.*/,,'`/$Perl' are working on \`$file' ..." 1>&2 $Zdump -v $file | $Perl -- $packagedatamiscdir/$Perl_script $ARGS > $outfile else $Echo "$myname: \``$Echo $Zdump | $Sed -e 's,.*/,,'`/$Awk' are working on \`$file' ..." 1>&2 $Zdump -v $file | $Awk -f $packagedatamiscdir/$Awk_script $ARGS > $outfile fi status=$? if $Test "$status" -eq "$EXIT_SUCCESS"; then $Echo "$myname: daylight-saving times found, \`$outfile' created" 1>&2 else if $Test "$status" -eq "$EXIT_FAILURE"; then $Echo "$myname: no daylight-saving times found in \`$file'" 1>&2 else if $Test -n "$Perl"; then $Echo "$myinternalname: error: invalid option \`$ARGS' to \`$Perl' given" 1>&2 else $Echo "$myinternalname: error: invalid option \`$ARGS' to \`$Awk' given" 1>&2 fi fi $Rm -f $outfile if $Test -s "$outfile""$backup_suffix" && \ $Test -f "$outfile""$backup_suffix" && \ $Test -r "$outfile""$backup_suffix"; then $Mv $outfile""$backup_suffix $outfile fi fi done exit $status else $Echo "$myinternalname: error: neither \`zdump', OR neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/dst/dst.pl0000664000000000000000000001643612353314150012040 00000000000000# $Id: dst.pl 0.04 2000/03/24 00:00:04 tom Exp $ # # dst.pl: Processes ZONEINFO files and converts any dates to the Gcal # fixed date format, at which Daylight-Saving Times take place. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `dst' which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # Initialization statements. # $[ = 1; # set array base to 1 # # Define the field separator used (BLANK actually). # $FS = ' '; # set field separator # # Define the default return value of this process, which is EXIT_FAILURE. # $EXIT_SUCCESS = 0; $EXIT_FAILURE = 1; $EXIT_FATAL = 2; # $exit_status = $EXIT_FAILURE; # # Define some more constant values. # $counter = 0; $dst2nor = 0; $is_first = 0; $do_print = 0; $dst_text = 'Daylight-Saving Time'; # $warn_before = 0; $warn_after = 0; # # Get possibly given command line arguments. # for ($i = 1; $i < ($#ARGV+1); $i++) { if (substr($ARGV[$i], 1, 1) eq '-') { if (substr($ARGV[$i], 2, 1) eq 'b') { $warn_before = substr($ARGV[$i], 3, 999999); } elsif (substr($ARGV[$i], 2, 1) eq 'a') { $warn_after = substr($ARGV[$i], 3, 999999); } else { exit $EXIT_FATAL; } } else { last; } shift; $i--; } # # Main block. # line: while (<>) { chop; # strip record separator @Fld = split(/[$FS]+/, $_, 9999); # # Initialization statements. # $act_loc_wd = $Fld[9]; $act_loc_mo = $Fld[10]; $act_loc_da = $Fld[11]; $act_loc_ti = $Fld[12]; $act_loc_ye = $Fld[13]; $act_loc_tz = $Fld[14]; $act_loc_ds = $Fld[15]; # if (substr($act_loc_ds, length($act_loc_ds), 1) eq '1') { $is_dst = 1; } else { $is_dst = 0; } if ($counter % 3) { $counter = 0; if ($is_dst == 1) { $do_print = 1; $result = &incr_time($pre_loc_wd, $pre_loc_da, $pre_loc_mo, $pre_loc_ye, $pre_loc_ti); } elsif ($dst2nor == 1) { $do_print = 1; } } else { $counter++; if ($is_dst == 1) { $dst2nor = 1; $result = &incr_time($act_loc_wd, $act_loc_da, $act_loc_mo, $act_loc_ye, $act_loc_ti); } } if ($do_print == 1) { $do_print = 0; $dst2nor = 0; $i = 1; # $the_year = ''; for (;;) { $ch = substr($result, $i++, 1); if ($ch eq $FS) { last; } $the_year = $the_year . $ch; } # $the_month = ''; for (;;) { $ch = substr($result, $i++, 1); if ($ch eq $FS) { last; } $the_month = $the_month . $ch; } # $the_day = ''; for (;;) { $ch = substr($result, $i++, 1); if ($ch eq $FS) { last; } $the_day = $the_day . $ch; } # $the_wd = ''; for (;;) { $ch = substr($result, $i++, 1); if ($ch eq $FS) { last; } $the_wd = $the_wd . $ch; } # $the_hour = ''; for (;;) { $ch = substr($result, $i++, 1); if ($ch eq $FS) { last; } $the_hour = $the_hour . $ch; } # $the_min = ''; for (;;) { $ch = substr($result, $i++, 1); if ($ch eq $FS) { last; } $the_min = $the_min . $ch; } # $the_sec = substr($result, $i, 999999); # if ($is_first == 0) { $is_first = 1; # # Set the return value of this process to EXIT_SUCCESS. # $exit_status = $EXIT_SUCCESS; # printf ";\n; `%s.rc' ---Daylight-Saving Times--- for Gcal-2.20 or newer\n;\n\$t=%s", $Fld[1], $dst_text; } printf "\n;\nd=%02d%d\n", $the_month, $the_day; if (($warn_before == 0) && ($warn_after == 0)) { printf "%04d\@d-%d#+%d \$t (%s->%s) %02d:%02d:%02d->%s", $the_year, $warn_before, $warn_after, $pre_loc_tz, $act_loc_tz, $the_hour, $the_min, $the_sec, $act_loc_ti; } else { printf "%04d\@d-%d#+%d %s, \$t (%s->%s) %02d:%02d:%02d->%s", $the_year, $warn_before, $warn_after, $the_wd, $pre_loc_tz, $act_loc_tz, $the_hour, $the_min, $the_sec, $act_loc_ti; } } # $pre_loc_wd = $act_loc_wd; $pre_loc_mo = $act_loc_mo; $pre_loc_da = $act_loc_da; $pre_loc_ti = $act_loc_ti; $pre_loc_ye = $act_loc_ye; $pre_loc_tz = $act_loc_tz; } if ($exit_status == $EXIT_SUCCESS) { printf "\n"; } exit $exit_status; # # Function implementations. # sub is_leap { local($year) = @_; if (($year % 4) || (!($year % 100) && ($year % 400))) { return 0; } 1; } # sub month_number { local($month_name) = @_; if ($month_name eq 'Jan') { return 1; } if ($month_name eq 'Feb') { return 2; } if ($month_name eq 'Mar') { return 3; } if ($month_name eq 'Apr') { return 4; } if ($month_name eq 'May') { return 5; } if ($month_name eq 'Jun') { return 6; } if ($month_name eq 'Jul') { return 7; } if ($month_name eq 'Aug') { return 8; } if ($month_name eq 'Sep') { return 9; } if ($month_name eq 'Oct') { return 10; } if ($month_name eq 'Nov') { return 11; } if ($month_name eq 'Dec') { return 12; } 0; } # sub incr_wd { local($wd) = @_; if ($wd eq 'Mon') { return 'Tue'; } if ($wd eq 'Tue') { return 'Wed'; } if ($wd eq 'Wed') { return 'Thu'; } if ($wd eq 'Thu') { return 'Fri'; } if ($wd eq 'Fri') { return 'Sat'; } if ($wd eq 'Sat') { return 'Sun'; } if ($wd eq 'Sun') { return 'Mon'; } 'ERR'; } # sub incr_time { local($wd, $day, $month, $year, $Time) = @_; $old_day = $day; $mo = &month_number($month); $hr = substr($Time, 1, 2); $mi = substr($Time, 4, 2); $se = substr($Time, 7, 2); $se++; if ($se > 59) { $se = 0; $mi++; } if ($mi > 59) { $mi = 0; $hr++; } if ($hr > 23) { $hr = 0; $day++; if (($day > 31) && ($mo == 1 || $mo == 3 || $mo == 5 || $mo == 7 || $mo == 8 || $mo == 10 || $mo == 12)) { $day = 1; $mo++; } elsif (($day > 30) && ($mo == 4 || $mo == 6 || $mo == 9 || $mo == 11)) { $day = 1; $mo++; } elsif (($day > 28) && ($mo == 2)) { if ((&is_leap($year) == 0) && ($day >= 29)) { $day = 1; $mo++; } elsif ($day > 29) { $day = 1; $mo++; } } if ($mo > 12) { $mo = 1; $year++; } } if ($old_day ne $day) { $wd = &incr_wd($wd); } $year . $FS . $mo . $FS . $day . $FS . $wd . $FS . $hr . $FS . $mi . $FS . $se; } gcal-4.1/misc/dst/dst.awk0000664000000000000000000001620712353314150012203 00000000000000# $Id: dst.awk 0.04 2000/03/24 00:00:04 tom Exp $ # # dst.awk: Processes ZONEINFO files and converts any dates to the Gcal # fixed date format, at which Daylight-Saving Times take place. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `dst' which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # Initialization statements. # BEGIN { # # Define the field separator used (BLANK actually). # FS = " " # # Define the default return value of this process, which is EXIT_FAILURE. # EXIT_SUCCESS = 0 EXIT_FAILURE = 1 EXIT_FATAL = 2 # exit_status = EXIT_FAILURE # # Define some more constant values. # counter = 0 dst2nor = 0 is_first = 0 do_print = 0 dst_text = "Daylight-Saving Time" # warn_before = 0 warn_after = 0 # # Get possibly given command line arguments. # for (i=1 ; i < ARGC ; i++) { if (substr(ARGV[i], 1, 1) == "-") { if (substr(ARGV[i], 2, 1) == "b") warn_before = substr(ARGV[i], 3) else if (substr(ARGV[i], 2, 1) == "a") warn_after = substr(ARGV[i], 3) else exit EXIT_FATAL } else break delete ARGV[i] } } # # Main block. # { act_loc_wd = $9 act_loc_mo = $10 act_loc_da = $11 act_loc_ti = $12 act_loc_ye = $13 act_loc_tz = $14 act_loc_ds = $15 # if (substr(act_loc_ds, length(act_loc_ds), 1) == "1") is_dst = 1 else is_dst = 0 if (counter % 3) { counter = 0 if (is_dst == 1) { do_print = 1 result = incr_time(pre_loc_wd, pre_loc_da, pre_loc_mo, pre_loc_ye, pre_loc_ti) } else if (dst2nor == 1) do_print = 1 } else { counter++ if (is_dst == 1) { dst2nor = 1 result = incr_time(act_loc_wd, act_loc_da, act_loc_mo, act_loc_ye, act_loc_ti) } } if (do_print == 1) { do_print = 0 dst2nor = 0 i = 1 # the_year = "" for (;;) { ch = substr(result, i++, 1) if (ch == FS) break the_year = the_year ch } # the_month = "" for (;;) { ch = substr(result, i++, 1) if (ch == FS) break the_month = the_month ch } # the_day = "" for (;;) { ch = substr(result, i++, 1) if (ch == FS) break the_day = the_day ch } # the_wd = "" for (;;) { ch = substr(result, i++, 1) if (ch == FS) break the_wd = the_wd ch } # the_hour = "" for (;;) { ch = substr(result, i++, 1) if (ch == FS) break the_hour = the_hour ch } # the_min = "" for (;;) { ch = substr(result, i++, 1) if (ch == FS) break the_min = the_min ch } # the_sec = substr(result, i) # if (is_first == 0) { is_first = 1 # # Set the return value of this process to EXIT_SUCCESS. # exit_status = EXIT_SUCCESS # printf ";\n; `%s.rc' ---Daylight-Saving Times--- for Gcal-2.20 or newer\n;\n$t=%s", \ $1, dst_text } printf "\n;\nd=%02d%d\n", the_month, the_day if ((warn_before == 0) && (warn_after == 0)) printf "%04d@d-%d#+%d $t (%s->%s) %02d:%02d:%02d->%s", \ the_year, warn_before, warn_after, \ pre_loc_tz, act_loc_tz, the_hour, the_min, the_sec, act_loc_ti else printf "%04d@d-%d#+%d %s, $t (%s->%s) %02d:%02d:%02d->%s", \ the_year, warn_before, warn_after, the_wd, \ pre_loc_tz, act_loc_tz, the_hour, the_min, the_sec, act_loc_ti } # pre_loc_wd = act_loc_wd pre_loc_mo = act_loc_mo pre_loc_da = act_loc_da pre_loc_ti = act_loc_ti pre_loc_ye = act_loc_ye pre_loc_tz = act_loc_tz } END { if (exit_status == EXIT_SUCCESS) printf "\n" exit exit_status } # # Function implementations. # function is_leap(year) { if ((year % 4) || (!(year % 100) && (year % 400))) return 0 return 1 } # function month_number(month_name) { if (month_name == "Jan") return 1 if (month_name == "Feb") return 2 if (month_name == "Mar") return 3 if (month_name == "Apr") return 4 if (month_name == "May") return 5 if (month_name == "Jun") return 6 if (month_name == "Jul") return 7 if (month_name == "Aug") return 8 if (month_name == "Sep") return 9 if (month_name == "Oct") return 10 if (month_name == "Nov") return 11 if (month_name == "Dec") return 12 return 0 } # function incr_wd(wd) { if (wd == "Mon") return "Tue" if (wd == "Tue") return "Wed" if (wd == "Wed") return "Thu" if (wd == "Thu") return "Fri" if (wd == "Fri") return "Sat" if (wd == "Sat") return "Sun" if (wd == "Sun") return "Mon" return "ERR" } # function incr_time(wd, day, month, year, time) { old_day = day mo = month_number(month) hr = substr(time, 1, 2) mi = substr(time, 4, 2) se = substr(time, 7, 2) se++ if (se > 59) { se = 0 mi++ } if (mi > 59) { mi = 0 hr++ } if (hr > 23) { hr = 0 day++ if ((day > 31) && (mo == 1 || mo == 3 || mo == 5 || mo == 7 || mo == 8 || mo == 10 || mo == 12)) { day = 1 mo++ } else if ((day > 30) && (mo == 4 || mo == 6 || mo == 9 || mo == 11)) { day = 1 mo++ } else if ((day > 28) && (mo == 2)) { if ((is_leap(year) == 0) && (day >= 29)) { day = 1 mo++ } else if (day > 29) { day = 1 mo++ } } if (mo > 12) { mo = 1 year++ } } if (old_day != day) wd = incr_wd(wd) return year FS mo FS day FS wd FS hr FS mi FS se } gcal-4.1/misc/dst/dst0000664000000000000000000002340213041163626011422 00000000000000#! /bin/sh # # misc/dst/dst. Generated from dst.in by configure. # # $Id: dst.in 0.09 2000/03/24 00:00:09 tom Exp $ # # dst.in: Uses `dst[.awk|.pl]' for processing ZONEINFO files and saves the # dates at which Daylight-Saving Times take place converted to the # Gcal fixed date format in a resource file. # # Usage: dst --help | --version # Usage: dst [--debug] [--before=DAYS] [--after=DAYS] ZONEINFO-FILE... # # `--debug': Turn on shell debugging. # `--before=DAYS': Display the fixed date up to number DAYS # before the Daylight-Saving Time is active. # If this option is not given, `--before=0' # is used by default. # `--after=DAYS': Display the fixed date up to number DAYS # after the Daylight-Saving Time is active. # If this option is not given, `--after=0' # is used by default. # # UN*X solution. # # Needs `test', `echo', `eval', `set', `sed', `mv', `rm', # `zdump', and `perl' or `awk' for processing! # # Returns 0 if any fixed dates are created (returned by AWK/Perl script # if neither `--help' nor `--version' option was specified). # Returns 1 in case no fixed dates are created (returned by AWK/Perl script). # Returns 2 if neither Zdump, or neither Perl nor AWK are present for # further processing. # # Copyright (c) 1998, 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Mv=mv Rm=rm Sed=sed Set=set Test=test Echo=echo # # Basically used texts. # packagedatamiscdir=. # PACKAGE=gcal VERSION=4.1 transform=s,x,x, # mydefaultname=dst # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.09 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # gcal_resource_file_suffix=.rc backup_suffix="~" # info1="$myname: Processes ZONEINFO files and saves the dates" info2="$myname: at which Daylight-Saving Times take place in" info3="$myname: a Gcal resource file by the name \`ZONEINFO-FILE""$gcal_resource_file_suffix'." info4="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--before=DAYS] [--after=DAYS] ZONEINFO-FILE..." usage3="usage: $myname without \`--before=DAYS' option uses \`--before=0' by default" usage4="usage: $myname without \`--after=DAYS' option uses \`--after=0' by default" # # Some constant values. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval ThisGcal=../../src/gcal # Zdump=/usr/sbin/zdump # Awk=gawk Awk_script=$mydefaultname"".awk # Perl=perl Perl_script=$mydefaultname"".pl # # Let's check for command line arguments. # debug=no FILS="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel |-he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" $Echo "$usage4" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -before | -befor | -befo | -bef | -be | -b | \ --before | --befor | --befo | --bef | --be | --b) previous=before ;; -before=* | -befor=* | -befo=* | -bef=* | -be=* | -b=* | \ --before=* | --befor=* | --befo=* | --bef=* | --be=* | --b=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_before="$optarg" shift ;; -after | -afte | -aft | -af | -a | \ --after | --afte | --aft | --af | --a) previous=after ;; -after=* | -afte=* | -aft=* | -af=* | -a=* | \ --after=* | --afte=* | --aft=* | --af=* | --a=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_after="$optarg" shift ;; -* | /*) $Echo "$myname: error: $option: invalid option, use --help to show usage" 1>&2 exit $EXIT_FAILURE ;; *) if $Test -z "$FILS"; then FILS="$option" else FILS="$FILS $option" fi esac done if $Test -n "$previous"; then $Echo "$myname: error: missing argument to --$previous" 1>&2 exit $EXIT_FAILURE fi # # Enable tracing. # if $Test "$debug" = yes; then $Set -x fi # # Let's start processing now. # if $Test -n "$Zdump" && ($Test -n "$Awk" || $Test -n "$Perl"); then if $Test -z "$FILS"; then $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" $Echo "$usage4" exit $EXIT_FAILURE fi ARGS="" if $Test -n "$opt_after"; then arg=`$Echo "$opt_after" | $Sed -e 's/[0-9]//g'` if $Test -z "$arg"; then ARGS="-a""$opt_after" else $Echo "$myname: error: invalid option argument \`$opt_after' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE fi fi if $Test -n "$opt_before"; then arg=`$Echo "$opt_before" | $Sed -e 's/[0-9]//g'` if $Test -z "$arg"; then ARGS="$ARGS -b""$opt_before" else $Echo "$myname: error: invalid option argument \`$opt_before' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE fi fi # for file in $FILS do # # Design the name of the resulting Gcal resource file. # outfile="`$Echo $file | $Sed -e 's,.*/,,'`""$gcal_resource_file_suffix" # if $Test -s "$outfile" && \ $Test -f "$outfile" && \ $Test -r "$outfile"; then $Mv $outfile $outfile""$backup_suffix fi # if $Test "$debug" = no; then trap "$Rm -f $outfile; \ if $Test -s "$outfile""$backup_suffix" && \ $Test -f "$outfile""$backup_suffix" && \ $Test -r "$outfile""$backup_suffix"; \ then \ $Mv $outfile""$backup_suffix $outfile; \ fi;\ exit $EXIT_FAILURE" 1 2 15 fi # # We prefer the use of Perl. # if $Test -n "$Perl"; then $Echo "$myname: \``$Echo $Zdump | $Sed -e 's,.*/,,'`/$Perl' are working on \`$file' ..." 1>&2 $Zdump -v $file | $Perl -- $packagedatamiscdir/$Perl_script $ARGS > $outfile else $Echo "$myname: \``$Echo $Zdump | $Sed -e 's,.*/,,'`/$Awk' are working on \`$file' ..." 1>&2 $Zdump -v $file | $Awk -f $packagedatamiscdir/$Awk_script $ARGS > $outfile fi status=$? if $Test "$status" -eq "$EXIT_SUCCESS"; then $Echo "$myname: daylight-saving times found, \`$outfile' created" 1>&2 else if $Test "$status" -eq "$EXIT_FAILURE"; then $Echo "$myname: no daylight-saving times found in \`$file'" 1>&2 else if $Test -n "$Perl"; then $Echo "$myinternalname: error: invalid option \`$ARGS' to \`$Perl' given" 1>&2 else $Echo "$myinternalname: error: invalid option \`$ARGS' to \`$Awk' given" 1>&2 fi fi $Rm -f $outfile if $Test -s "$outfile""$backup_suffix" && \ $Test -f "$outfile""$backup_suffix" && \ $Test -r "$outfile""$backup_suffix"; then $Mv $outfile""$backup_suffix $outfile fi fi done exit $status else $Echo "$myinternalname: error: neither \`zdump', OR neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/gcalltx/0000775000000000000000000000000013041164075011627 500000000000000gcal-4.1/misc/gcalltx/gcalltx.in0000664000000000000000000000604412353516564013552 00000000000000#!/bin/sh # # @configure.input@ # # gcalltx.in -- (C) Claus-Peter R"uckemann, 1996, 1998, 1999 # # version 1.5 # # This file may be distributed with Gcal under the terms # of the GNU public license. # # This script calls gcalltx.sed to convert 'gcal -n -u %0001 year' output to # LaTeX tabular output. # # UN*X solution. # packagedatamiscdir=@srcdir@ # PACKAGE=@PACKAGE@ VERSION=@VERSION@ transform=@program_transform_name@ # INSTALL_DATA="@INSTALL_DATA@" # Rm=rm Sed=sed Echo=echo Test=test Chmod=chmod # mydefaultname=gcalltx # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` # ThisGcal=../../src/@PACKAGE@ # Sed_script_in=$packagedatamiscdir/$mydefaultname"".sed Sed_script_out=$packagedatamiscdir/$mydefaultname"".cpr # SRCPERMS=`$Echo "$INSTALL_DATA" | $Sed -e 's,^.*/,,' -e 's/[^0-9]//g'` SRCPERMS2=0644 # trap "$Rm -f gcaltmp* $mydefaultname"".tex;exit 2" 1 2 15 # case "$#" in 1) GCAL= $ThisGcal -n -u %0001 --christian-holidays $* >gcaltmp ;; 2) GCAL= $ThisGcal -n -u %0001 --cc-holidays=$* >gcaltmp ;; 3) GCAL= $ThisGcal -n -u %0001 --christian-holidays --cc-holidays=$* >gcaltmp ;; *) $Echo "usage: $myname year"; $Echo " $myname country_code year"; $Echo " $myname country_code year --christian-holidays"; $Echo ""; $Echo "(1st usage provides only Christian holidays)"; $Echo "(2nd usage provides country_code holidays)"; $Echo "(3rd usage provides Christian and country_code holidays)"; $Echo ""; $Echo "country_codes is a country code or a list of country codes"; $Echo "as supported by \`$ThisGcal'."; $Echo ""; $Echo "Country codes are for example: BE ES FR"; $Echo ""; $Echo "A list of country codes can be created this way: BE+FR"; $Echo "(s. $PACKAGE-$VERSION documentation)"; exit 1;; esac if $Test "$?" -ne 0; then $Rm -f gcaltmp* $mydefaultname"".tex exit 2; fi # Added the two lines for 4-digits line numbers (BREAKPOINT & DEL) # $Sed "s/^/XYZ/g" gcaltmp >gcaltmp.tm1 $Sed "=" gcaltmp.tm1 >gcaltmp.tm2 # v--- breakpoint part $Echo "s/^\([5][0]\)/BREAKPOINT \1/g">gcaltmp.tm3 $Echo "s/^\([0-9][50][0]\)/BREAKPOINT \1/g">>gcaltmp.tm3 $Echo "s/^\([0-9][0-9][50][0]\)/BREAKPOINT \1/g">>gcaltmp.tm3 $Echo "/^[0-9]/d">>gcaltmp.tm3 $Echo "/^[0-9][0-9]/d">>gcaltmp.tm3 $Echo "/^[0-9][0-9][0-9]/d">>gcaltmp.tm3 $Echo "/^[0-9][0-9][0-9][0-9]/d">>gcaltmp.tm3 $Echo "s/^XYZ//">>gcaltmp.tm3 $Sed -f gcaltmp.tm3 gcaltmp.tm2 >gcaltmp # ^--- breakpoint part # if $Test ! -f "$Sed_script_out"; then if $Test -f "$Sed_script_in"; then $Sed -e '/^#.*[^\\]$/d' -e '/^#$/d' $Sed_script_in > $Sed_script_out if $Test -n "$SRCPERMS"; then $Chmod $SRCPERMS $Sed_script_out else $Chmod $SRCPERMS2 $Sed_script_out fi else $Echo "$myname: error: file \`$Sed_script_in' is missing" 2>&1 exit 2; fi fi $Sed -f $Sed_script_out gcaltmp >$mydefaultname"".tex $Rm -f gcaltmp* $Echo "$myname: Eternal holiday list written to file \`$mydefaultname"".tex'" ##EOF: gcal-4.1/misc/gcalltx/gcalltx.pl0000764000000000000000000006202213041164055013543 00000000000000#! /usr/bin/perl # # misc/gcalltx/gcalltxp. Generated from gcalltxp.in by configure. # eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; #============================================================================= # # gcalltx.pl -- (C) Claus-Peter R"uckemann, 1996, 1998, 1999 # # version 1.6 (superseeds previous gcalltx.sed 1.5 & gcalltx.in/sh 1.5) # # # This file may be distributed with Gcal under the terms # of the GNU public license. # # # This script may be used to convert 'gcal -n -u %0001 year' output to # LaTeX tabular output. # # Linux/UN*X solution. # # Tested on Linux (where else) 2.0.3* # with perl 5.*, bash 2.01.0*, teTeX 0.4*, LaTeX209 and LaTeX2e. # But others should do also. # # # This simple script converts 'gcal -n -u %0001 year' output to LaTeX # tabular/longtable output for gcal. Any but default configuration might # confuse this script. It has been created from a previous UN*X shell script # and sed script. This program has been tested with the German, English and # French catalogs of gcal under Linux, IBM/AIX, SUN/Solaris. # (MSDOgS/Win* untested so far. Remember you need some prerequisites on # these systems like a running perl 5.*, nl or below replacement and you # need to modify the $gcaltmp=`...`; calls for those systems I believe.) # It should accept all country codes gcal uses. # # It is *** not *** guaranteed that this script works for any other call than # the one given above and the ones given in the -help section but it could # easily be modified and extended for using your favorite PostScript fonts, # color, shading, tabulars modifications ... under LaTeX2e. # # For LaTeX2e longtable.sty is used when using the -longtable option. # For consistance with the older versions splitting can still be done by # introducing BREAKPOINT marks at defined offsets into the gcal output and # creating separate tabulars for LaTeX209. # If you are not satisfied with the different width of the tabulars in the # LaTeX209 version you could use *-form, p-columns or/and experiment with # \extracolsep without using the -longtable option and LaTeX2e. # The "breakpoint part" from the previous scripts has been reduced to a # minimum while not having changed the concept (nl is used instead of sed =). # Comment these parts and no splitting will be done. # If you comment the part called "breakpoint part" in the scripts # you could set \textheight to 28cm and \voffset to -3.0cm and change the # normalsize font environment in here to small (center has explicitly # been set to reduce memory usage -- page wise). # # If you modify this script you have to rename the modified version. # # Remarks: # -- No hassling anymore with 'empty last lines in different sed versions'. # -- This source uses 7-bit representations for 8-bit characters. # You can easily recognize them because they are translated into their # LaTeX counterpart. # -- If you extend take care in not mixing the codepages and language # dependend patterns too much. (This is still valid.) # -- This program is a lot faster than the previous sed version so you # should have no need anymore to commenting out language dependend stuff # for languages you do not need in order to increase speed :-). # # If you make any improvements I would like to hear from you. # But I do not (cannot) promise any support. # ruckema@uni-muenster.de # # # ODYSSEY: # # 19960807 CPR version 1.0 (sed/shell script) # 19961104 CPR version 1.1 (sed/shell script) # 19971218 CPR version 1.2 (sed/shell script) # 19980228 CPR version 1.2b (sed/shell script) # 19980626 CPR version 1.5 (sed/shell script) # 19990105 CPR version 1.6 (Perl) # Rewrite of gcalltx.sed (1.5) & gcalltx.in/sh (1.5) prototypes # (More or less a hack in order to migrate the shell script and # sed sources to Perl.) # This is going along with ;-): # Shell script and pattern (sed) script are *one* source now. # Less system calls. # 8-bit chars are represented as nice 7-bit HEX escapes now :-). # Usage of tmp files is completely reduced. # Future extensions should be easier and more portable (I hope). # A lot better performance. # 19990106 CPR -longtable # Added LaTeX2e longtable support. # 19990106 CPR -miscindex # Added index creation. # 19990107 CPR -makedvi # Added optional latex/makeindex calls.. # 19990108 CPR -longsample # Added list of country codes. Called it long*sample* because I # cannot guarantee if the list coded in here contains all of the # countries supported by gcal at any time. # 19990108 CPR Added short forms for the above options (-lt -mi -md -ls) # in order to reduce command line size. # 19990108 CPR Some of the LaTeX2e output has been successfully tested with # latex2html 98.1 without further preparation. # (gcalltx -longtable -miscindex DE+GB+MX+NO 1998+2001) # 19990108 CPR -stdout # Added switch to direct output to STDOUT instead of a LaTeX # file. This might be used for further postprocessing :-). # 19990227 tom Completed list of country codes. Ending message suppressed # in case -stdout option is used. Managed handling of a # transformed Gcal executable name which is other than `gcal'. # The new output column positions in the eternal holiday list # of the actual Gcal are respected now. # 19990322 tom Managed handling of a transformed script installation name # other than `gcalltx.pl'. # 19990602 tom Postprocessing of Czech `...Jan Hus...' holiday added for # removing an unnecessary tabular delimiter which was inserted # accidentially. # 19990917 tom Removed a typo in the help screen, added $VERSION, proper # management of `gcal' program call, working `--help' option. # 19991108 tom Removed the term ``standard holidays'' in all texts and added # more countries/territories to the `-longsample' option. # 19991121 CPR Checked usage with the new country codes. # Fixed new (AN_BO) into (AN\_BO) for the LaTeX results # as this would cause errors LaTeX'ing. # Checked the examples given with the standard help (--help/-?). # Working with the new country codes now. # Puuh, these lists are comfortably huge now. =B-) # 19991122 CPR Added rule to add those new country codes to the index. # Added new (Ast) (Chi) (Per) ... to the index. # # I might clean up the $gcaltmp and numberless print's one day. # #============================================================================= ############################################################################## # Numbering lines with. (Default is GNU nl -n rz for 000001 etc.) $appl_nl = "nl -n rz"; # In case you do not have GNU nl (number lines) take my tiny version # suitable for working with this script. It is appended to this script. #$appl_nl = "nlnrz.pl"; # or: #$appl_nl = "perl pathto...nlnrz.pl"; # Take the date string. $datenow=`date`; # LaTeX call. $appl_latex = "latex"; # Makeindex call. $appl_makeindex = "makeindex"; # Basename of the LaTeX output file. (Makes $outlatex.tex and $outlatex.dvi) $outlatex = "gcalltx"; ############################################################################## #----------------------------------------------------------------------------- $PACKAGE = "gcal"; $VERSION = "4.1"; $transform = "s,x,x,"; $myname = $0; $myname =~ s+.*/++g; $myname =~ $transform;$ PerlGcal="../../src/gcal" ; if ($PerlGcal ne '../../src/gcal') { $PerlGcal = $PACKAGE; $PerlGcal =~ $transform; } chop ($datenow); #----------------------------------------------------------------------------- # # Handle the cmdline switches. # while ($ARGV[0] =~ /^-/) { $_ = shift; last if /^--/ || /^-help/ || /^-h/ || /^-\?/; if (/^-n/) { $nflag++; next; } # # some additional switches # if (/^-longsample/ || /^-ls/) { $typeswitch='-longsample'; next; } if (/^-miscindex/ || /^-mi/) { $indexswitch='-miscindex'; next; } if (/^-longtable/ || /^-lt/) { $tableswitch='-longtable'; next; } if (/^-makedvi/ || /^-md/) { $actionswitch='-makedvi'; next; } if (/^-stdout/) { $devswitch='-stdout'; next; } die "I don't recognize this switch: $_\\n"; } $printit++ unless $nflag; #----------------------------------------------------------------------------- if (/^--help/ || /^--hel/ || /^--he/ || /^--h/ || /^-help/ || /^-h/ || /^-\?/) { print "usage: $myname [options] [country_codes] year_list [--christian-holidays]\n"; print "options: -longtable (-lt) Use LaTeX2e and longtable instead of BREAKPOINTS.\n"; print " -miscindex (-mi) Create a country and holiday index.\n"; print " -makedvi (-md) Create a DVI file by latex and makeindex.\n"; print " -longsample (-ls) Use a prepared long country_codes list.\n"; print " -stdout Direct output to STDOUT instead into a file.\n"; print "examples:\n"; print " $myname year\n"; print " Provides only Christian holidays.\n"; print " $myname country_code year\n"; print " Provides country_code Holidays.\n"; print " $myname country_code year --christian-holidays\n"; print " Provides Christian and country_code holidays.\n"; print " $myname -longsample -longtable -makedvi -miscindex FR 1999+2002\n"; print " Example if you have latex/makeindex/gcal in PATH.\n"; print " If you do not have latex/makeindex (yet) leave the -makedvi away.\n"; print " $myname -longsample -longtable -stdout -miscindex FR 1999+2002>myfile.tex\n"; print " Direct output into any other file. Also for using pipes and filters.\n"; print "country_codes is a country code or list of country codes as supported by \`$PerlGcal'.\n"; print "Country codes are for example: BE ES FR\n"; print "A list of country codes can be created by: BE+FR (s. $PACKAGE-$VERSION documentation).\n"; print "\n"; $nflag++; exit; next; } # # Number of args. # $ARGCOUNT=$#ARGV+1; if ($ARGCOUNT == 0) { } else { # # What we do with the arguments: # # #v--- -longsample # if ($typeswitch eq '-longsample') { $longsamplecodes="AD+AE+AF+AG+AI+AL+AM+AN_BO+AN_CU+AN_MA+AN_SA+AO+AR+AS+AT+AU_CT+AU_NT+AU_QU+AU_SA+AU_SW+AU_TA+AU_VI+AU_WA+AW+AZ+BA+BB+BD+BE+BF+BG+BH+BI+BJ+BM+BN+BO+BR+BS+BT+BV+BW+BY+BZ+CA_AL+CA_BC+CA_MA+CA_NB+CA_NF+CA_NS+CA_NW+CA_ON+CA_PE+CA_QU+CA_SA+CA_YU+CC+CD+CF+CG+CH_AG+CH_AI+CH_AR+CH_BE+CH_BL+CH_BS+CH_FR+CH_GE+CH_GL+CH_GR+CH_JU+CH_LU+CH_NE+CH_NW+CH_OW+CH_SG+CH_SH+CH_SO+CH_SZ+CH_TG+CH_TI+CH_UR+CH_VD+CH_VS+CH_ZG+CH_ZH+CI+CK+CL+CM+CN+CO+CR+CU+CV+CX+CY+CZ+DE_BB+DE_BE+DE_BW+DE_BY+DE_HB+DE_HE+DE_HH+DE_MV+DE_NI+DE_NW+DE_RP+DE_SH+DE_SL+DE_SN+DE_ST+DE_TH+DJ+DK+DM+DO+DZ+EC+EE+EG+EH+ER+ES+ET+FI+FJ+FK+FM+FO+FR+GA+GB_EN+GB_NI+GB_SL+GD+GE+GF+GH+GI+GL+GM+GN+GP+GQ+GR+GS+GT+GU+GW+GY+HK+HM+HN+HR+HT+HU+ID+IE+IL+IN+IQ+IR+IS+IT+JM+JO+JP+KE+KG+KH+KI+KM+KN+KP+KR+KW+KY+KZ+LA+LB+LC+LI+LK+LR+LS+LT+LU+LV+LY+MA+MC+MD+MG+MH+MK+ML+MN+MO+MP+MQ+MR+MS+MT+MU+MV+MW+MX+MY+MZ+NA+NC+NE+NF+NG+NI+NL+NM+NO+NP+NR+NU+NZ+OM+PA+PE+PF+PG+PH+PK+PL+PM+PN+PR+PT+PW+PY+QA+RE+RO+RU+RW+SA+SB+SC+SD+SE+SG+SH+SI+SJ+SK+SL+SM+SN+SO+SR+ST+SV+SY+SZ+TC+TD+TG+TH+TJ+TK+TM+TN+TO+TR+TT+TV+TW+TZ+UA+UG+US_AK+US_AL+US_AR+US_AZ+US_CA+US_CO+US_CT+US_DC+US_DE+US_FL+US_GA+US_HI+US_IA+US_ID+US_IL+US_IN+US_KS+US_KY+US_LA+US_MA+US_MD+US_ME+US_MI+US_MN+US_MO+US_MS+US_MT+US_NC+US_ND+US_NE+US_NH+US_NJ+US_NM+US_NV+US_NY+US_OH+US_OK+US_OR+US_PA+US_RI+US_SC+US_SD+US_TN+US_TX+US_UT+US_VA+US_VT+US_WA+US_WI+US_WV+US_WY+UY+UZ+VC+VE+VG+VI+VN+VU+WF+WS+YE+YT+YU+ZA+ZM+ZW+"; #print "debugsamplecodes: $longsamplecodes"; } else { $longsample=""; } # #^--- -longsample # if ($ARGCOUNT == 1) { $gcaltmp=`$PerlGcal -n -u %0001 --christian-holidays @ARGV|$appl_nl`; #print "debug1 $gcaltmp"; } if ($ARGCOUNT == 2) { $gcaltmp=`$PerlGcal -n -u %0001 --cc-holidays=$longsamplecodes@ARGV|$appl_nl`; #print "debug2 $gcaltmp"; } if ($ARGCOUNT == 3) { $gcaltmp=`$PerlGcal -n -u %0001 --christian-holidays --cc-holidays=$longsamplecodes@ARGV|$appl_nl`; #print "debug3 $gcaltmp"; } #----------------------------------------------------------------------------- # # added these lines for line numbers -> BREAKPOINT & DEL # # #v--- -longtable # if ($tableswitch eq '-longtable') { } # #^--- -longtable # else { # v--- breakpoint part # This is minimum now as numbers are fixed 6 digits now. # Temporary files like for the older sed -f gcalltx.sed gcaltmp >gcalltx.tex # are unnecessary now. $gcaltmp =~ s/([0-9][0-9][0-9][0-9][50][0])/BREAKPOINT $1/g; # ^--- breakpoint part } #----------------------------------------------------------------------------- # # headline # # old style: (sed) #s/^Eternal \(\\*.*\)$/\\hline\\multicolumn{7}{@{}c@{}}{{\\bf Eternal \1}}\\\\ \\hline/g #s/ The year //g # new style should be more flexible for different languages: #s/^\(\\*.*\): \(\\*.*\)$/\\hline\\multicolumn{7}{@{}c@{}}{{\\bf \1:\\hfill\\vphantom{\\large{\\"A}\\Huge{y}} \2}}\\\\ \\hline/g $gcaltmp =~ s/(.*): (.*)/\\hline\\multicolumn{7}{\@{}c\@{}}{{\\bf $1:\\hfill\\vphantom{\\large{\\\"A}\\Huge{y}} $2}}\\\\ \\hline/gm; # # example: # v--- output col44 #Eternal holiday list: The year 1996 is A leap year # #s/&/\\\&/g # & protected by $^\circ$-sign in order to save columnization: $gcaltmp =~ s/\&/\xB0/gm; # # for older gcal version #s/ is \(\\*.*\),/\& is \1,\&/g # $gcaltmp =~ s/ =(.*)$/ \& = \&$1\\\\/gm; $gcaltmp =~ s/[\xAE:](.*)[\xAF:]/ {\\it $1} /gm; $gcaltmp =~ s/[<](.*)[>]/ {\\bf $1} /gm; $gcaltmp =~ s/ ([0-9][0-9][0-9][0-9])$/ $1\&\&\\\\/gm; # # used for identifying lines of tables (additional marker could be used) # $gcaltmp =~ s/^(.*)$/$1%/gm; # # new string at left needs separation (en de etc.) # $gcaltmp =~ s/(.........................................)(.) (...), (...) (.*)\\\\%/$1\& \$$2\$ \& $3, \& $4 $5\\\\%/gm; $gcaltmp =~ s/(.........................................)(.) (..), (....)(.*)\\\\%/$1\& \$$2\$ \& $3, \&$4$5\\\\%/gm; # # example: (shows problems with formatting for different date formats) # v--- output col42 # LANG=en #New Year's Day (Std) + Mon, Jan : 1st:1996 = -296 days #All Fool's Day (Std) - Mon, Apr 1st 1996 = -205 days # LANG=de #Neujahr (Std) + Mo, 1 Jan 1996 = -301 Tage #1'ter April (Std) - Mo, 1 Apr 1996 = -210 Tage # LANG=fr #Jour de l'An (Sam) + Lu, : 1:Jan 1996 = -304 jours #Fête des Rois (Chr) - Sa, 6 Jan 1996 = -299 jours # # # correct single days # $gcaltmp =~ s/day\\\\%/day\\hphantom{s}\\\\%/g; $gcaltmp =~ s/Tag\\\\%/Tag\\hphantom{e}\\\\%/g; $gcaltmp =~ s/jour\\\\%/jours\\hphantom{s}\\\\%/g; # # month -- this part has been separated from the long patterns above because # it can also be used to specify the complete names of the month for the # use in the tabular. $gcaltmp =~ s/ Jan / Jan \&/g; $gcaltmp =~ s/ Feb / Feb \&/g; $gcaltmp =~ s/ F(.)v / F$1v \&/g; #$gcaltmp =~ s/ Mar / Mar \&/g; $gcaltmp =~ s/ M(.)r / M$1r \&/g; $gcaltmp =~ s/ Apr / Apr \&/g; $gcaltmp =~ s/ Avr / Avr \&/g; $gcaltmp =~ s/ May / May \&/g; $gcaltmp =~ s/ Mai / Mai \&/g; $gcaltmp =~ s/ Jun / Jun \&/g; $gcaltmp =~ s/ Jui / Jui \&/g; $gcaltmp =~ s/ Jul / Jul \&/g; $gcaltmp =~ s/ Aug / Aug \&/g; $gcaltmp =~ s/ Ao(.) / Ao$1 \&/g; $gcaltmp =~ s/ Sep / Sep \&/g; $gcaltmp =~ s/ Oct / Oct \&/g; $gcaltmp =~ s/ Okt / Okt \&/g; $gcaltmp =~ s/ Nov / Nov \&/g; #$gcaltmp =~ s/ Dec / Dec \&/g; $gcaltmp =~ s/ Dez / Dez \&/g; $gcaltmp =~ s/ D(.)c / D$1c \&/g; # # decide which one you want # $gcaltmp =~ s/\*/\\ast/g; $gcaltmp =~ s/#/\\#/g; # or #$gcaltmp =~ s/#/ /g; #$gcaltmp =~ s/\*/ /g; # $gcaltmp =~ s/\xB0/\\\&/g; # # #v--- -longtable # if ($tableswitch eq '-longtable') { } # #^--- -longtable else { # only needed when using breakpoints for splitting #$gcaltmp =~ s/^(.*)BREAKPOINT(.*)$/\\end{tabular}~\\\\ \\begin{tabular}{\@{}p{7.4cm}cr\@{~}r\@{~}r\@{}c\@{}r\@{}} % BREAKPOINT at line $2/g; $gcaltmp =~ s/BREAKPOINT (\d\d\d\d\d\d)/\\end{tabular}~\\\\ \\begin{tabular}{\@{}p{7.4cm}cr\@{~}r\@{~}r\@{}c\@{}r\@{}} % BREAKPOINT at line $1\n$1$2/g; } # # This accent (\'a) in iso latin is a little beta in cp437. It is used as sz in # Germany. We need to get sure this one to be a french accent here. Therefore # we can use the (DE) label to correct and hope those won't get more :-) $gcaltmp =~ s/^(.*)\xE1(\\*.*) (DE)/$1\\ss{}$2 (DE)/g; # # convert umlauts and other 8 bit from iso latin $gcaltmp =~ s/\xE4/\\"a/g; $gcaltmp =~ s/\xFC/\\"u/g; $gcaltmp =~ s/\xF6/\\"o/g; $gcaltmp =~ s/\xC4/\\"A/g; $gcaltmp =~ s/\xD6/\\"O/g; $gcaltmp =~ s/\xDC/\\"U/g; $gcaltmp =~ s/\xDF/\\ss{}/g; # $gcaltmp =~ s/\xE0/\\`a/g; $gcaltmp =~ s/\xE1/\\'a/g; $gcaltmp =~ s/\xE2/\\^a/g; $gcaltmp =~ s/\xC0/\\`A/g; $gcaltmp =~ s/\xC1/\\'A/g; $gcaltmp =~ s/\xC2/\\^A/g; $gcaltmp =~ s/\xE8/\\`e/g; $gcaltmp =~ s/\xE9/\\'e/g; $gcaltmp =~ s/\xEA/\\^e/g; $gcaltmp =~ s/\xC8/\\`E/g; $gcaltmp =~ s/\xC9/\\'E/g; $gcaltmp =~ s/\xCA/\\^E/g; $gcaltmp =~ s/\xEC/\\`{\\i}/g; $gcaltmp =~ s/\xED/\\'{\\i}/g; $gcaltmp =~ s/\xEE/\\^{\\i}/g; $gcaltmp =~ s/\xCC/\\`I/g; $gcaltmp =~ s/\xCD/\\'I/g; $gcaltmp =~ s/\xCE/\\^I/g; $gcaltmp =~ s/\xF2/\\`o/g; $gcaltmp =~ s/\xF3/\\'o/g; $gcaltmp =~ s/\xF4/\\^o/g; $gcaltmp =~ s/\xD2/\\`O/g; $gcaltmp =~ s/\xD3/\\'O/g; $gcaltmp =~ s/\xD4/\\^O/g; $gcaltmp =~ s/\xF9/\\`u/g; $gcaltmp =~ s/\xFA/\\'u/g; $gcaltmp =~ s/\xFB/\\^u/g; $gcaltmp =~ s/\xD9/\\`U/g; $gcaltmp =~ s/\xDA/\\'U/g; $gcaltmp =~ s/\xDB/\\^U/g; $gcaltmp =~ s/\xEB/\\"e/g; # # convert umlauts and other 8 bit from cp437 $gcaltmp =~ s/\x84/\\"a/g; $gcaltmp =~ s/\x8E/\\"A/g; $gcaltmp =~ s/\x94/\\"o/g; $gcaltmp =~ s/\x99/\\"O/g; $gcaltmp =~ s/\x81/\\"u/g; $gcaltmp =~ s/\x9A/\\"U/g; $gcaltmp =~ s/\xE1/\\ss{}/g; # $gcaltmp =~ s/\x85/\\`a/g; $gcaltmp =~ s/\xA0/\\'a/g; $gcaltmp =~ s/\x83/\\^a/g; #$gcaltmp =~ s//\\`A/g; #$gcaltmp =~ s//\\'A/g; #$gcaltmp =~ s//\\^A/g; $gcaltmp =~ s/\x8A/\\`e/g; $gcaltmp =~ s/\x82/\\'e/g; $gcaltmp =~ s/\x88/\\^e/g; #$gcaltmp =~ s//\\`E/g; $gcaltmp =~ s/\x90/\\'E/g; #$gcaltmp =~ s//\\^E/g; $gcaltmp =~ s/\x8D/\\`{\\i}/g; $gcaltmp =~ s/\xA1/\\'{\\i}/g; $gcaltmp =~ s/\x8C/\\^{\\i}/g; #$gcaltmp =~ s//\\`I/g; #$gcaltmp =~ s//\\'I/g; #$gcaltmp =~ s//\\^I/g; $gcaltmp =~ s/\x95/\\`o/g; $gcaltmp =~ s/\xA2/\\'o/g; $gcaltmp =~ s/\x93/\\^o/g; #$gcaltmp =~ s//\\`O/g; #$gcaltmp =~ s//\\'O/g; #$gcaltmp =~ s//\\^O/g; $gcaltmp =~ s/\x97/\\`u/g; $gcaltmp =~ s/\xA3/\\'u/g; $gcaltmp =~ s/\x96/\\^u/g; #$gcaltmp =~ s//\\`U/g; #$gcaltmp =~ s//\\'U/g; #$gcaltmp =~ s//\\^U/g; $gcaltmp =~ s/\x8B/\\"{\\i}/g; $gcaltmp =~ s/\x89/\\"e/g; $gcaltmp =~ s/\x87/\\c{c}/g; $gcaltmp =~ s/\x80/\\c{C}/g; # # Postprocessing of Czech `...Jan Hus...' holiday for removing an unnecessary # tabular delimiter previously inserted in the text by reason this script # detected `Jan' and thought it would be a month name. # $gcaltmp =~ s/[Jj][Aa][Nn] &[Hh]/Jan H/g; # # # 19991121 CPR Make LaTeXable for new extended country codes: # $gcaltmp =~ s/([A-Z][A-Z])\_([A-Z][A-Z])/$1\\_$2/g; # # added these lines for line numbers -> BREAKPOINT & DEL and now for |nl # # v--- breakpoint part $gcaltmp =~ s/[0-9][0-9][0-9][0-9][0-9][0-9]\t//g; # ^--- breakpoint part #----------------------------------------------------------------------------- # #v--- -miscindex # if ($indexswitch eq '-miscindex') { # # do index entries *after* table has been created # $gcaltmp =~ s/\(([A-Z][A-Z])\)/($1)\\index{$1}\\index{Country Code!$1}/g; # 19991122 CPR Added DE_NW like country codes for index: $gcaltmp =~ s/\(([A-Z][A-Z])\_([A-Z][A-Z])\)/($1)\\index{$1}\\index{Country Code!$1}/g; $gcaltmp =~ s/\((Std)\)/($1)\\index{Std}/g; $gcaltmp =~ s/\((Chr)\)/($1)\\index{Chr}/g; # 19991122 CPR Added some new ones explicitly: $gcaltmp =~ s/\((OxO)\)/($1)\\index{OxA}/g; $gcaltmp =~ s/\((OxO)\)/($1)\\index{OxO}/g; $gcaltmp =~ s/\((OxN)\)/($1)\\index{OxN}/g; $gcaltmp =~ s/\((Ast)\)/($1)\\index{Ast}/g; $gcaltmp =~ s/\((Chi)\)/($1)\\index{Chi}/g; $gcaltmp =~ s/\((Per)\)/($1)\\index{Per}/g; $gcaltmp =~ s/\((Heb)\)/($1)\\index{Heb}/g; $gcaltmp =~ s/\((Isl)\)/($1)\\index{Isl}/g; # $gcaltmp =~ s/(.*) \(/$1\\index{$1} \(/g; } # #^--- -miscindex else { } #----------------------------------------------------------------------------- # # Automatically add newline on print. # $\ = "\n"; # #v--- -stdout # if ($devswitch eq '-stdout') { } # #^--- -stdout else { # # Use a defined file for output. # open(GCALLTXOUT, ">gcalltx.tex"); select(GCALLTXOUT); } #----------------------------------------------------------------------------- # # Output the LaTeX header. # print "%%"; print "%% gcal output converted with gcalltx (C) CPR, 1996, 1998, 1999 (v1.6)"; print "%% Output created: $datenow"; print "%%"; # #v--- -longtable # if ($tableswitch eq '-longtable') { print "\\documentclass{article}"; print "\\usepackage{longtable}"; print "\\usepackage{makeidx}"; print "\\makeindex"; print "\\textwidth=16cm\\textheight=22cm\\voffset=-0.5cm\\hoffset=-2.2cm\\parindent=0pt"; print "\\begin{document}"; print "\\begin{center}"; print "\\begin{normalsize}"; print "\\begin{longtable}{\@{}p{7.4cm}cr\@{~}r\@{~}r\@{}c\@{}r\@{}}"; # ^---- ^----^----^---- # c-column also no space for nice formatting # be ok. of current year *and* any year } # #^--- -longtable else { print "\\documentstyle[makeidx]{article}"; #print "\\nofiles"; print "\\makeindex"; print "\\textwidth=16cm\\textheight=22cm\\voffset=-0.5cm\\hoffset=-2.2cm\\parindent=0pt"; print "\\begin{document}"; print "\\begin{center}"; print "\\begin{normalsize}"; print "\\begin{tabular}{\@{}p{7.4cm}cr\@{~}r\@{~}r\@{}c\@{}r\@{}}"; # ^---- ^----^----^---- # c-column also no space for nice formatting # be ok. of current year *and* any year } #----------------------------------------------------------------------------- # # Output the results. # print $gcaltmp; #----------------------------------------------------------------------------- # # Output the LaTeX footer. # print "\\hline"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{\\centering\$+\$} Gesetzlicher Feiertag, der im gesamten Land g\\\"ultig ist.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{~} Legal holiday which is valid in the whole country.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{\\centering\$\\#\$} Gesetzlicher Feiertag, der \\\"uberwiegend im gesamten Land g\\\"ultig ist.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{~} Legal holiday which is valid in major parts of the whole country.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{\\centering\$\\ast\$} Gesetzlicher Feiertag, der nicht \\\"uberwiegend im gesamten Land g\\\"ultig ist.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{~} Legal holiday which is valid in minor parts of the whole country.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{\\centering\$-\$} Sonstiger Feiertag, der nur zu Erinnerungszwecken dient.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{~} Other holiday which serves for memorial or remarking purposes only.}\\\\"; # #v--- -longtable # if ($tableswitch eq '-longtable') { print "\\end{longtable}"; } # #^--- -longtable else { print "\\end{tabular}"; } print "\\end{normalsize}"; print "\\end{center}"; print "\\printindex"; print "\\end{document}"; print "%%EOF:"; # #v--- -stdout # if ($devswitch eq '-stdout') { } # #^--- -stdout else { close(GCALLTXOUT); } } # end of if ($ARGCOUNT == 0) #----------------------------------------------------------------------------- # # The end. # if ($ARGCOUNT == 0) { } else { if ($devswitch ne '-stdout') { print STDERR "$myname message: Eternal holiday list written to file $outlatex.tex"; } } #----------------------------------------------------------------------------- # # Optionally create the DVI file. # # #v--- -makedvi # if ($actionswitch eq '-makedvi') { # # those should be standard links # system("$appl_latex $outlatex"); system("$appl_makeindex $outlatex.idx"); system("$appl_latex $outlatex"); unlink("$outlatex.aux"); unlink("$outlatex.log"); unlink("$outlatex.ilg"); unlink("$outlatex.ind"); unlink("$outlatex.idx"); print STDERR "$myname message: $outlatex.dvi created from $outlatex.tex"; } # #^--- -makedvi else { } __END__ ##EOF: As promised above here is the tiny GNU nl -n rz replacment. #! /usr/bin/perl # # nlnrz.pl -- simple nl replacement -- (C) Claus-Peter R"uckemann, 1999 # eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; while (<>) { printf "%6.6d\t%s", $., $_; } ##EOF: gcal-4.1/misc/gcalltx/gcalltxp.in0000664000000000000000000006201212353516603013721 00000000000000#! /usr/bin/perl # # @configure_input@ # eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; #============================================================================= # # gcalltx.pl -- (C) Claus-Peter R"uckemann, 1996, 1998, 1999 # # version 1.6 (superseeds previous gcalltx.sed 1.5 & gcalltx.in/sh 1.5) # # # This file may be distributed with Gcal under the terms # of the GNU public license. # # # This script may be used to convert 'gcal -n -u %0001 year' output to # LaTeX tabular output. # # Linux/UN*X solution. # # Tested on Linux (where else) 2.0.3* # with perl 5.*, bash 2.01.0*, teTeX 0.4*, LaTeX209 and LaTeX2e. # But others should do also. # # # This simple script converts 'gcal -n -u %0001 year' output to LaTeX # tabular/longtable output for gcal. Any but default configuration might # confuse this script. It has been created from a previous UN*X shell script # and sed script. This program has been tested with the German, English and # French catalogs of gcal under Linux, IBM/AIX, SUN/Solaris. # (MSDOgS/Win* untested so far. Remember you need some prerequisites on # these systems like a running perl 5.*, nl or below replacement and you # need to modify the $gcaltmp=`...`; calls for those systems I believe.) # It should accept all country codes gcal uses. # # It is *** not *** guaranteed that this script works for any other call than # the one given above and the ones given in the -help section but it could # easily be modified and extended for using your favorite PostScript fonts, # color, shading, tabulars modifications ... under LaTeX2e. # # For LaTeX2e longtable.sty is used when using the -longtable option. # For consistance with the older versions splitting can still be done by # introducing BREAKPOINT marks at defined offsets into the gcal output and # creating separate tabulars for LaTeX209. # If you are not satisfied with the different width of the tabulars in the # LaTeX209 version you could use *-form, p-columns or/and experiment with # \extracolsep without using the -longtable option and LaTeX2e. # The "breakpoint part" from the previous scripts has been reduced to a # minimum while not having changed the concept (nl is used instead of sed =). # Comment these parts and no splitting will be done. # If you comment the part called "breakpoint part" in the scripts # you could set \textheight to 28cm and \voffset to -3.0cm and change the # normalsize font environment in here to small (center has explicitly # been set to reduce memory usage -- page wise). # # If you modify this script you have to rename the modified version. # # Remarks: # -- No hassling anymore with 'empty last lines in different sed versions'. # -- This source uses 7-bit representations for 8-bit characters. # You can easily recognize them because they are translated into their # LaTeX counterpart. # -- If you extend take care in not mixing the codepages and language # dependend patterns too much. (This is still valid.) # -- This program is a lot faster than the previous sed version so you # should have no need anymore to commenting out language dependend stuff # for languages you do not need in order to increase speed :-). # # If you make any improvements I would like to hear from you. # But I do not (cannot) promise any support. # ruckema@uni-muenster.de # # # ODYSSEY: # # 19960807 CPR version 1.0 (sed/shell script) # 19961104 CPR version 1.1 (sed/shell script) # 19971218 CPR version 1.2 (sed/shell script) # 19980228 CPR version 1.2b (sed/shell script) # 19980626 CPR version 1.5 (sed/shell script) # 19990105 CPR version 1.6 (Perl) # Rewrite of gcalltx.sed (1.5) & gcalltx.in/sh (1.5) prototypes # (More or less a hack in order to migrate the shell script and # sed sources to Perl.) # This is going along with ;-): # Shell script and pattern (sed) script are *one* source now. # Less system calls. # 8-bit chars are represented as nice 7-bit HEX escapes now :-). # Usage of tmp files is completely reduced. # Future extensions should be easier and more portable (I hope). # A lot better performance. # 19990106 CPR -longtable # Added LaTeX2e longtable support. # 19990106 CPR -miscindex # Added index creation. # 19990107 CPR -makedvi # Added optional latex/makeindex calls.. # 19990108 CPR -longsample # Added list of country codes. Called it long*sample* because I # cannot guarantee if the list coded in here contains all of the # countries supported by gcal at any time. # 19990108 CPR Added short forms for the above options (-lt -mi -md -ls) # in order to reduce command line size. # 19990108 CPR Some of the LaTeX2e output has been successfully tested with # latex2html 98.1 without further preparation. # (gcalltx -longtable -miscindex DE+GB+MX+NO 1998+2001) # 19990108 CPR -stdout # Added switch to direct output to STDOUT instead of a LaTeX # file. This might be used for further postprocessing :-). # 19990227 tom Completed list of country codes. Ending message suppressed # in case -stdout option is used. Managed handling of a # transformed Gcal executable name which is other than `gcal'. # The new output column positions in the eternal holiday list # of the actual Gcal are respected now. # 19990322 tom Managed handling of a transformed script installation name # other than `gcalltx.pl'. # 19990602 tom Postprocessing of Czech `...Jan Hus...' holiday added for # removing an unnecessary tabular delimiter which was inserted # accidentially. # 19990917 tom Removed a typo in the help screen, added $VERSION, proper # management of `gcal' program call, working `--help' option. # 19991108 tom Removed the term ``standard holidays'' in all texts and added # more countries/territories to the `-longsample' option. # 19991121 CPR Checked usage with the new country codes. # Fixed new (AN_BO) into (AN\_BO) for the LaTeX results # as this would cause errors LaTeX'ing. # Checked the examples given with the standard help (--help/-?). # Working with the new country codes now. # Puuh, these lists are comfortably huge now. =B-) # 19991122 CPR Added rule to add those new country codes to the index. # Added new (Ast) (Chi) (Per) ... to the index. # # I might clean up the $gcaltmp and numberless print's one day. # #============================================================================= ############################################################################## # Numbering lines with. (Default is GNU nl -n rz for 000001 etc.) $appl_nl = "nl -n rz"; # In case you do not have GNU nl (number lines) take my tiny version # suitable for working with this script. It is appended to this script. #$appl_nl = "nlnrz.pl"; # or: #$appl_nl = "perl pathto...nlnrz.pl"; # Take the date string. $datenow=`date`; # LaTeX call. $appl_latex = "latex"; # Makeindex call. $appl_makeindex = "makeindex"; # Basename of the LaTeX output file. (Makes $outlatex.tex and $outlatex.dvi) $outlatex = "gcalltx"; ############################################################################## #----------------------------------------------------------------------------- $PACKAGE = "@PACKAGE@"; $VERSION = "@VERSION@"; $transform = "@program_transform_name@"; $myname = $0; $myname =~ s+.*/++g; $myname =~ $transform;$ PerlGcal="../../src/@PACKAGE@" ; if ($PerlGcal ne '../../src/@PACKAGE@') { $PerlGcal = $PACKAGE; $PerlGcal =~ $transform; } chop ($datenow); #----------------------------------------------------------------------------- # # Handle the cmdline switches. # while ($ARGV[0] =~ /^-/) { $_ = shift; last if /^--/ || /^-help/ || /^-h/ || /^-\?/; if (/^-n/) { $nflag++; next; } # # some additional switches # if (/^-longsample/ || /^-ls/) { $typeswitch='-longsample'; next; } if (/^-miscindex/ || /^-mi/) { $indexswitch='-miscindex'; next; } if (/^-longtable/ || /^-lt/) { $tableswitch='-longtable'; next; } if (/^-makedvi/ || /^-md/) { $actionswitch='-makedvi'; next; } if (/^-stdout/) { $devswitch='-stdout'; next; } die "I don't recognize this switch: $_\\n"; } $printit++ unless $nflag; #----------------------------------------------------------------------------- if (/^--help/ || /^--hel/ || /^--he/ || /^--h/ || /^-help/ || /^-h/ || /^-\?/) { print "usage: $myname [options] [country_codes] year_list [--christian-holidays]\n"; print "options: -longtable (-lt) Use LaTeX2e and longtable instead of BREAKPOINTS.\n"; print " -miscindex (-mi) Create a country and holiday index.\n"; print " -makedvi (-md) Create a DVI file by latex and makeindex.\n"; print " -longsample (-ls) Use a prepared long country_codes list.\n"; print " -stdout Direct output to STDOUT instead into a file.\n"; print "examples:\n"; print " $myname year\n"; print " Provides only Christian holidays.\n"; print " $myname country_code year\n"; print " Provides country_code Holidays.\n"; print " $myname country_code year --christian-holidays\n"; print " Provides Christian and country_code holidays.\n"; print " $myname -longsample -longtable -makedvi -miscindex FR 1999+2002\n"; print " Example if you have latex/makeindex/gcal in PATH.\n"; print " If you do not have latex/makeindex (yet) leave the -makedvi away.\n"; print " $myname -longsample -longtable -stdout -miscindex FR 1999+2002>myfile.tex\n"; print " Direct output into any other file. Also for using pipes and filters.\n"; print "country_codes is a country code or list of country codes as supported by \`$PerlGcal'.\n"; print "Country codes are for example: BE ES FR\n"; print "A list of country codes can be created by: BE+FR (s. $PACKAGE-$VERSION documentation).\n"; print "\n"; $nflag++; exit; next; } # # Number of args. # $ARGCOUNT=$#ARGV+1; if ($ARGCOUNT == 0) { } else { # # What we do with the arguments: # # #v--- -longsample # if ($typeswitch eq '-longsample') { $longsamplecodes="AD+AE+AF+AG+AI+AL+AM+AN_BO+AN_CU+AN_MA+AN_SA+AO+AR+AS+AT+AU_CT+AU_NT+AU_QU+AU_SA+AU_SW+AU_TA+AU_VI+AU_WA+AW+AZ+BA+BB+BD+BE+BF+BG+BH+BI+BJ+BM+BN+BO+BR+BS+BT+BV+BW+BY+BZ+CA_AL+CA_BC+CA_MA+CA_NB+CA_NF+CA_NS+CA_NW+CA_ON+CA_PE+CA_QU+CA_SA+CA_YU+CC+CD+CF+CG+CH_AG+CH_AI+CH_AR+CH_BE+CH_BL+CH_BS+CH_FR+CH_GE+CH_GL+CH_GR+CH_JU+CH_LU+CH_NE+CH_NW+CH_OW+CH_SG+CH_SH+CH_SO+CH_SZ+CH_TG+CH_TI+CH_UR+CH_VD+CH_VS+CH_ZG+CH_ZH+CI+CK+CL+CM+CN+CO+CR+CU+CV+CX+CY+CZ+DE_BB+DE_BE+DE_BW+DE_BY+DE_HB+DE_HE+DE_HH+DE_MV+DE_NI+DE_NW+DE_RP+DE_SH+DE_SL+DE_SN+DE_ST+DE_TH+DJ+DK+DM+DO+DZ+EC+EE+EG+EH+ER+ES+ET+FI+FJ+FK+FM+FO+FR+GA+GB_EN+GB_NI+GB_SL+GD+GE+GF+GH+GI+GL+GM+GN+GP+GQ+GR+GS+GT+GU+GW+GY+HK+HM+HN+HR+HT+HU+ID+IE+IL+IN+IQ+IR+IS+IT+JM+JO+JP+KE+KG+KH+KI+KM+KN+KP+KR+KW+KY+KZ+LA+LB+LC+LI+LK+LR+LS+LT+LU+LV+LY+MA+MC+MD+MG+MH+MK+ML+MN+MO+MP+MQ+MR+MS+MT+MU+MV+MW+MX+MY+MZ+NA+NC+NE+NF+NG+NI+NL+NM+NO+NP+NR+NU+NZ+OM+PA+PE+PF+PG+PH+PK+PL+PM+PN+PR+PT+PW+PY+QA+RE+RO+RU+RW+SA+SB+SC+SD+SE+SG+SH+SI+SJ+SK+SL+SM+SN+SO+SR+ST+SV+SY+SZ+TC+TD+TG+TH+TJ+TK+TM+TN+TO+TR+TT+TV+TW+TZ+UA+UG+US_AK+US_AL+US_AR+US_AZ+US_CA+US_CO+US_CT+US_DC+US_DE+US_FL+US_GA+US_HI+US_IA+US_ID+US_IL+US_IN+US_KS+US_KY+US_LA+US_MA+US_MD+US_ME+US_MI+US_MN+US_MO+US_MS+US_MT+US_NC+US_ND+US_NE+US_NH+US_NJ+US_NM+US_NV+US_NY+US_OH+US_OK+US_OR+US_PA+US_RI+US_SC+US_SD+US_TN+US_TX+US_UT+US_VA+US_VT+US_WA+US_WI+US_WV+US_WY+UY+UZ+VC+VE+VG+VI+VN+VU+WF+WS+YE+YT+YU+ZA+ZM+ZW+"; #print "debugsamplecodes: $longsamplecodes"; } else { $longsample=""; } # #^--- -longsample # if ($ARGCOUNT == 1) { $gcaltmp=`$PerlGcal -n -u %0001 --christian-holidays @ARGV|$appl_nl`; #print "debug1 $gcaltmp"; } if ($ARGCOUNT == 2) { $gcaltmp=`$PerlGcal -n -u %0001 --cc-holidays=$longsamplecodes@ARGV|$appl_nl`; #print "debug2 $gcaltmp"; } if ($ARGCOUNT == 3) { $gcaltmp=`$PerlGcal -n -u %0001 --christian-holidays --cc-holidays=$longsamplecodes@ARGV|$appl_nl`; #print "debug3 $gcaltmp"; } #----------------------------------------------------------------------------- # # added these lines for line numbers -> BREAKPOINT & DEL # # #v--- -longtable # if ($tableswitch eq '-longtable') { } # #^--- -longtable # else { # v--- breakpoint part # This is minimum now as numbers are fixed 6 digits now. # Temporary files like for the older sed -f gcalltx.sed gcaltmp >gcalltx.tex # are unnecessary now. $gcaltmp =~ s/([0-9][0-9][0-9][0-9][50][0])/BREAKPOINT $1/g; # ^--- breakpoint part } #----------------------------------------------------------------------------- # # headline # # old style: (sed) #s/^Eternal \(\\*.*\)$/\\hline\\multicolumn{7}{@{}c@{}}{{\\bf Eternal \1}}\\\\ \\hline/g #s/ The year //g # new style should be more flexible for different languages: #s/^\(\\*.*\): \(\\*.*\)$/\\hline\\multicolumn{7}{@{}c@{}}{{\\bf \1:\\hfill\\vphantom{\\large{\\"A}\\Huge{y}} \2}}\\\\ \\hline/g $gcaltmp =~ s/(.*): (.*)/\\hline\\multicolumn{7}{\@{}c\@{}}{{\\bf $1:\\hfill\\vphantom{\\large{\\\"A}\\Huge{y}} $2}}\\\\ \\hline/gm; # # example: # v--- output col44 #Eternal holiday list: The year 1996 is A leap year # #s/&/\\\&/g # & protected by $^\circ$-sign in order to save columnization: $gcaltmp =~ s/\&/\xB0/gm; # # for older gcal version #s/ is \(\\*.*\),/\& is \1,\&/g # $gcaltmp =~ s/ =(.*)$/ \& = \&$1\\\\/gm; $gcaltmp =~ s/[\xAE:](.*)[\xAF:]/ {\\it $1} /gm; $gcaltmp =~ s/[<](.*)[>]/ {\\bf $1} /gm; $gcaltmp =~ s/ ([0-9][0-9][0-9][0-9])$/ $1\&\&\\\\/gm; # # used for identifying lines of tables (additional marker could be used) # $gcaltmp =~ s/^(.*)$/$1%/gm; # # new string at left needs separation (en de etc.) # $gcaltmp =~ s/(.........................................)(.) (...), (...) (.*)\\\\%/$1\& \$$2\$ \& $3, \& $4 $5\\\\%/gm; $gcaltmp =~ s/(.........................................)(.) (..), (....)(.*)\\\\%/$1\& \$$2\$ \& $3, \&$4$5\\\\%/gm; # # example: (shows problems with formatting for different date formats) # v--- output col42 # LANG=en #New Year's Day (Std) + Mon, Jan : 1st:1996 = -296 days #All Fool's Day (Std) - Mon, Apr 1st 1996 = -205 days # LANG=de #Neujahr (Std) + Mo, 1 Jan 1996 = -301 Tage #1'ter April (Std) - Mo, 1 Apr 1996 = -210 Tage # LANG=fr #Jour de l'An (Sam) + Lu, : 1:Jan 1996 = -304 jours #Fête des Rois (Chr) - Sa, 6 Jan 1996 = -299 jours # # # correct single days # $gcaltmp =~ s/day\\\\%/day\\hphantom{s}\\\\%/g; $gcaltmp =~ s/Tag\\\\%/Tag\\hphantom{e}\\\\%/g; $gcaltmp =~ s/jour\\\\%/jours\\hphantom{s}\\\\%/g; # # month -- this part has been separated from the long patterns above because # it can also be used to specify the complete names of the month for the # use in the tabular. $gcaltmp =~ s/ Jan / Jan \&/g; $gcaltmp =~ s/ Feb / Feb \&/g; $gcaltmp =~ s/ F(.)v / F$1v \&/g; #$gcaltmp =~ s/ Mar / Mar \&/g; $gcaltmp =~ s/ M(.)r / M$1r \&/g; $gcaltmp =~ s/ Apr / Apr \&/g; $gcaltmp =~ s/ Avr / Avr \&/g; $gcaltmp =~ s/ May / May \&/g; $gcaltmp =~ s/ Mai / Mai \&/g; $gcaltmp =~ s/ Jun / Jun \&/g; $gcaltmp =~ s/ Jui / Jui \&/g; $gcaltmp =~ s/ Jul / Jul \&/g; $gcaltmp =~ s/ Aug / Aug \&/g; $gcaltmp =~ s/ Ao(.) / Ao$1 \&/g; $gcaltmp =~ s/ Sep / Sep \&/g; $gcaltmp =~ s/ Oct / Oct \&/g; $gcaltmp =~ s/ Okt / Okt \&/g; $gcaltmp =~ s/ Nov / Nov \&/g; #$gcaltmp =~ s/ Dec / Dec \&/g; $gcaltmp =~ s/ Dez / Dez \&/g; $gcaltmp =~ s/ D(.)c / D$1c \&/g; # # decide which one you want # $gcaltmp =~ s/\*/\\ast/g; $gcaltmp =~ s/#/\\#/g; # or #$gcaltmp =~ s/#/ /g; #$gcaltmp =~ s/\*/ /g; # $gcaltmp =~ s/\xB0/\\\&/g; # # #v--- -longtable # if ($tableswitch eq '-longtable') { } # #^--- -longtable else { # only needed when using breakpoints for splitting #$gcaltmp =~ s/^(.*)BREAKPOINT(.*)$/\\end{tabular}~\\\\ \\begin{tabular}{\@{}p{7.4cm}cr\@{~}r\@{~}r\@{}c\@{}r\@{}} % BREAKPOINT at line $2/g; $gcaltmp =~ s/BREAKPOINT (\d\d\d\d\d\d)/\\end{tabular}~\\\\ \\begin{tabular}{\@{}p{7.4cm}cr\@{~}r\@{~}r\@{}c\@{}r\@{}} % BREAKPOINT at line $1\n$1$2/g; } # # This accent (\'a) in iso latin is a little beta in cp437. It is used as sz in # Germany. We need to get sure this one to be a french accent here. Therefore # we can use the (DE) label to correct and hope those won't get more :-) $gcaltmp =~ s/^(.*)\xE1(\\*.*) (DE)/$1\\ss{}$2 (DE)/g; # # convert umlauts and other 8 bit from iso latin $gcaltmp =~ s/\xE4/\\"a/g; $gcaltmp =~ s/\xFC/\\"u/g; $gcaltmp =~ s/\xF6/\\"o/g; $gcaltmp =~ s/\xC4/\\"A/g; $gcaltmp =~ s/\xD6/\\"O/g; $gcaltmp =~ s/\xDC/\\"U/g; $gcaltmp =~ s/\xDF/\\ss{}/g; # $gcaltmp =~ s/\xE0/\\`a/g; $gcaltmp =~ s/\xE1/\\'a/g; $gcaltmp =~ s/\xE2/\\^a/g; $gcaltmp =~ s/\xC0/\\`A/g; $gcaltmp =~ s/\xC1/\\'A/g; $gcaltmp =~ s/\xC2/\\^A/g; $gcaltmp =~ s/\xE8/\\`e/g; $gcaltmp =~ s/\xE9/\\'e/g; $gcaltmp =~ s/\xEA/\\^e/g; $gcaltmp =~ s/\xC8/\\`E/g; $gcaltmp =~ s/\xC9/\\'E/g; $gcaltmp =~ s/\xCA/\\^E/g; $gcaltmp =~ s/\xEC/\\`{\\i}/g; $gcaltmp =~ s/\xED/\\'{\\i}/g; $gcaltmp =~ s/\xEE/\\^{\\i}/g; $gcaltmp =~ s/\xCC/\\`I/g; $gcaltmp =~ s/\xCD/\\'I/g; $gcaltmp =~ s/\xCE/\\^I/g; $gcaltmp =~ s/\xF2/\\`o/g; $gcaltmp =~ s/\xF3/\\'o/g; $gcaltmp =~ s/\xF4/\\^o/g; $gcaltmp =~ s/\xD2/\\`O/g; $gcaltmp =~ s/\xD3/\\'O/g; $gcaltmp =~ s/\xD4/\\^O/g; $gcaltmp =~ s/\xF9/\\`u/g; $gcaltmp =~ s/\xFA/\\'u/g; $gcaltmp =~ s/\xFB/\\^u/g; $gcaltmp =~ s/\xD9/\\`U/g; $gcaltmp =~ s/\xDA/\\'U/g; $gcaltmp =~ s/\xDB/\\^U/g; $gcaltmp =~ s/\xEB/\\"e/g; # # convert umlauts and other 8 bit from cp437 $gcaltmp =~ s/\x84/\\"a/g; $gcaltmp =~ s/\x8E/\\"A/g; $gcaltmp =~ s/\x94/\\"o/g; $gcaltmp =~ s/\x99/\\"O/g; $gcaltmp =~ s/\x81/\\"u/g; $gcaltmp =~ s/\x9A/\\"U/g; $gcaltmp =~ s/\xE1/\\ss{}/g; # $gcaltmp =~ s/\x85/\\`a/g; $gcaltmp =~ s/\xA0/\\'a/g; $gcaltmp =~ s/\x83/\\^a/g; #$gcaltmp =~ s//\\`A/g; #$gcaltmp =~ s//\\'A/g; #$gcaltmp =~ s//\\^A/g; $gcaltmp =~ s/\x8A/\\`e/g; $gcaltmp =~ s/\x82/\\'e/g; $gcaltmp =~ s/\x88/\\^e/g; #$gcaltmp =~ s//\\`E/g; $gcaltmp =~ s/\x90/\\'E/g; #$gcaltmp =~ s//\\^E/g; $gcaltmp =~ s/\x8D/\\`{\\i}/g; $gcaltmp =~ s/\xA1/\\'{\\i}/g; $gcaltmp =~ s/\x8C/\\^{\\i}/g; #$gcaltmp =~ s//\\`I/g; #$gcaltmp =~ s//\\'I/g; #$gcaltmp =~ s//\\^I/g; $gcaltmp =~ s/\x95/\\`o/g; $gcaltmp =~ s/\xA2/\\'o/g; $gcaltmp =~ s/\x93/\\^o/g; #$gcaltmp =~ s//\\`O/g; #$gcaltmp =~ s//\\'O/g; #$gcaltmp =~ s//\\^O/g; $gcaltmp =~ s/\x97/\\`u/g; $gcaltmp =~ s/\xA3/\\'u/g; $gcaltmp =~ s/\x96/\\^u/g; #$gcaltmp =~ s//\\`U/g; #$gcaltmp =~ s//\\'U/g; #$gcaltmp =~ s//\\^U/g; $gcaltmp =~ s/\x8B/\\"{\\i}/g; $gcaltmp =~ s/\x89/\\"e/g; $gcaltmp =~ s/\x87/\\c{c}/g; $gcaltmp =~ s/\x80/\\c{C}/g; # # Postprocessing of Czech `...Jan Hus...' holiday for removing an unnecessary # tabular delimiter previously inserted in the text by reason this script # detected `Jan' and thought it would be a month name. # $gcaltmp =~ s/[Jj][Aa][Nn] &[Hh]/Jan H/g; # # # 19991121 CPR Make LaTeXable for new extended country codes: # $gcaltmp =~ s/([A-Z][A-Z])\_([A-Z][A-Z])/$1\\_$2/g; # # added these lines for line numbers -> BREAKPOINT & DEL and now for |nl # # v--- breakpoint part $gcaltmp =~ s/[0-9][0-9][0-9][0-9][0-9][0-9]\t//g; # ^--- breakpoint part #----------------------------------------------------------------------------- # #v--- -miscindex # if ($indexswitch eq '-miscindex') { # # do index entries *after* table has been created # $gcaltmp =~ s/\(([A-Z][A-Z])\)/($1)\\index{$1}\\index{Country Code!$1}/g; # 19991122 CPR Added DE_NW like country codes for index: $gcaltmp =~ s/\(([A-Z][A-Z])\_([A-Z][A-Z])\)/($1)\\index{$1}\\index{Country Code!$1}/g; $gcaltmp =~ s/\((Std)\)/($1)\\index{Std}/g; $gcaltmp =~ s/\((Chr)\)/($1)\\index{Chr}/g; # 19991122 CPR Added some new ones explicitly: $gcaltmp =~ s/\((OxO)\)/($1)\\index{OxA}/g; $gcaltmp =~ s/\((OxO)\)/($1)\\index{OxO}/g; $gcaltmp =~ s/\((OxN)\)/($1)\\index{OxN}/g; $gcaltmp =~ s/\((Ast)\)/($1)\\index{Ast}/g; $gcaltmp =~ s/\((Chi)\)/($1)\\index{Chi}/g; $gcaltmp =~ s/\((Per)\)/($1)\\index{Per}/g; $gcaltmp =~ s/\((Heb)\)/($1)\\index{Heb}/g; $gcaltmp =~ s/\((Isl)\)/($1)\\index{Isl}/g; # $gcaltmp =~ s/(.*) \(/$1\\index{$1} \(/g; } # #^--- -miscindex else { } #----------------------------------------------------------------------------- # # Automatically add newline on print. # $\ = "\n"; # #v--- -stdout # if ($devswitch eq '-stdout') { } # #^--- -stdout else { # # Use a defined file for output. # open(GCALLTXOUT, ">gcalltx.tex"); select(GCALLTXOUT); } #----------------------------------------------------------------------------- # # Output the LaTeX header. # print "%%"; print "%% gcal output converted with gcalltx (C) CPR, 1996, 1998, 1999 (v1.6)"; print "%% Output created: $datenow"; print "%%"; # #v--- -longtable # if ($tableswitch eq '-longtable') { print "\\documentclass{article}"; print "\\usepackage{longtable}"; print "\\usepackage{makeidx}"; print "\\makeindex"; print "\\textwidth=16cm\\textheight=22cm\\voffset=-0.5cm\\hoffset=-2.2cm\\parindent=0pt"; print "\\begin{document}"; print "\\begin{center}"; print "\\begin{normalsize}"; print "\\begin{longtable}{\@{}p{7.4cm}cr\@{~}r\@{~}r\@{}c\@{}r\@{}}"; # ^---- ^----^----^---- # c-column also no space for nice formatting # be ok. of current year *and* any year } # #^--- -longtable else { print "\\documentstyle[makeidx]{article}"; #print "\\nofiles"; print "\\makeindex"; print "\\textwidth=16cm\\textheight=22cm\\voffset=-0.5cm\\hoffset=-2.2cm\\parindent=0pt"; print "\\begin{document}"; print "\\begin{center}"; print "\\begin{normalsize}"; print "\\begin{tabular}{\@{}p{7.4cm}cr\@{~}r\@{~}r\@{}c\@{}r\@{}}"; # ^---- ^----^----^---- # c-column also no space for nice formatting # be ok. of current year *and* any year } #----------------------------------------------------------------------------- # # Output the results. # print $gcaltmp; #----------------------------------------------------------------------------- # # Output the LaTeX footer. # print "\\hline"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{\\centering\$+\$} Gesetzlicher Feiertag, der im gesamten Land g\\\"ultig ist.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{~} Legal holiday which is valid in the whole country.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{\\centering\$\\#\$} Gesetzlicher Feiertag, der \\\"uberwiegend im gesamten Land g\\\"ultig ist.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{~} Legal holiday which is valid in major parts of the whole country.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{\\centering\$\\ast\$} Gesetzlicher Feiertag, der nicht \\\"uberwiegend im gesamten Land g\\\"ultig ist.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{~} Legal holiday which is valid in minor parts of the whole country.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{\\centering\$-\$} Sonstiger Feiertag, der nur zu Erinnerungszwecken dient.}\\\\"; print "\\multicolumn{7}{\@{}l\@{}}{\\small\\parbox{0.4cm}{~} Other holiday which serves for memorial or remarking purposes only.}\\\\"; # #v--- -longtable # if ($tableswitch eq '-longtable') { print "\\end{longtable}"; } # #^--- -longtable else { print "\\end{tabular}"; } print "\\end{normalsize}"; print "\\end{center}"; print "\\printindex"; print "\\end{document}"; print "%%EOF:"; # #v--- -stdout # if ($devswitch eq '-stdout') { } # #^--- -stdout else { close(GCALLTXOUT); } } # end of if ($ARGCOUNT == 0) #----------------------------------------------------------------------------- # # The end. # if ($ARGCOUNT == 0) { } else { if ($devswitch ne '-stdout') { print STDERR "$myname message: Eternal holiday list written to file $outlatex.tex"; } } #----------------------------------------------------------------------------- # # Optionally create the DVI file. # # #v--- -makedvi # if ($actionswitch eq '-makedvi') { # # those should be standard links # system("$appl_latex $outlatex"); system("$appl_makeindex $outlatex.idx"); system("$appl_latex $outlatex"); unlink("$outlatex.aux"); unlink("$outlatex.log"); unlink("$outlatex.ilg"); unlink("$outlatex.ind"); unlink("$outlatex.idx"); print STDERR "$myname message: $outlatex.dvi created from $outlatex.tex"; } # #^--- -makedvi else { } __END__ ##EOF: As promised above here is the tiny GNU nl -n rz replacment. #! /usr/bin/perl # # nlnrz.pl -- simple nl replacement -- (C) Claus-Peter R"uckemann, 1999 # eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; while (<>) { printf "%6.6d\t%s", $., $_; } ##EOF: gcal-4.1/misc/gcalltx/gcalltx0000664000000000000000000000577613041163626013150 00000000000000#!/bin/sh # # @configure.input@ # # gcalltx.in -- (C) Claus-Peter R"uckemann, 1996, 1998, 1999 # # version 1.5 # # This file may be distributed with Gcal under the terms # of the GNU public license. # # This script calls gcalltx.sed to convert 'gcal -n -u %0001 year' output to # LaTeX tabular output. # # UN*X solution. # packagedatamiscdir=. # PACKAGE=gcal VERSION=4.1 transform=s,x,x, # INSTALL_DATA="${INSTALL} -m 644" # Rm=rm Sed=sed Echo=echo Test=test Chmod=chmod # mydefaultname=gcalltx # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` # ThisGcal=../../src/gcal # Sed_script_in=$packagedatamiscdir/$mydefaultname"".sed Sed_script_out=$packagedatamiscdir/$mydefaultname"".cpr # SRCPERMS=`$Echo "$INSTALL_DATA" | $Sed -e 's,^.*/,,' -e 's/[^0-9]//g'` SRCPERMS2=0644 # trap "$Rm -f gcaltmp* $mydefaultname"".tex;exit 2" 1 2 15 # case "$#" in 1) GCAL= $ThisGcal -n -u %0001 --christian-holidays $* >gcaltmp ;; 2) GCAL= $ThisGcal -n -u %0001 --cc-holidays=$* >gcaltmp ;; 3) GCAL= $ThisGcal -n -u %0001 --christian-holidays --cc-holidays=$* >gcaltmp ;; *) $Echo "usage: $myname year"; $Echo " $myname country_code year"; $Echo " $myname country_code year --christian-holidays"; $Echo ""; $Echo "(1st usage provides only Christian holidays)"; $Echo "(2nd usage provides country_code holidays)"; $Echo "(3rd usage provides Christian and country_code holidays)"; $Echo ""; $Echo "country_codes is a country code or a list of country codes"; $Echo "as supported by \`$ThisGcal'."; $Echo ""; $Echo "Country codes are for example: BE ES FR"; $Echo ""; $Echo "A list of country codes can be created this way: BE+FR"; $Echo "(s. $PACKAGE-$VERSION documentation)"; exit 1;; esac if $Test "$?" -ne 0; then $Rm -f gcaltmp* $mydefaultname"".tex exit 2; fi # Added the two lines for 4-digits line numbers (BREAKPOINT & DEL) # $Sed "s/^/XYZ/g" gcaltmp >gcaltmp.tm1 $Sed "=" gcaltmp.tm1 >gcaltmp.tm2 # v--- breakpoint part $Echo "s/^\([5][0]\)/BREAKPOINT \1/g">gcaltmp.tm3 $Echo "s/^\([0-9][50][0]\)/BREAKPOINT \1/g">>gcaltmp.tm3 $Echo "s/^\([0-9][0-9][50][0]\)/BREAKPOINT \1/g">>gcaltmp.tm3 $Echo "/^[0-9]/d">>gcaltmp.tm3 $Echo "/^[0-9][0-9]/d">>gcaltmp.tm3 $Echo "/^[0-9][0-9][0-9]/d">>gcaltmp.tm3 $Echo "/^[0-9][0-9][0-9][0-9]/d">>gcaltmp.tm3 $Echo "s/^XYZ//">>gcaltmp.tm3 $Sed -f gcaltmp.tm3 gcaltmp.tm2 >gcaltmp # ^--- breakpoint part # if $Test ! -f "$Sed_script_out"; then if $Test -f "$Sed_script_in"; then $Sed -e '/^#.*[^\\]$/d' -e '/^#$/d' $Sed_script_in > $Sed_script_out if $Test -n "$SRCPERMS"; then $Chmod $SRCPERMS $Sed_script_out else $Chmod $SRCPERMS2 $Sed_script_out fi else $Echo "$myname: error: file \`$Sed_script_in' is missing" 2>&1 exit 2; fi fi $Sed -f $Sed_script_out gcaltmp >$mydefaultname"".tex $Rm -f gcaltmp* $Echo "$myname: Eternal holiday list written to file \`$mydefaultname"".tex'" ##EOF: gcal-4.1/misc/gcalltx/gcalltx.bat0000664000000000000000000000444212244130561013676 00000000000000@echo off :: gcalltx.bat -- (C) Claus-Peter R"uckemann, 1996, 1998, 1999 :: :: version 1.5 :: :: This file may be distributed with Gcal under the terms :: of the GNU public license. :: :: This script calls gcalltx.sed to convert 'gcal -n -u %0001 year' output to :: LaTeX tabular output. :: :: DOS solution. :: :: :: Save GCAL environment variable into TMP_GCAL, then clear it. :: set tmp_gcal= if %gcal% . == . goto case set tmp_gcal=%gcal% set gcal= :case if %1 . == . goto help if %2 . == . goto christstd if %3 . == . goto country ::else do this: goto countrychrist :christstd gcal -n -u %%0001 --christian-holidays %1 >$$$tmp goto postlude :country gcal -n -u %%0001 --cc-holidays=%1 %2>$$$tmp goto postlude :countrychrist gcal -n -u %%0001 --christian-holidays --cc-holidays=%1 %2>$$$tmp goto postlude :postlude :: :: added the two lines for 4-digits line numbers (BREAKPOINT & DEL) :: sed "s/^/XYZ/g" $$$tmp >$$$tmp.tm1 sed "=" $$$tmp.tm1 >$$$tmp.tm2 :: v--- breakpoint part echo s/^\([5][0]\)/BREAKPOINT \1/g>$$$tmp.tm3 echo s/^\([0-9][50][0]\)/BREAKPOINT \1/g>>$$$tmp.tm3 echo s/^\([0-9][0-9][50][0]\)/BREAKPOINT \1/g>>$$$tmp.tm3 echo /^[0-9]/d>>$$$tmp.tm3 echo /^[0-9][0-9]/d>>$$$tmp.tm3 echo /^[0-9][0-9][0-9]/d>>$$$tmp.tm3 echo /^[0-9][0-9][0-9][0-9]/d>>$$$tmp.tm3 echo s/^XYZ//>>$$$tmp.tm3 sed -f $$$tmp.tm3 $$$tmp.tm2 >$$$tmp :: ^--- breakpoint part :: sed -e "/^#.*[^\\]$/d" -e "/^#$/d" gcalltx.sed >$$$tmp.sed sed -f $$$tmp.sed $$$tmp >gcalltx.tex echo Eternal holiday list written to file gcalltx.tex del $$$tmp.* >NUL: goto end :help echo usage: %0 year echo %0 country_code year echo %0 country_code year --christian-holidays echo" echo (1st usage provides only Christian holidays) echo (2nd usage provides country_code holidays) echo (3rd usage provides Christian and country_code holidays) echo" echo country_codes is a country code or a list of country codes echo as supported by gcal. echo" echo Country codes are for example: BE ES FR echo" echo A list of country codes can be created this way: BE+FR echo (s. gcal documentation) goto end :end :: :: Restore GCAL environment variable from TMP_GCAL again. :: if %tmp_gcal% . == . goto realexit set gcal=%tmp_gcal% set tmp_gcal= :realexit ::EOF: gcal-4.1/misc/gcalltx/gcalltx.sed0000664000000000000000000002007212353516576013717 00000000000000# # gcalltx.sed -- (C) Claus-Peter R"uckemann, 1996, 1998 # # version 1.5 # # This file may be distributed with gcal under the terms # of the GNU public license. # # This simple sed script converts 'gcal -n -u %0001 year' output to LaTeX # tabular output for gcal. Any but default configuration might confuse # this script. It comes along with a UN*X script gcalltx and a DOS batch # gcalltx.bat which supports the correct usage. This program has been # tested with the German, English and French catalogs of gcal under # Linux, IBM/AIX, SUN/Solaris and MSDOS. # It should accept all country codes gcal uses. # # It is *** not *** guaranteed that this script works for any other call than # the one given above and the ones given in the gcalltx and gcalltx.bat scripts # but it could easily be modified and extended for using your favorite # PostScript fonts, color, shading and multipage tabulars... under LaTeX2e. # # Splitting is done in both scripts before they use this program. # If you are not satisfied with the different width of the tabulars you # could use *-form, p-columns or/and experiment with \extracolsep. # The "breakpoint part" has been written in a way that allows to use it nearly # identical in the DOS *and* UN*X version (I know it could be done more elegant # with UNIX). Comment this part in either of these versions and no splitting # will be done. If you comment the part called "breakpoint part" in the scripts # you could set \textheight to 28cm and \voffset to -3.0cm and change the # normalsize font environment in here to small (center has explicitly # been set to reduce memory usage -- page wise). # # If you modify this script you have to rename the modified version. # # Remarks: # -- The last line of this script should only contain a space to be more # portable with some sed versions -- make sure not to loose it while editing. # -- This file is 8-bit. # -- If you extend take care in not mixing the codepages and language # dependend patterns too much. # -- If you need to speed this script up you might carefully comment the # language dependend stuff for languages you do not need. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # ruckema@uni-muenster.de # 1i\ %% 1i\ %% gcal output converted with gcalltx & gcalltx.sed (C) CPR, 1999, v1.5 1i\ %% 1i\ \\documentstyle{article} 1i\ \\nofiles 1i\ \\textwidth=16cm\\textheight=22cm\\voffset=-0.5cm\\hoffset=-2.2cm\\parindent=0pt 1i\ \\begin{document} 1i\ \\begin{center} 1i\ \\begin{normalsize} 1i\ \\begin{tabular}{@{}p{7.4cm}cr@{~}r@{~}r@{}c@{}r@{}} # ^--- ^---^---^--- # c-column also no space for nice formatting of # be ok. current year *and* any year # # headline # # old style: #s/^Eternal \(\\*.*\)$/\\hline\\multicolumn{7}{@{}c@{}}{{\\bf Eternal \1}}\\\\ \\hline/g #s/ The year //g # new style should be more flexible for different languages: s/^\(\\*.*\): \(\\*.*\)$/\\hline\\multicolumn{7}{@{}c@{}}{{\\bf \1:\\hfill\\vphantom{\\large{\\"A}\\Huge{y}} \2}}\\\\ \\hline/g # # example: # v--- output col44 #Eternal holiday list: The year 1996 is A leap year # #s/&/\\\&/g # & protected by °-sign in order to save columnization: s/&/°/g # # for older gcal version #s/ is \(\\*.*\),/\& is \1,\&/g # s/ =\(\\*.*\)$/ \& = \&\1\\\\/g s/[:]\(\\*.*\)[Ż:]/ {\\it \1} /g s/[<]\(\\*.*\)[>]/ {\\bf \1} /g s/ \([0-9][0-9][0-9][0-9]\)$/ \1\&\&\\\\/g # # used for identifying lines of tables (additional marker could be used) # s/^\(\\*.*\)$/\1%/g # # new string at left needs separation (en de etc.) # s/^\(.........................................\)\(.\) \(...\), \(...\) \(\\*.*\)\\\\%/\1\& $\2$ \& \3, \& \4 \5\\\\%/g s/^\(.........................................\)\(.\) \(..\), \(....\)\(\\*.*\)\\\\%/\1\& $\2$ \& \3, \&\4\5\\\\%/g # # example: (shows problems with formatting for different date formats) # v--- output col42 # LANG=en #New Year's Day (Std) + Mon, Jan : 1st:1996 = -296 days #All Fool's Day (Std) - Mon, Apr 1st 1996 = -205 days # LANG=de #Neujahr (Std) + Mo, 1 Jan 1996 = -301 Tage #1'ter April (Std) - Mo, 1 Apr 1996 = -210 Tage # LANG=fr #Jour de l'An (Sam) + Lu, : 1:Jan 1996 = -304 jours #Fête des Rois (Chr) - Sa, 6 Jan 1996 = -299 jours # # correct single days s/day\\\\%/day\\hphantom{s}\\\\%/g s/Tag\\\\%/Tag\\hphantom{e}\\\\%/g s/jour\\\\%/jours\\hphantom{s}\\\\%/g # # month -- this part has been separated from the long patterns above because # it can also be used to specify the complete names of the month for the # use in the tabular. s/ Jan / Jan \&/g s/ Feb / Feb \&/g s/ F\(.\)v / F\1v \&/g #s/ Mar / Mar \&/g s/ M\(.\)r / M\1r \&/g s/ Apr / Apr \&/g s/ Avr / Avr \&/g s/ May / May \&/g s/ Mai / Mai \&/g s/ Jun / Jun \&/g s/ Jui / Jui \&/g s/ Jul / Jul \&/g s/ Aug / Aug \&/g s/ Ao\(.\) / Ao\1 \&/g s/ Sep / Sep \&/g s/ Oct / Oct \&/g s/ Okt / Okt \&/g s/ Nov / Nov \&/g #s/ Dec / Dec \&/g s/ Dez / Dez \&/g s/ D\(.\)c / D\1c \&/g # # decide which one you want # s/*/\\ast/g s/#/\\#/g # or #s/#/ /g #s/\*/ /g # s/°/\\\&/g # # Postprocessing of Czech `...Jan Hus...' holiday for removing an unnecessary # tabular delimiter previously inserted in the text by reason this script # detected `Jan' and thought it would be a month name. # s/[Jj][Aa][Nn] &[Hh]/Jan H/g # # only needed when using breakpoints for splitting s/^\(\\*.*\)BREAKPOINT\(\\*.*\)$/\\end{tabular}~\\\\ \\begin{tabular}{@{}p{7.4cm}cr@{~}r@{~}r@{}c@{}r@{}} % BREAKPOINT at line \2/g # # # This accent (\'a) in iso latin is a little beta in cp437. It is used as sz in # Germany. We need to get sure this one to be a french accent here. Therefore # we can use the (DE) label to correct and hope those won't get more :-) s/^\(\\*.*\)á\(\\*.*\) (DE)/\1\\ss{}\2 (DE)/g # # convert umlauts and other 8 bit from iso latin s/ä/\\"a/g s/ü/\\"u/g s/ö/\\"o/g s/Ä/\\"A/g s/Ö/\\"O/g s/Ü/\\"U/g s/ß/\\ss{}/g # s/à/\\`a/g s/á/\\'a/g s/â/\\^a/g s/À/\\`A/g s/Á/\\'A/g s/Â/\\^A/g s/è/\\`e/g s/é/\\'e/g s/ê/\\^e/g s/È/\\`E/g s/É/\\'E/g s/Ê/\\^E/g s/ì/\\`{\\i}/g s/í/\\'{\\i}/g s/î/\\^{\\i}/g s/Ì/\\`I/g s/Í/\\'I/g s/Î/\\^I/g s/ò/\\`o/g s/ó/\\'o/g s/ô/\\^o/g s/Ò/\\`O/g s/Ó/\\'O/g s/Ô/\\^O/g s/ù/\\`u/g s/ú/\\'u/g s/û/\\^u/g s/Ù/\\`U/g s/Ú/\\'U/g s/Û/\\^U/g s/ë/\\"e/g # # convert umlauts and other 8 bit from cp437 s/„/\\"a/g s/Ž/\\"A/g s/”/\\"o/g s/™/\\"O/g s//\\"u/g s/š/\\"U/g s/á/\\ss{}/g # s/…/\\`a/g s/ /\\'a/g s/ƒ/\\^a/g #s//\\`A/g #s//\\'A/g #s//\\^A/g s/Š/\\`e/g s/‚/\\'e/g s/ˆ/\\^e/g #s//\\`E/g s//\\'E/g #s//\\^E/g s//\\`{\\i}/g s/Ħ/\\'{\\i}/g s/Œ/\\^{\\i}/g #s//\\`I/g #s//\\'I/g #s//\\^I/g s/•/\\`o/g s/˘/\\'o/g s/“/\\^o/g #s//\\`O/g #s//\\'O/g #s//\\^O/g s/—/\\`u/g s/£/\\'u/g s/–/\\^u/g #s//\\`U/g #s//\\'U/g #s//\\^U/g s/‹/\\"{\\i}/g s/‰/\\"e/g s/‡/\\c{c}/g s/€/\\c{C}/g # # $a\ \\hline # # $a\ \\multicolumn{7}{@{}l@{}}{\\small\\parbox{0.4cm}{\\centering$+$} Gesetzlicher Feiertag, der im gesamten Land g\\"ultig ist.}\\\\ $a\ \\multicolumn{7}{@{}l@{}}{\\small\\parbox{0.4cm}{~} Legal holiday which is valid in the whole country.}\\\\ $a\ \\multicolumn{7}{@{}l@{}}{\\small\\parbox{0.4cm}{\\centering$\\#$} Gesetzlicher Feiertag, der \\"uberwiegend im gesamten Land g\\"ultig ist.}\\\\ $a\ \\multicolumn{7}{@{}l@{}}{\\small\\parbox{0.4cm}{~} Legal holiday which is valid in major parts of the whole country.}\\\\ $a\ \\multicolumn{7}{@{}l@{}}{\\small\\parbox{0.4cm}{\\centering$\\ast$} Gesetzlicher Feiertag, der nicht \\"uberwiegend im gesamten Land g\\"ultig ist.}\\\\ $a\ \\multicolumn{7}{@{}l@{}}{\\small\\parbox{0.4cm}{~} Legal holiday which is valid in minor parts of the whole country.}\\\\ $a\ \\multicolumn{7}{@{}l@{}}{\\small\\parbox{0.4cm}{\\centering$-$} Sonstiger Feiertag, der nur zu Erinnerungszwecken dient.}\\\\ $a\ \\multicolumn{7}{@{}l@{}}{\\small\\parbox{0.4cm}{~} Other holiday which serves for memorial or remarking purposes only.}\\\\ # # $a\ \\end{tabular} $a\ \\end{normalsize} $a\ \\end{center} # # $a\ \\end{document} $a\ %%EOF: gcal-4.1/misc/README0000664000000000000000000002211712353516544011003 00000000000000README file for miscellaneous targets. Please keep in mind that in case one or more of the scripts, which are located in the appropriate subdirectories of this file directory, do not work as expected, this can be possibly caused by reason you have preset some Gcal options in the `GCAL' environment variable, which have changed the default behavior of the script. If so, try running the script again by using an "empty" `GCAL' environment variable like this: for Bourne Shell: GCAL= ./SCRIPTNAME or: env GCAL= ./SCRIPTNAME If this does not help, check whether you have set a reference to the actual directory in the `GCALPATH' environment variable. If not, try running the script again by using a proper value for Gcal's search path for files, like: for Bourne Shell: GCALPATH=. ./SCRIPTNAME or: env GCALPATH=. ./SCRIPTNAME Here comes the short description of the miscellaneous files, inspect them for more information: * Subdirectory `daily': The simple `daily' AWK and Perl scripts show how basic time management of fixed dates can be done by means of `gcal'. It's a poor man's solution! Any but default configuration might confuse these scripts. They come along with a UN*X shell script `daily' and a MS-DOS batch file `daily.bat' which supports the correct usage. Some examples of such time based fixed dates can be found in the `daily.rc' file. Please inspect all above mentioned files for further information. * Subdirectory `ddiff': The simple `ddiffdrv' AWK and Perl scripts can be used to create a Gcal location pool resource file by processing the ZONE file `zone.tab'. Any but default configuration might confuse these scripts. They come along with a UN*X shell script `ddiffdrv' and a MS-DOS batch file `ddiffdrv.bat' which supports the correct usage. These script respectively batch files create single Gcal location response files of any location found in the Gcal location pool resource file. Then, these script respectively batch files automatically create all Gcal location resource files which contain the day/night lengths and differences for all days of the year for any location found --by means of the `ddiff' UN*X shell script respectively the MS-DOS batch file `ddiff.bat'--; and at last a Gcal include file `ddiff.rc' that contains include statements of all Gcal location resource files created, but only, if the `-create' option is given. Please inspect all above mentioned files for further information. *Caution*: It can take some time to create all Gcal location response respectively resource files if you run the UN*X shell script `ddiffdrv' respectively the MS-DOS batch file `ddiffdrv.bat'. So maybe you want to remove some entries in the ZONE file `zone.tab' first? The simple `ddiff1' and `ddiff2' AWK and Perl scripts can be used to create Gcal location resource files which contain the day/night lengths and differences for all days of the year for any location around the world. Any but default configuration might confuse these scripts. They come along with a UN*X shell script `ddiff' and a MS-DOS batch file `ddiff.bat' together with the necessary Gcal response file `ddiff.@' which supports the correct usage. * Subdirectory `dst': The simple `dst' AWK and Perl scripts process ZONEINFO files and convert any dates to the Gcal fixed date format, at which Daylight Saving Times take place. Any but default configuration might confuse these scripts. They come along with a UN*X shell script `dst' which supports the correct usage. Please inspect all above mentioned files for further information. * Subdirectory `gcalltx': The simple SED script `gcalltx.sed' converts `gcal -n -u %0001 year' output to LaTeX tabular output for `gcal'. Any but default configuration might confuse this script. It comes along with a UN*X script `gcalltx' and a MS-DOS batch `gcalltx.bat' which supports the correct usage. The program has been tested with the German, English and French catalogs of `gcal' under IBM/AIX, SUN/Solaris and MS-DOS. It should accept all country codes `gcal' uses. The Perl script `gcalltx.pl' superseeds previous versions. Please inspect all above mentioned files for further information. * Subdirectory `moon': The UN*X shell script `moon' displays the dates at which the next Full Moon and New Moon phases take place, plus some additionally information about today's date. The MS-DOS batch file `moon.bat' along with the simple `moon1.awk' and `moon2.awk' AWK scripts displays the dates at which the next Full Moon and New Moon phases take place, plus some additionally information about today's date. Any but default configuration might confuse these scripts. Please inspect all above mentioned files for further information. * Subdirectory `mrms': The simple `mrms' AWK and Perl scripts show how to display the times at which moonrise/moonset have happened in the past respectively will happen in the future --based on the actual local time for several geographic locations around the world-- by means of `gcal'. It's a poor man's solution! Any but default configuration might confuse these scripts. They come along with a UN*X shell script `mrms' and a MS-DOS batch file `mrms.bat' which supports the correct usage. Some examples of fixed dates which represent different geographic locations around the world can be found in the `mrms.rc' file. Keep in mind that all rise/set times computed are approximate times only, because the location's altitude is not set in `mrms.rc' and therefore taken as zero. Please inspect all above mentioned files for further information. * Subdirectory `srss': The simple `srss' AWK and Perl scripts show how to display the times at which sunrise/sunset have happened in the past respectively will happen in the future --based on the actual local time for several geographic locations around the world-- by means of `gcal'. It's a poor man's solution! Any but default configuration might confuse these scripts. They come along with a UN*X shell script `srss' and a MS-DOS batch file `srss.bat' which supports the correct usage. Some examples of fixed dates which represent different geographic locations around the world can be found in the `srss.rc' file. Keep in mind that all rise/set times computed are approximate times only, because the location's altitude is not set in `srss.rc' and therefore taken as zero. Please inspect all above mentioned files for further information. * Subdirectory `wloc': The simple `wlocdrv1' AWK and Perl scripts process the ZONE file `zone.tab' and generate the UN*X shell script `wloc' respectively the MS-DOS batch file `wloc.bat', which is necessary to create all location files that contain air line distances and course angles between several geographic locations around the world. The simple `wlocdrv2' AWK and Perl scripts process the ZONE file `zone.tab' and generate the Gcal resource file `wlocdrv.rc', which is necessary to create all location files that contain air line distances and course angles between several geographic locations around the world. Any but default configuration might confuse these scripts. They come along with a UN*X shell script `wlocdrv' and a MS-DOS batch file `wlocdrv.bat' which supports the correct usage. Please inspect all above mentioned files for further information. *Caution*: It can take some time to create all location files if you run the generated UN*X shell script `wloc' respectively the MS-DOS batch file `wloc.bat'. So maybe you want to remove some entries in the ZONE file `zone.tab' first? * The `wdays.*' files of previous Gcal versions --which converted Gcal output in the way that only all working days of the complete week, except holidays, and the succeeding Monday are displayed for the Anglo-American version of Gcal-- are no longer shipped anymore, because using Gcal like: gcal %monday --filter-day=Vr -Cdl7+ ... results the same and is independent of the language and the kind of highlighting used. * This file directory contains a file `gcalmagic.add'. It is intended to be added to your `/etc/magic' file. After adding this the `file' command will recognize `gcal' shell script files, response and resource files. * This file directory contains a file `magic.add'. It is intended to be added to your `/etc/magic' file. After adding this the `file' command will recognize GNU message catalog files (`.mo' files). * The locale name alias scheme implemented here is in a similar form implemented in the X Windows Systems. Especially the alias data base file can be shared. Normally this file is found at something like `/usr/lib/X11/locale/locale.alias'. gcal-4.1/misc/srss/0000775000000000000000000000000013041164075011163 500000000000000gcal-4.1/misc/srss/srss.pl0000664000000000000000000000766112353314150012440 00000000000000# $Id: srss.pl 0.06 2000/01/12 00:00:06 tom Exp $ # # srss.pl: Processes the Gcal `srss.rc' resource file for displaying # the times at which sunrise/sunset has happened in the # past respectively will happen in the future, based on # the actual local time for several geographic locations # around the world. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `srss' and a DOS batch `srss.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # $[ = 1; # set array base to 1 # # Define the field separator used (SLASH actually). # $FS = '/'; # # Define the default return value of this process, which is EXIT_FAILURE. # $EXIT_SUCCESS = 0; $EXIT_FAILURE = 1; $EXIT_FATAL = 2; # $exit_status = $EXIT_FAILURE; # # Define the constant values used for default operation. # $the_mode = 'rise'; $the_sort = 'abs'; # # Get possibly given command line arguments. # for ($i = 1; $i < ($#ARGV+1); $i++) { if (substr($ARGV[$i], 1, 1) eq '-') { if (substr($ARGV[$i], 2, 1) eq 'a') { $the_mode = substr($ARGV[$i], 3, 999999); } elsif (substr($ARGV[$i], 2, 1) eq 'b') { $the_sort = substr($ARGV[$i], 3, 999999); } else { exit $EXIT_FATAL; } } else { last; } shift; $i--; } # # Main block. # line: while (<>) { chop; # strip record separator @Fld = split(/[$FS\n]/, $_, 9999); if (length($_) > 0) { # # Select the proper input field depending on the value of `the_mode'. # if ($the_mode eq 'rise') { $field = $Fld[3]; } else { $field = $Fld[4]; } # # Compute the actual local time `minute of day' of the location. # $min1 = substr($Fld[1], 1, 2) * 60; $min1 += substr($Fld[1], 4, 2); # # Compute the local time sunrise/sunset `minute of day' of the location. # $min2 = substr($field, 1, 2) * 60; $min2 += substr($field, 4, 2); # # Compute the time difference of both precomputed times. # $min = $min2 - $min1; $hour = $min / 60; if ($min < 0) { # # Sunrise/sunset has happened in the past. # $hour = -$hour; $min = -$min; $sign = '-'; } else { # # Sunrise/sunset will happen in the future. # $sign = '+'; } $min %= 60; # # And print the result in formatted manner. # if ($the_sort eq 'abs') { printf "%s%02d:%02d@%s, LT=%s%s%02d:%02d HH:MM = sun%s at %s in %s\n", $sign, $hour, $min, $Fld[2], $Fld[1], $sign, $hour, $min, $the_mode, $field, $Fld[5]; } else { printf "%02d:%02d%s@%s, LT=%s%s%02d:%02d HH:MM = sun%s at %s in %s\n", $hour, $min, $sign, $Fld[2], $Fld[1], $sign, $hour, $min, $the_mode, $field, $Fld[5]; } # # Set the return value of this process to EXIT_SUCCESS. # $exit_status = $EXIT_SUCCESS; } } exit $exit_status; gcal-4.1/misc/srss/srss.bat0000664000000000000000000001300512353314150012560 00000000000000@echo off :: $Id: srss.bat 0.06 2000/01/12 00:00:06 tom Exp $ :: :: srss.bat: Uses `srss.awk' for processing the Gcal `srss.rc' resource :: file to display the times at which sunrise/sunset has happened :: in the past respectively will happen in the future, based :: on the actual local time for several geographic locations :: around the world. :: :: Usage: srss --help :: Usage: srss [--no-pager] [rise|set [abs|rel]] [-- more Gcal options...] :: :: `rise': Display the sunrise local times of the locations. :: `set': Display the sunset local times of the locations. :: If this option is not given, `rise' is used :: by default. :: `abs': The sort order of the past times (indicated :: by a `-' sign) respectively future times :: (indicated by a `+' sign) is absolute. :: `rel': The sort order of the past times (indicated :: by a `-' sign) respectively future times :: (indicated by a `+' sign) is relative. :: If this option is not given, `abs' is used :: by default. :: `--no-pager': Disable the use of a pager program. :: :: MS-DOS solution. :: :: Needs `gcal', `gawk' and `sort' for processing! :: :: Copyright (c) 2000 Thomas Esken :: Im Hagenfeld 84 :: D-48147 M"unster :: GERMANY :: :: This software doesn't claim completeness, correctness or usability. :: On principle I will not be liable for ANY damages or losses (implicit :: or explicit), which result from using or handling my software. :: If you use this software, you agree without any exception to this :: agreement, which binds you LEGALLY !! :: :: This program is free software; you can redistribute it and/or modify :: it under the terms of the `GNU General Public License' as published by :: the `Free Software Foundation'; either version 3, or (at your option) :: any later version. :: :: You should have received a copy of the `GNU General Public License' :: along with this program; if not, write to the: :: :: :: :: Basically used programs, set these environment variables properly! :: set _=gcal set oldgcalpath=%gcalpath% set gcalpath=. set -=gawk set oldawkpath=%awkpath% set awkpath=.;c:\dos :: :: Generic file names, set these environment variables properly! :: set myname=%0 set mydefaultname=srss :: :: Script/Input file names, set these environment variables properly! :: set gcalresource=%mydefaultname%.rc set awkscript=%mydefaultname%.awk :: :: Command line argument names, set these environment variables properly! :: set param0=--no-pager set param1=rise set param2=set set param3=abs set param4=rel :: if ""%1 == "" goto next0 if %1 == --help goto usage if %1 == --HELP goto usage if %1 == --hel goto usage if %1 == --HEL goto usage if %1 == --he goto usage if %1 == --HE goto usage if %1 == --h goto usage if %1 == --H goto usage if %1 == -h goto usage if %1 == -H goto usage if %1 == /h goto usage if %1 == /H goto usage if %1 == -? goto usage if %1 == /? goto usage if %1 == ? goto usage :: :next0 if exist %awkscript% goto next1 echo %myname%: error: file `%awkscript%' is missing goto eof :: :next1 if exist %gcalresource% goto next2 echo %myname%: error: file `%gcalresource%' is missing goto eof :: :next2 if ""%1 == "" goto default1 if %1 == -- goto default1 if %1 == %param1% goto check1 if %1 == %param2% goto check1 if %1 == %param0% goto next3 goto usage :: :next3 set no_pager=yes shift goto next2 :: :default1 set script_args=-a%param1% goto default2 :: :check1 set script_args=-a%1 shift if ""%1 == "" goto default2 if %1 == %param3% goto check2 if %1 == %param4% goto check2 goto usage :: :default2 set script_args=%script_args% -b%param3% if ""%1 == "" goto eval if %1 == -- goto remove_arg goto eval :: :check2 set script_args=%script_args% -b%1 :remove_arg shift :: :eval %_% -Hno -QUx -f %gcalresource% %1 %2 %3 %4 %5 %6 %7 %8 %9> $$$tmp0 %-% -f %awkscript% -- %script_args% $$$tmp0> $$$tmp1 if errorlevel 2 goto msg2 if errorlevel 1 goto msg1 type $$$tmp1 | sort> $$$tmp2 %-% -F@ "{print $2}" $$$tmp2> $$$tmp3 if ""%no_pager% == "" goto output1 type $$$tmp3 goto delete :: :output1 type $$$tmp3 | more goto delete :: :msg2 echo %myname%: error: invalid option `%script_args%' to `%-%' given goto delete :: :msg1 echo %myname%: error: no sun%param1%/sun%param2% times found :: :delete del $$$tmp? >NUL: goto eof :: :usage echo %myname%: Displays the times at which sun%param1%/sun%param2% has happened in echo %myname%: the past respectively will happen in the future, based on the echo %myname%: actual local time for several geographic locations around the echo %myname%: world, by using the Gcal resource file `%gcalresource%'. echo %myname%: echo usage: %myname% [--no-pager] [%param1% or %param2% [%param3% or %param4%]] [-- more Gcal options...] :: :eof :: set no_pager= set script_args= set param4= set param3= set param2= set param1= set param0= set awkscript= set gcalresource= set mydefaultname= set myname= set awkpath=%oldawkpath% set oldawkpath= set -= set gcalpath=%oldgcalpath% set oldgcalpath= set _= gcal-4.1/misc/srss/srss.in0000664000000000000000000003137412353314150012431 00000000000000#! /bin/sh # # @configure_input@ # # $Id: srss.in 0.09 2000/03/24 00:00:09 tom Exp $ # # srss.in: Uses `srss[.awk|.pl]' for processing the Gcal `srss.rc' resource # file to display the times at which sunrise/sunset has happened # in the past respectively will happen in the future, based on # the actual local time. If a Gcal resource file is specified # as program option, this resource file is used instead of the # default resource file `srss.rc'. # # Usage: srss --help | --version # Usage: srss [--debug] [--mail[=ADDRESS]] # [--no-pager] [--mode=rise|set] [--sort=abs|rel] # [RESOURCE-FILE] [more Gcal options...] # # `--debug': Turn on shell debugging. # `--mail[=ADDRESS]': EMail the result to the specified ADDRESS. # If no ADDRESS is given, eMail it to # $MAILTO, $USER or $LOGNAME. # `--no-pager': Disable the use of a pager program. # `--mode=rise': Display the sunrise local times of the # locations. # `--mode=set': Display the sunset local times of the # locations. If this option is not given, # `--mode=rise' is used by default. # `--sort=abs': The sort order of the past times (indicated # by a `-' sign) respectively future times # (indicated by a `+' sign) is absolute. # `--sort=rel': The sort order of the past times (indicated # by a `-' sign) respectively future times # (indicated by a `+' sign) is relative. # If this option is not given, `--mode=abs' # is used by default. # # UN*X solution. # # Needs `test', `echo', `eval', `set', `sed', `date', `mail', `sort', # `gcal' and `perl' or `awk' for processing! # # Returns 0 if any fixed dates are created (returned by AWK/Perl script # if neither `--help' nor `--version' option was specified). # Returns 1 in case no fixed dates are created (returned by AWK/Perl script). # Returns 2 if neither Perl nor AWK are present for further processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Sed=sed Set=set Test=test Echo=echo Sort=sort # # Basically used texts. # packagedatamiscdir=@srcdir@ # PACKAGE=@PACKAGE@ VERSION=@VERSION@ transform=@program_transform_name@ # mydefaultname=srss # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.09 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # param1=rise param2=set param3=abs param4=rel # gcal_resource_file_suffix=.rc gcal_resource_file=$mydefaultname""$gcal_resource_file_suffix # info1="$myname: Displays the times at which sun""$param1/sun""$param2 has happened in the" info2="$myname: past respectively will happen in the future, based on the actual" info3="$myname: local time for several geographic locations around the world." info4="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--mail[=ADDRESS]] [--no-pager] [--mode=$param1|$param2]" usage3="usage: [--sort=$param3|$param4] [RESOURCE-FILE] [more Gcal options...]" usage4="usage: $myname without \`--mode=$param1|$param2' option uses \`--mode=$param1' by default" usage5="usage: $myname without \`--sort=$param3|$param4' option uses \`--sort=$param3' by default" usage6="usage: $myname without RESOURCE-FILE uses file "\ "\`$packagedatamiscdir/$gcal_resource_file' by default" # # Some constant values. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval Date=date ThisMail=mail ThisGcal=../../src/@PACKAGE@ Pager1=@PAGER1@ Pager2=@PAGER2@ Pager3=@PAGER3@ # Awk=@AWK@ Awk_script=$mydefaultname"".awk # Perl=@PERL@ Perl_script=$mydefaultname"".pl # # Let's check for command line arguments. # debug=no pager=yes mail=no opt_mail="" opt_mode="" opt_sort="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel |-he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" $Echo "$usage4" $Echo "$usage5" $Echo "$usage6" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -no-pager=* | -no-page | -no-pag=* | -no-pa=* | -no-p=* | -no-=* | -no=* | -n=* | \ -no-pager | -no-page | -no-pag | -no-pa | -no-p | -no- | -no | -n | \ --no-pager=* | --no-page=* | --no-pag=* | --no-pa=* | --no-p=* | --no-=* | --no=* | --n=* | \ --no-pager | --no-page | --no-pag | --no-pa | --no-p | --no- | --no | --n) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi pager=no shift ;; -mail | -mai | -ma | --mail | --mai | --ma | \ -mail=* | -mai=* | -ma=* | --mail=* | --mai=* | --ma=*) if $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_mail="$optarg" mail=yes shift ;; -mode | -mod | -mo | --mode | --mod | --mo) previous=mode ;; -mode=* | -mod=* | -mo=* | --mode=* | --mod=* | --mo=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_mode="$optarg" shift ;; -sort | -sor | -so | -s | --sort | --sor | --so | --s) previous=sort ;; -sort=* | -sor=* | -so=* | -s=* | --sort=* | --sor=* | --so=* | --s=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_sort="$optarg" shift ;; esac done if $Test -n "$previous"; then $Echo "$myname: error: missing argument to --$previous" 1>&2 exit $EXIT_FAILURE fi # # Enable tracing. # if $Test "$debug" = yes; then $Set -x fi # # Let's start processing now. # if $Test -n "$Awk" || $Test -n "$Perl"; then SCRIPT_ARGS="" if $Test -n "$opt_mode"; then arg=`$Echo "$opt_mode" | $Sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` if $Test "$arg" = "$param1" || $Test "$arg" = "$param2"; then SCRIPT_ARGS="-a""$arg" else $Echo "$myname: error: invalid option argument \`$opt_mode' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE fi fi if $Test -n "$opt_sort"; then arg=`$Echo "$opt_sort" | $Sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` if $Test "$arg" = "$param3" || $Test "$arg" = "$param4"; then SCRIPT_ARGS="$SCRIPT_ARGS -b""$arg" else $Echo "$myname: error: invalid option argument \`$opt_sort' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE fi fi ARGS="" CMDS="" FILS="" for arg in $* do case "$arg" in -*) ARGS="$ARGS $arg" ;; /*) ARGS="$ARGS $arg" ;; @*) ARGS="$ARGS $arg" ;; %*) ARGS="$ARGS $arg" ;; [0-9*]*) CMDS="$CMDS $arg" ;; *) if $Test -z "$FILS"; then FILS="$arg" else FILS="$FILS+$arg" fi esac done if $Test -z "$FILS"; then FILS=$packagedatamiscdir/$gcal_resource_file fi if $Test "$mail" = no; then ARGS="$ARGS -Hyes" fi # # We prefer the use of Perl. # if $Test -n "$Perl"; then result=`$ThisGcal $ARGS -QUx -f $FILS $CMDS | \ $Perl -- $packagedatamiscdir/$Perl_script $SCRIPT_ARGS` else result=`$ThisGcal $ARGS -QUx -f $FILS $CMDS | \ $Awk -f $packagedatamiscdir/$Awk_script $SCRIPT_ARGS` fi status=$? if $Test "$status" -eq "$EXIT_SUCCESS"; then if $Test "$mail" = yes; then # # Detect the proper eMail address. # if $Test -n "$opt_mail"; then MailAddr="$opt_mail" else if $Test -n "$MAILTO"; then MailAddr="$MAILTO" else if $Test -n "$USER"; then MailAddr="$USER" else if $Test -n "$LOGNAME"; then MailAddr="$LOGNAME" else $Echo "$myname: warning: cannot send mail, address unknown" 1>&2 $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' 1>&2 exit $EXIT_FAILURE fi fi fi fi # # EMail the result. # if $Test -n "$MAILPROG"; then ThisMail="$MAILPROG" fi if $Test "$debug" = no; then $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' | \ $ThisMail -s "Mail from \`$myname' (`$Date`)" $MailAddr fi $Echo "$myname: result sent by $ThisMail to \`$MailAddr'" else # # Detect a proper pager. # ThisPager="" if $Test "$pager" = yes; then if $Test -n "$Pager1"; then ThisPager="$Pager1" else if $Test -n "$Pager2"; then ThisPager="$Pager2" else if $Test -n "$Pager3"; then ThisPager="$Pager3" fi fi fi fi # # Display the result. # if $Test -n "$ThisPager"; then $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' | $ThisPager else $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' fi fi else if $Test "$status" -eq "$EXIT_FAILURE"; then $Echo "$myname: error: no sunrise/sunset times found" 1>&2 else if $Test "$status" -eq "$EXIT_FATAL"; then if $Test -n "$Perl"; then $Echo "$myinternalname: error: invalid option \`$SCRIPT_ARGS' to \`$Perl' given" 1>&2 else $Echo "$myinternalname: error: invalid option \`$SCRIPT_ARGS' to \`$Awk' given" 1>&2 fi fi fi fi exit $status else $Echo "$myinternalname: error: neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/misc/srss/srss.rc0000664000000000000000000001057612353314150012430 00000000000000; Sunrise/sunset of several locations for Gcal-2.20 or newer ; ; $Id: srss.rc 0.01 2000/03/05 00:00:01 tom Exp $ ; ; Copyright (c) 2000 Thomas Esken ; Im Hagenfeld 84 ; D-48147 M"unster ; GERMANY ; ; This software doesn't claim completeness, correctness or usability. ; On principle I will not be liable for ANY damages or losses (implicit ; or explicit), which result from using or handling my software. ; If you use this software, you agree without any exception to this ; agreement, which binds you LEGALLY !! ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the `GNU General Public License' as published by ; the `Free Software Foundation'; either version 3, or (at your option) ; any later version. ; ; You should have received a copy of the `GNU General Public License' ; along with this program; if not, write to the: ; ; ; ; *** If you modify this file you have to rename the modified version. ; *** If you make any improvements I would like to hear from you. ; *** But I do not promise any support. ; ; *** Keep in mind that all rise/set times computed are approximate times only, ; *** because the location's altitude is not set and therefore taken as zero. ; *** You may correct this :) ; The line templates. ; $f=/ $p=0*d1#999 $a=%@$t $f%o$c,$t $f%s$c,$t $f$l ; Usage of variables in the lines below: ; ; $l -> Name of location (use '_' characters instead of ' ' characters). ; $c -> ISO-6709 coordinate for geographical point locations ; $t -> Number of minutes the location is distant from UT/GMT, ; +NUM if location is East of Greenwich, 0 or -NUM otherwise. ; a -> Date at which daylight saving time starts; don't define if none. ; b -> Date at which daylight saving time ends; don't define if none. ; And now, the locations (add/remove/exchange any if you like). ; $l=Samoa $c=-1350-17144 $t=-660 $p $a ; $l=Honolulu $c=+211825-1575130 $t=-600 $p $a ; $l=Anchorage $c=+611305-1495401 $t=-540 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=San_Francisco $c=+3747-12230 $t=-480 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Denver $c=+394421-1045903 $t=-420 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Managua $c=+1206-08620 $t=-300 $p $a ; $l=Chicago $c=+415100-0873900 $t=-360 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Montreal $c=+4531-07334 $t=-300 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=New_York $c=+404251-0740023 $t=-300 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Bermuda $c=+3217-06446 $t=-240 a=04sun1 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Rio_de_Janeiro $c=-2300-04312 $t=-180 a=02sat2 b=10sun1 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a ; $l=Azores $c=+3744-02540 $t=-60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Dakar $c=+1440-01726 $t=0 $p $a ; $l=London $c=+512830-0001845 $t=0 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Lisbon $c=+3843-00908 $t=0 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Münster $c=+5158+00738 $t=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Madrid $c=+4024-00341 $t=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Stockholm $c=+5920+01803 $t=60 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Johannesburg $c=-2615+02800 $t=120 $p $a ; $l=Istanbul $c=+4101+02858 $t=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Helsinki $c=+6010+02458 $t=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Athens $c=+3758+02343 $t=120 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Nairobi $c=-0117+03649 $t=180 $p $a ; $l=Moscow $c=+5545+03735 $t=180 a=03sun9 b=10sun9 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Tehran $c=+3540+05126 $t=210 a=0321 b=0922 $p %e0@a#0@b-1 $a $t+=60 $p %i0@a#0@b-1 $a ; $l=Bombay $c=+1855+07250 $t=330 $p $a ; $l=Bangkok $c=+1345+10031 $t=420 $p $a ; $l=Beijing $c=+3955+11620 $t=480 $p $a ; $l=Hongkong $c=+2217+11409 $t=480 $p $a ; $l=Tokyo $c=+3542+13946 $t=540 $p $a ; $l=Seoul $c=+3733+12658 $t=540 $p $a ; $l=Sydney $c=-3352+15113 $t=600 a=03sun9 b=10sun9 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a ; $l=Wellington $c=-4119+17446 $t=720 a=03sun3 b=10sun1 $p %i0@a#0@b-1 $a $t+=60 $p %e0@a#0@b-1 $a gcal-4.1/misc/srss/srss.awk0000664000000000000000000000770412353314150012605 00000000000000# $Id: srss.awk 0.06 2000/01/12 00:00:06 tom Exp $ # # srss.awk: Processes the Gcal `srss.rc' resource file for displaying # the times at which sunrise/sunset has happened in the # past respectively will happen in the future, based on # the actual local time for several geographic locations # around the world. # # Any but default configuration could confuse this script. # It comes along with a UN*X script `srss' and a DOS batch `srss.bat' # which supports the correct usage. # # It is *not* guaranteed that this script works for any other call than # the one given above but it could easily be modified and extended for # using other special modes of operation. # # If you modify this script you have to rename the modified version. # # If you make any improvements I would like to hear from you. # But I do not promise any support. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # BEGIN { # # Define the field separator used (SLASH actually). # FS = "/" # # Define the default return value of this process, which is EXIT_FAILURE. # EXIT_SUCCESS = 0 EXIT_FAILURE = 1 EXIT_FATAL = 2 # exit_status = EXIT_FAILURE # # Define the constant values used for default operation. # the_mode = "rise" the_sort = "abs" # # Get possibly given command line arguments. # for (i=1 ; i < ARGC ; i++) { if (substr(ARGV[i], 1, 1) == "-") { if (substr(ARGV[i], 2, 1) == "a") the_mode = substr(ARGV[i], 3) else if (substr(ARGV[i], 2, 1) == "b") the_sort = substr(ARGV[i], 3) else exit EXIT_FATAL } else break delete ARGV[i] } } # # Main block. # { if (length($0) > 0) { # # Select the proper input field depending on the value of `the_mode'. # if (the_mode == "rise") field = $3 else field = $4 # # Compute the actual local time `minute of day' of the location. # min1 = substr($1, 1, 2) * 60 min1 += substr($1, 4, 2) # # Compute the local time sunrise/sunset `minute of day' of the location. # min2 = substr(field, 1, 2) * 60 min2 += substr(field, 4, 2) # # Compute the time difference of both precomputed times. # min = min2 - min1 hour = min / 60 if (min < 0) { # # Sunrise/sunset has happened in the past. # hour = -hour min = -min sign = "-" } else { # # Sunrise/sunset will happen in the future. # sign = "+" } min %= 60 # # And print the result in formatted manner. # if (the_sort == "abs") printf "%s%02d:%02d@%s, LT=%s%s%02d:%02d HH:MM = sun%s at %s in %s\n", \ sign, hour, min, $2, $1, sign, hour, min, the_mode, field, $5 else printf "%02d:%02d%s@%s, LT=%s%s%02d:%02d HH:MM = sun%s at %s in %s\n", \ hour, min, sign, $2, $1, sign, hour, min, the_mode, field, $5 # # Set the return value of this process to EXIT_SUCCESS. # exit_status = EXIT_SUCCESS } } END { exit exit_status } gcal-4.1/misc/srss/srss0000664000000000000000000003134413041163626012026 00000000000000#! /bin/sh # # misc/srss/srss. Generated from srss.in by configure. # # $Id: srss.in 0.09 2000/03/24 00:00:09 tom Exp $ # # srss.in: Uses `srss[.awk|.pl]' for processing the Gcal `srss.rc' resource # file to display the times at which sunrise/sunset has happened # in the past respectively will happen in the future, based on # the actual local time. If a Gcal resource file is specified # as program option, this resource file is used instead of the # default resource file `srss.rc'. # # Usage: srss --help | --version # Usage: srss [--debug] [--mail[=ADDRESS]] # [--no-pager] [--mode=rise|set] [--sort=abs|rel] # [RESOURCE-FILE] [more Gcal options...] # # `--debug': Turn on shell debugging. # `--mail[=ADDRESS]': EMail the result to the specified ADDRESS. # If no ADDRESS is given, eMail it to # $MAILTO, $USER or $LOGNAME. # `--no-pager': Disable the use of a pager program. # `--mode=rise': Display the sunrise local times of the # locations. # `--mode=set': Display the sunset local times of the # locations. If this option is not given, # `--mode=rise' is used by default. # `--sort=abs': The sort order of the past times (indicated # by a `-' sign) respectively future times # (indicated by a `+' sign) is absolute. # `--sort=rel': The sort order of the past times (indicated # by a `-' sign) respectively future times # (indicated by a `+' sign) is relative. # If this option is not given, `--mode=abs' # is used by default. # # UN*X solution. # # Needs `test', `echo', `eval', `set', `sed', `date', `mail', `sort', # `gcal' and `perl' or `awk' for processing! # # Returns 0 if any fixed dates are created (returned by AWK/Perl script # if neither `--help' nor `--version' option was specified). # Returns 1 in case no fixed dates are created (returned by AWK/Perl script). # Returns 2 if neither Perl nor AWK are present for further processing. # # Copyright (c) 2000 Thomas Esken # Im Hagenfeld 84 # D-48147 M"unster # GERMANY # # This software doesn't claim completeness, correctness or usability. # On principle I will not be liable for ANY damages or losses (implicit # or explicit), which result from using or handling my software. # If you use this software, you agree without any exception to this # agreement, which binds you LEGALLY !! # # This program is free software; you can redistribute it and/or modify # it under the terms of the `GNU General Public License' as published by # the `Free Software Foundation'; either version 3, or (at your option) # any later version. # # You should have received a copy of the `GNU General Public License' # along with this program; if not, write to the: # # # # # Basically used programs. # Sed=sed Set=set Test=test Echo=echo Sort=sort # # Basically used texts. # packagedatamiscdir=. # PACKAGE=gcal VERSION=4.1 transform=s,x,x, # mydefaultname=srss # myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` myversion=0.09 myinternalname="$myname ($PACKAGE $VERSION) $myversion" # param1=rise param2=set param3=abs param4=rel # gcal_resource_file_suffix=.rc gcal_resource_file=$mydefaultname""$gcal_resource_file_suffix # info1="$myname: Displays the times at which sun""$param1/sun""$param2 has happened in the" info2="$myname: past respectively will happen in the future, based on the actual" info3="$myname: local time for several geographic locations around the world." info4="$myname:" usage1="usage: $myname --help | --version" usage2="usage: $myname [--debug] [--mail[=ADDRESS]] [--no-pager] [--mode=$param1|$param2]" usage3="usage: [--sort=$param3|$param4] [RESOURCE-FILE] [more Gcal options...]" usage4="usage: $myname without \`--mode=$param1|$param2' option uses \`--mode=$param1' by default" usage5="usage: $myname without \`--sort=$param3|$param4' option uses \`--sort=$param3' by default" usage6="usage: $myname without RESOURCE-FILE uses file "\ "\`$packagedatamiscdir/$gcal_resource_file' by default" # # Some constant values. # EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_FATAL=2 # # The used programs. # Eval=eval Date=date ThisMail=mail ThisGcal=../../src/gcal Pager1=less Pager2=more Pager3= # Awk=gawk Awk_script=$mydefaultname"".awk # Perl=perl Perl_script=$mydefaultname"".pl # # Let's check for command line arguments. # debug=no pager=yes mail=no opt_mail="" opt_mode="" opt_sort="" previous="" for option in $* do # # If the previous option needs an argument, assign it. # if $Test -n "$previous"; then $Eval "$previous=\$option" previous="" continue fi case "$option" in -*=) optarg="###error###" ;; -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg="" ;; esac # # Manage the options. # case "$option" in -help=* | -hel=* | -he=* | -h=* | -help | -hel |-he | -h | \ --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$info1" $Echo "$info2" $Echo "$info3" $Echo "$info4" $Echo "$usage1" $Echo "$usage2" $Echo "$usage3" $Echo "$usage4" $Echo "$usage5" $Echo "$usage6" exit $EXIT_SUCCESS ;; -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ -version | -versio | -versi | -vers | -ver | -ve | -v | \ --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ --version | --versio | --versi | --vers | --ver | --ve | --v) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi $Echo "$myinternalname" exit $EXIT_SUCCESS ;; -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ -debug | -debu | -deb | -de | -d | \ --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ --debug | --debu | --deb | --de | --d) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi debug=yes shift ;; -no-pager=* | -no-page | -no-pag=* | -no-pa=* | -no-p=* | -no-=* | -no=* | -n=* | \ -no-pager | -no-page | -no-pag | -no-pa | -no-p | -no- | -no | -n | \ --no-pager=* | --no-page=* | --no-pag=* | --no-pa=* | --no-p=* | --no-=* | --no=* | --n=* | \ --no-pager | --no-page | --no-pag | --no-pa | --no-p | --no- | --no | --n) if $Test -n "$optarg"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 exit $EXIT_FAILURE fi pager=no shift ;; -mail | -mai | -ma | --mail | --mai | --ma | \ -mail=* | -mai=* | -ma=* | --mail=* | --mai=* | --ma=*) if $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_mail="$optarg" mail=yes shift ;; -mode | -mod | -mo | --mode | --mod | --mo) previous=mode ;; -mode=* | -mod=* | -mo=* | --mode=* | --mod=* | --mo=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_mode="$optarg" shift ;; -sort | -sor | -so | -s | --sort | --sor | --so | --s) previous=sort ;; -sort=* | -sor=* | -so=* | -s=* | --sort=* | --sor=* | --so=* | --s=*) if $Test -z "$optarg" || $Test "$optarg" = "###error###"; then $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 exit $EXIT_FAILURE fi opt_sort="$optarg" shift ;; esac done if $Test -n "$previous"; then $Echo "$myname: error: missing argument to --$previous" 1>&2 exit $EXIT_FAILURE fi # # Enable tracing. # if $Test "$debug" = yes; then $Set -x fi # # Let's start processing now. # if $Test -n "$Awk" || $Test -n "$Perl"; then SCRIPT_ARGS="" if $Test -n "$opt_mode"; then arg=`$Echo "$opt_mode" | $Sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` if $Test "$arg" = "$param1" || $Test "$arg" = "$param2"; then SCRIPT_ARGS="-a""$arg" else $Echo "$myname: error: invalid option argument \`$opt_mode' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE fi fi if $Test -n "$opt_sort"; then arg=`$Echo "$opt_sort" | $Sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` if $Test "$arg" = "$param3" || $Test "$arg" = "$param4"; then SCRIPT_ARGS="$SCRIPT_ARGS -b""$arg" else $Echo "$myname: error: invalid option argument \`$opt_sort' specified" 1>&2 $Echo "$myname: use --help to show usage" 1>&2 exit $EXIT_FAILURE fi fi ARGS="" CMDS="" FILS="" for arg in $* do case "$arg" in -*) ARGS="$ARGS $arg" ;; /*) ARGS="$ARGS $arg" ;; @*) ARGS="$ARGS $arg" ;; %*) ARGS="$ARGS $arg" ;; [0-9*]*) CMDS="$CMDS $arg" ;; *) if $Test -z "$FILS"; then FILS="$arg" else FILS="$FILS+$arg" fi esac done if $Test -z "$FILS"; then FILS=$packagedatamiscdir/$gcal_resource_file fi if $Test "$mail" = no; then ARGS="$ARGS -Hyes" fi # # We prefer the use of Perl. # if $Test -n "$Perl"; then result=`$ThisGcal $ARGS -QUx -f $FILS $CMDS | \ $Perl -- $packagedatamiscdir/$Perl_script $SCRIPT_ARGS` else result=`$ThisGcal $ARGS -QUx -f $FILS $CMDS | \ $Awk -f $packagedatamiscdir/$Awk_script $SCRIPT_ARGS` fi status=$? if $Test "$status" -eq "$EXIT_SUCCESS"; then if $Test "$mail" = yes; then # # Detect the proper eMail address. # if $Test -n "$opt_mail"; then MailAddr="$opt_mail" else if $Test -n "$MAILTO"; then MailAddr="$MAILTO" else if $Test -n "$USER"; then MailAddr="$USER" else if $Test -n "$LOGNAME"; then MailAddr="$LOGNAME" else $Echo "$myname: warning: cannot send mail, address unknown" 1>&2 $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' 1>&2 exit $EXIT_FAILURE fi fi fi fi # # EMail the result. # if $Test -n "$MAILPROG"; then ThisMail="$MAILPROG" fi if $Test "$debug" = no; then $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' | \ $ThisMail -s "Mail from \`$myname' (`$Date`)" $MailAddr fi $Echo "$myname: result sent by $ThisMail to \`$MailAddr'" else # # Detect a proper pager. # ThisPager="" if $Test "$pager" = yes; then if $Test -n "$Pager1"; then ThisPager="$Pager1" else if $Test -n "$Pager2"; then ThisPager="$Pager2" else if $Test -n "$Pager3"; then ThisPager="$Pager3" fi fi fi fi # # Display the result. # if $Test -n "$ThisPager"; then $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' | $ThisPager else $Echo "$result" | $Sort | $Sed -e 's/^\(.......\)//' fi fi else if $Test "$status" -eq "$EXIT_FAILURE"; then $Echo "$myname: error: no sunrise/sunset times found" 1>&2 else if $Test "$status" -eq "$EXIT_FATAL"; then if $Test -n "$Perl"; then $Echo "$myinternalname: error: invalid option \`$SCRIPT_ARGS' to \`$Perl' given" 1>&2 else $Echo "$myinternalname: error: invalid option \`$SCRIPT_ARGS' to \`$Awk' given" 1>&2 fi fi fi fi exit $status else $Echo "$myinternalname: error: neither \`perl' nor \`awk' available" 1>&2 exit $EXIT_FATAL fi gcal-4.1/NEWS0000664000000000000000000014266413041162356007672 00000000000000NEWS file for `gcal'. Copyright (C) 1994-2014 Free Software Foundation, Inc. User-visible changes. Major changes in release 4.1 * National holiday replaced Pentecost Monday as a Swedish holiday 2005 * Report Reformation Day as an holiday everywhere in Germany in 2017 Major changes in release 4 * Remove duplicate for All Saints Day for DE_BW and DE_RP. * Spell the name of Norfolk Island correctly. * Spell the name of Guy Fawkes correctly -- Fawkes, not Fawke. * Correct the name of Canada's Northwest Territories * Improve the computation of the Dutch Queen's and King's days * Name of german federal state Saarland corrected. * Name of swiss federal state Basel-Landschaft corrected. * Alignment error for --date-format US fixed. * Fix build on FreeBSD. * Use _NL_TIME_FIRST_WEEKDAY to get correct defaults for -s N option. Major changes in release 3.6.3 * Remove duplicate for All Saints Day for DE_BY. * Inherit some portability fixes from gnulib. Major changes in release 3.6.2 * Report correctly the Christmas day in Canada. Major changes in release 3.6.1 * Include All Saints' day in HU * Fix build issue under solaris 10 / studio 12.1 * Unicode support * Make --help a synonym for --long-help Major changes in release 3.6 * Work properly when the -1 timezone is specified * Use ISO 3166-2 region codes * Distribute .po files * Distribute BUGS LIMITATIONS doc/GREG-REFORM * Fix NLS support in gcal, gcal2txt, tcal, txt2gcal Major changes in release 3.5.1 * Update NEWS * --version reports the right version Major changes in release 3.5 * Change source license to GPLv3+ * Do not include Henry Spencer V8 regex library * Change documentation license to FDL 1.3+ * Use automake * Use the start of the week day specified by the locale * Typo fixed in data/dates/lotr: Sm8 = Smaug * Typo fixed in src/help.c and *.po: assigments -> assignments * Hyphens corrected in gcal.1 * Date of Nikolaustag changed in data/dates/world Bug report and patch by Wolfram Kleff * Spell check in doc/en/texi/gcal.texi Patch by James Troup * Do not install files in $(HOME) Patch by Edward Betts * Add --from-code=iso-8859-1 to po/Makefile.in.in Patch by Sandro Tosi * Fix German translation Patch by Jens Seidel * Changes to src/{hd-data2.c,hd-data3.c,hd-defs.h,hd-data.c} -fixed Czech holidays; bug report and patch by Martin Mares -removed non ASCII char -All Saints Day on some states; patch by Marc-Jano Knopp -All Souls day is no holiday; patch by Thorsten Alteholz Major changes in release 3.01.1 * typos fixed in data files * typo fixed in src/help.c Major changes in release 3.01 * Some minor changes in the `doc/LL/texi/gcal.texi' documentation (fixed some typos and extended the manuals with description text for the new options). * Now, text variable references like `$[FORMAT]TVAR TEXT' at the beginning of a Gcal resource file are expanded correctly if the contents of the TVAR that is used with the FORMAT instruction results in a *valid* Gcal date-part, that may be used in a resource file line. * Now, the `--execute-command' option also works correctly for global text variable assignments like `-r$a?echo $HOME' or `-r$b:expr 2 + 2 2>&1' if it is written *before* such a text variable option in the command line (Sorry, it still does not work if it is given *behind* such a text variable option in the command line). * Changed behavior of Gcal in terms how it choses the default style of year calendar sheets if the `--type' option is used. * Now, the `--grouping-text[=TEXT]' option also recognizes a '^'-CARET character for line break-up, global $TVAR references and `%?'... special texts that are used for text replacement. * New `--heading-text=TEXT' option that can be used to create a self-defined title text for the fixed date list. The TEXT argument may contain '~'-TILDE and '^'-CARET characters for line break-up, global $TVAR references and `%?'... special texts that are used for text replacement. * Changed layout of Coypright texts to improve the legal clearness. Major changes in release 3.00 * Some major changes in the `doc/LL/texi/gcal.texi' documentation. * Changed my old and momentary (20000527) recent eMail address to , because I do not know for how long my old address will remain valid. At any case, the eMail account will hopefully be available for a long time. * Changed eMail address to . * The new `--cycle-end=ARG' and `--cycle-step=ARG' options can be used for flexibly displaying a table of astronomical %sun* and %moon* special text times and data within a given time interval that is valid for a single day. If the `--cycle-end=ARG' option is given, the argument of the `--time-offset' option serves as the CYCLE-START value! * Changed behavior of ``empty'' text variables TVAR, which are not displayed AS-IS anymore if referenced. * New `--adjust-value=ARG' option for setting a user-defined rise/set-based reference altitude which is respected by the %sun* and %*moon special texts, respectively, the shadow length factor that is respected by the %sun* special texts. * New `--atmosphere=ARG' option for setting the air pressure and temperature, which are the main values to calculate the actual amount of atmospheric refraction that is respected by some times and data of the %sun* and %moon* special texts. If the air pressure argument is set to a value less equal zero, the %sun* and %moon* special texts do not correct some times and data by the amount of atmospheric refraction. * The new `misc/mrms/*' files can be used to display the times at which moonset/moonrise has happened in the past resp., will happen in the future, based on the actual local time for several geographic locations around the world. * Added new `data/bkk.rc', `data/ms.rc', `data/de-mdata.rc', `data/de-sdata.rc', `data/mdata.rc', `data/sdata.rc' and `data/sun-moon.rc' demonstration resource files. Major changes in release 2.50 (inofficial alpha testing release) * Added four new `%?[ARG]' "special texts with other argument" for displaying moonrise, moonset, Moon's day length and Moon's night length approximately (%(, %), %[ and %]). * Changed behavior of the `--starting-day' and `--type' options, which do not implicitly enable a month calendar sheet anymore. * If the date given as an argument to the `--gregorian-reform' option is beyond the actual (Gregorian) system date, the actual (Gregorian) system date and a date which is given by the actual date modifier %DATE will be automatically converted to the proper proleptic Julian calendar date now. * The maximum year number which may be given as an argument to the `--gregorian-reform' option is 10002 now. So it is possible to calculate proleptic Julian calendars likewise Chinese/Japanese calendar holidays/months until 31-Dec-9999. * Changed behavior when analyzing the NLS $LANGUAGE, $LC_* and $LANG i18n environment variables. Any of these environment variables which are defined, but have an empty value, are unrespected now. * Removed a bug that occurred when display time values, and that time values like `11:60' are now correctly displayed as `12:00'. * New `--precise' option for displaying the precise, non-rounded, data and times of the %sun*, %moon* and %distance special text. * New `--limit' option for displaying only the sunrise and sunset times of the %sun* special text which appear on the actual day. * Added 273 new countries/territories, which can be accessed by using the `--cc-holidays=CC[+CC+...]' option. * New `--time-offset=ARG' option for setting a time offset value added, which is respected by `--astronomical-holidays' (Moon phase, solar and lunar eclipse, equinox, solstice), `--zodiacal-marker-holidays', `--celtic-holidays', `--chinese-flexible-holidays', `--chinese-flexible-months', `--japanese-flexible-holidays', `--japanese-flexible-months' and `--multicultural-new-year-holidays'. So it is possible to calculate such astronomically based events based on localtime instead of UT/GMT only. Works also for the %sun* and %moon* special texts. * New `--bahai-months' option for including the Bahai calendar months into the eternal holiday list added. * New `--chinese-flexible-months' option for including the Chinese calendar months based on the meridian given as a time factor by the `--time-offset' option into the eternal holiday list added. * New `--chinese-months' option for including the Chinese calendar months into the eternal holiday list added. * New `--coptic-months' option for including the Coptic calendar months into the eternal holiday list added. * New `--ethiopic-months' option for including the Ethiopic calendar months into the eternal holiday list added. * New `--french-revolutionary-months' option for including the French Revolutionary calendar months into the eternal holiday list added. * New `--hebrew-months' option for including the Hebrew calendar months into the eternal holiday list added. * New `--indian-civil-months' option for including the Indian civil calendar months into the eternal holiday list added. * New `--islamic-civil-months' option for including the Islamic civil calendar months into the eternal holiday list added. * New `--japanese-flexible-months' option for including the Japanese calendar months based on the meridian given as a time factor by the `--time-offset' option into the eternal holiday list added. * New `--japanese-months' option for including the Japanese calendar months into the eternal holiday list added. * New `--old-armenic-months' option for including the Old-Armenic calendar months into the eternal holiday list added. * New `--old-egyptic-months' option for including the Old-Egyptic calendar months into the eternal holiday list added. * New `--persian-jalaali-months' option for including the Persian ``Jalaali'' calendar months into the eternal holiday list added. * New `--astronomical-holidays' option for including some astronomical data (Moon phase, equinox, solstice) into the eternal holiday list added. * New `--bahai-holidays' option for including some Bahai calendar holidays into the eternal holiday list added. * New `--celtic-holidays' option for including some Celtic calendar holidays into the eternal holiday list added. * New `--chinese-flexible-holidays' option for including some Chinese calendar holidays based on the meridian given as a time factor by the `--time-offset' option into the eternal holiday list added. * New `--chinese-holidays' option for including some Chinese calendar holidays into the eternal holiday list added. * New `--hebrew-holidays' option for including some Hebrew calendar holidays into the eternal holiday list added. * New `--islamic-civil-holidays' option for including some Islamic civil calendar holidays into the eternal holiday list added. * New `--japanese-flexible-holidays' option for including some Japanese calendar holidays based on the meridian given as a time factor by the `--time-offset' option into the eternal holiday list added. * New `--japanese-holidays' option for including some Japanese calendar holidays into the eternal holiday list added. * New `--multicultural-new-year-holidays' option for including some multicultural New Year's Day holidays into the eternal holiday list added. * Now, all dates of Easter-based holidays of the Orthodox Christian Eastern churches are implicitly converted to the appropriate Gregorian date according to the Gregorian Reformation period as respected in Greece. * New `--orthodox-old-holidays' option for including some Orthodox Christian Eastern churches old calendar holidays into the eternal holiday list added. * New `--orthodox-new-holidays' option for including some Orthodox Christian Eastern churches new calendar holidays into the eternal holiday list added. * New `--persian-jalaali-holidays' option for including some Persian ``Jalaali'' calendar holidays into the eternal holiday list added. * New `--zodiacal-marker-holidays' option for including some Zodiacal marker data (aka the Chinese/Japanese major/minor solar terms resp., aka the Chinese ZhongQi's/JieQi's) into the eternal holiday list added. * Removed the `--without-standard-holidays' option. * Removed a bug that occurred during century leap years when displaying holidays of Orthodox Churches. * When using an external pager via $PAGER environment variable, possible command line arguments stored there are passed now. * Changed option `--mail=ADDRESS' to `--mail[=ADDRESS]'. If no ADDRESS is specified, use contents of $MAILTO as ADDRESS. If $MAILTO is not set, use contents of $USER as ADDRESS. If $USER is not set, use contents of $LOGNAME as ADDRESS. If $LOGNAME is not set, do not send eMail. * New text variable assignment `TVAR?COMMAND' implemented, which assigns that text to TVAR --interpreted by Gcal--, which is created by the COMMAND on the STDOUT channel. This kind of assigment is performed only in case the `--execute-command' option is given. * New text variable assignment `TVAR:COMMAND' implemented, which assigns that text to TVAR --uninterpreted by Gcal--, which is created by the COMMAND on the STDOUT channel. This kind of assigment is performed only in case the `--execute-command' option is given. * Removed the highlighting from the help screens and changed the layout of the basic help screen (`--help' option). * Removed fixed date modifier [B] (== `--bypass-shell-command') completely but added `--execute-command' instead, which is set to FALSE by default for safer program execution. * Changed the file searching mechanism for resource, response, and user included files, and that searching by using the GCALPATH environment variable is done prior before searching by using the HOME environment variable. * Added `doc/mksamp.in' and the SED scripts `mks1sed.in' (expanded to `mksamp-1.sed'), and `mks2sed.in' (expanded to `mksamp-2.sed') for generating Texinfo files from the `doc/LL/examples/*.in' examples template files ready to include into the `doc/LL/texi/gcal.texi' documentation. * Added all example resource files from the Gcal Texinfo reference manual to the `doc/LL/examples/' subdirectories. * A '-' character leading one of the `%?' "special texts without any argument" (`%[FORMAT]y', `%[FORMAT]m', `%[FORMAT]w' and `%[FORMAT]d') switches the sign of the computed value. * Renamed the Gcal supported environment variable LINES to GCAL_LINES, COLUMNS to GCAL_COLUMNS, LI to LINES and CO to COLUMNS. * The `doc/LL/gcal.info*' files are created now by using 8-bit characters assuming the next official release of Texinfo's `info' reader supports 8-bit characters. * The new `doc/LL/gcal.html' HTML files are now part of the distribution. * The old `doc/LL/gcal.txt' 8-bit plain text files are no longer part of the distribution. * Added new `doc/LL/txi-LL.tex' files. * The new `misc/wloc/*' files can be used to create location files which contain the air line distances and the direction/course angles between several geographic locations around the world. * The new `misc/ddiff/*' files can be used to create Gcal location resource files which contain the day/night lengths and differences for all days of the year for any location around the world. * Added new `data/birthday', `data/wloc.rc', `data/wtt1.rc', `data/wtt2.rc' and `data/wtt3.rc' demo resource files. * Added new `%[FORMAT]?[ARG]' "special text with other argument" for displaying either the air line distance between two geographical point locations or the course/direction angle between two geographical point locations (%b). * Fixed date modifier [J] (== `--suppress-text-part') added. * New `--transform-year=BASE_YEAR' option for setting the base year of the calendar. * The text converters `txt2gcal' and `gcal2txt' also respect the optional format instruction which can be used by many special texts `%?'... and all text variables TVAR. * New command implemented: MM-MM JJJJ+JJJJ which displays a range of selected months of specified years. * New `--suppress-holiday-list-separator' option (== `-G') for suppressing the leading blank line shown before the holiday list title added. * New `--translate-string=TEXT' option for defining the translatable country specific special character pairs added. * Added new `%[FORMAT]?[ARG]' "special text with other argument" for displaying the current system time total minutes (%'). * Added new `%[FORMAT]?[ARG]' "special text with other argument" for displaying the current system time hour (%_). * Added new `%[FORMAT]?[ARG]' "special text with other argument" for displaying the current system time minute (%?). * Added new `%[FORMAT]?[ARG]' "special text with other argument" for displaying the current system time am|pm suffix (%{). * Added new `%[FORMAT]?[ARG]' "special text with other argument" for displaying the current GMT total minutes (%`). * Added new `%[FORMAT]?[ARG]' "special text with other argument" for displaying the current GMT hour (%.). * Added new `%[FORMAT]?[ARG]' "special text with other argument" for displaying the current GMT minute (%/). * Added new `%[FORMAT]?[ARG]' "special text with other argument" for displaying the current GMT am|pm suffix (%}). * Added new `%?[ARG]' "special text with other argument" for displaying the RFC-822 style numeric timezone offset value which is based on the local time zone (%=). * Added new `%?[ARG]' "special text with other argument" for displaying the RFC-822 style numeric timezone offset value which is based on the UT/GMT zone (%"). * Russian translation by Oleg S. Tihonov. * The new `misc/srss/*' files can be used to display the times at which sunset/sunrise has happened in the past resp., will happen in the future, based on the actual local time for several geographic locations around the world. * Created AWK/Perl `data/scripts/v2x2v300' scripts for converting all `%?'... special texts of former Gcal versions into their "new" style. * Removed the obsolete `misc/wdays.*' files, see `misc/README' for further information. * By reason of implementing the optional format instruction which can be used by many format elements in the date format text now, the burned-in default country specific date formats for `DE == Germany', `US == U.S.A.' and `GB == Great Britain', which can be specified by the `--date-format' option are obsolete now and are changed to: CC Old-style New-style DE `%w, %1%D%2 %b %y' == `%<2#K, %1%>2*D%2 %<3#U %>04*Y' US `%W, %b %1%U%2 %y' == `%<3#K, %<3#U %1%>2&*D%2 %>04*Y' GB `%W, %1%U%2 %b %y' == `%<3#K, %1%>2&*D%2 %<3#U %>04*Y' * By reason of implementing the optional format instruction which can be used by many date format texts now, some format elements which can be individually specified by the `--date-format' option are obsolete now and are changed to: Symbolic name Old-style New-style %day number `%d' == `%>02*D' %day number +LS `%D' == `%>2*D' %day number +LZ ONS `%u' == `%02&*D' %day number +LS ONS `%U' == `%>2&*D' %complete month name `%B' == `%U' %3-letter month name `%b' == `%<3#U' %month number +LZ `%m' == `%>02*M' %month number +LS `%M' == `%>2*M' %complete year number +LZ `%y' == `%>04*Y' %complete year number +LS `%Y' == `%>4*Y' %last-2-digit year number +LZ `%z' == `%>02#Y' %last-2-digit year number +LS `%Z' == `%>2#Y' %complete weekday name `%A' == `%K' %3-letter weekday name `%W' == `%<3#K' %2-letter weekday name `%w' == `%<2#K' Legend: +LZ == With leading zero(es) +LS == With leading space(s) ONS == With Ordinal Number suffix * By reason of implementing the optional format instruction which can be used by many special texts in the text part of a resource file line now, some of these special texts are obsolete now and are changed to: Symbolic name Old-style New-style %complete weekday name `%o' == `%K' %3-letter weekday name `%O' == `%>3#K' %2-letter weekday name `%K' == `%>2#K' %weekday number (Mon=1...Sun=7) `%S' == `%W' %weekday number (Mon=1...Sun=7) ONS `%I' == `%>1&*W' %weekday number (Mon=0...Sun=6) ONS `%J' == `%>1&*E' %weekday number (Sun=1...Sat=7) `%(' == `%I' %weekday number (Sun=1...Sat=7) ONS `%<' == `%>1&*I' %weekday number (Sun=0...Sat=6) `%)' == `%J' %weekday number (Sun=0...Sat=6) ONS `%>' == `%>1&*J' %weekday number (Mon=1...Sun=7) FLX `%[' == `%S' %weekday number (Mon=1...Sun=7) FLX ONS `%{' == `%>1&*S' %weekday number (Mon=0...Sun=6) FLX `%]' == `%T' %weekday number (Mon=0...Sun=6) FLX ONS `%}' == `%>1&*T' %day-of-year number `%+' == `%N' %day-of-year number +LZ `%*' == `%>03*N' %day-of-year number ONS `%&' == `%>1&*N' %day-of-year number +LZ ONS `%#' == `%>03&*N' %day number +LZ `%N' == `%>02*D' %day number ONS `%s' == `%>1&*D' %day number +LZ ONS `%u' == `%>02&*D' %complete month name `%M' == `%U' %3-letter month name `%T' == `%>3#U' %month number `%U' == `%M' %month number +LZ `%W' == `%>02*M' %month number ONS `%z' == `%>1&*M' %month number +LZ ONS `%Z' == `%>02&*M' %complete year number +LZ `%=' == `%>04*Y' %age value (birthday) number `%b' == `%B' %age value (birthday) number ONS `%B' == `%>1&*B' %moon phase `%-' == `%O' %moon phase +LZ `%_' == `%>03*O' %moon phase text graphics image `%:' == `%Z' Legend: +LZ == With leading zero(es) FLX == Flexible starting day of week (`-s N' option) ONS == With Ordinal Number suffix * Implemented an optional format instruction, which can be used by many special texts `%?'... and all text variables TVAR. Its template is: [ ALIGNMENT [SIGN] [LZERO] WIDTH [SUFFIX] FORMAT ] (must be given in above mentioned order), e.g., `$:+010&#a' or `%>20&*Y'. ALIGNMENT: < == adjusts field contents at the left margin using width WIDTH. : == adjusts field contents in centered manner using width WIDTH. > == ajdusts field contents at the right margin using width WIDTH. SIGN : + == a numerical value is always lead by its sign. LZERO : 0 == a numerical value is filled up to WIDTH leading zeroes inclusivly a possibly leading explicit SIGN or an implicitly leading negative sign.. WIDTH : N == is the width N of the field (1...256). STYLE : u == converts field contents to upper-case letters. l == converts field contents to lower-case letters. w == converts field contents to capitalized words. SUFFIX : & == a numerical value is provided with an ordinal number suffix. FORMAT : * == does not cut the field contents after position WIDTH if it is longer than WIDTH. # == cuts the field contents after position WIDTH if it is longer than WIDTH. * The `--cc-holidays=CC[+CC+...]' option now allows to select more country specific holidays (partially incomplete), which are: CC Country ae United Arab Emirates ag Antigua and Barbuda ai Anguilla an Netherlands Antilles ar Argentina aw Aruba bb Barbados br Brazil cl Chile cn China co Colombia cr Costa Rica cy Cyprus dm Dominica ec Ecuador eg Egypt gd Grenada gp Guadeloupe id Indonesia ie Ireland is Iceland jo Jordan jp Japan kn St. Kitts and Nevis kr Republic of Korea lc St. Lucia li Liechtenstein lu Luxembourg mq Martinique ms Montserrat my Malaysia nz New Zealand pe Peru ph Philippines ro Romania ru Russian Federation sg Singapore sk Slovakia tr Turkey tt Trinidad and Tobago tw Taiwan uy Uruguay vc St. Vincent and Grenadines ve Venezuela vg British Virgin Islands vi U.S. Virgin Islands za South Africa * Version 1.6 of `misc/gcalltx/gcalltx.pl' added, which superseeds previous versions. * A few bugfixes and alot of modifications in the `src/*.c|h' files. Major changes in release 2.41 (inofficial alpha testing release) * Version 1.5 of `misc/gcalltx/gcalltx.*' added. * Added new `%?[ARG]' "special text with other argument" for displaying the actual Greenwich Mean Time (%@). * Improved math emulation code (still slow). * Option `--resource-file=-[+...]' resp., `-f|F-[+...]' reads from stdin channel now; `-f|F -[+...]' still searches for a file by the name of `-'. * Changed the definition for a %time "special text with other argument", which template was `%t[12|24]' and is now defined as `%t[*][[+|-]MMM|HH:[MM]]'. * Updated to GNU `gettext' version 0.10.35. * Added four new `%?[ARG]' "special texts with other argument" for displaying sunrise, sunset, day length and night length approximately (%o, %s, %u and %z). * Improved the processing speed of the `tcal' program in case it has to deal with ``large'' displacement values. * Changed the upper-case metatexts indicating the year (yyyy), month (mm) etc. to lower-case texts in Gcal's help screens. * The new `misc/dst/*' files convert ZONEINFO Daylight Saving Time information into Gcal's fixed date format. * The fixed date modifier [a] (== `--include-resource-file-name') also puts the line number of the fixed date into output. * Added more information text about Gcal's current i18n default mode in the version text. * New `--iso-week-number=yes|no' option for determing the type of week numbers used in the calendar sheet and the fixed date list. * Implemented some basic operations on text variables which are allowed in case TVAR contains an integer value: TVAR++ TVAR-- TVAR+=[+|-]N TVAR-=[+|-]N * Extended the basic date variable operation `DVAR+=N' to `DVAR+=[+|-]N'. * Extended the basic date variable operation `DVAR-=N' to `DVAR-=[+|-]N'. * Extended definition of real Julian day number special text from `%j[[-]N]' to `%j[[+|-]N]'. * Renamed the `--exit-status-help-127' option to `--exit-status-help-non-zero'. * New `--ignore-case' option for ignoring case distinctions in both the PATTERN and the text part of a resource file line, if the `--filter-text=PATTERN' option is specified. * New `--revert-match' option for reverting the sense of matching, i.e. to select non-matching lines, in case the `--filter-text=PATTERN' option is specified. * The new `misc/moon/*' files show how advanced use of Gcal can be done in shell script files. * The new `misc/daily/*' files demonstrate how basic time management of fixed dates can be done. * Added new `%?TEXT' "special texts with text argument" for displaying the contents of environment variables (%-). * Corrected and added some Thai holidays (CC=th). * New `misc/gcalmagic.add' for adding to `/etc/magic' file. * Fixed date modifier [Q] (== `--suppress-fixed-dates-list-separator') for suppressing the leading blank line shown before the fixed date list title added. * No post-search for files in the burned-in GCAL_???_DATADIR directories is performed anymore in case the GCAL_???_DATADIR environment variable is set, but the file is NOT found there. * A few bugfixes in some `Makefile.in' files and in the private `./install-inf.in' script. * Some minor changes in the `doc/LL/texi/gcal.texi' documentation. Major changes in release 2.40 * Polish translation by Wojciech Marek Galazka. * Added six new `%?' "special texts without any argument" for conditionally highlighting of text (%5 , %6 ... %9 and %0). * Fixed date modifier [U] (== `--suppress-date-part') added. * Removed the `-m ADDRESS' short-style option for sending eMails. * The `--biorhythm-axis=NUMBER' option can be used now for setting the width of a `%;[DATE]' biorhythm text graphics (NUMBER within the range of 1...100, the default width of a single axis is 20 characters). * Added two new `%?[DATE]' "special texts with date argument" for displaying the biorhythm cycle (%, and %;). * The `--moonimage-lines=NUMBER' option can be used now for setting the number of lines of a `%:[DATE]' Moon phase text graphics (NUMBER within the range of 6...30, the default height of the image are 12 lines). * Updated to GNU `gettext' version 0.10.27. * Swedish translation by Johan Linde. * Improved signal handling. * The `--here=LINE' option (== `-# LINE') can be used now for defining resource file lines, which are additionally processed at last in each resource file processing cycle. * Added three new `%?[DATE]' "special texts with date argument" for displaying the Moon phase approximately (%- , %_ and %:). Major changes in release 2.30 (inofficial beta testing release) * The `--orthodox-calendar' option (== `-O') can be used now for calculating the leap years as done by the Eastern orthodox churches. * Corrected the fixed date feature for that year in which the Gregorian Reformation have occurred. * The burned-in Gregorian Reformation period 18-28 Feb 1753 (`--gregorian-reform=1753') is new. * The burned-in Gregorian Reformation period 19-28 Feb 1700 (`--gregorian-reform=1700') is new. Major changes in release 2.20 (inofficial beta testing release) * Dutch translation by Erick Branderhorst. * French translation by Michel Robitaille. * The MAILPROG environment variable can be used now for specifying the program which is used as the mailer. * The new `--cc-holidays=CC[+CC+...]' option now allows to select the country specific holidays which are part of the eternal holiday list. Already supported country specific holidays are: CC Country -- ------- at Austrian holidays au Australian holidays be Belgian holidays ca Canadian holidays ch Swiss holidays cz Czech holidays de German holidays dk Danish holidays es Spanish holidays fi Finnish holidays fr French holidays gb British holidays gr Greek holidays hu Hungarian holidays it Italian holidays mx Mexican holidays nl Dutch holidays no Norwegian holidays pl Polish holidays pt Portuguese holidays se Swedish holidays si Slovenian holidays th Thai holidays us U.S. American holidays * Removed the `--de-holidays' and `--us-holidays' options. * The `--without-standard-holidays' option disables all "standard" holidays. * Fixed date modifier [Z] (== `--zero-dates-only') added. * The `--filter-period=ARG' option (== `-P ARG') can be used now for displaying only those fixed dates which are matched by the ARG. ARG is one or more of the `%?[DATE]' "special texts with date argument" (without a leading '%' character and connected by a `,' character) used for date exclusion, means "inclusive/exclusive date period". * The `--filter-day=ARG' option (== `-D ARG') can be used now for displaying only those fixed dates which are matched by the ARG. ARG is one or more of the `%?' "special texts without argument" (without a leading '%' character) used for date exclusion, means "inclusive/exclusive day period". * Fixed date modifier [B] (== `--bypass-shell-command') added. * The `gcal2txt.c' file, which creates a verbatim text file from a Gcal resource file is part of distribution now. * The `--filter-text=PATTERN' option (== `-I PATTERN') can be used now for displaying only those fixed dates which are matched by the regular expression search pattern. * A `^' character given in the "text"-part of a resource file line creates a real `\n' newline character (similar `~' character), except the fact that text breaked up by it isn't provided implicitly with leading blanks. * Implemented a bunch of new special texts (the `%?'... things), which can be used in the text part of a resource file line. Major changes in release 2.11 (inofficial beta testing release) * Option `-K' respectively `--with-week-number' now provides the calendar sheets with ISO week numbers. * The date variable `t' (yyyy@e|t|dvar[+|-]N[`www']) references the actual date now and has a special meaning therefore (likewise `e'). * Supports `libncurses.a' now. Major changes in release 2.10 * Rewrote the `tcal-sh' shell script as a C program. * Several long-style options implemented like --today, --tomorrow, --week, --end-of-week, start-of-week, --month, --end-of-month, --start-of-month, --year, --end-of-year and --start-of-year, which are ALIAS names of the according modifiers of the -c|C[] short-style option. * The German `.info' and `.txt' files likewise the German message catalog `de.po' are conforming the ISO-8859-1 character set now. * The new %z and %Z directive of --date-format=PRESET_VALUE|ARG option now allows to display the last two digits of a year. * Updated to GNU `gettext' version 0.10.23. Major changes in release 2.01 (inofficial beta testing release) * Added %k[yyyy[mm[dd|`www'[]]]] macro, which is replaced by the ISO-week number of the current/specified date in the text part of a resource file line. * Added %o[yyyy[mm[dd|`www'[]]]] macro, which is replaced by the complete textual weekday name of the current/specified date in the text part of a resource file line. * Updated to GNU `gettext' version 0.10.14. * Some bugfixes in the C sources and a few changes in the Texinfo documentation (corrected xref's). * A "text-part" of a resource file line may be provided now with leading whitespace characters if the first of these leading whitespace characters is quoted. Major changes in release 2.00 * Renamed --export-local-date-variables long-style option to --export-date-variables. * The new --export-text-variables option now allows to export local text variables from file to file. * The new --text-variable=ARG option (resp., -r ARG) now allows the definition of global text variables. * Implemented the use of global and local text variables (`tvar'->$a...$z), which can be set to ordinary text, %... macros and references to other text variables and are expanded resp., respected everywhere in a resource file line if referenced there. * Removed the --assign=ARG long-style option. * New command implemented: mm/jjjj-jjjj or mm jjjj-jjjj which displays a range of a selected month of specified years. * Gcal package internationalized by means of the GNU gettext package (German message catalogs). * Reorganized package structure. * Changed symbol/environment variable GCAL_USR_LIBDIR to GCAL_USR_DATADIR and GCAL_SYS_LIBDIR to GCAL_SYS_DATADIR. * Some new date variable assignments/operations implemented: dvar=dvar[+|-]N --> Assignment of a date variable `dvar', advanced by plus/minus N days. dvar=dvar[+|-]N`www' --> Assignment of a date variable `dvar', advanced by plus/minus N weekdays `www'. dvar+=N`www' --> Addition of N weekdays `www'. dvar-=N`www' --> Subtraction of N weekdays `www'. * An underscore ('_') character which is used in option arguments is converted to a real blank/space (' ') character now unless it's quoted like '\_'. * The (pre)selected/defined "date format" is used now to set the attributes in calendar sheets. * The new GCAL_DATE_FORMAT environment variable can be used to preset the date format, which is used to order a displayed date. * The new --date-format=PRESET_VALUE|ARG option now allows flexible ordering of a displayed date. * The contents of the GCALPATH environment variable will be used now on all systems for searching resource and response files. * New GNU long-style option mode implemented, which either allows the selection of a SPECIAL option argument or of a GIVEN option argument (see --gregorian-reform=YEAR|ARG, where ARG is a user defined Gregrorian Reformation date yyyy,mm,dd,dd). * The `txt2gcal.c' file, which creates a verbatim Gcal resource from a a text file is part of distribution now. * The contents of the TZ (timezone) environment variable is displayed now in the header part of created response files, shell script files and outgoing Emails. * Changed the file searching mechanism with the effect, that files are no longer searched in the actual directory (sure, this can be forced by e.g.: `-f foo+./bar+./baz'). * Revised "eternal holiday" list. * Implemented the new run-time option --de-holidays, which provides the eternal holiday list with additional German holidays. * The C preprocessor symbols USE_CATH, USE_USHDY, EXIT_STAT_HLP, GREG_1582 and GREG_1752, which were selectable during the (Auto)configuration step, are made to run-time options of Gcal now (--christian-holidays, --us-holidays, --exit-status-help-127 and --gregorian-reform=YEAR). Major changes in release 1.01 * My private `install-info' shell script is part of the distribution now. * Rejected my specific copyright conditions, because these contradict the terms of the GPL. * Some small bugfixes. Major changes in release 1.00 * Specific copyright conditions are part of Gcal now, see the file COPYING2 for more information. * The option `--starting-day=0' can now be specified as `--starting-day=today' respectively `-s today', too. * The German program version now accepts the English day and month names if no appropriate German names are given. * Added %1, %2, %3 and %4 macros for user defined text highlighting in the text part of a resource file. * Unlimited nesting level of include files realized. * Implemented the use of an optional "repetition" factor and an optional "appearance" factor, which can be added to the end of a date part of fixed dates, which are given in a resource file (`:' leads a repetition factor, `.' leads an appearance factor): yyyymmdd:N yyyymmdd:N.N yyyymmdd:N,[mm]dd:N.N ... yyyymmdd#[mm]dd.N yyyymmdd#[mm]`www'N.N yyyymm`www'N:N yyyymm`www'N:N.N yyyymm`www'N:N,[mm]`www'N:N.N ... yyyymm`www'N#[mm]`www'N.N yyyymm`www'N#[mm]dd.N yyyymm`www'#`www'.N [ All the above codings are allowed with the yyyy@e|dvar[+|-]N[`www'] and the yyyy*d|wN[`www'] date formats, too! ] * Implemented optional lists and ranges of days, which can be added to the date part of fixed dates, which are given in a resource file (`,' is the list separator character, `#' the range separator character): yyyymmdd|`www'|`www'N,[mm]dd|[mm]`www'|[mm]`www'N ... yyyymm`www'#`www' yyyymm`www'N#[mm]`www'N yyyymmdd#[mm]`www'N yyyymm`www'N#[mm]dd yyyy*d|wN|N`www',N|N`www' ... yyyy*d|wN#N`www' yyyy*d|wN`www'#N yyyy*d|wN`www'#N`www' yyyy@e|dvar,|[+|-]N[`www'],[+|-]N[`www'],[+|-]N[`www'],[+|-]N[`www'] ... yyyy@e|dvar[+|-]N[`www']#[+|-]N[`www'] * Gcal now checks for the existence of an external `pg' pager. * The subject for an outgoing Email is now created via the `-s' option of the `mail' program. * Added %j[[-]N] macro (real Julian day number). * Changed the week number of year text. * A fixed date warning which results to a leap day (i.e. the 29'th February), is displayed at the 28'th February in non-leap years if the option `--leap-day=february' is given resp., at the 1'st March if the option `--leap-day=march' is given. * The `--long-help=?' resp., `--usage=?' option now prints a list of all valid long-style options. * Renamed `--hidden' option to `--export-local-date-variables'. * Alternative format of fixed date list (--alternative-format resp., fixed date modifier [A]) implemented. * Increased the version number to 1.00. Major changes in release 0.39 * Fixed some bugs in the C sources. * A positive displacement value for a date variable may either be given `@dvar+N' or `@dvarN' now. Major changes in release 0.38 * Added environment variable GCALANSI, which must be defined (not necessarily set) if ANSI escape highlighting sequences should be substituted respectively emitted by default. * Redefined the "starting_day_of_week_option", which requires an argument now (--starting-day=ARG respectively -s ARG, and new ARG is 0 | 1|Mon|2|Tue|...|7|Sun). * Short-style options which require an argument can be given now either in the `-Xfoo' or in the `-X foo' notation. * --exclude-holiday-list-title resp., -X option excludes the title text of an eternal holiday list now. * Independant use of standard dates, Julian dates and both standard- and Julian dates in calendar sheet (-j -jb), eternal holiday list (-jn -jnb) and fixed date warning list (-jc -jcb). * -c|C option eliminated. * -c|C[0]... for indicating a list eliminated, used further modifier [l] --list-mode instead. * -c|Cmmwwwn is now -c|Cmmwww without mode character 'n'. * Further fixed date modifiers *d, 0*d,*dwww, 0*dwww, *w, 0*w,*wwww, 0*wwww added. * Date variables are able to manage the new date format now (e.g. dvar=*d[www]). * The %s..., %e..., %b... and %y... macros are able to manage the new date format now (e.g. %syyyy*d[www]). * Actual date modifier manages the new date formats now (%yyyy*d[www] resp., %yyyy*w[www]). * Included new date formats yyyy*d[www] and yyyy*w[www] for encoding fixed dates in a resource file. * Changed description text of `wn' to `www' (means short weekday name consisting of two or three characters). * The number 99 encodes the last month mm of a year now. * The number 99 encodes the last day dd of a month now. * The number 999 encodes the last day of a year now. * Changed default behavior of fixed date warning period modifiers t, w+, m+ and y+ (the produced list doesn't start today now). * Option --include-today resp., fixed date modifier [d] is new. * Option --shell-script=ARG resp., -S creates a shell script for calling gcal with all given arguments of the command line and GCAL environment variable (similar the --response-file=ARG resp., -R response file option). * Option `-H yes' added, which forces the output of highlighting sequences if output is redirected/piped. * Option --highlighting=yes is the equivalence of -H yes. * Option --highlighting=no is the equivalence of -H no. * -q[1..4] short style option doesn't exist anymore (changed to --debug[=list_of_arguments]). * Revised several long and short style options and changed their option character resp., mnemonic name. * Revised documentation and help screens again. Major changes in release 0.37 * More long options implemented. * Revised documentation. Major changes in release 0.36 * Bugfix for OS/2 systems. * Several typos in man-pages and Texinfo files corrected. * The German "Umlaute" are supported now in dvi file of German Texinfo documentation. Major changes in release 0.35 * Official distributed version. * First version of Texinfo documentation created. Major changes in release 0.34 * External pager is respected now. * Another fiscal year command `:yyyy' added. * Two further special 3 month modes added: command `.+': actual and next two month of current year. command `.-': actual and previous two month of current year. * Email option -m|M included, which sends gcal's output by mail(1) program to user. * Extension of actual date modifier: %month name[dd], %weekday name[n], %dd. * Global suppress calendar sheet option -u added. * Renamed options: -f|F is -n|N now and vice versa. * Added further "eternal holiday list" option -F for displaying legal days only. * Further actual date modifier %yyyy@[[-][wn]] added. * Further fixed date modifiers @dvar[[-]], 0@dvar[[-]], @[[-][wn]] and 0@[[-][wn]] added. * Some long options (--help --help-long --license --version) added. * Added further command line option for setting global date variables (-v). * Implementation of simple global and local date variables and some basic operations on them (dvar=mmdd, dvar=mmwn, dvar=dvar, dvar++, dvar--, dvar+= and dvar-=). * Calculation of eternal holidays from A.D.464..YEAR_MAX. * Further fixed date modifiers d, 0d, @e[[-]] and 0@e[[-]] added. * Further fixed date modifier [E] added which enables inclusion of those eternal holiday dates, which are legal days only. * Added further command line option -d for setting user defined highlighting sequence / marking character pairs. * Response file write option -l implemented. * Actual date modifier %yyyy[mm[dd|wn[n]]] resp., %yyyy@e[[-]] added. * Standard date part of resource file line more flexible now -> yyyy[mm[dd[n]]]`text' * @... holiday coding of date part of resource file line added, e.g.: yyyy@e-20 = date at Easter-20 days in year yyyy 0000@e20 = date at Easter+20 days every year * Further fixed date modifiers w, 0w, `mmdd'n and 0`mmdd'n added. * Fixed date modifiers [k] (display ISO week numbers) and [u] (suppress output of calendar sheet) added. * Two special 3 month modes added: command `.': previous, actual and next month of current year. command `..': actual quarter of current year. * Extended %b..., %y..., %s... and %e... macros by the "n'th weekday of month" field and the [yyyy] is optional now (explicit year or 0000), e.g.: %s[yyyy[mm[dd|wn[n]]]]. * Extension of RC-file's date part by a "n'th weekday of month" field. * Increased the number of managed resource file entries to 10000. * Further command line option for setting the warning level (-q[1..4]) added. * #include statements in resource files are respected now. * Resource files are searched in `gcal's user library directory GCAL_USR_LIBDIR and `gcal's system library directory GCAL_SYS_LIBDIR, too. * Extended %syyyy[mm[dd]] and %eyyyy[mm[dd]] macros. * Added simple %d macro (day difference), simple %w macro (week difference), simple %m macro (month difference), simple %y macro (year difference) and the %n[[-]] macro (effective date text). * Extended time macro %t[12|24] (12 / 24 hour display) added. * RC-file %... items may be quoted by \%... now. * Further fixed date modifier [z] added for showing the consecutive number of a fixed date warning message. * A line of the resource file can be continued at next line by a BACKSLASH-NEWLINE character sequence now. * Response file (@file) handling added. * Further fixed date modifier `simple' added. * Extended help screen (-hh|-??) added. * Further fixed date modifiers `mmdd', 0`mmdd', <+|-> and 0<+|-> added. * Renamed environment variable `CAL' to `GCAL'. * Renamed `cal' to `gcal'! Major changes in release 0.33 * Alternative resource file (-n|N) feature added. * Management of %t, %syyyy and %eyyyy items in RC-file. * Fixed date modifiers [a] (show RC-file name in warning) and [x] (exclude title of fixed date list) added. * Starting day of week option [-s[]] without trailing modifier sets starting day of week to actual weekday. * Display all dates of fixed date warning period feature added (-C[] or -C[][T|W|M|Y] or -c[][T|W|M|Y] or -N<>) (thanks to Stephan Forth). * Fixed date modifier for grouping [g[`txt']] added (thanks to Stephan Forth). * Fixed date modifier added for omitting the date part of a warning [o] in case more than one warning refers to that date. * Added quoting of `~'-TILDE character by `\~' resp., `\\~'. Major changes in release 0.32 * German "Tag der Deutschen Einheit" holiday respected after 1953 and 1989 now. * Fiscal year mode ([mm:]yyyy) implemented. * Added highlighting of eternal holiday list. * Very poor and simple internal pager (-p) implemented. * CAL environment variable for options is respected now. * (-i) international calendar format (similar BSD-cal) added. Major changes in release 0.31 * Changed my signature. * Print year using %04d format always. Major changes in release 0.30 * Respected Julian flag for RC fixed dates/holiday list. * Julian option modifiers [bfc]. * `~'-char in RC-file line is replaced by a "real" `\n'-NEWLINE char. Major changes in release 0.29 * Included copyright notice (gpl) and version. * U.S. holidays (US_HDAY). * Respected eternal holidays in fixed dates list. * Ascending/descending sort of holiday list/RC fixed dates. Major changes in release 0.28 * Management of %byyyy and %yyyyy items in RC-file. gcal-4.1/README0000664000000000000000000004155712353522077010057 00000000000000This is README for the GNU Gcal package. The Name of the Game ==================== This file briefly informs about the major features of Gcal, the GNU Gregorian calendar program. Gcal is a program for calculating and printing calendars. Gcal displays hybrid and proleptic Julian and Gregorian calendar sheets, respectively, for one month, three months or a whole year. It also displays eternal holiday lists for many countries around the globe, and features a very powerful creation of fixed date lists that can be used for reminding purposes. Gcal can calculate various astronomical data and times of the Sun and the Moon for at pleasure any location, precisely enough for most civil purposes. Gcal supports some other calendar systems, for example the Chinese and Japanese calendar, the Hebrew calendar and the civil Islamic calendar, too. The Advantages of `gcal' ======================== Its main advantages over BSD-`cal' and `calendar' are: * Some special calendar sheet formats. * Calendar sheets can be provided with week numbers. * Variable number of year calendar sheet blocks. * Adjustable ordering of displayed dates. * Adjustable period of Gregorian Reformation. * Proleptic Julian and Gregorian calendars. * Adjustable highlighting of holidays and actual day. * Variable starting day of week. * Output of day-of-year numbers and concatenated day and day-of-year numbers. * Allows user-defined ordering of the date elements. * Output of fiscal years. * Output of lists or ranges of months or years. * Sorted output of selectable country/territory specific eternal holiday lists (mostly complete) for nearly *all* countries around the globe, which are generated automatically. * Sorted output of Christian Western churches calendar holidays, Orthodox Christian Eastern churches old and new calendar holidays, Hebrew calendar holidays, Islamic civil calendar holidays (since AD 622), Persian "Jalaali" calendar holidays, Chinese and Japanese calendar holidays (since AD 1645), more "other" calendar system holidays, multicultural New Year's Days, and start of "other" calendar system months, which are also generated automatically. * Sorted output of fixed date lists which can be defined and created in a highly flexible manner. * Allows filtration of fixed dates by using regular expressions and other built-in methods. * Allows the use of date and text variables and basic operations on them. * Some gimmicks like solar and lunar eclipse time, sunrise/sunset plus a lot of other Sun based data and times, Moon phase, Full and New Moon time, moonrise/moonset plus a lot of other Moon based data and times, zodiacal markers, equinox and solstice, air line distance between two geographic point locations plus course angles, biorhythm et cetera... * Fixed dates can be stored in several files. * Nearly unlimited nesting level of include files. * Nearly unlimited internal text and table lengths. * Default options can be stored in the `GCAL' environment variable. * Options and commands stored in response files can be preloaded. * Uses either an external pager or a simple built-in pager. * Detailed Texinfo reference manual. * German, English and American program version by default. * Supports various computer platforms. * GNU `gettext' internationalization technology, which allows the use of message catalogs for most native languages. * GNU `autoconf'(iguration) installation technology. * Supports both UN*X short-style options and GNU long-style options. System Requirements =================== Computer: MS-DOS PC, OS/2 PC, Linux PC, Acorn, Atari ST, Amiga, Vax, most UN*X Workstations, perhaps some Mainframes Compiler: Any? [ANSI] C compiler (GCC, TCC, BCC, MSC, ZTC, WCC, XLC, []CC...) RAM: Depending on compilation flags, operating system and compiler used, either less than 480 KByte load size or more than this value. Hard disk: None Graphics adapter: None Device driver: [n]`ansi.sys'/ansi-terminal recommended, but not essential Files you might look into ========================= * Read the `ATTENTION' file! It informs about all changed `%?'... special texts processed by Gcal in the text part of a Gcal resource file line and about other incompatibilities to previous Gcal versions. Keep in mind that this Gcal is designed to (inter)act on the recent data base (resource, response and shell script files) as distributed here, and that it probably fails if it accesses such a data base of former versions that is still not updated. * Some planned features which are not supported yet are listed in the `TODO' file. Here is a blurb from it: I'm looking for volunteers who create a graphical front end to the `gcal' back end. If you are interested in working out such a front end or you have already created one (native X11 and/or Tcl/Tk, Motif, DOZE-Win [NT], WIN 95 or 98 or 2000, OS/2 PM, Apple...), please contact me! Some extended ideas could be part of such a user surface, like formatting of output for different printers, output converted to Postscript/[La]TeX, better time management of fixed dates... * See `NEWS' for a summary of user-visible changes since version 0.28. * See `HISTORY' for a complete summary of changes. * See `INSTALL' for compilation and installation instructions. Some answers to frequently asked questions are given in the file `INSTALL', please read it! * And see the file `systems/README' for some hints how to compile Gcal on some special machines and operating systems. * A list of all known bugs can be found in the `BUGS' file. * And a list of internal limitations can be found in the `LIMITATIONS' file. * See the file `data/README' for some details to the enclosed reminder respectively appointment files and how to install them. * Inspect `MANIFEST' for a list of all files which are part of this distribution. * Many thanks to those who provided me with bug reports and feedback. See the `THANKS' and `HISTORY' files for more details. * See `ABOUT-NLS' for notes on the Free Translation Project. Some parts of this file which are important for a proper installation of Gcal are cited in one of the next sections. * You can find some useful wrapper scripts in the `misc/' subdirectory, see `misc/README' for more details. By the way, if you have designed useful wrapper scripts which solve tasks of your personal interest, and you think they could also be useful to others, feel free to share them with the rest of the world. Simply send your files to my eMail address and I will add them to the next release of Gcal. * The ISO 3166 country code table, the ISO 639 language code table and the ISO 6709 standard representation for geographic point locations can be found in the `doc/' subdirectory. * And see the `doc/GREG-REFORM' file, which shows a chronology of introduction of the Gregorian calendar (some selected countries only). * I also recommend to have a look into the `doc/calendar.faq' text worked out by Claus Tondering , which is a very good summary of the most common calendar algorithms and principles. * You can find all example resource files from the Gcal Texinfo reference manual in the `doc/LL/examples/' subdirectories, where LL is the ISO 639 two-letter code of your native language. Please read Gcal's Texinfo reference manual first for getting a deeper impression of the defaults and modes of operation of Gcal before you bomb me with questions which I have already answered there! Your native language Texinfo documentation (if already worked out) can be found in the `doc/LL/' subdirectory, where LL is the ISO 639 two-letter code of your native language. Thank you! How to get Termcap or Ncurses ============================= This program does not require Termcap or Ncurses, but takes advantage of it when it is available. You may want to get and install GNU `termcap' (still? `termcap-1.3.tar.gz') first from -- respectively `ncurses' (still? `ncurses-4.2.tar.gz') first from . Configuration Options ===================== If you use the GNU `autoconf' technology, you can enable/disable some Gcal specific package options. Simply run the `configure' script with one or more of these arguments: `--enable-easc' Use extended ASCII character set. `--disable-cc-holidays' Do not use all available country specific holidays, only use the top 20 countries instead. `--disable-hls' Do not use highlighting sequences respectively marking characters. `--disable-pager' Do not use external or simple internal pager feature. `--disable-rc' Do not use fixed date feature. `--disable-term' Do not use `libncurses.a', `libtermcap.a' respectively `libtermlib.a'. `--with-included-regexps' Use the V8 regular expression functions included here. IMPORTANT: `--enable-de' Generates and installs the German documentation files instead of their English equivalents. Native Language Support ======================= The `configure' script provides three more non-standard options. These will also be available in other packages if they use the functionality of GNU `gettext'. Use `--disable-nls' if you absolutely don't want to have messages handling code. You will always get the original messages (mostly English). You could consider using NLS support even when you do not need other tongues. If you do not install any messages catalogs or do not specify to use another but the C locale you will not get translations. The set of languages for which catalogs should be installed can also be specified while configuring. Of course they must be available but the intersection of these two sets are computed automatically. You could once and for all define in your `profile'/`cshrc' the variable `LINGUAS': (Bourne Shell) LINGUAS="de fr nl"; export LINGUAS (C Shell) setenv LINGUAS "de fr nl" or specify it directly while configuring env LINGUAS="de fr nl" ./configure Consult the manual for more information on language names. The second configure option is `--with-included-gettext' This forces to use the GNU implementing the message handling library regardless what the local C library provides. This possibility is much less error prone because possible unreliable effects of the local message handling system are avoided. And perhaps more important: many useful features can only be exploited with this library. The reason is obvious: we cannot dig in the internals of other implementations. It is likely that the discrepancy between the GNU implementation and others will get bigger in the time coming. So better change now! The third option is: `--with-catgets' The X/Open catgets functions which might be found in the local C library are not used by default. The reason is already described above: the GNU `gettext' library provides many useful extension which cannot be emulated with `catgets()'. Beside this the utility programs for generating the catalog used by `catgets()' vary heavily between different systems. You should select this feature only if you really don't want to use the GNU `gettext' library and do not want to extended functionality (but I do not see any good reason for such a choice). As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate ISO 639 LL two-letter code prior to using the programs in the package. For example, let's suppose that you speak German. At the shell prompt, merely execute `setenv LANG de' (in `csh'), `export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. An operating system might already offer message localization for many of its programs, while other programs have been installed locally with the full capabilities of GNU `gettext'. Just using `gettext' extended syntax for `LANG' would break proper localization of already available operating system programs. In this case, users should set both `LANGUAGE' and `LANG' variables in their environment, as programs using GNU `gettext' give preference to `LANGUAGE'. For example, some Swedish users would rather read translations in German than English for when Swedish is not available. This is easily accomplished by setting `LANGUAGE' to `sv:de' while leaving `LANG' to `sv'. Some Installation Hints ======================= Some points you might be interested in before installing the package: 1. If you run `make' with a distribution target, the Makefile rules will schedule a recompution of the `gcal.pot' file. But this is not possible without the GNU `gettext' package already installed. If you don't have this package already installed and modified any of the files build the package first with `--disable-nls' When this is done you will get a runnable `xgettext' program which can be used to recompute `gcal.pot'. 2. The package contains a file `misc/magic.add'. This is intended to be added to your `/etc/magic' file. After adding this the `file' command will recognize GNU message catalog files (`.mo' files). 3. The locale name alias scheme implemented here is in a similar form implemented in the X Windows Systems. Especially the alias data base file can be shared. Normally this file is found at something like `/usr/lib/X11/locale/locale.alias'. If you have the X Windows System installed try to find this file and specify the path at the make run: make aliaspath='/usr/lib/X11/locale/locale.alias:/usr/local/lib/locale' (or whatever is appropriate for you). In the `misc/' subdirectory you find an example for a alias database file. 4. On some systems it will not be possible to compile this package. It is not only this package but any other GNU package, too. These systems do not provide the simplest functionality to run configure. Today are known the following systems: configure name description -------------- ----------- mips-mips-riscos 2.1.1AC RISCos Reporting Bugs ============== Please send all comments and bug reports via electronic mail either to: Thomas Esken (preferred and always available) or Thomas Esken or Thomas Esken Actually, I do not know for how long the last two eMail addresses will remain valid. At any case, you can contact me via . If you want to write and you want be on the `safe side', CC your eMail to all above addresses. If all above actions have failed, eMail to . Bug reports should ideally include (if necessary in your opinion): 1. A detailed description of the bug behavior, not just interpretations 2. The complete output of `gcal --version' (or the contents of `defines.h' and the `src/Makefile' if you can't get `gcal' to compile) 3. The hardware and operating system (try `uname -a') 4. The compiler used to compile (if it is `gcc', use `gcc -v') 5. All the system specific files which are automatically created during the configuration phase (`config.h', `config.cache', `config.log', `config.status') and if necessary also the temporarily created files used for building them (`confdefs.h', `confcache', `conftest.vals', `conftest.h'...) 6. The shell environment (try `set') 7. The complete `termcap' entry for your terminal if the bug occurs while highlighting of text 8. The command line given to `gcal', that triggered the bug Copyright ========= Gcal Copyright (C) 1994, 95, 96, 1997, 2000 by Thomas Esken is free software. You can redistribute it and/or modify it under the terms of the `GNU General Public License' as published by the `Free Software Foundation'; either version 3, or (at your option) any later version. A copy of this license is provided under the name `COPYING', see it for more details. How to get `gcal' ================= The latest official version of Gcal is always available by anonymous ftp from , or from any of the `gnu' mirror sites: * gnu/gcal/gcal-*[.tar or .tar.Z or .tar.gz or .zip or .shar]. Some ftp servers can automatically make a `tar.Z' or a `tar.gz' from a `tar' file. If you are getting Gcal for the first time, you can ask for a `tar.Z' or `tar.gz' file instead of the much larger `tar' file. gcal-4.1/.tarball-version0000664000000000000000000000000413041164076012256 000000000000004.1 gcal-4.1/AUTHORS0000664000000000000000000000003012244130561010214 00000000000000Thomas Esken -- author gcal-4.1/config.h.in0000664000000000000000000022626113041163547011215 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to the number of bits in type 'ptrdiff_t'. */ #undef BITSIZEOF_PTRDIFF_T /* Define to the number of bits in type 'sig_atomic_t'. */ #undef BITSIZEOF_SIG_ATOMIC_T /* Define to the number of bits in type 'size_t'. */ #undef BITSIZEOF_SIZE_T /* Define to the number of bits in type 'wchar_t'. */ #undef BITSIZEOF_WCHAR_T /* Define to the number of bits in type 'wint_t'. */ #undef BITSIZEOF_WINT_T /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA /* Define to 1 if the C locale may have encoding errors. */ #undef C_LOCALE_MAYBE_EILSEQ /* Define to 1 if // is a file system root distinct from /. */ #undef DOUBLE_SLASH_IS_DISTINCT_ROOT /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Define this to 1 if F_DUPFD behavior does not match POSIX */ #undef FCNTL_DUPFD_BUGGY /* Define to 1 if fopen() fails to recognize a trailing slash. */ #undef FOPEN_TRAILING_SLASH_BUG /* Define to 1 if the system's ftello function has the Solaris bug. */ #undef FTELLO_BROKEN_AFTER_SWITCHING_FROM_READ_TO_WRITE /* Define to 1 if fflush is known to work on stdin as per POSIX.1-2008, 0 if fflush is known to not work, -1 if unknown. */ #undef FUNC_FFLUSH_STDIN /* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */ #undef FUNC_NL_LANGINFO_YESEXPR_WORKS /* Define if gettimeofday clobbers the localtime buffer. */ #undef GETTIMEOFDAY_CLOBBERS_LOCALTIME /* Define this to 'void' or 'struct timezone' to match the system's declaration of the second argument to gettimeofday. */ #undef GETTIMEOFDAY_TIMEZONE /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fd-safer-flag shall be considered present. */ #undef GNULIB_FD_SAFER_FLAG /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fflush shall be considered present. */ #undef GNULIB_FFLUSH /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fscanf shall be considered present. */ #undef GNULIB_FSCANF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module lock shall be considered present. */ #undef GNULIB_LOCK /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module malloc-gnu shall be considered present. */ #undef GNULIB_MALLOC_GNU /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module mkostemp shall be considered present. */ #undef GNULIB_MKOSTEMP /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module pipe2-safer shall be considered present. */ #undef GNULIB_PIPE2_SAFER /* Define to 1 if printf and friends should be labeled with attribute "__gnu_printf__" instead of "__printf__" */ #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module realloc-gnu shall be considered present. */ #undef GNULIB_REALLOC_GNU /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module scanf shall be considered present. */ #undef GNULIB_SCANF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module strerror shall be considered present. */ #undef GNULIB_STRERROR /* Define to 1 when the gnulib module btowc should be tested. */ #undef GNULIB_TEST_BTOWC /* Define to 1 when the gnulib module ceil should be tested. */ #undef GNULIB_TEST_CEIL /* Define to 1 when the gnulib module cloexec should be tested. */ #undef GNULIB_TEST_CLOEXEC /* Define to 1 when the gnulib module close should be tested. */ #undef GNULIB_TEST_CLOSE /* Define to 1 when the gnulib module dup2 should be tested. */ #undef GNULIB_TEST_DUP2 /* Define to 1 when the gnulib module environ should be tested. */ #undef GNULIB_TEST_ENVIRON /* Define to 1 when the gnulib module fclose should be tested. */ #undef GNULIB_TEST_FCLOSE /* Define to 1 when the gnulib module fcntl should be tested. */ #undef GNULIB_TEST_FCNTL /* Define to 1 when the gnulib module fflush should be tested. */ #undef GNULIB_TEST_FFLUSH /* Define to 1 when the gnulib module floor should be tested. */ #undef GNULIB_TEST_FLOOR /* Define to 1 when the gnulib module fopen should be tested. */ #undef GNULIB_TEST_FOPEN /* Define to 1 when the gnulib module fpurge should be tested. */ #undef GNULIB_TEST_FPURGE /* Define to 1 when the gnulib module fseek should be tested. */ #undef GNULIB_TEST_FSEEK /* Define to 1 when the gnulib module fseeko should be tested. */ #undef GNULIB_TEST_FSEEKO /* Define to 1 when the gnulib module fstat should be tested. */ #undef GNULIB_TEST_FSTAT /* Define to 1 when the gnulib module ftell should be tested. */ #undef GNULIB_TEST_FTELL /* Define to 1 when the gnulib module ftello should be tested. */ #undef GNULIB_TEST_FTELLO /* Define to 1 when the gnulib module getdtablesize should be tested. */ #undef GNULIB_TEST_GETDTABLESIZE /* Define to 1 when the gnulib module gettimeofday should be tested. */ #undef GNULIB_TEST_GETTIMEOFDAY /* Define to 1 when the gnulib module ioctl should be tested. */ #undef GNULIB_TEST_IOCTL /* Define to 1 when the gnulib module link should be tested. */ #undef GNULIB_TEST_LINK /* Define to 1 when the gnulib module localeconv should be tested. */ #undef GNULIB_TEST_LOCALECONV /* Define to 1 when the gnulib module log should be tested. */ #undef GNULIB_TEST_LOG /* Define to 1 when the gnulib module log10 should be tested. */ #undef GNULIB_TEST_LOG10 /* Define to 1 when the gnulib module lseek should be tested. */ #undef GNULIB_TEST_LSEEK /* Define to 1 when the gnulib module lstat should be tested. */ #undef GNULIB_TEST_LSTAT /* Define to 1 when the gnulib module malloc-posix should be tested. */ #undef GNULIB_TEST_MALLOC_POSIX /* Define to 1 when the gnulib module mbrtowc should be tested. */ #undef GNULIB_TEST_MBRTOWC /* Define to 1 when the gnulib module mbsinit should be tested. */ #undef GNULIB_TEST_MBSINIT /* Define to 1 when the gnulib module mbtowc should be tested. */ #undef GNULIB_TEST_MBTOWC /* Define to 1 when the gnulib module memchr should be tested. */ #undef GNULIB_TEST_MEMCHR /* Define to 1 when the gnulib module mkostemp should be tested. */ #undef GNULIB_TEST_MKOSTEMP /* Define to 1 when the gnulib module nl_langinfo should be tested. */ #undef GNULIB_TEST_NL_LANGINFO /* Define to 1 when the gnulib module open should be tested. */ #undef GNULIB_TEST_OPEN /* Define to 1 when the gnulib module perror should be tested. */ #undef GNULIB_TEST_PERROR /* Define to 1 when the gnulib module pipe2 should be tested. */ #undef GNULIB_TEST_PIPE2 /* Define to 1 when the gnulib module posix_spawnattr_destroy should be tested. */ #undef GNULIB_TEST_POSIX_SPAWNATTR_DESTROY /* Define to 1 when the gnulib module posix_spawnattr_init should be tested. */ #undef GNULIB_TEST_POSIX_SPAWNATTR_INIT /* Define to 1 when the gnulib module posix_spawnattr_setflags should be tested. */ #undef GNULIB_TEST_POSIX_SPAWNATTR_SETFLAGS /* Define to 1 when the gnulib module posix_spawnattr_setsigmask should be tested. */ #undef GNULIB_TEST_POSIX_SPAWNATTR_SETSIGMASK /* Define to 1 when the gnulib module posix_spawnp should be tested. */ #undef GNULIB_TEST_POSIX_SPAWNP /* Define to 1 when the gnulib module posix_spawn_file_actions_addclose should be tested. */ #undef GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE /* Define to 1 when the gnulib module posix_spawn_file_actions_adddup2 should be tested. */ #undef GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 /* Define to 1 when the gnulib module posix_spawn_file_actions_addopen should be tested. */ #undef GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN /* Define to 1 when the gnulib module posix_spawn_file_actions_destroy should be tested. */ #undef GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_DESTROY /* Define to 1 when the gnulib module posix_spawn_file_actions_init should be tested. */ #undef GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_INIT /* Define to 1 when the gnulib module putenv should be tested. */ #undef GNULIB_TEST_PUTENV /* Define to 1 when the gnulib module raise should be tested. */ #undef GNULIB_TEST_RAISE /* Define to 1 when the gnulib module rawmemchr should be tested. */ #undef GNULIB_TEST_RAWMEMCHR /* Define to 1 when the gnulib module realloc-posix should be tested. */ #undef GNULIB_TEST_REALLOC_POSIX /* Define to 1 when the gnulib module secure_getenv should be tested. */ #undef GNULIB_TEST_SECURE_GETENV /* Define to 1 when the gnulib module sigaction should be tested. */ #undef GNULIB_TEST_SIGACTION /* Define to 1 when the gnulib module sigprocmask should be tested. */ #undef GNULIB_TEST_SIGPROCMASK /* Define to 1 when the gnulib module stat should be tested. */ #undef GNULIB_TEST_STAT /* Define to 1 when the gnulib module strchrnul should be tested. */ #undef GNULIB_TEST_STRCHRNUL /* Define to 1 when the gnulib module strdup should be tested. */ #undef GNULIB_TEST_STRDUP /* Define to 1 when the gnulib module strerror should be tested. */ #undef GNULIB_TEST_STRERROR /* Define to 1 when the gnulib module strerror_r should be tested. */ #undef GNULIB_TEST_STRERROR_R /* Define to 1 when the gnulib module strstr should be tested. */ #undef GNULIB_TEST_STRSTR /* Define to 1 when the gnulib module unlink should be tested. */ #undef GNULIB_TEST_UNLINK /* Define to 1 when the gnulib module waitpid should be tested. */ #undef GNULIB_TEST_WAITPID /* Define to 1 when the gnulib module wcrtomb should be tested. */ #undef GNULIB_TEST_WCRTOMB /* Define to 1 when the gnulib module write should be tested. */ #undef GNULIB_TEST_WRITE /* Define to 1 if you have 'alloca' after including , a header that may be supplied by this distribution. */ #undef HAVE_ALLOCA /* Define to 1 if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the header file. */ #undef HAVE_ASSERT_H /* Define to 1 if you have the header file. */ #undef HAVE_BP_SYM_H /* Define to 1 if you have the `btowc' function. */ #undef HAVE_BTOWC /* Define to 1 if you have the `catgets' function. */ #undef HAVE_CATGETS /* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define to 1 if you have the `confstr' function. */ #undef HAVE_CONFSTR /* Define to 1 if you have the header file. */ #undef HAVE_CTYPE_H /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the declaration of `alarm', and to 0 if you don't. */ #undef HAVE_DECL_ALARM /* Define to 1 if you have the declaration of `fpurge', and to 0 if you don't. */ #undef HAVE_DECL_FPURGE /* Define to 1 if you have the declaration of `fseeko', and to 0 if you don't. */ #undef HAVE_DECL_FSEEKO /* Define to 1 if you have the declaration of `ftello', and to 0 if you don't. */ #undef HAVE_DECL_FTELLO /* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_GETC_UNLOCKED /* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you don't. */ #undef HAVE_DECL_GETDTABLESIZE /* Define to 1 if you have the declaration of `isblank', and to 0 if you don't. */ #undef HAVE_DECL_ISBLANK /* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you don't. */ #undef HAVE_DECL_MBRTOWC /* Define to 1 if you have the declaration of `mbsinit', and to 0 if you don't. */ #undef HAVE_DECL_MBSINIT /* Define to 1 if you have the declaration of `program_invocation_name', and to 0 if you don't. */ #undef HAVE_DECL_PROGRAM_INVOCATION_NAME /* Define to 1 if you have the declaration of `program_invocation_short_name', and to 0 if you don't. */ #undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* Define to 1 if you have the declaration of `strdup', and to 0 if you don't. */ #undef HAVE_DECL_STRDUP /* Define to 1, since you should have the declaration of strerror_r. */ #undef HAVE_DECL_STRERROR_R /* Define to 1 if you have the declaration of 'strerror_r' in the system include files, or to 0 otherwise. */ #undef HAVE_DECL_STRERROR_R_ORIG /* Define to 1 if you have the declaration of `towlower', and to 0 if you don't. */ #undef HAVE_DECL_TOWLOWER /* Define to 1 if you have the declaration of `wcrtomb', and to 0 if you don't. */ #undef HAVE_DECL_WCRTOMB /* Define to 1 if you have the declaration of `_putenv', and to 0 if you don't. */ #undef HAVE_DECL__PUTENV /* Define to 1 if you have the declaration of `__argv', and to 0 if you don't. */ #undef HAVE_DECL___ARGV /* Define to 1 if you have the `dup' function. */ #undef HAVE_DUP /* Define to 1 if you have the 'dup2' function. */ #undef HAVE_DUP2 /* Define if you have the declaration of environ. */ #undef HAVE_ENVIRON_DECL /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H /* Define to 1 if you have the `fcntl' function. */ #undef HAVE_FCNTL /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the header file. */ #undef HAVE_FEATURES_H /* Define to 1 if you have the `fpurge' function. */ #undef HAVE_FPURGE /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #undef HAVE_FSEEKO /* Define to 1 if you have the `getdtablesize' function. */ #undef HAVE_GETDTABLESIZE /* Define to 1 if you have the `getegid' function. */ #undef HAVE_GETEGID /* Define to 1 if you have the `geteuid' function. */ #undef HAVE_GETEUID /* Define to 1 if you have the `getexecname' function. */ #undef HAVE_GETEXECNAME /* Define to 1 if you have the `getgid' function. */ #undef HAVE_GETGID /* Define to 1 if you have the `getprogname' function. */ #undef HAVE_GETPROGNAME /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY /* Define to 1 if you have the `getuid' function. */ #undef HAVE_GETUID /* GNU re_compile_pattern() and regex.h */ #undef HAVE_GNU_RE_COMPILE_PATTERN /* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_ICONV_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `ioctl' function. */ #undef HAVE_IOCTL /* Have isalnum */ #undef HAVE_ISALNUM /* Have isalpha */ #undef HAVE_ISALPHA /* Define to 1 if you have the `isblank' function. */ #undef HAVE_ISBLANK /* Function/macro isdigit() is found. */ #undef HAVE_ISDIGIT /* Define to 1 if you have the `issetugid' function. */ #undef HAVE_ISSETUGID /* Have isspace */ #undef HAVE_ISSPACE /* Define to 1 if you have the `iswcntrl' function. */ #undef HAVE_ISWCNTRL /* Define to 1 if you have the `iswctype' function. */ #undef HAVE_ISWCTYPE /* Define if you have and nl_langinfo(CODESET). */ #undef HAVE_LANGINFO_CODESET /* Define to 1 if you have the header file. */ #undef HAVE_LANGINFO_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBINTL_H /* Define if you have the m library (-lm) */ #undef HAVE_LIBM /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the `link' function. */ #undef HAVE_LINK /* Define to 1 if the system has the type 'long long int'. */ #undef HAVE_LONG_LONG_INT /* Define to 1 if you have the `lstat' function. */ #undef HAVE_LSTAT /* Define to 1 if your system has a GNU libc compatible 'malloc' function, and to 0 otherwise. */ #undef HAVE_MALLOC_GNU /* Define to 1 if you have the header file. */ #undef HAVE_MALLOC_H /* Define if the 'malloc' function is POSIX compliant. */ #undef HAVE_MALLOC_POSIX /* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including config.h and . */ #undef HAVE_MAP_ANONYMOUS /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the `mbrtowc' function. */ #undef HAVE_MBRTOWC /* Define to 1 if you have the `mbsinit' function. */ #undef HAVE_MBSINIT /* Define to 1 if declares mbstate_t. */ #undef HAVE_MBSTATE_T /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `mkostemp' function. */ #undef HAVE_MKOSTEMP /* Define to 1 if you have the `mprotect' function. */ #undef HAVE_MPROTECT /* Define to 1 on MSVC platforms that have the "invalid parameter handler" concept. */ #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER /* Define to 1 if you have the `nl_langinfo' function. */ #undef HAVE_NL_LANGINFO /* The ospeed variable is defined in -lncurses or -ltermcap or -ltermlib */ #undef HAVE_OSPEED /* Define to 1 if you have the header file. */ #undef HAVE_PATHS_H /* Define to 1 if you have the `pipe' function. */ #undef HAVE_PIPE /* Define to 1 if you have the `pipe2' function. */ #undef HAVE_PIPE2 /* POSIX regcomp() and regex. */ #undef HAVE_POSIX_REGCOMP /* Define to 1 if you have the `posix_spawn' function. */ #undef HAVE_POSIX_SPAWN /* Define to 1 if the system has the type `posix_spawnattr_t'. */ #undef HAVE_POSIX_SPAWNATTR_T /* Define to 1 if the system has the type `posix_spawn_file_actions_t'. */ #undef HAVE_POSIX_SPAWN_FILE_ACTIONS_T /* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ #undef HAVE_PTHREAD_MUTEX_RECURSIVE /* Define if the POSIX multithreading library has read/write locks. */ #undef HAVE_PTHREAD_RWLOCK /* Define if the 'pthread_rwlock_rdlock' function prefers a writer to a reader. */ #undef HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER /* Define to 1 if you have the `raise' function. */ #undef HAVE_RAISE /* Define to 1 if you have the `rawmemchr' function. */ #undef HAVE_RAWMEMCHR /* Define to 1 if accept is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ACCEPT /* Define to 1 if accept4 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ACCEPT4 /* Define to 1 if acosf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ACOSF /* Define to 1 if acosl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ACOSL /* Define to 1 if asinf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ASINF /* Define to 1 if asinl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ASINL /* Define to 1 if atanf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ATANF /* Define to 1 if atanl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ATANL /* Define to 1 if atoll is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ATOLL /* Define to 1 if bind is declared even after undefining macros. */ #undef HAVE_RAW_DECL_BIND /* Define to 1 if btowc is declared even after undefining macros. */ #undef HAVE_RAW_DECL_BTOWC /* Define to 1 if canonicalize_file_name is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME /* Define to 1 if cbrt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CBRT /* Define to 1 if cbrtf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CBRTF /* Define to 1 if cbrtl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CBRTL /* Define to 1 if ceilf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CEILF /* Define to 1 if ceill is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CEILL /* Define to 1 if chdir is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CHDIR /* Define to 1 if chown is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CHOWN /* Define to 1 if connect is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CONNECT /* Define to 1 if copysign is declared even after undefining macros. */ #undef HAVE_RAW_DECL_COPYSIGN /* Define to 1 if copysignf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_COPYSIGNF /* Define to 1 if copysignl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_COPYSIGNL /* Define to 1 if cosf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_COSF /* Define to 1 if coshf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_COSHF /* Define to 1 if cosl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_COSL /* Define to 1 if dprintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DPRINTF /* Define to 1 if dup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DUP /* Define to 1 if dup2 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DUP2 /* Define to 1 if dup3 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DUP3 /* Define to 1 if duplocale is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DUPLOCALE /* Define to 1 if endusershell is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ENDUSERSHELL /* Define to 1 if environ is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ENVIRON /* Define to 1 if euidaccess is declared even after undefining macros. */ #undef HAVE_RAW_DECL_EUIDACCESS /* Define to 1 if exp2 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_EXP2 /* Define to 1 if exp2f is declared even after undefining macros. */ #undef HAVE_RAW_DECL_EXP2F /* Define to 1 if exp2l is declared even after undefining macros. */ #undef HAVE_RAW_DECL_EXP2L /* Define to 1 if expf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_EXPF /* Define to 1 if expl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_EXPL /* Define to 1 if expm1 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_EXPM1 /* Define to 1 if expm1f is declared even after undefining macros. */ #undef HAVE_RAW_DECL_EXPM1F /* Define to 1 if expm1l is declared even after undefining macros. */ #undef HAVE_RAW_DECL_EXPM1L /* Define to 1 if fabsf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FABSF /* Define to 1 if fabsl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FABSL /* Define to 1 if faccessat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FACCESSAT /* Define to 1 if fchdir is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FCHDIR /* Define to 1 if fchmodat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FCHMODAT /* Define to 1 if fchownat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FCHOWNAT /* Define to 1 if fcntl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FCNTL /* Define to 1 if fdatasync is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FDATASYNC /* Define to 1 if ffs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FFS /* Define to 1 if ffsl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FFSL /* Define to 1 if ffsll is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FFSLL /* Define to 1 if floorf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FLOORF /* Define to 1 if floorl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FLOORL /* Define to 1 if fma is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FMA /* Define to 1 if fmaf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FMAF /* Define to 1 if fmal is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FMAL /* Define to 1 if fmod is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FMOD /* Define to 1 if fmodf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FMODF /* Define to 1 if fmodl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FMODL /* Define to 1 if fpurge is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FPURGE /* Define to 1 if frexpf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FREXPF /* Define to 1 if frexpl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FREXPL /* Define to 1 if fseeko is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FSEEKO /* Define to 1 if fstat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FSTAT /* Define to 1 if fstatat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FSTATAT /* Define to 1 if fsync is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FSYNC /* Define to 1 if ftello is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FTELLO /* Define to 1 if ftruncate is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FTRUNCATE /* Define to 1 if futimens is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FUTIMENS /* Define to 1 if getcwd is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETCWD /* Define to 1 if getdelim is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETDELIM /* Define to 1 if getdomainname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETDOMAINNAME /* Define to 1 if getdtablesize is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETDTABLESIZE /* Define to 1 if getgroups is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETGROUPS /* Define to 1 if gethostname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETHOSTNAME /* Define to 1 if getline is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETLINE /* Define to 1 if getloadavg is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETLOADAVG /* Define to 1 if getlogin is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETLOGIN /* Define to 1 if getlogin_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETLOGIN_R /* Define to 1 if getpagesize is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETPAGESIZE /* Define to 1 if getpeername is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETPEERNAME /* Define to 1 if gets is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETS /* Define to 1 if getsockname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETSOCKNAME /* Define to 1 if getsockopt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETSOCKOPT /* Define to 1 if getsubopt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETSUBOPT /* Define to 1 if gettimeofday is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETTIMEOFDAY /* Define to 1 if getusershell is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETUSERSHELL /* Define to 1 if grantpt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GRANTPT /* Define to 1 if group_member is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GROUP_MEMBER /* Define to 1 if hypotf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_HYPOTF /* Define to 1 if hypotl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_HYPOTL /* Define to 1 if ilogb is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ILOGB /* Define to 1 if ilogbf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ILOGBF /* Define to 1 if ilogbl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ILOGBL /* Define to 1 if initstate is declared even after undefining macros. */ #undef HAVE_RAW_DECL_INITSTATE /* Define to 1 if initstate_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_INITSTATE_R /* Define to 1 if ioctl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_IOCTL /* Define to 1 if isatty is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ISATTY /* Define to 1 if iswctype is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ISWCTYPE /* Define to 1 if lchmod is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LCHMOD /* Define to 1 if lchown is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LCHOWN /* Define to 1 if ldexpf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LDEXPF /* Define to 1 if ldexpl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LDEXPL /* Define to 1 if link is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LINK /* Define to 1 if linkat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LINKAT /* Define to 1 if listen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LISTEN /* Define to 1 if log is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOG /* Define to 1 if log10 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOG10 /* Define to 1 if log10f is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOG10F /* Define to 1 if log10l is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOG10L /* Define to 1 if log1p is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOG1P /* Define to 1 if log1pf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOG1PF /* Define to 1 if log1pl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOG1PL /* Define to 1 if log2 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOG2 /* Define to 1 if log2f is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOG2F /* Define to 1 if log2l is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOG2L /* Define to 1 if logb is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOGB /* Define to 1 if logbf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOGBF /* Define to 1 if logbl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOGBL /* Define to 1 if logf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOGF /* Define to 1 if logl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LOGL /* Define to 1 if lseek is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LSEEK /* Define to 1 if lstat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LSTAT /* Define to 1 if mbrlen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBRLEN /* Define to 1 if mbrtowc is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBRTOWC /* Define to 1 if mbsinit is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBSINIT /* Define to 1 if mbsnrtowcs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBSNRTOWCS /* Define to 1 if mbsrtowcs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBSRTOWCS /* Define to 1 if memmem is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MEMMEM /* Define to 1 if mempcpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MEMPCPY /* Define to 1 if memrchr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MEMRCHR /* Define to 1 if mkdirat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKDIRAT /* Define to 1 if mkdtemp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKDTEMP /* Define to 1 if mkfifo is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKFIFO /* Define to 1 if mkfifoat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKFIFOAT /* Define to 1 if mknod is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKNOD /* Define to 1 if mknodat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKNODAT /* Define to 1 if mkostemp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKOSTEMP /* Define to 1 if mkostemps is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKOSTEMPS /* Define to 1 if mkstemp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKSTEMP /* Define to 1 if mkstemps is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKSTEMPS /* Define to 1 if modf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MODF /* Define to 1 if modff is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MODFF /* Define to 1 if modfl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MODFL /* Define to 1 if nl_langinfo is declared even after undefining macros. */ #undef HAVE_RAW_DECL_NL_LANGINFO /* Define to 1 if openat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_OPENAT /* Define to 1 if pclose is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PCLOSE /* Define to 1 if pipe is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PIPE /* Define to 1 if pipe2 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PIPE2 /* Define to 1 if popen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POPEN /* Define to 1 if posix_openpt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_OPENPT /* Define to 1 if posix_spawn is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWN /* Define to 1 if posix_spawnattr_destroy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_DESTROY /* Define to 1 if posix_spawnattr_getflags is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_GETFLAGS /* Define to 1 if posix_spawnattr_getpgroup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_GETPGROUP /* Define to 1 if posix_spawnattr_getschedparam is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSCHEDPARAM /* Define to 1 if posix_spawnattr_getschedpolicy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSCHEDPOLICY /* Define to 1 if posix_spawnattr_getsigdefault is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSIGDEFAULT /* Define to 1 if posix_spawnattr_getsigmask is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSIGMASK /* Define to 1 if posix_spawnattr_init is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_INIT /* Define to 1 if posix_spawnattr_setflags is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_SETFLAGS /* Define to 1 if posix_spawnattr_setpgroup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_SETPGROUP /* Define to 1 if posix_spawnattr_setschedparam is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSCHEDPARAM /* Define to 1 if posix_spawnattr_setschedpolicy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSCHEDPOLICY /* Define to 1 if posix_spawnattr_setsigdefault is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSIGDEFAULT /* Define to 1 if posix_spawnattr_setsigmask is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSIGMASK /* Define to 1 if posix_spawnp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWNP /* Define to 1 if posix_spawn_file_actions_addclose is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE /* Define to 1 if posix_spawn_file_actions_adddup2 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 /* Define to 1 if posix_spawn_file_actions_addopen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN /* Define to 1 if posix_spawn_file_actions_destroy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_DESTROY /* Define to 1 if posix_spawn_file_actions_init is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_INIT /* Define to 1 if powf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POWF /* Define to 1 if pread is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PREAD /* Define to 1 if pthread_sigmask is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PTHREAD_SIGMASK /* Define to 1 if ptsname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PTSNAME /* Define to 1 if ptsname_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PTSNAME_R /* Define to 1 if pwrite is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PWRITE /* Define to 1 if qsort_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_QSORT_R /* Define to 1 if random is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RANDOM /* Define to 1 if random_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RANDOM_R /* Define to 1 if rawmemchr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RAWMEMCHR /* Define to 1 if readlink is declared even after undefining macros. */ #undef HAVE_RAW_DECL_READLINK /* Define to 1 if readlinkat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_READLINKAT /* Define to 1 if realpath is declared even after undefining macros. */ #undef HAVE_RAW_DECL_REALPATH /* Define to 1 if recv is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RECV /* Define to 1 if recvfrom is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RECVFROM /* Define to 1 if remainder is declared even after undefining macros. */ #undef HAVE_RAW_DECL_REMAINDER /* Define to 1 if remainderf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_REMAINDERF /* Define to 1 if remainderl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_REMAINDERL /* Define to 1 if renameat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RENAMEAT /* Define to 1 if rint is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RINT /* Define to 1 if rintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RINTF /* Define to 1 if rintl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RINTL /* Define to 1 if rmdir is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RMDIR /* Define to 1 if round is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ROUND /* Define to 1 if roundf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ROUNDF /* Define to 1 if roundl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ROUNDL /* Define to 1 if rpmatch is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RPMATCH /* Define to 1 if secure_getenv is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SECURE_GETENV /* Define to 1 if send is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SEND /* Define to 1 if sendto is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SENDTO /* Define to 1 if setenv is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETENV /* Define to 1 if sethostname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETHOSTNAME /* Define to 1 if setlocale is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETLOCALE /* Define to 1 if setsockopt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETSOCKOPT /* Define to 1 if setstate is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETSTATE /* Define to 1 if setstate_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETSTATE_R /* Define to 1 if setusershell is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETUSERSHELL /* Define to 1 if shutdown is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SHUTDOWN /* Define to 1 if sigaction is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SIGACTION /* Define to 1 if sigaddset is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SIGADDSET /* Define to 1 if sigdelset is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SIGDELSET /* Define to 1 if sigemptyset is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SIGEMPTYSET /* Define to 1 if sigfillset is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SIGFILLSET /* Define to 1 if sigismember is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SIGISMEMBER /* Define to 1 if sigpending is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SIGPENDING /* Define to 1 if sigprocmask is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SIGPROCMASK /* Define to 1 if sinf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SINF /* Define to 1 if sinhf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SINHF /* Define to 1 if sinl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SINL /* Define to 1 if sleep is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SLEEP /* Define to 1 if snprintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SNPRINTF /* Define to 1 if socket is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SOCKET /* Define to 1 if sqrtf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SQRTF /* Define to 1 if sqrtl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SQRTL /* Define to 1 if srandom is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SRANDOM /* Define to 1 if srandom_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SRANDOM_R /* Define to 1 if stat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STAT /* Define to 1 if stpcpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STPCPY /* Define to 1 if stpncpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STPNCPY /* Define to 1 if strcasecmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRCASECMP /* Define to 1 if strcasestr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRCASESTR /* Define to 1 if strchrnul is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRCHRNUL /* Define to 1 if strdup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRDUP /* Define to 1 if strerror_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRERROR_R /* Define to 1 if strncasecmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRNCASECMP /* Define to 1 if strncat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRNCAT /* Define to 1 if strndup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRNDUP /* Define to 1 if strnlen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRNLEN /* Define to 1 if strpbrk is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRPBRK /* Define to 1 if strsep is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRSEP /* Define to 1 if strsignal is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRSIGNAL /* Define to 1 if strtod is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOD /* Define to 1 if strtok_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOK_R /* Define to 1 if strtoll is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOLL /* Define to 1 if strtoull is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOULL /* Define to 1 if strverscmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRVERSCMP /* Define to 1 if symlink is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SYMLINK /* Define to 1 if symlinkat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SYMLINKAT /* Define to 1 if tanf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TANF /* Define to 1 if tanhf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TANHF /* Define to 1 if tanl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TANL /* Define to 1 if tmpfile is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TMPFILE /* Define to 1 if towctrans is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TOWCTRANS /* Define to 1 if trunc is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TRUNC /* Define to 1 if truncf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TRUNCF /* Define to 1 if truncl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TRUNCL /* Define to 1 if ttyname_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TTYNAME_R /* Define to 1 if unlink is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UNLINK /* Define to 1 if unlinkat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UNLINKAT /* Define to 1 if unlockpt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UNLOCKPT /* Define to 1 if unsetenv is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UNSETENV /* Define to 1 if usleep is declared even after undefining macros. */ #undef HAVE_RAW_DECL_USLEEP /* Define to 1 if utimensat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UTIMENSAT /* Define to 1 if vdprintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_VDPRINTF /* Define to 1 if vsnprintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_VSNPRINTF /* Define to 1 if waitpid is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WAITPID /* Define to 1 if wcpcpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCPCPY /* Define to 1 if wcpncpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCPNCPY /* Define to 1 if wcrtomb is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCRTOMB /* Define to 1 if wcscasecmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCASECMP /* Define to 1 if wcscat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCAT /* Define to 1 if wcschr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCHR /* Define to 1 if wcscmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCMP /* Define to 1 if wcscoll is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCOLL /* Define to 1 if wcscpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCPY /* Define to 1 if wcscspn is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCSPN /* Define to 1 if wcsdup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSDUP /* Define to 1 if wcslen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSLEN /* Define to 1 if wcsncasecmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNCASECMP /* Define to 1 if wcsncat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNCAT /* Define to 1 if wcsncmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNCMP /* Define to 1 if wcsncpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNCPY /* Define to 1 if wcsnlen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNLEN /* Define to 1 if wcsnrtombs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNRTOMBS /* Define to 1 if wcspbrk is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSPBRK /* Define to 1 if wcsrchr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSRCHR /* Define to 1 if wcsrtombs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSRTOMBS /* Define to 1 if wcsspn is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSSPN /* Define to 1 if wcsstr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSSTR /* Define to 1 if wcstok is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSTOK /* Define to 1 if wcswidth is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSWIDTH /* Define to 1 if wcsxfrm is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSXFRM /* Define to 1 if wctob is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCTOB /* Define to 1 if wctrans is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCTRANS /* Define to 1 if wctype is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCTYPE /* Define to 1 if wcwidth is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCWIDTH /* Define to 1 if wmemchr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMCHR /* Define to 1 if wmemcmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMCMP /* Define to 1 if wmemcpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMCPY /* Define to 1 if wmemmove is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMMOVE /* Define to 1 if wmemset is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMSET /* Define to 1 if _Exit is declared even after undefining macros. */ #undef HAVE_RAW_DECL__EXIT /* Define to 1 if your system has a GNU libc compatible 'realloc' function, and to 0 otherwise. */ #undef HAVE_REALLOC_GNU /* Define if the 'realloc' function is POSIX compliant. */ #undef HAVE_REALLOC_POSIX /* Define to 1 if you have the header file. */ #undef HAVE_REGEX_H /* BSD re_comp() */ #undef HAVE_RE_COMP /* Define to 1 if the system has the type `sa_family_t'. */ #undef HAVE_SA_FAMILY_T /* Define to 1 if you have the header file. */ #undef HAVE_SCHED_H /* Define to 1 if you have the `sched_setparam' function. */ #undef HAVE_SCHED_SETPARAM /* Define to 1 if you have the `sched_setscheduler' function. */ #undef HAVE_SCHED_SETSCHEDULER /* Define to 1 if you have the `secure_getenv' function. */ #undef HAVE_SECURE_GETENV /* Define to 1 if you have the `setdtablesize' function. */ #undef HAVE_SETDTABLESIZE /* Define to 1 if you have the `setegid' function. */ #undef HAVE_SETEGID /* Define to 1 if you have the `seteuid' function. */ #undef HAVE_SETEUID /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if you have the header file. */ #undef HAVE_SGTTY_H /* Define to 1 if you have the `shutdown' function. */ #undef HAVE_SHUTDOWN /* Define to 1 if you have the `sigaction' function. */ #undef HAVE_SIGACTION /* Define to 1 if you have the `sigaltstack' function. */ #undef HAVE_SIGALTSTACK /* Define to 1 if the system has the type `siginfo_t'. */ #undef HAVE_SIGINFO_T /* Define to 1 if you have the `siginterrupt' function. */ #undef HAVE_SIGINTERRUPT /* Define to 1 if you have the `signal' function. */ #undef HAVE_SIGNAL /* Define to 1 if you have the header file. */ #undef HAVE_SIGNAL_H /* Define to 1 if 'sig_atomic_t' is a signed integer type. */ #undef HAVE_SIGNED_SIG_ATOMIC_T /* Define to 1 if 'wchar_t' is a signed integer type. */ #undef HAVE_SIGNED_WCHAR_T /* Define to 1 if 'wint_t' is a signed integer type. */ #undef HAVE_SIGNED_WINT_T /* Define to 1 if the system has the type `sigset_t'. */ #undef HAVE_SIGSET_T /* Define to 1 if the system has the type `sig_atomic_t'. */ #undef HAVE_SIG_ATOMIC_T /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF /* Define to 1 if you have the header file. */ #undef HAVE_SPAWN_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the `strchrnul' function. */ #undef HAVE_STRCHRNUL /* Define to 1 if you have the `strcspn' function. */ #undef HAVE_STRCSPN /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP /* Define to 1, since you should have the function strerror_r. */ #undef HAVE_STRERROR_R /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strncasecmp' function. */ #undef HAVE_STRNCASECMP /* Define to 1 if you have the `strrchr' function. */ #undef HAVE_STRRCHR /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* Define to 1 if you have the `strtol' function. */ #undef HAVE_STRTOL /* Define to 1 if `decimal_point' is a member of `struct lconv'. */ #undef HAVE_STRUCT_LCONV_DECIMAL_POINT /* Define to 1 if `sa_sigaction' is a member of `struct sigaction'. */ #undef HAVE_STRUCT_SIGACTION_SA_SIGACTION /* Define to 1 if the system has the type `struct sockaddr_storage'. */ #undef HAVE_STRUCT_SOCKADDR_STORAGE /* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */ #undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY /* Define to 1 if you have the `symlink' function. */ #undef HAVE_SYMLINK /* Define if you have a working system function */ #undef HAVE_SYSTEM /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BITYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_CDEFS_H /* Shell can interpret `#!' in first line of a shell script. */ #undef HAVE_SYS_INTERPRETER /* Define to 1 if you have the header file. */ #undef HAVE_SYS_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MMAN_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PTEM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STREAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIMEB_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_UIO_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMCAP_H /* All termios functions are available. */ #undef HAVE_TERMIOS_FUNCS /* Define to 1 if you have the header file. */ #undef HAVE_TERMIOS_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMIO_H /* Type time_t is predefined. */ #undef HAVE_TIME_T /* Define to 1 if you have the `towlower' function. */ #undef HAVE_TOWLOWER /* Link -lncurses or -ltermcap or -ltermlib to executable. */ #undef HAVE_TTYLIBS /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if the system has the type 'unsigned long long int'. */ #undef HAVE_UNSIGNED_LONG_LONG_INT /* Functions/macros toupper(), tolower(), isupper() and islower() are found. */ #undef HAVE_UPPER_LOWER /* Define if you have a global __progname variable */ #undef HAVE_VAR___PROGNAME /* Define to 1 if you have the `vfork' function. */ #undef HAVE_VFORK /* Identifier void exists. */ #undef HAVE_VOID /* Define to 1 if you have the `waitid' function. */ #undef HAVE_WAITID /* Define to 1 if you have the header file. */ #undef HAVE_WCHAR_H /* Define if you have the 'wchar_t' type. */ #undef HAVE_WCHAR_T /* Define to 1 if you have the `wcrtomb' function. */ #undef HAVE_WCRTOMB /* Define to 1 if you have the header file. */ #undef HAVE_WCTYPE_H /* Define to 1 if you have the header file. */ #undef HAVE_WINSOCK2_H /* Define if you have the 'wint_t' type. */ #undef HAVE_WINT_T /* Define to 1 if O_NOATIME works. */ #undef HAVE_WORKING_O_NOATIME /* Define to 1 if O_NOFOLLOW works. */ #undef HAVE_WORKING_O_NOFOLLOW /* Define if you have the posix_spawn and posix_spawnp functions and they work. */ #undef HAVE_WORKING_POSIX_SPAWN /* Define to 1 if you have the header file. */ #undef HAVE_WS2TCPIP_H /* Define to 1 if you have the header file. */ #undef HAVE_XLOCALE_H /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Define to 1 if you have the `_fseeki64' function. */ #undef HAVE__FSEEKI64 /* Define to 1 if you have the `_ftelli64' function. */ #undef HAVE__FTELLI64 /* Define to 1 if you have the `_ftime' function. */ #undef HAVE__FTIME /* Define if _NL_TIME_FIRST_WEEKDAY is available */ #undef HAVE__NL_TIME_FIRST_WEEKDAY /* Define to 1 if you have the `_set_invalid_parameter_handler' function. */ #undef HAVE__SET_INVALID_PARAMETER_HANDLER /* Define to 1 if the compiler supports __builtin_expect, and to 2 if does. */ #undef HAVE___BUILTIN_EXPECT #ifndef HAVE___BUILTIN_EXPECT # define __builtin_expect(e, c) (e) #elif HAVE___BUILTIN_EXPECT == 2 # include #endif /* Define to 1 if you have the `__fpurge' function. */ #undef HAVE___FPURGE /* Define to 1 if you have the `__freading' function. */ #undef HAVE___FREADING /* Define to 1 if you have the `__secure_getenv' function. */ #undef HAVE___SECURE_GETENV /* Define to 1 if you have the `__xpg_strerror_r' function. */ #undef HAVE___XPG_STRERROR_R /* Enable a small selection of country specific holidays only. */ #undef HD_TOP20CC /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST /* Define to 1 if lseek does not detect pipes. */ #undef LSEEK_PIPE_BROKEN /* Define to 1 if 'lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ #undef MALLOC_0_IS_NONNULL /* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ #undef MAP_ANONYMOUS /* Define if the mbrtowc function does not return (size_t) -2 for empty input. */ #undef MBRTOWC_EMPTY_INPUT_BUG /* Define if the mbrtowc function has the NULL pwc argument bug. */ #undef MBRTOWC_NULL_ARG1_BUG /* Define if the mbrtowc function has the NULL string argument bug. */ #undef MBRTOWC_NULL_ARG2_BUG /* Define if the mbrtowc function does not return 0 for a NUL character. */ #undef MBRTOWC_NUL_RETVAL_BUG /* Define if the mbrtowc function returns a wrong return value. */ #undef MBRTOWC_RETVAL_BUG /* Use GNU style printf and scanf. */ #ifndef __USE_MINGW_ANSI_STDIO # undef __USE_MINGW_ANSI_STDIO #endif /* We must declare the ospeed variable */ #undef MUST_DCL_OSPEED /* Define to 1 if assertions should be disabled. */ #undef NDEBUG /* Define to 1 if open() fails to recognize a trailing slash. */ #undef OPEN_TRAILING_SLASH_BUG /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Enable preferred external pager program (`less'). */ #undef PAGER1_PROG /* Enable alternative external pager program (`more'). */ #undef PAGER2_PROG /* Enable second alternative external pager program (`pg'). */ #undef PAGER3_PROG /* Define to the type that is the result of default argument promotions of type mode_t. */ #undef PROMOTED_MODE_T /* Define if the pthread_in_use() detection is hard. */ #undef PTHREAD_IN_USE_DETECTION_HARD /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'ptrdiff_t'. */ #undef PTRDIFF_T_SUFFIX /* Define to 1 if stat needs help when passed a directory name with a trailing slash */ #undef REPLACE_FUNC_STAT_DIR /* Define to 1 if stat needs help when passed a file name with a trailing slash */ #undef REPLACE_FUNC_STAT_FILE /* Define if nl_langinfo exists but is overridden by gnulib. */ #undef REPLACE_NL_LANGINFO /* Define to 1 if strerror(0) does not return a message implying success. */ #undef REPLACE_STRERROR_0 /* Define as the return type of signal handlers (`int' or `void'). */ #undef RETSIGTYPE /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'sig_atomic_t'. */ #undef SIG_ATOMIC_T_SUFFIX /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'size_t'. */ #undef SIZE_T_SUFFIX /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if the `S_IS*' macros in do not work properly. */ #undef STAT_MACROS_BROKEN /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 0, since strerror_r should not return char *. */ #undef STRERROR_R_CHAR_P /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Define to 1 if unlink() on a parent directory may succeed */ #undef UNLINK_PARENT_BUG /* Enable displaying using the extended ASCII character set. */ #undef USE_EASC /* Enable highlighting sequences. */ #undef USE_HLS /* Enable simple internal pager feature. */ #undef USE_PAGER /* Define if the POSIX multithreading library can be used. */ #undef USE_POSIX_THREADS /* Define if references to the POSIX multithreading library should be made weak. */ #undef USE_POSIX_THREADS_WEAK /* Define if the GNU Pth multithreading library can be used. */ #undef USE_PTH_THREADS /* Define if references to the GNU Pth multithreading library should be made weak. */ #undef USE_PTH_THREADS_WEAK /* Enable fixed date feature. */ #undef USE_RC /* Define if the old Solaris multithreading library can be used. */ #undef USE_SOLARIS_THREADS /* Define if references to the old Solaris multithreading library should be made weak. */ #undef USE_SOLARIS_THREADS_WEAK /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on macOS. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ #ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ # undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ # undef __STDC_WANT_IEC_60559_BFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__ # undef __STDC_WANT_IEC_60559_DFP_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # undef __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif /* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ # undef __STDC_WANT_IEC_60559_TYPES_EXT__ #endif /* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ #ifndef __STDC_WANT_LIB_EXT2__ # undef __STDC_WANT_LIB_EXT2__ #endif /* Enable extensions specified by ISO/IEC 24747:2009. */ #ifndef __STDC_WANT_MATH_SPEC_FUNCS__ # undef __STDC_WANT_MATH_SPEC_FUNCS__ #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions if necessary. HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Enable unicode. */ #undef USE_UNICODE /* Define if the native Windows multithreading API can be used. */ #undef USE_WINDOWS_THREADS /* Version number of package */ #undef VERSION /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wchar_t'. */ #undef WCHAR_T_SUFFIX /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wint_t'. */ #undef WINT_T_SUFFIX /* Enable large inode numbers on Mac OS X 10.5. */ #undef _DARWIN_USE_64_BIT_INODE /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* Define to 1 if Gnulib overrides 'struct stat' on Windows so that struct stat.st_size becomes 64-bit. */ #undef _GL_WINDOWS_64_BIT_ST_SIZE /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ #undef _LARGEFILE_SOURCE /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* Define to 1 on Solaris. */ #undef _LCONV_C99 /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 1 to make NetBSD features available. MINIX 3 needs this. */ #undef _NETBSD_SOURCE /* The _Noreturn keyword of C11. */ #if ! (defined _Noreturn \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 in order to get the POSIX compatible declarations of socket functions. */ #undef _POSIX_PII_SOCKET /* Define to 1 if you need to in order for 'stat' and other things to work. */ #undef _POSIX_SOURCE /* Define if you want to include , so that it consistently overrides 's RE_DUP_MAX. */ #undef _REGEX_INCLUDE_LIMITS_H /* Define if you want regoff_t to be at least as wide POSIX requires. */ #undef _REGEX_LARGE_OFFSETS /* Define to 1 if the system predates C++11. */ #undef __STDC_CONSTANT_MACROS /* Define to 1 if the system predates C++11. */ #undef __STDC_LIMIT_MACROS /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see . Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f (void) { } inline void g (void) { f (); }', c99 incorrectly complains 'reference to static identifier "f" in extern inline function'. This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) on configurations that mistakenly use 'static inline' to implement functions or macros in standard C headers like . For example, if isdigit is mistakenly implemented via a static inline function, a program containing an extern inline function that calls isdigit may not work since the C standard prohibits extern inline functions from calling static functions. This bug is known to occur on: OS X 10.8 and earlier; see: http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html DragonFly; see http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log FreeBSD; see: http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and for clang but remains for g++; see . Assume DragonFly and FreeBSD will be similar. */ #if (((defined __APPLE__ && defined __MACH__) \ || defined __DragonFly__ || defined __FreeBSD__) \ && (defined __header_inline \ ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ && ! defined __clang__) \ : ((! defined _DONT_USE_CTYPE_INLINE_ \ && (defined __GNUC__ || defined __cplusplus)) \ || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ && defined __GNUC__ && ! defined __cplusplus)))) # define _GL_EXTERN_INLINE_STDHEADER_BUG #endif #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ && !defined __PGI \ && !(defined __SUNPRO_C && __STDC__))) \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline # define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) # if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern # define _GL_EXTERN_INLINE_IN_USE #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED #endif /* In GCC 4.6 (inclusive) to 5.1 (exclusive), suppress bogus "no previous prototype for 'FOO'" and "no previous declaration for 'FOO'" diagnostics, when FOO is an inline function in the header; see and . */ #if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ _GL_INLINE_HEADER_CONST_PRAGMA # define _GL_INLINE_HEADER_END \ _Pragma ("GCC diagnostic pop") #else # define _GL_INLINE_HEADER_BEGIN # define _GL_INLINE_HEADER_END #endif /* Define to rpl_free if the replacement function should be used. */ #undef free /* Define to `int' if doesn't define. */ #undef gid_t /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. __APPLE__ && __MACH__ test for Mac OS X. __APPLE_CC__ tests for the Apple compiler and its version. __STDC_VERSION__ tests for the C99 mode. */ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif /* Define to a type if does not define. */ #undef mbstate_t /* Define to `int' if does not define. */ #undef mode_t /* Define to the type of st_nlink in struct stat, or a supertype. */ #undef nlink_t /* Define to `int' if does not define. */ #undef pid_t /* Define to rpl_re_comp if the replacement should be used. */ #undef re_comp /* Define to rpl_re_compile_fastmap if the replacement should be used. */ #undef re_compile_fastmap /* Define to rpl_re_compile_pattern if the replacement should be used. */ #undef re_compile_pattern /* Define to rpl_re_exec if the replacement should be used. */ #undef re_exec /* Define to rpl_re_match if the replacement should be used. */ #undef re_match /* Define to rpl_re_match_2 if the replacement should be used. */ #undef re_match_2 /* Define to rpl_re_search if the replacement should be used. */ #undef re_search /* Define to rpl_re_search_2 if the replacement should be used. */ #undef re_search_2 /* Define to rpl_re_set_registers if the replacement should be used. */ #undef re_set_registers /* Define to rpl_re_set_syntax if the replacement should be used. */ #undef re_set_syntax /* Define to rpl_re_syntax_options if the replacement should be used. */ #undef re_syntax_options /* Define to rpl_regcomp if the replacement should be used. */ #undef regcomp /* Define to rpl_regerror if the replacement should be used. */ #undef regerror /* Define to rpl_regexec if the replacement should be used. */ #undef regexec /* Define to rpl_regfree if the replacement should be used. */ #undef regfree /* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported directly. */ #undef restrict /* Work around a bug in Sun C++: it does not support _Restrict or __restrict__, even though the corresponding Sun C compiler ends up with "#define restrict _Restrict" or "#define restrict __restrict__" in the previous line. Perhaps some future version of Sun C++ will work with restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ #if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict # define __restrict__ #endif /* Define as an integer type suitable for memory locations that can be accessed atomically even in the presence of asynchronous signals. */ #undef sig_atomic_t /* Define to `unsigned int' if does not define. */ #undef size_t /* type to use in place of socklen_t if not defined */ #undef socklen_t /* Define as a signed type of the same size as size_t. */ #undef ssize_t /* Define to `int' if doesn't define. */ #undef uid_t /* Define as a marker that can be attached to declarations that might not be used. This helps to reduce warnings, such as from GCC -Wunused-parameter. */ #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_UNUSED __attribute__ ((__unused__)) #else # define _GL_UNUSED #endif /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name is a misnomer outside of parameter lists. */ #define _UNUSED_PARAMETER_ _GL_UNUSED /* gcc supports the "unused" attribute on possibly unused labels, and g++ has since version 4.5. Note to support C++ as well as C, _GL_UNUSED_LABEL should be used with a trailing ; */ #if !defined __cplusplus || __GNUC__ > 4 \ || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) # define _GL_UNUSED_LABEL _GL_UNUSED #else # define _GL_UNUSED_LABEL #endif /* The __pure__ attribute was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The __const__ attribute was added in gcc 2.95. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) #else # define _GL_ATTRIBUTE_CONST /* empty */ #endif